{"version":3,"file":"__federation_expose_DRPage3VacuumLoading.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/DRPage3VacuumLoading.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 } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { SummaryTable, DatePicker, TimePicker, Select, MenuItem, SearchableSelect, ConfirmationModal, NumericField, LoadingSpinner } from '@data-oil-front/ui-mobile';\nimport DRFooterActions from '../components/DRFooterActions';\nimport { useDailyReportBaseStore } from '../store/dailyReportBase.store';\nimport { getFacilitiesList, getVacuumLoadById, useTheme, configService, type FacilityListItem, type VacuumLoadDetail } from '@data-oil-front/core-shared';\nimport { TABLE_NAMES } from \"@data-oil-front/core-shared\";\nimport { useDailyReportVacuumStore } from '../store/dailyReportVacuum.store';\nimport type { DRVacuumLoadingStep3 } from '../store/dailyReportVacuum.store';\nimport dayjs from 'dayjs';\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 DRPage3VacuumLoading() {\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, setSummary, setEditing } = useDailyReportBaseStore(state => state);\n\n  const [isModalOpen, setIsModalOpen] = useState(false);\n  const [facilities, setFacilities] = useState<FacilityListItem[]>([]);\n  const [loadingFacilities, setLoadingFacilities] = useState(false);\n  const [origin, setOrigin] = useState<string | null>(null);\n  const [destination, setDestination] = useState<string | null>(null);\n  const [startDate, setStartDate] = useState<Date | null>(new Date());\n  const [startTime, setStartTime] = useState<string | null>(null);\n  const [endDate, setEndDate] = useState<Date | null>(new Date());\n  const [endTime, setEndTime] = useState<string | null>(null);\n  const [initialMeasurement, setInitialMeasurement] = useState<string>('');\n  const [finalMeasurement, setFinalMeasurement] = useState<string>('');\n  const [fluidType, setFluidType] = useState<string>('');\n  const [volume, setVolume] = useState<string>('');\n  const [touched, setTouched] = useState(false);\n  const injectedReportIdRef = useRef<number | null>(null);\n  const injectedReportSignatureRef = useRef<string | null>(null);\n\n  const loadingState = useDailyReportVacuumStore(state => state.loading);\n  const setLoadingStep3 = useDailyReportVacuumStore(state => state.setLoadingStep3);\n  const setLoadingMeta = useDailyReportVacuumStore(state => state.setLoadingMeta);\n  const step3State = (loadingState.step3 ?? {}) as Partial<DRVacuumLoadingStep3>;\n  const loadingMeta = loadingState.meta ?? { editionMode: false };\n  const prefillReport = (loadingMeta.payload?.report ?? null) as VacuumLoadDetail | null;\n  const [prefillLoading, setPrefillLoading] = useState(isEditing && !prefillReport);\n\n  const {\n    startDate: step3StartDate,\n    startTime: step3StartTime,\n    endDate: step3EndDate,\n    endTime: step3EndTime,\n    origin_facility_id: step3OriginId,\n    destination_facility_id: step3DestinationId,\n    initialMeasurement: step3Initial,\n    finalMeasurement: step3Final,\n    volume: step3Volume,\n    fluidType: step3FluidType,\n  } = step3State;\n\n  useEffect(() => {\n    setEditing(prevEditing => {\n      if (isEditing && reportIdParam != null) {\n        const needsUpdate =\n          !prevEditing.isEditing ||\n          prevEditing.table !== TABLE_NAMES.DAILY_REPORT_VACUUM_LOAD ||\n          prevEditing.reportId !== reportIdParam ||\n          (prevEditing.revision ?? null) !== (editionNumberParam ?? null);\n\n        if (needsUpdate) {\n          return {\n            isEditing: true,\n            reportId: reportIdParam,\n            table: TABLE_NAMES.DAILY_REPORT_VACUUM_LOAD,\n            revision: editionNumberParam ?? null,\n            payload: snapshotParam ? { report: snapshotParam } : prevEditing.payload ?? null,\n          };\n        }\n      } else if (\n        !isEditing &&\n        prevEditing.isEditing &&\n        prevEditing.table === TABLE_NAMES.DAILY_REPORT_VACUUM_LOAD\n      ) {\n        return {\n          isEditing: false,\n          reportId: null,\n          table: null,\n          revision: null,\n          payload: null,\n        };\n      }\n      return prevEditing;\n    });\n  }, [isEditing, reportIdParam, editionNumberParam, snapshotParam, setEditing]);\n\n  useEffect(() => {\n    setLoadingMeta((prevLoadingMeta: any) => {\n      if (isEditing && reportIdParam != null) {\n        const nextRecordId = String(reportIdParam);\n        const needsUpdate =\n          !prevLoadingMeta.editionMode ||\n          prevLoadingMeta.recordId !== nextRecordId ||\n          (prevLoadingMeta.revision ?? null) !== (editionNumberParam ?? null) ||\n          (snapshotParam && prevLoadingMeta.payload?.report !== snapshotParam);\n\n        if (needsUpdate) {\n          return {\n            ...prevLoadingMeta,\n            editionMode: true,\n            recordId: nextRecordId,\n            revision: editionNumberParam ?? null,\n            payload: snapshotParam ? { report: snapshotParam } : prevLoadingMeta.payload ?? null,\n          };\n        }\n      } else if (prevLoadingMeta.editionMode && !isEditing) {\n        return {\n          ...prevLoadingMeta,\n          editionMode: false,\n          recordId: null,\n          revision: null,\n          payload: null,\n        };\n      }\n      return prevLoadingMeta;\n    });\n  }, [isEditing, reportIdParam, editionNumberParam, snapshotParam, setLoadingMeta]);\n\n  useEffect(() => {\n    setPrefillLoading(prevPrefillLoading => {\n      if (!isEditing && prevPrefillLoading) {\n        injectedReportIdRef.current = null;\n        injectedReportSignatureRef.current = null;\n        return false;\n      }\n      if (isEditing && prefillReport && prevPrefillLoading) {\n        return false;\n      }\n      return prevPrefillLoading;\n    });\n  }, [isEditing, prefillReport]);\n\n  useEffect(() => {\n    injectedReportIdRef.current = null;\n    injectedReportSignatureRef.current = null;\n  }, [reportIdParam]);\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          id: reportIdParam,\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.edition_number ?? ''}-${prefillReport.loading_end_time ?? ''}-${prefillReport.loading_start_time ?? ''}`;\n\n    if (injectedReportSignatureRef.current === signature) {\n      return;\n    }\n\n    const originId =\n      prefillReport.origin_facility_type_view != null\n        ? String(prefillReport.origin_facility_type_view)\n        : null;\n    const destinationId =\n      prefillReport.destination_facility_type_view != null\n        ? String(prefillReport.destination_facility_type_view)\n        : null;\n    const startDateStr = prefillReport.loading_start_time\n      ? dayjs(prefillReport.loading_start_time).format('YYYY-MM-DD')\n      : '';\n    const startTimeStr = prefillReport.loading_start_time\n      ? dayjs(prefillReport.loading_start_time).utc().format('HH:mm')\n      : '';\n    const endDateStr = prefillReport.loading_end_time\n      ? dayjs(prefillReport.loading_end_time).format('YYYY-MM-DD')\n      : '';\n    const endTimeStr = prefillReport.loading_end_time\n      ? dayjs(prefillReport.loading_end_time).utc().format('HH:mm')\n      : '';\n    const initialStr =\n      prefillReport.initial_content != null ? String(prefillReport.initial_content) : '';\n    const finalStr =\n      prefillReport.final_content != null ? String(prefillReport.final_content) : '';\n    const volumeStr = prefillReport.volume != null ? String(prefillReport.volume) : '';\n    const fluid = prefillReport.fluid_type ?? '';\n\n    setLoadingStep3({\n      origin_facility_id: originId,\n      origin_facility_type: prefillReport.origin_facility_type ?? null,\n      origin_facility_type_view: prefillReport.origin_facility_type_view ?? null,\n      destination_facility_id: destinationId,\n      destination_facility_type: prefillReport.destination_facility_type ?? null,\n      destination_facility_type_view: prefillReport.destination_facility_type_view ?? null,\n      startDate: startDateStr,\n      startTime: startTimeStr,\n      endDate: endDateStr,\n      endTime: endTimeStr,\n      initialMeasurement: initialStr,\n      finalMeasurement: finalStr,\n      volume: volumeStr,\n      fluidType: fluid,\n    });\n    injectedReportIdRef.current = Number(reportIdParam);\n    injectedReportSignatureRef.current = signature;\n  }, [isEditing, prefillReport, reportIdParam, setLoadingStep3]);\n\n  useEffect(() => {\n    if (!isEditing || !prefillReport) return;\n\n    const nextActivity = prefillReport.activity_id === 1 ? 'Producción' : 'Recuperación';\n    const shouldUpdateSummary =\n      summary.activity !== nextActivity ||\n      summary.facility !== 'VACUUM';\n\n    if (shouldUpdateSummary) {\n      setSummary({\n        location: summary.location ?? null,\n        activity: nextActivity,\n        field: summary.field ?? null,\n        facility: 'VACUUM',\n      });\n    }\n  }, [isEditing, prefillReport, setSummary, summary.activity, summary.facility, summary.field, summary.location]);\n\n  const originDestinationFacilities = useMemo(() => {\n    const clientConfig = configService.getCurrentConfig();\n    return (clientConfig.CORE_CONFIG as any)?.dailyReport?.originDestinationFacilities || [];\n  }, []);\n\n  useEffect(() => {\n    const loadFacilities = async () => {\n      setLoadingFacilities(true);\n      try {\n        const result = await getFacilitiesList();\n        let filtered = result.filter(facility =>\n          originDestinationFacilities.includes(facility.facility_type),\n        );\n\n        const ensureFacility = (\n          idValue: string | number | null | undefined,\n          nameValue: string | null | undefined,\n          typeValue: string | null | undefined,\n        ) => {\n          if (idValue == null) return;\n          const id = String(idValue);\n          const exists = filtered.some(item => String(item.id) === id);\n          if (!exists) {\n            filtered = [\n              ...filtered,\n              {\n                id,\n                name: nameValue ?? `ID ${id}`,\n                facility_type: typeValue ?? '',\n              } as FacilityListItem,\n            ];\n          }\n        };\n\n        ensureFacility(\n          prefillReport?.origin_facility_type_view,\n          prefillReport?.origin_facility_type_view,\n          prefillReport?.origin_facility_type,\n        );\n        ensureFacility(\n          prefillReport?.destination_facility_type_view,\n          prefillReport?.destination_facility_type_view,\n          prefillReport?.destination_facility_type,\n        );\n\n        setFacilities(filtered as FacilityListItem[]);\n      } finally {\n        setLoadingFacilities(false);\n      }\n    };\n    loadFacilities();\n  }, [\n    originDestinationFacilities,\n    prefillReport?.destination_facility_id,\n    prefillReport?.destination_facility_type,\n    prefillReport?.destination_facility_type_view,\n    prefillReport?.origin_facility_id,\n    prefillReport?.origin_facility_type,\n    prefillReport?.origin_facility_type_view,\n  ]);\n\n  useEffect(() => {\n    const now = new Date();\n    const pad = (n: number) => String(n).padStart(2, '0');\n    const fallbackTime = `${pad(now.getHours())}:${pad(now.getMinutes())}`;\n\n    const parseDate = (value?: string | null): Date | null => {\n      if (!value) return null;\n      const parsed = dayjs(value, 'YYYY-MM-DD', true);\n      if (parsed.isValid()) return parsed.toDate();\n      const fallback = dayjs(value);\n      return fallback.isValid() ? fallback.toDate() : null;\n    };\n\n    const nextStartDate = parseDate(step3StartDate) ?? now;\n    const nextEndDate = parseDate(step3EndDate) ?? now;\n    const nextStartTime = step3StartTime ?? fallbackTime;\n    const nextEndTime = step3EndTime ?? fallbackTime;\n    const nextOrigin = step3OriginId ?? null;\n    const nextDestination = step3DestinationId ?? null;\n    const nextInitial = step3Initial ?? '';\n    const nextFinal = step3Final ?? '';\n    const nextVolume = step3Volume ?? '';\n    const nextFluid = step3FluidType ?? '';\n\n    setStartDate(prev =>\n      prev && nextStartDate && prev.getTime() === nextStartDate.getTime()\n        ? prev\n        : nextStartDate,\n    );\n    setEndDate(prev =>\n      prev && nextEndDate && prev.getTime() === nextEndDate.getTime()\n        ? prev\n        : nextEndDate,\n    );\n    setStartTime(prev => (prev === nextStartTime ? prev : nextStartTime));\n    setEndTime(prev => (prev === nextEndTime ? prev : nextEndTime));\n    setOrigin(prev => (prev === nextOrigin ? prev : nextOrigin));\n    setDestination(prev => (prev === nextDestination ? prev : nextDestination));\n    setInitialMeasurement(prev => (prev === nextInitial ? prev : nextInitial));\n    setFinalMeasurement(prev => (prev === nextFinal ? prev : nextFinal));\n    setVolume(prev => (prev === nextVolume ? prev : nextVolume));\n    setFluidType(prev => (prev === nextFluid ? prev : nextFluid));\n  }, [\n    step3DestinationId,\n    step3EndDate,\n    step3EndTime,\n    step3Final,\n    step3FluidType,\n    step3Initial,\n    step3OriginId,\n    step3StartDate,\n    step3StartTime,\n    step3Volume,\n  ]);\n\n  const facilityOptions = useMemo(() => facilities.map(f => ({ value: f.id, label: f.name })), [facilities]);\n\n  const destinationOptions = useMemo(() => facilityOptions.filter(opt => opt.value !== origin), [facilityOptions, origin]);\n  const originOptions = useMemo(() => facilityOptions.filter(opt => opt.value !== destination), [facilityOptions, destination]);\n\n  const canContinue = useMemo(() => Boolean(origin && destination && fluidType && volume), [origin, destination, fluidType, volume]);\n\n  return (\n    <View style={styles.screen}>\n      <ScrollView style={styles.container} contentContainerStyle={{ paddingBottom: insets.bottom + 120 }}>\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          <SearchableSelect\n            label=\"Origen\"\n            selectedValue={origin}\n            onValueChange={(val) => setOrigin(val as string)}\n            options={originOptions}\n            loading={loadingFacilities}\n            loadingMessage=\"Cargando orígenes...\"\n            placeholder=\"Seleccione un origen\"\n            searchPlaceholder=\"Buscar origen...\"\n            accentColor={accentColor}\n            required={true}\n          />\n          {touched && !origin ? <Text style={styles.error}>Este campo es obligatorio</Text> : null}\n\n          <View style={styles.fieldBlock} />\n\n          <Text style={styles.label}>Fecha y hora de inicio de carga</Text>\n          <View style={styles.row2}>\n            <View style={styles.flex1}>\n              <DatePicker label=\"Fecha\" value={startDate} onChange={setStartDate} />\n            </View>\n            <View style={styles.spacer12} />\n            <View style={styles.flex1}>\n              <TimePicker label=\"Hora\" value={startTime} onChange={setStartTime} />\n            </View>\n          </View>\n\n          <View style={styles.fieldBlock} />\n\n          <NumericField label=\"Medida Inicial (Si aplica)\" value={initialMeasurement} onChange={setInitialMeasurement} />\n\n          <View style={styles.fieldBlock} />\n\n          <Text style={styles.label}>Fecha y hora de finalización de carga</Text>\n          <View style={styles.row2}>\n            <View style={styles.flex1}>\n              <DatePicker label=\"Fecha\" value={endDate} onChange={setEndDate} />\n            </View>\n            <View style={styles.spacer12} />\n            <View style={styles.flex1}>\n              <TimePicker label=\"Hora\" value={endTime} onChange={setEndTime} />\n            </View>\n          </View>\n\n          <View style={styles.fieldBlock} />\n\n          <NumericField label=\"Medida Final (Si aplica)\" value={finalMeasurement} onChange={setFinalMeasurement} />\n\n          <View style={styles.fieldBlock} />\n\n          <NumericField label=\"Volumen trasegado (BLS)\" value={volume} onChange={setVolume} required />\n          {touched && !volume ? <Text style={styles.error}>Este campo es obligatorio</Text> : null}\n\n          <View style={styles.fieldBlock} />\n\n          <Select label=\"Tipo de fluido\" value={fluidType} onChange={(v) => setFluidType((v ?? '') as string)} required accentColor={accentColor}>\n            <MenuItem value=\"\">Seleccione un tipo</MenuItem>\n            <MenuItem value=\"Agua Fresca\">Agua Fresca</MenuItem>\n            <MenuItem value=\"Petróleo\">Petróleo</MenuItem>\n            <MenuItem value=\"Agua Aceitosa\">Agua Aceitosa</MenuItem>\n          </Select>\n          {touched && !fluidType ? <Text style={styles.error}>Este campo es obligatorio</Text> : null}\n\n          <View style={styles.fieldBlock} />\n\n          <SearchableSelect\n            label=\"Destino final\"\n            selectedValue={destination}\n            onValueChange={(val) => setDestination(val as string)}\n            options={destinationOptions}\n            loading={loadingFacilities}\n            loadingMessage=\"Cargando destinos...\"\n            placeholder=\"Seleccione un destino\"\n            searchPlaceholder=\"Buscar destino...\"\n            accentColor={accentColor}\n            required={true}\n          />\n          {touched && !destination ? <Text style={styles.error}>Este campo es obligatorio</Text> : null}\n        </View>\n      </ScrollView>\n      <DRFooterActions\n        onContinue={() => {\n          setTouched(true);\n          if (!canContinue) return;\n          try {\n            const startDateStr = startDate ? `${startDate.getFullYear()}-${String(startDate.getMonth()+1).padStart(2,'0')}-${String(startDate.getDate()).padStart(2,'0')}` : '';\n            const endDateStr = endDate ? `${endDate.getFullYear()}-${String(endDate.getMonth()+1).padStart(2,'0')}-${String(endDate.getDate()).padStart(2,'0')}` : '';\n            setLoadingStep3({\n              origin_facility_id: origin ?? null,\n              origin_facility_type: step3State.origin_facility_type ?? null,\n              origin_facility_type_view: step3State.origin_facility_type_view ?? null,\n              destination_facility_id: destination ?? null,\n              destination_facility_type: step3State.destination_facility_type ?? null,\n              destination_facility_type_view: step3State.destination_facility_type_view ?? null,\n              startDate: startDateStr,\n              startTime: startTime ?? '',\n              endDate: endDateStr,\n              endTime: endTime ?? '',\n              initialMeasurement: initialMeasurement,\n              finalMeasurement: finalMeasurement,\n              volume: volume,\n              fluidType: fluidType,\n            });\n          } catch {}\n          const paramsToSend = isEditing\n            ? {\n                mode: 'edit',\n                reportId: reportIdParam,\n                editionNumber: editionNumberParam ?? null,\n                snapshot: loadingMeta.payload?.report ?? snapshotParam ?? null,\n              }\n            : undefined;\n          // @ts-ignore navegación provista por host\n          navigation?.navigate?.('DRPage4VacuumLoading', paramsToSend as never);\n        }}\n        onCancel={() => setIsModalOpen(true)}\n        continueDisabled={prefillLoading || !canContinue}\n        accentColor={accentColor}\n      />\n      <ConfirmationModal\n        open={isModalOpen}\n        onClose={() => setIsModalOpen(false)}\n        onConfirm={() => {\n          // @ts-ignore navegación provista por host\n          navigation?.navigate?.('Home');\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: { paddingVertical: 16, alignItems: 'center' },\n  loadingText: { marginTop: 8, color: '#6B7280', fontSize: 14 },\n  fieldBlock: { height: 16 },\n  label: { marginBottom: 6, color: '#6B7280', fontSize: 14, fontWeight: '500' },\n  row2: { flexDirection: 'row', alignItems: 'center' },\n  flex1: { flex: 1 },\n  spacer12: { width: 12 },\n  error: { color: '#FF1D4B', fontSize: 13, marginTop: 6 },\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","DRPage3VacuumLoading","parseNumberParam","value","parsed","Number","isFinite","params","loadingState","summary","loadingMeta","RouteParams","reportIdParam","reportId","id","editionNumberParam","editionNumber","snapshotParam","snapshot","isEditing","mode","themeColor","useTheme","primaryColor","state","setSummary","setEditing","useDailyReportBaseStore","useState","isModalOpen","setIsModalOpen","facilities","setFacilities","loadingFacilities","setLoadingFacilities","origin","setOrigin","destination","setDestination","Date","startDate","setStartDate","startTime","setStartTime","endDate","setEndDate","endTime","setEndTime","initialMeasurement","setInitialMeasurement","finalMeasurement","setFinalMeasurement","fluidType","setFluidType","volume","setVolume","touched","setTouched","injectedReportIdRef","useRef","injectedReportSignatureRef","useDailyReportVacuumStore","loading","setLoadingStep3","setLoadingMeta","step3State","step3","meta","editionMode","prefillReport","payload","report","prefillLoading","setPrefillLoading","step3StartDate","step3StartTime","step3EndDate","step3EndTime","step3OriginId","step3DestinationId","destination_facility_id","step3Initial","step3Final","step3Volume","step3FluidType","useEffect","prevEditing","table","TABLE_NAMES","DAILY_REPORT_VACUUM_LOAD","revision","prevLoadingMeta","nextRecordId","String","recordId","prevPrefillLoading","current","cancelled","detail","getVacuumLoadById","undefined","signature","date_updated","edition_number","loading_end_time","loading_start_time","originId","origin_facility_type_view","destinationId","destination_facility_type_view","startDateStr","dayjs","format","startTimeStr","utc","endDateStr","endTimeStr","initialStr","initial_content","finalStr","final_content","volumeStr","fluid","fluid_type","origin_facility_id","origin_facility_type","destination_facility_type","nextActivity","activity_id","activity","facility","location","field","originDestinationFacilities","useMemo","clientConfig","configService","getCurrentConfig","CORE_CONFIG","dailyReport","filtered","getFacilitiesList","filter","includes","facility_type","ensureFacility","idValue","typeValue","some","item","nameValue","parseDate","now","pad","n","padStart","fallbackTime","getHours","getMinutes","isValid","toDate","fallback","nextStartDate","nextEndDate","nextStartTime","nextEndTime","nextOrigin","nextDestination","nextInitial","nextFinal","nextVolume","nextFluid","prev","getTime","facilityOptions","map","f","label","destinationOptions","opt","originOptions","canContinue","Boolean","screen","ScrollView","container","contentContainerStyle","form","loadingBox","LoadingSpinner","Text","loadingText","SummaryTable","items","fieldBlock","SearchableSelect","selectedValue","onValueChange","val","options","loadingMessage","placeholder","searchPlaceholder","required","error","row2","flex1","DatePicker","onChange","spacer12","TimePicker","NumericField","Select","v","MenuItem","getFullYear","getMonth","getDate","paramsToSend","ConfirmationModal","open","onClose","onConfirm","message","paddingVertical","alignItems","marginTop","fontSize","marginBottom","fontWeight","INITIAL_EDITING_STATE","INITIAL_STATE","fieldId","editing","DailyReportBaseStore","set","setFieldId","resetEditing","INITIAL_META_STATE","createLoadingState","step4","step5","createUnloadingState","DRVacuumStoreState","unloading","setLoadingStep4","setLoadingStep5","setUnloadingStep3","setUnloadingStep4","setUnloadingStep5","setUnloadingMeta","resetLoading","resetUnloading","reset"],"mappings":"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"}