@fto-consult/expo-ui 6.82.0 → 6.83.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 +2 -2
- package/src/components/AppBar/utils.js +1 -1
- package/src/components/Avatar/Text.js +1 -1
- package/src/components/Avatar/index.js +1 -1
- package/src/components/BackToTop/index.js +1 -1
- package/src/components/Button/index.js +1 -7
- package/src/components/Chip/index.js +2 -8
- package/src/components/Color/index.js +1 -1
- package/src/components/Datagrid/Accordion/Row.js +1 -1
- package/src/components/Datagrid/Accordion/index.js +1 -2
- package/src/components/Datagrid/Actions/Header.js +3 -1
- package/src/components/Datagrid/Actions/index.js +5 -1
- package/src/components/Datagrid/Common/Common.js +7 -1
- package/src/components/Datagrid/Common/utils.js +1 -1
- package/src/components/Date/DateTime.js +1 -0
- package/src/components/Date/utils.js +3 -0
- package/src/components/Dialog/DropdownAlert/index.js +0 -4
- package/src/components/Drawer/DrawerItems/_DrawerItem.js +3 -5
- package/src/components/Drawer/DrawerItems/index.js +2 -2
- package/src/components/Dropdown/index.js +15 -6
- package/src/components/ErrorBoundary/ErrorMessage.js +3 -3
- package/src/components/Expandable/Item.js +4 -4
- package/src/components/Expandable/index.js +2 -4
- package/src/components/Fab/GroupComponent.js +8 -12
- package/src/components/Filter/BetweenComponent.js +1 -1
- package/src/components/Image/index.js +1 -1
- package/src/components/Label/index.js +5 -5
- package/src/components/Menu/Item.js +3 -6
- package/src/components/Menu/Menu.js +2 -3
- package/src/components/Modal/index.js +1 -1
- package/src/components/Paragraph/index.js +1 -1
- package/src/components/PhoneInput/index.js +1 -1
- package/src/components/SimpleSelect/index.js +1 -1
- package/src/components/Switch/index.js +1 -1
- package/src/components/TextField/index.js +1 -1
- package/src/screens/Help/openLibraries.js +1 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fto-consult/expo-ui",
|
3
|
-
"version": "6.
|
3
|
+
"version": "6.83.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.65.
|
74
|
+
"@fto-consult/common": "^3.65.12",
|
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",
|
@@ -33,7 +33,7 @@ const renderAction = ({action,isAlert,actionProps,opts,isAppBarAction,isAppBarAc
|
|
33
33
|
let {Component,isFormAction,...rest} = action;
|
34
34
|
actionProps = defaultObj(actionProps);
|
35
35
|
rest = Object.assign({},rest);
|
36
|
-
rest
|
36
|
+
rest["aria-label"] = defaultStr(rest["aria-label"],rest.title,rest.text,rest.label,rest.children);
|
37
37
|
const {color} = getThemeColors();
|
38
38
|
|
39
39
|
rest.style = {...defaultObj(StyleSheet.flatten(actionProps.style)),elevation:0,...defaultObj(StyleSheet.flatten(rest.style))};
|
@@ -46,7 +46,7 @@ const AvatarTextComponent = (props) => {
|
|
46
46
|
const onPress = typeof customOnPress =='function' ? customOnPress : undefined;
|
47
47
|
const C = onPress? Pressable : View;
|
48
48
|
return (
|
49
|
-
<C testID={testID+"_Container"}
|
49
|
+
<C testID={testID+"_Container"} {...containerProps} style={[{pointerEvents:onPress?"auto":'none'},styles.container,style,containerProps.style,textContainerStyle,{borderRadius:size/2}]}>
|
50
50
|
{ <Text
|
51
51
|
testID={testID}
|
52
52
|
style={[{
|
@@ -40,7 +40,7 @@ const AvatarComponent = React.forwardRef((props,ref)=>{
|
|
40
40
|
handleOnPress = true;
|
41
41
|
} else if(label){
|
42
42
|
cProps.label = label;
|
43
|
-
cProps.
|
43
|
+
cProps.style = [cProps.style,{pointerEvents:"none"}];
|
44
44
|
cProps.labelStyle = StyleSheet.flatten(cProps.labelStyle) || {};
|
45
45
|
Component = Text;
|
46
46
|
}
|
@@ -58,7 +58,7 @@ const BackToTopComponent = React.forwardRef((props,ref)=>{
|
|
58
58
|
},[])
|
59
59
|
return !visible ? null : <Fab
|
60
60
|
{...rest}
|
61
|
-
|
61
|
+
aria-label = {defaultStr(rest["aria-label"],'Retour en haut')}
|
62
62
|
onPress = {(e)=>{
|
63
63
|
React.stopEventPropagation(e);
|
64
64
|
if(onPress){
|
@@ -31,7 +31,6 @@ const ButtonComponent = React.forwardRef((prs,ref) => {
|
|
31
31
|
isCancelButton,
|
32
32
|
error,
|
33
33
|
upperCase = true,
|
34
|
-
accessibilityLabel,
|
35
34
|
onPress,
|
36
35
|
iconPosition,
|
37
36
|
iconBefore,
|
@@ -239,7 +238,6 @@ const ButtonComponent = React.forwardRef((prs,ref) => {
|
|
239
238
|
onLongPress={onLongPress}
|
240
239
|
onPressIn={handlePressIn}
|
241
240
|
onPressOut={handlePressOut}
|
242
|
-
accessibilityLabel={accessibilityLabel}
|
243
241
|
// @ts-expect-error We keep old a11y props for backwards compat with old RN versions
|
244
242
|
accessibilityTraits={disabled ? ['button', 'disabled'] : 'button'}
|
245
243
|
accessibilityComponentType="button"
|
@@ -289,7 +287,7 @@ const ButtonComponent = React.forwardRef((prs,ref) => {
|
|
289
287
|
/>
|
290
288
|
) : null}
|
291
289
|
<Label
|
292
|
-
|
290
|
+
userSelect={false}
|
293
291
|
numberOfLines={1}
|
294
292
|
testID = {testID+"_Label"}
|
295
293
|
{...labelProps}
|
@@ -420,10 +418,6 @@ ButtonComponent.propTypes = {
|
|
420
418
|
* Make the label text upperCased. Note that this won't work if you pass React elements as children.
|
421
419
|
*/
|
422
420
|
upperCase:PropTypes.bool,
|
423
|
-
/**
|
424
|
-
* Accessibility label for the button. This is read by the screen reader when the user taps the button.
|
425
|
-
*/
|
426
|
-
accessibilityLabel:PropTypes.string,
|
427
421
|
/**
|
428
422
|
* Function to execute on press.
|
429
423
|
*/
|
@@ -21,7 +21,6 @@ const ChipComponent = React.forwardRef(({
|
|
21
21
|
avatar,
|
22
22
|
selected = false,
|
23
23
|
disabled = false,
|
24
|
-
accessibilityLabel,
|
25
24
|
closeIconAccessibilityLabel = 'Close',
|
26
25
|
onPress,
|
27
26
|
onLongPress,
|
@@ -127,7 +126,6 @@ const ChipComponent = React.forwardRef(({
|
|
127
126
|
onPressOut={handlePressOut}
|
128
127
|
underlayColor={underlayColor}
|
129
128
|
disabled={disabled}
|
130
|
-
accessibilityLabel={accessibilityLabel}
|
131
129
|
// @ts-expect-error We keep old a11y props for backwards compat with old RN versions
|
132
130
|
accessibilityTraits={accessibilityTraits}
|
133
131
|
accessibilityComponentType="button"
|
@@ -172,11 +170,11 @@ const ChipComponent = React.forwardRef(({
|
|
172
170
|
</View>
|
173
171
|
) : null}
|
174
172
|
<Text
|
175
|
-
selectable={false}
|
176
173
|
numberOfLines={1}
|
177
174
|
testID={testID+"_Text"}
|
178
175
|
{...labelProps}
|
179
176
|
style={StyleSheet.flatten([
|
177
|
+
{userSelect:"none"},
|
180
178
|
styles.text,
|
181
179
|
{
|
182
180
|
...theme.fonts.regular,
|
@@ -201,7 +199,7 @@ const ChipComponent = React.forwardRef(({
|
|
201
199
|
accessibilityTraits="button"
|
202
200
|
accessibilityComponentType="button"
|
203
201
|
//role="button"
|
204
|
-
|
202
|
+
aria-label={closeIconAccessibilityLabel}
|
205
203
|
testID={testID+"_CloseButtonRipple"}
|
206
204
|
>
|
207
205
|
<View testID={testID+"_ContentContainer"} style={[styles.icon, styles.closeIcon]}>
|
@@ -313,10 +311,6 @@ ChipComponent.propTypes = {
|
|
313
311
|
* Whether the chip is disabled. A disabled chip is greyed out and `onPress` is not called on touch.
|
314
312
|
*/
|
315
313
|
disabled: PropTypes.bool,
|
316
|
-
/**
|
317
|
-
* Accessibility label for the chip. This is read by the screen reader when the user taps the chip.
|
318
|
-
*/
|
319
|
-
accessibilityLabel: PropTypes.string,
|
320
314
|
/**
|
321
315
|
* Accessibility label for the close icon. This is read by the screen reader when the user taps the close icon.
|
322
316
|
*/
|
@@ -72,7 +72,7 @@ const ColorPickerComponent = React.forwardRef ((props,ref)=>{
|
|
72
72
|
//role="button"
|
73
73
|
disabled = {!isEditable}
|
74
74
|
pointerEvents = {pointerEvents}
|
75
|
-
|
75
|
+
aria-label={defaultStr(label,text)}
|
76
76
|
style = {[styles.container,containerProp]}
|
77
77
|
onPress={openPicker}
|
78
78
|
rippleColor={rippleColor}
|
@@ -146,7 +146,7 @@ const DatagridAccordionRow = React.forwardRef((props,ref)=>{
|
|
146
146
|
{title}
|
147
147
|
{description}
|
148
148
|
</View>
|
149
|
-
{right && React.isValidElement(right,true) ? <Label testID={testID+"_Right"} primary
|
149
|
+
{right && React.isValidElement(right,true) ? <Label testID={testID+"_Right"} primary {...rightProps} style={[{userSelect:selectable?"all":"none"},styles.right,styles.label,rStyles.lineHeight,rightProps.style]}>
|
150
150
|
{right}
|
151
151
|
</Label> : null}
|
152
152
|
</View>
|
@@ -364,12 +364,11 @@ const DatagridFactory = (Factory)=>{
|
|
364
364
|
const labelStyle = Object.assign({},StyleSheet.flatten(titleProps.style));
|
365
365
|
const titleColor = Colors.isValid(labelStyle.color)? labelStyle.color : Colors.isValid(titleProps.color)? titleProps.color : Colors.setAlpha(theme.colors.text,0.87);
|
366
366
|
this.accordionTitleProps = {
|
367
|
-
selectable: true,
|
368
367
|
ellipsizeMode: EllipsizeMode.tail,
|
369
368
|
numberOfLines : 1,
|
370
369
|
...titleProps,
|
371
370
|
color: titleColor,
|
372
|
-
style : [styles.title,rStyles.lineHeight,titleProps.style]
|
371
|
+
style : [styles.title,{userSelect:"all"},rStyles.lineHeight,titleProps.style]
|
373
372
|
}
|
374
373
|
filter = defaultFunc(filter,x=>true);
|
375
374
|
const showFooters = this.canShowFooters();
|
@@ -12,7 +12,7 @@ const selectedTitle ='#f50057';
|
|
12
12
|
|
13
13
|
export const getSelectedBackgroundColor = x=> theme.isDark()?theme.colors.surface : selectedBackgroundColor;
|
14
14
|
|
15
|
-
export default function DatagridActionsHeaderComponent({title,selected,testID,children,style,pointerEvents,...props}) {
|
15
|
+
export default function DatagridActionsHeaderComponent({title,leftActions,selected,testID,children,style,pointerEvents,...props}) {
|
16
16
|
title = React.isValidElement(title,true)? title : "";
|
17
17
|
const bStyle = selected && theme.isDark()? {
|
18
18
|
borderBottomColor : theme.colors.divider,
|
@@ -26,6 +26,7 @@ export default function DatagridActionsHeaderComponent({title,selected,testID,ch
|
|
26
26
|
{title ? <Label testID={testID+"Label"} style={[styles.title,selected?[styles.selectedTitle,{color:!theme.isDark()?selectedTitle:theme.colors.primaryOnSurface}]:undefined]}>
|
27
27
|
{title}
|
28
28
|
</Label> : null}
|
29
|
+
{React.isValidElement(leftActions) ? leftActions : null}
|
29
30
|
{React.isValidElement(children) && <View testID={testID+"_Content"} style={[styles.children,styles.row]}>
|
30
31
|
{children}
|
31
32
|
</View>}
|
@@ -38,6 +39,7 @@ const styles = StyleSheet.create({
|
|
38
39
|
flexDirection : 'row',
|
39
40
|
justifyContent:'space-between',
|
40
41
|
alignItems : 'center',
|
42
|
+
flexWrap : "wrap",
|
41
43
|
},
|
42
44
|
container : {
|
43
45
|
paddingVertical : 0,
|
@@ -13,8 +13,9 @@ import { useWindowDimensions } from "react-native";
|
|
13
13
|
import {useDatagrid,useGetSelectedRowsCount} from "../hooks";
|
14
14
|
export default function DatagridActions ({actions,title,actionProps,...props}){
|
15
15
|
const {context} = useDatagrid();
|
16
|
-
const
|
16
|
+
const actionsProps = defaultObj(context?.props?.actionsProps);
|
17
17
|
const selectedRowsCount = useGetSelectedRowsCount();
|
18
|
+
const leftActions = context?.props?.leftActions;
|
18
19
|
useWindowDimensions();
|
19
20
|
const selected = selectedRowsCount>0;
|
20
21
|
actions = selected ? context?.renderSelectedRowsActions.call(context,{}) : actions;
|
@@ -56,8 +57,11 @@ export default function DatagridActions ({actions,title,actionProps,...props}){
|
|
56
57
|
}
|
57
58
|
});
|
58
59
|
return <Header
|
60
|
+
{...actionsProps}
|
59
61
|
{...props}
|
62
|
+
style = {[actionsProps.style,props.style]}
|
60
63
|
title = {contextualTitle}
|
64
|
+
leftActions = {leftActions}
|
61
65
|
selected = {selected}
|
62
66
|
>
|
63
67
|
{children || <Label style={{padding:15}}>ACTIONS</Label>}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import theme from
|
1
|
+
import theme,{ StyleProps} from '$theme';
|
2
2
|
import APP from "$capp";
|
3
3
|
import {isMobileOrTabletMedia} from "$cplatform/dimensions";
|
4
4
|
import PropTypes from "prop-types";
|
@@ -4096,6 +4096,12 @@ CommonDatagridComponent.propTypes = {
|
|
4096
4096
|
baseId : PropTypes.string,
|
4097
4097
|
mobile: PropTypes.bool,
|
4098
4098
|
tablet: PropTypes.bool,
|
4099
|
+
/*** les props des actions du datagrid */
|
4100
|
+
actionsProps : PropTypes.shape({
|
4101
|
+
///style : les styles
|
4102
|
+
style : StyleProps,
|
4103
|
+
testID : PropTypes.string,///le test id
|
4104
|
+
}),
|
4099
4105
|
///pour l'affichage où non des filtres
|
4100
4106
|
toggleFilters : PropTypes.bool,
|
4101
4107
|
desktop: PropTypes.bool,
|
@@ -175,7 +175,7 @@ export const renderRowCell = (arg)=>{
|
|
175
175
|
return React.getTextContent(_render);
|
176
176
|
}
|
177
177
|
if((typeof _render ==='string' || typeof _render =='number')){
|
178
|
-
_render = <Label
|
178
|
+
_render = <Label userSelect>{_render}</Label>
|
179
179
|
}
|
180
180
|
_render = React.isValidElement(_render)|| Array.isArray(_render)?_render:null;
|
181
181
|
return {render:_render,style,extra,key};
|
@@ -10,6 +10,9 @@ export const locale = "fr";
|
|
10
10
|
|
11
11
|
export const toDateObj = (value,format,force)=>{
|
12
12
|
if(!value) return undefined;
|
13
|
+
if(Array.isArray(value)){
|
14
|
+
value = value[0] || value[1];
|
15
|
+
}
|
13
16
|
if(DateLib.isDateObj(value)) return value;
|
14
17
|
try {
|
15
18
|
const d = new Date(value);
|
@@ -111,7 +111,6 @@ export default class DropdownAlert extends Component {
|
|
111
111
|
renderTitle: PropTypes.func,
|
112
112
|
renderMessage: PropTypes.func,
|
113
113
|
testID: PropTypes.string,
|
114
|
-
accessibilityLabel: PropTypes.string,
|
115
114
|
accessible: PropTypes.bool,
|
116
115
|
titleTextProps: PropTypes.object,
|
117
116
|
messageTextProps: PropTypes.object,
|
@@ -199,7 +198,6 @@ export default class DropdownAlert extends Component {
|
|
199
198
|
renderTitle: undefined,
|
200
199
|
renderMessage: undefined,
|
201
200
|
testID: undefined,
|
202
|
-
accessibilityLabel: undefined,
|
203
201
|
accessible: false,
|
204
202
|
titleTextProps: undefined,
|
205
203
|
messageTextProps: undefined,
|
@@ -607,7 +605,6 @@ export default class DropdownAlert extends Component {
|
|
607
605
|
zIndex,
|
608
606
|
wrapperStyle,
|
609
607
|
tapToCloseEnabled,
|
610
|
-
accessibilityLabel,
|
611
608
|
testID:customTestId,
|
612
609
|
accessible,
|
613
610
|
contentContainerStyle,
|
@@ -669,7 +666,6 @@ export default class DropdownAlert extends Component {
|
|
669
666
|
disabled={!tapToCloseEnabled}
|
670
667
|
onLayout={(event) => this._onLayoutEvent(event)}
|
671
668
|
testID={testID}
|
672
|
-
accessibilityLabel={accessibilityLabel}
|
673
669
|
accessible={accessible}>
|
674
670
|
<View style={style} testID={testID+"_ContentContainer"}>
|
675
671
|
<View testID={testID+"_ContentWrapper"} style={[contentContainerStyle]}
|
@@ -14,7 +14,7 @@ import PropTypes from "prop-types";
|
|
14
14
|
* update by @borisFouomene. for usage, @see : https://callstack.github.io/react-native-paper/drawer-item.html
|
15
15
|
*/
|
16
16
|
const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContainerProps,labelProps,contentProps,label,text,
|
17
|
-
active,style,onPress,
|
17
|
+
active,style,onPress,isExpandable,right,divider, dividerProps,
|
18
18
|
testID,
|
19
19
|
left,
|
20
20
|
title,
|
@@ -46,11 +46,10 @@ const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContaine
|
|
46
46
|
left = React.isValidElement(left)? left : null;
|
47
47
|
|
48
48
|
borderRadius = typeof borderRadius =='number'? borderRadius : 18;
|
49
|
-
accessibilityLabel = defaultStr(accessibilityLabel);
|
50
49
|
const labelContent = React.useStableMemo(()=>{
|
51
50
|
const lProps = {
|
52
51
|
testID:testID+"_DrawerItemLabel",
|
53
|
-
|
52
|
+
userSelect:false,
|
54
53
|
numberOfLines:1,
|
55
54
|
...labelProps,
|
56
55
|
style : [{
|
@@ -85,7 +84,6 @@ const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContaine
|
|
85
84
|
accessibilityTraits={active ? ['button', 'selected'] : 'button'}
|
86
85
|
//accessibilityComponentType="button"
|
87
86
|
accessibilityState={{ selected: active }}
|
88
|
-
accessibilityLabel={accessibilityLabel}
|
89
87
|
>
|
90
88
|
<View {...contentContainerProps} style={[styles.contentContainer,contentContainerProps.style]} testID={testID+"_DrawerItemContentContainer"}>
|
91
89
|
<View {...contentProps} style={[styles.content,contentProps.style]} testID={testID+"_DrawerItemContent"}>
|
@@ -94,7 +92,7 @@ const DrawerItem = ({icon,iconProps,borderRadius,color,minimized,contentContaine
|
|
94
92
|
<Icon testID={testID+"_DrawerItemIcon"} icon={icon} {...iconProps}
|
95
93
|
style={[iconProps.style,styles.icon,!minimized?{
|
96
94
|
alignItems : 'flex-start'
|
97
|
-
}:{alignItems:isExpandable?'flex-end':'center'}]} tooltip={minimized?defaultStr(title,label
|
95
|
+
}:{alignItems:isExpandable?'flex-end':'center'}]} tooltip={minimized?defaultStr(title,label):""}
|
98
96
|
position={minimized?'top':"right"}
|
99
97
|
size={minimized ?MINIMIZED_ICON_SIZE : ICON_SIZE} onPress={minimized?onPress:undefined} color={contentColor} />
|
100
98
|
) : null}
|
@@ -122,8 +122,8 @@ DrawerItemsComponent.propTypes = {
|
|
122
122
|
|
123
123
|
const getDefaultProps = function(item){
|
124
124
|
if(!isObj(item)) return null;
|
125
|
-
item.label = defaultVal(item.label,item.text,item
|
126
|
-
item
|
125
|
+
item.label = defaultVal(item.label,item.text,item["aria-label"]);
|
126
|
+
item["aria-label"] = defaultVal(item["aria-label"],item.tooltip,item.label);
|
127
127
|
item.title = defaultVal(item.title,item.label);
|
128
128
|
return item;
|
129
129
|
}
|
@@ -602,9 +602,15 @@ class DropdownComponent extends AppComponent {
|
|
602
602
|
}
|
603
603
|
UNSAFE_componentWillReceiveProps(nextProps){
|
604
604
|
const {items,defaultValue,selected} = nextProps;
|
605
|
-
|
605
|
+
const isFunc = typeof nextProps.items == "function";
|
606
|
+
if(isFunc || !React.areEquals(items,this.props.items)){
|
606
607
|
const nState = this.prepareItems({items,defaultValue,selected});
|
607
|
-
return this.updateSelected(nState
|
608
|
+
return this.updateSelected(nState,!isFunc);
|
609
|
+
const val = this.prepareSelected({defaultValue});
|
610
|
+
if(!this.compare(val,this.state.selected)){
|
611
|
+
return this.selectValue(defaultValue,true);
|
612
|
+
}
|
613
|
+
return;
|
608
614
|
}
|
609
615
|
let value = this.prepareSelected({defaultValue});
|
610
616
|
let areEquals = !this.canHandleMultiple ? this.compare(value,this.state.selected) : false;
|
@@ -677,7 +683,6 @@ class DropdownComponent extends AppComponent {
|
|
677
683
|
helperText,
|
678
684
|
error,
|
679
685
|
onChange,
|
680
|
-
accessibilityLabel,
|
681
686
|
onMount,
|
682
687
|
filter,
|
683
688
|
onUnmount,
|
@@ -890,7 +895,7 @@ class DropdownComponent extends AppComponent {
|
|
890
895
|
disabled = {disabled}
|
891
896
|
onLayout={bindResizeEvents === false ? undefined : this.onLayout.bind(this)}
|
892
897
|
style = {{pointerEvents}}
|
893
|
-
|
898
|
+
aria-label={defaultStr(dropdownProps["aria-label"],label,text)}
|
894
899
|
testID = {testID}
|
895
900
|
>
|
896
901
|
<View {...dropdownProps} {...contentContainerProps} style={[contentContainerProps.style,{pointerEvents},flattenStyle]}
|
@@ -1282,7 +1287,7 @@ DropdownComponent.propTypes = {
|
|
1282
1287
|
placeholder : PropTypes.string,
|
1283
1288
|
inputProps : PropTypes.object,
|
1284
1289
|
selectedColor:PropTypes.string,
|
1285
|
-
|
1290
|
+
"aria-label" : PropTypes.string,
|
1286
1291
|
compare : PropTypes.func,
|
1287
1292
|
temProps : PropTypes.object,
|
1288
1293
|
itemLabel : PropTypes.string,//le nom du champ à utiliser pour le rendu du libelé la méthode appelée pour retourne le libelé de l'item
|
@@ -1290,7 +1295,11 @@ DropdownComponent.propTypes = {
|
|
1290
1295
|
renderItem : PropTypes.oneOfType([PropTypes.func]),
|
1291
1296
|
/*** la fonction permettant d'afficher le texte du dropdown */
|
1292
1297
|
renderText : PropTypes.func,
|
1293
|
-
items : PropTypes.oneOfType([
|
1298
|
+
items : PropTypes.oneOfType([
|
1299
|
+
PropTypes.object,
|
1300
|
+
PropTypes.array,
|
1301
|
+
PropTypes.func, //la fonction doit retourner, soit un tableau, soit un objet des données. elle ne doit en aucun cas retourner une promesse
|
1302
|
+
]),
|
1294
1303
|
/**** l'info bulle a associer à l'iconne addIcon */
|
1295
1304
|
addIcon : PropTypes.oneOfType([PropTypes.string,PropTypes.bool]), //l'icon plus
|
1296
1305
|
addIconTooltip : PropTypes.string,
|
@@ -27,12 +27,12 @@ const ErrorMessage = React.forwardRef(function(props,ref){
|
|
27
27
|
const pointerEvents = 'auto';
|
28
28
|
const {width,height} = useWindowDimensions();
|
29
29
|
return <Portal>
|
30
|
-
<View ref={ref} testID={`${testID}_ErrorMessageContainer`}
|
31
|
-
<View style={styles.content} testID={`${testID}_ErrorMessageContentContainer`}
|
30
|
+
<View ref={ref} testID={`${testID}_ErrorMessageContainer`} style={[{pointerEvents},styles.container,isWeb()?{position:'fixed'}:null,{backgroundColor:theme.colors.surface,width,height}]}>
|
31
|
+
<View style={[styles.content,{pointerEvents}]} testID={`${testID}_ErrorMessageContentContainer`}>
|
32
32
|
<Label style={styles.title}>Oops!</Label>
|
33
33
|
<Label style={styles.subtitle}>{'Une erreur est survenue'}</Label>
|
34
34
|
<Label style={styles.error}>{error.toString()}</Label>
|
35
|
-
<Button mode="contained"
|
35
|
+
<Button mode="contained" iconProps={{marginVertical:0,pointerEvents,paddingVertical:0}} icon='home-variant' style={{backgroundColor:theme.colors.primary,marginHorizontal:10}} labelStyle={{color:theme.colors.primaryLabel}} onPress={goToHome}>
|
36
36
|
Retour à l'accueil
|
37
37
|
</Button>
|
38
38
|
<Expandable title="Plus de détail sur l'erreur">
|
@@ -37,14 +37,14 @@ const ExpandableItem = ({left,right,title,description,
|
|
37
37
|
testID = defaultStr(testID,"RN_ExpandableItemComponent")
|
38
38
|
const renderDescription = (descriptionColor,description) => {
|
39
39
|
return typeof description === 'function' ? (description({
|
40
|
-
|
40
|
+
userSelect: false,
|
41
41
|
ellipsizeMode: descriptionEllipsizeMode,
|
42
42
|
color: descriptionColor,
|
43
43
|
fontSize: styles.description.fontSize,
|
44
44
|
})
|
45
45
|
) : (
|
46
46
|
<Label
|
47
|
-
|
47
|
+
userSelect={false}
|
48
48
|
numberOfLines={descriptionNumberOfLines}
|
49
49
|
ellipsizeMode={descriptionEllipsizeMode}
|
50
50
|
testID = {testID+"_Description"}
|
@@ -66,14 +66,14 @@ const ExpandableItem = ({left,right,title,description,
|
|
66
66
|
|
67
67
|
return typeof title === 'function' ? (
|
68
68
|
title({
|
69
|
-
|
69
|
+
userSelect: false,
|
70
70
|
ellipsizeMode: titleEllipsizeMode,
|
71
71
|
color: titleColor,
|
72
72
|
fontSize: styles.title.fontSize,
|
73
73
|
})
|
74
74
|
) : (
|
75
75
|
<Label
|
76
|
-
|
76
|
+
userSelect={false}
|
77
77
|
ellipsizeMode={titleEllipsizeMode}
|
78
78
|
numberOfLines={titleNumberOfLines}
|
79
79
|
testID = {testID+'_Title'}
|
@@ -25,7 +25,6 @@ const ExpandableComponent = React.forwardRef(({
|
|
25
25
|
onPress,
|
26
26
|
onLongPress,
|
27
27
|
expanded: expandedProp,
|
28
|
-
accessibilityLabel,
|
29
28
|
expandedIcon,
|
30
29
|
expandIconProps,
|
31
30
|
unexpandedIcon,
|
@@ -115,7 +114,6 @@ const ExpandableComponent = React.forwardRef(({
|
|
115
114
|
onPress={handlePressAction}
|
116
115
|
onLongPress={onLongPress}
|
117
116
|
accessibilityState={{ expanded: isExpanded }}
|
118
|
-
accessibilityLabel={accessibilityLabel}
|
119
117
|
testID={testID+"_Container"}
|
120
118
|
>
|
121
119
|
<View testID={testID+'_ContentContainer'} {...contentContainerProps} style={[styles.row,theme.styles.cursorPointer,contentContainerProps.style]} pointerEvents1="none">
|
@@ -127,7 +125,7 @@ const ExpandableComponent = React.forwardRef(({
|
|
127
125
|
: null}
|
128
126
|
<View testID={testID+'_Center'} {...centerProps} style={[styles.item, styles.content,styles.center,centerProps.style]}>
|
129
127
|
{isNonNullString(title)? <Label
|
130
|
-
|
128
|
+
userSelect={false}
|
131
129
|
numberOfLines={titleNumberOfLines}
|
132
130
|
{...titleProps}
|
133
131
|
>
|
@@ -136,7 +134,7 @@ const ExpandableComponent = React.forwardRef(({
|
|
136
134
|
{isNonNullString(description) ? (
|
137
135
|
<Label
|
138
136
|
testID={testID+'_Description'}
|
139
|
-
|
137
|
+
userSelect={false}
|
140
138
|
numberOfLines={descriptionNumberOfLines}
|
141
139
|
{...descriptionProps}
|
142
140
|
style={[
|
@@ -21,7 +21,6 @@ const FABGroup = ({
|
|
21
21
|
icon,
|
22
22
|
open,
|
23
23
|
onPress,
|
24
|
-
accessibilityLabel,
|
25
24
|
label,
|
26
25
|
style,
|
27
26
|
screenName,
|
@@ -170,7 +169,6 @@ const FABGroup = ({
|
|
170
169
|
label = {label}
|
171
170
|
icon={icon}
|
172
171
|
color={colorProp}
|
173
|
-
accessibilityLabel={accessibilityLabel}
|
174
172
|
// @ts-expect-error We keep old a11y props for backwards compat with old RN versions
|
175
173
|
accessibilityTraits="button"
|
176
174
|
accessibilityComponentType="button"
|
@@ -202,7 +200,6 @@ FABGroup.propTypes = {
|
|
202
200
|
* An action item should contain the following properties:
|
203
201
|
* - `icon`: icon to display (required)
|
204
202
|
* - `label`: optional label text
|
205
|
-
* - `accessibilityLabel`: accessibility label for the action, uses label by default if specified
|
206
203
|
* - `color`: custom icon color of the action item
|
207
204
|
* - `labelTextColor`: custom label text color of the action item
|
208
205
|
* - `style`: pass additional styles for the fab item, for example, `backgroundColor`
|
@@ -215,7 +212,6 @@ FABGroup.propTypes = {
|
|
215
212
|
label: PropTypes.string,
|
216
213
|
color: PropTypes.string,
|
217
214
|
labelTextColor: PropTypes.string,
|
218
|
-
accessibilityLabel: PropTypes.string,
|
219
215
|
style: StylePropTypes,
|
220
216
|
labelStyle: StylePropTypes,
|
221
217
|
small: PropTypes.bool,
|
@@ -230,7 +226,7 @@ FABGroup.propTypes = {
|
|
230
226
|
/**
|
231
227
|
* Accessibility label for the FAB. This is read by the screen reader when the user taps the FAB.
|
232
228
|
*/
|
233
|
-
|
229
|
+
"aria-label" : PropTypes.string,
|
234
230
|
/**
|
235
231
|
* Custom color for the `FAB`.
|
236
232
|
*/
|
@@ -272,7 +268,7 @@ FABGroup.propTypes = {
|
|
272
268
|
}
|
273
269
|
|
274
270
|
|
275
|
-
const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,open,close,testID:customTestID,labelStyle,
|
271
|
+
const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,open,close,testID:customTestID,labelStyle,icon,backgroundColor,scale,opacity,color,style,small,onPress,...rest}){
|
276
272
|
const disabled = typeof customDisabled =='boolean'? customDisabled : false;
|
277
273
|
const testID = defaultStr(customTestID,"RN_FabItemComponent")
|
278
274
|
style = StyleSheet.flatten(style) || {};
|
@@ -303,9 +299,9 @@ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,
|
|
303
299
|
]
|
304
300
|
}
|
305
301
|
onPress={_onPress}
|
306
|
-
|
307
|
-
|
308
|
-
?
|
302
|
+
aria-label ={
|
303
|
+
rest["aria-label"] !== 'undefined'
|
304
|
+
? rest["aria-label"]
|
309
305
|
: label
|
310
306
|
}
|
311
307
|
accessibilityTraits="button"
|
@@ -337,9 +333,9 @@ const _FabItem = function({children,label,disabled:customDisabled,pointerEvents,
|
|
337
333
|
]
|
338
334
|
}
|
339
335
|
onPress={_onPress}
|
340
|
-
|
341
|
-
typeof
|
342
|
-
?
|
336
|
+
aria-label={
|
337
|
+
typeof rest["aria-label"] !== 'undefined'
|
338
|
+
? rest["aria-label"]
|
343
339
|
: label
|
344
340
|
}
|
345
341
|
// @ts-expect-error We keep old a11y props for backwards compat with old RN versions
|
@@ -7,7 +7,7 @@ import {defaultObj} from "$cutils";
|
|
7
7
|
|
8
8
|
const FilterBetweenComponent = React.forwardRef(({inputProps,contentContainerProps,...props},ref)=>{
|
9
9
|
contentContainerProps = defaultObj(contentContainerProps);
|
10
|
-
contentContainerProps.
|
10
|
+
contentContainerProps.style = [{pointerEvents: "auto"},contentContainerProps.style];
|
11
11
|
return <TextField
|
12
12
|
ref = {ref}
|
13
13
|
{...props}
|
@@ -257,7 +257,7 @@ export default function ImageComponent(props){
|
|
257
257
|
{...menuProps}
|
258
258
|
disabled = {isDisabled}
|
259
259
|
anchor = {(props)=>{
|
260
|
-
return <View
|
260
|
+
return <View aria-label={_label} testID={testID+"_Container"} {...containerProps} style={[label?styles.align:null,containerProps.style,{pointerEvents:disabled|| readOnly? "none":"auto"},label?styles.container:null]}>
|
261
261
|
{<Label testID={testID+"_Label"} {...labelProps} disabled={disabled} style={[styles.label,labelProps.style]}>{label}</Label>}
|
262
262
|
{<Avatar
|
263
263
|
resizeMethod = {"auto"}
|
@@ -10,7 +10,7 @@ const defaultSelectable = canTextBeSelectable();
|
|
10
10
|
|
11
11
|
export const EllipsizeMode = {'head':'head','middle':'middle', 'tail':'tail' , 'clip':'clip'}
|
12
12
|
|
13
|
-
const LabelComponent = React.forwardRef(({ children,
|
13
|
+
const LabelComponent = React.forwardRef(({ children,userSelect,role,color,upperCase,fontSize,testID,wrap,id,wrapText,error,underlined,splitText,secondary,primary,bold,textBold,disabled,text,style,...rest},ref)=> {
|
14
14
|
children = defaultVal(children,text);
|
15
15
|
let isText = false;
|
16
16
|
if(!React.isValidElement(children) && Array.isArray(children) && children.length){
|
@@ -58,8 +58,8 @@ const LabelComponent = React.forwardRef(({ children,selectable,role,color,upperC
|
|
58
58
|
if(disabled){
|
59
59
|
r1.pointerEvents = "none";
|
60
60
|
}
|
61
|
-
|
62
|
-
r2.userSelect = !
|
61
|
+
userSelect = userSelect === false || defaultSelectable === false ? false : true;
|
62
|
+
r2.userSelect = !userSelect?"none":"all";
|
63
63
|
if(isNonNullString(children) || isText || typeof children ==='number'){
|
64
64
|
if(!isText){
|
65
65
|
children +="";
|
@@ -70,7 +70,7 @@ const LabelComponent = React.forwardRef(({ children,selectable,role,color,upperC
|
|
70
70
|
if(fontSize){
|
71
71
|
r1.fontSize = fontSize;
|
72
72
|
}
|
73
|
-
if(
|
73
|
+
if(userSelect){
|
74
74
|
r2.userSelect = "text";
|
75
75
|
}
|
76
76
|
return (<Text allowFontScaling = {true} ref = {ref}
|
@@ -117,7 +117,7 @@ LabelComponentExported.propTypes = {
|
|
117
117
|
error : PropTypes.bool,///si le label est liée à une text field sur laquelle il y a erreur
|
118
118
|
secondary : PropTypes.bool,
|
119
119
|
color : PropTypes.string,
|
120
|
-
|
120
|
+
userSelect : PropTypes.bool, //si le texte est sélectionnable
|
121
121
|
underlined : PropTypes.bool,//si le style underlined sera appliqué au label
|
122
122
|
splitText : PropTypes.bool,///si le texte lorsqu'il est long sera splité,
|
123
123
|
/*useSelect : PropTypes.oneOfType([
|
@@ -34,7 +34,6 @@ const MenuItemComponent = React.forwardRef(({
|
|
34
34
|
secondary,
|
35
35
|
iconProps,
|
36
36
|
isBottomSheetItem,
|
37
|
-
accessibilityLabel,
|
38
37
|
right,
|
39
38
|
labelProps,
|
40
39
|
contentContainerProps,
|
@@ -79,14 +78,12 @@ const MenuItemComponent = React.forwardRef(({
|
|
79
78
|
{...defaultObj(rest)}
|
80
79
|
tooltip = {defaultVal(rest.tooltip,title,label,text)}
|
81
80
|
Component = {TouchableRipple}
|
82
|
-
style={[styles.container, style,maxWidthStyle,disabledStyle]}
|
81
|
+
style={[styles.container,{pointerEvents}, style,maxWidthStyle,disabledStyle]}
|
83
82
|
onPress={onPress}
|
84
83
|
disabled={disabled}
|
85
84
|
testID={testID}
|
86
|
-
accessibilityLabel={accessibilityLabel}
|
87
85
|
role="menuitem"
|
88
86
|
accessibilityState={{ disabled }}
|
89
|
-
pointerEvents = {pointerEvents}
|
90
87
|
>
|
91
88
|
<View style={[styles.row]} ref={ref} testID={testID+"_ContentContainer"}>
|
92
89
|
{icon ? (
|
@@ -111,7 +108,7 @@ const MenuItemComponent = React.forwardRef(({
|
|
111
108
|
>
|
112
109
|
<Label
|
113
110
|
testID={testID+"_Label"}
|
114
|
-
|
111
|
+
userSelect={false}
|
115
112
|
numberOfLines={1}
|
116
113
|
splitText
|
117
114
|
{...labelProps}
|
@@ -218,7 +215,7 @@ MenuItemComponent.propTypes = {
|
|
218
215
|
/**
|
219
216
|
* Accessibility label for the Touchable. This is read by the screen reader when the user taps the component.
|
220
217
|
*/
|
221
|
-
|
218
|
+
"aria-label" : PropTypes.string,
|
222
219
|
};
|
223
220
|
|
224
221
|
|
@@ -473,7 +473,7 @@ class _Menu extends AppComponent {
|
|
473
473
|
<Portal>
|
474
474
|
{rendered ? <TouchableWithoutFeedback
|
475
475
|
testID={testID+"_Menu_TouchableWithoutFeedBack"}
|
476
|
-
|
476
|
+
aria-label={overlayAccessibilityLabel}
|
477
477
|
//role="button"
|
478
478
|
onPress={onDismiss}
|
479
479
|
style = {[hiddenStyle]}
|
@@ -487,8 +487,7 @@ class _Menu extends AppComponent {
|
|
487
487
|
}}
|
488
488
|
collapsable={false}
|
489
489
|
accessibilityViewIsModal={visible}
|
490
|
-
style={[styles.wrapper, positionStyle, style,hiddenStyle]}
|
491
|
-
pointerEvents={visible ? 'box-none' : 'none'}
|
490
|
+
style={[styles.wrapper, positionStyle, style,hiddenStyle,{pointerEvents:visible ? 'box-none' : 'none'}]}
|
492
491
|
onAccessibilityEscape={onDismiss}
|
493
492
|
>
|
494
493
|
{rendered?<Animated.View style={{ transform: positionTransforms }} testID={testID+"_Animated"}>
|
@@ -120,7 +120,7 @@ const ModalComponent = React.forwardRef((props,ref)=>{
|
|
120
120
|
animationPosition = {animationPosition}
|
121
121
|
>
|
122
122
|
<TouchableWithoutFeedback
|
123
|
-
|
123
|
+
aria-label={overlayAccessibilityLabel}
|
124
124
|
//role="button"
|
125
125
|
disabled={!dismissable}
|
126
126
|
onPress={dismissable ? hideModal : undefined}
|
@@ -157,7 +157,7 @@ export default function PhoneInputComponent(props){
|
|
157
157
|
helperText = {helperText}
|
158
158
|
contentContainerProps = {contentContainerProps}
|
159
159
|
label = {label}
|
160
|
-
|
160
|
+
aria-label = {defaultStr(label,text)}
|
161
161
|
formatValue = {false}
|
162
162
|
disabled = {props.disabled}
|
163
163
|
pointerEvents = {pointerEvents}
|
@@ -285,7 +285,7 @@ const SimpleSelect = React.forwardRef((props,ref)=>{
|
|
285
285
|
{...anchorContainerProps}
|
286
286
|
onPress={show}
|
287
287
|
disabled = {!isEditable}
|
288
|
-
|
288
|
+
aria-label={defaultStr(label,text)}
|
289
289
|
rippleColor={undefined}
|
290
290
|
onLayout={onLayout}
|
291
291
|
style = {[{pointerEvents},anchorContainerProps.style]}
|
@@ -464,7 +464,7 @@ const TextFieldComponent = React.forwardRef((componentProps,inputRef)=>{
|
|
464
464
|
{...iconProps}
|
465
465
|
disabled = {!isEditable}
|
466
466
|
forceTextInputFocus={false}
|
467
|
-
|
467
|
+
aria-label ={!secureTextEntry?"Cliquez pour masquer le contenu":"Cliquez pour afficher le contenu"}
|
468
468
|
icon={secureTextEntry?'eye-off':'eye'}
|
469
469
|
onPress={()=>{
|
470
470
|
setSecureTextEntry(!secureTextEntry);
|
@@ -1 +1 @@
|
|
1
|
-
module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.
|
1
|
+
module.exports = {"@fto-consult/expo-ui":{"name":"@fto-consult/expo-ui","version":"6.83.0","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.65.12","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.20","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-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"}};
|