@fto-consult/expo-ui 6.78.2 → 6.79.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fto-consult/expo-ui",
3
- "version": "6.78.2",
3
+ "version": "6.79.1",
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.63.2",
74
+ "@fto-consult/common": "^3.64.3",
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",
@@ -42,7 +42,7 @@ import { StyleSheet } from "react-native";
42
42
  import Logo from "$ecomponents/Logo";
43
43
  import AppEntryRootView from "./RootView";
44
44
  import { SafeAreaProvider } from 'react-native-safe-area-context';
45
- import {Keyboard } from 'react-native';
45
+
46
46
 
47
47
 
48
48
  let MAX_BACK_COUNT = 1;
@@ -73,19 +73,7 @@ function App({init:initApp,initialRouteName:appInitialRouteName,children}) {
73
73
  hasCallInitApp : false,
74
74
  });
75
75
  React.useEffect(() => {
76
- ///la fonction de rappel lorsque le composant est monté
77
- const triggerKeyboardToggle = (status)=>{
78
- APP.trigger(APP.EVENTS.KEYBOARD_DID_TOGGLE,{shown:status,status,visible:status,hide : !status});
79
- }
80
- const keyBoardDidShow = ()=>{
81
- APP.trigger(APP.EVENTS.KEYBOARD_DID_SHOW);
82
- triggerKeyboardToggle(true);
83
- },keyBoardDidHide = ()=>{
84
- APP.trigger(APP.EVENTS.KEYBOARD_DID_HIDE);
85
- triggerKeyboardToggle(false);
86
- }
87
- const keyBoardDidShowListener = Keyboard.addListener("keyboardDidShow",keyBoardDidShow);
88
- const keyBoardDidHideListener = Keyboard.addListener("keyboardDidHide",keyBoardDidHide);
76
+
89
77
  const loadResources = ()=>{
90
78
  return new Promise((resolve)=>{
91
79
  loadFonts(FontsIconsFilter).catch((e)=>{
@@ -226,8 +214,6 @@ function App({init:initApp,initialRouteName:appInitialRouteName,children}) {
226
214
  });
227
215
  APP.on(APP.EVENTS.BACK_BUTTON,backAction);
228
216
  return () => {
229
- keyBoardDidShowListener && keyBoardDidShowListener.remove && keyBoardDidShowListener.remove();
230
- keyBoardDidHideListener && keyBoardDidHideListener.remove && keyBoardDidHideListener.remove();
231
217
  APP.off(APP.EVENTS.BACK_BUTTON,backAction);
232
218
  if(subscription && subscription.remove){
233
219
  subscription.remove();
@@ -274,6 +274,7 @@ const styles = StyleSheet.create({
274
274
  flexWrap : 'nowrap',
275
275
  justifyContent : 'center',
276
276
  width : '100%',
277
+ minHeight : 60,
277
278
  },
278
279
  avatarContent : {
279
280
  marginRight : 10,
@@ -408,7 +408,7 @@ const DatagridFactory = (Factory)=>{
408
408
  const hasFootersFields = this.hasFootersFields();
409
409
  const datagridHeader = <View testID={testID+"_HeaderContainer"} pointerEvents={pointerEvents} style={[styles.datagridHeader]}>
410
410
  <ScrollView testID={testID+"_HeaderScrollView"} horizontal contentContainerStyle={StyleSheet.flatten([styles.contentContainerStyle,styles.minW100])}>
411
- <View testID={testID+"_HeaderContentContainer"} style={[styles.table,styles.pullRight]}>
411
+ <View testID={testID+"_HeaderContentContainer"} style={[styles.table,theme.styles.ph1,styles.pullRight]}>
412
412
  {/*this.renderDataSourceSelector()*/}
413
413
  <View testID={testID+"_HeaderQueryLimit"} style={[styles.paginationItem]}>
414
414
  {this.renderQueryLimit(this.getStateDataSize().formatNumber())}
@@ -523,7 +523,7 @@ const DatagridFactory = (Factory)=>{
523
523
  {datagridHeader}
524
524
  {this.renderProgressBar()}
525
525
  {!canRenderChart && showFooters ? (
526
- <View testID={testID+"_FooterContainer"} pointerEvents={pointerEvents} style={[theme.styles.justifyContentCenter,theme.styles.pv1]}>
526
+ <View testID={testID+"Accordion_FooterContainer"} pointerEvents={pointerEvents} style={[theme.styles.justifyContentCenter]}>
527
527
  <View testID={testID+"_FooterContentContainer"} style={[styles.footersContainer]}>
528
528
  <ScrollView testID={testID+"_FooterScrollView"} horizontal contentContainerStyle={[styles.contentContainerStyle]}>
529
529
  <View testID={testID+"_FooterContent"} style={[styles.table,theme.styles.p1]}>
@@ -2430,6 +2430,7 @@ export default class CommonDatagridComponent extends AppComponent {
2430
2430
  />
2431
2431
  }
2432
2432
  canShowFooters(){
2433
+ if(!this.hasFootersFields()) return false;
2433
2434
  return this.state.showFooters || this.hasSectionListData() && this.state.displayOnlySectionListHeaders;
2434
2435
  }
2435
2436
  canShowFilters(){
@@ -6,20 +6,6 @@ import {isIos,isAndroid,isWeb} from "$cplatform";
6
6
 
7
7
  const AppBarDialogComponent = React.forwardRef((props,ref)=>{
8
8
  const {actions,responsive,isFullScreen,fullScreen,actionsProps,...rest} = props;
9
- const forceRender = React.useForceRender();
10
- React.useEffect(()=>{
11
- const onResize = ()=>{
12
- return;
13
- forceRender();
14
- }
15
- if(responsive){
16
- APP.on(APP.EVENTS.RESIZE_PAGE,onResize);
17
- }
18
- return ()=>{
19
- APP.off(APP.EVENTS.RESIZE_PAGE,onResize);
20
- }
21
- },[]);
22
-
23
9
  if(responsive && !isFullScreen() || (typeof fullScreen =='boolean' && !fullScreen)){
24
10
  return null;
25
11
  }
@@ -163,7 +163,7 @@ const DialogComponent = React.forwardRef((props,ref)=>{
163
163
  const maxHeight = getMaxHeight(),maxWidth = getMaxWidth();
164
164
  const backgroundColor = theme.surfaceBackgroundColor;
165
165
  borderRadius = fullScreen || !(isMobileNative() || isMobileMedia()) || isPreloader ? 0 : typeof borderRadius =='number'? borderRadius : 5*theme.roundness;
166
- const fullScreenStyle = fullScreen ? {width:dimensions.width,height:dimensions.height,marginHorizontal:0,paddingHorizontal:0}: {
166
+ const fullScreenStyle = fullScreen ? {width:dimensions.width,minHeight:MIN_HEIGHT,/*height:dimensions.height*/height:"100%",marginHorizontal:0,paddingHorizontal:0}: {
167
167
  maxWidth,
168
168
  maxHeight,
169
169
  borderRadius,
@@ -7,20 +7,10 @@ import {renderActions} from "./utils";
7
7
  import View from "$ecomponents/View";
8
8
  import { StyleSheet } from "react-native";
9
9
  import DialogActions from "./RNPDialogActions";
10
+ import {usePageDimensions} from "$cdimensions/utils";
10
11
 
11
12
  const DialogActionsComponent = React.forwardRef(({actions,isAlert,onAlertRequestClose,testID,containerProps,actionMutator,actionProps,cancelButton,responsive,isFullScreen,fullScreen,actionsProps,menuProps,...rest},ref)=>{
12
- const forceRender = React.useForceRender();
13
- React.useEffect(()=>{
14
- const onResize = ()=>{
15
- forceRender();
16
- }
17
- if(responsive){
18
- APP.on(APP.EVENTS.RESIZE_PAGE,onResize);
19
- }
20
- return ()=>{
21
- APP.off(APP.EVENTS.RESIZE_PAGE,onResize);
22
- }
23
- },[])
13
+ usePageDimensions();
24
14
  if(responsive && isFullScreen() || fullScreen){
25
15
  return null;
26
16
  }
@@ -1,11 +1,7 @@
1
1
  import KeyboardAvoidingView from "../KeyboardAvoidingView";
2
2
  import React from "$react";
3
- import { useWindowDimensions } from "react-native";
4
3
 
5
4
  const DialogContentComponent = ({isPreloader,title,children,isFullScreen,...props})=>{
6
5
  return children;
7
- const isFull = isFullScreen();
8
- return React.useMemo(()=>children,[isPreloader,title,children]);
9
- return isPreloader || !isFull ? content : <KeyboardAvoidingView testID="RN_DialogKeybaordAvoidingView">{content}</KeyboardAvoidingView>
10
6
  }
11
7
  export default DialogContentComponent;
@@ -2,20 +2,10 @@ import React from "$react";
2
2
  import {defaultObj} from "$cutils";;
3
3
  import View from "$ecomponents/View";
4
4
  import { StyleSheet } from "react-native";
5
+ import {usePageDimensions} from "$cdimensions/utils";
5
6
 
6
7
  const DialogFullPageFooter = React.forwardRef(({responsive,containerProps,children,isFullScreen,fullScreen,...rest},ref)=>{
7
- const forceRender = React.useForceRender();
8
- React.useEffect(()=>{
9
- const onResize = ()=>{
10
- forceRender();
11
- }
12
- if(responsive){
13
- APP.on(APP.EVENTS.RESIZE_PAGE,onResize);
14
- }
15
- return ()=>{
16
- APP.off(APP.EVENTS.RESIZE_PAGE,onResize);
17
- }
18
- },[])
8
+ usePageDimensions();
19
9
  if(responsive && !isFullScreen() || (typeof fullScreen =='boolean' && !fullScreen) || !React.isValidElement(children)){
20
10
  return null;
21
11
  }
@@ -5,20 +5,10 @@ import {isNonNullString,defaultObj} from "$cutils";
5
5
  import View from "$ecomponents/View";
6
6
  import theme from "$theme";
7
7
  import { StyleSheet } from "react-native";
8
+ import {usePageDimensions} from "$cdimensions/utils";
8
9
 
9
10
  const DialogTitleComponent = React.forwardRef(({responsive,containerProps,title,titleProps,isFullScreen,fullScreen,...rest},ref)=>{
10
- const forceRender = React.useForceRender();
11
- React.useEffect(()=>{
12
- const onResize = ()=>{
13
- forceRender();
14
- }
15
- if(responsive){
16
- APP.on(APP.EVENTS.RESIZE_PAGE,onResize);
17
- }
18
- return ()=>{
19
- APP.off(APP.EVENTS.RESIZE_PAGE,onResize);
20
- }
21
- },[])
11
+ usePageDimensions();
22
12
  if(responsive && isFullScreen() || fullScreen || !React.isValidElement(title,true)){
23
13
  return null;
24
14
  }
@@ -646,6 +646,9 @@ class DropdownComponent extends AppComponent {
646
646
  selectedText : this.getSelectedText(newSelected,selectedValuesKeys)
647
647
  });
648
648
  }
649
+ isVisible(){
650
+ return this.state.visible;
651
+ }
649
652
  getBackgroundColor(){
650
653
  return theme.surfaceBackground;
651
654
  }
@@ -1,6 +1,6 @@
1
1
  import { FAB} from 'react-native-paper';
2
2
  import React from "$react";
3
- import {StyleSheet,useWindowDimensions,Modal} from "react-native";
3
+ import {StyleSheet} from "react-native";
4
4
  import {defaultStr,isNonNullString,isObj,defaultObj} from "$cutils";
5
5
  import PropTypes from "prop-types";
6
6
  import {MENU_ICON} from "$ecomponents/Icon";
@@ -1,5 +1,5 @@
1
1
  import React from '$react';
2
- import {Pressable,StyleSheet,useWindowDimensions} from 'react-native';
2
+ import {Pressable,StyleSheet} from 'react-native';
3
3
  import {grid} from "$theme";
4
4
  import {defaultStr} from "$cutils";
5
5
  import PropTypes from "prop-types";
@@ -8,7 +8,6 @@ import {isMobileMedia} from "$cplatform/dimensions";
8
8
  import BackToTop from "$ecomponents/BackToTop";
9
9
  import {FlatList,StyleSheet,View} from "react-native";
10
10
  import Label from "$ecomponents/Label";
11
- import { useWindowDimensions,Dimensions } from "react-native";
12
11
  import { useList,useGetNumColumns } from "./hooks";
13
12
 
14
13
  const CommonListComponent = React.forwardRef((props,ref)=>{
@@ -194,7 +194,7 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
194
194
  }
195
195
  }
196
196
  };
197
- const dimensions = Dimensions.get("window");// useWindowDimensions();
197
+ const dimensions = Dimensions.get("window");
198
198
  let contentContainerHeight = dimensions.height - defaultDecimal(layout?.top) - defaultDecimal(layout?.height)-20;
199
199
  contentContainerHeight = Math.max(contentContainerHeight,200);
200
200
  let marginTop = 0;
@@ -25,6 +25,7 @@ import {isMobileNative} from "$cplatform";
25
25
  import notify from "$cnotify";
26
26
  import {showPrompt} from "$ecomponents/Dialog/confirm";
27
27
  import {SWRConfig} from "$swr";
28
+ import {Keyboard } from 'react-native';
28
29
 
29
30
  Object.map(Utils,(v,i)=>{
30
31
  if(typeof v =='function' && typeof window !='undefined' && window && !window[i]){
@@ -269,7 +270,7 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,a
269
270
  })
270
271
  }
271
272
 
272
-
273
+ const isKeyboardShownRef = React.useRef(false);
273
274
  const {screens} = navigation;
274
275
  navigation.screens = React.useMemo(()=>{
275
276
  const r = prepareScreens({
@@ -290,14 +291,34 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,a
290
291
  screensRef.current[sanitizedName] = new Date();
291
292
  activeScreenRef.current = sanitizedName;
292
293
  }
294
+ ///la fonction de rappel lorsque le composant est monté
295
+ const triggerKeyboardToggle = (status)=>{
296
+ APP.trigger(APP.EVENTS.KEYBOARD_DID_TOGGLE,{shown:status,status,visible:status,hide : !status});
297
+ }
298
+ const keyBoardDidShow = ()=>{
299
+ isKeyboardShownRef.current = true;
300
+ APP.trigger(APP.EVENTS.KEYBOARD_DID_SHOW);
301
+ triggerKeyboardToggle(true);
302
+ },keyBoardDidHide = ()=>{
303
+ isKeyboardShownRef.current = false;
304
+ APP.trigger(APP.EVENTS.KEYBOARD_DID_HIDE);
305
+ triggerKeyboardToggle(false);
306
+ }
307
+ const keyBoardDidShowListener = Keyboard.addListener("keyboardDidShow",keyBoardDidShow);
308
+ const keyBoardDidHideListener = Keyboard.addListener("keyboardDidHide",keyBoardDidHide);
293
309
  APP.on(APP.EVENTS.SCREEN_FOCUS,onScreenFocus);
294
310
  return ()=>{
311
+ keyBoardDidShowListener?.remove && keyBoardDidShowListener.remove();
312
+ keyBoardDidHideListener?.remove && keyBoardDidHideListener.remove();
295
313
  APP.off(APP.EVENTS.SCREEN_FOCUS,onScreenFocus);
296
314
  }
297
315
  },[]);
316
+ const isKeyboardShown = ()=> typeof Keyboard.isVisible =="function" && Keyboard.isVisible() || isKeyboardShownRef.current;
298
317
  return <ExpoUIContext.Provider
299
318
  value={{
300
319
  ...props,
320
+ isKeyboardShown, //permet de déterminer si le clavier est visible
321
+ isKeyboardVisible : isKeyboardShown,
301
322
  handleHelpScreen,
302
323
  navigation,
303
324
  parseMangoQueries,
@@ -1 +1 @@
1
- module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.77.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.62.9","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.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.18","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.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.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-gesture-handler":{"version":"2.12.1","url":"https://github.com/software-mansion/react-native-gesture-handler#readme","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.1","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":"6.78.2","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.63.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.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.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.18","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.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.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-gesture-handler":{"version":"2.12.1","url":"https://github.com/software-mansion/react-native-gesture-handler#readme","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.1","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"}};