{"version":3,"file":"src_screens_MachineryPreviewScreen_tsx.chunk.bundle","sources":["/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/machinery/src/screens/MachineryPreview.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/machinery/src/screens/MachineryPreviewScreen.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport { StyleSheet, View, Text, ScrollView, TouchableOpacity, Image } from 'react-native';\nimport { ChevronDownIcon, ChevronUpIcon } from 'react-native-heroicons/solid';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\nimport { useRoute, useNavigation } from '@react-navigation/native';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport {\n  fetchMachineryById,\n  fetchMachineryStatusChanges,\n  fetchMachineryOperator,\n  fetchMachinerySupplier,\n  fetchMachineryLocations,\n  fetchMachineryFuelLoadsByMachinery,\n  formatFuelLoadHistory,\n  calculateTotal30Days,\n  type MachineryData,\n  type FormattedFuelLoad,\n} from '@data-oil-front/core-machinery';\nimport { useConfig, configService } from '@data-oil-front/core-host';\nimport { MACHINERY_SCREENS } from '@data-oil-front/core-utils';\nimport { LoadingSpinner } from '@data-oil-front/ui-mobile';\nimport StatusDot, { type MachineStatus } from '../components/StatusDot';\n\ndayjs.extend(utc);\n\ntype MachineStatusAPI = 'operational' | 'maintenance' | 'inactive';\n\nconst statusMapFromAPI: Record<MachineStatusAPI, MachineStatus> = {\n  operational: 'operativa',\n  maintenance: 'mantenimiento',\n  inactive: 'inactiva',\n};\n\nfunction MachineryPreview() {\n  const route = useRoute<any>();\n  const navigation = useNavigation();\n  const insets = useSafeAreaInsets();\n  const machineryId = route?.params?.id as number | undefined;\n  const { config: clientConfig } = useConfig();\n  const defaultConfig = useMemo(() => configService.getDefaultConfig(), []);\n  const accentColor = clientConfig.primaryColor ?? defaultConfig.primaryColor ?? '#1B418C';\n\n  const [machineryData, setMachineryData] = useState<MachineryData | null>(null);\n  const [loadingMachinery, setLoadingMachinery] = useState(true);\n  const [historyData, setHistoryData] = useState<FormattedFuelLoad[]>([]);\n  const [loadingHistory, setLoadingHistory] = useState(true);\n  const [error, setError] = useState<string | null>(null);\n  const [lastStatusChangeDate, setLastStatusChangeDate] = useState<string | null>(null);\n  const [operatorName, setOperatorName] = useState<string | null>(null);\n  const [supplierName, setSupplierName] = useState<string | null>(null);\n  const [locationName, setLocationName] = useState<string | null>(null);\n  const [expandedImageRow, setExpandedImageRow] = useState<number | null>(null);\n\n  const apiFileServer = useMemo(() => {\n    const cfg = configService.getCurrentConfig() as any;\n    return cfg?.API_FILE_SERVER ?? '';\n  }, []);\n\n  const loadMachineryData = useCallback(async () => {\n    if (!machineryId) {\n      setError('ID de maquinaria no válido');\n      setLoadingMachinery(false);\n      return;\n    }\n\n    setLoadingMachinery(true);\n    setError(null);\n\n    try {\n      const machinery = await fetchMachineryById(machineryId);\n      if (!machinery) {\n        setError('No se encontró la máquina');\n        setLoadingMachinery(false);\n        return;\n      }\n\n      setMachineryData(machinery);\n      await loadRelatedData(machinery);\n    } catch (err: any) {\n      console.error('Error al cargar datos de la máquina:', err);\n      setError(err.message || 'Error al cargar los datos de la máquina');\n    } finally {\n      setLoadingMachinery(false);\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [machineryId]);\n\n  const loadRelatedData = useCallback(async (machinery: MachineryData) => {\n    try {\n      const statusChanges = await fetchMachineryStatusChanges(machinery.id);\n      if (statusChanges.length > 0) {\n        const sorted = statusChanges.sort((a, b) => {\n          const dateA = dayjs(a.status_change_date).valueOf();\n          const dateB = dayjs(b.status_change_date).valueOf();\n          return dateB - dateA;\n        });\n        if (sorted[0]) {\n          setLastStatusChangeDate(sorted[0].status_change_date);\n        }\n      }\n\n      if (machinery.assigned_to_id) {\n        const operator = await fetchMachineryOperator(\n          typeof machinery.assigned_to_id === 'string'\n            ? parseInt(machinery.assigned_to_id, 10)\n            : machinery.assigned_to_id\n        );\n        if (operator) {\n          setOperatorName(operator.name || operator.operator_name || null);\n        }\n      }\n\n      if (machinery.supplier_id) {\n        const supplier = await fetchMachinerySupplier(\n          typeof machinery.supplier_id === 'string'\n            ? parseInt(machinery.supplier_id, 10)\n            : machinery.supplier_id\n        );\n        if (supplier) {\n          setSupplierName(supplier.name || supplier.supplier_name || null);\n        }\n      }\n\n      if (machinery.location_id) {\n        const locations = await fetchMachineryLocations();\n        const location = locations.find(\n          (loc) =>\n            loc.id === machinery.location_id ||\n            String(loc.id) === String(machinery.location_id)\n        );\n        if (location) {\n          setLocationName(location.name);\n        }\n      }\n    } catch (err) {\n      console.error('Error al cargar datos relacionados:', err);\n    }\n  }, []);\n\n  const loadFuelHistory = useCallback(async () => {\n    if (!machineryId) {\n      setLoadingHistory(false);\n      return;\n    }\n\n    setLoadingHistory(true);\n\n    try {\n      const fuelLoads = await fetchMachineryFuelLoadsByMachinery(machineryId);\n      const formatted = formatFuelLoadHistory(fuelLoads, machineryData?.fuel_type);\n      setHistoryData(formatted);\n    } catch (err: any) {\n      console.error('Error al cargar historial de combustible:', err);\n    } finally {\n      setLoadingHistory(false);\n    }\n  }, [machineryId, machineryData?.fuel_type]);\n\n  useEffect(() => {\n    loadMachineryData();\n    loadFuelHistory();\n  }, [loadMachineryData, loadFuelHistory]);\n\n  const lastLoad = useMemo(() => {\n    if (historyData.length > 0) {\n      const first = historyData[0];\n      return {\n        quantity: first.load_quantity,\n        date: first.Fecha,\n      };\n    }\n    return null;\n  }, [historyData]);\n\n  const total30Days = useMemo(() => {\n    return calculateTotal30Days(historyData);\n  }, [historyData]);\n\n  const formattedLastStatusChange = useMemo(() => {\n    if (!lastStatusChangeDate) return '—';\n\n    let date: dayjs.Dayjs;\n    if (typeof lastStatusChangeDate === 'string') {\n      if (lastStatusChangeDate.includes('T') || lastStatusChangeDate.includes('Z')) {\n        date = dayjs.utc(lastStatusChangeDate).local();\n      } else if (lastStatusChangeDate.includes(' ')) {\n        date = dayjs.utc(lastStatusChangeDate, 'YYYY-MM-DD HH:mm:ss').local();\n      } else {\n        date = dayjs(lastStatusChangeDate);\n      }\n    } else {\n      date = dayjs(lastStatusChangeDate);\n    }\n\n    const formattedDate = date.format('DD/MM/YYYY');\n    const formattedTime = date.format('HH:mm');\n    return `${formattedDate} ${formattedTime}`;\n  }, [lastStatusChangeDate]);\n\n  const machineName =\n    machineryData?.name ||\n    machineryData?.machine_name ||\n    machineryData?.machinery_name ||\n    machineryData?.description ||\n    machineryData?.type ||\n    'Sin nombre';\n\n  const fuelTypeLabel = machineryData?.fuel_type\n    ? `${machineryData.fuel_type}`.trim().charAt(0).toUpperCase() +\n      `${machineryData.fuel_type}`.trim().slice(1).toLowerCase()\n    : '—';\n\n  const machineStatus = machineryData?.status\n    ? statusMapFromAPI[machineryData.status as MachineStatusAPI]\n    : 'inactiva';\n\n  if (loadingMachinery) {\n    return (\n      <>\n        <View style={styles.center}>\n          <LoadingSpinner size=\"large\" color={accentColor} />\n          <Text style={styles.loadingText}>Cargando datos de la máquina...</Text>\n        </View>\n      </>\n    );\n  }\n\n  if (error && !machineryData) {\n    return (\n      <>\n        <View style={styles.center}>\n          <Text style={styles.errorIcon}>⚠️</Text>\n          <Text style={styles.errorTitle}>Error al cargar las maquinarias</Text>\n          <Text style={styles.errorSubtitle}>Verifica tu conexión o inténtalo nuevamente.</Text>\n          <View style={styles.errorMessageBox}>\n            <Text style={styles.errorMessageText} numberOfLines={3}>\n              {error || 'Error desconocido'}\n            </Text>\n          </View>\n          <TouchableOpacity\n            onPress={loadMachineryData}\n            activeOpacity={0.8}\n            style={[styles.errorRetryButton, { backgroundColor: accentColor }]}\n          >\n            <Text style={styles.errorRetryButtonText}>Reintentar</Text>\n          </TouchableOpacity>\n        </View>\n      </>\n    );\n  }\n\n  if (!machineryData) {\n    return (\n      <>\n        <View style={styles.center}>\n          <Text style={styles.emptyIcon}>🔧</Text>\n          <Text style={styles.emptyTitle}>No se encontró la máquina</Text>\n          <Text style={styles.emptyText}>La máquina solicitada no existe</Text>\n        </View>\n      </>\n    );\n  }\n\n  return (\n    <>\n      <View style={styles.screen}>\n        <ScrollView\n        style={styles.container}\n        contentContainerStyle={{\n          ...styles.contentContainer,\n          paddingBottom: insets.bottom + 16,\n        }}\n      >\n        {}\n        <View style={styles.headerCard}>\n          <View style={styles.headerContent}>\n            <View style={styles.machineInfo}>\n              <Text style={styles.machineLabel}>MÁQUINA</Text>\n              <View style={styles.machineNameRow}>\n                {machineryData.status && (\n                  <StatusDot status={machineStatus} size={12} />\n                )}\n                <Text style={styles.machineName}>{machineName}</Text>\n              </View>\n            </View>\n            <View style={styles.plateInfo}>\n              <Text style={styles.plateLabel}>PLACA</Text>\n              <Text style={styles.plateValue}>\n                {machineryData.plate || 'Sin placa'}\n              </Text>\n            </View>\n          </View>\n        </View>\n\n        {}\n        <View style={styles.infoCard}>\n          <InfoRow label=\"ÚLTIMA MODIFICACIÓN\" value={formattedLastStatusChange} />\n          <InfoRow label=\"ASIGNADO A\" value={operatorName || '—'} />\n          <InfoRow label=\"PROVEEDOR\" value={supplierName || '—'} />\n          <InfoRow label=\"UBICACIÓN\" value={locationName || '—'} />\n          <InfoRow\n            label=\"COMBUSTIBLE\"\n            value={fuelTypeLabel}\n          />\n          <InfoRow\n            label=\"ÚLTIMA CARGA\"\n            value={lastLoad ? `${lastLoad.quantity} L` : '—'}\n          />\n          <InfoRow label=\"CARGA ÚLTIMOS 30 DÍAS\" value={`${total30Days} L`} />\n        </View>\n\n        {}\n        {!loadingMachinery && machineryData && (\n          <View style={styles.actionsContainer}>\n            <TouchableOpacity\n              style={[styles.actionButton, styles.actionButtonSecondary]}\n              onPress={() => {\n                // @ts-ignore\n                navigation.navigate(MACHINERY_SCREENS.CHANGE_STATUS, { id: machineryId });\n              }}\n              activeOpacity={0.8}\n            >\n              <Text style={styles.actionButtonSecondaryText}>Cambiar estado</Text>\n            </TouchableOpacity>\n            <TouchableOpacity\n              style={[styles.actionButton, { backgroundColor: accentColor }]}\n              onPress={() => {\n                // @ts-ignore\n                navigation.navigate(MACHINERY_SCREENS.NEW_FUEL, { id: machineryId });\n              }}\n              activeOpacity={0.8}\n            >\n              <Text style={styles.actionButtonPrimaryText}>\n                Nueva carga de combustible\n              </Text>\n            </TouchableOpacity>\n          </View>\n        )}\n\n        {}\n        <View style={styles.historyCard}>\n          <View style={styles.historyHeader}>\n            <Text style={styles.historyTitle}>\n              HISTORIAL DE CARGAS DE COMBUSTIBLE\n            </Text>\n          </View>\n          {loadingHistory ? (\n            <View style={styles.historyLoading}>\n              <Text style={styles.historyLoadingText}>Cargando historial...</Text>\n            </View>\n          ) : historyData.length === 0 ? (\n            <View style={styles.historyEmpty}>\n              <Text style={styles.historyEmptyText}>\n                No hay registros de carga de combustible\n              </Text>\n            </View>\n          ) : (\n            <View style={styles.historyList}>\n              {historyData.map((row, i) => (\n                <TouchableOpacity\n                  key={`${row.id}-${i}`}\n                  style={styles.historyRow}\n                  activeOpacity={0.75}\n                  onPress={() => {\n                    if (!machineryId) return;\n                    // @ts-ignore\n                    navigation.navigate(MACHINERY_SCREENS.NEW_FUEL, {\n                      id: machineryId,\n                      fuelLoadId: row.id,\n                    });\n                  }}\n                >\n                  <View style={styles.historyRowContent}>\n                    <Text style={styles.historyDate}>{row.Fecha}</Text>\n                    <View style={styles.historyRowRight}>\n                      <Text style={styles.historyTime}>{row.Hora}</Text>\n                      <Text style={styles.historyQuantity}>{row.Cantidad}</Text>\n                      <Text style={styles.historyType}>{row.Tipo}</Text>\n                      <View style={styles.imageToggleSlot}>\n                        {row.image ? (\n                          <TouchableOpacity\n                            onPress={() =>\n                              setExpandedImageRow(prev =>\n                                prev === row.id ? null : row.id,\n                              )\n                            }\n                            style={styles.imageToggleButton}\n                            hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}\n                          >\n                            {expandedImageRow === row.id ? (\n                              <ChevronUpIcon size={16} color=\"#374151\" />\n                            ) : (\n                              <ChevronDownIcon size={16} color=\"#374151\" />\n                            )}\n                          </TouchableOpacity>\n                        ) : null}\n                      </View>\n                    </View>\n                  </View>\n                  {row.image && expandedImageRow === row.id ? (\n                    <View style={styles.imageAccordion}>\n                      <Image\n                        source={{ uri: `${apiFileServer}/get/${row.image}` }}\n                        style={styles.accordionImage}\n                        resizeMode=\"contain\"\n                      />\n                    </View>\n                  ) : null}\n                </TouchableOpacity>\n              ))}\n            </View>\n          )}\n        </View>\n      </ScrollView>\n    </View>\n  </>\n  );\n}\n\nfunction InfoRow({ label, value }: { label: string; value: string }) {\n  return (\n    <View style={styles.infoRow}>\n      <Text style={styles.infoLabel}>{label}</Text>\n      <Text style={styles.infoValue}>{value}</Text>\n    </View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  screen: {\n    flex: 1,\n    backgroundColor: '#F9FAFB',\n  },\n  container: {\n    flex: 1,\n  },\n  contentContainer: {\n    padding: 16,\n  },\n  center: {\n    flex: 1,\n    alignItems: 'center',\n    justifyContent: 'center',\n    gap: 12,\n    backgroundColor: '#FFFFFF',\n  },\n  loadingText: {\n    color: '#6B7280',\n    fontSize: 16,\n  },\n  errorIcon: {\n    fontSize: 48,\n  },\n  errorTitle: {\n    fontSize: 16,\n    fontWeight: '600',\n    color: '#7f1d1d',\n    marginBottom: 4,\n  },\n  errorSubtitle: {\n    fontSize: 14,\n    color: '#7f1d1d',\n    marginBottom: 8,\n  },\n  errorMessageBox: {\n    backgroundColor: '#ffe4e6',\n    padding: 12,\n    borderRadius: 6,\n    marginBottom: 12,\n    maxWidth: '80%',\n  },\n  errorMessageText: {\n    fontSize: 12,\n    color: '#7f1d1d',\n  },\n  errorRetryButton: {\n    alignSelf: 'center',\n    paddingHorizontal: 16,\n    paddingVertical: 10,\n    borderRadius: 6,\n  },\n  errorRetryButtonText: {\n    color: '#ffffff',\n    fontSize: 14,\n    fontWeight: '600',\n  },\n  emptyIcon: {\n    fontSize: 48,\n    marginBottom: 12,\n  },\n  emptyTitle: {\n    fontSize: 16,\n    fontWeight: '600',\n    color: '#6B7280',\n    marginBottom: 4,\n  },\n  emptyText: {\n    fontSize: 14,\n    color: '#9CA3AF',\n  },\n  headerCard: {\n    backgroundColor: '#FFFFFF',\n    borderRadius: 16,\n    padding: 24,\n    marginBottom: 16,\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n  },\n  headerContent: {\n    gap: 16,\n  },\n  machineInfo: {\n    gap: 8,\n  },\n  machineLabel: {\n    fontSize: 12,\n    letterSpacing: 1,\n    color: '#6B7280',\n    fontWeight: '500',\n  },\n  machineNameRow: {\n    flexDirection: 'row',\n    alignItems: 'center',\n    gap: 8,\n  },\n  machineName: {\n    fontSize: 24,\n    fontWeight: '800',\n    color: '#111827',\n    flex: 1,\n  },\n  plateInfo: {\n    gap: 8,\n  },\n  plateLabel: {\n    fontSize: 12,\n    letterSpacing: 1,\n    color: '#6B7280',\n    fontWeight: '500',\n  },\n  plateValue: {\n    fontSize: 16,\n    fontWeight: '600',\n    color: '#374151',\n  },\n  infoCard: {\n    backgroundColor: '#FFFFFF',\n    borderRadius: 16,\n    marginBottom: 16,\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n    overflow: 'hidden',\n  },\n  infoRow: {\n    padding: 24,\n    borderBottomWidth: 1,\n    borderBottomColor: '#E5E7EB',\n    gap: 8,\n  },\n  infoLabel: {\n    fontSize: 12,\n    letterSpacing: 1,\n    color: '#6B7280',\n    fontWeight: '500',\n    marginBottom: 4,\n  },\n  infoValue: {\n    fontSize: 18,\n    fontWeight: '700',\n    color: '#111827',\n  },\n  historyCard: {\n    backgroundColor: '#FFFFFF',\n    borderRadius: 16,\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n    overflow: 'hidden',\n  },\n  historyHeader: {\n    paddingHorizontal: 16,\n    paddingVertical: 12,\n    backgroundColor: '#FFFFFF',\n    borderBottomWidth: 1,\n    borderBottomColor: '#E5E7EB',\n  },\n  historyTitle: {\n    fontSize: 14,\n    fontWeight: '700',\n    color: '#111827',\n  },\n  historyLoading: {\n    padding: 24,\n    alignItems: 'center',\n  },\n  historyLoadingText: {\n    fontSize: 14,\n    color: '#6B7280',\n  },\n  historyEmpty: {\n    padding: 24,\n    alignItems: 'center',\n  },\n  historyEmptyText: {\n    fontSize: 14,\n    color: '#6B7280',\n  },\n  historyList: {\n    backgroundColor: '#FFFFFF',\n  },\n  historyRow: {\n    paddingHorizontal: 16,\n    paddingVertical: 12,\n    borderBottomWidth: 1,\n    borderBottomColor: '#F3F4F6',\n  },\n  historyRowContent: {\n    flexDirection: 'row',\n    alignItems: 'center',\n    justifyContent: 'space-between',\n    gap: 12,\n  },\n  historyDate: {\n    fontSize: 14,\n    fontWeight: '600',\n    color: '#111827',\n  },\n  historyRowRight: {\n    flexDirection: 'row',\n    alignItems: 'center',\n    gap: 16,\n  },\n  historyTime: {\n    fontSize: 14,\n    color: '#6B7280',\n    minWidth: 60,\n  },\n  historyQuantity: {\n    fontSize: 14,\n    fontWeight: '600',\n    color: '#111827',\n    minWidth: 45,\n    textAlign: 'right',\n  },\n  historyType: {\n    fontSize: 14,\n    color: '#6B7280',\n  },\n  actionsContainer: {\n    marginBottom: 16,\n    gap: 12,\n  },\n  actionButton: {\n    width: '100%',\n    borderRadius: 8,\n    paddingVertical: 12,\n    paddingHorizontal: 12,\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  actionButtonSecondary: {\n    backgroundColor: '#FFFFFF',\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n  },\n  actionButtonSecondaryText: {\n    fontSize: 14,\n    fontWeight: '500',\n    color: '#111827',\n  },\n  actionButtonPrimaryText: {\n    fontSize: 14,\n    fontWeight: '600',\n    color: '#FFFFFF',\n  },\n  imageToggleSlot: {\n    width: 28,\n    height: 28,\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  imageToggleButton: {\n    width: 28,\n    height: 28,\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  imageAccordion: {\n    marginTop: 10,\n    borderRadius: 10,\n    overflow: 'hidden',\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n  },\n  accordionImage: {\n    width: '100%',\n    height: 200,\n  },\n});\n\nexport default MachineryPreview;\n","import MachineryPreviewComponent from './MachineryPreview';\n\nfunction MachineryPreviewScreen() {\n  return <MachineryPreviewComponent />;\n}\n\nexport default MachineryPreviewScreen;\n"],"names":["dayjs","extend","utc","statusMapFromAPI","operational","maintenance","inactive","InfoRow","label","value","View","style","styles","infoRow","Text","infoLabel","infoValue","StyleSheet","create","screen","flex","backgroundColor","container","contentContainer","padding","center","alignItems","justifyContent","gap","loadingText","color","fontSize","errorIcon","errorTitle","fontWeight","marginBottom","errorSubtitle","errorMessageBox","borderRadius","maxWidth","errorMessageText","errorRetryButton","alignSelf","paddingHorizontal","paddingVertical","errorRetryButtonText","emptyIcon","emptyTitle","emptyText","headerCard","borderWidth","borderColor","headerContent","machineInfo","machineLabel","letterSpacing","machineNameRow","flexDirection","machineName","plateInfo","plateLabel","plateValue","infoCard","overflow","borderBottomWidth","borderBottomColor","historyCard","historyHeader","historyTitle","historyLoading","historyLoadingText","historyEmpty","historyEmptyText","historyList","historyRow","historyRowContent","historyDate","historyRowRight","historyTime","minWidth","historyQuantity","textAlign","historyType","actionsContainer","actionButton","width","actionButtonSecondary","actionButtonSecondaryText","actionButtonPrimaryText","imageToggleSlot","height","imageToggleButton","imageAccordion","marginTop","accordionImage","clientConfig","route","useRoute","navigation","useNavigation","insets","useSafeAreaInsets","machineryId","params","id","useConfig","config","defaultConfig","useMemo","configService","getDefaultConfig","accentColor","primaryColor","machineryData","setMachineryData","useState","loadingMachinery","setLoadingMachinery","historyData","setHistoryData","loadingHistory","setLoadingHistory","error","setError","lastStatusChangeDate","setLastStatusChangeDate","operatorName","setOperatorName","supplierName","setSupplierName","locationName","setLocationName","expandedImageRow","setExpandedImageRow","apiFileServer","cfg","getCurrentConfig","API_FILE_SERVER","loadMachineryData","useCallback","machinery","fetchMachineryById","loadRelatedData","err","console","message","statusChanges","fetchMachineryStatusChanges","length","sorted","sort","a","b","dateA","status_change_date","valueOf","assigned_to_id","operator","fetchMachineryOperator","parseInt","name","operator_name","supplier_id","supplier","fetchMachinerySupplier","supplier_name","location_id","location","fetchMachineryLocations","find","loc","String","loadFuelHistory","fuelLoads","fetchMachineryFuelLoadsByMachinery","formatted","formatFuelLoadHistory","fuel_type","useEffect","lastLoad","first","quantity","load_quantity","date","Fecha","total30Days","calculateTotal30Days","formattedLastStatusChange","includes","local","format","machine_name","machinery_name","description","type","fuelTypeLabel","trim","charAt","toUpperCase","slice","toLowerCase","machineStatus","status","LoadingSpinner","size","numberOfLines","TouchableOpacity","onPress","activeOpacity","ScrollView","contentContainerStyle","paddingBottom","bottom","plate","navigate","MACHINERY_SCREENS","CHANGE_STATUS","NEW_FUEL","map","row","i","fuelLoadId","Hora","Cantidad","Tipo","image","prev","hitSlop","top","left","right","ChevronUpIcon","ChevronDownIcon","Image","source","uri","resizeMode"],"mappings":"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"}