@fto-consult/expo-ui 6.60.3 → 6.61.0
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 +1 -1
- package/src/components/Datagrid/Dashboard/index.js +1 -1
- package/src/components/Datagrid/SWRDatagrid.js +3 -2
- package/src/components/Drawer/DrawerLayout/index.js +2 -3
- package/src/components/Fab/GroupComponent.js +9 -7
- package/src/components/Image/index.js +1 -2
- package/src/components/Menu/Item.js +1 -1
- package/src/components/Modal/index.js +2 -3
- package/src/components/PhoneInput/index.js +1 -3
- package/src/components/SimpleSelect/index.js +5 -4
- package/src/components/Table/Headers/Thead.js +9 -0
- package/src/components/Table/Headers/Thead.native.js +9 -0
- package/src/components/Table/Headers/index.js +6 -8
- package/src/components/WebView/index.js +4 -0
- package/src/layouts/DatabaseStatistics/index.js +16 -4
- package/src/screens/Help/openLibraries.js +1 -1
package/package.json
CHANGED
@@ -14,10 +14,11 @@ import DateLib from "$lib/date";
|
|
14
14
|
import {getFetchOptions} from "$cutils/filters";
|
15
15
|
import {setQueryParams} from "$cutils/uri";
|
16
16
|
import {uniqid} from "$cutils";
|
17
|
-
import apiFetch
|
17
|
+
import apiFetch from "$capi/fetch";
|
18
18
|
import Icon from "$ecomponents/Icon";
|
19
19
|
import Label from "$ecomponents/Label";
|
20
|
-
import { StyleSheet
|
20
|
+
import { StyleSheet} from "react-native";
|
21
|
+
import View from "$ecomponents/View";
|
21
22
|
import theme from "$theme";
|
22
23
|
import useSWR from "$swr";
|
23
24
|
import {getRowsPerPagesLimits} from "./Common/utils";
|
@@ -177,15 +177,14 @@ export default class DrawerLayout extends React.PureComponent {
|
|
177
177
|
{...this._panResponder.panHandlers}
|
178
178
|
>
|
179
179
|
{!permanent && <TouchableWithoutFeedback
|
180
|
-
|
180
|
+
style={{pointerEvents}}
|
181
181
|
testID = {testID+"_TouchableWithoutFeedBack"}
|
182
182
|
onPress={this._onOverlayClick}
|
183
183
|
>
|
184
184
|
<Animated.View
|
185
185
|
testID={testID+"_Backdrow"}
|
186
|
-
pointerEvents={pointerEvents}
|
187
186
|
ref = {this._backdropRef}
|
188
|
-
style={[styles.overlay,{backgroundColor:theme.colors.backdrop}, animatedOverlayStyles]}
|
187
|
+
style={[styles.overlay,{backgroundColor:theme.colors.backdrop},{pointerEvents}, animatedOverlayStyles]}
|
189
188
|
/>
|
190
189
|
</TouchableWithoutFeedback>}
|
191
190
|
{posRight && this.renderContent({testID})}
|
@@ -115,22 +115,22 @@ const FABGroup = ({
|
|
115
115
|
const Item = isFormAction ? Action : FabItem;
|
116
116
|
const itemComponentProps = isFormAction ? {Component : FabItem} : {};
|
117
117
|
return (
|
118
|
-
<View testID={testID+"_Container"}
|
118
|
+
<View testID={testID+"_Container"} style={[styles.container, style]}>
|
119
119
|
<TouchableWithoutFeedback testID={testID+"_TouchableOpacity"} onPress={close}>
|
120
120
|
<Animated.View
|
121
121
|
testID={testID+"_AnimatedView"}
|
122
|
-
pointerEvents={open ? 'auto' : 'none'}
|
123
122
|
style={[
|
124
123
|
styles.backdrop,
|
125
124
|
{
|
126
125
|
opacity: backdropOpacity,
|
127
126
|
backgroundColor: colors.backdrop,
|
127
|
+
pointerEvents : open ? 'auto' : 'none',
|
128
128
|
},
|
129
129
|
]}
|
130
130
|
/>
|
131
131
|
</TouchableWithoutFeedback>
|
132
|
-
<SafeAreaView testID={testID+"_SafeAreaView"}
|
133
|
-
<View testID={testID+"_ItemsContainer"} style={[styles.itemsContainer
|
132
|
+
<SafeAreaView testID={testID+"_SafeAreaView"} style={styles.safeArea}>
|
133
|
+
<View testID={testID+"_ItemsContainer"} style={[styles.itemsContainer,{pointerEvents:open ? 'box-none' : 'none'}]}>
|
134
134
|
{actions.map((it, i) => {
|
135
135
|
const itemProps = {
|
136
136
|
...it,
|
@@ -148,9 +148,9 @@ const FABGroup = ({
|
|
148
148
|
{
|
149
149
|
marginHorizontal:
|
150
150
|
typeof it.small || it.small ? 24 : 16,
|
151
|
+
pointerEvents : open ? 'box-none' : 'none',
|
151
152
|
},
|
152
153
|
]}
|
153
|
-
pointerEvents={open ? 'box-none' : 'none'}
|
154
154
|
>
|
155
155
|
<Item
|
156
156
|
{...itemProps}
|
@@ -288,7 +288,7 @@ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,
|
|
288
288
|
const dStyle = disabled ? disabledStyle : null;
|
289
289
|
return <>
|
290
290
|
{label ? (
|
291
|
-
<View testID = {testID+"_LabelContainer"} style={dStyle
|
291
|
+
<View testID = {testID+"_LabelContainer"} style={[dStyle,{pointerEvents}]}>
|
292
292
|
<Card
|
293
293
|
testID={testID+"_Card"}
|
294
294
|
style={
|
@@ -323,7 +323,6 @@ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,
|
|
323
323
|
icon={icon}
|
324
324
|
color={color}
|
325
325
|
disabled = {disabled}
|
326
|
-
pointerEvents={pointerEvents}
|
327
326
|
style={
|
328
327
|
[
|
329
328
|
style,
|
@@ -333,6 +332,7 @@ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,
|
|
333
332
|
transform: [{ scale}],
|
334
333
|
opacity,
|
335
334
|
backgroundColor,
|
335
|
+
pointerEvents,
|
336
336
|
},
|
337
337
|
]
|
338
338
|
}
|
@@ -356,6 +356,7 @@ export const FabItem = theme.withStyles(_FabItem,{displayName:"FabItemComponent"
|
|
356
356
|
const styles = StyleSheet.create({
|
357
357
|
safeArea: {
|
358
358
|
alignItems: 'flex-end',
|
359
|
+
pointerEvents : "box-none",
|
359
360
|
},
|
360
361
|
itemsContainer : {
|
361
362
|
marginBottom : 70,
|
@@ -363,6 +364,7 @@ const styles = StyleSheet.create({
|
|
363
364
|
container: {
|
364
365
|
...StyleSheet.absoluteFillObject,
|
365
366
|
justifyContent: 'flex-end',
|
367
|
+
pointerEvents : "box-none",
|
366
368
|
},
|
367
369
|
fab: {
|
368
370
|
marginHorizontal: 16,
|
@@ -252,13 +252,12 @@ export default function ImageComponent(props){
|
|
252
252
|
}
|
253
253
|
const _label = defaultString(label);
|
254
254
|
const isDisabled = menuItems.length > 0 ? true : false;
|
255
|
-
const pointerEvents = isDisabled ? "auto" :"none";
|
256
255
|
return <View testID={testID+"_FagmentContainer"}>
|
257
256
|
{!createSignatureOnly ? (<Menu
|
258
257
|
{...menuProps}
|
259
258
|
disabled = {isDisabled}
|
260
259
|
anchor = {(props)=>{
|
261
|
-
return <View accessibilityLabel = {_label} testID={testID+"_Container"} {...containerProps}
|
260
|
+
return <View accessibilityLabel = {_label} testID={testID+"_Container"} {...containerProps} style={[label?styles.align:null,containerProps.style,{pointerEvents:disabled|| readOnly? "none":"auto"},label?styles.container:null]}>
|
262
261
|
{<Label testID={testID+"_Label"} {...labelProps} disabled={disabled} style={[styles.label,labelProps.style]}>{label}</Label>}
|
263
262
|
{<Avatar
|
264
263
|
resizeMethod = {"auto"}
|
@@ -96,10 +96,10 @@ const MenuItemComponent = React.forwardRef(({
|
|
96
96
|
) : null}
|
97
97
|
<View
|
98
98
|
testID={testID+"_Right2LabelContainer"}
|
99
|
-
pointerEvents={!right?"none":"auto"}
|
100
99
|
{...contentContainerProps}
|
101
100
|
style={[
|
102
101
|
styles.item,
|
102
|
+
{pointerEvents:!right?"none":"auto"},
|
103
103
|
styles.content,
|
104
104
|
!maxWidthStyle && icon ? styles.widthWithIcon : null,
|
105
105
|
contentStyle,
|
@@ -111,11 +111,10 @@ const ModalComponent = React.forwardRef((props,ref)=>{
|
|
111
111
|
ref={ref}
|
112
112
|
testID={'RN__ModalComponent'}
|
113
113
|
{...rest}
|
114
|
-
pointerEvents={visible ? 'auto' : 'none'}
|
115
114
|
accessibilityViewIsModal
|
116
115
|
role="polite"
|
117
116
|
onAccessibilityEscape={hideModal}
|
118
|
-
style = {[styles.modal,rest.style]}
|
117
|
+
style = {[styles.modal,rest.style,{pointerEvents:visible ? 'auto' : 'none'}]}
|
119
118
|
animationType = {animationType}
|
120
119
|
animationDuration = {animationDuration}
|
121
120
|
animationPosition = {animationPosition}
|
@@ -144,7 +143,6 @@ const ModalComponent = React.forwardRef((props,ref)=>{
|
|
144
143
|
{...wrapperProps}
|
145
144
|
ref = {contentContainerRef}
|
146
145
|
style={[styles.contentContainer,{ marginTop: TOP_INSET, marginBottom: BOTTOM_INSET,backgroundColor:'transparent' },contentContainerProps.style]}
|
147
|
-
pointerEvents="box-none"
|
148
146
|
>
|
149
147
|
{children}
|
150
148
|
</Surface>
|
@@ -162,6 +160,7 @@ const styles = StyleSheet.create({
|
|
162
160
|
},
|
163
161
|
contentContainer: {
|
164
162
|
...StyleSheet.absoluteFillObject,
|
163
|
+
pointerEvents : "box-none",
|
165
164
|
alignItems : 'center',
|
166
165
|
justifyContent : 'center',
|
167
166
|
flex : 1,
|
@@ -162,10 +162,8 @@ export default function PhoneInputComponent(props){
|
|
162
162
|
disabled = {props.disabled}
|
163
163
|
pointerEvents = {pointerEvents}
|
164
164
|
left = {
|
165
|
-
<Pressable testID={testID+"_Left"} style={[styles.flag,disabledStyle,!isFlatMode && styles.notFlatModeFlag]}
|
166
|
-
//role="button"
|
165
|
+
<Pressable testID={testID+"_Left"} style={[styles.flag,{pointerEvents},disabledStyle,!isFlatMode && styles.notFlatModeFlag]}
|
167
166
|
disabled = {props.disabled}
|
168
|
-
pointerEvents = {pointerEvents}
|
169
167
|
onPress={onPressFlag}
|
170
168
|
>
|
171
169
|
<>
|
@@ -277,17 +277,18 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
277
277
|
const renderingItems = getItems();
|
278
278
|
const autoFocus = canAutoFocusSearchField({visible,items:renderingItems});
|
279
279
|
testID = defaultStr(testID, "RN_SimpleSelectComponent");
|
280
|
+
anchorContainerProps = defaultObj(anchorContainerProps);
|
280
281
|
anchor = <Pressable
|
281
282
|
//role="button"
|
282
283
|
activeOpacity={0.3}
|
283
284
|
testID = {testID}
|
284
|
-
{...
|
285
|
+
{...anchorContainerProps}
|
285
286
|
onPress={show}
|
286
287
|
disabled = {!isEditable}
|
287
|
-
pointerEvents = {pointerEvents}
|
288
288
|
accessibilityLabel={defaultStr(label,text)}
|
289
289
|
rippleColor={undefined}
|
290
290
|
onLayout={onLayout}
|
291
|
+
style = {[{pointerEvents},anchorContainerProps.style]}
|
291
292
|
>
|
292
293
|
{anchor}
|
293
294
|
</Pressable>
|
@@ -323,10 +324,10 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
323
324
|
},
|
324
325
|
isMob && {flex:1},
|
325
326
|
!isMob && {paddingRight : 0},
|
326
|
-
contentContainerProps.style
|
327
|
+
contentContainerProps.style,
|
328
|
+
{pointerEvents:contentContainerProps.pointerEvents||pointerEvents||undefined},
|
327
329
|
]
|
328
330
|
}
|
329
|
-
pointerEvents = {pointerEvents}
|
330
331
|
>
|
331
332
|
{showSearch !== false && <>
|
332
333
|
<TextField
|
@@ -4,18 +4,16 @@ import theme from "$theme";
|
|
4
4
|
import {useTable} from "../hooks";
|
5
5
|
import React from "$react";
|
6
6
|
import {classNames} from "$cutils";
|
7
|
+
import Thead from "./Thead";
|
7
8
|
|
8
9
|
const TableHeadersWrapperComponent = React.forwardRef(({className},ref)=>{
|
9
10
|
const {testID,tableHeadId} = useTable();
|
10
11
|
const filters = React.useMemo(()=><Header isFilter={true} testID={testID+"_TableFilters"} style={[styles.header,styles.filters,theme.styles.pt0,theme.styles.pb0,theme.styles.ml0,theme.styles.mr0]}/>,[])
|
11
|
-
return <
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
<Header isFooter testID={testID+"_TableFooter"} style={[styles.header,styles.footers,theme.styles.pt0,theme.styles.pb0,theme.styles.ml0,theme.styles.mr0]}/>
|
17
|
-
</>
|
18
|
-
</thead>
|
12
|
+
return <Thead ref={ref} id={tableHeadId} className={classNames(className,"virtuoso-list-render-table-thead")} style = {{zIndex:100, position: 'sticky', top: 0 ,width:"100%"}}>
|
13
|
+
<Header isHeader={true} testID={testID+"_TableHeader"}/>
|
14
|
+
{filters}
|
15
|
+
<Header isFooter testID={testID+"_TableFooter"} style={[styles.header,styles.footers,theme.styles.pt0,theme.styles.pb0,theme.styles.ml0,theme.styles.mr0]}/>
|
16
|
+
</Thead>
|
19
17
|
});
|
20
18
|
|
21
19
|
export default TableHeadersWrapperComponent;
|
@@ -41,6 +41,8 @@ WebViewComponent.LocalHtml = React.forwardRef(({file,source,...props},ref)=>{
|
|
41
41
|
});
|
42
42
|
},[file]);
|
43
43
|
return <WebViewComponent
|
44
|
+
testID={"RN_WebviewComponent_LocalHTML"}
|
45
|
+
{...props}
|
44
46
|
ref = {ref}
|
45
47
|
source={{...defaultObj(source),html}}
|
46
48
|
/>
|
@@ -56,6 +58,7 @@ WebViewComponent.Local = WebViewComponent.LocalHtml;
|
|
56
58
|
WebViewComponent.Url = React.forwardRef(({url,source,...props},ref)=>{
|
57
59
|
const isU = isValidUrl(url);
|
58
60
|
return <WebViewComponent
|
61
|
+
testID={"RN_WebviewComponent_URL"}
|
59
62
|
ref = {ref}
|
60
63
|
{...props}
|
61
64
|
source = {{...defaultObj(source),url:isU?url:undefined}}
|
@@ -69,6 +72,7 @@ WebViewComponent.Url.propTypes = {
|
|
69
72
|
|
70
73
|
WebViewComponent.Html = React.forwardRef(({html,source,...props},ref)=>{
|
71
74
|
return <WebViewComponent
|
75
|
+
testID={"RN_WebviewComponent_HTML"}
|
72
76
|
ref = {ref}
|
73
77
|
{...props}
|
74
78
|
source = {{...defaultObj(source),html}}
|
@@ -7,11 +7,14 @@ import theme from "$theme";
|
|
7
7
|
import PropTypes from "prop-types";
|
8
8
|
import Auth from "$cauth";
|
9
9
|
import Surface from "$ecomponents/Surface";
|
10
|
+
import { StyleSheet } from "react-native";
|
10
11
|
|
11
12
|
export const title = 'Statistiques en BD';
|
12
|
-
export default function DatabaseStatisticScreen ({withScreen,fetchDataProps,tableFilter,fetchCount,fetchData,title:customTitle,contentProps,containerProps,tables,Component,...props}){
|
13
|
+
export default function DatabaseStatisticScreen ({withScreen,fetchDataProps,itemProps,itemContainerProps,tableFilter,fetchCount,fetchData,title:customTitle,contentProps,containerProps,tables,Component,...props}){
|
13
14
|
Component = React.isComponent(Component)? Component : Grid;
|
14
15
|
containerProps = defaultObj(containerProps);
|
16
|
+
itemContainerProps = defaultObj(itemContainerProps);
|
17
|
+
itemProps = defaultObj(itemProps);
|
15
18
|
const title = containerProps.title = defaultStr(containerProps.title,DatabaseStatisticScreen.title);
|
16
19
|
contentProps = defaultObj(contentProps);
|
17
20
|
if(Component == Cell){
|
@@ -34,7 +37,7 @@ export default function DatabaseStatisticScreen ({withScreen,fetchDataProps,tabl
|
|
34
37
|
const testID = "RN_DatabaseStatisticsCell_"+index;
|
35
38
|
if((chartAllowedPerm && !Auth.isAllowedFromStr(chartAllowedPerm)) || (!Auth.isTableDataAllowed({table:tableName}))) return null;
|
36
39
|
content.push(<Cell elevation = {5} withSurface mobileSize={12} desktopSize={3} tabletSize={6} {...contentProps} testID={testID} key = {index} >
|
37
|
-
<Surface testID = {testID+"_Surface"} elevation = {5} style={[theme.styles.w100]}>
|
40
|
+
<Surface testID = {testID+"_Surface"} elevation = {5} {...itemContainerProps} style={[theme.styles.w100,styles.itemContainer,itemContainerProps.style]}>
|
38
41
|
<DatabaseStatistic
|
39
42
|
icon = {table.icon}
|
40
43
|
key = {index}
|
@@ -46,7 +49,8 @@ export default function DatabaseStatisticScreen ({withScreen,fetchDataProps,tabl
|
|
46
49
|
fetchCount = {table.fetchCount|| typeof fetchCount =='function'? (a,b)=>{
|
47
50
|
return fetchCount({table,tableName})
|
48
51
|
}:undefined}
|
49
|
-
|
52
|
+
{...itemProps}
|
53
|
+
/>
|
50
54
|
</Surface>
|
51
55
|
</Cell>
|
52
56
|
)
|
@@ -68,6 +72,8 @@ DatabaseStatisticScreen.propTypes = {
|
|
68
72
|
fetchDataProps : PropTypes.oneOfType([
|
69
73
|
PropTypes.object,
|
70
74
|
]),
|
75
|
+
itemContainerProps : PropTypes.object, //les props à appliquer au container surface de chaque database statistics item
|
76
|
+
itemProps : PropTypes.object,//les props à appliquer à chaque database statistic item
|
71
77
|
getTable : PropTypes.func,//la fonction permettant de récupérer la table à partir du nom
|
72
78
|
tables : PropTypes.oneOfType([
|
73
79
|
PropTypes.arrayOf(PropTypes.object),
|
@@ -75,4 +81,10 @@ DatabaseStatisticScreen.propTypes = {
|
|
75
81
|
]).isRequired,
|
76
82
|
/*** la fonction de filtre utilisée pour filtrer les table devant figurer sur le databaseStatistics */
|
77
83
|
tableFilter : PropTypes.func,
|
78
|
-
}
|
84
|
+
}
|
85
|
+
|
86
|
+
const styles = StyleSheet.create({
|
87
|
+
itemContainer : {
|
88
|
+
minHeight : 80,
|
89
|
+
},
|
90
|
+
})
|
@@ -1 +1 @@
|
|
1
|
-
module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.60.
|
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"}};
|