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/module/index.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
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, { useState, useEffect } from 'react';
|
|
4
3
|
import { TouchableOpacity, StyleSheet, View } from 'react-native';
|
|
4
|
+
import Input from './components/Input';
|
|
5
|
+
import CheckBox from './components/CheckBox';
|
|
5
6
|
import Dropdown from './components/Dropdown/Dropdown';
|
|
6
|
-
import
|
|
7
|
+
import DropdownFlatList from './components/Dropdown/DropdownFlatList';
|
|
8
|
+
import DropdownSectionList from './components/Dropdown/DropdownSectionList';
|
|
7
9
|
import CustomModal from './components/CustomModal';
|
|
8
|
-
import { Input } from './components/Input';
|
|
9
|
-
import CheckBox from './components/CheckBox';
|
|
10
10
|
import { colors } from './styles/colors';
|
|
11
11
|
import { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';
|
|
12
|
+
import { extractPropertyFromArray, getMaxLengthOfSectionListProperty } from './utils';
|
|
12
13
|
export const DropdownSelect = _ref => {
|
|
13
14
|
let {
|
|
14
15
|
placeholder,
|
|
@@ -39,10 +40,15 @@ export const DropdownSelect = _ref => {
|
|
|
39
40
|
primaryColor,
|
|
40
41
|
disabled,
|
|
41
42
|
checkboxSize,
|
|
43
|
+
// kept for backwards compatibility
|
|
42
44
|
checkboxStyle,
|
|
45
|
+
// kept for backwards compatibility
|
|
43
46
|
checkboxLabelStyle,
|
|
47
|
+
// kept for backwards compatibility
|
|
48
|
+
checkboxComponentStyles,
|
|
44
49
|
listHeaderComponent,
|
|
45
50
|
listFooterComponent,
|
|
51
|
+
listComponentStyles,
|
|
46
52
|
modalProps,
|
|
47
53
|
hideModal = false,
|
|
48
54
|
...rest
|
|
@@ -51,22 +57,33 @@ export const DropdownSelect = _ref => {
|
|
|
51
57
|
const [open, setOpen] = useState(false);
|
|
52
58
|
const [selectAll, setSelectAll] = useState(false);
|
|
53
59
|
const [selectedItem, setSelectedItem] = useState(''); //for single selection
|
|
54
|
-
|
|
55
60
|
const [selectedItems, setSelectedItems] = useState([]); //for multiple selection
|
|
56
|
-
|
|
57
61
|
const [searchValue, setSearchValue] = useState('');
|
|
58
62
|
useEffect(() => {
|
|
59
63
|
if (options) {
|
|
60
64
|
setNewOptions(options);
|
|
61
65
|
}
|
|
66
|
+
return () => {};
|
|
62
67
|
}, [options]);
|
|
63
68
|
useEffect(() => {
|
|
64
69
|
isMultiple ? setSelectedItems(Array.isArray(selectedValue) ? selectedValue : []) : setSelectedItem(selectedValue);
|
|
70
|
+
return () => {};
|
|
65
71
|
}, [selectedValue, isMultiple, onValueChange]);
|
|
72
|
+
|
|
66
73
|
/*===========================================
|
|
67
|
-
*
|
|
74
|
+
* List type
|
|
68
75
|
*==========================================*/
|
|
69
76
|
|
|
77
|
+
const isSectionList = newOptions.some(item => item.title && item.data && Array.isArray(item.data));
|
|
78
|
+
const ListTypeComponent = isSectionList ? DropdownSectionList : DropdownFlatList;
|
|
79
|
+
let modifiedSectionData = extractPropertyFromArray(newOptions, 'data').flat();
|
|
80
|
+
let modifiedOptions = isSectionList ? modifiedSectionData : newOptions;
|
|
81
|
+
const optLabel = optionLabel || DEFAULT_OPTION_LABEL;
|
|
82
|
+
const optValue = optionValue || DEFAULT_OPTION_VALUE;
|
|
83
|
+
|
|
84
|
+
/*===========================================
|
|
85
|
+
* Selection handlers
|
|
86
|
+
*==========================================*/
|
|
70
87
|
const handleSingleSelection = value => {
|
|
71
88
|
if (selectedItem === value) {
|
|
72
89
|
setSelectedItem(null);
|
|
@@ -74,7 +91,6 @@ export const DropdownSelect = _ref => {
|
|
|
74
91
|
} else {
|
|
75
92
|
setSelectedItem(value);
|
|
76
93
|
onValueChange(value); //send value to parent
|
|
77
|
-
|
|
78
94
|
setOpen(false); //close modal upon selection
|
|
79
95
|
}
|
|
80
96
|
};
|
|
@@ -82,99 +98,110 @@ export const DropdownSelect = _ref => {
|
|
|
82
98
|
const handleMultipleSelections = value => {
|
|
83
99
|
setSelectedItems(prevVal => {
|
|
84
100
|
var _selectedValues;
|
|
85
|
-
|
|
86
101
|
let selectedValues = [...prevVal];
|
|
87
|
-
|
|
88
102
|
if ((_selectedValues = selectedValues) !== null && _selectedValues !== void 0 && _selectedValues.includes(value)) {
|
|
89
103
|
selectedValues = selectedValues.filter(item => item !== value);
|
|
90
104
|
} else {
|
|
91
105
|
selectedValues.push(value);
|
|
92
106
|
}
|
|
93
|
-
|
|
94
107
|
setSelectedItems(selectedValues);
|
|
95
108
|
onValueChange(selectedValues); //send value to parent
|
|
96
|
-
//select all checkbox should not be checked if the list contains disabled values
|
|
97
109
|
|
|
98
|
-
if
|
|
110
|
+
//select all checkbox should not be checked if the list contains disabled values
|
|
111
|
+
if (modifiedOptions.filter(item => !item.disabled).length === selectedValues.length) {
|
|
99
112
|
setSelectAll(true);
|
|
100
113
|
} else {
|
|
101
114
|
setSelectAll(false);
|
|
102
115
|
}
|
|
103
|
-
|
|
104
116
|
return selectedValues;
|
|
105
117
|
});
|
|
106
118
|
};
|
|
107
|
-
|
|
108
119
|
const handleSelectAll = () => {
|
|
109
120
|
setSelectAll(prevVal => {
|
|
110
121
|
const selectedValues = [];
|
|
111
|
-
const filteredOptions = newOptions.filter(item => !item.disabled); //don't select disabled items
|
|
112
122
|
|
|
123
|
+
//don't select disabled items
|
|
124
|
+
const filteredOptions = modifiedOptions.filter(item => !item.disabled);
|
|
113
125
|
if (!prevVal) {
|
|
114
126
|
for (let i = 0; i < filteredOptions.length; i++) {
|
|
115
|
-
selectedValues.push(filteredOptions[i][
|
|
127
|
+
selectedValues.push(filteredOptions[i][optValue]);
|
|
116
128
|
}
|
|
117
129
|
}
|
|
118
|
-
|
|
119
130
|
setSelectedItems(selectedValues);
|
|
120
131
|
onValueChange(selectedValues); //send value to parent
|
|
121
|
-
|
|
122
132
|
return !prevVal;
|
|
123
133
|
});
|
|
124
134
|
};
|
|
135
|
+
|
|
125
136
|
/*===========================================
|
|
126
137
|
* Get label handler
|
|
127
138
|
*==========================================*/
|
|
128
|
-
|
|
129
|
-
|
|
130
139
|
const getSelectedItemsLabel = () => {
|
|
131
140
|
if (isMultiple && Array.isArray(selectedItems)) {
|
|
132
141
|
let selectedLabels = [];
|
|
133
142
|
selectedItems === null || selectedItems === void 0 ? void 0 : selectedItems.forEach(element => {
|
|
134
|
-
var
|
|
135
|
-
|
|
136
|
-
let selectedItemLabel = options && ((_options$find = options.find(item => item[optionValue !== null && optionValue !== void 0 ? optionValue : DEFAULT_OPTION_VALUE] === element)) === null || _options$find === void 0 ? void 0 : _options$find[optionLabel]);
|
|
143
|
+
var _modifiedOptions$find;
|
|
144
|
+
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];
|
|
137
145
|
selectedLabels.push(selectedItemLabel);
|
|
138
146
|
});
|
|
139
147
|
return selectedLabels;
|
|
140
148
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return selectedItemLabel === null || selectedItemLabel === void 0 ? void 0 : selectedItemLabel[optionLabel !== null && optionLabel !== void 0 ? optionLabel : DEFAULT_OPTION_LABEL];
|
|
149
|
+
let selectedItemLabel = modifiedOptions === null || modifiedOptions === void 0 ? void 0 : modifiedOptions.find(item => item[optValue] === selectedItem);
|
|
150
|
+
return selectedItemLabel === null || selectedItemLabel === void 0 ? void 0 : selectedItemLabel[optLabel];
|
|
144
151
|
};
|
|
152
|
+
|
|
145
153
|
/*===========================================
|
|
146
154
|
* Search
|
|
147
155
|
*==========================================*/
|
|
148
|
-
|
|
149
|
-
|
|
150
156
|
const onSearch = value => {
|
|
151
157
|
setSearchValue(value);
|
|
152
158
|
let searchText = value.toString().toLocaleLowerCase().trim();
|
|
153
159
|
const regexFilter = new RegExp(searchText, 'i');
|
|
154
|
-
|
|
155
|
-
|
|
160
|
+
|
|
161
|
+
//Because Search mutates the initial state, we have to search with a copy of the original array
|
|
162
|
+
const optionsCopy = JSON.parse(JSON.stringify(options));
|
|
163
|
+
const searchResults = isSectionList ? searchSectionList(optionsCopy, regexFilter) : searchFlatList(optionsCopy, regexFilter);
|
|
164
|
+
setNewOptions(searchResults);
|
|
165
|
+
};
|
|
166
|
+
const searchFlatList = (flatList, regexFilter) => {
|
|
167
|
+
const searchResults = flatList.filter(item => {
|
|
168
|
+
if (item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 || item[optValue].toString().toLowerCase().search(regexFilter) !== -1) {
|
|
156
169
|
return item;
|
|
157
170
|
}
|
|
171
|
+
return;
|
|
158
172
|
});
|
|
159
|
-
|
|
173
|
+
return searchResults;
|
|
174
|
+
};
|
|
175
|
+
const searchSectionList = (sectionList, regexFilter) => {
|
|
176
|
+
const searchResults = sectionList.map(listItem => {
|
|
177
|
+
listItem.data = listItem.data.filter(item => {
|
|
178
|
+
if (item[optLabel].toString().toLowerCase().search(regexFilter) !== -1 || item[optValue].toString().toLowerCase().search(regexFilter) !== -1) {
|
|
179
|
+
return listItem.data.push(item);
|
|
180
|
+
}
|
|
181
|
+
return;
|
|
182
|
+
});
|
|
183
|
+
return listItem;
|
|
184
|
+
});
|
|
185
|
+
return searchResults;
|
|
160
186
|
};
|
|
187
|
+
|
|
161
188
|
/*===========================================
|
|
162
189
|
* Modal
|
|
163
190
|
*==========================================*/
|
|
164
|
-
|
|
165
|
-
|
|
166
191
|
const handleToggleModal = () => {
|
|
167
192
|
setOpen(!open);
|
|
168
193
|
setSearchValue('');
|
|
169
194
|
setNewOptions(options);
|
|
170
195
|
};
|
|
171
|
-
|
|
172
196
|
useEffect(() => {
|
|
173
197
|
if (hideModal) {
|
|
174
198
|
setOpen(false);
|
|
175
199
|
}
|
|
200
|
+
return () => {};
|
|
176
201
|
}, [hideModal]);
|
|
177
202
|
let primary = primaryColor || colors.gray;
|
|
203
|
+
const sectionListMaxLength = getMaxLengthOfSectionListProperty(newOptions, 'data');
|
|
204
|
+
const listIsEmpty = isSectionList ? sectionListMaxLength > 1 : newOptions.length > 1;
|
|
178
205
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dropdown, _extends({
|
|
179
206
|
label: label,
|
|
180
207
|
placeholder: placeholder,
|
|
@@ -205,13 +232,13 @@ export const DropdownSelect = _ref => {
|
|
|
205
232
|
modalOptionsContainerStyle: modalOptionsContainerStyle,
|
|
206
233
|
onRequestClose: () => {},
|
|
207
234
|
modalProps: modalProps
|
|
208
|
-
}, /*#__PURE__*/React.createElement(
|
|
235
|
+
}, /*#__PURE__*/React.createElement(ListTypeComponent, {
|
|
209
236
|
ListHeaderComponent: /*#__PURE__*/React.createElement(React.Fragment, null, isSearchable && /*#__PURE__*/React.createElement(Input, {
|
|
210
237
|
value: searchValue,
|
|
211
238
|
onChangeText: text => onSearch(text),
|
|
212
239
|
style: searchInputStyle,
|
|
213
240
|
primaryColor: primary
|
|
214
|
-
}), listHeaderComponent, isMultiple &&
|
|
241
|
+
}), listHeaderComponent, isMultiple && listIsEmpty && /*#__PURE__*/React.createElement(View, {
|
|
215
242
|
style: styles.optionsContainerStyle
|
|
216
243
|
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
217
244
|
onPress: () => {}
|
|
@@ -222,12 +249,14 @@ export const DropdownSelect = _ref => {
|
|
|
222
249
|
primaryColor: primary,
|
|
223
250
|
checkboxSize: checkboxSize,
|
|
224
251
|
checkboxStyle: checkboxStyle,
|
|
225
|
-
checkboxLabelStyle: checkboxLabelStyle
|
|
252
|
+
checkboxLabelStyle: checkboxLabelStyle,
|
|
253
|
+
checkboxComponentStyles: checkboxComponentStyles
|
|
226
254
|
})))),
|
|
227
255
|
ListFooterComponent: listFooterComponent,
|
|
256
|
+
listComponentStyles: listComponentStyles,
|
|
228
257
|
options: newOptions,
|
|
229
|
-
optionLabel:
|
|
230
|
-
optionValue:
|
|
258
|
+
optionLabel: optLabel,
|
|
259
|
+
optionValue: optValue,
|
|
231
260
|
isMultiple: isMultiple,
|
|
232
261
|
isSearchable: isSearchable,
|
|
233
262
|
selectedItems: selectedItems,
|
|
@@ -237,7 +266,8 @@ export const DropdownSelect = _ref => {
|
|
|
237
266
|
primaryColor: primary,
|
|
238
267
|
checkboxSize: checkboxSize,
|
|
239
268
|
checkboxStyle: checkboxStyle,
|
|
240
|
-
checkboxLabelStyle: checkboxLabelStyle
|
|
269
|
+
checkboxLabelStyle: checkboxLabelStyle,
|
|
270
|
+
checkboxComponentStyles: checkboxComponentStyles
|
|
241
271
|
})));
|
|
242
272
|
};
|
|
243
273
|
const styles = StyleSheet.create({
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["React","useState","useEffect","TouchableOpacity","StyleSheet","View","Dropdown","DropdownList","CustomModal","Input","CheckBox","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","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","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","gray","text","styles","optionsContainerStyle","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","useState","useEffect","TouchableOpacity","StyleSheet","View","Input","CheckBox","Dropdown","DropdownFlatList","DropdownSectionList","CustomModal","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","extractPropertyFromArray","getMaxLengthOfSectionListProperty","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","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","modifiedSectionData","flat","modifiedOptions","optLabel","optValue","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","length","handleSelectAll","filteredOptions","i","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","gray","sectionListMaxLength","listIsEmpty","createElement","Fragment","_extends","onRequestClose","ListHeaderComponent","onChangeText","text","style","styles","optionsContainerStyle","onPress","onChange","ListFooterComponent","create","paddingHorizontal","paddingVertical","flexDirection"],"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"],"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":"AAAA,OAAO,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["StyleSheet","colors","inputStyles","create","input","paddingVertical","paddingHorizontal","backgroundColor","lightGray","borderRadius","borderColor","dark","borderWidth","color","width","minHeight","inputFocusErrorState","borderStyle","red","inputFocusState","primary"],"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,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,MAAM,QAAQ,UAAU;AAEjC,OAAO,MAAMC,WAAgB,GAAGF,UAAU,CAACG,MAAM,CAAC;EAChDC,KAAK,EAAE;IACLC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAEN,MAAM,CAACO,SAAS;IACjCC,YAAY,EAAE,CAAC;IACfC,WAAW,EAAET,MAAM,CAACU,IAAI;IACxBC,WAAW,EAAE,CAAC;IACdC,KAAK,EAAEZ,MAAM,CAACU,IAAI;IAClBG,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE;EACb,CAAC;EACDC,oBAAoB,EAAE;IACpBJ,WAAW,EAAE,CAAC;IACdK,WAAW,EAAE,OAAO;IACpBP,WAAW,EAAET,MAAM,CAACiB;EACtB,CAAC;EACDC,eAAe,EAAE;IACfP,WAAW,EAAE,CAAC;IACdK,WAAW,EAAE,OAAO;IACpBP,WAAW,EAAET,MAAM,CAACmB;EACtB;AACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["StyleSheet","typography","create","caption","fontStyle","fontWeight","fontSize","lineHeight"],"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,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,MAAMC,UAAe,GAAGD,UAAU,CAACE,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"}
|
|
@@ -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,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract property from array
|
|
3
|
+
*/
|
|
4
|
+
export const extractPropertyFromArray = (arr, property) => {
|
|
5
|
+
let extractedValue = arr.map(item => item[property]);
|
|
6
|
+
return extractedValue;
|
|
7
|
+
};
|
|
8
|
+
export const getMaxLengthOfSectionListProperty = (sectionList, property) => {
|
|
9
|
+
let maxLength = 0;
|
|
10
|
+
sectionList.forEach(obj => {
|
|
11
|
+
var _obj$property;
|
|
12
|
+
if (((_obj$property = obj[property]) === null || _obj$property === void 0 ? void 0 : _obj$property.length) > maxLength) {
|
|
13
|
+
maxLength = obj.data.length;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
return maxLength;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["extractPropertyFromArray","arr","property","extractedValue","map","item","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;AACA,OAAO,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;AAED,OAAO,MAAMG,iCAAiC,GAAGA,CAC/CC,WAAyB,EACzBL,QAA0B,KACvB;EACH,IAAIM,SAAS,GAAG,CAAC;EAEjBD,WAAW,CAACE,OAAO,CAAEC,GAAG,IAAK;IAAA,IAAAC,aAAA;IAC3B,IAAI,EAAAA,aAAA,GAAAD,GAAG,CAACR,QAAQ,CAAC,cAAAS,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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { CheckboxProps } from './types';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*`checkboxSize`, `checkboxStyle`,`checkboxLabelStyle` Will be deleted in version 1.0.
|
|
6
|
+
* and replaced with `checkboxComponentStyles`
|
|
7
|
+
*/
|
|
8
|
+
declare const CheckBox: ({ label, value, disabled, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, onChange, }: CheckboxProps) => JSX.Element;
|
|
4
9
|
export default CheckBox;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ColorValue, ViewStyle, TextStyle } from 'react-native';
|
|
2
|
-
export
|
|
2
|
+
export type CheckboxProps = {
|
|
3
3
|
label?: string;
|
|
4
4
|
value?: boolean;
|
|
5
5
|
disabled?: boolean;
|
|
@@ -7,5 +7,10 @@ export declare type CheckboxProps = {
|
|
|
7
7
|
checkboxSize?: number;
|
|
8
8
|
checkboxStyle?: ViewStyle;
|
|
9
9
|
checkboxLabelStyle?: TextStyle;
|
|
10
|
+
checkboxComponentStyles?: {
|
|
11
|
+
checkboxSize?: number;
|
|
12
|
+
checkboxStyle?: ViewStyle;
|
|
13
|
+
checkboxLabelStyle?: TextStyle;
|
|
14
|
+
};
|
|
10
15
|
onChange?: (value: boolean | string | number) => void;
|
|
11
16
|
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare const DropdownFlatList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, listComponentStyles, ...rest }: any) => JSX.Element;
|
|
3
|
+
export default DropdownFlatList;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
declare const _default: React.MemoExoticComponent<({ item, optionLabel, optionValue, isMultiple, selectedOption, onChange, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, }: any) => JSX.Element>;
|
|
2
|
+
declare const _default: React.MemoExoticComponent<({ item, optionLabel, optionValue, isMultiple, selectedOption, onChange, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, }: any) => JSX.Element>;
|
|
3
3
|
export default _default;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare const DropdownSectionList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, listComponentStyles, ...rest }: any) => JSX.Element;
|
|
3
|
+
export default DropdownSectionList;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TextStyle, ViewStyle } from 'react-native';
|
|
3
|
+
export declare const ListEmptyComponent: ({ listEmptyComponentStyle }: any) => JSX.Element;
|
|
4
|
+
export declare const ItemSeparatorComponent: ({ itemSeparatorStyle }: any) => JSX.Element;
|
|
5
|
+
export declare const ListItemContainer: ({ children, listItemContainerStyle, }: {
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
listItemContainerStyle: ViewStyle;
|
|
8
|
+
}) => JSX.Element;
|
|
9
|
+
export declare const SectionHeaderTitle: ({ title, sectionHeaderStyle, onPress, isExpanded, }: {
|
|
10
|
+
title: string;
|
|
11
|
+
sectionHeaderStyle?: TextStyle | undefined;
|
|
12
|
+
onPress?: (() => void) | undefined;
|
|
13
|
+
isExpanded: Boolean;
|
|
14
|
+
}) => JSX.Element;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { ViewStyle, ColorValue, TextStyle, ModalProps } from 'react-native';
|
|
3
|
-
export
|
|
3
|
+
export type DropdownProps = {
|
|
4
4
|
placeholder?: string;
|
|
5
5
|
label?: string;
|
|
6
6
|
error?: string;
|
|
7
7
|
helperText?: string;
|
|
8
|
-
options:
|
|
9
|
-
optionLabel
|
|
10
|
-
optionValue
|
|
8
|
+
options: TFlatList | TSectionList;
|
|
9
|
+
optionLabel?: string;
|
|
10
|
+
optionValue?: string;
|
|
11
11
|
onValueChange: Function;
|
|
12
12
|
selectedValue?: string | boolean | number | string[] | boolean[] | number[] | null;
|
|
13
13
|
isMultiple?: boolean;
|
|
@@ -21,7 +21,7 @@ export declare type DropdownProps = {
|
|
|
21
21
|
dropdownErrorTextStyle?: TextStyle;
|
|
22
22
|
dropdownHelperTextStyle?: TextStyle;
|
|
23
23
|
selectedItemStyle?: TextStyle;
|
|
24
|
-
multipleSelectedItemStyle?:
|
|
24
|
+
multipleSelectedItemStyle?: TextStyle;
|
|
25
25
|
modalBackgroundStyle?: ViewStyle;
|
|
26
26
|
modalOptionsContainerStyle?: ViewStyle;
|
|
27
27
|
searchInputStyle?: ViewStyle;
|
|
@@ -30,9 +30,28 @@ export declare type DropdownProps = {
|
|
|
30
30
|
checkboxSize?: number;
|
|
31
31
|
checkboxStyle?: ViewStyle;
|
|
32
32
|
checkboxLabelStyle?: TextStyle;
|
|
33
|
+
checkboxComponentStyles?: {
|
|
34
|
+
checkboxSize?: number;
|
|
35
|
+
checkboxStyle?: ViewStyle;
|
|
36
|
+
checkboxLabelStyle?: TextStyle;
|
|
37
|
+
};
|
|
33
38
|
placeholderStyle?: TextStyle;
|
|
34
39
|
listHeaderComponent?: React.ReactNode;
|
|
35
40
|
listFooterComponent?: React.ReactNode;
|
|
36
41
|
hideModal?: boolean;
|
|
37
42
|
modalProps?: ModalProps;
|
|
43
|
+
listComponentStyles?: {
|
|
44
|
+
listEmptyComponentStyle?: TextStyle;
|
|
45
|
+
itemSeparatorStyle?: ViewStyle;
|
|
46
|
+
sectionHeaderStyle?: TextStyle;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export type TFlatList = TFlatListItem[];
|
|
50
|
+
export type TFlatListItem = {
|
|
51
|
+
[key: string]: string | number | boolean;
|
|
52
|
+
};
|
|
53
|
+
export type TSectionList = TSectionListItem[];
|
|
54
|
+
export type TSectionListItem = {
|
|
55
|
+
title: string;
|
|
56
|
+
data: TFlatList;
|
|
38
57
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TSectionList } from 'src/types/index.types';
|
|
2
|
+
/**
|
|
3
|
+
* Extract property from array
|
|
4
|
+
*/
|
|
5
|
+
export declare const extractPropertyFromArray: (arr: any, property: string) => any;
|
|
6
|
+
export declare const getMaxLengthOfSectionListProperty: (sectionList: TSectionList, property: 'title' | 'data') => number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-input-select",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "A customizable dropdown selection package for react-native for android and iOS with multiple select and search capabilities.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"react": "16.13.1",
|
|
73
73
|
"react-native": "0.63.4",
|
|
74
74
|
"react-native-builder-bob": "^0.18.2",
|
|
75
|
-
"release-it": "^14.
|
|
75
|
+
"release-it": "^14.14.3",
|
|
76
76
|
"typescript": "^4.1.3"
|
|
77
77
|
},
|
|
78
78
|
"peerDependencies": {
|