@fto-consult/expo-ui 6.36.0 → 6.37.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.
@@ -41,7 +41,7 @@ import { prepareScreens } from "./TableData";
41
41
  },
42
42
  realm : {}, //les options de configurations de la base de données realmdb
43
43
  */
44
- const Provider = ({children,getTableData,handleHelpScreen,navigation,components,convertFiltersToSQL,getStructData,tablesData,structsData,...props})=>{
44
+ const Provider = ({children,getTableData,handleHelpScreen,navigation,swrConfig,components,convertFiltersToSQL,getStructData,tablesData,structsData,...props})=>{
45
45
  const {extendAppTheme} = appConfig;
46
46
  const { theme : pTheme } = useMaterial3Theme();
47
47
  navigation = defaultObj(navigation);
@@ -53,6 +53,7 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,components,
53
53
  getTableData = appConfig.getTable = appConfig.getTableData = getTableOrStructDataCall(tablesData,getTableData);
54
54
  getStructData = appConfig.getStructData = getTableOrStructDataCall(structsData,getStructData);
55
55
  appConfig.LoginComponent = Login;
56
+ swrConfig = defaultObj(swrConfig);
56
57
  if(convertFiltersToSQL !== undefined){
57
58
  appConfig.set("convertFiltersToSQL",convertFiltersToSQL);
58
59
  }
@@ -148,7 +149,8 @@ const Provider = ({children,getTableData,handleHelpScreen,navigation,components,
148
149
  getStructData,
149
150
  tablesData,
150
151
  structsData,
151
- appConfig
152
+ appConfig,
153
+ swrConfig,
152
154
  }}
153
155
  children={children}
154
156
  />;
package/src/index.js CHANGED
@@ -1,320 +1,2 @@
1
- import React from "$react"
2
- import { AppState} from "react-native";
3
- import BackHandler from "$ecomponents/BackHandler";
4
- import * as Linking from 'expo-linking';
5
- import APP from "$capp";
6
- import {AppStateService,trackIDLE,stop as stopIDLE} from "$capp/idle";
7
- import { NavigationContainer} from '@react-navigation/native';
8
- import {navigationRef} from "$cnavigation"
9
- import NetInfo from '$cutils/NetInfo';
10
- import Auth from "$cauth";
11
- import {isNativeMobile,isElectron} from "$cplatform";
12
- import Navigation from "./navigation";
13
- import {set as setSession,get as getSession} from "$session";
14
- import { showConfirm } from "$ecomponents/Dialog";
15
- import {close as closePreloader, isVisible as isPreloaderVisible} from "$epreloader";
16
- import SplashScreen from "$ecomponents/SplashScreen";
17
- import {decycle} from "$cutils/json";
18
- import init from "$capp/init";
19
- import { setIsInitialized} from "$capp/utils";
20
- import {isObj,isNonNullString,isPromise,defaultObj,defaultStr} from "$cutils";
21
- import {loadFonts} from "$ecomponents/Icon/Font";
22
- import appConfig from "$capp/config";
23
- import Preloader from "$preloader";
24
- import {PreloaderProvider} from "$epreloader";
25
- import BottomSheetProvider from "$ecomponents/BottomSheet/Provider";
26
- import DialogProvider from "$ecomponents/Dialog/Provider";
27
- import SimpleSelect from '$ecomponents/SimpleSelect';
28
- import {Provider as AlertProvider} from '$ecomponents/Dialog/confirm/Alert';
29
- import { DialogProvider as FormDataDialogProvider } from '$eform/FormData';
30
- import ErrorBoundaryProvider from "$ecomponents/ErrorBoundary/Provider";
31
- import notify, {notificationRef} from "$notify";
32
- import DropdownAlert from '$ecomponents/Dialog/DropdownAlert';
33
- import {AuthProvider} from '$cauth';
34
- import { PreferencesContext } from './Preferences';
35
- import ErrorBoundary from "$ecomponents/ErrorBoundary";
36
- import {updateTheme,defaultTheme} from "$theme";
37
- import StatusBar from "$ecomponents/StatusBar";
38
- import {Provider as PaperProvider,Portal } from 'react-native-paper';
39
- import FontIcon from "$ecomponents/Icon/Font";
40
- import useContext from "$econtext/hooks";
41
- import { GestureHandlerRootView } from 'react-native-gesture-handler';
42
- import { StyleSheet } from "react-native";
43
- import Logo from "$ecomponents/Logo";
44
- export * from "./context";
45
-
46
- let MAX_BACK_COUNT = 1;
47
- let countBack = 0;
48
- let isBackConfirmShowing = false;
49
-
50
- const resetExitCounter = ()=>{
51
- countBack = 0
52
- isBackConfirmShowing = false;
53
- };
54
-
55
- const NAVIGATION_PERSISTENCE_KEY = 'NAVIGATION_STATE';
56
-
57
- /****
58
- * init {function}: ()=>Promise<{}> est la fonction d'initialisation de l'application
59
- * initialRouteName : la route initiale par défaut
60
- * getStartedRouteName : la route par défaut de getStarted lorsque l'application est en mode getStarted, c'est à dire lorsque la fonction init renvoie une erreur (reject)
61
- */
62
- function App({init:initApp,initialRouteName:appInitialRouteName,render,onMount}) {
63
- AppStateService.init();
64
- const {FontsIconsFilter,beforeExit,preferences:appPreferences,navigation,getStartedRouteName} = useContext();
65
- const {containerProps} = navigation;
66
- const [initialState, setInitialState] = React.useState(undefined);
67
- const appReadyRef = React.useRef(true);
68
- const [state,setState] = React.useState({
69
- isLoading : true,
70
- isInitialized:false,
71
- });
72
- React.useEffect(() => {
73
- const loadResources = ()=>{
74
- return new Promise((resolve)=>{
75
- loadFonts(FontsIconsFilter).catch((e)=>{
76
- console.warn(e," ierror loading app resources fonts");
77
- }).finally(()=>{
78
- resolve(true);
79
- });
80
- })
81
- }
82
- const restoreState = () => {
83
- return new Promise((resolve,reject)=>{
84
- (async ()=>{
85
- try {
86
- const initialUrl = await Linking.getInitialURL();
87
- if (isNativeMobile() || initialUrl === null) {
88
- const savedState = getSession(NAVIGATION_PERSISTENCE_KEY);
89
- if (isObj(savedState)) {
90
- setInitialState(savedState);
91
- }
92
- }
93
- } catch(e){ console.log(e," is state error")}
94
- finally {
95
- appReadyRef.current = true;
96
- resolve({});
97
- }
98
- })();
99
- });
100
- };
101
- const subscription = AppState.addEventListener('change', AppStateService.getInstance().handleAppStateChange);
102
- const beforeExitApp = (cb)=>{
103
- return new Promise((resolve,reject)=>{
104
- Preloader.closeAll();
105
- showConfirm({
106
- title : "Quitter l'application",
107
- message : 'Voulez vous vraiment quitter l\'application?',
108
- yes : 'Oui',
109
- no : 'Non',
110
- onSuccess : ()=>{
111
- const foreceExit = ()=>{
112
- BackHandler.exitApp();
113
- if(isElectron() && window.ELECTRON && typeof ELECTRON.exitApp =='function'){
114
- ELECTRON.exitApp({APP});
115
- }
116
- }
117
- const exit = ()=>{
118
- if(typeof beforeExit =='function'){
119
- const r2 = beforeExit()
120
- if(!isPromise(r2)){
121
- throw {message:'La fonction before exit du contexte doit retourner une promesse',returnedResult:r2}
122
- }
123
- return r2.then(foreceExit).catch(reject);
124
- }
125
- foreceExit();
126
- }
127
- const r = {APP,exit};
128
- APP.trigger(APP.EVENTS.BEFORE_EXIT,exit,(result)=>{
129
- if(isObj(result) || Array.isArray(result)){
130
- for(let ik in result){
131
- if(result[ik] === false) return reject({message:'EXIT APP DENIED BY BEFORE EXIT EVENT HANDLER AT POSITON {0}'.sprintf(ik)});
132
- }
133
- }
134
- resolve(r);
135
- if(typeof cb =='function'){
136
- cb(r);
137
- }
138
- });
139
- },
140
- onCancel : reject
141
- })
142
- })
143
- }
144
- /**** onBeforeExit prend en paramètre la fonction de rappel CB, qui lorsque la demande de sortie d'application est acceptée, alors elle est exécutée */
145
- if(typeof APP.beforeExit !=='function'){
146
- Object.defineProperties(APP,{
147
- beforeExit : {
148
- value : beforeExitApp,
149
- }
150
- })
151
- }
152
- const backAction = (args) => {
153
- if(navigationRef && navigationRef.canGoBack()? true : false){
154
- resetExitCounter();
155
- navigationRef.goBack(null);
156
- return false;
157
- }
158
- if(isBackConfirmShowing) {
159
- return;
160
- }
161
- if(countBack < MAX_BACK_COUNT){
162
- countBack++;
163
- isBackConfirmShowing = false;
164
- if(countBack === MAX_BACK_COUNT){
165
- notify.toast({text:'Cliquez à nouveau pour quiiter l\'application'});
166
- }
167
- if(countBack === 2 && isPreloaderVisible()) {
168
- closePreloader();
169
- }
170
- return false;
171
- }
172
- isBackConfirmShowing = true;
173
- return beforeExitApp().finally(x=>{
174
- isBackConfirmShowing = false;
175
- }).then(({exit})=>{
176
- exit();
177
- })
178
- };
179
- const unsubscribeNetInfo = NetInfo.addEventListener(state => {
180
- APP.setOnlineState(state);
181
- });
182
- NetInfo.fetch().catch((e)=>{
183
- console.log(e," is net info heinn")
184
- });
185
- loadResources().finally(()=>{
186
- (typeof initApp =='function'?initApp : init)({appConfig,contex:{setState}}).then((args)=>{
187
- if(Auth.isLoggedIn()){
188
- Auth.loginUser(false);
189
- }
190
- setState({
191
- ...state,hasGetStarted:true,...defaultObj(args && args?.state),isInitialized:true,isLoading : false,
192
- });
193
- }).catch((e)=>{
194
- console.error(e," loading resources for app initialization");
195
- setState({...state,isInitialized:true,isLoading : false,hasGetStarted:false});
196
- })
197
- });
198
-
199
- const Events = {}
200
- let events = [];
201
- if(navigationRef && navigationRef.addListener){
202
- for(let i in Events){
203
- events.push(navigationRef.addListener(i,Events[i]));
204
- }
205
- }
206
- APP.onElectron("BEFORE_EXIT",()=>{
207
- return beforeExitApp().then(({exit})=>{
208
- exit();
209
- })
210
- });
211
- APP.on(APP.EVENTS.BACK_BUTTON,backAction);
212
- return () => {
213
- APP.off(APP.EVENTS.BACK_BUTTON,backAction);
214
-
215
- if(subscription && subscription.remove){
216
- subscription.remove();
217
- }
218
- events.map((ev)=>{
219
- if(typeof ev =="function") ev();
220
- })
221
- unsubscribeNetInfo();
222
- stopIDLE(false,true);
223
-
224
- }
225
- }, []);
226
- const {isInitialized} = state;
227
- const isLoading = state.isLoading || !isInitialized || !appReadyRef.current? true : false;
228
- React.useEffect(()=>{
229
- if(isInitialized){
230
- setIsInitialized(true);
231
- trackIDLE(true);
232
- }
233
- },[isInitialized]);
234
- const hasGetStarted = state.hasGetStarted !== false? true : false;
235
- const themeRef = React.useRef(null);
236
- const [theme,setTheme] = React.useState(themeRef.current || updateTheme(defaultTheme));
237
- themeRef.current = theme;
238
- const updatePreferenceTheme = (customTheme,persist)=>{
239
- setTheme(updateTheme(customTheme));
240
- };
241
- const forceRender = React.useForceRender();
242
- const pref = typeof appPreferences =='function'? appPreferences({setTheme,forceRender,updateTheme:updatePreferenceTheme}) : appPreferences;
243
- const preferences = React.useMemo(()=>({
244
- updateTheme:updatePreferenceTheme,
245
- theme,
246
- ...defaultObj(pref),
247
- }),[theme,pref]);
248
- const isLoaded = !isLoading;
249
- const prevIsLoaded = React.usePrevious(isLoaded);
250
- const onMountRef = React.useRef(false);
251
- React.useEffect(()=>{
252
- if(prevIsLoaded == isLoaded || !isLoaded || onMountRef.current) return;
253
- if(typeof onMount ==='function'){
254
- onMount({appConfig});
255
- onMountRef.current = true;
256
- }
257
- },[isLoaded])
258
- const child = isLoaded ? <NavigationContainer
259
- ref={navigationRef}
260
- initialState={initialState}
261
- {...containerProps}
262
- onStateChange={(state,...rest) =>{
263
- setSession(NAVIGATION_PERSISTENCE_KEY,decycle(state),false);
264
- if(typeof containerProps.onStateChange =='function'){
265
- containerProps.onStateChange(state,...rest);
266
- }
267
- }}
268
- fallback = {React.isValidElement(containerProps.fallback) ? containerProps.fallback : <Logo.Progress/>}
269
- >
270
- <Navigation
271
- initialRouteName = {defaultStr(hasGetStarted ? appInitialRouteName : getStartedRouteName,"Home")}
272
- state = {state}
273
- hasGetStarted = {hasGetStarted}
274
- isInitialized = {isInitialized}
275
- onGetStart = {(e)=>{
276
- setState({...state,hasGetStarted:true})
277
- }}
278
- />
279
- </NavigationContainer> : null;
280
- const content = isLoaded ? typeof render == 'function'? render({children:child,appConfig,config:appConfig}) : child : null;
281
- return <AuthProvider>
282
- <GestureHandlerRootView testID={"RN_MainAppGestureHanleRootView"} style={styles.gesture}>
283
- <PaperProvider
284
- theme={theme}
285
- settings={{
286
- icon: (props) => {
287
- return <FontIcon {...props}/>
288
- },
289
- }}
290
- >
291
- <Portal.Host testID="RN_NativePaperPortalHost">
292
- <ErrorBoundaryProvider/>
293
- <PreloaderProvider/>
294
- <DialogProvider responsive testID={"RN_MainAppDialogProvider"}/>
295
- <AlertProvider SimpleSelect={SimpleSelect}/>
296
- <FormDataDialogProvider/>
297
- <BottomSheetProvider/>
298
- <DropdownAlert ref={notificationRef}/>
299
- <ErrorBoundary>
300
- <StatusBar/>
301
- <SplashScreen isLoaded={isLoaded}>
302
- <PreferencesContext.Provider value={preferences}>
303
- {React.isValidElement(content) && content || child}
304
- </PreferencesContext.Provider>
305
- </SplashScreen>
306
- </ErrorBoundary>
307
- </Portal.Host>
308
- </PaperProvider>
309
- </GestureHandlerRootView>
310
- </AuthProvider>;
311
- }
312
-
313
- export default App;
314
-
315
- const styles = StyleSheet.create({
316
- gesture : {
317
- flex : 1,
318
- flexGrow : 1,
319
- }
320
- })
1
+ export {default} from "./App";
2
+ export * from "./context";
@@ -1 +1 @@
1
- module.exports = {"@fto-consult/expo-ui":{"version":"6.35.4","url":"https://github.com/borispipo/expo-ui#readme","license":"ISC"},"@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.35.1","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.7","url":"https://reactnavigation.org","license":"MIT"},"@react-navigation/native-stack":{"version":"6.9.13","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"@shopify/flash-list":{"version":"1.4.3","url":"https://shopify.github.io/flash-list/","license":"MIT"},"apexcharts":{"version":"3.42.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.10","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"},"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.4","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.10.4","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.19.0","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.7","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.5.1","url":"https://virtuoso.dev/","license":"MIT"},"sharp-cli":{"version":"4.1.1","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":{"version":"6.36.0","url":"https://github.com/borispipo/expo-ui#readme","license":"ISC"},"@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.36.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-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.7","url":"https://reactnavigation.org","license":"MIT"},"@react-navigation/native-stack":{"version":"6.9.13","url":"https://github.com/software-mansion/react-native-screens#readme","license":"MIT"},"@shopify/flash-list":{"version":"1.4.3","url":"https://shopify.github.io/flash-list/","license":"MIT"},"apexcharts":{"version":"3.42.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.11","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-storage":{"version":"48.1.0","url":"https://github.com/echowaves/expo-storage#readme","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"},"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.4","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.10.4","url":"https://callstack.github.io/react-native-paper","license":"MIT"},"react-native-paper-dates":{"version":"0.19.0","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.7","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.5.1","url":"https://virtuoso.dev/","license":"MIT"},"sharp-cli":{"version":"4.1.1","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 +0,0 @@
1
- 1023.609.1142.0
@@ -1,40 +0,0 @@
1
- import registerApp from "$expo-ui-root-path";
2
- import screens from "./src/screens";
3
- import drawerItems from "./src/navigation/drawerItems";
4
- import Logo from "./src/components/Logo";
5
-
6
- registerApp({
7
- /**** application navigation */
8
- navigation : {
9
- //all application screeens
10
- screens,
11
- drawerItems, //application main drawer items
12
- },
13
- /**application components */
14
- components : {
15
- logo : Logo,//logo component's properties
16
- loginPropsMutator : {},//login props mutator
17
- authEnabled : true,//si le module d'authentification sera requis
18
- },
19
- /*** //for application initialization
20
- @param {
21
- appConfig : {object}, //application configuration manager imported from $capp/config
22
- }
23
- @return {Promise} if rejected, application is suposed to not be started, so we need to display getStarted Screen, il not, application logic is runned
24
- */
25
- init : function({appConfig}){
26
- return Promise.resolve("app is initialized");
27
- },
28
- /**
29
- * //when main application component is mounted
30
- */
31
- onMount : function(){},
32
- /****when main application component is unmounted*/
33
- onUnmount : function(){},
34
- /**** called any time main application's component is rendered */
35
- onRender : function(){},
36
- /*** if you need to wrap main application content with some custom react Provider */
37
- render : ({children})=>{
38
- return children;
39
- }
40
- });