{"version":3,"file":"__federation_expose_MachineChangeStatus.chunk.bundle","sources":["/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/machinery/src/components/StatusDot.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/machinery/src/screens/MachineChangeStatus.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/machinery/src/screens/MachineChangeStatusScreen.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/machinery/src/utils/safeDocumentPicker.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/errors.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/fileTypes.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/index.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/isKnownType.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/keepLocalCopy.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/pick.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/pickDirectory.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/release.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/saveDocuments.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/spec/NativeDocumentPicker.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/node_modules/.pnpm/@react-native-documents+picker@10.1.7_react-native@0.81.4_@babel+core@7.29.0_@react-native-co_mtvcz6ttjvfxlpzm73meloh7im/node_modules/@react-native-documents/picker/src/validateTypes.ts"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nexport type MachineStatus = 'operativa' | 'mantenimiento' | 'inactiva';\n\nexport const statusColorMap: Record<MachineStatus, string> = {\n  operativa: '#22C55E',\n  mantenimiento: '#F59E0B',\n  inactiva: '#EF4444',\n} as const;\n\ninterface StatusDotProps {\n  status: MachineStatus;\n  size?: number;\n}\n\nexport default function StatusDot({ status, size = 12 }: StatusDotProps) {\n  return (\n    <View\n      style={{\n        width: size,\n        height: size,\n        borderRadius: size / 2,\n        backgroundColor: statusColorMap[status],\n      }}\n      accessibilityLabel={status}\n      accessibilityRole=\"image\"\n    />\n  );\n}\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport {\n  StyleSheet,\n  View,\n  Text,\n  ScrollView,\n  TextInput,\n  Image,\n  TouchableOpacity,\n} from 'react-native';\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  fetchMachineryLocations,\n  fetchMachineryOperators,\n  updateMachineryStatus,\n  insertMachineryStatusChange,\n  type MachineryData,\n} from '@data-oil-front/core-machinery';\nimport {\n  useAuth,\n  useConfig,\n  configService,\n} from '@data-oil-front/core-host';\nimport { uploadFileToServer, MACHINERY_SCREENS } from '@data-oil-front/core-utils';\nimport { LoadingSpinner, SearchableSelect } from '@data-oil-front/ui-mobile';\nimport StatusDot, {\n  statusColorMap,\n  type MachineStatus,\n} from '../components/StatusDot';\nimport { pickDocument } from '../utils/safeDocumentPicker';\n\ndayjs.extend(utc);\n\ntype MachineStatusAPI = 'operational' | 'maintenance' | 'inactive';\n\nconst statusMap: Record<MachineStatus, MachineStatusAPI> = {\n  operativa: 'operational',\n  mantenimiento: 'maintenance',\n  inactiva: 'inactive',\n} as const;\n\nconst statusMapFromAPI: Record<MachineStatusAPI, MachineStatus> = {\n  operational: 'operativa',\n  maintenance: 'mantenimiento',\n  inactive: 'inactiva',\n} as const;\n\nfunction MachineChangeStatus() {\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 { user } = useAuth();\n  const defaultConfig = useMemo(() => configService.getDefaultConfig(), []);\n  const accentColor =\n    clientConfig.primaryColor ?? defaultConfig.primaryColor ?? '#1B418C';\n  const apiFileServer =\n    (clientConfig as any)?.API_FILE_SERVER ??\n    (defaultConfig as any)?.API_FILE_SERVER ??\n    null;\n\n  const [machineryData, setMachineryData] = useState<MachineryData | null>(\n    null,\n  );\n  const [loadingMachinery, setLoadingMachinery] = useState(true);\n  const [status, setStatus] = useState<MachineStatus>('operativa');\n  const [location, setLocation] = useState<string | null>(null);\n  const [assignee, setAssignee] = useState<string | null>(null);\n  const [isSaving, setIsSaving] = useState(false);\n  const [error, setError] = useState<string | null>(null);\n  const [locations, setLocations] = useState<\n    Array<{ value: string; label: string }>\n  >([]);\n  const [operators, setOperators] = useState<\n    Array<{ value: string; label: string }>\n  >([]);\n  const [loadingOptions, setLoadingOptions] = useState(true);\n\n  const [eventTitle, setEventTitle] = useState('');\n  const [eventComment, setEventComment] = useState('');\n  const [eventImage, setEventImage] = useState('');\n  const [localImageUri, setLocalImageUri] = useState('');\n  const [isUploadingImage, setIsUploadingImage] = useState(false);\n\n  const requiresEvent = status === 'mantenimiento' || status === 'inactiva';\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\n      if (machinery.status) {\n        const apiStatus = machinery.status as MachineStatusAPI;\n        const spanishStatus = statusMapFromAPI[apiStatus];\n        if (spanishStatus) {\n          setStatus(spanishStatus);\n        }\n      }\n\n      if (machinery.location_id) {\n        setLocation(String(machinery.location_id));\n      }\n\n      if (machinery.assigned_to_id) {\n        setAssignee(String(machinery.assigned_to_id));\n      }\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  }, [machineryId]);\n\n  const loadOptions = useCallback(async () => {\n    setLoadingOptions(true);\n    try {\n      const [locationData, operatorData] = await Promise.all([\n        fetchMachineryLocations(),\n        fetchMachineryOperators(),\n      ]);\n\n      if (Array.isArray(locationData)) {\n        const locationOptions = locationData.map(loc => ({\n          value: String(loc.id),\n          label: loc.name || `Location ${loc.id}`,\n        }));\n        setLocations(locationOptions);\n      }\n\n      if (Array.isArray(operatorData)) {\n        const operatorOptions = operatorData.map(op => ({\n          value: String(op.id),\n          label: op.name || op.operator_name || `Operator ${op.id}`,\n        }));\n        setOperators(operatorOptions);\n      }\n    } catch (err) {\n      console.error('Error al cargar opciones:', err);\n    } finally {\n      setLoadingOptions(false);\n    }\n  }, []);\n\n  useEffect(() => {\n    loadMachineryData();\n    loadOptions();\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  const clearEventFields = useCallback(() => {\n    setEventTitle('');\n    setEventComment('');\n    setEventImage('');\n    setLocalImageUri('');\n  }, []);\n\n  const handlePickFile = useCallback(async () => {\n    setError(null);\n    try {\n      const results: any = await pickDocument({\n        allowMultiSelection: false,\n        type: ['image/*'],\n      });\n      const item = Array.isArray(results) ? results[0] : results;\n      const uri: string = item?.fileCopyUri || item?.uri || '';\n      const name: string = item?.name || 'machinery-event.jpg';\n      if (!uri) {\n        setError('No se pudo leer el archivo seleccionado');\n        return;\n      }\n      setIsUploadingImage(true);\n      const uploadedName = await uploadFileToServer(uri, name);\n      setEventImage(uploadedName);\n      setLocalImageUri(uri);\n    } catch (e: any) {\n      if (\n        e?.code === 'DOCUMENT_PICKER_CANCELED' ||\n        e?.code === 'OPERATION_CANCELED' ||\n        e?.code === 'E_MODULE_NOT_LINKED'\n      ) {\n        return;\n      }\n      setError('No se pudo subir la imagen');\n    } finally {\n      setIsUploadingImage(false);\n    }\n  }, []);\n\n  const clearEventImage = useCallback(() => {\n    setEventImage('');\n    setLocalImageUri('');\n  }, []);\n\n  const save = useCallback(async () => {\n    if (!machineryId) {\n      setError('ID de maquinaria no válido');\n      return;\n    }\n    if (isUploadingImage) {\n      setError('La imagen aún se está subiendo. Espere un momento.');\n      return;\n    }\n\n    if (requiresEvent) {\n      if (!eventTitle.trim()) {\n        setError('El título del evento es obligatorio');\n        return;\n      }\n      if (!eventComment.trim()) {\n        setError('El comentario del evento es obligatorio');\n        return;\n      }\n    }\n\n    setIsSaving(true);\n    setError(null);\n\n    try {\n      const apiStatus = statusMap[status];\n\n      const fields: string[] = ['status'];\n      const values: any[] = [apiStatus];\n\n      if (location) {\n        fields.push('location_id');\n        values.push(parseInt(location, 10));\n      }\n\n      if (assignee) {\n        fields.push('assigned_to_id');\n        values.push(parseInt(assignee, 10));\n      }\n\n      await updateMachineryStatus(machineryId, fields, values);\n\n      const nowLocal = dayjs();\n      const nowUTC = nowLocal.utc();\n      const statusChangeDateTime = nowUTC.format('YYYY-MM-DD HH:mm:ss');\n\n      await insertMachineryStatusChange(\n        machineryId,\n        statusChangeDateTime,\n        requiresEvent ? eventTitle.trim() : null,\n        requiresEvent ? eventComment.trim() : null,\n        requiresEvent ? eventImage || null : null,\n        user?.id ?? null,\n      );\n\n      // @ts-ignore\n      navigation.navigate(MACHINERY_SCREENS.PREVIEW, { id: machineryId });\n    } catch (err: any) {\n      console.error('Error al actualizar estado de la máquina:', err);\n      setError(\n        err.message ||\n          'Error al actualizar el estado de la máquina. Por favor, intente nuevamente.',\n      );\n    } finally {\n      setIsSaving(false);\n    }\n  }, [\n    machineryId,\n    status,\n    location,\n    assignee,\n    navigation,\n    requiresEvent,\n    eventTitle,\n    eventComment,\n    eventImage,\n    isUploadingImage,\n    user?.id,\n  ]);\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  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}>\n            Verifica tu conexión o inténtalo nuevamente.\n          </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          {machineryData ? (\n            <View style={styles.headerContent}>\n              <View style={styles.machineInfo}>\n                <Text style={styles.machineLabel}>MÁQUINA</Text>\n                <Text style={styles.machineName}>{machineName}</Text>\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          ) : (\n            <Text style={styles.loadingText}>\n              Cargando datos de la máquina...\n            </Text>\n          )}\n        </View>\n\n        {}\n        <View style={styles.formCard}>\n          {}\n          <View style={styles.statusSection}>\n            <Text style={styles.sectionTitle}>SELECCIONE NUEVO ESTADO</Text>\n            <View style={styles.statusOptions}>\n              <StatusOption\n                value=\"operativa\"\n                label=\"Operativa\"\n                color={statusColorMap.operativa}\n                isActive={status === 'operativa'}\n                onPress={() => {\n                  setStatus('operativa');\n                  clearEventFields();\n                }}\n              />\n              <StatusOption\n                value=\"mantenimiento\"\n                label=\"Mantenimiento\"\n                color={statusColorMap.mantenimiento}\n                isActive={status === 'mantenimiento'}\n                onPress={() => setStatus('mantenimiento')}\n              />\n              <StatusOption\n                value=\"inactiva\"\n                label=\"Inactiva\"\n                color={statusColorMap.inactiva}\n                isActive={status === 'inactiva'}\n                onPress={() => setStatus('inactiva')}\n              />\n            </View>\n          </View>\n\n          {}\n          <View style={styles.fieldSection}>\n            <Text style={styles.fieldLabel}>UBICACIÓN</Text>\n            <SearchableSelect\n              selectedValue={location}\n              onValueChange={value => setLocation(value as string | null)}\n              options={locations}\n              placeholder={\n                loadingOptions ? 'Cargando...' : 'Seleccione una ubicación'\n              }\n              minSearchLength={0}\n            />\n          </View>\n\n          {}\n          <View style={styles.fieldSection}>\n            <Text style={styles.fieldLabel}>ASIGNADO A</Text>\n            <SearchableSelect\n              selectedValue={assignee}\n              onValueChange={value => setAssignee(value as string | null)}\n              options={operators}\n              placeholder={\n                loadingOptions ? 'Cargando...' : 'Seleccione un operador'\n              }\n              minSearchLength={0}\n            />\n          </View>\n        </View>\n\n        {/* Event Registration (only for mantenimiento / inactiva) */}\n        {requiresEvent && (\n          <View style={styles.formCard}>\n            <View style={styles.statusSection}>\n              <Text style={styles.sectionTitle}>REGISTRO DE EVENTO</Text>\n\n              {/* Title */}\n              <View style={styles.eventField}>\n                <Text style={styles.fieldLabel}>\n                  TÍTULO <Text style={styles.requiredMark}>*</Text>\n                </Text>\n                <TextInput\n                  value={eventTitle}\n                  onChangeText={setEventTitle}\n                  placeholder=\"Escriba aquí\"\n                  style={styles.textInput}\n                  editable={!isSaving}\n                />\n              </View>\n\n              {/* Comment */}\n              <View style={styles.eventField}>\n                <Text style={styles.fieldLabel}>\n                  COMENTARIO <Text style={styles.requiredMark}>*</Text>\n                </Text>\n                <TextInput\n                  value={eventComment}\n                  onChangeText={t => setEventComment(t.slice(0, 160))}\n                  placeholder=\"Escriba aquí (Límite 160 caracteres)\"\n                  style={styles.textArea}\n                  multiline\n                  editable={!isSaving}\n                />\n                <Text style={styles.charCount}>\n                  {eventComment.length}/160\n                </Text>\n              </View>\n\n              {/* Photo */}\n              <View style={styles.eventField}>\n                <Text style={styles.fieldLabel}>FOTO</Text>\n                <View style={styles.imageRow}>\n                  <TouchableOpacity\n                    onPress={handlePickFile}\n                    style={[styles.uploadButton, { backgroundColor: accentColor }]}\n                    activeOpacity={0.8}\n                    disabled={isSaving || isUploadingImage}\n                  >\n                    <Text style={styles.uploadButtonText}>\n                      {isUploadingImage ? 'Subiendo foto...' : 'Seleccionar foto'}\n                    </Text>\n                  </TouchableOpacity>\n                  {eventImage ? (\n                    <>\n                      <Text\n                        style={styles.imageName}\n                        numberOfLines={1}\n                        ellipsizeMode=\"tail\"\n                      >\n                        {eventImage}\n                      </Text>\n                      <TouchableOpacity\n                        onPress={clearEventImage}\n                        style={styles.clearButton}\n                      >\n                        <Text style={styles.clearButtonText}>Quitar</Text>\n                      </TouchableOpacity>\n                    </>\n                  ) : (\n                    <Text style={styles.noImageText}>Sin foto seleccionada</Text>\n                  )}\n                </View>\n                {(!!localImageUri || (apiFileServer && !!eventImage)) && (\n                  <View style={styles.imagePreviewContainer}>\n                    <Image\n                      source={{\n                        uri: localImageUri || `${apiFileServer}/get/${eventImage}`,\n                      }}\n                      style={styles.imagePreview}\n                      resizeMode=\"cover\"\n                    />\n                  </View>\n                )}\n                {isUploadingImage && (\n                  <Text style={styles.uploadHint}>\n                    Subiendo imagen, puede tardar unos segundos...\n                  </Text>\n                )}\n              </View>\n            </View>\n          </View>\n        )}\n\n        {/* Error message */}\n        {error && (\n          <View style={styles.errorContainer}>\n            <Text style={styles.errorText}>{error}</Text>\n          </View>\n        )}\n\n        {}\n        <View style={styles.actionsContainer}>\n          <TouchableOpacity\n            style={[styles.saveButton, { backgroundColor: accentColor }]}\n            onPress={save}\n            disabled={isSaving || isUploadingImage}\n            activeOpacity={0.8}\n          >\n            <Text style={styles.saveButtonText}>\n              {isSaving ? 'Guardando...' : isUploadingImage ? 'Subiendo imagen...' : 'Guardar'}\n            </Text>\n          </TouchableOpacity>\n        </View>\n      </ScrollView>\n    </View>\n  </>\n  );\n}\n\nfunction StatusOption({\n  value,\n  label,\n  color,\n  isActive,\n  onPress,\n}: {\n  value: MachineStatus;\n  label: string;\n  color: string;\n  isActive: boolean;\n  onPress: () => void;\n}) {\n  return (\n    <TouchableOpacity\n      style={[styles.statusOption, isActive && styles.statusOptionActive]}\n      onPress={onPress}\n      activeOpacity={0.8}\n    >\n      <StatusDot status={value} size={14} />\n      <Text style={styles.statusOptionLabel}>{label}</Text>\n      {isActive && (\n        <View style={[styles.statusCheckmark, { backgroundColor: color }]}>\n          <Text style={styles.statusCheckmarkText}>✓</Text>\n        </View>\n      )}\n    </TouchableOpacity>\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  machineName: {\n    fontSize: 24,\n    fontWeight: '800',\n    color: '#111827',\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  formCard: {\n    backgroundColor: '#FFFFFF',\n    borderRadius: 16,\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n    overflow: 'hidden',\n    marginBottom: 16,\n  },\n  statusSection: {\n    padding: 24,\n    backgroundColor: '#F9FAFB',\n    borderBottomWidth: 1,\n    borderBottomColor: '#E5E7EB',\n  },\n  sectionTitle: {\n    fontSize: 14,\n    fontWeight: '600',\n    color: '#374151',\n    textAlign: 'center',\n    marginBottom: 24,\n  },\n  statusOptions: {\n    gap: 12,\n  },\n  statusOption: {\n    flexDirection: 'row',\n    alignItems: 'center',\n    gap: 12,\n    padding: 16,\n    borderRadius: 12,\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n    backgroundColor: '#FFFFFF',\n  },\n  statusOptionActive: {\n    backgroundColor: 'rgba(0,0,0,0.02)',\n    borderColor: 'transparent',\n  },\n  statusOptionLabel: {\n    fontSize: 16,\n    fontWeight: '600',\n    color: '#111827',\n    flex: 1,\n  },\n  statusCheckmark: {\n    width: 24,\n    height: 24,\n    borderRadius: 12,\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  statusCheckmarkText: {\n    color: '#FFFFFF',\n    fontSize: 14,\n    fontWeight: '700',\n  },\n  fieldSection: {\n    padding: 24,\n    borderBottomWidth: 1,\n    borderBottomColor: '#E5E7EB',\n    gap: 12,\n  },\n  fieldLabel: {\n    fontSize: 12,\n    letterSpacing: 1,\n    color: '#6B7280',\n    fontWeight: '500',\n  },\n  eventField: {\n    marginTop: 16,\n    gap: 8,\n  },\n  requiredMark: {\n    color: '#DC2626',\n    fontWeight: '700',\n  },\n  textInput: {\n    borderWidth: 1,\n    borderColor: '#D1D5DB',\n    borderRadius: 8,\n    paddingHorizontal: 12,\n    paddingVertical: 10,\n    fontSize: 14,\n    color: '#111827',\n    backgroundColor: '#FFFFFF',\n  },\n  textArea: {\n    borderWidth: 1,\n    borderColor: '#D1D5DB',\n    borderRadius: 8,\n    paddingHorizontal: 12,\n    paddingVertical: 10,\n    fontSize: 14,\n    color: '#111827',\n    backgroundColor: '#FFFFFF',\n    minHeight: 80,\n    textAlignVertical: 'top',\n  },\n  charCount: {\n    fontSize: 12,\n    color: '#9CA3AF',\n    textAlign: 'right',\n  },\n  imageRow: {\n    flexDirection: 'row',\n    alignItems: 'center',\n    gap: 10,\n    flexWrap: 'wrap',\n  },\n  uploadButton: {\n    paddingHorizontal: 14,\n    paddingVertical: 8,\n    borderRadius: 6,\n  },\n  uploadButtonText: {\n    color: '#FFFFFF',\n    fontSize: 13,\n    fontWeight: '600',\n  },\n  imageName: {\n    flex: 1,\n    fontSize: 13,\n    color: '#374151',\n  },\n  clearButton: {\n    paddingHorizontal: 8,\n    paddingVertical: 4,\n  },\n  clearButtonText: {\n    fontSize: 13,\n    color: '#DC2626',\n    fontWeight: '600',\n  },\n  noImageText: {\n    fontSize: 13,\n    color: '#9CA3AF',\n  },\n  uploadHint: {\n    fontSize: 12,\n    color: '#6B7280',\n    marginTop: 6,\n  },\n  imagePreviewContainer: {\n    marginTop: 8,\n    borderRadius: 8,\n    overflow: 'hidden',\n    borderWidth: 1,\n    borderColor: '#E5E7EB',\n  },\n  imagePreview: {\n    width: '100%',\n    height: 200,\n  },\n  errorContainer: {\n    marginBottom: 16,\n    padding: 16,\n    backgroundColor: '#FEF2F2',\n    borderWidth: 1,\n    borderColor: '#FECACA',\n    borderRadius: 8,\n  },\n  errorText: {\n    fontSize: 14,\n    color: '#991B1B',\n  },\n  actionsContainer: {\n    marginTop: 8,\n    alignItems: 'flex-end',\n  },\n  saveButton: {\n    paddingHorizontal: 24,\n    paddingVertical: 12,\n    borderRadius: 8,\n    minWidth: 120,\n    alignItems: 'center',\n  },\n  saveButtonText: {\n    fontSize: 14,\n    fontWeight: '600',\n    color: '#FFFFFF',\n  },\n});\n\nexport default MachineChangeStatus;\n","import MachineChangeStatusComponent from './MachineChangeStatus';\n\nfunction MachineChangeStatusScreen() {\n  return <MachineChangeStatusComponent />;\n}\n\nexport default MachineChangeStatusScreen;\n","import { NativeModules } from 'react-native';\n\ntype PickOptions = {\n  allowMultiSelection?: boolean;\n  type?: string[];\n};\n\nexport async function pickDocument(options: PickOptions) {\n  const hasTurbo = !!(NativeModules && (NativeModules as any).RNDocumentPicker);\n  if (!hasTurbo) {\n    const err: any = new Error('RNDocumentPicker no está vinculado en esta app');\n    err.code = 'E_MODULE_NOT_LINKED';\n    throw err;\n  }\n\n  try {\n    // eslint-disable-next-line @typescript-eslint/no-var-requires\n    const mod: any = require('@react-native-documents/picker');\n    const pickFn = mod?.pick || mod?.default?.pick;\n    if (typeof pickFn !== 'function') {\n      const err: any = new Error('API de @react-native-documents/picker no disponible');\n      err.code = 'E_API_UNAVAILABLE';\n      throw err;\n    }\n    return await pickFn(options);\n  } catch (e: any) {\n    const msg: string = String(e?.message || '');\n    if (msg.includes(\"RNDocumentPicker' could not be found\") || msg.includes('TurboModuleRegistry.getEnforcing')) {\n      const err: any = new Error('RNDocumentPicker no está vinculado en esta app');\n      err.code = 'E_MODULE_NOT_LINKED';\n      throw err;\n    }\n    throw e;\n  }\n}\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nfunction _export(target, all) {\n    for(var name in all)Object.defineProperty(target, name, {\n        enumerable: true,\n        get: Object.getOwnPropertyDescriptor(all, name).get\n    });\n}\n_export(exports, {\n    get errorCodes () {\n        return errorCodes;\n    },\n    get isErrorWithCode () {\n        return isErrorWithCode;\n    }\n});\nvar OPERATION_CANCELED = 'OPERATION_CANCELED';\nvar IN_PROGRESS = 'ASYNC_OP_IN_PROGRESS';\nvar UNABLE_TO_OPEN_FILE_TYPE = 'UNABLE_TO_OPEN_FILE_TYPE';\nvar errorCodes = Object.freeze({\n    OPERATION_CANCELED: OPERATION_CANCELED,\n    IN_PROGRESS: IN_PROGRESS,\n    UNABLE_TO_OPEN_FILE_TYPE: UNABLE_TO_OPEN_FILE_TYPE\n});\nvar isErrorWithCode = function(error) {\n    // to account for https://github.com/facebook/react-native/issues/41950\n    var isNewArchErrorIOS = typeof error === 'object' && error != null;\n    return (error instanceof Error || isNewArchErrorIOS) && 'code' in error;\n};\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nfunction _export(target, all) {\n    for(var name in all)Object.defineProperty(target, name, {\n        enumerable: true,\n        get: Object.getOwnPropertyDescriptor(all, name).get\n    });\n}\n_export(exports, {\n    get types () {\n        return types;\n    },\n    get typesAreEqual () {\n        return typesAreEqual;\n    }\n});\nvar _reactnative = require(\"react-native\");\n// TODO split this into platform-specific files, and / or topic-specific files\nvar mimeTypes = Object.freeze({\n    allFiles: '*/*',\n    audio: 'audio/*',\n    csv: [\n        'text/csv',\n        'text/comma-separated-values'\n    ],\n    doc: 'application/msword',\n    docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n    images: 'image/*',\n    pdf: 'application/pdf',\n    plainText: 'text/plain',\n    json: 'application/json',\n    ppt: 'application/vnd.ms-powerpoint',\n    pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n    video: 'video/*',\n    xls: 'application/vnd.ms-excel',\n    xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n    zip: 'application/zip'\n}); //satisfies TypeOfFileTypes\nvar utis = Object.freeze({\n    allFiles: 'public.item',\n    audio: 'public.audio',\n    csv: 'public.comma-separated-values-text',\n    doc: 'com.microsoft.word.doc',\n    docx: 'org.openxmlformats.wordprocessingml.document',\n    images: 'public.image',\n    pdf: 'com.adobe.pdf',\n    plainText: 'public.plain-text',\n    json: 'public.json',\n    ppt: 'com.microsoft.powerpoint.ppt',\n    pptx: 'org.openxmlformats.presentationml.presentation',\n    video: 'public.movie',\n    xls: 'com.microsoft.excel.xls',\n    xlsx: 'org.openxmlformats.spreadsheetml.sheet',\n    zip: 'public.zip-archive'\n}); // satisfies TypeOfFileTypes\nvar perPlatformTypes = {\n    android: mimeTypes,\n    ios: utis,\n    // unsupported, but added to make TS happy\n    macos: utis,\n    windows: mimeTypes,\n    web: mimeTypes\n};\nvar types = perPlatformTypes[_reactnative.Platform.OS];\nvar mimesAndUtisAreEqual = true;\nvar typesAreEqual = mimesAndUtisAreEqual;\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nfunction _export(target, all) {\n    for(var name in all)Object.defineProperty(target, name, {\n        enumerable: true,\n        get: Object.getOwnPropertyDescriptor(all, name).get\n    });\n}\n_export(exports, {\n    get errorCodes () {\n        return _errors.errorCodes;\n    },\n    get isErrorWithCode () {\n        return _errors.isErrorWithCode;\n    },\n    get isKnownType () {\n        return _isKnownType.isKnownType;\n    },\n    get keepLocalCopy () {\n        return _keepLocalCopy.keepLocalCopy;\n    },\n    get pick () {\n        return _pick.pick;\n    },\n    get pickDirectory () {\n        return _pickDirectory.pickDirectory;\n    },\n    get releaseLongTermAccess () {\n        return _release.releaseLongTermAccess;\n    },\n    get releaseSecureAccess () {\n        return _release.releaseSecureAccess;\n    },\n    get saveDocuments () {\n        return _saveDocuments.saveDocuments;\n    },\n    get types () {\n        return _fileTypes.types;\n    }\n});\nvar _isKnownType = require(\"./isKnownType\");\nvar _keepLocalCopy = require(\"./keepLocalCopy\");\nvar _fileTypes = require(\"./fileTypes\");\nvar _errors = require(\"./errors\");\nvar _pickDirectory = require(\"./pickDirectory\");\nvar _pick = require(\"./pick\");\nvar _saveDocuments = require(\"./saveDocuments\");\nvar _release = require(\"./release\");\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"isKnownType\", {\n    enumerable: true,\n    get: function() {\n        return isKnownType;\n    }\n});\nvar _NativeDocumentPicker = require(\"./spec/NativeDocumentPicker\");\nfunction isKnownType(options) {\n    var kind = options.kind, value = options.value;\n    var result = _NativeDocumentPicker.NativeDocumentPicker.isKnownType(kind, value);\n    return result;\n}\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"keepLocalCopy\", {\n    enumerable: true,\n    get: function() {\n        return keepLocalCopy;\n    }\n});\nvar _NativeDocumentPicker = require(\"./spec/NativeDocumentPicker\");\nfunction keepLocalCopy(options) {\n    var response = _NativeDocumentPicker.NativeDocumentPicker.keepLocalCopy(options);\n    return response;\n}\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"pick\", {\n    enumerable: true,\n    get: function() {\n        return pick;\n    }\n});\nvar _async_to_generator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _extends = require(\"@swc/helpers/_/_extends\");\nvar _object_spread_props = require(\"@swc/helpers/_/_object_spread_props\");\nvar _NativeDocumentPicker = require(\"./spec/NativeDocumentPicker\");\nvar _fileTypes = require(\"./fileTypes\");\nvar _reactnative = require(\"react-native\");\nvar _validateTypes = require(\"./validateTypes\");\nfunction pick(options) {\n    return _async_to_generator._(function*() {\n        var type = function() {\n            if (!(options == null ? void 0 : options.type)) {\n                return [\n                    _fileTypes.types.allFiles\n                ];\n            }\n            var newType = Array.isArray(options.type) ? options.type : [\n                options.type\n            ];\n            return newType.flat().map(function(it) {\n                return it.trim();\n            });\n        }();\n        var newOpts = _object_spread_props._(_extends._({\n            mode: 'import',\n            // allowMultiSelection must be false to maintain old (v5) behavior\n            allowMultiSelection: false,\n            allowVirtualFiles: false\n        }, options), {\n            type: type\n        });\n        if (!newOpts.type.every(function(it) {\n            return typeof it === 'string';\n        })) {\n            throw new TypeError(`Unexpected type option in ${newOpts.type}, did you try using a DocumentPicker.types.* that does not exist?`);\n        }\n        if ('mode' in newOpts && ![\n            'import',\n            'open'\n        ].includes(newOpts.mode)) {\n            throw new TypeError('Invalid mode option: ' + newOpts.mode);\n        }\n        var response = _NativeDocumentPicker.NativeDocumentPicker.pick(newOpts);\n        var awaitedResult = yield response;\n        for (var res of awaitedResult){\n            if (_reactnative.Platform.OS === 'android') {\n                res.hasRequestedType = (0, _validateTypes.safeValidate)(newOpts.type, res);\n            } else {\n                res.hasRequestedType = true;\n            }\n        }\n        return awaitedResult;\n    })();\n}\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"pickDirectory\", {\n    enumerable: true,\n    get: function() {\n        return pickDirectory;\n    }\n});\nvar _async_to_generator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _extends = require(\"@swc/helpers/_/_extends\");\nvar _object_spread_props = require(\"@swc/helpers/_/_object_spread_props\");\nvar _reactnative = require(\"react-native\");\nvar _NativeDocumentPicker = require(\"./spec/NativeDocumentPicker\");\nfunction pickDirectory(options) {\n    return _async_to_generator._(function*() {\n        var optionsOverride = function() {\n            if (_reactnative.Platform.OS === 'ios') {\n                return _object_spread_props._(_extends._({}, options), {\n                    mode: 'open',\n                    allowMultiSelection: false,\n                    type: [\n                        'public.folder'\n                    ]\n                });\n            } else {\n                return _extends._({\n                    // technically, \"mode\" is ignored here, and we shouldn't need to specify anything but the PickOptions data class\n                    // requires mode to be set\n                    mode: 'open'\n                }, options);\n            }\n        }();\n        return _NativeDocumentPicker.NativeDocumentPicker.pickDirectory(optionsOverride);\n    })();\n}\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nfunction _export(target, all) {\n    for(var name in all)Object.defineProperty(target, name, {\n        enumerable: true,\n        get: Object.getOwnPropertyDescriptor(all, name).get\n    });\n}\n_export(exports, {\n    get releaseLongTermAccess () {\n        return releaseLongTermAccess;\n    },\n    get releaseSecureAccess () {\n        return releaseSecureAccess;\n    }\n});\nvar _async_to_generator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _NativeDocumentPicker = require(\"./spec/NativeDocumentPicker\");\nvar releaseLongTermAccess = function(uris) {\n    return _async_to_generator._(function*() {\n        return _NativeDocumentPicker.NativeDocumentPicker.releaseLongTermAccess(uris);\n    })();\n};\nvar releaseSecureAccess = function(uris) {\n    return _async_to_generator._(function*() {\n        return _NativeDocumentPicker.NativeDocumentPicker.releaseSecureAccess(uris);\n    })();\n};\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"saveDocuments\", {\n    enumerable: true,\n    get: function() {\n        return saveDocuments;\n    }\n});\nvar _async_to_generator = require(\"@swc/helpers/_/_async_to_generator\");\nvar _NativeDocumentPicker = require(\"./spec/NativeDocumentPicker\");\nvar _reactnative = require(\"react-native\");\nfunction saveDocuments(options) {\n    return _async_to_generator._(function*() {\n        var writeDocumentResponse = yield function() {\n            return _async_to_generator._(function*() {\n                if (_reactnative.Platform.OS === 'android') {\n                    var length = options.sourceUris.length;\n                    if (length > 1) {\n                        console.warn(`DocumentPicker.saveDocuments: Android only allows to save one file at a time.\\n\n      You provided an array with ${length} entries.`);\n                    }\n                    // making this division into 2 calls might be an overkill... but who knows\n                    var objectWithSingleUri = yield _NativeDocumentPicker.NativeDocumentPicker.saveDocument(options);\n                    var response = yield _NativeDocumentPicker.NativeDocumentPicker.writeDocuments(objectWithSingleUri);\n                    return response;\n                } else {\n                    return _NativeDocumentPicker.NativeDocumentPicker.writeDocuments(options);\n                }\n            })();\n        }();\n        return writeDocumentResponse.map(keepOnlySpecifiedFields);\n    })();\n}\nfunction keepOnlySpecifiedFields(source) {\n    return {\n        uri: source.uri,\n        name: source.name,\n        error: source.error\n    };\n}\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"NativeDocumentPicker\", {\n    enumerable: true,\n    get: function() {\n        return NativeDocumentPicker;\n    }\n});\nvar _reactnative = require(\"react-native\");\nvar NativeDocumentPicker = _reactnative.TurboModuleRegistry.getEnforcing('RNDocumentPicker');\n","Object.defineProperty(exports, \"__esModule\", {\n    value: true\n});\nObject.defineProperty(exports, \"safeValidate\", {\n    enumerable: true,\n    get: function() {\n        return safeValidate;\n    }\n});\nvar safeValidate = function(requestedTypes, singlePickResult) {\n    var nativeType = singlePickResult.nativeType;\n    return requestedTypes.some(function(it) {\n        return nativeTypeMatches(it, nativeType);\n    });\n};\nvar nativeTypeMatches = function(requiredType, actualType) {\n    if (requiredType === actualType || requiredType === '*/*') {\n        return true;\n    }\n    if (actualType === null) {\n        return false;\n    }\n    if (requiredType.endsWith('/*')) {\n        var requiredTypeWithoutStar = requiredType.slice(0, -2);\n        if (actualType.startsWith(requiredTypeWithoutStar)) {\n            return true;\n        }\n    }\n    return false;\n};\n"],"names":["statusColorMap","operativa","mantenimiento","inactiva","StatusDot","status","size","View","style","width","height","borderRadius","backgroundColor","accessibilityLabel","accessibilityRole","dayjs","extend","utc","statusMap","statusMapFromAPI","operational","maintenance","inactive","StatusOption","value","label","color","isActive","onPress","TouchableOpacity","styles","statusOption","statusOptionActive","activeOpacity","Text","statusOptionLabel","statusCheckmark","statusCheckmarkText","StyleSheet","create","screen","flex","container","contentContainer","padding","center","alignItems","justifyContent","gap","loadingText","fontSize","errorIcon","errorTitle","fontWeight","marginBottom","errorSubtitle","errorMessageBox","maxWidth","errorMessageText","errorRetryButton","alignSelf","paddingHorizontal","paddingVertical","errorRetryButtonText","emptyIcon","emptyTitle","emptyText","headerCard","borderWidth","borderColor","headerContent","machineInfo","machineLabel","letterSpacing","machineName","plateInfo","plateLabel","plateValue","formCard","overflow","statusSection","borderBottomWidth","borderBottomColor","sectionTitle","textAlign","statusOptions","flexDirection","fieldSection","fieldLabel","eventField","marginTop","requiredMark","textInput","textArea","minHeight","textAlignVertical","charCount","imageRow","flexWrap","uploadButton","uploadButtonText","imageName","clearButton","clearButtonText","noImageText","uploadHint","imagePreviewContainer","imagePreview","errorContainer","errorText","actionsContainer","saveButton","minWidth","saveButtonText","clientConfig","route","useRoute","navigation","useNavigation","insets","useSafeAreaInsets","machineryId","params","id","config","useAuth","user","defaultConfig","useMemo","configService","getDefaultConfig","accentColor","primaryColor","apiFileServer","API_FILE_SERVER","useState","machineryData","setMachineryData","loadingMachinery","setLoadingMachinery","setStatus","location","setLocation","assignee","setAssignee","isSaving","setIsSaving","error","setError","locations","setLocations","operators","setOperators","loadingOptions","setLoadingOptions","eventTitle","setEventTitle","eventComment","setEventComment","eventImage","setEventImage","localImageUri","setLocalImageUri","isUploadingImage","setIsUploadingImage","requiresEvent","loadMachineryData","useCallback","machinery","fetchMachineryById","apiStatus","spanishStatus","location_id","String","assigned_to_id","err","console","message","loadOptions","Promise","all","fetchMachineryLocations","fetchMachineryOperators","locationData","operatorData","Array","isArray","locationOptions","map","loc","name","operatorOptions","op","operator_name","useEffect","clearEventFields","handlePickFile","results","pickDocument","allowMultiSelection","type","item","uri","fileCopyUri","uploadedName","uploadFileToServer","e","code","clearEventImage","save","trim","fields","values","push","parseInt","updateMachineryStatus","statusChangeDateTime","format","insertMachineryStatusChange","navigate","MACHINERY_SCREENS","PREVIEW","machine_name","machinery_name","description","LoadingSpinner","numberOfLines","ScrollView","contentContainerStyle","paddingBottom","bottom","plate","SearchableSelect","selectedValue","onValueChange","options","placeholder","minSearchLength","TextInput","onChangeText","editable","t","slice","multiline","length","disabled","ellipsizeMode","Image","source","resizeMode","NativeModules","RNDocumentPicker","Error","mod","require","pickFn","pick","default","msg","includes","Object","defineProperty","exports","target","enumerable","get","getOwnPropertyDescriptor","_export","errorCodes","isErrorWithCode","freeze","OPERATION_CANCELED","IN_PROGRESS","UNABLE_TO_OPEN_FILE_TYPE","types","typesAreEqual","_reactnative","mimeTypes","allFiles","audio","csv","doc","docx","images","pdf","plainText","json","ppt","pptx","video","xls","xlsx","zip","utis","android","ios","macos","windows","web","Platform","OS","_errors","isKnownType","_isKnownType","keepLocalCopy","_keepLocalCopy","_pick","pickDirectory","_pickDirectory","releaseLongTermAccess","_release","releaseSecureAccess","saveDocuments","_saveDocuments","_fileTypes","_NativeDocumentPicker","kind","NativeDocumentPicker","_async_to_generator","_extends","_object_spread_props","_validateTypes","_","flat","it","newOpts","mode","allowVirtualFiles","every","TypeError","response","awaitedResult","res","hasRequestedType","safeValidate","optionsOverride","uris","sourceUris","warn","objectWithSingleUri","saveDocument","writeDocuments","keepOnlySpecifiedFields","TurboModuleRegistry","getEnforcing","requestedTypes","singlePickResult","nativeType","some","nativeTypeMatches","requiredType","actualType","endsWith","requiredTypeWithoutStar","startsWith"],"mappings":"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"}