{"version":3,"file":"__federation_expose_ThirdPartyAuditFormScreen.chunk.bundle","sources":["/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/otherReports/src/screens/ThirdPartyAuditForm.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/otherReports/src/screens/ThirdPartyAuditFormScreen.tsx","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/otherReports/src/services/thirdPartyAudit.api.ts","/Users/claudiobaiardi/Documents/GitHub/aldyl/dataoil-app/apps/data-oil-app/otherReports/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 Toast from 'react-native-toast-message';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useAuth } from '@data-oil-front/core-host';\nimport { submitReportWithOfflineFallback } from '@data-oil-front/core-reports';\nimport {\n  TABLE_NAMES,\n  API_VERBS,\n  ApiPostBody,\n} from '@data-oil-front/core-utils';\nimport {\n  View,\n  Text,\n  StyleSheet,\n  TouchableOpacity,\n  ScrollView,\n  TextInput,\n  Image,\n} from 'react-native';\nimport dayjs from 'dayjs';\nimport {\n  Select,\n  MenuItem,\n  StatusButton,\n  DatePicker,\n  FormBox,\n} from '@data-oil-front/ui-mobile';\nimport { useClientConfig } from '../hooks/useClientConfig';\nimport { pickDocument } from '../utils/safeDocumentPicker';\nimport {\n  fetchTanks,\n  fetchThirdPartyCompanies,\n} from '../services/thirdPartyAudit.api';\nimport type { Tank } from '../types/tank';\nimport type { ThirdPartyCompany } from '../types/thirdPartyCompany';\n\ntype DailyReportConfig = {\n  commentsFormFields?: string[];\n  fiscalizationFormFields?: string[];\n  ownFiscalizationFormFields?: string[];\n};\n\ntype CoreConfigType = {\n  dailyReport?: DailyReportConfig;\n};\n\nexport default function ThirdPartyAuditFormComponent() {\n  const [type, setType] = useState<string>('');\n  const [tank, setTank] = useState<string>('');\n  const [date, setDate] = useState<Date>(new Date());\n  const [netFiscalizedNumber, setNetFiscalizedNumber] = useState<string>('');\n  const [grossFiscalizedNumber, setGrossFiscalizedNumber] =\n    useState<string>('');\n  const [fiscalizedTemperature, setFiscalizedTemperature] =\n    useState<string>('');\n  const [fiscalizedApi, setFiscalizedApi] = useState<string>('');\n  const [fiscalizedAys, setFiscalizedAys] = useState<string>('');\n  const [tankTemperature, setTankTemperature] = useState<string>('');\n  const [tankGaugingMeasurementFeet, setTankGaugingMeasurementFeet] =\n    useState<string>('');\n  const [tankGaugingMeasurementInches, setTankGaugingMeasurementInches] =\n    useState<string>('');\n  const [tankGaugingMeasurementEighths, setTankGaugingMeasurementEighths] =\n    useState<string>('');\n  const [dailyDiscountRate, setDailyDiscountRate] = useState<string>('');\n  const [file, setFile] = useState<string>('');\n  const [localFileUri, setLocalFileUri] = useState<string>('');\n  const [isImagePreview, setIsImagePreview] = useState<boolean>(false);\n\n  const [thirdPartyCompanyName, setThirdPartyCompanyName] =\n    useState<string>('');\n  const [thirdPartyCompanies, setThirdPartyCompanies] = useState<\n    ThirdPartyCompany[]\n  >([]);\n\n  const [touched, setTouched] = useState<boolean>(false);\n  const [isLoading, setIsLoading] = useState<boolean>(false);\n  const [tanks, setTanks] = useState<Tank[]>([]);\n\n  const {\n    config: clientConfig,\n    apiFileServer,\n    primaryColor: accentColor,\n  } = useClientConfig();\n  const { user } = useAuth();\n\n  const includeField = useCallback(\n    (fieldName: string): boolean => {\n      const fields = (clientConfig?.CORE_CONFIG as CoreConfigType)?.dailyReport\n        ?.fiscalizationFormFields;\n      if (!fields) return true;\n      return fields.includes(fieldName);\n    },\n    [clientConfig],\n  );\n\n  const isTypeValid = useMemo(() => type.trim() !== '', [type]);\n  const isTankValid = useMemo(() => tank.trim() !== '', [tank]);\n  const isDateValid = useMemo(() => !!date, [date]);\n  const isNetFiscalizedNumberValid = useMemo(\n    () =>\n      netFiscalizedNumber.trim() !== '' &&\n      /^\\d+$/.test(netFiscalizedNumber.trim()),\n    [netFiscalizedNumber],\n  );\n  const isGrossFiscalizedNumberValid = useMemo(\n    () =>\n      grossFiscalizedNumber.trim() !== '' &&\n      /^\\d+$/.test(grossFiscalizedNumber.trim()),\n    [grossFiscalizedNumber],\n  );\n  const [isThirdPartyCompanyValid, setIsThirdPartyCompanyValid] =\n    useState<boolean>(false);\n\n  useEffect(() => {\n    setIsThirdPartyCompanyValid(thirdPartyCompanyName.trim() !== '');\n  }, [thirdPartyCompanyName]);\n\n  const openToast = useCallback(\n    (typeParam: string, titleParam: string, messageParam: string) => {\n      Toast.show({\n        type: typeParam === 'notification' ? 'info' : typeParam,\n        text1: titleParam,\n        text2: messageParam,\n      });\n    },\n    [],\n  );\n\n  useEffect(() => {\n    const loadTanks = async () => {\n      try {\n        const data = await fetchTanks();\n        const filtered = data.filter(\n          t => !t.name.toUpperCase().startsWith('TAD'),\n        );\n        setTanks(filtered);\n      } catch (_e) {\n        setTanks([]);\n      }\n    };\n\n    const loadThirdPartyCompanies = async () => {\n      try {\n        const data = await fetchThirdPartyCompanies();\n        setThirdPartyCompanies(data);\n      } catch (_e) {\n        setThirdPartyCompanies([]);\n      }\n    };\n\n    loadTanks();\n    loadThirdPartyCompanies();\n  }, []);\n\n  const handlePickFile = useCallback(async () => {\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 = item?.uri || item?.fileCopyUri || '';\n      const name = item?.name || 'archivo';\n      const mime: string = (item?.type || '').toString();\n      if (!uri) {\n        openToast('error', 'Error', 'No se pudo leer el archivo seleccionado');\n        return;\n      }\n      setLocalFileUri(uri);\n      setFile(name);\n      const isImg =\n        (mime && mime.startsWith('image/')) ||\n        /\\.(png|jpe?g|webp|gif|heic|heif)$/i.test(name);\n      setIsImagePreview(!!isImg);\n      openToast('success', 'Archivo seleccionado', name);\n    } catch (e: any) {\n      if (e?.code === 'E_MODULE_NOT_LINKED') {\n        openToast(\n          'error',\n          'Módulo faltante',\n          'RNDocumentPicker no está vinculado en esta app',\n        );\n        return;\n      }\n      // cancelado u otro error, sin acción\n    }\n  }, [openToast]);\n\n  const handleSubmit = useCallback(async () => {\n    setTouched(true);\n    if (\n      !isTypeValid ||\n      !isTankValid ||\n      !isDateValid ||\n      !isNetFiscalizedNumberValid ||\n      !isGrossFiscalizedNumberValid ||\n      !isThirdPartyCompanyValid\n    ) {\n      openToast('error', 'Error al enviar', 'Complete los campos obligatorios');\n      return;\n    }\n\n    setIsLoading(true);\n    try {\n      const formattedDate = dayjs(date).format('YYYY-MM-DD');\n      const payload = new ApiPostBody({\n        verb: API_VERBS.INSERT,\n        table: TABLE_NAMES.THIRD_PARTY_FISCALIZED_PRODUCTION,\n        fields: [\n          'date_created',\n          'type',\n          'tank',\n          'net_fiscalized_number',\n          'gross_fiscalized_number',\n          'fiscalized_temperature',\n          'fiscalized_api',\n          'fiscalized_ays',\n          'tank_temperature',\n          'tank_gauging_measurement_feet',\n          'tank_gauging_measurement_inches',\n          'tank_gauging_measurement_eighths',\n          'daily_discount_rate',\n          'file',\n          TABLE_NAMES.THIRD_PARTY_COMPANY,\n          'user_id',\n        ],\n        values: [\n          formattedDate,\n          type,\n          tank,\n          parseInt(netFiscalizedNumber.trim(), 10) || null,\n          parseInt(grossFiscalizedNumber.trim(), 10) || null,\n          fiscalizedTemperature.trim() === ''\n            ? null\n            : parseFloat(fiscalizedTemperature),\n          fiscalizedApi.trim() === '' ? null : parseFloat(fiscalizedApi),\n          fiscalizedAys.trim() === '' ? null : parseFloat(fiscalizedAys),\n          tankTemperature.trim() === '' ? null : parseFloat(tankTemperature),\n          tankGaugingMeasurementFeet.trim() === ''\n            ? null\n            : parseFloat(tankGaugingMeasurementFeet),\n          tankGaugingMeasurementInches.trim() === ''\n            ? null\n            : parseFloat(tankGaugingMeasurementInches),\n          tankGaugingMeasurementEighths.trim() === ''\n            ? null\n            : parseFloat(tankGaugingMeasurementEighths),\n          dailyDiscountRate.trim() === ''\n            ? null\n            : parseFloat(dailyDiscountRate),\n          file || null,\n          thirdPartyCompanyName,\n          user?.id ? String(user.id) : null,\n        ],\n        filter: [],\n      });\n\n      const result = await submitReportWithOfflineFallback(\n        TABLE_NAMES.THIRD_PARTY_FISCALIZED_PRODUCTION,\n        payload,\n      );\n\n      if (!result.success) {\n        openToast(\n          'error',\n          'Error al enviar',\n          result.message || 'Ocurrió un error al enviar el formulario',\n        );\n        return;\n      }\n\n      openToast(\n        'success',\n        'Formulario enviado',\n        result.offline\n          ? 'Guardado para enviar cuando haya conexión'\n          : 'El formulario ha sido enviado correctamente',\n      );\n\n      setType('');\n      setTank('');\n      setDate(new Date());\n      setNetFiscalizedNumber('');\n      setGrossFiscalizedNumber('');\n      setFiscalizedTemperature('');\n      setFiscalizedApi('');\n      setFiscalizedAys('');\n      setTankTemperature('');\n      setTankGaugingMeasurementFeet('');\n      setTankGaugingMeasurementInches('');\n      setTankGaugingMeasurementEighths('');\n      setDailyDiscountRate('');\n      setFile('');\n      setLocalFileUri('');\n      setIsImagePreview(false);\n      setThirdPartyCompanyName('');\n      setTouched(false);\n    } catch (_e) {\n      openToast(\n        'error',\n        'Error inesperado',\n        'Ocurrió un error inesperado. Intente nuevamente.',\n      );\n    } finally {\n      setIsLoading(false);\n    }\n  }, [\n    date,\n    dailyDiscountRate,\n    file,\n    fiscalizedApi,\n    fiscalizedAys,\n    fiscalizedTemperature,\n    grossFiscalizedNumber,\n    isDateValid,\n    isGrossFiscalizedNumberValid,\n    isNetFiscalizedNumberValid,\n    isTankValid,\n    isThirdPartyCompanyValid,\n    isTypeValid,\n    netFiscalizedNumber,\n    openToast,\n    tank,\n    tankGaugingMeasurementEighths,\n    tankGaugingMeasurementFeet,\n    tankGaugingMeasurementInches,\n    tankTemperature,\n    thirdPartyCompanyName,\n    type,\n    user?.id,\n  ]);\n\n  return (\n    <>\n    <View style={styles.container}>\n      <ScrollView\n        contentContainerStyle={styles.content}\n        showsVerticalScrollIndicator={false}\n      >\n        {/* Título */}\n        <Text style={styles.headerTitle}>Fiscalización de terceros</Text>\n\n        {/* IMPORTANTE */}\n        <FormBox title=\"IMPORTANTE\">\n          <Text style={styles.paragraph}>\n            Por favor, verifica que los datos ingresados sean correctos antes de\n            enviar este formulario. La calidad y exactitud de esta información\n            son esenciales para:\n          </Text>\n          <View style={styles.bulletList}>\n            <Text style={styles.paragraph}>\n              • Generar reportes confiables y oportunos.\n            </Text>\n            <Text style={styles.paragraph}>\n              • Evitar retrasos o errores en la toma de decisiones.\n            </Text>\n            <Text style={styles.paragraph}>\n              • Garantizar el cumplimiento de las políticas internas de la\n              empresa.\n            </Text>\n          </View>\n          <Text style={styles.paragraph}>\n            <Text style={styles.bold}>Nota:</Text> Los campos marcados con (*)\n            son obligatorios.\n          </Text>\n        </FormBox>\n\n        {/* Formulario */}\n        <View style={styles.box}>\n          {/* Empresa de terceros */}\n          <View style={styles.fieldGroup}>\n            <Text style={styles.label}>\n              Escoge el nombre de la empresa de terceros{' '}\n              <Text style={styles.required}>*</Text>\n            </Text>\n            <Select\n              value={thirdPartyCompanyName}\n              onChange={v => setThirdPartyCompanyName((v ?? '').toString())}\n              placeholder=\"Selecciona la empresa\"\n              size=\"medium\"\n              disabled={isLoading}\n              triggerStyle={styles.input}\n            >\n              <MenuItem value=\"\">Selecciona la empresa</MenuItem>\n              {thirdPartyCompanies.map(item => (\n                <MenuItem key={item.name} value={item.name}>\n                  {item.name}\n                </MenuItem>\n              ))}\n            </Select>\n            {touched && !isThirdPartyCompanyValid && (\n              <Text style={styles.errorText}>Este campo es obligatorio</Text>\n            )}\n          </View>\n\n          {/* Tanque */}\n          {tanks.length > 0 ? (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>\n                Escoge el tanque fiscalizado{' '}\n                <Text style={styles.required}>*</Text>\n              </Text>\n              <Select\n                value={tank}\n                onChange={v => setTank((v ?? '').toString())}\n                placeholder=\"Selecciona el tanque\"\n                size=\"medium\"\n                disabled={isLoading}\n                triggerStyle={styles.input}\n              >\n                <MenuItem value=\"\">Selecciona el tanque</MenuItem>\n                {tanks.map(item => (\n                  <MenuItem key={item.name} value={item.name}>\n                    {item.name}\n                  </MenuItem>\n                ))}\n              </Select>\n              {touched && !isTankValid && (\n                <Text style={styles.errorText}>Este campo es obligatorio</Text>\n              )}\n            </View>\n          ) : (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>\n                Ingresa el tanque fiscalizado\n                <Text style={styles.required}>*</Text>\n              </Text>\n              <Select\n                value={tank}\n                onChange={v => setTank((v ?? '').toString())}\n                placeholder=\"Selecciona el tanque\"\n                size=\"medium\"\n                disabled={isLoading}\n                triggerStyle={styles.input}\n              >\n                <MenuItem value=\"\">Selecciona el tanque</MenuItem>\n                <MenuItem value=\"TK 80003\">TK 80003</MenuItem>\n                <MenuItem value=\"TK 80004\">TK 80004</MenuItem>\n                <MenuItem value=\"TK 80008\">TK 80008</MenuItem>\n                <MenuItem value=\"TK 80001\">TK 80001</MenuItem>\n                <MenuItem value=\"TK 80002\">TK 80002</MenuItem>\n                <MenuItem value=\"TK-10008\">TK-10008</MenuItem>\n              </Select>\n              {touched && !isTankValid && (\n                <Text style={styles.errorText}>Este campo es obligatorio</Text>\n              )}\n            </View>\n          )}\n\n          {/* Tipo */}\n          <View style={styles.fieldGroup}>\n            <Text style={styles.label}>\n              Escoge el tipo <Text style={styles.required}>*</Text>\n            </Text>\n            <Select\n              value={type}\n              onChange={v => setType((v ?? '').toString())}\n              placeholder=\"Selecciona: diluente o Merey 16\"\n              size=\"medium\"\n              disabled={isLoading}\n              triggerStyle={styles.input}\n            >\n              <MenuItem value=\"\">Selecciona la respuesta</MenuItem>\n              <MenuItem value=\"diluente\">diluente</MenuItem>\n              <MenuItem value=\"DCO\">Merey 16</MenuItem>\n            </Select>\n            {touched && !isTypeValid && (\n              <Text style={styles.errorText}>Este campo es obligatorio</Text>\n            )}\n          </View>\n\n          {/* Fecha */}\n          <View style={styles.fieldGroup}>\n            <Text style={styles.label}>\n              Escoge la Fecha de este dato.{' '}\n              <Text style={styles.required}>*</Text>\n            </Text>\n            <DatePicker\n              value={date}\n              onChange={(d: Date | null | undefined) =>\n                setDate(d || new Date())\n              }\n              onApply={() => {\n                /* no-op */\n              }}\n              onClear={() => setDate(new Date())}\n              disabled={isLoading}\n            />\n            {touched && !isDateValid && (\n              <Text style={styles.errorText}>Este campo es obligatorio</Text>\n            )}\n          </View>\n\n          {/* Número de fiscalización propia */}\n          <View style={styles.fieldGroup}>\n            <Text style={styles.label}>\n              Ingresa el numero de la fiscalización propia (BLS.){' '}\n              <Text style={styles.required}>*</Text>\n            </Text>\n            <TextInput\n              value={netFiscalizedNumber}\n              onChangeText={setNetFiscalizedNumber}\n              placeholder=\"Escriba su respuesta\"\n              keyboardType=\"number-pad\"\n              style={styles.input}\n              editable={!isLoading}\n            />\n            {touched && !isNetFiscalizedNumberValid && (\n              <Text style={styles.errorText}>\n                {netFiscalizedNumber.trim() === ''\n                  ? 'Este campo es obligatorio'\n                  : 'Solo se permiten números sin letras, puntos o comas'}\n              </Text>\n            )}\n          </View>\n\n          {/* Número de fiscalización bruta */}\n          {includeField('grossFiscalizedNumber') && (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>\n                Ingresa el numero de la fiscalización bruta (BLS.){' '}\n                <Text style={styles.required}>*</Text>\n              </Text>\n              <TextInput\n                value={grossFiscalizedNumber}\n                onChangeText={setGrossFiscalizedNumber}\n                placeholder=\"Escriba su respuesta\"\n                keyboardType=\"number-pad\"\n                style={styles.input}\n                editable={!isLoading}\n              />\n              {touched && !isGrossFiscalizedNumberValid && (\n                <Text style={styles.errorText}>\n                  {grossFiscalizedNumber.trim() === ''\n                    ? 'Este campo es obligatorio'\n                    : 'Solo se permiten números sin letras, puntos o comas'}\n                </Text>\n              )}\n            </View>\n          )}\n\n          {/* Temperatura de fiscalización propia */}\n          {includeField('fiscalizedTemperature') && (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>\n                Ingresa la temperatura de la fiscalización propia\n              </Text>\n              <TextInput\n                value={fiscalizedTemperature}\n                onChangeText={setFiscalizedTemperature}\n                placeholder=\"Escriba su respuesta\"\n                keyboardType=\"decimal-pad\"\n                style={styles.input}\n                editable={!isLoading}\n              />\n            </View>\n          )}\n\n          {/* Medida de aforo del tanque fiscalizado */}\n          {includeField('tankGaugingMeasurement') && (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>\n                Ingresa la medida de aforo del tanque fiscalizado\n              </Text>\n              <View style={styles.inlineFields}>\n                <View style={styles.inlineField}>\n                  <TextInput\n                    value={tankGaugingMeasurementFeet}\n                    onChangeText={setTankGaugingMeasurementFeet}\n                    placeholder=\"0\"\n                    keyboardType=\"decimal-pad\"\n                    style={styles.input}\n                    editable={!isLoading}\n                  />\n                  <Text style={styles.inlineLabel}>Pies</Text>\n                </View>\n                <View style={styles.inlineField}>\n                  <TextInput\n                    value={tankGaugingMeasurementInches}\n                    onChangeText={setTankGaugingMeasurementInches}\n                    placeholder=\"0\"\n                    keyboardType=\"decimal-pad\"\n                    style={styles.input}\n                    editable={!isLoading}\n                  />\n                  <Text style={styles.inlineLabel}>Pulgadas</Text>\n                </View>\n                <View style={styles.inlineField}>\n                  <TextInput\n                    value={tankGaugingMeasurementEighths}\n                    onChangeText={setTankGaugingMeasurementEighths}\n                    placeholder=\"0\"\n                    keyboardType=\"decimal-pad\"\n                    style={styles.input}\n                    editable={!isLoading}\n                  />\n                  <Text style={styles.inlineLabel}>Octavos</Text>\n                </View>\n              </View>\n            </View>\n          )}\n\n          {/* API fiscalizado */}\n          {includeField('fiscalizedApi') && (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>Ingresa el API fiscalizado</Text>\n              <TextInput\n                value={fiscalizedApi}\n                onChangeText={setFiscalizedApi}\n                placeholder=\"Escriba su respuesta\"\n                keyboardType=\"decimal-pad\"\n                style={styles.input}\n                editable={!isLoading}\n              />\n            </View>\n          )}\n\n          {/* AyS fiscalizado */}\n          {includeField('fiscalizedAys') && (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>Ingresa el AyS fiscalizado</Text>\n              <TextInput\n                value={fiscalizedAys}\n                onChangeText={setFiscalizedAys}\n                placeholder=\"Escriba su respuesta\"\n                keyboardType=\"decimal-pad\"\n                style={styles.input}\n                editable={!isLoading}\n              />\n            </View>\n          )}\n\n          {/* Temperatura del tanque fiscalizado*/}\n          {includeField('tankTemperature') && (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>\n                Ingresa la temperatura del tanque fiscalizado\n              </Text>\n              <TextInput\n                value={tankTemperature}\n                onChangeText={setTankTemperature}\n                placeholder=\"Escriba su respuesta\"\n                keyboardType=\"decimal-pad\"\n                style={styles.input}\n                editable={!isLoading}\n              />\n            </View>\n          )}\n\n          {/* Tasa de descuento diario */}\n          {includeField('dailyDiscountRate') && (\n            <View style={styles.fieldGroup}>\n              <Text style={styles.label}>\n                Ingresa la tasa de descuento diario (BLS)\n              </Text>\n              <TextInput\n                value={dailyDiscountRate}\n                onChangeText={setDailyDiscountRate}\n                placeholder=\"Escriba su respuesta\"\n                keyboardType=\"decimal-pad\"\n                style={styles.input}\n                editable={!isLoading}\n              />\n            </View>\n          )}\n\n          {/* Campo para subir archivo */}\n          <View style={styles.fieldGroup}>\n            <Text style={styles.label}>Agregar registro fotográfico</Text>\n            <View style={styles.inlineUpload}>\n              <TouchableOpacity\n                onPress={handlePickFile}\n                style={[\n                  styles.uploadBtn,\n                  { backgroundColor: accentColor || undefined },\n                ]}\n                activeOpacity={0.8}\n              >\n                <Text style={styles.uploadBtnText}>Subir archivo</Text>\n              </TouchableOpacity>\n              {file ? (\n                <>\n                  <Text\n                    style={styles.fileName}\n                    numberOfLines={1}\n                    ellipsizeMode=\"tail\"\n                  >\n                    {file}\n                  </Text>\n                  <TouchableOpacity\n                    onPress={() => {\n                      setFile('');\n                      setLocalFileUri('');\n                      setIsImagePreview(false);\n                    }}\n                    accessibilityRole=\"button\"\n                    style={styles.clearBtn}\n                  >\n                    <Text style={styles.clearBtnText}>Quitar</Text>\n                  </TouchableOpacity>\n                </>\n              ) : (\n                <Text\n                  style={styles.textNoFile}\n                  numberOfLines={1}\n                  ellipsizeMode=\"tail\"\n                >\n                  No hay archivo seleccionado\n                </Text>\n              )}\n            </View>\n            {isImagePreview && (localFileUri || (apiFileServer && file)) && (\n              <View style={styles.imagePreviewContainer}>\n                <Image\n                  source={{\n                    uri: localFileUri || `${apiFileServer}/get/${file}`,\n                  }}\n                  style={styles.imagePreview}\n                  resizeMode=\"cover\"\n                />\n              </View>\n            )}\n          </View>\n        </View>\n\n        {/* Botón de enviar */}\n        <StatusButton\n          title=\"Finalizar\"\n          loadingTitle=\"Enviando...\"\n          onPress={handleSubmit}\n          loading={isLoading}\n          disabled={isLoading}\n          backgroundColor={accentColor || undefined}\n          style={\n            [styles.submitBtn, isLoading && styles.submitBtnDisabled] as any\n          }\n          size=\"medium\"\n        />\n      </ScrollView>\n    </View>\n  </>);\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    backgroundColor: '#fff',\n  },\n  content: {\n    padding: 16,\n    gap: 16,\n  },\n  headerTitle: {\n    fontSize: 18,\n    fontWeight: 'bold',\n    color: '#111827',\n    textAlign: 'center',\n  },\n  box: {\n    backgroundColor: '#F9FAFB',\n    borderColor: '#E5E7EB',\n    borderWidth: 1,\n    borderRadius: 12,\n    padding: 12,\n    gap: 12,\n  },\n  boxTitle: {\n    fontSize: 14,\n    fontWeight: '700',\n    color: '#111827',\n    marginBottom: 4,\n  },\n  paragraph: {\n    fontSize: 14,\n    color: '#374151',\n    marginBottom: 4,\n  },\n  bulletList: {\n    gap: 2,\n    marginBottom: 4,\n  },\n  bold: {\n    fontWeight: '700',\n  },\n  fieldGroup: {\n    marginBottom: 12,\n  },\n  label: {\n    fontSize: 14,\n    color: '#111827',\n    marginBottom: 8,\n    fontWeight: '600',\n  },\n  required: {\n    color: '#FF1D4B',\n  },\n  input: {\n    backgroundColor: '#fff',\n    borderColor: '#E5E7EB',\n    borderWidth: 1,\n    borderRadius: 10,\n    paddingHorizontal: 12,\n    paddingVertical: 12,\n  },\n  inputText: {\n    fontSize: 14,\n    color: '#111827',\n  },\n  errorText: {\n    color: '#FF1D4B',\n    fontSize: 14,\n    marginTop: 4,\n  },\n  inlineFields: {\n    flexDirection: 'row',\n    gap: 8,\n    alignItems: 'center',\n  },\n  inlineField: {\n    flex: 1,\n  },\n  inlineLabel: {\n    marginTop: 6,\n    fontSize: 14,\n    color: '#6B7280',\n    textAlign: 'center',\n  },\n  inlineUpload: {\n    flexDirection: 'row',\n    alignItems: 'center',\n    gap: 8,\n    backgroundColor: '#fff',\n    borderColor: '#E5E7EB',\n    borderWidth: 1,\n    borderRadius: 10,\n    paddingHorizontal: 6,\n    paddingVertical: 6,\n  },\n  uploadBtn: {\n    backgroundColor: '#F3F4F6',\n    paddingHorizontal: 12,\n    paddingVertical: 6,\n    borderRadius: 6,\n  },\n  uploadBtnText: {\n    color: '#fff',\n    fontWeight: '600',\n  },\n  fileName: {\n    fontSize: 14,\n    color: '#111827',\n    flex: 1,\n    flexShrink: 1,\n  },\n  textNoFile: {\n    fontSize: 14,\n    color: '#111827',\n    fontWeight: '300',\n  },\n  clearBtn: {\n    paddingHorizontal: 10,\n    paddingVertical: 6,\n    borderRadius: 6,\n    backgroundColor: '#F3F4F6',\n  },\n  clearBtnText: {\n    color: '#111827',\n    fontWeight: '600',\n    fontSize: 14,\n  },\n  imagePreviewContainer: {\n    marginTop: 12,\n  },\n  imagePreview: {\n    height: 120,\n    borderRadius: 8,\n  },\n  submitBtn: {\n    width: '100%',\n    paddingVertical: 14,\n    borderRadius: 10,\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  submitBtnDisabled: {\n    opacity: 0.6,\n  },\n  submitBtnText: {\n    color: '#fff',\n    fontSize: 16,\n    fontWeight: '600',\n  },\n  toastContainer: {\n    position: 'absolute',\n    top: 16,\n    left: 12,\n    right: 12,\n    zIndex: 50,\n  },\n});\n","import ThirdPartyAuditFormComponent from './ThirdPartyAuditForm';\n\nfunction ThirdPartyAuditFormScreen() {\n  return <ThirdPartyAuditFormComponent />;\n}\n\nexport default ThirdPartyAuditFormScreen;\n\n\n","import { configService } from '@data-oil-front/core-host';\nimport {\n  purePost,\n  TABLE_NAMES,\n  API_VERBS,\n  ApiPostBody,\n} from '@data-oil-front/core-utils';\nimport type { Tank } from '../types/tank';\nimport type { ThirdPartyCompany } from '../types/thirdPartyCompany';\n\nasync function post<T>(\n  body: Partial<ApiPostBody>,\n  options?: RequestInit,\n): Promise<T> {\n  const config = await configService.getEffectiveConfig();\n  const url = config?.API_BASE_URL;\n\n  if (!url) {\n    throw new Error('[API Client] API_BASE_URL is missing in config.');\n  }\n\n  const response = await purePost<T>(url, body, options);\n\n  if (!response.success) {\n    const message =\n      'message' in response ? response.message : 'Unknown API error';\n    throw new Error(message);\n  }\n\n  if (!('data' in response)) {\n    throw new Error('Invalid API response shape.');\n  }\n\n  return response.data as T;\n}\n\nexport async function fetchTanks(): Promise<Tank[]> {\n  return post<Tank[]>({\n    verb: API_VERBS.SELECT,\n    table: TABLE_NAMES.TREATMENT_PLANT_DYNAMIC_STORAGE_TANK,\n    fields: [],\n    values: [],\n    filter: [['treatment_plant_system_id', '=', 2]],\n  });\n}\n\nexport async function fetchThirdPartyCompanies(): Promise<ThirdPartyCompany[]> {\n  return post<ThirdPartyCompany[]>({\n    verb: API_VERBS.SELECT,\n    table: TABLE_NAMES.THIRD_PARTY_COMPANY,\n    fields: [],\n    values: [],\n    filter: [],\n  });\n}\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    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\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":["ThirdPartyAuditFormComponent","type","setType","useState","tank","setTank","date","setDate","netFiscalizedNumber","setNetFiscalizedNumber","grossFiscalizedNumber","setGrossFiscalizedNumber","fiscalizedTemperature","setFiscalizedTemperature","fiscalizedApi","setFiscalizedApi","fiscalizedAys","setFiscalizedAys","tankTemperature","setTankTemperature","tankGaugingMeasurementFeet","setTankGaugingMeasurementFeet","tankGaugingMeasurementInches","setTankGaugingMeasurementInches","tankGaugingMeasurementEighths","setTankGaugingMeasurementEighths","dailyDiscountRate","setDailyDiscountRate","file","setFile","localFileUri","setLocalFileUri","isImagePreview","setIsImagePreview","thirdPartyCompanyName","setThirdPartyCompanyName","thirdPartyCompanies","setThirdPartyCompanies","touched","setTouched","isLoading","setIsLoading","tanks","setTanks","clientConfig","useClientConfig","config","apiFileServer","accentColor","primaryColor","useAuth","user","includeField","useCallback","fieldName","fields","CoreConfigType","CORE_CONFIG","dailyReport","fiscalizationFormFields","includes","isTypeValid","useMemo","trim","isTankValid","isDateValid","isNetFiscalizedNumberValid","test","isGrossFiscalizedNumberValid","isThirdPartyCompanyValid","setIsThirdPartyCompanyValid","useEffect","openToast","typeParam","titleParam","messageParam","Toast","show","text1","text2","filtered","fetchTanks","filter","t","name","toUpperCase","startsWith","_e","data","fetchThirdPartyCompanies","handlePickFile","results","pickDocument","allowMultiSelection","item","Array","isArray","uri","fileCopyUri","mime","toString","isImg","e","code","handleSubmit","formattedDate","dayjs","format","payload","ApiPostBody","verb","API_VERBS","INSERT","table","TABLE_NAMES","THIRD_PARTY_FISCALIZED_PRODUCTION","THIRD_PARTY_COMPANY","values","parseInt","parseFloat","id","String","result","submitReportWithOfflineFallback","success","message","offline","Date","View","style","styles","container","ScrollView","contentContainerStyle","content","showsVerticalScrollIndicator","Text","headerTitle","FormBox","title","paragraph","bulletList","bold","box","fieldGroup","label","required","Select","value","onChange","v","placeholder","size","disabled","triggerStyle","input","MenuItem","map","errorText","length","DatePicker","d","onApply","onClear","TextInput","onChangeText","keyboardType","editable","inlineFields","inlineField","inlineLabel","inlineUpload","TouchableOpacity","onPress","uploadBtn","backgroundColor","undefined","activeOpacity","uploadBtnText","fileName","numberOfLines","ellipsizeMode","accessibilityRole","clearBtn","clearBtnText","textNoFile","imagePreviewContainer","Image","source","imagePreview","resizeMode","StatusButton","loadingTitle","loading","submitBtn","submitBtnDisabled","StyleSheet","create","flex","padding","gap","fontSize","fontWeight","color","textAlign","borderColor","borderWidth","borderRadius","boxTitle","marginBottom","paddingHorizontal","paddingVertical","inputText","marginTop","flexDirection","alignItems","flexShrink","height","width","justifyContent","opacity","submitBtnText","toastContainer","position","top","left","right","zIndex","post","body","options","configService","getEffectiveConfig","url","API_BASE_URL","Error","response","purePost","SELECT","TREATMENT_PLANT_DYNAMIC_STORAGE_TANK","NativeModules","RNDocumentPicker","err","mod","require","pickFn","pick","default","msg","Object","defineProperty","exports","target","all","enumerable","get","getOwnPropertyDescriptor","_export","errorCodes","isErrorWithCode","freeze","OPERATION_CANCELED","IN_PROGRESS","UNABLE_TO_OPEN_FILE_TYPE","error","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","awaitedResult","res","hasRequestedType","safeValidate","optionsOverride","uris","sourceUris","console","warn","objectWithSingleUri","saveDocument","writeDocuments","keepOnlySpecifiedFields","TurboModuleRegistry","getEnforcing","requestedTypes","singlePickResult","nativeType","some","nativeTypeMatches","requiredType","actualType","endsWith","requiredTypeWithoutStar","slice"],"mappings":"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"}