{"version":3,"file":"__federation_expose_DRPage5VacuumLoading.chunk.bundle","sources":["/Users/claudiobaiardi/Documents/GitHub/aldyl/DataOil-front/apps/data-oil-app/dailyReport/src/components/DRFooterActions.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/DataOil-front/apps/data-oil-app/dailyReport/src/screens/DRPage5VacuumLoading.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/DataOil-front/apps/data-oil-app/dailyReport/src/store/dailyReportBase.store.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/DataOil-front/apps/data-oil-app/dailyReport/src/store/dailyReportVacuum.store.ts"],"sourcesContent":["import React from 'react';\nimport { View, StyleSheet, Platform } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { StatusButton } from '@data-oil-front/ui-mobile';\n// import { useTheme } from '@data-oil-front/core-shared';\nimport {\n  ArrowRightIcon,\n  XMarkIcon,\n  ArrowLeftIcon,\n} from 'react-native-heroicons/outline';\n\ntype DRFooterActionsProps = {\n  onContinue: () => void;\n  continueDisabled?: boolean;\n  onCancel?: () => void;\n  onBack?: () => void;\n  homeRouteName?: string;\n  accentColor?: string;\n  continueLabel?: string;\n};\n\nexport default function DRFooterActions({\n  onContinue,\n  continueDisabled,\n  onCancel,\n  onBack,\n  homeRouteName = 'DailyReport',\n  // TODO: Create a const for default black color\n  accentColor = '#000000',\n  continueLabel = 'Continuar',\n}: DRFooterActionsProps) {\n  const navigation = useNavigation();\n  const route = useRoute();\n  const insets = useSafeAreaInsets();\n  const calcPaddingBottom =\n    Platform.OS === 'ios' ? Math.max(insets.bottom, 12) : 12;\n\n  const canGoBack =\n    // @ts-ignore navegación provista por host\n    typeof navigation?.canGoBack === 'function' && navigation.canGoBack();\n  const showBackButton = canGoBack && route?.name !== homeRouteName;\n\n  const handleCancel = () => {\n    if (onCancel) return onCancel();\n    // @ts-ignore navegación provista por host\n    navigation?.navigate?.('Home');\n  };\n\n  return (\n    <View style={[styles.footerBar, { paddingBottom: calcPaddingBottom }]}>\n      <StatusButton\n        title=\"Cancelar\"\n        onPress={handleCancel}\n        leftIcon={<XMarkIcon size={20} color={accentColor} />}\n        // Texto visible con color de marca para contraste\n        textStyle={{ color: accentColor }}\n        style={styles.flexOne}\n      />\n      {showBackButton ? (\n        <StatusButton\n          title=\"Atrás\"\n          onPress={() => {\n            if (onBack) return onBack();\n            // @ts-ignore navegación provista por host\n            navigation?.goBack?.();\n          }}\n          leftIcon={<ArrowLeftIcon size={20} color={accentColor} />}\n          backgroundColor=\"transparent\"\n          textStyle={{ color: accentColor }}\n          style={styles.flexOne}\n        />\n      ) : (\n        <View style={styles.flexOne} />\n      )}\n      <StatusButton\n        title={continueLabel}\n        onPress={onContinue}\n        backgroundColor={accentColor}\n        rightIcon={<ArrowRightIcon size={20} color=\"white\" />}\n        style={styles.flexOne}\n        disabled={continueDisabled}\n      />\n    </View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  footerBar: {\n    position: 'absolute',\n    left: 0,\n    right: 0,\n    bottom: 0,\n    backgroundColor: '#fff',\n    borderTopWidth: 1,\n    borderTopColor: '#E5E7EB',\n    paddingHorizontal: 20,\n    // Reducido de 12 a 10 para un diseño más compacto\n    paddingTop: 10,\n    // Espaciado entre botones\n    gap: 12,\n    flexDirection: 'row',\n    shadowColor: '#000',\n    shadowOpacity: 0.08,\n    shadowRadius: 8,\n    shadowOffset: { width: 6, height: -3 },\n    elevation: 6,\n  },\n  cancelButtonText: {\n    // Color principal para el texto de cancelar (mejor visibilidad)\n    color: '#374151',\n  },\n  whiteText: {\n    // Color blanco para botones con fondo de color acento\n    color: 'white',\n  },\n  flexOne: { flex: 1 },\n});\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { View, StyleSheet, ScrollView, Text, TextInput } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport {\n  SummaryTable,\n  Select,\n  MenuItem,\n  ConfirmationModal,\n  SearchableSelect,\n  Toast,\n  FormToastContainer,\n  useNetworkStatus,\n  LoadingSpinner,\n} from '@data-oil-front/ui-mobile';\nimport DRFooterActions from '../components/DRFooterActions';\nimport { useDailyReportBaseStore } from '../store/dailyReportBase.store';\nimport { Controller, useForm } from 'react-hook-form';\nimport {\n  getDriversInfo,\n  type DriverInfo,\n  submitVacuumLoadReport,\ngetVacuumLoadById,\n  type VacuumLoadDetail,\n  useTheme,\n  useAuth,\n} from '@data-oil-front/core-shared';\nimport { TABLE_NAMES } from '@data-oil-front/core-shared';\nimport { useDailyReportVacuumStore } from '../store/dailyReportVacuum.store';\nimport type { DRVacuumLoadingStep5 } from '../store/dailyReportVacuum.store';\n\ninterface FormInputs {\n  nationality: string;\n  driverId: string;\n  driverName: string;\n  driverLastName: string;\n}\n\ntype RouteParams = {\n  mode?: string;\n  reportId?: string | number;\n  id?: string | number;\n  editionNumber?: string | number;\n  snapshot?: Record<string, any> | null;\n};\n\nconst parseNumberParam = (value: unknown): number | null => {\n  if (value === null || value === undefined) return null;\n  const parsed = Number(value);\n  return Number.isFinite(parsed) ? parsed : null;\n};\n\nexport default function DRPage5VacuumLoading() {\n  const navigation = useNavigation();\n  const route = useRoute<any>();\n  const params: RouteParams = route?.params ?? {};\n  const reportIdParam = parseNumberParam(params.reportId ?? params.id);\n  const editionNumberParam = parseNumberParam(params.editionNumber);\n  const snapshotParam = params.snapshot ?? null;\n  const isEditing = params.mode === 'edit' && reportIdParam != null;\n  const insets = useSafeAreaInsets();\n  const { primaryColor: themeColor } = useTheme();\n  const accentColor = themeColor ?? '#1B418C';\n  const { summary, setEditing, editing } = useDailyReportBaseStore(state => state);\n  const loading = useDailyReportVacuumStore(state => state.loading);\n  const setLoadingStep5 = useDailyReportVacuumStore(state => state.setLoadingStep5);\n  const setLoadingMeta = useDailyReportVacuumStore(state => state.setLoadingMeta);\n  const resetVacuumStore = useDailyReportVacuumStore(state => state.reset);\n  const loadingStep5 = (loading.step5 ?? {}) as Partial<DRVacuumLoadingStep5>;\n  const loadingMeta = loading.meta ?? { editionMode: false };\n  const prefillReport = (loadingMeta.payload?.report ?? snapshotParam ?? null) as VacuumLoadDetail | null;\n  const [prefillLoading, setPrefillLoading] = useState(isEditing && !prefillReport);\n  const injectedSignatureRef = useRef<string | null>(null);\n  const { user } = useAuth();\n  const network = useNetworkStatus();\n  const isOffline = !(network?.isConnected ?? false);\n  const continueLabel = isEditing\n    ? 'Actualizar'\n    : isOffline\n    ? 'Guardar'\n    : 'Finalizar';\n\n  const defaultFormValues = useMemo(\n    () => ({\n      nationality: loadingStep5.nationality ?? '',\n      driverId: loadingStep5.driverId ?? '',\n      driverName: loadingStep5.driverName ?? '',\n      driverLastName: loadingStep5.driverLastName ?? '',\n    }),\n    [\n      loadingStep5.driverId,\n      loadingStep5.driverLastName,\n      loadingStep5.driverName,\n      loadingStep5.nationality,\n    ],\n  );\n\n  const [isModalOpen, setIsModalOpen] = useState(false);\n  const [driversList, setDriversList] = useState<DriverInfo[]>([]);\n  const [loadingDrivers, setLoadingDrivers] = useState(false);\n  const [toast, setToast] = useState<{\n    type: 'success' | 'error' | 'notification';\n    title: string;\n    message: string;\n  } | null>(null);\n\n  const {\n    control,\n    handleSubmit,\n    setValue,\n    watch,\n    formState: { isValid, touchedFields },\n    reset,\n  } = useForm<FormInputs>({\n    defaultValues: defaultFormValues,\n    mode: 'onChange',\n  });\n\n  useEffect(() => {\n    if (isEditing && reportIdParam != null) {\n      const needsUpdate =\n        !editing.isEditing ||\n        editing.table !== TABLE_NAMES.DAILY_REPORT_VACUUM_LOAD ||\n        editing.reportId !== reportIdParam ||\n        (editing.revision ?? null) !== (editionNumberParam ?? null);\n\n      if (needsUpdate) {\n        setEditing({\n          isEditing: true,\n          reportId: reportIdParam,\n          table: TABLE_NAMES.DAILY_REPORT_VACUUM_LOAD,\n          revision: editionNumberParam ?? null,\n          payload: snapshotParam ? { report: snapshotParam } : editing.payload ?? null,\n        });\n      }\n    } else if (\n      !isEditing &&\n      editing.isEditing &&\n      editing.table === TABLE_NAMES.DAILY_REPORT_VACUUM_LOAD\n    ) {\n      setEditing({\n        isEditing: false,\n        reportId: null,\n        table: null,\n        revision: null,\n        payload: null,\n      });\n    }\n  }, [\n    editionNumberParam,\n    editing.isEditing,\n    editing.payload,\n    editing.reportId,\n    editing.revision,\n    editing.table,\n    isEditing,\n    reportIdParam,\n    setEditing,\n    snapshotParam,\n  ]);\n\n  useEffect(() => {\n    if (isEditing && reportIdParam != null) {\n      const nextRecordId = String(reportIdParam);\n      const needsUpdate =\n        !loadingMeta.editionMode ||\n        loadingMeta.recordId !== nextRecordId ||\n        (loadingMeta.revision ?? null) !== (editionNumberParam ?? null) ||\n        (snapshotParam && loadingMeta.payload?.report !== snapshotParam);\n\n      if (needsUpdate) {\n        setLoadingMeta({\n          editionMode: true,\n          recordId: nextRecordId,\n          revision: editionNumberParam ?? null,\n          payload: snapshotParam ? { report: snapshotParam } : loadingMeta.payload ?? null,\n        });\n      }\n    } else if (loadingMeta.editionMode && !isEditing) {\n      setLoadingMeta({\n        editionMode: false,\n        recordId: null,\n        revision: null,\n        payload: null,\n      });\n    }\n  }, [\n    editionNumberParam,\n    isEditing,\n    loadingMeta.editionMode,\n    loadingMeta.payload,\n    loadingMeta.recordId,\n    loadingMeta.revision,\n    reportIdParam,\n    setLoadingMeta,\n    snapshotParam,\n  ]);\n\n  useEffect(() => {\n    reset(defaultFormValues);\n  }, [defaultFormValues, reset]);\n\n  useEffect(() => {\n    injectedSignatureRef.current = null;\n  }, [reportIdParam]);\n\n  useEffect(() => {\n    if (!isEditing) {\n      injectedSignatureRef.current = null;\n      if (prefillLoading) {\n        setPrefillLoading(false);\n      }\n      return;\n    }\n\n    if (prefillReport && prefillLoading) {\n      setPrefillLoading(false);\n    }\n  }, [isEditing, prefillLoading, prefillReport]);\n\n  useEffect(() => {\n    if (!isEditing || prefillReport || reportIdParam == null) {\n      return;\n    }\n\n    let cancelled = false;\n    setPrefillLoading(true);\n\n    (async () => {\n      const detail = await getVacuumLoadById(Number(reportIdParam), snapshotParam ?? undefined);\n      if (cancelled) return;\n      if (detail) {\n        setLoadingMeta({\n          editionMode: true,\n          recordId: String(reportIdParam),\n          revision: editionNumberParam ?? null,\n          payload: { report: detail },\n        });\n        setPrefillLoading(false);\n      } else {\n        setPrefillLoading(false);\n      }\n    })();\n\n    return () => {\n      cancelled = true;\n    };\n  }, [\n    editionNumberParam,\n    isEditing,\n    prefillReport,\n    reportIdParam,\n    setLoadingMeta,\n    snapshotParam,\n  ]);\n\n  useEffect(() => {\n    if (!isEditing || !prefillReport || reportIdParam == null) return;\n\n    const signature = `${reportIdParam}-${prefillReport.date_updated ?? ''}-${prefillReport.driver_id_card_number ?? ''}-${prefillReport.driver_first_name ?? ''}-${prefillReport.driver_last_name ?? ''}-${prefillReport.driver_nationality ?? ''}`;\n\n    if (injectedSignatureRef.current === signature) {\n      return;\n    }\n\n    setLoadingStep5({\n      nationality: prefillReport.driver_nationality ?? '',\n      driverId:\n        prefillReport.driver_id_card_number != null\n          ? String(prefillReport.driver_id_card_number)\n          : '',\n      driverName: prefillReport.driver_first_name ?? '',\n      driverLastName: prefillReport.driver_last_name ?? '',\n    });\n    injectedSignatureRef.current = signature;\n  }, [isEditing, prefillReport, reportIdParam, setLoadingStep5]);\n\n  const nationality = watch('nationality');\n  const driverId = watch('driverId');\n\n  useEffect(() => {\n    const loadDrivers = async () => {\n      setLoadingDrivers(true);\n      try {\n        const rows = await getDriversInfo();\n        setDriversList(rows);\n      } catch {\n        setDriversList([]);\n      } finally {\n        setLoadingDrivers(false);\n      }\n    };\n    loadDrivers();\n  }, []);\n\n  useEffect(() => {\n    if (!driverId) return;\n    const found = driversList.find(\n      d => String(d.card_number) === String(driverId),\n    );\n    if (found) {\n      setValue('driverName', found.first_name);\n      setValue('driverLastName', found.last_name);\n    }\n  }, [driverId, driversList, setValue]);\n\n  const driverIdOptions = useMemo(\n    () =>\n      driversList\n        .filter(d => !nationality || d.nationality === nationality)\n        .map(d => ({ value: d.card_number, label: String(d.card_number) })),\n    [driversList, nationality],\n  );\n\n  return (\n    <View style={styles.screen}>\n      <ScrollView\n        style={styles.container}\n        contentContainerStyle={{ paddingBottom: insets.bottom + 120 }}\n      >\n        <View style={styles.form}>\n          {prefillLoading ? (\n            <View style={styles.loadingBox}>\n              <LoadingSpinner />\n              <Text style={styles.loadingText}>Cargando datos del reporte...</Text>\n            </View>\n          ) : null}\n          <SummaryTable\n            items={[\n              { name: 'Localización', value: summary.location ?? '' },\n              { name: 'Actividad', value: summary.activity ?? '' },\n              { name: 'Campo', value: summary.field ?? '' },\n              { name: 'Instalación', value: summary.facility ?? '' },\n            ]}\n          />\n\n          <View style={styles.fieldBlock} />\n\n          <Controller\n            control={control}\n            name=\"nationality\"\n            rules={{ required: true }}\n            render={({ field: { value, onChange } }) => (\n              <Select\n                label=\"Nacionalidad\"\n                value={value}\n                required\n                onChange={v => {\n                  onChange(String(v ?? ''));\n                  setValue('driverId', '');\n                  setValue('driverName', '');\n                  setValue('driverLastName', '');\n                }}\n                accentColor={accentColor}\n              >\n                <MenuItem value=\"\">Seleccione nacionalidad</MenuItem>\n                <MenuItem value=\"venezuelan\">Venezolano</MenuItem>\n                <MenuItem value=\"foreigner\">Extranjero</MenuItem>\n              </Select>\n            )}\n          />\n          {touchedFields.nationality === true && !nationality ? (\n            <Text style={styles.error}>Este campo es obligatorio</Text>\n          ) : null}\n\n          <View style={styles.fieldBlock} />\n\n          {driversList.length > 0 ? (\n            <Controller\n              control={control}\n              name=\"driverId\"\n              rules={{ required: true }}\n              render={({ field: { value, onChange } }) => (\n                <SearchableSelect\n                  label=\"Cédula de identidad\"\n                  selectedValue={value}\n                  onValueChange={v => onChange(String(v ?? ''))}\n                  options={driverIdOptions}\n                  disabled={!nationality || loadingDrivers}\n                  loading={loadingDrivers}\n                  loadingMessage=\"Cargando cédulas...\"\n                  placeholder={\n                    !nationality\n                      ? 'Seleccione una nacionalidad primero'\n                      : loadingDrivers\n                      ? 'Cargando cédulas...'\n                      : driverIdOptions.length === 0\n                      ? 'No hay cédulas para esta nacionalidad'\n                      : 'Seleccione una cédula'\n                  }\n                  searchPlaceholder={\n                    loadingDrivers ? 'Cargando cédulas...' : 'Buscar cédulas...'\n                  }\n                  accentColor={accentColor}\n                  required={true}\n                />\n              )}\n            />\n          ) : (\n            <>\n              <Text style={styles.label}>\n                Cédula de Identidad (ID) <Text style={styles.required}>*</Text>\n              </Text>\n              <Controller\n                control={control}\n                name=\"driverId\"\n                rules={{ required: true }}\n                render={({ field: { value, onChange } }) => (\n                  <TextInput\n                    placeholder=\"Introduce la cédula\"\n                    value={value}\n                    onChangeText={onChange}\n                    style={styles.input}\n                  />\n                )}\n              />\n            </>\n          )}\n          {touchedFields.driverId === true && !watch('driverId') ? (\n            <Text style={styles.error}>Este campo es obligatorio</Text>\n          ) : null}\n\n          <View style={styles.fieldBlock} />\n\n          <Text style={styles.label}>\n            Nombre <Text style={styles.required}>*</Text>\n          </Text>\n          <Controller\n            control={control}\n            name=\"driverName\"\n            rules={{ required: true }}\n            render={({ field: { value, onChange } }) => (\n              <TextInput\n                placeholder=\"Nombre del chofer\"\n                value={value}\n                onChangeText={onChange}\n                style={styles.input}\n                editable={driversList.length === 0}\n              />\n            )}\n          />\n          {touchedFields.driverName === true && !watch('driverName') ? (\n            <Text style={styles.error}>Este campo es obligatorio</Text>\n          ) : null}\n\n          <View style={styles.fieldBlock} />\n\n          <Text style={styles.label}>\n            Apellido <Text style={styles.required}>*</Text>\n          </Text>\n          <Controller\n            control={control}\n            name=\"driverLastName\"\n            rules={{ required: true }}\n            render={({ field: { value, onChange } }) => (\n              <TextInput\n                placeholder=\"Apellido del chofer\"\n                value={value}\n                onChangeText={onChange}\n                style={styles.input}\n                editable={driversList.length === 0}\n              />\n            )}\n          />\n          {touchedFields.driverLastName === true && !watch('driverLastName') ? (\n            <Text style={styles.error}>Este campo es obligatorio</Text>\n          ) : null}\n        </View>\n      </ScrollView>\n\n      <DRFooterActions\n        onCancel={() => setIsModalOpen(true)}\n        onContinue={handleSubmit(async form => {\n          if (isEditing && isOffline) {\n            setToast({\n              type: 'error',\n              title: 'Sin conexión',\n              message: 'Necesitas conexión a internet para actualizar el reporte.',\n            });\n            return;\n          }\n          try {\n            setLoadingStep5(form);\n            const result = await submitVacuumLoadReport({\n              summary,\n              step3: loading.step3 as any,\n              step4: loading.step4 as any,\n              step5: form,\n              userId: (user as any)?.id ?? null,\n              edition: isEditing && reportIdParam != null ? { id: reportIdParam, editionNumber: editionNumberParam } : undefined,\n            });\n            console.log('result?', result);\n            if (result.success && result.offline) {\n              resetVacuumStore();\n              setToast({\n                type: 'notification',\n                title: 'Guardado offline',\n                message:\n                  'El reporte se guardó para enviar luego. Puedes sincronizarlo en Datos de sincronización.',\n              });\n              setTimeout(() => {\n                if (isEditing) {\n                  // @ts-ignore navegación provista por host\n                  navigation?.navigate?.('ReportsHistory' as never);\n                } else {\n                  // @ts-ignore navegación provista por host\n                  navigation?.navigate?.('Home' as never);\n                }\n              }, 1800);\n              return;\n            } else {\n              if (result.success) {\n                resetVacuumStore();\n              }\n              setToast({\n                type: result.success ? 'success' : 'error',\n                title: result.success ? 'Éxito' : 'Error',\n                message: result.success ? 'Reporte enviado' : 'No se pudo enviar el reporte',\n              });\n              if (result.success) {\n                setTimeout(() => {\n                  if (isEditing) {\n                    // @ts-ignore navegación provista por host\n                    navigation.navigate('ReportsHistory');\n                  } else {\n                    // @ts-ignore navegación provista por host\n                    navigation.navigate('Home');\n                  }\n                }, 1800);\n              }\n            }\n          } catch (e) {\n            setToast({\n              type: 'error',\n              title: 'Error',\n              message: 'No se pudo enviar el reporte',\n            });\n          }\n        })}\n        continueDisabled={prefillLoading || !isValid}\n        accentColor={accentColor}\n        continueLabel={continueLabel}\n      />\n\n      {toast ? (\n        <FormToastContainer style={styles.formToastTop}>\n          <Toast\n            type={toast.type}\n            title={toast.title}\n            message={toast.message}\n            onClose={() => setToast(null)}\n          />\n        </FormToastContainer>\n      ) : null}\n\n      <ConfirmationModal\n        open={isModalOpen}\n        onClose={() => setIsModalOpen(false)}\n        onConfirm={() => {\n          // @ts-ignore navegación provista por host\n          if (isEditing) {\n            navigation?.navigate?.('ReportsHistory' as never);\n          } else {\n            navigation?.navigate?.('Home' as never);\n          }\n        }}\n        title=\"¿Estás seguro de que deseas cancelar?\"\n        message=\"Se perderán todos los datos cargados en el reporte actual.\"\n      />\n    </View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: { flex: 1, backgroundColor: '#f9fafb' },\n  container: { flex: 1, paddingTop: 16 },\n  form: { paddingHorizontal: 20, paddingBottom: 24, gap: 0 },\n  loadingBox: {\n    paddingVertical: 16,\n    alignItems: 'center',\n  },\n  loadingText: {\n    marginTop: 8,\n    color: '#6B7280',\n    fontSize: 14,\n  },\n  fieldBlock: { height: 16 },\n  label: { marginBottom: 6, color: '#6B7280', fontSize: 14, fontWeight: '500' },\n  error: { color: '#FF1D4B', fontSize: 13, marginTop: 6 },\n  input: {\n    borderWidth: 1,\n    borderColor: '#D1D5DB',\n    borderRadius: 8,\n    backgroundColor: '#FFFFFF',\n    paddingVertical: 12,\n    paddingHorizontal: 14,\n    fontSize: 16,\n    color: '#111827',\n  },\n  required: { color: 'red', fontSize: 14, fontWeight: '600' },\n  formToastTop: { top: 8 },\n});\n","import { create } from 'zustand';\nimport type { ReportHistoryTable } from '@data-oil-front/core-shared';\n\ninterface DailyReportBaseStore {\n  fieldId: string | null;\n  summary: {\n    location: string | null;\n    activity: string | null;\n    field: string | null;\n    facility: string | null;\n  };\n  editing: DailyReportEditingState;\n}\n\ninterface DailyReportBaseStoreActions {\n  setFieldId: (fieldId: string | null) => void;\n  setSummary: (summary: DailyReportBaseStore['summary']) => void;\n  setEditing: (editing: Partial<DailyReportEditingState>) => void;\n  resetEditing: () => void;\n}\n\nexport interface DailyReportEditingState {\n  isEditing: boolean;\n  reportId: string | number | null;\n  table: ReportHistoryTable | null;\n  revision?: number | null;\n  payload?: Record<string, any> | null;\n}\n\nconst INITIAL_EDITING_STATE: DailyReportEditingState = {\n  isEditing: false,\n  reportId: null,\n  table: null,\n  revision: null,\n  payload: null,\n};\n\nconst INITIAL_STATE: DailyReportBaseStore = {\n  fieldId: null,\n  summary: {\n    location: null,\n    activity: null,\n    field: null,\n    facility: null,\n  },\n  editing: INITIAL_EDITING_STATE,\n};\n\nexport const useDailyReportBaseStore = create<\n  DailyReportBaseStore & DailyReportBaseStoreActions\n>(set => ({\n  ...INITIAL_STATE,\n  // ACTIONS\n  setFieldId: (fieldId: string | null) => set(state => ({ ...state, fieldId })),\n  setSummary: (summary: DailyReportBaseStore['summary']) =>\n    set(state => ({ ...state, summary })),\n  setEditing: editing =>\n    set(state => ({\n      ...state,\n      editing: {\n        ...state.editing,\n        ...editing,\n      },\n    })),\n  resetEditing: () =>\n    set(state => ({\n      ...state,\n      editing: INITIAL_EDITING_STATE,\n    })),\n}));\n","import { create } from 'zustand';\n\nexport interface DRVacuumLoadingStep3 {\n  origin_facility_id: string | null;\n  origin_facility_type: string | null;\n  origin_facility_type_view?: string | null;\n  id?: string | null;\n  destination_facility_id: string | null;\n  destination_facility_type: string | null;\n  destination_facility_type_view?: string | null;\n  startDate: string;\n  startTime: string;\n  endDate: string;\n  endTime: string;\n  initialMeasurement?: string;\n  finalMeasurement?: string;\n  volume: string;\n  fluidType: string;\n  comments?: string;\n}\n\nexport interface DRVacuumLoadingStep4 {\n  vacuumCondition: string;\n  chutoPlate: string;\n  vacuumPlate: string;\n}\n\nexport interface DRVacuumLoadingStep5 {\n  nationality: string;\n  driverId: string;\n  driverName: string;\n  driverLastName: string;\n}\n\nexport interface DRVacuumUnloadingStep3 {\n  loadId: number | null;\n  vacuumPlate?: string | null;\n  originFacilityId?: string | null;\n  originFacilityType?: string | null;\n  dateCreated?: string | null;\n}\n\nexport interface DRVacuumUnloadingStep4 {\n  startDate?: string | null;\n  startTime?: string | null;\n  endDate?: string | null;\n  endTime?: string | null;\n  originFacilityId?: string | null;\n  vacuumPlate?: string | null;\n  finalMeasurement?: string | null;\n  volume?: string | null;\n  fluidType?: string | null;\n  finalDestinationId?: string | null;\n  comments?: string | null;\n}\n\nexport interface DRVacuumUnloadingStep5 {\n  receiverName?: string | null;\n  receiverId?: string | null;\n  observations?: string | null;\n}\n\nexport interface DRVacuumMeta {\n  editionMode: boolean;\n  recordId?: string | null;\n  revision?: number | null;\n  payload?: Record<string, any> | null;\n  id?: number | null;\n}\n\ninterface DRVacuumFlowState<S3, S4, S5> {\n  step3: Partial<S3>;\n  step4: Partial<S4>;\n  step5: Partial<S5>;\n  meta: DRVacuumMeta;\n}\n\ninterface DRVacuumStoreState {\n  loading: DRVacuumFlowState<DRVacuumLoadingStep3, DRVacuumLoadingStep4, DRVacuumLoadingStep5>;\n  unloading: DRVacuumFlowState<DRVacuumUnloadingStep3, DRVacuumUnloadingStep4, DRVacuumUnloadingStep5>;\n  setLoadingStep3: (v: Partial<DRVacuumLoadingStep3>) => void;\n  setLoadingStep4: (v: Partial<DRVacuumLoadingStep4>) => void;\n  setLoadingStep5: (v: Partial<DRVacuumLoadingStep5>) => void;\n  setUnloadingStep3: (v: Partial<DRVacuumUnloadingStep3>) => void;\n  setUnloadingStep4: (v: Partial<DRVacuumUnloadingStep4>) => void;\n  setUnloadingStep5: (v: Partial<DRVacuumUnloadingStep5>) => void;\n  setLoadingMeta: (v: Partial<DRVacuumMeta>) => void;\n  setUnloadingMeta: (v: Partial<DRVacuumMeta>) => void;\n  resetLoading: () => void;\n  resetUnloading: () => void;\n  reset: () => void;\n}\n\nconst INITIAL_META_STATE: DRVacuumMeta = {\n  editionMode: false,\n  recordId: null,\n  revision: null,\n  payload: null,\n};\n\nconst createLoadingState = (): DRVacuumFlowState<DRVacuumLoadingStep3, DRVacuumLoadingStep4, DRVacuumLoadingStep5> => ({\n  step3: {},\n  step4: {},\n  step5: {},\n  meta: { ...INITIAL_META_STATE },\n});\n\nconst createUnloadingState = (): DRVacuumFlowState<DRVacuumUnloadingStep3, DRVacuumUnloadingStep4, DRVacuumUnloadingStep5> => ({\n  step3: {},\n  step4: {},\n  step5: {},\n  meta: { ...INITIAL_META_STATE },\n});\n\nexport const useDailyReportVacuumStore = create<DRVacuumStoreState>(set => ({\n  loading: createLoadingState(),\n  unloading: createUnloadingState(),\n  setLoadingStep3: v => set(state => ({\n    loading: {\n      ...state.loading,\n      step3: { ...state.loading.step3, ...v },\n    },\n  })),\n  setLoadingStep4: v => set(state => ({\n    loading: {\n      ...state.loading,\n      step4: { ...state.loading.step4, ...v },\n    },\n  })),\n  setLoadingStep5: v => set(state => ({\n    loading: {\n      ...state.loading,\n      step5: { ...state.loading.step5, ...v },\n    },\n  })),\n  setUnloadingStep3: v => set(state => ({\n    unloading: {\n      ...state.unloading,\n      step3: { ...state.unloading.step3, ...v },\n    },\n  })),\n  setUnloadingStep4: v => set(state => ({\n    unloading: {\n      ...state.unloading,\n      step4: { ...state.unloading.step4, ...v },\n    },\n  })),\n  setUnloadingStep5: v => set(state => ({\n    unloading: {\n      ...state.unloading,\n      step5: { ...state.unloading.step5, ...v },\n    },\n  })),\n  setLoadingMeta: v => set(state => ({\n    loading: {\n      ...state.loading,\n      meta: { ...state.loading.meta, ...v },\n    },\n  })),\n  setUnloadingMeta: v => set(state => ({\n    unloading: {\n      ...state.unloading,\n      meta: { ...state.unloading.meta, ...v },\n    },\n  })),\n  resetLoading: () => set(state => ({\n    loading: createLoadingState(),\n    unloading: state.unloading,\n  })),\n  resetUnloading: () => set(state => ({\n    loading: state.loading,\n    unloading: createUnloadingState(),\n  })),\n  reset: () => set(() => ({\n    loading: createLoadingState(),\n    unloading: createUnloadingState(),\n  })),\n}));\n\n\n"],"names":["DRFooterActions","onContinue","continueDisabled","onCancel","onBack","homeRouteName","accentColor","continueLabel","navigation","useNavigation","route","useRoute","insets","useSafeAreaInsets","calcPaddingBottom","Platform","OS","Math","max","bottom","showBackButton","canGoBack","name","View","style","styles","footerBar","paddingBottom","StatusButton","title","onPress","handleCancel","navigate","leftIcon","XMarkIcon","size","color","textStyle","flexOne","goBack","ArrowLeftIcon","backgroundColor","rightIcon","ArrowRightIcon","disabled","StyleSheet","create","position","left","right","borderTopWidth","borderTopColor","paddingHorizontal","paddingTop","gap","flexDirection","shadowColor","shadowOpacity","shadowRadius","shadowOffset","width","height","elevation","cancelButtonText","whiteText","flex","DRPage5VacuumLoading","parseNumberParam","value","parsed","Number","isFinite","params","loading","summary","RouteParams","reportIdParam","reportId","id","editionNumberParam","editionNumber","snapshotParam","snapshot","isEditing","mode","themeColor","useTheme","primaryColor","state","setEditing","editing","useDailyReportBaseStore","useDailyReportVacuumStore","setLoadingStep5","setLoadingMeta","resetVacuumStore","reset","loadingStep5","step5","loadingMeta","meta","editionMode","prefillReport","payload","report","prefillLoading","setPrefillLoading","useState","injectedSignatureRef","useRef","useAuth","user","network","useNetworkStatus","isOffline","isConnected","defaultFormValues","useMemo","nationality","driverId","driverName","driverLastName","isModalOpen","setIsModalOpen","setDriversList","loadingDrivers","setLoadingDrivers","toast","setToast","defaultValues","control","useForm","handleSubmit","setValue","watch","formState","isValid","touchedFields","useEffect","table","TABLE_NAMES","DAILY_REPORT_VACUUM_LOAD","revision","nextRecordId","String","recordId","current","cancelled","detail","getVacuumLoadById","undefined","signature","date_updated","driver_id_card_number","driver_first_name","driver_last_name","driver_nationality","rows","getDriversInfo","found","driversList","find","d","card_number","first_name","last_name","driverIdOptions","filter","map","label","screen","ScrollView","container","contentContainerStyle","form","loadingBox","LoadingSpinner","Text","loadingText","SummaryTable","items","location","activity","field","facility","fieldBlock","Controller","rules","required","render","onChange","Select","v","MenuItem","error","length","SearchableSelect","selectedValue","onValueChange","options","loadingMessage","placeholder","searchPlaceholder","TextInput","onChangeText","input","editable","type","message","result","submitVacuumLoadReport","step3","step4","userId","edition","console","log","success","offline","setTimeout","e","FormToastContainer","formToastTop","Toast","onClose","ConfirmationModal","open","onConfirm","paddingVertical","alignItems","marginTop","fontSize","marginBottom","fontWeight","borderWidth","borderColor","borderRadius","top","INITIAL_EDITING_STATE","INITIAL_STATE","fieldId","DailyReportBaseStore","set","setFieldId","setSummary","resetEditing","INITIAL_META_STATE","createLoadingState","createUnloadingState","DRVacuumStoreState","unloading","setLoadingStep3","setLoadingStep4","setUnloadingStep3","setUnloadingStep4","setUnloadingStep5","setUnloadingMeta","resetLoading","resetUnloading"],"mappings":"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"}