{"version":3,"sources":["screens/ModalScreen.tsx","navigation/MenuIcon.tsx","context/PreferencesContext.ts","navigation/MenuContent.tsx","services/data-service.tsx","services/shared.ts","constants/base.ts","screens/LoginScreen.tsx","screens/OsScreen.tsx","constants/Theme.ts","screens/CollectImageScreen.tsx","screens/CameraScreen.tsx","models/models.ts","screens/NativeCameraScreen.tsx","screens/CollectModalComp.tsx","screens/CollectMd.tsx","navigation/index.tsx","src/serviceWorkerRegistration.js","App.tsx","hooks/useCachedResources.ts","services/DBConfig.ts","assets/fonts/SpaceMono-Regular.ttf","assets/images/icon.png","node_modules/moment/locale sync /^/.*$"],"names":["ModalScreen","route","order","navigation","params","View","style","styles","container","Text","title","cod","separator","StatusBar","Platform","OS","StyleSheet","create","flex","alignItems","justifyContent","fontSize","fontWeight","marginVertical","height","width","MenuIcon","useNavigation","openDrawer","useCallback","dispatch","DrawerActions","IconButton","icon","size","onPress","PreferencesContext","React","createContext","toggleTheme","isThemeDark","AuthContext","setUser","user","userInfo","undefined","MenuContent","props","useTheme","useContext","DrawerContentScrollView","Animated","drawerSection","userInfoSection","TouchableOpacity","toggleDrawer","backgroundColor","source","require","Title","name","Caption","caption","email","drawerSigout","a","async","AsyncStorage","removeItem","DrawerItem","color","MaterialCommunityIcons","label","navigate","marginBottom","TouchableRipple","preference","pointerEvents","Switch","value","position","top","left","drawerContent","paddingBottom","marginTop","lineHeight","row","flexDirection","section","marginRight","paragraph","paddingVertical","paddingHorizontal","api","axios","baseURL","headers","interceptors","request","use","config","access_token","localStorage","getItem","Authorization","error","Promise","reject","ApiConfig","guidUrl","centered","input","headerpage","padding","bodyContainner","cardItem","fab","margin","right","bottom","fabLeft","LoginPage","createDrawerNavigator","useState","setName","password","setPassword","base","placeholder","TextInput","Icon","onChangeText","secureTextEntry","textContentType","Button","mode","post","username","then","response","status","data","token","setItem","JSON","stringify","handleLogIn","console","log","catch","err","OsPage","findMode","idUsuario","filter","setFilterCode","orders","setData","isLoading","setIsLoading","setIsError","timer","setTimer","useEffect","get","result","fetchData","Item","item","Info","info","parse","Pressable","sessionStorage","goBack","opacity","pressed","description","nomeCliente","endereco","equipamento","FlatList","renderItem","Key","Value","Divider","SafeAreaView","Appbar","Header","BackAction","Action","Content","subtitle","change","clearTimeout","setTimeout","ScrollView","keyExtractor","idOs","ActivityIndicator","animating","Colors","CombinedDefaultTheme","PaperDefaultTheme","NavigationDefaultTheme","colors","primary","CombinedDarkTheme","PaperDarkTheme","NavigationDarkTheme","MySwal","withReactContent","Swal","CollectImageScreen","useIndexedDB","getAll","update","getByIndex","add","collects","enviarItens","images","atItens","i","validado","forEach","atItem","imgList","collectId","id","imgLength","length","totalValidated","imgData","sendDate","cmdData","IdEmpresa","IdUnidade","idUnidade","IdUsuario","ImageId","OrdemId","idOS","DataHora","dataEmissao","Tipo","imgType","Descricao","subject","bodyFormData","FormData","append","base64Image","url","method","throwError","success","moment","toLocaleString","enviado","resp","limparItens","map","img","idEmpresa","imageId","responseValidate","imgItem","deleteRecord","imgValResp","saved","imgError","find","useLayoutEffect","setOptions","headerRight","AntDesign","text","Feather","unsubscribe","addListener","errors","errorList","errMessage","message","showMessage","type","autoHide","nroOS","fire","html","showDenyButton","showCancelButton","confirmButtonText","denyButtonText","isConfirmed","isDenied","confirmClearItens","osItem","indexOf","validateItens","confirmSendItens","FAB","theme","accent","addMode","link","linkText","CameraScreen","image","setImage","showImage","setShowImage","hasPermission","setHasPermission","availableCameraTypes","setAvailableCameraTypes","Camera","Constants","Type","back","setType","camera","setCamera","requestCameraPermissionsAsync","getAvailableCameraTypesAsync","Wrapper","FullScreenImagePreview","onClick","ref","flashMode","FlashMode","on","Control","ImagePreview","TakePhotoButton","options","quality","base64","takePictureAsync","uri","takePicture","ChangeFacingCameraButton","disabled","front","styled","div","button","AtendimentoLocal","ImageData","NativeCameraScreen","imgSrc","setImgSrc","imageType","Card","src","alt","getPhoto","resultType","CameraResultType","DataUrl","CameraSource","cameraPhoto","fetch","dataUrl","blob","Resizer","imageFileResizer","toString","takePhoto","uuidv4","CommonActions","CollectModalComp","db","imageDb","loadImages","imgs","allImagesCollected","setState","deleteImage","state","modeSetOs","osDefinida","image_item","loadCollect","bind","close","_userInfo","this","_unsubscribe","selectedOS","currentImage","getByID","newItem","it","AppbarHeader","saveItem","renderImage","ImageContainner","totalSendded","imagensColetadas","RadioButton","Group","onValueChange","Component","CollectMd","headerLeft","Ionicons","marginLeft","Navigation","NavigationContainer","RootNavigator","Stack","createNativeStackNavigator","Drawer","setUserData","preferences","Provider","StackNavigator","LogOutNavigator","Navigator","Screen","component","DrawerNavigator","headerShown","screenOptions","presentation","isLocalhost","Boolean","window","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","App","backAction","Alert","alert","BackHandler","exitApp","addEventListener","removeEventListener","isLoadingComplete","setLoadingComplete","SplashScreen","Font","FontAwesome","font","warn","useCachedResources","setIsThemeDark","reload","useMemo","initDB","version","objectStoresMeta","store","storeConfig","keyPath","autoIncrement","storeSchema","keypath","unique","URL","process","href","origin","contentType","ready","unregister","checkValidServiceWorker","serviceWorkerRegistration","module","exports","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve"],"mappings":"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","file":"static/js/app.c39cf189.chunk.js","sourcesContent":["import { StatusBar } from 'expo-status-bar';\nimport React from 'react';\nimport { Platform, StyleSheet, View, Text } from 'react-native';\n\nexport default function ModalScreen({ route, navigation }) {\n\n const { order } = route.params;\n\n\n return (\n \n O.S.: {order.cod}\n \n\n\n {/* Use a light status bar on iOS to account for the black space above the modal */}\n \n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n title: {\n fontSize: 20,\n fontWeight: 'bold',\n },\n separator: {\n marginVertical: 30,\n height: 1,\n width: '80%',\n },\n});\n","import React from 'react';\r\nimport {IconButton} from 'react-native-paper';\r\nimport {DrawerActions, useNavigation} from '@react-navigation/native';\r\nimport {useCallback} from 'react';\r\n\r\nexport default function MenuIcon() {\r\n const navigation = useNavigation();\r\n\r\n const openDrawer = useCallback(() => {\r\n navigation.dispatch(DrawerActions.openDrawer());\r\n }, []);\r\n\r\n return ;\r\n}\r\n","import React from 'react';\r\n\r\nexport const PreferencesContext = React.createContext({\r\n toggleTheme: () => {},\r\n isThemeDark: false,\r\n});\r\n\r\n\r\nexport const AuthContext = React.createContext({\r\n setUser: (user) => {},\r\n userInfo: undefined\r\n});","import React from 'react';\r\nimport {\r\n DrawerContentComponentProps,\r\n DrawerContentScrollView,\r\n DrawerItem,\r\n} from '@react-navigation/drawer';\r\nimport { View, StyleSheet, TouchableOpacity } from 'react-native';\r\nimport { Switch, TouchableRipple, useTheme, Text, Caption, Avatar, Title, Drawer } from 'react-native-paper';\r\nimport AsyncStorage from '@react-native-async-storage/async-storage';\r\nimport { AuthContext, PreferencesContext } from '../context/PreferencesContext';\r\nimport Animated from 'react-native-reanimated';\r\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\r\n\r\nconst MenuContent: React.FunctionComponent = (\r\n props\r\n) => {\r\n\r\n const theme = useTheme();\r\n const { setUser, userInfo } = React.useContext(AuthContext);\r\n const { toggleTheme, isThemeDark } = React.useContext(PreferencesContext);\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n {\r\n props.navigation.toggleDrawer();\r\n }}\r\n >\r\n \r\n \r\n {userInfo.name}\r\n {userInfo.email}\r\n\r\n {\r\n //Linking.openURL('https://mywebsite.com/help')\r\n await AsyncStorage.removeItem('@access_token');\r\n await AsyncStorage.removeItem('@user');\r\n setUser(undefined);\r\n //window.location.reload();\r\n }}\r\n >Sair\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n {/* */}\r\n\r\n (\r\n \r\n )}\r\n label=\"Ordens Pendentes\"\r\n onPress={() => { props.navigation.navigate('OsPage') }}\r\n />\r\n\r\n\r\n (\r\n \r\n )}\r\n label=\"Atendimento\"\r\n onPress={() => { props.navigation.navigate('CollectImagePage') }}\r\n />\r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n Modo Escuro\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n v1.0.7\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n );\r\n};\r\n\r\nexport default MenuContent;\r\n\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n drawerContent: {\r\n flex: 1,\r\n },\r\n userInfoSection: {\r\n alignItems: 'center',\r\n paddingBottom: 20\r\n },\r\n title: {\r\n marginTop: 20,\r\n fontWeight: 'bold',\r\n },\r\n drawerSigout: {\r\n // position: 'absolute',\r\n // top: 4,\r\n // right: 4,\r\n height: 15,\r\n },\r\n caption: {\r\n fontSize: 14,\r\n lineHeight: 14,\r\n },\r\n row: {\r\n marginTop: 20,\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n section: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginRight: 15,\r\n },\r\n paragraph: {\r\n fontWeight: 'bold',\r\n marginRight: 3,\r\n },\r\n drawerSection: {\r\n marginTop: 15,\r\n },\r\n preference: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n paddingVertical: 12,\r\n paddingHorizontal: 16,\r\n },\r\n});","\r\nimport axios from \"axios\";\r\n\r\nconst api = axios.create({\r\n baseURL: \"https://api.v1.dotneterp.com.br:8050\",\r\n //baseURL: \"http://localhost:5001\",\r\n headers: {\r\n \"Access-Control-Allow-Origin\": \"*\",\r\n //'Authorization': `` ,\r\n },\r\n});\r\n\r\napi.interceptors.request.use(config => {\r\n\r\n const access_token = localStorage.getItem(\"@access_token\");\r\n if (access_token) {\r\n config.headers.Authorization = `Bearer ${access_token}`;\r\n }\r\n return config;\r\n\r\n}, async function (error) {\r\n // const access_token = localStorage.getItem(\"@access_token\");\r\n // if (error.response.status === 401 && access_token) {\r\n // const response = await refreshToken(error);\r\n // return response;\r\n // }\r\n return Promise.reject(error);\r\n});\r\n\r\n\r\n\r\n// async function refreshToken(error) {\r\n// return new Promise((resolve, reject) => {\r\n// try {\r\n// const refresh_token = localStorage.getItem(\"@refresh_token\");\r\n// const header = {\r\n// \"Content-Type\": \"application/json\",\r\n// Authorization: process.env.AUTHORIZATION,\r\n// };\r\n// const parameters = {\r\n// method: \"POST\",\r\n// headers: header,\r\n// };\r\n// const body = {\r\n// grant_type: \"refresh_token\",\r\n// refresh_token,\r\n// };\r\n// axios\r\n// .post(\r\n// process.env.API_URL + \"/refreshtoken\",\r\n// body,\r\n// parameters\r\n// )\r\n// .then(async (res) => {\r\n// localStorage.setItem(\"@access_token\", res.data.access_token);\r\n// localStorage.setItem(\"@refresh_token\", res.data.refresh_token);\r\n// // Fazer algo caso seja feito o refresh token\r\n// return resolve(res);\r\n// })\r\n// .catch((err) => {\r\n// // Fazer algo caso não seja feito o refresh token\r\n// return reject(error);\r\n// });\r\n// } catch (err) {\r\n// return reject(err);\r\n// }\r\n// });\r\n// };\r\n\r\n\r\nexport default api;\r\n\r\n\r\n\r\nexport const dataURItoBlob = (dataURI) => {\r\n // convert base64 to raw binary data held in a string\r\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\r\n var byteString = atob(dataURI.split(',')[1]);\r\n\r\n // separate out the mime component\r\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]\r\n\r\n // write the bytes of the string to an ArrayBuffer\r\n var ab = new ArrayBuffer(byteString.length);\r\n var ia = new Uint8Array(ab);\r\n for (var i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n // write the ArrayBuffer to a blob, and you're done\r\n var bb = new Blob([ab]);\r\n return bb;\r\n}\r\n\r\n\r\n","const ApiConfig = {\r\n guidUrl: 'b644a195-60b9-4ae5-b7a9-631d8d37916d'\r\n}\r\n\r\n\r\nexport default ApiConfig;","import {StyleSheet} from 'react-native';\r\n\r\nexport default StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n },\r\n centered: {\r\n flex: 1,\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n\r\n input: {\r\n marginBottom: 15\r\n },\r\n\r\n headerpage: {\r\n padding: 20,\r\n paddingBottom: 0\r\n },\r\n\r\n bodyContainner: {\r\n flex: 1,\r\n padding: 20,\r\n },\r\n\r\n cardItem: {\r\n marginBottom: 12,\r\n //minHeight: 70\r\n \r\n },\r\n\r\n fab: {\r\n position: 'absolute',\r\n margin: 16,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n\r\n fabLeft: {\r\n position: 'absolute',\r\n margin: 16,\r\n left: 0,\r\n bottom: 0,\r\n },\r\n\r\n});\r\n","import AsyncStorage from '@react-native-async-storage/async-storage';\r\nimport { createDrawerNavigator } from '@react-navigation/drawer';\r\nimport React, { useState } from 'react';\r\nimport { View } from 'react-native';\r\nimport { Button, TextInput, Title } from 'react-native-paper';\r\nimport api from '../services/data-service';\r\nimport ApiConfig from '../services/shared';\r\nimport { TextInput as Input } from 'react-native-paper';\r\nimport base from '../constants/base';\r\nimport { AuthContext } from '../context/PreferencesContext';\r\n\r\n\r\ninterface ILoginProps {\r\n handleLogIn: (arg0: boolean) => void;\r\n}\r\n\r\nconst LoginPage: React.FunctionComponent = (props) => {\r\n\r\n const Drawer = createDrawerNavigator();\r\n const [name, setName] = useState('');\r\n const [password, setPassword] = useState('');\r\n\r\n const { setUser } = React.useContext(AuthContext);\r\n\r\n const postLogin = () => {\r\n\r\n api.post(\"/v2/authenticate\", { guidUrl: ApiConfig.guidUrl, username: name, password: password }).then(async (response) => {\r\n\r\n switch (response.status) {\r\n case 200:\r\n if (response.data?.token) {\r\n await AsyncStorage.setItem('@access_token', response.data?.token);\r\n await AsyncStorage.setItem('@user', JSON.stringify(response.data?.user));\r\n if(props.handleLogIn)\r\n props.handleLogIn(true);\r\n \r\n setUser(response.data?.user);\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n console.log(response);\r\n\r\n }).catch((err) => {\r\n console.error(\"ops! ocorreu um erro\" + err);\r\n });\r\n\r\n }\r\n\r\n\r\n return (\r\n \r\n\r\n Login\r\n\r\n }\r\n onChangeText={(value) => setName(value)}\r\n />\r\n\r\n }\r\n onChangeText={(value) => setPassword(value)}\r\n />\r\n\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default LoginPage;\r\n","import AsyncStorage from '@react-native-async-storage/async-storage';\r\nimport { useNavigation } from '@react-navigation/native';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { FlatList, SafeAreaView, ScrollView, Text, TouchableOpacity, View, StyleSheet, Pressable, DeviceEventEmitter } from 'react-native';\r\nimport { ActivityIndicator, Appbar, Button, Caption, Card, Colors, Divider, List, Paragraph, TextInput, Title } from 'react-native-paper';\r\nimport { TextInput as Input } from 'react-native-paper';\r\n\r\n\r\nimport api from '../services/data-service';\r\nimport base from '../constants/base';\r\nimport { FontAwesome } from '@expo/vector-icons';\r\nimport { AuthContext } from '../context/PreferencesContext';\r\nimport { Axios } from 'axios';\r\n\r\n\r\n\r\ninterface IOsPageProps {\r\n\r\n}\r\n\r\ninterface OrderModel {\r\n idOs: number,\r\n cod: string,\r\n}\r\n\r\n\r\n\r\nfunction OsPage({ route, navigation }) {\r\n\r\n const findMode = route?.params?.findMode;\r\n\r\n const { userInfo } = React.useContext(AuthContext);\r\n\r\n const [filter, setFilterCode] = useState({ cod: '' as string, idUsuario: userInfo.idUsuario });\r\n const [data, setData] = useState({ orders: [] as OrderModel[] });\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [timer, setTimer] = useState(null);\r\n\r\n function updateStrFind(change) {\r\n\r\n if (timer) {\r\n clearTimeout(timer);\r\n setTimer(null);\r\n }\r\n setTimer(\r\n setTimeout(() => {\r\n setFilterCode({ cod: change, idUsuario: userInfo.idUsuario });\r\n }, 800)\r\n );\r\n }\r\n\r\n\r\n React.useEffect(() => {\r\n\r\n const fetchData = async () => {\r\n\r\n setIsError(false);\r\n setIsLoading(true);\r\n\r\n try {\r\n const result = await api.get(`/api/BuscarOrdensAbertas?idTecnico=${filter.idUsuario}&cod=${filter.cod}&take=50¶CheckList=true`).then();\r\n setData({ orders: result.data });\r\n } catch (error) {\r\n setIsError(true);\r\n }\r\n\r\n setIsLoading(false);\r\n };\r\n\r\n\r\n fetchData();\r\n\r\n }, [filter]);\r\n\r\n\r\n const Item = ({ item }) => {\r\n\r\n const Info = item.info ? JSON.parse(item.info) : [];\r\n\r\n return (\r\n {\r\n if (findMode === true) {\r\n sessionStorage.setItem('@selectedOS', JSON.stringify(item));\r\n navigation.goBack();\r\n } else {\r\n navigation.navigate('OsDetaisModal', { order: item });\r\n }\r\n\r\n }}\r\n style={({ pressed }) => ({\r\n opacity: pressed ? 0.5 : 1,\r\n })}>\r\n\r\n \r\n
\r\n {item.nomeCliente}\r\n

\r\n\r\n {item.endereco}\r\n

\r\n\r\n {item.equipamento}\r\n\r\n (\r\n\r\n {item.Key}: {item.Value}\r\n )}\r\n />\r\n \r\n \r\n\r\n\r\n
\r\n }\r\n\r\n />\r\n\r\n \r\n\r\n {/* \r\n \r\n {item.cod}\r\n {item.nomeCliente}\r\n {item.equipamento}\r\n \r\n\r\n\r\n */}\r\n\r\n\r\n )\r\n\r\n\r\n\r\n };\r\n\r\n const renderItem = ({ item }) => (\r\n \r\n );\r\n\r\n\r\n return (\r\n\r\n \r\n\r\n \r\n\r\n {findMode ?\r\n {\r\n navigation.goBack();\r\n }} />\r\n :\r\n {\r\n navigation.toggleDrawer();\r\n }} />\r\n }\r\n\r\n\r\n \r\n {/* { }} />\r\n { }} /> */}\r\n \r\n\r\n \r\n\r\n }\r\n onChangeText={(value) => updateStrFind(value)}\r\n />\r\n\r\n {/* */}\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n item.idOs}\r\n />\r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n );\r\n};\r\n\r\n\r\nexport default OsPage;\r\n","import {\r\n NavigationContainer,\r\n DarkTheme as NavigationDarkTheme,\r\n DefaultTheme as NavigationDefaultTheme,\r\n } from '@react-navigation/native';\r\n import {\r\n DarkTheme as PaperDarkTheme,\r\n DefaultTheme as PaperDefaultTheme,\r\n Provider as PaperProvider,\r\n } from 'react-native-paper';\r\n\r\n\r\nexport const CombinedDefaultTheme = {\r\n ...PaperDefaultTheme,\r\n ...NavigationDefaultTheme,\r\n colors: {\r\n ...PaperDefaultTheme.colors,\r\n ...NavigationDefaultTheme.colors,\r\n primary: '#e80000',\r\n },\r\n };\r\n export const CombinedDarkTheme = {\r\n ...PaperDarkTheme,\r\n ...NavigationDarkTheme,\r\n colors: {\r\n ...PaperDarkTheme.colors,\r\n ...NavigationDarkTheme.colors,\r\n primary: '#e80000',\r\n },\r\n };","\r\nimport React, { useState } from 'react';\r\nimport { StyleSheet, TouchableOpacity, View, Text, Pressable, SafeAreaView, ScrollView, FlatList, Platform } from 'react-native';\r\nimport { ActivityIndicator, Appbar, Button, Caption, Card, Colors, Divider, FAB, List, Paragraph, TextInput, Title } from 'react-native-paper';\r\nimport base from '../constants/base';\r\nimport { CombinedDarkTheme, CombinedDefaultTheme } from '../constants/Theme';\r\nimport { AtendimentoLocal } from '../models/models';\r\nimport moment from 'moment';\r\nimport { useIndexedDB } from 'react-indexed-db';\r\nimport { AntDesign, Feather, FontAwesome, Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\r\nimport { useTheme } from '@react-navigation/native';\r\nimport api from '../services/data-service';\r\nimport { AuthContext } from '../context/PreferencesContext';\r\nimport ApiConfig from '../services/shared';\r\nconst MORE_ICON = Platform.OS === 'ios' ? 'dots-horizontal' : 'dots-vertical';\r\nimport FlashMessage, { showMessage } from \"react-native-flash-message\";\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\n\r\nconst MySwal = withReactContent(Swal)\r\n\r\n\r\n\r\nexport default function CollectImageScreen({ navigation }) {\r\n\r\n\r\n const { userInfo } = React.useContext(AuthContext);\r\n\r\n const [isThemeDark] = React.useState(true);\r\n let theme = isThemeDark ? CombinedDarkTheme : CombinedDefaultTheme;\r\n const { colors } = useTheme();\r\n\r\n const { getAll, getByIndex, add, update } = useIndexedDB('collect');\r\n\r\n\r\n const [data, setData] = useState({ collects: [] as any[] });\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [filter, setFilterCode] = useState({ cod: '' });\r\n const [timer, setTimer] = useState(null);\r\n\r\n\r\n\r\n React.useLayoutEffect(() => {\r\n navigation.setOptions({\r\n\r\n headerRight: () => (\r\n\r\n \r\n {\r\n console.log('check-all..');\r\n }}>\r\n\r\n\r\n \r\n\r\n \r\n\r\n\r\n {\r\n console.log('check-all..');\r\n }}>\r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n\r\n ),\r\n });\r\n }, [navigation]);\r\n\r\n\r\n\r\n\r\n React.useEffect(() => {\r\n\r\n const unsubscribe = navigation.addListener('focus', () => {\r\n console.log('CollectImageScreen Focused ...');\r\n fetchData();\r\n });\r\n\r\n const fetchData = async () => {\r\n setIsLoading(true);\r\n\r\n getAll().then(resp => {\r\n setData({ collects: resp });\r\n setIsLoading(false);\r\n });\r\n\r\n\r\n };\r\n\r\n //fetchData();\r\n\r\n return unsubscribe;\r\n\r\n }, [filter, navigation]);\r\n\r\n\r\n\r\n\r\n\r\n function updateStrFind(change) {\r\n\r\n if (timer) {\r\n clearTimeout(timer);\r\n setTimer(null);\r\n }\r\n setTimer(\r\n setTimeout(() => {\r\n setFilterCode({ cod: change });\r\n }, 800)\r\n );\r\n }\r\n\r\n\r\n async function validateItens() {\r\n\r\n setIsLoading(true);\r\n\r\n const result = await api.get(`/api/BuscarOrdensAbertas?idTecnico=${userInfo.idUsuario}¶CheckList=false`).then();\r\n if (result.status == 200 && result.data) {\r\n var atendimentos = data.collects.filter(i => !i.item.idOS);\r\n\r\n atendimentos.forEach(atItem => {\r\n\r\n var osItem = result.data.find(i => i.cod.indexOf(atItem.item.nroOS) > -1);\r\n if (osItem) {\r\n let item = atItem.item as AtendimentoLocal;\r\n\r\n item.idUnidade = osItem.idUnidade;\r\n item.idOS = osItem.idOs;\r\n item.nroOS = osItem.cod;\r\n item.nomeCliente = osItem.nomeCliente;\r\n item.equipamento = osItem.equipamento;\r\n item.info = osItem.info;\r\n\r\n update({ id: atItem.id, item: item });\r\n }\r\n });\r\n }\r\n\r\n setIsLoading(false);\r\n\r\n setIsLoading(true);\r\n getAll().then(resp => {\r\n setData({ collects: resp });\r\n setIsLoading(false);\r\n });\r\n\r\n }\r\n\r\n\r\n async function confirmSendItens() {\r\n let resp = await MySwal.fire({\r\n title: 'Enviar Imagens?',\r\n html: 'Confirma o envio das imagens para o servidor?',\r\n showDenyButton: true,\r\n showCancelButton: false,\r\n confirmButtonText: 'Sim, Enviar!',\r\n denyButtonText: `Não`,\r\n }).then();\r\n\r\n if (resp.isConfirmed) {\r\n enviarItens(); \r\n } else if (resp.isDenied) {\r\n \r\n }\r\n }\r\n\r\n async function enviarItens() {\r\n\r\n\r\n setIsLoading(true);\r\n const images = await useIndexedDB('images').getAll().then();\r\n const atItens = await getAll().then();\r\n setData({ collects: atItens });\r\n\r\n setIsLoading(false);\r\n\r\n\r\n var atendimentosValidados = data.collects.filter(i => i.item.validado === true);\r\n\r\n atendimentosValidados.forEach(atItem => {\r\n let item = atItem.item as AtendimentoLocal;\r\n let imgList = images.filter(i => i.collectId == atItem.id);\r\n\r\n var imgLength = imgList.length;\r\n var totalValidated = 0;\r\n\r\n\r\n imgList.forEach(async imgData => {\r\n\r\n if (!imgData.item.sendDate) {\r\n\r\n var cmdData = {\r\n IdEmpresa: ApiConfig.guidUrl,\r\n IdUnidade: item.idUnidade,\r\n IdUsuario: userInfo.idUsuario,\r\n ImageId: imgData.item.id,\r\n OrdemId: item.idOS,\r\n DataHora: item.dataEmissao,\r\n Tipo: imgData.item.imgType,\r\n Descricao: imgData.item.subject\r\n };\r\n\r\n\r\n var bodyFormData = new FormData();\r\n bodyFormData.append('base64Image', imgData.item.base64Image);\r\n bodyFormData.append('cmdData', JSON.stringify(cmdData));\r\n\r\n setIsLoading(true);\r\n var response: any;\r\n\r\n try {\r\n response = await api.request({\r\n url: 'api/enviarImagens',\r\n method: \"post\",\r\n data: bodyFormData,\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n }).then()\r\n } catch (error) {\r\n throwError(error);\r\n }\r\n\r\n setIsLoading(false);\r\n\r\n if (response?.data?.success) {\r\n imgData.item.sendDate = moment().toLocaleString();\r\n await useIndexedDB('images').update(imgData);\r\n totalValidated++;\r\n if (totalValidated >= imgLength) {\r\n item.enviado = true;\r\n update({ id: atItem.id, item: item });\r\n getAll().then(resp => {\r\n setData({ collects: resp });\r\n });\r\n\r\n }\r\n } else {\r\n\r\n\r\n }\r\n\r\n\r\n\r\n } else {\r\n totalValidated++;\r\n if (totalValidated >= imgLength) {\r\n item.enviado = true;\r\n update({ id: atItem.id, item: item });\r\n getAll().then(resp => {\r\n setData({ collects: resp });\r\n });\r\n\r\n }\r\n }\r\n\r\n });\r\n\r\n\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n async function confirmClearItens() {\r\n let resp = await MySwal.fire({\r\n title: 'Limpar Dados?',\r\n html: 'Este procedimento vai excluir do seu dispositivo todos os atendimentos que já foram concluídos!

Confirma a limpeza dos atendimentos concluídos?',\r\n showDenyButton: true,\r\n showCancelButton: false,\r\n confirmButtonText: 'Sim, Limpar!',\r\n denyButtonText: `Não`,\r\n }).then();\r\n\r\n if (resp.isConfirmed) {\r\n limparItens(); \r\n } else if (resp.isDenied) {\r\n \r\n }\r\n }\r\n\r\n async function limparItens() {\r\n\r\n setIsLoading(true);\r\n const images = await useIndexedDB('images').getAll().then();\r\n const atItens = await getAll().then();\r\n setData({ collects: atItens });\r\n\r\n var atendimentosEnviados = data.collects.filter(i => i.item.enviado === true);\r\n atendimentosEnviados.forEach(async atItem => {\r\n let item = atItem.item as AtendimentoLocal;\r\n let imgList = images.filter(i => i.collectId == atItem.id);\r\n\r\n\r\n setIsLoading(true);\r\n var responseValidate: any;\r\n\r\n try {\r\n\r\n responseValidate = await api.request({\r\n url: 'api/validarImagens',\r\n method: \"post\",\r\n\r\n data: {\r\n images: imgList.map(function (img) {\r\n return {\r\n idEmpresa: ApiConfig.guidUrl,\r\n idUnidade: item.idUnidade,\r\n idUsuario: userInfo.idUsuario,\r\n imageId: img.item.id\r\n }\r\n })\r\n },\r\n }).then();\r\n\r\n\r\n if (responseValidate?.data?.success) {\r\n\r\n\r\n imgList.forEach(async imgItem => {\r\n await useIndexedDB('images').deleteRecord(imgItem.id).then();\r\n });\r\n\r\n await useIndexedDB('collect').deleteRecord(atItem.id).then();\r\n getAll().then(resp => {\r\n setData({ collects: resp });\r\n });\r\n\r\n\r\n } else {\r\n\r\n //Nem todas as imagens foram salvas no servidor, não escluir atendimento e atulizar status da imagem\r\n\r\n debugger\r\n\r\n item.enviado = false;\r\n await update({ id: atItem.id, item: item }).then();\r\n\r\n if (responseValidate.data.images) {\r\n\r\n responseValidate.data.images.forEach(async imgValResp => {\r\n if (imgValResp.saved == false) {\r\n\r\n var imgError = imgList.find(i => i.item.id == imgValResp.imageId);\r\n\r\n if (imgError) {\r\n imgError.item.sendDate = null;\r\n await useIndexedDB('images').update({ id: imgError.id, collectId: imgError.collectId, item: imgError.item }).then();\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n getAll().then(resp => {\r\n setData({ collects: resp });\r\n });\r\n\r\n }\r\n\r\n\r\n } catch (error) {\r\n throwError(error);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n const throwError = (error) => {\r\n // Error 😨\r\n if (error.response) {\r\n console.log('error.response.data', error.response.data);\r\n\r\n if (error.response?.data?.errors) {\r\n let errorList = error.response?.data?.errors;\r\n let errMessage = '';\r\n errorList.forEach(err => {\r\n errMessage += err.message + '\\n'\r\n });\r\n showMessage({\r\n message: errMessage,\r\n type: \"danger\",\r\n autoHide: false\r\n });\r\n\r\n }\r\n\r\n } else {\r\n showMessage({\r\n message: 'Falha ao enviar imagem!',\r\n type: \"danger\"\r\n });\r\n }\r\n console.log(error);\r\n }\r\n\r\n\r\n const Item = ({ data }) => {\r\n\r\n const Info = data.item.info ? JSON.parse(data.item.info) : [];\r\n\r\n return (\r\n navigation.navigate('CollectMd', { collectId: data.id })}\r\n style={({ pressed }) => ({\r\n opacity: pressed ? 0.5 : 1,\r\n })}>\r\n\r\n \r\n
\r\n {data.item.nomeCliente}\r\n

\r\n {data.item.equipamento}\r\n\r\n (\r\n\r\n {item.Key}: {item.Value}\r\n )}\r\n />\r\n \r\n\r\n\r\n\r\n
\r\n }\r\n left={props => (\r\n (\r\n )} />\r\n )}\r\n\r\n right={props => (\r\n \r\n {\r\n data.item.validado\r\n ?\r\n Validado\r\n : null\r\n }\r\n\r\n {\r\n data.item.enviado\r\n ?\r\n / Enviado\r\n : null\r\n }\r\n\r\n \r\n )}\r\n\r\n\r\n />\r\n\r\n \r\n\r\n\r\n )\r\n\r\n }\r\n\r\n const renderItem = ({ item }) => (\r\n \r\n );\r\n\r\n\r\n\r\n\r\n return (\r\n\r\n \r\n\r\n \r\n\r\n {\r\n navigation.toggleDrawer();\r\n }} />\r\n\r\n {/* { }} /> */}\r\n\r\n \r\n\r\n {\r\n confirmClearItens();\r\n }} />\r\n\r\n\r\n {\r\n validateItens();\r\n }} />\r\n {\r\n\r\n setIsLoading(true);\r\n setTimeout(() => {\r\n\r\n\r\n confirmSendItens();\r\n\r\n }, 500);\r\n }} />\r\n \r\n\r\n\r\n \r\n \r\n\r\n item.id}\r\n />\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n {\r\n\r\n navigation.navigate('CollectMd', { collectId: null, addMode: true });\r\n\r\n }}\r\n />\r\n \r\n\r\n // \r\n // Atendimentos\r\n // navigation.replace('Root')} style={styles.link}>\r\n // Go to home screen!\r\n // \r\n\r\n\r\n\r\n // \r\n );\r\n}\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: 20,\r\n },\r\n title: {\r\n fontSize: 20,\r\n fontWeight: 'bold',\r\n },\r\n link: {\r\n marginTop: 15,\r\n paddingVertical: 15,\r\n },\r\n linkText: {\r\n fontSize: 14,\r\n color: '#2e78b7',\r\n }\r\n});\r\n","import { StatusBar } from 'expo-status-bar';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { StyleSheet, View, Text, TouchableOpacity, SafeAreaView } from 'react-native';\nimport { FontAwesome, Ionicons, MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Camera } from 'expo-camera';\n\n\nimport styled from 'styled-components';\n\n\nexport default function CameraScreen({ route, navigation }) {\n\n\n\n\n const [numberOfCameras, setNumberOfCameras] = useState(1);\n const [image, setImage] = useState(null);\n const [showImage, setShowImage] = useState(false);\n const [hasPermission, setHasPermission] = useState(null);\n\n const [availableCameraTypes, setAvailableCameraTypes] = useState([]);\n\n const [type, setType] = useState(Camera.Constants.Type.back);\n\n const [camera, setCamera] = useState(null);\n\n\n\n useEffect(() => {\n\n (async () => {\n const { status } = await Camera.requestCameraPermissionsAsync();\n setHasPermission(status === 'granted');\n\n if (status === 'granted') {\n setHasPermission(true);\n setAvailableCameraTypes(await Camera.getAvailableCameraTypesAsync());\n } else {\n setHasPermission(false);\n }\n\n\n\n })();\n\n }, [hasPermission]);\n\n\n // if (hasPermission === null) {\n // return ...;\n // }\n // if (hasPermission === false) {\n // return No access to camera;\n // }\n\n const takePicture = async () => {\n if (camera) {\n const options = { quality: 0.7, base64: true };\n const data = await camera.takePictureAsync(options);\n console.log(data.uri);\n setImage(data.uri);\n }\n };\n\n const handleCameraType = () => {\n setType(type === Camera.Constants.Type.back\n ? Camera.Constants.Type.front\n : Camera.Constants.Type.back)\n }\n\n\n\n return (\n \n {showImage ? (\n {\n setShowImage(!showImage);\n }}\n />\n ) : (\n {\n setCamera(ref);\n }}\n\n flashMode={Camera.Constants.FlashMode.on}\n\n\n />\n )}\n \n {\n setShowImage(!showImage);\n }}\n />\n {\n if (camera) {\n takePicture()\n }\n }}\n />\n {\n handleCameraType();\n }}\n />\n \n \n );\n\n}\n\nconst Wrapper = styled.div`\n position: fixed;\n width: 100%;\n height: 100%;\n z-index: 1;\n`;\n\nconst Control = styled.div`\n position: fixed;\n display: flex;\n right: 0;\n width: 20%;\n min-width: 130px;\n min-height: 130px;\n height: 100%;\n background: rgba(0, 0, 0, 0.8);\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 50px;\n box-sizing: border-box;\n flex-direction: column-reverse;\n @media (max-aspect-ratio: 1/1) {\n flex-direction: row;\n bottom: 0;\n width: 100%;\n height: 20%;\n }\n @media (max-width: 400px) {\n padding: 10px;\n }\n`;\n\nconst Button = styled.button`\n outline: none;\n color: white;\n opacity: 1;\n background: transparent;\n background-color: transparent;\n background-position-x: 0%;\n background-position-y: 0%;\n background-repeat: repeat;\n background-image: none;\n padding: 0;\n text-shadow: 0px 0px 4px black;\n background-position: center center;\n background-repeat: no-repeat;\n pointer-events: auto;\n cursor: pointer;\n z-index: 2;\n filter: invert(100%);\n border: none;\n &:hover {\n opacity: 0.7;\n }\n`;\n\n\nconst TakePhotoButton = styled(Button)`\n background: url('https://img.icons8.com/ios/50/000000/compact-camera.png');\n background-position: center;\n background-size: 50px;\n background-repeat: no-repeat;\n width: 80px;\n height: 80px;\n border: solid 4px black;\n border-radius: 50%;\n &:hover {\n background-color: rgba(0, 0, 0, 0.3);\n }\n`;\n\nconst ChangeFacingCameraButton = styled(Button)`\n background: url(https://img.icons8.com/ios/50/000000/switch-camera.png);\n background-position: center;\n background-size: 40px;\n background-repeat: no-repeat;\n width: 40px;\n height: 40px;\n padding: 40px;\n &:disabled {\n opacity: 0;\n cursor: default;\n padding: 60px;\n }\n @media (max-width: 400px) {\n padding: 40px 5px;\n &:disabled {\n padding: 40px 25px;\n }\n }\n`;\n\nconst ImagePreview = styled.div<{ image: string | null }>`\n width: 120px;\n height: 120px;\n ${({ image }) => (image ? `background-image: url(${image});` : '')}\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n @media (max-width: 400px) {\n width: 50px;\n height: 120px;\n }\n`;\n\nconst FullScreenImagePreview = styled.div<{ image: string | null }>`\n width: 100%;\n height: 100%;\n z-index: 100;\n position: absolute;\n background-color: black;\n ${({ image }) => (image ? `background-image: url(${image});` : '')}\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n`;","\r\nexport class AtendimentoLocal {\r\n\r\n dataEmissao: any;\r\n idOS: number | null;\r\n idUnidade: number | null;\r\n\r\n validado: boolean | null;\r\n imagensColetadas: boolean | null;\r\n enviado: boolean | null;\r\n\r\n dataConclusao: string | null;\r\n concluido: boolean | null;\r\n\r\n nroOS: string;\r\n nomeCliente: string;\r\n\r\n equipamento: string;\r\n info: any;\r\n tipoAt: string;\r\n}\r\n\r\n\r\nexport class ImageData {\r\n id: string;\r\n imgType: any;\r\n base64Image: string;\r\n subject: string;\r\n sendDate: any;\r\n}\r\n\r\nexport interface ImageDataType {\r\n before: 0;\r\n after: 1;\r\n rat: 2;\r\n}","import { useEffect, useState } from 'react';\r\nimport { SafeAreaView, View } from 'react-native';\r\nimport styled from 'styled-components';\r\nimport { Button, Caption, Card, Text, Divider, FAB, List, RadioButton, TextInput, Title } from 'react-native-paper';\r\nimport base from '../constants/base';\r\nimport Resizer from 'react-image-file-resizer';\r\nimport { ImageData, ImageDataType } from '../models/models';\r\nimport { CommonActions } from '@react-navigation/native';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport { Camera, CameraResultType, CameraSource, Photo } from '@capacitor/camera';\r\n\r\n\r\n\r\nexport default function NativeCameraScreen({ route, navigation }) {\r\n\r\n const [imgSrc, setImgSrc] = useState('');\r\n const imgData = new ImageData();\r\n imgData.imgType = route.params.imageType as ImageDataType;\r\n\r\n useEffect(() => {\r\n\r\n (async () => {\r\n\r\n })();\r\n\r\n }, []);\r\n\r\n\r\n const handleCapture = (event: React.ChangeEvent) => {\r\n\r\n if (event.target.files) {\r\n if (event.target.files.length !== 0) {\r\n const file = event.target.files[0];\r\n\r\n const reader = new FileReader();\r\n reader.addEventListener('load', () => {\r\n var imgData = reader.result.toString();\r\n console.log(imgData);\r\n setImgSrc(imgData);\r\n });\r\n reader.readAsDataURL(file);\r\n\r\n // const newUrl = URL.createObjectURL(file);\r\n // console.log(file);\r\n // setSource(newUrl);\r\n }\r\n }\r\n };\r\n\r\n const takePhoto = async () => {\r\n const cameraPhoto = await Camera.getPhoto({\r\n resultType: CameraResultType.DataUrl,\r\n source: CameraSource.Camera,\r\n // width: 1280,\r\n // height: 1280,\r\n // preserveAspectRatio: true, \r\n quality: 100\r\n });\r\n \r\n //var base64Data = await base64FromPath(cameraPhoto.base64String);\r\n\r\n const response = await fetch(cameraPhoto.dataUrl);\r\n const blob = await response.blob();\r\n \r\n Resizer.imageFileResizer(\r\n blob,\r\n 1280,\r\n 1280,\r\n 'JPEG',\r\n 100,\r\n 0,\r\n uri => {\r\n console.log(uri)\r\n var img = uri.toString();\r\n setImgSrc(img);\r\n\r\n },\r\n 'base64'\r\n );\r\n\r\n\r\n\r\n };\r\n\r\n \r\n\r\n const fileChangedHandler = (event) => {\r\n var fileInput = false\r\n if (event.target.files[0]) {\r\n fileInput = true\r\n }\r\n if (fileInput) {\r\n Resizer.imageFileResizer(\r\n event.target.files[0],\r\n 1280,\r\n 1280,\r\n 'JPEG',\r\n 95,\r\n 0,\r\n uri => {\r\n console.log(uri)\r\n var img = uri.toString();\r\n setImgSrc(img);\r\n\r\n },\r\n 'base64'\r\n );\r\n }\r\n }\r\n\r\n\r\n\r\n return (\r\n \r\n\r\n {imgSrc ?\r\n \r\n {\"snap\"}\r\n : null}\r\n\r\n
\r\n\r\n \r\n\r\n {/* \r\n */}\r\n\r\n
\r\n\r\n\r\n {\r\n if (imgSrc) {\r\n imgData.base64Image = imgSrc;\r\n imgData.id = uuidv4();\r\n sessionStorage.setItem('@currentImage', JSON.stringify(imgData));\r\n navigation.dispatch(CommonActions.goBack());\r\n }\r\n\r\n }}\r\n />\r\n\r\n
\r\n\r\n );\r\n\r\n}\r\n\r\n\r\n\r\n\r\nconst ImagePreview = styled.div<{ image: string | null }>`\r\n width: 120px;\r\n height: 120px;\r\n ${({ image }) => (image ? `background-image: url(${image});` : '')}\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n @media (max-width: 400px) {\r\n width: 50px;\r\n height: 120px;\r\n }\r\n`;","import { CommonActions } from '@react-navigation/native';\r\nimport { StatusBar } from 'expo-status-bar';\r\nimport React from 'react';\r\nimport { Platform, StyleSheet, View, SafeAreaView, ScrollView, ActivityIndicator, FlatList } from 'react-native';\r\nimport { Appbar, Button, Caption, Card, Colors, Divider, FAB, IconButton, List, RadioButton, TextInput } from 'react-native-paper';\r\nimport base from '../constants/base';\r\nimport { AtendimentoLocal, ImageData } from '../models/models';\r\nimport styled from 'styled-components';\r\nimport { useIndexedDB } from 'react-indexed-db';\r\nimport moment from 'moment';\r\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\r\nimport Swal from 'sweetalert2'\r\nimport withReactContent from 'sweetalert2-react-content'\r\n\r\nconst MySwal = withReactContent(Swal)\r\n\r\nclass CollectModalComp extends React.Component<{}, any> {\r\n\r\n colors;\r\n navigation;\r\n _userInfo;\r\n\r\n db = useIndexedDB('collect');\r\n imageDb = useIndexedDB('images');\r\n\r\n collectId = null;\r\n nroOS = '';\r\n _unsubscribe;\r\n\r\n\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n isLoading: false,\r\n\r\n\r\n item: {},\r\n images: [],\r\n\r\n modeSetOs: 'manual',\r\n osDefinida: null,\r\n\r\n showImage: false,\r\n image: undefined,\r\n image_item: undefined,\r\n allImagesCollected: false,\r\n };\r\n\r\n this.loadCollect = this.loadCollect.bind(this);\r\n this.loadImages = this.loadImages.bind(this);\r\n this.close = this.close.bind(this);\r\n\r\n this.navigation = props.navigation;\r\n this.collectId = props.collectId;\r\n this._userInfo = props.userInfo;\r\n this.colors = props.colors;\r\n\r\n\r\n }\r\n\r\n\r\n\r\n componentDidMount() {\r\n\r\n\r\n\r\n this.loadCollect();\r\n\r\n\r\n this._unsubscribe = this.navigation.addListener('focus', () => {\r\n console.log('CollectModal Focused ...');\r\n\r\n let item = this.state.item as AtendimentoLocal;\r\n\r\n var selectedOS = JSON.parse(sessionStorage.getItem('@selectedOS') || '{}');\r\n if (item && selectedOS?.idOs) {\r\n item.idUnidade = selectedOS.idUnidade;\r\n item.idOS = selectedOS.idOs;\r\n item.nroOS = selectedOS.cod;\r\n item.nomeCliente = selectedOS.nomeCliente;\r\n item.equipamento = selectedOS.equipamento;\r\n item.info = selectedOS.info;\r\n\r\n this.setState({ item: item, osDefinida: true });\r\n\r\n sessionStorage.removeItem('@selectedOS');\r\n }\r\n\r\n\r\n var currentImage = sessionStorage.getItem('@currentImage');\r\n if (currentImage) {\r\n\r\n sessionStorage.removeItem('@currentImage');\r\n\r\n var img: ImageData = JSON.parse(currentImage) as ImageData;\r\n this.imageDb.add({ collectId: this.collectId, item: img }).then(() => {\r\n this.loadImages();\r\n });\r\n\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n componentWillUnmount() {\r\n this._unsubscribe();\r\n\r\n }\r\n\r\n close() {\r\n this.navigation.dispatch(CommonActions.goBack());\r\n }\r\n\r\n loadCollect() {\r\n\r\n if (this.collectId) {\r\n this.setState({ isLoading: true });\r\n\r\n this.db.getByID(this.collectId).then(resp => {\r\n this.setState({\r\n item: resp.item,\r\n osDefinida: (resp.item.nroOS || resp.item.idOS) ? true : false,\r\n });\r\n\r\n this.loadImages();\r\n this.setState({ isLoading: false });\r\n });\r\n\r\n } else {\r\n\r\n var newItem = new AtendimentoLocal();\r\n newItem.dataEmissao = moment();\r\n\r\n var it = JSON.parse(JSON.stringify(newItem));\r\n this.db.add({ item: it }).then(id => {\r\n this.setState({\r\n item: it,\r\n osDefinida: false,\r\n });\r\n this.collectId = id;\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n loadImages = () => {\r\n useIndexedDB('images').getAll().then(resp => {\r\n var imgs = resp?.filter(i => i.collectId == this.collectId);\r\n\r\n var allImagesCollected = imgs.find(i => i.item.imgType == 0) != null\r\n && imgs.find(i => i.item.imgType == 1) != null\r\n && imgs.find(i => i.item.imgType == 2) != null;\r\n\r\n this.setState({ images: imgs, allImagesCollected: allImagesCollected });\r\n })\r\n }\r\n\r\n deleteImage = async (imgItem) => {\r\n\r\n let resp = await MySwal.fire({\r\n title: 'Excluir Imagem?',\r\n html: 'Confirma a exclusão dessa imagem?',\r\n showDenyButton: true,\r\n showCancelButton: false,\r\n confirmButtonText: 'Sim, Excluir',\r\n denyButtonText: `Não`,\r\n }).then();\r\n\r\n if (resp.isConfirmed) {\r\n\r\n await useIndexedDB('images').deleteRecord(imgItem.id).then();\r\n this.loadImages();\r\n this.setState({ showImage: false });\r\n \r\n } else if (resp.isDenied) {\r\n \r\n }\r\n\r\n \r\n \r\n };\r\n\r\n\r\n render() {\r\n\r\n const AppbarHeader = () => {\r\n\r\n return (\r\n\r\n {\r\n\r\n let item = this.state.item as AtendimentoLocal;\r\n if (!item.nroOS && this.state.images.length <= 0) {\r\n this.db.deleteRecord(this.collectId);\r\n } else {\r\n saveItem();\r\n }\r\n\r\n this.navigation.goBack();\r\n }} />\r\n\r\n\r\n \r\n {/* { }} />\r\n { }} /> */}\r\n )\r\n }\r\n\r\n\r\n\r\n const OsInfo = () => {\r\n\r\n const Info = this.state.item.info ? JSON.parse(this.state.item.info) : [];\r\n const data = this.state.item;\r\n\r\n return (\r\n this.state.item.idOS ?\r\n\r\n\r\n \r\n
\r\n {data.nomeCliente}\r\n

\r\n {data.equipamento}\r\n\r\n (\r\n\r\n {item.Key}: {item.Value}\r\n )}\r\n />\r\n\r\n\r\n
\r\n }\r\n left={props => (\r\n (\r\n )} />\r\n )}\r\n />\r\n\r\n \r\n\r\n // \r\n // \r\n\r\n // \r\n // {this.state.item.nomeCliente}\r\n // {this.state.item.equipamento}\r\n\r\n // (\r\n \r\n // {item.Key}: {item.Value}\r\n // )}\r\n // />\r\n\r\n // \r\n // \r\n\r\n :\r\n\r\n \r\n \r\n {\r\n this.navigation.navigate('OsPageModal', { findMode: true })\r\n }} />\r\n }>\r\n \r\n\r\n \r\n Falta Selecionar a O.S. On-line!\r\n \r\n\r\n\r\n {/* }\r\n /> */}\r\n\r\n \r\n\r\n )\r\n };\r\n\r\n\r\n const renderImage = ({ item }) => (\r\n\r\n \r\n {\r\n this.setState({ image: item.item.base64Image, image_item: item})\r\n this.setState({ showImage: true });\r\n\r\n }}\r\n />\r\n\r\n \r\n\r\n\r\n\r\n // {\"snap\"}\r\n );\r\n\r\n const saveItem = async () => {\r\n\r\n if (!this.collectId) {\r\n var id = await this.db.add({ item: this.state.item }).then();\r\n this.collectId = id;\r\n } else {\r\n\r\n let totalSendded = this.state.images.filter(i => i.item.sendDate).length;\r\n\r\n let item = this.state.item as AtendimentoLocal;\r\n item.imagensColetadas = this.state.allImagesCollected;\r\n item.validado = item.idOS && this.state.allImagesCollected;\r\n item.enviado = item.validado && (totalSendded >= this.state.images.length);\r\n await this.db.update({ id: this.collectId, item: item });\r\n }\r\n\r\n\r\n };\r\n\r\n\r\n if (this.state.osDefinida == null) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n\r\n if (!this.state.osDefinida) {\r\n return (\r\n \r\n\r\n \r\n\r\n \r\n this.setState({ modeSetOs: value })} value={this.state.modeSetOs}>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.state.modeSetOs == 'online' ?\r\n (\r\n \r\n ) :\r\n (\r\n \r\n\r\n { this.nroOS = value }}\r\n />\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n )\r\n\r\n }\r\n \r\n \r\n )\r\n }\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n {\r\n this.state.showImage ?\r\n {\r\n this.setState({ showImage: false });\r\n }}\r\n >\r\n {\r\n this.setState({ showImage: false });\r\n }} />\r\n \r\n {(this.state.image_item && !this.state.image_item.item.sendDate ?\r\n \r\n this.deleteImage(this.state.image_item)} />\r\n : null\r\n \r\n )}\r\n \r\n\r\n\r\n : null\r\n }\r\n\r\n\r\n {/* Use a light status bar on iOS to account for the black space above the modal */}\r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n {/* \r\n { setShowImage(false) }} contentContainerStyle={containerStyle}>\r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n {\r\n this.navigation.navigate('NativeCameraScreen', { imageType: 0 });\r\n }} />}>\r\n\r\n \r\n\r\n \r\n i.item.imgType == 0) : [])}\r\n renderItem={renderImage} />\r\n \r\n\r\n \r\n\r\n \r\n {\r\n this.navigation.navigate('NativeCameraScreen', { imageType: 1 });\r\n }} />}>\r\n\r\n \r\n\r\n \r\n i.item.imgType == 1) : [])}\r\n renderItem={renderImage} />\r\n \r\n\r\n \r\n\r\n\r\n \r\n {\r\n this.navigation.navigate('NativeCameraScreen', { imageType: 2 });\r\n }} />}>\r\n\r\n \r\n\r\n \r\n i.item.imgType == 2) : [])}\r\n renderItem={renderImage} />\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n\r\n {\r\n saveItem();\r\n this.navigation.dispatch(CommonActions.goBack());\r\n }}\r\n />\r\n\r\n\r\n\r\n \r\n\r\n\r\n \r\n )\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n\r\n\r\nexport default CollectModalComp;\r\n\r\n\r\n\r\n\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n title: {\r\n fontSize: 20,\r\n fontWeight: 'bold',\r\n },\r\n separator: {\r\n marginVertical: 30,\r\n height: 1,\r\n width: '80%',\r\n },\r\n});\r\n\r\n\r\n\r\n\r\nconst ImageContainner = styled.div`\r\n background: rgb(216 216 216 / 71%);\r\n border: #b6b6b6 1px solid;\r\n border-radius: 5px;\r\n padding: 25px;\r\n box-sizing: border-box;\r\n \r\n \r\n`;\r\n\r\nconst ImagePreview = styled.div<{ image: string | null }>`\r\n\r\n height: 90px;\r\n max-height: 90px;\r\n ${({ image }) => (image ? `background-image: url(${image});` : '')}\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n @media (max-width: 450px) {\r\n height: 90px;\r\n }\r\n`;\r\n\r\n\r\nconst FullScreenImagePreview = styled.div<{ image: string | null }>`\r\n width: 100%;\r\n height: 100%;\r\n z-index: 9999;\r\n position: absolute;\r\n background-color: black;\r\n ${({ image }) => (image ? `background-image: url(${image});` : '')}\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-position: center;\r\n`;","import { FontAwesome, Ionicons } from '@expo/vector-icons';\nimport { CommonActions } from '@react-navigation/native';\nimport React from 'react';\nimport { Pressable } from 'react-native';\nimport { useTheme } from 'react-native-paper';\nimport { AuthContext } from '../context/PreferencesContext';\nimport CollectModalComp from './CollectModalComp';\n\n\nexport default function CollectMd({ props, route, navigation, theme }) {\n\n const { colors } = useTheme();\n const { userInfo } = React.useContext(AuthContext);\n\n\n\n React.useLayoutEffect(() => {\n navigation.setOptions({\n\n headerLeft: () => (\n {\n navigation.dispatch(CommonActions.goBack());\n }}>\n\n \n\n\n\n \n ),\n\n\n });\n }, [navigation]);\n\n\n\n return (\n\n \n \n )\n}","import { NavigationContainer, Theme } from '@react-navigation/native';\r\nimport { createNativeStackNavigator } from '@react-navigation/native-stack';\r\nimport { createDrawerNavigator } from '@react-navigation/drawer';\r\n\r\nimport * as React from 'react';\r\n\r\nimport ModalScreen from '../screens/ModalScreen';\r\n\r\n\r\nimport MenuIcon from './MenuIcon';\r\nimport MenuContent from './MenuContent';\r\nimport { AuthContext } from '../context/PreferencesContext';\r\nimport LoginPage from '../screens/LoginScreen';\r\nimport OsPage from '../screens/OsScreen';\r\nimport AsyncStorage from '@react-native-async-storage/async-storage';\r\nimport CollectImageScreen from '../screens/CollectImageScreen';\r\nimport CameraScreen from '../screens/CameraScreen';\r\nimport NativeCameraScreen from '../screens/NativeCameraScreen';\r\nimport CollectMd from '../screens/CollectMd';\r\n\r\ndeclare type Props = {\r\n theme?: Theme;\r\n};\r\n\r\nexport default function Navigation({ ...props }: Props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst Stack = createNativeStackNavigator();\r\nconst Drawer = createDrawerNavigator();\r\n\r\n\r\nfunction RootNavigator() {\r\n\r\n const [userInfo, setUserData] = React.useState(undefined);\r\n\r\n //Function to change theme\r\n const setUser = React.useCallback((data) => {\r\n return setUserData(data);\r\n }, [userInfo]);\r\n\r\n const preferences = React.useMemo(\r\n () => ({ setUser, userInfo }), [setUser, userInfo]\r\n );\r\n\r\n React.useEffect(() => {\r\n AsyncStorage.getItem('@user').then(resp => {\r\n console.log(resp);\r\n setUserData(JSON.parse(resp));\r\n })\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n {userInfo ?\r\n \r\n :\r\n \r\n }\r\n \r\n );\r\n\r\n}\r\n\r\nfunction StackNavigator() {\r\n return (\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n );\r\n}\r\n\r\nfunction DrawerNavigator() {\r\n\r\n return (\r\n }} drawerContent={(props) => }>\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* */}\r\n \r\n );\r\n\r\n}\r\n\r\nfunction LogOutNavigator() {\r\n return (\r\n \r\n \r\n\r\n \r\n );\r\n}\r\n\r\n\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://cra.link/PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n );\r\n \r\n export function register(config) {\r\n const isEnvProduction = process.env.NODE_ENV === \"production\";\r\n if (isEnvProduction && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n \r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n \r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n \r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n \"This web app is being served cache-first by a service \" +\r\n \"worker. To learn more, visit https://cra.link/PWA\"\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n }\r\n \r\n function registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then((registration) => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n \"New content is available and will be used when all \" +\r\n \"tabs for this page are closed. See https://cra.link/PWA.\"\r\n );\r\n \r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log(\"Content is cached for offline use.\");\r\n \r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch((error) => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n }\r\n \r\n function checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { \"Service-Worker\": \"script\" },\r\n })\r\n .then((response) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then((registration) => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n \"No internet connection found. App is running in offline mode.\"\r\n );\r\n });\r\n }\r\n \r\n export function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready\r\n .then((registration) => {\r\n registration.unregister();\r\n })\r\n .catch((error) => {\r\n console.error(error.message);\r\n });\r\n }\r\n }","import 'react-native-gesture-handler';\nimport { StatusBar } from 'expo-status-bar';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport useCachedResources from './hooks/useCachedResources';\nimport useColorScheme from './hooks/useColorScheme';\nimport Navigation from './navigation';\nimport {\n Card,\n Title,\n Paragraph,\n List,\n Provider as PaperProvider,\n} from 'react-native-paper';\nimport React, { useEffect } from 'react';\nimport { CombinedDarkTheme, CombinedDefaultTheme } from './constants/Theme';\nimport { PreferencesContext } from './context/PreferencesContext';\nimport { NavigationContainer, Theme, useFocusEffect } from '@react-navigation/native';\nimport * as serviceWorkerRegistration from \"./src/serviceWorkerRegistration\";\nimport AsyncStorage from '@react-native-async-storage/async-storage';\nimport { Alert, BackHandler } from 'react-native';\nimport { DBConfig } from './services/DBConfig';\nimport { initDB } from 'react-indexed-db';\n\nimport 'moment/src/locale/pt';\n \ninitDB(DBConfig);\n\n\nexport default function App() {\n\n const backAction = () => {\n Alert.alert(\"Hold on!\", \"Are you sure you want to go back?\", [\n {\n text: \"Cancel\",\n onPress: () => null,\n style: \"cancel\"\n },\n { text: \"YES\", onPress: () => BackHandler.exitApp() }\n ]);\n return true;\n };\n\n useEffect(() => {\n BackHandler.addEventListener(\"hardwareBackPress\", backAction);\n\n return () =>\n BackHandler.removeEventListener(\"hardwareBackPress\", backAction);\n }, []);\n\n \n\n const isLoadingComplete = useCachedResources();\n const [isThemeDark, setIsThemeDark] = React.useState(true);\n let theme = isThemeDark ? CombinedDarkTheme : CombinedDefaultTheme;\n\n\n //Function to change theme\n const toggleTheme = React.useCallback(() => {\n setIsThemeDark(!isThemeDark);\n AsyncStorage.setItem('@isThemeDark', (!isThemeDark) ? 'true' : 'false');\n window.location.reload();\n }, [isThemeDark]);\n\n const preferences = React.useMemo(\n () => ({ toggleTheme, isThemeDark }), [toggleTheme, isThemeDark]\n );\n\n React.useEffect(() => {\n\n AsyncStorage.getItem('@isThemeDark').then(resp => {\n setIsThemeDark(resp === 'true' ? true : false);\n })\n\n }, []);\n\n \n if (!isLoadingComplete) {\n return null;\n } else {\n return (\n\n \n \n\n \n\n {/* \n \n \n \n \n */}\n \n \n\n // \n // \n // \n // \n );\n }\n}\n\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.register();","import { FontAwesome } from '@expo/vector-icons';\nimport * as Font from 'expo-font';\nimport * as SplashScreen from 'expo-splash-screen';\nimport { useEffect, useState } from 'react';\n\nexport default function useCachedResources() {\n const [isLoadingComplete, setLoadingComplete] = useState(false);\n\n // Load any resources or data that we need prior to rendering the app\n useEffect(() => {\n async function loadResourcesAndDataAsync() {\n try {\n SplashScreen.preventAutoHideAsync();\n\n // Load fonts\n await Font.loadAsync({\n ...FontAwesome.font,\n 'space-mono': require('../assets/fonts/SpaceMono-Regular.ttf'),\n });\n } catch (e) {\n // We might want to provide this error information to an error reporting service\n console.warn(e);\n } finally {\n setLoadingComplete(true);\n SplashScreen.hideAsync();\n }\n }\n\n loadResourcesAndDataAsync();\n }, []);\n\n return isLoadingComplete;\n}\n","export const DBConfig = {\r\n name: 'ImageCollectDb',\r\n version: 1,\r\n objectStoresMeta: [\r\n {\r\n store: 'collect',\r\n storeConfig: { keyPath: 'id', autoIncrement: true },\r\n storeSchema: [\r\n { name: 'cod', keypath: 'cod', options: { unique: false } },\r\n { name: 'item', keypath: 'item', options: { unique: false } }\r\n ]\r\n },\r\n {\r\n store: 'images',\r\n storeConfig: { keyPath: 'id', autoIncrement: true },\r\n storeSchema: [\r\n { name: 'collectId', keypath: 'collectId', options: { unique: false } },\r\n { name: 'item', keypath: 'item', options: { unique: false } }\r\n ]\r\n }\r\n ]\r\n };","module.exports = __webpack_public_path__ + \"./fonts/SpaceMono-Regular.ttf\";","module.exports = __webpack_public_path__ + \"static/media/icon.8fe3133c.png\";","var map = {\n\t\"./af\": 313,\n\t\"./af.js\": 313,\n\t\"./ar\": 314,\n\t\"./ar-dz\": 315,\n\t\"./ar-dz.js\": 315,\n\t\"./ar-kw\": 316,\n\t\"./ar-kw.js\": 316,\n\t\"./ar-ly\": 317,\n\t\"./ar-ly.js\": 317,\n\t\"./ar-ma\": 318,\n\t\"./ar-ma.js\": 318,\n\t\"./ar-sa\": 319,\n\t\"./ar-sa.js\": 319,\n\t\"./ar-tn\": 320,\n\t\"./ar-tn.js\": 320,\n\t\"./ar.js\": 314,\n\t\"./az\": 321,\n\t\"./az.js\": 321,\n\t\"./be\": 322,\n\t\"./be.js\": 322,\n\t\"./bg\": 323,\n\t\"./bg.js\": 323,\n\t\"./bm\": 324,\n\t\"./bm.js\": 324,\n\t\"./bn\": 325,\n\t\"./bn-bd\": 326,\n\t\"./bn-bd.js\": 326,\n\t\"./bn.js\": 325,\n\t\"./bo\": 327,\n\t\"./bo.js\": 327,\n\t\"./br\": 328,\n\t\"./br.js\": 328,\n\t\"./bs\": 329,\n\t\"./bs.js\": 329,\n\t\"./ca\": 330,\n\t\"./ca.js\": 330,\n\t\"./cs\": 331,\n\t\"./cs.js\": 331,\n\t\"./cv\": 332,\n\t\"./cv.js\": 332,\n\t\"./cy\": 333,\n\t\"./cy.js\": 333,\n\t\"./da\": 334,\n\t\"./da.js\": 334,\n\t\"./de\": 335,\n\t\"./de-at\": 336,\n\t\"./de-at.js\": 336,\n\t\"./de-ch\": 337,\n\t\"./de-ch.js\": 337,\n\t\"./de.js\": 335,\n\t\"./dv\": 338,\n\t\"./dv.js\": 338,\n\t\"./el\": 339,\n\t\"./el.js\": 339,\n\t\"./en-au\": 340,\n\t\"./en-au.js\": 340,\n\t\"./en-ca\": 341,\n\t\"./en-ca.js\": 341,\n\t\"./en-gb\": 342,\n\t\"./en-gb.js\": 342,\n\t\"./en-ie\": 343,\n\t\"./en-ie.js\": 343,\n\t\"./en-il\": 344,\n\t\"./en-il.js\": 344,\n\t\"./en-in\": 345,\n\t\"./en-in.js\": 345,\n\t\"./en-nz\": 346,\n\t\"./en-nz.js\": 346,\n\t\"./en-sg\": 347,\n\t\"./en-sg.js\": 347,\n\t\"./eo\": 348,\n\t\"./eo.js\": 348,\n\t\"./es\": 349,\n\t\"./es-do\": 350,\n\t\"./es-do.js\": 350,\n\t\"./es-mx\": 351,\n\t\"./es-mx.js\": 351,\n\t\"./es-us\": 352,\n\t\"./es-us.js\": 352,\n\t\"./es.js\": 349,\n\t\"./et\": 353,\n\t\"./et.js\": 353,\n\t\"./eu\": 354,\n\t\"./eu.js\": 354,\n\t\"./fa\": 355,\n\t\"./fa.js\": 355,\n\t\"./fi\": 356,\n\t\"./fi.js\": 356,\n\t\"./fil\": 357,\n\t\"./fil.js\": 357,\n\t\"./fo\": 358,\n\t\"./fo.js\": 358,\n\t\"./fr\": 359,\n\t\"./fr-ca\": 360,\n\t\"./fr-ca.js\": 360,\n\t\"./fr-ch\": 361,\n\t\"./fr-ch.js\": 361,\n\t\"./fr.js\": 359,\n\t\"./fy\": 362,\n\t\"./fy.js\": 362,\n\t\"./ga\": 363,\n\t\"./ga.js\": 363,\n\t\"./gd\": 364,\n\t\"./gd.js\": 364,\n\t\"./gl\": 365,\n\t\"./gl.js\": 365,\n\t\"./gom-deva\": 366,\n\t\"./gom-deva.js\": 366,\n\t\"./gom-latn\": 367,\n\t\"./gom-latn.js\": 367,\n\t\"./gu\": 368,\n\t\"./gu.js\": 368,\n\t\"./he\": 369,\n\t\"./he.js\": 369,\n\t\"./hi\": 370,\n\t\"./hi.js\": 370,\n\t\"./hr\": 371,\n\t\"./hr.js\": 371,\n\t\"./hu\": 372,\n\t\"./hu.js\": 372,\n\t\"./hy-am\": 373,\n\t\"./hy-am.js\": 373,\n\t\"./id\": 374,\n\t\"./id.js\": 374,\n\t\"./is\": 375,\n\t\"./is.js\": 375,\n\t\"./it\": 376,\n\t\"./it-ch\": 377,\n\t\"./it-ch.js\": 377,\n\t\"./it.js\": 376,\n\t\"./ja\": 378,\n\t\"./ja.js\": 378,\n\t\"./jv\": 379,\n\t\"./jv.js\": 379,\n\t\"./ka\": 380,\n\t\"./ka.js\": 380,\n\t\"./kk\": 381,\n\t\"./kk.js\": 381,\n\t\"./km\": 382,\n\t\"./km.js\": 382,\n\t\"./kn\": 383,\n\t\"./kn.js\": 383,\n\t\"./ko\": 384,\n\t\"./ko.js\": 384,\n\t\"./ku\": 385,\n\t\"./ku.js\": 385,\n\t\"./ky\": 386,\n\t\"./ky.js\": 386,\n\t\"./lb\": 387,\n\t\"./lb.js\": 387,\n\t\"./lo\": 388,\n\t\"./lo.js\": 388,\n\t\"./lt\": 389,\n\t\"./lt.js\": 389,\n\t\"./lv\": 390,\n\t\"./lv.js\": 390,\n\t\"./me\": 391,\n\t\"./me.js\": 391,\n\t\"./mi\": 392,\n\t\"./mi.js\": 392,\n\t\"./mk\": 393,\n\t\"./mk.js\": 393,\n\t\"./ml\": 394,\n\t\"./ml.js\": 394,\n\t\"./mn\": 395,\n\t\"./mn.js\": 395,\n\t\"./mr\": 396,\n\t\"./mr.js\": 396,\n\t\"./ms\": 397,\n\t\"./ms-my\": 398,\n\t\"./ms-my.js\": 398,\n\t\"./ms.js\": 397,\n\t\"./mt\": 399,\n\t\"./mt.js\": 399,\n\t\"./my\": 400,\n\t\"./my.js\": 400,\n\t\"./nb\": 401,\n\t\"./nb.js\": 401,\n\t\"./ne\": 402,\n\t\"./ne.js\": 402,\n\t\"./nl\": 403,\n\t\"./nl-be\": 404,\n\t\"./nl-be.js\": 404,\n\t\"./nl.js\": 403,\n\t\"./nn\": 405,\n\t\"./nn.js\": 405,\n\t\"./oc-lnc\": 406,\n\t\"./oc-lnc.js\": 406,\n\t\"./pa-in\": 407,\n\t\"./pa-in.js\": 407,\n\t\"./pl\": 408,\n\t\"./pl.js\": 408,\n\t\"./pt\": 409,\n\t\"./pt-br\": 410,\n\t\"./pt-br.js\": 410,\n\t\"./pt.js\": 409,\n\t\"./ro\": 411,\n\t\"./ro.js\": 411,\n\t\"./ru\": 412,\n\t\"./ru.js\": 412,\n\t\"./sd\": 413,\n\t\"./sd.js\": 413,\n\t\"./se\": 414,\n\t\"./se.js\": 414,\n\t\"./si\": 415,\n\t\"./si.js\": 415,\n\t\"./sk\": 416,\n\t\"./sk.js\": 416,\n\t\"./sl\": 417,\n\t\"./sl.js\": 417,\n\t\"./sq\": 418,\n\t\"./sq.js\": 418,\n\t\"./sr\": 419,\n\t\"./sr-cyrl\": 420,\n\t\"./sr-cyrl.js\": 420,\n\t\"./sr.js\": 419,\n\t\"./ss\": 421,\n\t\"./ss.js\": 421,\n\t\"./sv\": 422,\n\t\"./sv.js\": 422,\n\t\"./sw\": 423,\n\t\"./sw.js\": 423,\n\t\"./ta\": 424,\n\t\"./ta.js\": 424,\n\t\"./te\": 425,\n\t\"./te.js\": 425,\n\t\"./tet\": 426,\n\t\"./tet.js\": 426,\n\t\"./tg\": 427,\n\t\"./tg.js\": 427,\n\t\"./th\": 428,\n\t\"./th.js\": 428,\n\t\"./tk\": 429,\n\t\"./tk.js\": 429,\n\t\"./tl-ph\": 430,\n\t\"./tl-ph.js\": 430,\n\t\"./tlh\": 431,\n\t\"./tlh.js\": 431,\n\t\"./tr\": 432,\n\t\"./tr.js\": 432,\n\t\"./tzl\": 433,\n\t\"./tzl.js\": 433,\n\t\"./tzm\": 434,\n\t\"./tzm-latn\": 435,\n\t\"./tzm-latn.js\": 435,\n\t\"./tzm.js\": 434,\n\t\"./ug-cn\": 436,\n\t\"./ug-cn.js\": 436,\n\t\"./uk\": 437,\n\t\"./uk.js\": 437,\n\t\"./ur\": 438,\n\t\"./ur.js\": 438,\n\t\"./uz\": 439,\n\t\"./uz-latn\": 440,\n\t\"./uz-latn.js\": 440,\n\t\"./uz.js\": 439,\n\t\"./vi\": 441,\n\t\"./vi.js\": 441,\n\t\"./x-pseudo\": 442,\n\t\"./x-pseudo.js\": 442,\n\t\"./yo\": 443,\n\t\"./yo.js\": 443,\n\t\"./zh-cn\": 444,\n\t\"./zh-cn.js\": 444,\n\t\"./zh-hk\": 445,\n\t\"./zh-hk.js\": 445,\n\t\"./zh-mo\": 446,\n\t\"./zh-mo.js\": 446,\n\t\"./zh-tw\": 447,\n\t\"./zh-tw.js\": 447\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 653;"],"sourceRoot":""}