react-native-input-select 0.34.0 → 1.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 +103 -30
- package/lib/commonjs/components/CheckBox/index.js +16 -13
- package/lib/commonjs/components/CheckBox/index.js.map +1 -1
- package/lib/commonjs/components/CheckBox/types.js.map +1 -1
- package/lib/commonjs/components/CustomModal/index.js +1 -9
- package/lib/commonjs/components/CustomModal/index.js.map +1 -1
- package/lib/commonjs/components/Dropdown/Dropdown.js +0 -9
- package/lib/commonjs/components/Dropdown/Dropdown.js.map +1 -1
- package/lib/commonjs/components/Dropdown/{DropdownList.js → DropdownFlatList.js} +22 -32
- package/lib/commonjs/components/Dropdown/DropdownFlatList.js.map +1 -0
- package/lib/commonjs/components/Dropdown/DropdownListItem.js +11 -22
- package/lib/commonjs/components/Dropdown/DropdownListItem.js.map +1 -1
- package/lib/commonjs/components/Dropdown/DropdownSectionList.js +139 -0
- package/lib/commonjs/components/Dropdown/DropdownSectionList.js.map +1 -0
- package/lib/commonjs/components/Dropdown/DropdownSelectedItemsView.js +10 -22
- package/lib/commonjs/components/Dropdown/DropdownSelectedItemsView.js.map +1 -1
- package/lib/commonjs/components/Input/index.js +4 -11
- package/lib/commonjs/components/Input/index.js.map +1 -1
- package/lib/commonjs/components/Others/index.js +93 -0
- package/lib/commonjs/components/Others/index.js.map +1 -0
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/index.js +73 -59
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/styles/colors.js.map +1 -1
- package/lib/commonjs/styles/input.js +0 -4
- package/lib/commonjs/styles/input.js.map +1 -1
- package/lib/commonjs/styles/typography.js +0 -3
- package/lib/commonjs/styles/typography.js.map +1 -1
- package/lib/commonjs/types/index.types.js.map +1 -1
- package/lib/commonjs/utils/index.js +26 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/module/components/CheckBox/index.js +14 -6
- package/lib/module/components/CheckBox/index.js.map +1 -1
- package/lib/module/components/CheckBox/types.js.map +1 -1
- package/lib/module/components/CustomModal/index.js +1 -4
- package/lib/module/components/CustomModal/index.js.map +1 -1
- package/lib/module/components/Dropdown/Dropdown.js +0 -2
- package/lib/module/components/Dropdown/Dropdown.js.map +1 -1
- package/lib/module/components/Dropdown/{DropdownList.js → DropdownFlatList.js} +23 -27
- package/lib/module/components/Dropdown/DropdownFlatList.js.map +1 -0
- package/lib/module/components/Dropdown/DropdownListItem.js +11 -14
- package/lib/module/components/Dropdown/DropdownListItem.js.map +1 -1
- package/lib/module/components/Dropdown/DropdownSectionList.js +130 -0
- package/lib/module/components/Dropdown/DropdownSectionList.js.map +1 -0
- package/lib/module/components/Dropdown/DropdownSelectedItemsView.js +11 -17
- package/lib/module/components/Dropdown/DropdownSelectedItemsView.js.map +1 -1
- package/lib/module/components/Input/index.js +2 -2
- package/lib/module/components/Input/index.js.map +1 -1
- package/lib/module/components/Others/index.js +82 -0
- package/lib/module/components/Others/index.js.map +1 -0
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/index.js +72 -42
- package/lib/module/index.js.map +1 -1
- package/lib/module/styles/colors.js.map +1 -1
- package/lib/module/styles/input.js.map +1 -1
- package/lib/module/styles/typography.js.map +1 -1
- package/lib/module/types/index.types.js.map +1 -1
- package/lib/module/utils/index.js +18 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/typescript/components/CheckBox/index.d.ts +6 -1
- package/lib/typescript/components/CheckBox/types.d.ts +6 -1
- package/lib/typescript/components/Dropdown/DropdownFlatList.d.ts +3 -0
- package/lib/typescript/components/Dropdown/DropdownListItem.d.ts +1 -1
- package/lib/typescript/components/Dropdown/DropdownSectionList.d.ts +3 -0
- package/lib/typescript/components/Input/index.d.ts +1 -0
- package/lib/typescript/components/Others/index.d.ts +14 -0
- package/lib/typescript/types/index.types.d.ts +24 -5
- package/lib/typescript/utils/index.d.ts +6 -0
- package/package.json +2 -2
- package/src/components/CheckBox/index.tsx +34 -5
- package/src/components/CheckBox/types.ts +5 -0
- package/src/components/Dropdown/{DropdownList.tsx → DropdownFlatList.tsx} +22 -20
- package/src/components/Dropdown/DropdownListItem.tsx +13 -11
- package/src/components/Dropdown/DropdownSectionList.tsx +135 -0
- package/src/components/Dropdown/DropdownSelectedItemsView.tsx +16 -28
- package/src/components/Input/index.tsx +2 -0
- package/src/components/Others/index.tsx +91 -0
- package/src/index.tsx +114 -41
- package/src/types/index.types.ts +22 -4
- package/src/utils/index.ts +25 -0
- package/lib/commonjs/components/Dropdown/DropdownList.js.map +0 -1
- package/lib/module/components/Dropdown/DropdownList.js.map +0 -1
- package/lib/typescript/components/Dropdown/DropdownList.d.ts +0 -3
package/lib/commonjs/index.js
CHANGED
|
@@ -4,33 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.DropdownSelect = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
|
|
10
8
|
var _reactNative = require("react-native");
|
|
11
|
-
|
|
9
|
+
var _Input = _interopRequireDefault(require("./components/Input"));
|
|
10
|
+
var _CheckBox = _interopRequireDefault(require("./components/CheckBox"));
|
|
12
11
|
var _Dropdown = _interopRequireDefault(require("./components/Dropdown/Dropdown"));
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
|
|
12
|
+
var _DropdownFlatList = _interopRequireDefault(require("./components/Dropdown/DropdownFlatList"));
|
|
13
|
+
var _DropdownSectionList = _interopRequireDefault(require("./components/Dropdown/DropdownSectionList"));
|
|
16
14
|
var _CustomModal = _interopRequireDefault(require("./components/CustomModal"));
|
|
17
|
-
|
|
18
|
-
var _Input = require("./components/Input");
|
|
19
|
-
|
|
20
|
-
var _CheckBox = _interopRequireDefault(require("./components/CheckBox"));
|
|
21
|
-
|
|
22
15
|
var _colors = require("./styles/colors");
|
|
23
|
-
|
|
24
16
|
var _constants = require("./constants");
|
|
25
|
-
|
|
17
|
+
var _utils = require("./utils");
|
|
26
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
|
-
|
|
28
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
33
|
-
|
|
21
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
34
22
|
const DropdownSelect = _ref => {
|
|
35
23
|
let {
|
|
36
24
|
placeholder,
|
|
@@ -61,10 +49,15 @@ const DropdownSelect = _ref => {
|
|
|
61
49
|
primaryColor,
|
|
62
50
|
disabled,
|
|
63
51
|
checkboxSize,
|
|
52
|
+
// kept for backwards compatibility
|
|
64
53
|
checkboxStyle,
|
|
54
|
+
// kept for backwards compatibility
|
|
65
55
|
checkboxLabelStyle,
|
|
56
|
+
// kept for backwards compatibility
|
|
57
|
+
checkboxComponentStyles,
|
|
66
58
|
listHeaderComponent,
|
|
67
59
|
listFooterComponent,
|
|
60
|
+
listComponentStyles,
|
|
68
61
|
modalProps,
|
|
69
62
|
hideModal = false,
|
|
70
63
|
...rest
|
|
@@ -73,22 +66,33 @@ const DropdownSelect = _ref => {
|
|
|
73
66
|
const [open, setOpen] = (0, _react.useState)(false);
|
|
74
67
|
const [selectAll, setSelectAll] = (0, _react.useState)(false);
|
|
75
68
|
const [selectedItem, setSelectedItem] = (0, _react.useState)(''); //for single selection
|
|
76
|
-
|
|
77
69
|
const [selectedItems, setSelectedItems] = (0, _react.useState)([]); //for multiple selection
|
|
78
|
-
|
|
79
70
|
const [searchValue, setSearchValue] = (0, _react.useState)('');
|
|
80
71
|
(0, _react.useEffect)(() => {
|
|
81
72
|
if (options) {
|
|
82
73
|
setNewOptions(options);
|
|
83
74
|
}
|
|
75
|
+
return () => {};
|
|
84
76
|
}, [options]);
|
|
85
77
|
(0, _react.useEffect)(() => {
|
|
86
78
|
isMultiple ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : []) : setSelectedItem(selectedValue);
|
|
79
|
+
return () => {};
|
|
87
80
|
}, [selectedValue, isMultiple, onValueChange]);
|
|
81
|
+
|
|
88
82
|
/*===========================================
|
|
89
|
-
*
|
|
83
|
+
* List type
|
|
90
84
|
*==========================================*/
|
|
91
85
|
|
|
86
|
+
const isSectionList = newOptions.some(item => item.title && item.data && Array.isArray(item.data));
|
|
87
|
+
const ListTypeComponent = isSectionList ? _DropdownSectionList.default : _DropdownFlatList.default;
|
|
88
|
+
let modifiedSectionData = (0, _utils.extractPropertyFromArray)(newOptions, 'data').flat();
|
|
89
|
+
let modifiedOptions = isSectionList ? modifiedSectionData : newOptions;
|
|
90
|
+
const optLabel = optionLabel || _constants.DEFAULT_OPTION_LABEL;
|
|
91
|
+
const optValue = optionValue || _constants.DEFAULT_OPTION_VALUE;
|
|
92
|
+
|
|
93
|
+
/*===========================================
|
|
94
|
+
* Selection handlers
|
|
95
|
+
*==========================================*/
|
|
92
96
|
const handleSingleSelection = value => {
|
|
93
97
|
if (selectedItem === value) {
|
|
94
98
|
setSelectedItem(null);
|
|
@@ -96,7 +100,6 @@ const DropdownSelect = _ref => {
|
|
|
96
100
|
} else {
|
|
97
101
|
setSelectedItem(value);
|
|
98
102
|
onValueChange(value); //send value to parent
|
|
99
|
-
|
|
100
103
|
setOpen(false); //close modal upon selection
|
|
101
104
|
}
|
|
102
105
|
};
|
|
@@ -104,99 +107,110 @@ const DropdownSelect = _ref => {
|
|
|
104
107
|
const handleMultipleSelections = value => {
|
|
105
108
|
setSelectedItems(prevVal => {
|
|
106
109
|
var _selectedValues;
|
|
107
|
-
|
|
108
110
|
let selectedValues = [...prevVal];
|
|
109
|
-
|
|
110
111
|
if ((_selectedValues = selectedValues) !== null && _selectedValues !== void 0 && _selectedValues.includes(value)) {
|
|
111
112
|
selectedValues = selectedValues.filter(item => item !== value);
|
|
112
113
|
} else {
|
|
113
114
|
selectedValues.push(value);
|
|
114
115
|
}
|
|
115
|
-
|
|
116
116
|
setSelectedItems(selectedValues);
|
|
117
117
|
onValueChange(selectedValues); //send value to parent
|
|
118
|
-
//select all checkbox should not be checked if the list contains disabled values
|
|
119
118
|
|
|
120
|
-
if
|
|
119
|
+
//select all checkbox should not be checked if the list contains disabled values
|
|
120
|
+
if (modifiedOptions.filter(item => !item.disabled).length === selectedValues.length) {
|
|
121
121
|
setSelectAll(true);
|
|
122
122
|
} else {
|
|
123
123
|
setSelectAll(false);
|
|
124
124
|
}
|
|
125
|
-
|
|
126
125
|
return selectedValues;
|
|
127
126
|
});
|
|
128
127
|
};
|
|
129
|
-
|
|
130
128
|
const handleSelectAll = () => {
|
|
131
129
|
setSelectAll(prevVal => {
|
|
132
130
|
const selectedValues = [];
|
|
133
|
-
const filteredOptions = newOptions.filter(item => !item.disabled); //don't select disabled items
|
|
134
131
|
|
|
132
|
+
//don't select disabled items
|
|
133
|
+
const filteredOptions = modifiedOptions.filter(item => !item.disabled);
|
|
135
134
|
if (!prevVal) {
|
|
136
135
|
for (let i = 0; i < filteredOptions.length; i++) {
|
|
137
|
-
selectedValues.push(filteredOptions[i][
|
|
136
|
+
selectedValues.push(filteredOptions[i][optValue]);
|
|
138
137
|
}
|
|
139
138
|
}
|
|
140
|
-
|
|
141
139
|
setSelectedItems(selectedValues);
|
|
142
140
|
onValueChange(selectedValues); //send value to parent
|
|
143
|
-
|
|
144
141
|
return !prevVal;
|
|
145
142
|
});
|
|
146
143
|
};
|
|
144
|
+
|
|
147
145
|
/*===========================================
|
|
148
146
|
* Get label handler
|
|
149
147
|
*==========================================*/
|
|
150
|
-
|
|
151
|
-
|
|
152
148
|
const getSelectedItemsLabel = () => {
|
|
153
149
|
if (isMultiple && Array.isArray(selectedItems)) {
|
|
154
150
|
let selectedLabels = [];
|
|
155
151
|
selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.forEach(element => {
|
|
156
|
-
var
|
|
157
|
-
|
|
158
|
-
let selectedItemLabel = options && ((_options$find = options.find(item => item[optionValue !== null && optionValue !== void 0 ? optionValue : _constants.DEFAULT_OPTION_VALUE] === element)) === null || _options$find === void 0 ? void 0 : _options$find[optionLabel]);
|
|
152
|
+
var _modifiedOptions$find;
|
|
153
|
+
let selectedItemLabel = modifiedOptions === null || modifiedOptions === void 0 || (_modifiedOptions$find = modifiedOptions.find(item => item[optValue] === element)) === null || _modifiedOptions$find === void 0 ? void 0 : _modifiedOptions$find[optLabel];
|
|
159
154
|
selectedLabels.push(selectedItemLabel);
|
|
160
155
|
});
|
|
161
156
|
return selectedLabels;
|
|
162
157
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return selectedItemLabel === null || selectedItemLabel === void 0 ? void 0 : selectedItemLabel[optionLabel !== null && optionLabel !== void 0 ? optionLabel : _constants.DEFAULT_OPTION_LABEL];
|
|
158
|
+
let selectedItemLabel = modifiedOptions === null || modifiedOptions === void 0 ? void 0 : modifiedOptions.find(item => item[optValue] === selectedItem);
|
|
159
|
+
return selectedItemLabel === null || selectedItemLabel === void 0 ? void 0 : selectedItemLabel[optLabel];
|
|
166
160
|
};
|
|
161
|
+
|
|
167
162
|
/*===========================================
|
|
168
163
|
* Search
|
|
169
164
|
*==========================================*/
|
|
170
|
-
|
|
171
|
-
|
|
172
165
|
const onSearch = value => {
|
|
173
166
|
setSearchValue(value);
|
|
174
167
|
let searchText = value.toString().toLocaleLowerCase().trim();
|
|
175
168
|
const regexFilter = new RegExp(searchText, 'i');
|
|
176
|
-
|
|
177
|
-
|
|
169
|
+
|
|
170
|
+
//Because Search mutates the initial state, we have to search with a copy of the original array
|
|
171
|
+
const optionsCopy = JSON.parse(JSON.stringify(options));
|
|
172
|
+
const searchResults = isSectionList ? searchSectionList(optionsCopy, regexFilter) : searchFlatList(optionsCopy, regexFilter);
|
|
173
|
+
setNewOptions(searchResults);
|
|
174
|
+
};
|
|
175
|
+
const searchFlatList = (flatList, regexFilter) => {
|
|
176
|
+
const searchResults = flatList.filter(item => {
|
|
177
|
+
if (item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 || item[optValue].toString().toLowerCase().search(regexFilter) !== -1) {
|
|
178
178
|
return item;
|
|
179
179
|
}
|
|
180
|
+
return;
|
|
180
181
|
});
|
|
181
|
-
|
|
182
|
+
return searchResults;
|
|
183
|
+
};
|
|
184
|
+
const searchSectionList = (sectionList, regexFilter) => {
|
|
185
|
+
const searchResults = sectionList.map(listItem => {
|
|
186
|
+
listItem.data = listItem.data.filter(item => {
|
|
187
|
+
if (item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 || item[optValue].toString().toLowerCase().search(regexFilter) !== -1) {
|
|
188
|
+
return listItem.data.push(item);
|
|
189
|
+
}
|
|
190
|
+
return;
|
|
191
|
+
});
|
|
192
|
+
return listItem;
|
|
193
|
+
});
|
|
194
|
+
return searchResults;
|
|
182
195
|
};
|
|
196
|
+
|
|
183
197
|
/*===========================================
|
|
184
198
|
* Modal
|
|
185
199
|
*==========================================*/
|
|
186
|
-
|
|
187
|
-
|
|
188
200
|
const handleToggleModal = () => {
|
|
189
201
|
setOpen(!open);
|
|
190
202
|
setSearchValue('');
|
|
191
203
|
setNewOptions(options);
|
|
192
204
|
};
|
|
193
|
-
|
|
194
205
|
(0, _react.useEffect)(() => {
|
|
195
206
|
if (hideModal) {
|
|
196
207
|
setOpen(false);
|
|
197
208
|
}
|
|
209
|
+
return () => {};
|
|
198
210
|
}, [hideModal]);
|
|
199
211
|
let primary = primaryColor || _colors.colors.gray;
|
|
212
|
+
const sectionListMaxLength = (0, _utils.getMaxLengthOfSectionListProperty)(newOptions, 'data');
|
|
213
|
+
const listIsEmpty = isSectionList ? sectionListMaxLength > 1 : newOptions.length > 1;
|
|
200
214
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({
|
|
201
215
|
label: label,
|
|
202
216
|
placeholder: placeholder,
|
|
@@ -227,13 +241,13 @@ const DropdownSelect = _ref => {
|
|
|
227
241
|
modalOptionsContainerStyle: modalOptionsContainerStyle,
|
|
228
242
|
onRequestClose: () => {},
|
|
229
243
|
modalProps: modalProps
|
|
230
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
231
|
-
ListHeaderComponent: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isSearchable && /*#__PURE__*/_react.default.createElement(_Input.
|
|
244
|
+
}, /*#__PURE__*/_react.default.createElement(ListTypeComponent, {
|
|
245
|
+
ListHeaderComponent: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isSearchable && /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
232
246
|
value: searchValue,
|
|
233
247
|
onChangeText: text => onSearch(text),
|
|
234
248
|
style: searchInputStyle,
|
|
235
249
|
primaryColor: primary
|
|
236
|
-
}), listHeaderComponent, isMultiple &&
|
|
250
|
+
}), listHeaderComponent, isMultiple && listIsEmpty && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
237
251
|
style: styles.optionsContainerStyle
|
|
238
252
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
239
253
|
onPress: () => {}
|
|
@@ -244,12 +258,14 @@ const DropdownSelect = _ref => {
|
|
|
244
258
|
primaryColor: primary,
|
|
245
259
|
checkboxSize: checkboxSize,
|
|
246
260
|
checkboxStyle: checkboxStyle,
|
|
247
|
-
checkboxLabelStyle: checkboxLabelStyle
|
|
261
|
+
checkboxLabelStyle: checkboxLabelStyle,
|
|
262
|
+
checkboxComponentStyles: checkboxComponentStyles
|
|
248
263
|
})))),
|
|
249
264
|
ListFooterComponent: listFooterComponent,
|
|
265
|
+
listComponentStyles: listComponentStyles,
|
|
250
266
|
options: newOptions,
|
|
251
|
-
optionLabel:
|
|
252
|
-
optionValue:
|
|
267
|
+
optionLabel: optLabel,
|
|
268
|
+
optionValue: optValue,
|
|
253
269
|
isMultiple: isMultiple,
|
|
254
270
|
isSearchable: isSearchable,
|
|
255
271
|
selectedItems: selectedItems,
|
|
@@ -259,12 +275,11 @@ const DropdownSelect = _ref => {
|
|
|
259
275
|
primaryColor: primary,
|
|
260
276
|
checkboxSize: checkboxSize,
|
|
261
277
|
checkboxStyle: checkboxStyle,
|
|
262
|
-
checkboxLabelStyle: checkboxLabelStyle
|
|
278
|
+
checkboxLabelStyle: checkboxLabelStyle,
|
|
279
|
+
checkboxComponentStyles: checkboxComponentStyles
|
|
263
280
|
})));
|
|
264
281
|
};
|
|
265
|
-
|
|
266
282
|
exports.DropdownSelect = DropdownSelect;
|
|
267
|
-
|
|
268
283
|
const styles = _reactNative.StyleSheet.create({
|
|
269
284
|
optionsContainerStyle: {
|
|
270
285
|
paddingHorizontal: 20,
|
|
@@ -272,7 +287,6 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
272
287
|
flexDirection: 'row'
|
|
273
288
|
}
|
|
274
289
|
});
|
|
275
|
-
|
|
276
290
|
var _default = DropdownSelect;
|
|
277
291
|
exports.default = _default;
|
|
278
292
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["DropdownSelect","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","dropdownIcon","labelStyle","placeholderStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainerStyle","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","listHeaderComponent","listFooterComponent","modalProps","hideModal","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","Array","isArray","handleSingleSelection","value","handleMultipleSelections","prevVal","selectedValues","includes","filter","item","push","length","handleSelectAll","filteredOptions","i","getSelectedItemsLabel","selectedLabels","forEach","element","selectedItemLabel","find","DEFAULT_OPTION_VALUE","DEFAULT_OPTION_LABEL","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","colors","gray","text","styles","optionsContainerStyle","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect: React.FC<DropdownProps> = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n dropdownIcon,\n labelStyle,\n placeholderStyle,\n dropdownStyle,\n dropdownIconStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainerStyle,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n listHeaderComponent,\n listFooterComponent,\n modalProps,\n hideModal = false,\n ...rest\n}) => {\n const [newOptions, setNewOptions] = useState<any[]>([]);\n const [open, setOpen] = useState<boolean>(false);\n const [selectAll, setSelectAll] = useState<boolean>(false);\n const [selectedItem, setSelectedItem] = useState<any>(''); //for single selection\n const [selectedItems, setSelectedItems] = useState<any[]>([]); //for multiple selection\n const [searchValue, setSearchValue] = useState<string>('');\n\n useEffect(() => {\n if (options) {\n setNewOptions(options);\n }\n }, [options]);\n\n useEffect(() => {\n isMultiple\n ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : [])\n : setSelectedItem(selectedValue);\n }, [selectedValue, isMultiple, onValueChange]);\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n onValueChange(null); //send value to parent\n } else {\n setSelectedItem(value);\n onValueChange(value); //send value to parent\n setOpen(false); //close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: any) => {\n setSelectedItems((prevVal) => {\n let selectedValues = [...prevVal];\n\n if (selectedValues?.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n //select all checkbox should not be checked if the list contains disabled values\n if (\n options.filter((item) => !item.disabled).length ===\n selectedValues.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n return selectedValues;\n });\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple && Array.isArray(selectedItems)) {\n let selectedLabels: Array<string> = [];\n selectedItems?.forEach((element: any) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) => item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownIcon={dropdownIcon}\n dropdownStyle={dropdownStyle}\n dropdownIconStyle={dropdownIconStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => {}}\n modalProps={modalProps}\n >\n <DropdownList\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {listHeaderComponent}\n {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n ListFooterComponent={listFooterComponent}\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Input","_interopRequireDefault","_CheckBox","_Dropdown","_DropdownFlatList","_DropdownSectionList","_CustomModal","_colors","_constants","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","dropdownIcon","labelStyle","placeholderStyle","dropdownStyle","dropdownIconStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainerStyle","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","rest","newOptions","setNewOptions","useState","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","useEffect","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","DropdownSectionList","DropdownFlatList","modifiedSectionData","extractPropertyFromArray","flat","modifiedOptions","optLabel","DEFAULT_OPTION_LABEL","optValue","DEFAULT_OPTION_VALUE","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","handleSelectAll","filteredOptions","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","optionsCopy","JSON","parse","stringify","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","handleToggleModal","primary","colors","gray","sectionListMaxLength","getMaxLengthOfSectionListProperty","listIsEmpty","createElement","Fragment","onRequestClose","ListHeaderComponent","onChangeText","text","style","View","styles","optionsContainerStyle","TouchableOpacity","onPress","onChange","ListFooterComponent","exports","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","_default"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Input from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownFlatList from './components/Dropdown/DropdownFlatList';\nimport DropdownSectionList from './components/Dropdown/DropdownSectionList';\nimport CustomModal from './components/CustomModal';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type {\n DropdownProps,\n TFlatList,\n TFlatListItem,\n TSectionList,\n TSectionListItem,\n} from './types/index.types';\nimport {\n extractPropertyFromArray,\n getMaxLengthOfSectionListProperty,\n} from './utils';\n\nexport const DropdownSelect: React.FC<DropdownProps> = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n dropdownIcon,\n labelStyle,\n placeholderStyle,\n dropdownStyle,\n dropdownIconStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainerStyle,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps,\n hideModal = false,\n ...rest\n}) => {\n const [newOptions, setNewOptions] = useState<TFlatList | TSectionList>([]);\n const [open, setOpen] = useState<boolean>(false);\n const [selectAll, setSelectAll] = useState<boolean>(false);\n const [selectedItem, setSelectedItem] = useState<any>(''); //for single selection\n const [selectedItems, setSelectedItems] = useState<any[]>([]); //for multiple selection\n const [searchValue, setSearchValue] = useState<string>('');\n\n useEffect(() => {\n if (options) {\n setNewOptions(options);\n }\n return () => {};\n }, [options]);\n\n useEffect(() => {\n isMultiple\n ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : [])\n : setSelectedItem(selectedValue);\n\n return () => {};\n }, [selectedValue, isMultiple, onValueChange]);\n\n /*===========================================\n * List type\n *==========================================*/\n\n const isSectionList = newOptions.some(\n (item) => item.title && item.data && Array.isArray(item.data)\n );\n\n const ListTypeComponent = isSectionList\n ? DropdownSectionList\n : DropdownFlatList;\n let modifiedSectionData = extractPropertyFromArray(newOptions, 'data').flat();\n let modifiedOptions = isSectionList ? modifiedSectionData : newOptions;\n\n const optLabel = optionLabel || DEFAULT_OPTION_LABEL;\n const optValue = optionValue || DEFAULT_OPTION_VALUE;\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: string | number) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n onValueChange(null); //send value to parent\n } else {\n setSelectedItem(value);\n onValueChange(value); //send value to parent\n setOpen(false); //close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: string[] | number[]) => {\n setSelectedItems((prevVal) => {\n let selectedValues = [...prevVal];\n\n if (selectedValues?.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n //select all checkbox should not be checked if the list contains disabled values\n if (\n modifiedOptions.filter((item: TFlatListItem) => !item.disabled)\n .length === selectedValues.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n return selectedValues;\n });\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n //don't select disabled items\n const filteredOptions = modifiedOptions.filter(\n (item: TFlatListItem) => !item.disabled\n );\n\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple && Array.isArray(selectedItems)) {\n let selectedLabels: Array<string> = [];\n\n selectedItems?.forEach((element: number | string) => {\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === element\n )?.[optLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel = modifiedOptions?.find(\n (item: TFlatListItem) => item[optValue] === selectedItem\n );\n return selectedItemLabel?.[optLabel];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n //Because Search mutates the initial state, we have to search with a copy of the original array\n const optionsCopy = JSON.parse(JSON.stringify(options));\n const searchResults = isSectionList\n ? searchSectionList(optionsCopy as TSectionList, regexFilter)\n : searchFlatList(optionsCopy as TFlatList, regexFilter);\n\n setNewOptions(searchResults);\n };\n\n const searchFlatList = (flatList: TFlatList, regexFilter: RegExp) => {\n const searchResults = flatList.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return item;\n }\n return;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n listItem.data = listItem.data.filter((item: TFlatListItem) => {\n if (\n item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 ||\n item[optValue].toString().toLowerCase().search(regexFilter) !== -1\n ) {\n return listItem.data.push(item);\n }\n return;\n });\n\n return listItem;\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n const sectionListMaxLength = getMaxLengthOfSectionListProperty(\n newOptions as TSectionList,\n 'data'\n );\n\n const listIsEmpty = isSectionList\n ? sectionListMaxLength > 1\n : newOptions.length > 1;\n\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownIcon={dropdownIcon}\n dropdownStyle={dropdownStyle}\n dropdownIconStyle={dropdownIconStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => {}}\n modalProps={modalProps}\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {listHeaderComponent}\n {isMultiple && listIsEmpty && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n ListFooterComponent={listFooterComponent}\n listComponentStyles={listComponentStyles}\n options={newOptions}\n optionLabel={optLabel}\n optionValue={optValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["colors","primary","red","black","white","dark","gray","lightGray","disabled","exports"],"sources":["colors.ts"],"sourcesContent":["export const colors: any = {\n primary: 'green',\n red: '#FA4169',\n black: '#000000',\n white: '#FFFFFF',\n dark: '#11142D',\n gray: '#808191',\n lightGray: '#F7F7F7',\n disabled: '#d3d3d3',\n};\n"],"mappings":";;;;;;AAAO,MAAMA,MAAW,GAAG;EACzBC,OAAO,EAAE,OAAO;EAChBC,GAAG,EAAE,SAAS;EACdC,KAAK,EAAE,SAAS;EAChBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE,SAAS;EACpBC,QAAQ,EAAE;AACZ,CAAC;AAACC,OAAA,CAAAT,MAAA,GAAAA,MAAA"}
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.inputStyles = void 0;
|
|
7
|
-
|
|
8
7
|
var _reactNative = require("react-native");
|
|
9
|
-
|
|
10
8
|
var _colors = require("./colors");
|
|
11
|
-
|
|
12
9
|
const inputStyles = _reactNative.StyleSheet.create({
|
|
13
10
|
input: {
|
|
14
11
|
paddingVertical: 18,
|
|
@@ -32,6 +29,5 @@ const inputStyles = _reactNative.StyleSheet.create({
|
|
|
32
29
|
borderColor: _colors.colors.primary
|
|
33
30
|
}
|
|
34
31
|
});
|
|
35
|
-
|
|
36
32
|
exports.inputStyles = inputStyles;
|
|
37
33
|
//# sourceMappingURL=input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_colors","inputStyles","StyleSheet","create","input","paddingVertical","paddingHorizontal","backgroundColor","colors","lightGray","borderRadius","borderColor","dark","borderWidth","color","width","minHeight","inputFocusErrorState","borderStyle","red","inputFocusState","primary","exports"],"sources":["input.ts"],"sourcesContent":["import { StyleSheet } from 'react-native';\nimport { colors } from './colors';\n\nexport const inputStyles: any = StyleSheet.create({\n input: {\n paddingVertical: 18,\n paddingHorizontal: 23,\n backgroundColor: colors.lightGray,\n borderRadius: 8,\n borderColor: colors.dark,\n borderWidth: 1,\n color: colors.dark,\n width: '100%',\n minHeight: 64,\n },\n inputFocusErrorState: {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: colors.red,\n },\n inputFocusState: {\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: colors.primary,\n },\n});\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEO,MAAME,WAAgB,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAChDC,KAAK,EAAE;IACLC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAEC,cAAM,CAACC,SAAS;IACjCC,YAAY,EAAE,CAAC;IACfC,WAAW,EAAEH,cAAM,CAACI,IAAI;IACxBC,WAAW,EAAE,CAAC;IACdC,KAAK,EAAEN,cAAM,CAACI,IAAI;IAClBG,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACb,CAAC;EACDC,oBAAoB,EAAE;IACpBJ,WAAW,EAAE,CAAC;IACdK,WAAW,EAAE,OAAO;IACpBP,WAAW,EAAEH,cAAM,CAACW;EACtB,CAAC;EACDC,eAAe,EAAE;IACfP,WAAW,EAAE,CAAC;IACdK,WAAW,EAAE,OAAO;IACpBP,WAAW,EAAEH,cAAM,CAACa;EACtB;AACF,CAAC,CAAC;AAACC,OAAA,CAAArB,WAAA,GAAAA,WAAA"}
|
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.typography = void 0;
|
|
7
|
-
|
|
8
7
|
var _reactNative = require("react-native");
|
|
9
|
-
|
|
10
8
|
const typography = _reactNative.StyleSheet.create({
|
|
11
9
|
caption: {
|
|
12
10
|
fontStyle: 'normal',
|
|
@@ -15,6 +13,5 @@ const typography = _reactNative.StyleSheet.create({
|
|
|
15
13
|
lineHeight: 15
|
|
16
14
|
}
|
|
17
15
|
});
|
|
18
|
-
|
|
19
16
|
exports.typography = typography;
|
|
20
17
|
//# sourceMappingURL=typography.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["_reactNative","require","typography","StyleSheet","create","caption","fontStyle","fontWeight","fontSize","lineHeight","exports"],"sources":["typography.ts"],"sourcesContent":["import { StyleSheet } from 'react-native';\n\nexport const typography: any = StyleSheet.create({\n caption: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontSize: 12,\n lineHeight: 15,\n },\n});\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,UAAe,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/CC,OAAO,EAAE;IACPC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAACC,OAAA,CAAAR,UAAA,GAAAA,UAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type {\n ViewStyle,\n ColorValue,\n TextStyle,\n ModalProps,\n} from 'react-native';\n\nexport type DropdownProps = {\n placeholder?: string;\n label?: string;\n error?: string;\n helperText?: string;\n options: TFlatList | TSectionList;\n optionLabel?: string;\n optionValue?: string;\n onValueChange: Function;\n selectedValue?:\n | string\n | boolean\n | number\n | string[]\n | boolean[]\n | number[]\n | null;\n isMultiple?: boolean;\n isSearchable?: boolean;\n dropdownIcon?: React.ReactNode;\n labelStyle?: TextStyle;\n dropdownStyle?: ViewStyle;\n dropdownIconStyle?: ViewStyle;\n dropdownContainerStyle?: ViewStyle;\n dropdownErrorStyle?: ViewStyle;\n dropdownErrorTextStyle?: TextStyle;\n dropdownHelperTextStyle?: TextStyle;\n selectedItemStyle?: TextStyle;\n multipleSelectedItemStyle?: TextStyle;\n modalBackgroundStyle?: ViewStyle;\n modalOptionsContainerStyle?: ViewStyle;\n searchInputStyle?: ViewStyle;\n primaryColor?: ColorValue;\n disabled?: boolean;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n checkboxComponentStyles?: {\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n };\n placeholderStyle?: TextStyle;\n listHeaderComponent?: React.ReactNode;\n listFooterComponent?: React.ReactNode;\n hideModal?: boolean;\n modalProps?: ModalProps;\n listComponentStyles?: {\n listEmptyComponentStyle?: TextStyle;\n itemSeparatorStyle?: ViewStyle;\n sectionHeaderStyle?: TextStyle;\n };\n};\n\nexport type TFlatList = TFlatListItem[];\nexport type TFlatListItem = {\n [key: string]: string | number | boolean;\n}\n\nexport type TSectionList = TSectionListItem[];\nexport type TSectionListItem = { title: string; data: TFlatList };\n"],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getMaxLengthOfSectionListProperty = exports.extractPropertyFromArray = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Extract property from array
|
|
9
|
+
*/
|
|
10
|
+
const extractPropertyFromArray = (arr, property) => {
|
|
11
|
+
let extractedValue = arr.map(item => item[property]);
|
|
12
|
+
return extractedValue;
|
|
13
|
+
};
|
|
14
|
+
exports.extractPropertyFromArray = extractPropertyFromArray;
|
|
15
|
+
const getMaxLengthOfSectionListProperty = (sectionList, property) => {
|
|
16
|
+
let maxLength = 0;
|
|
17
|
+
sectionList.forEach(obj => {
|
|
18
|
+
var _obj$property;
|
|
19
|
+
if (((_obj$property = obj[property]) === null || _obj$property === void 0 ? void 0 : _obj$property.length) > maxLength) {
|
|
20
|
+
maxLength = obj.data.length;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return maxLength;
|
|
24
|
+
};
|
|
25
|
+
exports.getMaxLengthOfSectionListProperty = getMaxLengthOfSectionListProperty;
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["extractPropertyFromArray","arr","property","extractedValue","map","item","exports","getMaxLengthOfSectionListProperty","sectionList","maxLength","forEach","obj","_obj$property","length","data"],"sources":["index.ts"],"sourcesContent":["import { TSectionList } from 'src/types/index.types';\n\n/**\n * Extract property from array\n */\nexport const extractPropertyFromArray = (arr: any, property: string) => {\n let extractedValue = arr.map((item: any) => item[property]);\n\n return extractedValue;\n};\n\nexport const getMaxLengthOfSectionListProperty = (\n sectionList: TSectionList,\n property: 'title' | 'data'\n) => {\n let maxLength = 0;\n\n sectionList.forEach((obj) => {\n if (obj[property]?.length > maxLength) {\n maxLength = obj.data.length;\n }\n });\n\n return maxLength;\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,MAAMA,wBAAwB,GAAGA,CAACC,GAAQ,EAAEC,QAAgB,KAAK;EACtE,IAAIC,cAAc,GAAGF,GAAG,CAACG,GAAG,CAAEC,IAAS,IAAKA,IAAI,CAACH,QAAQ,CAAC,CAAC;EAE3D,OAAOC,cAAc;AACvB,CAAC;AAACG,OAAA,CAAAN,wBAAA,GAAAA,wBAAA;AAEK,MAAMO,iCAAiC,GAAGA,CAC/CC,WAAyB,EACzBN,QAA0B,KACvB;EACH,IAAIO,SAAS,GAAG,CAAC;EAEjBD,WAAW,CAACE,OAAO,CAAEC,GAAG,IAAK;IAAA,IAAAC,aAAA;IAC3B,IAAI,EAAAA,aAAA,GAAAD,GAAG,CAACT,QAAQ,CAAC,cAAAU,aAAA,uBAAbA,aAAA,CAAeC,MAAM,IAAGJ,SAAS,EAAE;MACrCA,SAAS,GAAGE,GAAG,CAACG,IAAI,CAACD,MAAM;IAC7B;EACF,CAAC,CAAC;EAEF,OAAOJ,SAAS;AAClB,CAAC;AAACH,OAAA,CAAAC,iCAAA,GAAAA,iCAAA"}
|
|
@@ -3,8 +3,14 @@ import React from 'react';
|
|
|
3
3
|
import { Pressable, Text, StyleSheet, Image, View } from 'react-native';
|
|
4
4
|
import { colors } from '../../styles/colors';
|
|
5
5
|
import { CHECKBOX_SIZE } from '../../constants';
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
*`checkboxSize`, `checkboxStyle`,`checkboxLabelStyle` Will be deleted in version 1.0.
|
|
9
|
+
* and replaced with `checkboxComponentStyles`
|
|
10
|
+
*/
|
|
6
11
|
|
|
7
12
|
const CheckBox = _ref => {
|
|
13
|
+
var _checkboxComponentSty, _checkboxComponentSty2;
|
|
8
14
|
let {
|
|
9
15
|
label,
|
|
10
16
|
value,
|
|
@@ -13,11 +19,14 @@ const CheckBox = _ref => {
|
|
|
13
19
|
checkboxSize,
|
|
14
20
|
checkboxStyle,
|
|
15
21
|
checkboxLabelStyle,
|
|
22
|
+
checkboxComponentStyles,
|
|
16
23
|
onChange
|
|
17
24
|
} = _ref;
|
|
25
|
+
// const { checkboxSize, checkboxStyle, checkboxLabelStyle } =
|
|
26
|
+
// checkboxComponentStyles;
|
|
18
27
|
const fillColor = {
|
|
19
|
-
backgroundColor: disabled ? '#d3d3d3' : value ? (checkboxStyle === null || checkboxStyle === void 0 ? void 0 : checkboxStyle.backgroundColor) || primaryColor || 'green' : 'white',
|
|
20
|
-
borderColor: disabled ? colors.disabled : styles.checkbox.borderColor
|
|
28
|
+
backgroundColor: disabled ? '#d3d3d3' : value ? (checkboxComponentStyles === null || checkboxComponentStyles === void 0 || (_checkboxComponentSty = checkboxComponentStyles.checkboxStyle) === null || _checkboxComponentSty === void 0 ? void 0 : _checkboxComponentSty.backgroundColor) || (checkboxStyle === null || checkboxStyle === void 0 ? void 0 : checkboxStyle.backgroundColor) || primaryColor || 'green' : 'white',
|
|
29
|
+
borderColor: disabled ? colors.disabled : (checkboxComponentStyles === null || checkboxComponentStyles === void 0 || (_checkboxComponentSty2 = checkboxComponentStyles.checkboxStyle) === null || _checkboxComponentSty2 === void 0 ? void 0 : _checkboxComponentSty2.borderColor) || (checkboxStyle === null || checkboxStyle === void 0 ? void 0 : checkboxStyle.borderColor) || styles.checkbox.borderColor
|
|
21
30
|
};
|
|
22
31
|
return /*#__PURE__*/React.createElement(Pressable, {
|
|
23
32
|
onPress: onChange ? () => onChange(!value) : null,
|
|
@@ -28,14 +37,13 @@ const CheckBox = _ref => {
|
|
|
28
37
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
29
38
|
source: require('../../asset/check.png'),
|
|
30
39
|
style: [{
|
|
31
|
-
height: checkboxSize || CHECKBOX_SIZE,
|
|
32
|
-
width: checkboxSize || CHECKBOX_SIZE
|
|
40
|
+
height: (checkboxComponentStyles === null || checkboxComponentStyles === void 0 ? void 0 : checkboxComponentStyles.checkboxSize) || checkboxSize || CHECKBOX_SIZE,
|
|
41
|
+
width: (checkboxComponentStyles === null || checkboxComponentStyles === void 0 ? void 0 : checkboxComponentStyles.checkboxSize) || checkboxSize || CHECKBOX_SIZE
|
|
33
42
|
}]
|
|
34
43
|
})), label && /*#__PURE__*/React.createElement(Text, {
|
|
35
|
-
style: [checkboxLabelStyle, styles.labelStyle]
|
|
44
|
+
style: [(checkboxComponentStyles === null || checkboxComponentStyles === void 0 ? void 0 : checkboxComponentStyles.checkboxLabelStyle) || checkboxLabelStyle, styles.labelStyle]
|
|
36
45
|
}, label));
|
|
37
46
|
};
|
|
38
|
-
|
|
39
47
|
const styles = StyleSheet.create({
|
|
40
48
|
checkboxContainer: {
|
|
41
49
|
flexDirection: 'row',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","Pressable","Text","StyleSheet","Image","View","colors","CHECKBOX_SIZE","CheckBox","_ref","_checkboxComponentSty","_checkboxComponentSty2","label","value","disabled","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","onChange","fillColor","backgroundColor","borderColor","styles","checkbox","createElement","onPress","style","checkboxContainer","source","require","height","width","labelStyle","create","flexDirection","flexWrap","alignItems","padding","borderWidth","borderStyle","borderRadius","marginLeft"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React from 'react';\nimport { Pressable, Text, StyleSheet, Image, View } from 'react-native';\nimport { colors } from '../../styles/colors';\nimport { CHECKBOX_SIZE } from '../../constants';\nimport type { CheckboxProps } from './types';\n\n/**\n *\n *`checkboxSize`, `checkboxStyle`,`checkboxLabelStyle` Will be deleted in version 1.0.\n * and replaced with `checkboxComponentStyles`\n */\n\nconst CheckBox = ({\n label,\n value,\n disabled,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n onChange,\n}: CheckboxProps) => {\n // const { checkboxSize, checkboxStyle, checkboxLabelStyle } =\n // checkboxComponentStyles;\n const fillColor = {\n backgroundColor: disabled\n ? '#d3d3d3'\n : value\n ? checkboxComponentStyles?.checkboxStyle?.backgroundColor ||\n checkboxStyle?.backgroundColor ||\n primaryColor ||\n 'green'\n : 'white',\n borderColor: disabled\n ? colors.disabled\n : checkboxComponentStyles?.checkboxStyle?.borderColor ||\n checkboxStyle?.borderColor ||\n styles.checkbox.borderColor,\n };\n\n return (\n <Pressable\n onPress={onChange ? () => onChange(!value) : null}\n style={[styles.checkboxContainer]}\n disabled={disabled}\n >\n <View style={[styles.checkbox, checkboxStyle, fillColor]}>\n <Image\n source={require('../../asset/check.png')}\n style={[\n {\n height:\n checkboxComponentStyles?.checkboxSize ||\n checkboxSize ||\n CHECKBOX_SIZE,\n width:\n checkboxComponentStyles?.checkboxSize ||\n checkboxSize ||\n CHECKBOX_SIZE,\n },\n ]}\n />\n </View>\n {label && (\n <Text\n style={[\n checkboxComponentStyles?.checkboxLabelStyle || checkboxLabelStyle,\n styles.labelStyle,\n ]}\n >\n {label}\n </Text>\n )}\n </Pressable>\n );\n};\n\nconst styles = StyleSheet.create({\n checkboxContainer: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'center',\n },\n checkbox: {\n padding: 4,\n borderWidth: 1,\n borderStyle: 'solid',\n borderRadius: 4,\n borderColor: 'black',\n },\n labelStyle: { marginLeft: 10 },\n});\n\nexport default CheckBox;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ColorValue, ViewStyle, TextStyle } from 'react-native';\n\nexport type CheckboxProps = {\n label?: string;\n value?: boolean;\n disabled?: boolean;\n primaryColor?: ColorValue;\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n checkboxComponentStyles?: {\n checkboxSize?: number;\n checkboxStyle?: ViewStyle;\n checkboxLabelStyle?: TextStyle;\n };\n onChange?: (value: boolean | string | number) => void;\n};\n"],"mappings":""}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
2
|
-
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { Modal, TouchableOpacity, SafeAreaView, StyleSheet } from 'react-native';
|
|
5
4
|
import { colors } from '../../styles/colors';
|
|
6
|
-
|
|
7
5
|
const CustomModal = _ref => {
|
|
8
6
|
let {
|
|
9
7
|
open,
|
|
@@ -26,7 +24,6 @@ const CustomModal = _ref => {
|
|
|
26
24
|
style: [styles.modalOptionsContainer, modalOptionsContainerStyle]
|
|
27
25
|
}, children)));
|
|
28
26
|
};
|
|
29
|
-
|
|
30
27
|
const styles = StyleSheet.create({
|
|
31
28
|
modalContainer: {
|
|
32
29
|
flex: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","Modal","TouchableOpacity","SafeAreaView","StyleSheet","colors","CustomModal","_ref","open","handleToggleModal","onRequestClose","modalBackgroundStyle","modalOptionsContainerStyle","modalProps","children","createElement","_extends","transparent","visible","animationType","onPress","style","styles","modalContainer","modalOptionsContainer","create","flex","justifyContent","backgroundColor","maxHeight","white","borderTopLeftRadius","borderTopRightRadius"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Modal,\n TouchableOpacity,\n SafeAreaView,\n StyleSheet,\n} from 'react-native';\nimport { colors } from '../../styles/colors';\n\nconst CustomModal = ({\n open,\n handleToggleModal,\n onRequestClose,\n modalBackgroundStyle,\n modalOptionsContainerStyle,\n modalProps,\n children,\n}: any) => {\n return (\n <Modal\n transparent={true}\n visible={open}\n onRequestClose={() => onRequestClose()}\n animationType=\"fade\"\n {...modalProps}\n >\n <TouchableOpacity\n onPress={() => handleToggleModal()}\n style={[\n styles.modalContainer,\n styles.modalBackgroundStyle,\n modalBackgroundStyle,\n ]}\n >\n <SafeAreaView\n style={[styles.modalOptionsContainer, modalOptionsContainerStyle]}\n >\n {children}\n </SafeAreaView>\n </TouchableOpacity>\n </Modal>\n );\n};\n\nconst styles = StyleSheet.create({\n modalContainer: {\n flex: 1,\n justifyContent: 'flex-end',\n },\n modalBackgroundStyle: { backgroundColor: 'rgba(0, 0, 0, 0.5)' },\n modalOptionsContainer: {\n maxHeight: '50%',\n backgroundColor: colors.white,\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n },\n});\n\nexport default CustomModal;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,KAAK,EACLC,gBAAgB,EAChBC,YAAY,EACZC,UAAU,QACL,cAAc;AACrB,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,MAAMC,WAAW,GAAGC,IAAA,IAQT;EAAA,IARU;IACnBC,IAAI;IACJC,iBAAiB;IACjBC,cAAc;IACdC,oBAAoB;IACpBC,0BAA0B;IAC1BC,UAAU;IACVC;EACG,CAAC,GAAAP,IAAA;EACJ,oBACEP,KAAA,CAAAe,aAAA,CAACd,KAAK,EAAAe,QAAA;IACJC,WAAW,EAAE,IAAK;IAClBC,OAAO,EAAEV,IAAK;IACdE,cAAc,EAAEA,CAAA,KAAMA,cAAc,CAAC,CAAE;IACvCS,aAAa,EAAC;EAAM,GAChBN,UAAU,gBAEdb,KAAA,CAAAe,aAAA,CAACb,gBAAgB;IACfkB,OAAO,EAAEA,CAAA,KAAMX,iBAAiB,CAAC,CAAE;IACnCY,KAAK,EAAE,CACLC,MAAM,CAACC,cAAc,EACrBD,MAAM,CAACX,oBAAoB,EAC3BA,oBAAoB;EACpB,gBAEFX,KAAA,CAAAe,aAAA,CAACZ,YAAY;IACXkB,KAAK,EAAE,CAACC,MAAM,CAACE,qBAAqB,EAAEZ,0BAA0B;EAAE,GAEjEE,QACW,CACE,CACb,CAAC;AAEZ,CAAC;AAED,MAAMQ,MAAM,GAAGlB,UAAU,CAACqB,MAAM,CAAC;EAC/BF,cAAc,EAAE;IACdG,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE;EAClB,CAAC;EACDhB,oBAAoB,EAAE;IAAEiB,eAAe,EAAE;EAAqB,CAAC;EAC/DJ,qBAAqB,EAAE;IACrBK,SAAS,EAAE,KAAK;IAChBD,eAAe,EAAEvB,MAAM,CAACyB,KAAK;IAC7BC,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE;EACxB;AACF,CAAC,CAAC;AAEF,eAAe1B,WAAW"}
|