@fto-consult/expo-ui 7.2.0 → 7.2.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "7.2.0",
3
+ "version": "7.2.2",
4
4
  "description": "Bibliothèque de composants UI Expo,react-native",
5
5
  "main": "main",
6
6
  "scripts": {
@@ -71,7 +71,7 @@
71
71
  "@expo/html-elements": "^0.5.1",
72
72
  "@expo/vector-icons": "^13.0.0",
73
73
  "@faker-js/faker": "^8.0.2",
74
- "@fto-consult/common": "^3.72.12",
74
+ "@fto-consult/common": "^3.72.18",
75
75
  "@pchmn/expo-material3-theme": "^1.3.1",
76
76
  "@react-native-async-storage/async-storage": "1.18.2",
77
77
  "@react-native-community/datetimepicker": "7.2.0",
@@ -111,8 +111,8 @@
111
111
  "react-native-get-random-values": "~1.9.0",
112
112
  "react-native-iphone-x-helper": "^1.3.1",
113
113
  "react-native-mime-types": "^2.4.0",
114
- "react-native-paper": "^5.11.3",
115
- "react-native-paper-dates": "^0.20.4",
114
+ "react-native-paper": "^5.11.4",
115
+ "react-native-paper-dates": "^0.20.5",
116
116
  "react-native-reanimated": "~3.3.0",
117
117
  "react-native-safe-area-context": "4.6.3",
118
118
  "react-native-screens": "~3.22.0",
@@ -137,7 +137,7 @@ const DatagridAccordionRow = React.forwardRef((props,ref)=>{
137
137
  }}
138
138
  >
139
139
  <HStack
140
- style={[styles.renderedContent,viewWrapperStyle,!hasAvatar && styles.contentContainerNotAvatar]}
140
+ style={[styles.renderedContent,!hasAvatar && styles.renderedContentHasNotAvatar,viewWrapperStyle,!hasAvatar && styles.contentContainerNotAvatar]}
141
141
  testID={testID+'_ContentContainer'}
142
142
  >
143
143
  {hasAvatar?<View testID={testID+"_AvatarContentContainer"} style={[styles.avatarContent]}>
@@ -206,6 +206,9 @@ const styles = StyleSheet.create({
206
206
  paddingRight : 10,
207
207
  width : "100%",
208
208
  },
209
+ renderedContentHasNotAvatar : {
210
+ justifyContent : "space-between",
211
+ },
209
212
  right : {
210
213
  marginHorizontal : 0,
211
214
  paddingLeft:0,
@@ -247,6 +250,9 @@ const styles = StyleSheet.create({
247
250
  contentContainerNotAvatar : {
248
251
  paddingLeft : 2,
249
252
  },
253
+ content : {
254
+ maxWidth : "80%",
255
+ },
250
256
  });
251
257
 
252
258
  DatagridAccordionRow.displayName = 'DatagridAccordionRow';
@@ -826,7 +826,7 @@ export default class CommonDatagridComponent extends AppComponent {
826
826
  * ou pas.
827
827
  */
828
828
  renderSelectedRowsActions(sActions){
829
- let {printOptions,makePhoneCallProps,printable,print,archive,canMakePhoneCall,archivable} = this.props;
829
+ let {makePhoneCallProps,canMakePhoneCall,archivable} = this.props;
830
830
  const size = this.getSelectedRowsCount();
831
831
  let r = [];
832
832
  let endActs = [];
@@ -841,20 +841,6 @@ export default class CommonDatagridComponent extends AppComponent {
841
841
  if(isFunction(selectedR)) {
842
842
  selectedR = selectedR.call(this,sArgs)
843
843
  }
844
- if(isFunction(print)){
845
- if(isFunction(printable)){
846
- printable = printable({context:this,tableName:defaultStr(this.props.tableName,this.props.table),props:this.props});
847
- }
848
- if(printable !== false){
849
- r.push({
850
- icon : defaultVal(this.props.printButtonIcon,'printer'),
851
- text : defaultVal(this.props.printButtonText,this.props.printButtonLabel,'Imprimer'),
852
- onPress : ()=>{
853
- print({title:defaultStr(this.props.title),...defaultObj(printOptions),...sArgs});
854
- },
855
- })
856
- }
857
- }
858
844
  Object.map(sActions,(o,i)=>{
859
845
  if(isObj(o)){
860
846
  let {onPress, ...rest} = o;
@@ -3289,7 +3275,7 @@ export default class CommonDatagridComponent extends AppComponent {
3289
3275
  cb = undefined;
3290
3276
  }
3291
3277
  fetchOptions = this.getFetchOptions({fetchOptions,parseMangoQueries:false});
3292
- if(typeof this.props.fetchOptionsMutator =='function' && this.props.fetchOptionsMutator(fetchOptions) === false){
3278
+ if(typeof this.props.fetchOptionsMutator =='function' && this.props.fetchOptionsMutator({fetchOptions,context:this}) === false){
3293
3279
  this.isFetchingData = false;
3294
3280
  return resolve(sData);
3295
3281
  }
@@ -4010,12 +3996,6 @@ CommonDatagridComponent.propTypes = {
4010
3996
  ]),
4011
3997
  /*** fonction permettant de retourner l'unique clé des éléments du tableau */
4012
3998
  getRowKey : PropTypes.func,
4013
- ///la fonction utilisée pour l'impression du datagrid
4014
- print : PropTypes.func,
4015
- printButtonIcon : PropTypes.oneOfType([PropTypes.string,PropTypes.element]),
4016
- printButtonLabel : PropTypes.oneOfType([PropTypes.string,PropTypes.element]),
4017
- printButtonText : PropTypes.oneOfType([PropTypes.string,PropTypes.element]),
4018
- printOptions: PropTypes.object,
4019
3999
  /*** si le datagrid est imprimable */
4020
4000
  printable : PropTypes.oneOfType([
4021
4001
  PropTypes.func,
@@ -18,6 +18,7 @@ import { ActivityIndicator } from "react-native-paper";
18
18
  import DialogProvider from "$ecomponents/Form/FormData/DialogProvider";
19
19
  import FilterBetweenComponent from "./BetweenComponent";
20
20
 
21
+ export const dateTypes = ["date","time","datetime","date2time"]
21
22
 
22
23
  const manualRunKey = "manual-run";
23
24
 
@@ -137,7 +138,9 @@ export default class Filter extends AppComponent {
137
138
  type = defaultStr(type,this.type,this.props.type).toLowerCase();
138
139
  if(type.contains('select')){
139
140
  return "$in";
140
- } if(type !== 'date2time' && type !=="date" && type !== 'time' && type !== 'number' && type !== 'decimal'){
141
+ }
142
+ if(dateTypes.includes(type)) return "$eq";
143
+ if(type !== 'number' && type !== 'decimal'){
141
144
  return '$regexcontains';
142
145
  }
143
146
  return '$eq';
@@ -161,16 +164,16 @@ export default class Filter extends AppComponent {
161
164
  action = '$eq';
162
165
  } else if(type.contains('select')){
163
166
  actions = _inActions;
164
- } else if(type == 'date' || type =='datetime') {
167
+ } else if(dateTypes.includes(type)) {
165
168
  actions = {...periodActions, ...actions}
166
169
  delete actions.$between;
167
- } else if(type !== 'date2time' && type !== 'time' && type !== 'number' && type !== 'decimal'){
170
+ } else if(type !== 'number' && type !== 'decimal'){
168
171
  actions = {...betweenActions,...regexActions};
169
172
  isTextFilter = true;
170
173
  }
171
174
  if(!action){
172
175
  action = this.getDefaultAction(type);
173
- }
176
+ }
174
177
  let defaultValue = defaultVal(this.props.defaultValue);
175
178
  operator = defaultVal(operator,"$and");
176
179
  if(actions == _inActions || type.contains("select")){
@@ -333,8 +333,9 @@ export default class Field extends AppComponent {
333
333
  }
334
334
  return true;
335
335
  }
336
- onNoValidate({msg,value,context,validRule,validParams,event,...rest}){
336
+ onNoValidate({msg,message,value,context,validRule,validParams,event,...rest}){
337
337
  this.validatingValue = value;
338
+ msg = msg || message;
338
339
  this.trigger.call(this,"noValidate",{...defaultObj(rest),props:this.props,context:this,msg,value,event,validRule,validParams},(result)=>{
339
340
  this.setState({
340
341
  errorText : msg,
@@ -103,7 +103,7 @@ export default class FormDataActionComponent extends FormData {
103
103
  }
104
104
  getAppBarActionsProps(props){
105
105
  props = defaultObj(props,this.props);
106
- let {actions,save2NewAction,save2printAction,save2closeAction,saveAction,newAction} = props;
106
+ let {actions,save2NewAction,save2printAction,isPrintingForm,save2closeAction,saveAction,newAction} = props;
107
107
  const sArg = {context:this};
108
108
  save2NewAction = typeof save2NewAction =='function' ? save2NewAction (sArg) : save2NewAction;
109
109
  save2closeAction = typeof save2closeAction ==='function'? save2closeAction(sArg) : save2closeAction;
@@ -113,7 +113,7 @@ export default class FormDataActionComponent extends FormData {
113
113
  const appBarProps = this.getAppBarProps();
114
114
  const data = this.getDataProp();
115
115
  const isEditing = this.isDocEditing(data);
116
- let textSave = isEditing ? "Modifier": 'Enregistrer';
116
+ let textSave = isPrintingForm ? "Imprimer" : isEditing ? "Modifier": 'Enregistrer';
117
117
  const newElementLabel = defaultStr(props.newElementLabel,this.props.newElementLabel,"Nouvel Element");
118
118
  if(isEditing){
119
119
  const t = this.getPrimaryKeysFieldsValueText(data);
@@ -142,7 +142,7 @@ export default class FormDataActionComponent extends FormData {
142
142
  save : saveAction !== false ? {
143
143
  isAction : true,
144
144
  text : textSave,
145
- icon : 'check',
145
+ icon : isPrintingForm ? 'printer':'check',
146
146
  title : textSave,
147
147
  onPress : (a)=>{
148
148
  context.clickedAction = 'save';
@@ -31,13 +31,13 @@ export const useSWR = (path,options)=>{
31
31
  swrOptions : {
32
32
  provider: () => new Map(),
33
33
  ...swrConfig,
34
- isOnline() {
34
+ isOnline(...rest) {
35
35
  if(isLocalHost) return true;
36
- return swrConfig.isOnline();
36
+ return swrConfig.isOnline(...rest);
37
37
  },
38
38
  initReconnect(cb) {
39
- if(isLocalHost) return cb();
40
- return swrConfig.initReconnect(cb);
39
+ if(isLocalHost) return cb();
40
+ return swrConfig.initReconnect(cb);
41
41
  },
42
42
  ...extendObj({},options,options?.swrOptions)
43
43
  }
@@ -350,7 +350,7 @@ export default class TableDataScreenComponent extends FormDataScreen{
350
350
  saveButton : isUpdated?'Modifier':'Enregistrer',
351
351
  currentData:data,
352
352
  hasManyData : this.hasManyData(),
353
- //onPressToPrint : this.print.bind(this),
353
+ onPressToPrint : this.doSave.bind(this),//this.print.bind(this),
354
354
  datas,
355
355
  currentDataIndex:currentIndex,
356
356
  onPressToPrevious:this.goToPreviousData.bind(this),
@@ -581,9 +581,12 @@ export default class TableDataScreenComponent extends FormDataScreen{
581
581
  return super.isDocEditing(data);
582
582
  }
583
583
  print(data){
584
- if(!this.isPrintable() && typeof this.props.print !=='function') return;
584
+ if(!this.isPrintable()) return;
585
585
  data = this.isDocEditing(data)? data : isObj(data) && this.isDocEditing(data.data)? data.data : {};
586
- return this.props.print(data,this);
586
+ if(typeof this.props.print ==='function'){
587
+ return this.props.print.call(this,data);
588
+ }
589
+ return data;
587
590
  }
588
591
  isClonable(){
589
592
  return !!(this.props.clonable !==false);
@@ -699,6 +702,7 @@ export default class TableDataScreenComponent extends FormDataScreen{
699
702
  }
700
703
  }
701
704
  doSave ({goBack,data,action}){
705
+ action = defaultStr(action,this.clickedEl);
702
706
  const cb = ()=>{
703
707
  if(action === 'new'){
704
708
  this.reset();
@@ -717,7 +721,7 @@ export default class TableDataScreenComponent extends FormDataScreen{
717
721
  return false;
718
722
  }
719
723
  if(action === 'clone'){
720
- this.clone({...data});
724
+ this.clone(Object.clone(data));
721
725
  return false;
722
726
  }
723
727
  const isUpdated = this.isDocEditing(data);
@@ -5,6 +5,7 @@ import {Colors} from "$theme";
5
5
  import { COPY_ICON,PRINT_ICON} from "$ecomponents/Icon";
6
6
  import {getTableDataRouteName} from "$enavigation/utils";
7
7
 
8
+ const isFunction = x => typeof x =='function';
8
9
  //@seee : https://github.com/typeorm/typeorm/blob/master/src/entity-schema/EntitySchemaColumnOptions.ts
9
10
  ///'_rev','_id','code',
10
11
  export const generatedColumnsProperties = ["createDate","updateDate","createdBy","updateBy",'updatedDate','updatedHour','createdHour','createdDate']
@@ -275,12 +276,16 @@ export function renderActions({context,isUpdate,newElementLabel,readablePerms:c
275
276
 
276
277
  export const createCallback = ({context,action,callback,force}) =>{
277
278
  if(force === true && isFunction(callback)) return callback;
278
- return (a1,a2,a3,a4) =>{
279
+ return (a,...args) =>{
279
280
  context = context || {};
280
281
  if(action && typeof action == "string"){
281
282
  context.clickedEl = action;
282
283
  }
283
- if(isFunction(callback)) callback.call(context,a1,a2,a3,a4);
284
+ if(isObj(a)){
285
+ a.action = defaultStr(a.action,action);
286
+ a.clickedEl = a.clickedEl || a.action;
287
+ }
288
+ if(isFunction(callback)) callback.call(context,a,...args);
284
289
  return true;
285
290
  }
286
291
  }
package/src/pdf/index.js CHANGED
@@ -9,7 +9,6 @@ import session from "$session";
9
9
 
10
10
  const {createPdf} = pdfMake;
11
11
  pdfMake.createPdf = (docDefinition,...rest)=>{
12
- console.log("creating pdf ",docDefinition);
13
12
  try {
14
13
  //@see : https://pdfmake.github.io/docs/0.1/getting-started/client-side/methods/
15
14
  const pdf = createPdf(docDefinition,...rest);
@@ -128,6 +127,7 @@ export const getPrintSettings = ({multiple,sessionName,formDataProps,...rest})=>
128
127
  return DialogProvider.open({
129
128
  title : "Options d'impression",
130
129
  ...formDataProps,
130
+ isPrintingForm : true,
131
131
  data : config,
132
132
  fields,
133
133
  onSuccess : (opts)=>{
@@ -1 +1 @@
1
- module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"7.1.5","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.71.0","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.17","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.2","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.21","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-sharing":{"version":"11.5.0","url":"https://docs.expo.dev/versions/latest/sdk/sharing/","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.2.0","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.8","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-get-random-values":{"version":"1.9.0","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.3","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.20.4","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"},"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":"7.2.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.72.16","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.17","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.2","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.21","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-sharing":{"version":"11.5.0","url":"https://docs.expo.dev/versions/latest/sdk/sharing/","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.2.0","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.8","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-get-random-values":{"version":"1.9.0","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.4","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.20.5","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"},"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"}};