@wecareu/select 0.1.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/README.md +165 -0
- package/lib/commonjs/Select.js +272 -0
- package/lib/commonjs/Select.js.map +1 -0
- package/lib/commonjs/Select.types.js +6 -0
- package/lib/commonjs/Select.types.js.map +1 -0
- package/lib/commonjs/SelectChip.js +74 -0
- package/lib/commonjs/SelectChip.js.map +1 -0
- package/lib/commonjs/SelectDropdown.js +156 -0
- package/lib/commonjs/SelectDropdown.js.map +1 -0
- package/lib/commonjs/SelectErrorMessage.js +32 -0
- package/lib/commonjs/SelectErrorMessage.js.map +1 -0
- package/lib/commonjs/SelectIcon.js +64 -0
- package/lib/commonjs/SelectIcon.js.map +1 -0
- package/lib/commonjs/SelectOption.js +140 -0
- package/lib/commonjs/SelectOption.js.map +1 -0
- package/lib/commonjs/SelectSearch.js +79 -0
- package/lib/commonjs/SelectSearch.js.map +1 -0
- package/lib/commonjs/animations/shake.js +45 -0
- package/lib/commonjs/animations/shake.js.map +1 -0
- package/lib/commonjs/index.js +13 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/index.stories.js +383 -0
- package/lib/commonjs/index.stories.js.map +1 -0
- package/lib/module/Select.js +265 -0
- package/lib/module/Select.js.map +1 -0
- package/lib/module/Select.types.js +2 -0
- package/lib/module/Select.types.js.map +1 -0
- package/lib/module/SelectChip.js +67 -0
- package/lib/module/SelectChip.js.map +1 -0
- package/lib/module/SelectDropdown.js +149 -0
- package/lib/module/SelectDropdown.js.map +1 -0
- package/lib/module/SelectErrorMessage.js +25 -0
- package/lib/module/SelectErrorMessage.js.map +1 -0
- package/lib/module/SelectIcon.js +57 -0
- package/lib/module/SelectIcon.js.map +1 -0
- package/lib/module/SelectOption.js +133 -0
- package/lib/module/SelectOption.js.map +1 -0
- package/lib/module/SelectSearch.js +72 -0
- package/lib/module/SelectSearch.js.map +1 -0
- package/lib/module/animations/shake.js +39 -0
- package/lib/module/animations/shake.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.stories.js +376 -0
- package/lib/module/index.stories.js.map +1 -0
- package/lib/typescript/src/Select.d.ts +3 -0
- package/lib/typescript/src/Select.d.ts.map +1 -0
- package/lib/typescript/src/Select.types.d.ts +245 -0
- package/lib/typescript/src/Select.types.d.ts.map +1 -0
- package/lib/typescript/src/SelectChip.d.ts +3 -0
- package/lib/typescript/src/SelectChip.d.ts.map +1 -0
- package/lib/typescript/src/SelectDropdown.d.ts +3 -0
- package/lib/typescript/src/SelectDropdown.d.ts.map +1 -0
- package/lib/typescript/src/SelectErrorMessage.d.ts +3 -0
- package/lib/typescript/src/SelectErrorMessage.d.ts.map +1 -0
- package/lib/typescript/src/SelectIcon.d.ts +3 -0
- package/lib/typescript/src/SelectIcon.d.ts.map +1 -0
- package/lib/typescript/src/SelectOption.d.ts +3 -0
- package/lib/typescript/src/SelectOption.d.ts.map +1 -0
- package/lib/typescript/src/SelectSearch.d.ts +3 -0
- package/lib/typescript/src/SelectSearch.d.ts.map +1 -0
- package/lib/typescript/src/animations/shake.d.ts +32 -0
- package/lib/typescript/src/animations/shake.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +66 -0
- package/src/Select.tsx +338 -0
- package/src/Select.types.ts +256 -0
- package/src/SelectChip.tsx +75 -0
- package/src/SelectDropdown.tsx +184 -0
- package/src/SelectErrorMessage.tsx +31 -0
- package/src/SelectIcon.tsx +63 -0
- package/src/SelectOption.tsx +168 -0
- package/src/SelectSearch.tsx +81 -0
- package/src/animations/shake.ts +76 -0
- package/src/index.stories.tsx +336 -0
- package/src/index.tsx +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Animated","Pressable","ScrollView","StyleSheet","Text","View","useTheme","useShakeAnimation","SelectChip","SelectDropdown","SelectErrorMessage","SelectIcon","Select","props","theme","styles","useMemo","createStyles","clearable","disabled","errorMessage","inputError","labels","leftIcon","multiple","onValidation","options","placeholder","readonly","required","searchable","style","testID","value","length","console","error","isInteractive","isOpen","setIsOpen","useState","touched","setTouched","animatedStyle","triggerShake","distance","spacing","sm","isEmpty","undefined","internalHasError","useEffect","shouldShowError","requiredErrorMessage","requiredError","effectiveErrorMessage","previousErrorRef","useRef","current","selectedValues","selectedOptions","filter","o","includes","singleLabel","find","label","handleOpen","useCallback","handleClose","handleToggleOption","option","multiProps","isSelected","next","v","onChange","singleProps","handleClear","handleRemoveChip","optionValue","showClearButton","renderFieldContent","createElement","horizontal","keyboardShouldPersistTaps","showsHorizontalScrollIndicator","chipsScroll","contentContainerStyle","chipsContainer","map","opt","key","String","onRemove","numberOfLines","selectedLabel","wrapper","accessible","container","containerDisabled","containerError","iconLeft","accessibilityHint","accessibilityLabel","accessibilityRole","accessibilityState","expanded","onPress","fieldPressable","rightIcons","hitSlop","color","colors","text","tertiary","name","size","md","message","isMulti","onClose","onToggleOption","create","alignItems","flexDirection","gap","xs","paddingVertical","flex","backgroundColor","borderColor","brand","primary","borderRadius","radius","xxl","borderWidth","minHeight","paddingHorizontal","xl","width","surface","border","status","justifyContent","marginRight","fontFamily","typography","body","lineHeight","bodySmall","textAlign","marginLeft"],"sourceRoot":"..\\..\\src","sources":["Select.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["Select.types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { Icon } from '@wecareu/icons';
|
|
4
|
+
import { useTheme } from '@wecareu/theme';
|
|
5
|
+
export function SelectChip({
|
|
6
|
+
disabled,
|
|
7
|
+
label,
|
|
8
|
+
onRemove
|
|
9
|
+
}) {
|
|
10
|
+
const theme = useTheme();
|
|
11
|
+
const styles = React.useMemo(() => createStyles(theme), [theme]);
|
|
12
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
13
|
+
accessibilityLabel: label,
|
|
14
|
+
accessibilityRole: "none",
|
|
15
|
+
style: [styles.chip, disabled && styles.chipDisabled]
|
|
16
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
17
|
+
numberOfLines: 1,
|
|
18
|
+
style: [styles.label, disabled && styles.labelDisabled]
|
|
19
|
+
}, label), onRemove && !disabled ? /*#__PURE__*/React.createElement(Pressable, {
|
|
20
|
+
accessibilityHint: `Remove ${label}`,
|
|
21
|
+
accessibilityLabel: `Remove ${label}`,
|
|
22
|
+
accessibilityRole: "button",
|
|
23
|
+
hitSlop: 4,
|
|
24
|
+
onPress: onRemove,
|
|
25
|
+
style: styles.removeButton
|
|
26
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
27
|
+
color: theme.colors.brand.primary,
|
|
28
|
+
name: "close",
|
|
29
|
+
size: 10
|
|
30
|
+
})) : null);
|
|
31
|
+
}
|
|
32
|
+
function createStyles(theme) {
|
|
33
|
+
return StyleSheet.create({
|
|
34
|
+
chip: {
|
|
35
|
+
alignItems: 'center',
|
|
36
|
+
backgroundColor: theme.colors.surface.secondary,
|
|
37
|
+
borderColor: theme.colors.brand.primary,
|
|
38
|
+
borderRadius: theme.radius.sm,
|
|
39
|
+
borderWidth: 1,
|
|
40
|
+
flexDirection: 'row',
|
|
41
|
+
flexShrink: 1,
|
|
42
|
+
gap: 4,
|
|
43
|
+
maxWidth: 120,
|
|
44
|
+
paddingHorizontal: theme.spacing.xs,
|
|
45
|
+
paddingVertical: 2
|
|
46
|
+
},
|
|
47
|
+
chipDisabled: {
|
|
48
|
+
backgroundColor: theme.colors.surface.disabled,
|
|
49
|
+
borderColor: theme.colors.border.disabled
|
|
50
|
+
},
|
|
51
|
+
label: {
|
|
52
|
+
color: theme.colors.brand.primary,
|
|
53
|
+
flexShrink: 1,
|
|
54
|
+
fontFamily: theme.typography.fontFamily.caption,
|
|
55
|
+
fontSize: theme.typography.fontSize.xs,
|
|
56
|
+
lineHeight: theme.typography.lineHeight.labelSmall
|
|
57
|
+
},
|
|
58
|
+
labelDisabled: {
|
|
59
|
+
color: theme.colors.text.disabled
|
|
60
|
+
},
|
|
61
|
+
removeButton: {
|
|
62
|
+
alignItems: 'center',
|
|
63
|
+
justifyContent: 'center'
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=SelectChip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","Text","View","Icon","useTheme","SelectChip","disabled","label","onRemove","theme","styles","useMemo","createStyles","createElement","accessibilityLabel","accessibilityRole","style","chip","chipDisabled","numberOfLines","labelDisabled","accessibilityHint","hitSlop","onPress","removeButton","color","colors","brand","primary","name","size","create","alignItems","backgroundColor","surface","secondary","borderColor","borderRadius","radius","sm","borderWidth","flexDirection","flexShrink","gap","maxWidth","paddingHorizontal","spacing","xs","paddingVertical","border","fontFamily","typography","caption","fontSize","lineHeight","labelSmall","text","justifyContent"],"sourceRoot":"..\\..\\src","sources":["SelectChip.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Animated, FlatList, KeyboardAvoidingView, Modal, Platform, Pressable, StyleSheet, View } from 'react-native';
|
|
3
|
+
import { useTheme } from '@wecareu/theme';
|
|
4
|
+
import { SelectOptionItem } from './SelectOption';
|
|
5
|
+
import { SelectSearch } from './SelectSearch';
|
|
6
|
+
const ANIMATION_DURATION = 250;
|
|
7
|
+
const INITIAL_RENDER_COUNT = 20;
|
|
8
|
+
const MAX_RENDER_BATCH = 20;
|
|
9
|
+
const WINDOW_SIZE = 5;
|
|
10
|
+
export function SelectDropdown({
|
|
11
|
+
isMulti,
|
|
12
|
+
isOpen,
|
|
13
|
+
onClose,
|
|
14
|
+
onToggleOption,
|
|
15
|
+
options,
|
|
16
|
+
searchable,
|
|
17
|
+
selectedValues
|
|
18
|
+
}) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const styles = React.useMemo(() => createStyles(theme), [theme]);
|
|
21
|
+
const translateY = React.useRef(new Animated.Value(500)).current;
|
|
22
|
+
const overlayOpacity = React.useRef(new Animated.Value(0)).current;
|
|
23
|
+
const [searchQuery, setSearchQuery] = React.useState('');
|
|
24
|
+
React.useEffect(() => {
|
|
25
|
+
if (isOpen) {
|
|
26
|
+
setSearchQuery('');
|
|
27
|
+
Animated.parallel([Animated.timing(translateY, {
|
|
28
|
+
duration: ANIMATION_DURATION,
|
|
29
|
+
toValue: 0,
|
|
30
|
+
useNativeDriver: true
|
|
31
|
+
}), Animated.timing(overlayOpacity, {
|
|
32
|
+
duration: ANIMATION_DURATION,
|
|
33
|
+
toValue: 1,
|
|
34
|
+
useNativeDriver: true
|
|
35
|
+
})]).start();
|
|
36
|
+
} else {
|
|
37
|
+
Animated.parallel([Animated.timing(translateY, {
|
|
38
|
+
duration: ANIMATION_DURATION,
|
|
39
|
+
toValue: 500,
|
|
40
|
+
useNativeDriver: true
|
|
41
|
+
}), Animated.timing(overlayOpacity, {
|
|
42
|
+
duration: ANIMATION_DURATION,
|
|
43
|
+
toValue: 0,
|
|
44
|
+
useNativeDriver: true
|
|
45
|
+
})]).start();
|
|
46
|
+
}
|
|
47
|
+
}, [isOpen, overlayOpacity, translateY]);
|
|
48
|
+
const filteredOptions = React.useMemo(() => {
|
|
49
|
+
if (!searchQuery.trim()) {
|
|
50
|
+
return options;
|
|
51
|
+
}
|
|
52
|
+
const query = searchQuery.toLowerCase().trim();
|
|
53
|
+
return options.filter(opt => opt.label.toLowerCase().includes(query));
|
|
54
|
+
}, [options, searchQuery]);
|
|
55
|
+
const renderItem = React.useCallback(({
|
|
56
|
+
item
|
|
57
|
+
}) => /*#__PURE__*/React.createElement(SelectOptionItem, {
|
|
58
|
+
disabled: item.disabled,
|
|
59
|
+
isMulti: isMulti,
|
|
60
|
+
isSelected: selectedValues.includes(item.value),
|
|
61
|
+
onPress: onToggleOption,
|
|
62
|
+
option: item
|
|
63
|
+
}), [isMulti, onToggleOption, selectedValues]);
|
|
64
|
+
const keyExtractor = React.useCallback(item => String(item.value), []);
|
|
65
|
+
const itemSeparator = React.useCallback(() => /*#__PURE__*/React.createElement(View, {
|
|
66
|
+
style: styles.separator
|
|
67
|
+
}), [styles.separator]);
|
|
68
|
+
return /*#__PURE__*/React.createElement(Modal, {
|
|
69
|
+
accessibilityViewIsModal: true,
|
|
70
|
+
animationType: "none",
|
|
71
|
+
onRequestClose: onClose,
|
|
72
|
+
statusBarTranslucent: true,
|
|
73
|
+
transparent: true,
|
|
74
|
+
visible: isOpen
|
|
75
|
+
}, /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
|
|
76
|
+
behavior: Platform.OS === 'ios' ? 'padding' : undefined,
|
|
77
|
+
style: styles.keyboardView
|
|
78
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
79
|
+
style: [styles.overlay, {
|
|
80
|
+
opacity: overlayOpacity
|
|
81
|
+
}]
|
|
82
|
+
}, /*#__PURE__*/React.createElement(Pressable, {
|
|
83
|
+
accessibilityLabel: "Close dropdown",
|
|
84
|
+
style: styles.overlayPressable,
|
|
85
|
+
onPress: onClose
|
|
86
|
+
})), /*#__PURE__*/React.createElement(Animated.View, {
|
|
87
|
+
style: [styles.sheet, {
|
|
88
|
+
transform: [{
|
|
89
|
+
translateY
|
|
90
|
+
}]
|
|
91
|
+
}]
|
|
92
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
93
|
+
style: styles.dragHandle
|
|
94
|
+
}), searchable ? /*#__PURE__*/React.createElement(SelectSearch, {
|
|
95
|
+
onChangeText: setSearchQuery,
|
|
96
|
+
value: searchQuery
|
|
97
|
+
}) : null, /*#__PURE__*/React.createElement(FlatList, {
|
|
98
|
+
ItemSeparatorComponent: itemSeparator,
|
|
99
|
+
contentContainerStyle: styles.listContent,
|
|
100
|
+
data: filteredOptions,
|
|
101
|
+
extraData: selectedValues,
|
|
102
|
+
initialNumToRender: INITIAL_RENDER_COUNT,
|
|
103
|
+
keyExtractor: keyExtractor,
|
|
104
|
+
keyboardShouldPersistTaps: "handled",
|
|
105
|
+
maxToRenderPerBatch: MAX_RENDER_BATCH,
|
|
106
|
+
renderItem: renderItem,
|
|
107
|
+
windowSize: WINDOW_SIZE
|
|
108
|
+
}))));
|
|
109
|
+
}
|
|
110
|
+
function createStyles(theme) {
|
|
111
|
+
return StyleSheet.create({
|
|
112
|
+
dragHandle: {
|
|
113
|
+
alignSelf: 'center',
|
|
114
|
+
backgroundColor: theme.colors.border.secondary,
|
|
115
|
+
borderRadius: 2,
|
|
116
|
+
height: 4,
|
|
117
|
+
marginBottom: theme.spacing.xs,
|
|
118
|
+
marginTop: theme.spacing.sm,
|
|
119
|
+
width: 40
|
|
120
|
+
},
|
|
121
|
+
keyboardView: {
|
|
122
|
+
flex: 1,
|
|
123
|
+
justifyContent: 'flex-end'
|
|
124
|
+
},
|
|
125
|
+
listContent: {
|
|
126
|
+
paddingBottom: theme.spacing.xl
|
|
127
|
+
},
|
|
128
|
+
overlay: {
|
|
129
|
+
...StyleSheet.absoluteFillObject,
|
|
130
|
+
backgroundColor: theme.colors.alpha?.overlay ?? 'rgba(0,0,0,0.5)'
|
|
131
|
+
},
|
|
132
|
+
overlayPressable: {
|
|
133
|
+
flex: 1
|
|
134
|
+
},
|
|
135
|
+
separator: {
|
|
136
|
+
backgroundColor: theme.colors.border.secondary,
|
|
137
|
+
height: StyleSheet.hairlineWidth,
|
|
138
|
+
marginLeft: theme.spacing.md
|
|
139
|
+
},
|
|
140
|
+
sheet: {
|
|
141
|
+
backgroundColor: theme.colors.background.primary,
|
|
142
|
+
borderTopLeftRadius: theme.radius.xl,
|
|
143
|
+
borderTopRightRadius: theme.radius.xl,
|
|
144
|
+
maxHeight: '70%',
|
|
145
|
+
...theme.colors.shadowStyles.card
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=SelectDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Animated","FlatList","KeyboardAvoidingView","Modal","Platform","Pressable","StyleSheet","View","useTheme","SelectOptionItem","SelectSearch","ANIMATION_DURATION","INITIAL_RENDER_COUNT","MAX_RENDER_BATCH","WINDOW_SIZE","SelectDropdown","isMulti","isOpen","onClose","onToggleOption","options","searchable","selectedValues","theme","styles","useMemo","createStyles","translateY","useRef","Value","current","overlayOpacity","searchQuery","setSearchQuery","useState","useEffect","parallel","timing","duration","toValue","useNativeDriver","start","filteredOptions","trim","query","toLowerCase","filter","opt","label","includes","renderItem","useCallback","item","createElement","disabled","isSelected","value","onPress","option","keyExtractor","String","itemSeparator","style","separator","accessibilityViewIsModal","animationType","onRequestClose","statusBarTranslucent","transparent","visible","behavior","OS","undefined","keyboardView","overlay","opacity","accessibilityLabel","overlayPressable","sheet","transform","dragHandle","onChangeText","ItemSeparatorComponent","contentContainerStyle","listContent","data","extraData","initialNumToRender","keyboardShouldPersistTaps","maxToRenderPerBatch","windowSize","create","alignSelf","backgroundColor","colors","border","secondary","borderRadius","height","marginBottom","spacing","xs","marginTop","sm","width","flex","justifyContent","paddingBottom","xl","absoluteFillObject","alpha","hairlineWidth","marginLeft","md","background","primary","borderTopLeftRadius","radius","borderTopRightRadius","maxHeight","shadowStyles","card"],"sourceRoot":"..\\..\\src","sources":["SelectDropdown.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Text } from 'react-native';
|
|
3
|
+
import { useTheme } from '@wecareu/theme';
|
|
4
|
+
export function SelectErrorMessage({
|
|
5
|
+
message,
|
|
6
|
+
testID
|
|
7
|
+
}) {
|
|
8
|
+
const theme = useTheme();
|
|
9
|
+
const errorTextStyle = React.useMemo(() => ({
|
|
10
|
+
color: theme.colors.status.error,
|
|
11
|
+
fontFamily: theme.typography.fontFamily.caption,
|
|
12
|
+
fontSize: theme.typography.fontSize.sm,
|
|
13
|
+
lineHeight: theme.typography.lineHeight.labelMedium,
|
|
14
|
+
marginTop: theme.spacing.xs
|
|
15
|
+
}), [theme]);
|
|
16
|
+
if (!message) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return /*#__PURE__*/React.createElement(Text, {
|
|
20
|
+
accessibilityLiveRegion: "polite",
|
|
21
|
+
style: errorTextStyle,
|
|
22
|
+
testID: testID
|
|
23
|
+
}, message);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=SelectErrorMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Text","useTheme","SelectErrorMessage","message","testID","theme","errorTextStyle","useMemo","color","colors","status","error","fontFamily","typography","caption","fontSize","sm","lineHeight","labelMedium","marginTop","spacing","xs","createElement","accessibilityLiveRegion","style"],"sourceRoot":"..\\..\\src","sources":["SelectErrorMessage.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,QAAQ,QAAQ,gBAAgB;AAIzC,OAAO,SAASC,kBAAkBA,CAAC;EAAEC,OAAO;EAAEC;AAAgC,CAAC,EAAsB;EACnG,MAAMC,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAMK,cAAc,GAAGP,KAAK,CAACQ,OAAO,CAClC,OAAO;IACLC,KAAK,EAAEH,KAAK,CAACI,MAAM,CAACC,MAAM,CAACC,KAAK;IAChCC,UAAU,EAAEP,KAAK,CAACQ,UAAU,CAACD,UAAU,CAACE,OAAO;IAC/CC,QAAQ,EAAEV,KAAK,CAACQ,UAAU,CAACE,QAAQ,CAACC,EAAE;IACtCC,UAAU,EAAEZ,KAAK,CAACQ,UAAU,CAACI,UAAU,CAACC,WAAW;IACnDC,SAAS,EAAEd,KAAK,CAACe,OAAO,CAACC;EAC3B,CAAC,CAAC,EACF,CAAChB,KAAK,CACR,CAAC;EAED,IAAI,CAACF,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,oBACEJ,KAAA,CAAAuB,aAAA,CAACtB,IAAI;IAACuB,uBAAuB,EAAC,QAAQ;IAACC,KAAK,EAAElB,cAAe;IAACF,MAAM,EAAEA;EAAO,GAC1ED,OACG,CAAC;AAEX","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Pressable, StyleSheet, View } from 'react-native';
|
|
3
|
+
import { Icon } from '@wecareu/icons';
|
|
4
|
+
import { useTheme } from '@wecareu/theme';
|
|
5
|
+
export function SelectIcon({
|
|
6
|
+
accessibilityLabel,
|
|
7
|
+
color,
|
|
8
|
+
name,
|
|
9
|
+
onPress,
|
|
10
|
+
size,
|
|
11
|
+
testID
|
|
12
|
+
}) {
|
|
13
|
+
const theme = useTheme();
|
|
14
|
+
const iconColor = color ?? theme.colors.text.tertiary;
|
|
15
|
+
const iconSize = size ?? theme.spacing.lg;
|
|
16
|
+
const hitSlop = React.useMemo(() => ({
|
|
17
|
+
bottom: theme.spacing.xs,
|
|
18
|
+
left: theme.spacing.xs,
|
|
19
|
+
right: theme.spacing.xs,
|
|
20
|
+
top: theme.spacing.xs
|
|
21
|
+
}), [theme.spacing.xs]);
|
|
22
|
+
if (onPress) {
|
|
23
|
+
return /*#__PURE__*/React.createElement(Pressable, {
|
|
24
|
+
accessibilityLabel: accessibilityLabel ?? name,
|
|
25
|
+
accessibilityRole: "button",
|
|
26
|
+
hitSlop: hitSlop,
|
|
27
|
+
onPress: onPress,
|
|
28
|
+
style: styles.pressable,
|
|
29
|
+
testID: testID
|
|
30
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
31
|
+
color: iconColor,
|
|
32
|
+
name: name,
|
|
33
|
+
size: iconSize
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
37
|
+
accessible: false,
|
|
38
|
+
style: styles.wrapper,
|
|
39
|
+
testID: testID
|
|
40
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
41
|
+
accessibilityLabel: accessibilityLabel,
|
|
42
|
+
color: iconColor,
|
|
43
|
+
name: name,
|
|
44
|
+
size: iconSize
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
const styles = StyleSheet.create({
|
|
48
|
+
pressable: {
|
|
49
|
+
alignItems: 'center',
|
|
50
|
+
justifyContent: 'center'
|
|
51
|
+
},
|
|
52
|
+
wrapper: {
|
|
53
|
+
alignItems: 'center',
|
|
54
|
+
justifyContent: 'center'
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=SelectIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","View","Icon","useTheme","SelectIcon","accessibilityLabel","color","name","onPress","size","testID","theme","iconColor","colors","text","tertiary","iconSize","spacing","lg","hitSlop","useMemo","bottom","xs","left","right","top","createElement","accessibilityRole","style","styles","pressable","accessible","wrapper","create","alignItems","justifyContent"],"sourceRoot":"..\\..\\src","sources":["SelectIcon.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE1D,SAASC,IAAI,QAAQ,gBAAgB;AACrC,SAASC,QAAQ,QAAQ,gBAAgB;AAIzC,OAAO,SAASC,UAAUA,CAAC;EACzBC,kBAAkB;EAClBC,KAAK;EACLC,IAAI;EACJC,OAAO;EACPC,IAAI;EACJC;AACe,CAAC,EAAe;EAC/B,MAAMC,KAAK,GAAGR,QAAQ,CAAC,CAAC;EAExB,MAAMS,SAAS,GAAGN,KAAK,IAAIK,KAAK,CAACE,MAAM,CAACC,IAAI,CAACC,QAAQ;EACrD,MAAMC,QAAQ,GAAGP,IAAI,IAAIE,KAAK,CAACM,OAAO,CAACC,EAAE;EACzC,MAAMC,OAAO,GAAGrB,KAAK,CAACsB,OAAO,CAC3B,OAAO;IACLC,MAAM,EAAEV,KAAK,CAACM,OAAO,CAACK,EAAE;IACxBC,IAAI,EAAEZ,KAAK,CAACM,OAAO,CAACK,EAAE;IACtBE,KAAK,EAAEb,KAAK,CAACM,OAAO,CAACK,EAAE;IACvBG,GAAG,EAAEd,KAAK,CAACM,OAAO,CAACK;EACrB,CAAC,CAAC,EACF,CAACX,KAAK,CAACM,OAAO,CAACK,EAAE,CACnB,CAAC;EAED,IAAId,OAAO,EAAE;IACX,oBACEV,KAAA,CAAA4B,aAAA,CAAC3B,SAAS;MACRM,kBAAkB,EAAEA,kBAAkB,IAAIE,IAAK;MAC/CoB,iBAAiB,EAAC,QAAQ;MAC1BR,OAAO,EAAEA,OAAQ;MACjBX,OAAO,EAAEA,OAAQ;MACjBoB,KAAK,EAAEC,MAAM,CAACC,SAAU;MACxBpB,MAAM,EAAEA;IAAO,gBAEfZ,KAAA,CAAA4B,aAAA,CAACxB,IAAI;MAACI,KAAK,EAAEM,SAAU;MAACL,IAAI,EAAEA,IAAK;MAACE,IAAI,EAAEO;IAAS,CAAE,CAC5C,CAAC;EAEhB;EAEA,oBACElB,KAAA,CAAA4B,aAAA,CAACzB,IAAI;IAAC8B,UAAU,EAAE,KAAM;IAACH,KAAK,EAAEC,MAAM,CAACG,OAAQ;IAACtB,MAAM,EAAEA;EAAO,gBAC7DZ,KAAA,CAAA4B,aAAA,CAACxB,IAAI;IAACG,kBAAkB,EAAEA,kBAAmB;IAACC,KAAK,EAAEM,SAAU;IAACL,IAAI,EAAEA,IAAK;IAACE,IAAI,EAAEO;EAAS,CAAE,CACzF,CAAC;AAEX;AAEA,MAAMa,MAAM,GAAG7B,UAAU,CAACiC,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDH,OAAO,EAAE;IACPE,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
3
|
+
import { FlagIcon, Icon } from '@wecareu/icons';
|
|
4
|
+
import { useTheme } from '@wecareu/theme';
|
|
5
|
+
export function SelectOptionItem({
|
|
6
|
+
disabled,
|
|
7
|
+
isMulti,
|
|
8
|
+
isSelected,
|
|
9
|
+
onPress,
|
|
10
|
+
option
|
|
11
|
+
}) {
|
|
12
|
+
const theme = useTheme();
|
|
13
|
+
const styles = React.useMemo(() => createStyles(theme), [theme]);
|
|
14
|
+
const handlePress = React.useCallback(() => {
|
|
15
|
+
if (!disabled) {
|
|
16
|
+
onPress(option);
|
|
17
|
+
}
|
|
18
|
+
}, [disabled, onPress, option]);
|
|
19
|
+
const resolvedLabelColor = option.labelColor ? option.labelColor : isSelected ? theme.colors.brand.primary : theme.colors.text.primary;
|
|
20
|
+
return /*#__PURE__*/React.createElement(Pressable, {
|
|
21
|
+
accessibilityRole: "menuitem",
|
|
22
|
+
accessibilityState: {
|
|
23
|
+
disabled,
|
|
24
|
+
selected: isSelected
|
|
25
|
+
},
|
|
26
|
+
disabled: disabled,
|
|
27
|
+
onPress: handlePress,
|
|
28
|
+
style: ({
|
|
29
|
+
pressed
|
|
30
|
+
}) => [styles.container, option.color ? {
|
|
31
|
+
backgroundColor: option.color
|
|
32
|
+
} : isSelected && styles.containerSelected, disabled && styles.containerDisabled, pressed && !disabled && !option.color && styles.containerPressed]
|
|
33
|
+
}, option.flagCode ? /*#__PURE__*/React.createElement(View, {
|
|
34
|
+
style: styles.iconWrapper
|
|
35
|
+
}, /*#__PURE__*/React.createElement(FlagIcon, {
|
|
36
|
+
countryCode: option.flagCode,
|
|
37
|
+
size: theme.spacing.md + 2
|
|
38
|
+
})) : option.icon ? /*#__PURE__*/React.createElement(View, {
|
|
39
|
+
style: styles.iconWrapper
|
|
40
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
41
|
+
color: disabled ? theme.colors.text.disabled : resolvedLabelColor,
|
|
42
|
+
name: option.icon,
|
|
43
|
+
size: theme.spacing.lg
|
|
44
|
+
})) : null, /*#__PURE__*/React.createElement(View, {
|
|
45
|
+
style: styles.textWrapper
|
|
46
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
47
|
+
numberOfLines: 1,
|
|
48
|
+
style: [styles.label, {
|
|
49
|
+
color: disabled ? theme.colors.text.disabled : resolvedLabelColor
|
|
50
|
+
}, isSelected && !option.labelColor && styles.labelSelected, disabled && styles.labelDisabled]
|
|
51
|
+
}, option.label), option.description ? /*#__PURE__*/React.createElement(Text, {
|
|
52
|
+
numberOfLines: 2,
|
|
53
|
+
style: [styles.description, disabled && styles.descriptionDisabled]
|
|
54
|
+
}, option.description) : null), isMulti ? /*#__PURE__*/React.createElement(View, {
|
|
55
|
+
style: [styles.checkbox, isSelected && styles.checkboxSelected, disabled && styles.checkboxDisabled]
|
|
56
|
+
}, isSelected ? /*#__PURE__*/React.createElement(Icon, {
|
|
57
|
+
color: theme.colors.text.white,
|
|
58
|
+
name: "correct",
|
|
59
|
+
size: 12
|
|
60
|
+
}) : null) : isSelected ? /*#__PURE__*/React.createElement(Icon, {
|
|
61
|
+
color: option.labelColor ?? theme.colors.brand.primary,
|
|
62
|
+
name: "correct",
|
|
63
|
+
size: theme.spacing.md
|
|
64
|
+
}) : null);
|
|
65
|
+
}
|
|
66
|
+
function createStyles(theme) {
|
|
67
|
+
return StyleSheet.create({
|
|
68
|
+
checkbox: {
|
|
69
|
+
alignItems: 'center',
|
|
70
|
+
borderColor: theme.colors.border.primary,
|
|
71
|
+
borderRadius: theme.radius.xs,
|
|
72
|
+
borderWidth: 1.5,
|
|
73
|
+
height: 20,
|
|
74
|
+
justifyContent: 'center',
|
|
75
|
+
width: 20
|
|
76
|
+
},
|
|
77
|
+
checkboxDisabled: {
|
|
78
|
+
borderColor: theme.colors.border.disabled
|
|
79
|
+
},
|
|
80
|
+
checkboxSelected: {
|
|
81
|
+
backgroundColor: theme.colors.brand.primary,
|
|
82
|
+
borderColor: theme.colors.brand.primary
|
|
83
|
+
},
|
|
84
|
+
container: {
|
|
85
|
+
alignItems: 'center',
|
|
86
|
+
flexDirection: 'row',
|
|
87
|
+
gap: theme.spacing.sm,
|
|
88
|
+
paddingHorizontal: theme.spacing.md,
|
|
89
|
+
paddingVertical: theme.spacing.sm
|
|
90
|
+
},
|
|
91
|
+
containerDisabled: {
|
|
92
|
+
opacity: 0.4
|
|
93
|
+
},
|
|
94
|
+
containerPressed: {
|
|
95
|
+
backgroundColor: theme.colors.surface.secondary
|
|
96
|
+
},
|
|
97
|
+
containerSelected: {
|
|
98
|
+
backgroundColor: theme.colors.surface.secondary
|
|
99
|
+
},
|
|
100
|
+
description: {
|
|
101
|
+
color: theme.colors.text.secondary,
|
|
102
|
+
fontFamily: theme.typography.fontFamily.caption,
|
|
103
|
+
fontSize: theme.typography.fontSize.xs,
|
|
104
|
+
lineHeight: theme.typography.lineHeight.labelSmall,
|
|
105
|
+
marginTop: 2
|
|
106
|
+
},
|
|
107
|
+
descriptionDisabled: {
|
|
108
|
+
color: theme.colors.text.disabled
|
|
109
|
+
},
|
|
110
|
+
iconWrapper: {
|
|
111
|
+
alignItems: 'center',
|
|
112
|
+
height: theme.spacing.lg,
|
|
113
|
+
justifyContent: 'center',
|
|
114
|
+
marginRight: theme.spacing.md,
|
|
115
|
+
width: theme.spacing.lg
|
|
116
|
+
},
|
|
117
|
+
label: {
|
|
118
|
+
fontFamily: theme.typography.fontFamily.body,
|
|
119
|
+
fontSize: theme.typography.fontSize.md,
|
|
120
|
+
lineHeight: theme.typography.lineHeight.bodySmall
|
|
121
|
+
},
|
|
122
|
+
labelDisabled: {
|
|
123
|
+
color: theme.colors.text.disabled
|
|
124
|
+
},
|
|
125
|
+
labelSelected: {
|
|
126
|
+
fontFamily: theme.typography.fontFamily.semibold
|
|
127
|
+
},
|
|
128
|
+
textWrapper: {
|
|
129
|
+
flex: 1
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=SelectOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","Text","View","FlagIcon","Icon","useTheme","SelectOptionItem","disabled","isMulti","isSelected","onPress","option","theme","styles","useMemo","createStyles","handlePress","useCallback","resolvedLabelColor","labelColor","colors","brand","primary","text","createElement","accessibilityRole","accessibilityState","selected","style","pressed","container","color","backgroundColor","containerSelected","containerDisabled","containerPressed","flagCode","iconWrapper","countryCode","size","spacing","md","icon","name","lg","textWrapper","numberOfLines","label","labelSelected","labelDisabled","description","descriptionDisabled","checkbox","checkboxSelected","checkboxDisabled","white","create","alignItems","borderColor","border","borderRadius","radius","xs","borderWidth","height","justifyContent","width","flexDirection","gap","sm","paddingHorizontal","paddingVertical","opacity","surface","secondary","fontFamily","typography","caption","fontSize","lineHeight","labelSmall","marginTop","marginRight","body","bodySmall","semibold","flex"],"sourceRoot":"..\\..\\src","sources":["SelectOption.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, TextInput, View } from 'react-native';
|
|
3
|
+
import { Icon } from '@wecareu/icons';
|
|
4
|
+
import { useTheme } from '@wecareu/theme';
|
|
5
|
+
const DEBOUNCE_MS = 200;
|
|
6
|
+
export function SelectSearch({
|
|
7
|
+
onChangeText,
|
|
8
|
+
value
|
|
9
|
+
}) {
|
|
10
|
+
const theme = useTheme();
|
|
11
|
+
const styles = React.useMemo(() => createStyles(theme), [theme]);
|
|
12
|
+
const debounceRef = React.useRef(null);
|
|
13
|
+
const handleChangeText = React.useCallback(text => {
|
|
14
|
+
if (debounceRef.current) {
|
|
15
|
+
clearTimeout(debounceRef.current);
|
|
16
|
+
}
|
|
17
|
+
debounceRef.current = setTimeout(() => {
|
|
18
|
+
onChangeText(text);
|
|
19
|
+
}, DEBOUNCE_MS);
|
|
20
|
+
}, [onChangeText]);
|
|
21
|
+
React.useEffect(() => {
|
|
22
|
+
return () => {
|
|
23
|
+
if (debounceRef.current) {
|
|
24
|
+
clearTimeout(debounceRef.current);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}, []);
|
|
28
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
29
|
+
style: styles.container
|
|
30
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
31
|
+
style: styles.iconWrapper
|
|
32
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
33
|
+
color: theme.colors.text.tertiary,
|
|
34
|
+
name: "search",
|
|
35
|
+
size: theme.spacing.md
|
|
36
|
+
})), /*#__PURE__*/React.createElement(TextInput, {
|
|
37
|
+
accessibilityLabel: "Search options",
|
|
38
|
+
autoCapitalize: "none",
|
|
39
|
+
autoCorrect: false,
|
|
40
|
+
clearButtonMode: "while-editing",
|
|
41
|
+
defaultValue: value,
|
|
42
|
+
onChangeText: handleChangeText,
|
|
43
|
+
placeholderTextColor: theme.colors.text.tertiary,
|
|
44
|
+
returnKeyType: "search",
|
|
45
|
+
style: styles.input
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
function createStyles(theme) {
|
|
49
|
+
return StyleSheet.create({
|
|
50
|
+
container: {
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
borderBottomColor: theme.colors.border.secondary,
|
|
53
|
+
borderBottomWidth: 1,
|
|
54
|
+
flexDirection: 'row',
|
|
55
|
+
marginBottom: theme.spacing.xs,
|
|
56
|
+
paddingHorizontal: theme.spacing.md,
|
|
57
|
+
paddingVertical: theme.spacing.sm
|
|
58
|
+
},
|
|
59
|
+
iconWrapper: {
|
|
60
|
+
marginRight: theme.spacing.xs
|
|
61
|
+
},
|
|
62
|
+
input: {
|
|
63
|
+
color: theme.colors.text.primary,
|
|
64
|
+
flex: 1,
|
|
65
|
+
fontFamily: theme.typography.fontFamily.body,
|
|
66
|
+
fontSize: theme.typography.fontSize.md,
|
|
67
|
+
lineHeight: theme.typography.lineHeight.bodySmall,
|
|
68
|
+
paddingVertical: theme.spacing.xs
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=SelectSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","TextInput","View","Icon","useTheme","DEBOUNCE_MS","SelectSearch","onChangeText","value","theme","styles","useMemo","createStyles","debounceRef","useRef","handleChangeText","useCallback","text","current","clearTimeout","setTimeout","useEffect","createElement","style","container","iconWrapper","color","colors","tertiary","name","size","spacing","md","accessibilityLabel","autoCapitalize","autoCorrect","clearButtonMode","defaultValue","placeholderTextColor","returnKeyType","input","create","alignItems","borderBottomColor","border","secondary","borderBottomWidth","flexDirection","marginBottom","xs","paddingHorizontal","paddingVertical","sm","marginRight","primary","flex","fontFamily","typography","body","fontSize","lineHeight","bodySmall"],"sourceRoot":"..\\..\\src","sources":["SelectSearch.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useCallback, useMemo, useRef } from 'react';
|
|
2
|
+
import { Animated } from 'react-native';
|
|
3
|
+
export function useShakeAnimation({
|
|
4
|
+
distance = 6,
|
|
5
|
+
duration = 60,
|
|
6
|
+
iterations = 2
|
|
7
|
+
} = {}) {
|
|
8
|
+
const translation = useRef(new Animated.Value(0)).current;
|
|
9
|
+
const animatedStyle = useMemo(() => ({
|
|
10
|
+
transform: [{
|
|
11
|
+
translateX: translation.interpolate({
|
|
12
|
+
inputRange: [-1, -0.5, 0, 0.5, 1],
|
|
13
|
+
outputRange: [-distance, -distance / 2, 0, distance / 2, distance]
|
|
14
|
+
})
|
|
15
|
+
}]
|
|
16
|
+
}), [distance, translation]);
|
|
17
|
+
const triggerShake = useCallback(() => {
|
|
18
|
+
translation.setValue(0);
|
|
19
|
+
const animation = Animated.sequence([Animated.timing(translation, {
|
|
20
|
+
duration,
|
|
21
|
+
toValue: 1,
|
|
22
|
+
useNativeDriver: true
|
|
23
|
+
}), Animated.timing(translation, {
|
|
24
|
+
duration,
|
|
25
|
+
toValue: -1,
|
|
26
|
+
useNativeDriver: true
|
|
27
|
+
})]);
|
|
28
|
+
Animated.loop(animation, {
|
|
29
|
+
iterations
|
|
30
|
+
}).start(() => {
|
|
31
|
+
translation.setValue(0);
|
|
32
|
+
});
|
|
33
|
+
}, [duration, iterations, translation]);
|
|
34
|
+
return {
|
|
35
|
+
animatedStyle,
|
|
36
|
+
triggerShake
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=shake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useRef","Animated","useShakeAnimation","distance","duration","iterations","translation","Value","current","animatedStyle","transform","translateX","interpolate","inputRange","outputRange","triggerShake","setValue","animation","sequence","timing","toValue","useNativeDriver","loop","start"],"sourceRoot":"..\\..\\..\\src","sources":["animations/shake.ts"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAEpD,SAASC,QAAQ,QAAQ,cAAc;AA8BvC,OAAO,SAASC,iBAAiBA,CAAC;EAChCC,QAAQ,GAAG,CAAC;EACZC,QAAQ,GAAG,EAAE;EACbC,UAAU,GAAG;AACU,CAAC,GAAG,CAAC,CAAC,EAA2B;EACxD,MAAMC,WAAW,GAAGN,MAAM,CAAC,IAAIC,QAAQ,CAACM,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEzD,MAAMC,aAAa,GAAGV,OAAO,CAC3B,OAAO;IACLW,SAAS,EAAE,CACT;MACEC,UAAU,EAAEL,WAAW,CAACM,WAAW,CAAC;QAClCC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjCC,WAAW,EAAE,CAAC,CAACX,QAAQ,EAAE,CAACA,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAEA,QAAQ,GAAG,CAAC,EAAEA,QAAQ;MACnE,CAAC;IACH,CAAC;EAEL,CAAC,CAAC,EACF,CAACA,QAAQ,EAAEG,WAAW,CACxB,CAAC;EAED,MAAMS,YAAY,GAAGjB,WAAW,CAAC,MAAM;IACrCQ,WAAW,CAACU,QAAQ,CAAC,CAAC,CAAC;IAEvB,MAAMC,SAAS,GAAGhB,QAAQ,CAACiB,QAAQ,CAAC,CAClCjB,QAAQ,CAACkB,MAAM,CAACb,WAAW,EAAE;MAC3BF,QAAQ;MACRgB,OAAO,EAAE,CAAC;MACVC,eAAe,EAAE;IACnB,CAAC,CAAC,EACFpB,QAAQ,CAACkB,MAAM,CAACb,WAAW,EAAE;MAC3BF,QAAQ;MACRgB,OAAO,EAAE,CAAC,CAAC;MACXC,eAAe,EAAE;IACnB,CAAC,CAAC,CACH,CAAC;IAEFpB,QAAQ,CAACqB,IAAI,CAACL,SAAS,EAAE;MAAEZ;IAAW,CAAC,CAAC,CAACkB,KAAK,CAAC,MAAM;MACnDjB,WAAW,CAACU,QAAQ,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC,EAAE,CAACZ,QAAQ,EAAEC,UAAU,EAAEC,WAAW,CAAC,CAAC;EAEvC,OAAO;IAAEG,aAAa;IAAEM;EAAa,CAAC;AACxC","ignoreList":[]}
|