react-native-input-select 0.35.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +104 -32
  2. package/lib/commonjs/components/CheckBox/index.js +16 -13
  3. package/lib/commonjs/components/CheckBox/index.js.map +1 -1
  4. package/lib/commonjs/components/CheckBox/types.js.map +1 -1
  5. package/lib/commonjs/components/CustomModal/index.js +1 -9
  6. package/lib/commonjs/components/CustomModal/index.js.map +1 -1
  7. package/lib/commonjs/components/Dropdown/Dropdown.js +0 -9
  8. package/lib/commonjs/components/Dropdown/Dropdown.js.map +1 -1
  9. package/lib/commonjs/components/Dropdown/{DropdownList.js → DropdownFlatList.js} +22 -32
  10. package/lib/commonjs/components/Dropdown/DropdownFlatList.js.map +1 -0
  11. package/lib/commonjs/components/Dropdown/DropdownListItem.js +11 -22
  12. package/lib/commonjs/components/Dropdown/DropdownListItem.js.map +1 -1
  13. package/lib/commonjs/components/Dropdown/DropdownSectionList.js +139 -0
  14. package/lib/commonjs/components/Dropdown/DropdownSectionList.js.map +1 -0
  15. package/lib/commonjs/components/Dropdown/DropdownSelectedItemsView.js +10 -22
  16. package/lib/commonjs/components/Dropdown/DropdownSelectedItemsView.js.map +1 -1
  17. package/lib/commonjs/components/Input/index.js +4 -11
  18. package/lib/commonjs/components/Input/index.js.map +1 -1
  19. package/lib/commonjs/components/Others/index.js +93 -0
  20. package/lib/commonjs/components/Others/index.js.map +1 -0
  21. package/lib/commonjs/constants/index.js.map +1 -1
  22. package/lib/commonjs/index.js +73 -59
  23. package/lib/commonjs/index.js.map +1 -1
  24. package/lib/commonjs/styles/colors.js.map +1 -1
  25. package/lib/commonjs/styles/input.js +0 -4
  26. package/lib/commonjs/styles/input.js.map +1 -1
  27. package/lib/commonjs/styles/typography.js +0 -3
  28. package/lib/commonjs/styles/typography.js.map +1 -1
  29. package/lib/commonjs/types/index.types.js.map +1 -1
  30. package/lib/commonjs/utils/index.js +26 -0
  31. package/lib/commonjs/utils/index.js.map +1 -0
  32. package/lib/module/components/CheckBox/index.js +14 -6
  33. package/lib/module/components/CheckBox/index.js.map +1 -1
  34. package/lib/module/components/CheckBox/types.js.map +1 -1
  35. package/lib/module/components/CustomModal/index.js +1 -4
  36. package/lib/module/components/CustomModal/index.js.map +1 -1
  37. package/lib/module/components/Dropdown/Dropdown.js +0 -2
  38. package/lib/module/components/Dropdown/Dropdown.js.map +1 -1
  39. package/lib/module/components/Dropdown/{DropdownList.js → DropdownFlatList.js} +23 -27
  40. package/lib/module/components/Dropdown/DropdownFlatList.js.map +1 -0
  41. package/lib/module/components/Dropdown/DropdownListItem.js +11 -14
  42. package/lib/module/components/Dropdown/DropdownListItem.js.map +1 -1
  43. package/lib/module/components/Dropdown/DropdownSectionList.js +130 -0
  44. package/lib/module/components/Dropdown/DropdownSectionList.js.map +1 -0
  45. package/lib/module/components/Dropdown/DropdownSelectedItemsView.js +11 -17
  46. package/lib/module/components/Dropdown/DropdownSelectedItemsView.js.map +1 -1
  47. package/lib/module/components/Input/index.js +2 -2
  48. package/lib/module/components/Input/index.js.map +1 -1
  49. package/lib/module/components/Others/index.js +82 -0
  50. package/lib/module/components/Others/index.js.map +1 -0
  51. package/lib/module/constants/index.js.map +1 -1
  52. package/lib/module/index.js +72 -42
  53. package/lib/module/index.js.map +1 -1
  54. package/lib/module/styles/colors.js.map +1 -1
  55. package/lib/module/styles/input.js.map +1 -1
  56. package/lib/module/styles/typography.js.map +1 -1
  57. package/lib/module/types/index.types.js.map +1 -1
  58. package/lib/module/utils/index.js +18 -0
  59. package/lib/module/utils/index.js.map +1 -0
  60. package/lib/typescript/components/CheckBox/index.d.ts +6 -1
  61. package/lib/typescript/components/CheckBox/types.d.ts +6 -1
  62. package/lib/typescript/components/Dropdown/DropdownFlatList.d.ts +3 -0
  63. package/lib/typescript/components/Dropdown/DropdownListItem.d.ts +1 -1
  64. package/lib/typescript/components/Dropdown/DropdownSectionList.d.ts +3 -0
  65. package/lib/typescript/components/Input/index.d.ts +1 -0
  66. package/lib/typescript/components/Others/index.d.ts +14 -0
  67. package/lib/typescript/types/index.types.d.ts +24 -5
  68. package/lib/typescript/utils/index.d.ts +6 -0
  69. package/package.json +3 -3
  70. package/src/components/CheckBox/index.tsx +32 -5
  71. package/src/components/CheckBox/types.ts +5 -0
  72. package/src/components/Dropdown/{DropdownList.tsx → DropdownFlatList.tsx} +22 -20
  73. package/src/components/Dropdown/DropdownListItem.tsx +13 -11
  74. package/src/components/Dropdown/DropdownSectionList.tsx +135 -0
  75. package/src/components/Dropdown/DropdownSelectedItemsView.tsx +16 -28
  76. package/src/components/Input/index.tsx +2 -0
  77. package/src/components/Others/index.tsx +91 -0
  78. package/src/index.tsx +114 -41
  79. package/src/types/index.types.ts +22 -4
  80. package/src/utils/index.ts +25 -0
  81. package/lib/commonjs/components/Dropdown/DropdownList.js.map +0 -1
  82. package/lib/module/components/Dropdown/DropdownList.js.map +0 -1
  83. package/lib/typescript/components/Dropdown/DropdownList.d.ts +0 -3
@@ -1,14 +1,15 @@
1
- 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); }
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 DropdownList from './components/Dropdown/DropdownList';
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
- * Selection handlers
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 (options.filter(item => !item.disabled).length === selectedValues.length) {
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][optionValue]);
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 _options$find;
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
- let selectedItemLabel = options && options.find(item => item[optionValue !== null && optionValue !== void 0 ? optionValue : DEFAULT_OPTION_VALUE] === selectedItem);
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
- const searchResults = options.filter(item => {
155
- if (item[optionLabel !== null && optionLabel !== void 0 ? optionLabel : DEFAULT_OPTION_LABEL].toString().toLowerCase().search(regexFilter) !== -1 || item[optionValue !== null && optionValue !== void 0 ? optionValue : DEFAULT_OPTION_VALUE].toString(regexFilter).toLowerCase().search(regexFilter) !== -1) {
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
- setNewOptions(searchResults);
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(DropdownList, {
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 && newOptions.length > 1 && /*#__PURE__*/React.createElement(View, {
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: optionLabel,
230
- optionValue: 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({
@@ -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":";;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,SAASC,gBAAT,EAA2BC,UAA3B,EAAuCC,IAAvC,QAAmD,cAAnD;AACA,OAAOC,QAAP,MAAqB,gCAArB;AACA,OAAOC,YAAP,MAAyB,oCAAzB;AACA,OAAOC,WAAP,MAAwB,0BAAxB;AACA,SAASC,KAAT,QAAsB,oBAAtB;AACA,OAAOC,QAAP,MAAqB,uBAArB;AACA,SAASC,MAAT,QAAuB,iBAAvB;AACA,SAASC,oBAAT,EAA+BC,oBAA/B,QAA2D,aAA3D;AAGA,OAAO,MAAMC,cAAuC,GAAG,QAoCjD;AAAA,MApCkD;AACtDC,IAAAA,WADsD;AAEtDC,IAAAA,KAFsD;AAGtDC,IAAAA,KAHsD;AAItDC,IAAAA,UAJsD;AAKtDC,IAAAA,OALsD;AAMtDC,IAAAA,WANsD;AAOtDC,IAAAA,WAPsD;AAQtDC,IAAAA,aARsD;AAStDC,IAAAA,aATsD;AAUtDC,IAAAA,UAVsD;AAWtDC,IAAAA,YAXsD;AAYtDC,IAAAA,YAZsD;AAatDC,IAAAA,UAbsD;AActDC,IAAAA,gBAdsD;AAetDC,IAAAA,aAfsD;AAgBtDC,IAAAA,iBAhBsD;AAiBtDC,IAAAA,sBAjBsD;AAkBtDC,IAAAA,kBAlBsD;AAmBtDC,IAAAA,sBAnBsD;AAoBtDC,IAAAA,uBApBsD;AAqBtDC,IAAAA,iBArBsD;AAsBtDC,IAAAA,yBAtBsD;AAuBtDC,IAAAA,oBAvBsD;AAwBtDC,IAAAA,0BAxBsD;AAyBtDC,IAAAA,gBAzBsD;AA0BtDC,IAAAA,YA1BsD;AA2BtDC,IAAAA,QA3BsD;AA4BtDC,IAAAA,YA5BsD;AA6BtDC,IAAAA,aA7BsD;AA8BtDC,IAAAA,kBA9BsD;AA+BtDC,IAAAA,mBA/BsD;AAgCtDC,IAAAA,mBAhCsD;AAiCtDC,IAAAA,UAjCsD;AAkCtDC,IAAAA,SAAS,GAAG,KAlC0C;AAmCtD,OAAGC;AAnCmD,GAoClD;AACJ,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BlD,QAAQ,CAAQ,EAAR,CAA5C;AACA,QAAM,CAACmD,IAAD,EAAOC,OAAP,IAAkBpD,QAAQ,CAAU,KAAV,CAAhC;AACA,QAAM,CAACqD,SAAD,EAAYC,YAAZ,IAA4BtD,QAAQ,CAAU,KAAV,CAA1C;AACA,QAAM,CAACuD,YAAD,EAAeC,eAAf,IAAkCxD,QAAQ,CAAM,EAAN,CAAhD,CAJI,CAIuD;;AAC3D,QAAM,CAACyD,aAAD,EAAgBC,gBAAhB,IAAoC1D,QAAQ,CAAQ,EAAR,CAAlD,CALI,CAK2D;;AAC/D,QAAM,CAAC2D,WAAD,EAAcC,cAAd,IAAgC5D,QAAQ,CAAS,EAAT,CAA9C;AAEAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIiB,OAAJ,EAAa;AACXgC,MAAAA,aAAa,CAAChC,OAAD,CAAb;AACD;AACF,GAJQ,EAIN,CAACA,OAAD,CAJM,CAAT;AAMAjB,EAAAA,SAAS,CAAC,MAAM;AACdsB,IAAAA,UAAU,GACNmC,gBAAgB,CAACG,KAAK,CAACC,OAAN,CAAcxC,aAAd,IAA+BA,aAA/B,GAA+C,EAAhD,CADV,GAENkC,eAAe,CAAClC,aAAD,CAFnB;AAGD,GAJQ,EAIN,CAACA,aAAD,EAAgBC,UAAhB,EAA4BF,aAA5B,CAJM,CAAT;AAMA;AACF;AACA;;AACE,QAAM0C,qBAAqB,GAAIC,KAAD,IAAgB;AAC5C,QAAIT,YAAY,KAAKS,KAArB,EAA4B;AAC1BR,MAAAA,eAAe,CAAC,IAAD,CAAf;AACAnC,MAAAA,aAAa,CAAC,IAAD,CAAb,CAF0B,CAEL;AACtB,KAHD,MAGO;AACLmC,MAAAA,eAAe,CAACQ,KAAD,CAAf;AACA3C,MAAAA,aAAa,CAAC2C,KAAD,CAAb,CAFK,CAEiB;;AACtBZ,MAAAA,OAAO,CAAC,KAAD,CAAP,CAHK,CAGW;AACjB;AACF,GATD;;AAWA,QAAMa,wBAAwB,GAAID,KAAD,IAAgB;AAC/CN,IAAAA,gBAAgB,CAAEQ,OAAD,IAAa;AAAA;;AAC5B,UAAIC,cAAc,GAAG,CAAC,GAAGD,OAAJ,CAArB;;AAEA,6BAAIC,cAAJ,4CAAI,gBAAgBC,QAAhB,CAAyBJ,KAAzB,CAAJ,EAAqC;AACnCG,QAAAA,cAAc,GAAGA,cAAc,CAACE,MAAf,CAAuBC,IAAD,IAAUA,IAAI,KAAKN,KAAzC,CAAjB;AACD,OAFD,MAEO;AACLG,QAAAA,cAAc,CAACI,IAAf,CAAoBP,KAApB;AACD;;AAEDN,MAAAA,gBAAgB,CAACS,cAAD,CAAhB;AACA9C,MAAAA,aAAa,CAAC8C,cAAD,CAAb,CAV4B,CAUG;AAE/B;;AACA,UACEjD,OAAO,CAACmD,MAAR,CAAgBC,IAAD,IAAU,CAACA,IAAI,CAAC9B,QAA/B,EAAyCgC,MAAzC,KACAL,cAAc,CAACK,MAFjB,EAGE;AACAlB,QAAAA,YAAY,CAAC,IAAD,CAAZ;AACD,OALD,MAKO;AACLA,QAAAA,YAAY,CAAC,KAAD,CAAZ;AACD;;AACD,aAAOa,cAAP;AACD,KAtBe,CAAhB;AAuBD,GAxBD;;AA0BA,QAAMM,eAAe,GAAG,MAAM;AAC5BnB,IAAAA,YAAY,CAAEY,OAAD,IAAa;AACxB,YAAMC,cAAc,GAAG,EAAvB;AACA,YAAMO,eAAe,GAAGzB,UAAU,CAACoB,MAAX,CAAmBC,IAAD,IAAU,CAACA,IAAI,CAAC9B,QAAlC,CAAxB,CAFwB,CAE6C;;AACrE,UAAI,CAAC0B,OAAL,EAAc;AACZ,aAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,eAAe,CAACF,MAApC,EAA4CG,CAAC,EAA7C,EAAiD;AAC/CR,UAAAA,cAAc,CAACI,IAAf,CAAoBG,eAAe,CAACC,CAAD,CAAf,CAAmBvD,WAAnB,CAApB;AACD;AACF;;AAEDsC,MAAAA,gBAAgB,CAACS,cAAD,CAAhB;AACA9C,MAAAA,aAAa,CAAC8C,cAAD,CAAb,CAVwB,CAUO;;AAC/B,aAAO,CAACD,OAAR;AACD,KAZW,CAAZ;AAaD,GAdD;AAgBA;AACF;AACA;;;AACE,QAAMU,qBAAqB,GAAG,MAAM;AAClC,QAAIrD,UAAU,IAAIsC,KAAK,CAACC,OAAN,CAAcL,aAAd,CAAlB,EAAgD;AAC9C,UAAIoB,cAA6B,GAAG,EAApC;AACApB,MAAAA,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEqB,OAAf,CAAwBC,OAAD,IAAkB;AAAA;;AACvC,YAAIC,iBAAiB,GACnB9D,OAAO,sBACPA,OAAO,CAAC+D,IAAR,CACGX,IAAD,IAAeA,IAAI,CAAClD,WAAD,aAACA,WAAD,cAACA,WAAD,GAAgBR,oBAAhB,CAAJ,KAA8CmE,OAD/D,CADO,kDACP,cAEI5D,WAFJ,CADO,CADT;AAKA0D,QAAAA,cAAc,CAACN,IAAf,CAAoBS,iBAApB;AACD,OAPD;AAQA,aAAOH,cAAP;AACD;;AAED,QAAIG,iBAAiB,GACnB9D,OAAO,IACPA,OAAO,CAAC+D,IAAR,CACGX,IAAD,IACEA,IAAI,CAAClD,WAAD,aAACA,WAAD,cAACA,WAAD,GAAgBR,oBAAhB,CAAJ,KAA8C2C,YAFlD,CAFF;AAMA,WAAOyB,iBAAP,aAAOA,iBAAP,uBAAOA,iBAAiB,CAAG7D,WAAH,aAAGA,WAAH,cAAGA,WAAH,GAAkBR,oBAAlB,CAAxB;AACD,GArBD;AAuBA;AACF;AACA;;;AACE,QAAMuE,QAAQ,GAAIlB,KAAD,IAAmB;AAClCJ,IAAAA,cAAc,CAACI,KAAD,CAAd;AAEA,QAAImB,UAAU,GAAGnB,KAAK,CAACoB,QAAN,GAAiBC,iBAAjB,GAAqCC,IAArC,EAAjB;AAEA,UAAMC,WAAW,GAAG,IAAIC,MAAJ,CAAWL,UAAX,EAAuB,GAAvB,CAApB;AAEA,UAAMM,aAAa,GAAGvE,OAAO,CAACmD,MAAR,CAAgBC,IAAD,IAAe;AAClD,UACEA,IAAI,CAACnD,WAAD,aAACA,WAAD,cAACA,WAAD,GAAgBR,oBAAhB,CAAJ,CACGyE,QADH,GAEGM,WAFH,GAGGC,MAHH,CAGUJ,WAHV,MAG2B,CAAC,CAH5B,IAIAjB,IAAI,CAAClD,WAAD,aAACA,WAAD,cAACA,WAAD,GAAgBR,oBAAhB,CAAJ,CACGwE,QADH,CACYG,WADZ,EAEGG,WAFH,GAGGC,MAHH,CAGUJ,WAHV,MAG2B,CAAC,CAR9B,EASE;AACA,eAAOjB,IAAP;AACD;AACF,KAbqB,CAAtB;AAeApB,IAAAA,aAAa,CAACuC,aAAD,CAAb;AACD,GAvBD;AAyBA;AACF;AACA;;;AACE,QAAMG,iBAAiB,GAAG,MAAM;AAC9BxC,IAAAA,OAAO,CAAC,CAACD,IAAF,CAAP;AACAS,IAAAA,cAAc,CAAC,EAAD,CAAd;AACAV,IAAAA,aAAa,CAAChC,OAAD,CAAb;AACD,GAJD;;AAMAjB,EAAAA,SAAS,CAAC,MAAM;AACd,QAAI8C,SAAJ,EAAe;AACbK,MAAAA,OAAO,CAAC,KAAD,CAAP;AACD;AACF,GAJQ,EAIN,CAACL,SAAD,CAJM,CAAT;AAMA,MAAI8C,OAAO,GAAGtD,YAAY,IAAI7B,MAAM,CAACoF,IAArC;AACA,sBACE,uDACE,oBAAC,QAAD;AACE,IAAA,KAAK,EAAE/E,KADT;AAEE,IAAA,WAAW,EAAED,WAFf;AAGE,IAAA,UAAU,EAAEG,UAHd;AAIE,IAAA,KAAK,EAAED,KAJT;AAKE,IAAA,qBAAqB,EAAE4D,qBALzB;AAME,IAAA,YAAY,EAAErB,YANhB;AAOE,IAAA,aAAa,EAAEE,aAPjB;AAQE,IAAA,iBAAiB,EAAEmC,iBARrB;AASE,IAAA,UAAU,EAAElE,UATd;AAUE,IAAA,YAAY,EAAED,YAVhB;AAWE,IAAA,aAAa,EAAEG,aAXjB;AAYE,IAAA,iBAAiB,EAAEC,iBAZrB;AAaE,IAAA,sBAAsB,EAAEC,sBAb1B;AAcE,IAAA,kBAAkB,EAAEC,kBAdtB;AAeE,IAAA,sBAAsB,EAAEC,sBAf1B;AAgBE,IAAA,uBAAuB,EAAEC,uBAhB3B;AAiBE,IAAA,iBAAiB,EAAEC,iBAjBrB;AAkBE,IAAA,yBAAyB,EAAEC,yBAlB7B;AAmBE,IAAA,UAAU,EAAEZ,UAnBd;AAoBE,IAAA,YAAY,EAAEsE,OApBhB;AAqBE,IAAA,QAAQ,EAAErD,QArBZ;AAsBE,IAAA,gBAAgB,EAAEb;AAtBpB,KAuBMqB,IAvBN,EADF,eA0BE,oBAAC,WAAD;AACE,IAAA,IAAI,EAAEG,IADR;AAEE,IAAA,iBAAiB,EAAEyC,iBAFrB;AAGE,IAAA,oBAAoB,EAAExD,oBAHxB;AAIE,IAAA,0BAA0B,EAAEC,0BAJ9B;AAKE,IAAA,cAAc,EAAE,MAAM,CAAE,CAL1B;AAME,IAAA,UAAU,EAAES;AANd,kBAQE,oBAAC,YAAD;AACE,IAAA,mBAAmB,eACjB,0CACGtB,YAAY,iBACX,oBAAC,KAAD;AACE,MAAA,KAAK,EAAEmC,WADT;AAEE,MAAA,YAAY,EAAGoC,IAAD,IAAkBb,QAAQ,CAACa,IAAD,CAF1C;AAGE,MAAA,KAAK,EAAEzD,gBAHT;AAIE,MAAA,YAAY,EAAEuD;AAJhB,MAFJ,EASGjD,mBATH,EAUGrB,UAAU,IAAI0B,UAAU,CAACuB,MAAX,GAAoB,CAAlC,iBACC,oBAAC,IAAD;AAAM,MAAA,KAAK,EAAEwB,MAAM,CAACC;AAApB,oBACE,oBAAC,gBAAD;AAAkB,MAAA,OAAO,EAAE,MAAM,CAAE;AAAnC,oBACE,oBAAC,QAAD;AACE,MAAA,KAAK,EAAE5C,SADT;AAEE,MAAA,KAAK,EAAEA,SAAS,GAAG,WAAH,GAAiB,YAFnC;AAGE,MAAA,QAAQ,EAAE,MAAMoB,eAAe,EAHjC;AAIE,MAAA,YAAY,EAAEoB,OAJhB;AAKE,MAAA,YAAY,EAAEpD,YALhB;AAME,MAAA,aAAa,EAAEC,aANjB;AAOE,MAAA,kBAAkB,EAAEC;AAPtB,MADF,CADF,CAXJ,CAFJ;AA6BE,IAAA,mBAAmB,EAAEE,mBA7BvB;AA8BE,IAAA,OAAO,EAAEI,UA9BX;AA+BE,IAAA,WAAW,EAAE9B,WA/Bf;AAgCE,IAAA,WAAW,EAAEC,WAhCf;AAiCE,IAAA,UAAU,EAAEG,UAjCd;AAkCE,IAAA,YAAY,EAAEC,YAlChB;AAmCE,IAAA,aAAa,EAAEiC,aAnCjB;AAoCE,IAAA,YAAY,EAAEF,YApChB;AAqCE,IAAA,wBAAwB,EAAEU,wBArC5B;AAsCE,IAAA,qBAAqB,EAAEF,qBAtCzB;AAuCE,IAAA,YAAY,EAAE8B,OAvChB;AAwCE,IAAA,YAAY,EAAEpD,YAxChB;AAyCE,IAAA,aAAa,EAAEC,aAzCjB;AA0CE,IAAA,kBAAkB,EAAEC;AA1CtB,IARF,CA1BF,CADF;AAkFD,CAxQM;AA0QP,MAAMqD,MAAM,GAAG7F,UAAU,CAAC+F,MAAX,CAAkB;AAC/BD,EAAAA,qBAAqB,EAAE;AACrBE,IAAAA,iBAAiB,EAAE,EADE;AAErBC,IAAAA,eAAe,EAAE,EAFI;AAGrBC,IAAAA,aAAa,EAAE;AAHM;AADQ,CAAlB,CAAf;AAQA,eAAexF,cAAf","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,"sources":["colors.ts"],"names":["colors","primary","red","black","white","dark","gray","lightGray","disabled"],"mappings":"AAAA,OAAO,MAAMA,MAAW,GAAG;AACzBC,EAAAA,OAAO,EAAE,OADgB;AAEzBC,EAAAA,GAAG,EAAE,SAFoB;AAGzBC,EAAAA,KAAK,EAAE,SAHkB;AAIzBC,EAAAA,KAAK,EAAE,SAJkB;AAKzBC,EAAAA,IAAI,EAAE,SALmB;AAMzBC,EAAAA,IAAI,EAAE,SANmB;AAOzBC,EAAAA,SAAS,EAAE,SAPc;AAQzBC,EAAAA,QAAQ,EAAE;AARe,CAApB","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"]}
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,"sources":["input.ts"],"names":["StyleSheet","colors","inputStyles","create","input","paddingVertical","paddingHorizontal","backgroundColor","lightGray","borderRadius","borderColor","dark","borderWidth","color","width","minHeight","inputFocusErrorState","borderStyle","red","inputFocusState","primary"],"mappings":"AAAA,SAASA,UAAT,QAA2B,cAA3B;AACA,SAASC,MAAT,QAAuB,UAAvB;AAEA,OAAO,MAAMC,WAAgB,GAAGF,UAAU,CAACG,MAAX,CAAkB;AAChDC,EAAAA,KAAK,EAAE;AACLC,IAAAA,eAAe,EAAE,EADZ;AAELC,IAAAA,iBAAiB,EAAE,EAFd;AAGLC,IAAAA,eAAe,EAAEN,MAAM,CAACO,SAHnB;AAILC,IAAAA,YAAY,EAAE,CAJT;AAKLC,IAAAA,WAAW,EAAET,MAAM,CAACU,IALf;AAMLC,IAAAA,WAAW,EAAE,CANR;AAOLC,IAAAA,KAAK,EAAEZ,MAAM,CAACU,IAPT;AAQLG,IAAAA,KAAK,EAAE,MARF;AASLC,IAAAA,SAAS,EAAE;AATN,GADyC;AAYhDC,EAAAA,oBAAoB,EAAE;AACpBJ,IAAAA,WAAW,EAAE,CADO;AAEpBK,IAAAA,WAAW,EAAE,OAFO;AAGpBP,IAAAA,WAAW,EAAET,MAAM,CAACiB;AAHA,GAZ0B;AAiBhDC,EAAAA,eAAe,EAAE;AACfP,IAAAA,WAAW,EAAE,CADE;AAEfK,IAAAA,WAAW,EAAE,OAFE;AAGfP,IAAAA,WAAW,EAAET,MAAM,CAACmB;AAHL;AAjB+B,CAAlB,CAAzB","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"]}
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,"sources":["typography.ts"],"names":["StyleSheet","typography","create","caption","fontStyle","fontWeight","fontSize","lineHeight"],"mappings":"AAAA,SAASA,UAAT,QAA2B,cAA3B;AAEA,OAAO,MAAMC,UAAe,GAAGD,UAAU,CAACE,MAAX,CAAkB;AAC/CC,EAAAA,OAAO,EAAE;AACPC,IAAAA,SAAS,EAAE,QADJ;AAEPC,IAAAA,UAAU,EAAE,QAFL;AAGPC,IAAAA,QAAQ,EAAE,EAHH;AAIPC,IAAAA,UAAU,EAAE;AAJL;AADsC,CAAlB,CAAxB","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"]}
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,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
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
- declare const CheckBox: ({ label, value, disabled, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, onChange, }: CheckboxProps) => JSX.Element;
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 declare type CheckboxProps = {
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;
@@ -1,2 +1,3 @@
1
1
  /// <reference types="react" />
2
2
  export declare const Input: ({ placeholder, value, onChangeText, style, primaryColor, ...rest }: any) => JSX.Element;
3
+ export default Input;
@@ -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 declare type DropdownProps = {
3
+ export type DropdownProps = {
4
4
  placeholder?: string;
5
5
  label?: string;
6
6
  error?: string;
7
7
  helperText?: string;
8
- options: any[];
9
- optionLabel: string;
10
- optionValue: string;
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?: ViewStyle;
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": "0.35.0",
3
+ "version": "1.1.1",
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",
@@ -26,7 +26,7 @@
26
26
  "typescript": "tsc --noEmit",
27
27
  "lint": "eslint \"**/*.{js,ts,tsx}\"",
28
28
  "prepare": "bob build",
29
- "release": "release-it -- minor --ci",
29
+ "release": "release-it -- patch --ci",
30
30
  "example": "yarn --cwd example",
31
31
  "pods": "cd example && pod-install --quiet",
32
32
  "bootstrap": "yarn example && yarn && yarn pods",
@@ -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.11.8",
75
+ "release-it": "^14.14.3",
76
76
  "typescript": "^4.1.3"
77
77
  },
78
78
  "peerDependencies": {