@fto-consult/expo-ui 6.61.0 → 6.62.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/create-app.js CHANGED
@@ -125,6 +125,8 @@ const createAPPJSONFile = (projectRoot,{name,version})=>{
125
125
  "supportsTablet": true
126
126
  },
127
127
  "android": {
128
+ "blockedPermissions": [],
129
+ "softwareKeyboardLayoutMode": "pan",
128
130
  "adaptiveIcon": {
129
131
  "foregroundImage": "./assets/adaptive-icon.png",
130
132
  "backgroundColor": "#ffffff"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "6.59.0",
3
+ "version": "6.61.1",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "main",
6
6
  "scripts": {
@@ -70,18 +70,18 @@
70
70
  "@expo/html-elements": "^0.5.1",
71
71
  "@expo/vector-icons": "^13.0.0",
72
72
  "@faker-js/faker": "^8.0.2",
73
- "@fto-consult/common": "^3.53.0",
73
+ "@fto-consult/common": "^3.54.2",
74
74
  "@pchmn/expo-material3-theme": "^1.3.1",
75
75
  "@react-native-async-storage/async-storage": "1.18.2",
76
76
  "@react-native-community/datetimepicker": "7.2.0",
77
77
  "@react-native-community/netinfo": "9.3.10",
78
78
  "@react-native/assets-registry": "^0.72.0",
79
- "@react-navigation/native": "^6.1.8",
80
- "@react-navigation/native-stack": "^6.9.14",
81
- "@react-navigation/stack": "^6.3.18",
79
+ "@react-navigation/native": "^6.1.9",
80
+ "@react-navigation/native-stack": "^6.9.16",
81
+ "@react-navigation/stack": "^6.3.20",
82
82
  "@shopify/flash-list": "1.4.3",
83
83
  "apexcharts": "^3.44.0",
84
- "expo": "^49.0.15",
84
+ "expo": "^49.0.16",
85
85
  "expo-camera": "~13.4.4",
86
86
  "expo-clipboard": "~4.3.1",
87
87
  "expo-font": "~11.4.0",
@@ -124,6 +124,7 @@
124
124
  "xlsx": "^0.18.5"
125
125
  },
126
126
  "devDependencies": {
127
+ "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
127
128
  "@expo/metro-config": "^0.10.7",
128
129
  "@expo/webpack-config": "^19.0.0",
129
130
  "babel-plugin-inline-dotenv": "^1.7.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "6.61.0",
3
+ "version": "6.62.1",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "main",
6
6
  "scripts": {
@@ -77,8 +77,8 @@
77
77
  "@react-native-community/netinfo": "9.3.10",
78
78
  "@react-native/assets-registry": "^0.72.0",
79
79
  "@react-navigation/native": "^6.1.9",
80
- "@react-navigation/native-stack": "^6.9.15",
81
- "@react-navigation/stack": "^6.3.19",
80
+ "@react-navigation/native-stack": "^6.9.16",
81
+ "@react-navigation/stack": "^6.3.20",
82
82
  "@shopify/flash-list": "1.4.3",
83
83
  "apexcharts": "^3.44.0",
84
84
  "expo": "^49.0.16",
@@ -121,7 +121,8 @@
121
121
  "sharp-cli": "^2.1.0",
122
122
  "tippy.js": "^6.3.7",
123
123
  "websql": "^2.0.3",
124
- "xlsx": "^0.18.5"
124
+ "xlsx": "^0.18.5",
125
+ "expo-sharing": "~11.5.0"
125
126
  },
126
127
  "devDependencies": {
127
128
  "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
@@ -182,17 +182,6 @@ export default class Field extends AppComponent {
182
182
  }
183
183
  this.INITIAL_STATE.validType = this.INITIAL_STATE.validRule = validType;
184
184
  this.INITIAL_STATE.validParams = validParams;
185
- Object.defineProperties(this.INITIAL_STATE,{
186
- beforeValidate : {
187
- value : defaultFunc(beforeValidate),override : false,
188
- },
189
- onValidate : {
190
- value : defaultFunc(onValidate),override : false,
191
- },
192
- onNoValidate : {
193
- value : defaultFunc(onNoValidate),override : false,
194
- },
195
- })
196
185
  if(!this.isValidRuleDynamic()){
197
186
  Object.defineProperties(this.INITIAL_STATE,{
198
187
  validType : {value:validType,override:false},
@@ -241,7 +230,7 @@ export default class Field extends AppComponent {
241
230
  return context;
242
231
  }
243
232
  }
244
- this.INITIAL_STATE.beforeValidate.call(this,{...defaultObj(rest),value,name:this.name,field:this.name,formName:this.formName,context:this,event,validRule,validParams});
233
+ typeof this.props.beforeValidate=="function" && this.props.beforeValidate.call(this,{...defaultObj(rest),value,name:this.name,field:this.name,formName:this.formName,context:this,event,validRule,validParams});
245
234
  });
246
235
  return _result;
247
236
  }
@@ -284,7 +273,7 @@ export default class Field extends AppComponent {
284
273
  actions[k][action]();
285
274
  }
286
275
  let form = Forms.getForm(this.formName);
287
- this.INITIAL_STATE.onValidate.call(this,{...defaultObj(rest),isFilter:this.isFilter(),props:this.props,formName:this.formName,form,name:this.name,field:this.name,value,event,context:this});
276
+ typeof this.props.onValidate=="function" && this.props.onValidate.call(this,{...defaultObj(rest),isFilter:this.isFilter(),props:this.props,formName:this.formName,form,name:this.name,field:this.name,value,event,context:this});
288
277
  this.callOnChange({value,event,isValid:true,...rest});
289
278
  if(form && form.props){
290
279
  if(canEnable){
@@ -357,7 +346,7 @@ export default class Field extends AppComponent {
357
346
  for(var k in actions){
358
347
  actions[k].disable();
359
348
  }
360
- this.INITIAL_STATE.onNoValidate.call(this,{...defaultObj(rest),isFilter:this.isFilter(),props:this.props,msg,value,formName:this.formName,field:this.name,name:this.name,context:this,event,validRule,validType:validRule,validParams,context:this});
349
+ typeof this.props.onNoValidate=="function" && this.props.onNoValidate.call(this,{...defaultObj(rest),isFilter:this.isFilter(),props:this.props,msg,value,formName:this.formName,field:this.name,name:this.name,context:this,event,validRule,validType:validRule,validParams,context:this});
361
350
  let form = Forms.getForm(this.formName);
362
351
  this.callOnChange({value,validRule,validParams,event,isValid:false,...rest});
363
352
  if(form){
@@ -121,8 +121,11 @@ export default class FormSelectField extends Field{
121
121
  ref = {(el)=>{
122
122
  this._field = el;
123
123
  }}
124
- onMount = {({context})=>{
124
+ onMount = {({context,...rest})=>{
125
125
  this._field = context;
126
+ if(typeof props.onMount =='function'){
127
+ props.onMount({context,...rest});
128
+ }
126
129
  }}
127
130
  onChange = {(args)=>{
128
131
  this.validateWithCallOnChange(args);
@@ -8,8 +8,11 @@ export default class FormFieldSelectFontIcon extends SelectField{
8
8
  ref = {(el)=>{
9
9
  this._field = el;
10
10
  }}
11
- onMount = {({context})=>{
11
+ onMount = {({context,...rest})=>{
12
12
  this._field = context;
13
+ if(typeof props.onMount =='function'){
14
+ props.onMount({context,...rest});
15
+ }
13
16
  }}
14
17
  onChange = {(args)=>{
15
18
  this.validateWithCallOnChange(args);
@@ -167,7 +167,7 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
167
167
  React.setRef(ref,context);
168
168
  React.useEffect(()=>{
169
169
  if(onMount ==='function'){
170
- onMount({context})
170
+ onMount({context,props})
171
171
  }
172
172
  return ()=>{
173
173
  React.setRef(ref,null);
@@ -6,4 +6,6 @@ import * as FileSystem from "./exports";
6
6
 
7
7
  export default FileSystem;
8
8
 
9
- export * from "./exports";
9
+ export * from "./exports";
10
+
11
+ export {default as path} from "./path";
@@ -0,0 +1,8 @@
1
+ export default {
2
+ get join(){
3
+ return function(...parts){
4
+ const sep = sep='/';
5
+ return parts.filter(p=>p && typeof p=='string').join(sep).replace(new RegExp(sep+'{1,}', 'g'), sep)
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,15 @@
1
+ const FileSaver = require('file-saver');
2
+ import {defaultNumber} from "$cutils";
3
+
4
+ export const saveBlob = ({content,fileName,timeout,delay})=>{
5
+ return new Promise((resolve,reject)=>{
6
+ try {
7
+ FileSaver.saveAs(content, fileName);
8
+ setTimeout(() => {
9
+ resolve({path:fileName,isWeb : true});
10
+ }, defaultNumber(timeout,delay,3000));
11
+ } catch(e){
12
+ reject(e);
13
+ }
14
+ })
15
+ }
@@ -0,0 +1,34 @@
1
+ import { Directories,FileSystem } from "./native";
2
+ import {defaultStr} from "$cutils";
3
+ import p from "../path";
4
+ import * as Sharing from 'expo-sharing';
5
+
6
+ export const saveBlob = ({content,share,directory,fileName,path})=>{
7
+ path = defaultStr(path,directory,Directories.DOCUMENTS).trim().rtrim("/");
8
+ let hasFound = false;
9
+ for(let i in Directories){
10
+ if(path.includes(Directories[i].rtrim("/"))){
11
+ hasFound = true;
12
+ break;
13
+ }
14
+ }
15
+ if(!hasFound){
16
+ path = Directories.DOCUMENTS;
17
+ }
18
+ path = p.join(path,fileName);
19
+ return new Promise((resolve,reject)=>{
20
+ const fr = new FileReader();
21
+ fr.onload = () => {
22
+ return FileSystem.writeAsStringAsync(path, fr.result.split(',')[1], { encoding: FileSystem.EncodingType.Base64 }).then((r)=>{
23
+ setTimeout(()=>{
24
+ if(share){
25
+ Sharing.shareAsync(path);
26
+ }
27
+ },0);
28
+ resolve({fileName,path});
29
+ }).catch(reject);
30
+ };
31
+ fr.onerror(reject);
32
+ fr.readAsDataURL(content);
33
+ });
34
+ }
@@ -1 +1,2 @@
1
- export * from "./web";
1
+ export * from "./web";
2
+ export * from "./utils";
@@ -1 +1,2 @@
1
- export * from "./native";
1
+ export * from "./native";
2
+ export * from "./utils";
@@ -1 +1,13 @@
1
- export * from "expo-file-system";
1
+ import * as FileSystem from 'expo-file-system';
2
+ export * from "expo-file-system";
3
+
4
+ export const Directories = {
5
+ get DOCUMENTS(){
6
+ return FileSystem.documentDirectory;
7
+ },
8
+ get CACHE(){
9
+ return FileSystem.cacheDirectory;
10
+ }
11
+ }
12
+
13
+ export {FileSystem};
@@ -2,10 +2,10 @@
2
2
  // Use of this source code is governed by a BSD-style
3
3
  // license that can be found in the LICENSE file.
4
4
  import {defaultStr,base64toBlob,dataURLToBlob,getTypeFromDataURL,isNonNullString,getFileName,getFileExtension,defaultNumber,defaultBool,dataURLToBase64,isBlob,isBase64,isDataURL} from "$cutils";
5
- const FileSaver = require('file-saver');
6
5
  const mime = require('react-native-mime-types')
7
6
  const XLSX = require("xlsx");
8
7
  import Preloader from "$preloader";
8
+ import * as FileSaver from "./FileSaver";
9
9
 
10
10
 
11
11
  /**** sauvegarde un fichier sur le disque
@@ -14,49 +14,35 @@ import Preloader from "$preloader";
14
14
  * charset {string}: L'encodage à utiliser pour l'enregistrement du fichier, par défaut utf-8
15
15
  * directory || dir {string} : le répertoire dans lequel enregistrer le fichier
16
16
  * systemDirectory || SystemDirectory : le répertoire racine au device, où enregistrer la données
17
+ path {string}, le chemin de sauvegarde des données
17
18
  * fileName {string} : le nom du fichier à enregistrer
18
19
  * success {function} : la fonction de rappel à appeler en cas de success
19
20
  * error {function} la fonction de rappel à appeler en cas d'erreur
20
21
  * isBinary : si c'est un fichier binaire
21
22
  * }
22
23
  */
23
- export const write = ({content,type,isBinary,timeout,delay,share,contentType,path,directory,fileName})=>{
24
- share = defaultBool(share,true);
24
+ export const write = ({content,type,share,contentType,fileName,...rest})=>{
25
25
  fileName = sanitizeFileName(fileName);
26
26
  contentType = defaultStr(contentType) || mime.contentType(fileName) || mime.contentType(".txt");
27
- return new Promise((resolve,reject)=>{
28
- if(!isNonNullString(fileName)){
29
- reject({status:false,msg:'Nom de fichier invalide'});
30
- return;
31
- }
32
- if(isDataURL(content)){
33
- const type = getTypeFromDataURL(content);
34
- content = dataURLToBlob(content);
35
- if(isNonNullString(type)){
36
- contentType = type;
37
- }
38
- }
39
- content = isBlob(content)? content : new Blob([content], { type: content?.type||contentType})
40
- try {
41
- FileSaver.saveAs(content, fileName);
42
- setTimeout(() => {
43
- resolve({path:fileName,isWeb : true});
44
- }, defaultNumber(timeout,delay,3000));
45
- } catch(e){
46
- reject(e);
27
+ if(!isNonNullString(fileName)){
28
+ return Promise.reject({status:false,msg:'Nom de fichier invalide'});
29
+ }
30
+ if(isBase64(content)){
31
+ content = new Blob([base64toBlob(content,contentType)], {});
32
+ } else if(isDataURL(content)){
33
+ const type = getTypeFromDataURL(content);
34
+ content = dataURLToBlob(content);
35
+ if(isNonNullString(type)){
36
+ contentType = type;
47
37
  }
48
- })
38
+ }
39
+ return FileSaver.saveBlob({content:isBlob(content)? content : new Blob([content], { type: content?.type||contentType}),share:defaultBool(share,true),fileName,contentType,...rest})
49
40
  }
50
41
 
51
42
  export const writeText = (args)=>{
52
43
  return write({...args,contentType:mime.contentType(".txt")});
53
44
  }
54
- function s2ab(s) {
55
- var buf = new ArrayBuffer(s.length);
56
- var view = new Uint8Array(buf);
57
- for (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
58
- return buf;
59
- }
45
+
60
46
  /***
61
47
  * @see https://ourtechroom.com/tech/mime-type-for-excel/ for excel mimesTypes
62
48
  * .xls : application/vnd.ms-excel
@@ -101,3 +87,4 @@ export const writeImage = ({content,fileName,...rest})=>{
101
87
  }
102
88
 
103
89
 
90
+ export {FileSaver};
@@ -31,4 +31,4 @@ export const readAsStringAsync = async (asset)=>{
31
31
  return readAs(asset);
32
32
  }
33
33
 
34
- export * from "./write";
34
+ export const Directories = {};
@@ -1 +1 @@
1
- module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.60.4","repository":{"type":"git","url":"git+https://github.com/borispipo/expo-ui.git"},"homepage":"https://github.com/borispipo/expo-ui#readme"},"@babel/plugin-proposal-export-namespace-from":{"version":"7.18.9","url":"https://babel.dev/docs/en/next/babel-plugin-proposal-export-namespace-from","license":"MIT"},"@emotion/native":{"version":"11.11.0","url":"https://emotion.sh","license":"MIT"},"@emotion/react":{"version":"11.11.1","url":"https://github.com/emotion-js/emotion/tree/main/packages/react","license":"MIT"},"@expo/html-elements":{"version":"0.5.1","url":"https://github.com/expo/expo/tree/main/packages/html-elements","license":"MIT"},"@expo/metro-config":{"version":"0.10.7","url":"https://github.com/expo/expo.git","license":"MIT"},"@expo/vector-icons":{"version":"13.0.0","url":"https://expo.github.io/vector-icons","license":"MIT"},"@expo/webpack-config":{"version":"19.0.0","url":"https://github.com/expo/expo-cli.git","license":"MIT"},"@faker-js/faker":{"version":"8.0.2","url":"https://github.com/faker-js/faker.git","license":"MIT"},"@fto-consult/common":{"version":"3.54.2","url":"https://github.com/borispipo/common#readme","license":"ISC"},"@pchmn/expo-material3-theme":{"version":"1.3.1","url":"https://github.com/pchmn/expo-material3-theme#readme","license":"MIT"},"@react-native-async-storage/async-storage":{"version":"1.18.2","url":"https://github.com/react-native-async-storage/async-storage#readme","license":"MIT"},"@react-native-community/datetimepicker":{"version":"7.2.0","url":"https://github.com/react-native-community/datetimepicker#readme","license":"MIT"},"@react-native-community/netinfo":{"version":"9.3.10","url":"https://github.com/react-native-netinfo/react-native-netinfo#readme","license":"MIT"},"@react-native/assets-registry":{"version":"0.72.0","url":"git@github.com:facebook/react-native.git","license":"MIT"},"@react-navigation/native":{"version":"6.1.9","url":"https://reactnavigation.org","license":"MIT"},"@react-navigation/native-stack":{"version":"6.9.15","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"@react-navigation/stack":{"version":"6.3.19","url":"https://reactnavigation.org/docs/stack-navigator/","license":"MIT"},"@shopify/flash-list":{"version":"1.4.3","url":"https://shopify.github.io/flash-list/","license":"MIT"},"apexcharts":{"version":"3.44.0","url":"https://apexcharts.com","license":"MIT"},"babel-plugin-inline-dotenv":{"version":"1.7.0","url":"https://github.com/brysgo/babel-plugin-inline-dotenv#readme","license":"ISC"},"babel-plugin-module-resolver":{"version":"5.0.0","url":"https://github.com/tleunen/babel-plugin-module-resolver.git","license":"MIT"},"expo":{"version":"49.0.16","url":"https://github.com/expo/expo/tree/main/packages/expo","license":"MIT"},"expo-camera":{"version":"13.4.4","url":"https://docs.expo.dev/versions/latest/sdk/camera/","license":"MIT"},"expo-clipboard":{"version":"4.3.1","url":"https://docs.expo.dev/versions/latest/sdk/clipboard","license":"MIT"},"expo-font":{"version":"11.4.0","url":"https://docs.expo.dev/versions/latest/sdk/font/","license":"MIT"},"expo-image-picker":{"version":"14.3.2","url":"https://docs.expo.dev/versions/latest/sdk/imagepicker/","license":"MIT"},"expo-linking":{"version":"5.0.2","url":"https://docs.expo.dev/versions/latest/sdk/linking","license":"MIT"},"expo-sqlite":{"version":"11.3.3","url":"https://docs.expo.dev/versions/latest/sdk/sqlite/","license":"MIT"},"expo-status-bar":{"version":"1.6.0","url":"https://docs.expo.dev/versions/latest/sdk/status-bar/","license":"MIT"},"expo-system-ui":{"version":"2.4.0","url":"https://docs.expo.dev/versions/latest/sdk/system-ui","license":"MIT"},"expo-web-browser":{"version":"12.3.2","url":"https://docs.expo.dev/versions/latest/sdk/webbrowser/","license":"MIT"},"file-saver":{"version":"2.0.5","url":"https://github.com/eligrey/FileSaver.js#readme","license":"MIT"},"fs-extra":{"version":"11.1.1","url":"https://github.com/jprichardson/node-fs-extra","license":"MIT"},"google-libphonenumber":{"version":"3.2.33","url":"https://ruimarinho.github.io/google-libphonenumber/","license":"(MIT AND Apache-2.0)"},"htmlparser2-without-node-native":{"version":"3.9.2","url":"git://github.com/fb55/htmlparser2.git","license":"MIT"},"is-plain-obj":{"version":"4.1.0","license":"MIT"},"js-base64":{"version":"3.7.5","license":"BSD-3-Clause"},"pdfmake":{"version":"0.2.7","url":"http://pdfmake.org","license":"MIT"},"process":{"version":"0.11.10","url":"git://github.com/shtylman/node-process.git","license":"MIT"},"prop-types":{"version":"15.8.1","url":"https://facebook.github.io/react/","license":"MIT"},"react":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-content-loader":{"version":"6.2.1","url":"https://github.com/danilowoz/react-content-loader","license":"MIT"},"react-dom":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-native":{"version":"0.72.6","license":"MIT"},"react-native-big-list":{"version":"1.6.1","url":"https://marcocesarato.github.io/react-native-big-list-docs/","license":"GPL-3.0-or-later"},"react-native-blob-util":{"version":"0.18.6","url":"https://github.com/RonRadtke/react-native-blob-util","license":"MIT"},"react-native-gesture-handler":{"version":"2.12.1","url":"https://github.com/software-mansion/react-native-gesture-handler#readme","license":"MIT"},"react-native-iphone-x-helper":{"version":"1.3.1","url":"https://github.com/ptelad/react-native-iphone-x-helper#readme","license":"MIT"},"react-native-mime-types":{"version":"2.4.0","license":"MIT"},"react-native-paper":{"version":"5.11.0","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.20.1","url":"https://github.com/web-ridge/react-native-paper-dates#readme","license":"MIT"},"react-native-reanimated":{"version":"3.3.0","url":"https://github.com/software-mansion/react-native-reanimated#readme","license":"MIT"},"react-native-safe-area-context":{"version":"4.6.3","url":"https://github.com/th3rdwave/react-native-safe-area-context#readme","license":"MIT"},"react-native-screens":{"version":"3.22.1","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"react-native-svg":{"version":"13.9.0","url":"https://github.com/react-native-community/react-native-svg","license":"MIT"},"react-native-web":{"version":"0.19.9","url":"git://github.com/necolas/react-native-web.git","license":"MIT"},"react-native-webview":{"version":"13.2.2","url":"https://github.com/react-native-webview/react-native-webview#readme","license":"MIT"},"react-virtuoso":{"version":"4.6.2","url":"https://virtuoso.dev/","license":"MIT"},"sharp-cli":{"version":"2.1.0","url":"https://github.com/vseventer/sharp-cli","license":"MIT"},"tippy.js":{"version":"6.3.7","url":"https://atomiks.github.io/tippyjs/","license":"MIT"},"uninstall":{"version":"0.0.0","license":"MIT"},"websql":{"version":"2.0.3","url":"git://github.com/nolanlawson/node-websql.git","license":"Apache-2.0"},"xlsx":{"version":"0.18.5","url":"https://sheetjs.com/","license":"Apache-2.0"}};
1
+ module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.61.1","repository":{"type":"git","url":"git+https://github.com/borispipo/expo-ui.git"},"homepage":"https://github.com/borispipo/expo-ui#readme"},"@babel/plugin-proposal-export-namespace-from":{"version":"7.18.9","url":"https://babel.dev/docs/en/next/babel-plugin-proposal-export-namespace-from","license":"MIT"},"@emotion/native":{"version":"11.11.0","url":"https://emotion.sh","license":"MIT"},"@emotion/react":{"version":"11.11.1","url":"https://github.com/emotion-js/emotion/tree/main/packages/react","license":"MIT"},"@expo/html-elements":{"version":"0.5.1","url":"https://github.com/expo/expo/tree/main/packages/html-elements","license":"MIT"},"@expo/metro-config":{"version":"0.10.7","url":"https://github.com/expo/expo.git","license":"MIT"},"@expo/vector-icons":{"version":"13.0.0","url":"https://expo.github.io/vector-icons","license":"MIT"},"@expo/webpack-config":{"version":"19.0.0","url":"https://github.com/expo/expo-cli.git","license":"MIT"},"@faker-js/faker":{"version":"8.0.2","url":"https://github.com/faker-js/faker.git","license":"MIT"},"@fto-consult/common":{"version":"3.54.2","url":"https://github.com/borispipo/common#readme","license":"ISC"},"@pchmn/expo-material3-theme":{"version":"1.3.1","url":"https://github.com/pchmn/expo-material3-theme#readme","license":"MIT"},"@react-native-async-storage/async-storage":{"version":"1.18.2","url":"https://github.com/react-native-async-storage/async-storage#readme","license":"MIT"},"@react-native-community/datetimepicker":{"version":"7.2.0","url":"https://github.com/react-native-community/datetimepicker#readme","license":"MIT"},"@react-native-community/netinfo":{"version":"9.3.10","url":"https://github.com/react-native-netinfo/react-native-netinfo#readme","license":"MIT"},"@react-native/assets-registry":{"version":"0.72.0","url":"git@github.com:facebook/react-native.git","license":"MIT"},"@react-navigation/native":{"version":"6.1.9","url":"https://reactnavigation.org","license":"MIT"},"@react-navigation/native-stack":{"version":"6.9.16","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"@react-navigation/stack":{"version":"6.3.20","url":"https://reactnavigation.org/docs/stack-navigator/","license":"MIT"},"@shopify/flash-list":{"version":"1.4.3","url":"https://shopify.github.io/flash-list/","license":"MIT"},"apexcharts":{"version":"3.44.0","url":"https://apexcharts.com","license":"MIT"},"babel-plugin-inline-dotenv":{"version":"1.7.0","url":"https://github.com/brysgo/babel-plugin-inline-dotenv#readme","license":"ISC"},"babel-plugin-module-resolver":{"version":"5.0.0","url":"https://github.com/tleunen/babel-plugin-module-resolver.git","license":"MIT"},"expo":{"version":"49.0.16","url":"https://github.com/expo/expo/tree/main/packages/expo","license":"MIT"},"expo-camera":{"version":"13.4.4","url":"https://docs.expo.dev/versions/latest/sdk/camera/","license":"MIT"},"expo-clipboard":{"version":"4.3.1","url":"https://docs.expo.dev/versions/latest/sdk/clipboard","license":"MIT"},"expo-font":{"version":"11.4.0","url":"https://docs.expo.dev/versions/latest/sdk/font/","license":"MIT"},"expo-image-picker":{"version":"14.3.2","url":"https://docs.expo.dev/versions/latest/sdk/imagepicker/","license":"MIT"},"expo-linking":{"version":"5.0.2","url":"https://docs.expo.dev/versions/latest/sdk/linking","license":"MIT"},"expo-sqlite":{"version":"11.3.3","url":"https://docs.expo.dev/versions/latest/sdk/sqlite/","license":"MIT"},"expo-status-bar":{"version":"1.6.0","url":"https://docs.expo.dev/versions/latest/sdk/status-bar/","license":"MIT"},"expo-system-ui":{"version":"2.4.0","url":"https://docs.expo.dev/versions/latest/sdk/system-ui","license":"MIT"},"expo-web-browser":{"version":"12.3.2","url":"https://docs.expo.dev/versions/latest/sdk/webbrowser/","license":"MIT"},"file-saver":{"version":"2.0.5","url":"https://github.com/eligrey/FileSaver.js#readme","license":"MIT"},"fs-extra":{"version":"11.1.1","url":"https://github.com/jprichardson/node-fs-extra","license":"MIT"},"google-libphonenumber":{"version":"3.2.33","url":"https://ruimarinho.github.io/google-libphonenumber/","license":"(MIT AND Apache-2.0)"},"htmlparser2-without-node-native":{"version":"3.9.2","url":"git://github.com/fb55/htmlparser2.git","license":"MIT"},"is-plain-obj":{"version":"4.1.0","license":"MIT"},"js-base64":{"version":"3.7.5","license":"BSD-3-Clause"},"pdfmake":{"version":"0.2.7","url":"http://pdfmake.org","license":"MIT"},"process":{"version":"0.11.10","url":"git://github.com/shtylman/node-process.git","license":"MIT"},"prop-types":{"version":"15.8.1","url":"https://facebook.github.io/react/","license":"MIT"},"react":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-content-loader":{"version":"6.2.1","url":"https://github.com/danilowoz/react-content-loader","license":"MIT"},"react-dom":{"version":"18.2.0","url":"https://reactjs.org/","license":"MIT"},"react-native":{"version":"0.72.6","license":"MIT"},"react-native-big-list":{"version":"1.6.1","url":"https://marcocesarato.github.io/react-native-big-list-docs/","license":"GPL-3.0-or-later"},"react-native-blob-util":{"version":"0.18.6","url":"https://github.com/RonRadtke/react-native-blob-util","license":"MIT"},"react-native-gesture-handler":{"version":"2.12.1","url":"https://github.com/software-mansion/react-native-gesture-handler#readme","license":"MIT"},"react-native-iphone-x-helper":{"version":"1.3.1","url":"https://github.com/ptelad/react-native-iphone-x-helper#readme","license":"MIT"},"react-native-mime-types":{"version":"2.4.0","license":"MIT"},"react-native-paper":{"version":"5.11.0","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.20.1","url":"https://github.com/web-ridge/react-native-paper-dates#readme","license":"MIT"},"react-native-reanimated":{"version":"3.3.0","url":"https://github.com/software-mansion/react-native-reanimated#readme","license":"MIT"},"react-native-safe-area-context":{"version":"4.6.3","url":"https://github.com/th3rdwave/react-native-safe-area-context#readme","license":"MIT"},"react-native-screens":{"version":"3.22.1","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"react-native-svg":{"version":"13.9.0","url":"https://github.com/react-native-community/react-native-svg","license":"MIT"},"react-native-web":{"version":"0.19.9","url":"git://github.com/necolas/react-native-web.git","license":"MIT"},"react-native-webview":{"version":"13.2.2","url":"https://github.com/react-native-webview/react-native-webview#readme","license":"MIT"},"react-virtuoso":{"version":"4.6.2","url":"https://virtuoso.dev/","license":"MIT"},"sharp-cli":{"version":"2.1.0","url":"https://github.com/vseventer/sharp-cli","license":"MIT"},"tippy.js":{"version":"6.3.7","url":"https://atomiks.github.io/tippyjs/","license":"MIT"},"uninstall":{"version":"0.0.0","license":"MIT"},"websql":{"version":"2.0.3","url":"git://github.com/nolanlawson/node-websql.git","license":"Apache-2.0"},"xlsx":{"version":"0.18.5","url":"https://sheetjs.com/","license":"Apache-2.0"}};