react-native-input-select 1.1.10 → 1.2.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.
Files changed (29) hide show
  1. package/README.md +42 -39
  2. package/lib/commonjs/components/Dropdown/DropdownFlatList.js +3 -1
  3. package/lib/commonjs/components/Dropdown/DropdownFlatList.js.map +1 -1
  4. package/lib/commonjs/components/Dropdown/DropdownSectionList.js +3 -1
  5. package/lib/commonjs/components/Dropdown/DropdownSectionList.js.map +1 -1
  6. package/lib/commonjs/components/Others/index.js +3 -2
  7. package/lib/commonjs/components/Others/index.js.map +1 -1
  8. package/lib/commonjs/index.js +2 -1
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/types/index.types.js.map +1 -1
  11. package/lib/module/components/Dropdown/DropdownFlatList.js +3 -1
  12. package/lib/module/components/Dropdown/DropdownFlatList.js.map +1 -1
  13. package/lib/module/components/Dropdown/DropdownSectionList.js +3 -1
  14. package/lib/module/components/Dropdown/DropdownSectionList.js.map +1 -1
  15. package/lib/module/components/Others/index.js +3 -2
  16. package/lib/module/components/Others/index.js.map +1 -1
  17. package/lib/module/index.js +2 -1
  18. package/lib/module/index.js.map +1 -1
  19. package/lib/module/types/index.types.js.map +1 -1
  20. package/lib/typescript/components/Dropdown/DropdownFlatList.d.ts +1 -1
  21. package/lib/typescript/components/Dropdown/DropdownSectionList.d.ts +1 -1
  22. package/lib/typescript/components/Others/index.d.ts +1 -1
  23. package/lib/typescript/types/index.types.d.ts +1 -0
  24. package/package.json +1 -1
  25. package/src/components/Dropdown/DropdownFlatList.tsx +2 -0
  26. package/src/components/Dropdown/DropdownSectionList.tsx +2 -0
  27. package/src/components/Others/index.tsx +7 -2
  28. package/src/index.tsx +1 -0
  29. package/src/types/index.types.ts +1 -0
package/README.md CHANGED
@@ -143,6 +143,7 @@ export default function App() {
143
143
  unselectAllText: 'Remove everything',
144
144
  selectAllCallback: () => Alert.alert('You selected everything'),
145
145
  unselectAllCallback: () => Alert.alert('You removed everything'),
146
+ emptyListMessage: 'No record found',
146
147
  }}
147
148
  />
148
149
  );
@@ -238,43 +239,43 @@ For more examples visit our [wiki page](https://github.com/azeezat/react-native-
238
239
 
239
240
  ## Props
240
241
 
241
- | Proptypes | Datatype | Example |
242
- | -------------------------- | ------------------------ | -------------------------------------------------------------------- |
243
- | label | `string` | Countries |
244
- | placeholder | `string` | Select a country |
245
- | options | `Array` | `[{ name: 'Nigeria', code: 'NG' }, { name: 'Albania', code: 'AL' }]` |
246
- | optionLabel | `string` | `name` |
247
- | optionValue | `string` | `code` |
248
- | error | `string` | `This is a requiredfield` |
249
- | helperText | `string` | `Only few countries are listed` |
250
- | selectedValue | `string` or `Array` | `AL` or `[AL, AX]` |
251
- | onValueChange | `function` | `()=>{}` |
252
- | isMultiple | `Boolean` | `true` |
253
- | isSearchable | `Boolean` | `true` |
254
- | disabled | `Boolean` | `true` |
255
- | dropdownIcon | `React Component` | `Image` or `<Text> Show <Text>` |
256
- | labelStyle | `Object` | `{color: 'red', fontSize: 15, fontWeight: '500'}` |
257
- | placeholderStyle | `Object` | `{color: 'blue', fontSize: 15, fontWeight: '500'}` |
258
- | dropdownStyle | `Object` | `{borderColor: 'blue', margin: 5, borderWidth:0 ...}` |
259
- | dropdownContainerStyle | `Object` | `{backgroundColor: 'red', width: '30%', ...}` |
260
- | dropdownIconStyle | `Object` | `{top: 10 , right: 10, ...}` |
261
- | selectedItemStyle | `Object` | `{fontWeight: '600', color: 'yellow', ...}` |
262
- | multipleSelectedItemStyle | `Object` | `{backgroundColor: 'red', color: 'yellow', ...}` |
263
- | modalBackgroundStyle | `Object` | `{backgroundColor: 'rgba(196, 198, 246, 0.5)'}` |
264
- | modalOptionsContainerStyle | `Object` | `{padding: 10, backgroundColor: 'cyan',}` |
265
- | modalProps | `ReactNative.ModalProps` | `{supportedOrientations:{['landscape-left', landscape-right']}` |
266
- | dropdownErrorStyle | `Object` | `{borderWidth: 2, borderStyle: 'solid'}` |
267
- | dropdownErrorTextStyle | `Object` | `{color: 'red', fontWeight:'500'}` |
268
- | dropdownHelperTextStyle | `Object` | `{color: 'green', fontWeight:'500'}` |
269
- | primaryColor | `string` | `blue` |
270
- | listHeaderComponent | `React Component` | `<Text> You can add any component here </Text>` |
271
- | listFooterComponent | `React Component` | `<Text> You can add any component here <Text>` |
272
- | hideModal | `Boolean` | Use this to hide the modal as needed |
273
- | listComponentStyles | `Object` | `{listEmptyComponentStyle: ViewStyle, itemSeparatorStyle: ViewStyle, sectionHeaderStyle: TextStyle}` |
274
- | checkboxComponentStyles | `Object` | `{checkboxSize: number, checkboxStyle: ViewStyle, checkboxLabelStyle: TextStyle}` |
275
- | checkboxComponent | `React Component` | `<View style={styles.radioButton} />` |
276
- | listControls | `Object` | `{ selectAllText: 'Choose all', unselectAllText: 'Remove all', selectAllCallback: () => {}, unselectAllCallback: () => {}}` |
277
- | searchControls | `Object` | `{ textInputStyle: ViewStyle \| TextStyle, textInputContainerStyle: ViewStyle, textInputProps: TextInputProps}` |
242
+ | Proptypes | Datatype | Example |
243
+ | -------------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
244
+ | label | `string` | Countries |
245
+ | placeholder | `string` | Select a country |
246
+ | options | `Array` | `[{ name: 'Nigeria', code: 'NG' }, { name: 'Albania', code: 'AL' }]` |
247
+ | optionLabel | `string` | `name` |
248
+ | optionValue | `string` | `code` |
249
+ | error | `string` | `This is a requiredfield` |
250
+ | helperText | `string` | `Only few countries are listed` |
251
+ | selectedValue | `string` or `Array` | `AL` or `[AL, AX]` |
252
+ | onValueChange | `function` | `()=>{}` |
253
+ | isMultiple | `Boolean` | `true` |
254
+ | isSearchable | `Boolean` | `true` |
255
+ | disabled | `Boolean` | `true` |
256
+ | dropdownIcon | `React Component` | `Image` or `<Text> Show <Text>` |
257
+ | labelStyle | `Object` | `{color: 'red', fontSize: 15, fontWeight: '500'}` |
258
+ | placeholderStyle | `Object` | `{color: 'blue', fontSize: 15, fontWeight: '500'}` |
259
+ | dropdownStyle | `Object` | `{borderColor: 'blue', margin: 5, borderWidth:0 ...}` |
260
+ | dropdownContainerStyle | `Object` | `{backgroundColor: 'red', width: '30%', ...}` |
261
+ | dropdownIconStyle | `Object` | `{top: 10 , right: 10, ...}` |
262
+ | selectedItemStyle | `Object` | `{fontWeight: '600', color: 'yellow', ...}` |
263
+ | multipleSelectedItemStyle | `Object` | `{backgroundColor: 'red', color: 'yellow', ...}` |
264
+ | modalBackgroundStyle | `Object` | `{backgroundColor: 'rgba(196, 198, 246, 0.5)'}` |
265
+ | modalOptionsContainerStyle | `Object` | `{padding: 10, backgroundColor: 'cyan',}` |
266
+ | modalProps | `ReactNative.ModalProps` | `{supportedOrientations:{['landscape-left', landscape-right']}` |
267
+ | dropdownErrorStyle | `Object` | `{borderWidth: 2, borderStyle: 'solid'}` |
268
+ | dropdownErrorTextStyle | `Object` | `{color: 'red', fontWeight:'500'}` |
269
+ | dropdownHelperTextStyle | `Object` | `{color: 'green', fontWeight:'500'}` |
270
+ | primaryColor | `string` | `blue` |
271
+ | listHeaderComponent | `React Component` | `<Text> You can add any component here </Text>` |
272
+ | listFooterComponent | `React Component` | `<Text> You can add any component here <Text>` |
273
+ | hideModal | `Boolean` | Use this to hide the modal as needed |
274
+ | listComponentStyles | `Object` | `{listEmptyComponentStyle: ViewStyle, itemSeparatorStyle: ViewStyle, sectionHeaderStyle: TextStyle}` |
275
+ | checkboxComponentStyles | `Object` | `{checkboxSize: number, checkboxStyle: ViewStyle, checkboxLabelStyle: TextStyle}` |
276
+ | checkboxComponent | `React Component` | `<View style={styles.radioButton} />` |
277
+ | listControls | `Object` | `{ selectAllText: 'Choose all', unselectAllText: 'Remove all', selectAllCallback: () => {}, unselectAllCallback: () => {}, emptyListMessage: 'No record found'}` |
278
+ | searchControls | `Object` | `{ textInputStyle: ViewStyle \| TextStyle, textInputContainerStyle: ViewStyle, textInputProps: TextInputProps}` |
278
279
 
279
280
  ## Deprecation Notice
280
281
 
@@ -292,13 +293,14 @@ checkboxComponentStyles = {
292
293
  borderColor: 'red',
293
294
  },
294
295
  checkboxLabelStyle: { color: 'red', fontSize: 20 },
296
+ ...
295
297
  };
296
298
  ```
297
299
 
298
300
  - `searchInputStyle` would now be inside replaced with `textInputStyle` in the `searchControls` object
299
301
 
300
302
  ```js
301
- searchControls={
303
+ searchControls = {
302
304
  textInputStyle: {
303
305
  color: 'blue',
304
306
  fontWeight: '500',
@@ -318,7 +320,8 @@ searchControls={
318
320
  placeholder: 'Search anything here',
319
321
  placeholderTextColor: 'white',
320
322
  },
321
- }
323
+ ...
324
+ };
322
325
  ```
323
326
 
324
327
  ## Contributing
@@ -34,6 +34,7 @@ const DropdownFlatList = _ref => {
34
34
  checkboxComponent,
35
35
  listComponentStyles,
36
36
  listIndex,
37
+ emptyListMessage,
37
38
  ...rest
38
39
  } = _ref;
39
40
  const flatlistRef = (0, _react.useRef)(null);
@@ -54,7 +55,8 @@ const DropdownFlatList = _ref => {
54
55
  extraData: isMultiple ? selectedItems : selectedItem,
55
56
  initialNumToRender: 5,
56
57
  ListEmptyComponent: /*#__PURE__*/_react.default.createElement(_Others.ListEmptyComponent, {
57
- listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle
58
+ listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle,
59
+ emptyListMessage: emptyListMessage
58
60
  }),
59
61
  contentContainerStyle: [isSearchable ? {
60
62
  paddingTop: 0
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DropdownListItem","_interopRequireDefault","_Others","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownFlatList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","rest","flatlistRef","useRef","scrollToItem","index","_flatlistRef$current","current","scrollToIndex","animated","useEffect","itemIndex","createElement","FlatList","data","extraData","initialNumToRender","ListEmptyComponent","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","ref","onScrollToIndexFailed","_ref2","setTimeout","_ref3","props","StyleSheet","create","_default","exports"],"sources":["DropdownFlatList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useRef } from 'react';\nimport { FlatList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { ItemSeparatorComponent, ListEmptyComponent } from '../Others';\nimport { TFlatList } from 'src/types/index.types';\n\nconst DropdownFlatList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility to be removed in future release\n checkboxStyle, // kept for backwards compatibility to be removed in future release\n checkboxLabelStyle, // kept for backwards compatibility to be removed in future release\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n ...rest\n}: any) => {\n const flatlistRef = useRef<FlatList<TFlatList>>(null);\n\n const scrollToItem = (index: number) => {\n flatlistRef.current?.scrollToIndex({\n index,\n animated: true,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToItem(listIndex.itemIndex);\n }\n }, [listIndex, options]);\n\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n scrollToItem,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n ref={flatlistRef}\n onScrollToIndexFailed={({ index }) => {\n setTimeout(() => {\n scrollToItem(index);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n scrollToItem={props.scrollToItem}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownFlatList;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAAuE,SAAAG,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAM,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA,KAJvE;AAOA,MAAMI,gBAAgB,GAAGC,IAAA,IAmBd;EAAA,IAnBe;IACxBC,OAAO;IACPC,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,YAAY;IACZC,aAAa;IACbC,YAAY;IACZC,wBAAwB;IACxBC,qBAAqB;IACrBC,YAAY;IACZC,YAAY;IAAE;IACdC,aAAa;IAAE;IACfC,kBAAkB;IAAE;IACpBC,uBAAuB;IACvBC,iBAAiB;IACjBC,mBAAmB;IACnBC,SAAS;IACT,GAAGC;EACA,CAAC,GAAAlB,IAAA;EACJ,MAAMmB,WAAW,GAAG,IAAAC,aAAM,EAAsB,IAAI,CAAC;EAErD,MAAMC,YAAY,GAAIC,KAAa,IAAK;IAAA,IAAAC,oBAAA;IACtC,CAAAA,oBAAA,GAAAJ,WAAW,CAACK,OAAO,cAAAD,oBAAA,uBAAnBA,oBAAA,CAAqBE,aAAa,CAAC;MACjCH,KAAK;MACLI,QAAQ,EAAE;IACZ,CAAC,CAAC;EACJ,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI1B,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEL,MAAM,EAAE;MACnByB,YAAY,CAACJ,SAAS,CAACW,SAAS,CAAC;IACnC;EACF,CAAC,EAAE,CAACX,SAAS,EAAEhB,OAAO,CAAC,CAAC;EAExB,oBACExC,MAAA,CAAAS,OAAA,CAAA2D,aAAA,CAACjE,YAAA,CAAAkE,QAAQ,EAAAxC,QAAA;IACPyC,IAAI,EAAE9B,OAAQ;IACd+B,SAAS,EAAE5B,UAAU,GAAGE,aAAa,GAAGC,YAAa;IACrD0B,kBAAkB,EAAE,CAAE;IACtBC,kBAAkB,eAChBzE,MAAA,CAAAS,OAAA,CAAA2D,aAAA,CAAC9D,OAAA,CAAAmE,kBAAkB;MACjBC,uBAAuB,EAAEnB,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEmB;IAAwB,CACvE,CACF;IACDC,qBAAqB,EAAE,CACrB/B,YAAY,GAAG;MAAEgC,UAAU,EAAE;IAAE,CAAC,GAAGC,MAAM,CAACF,qBAAqB,CAC/D;IACFG,sBAAsB,EAAEA,CAAA,kBACtB9E,MAAA,CAAAS,OAAA,CAAA2D,aAAA,CAAC9D,OAAA,CAAAwE,sBAAsB;MACrBC,kBAAkB,EAAExB,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEwB;IAAmB,CAC7D,CACD;IACFC,UAAU,EAAGC,IAAI,IACfC,WAAW,CAACD,IAAI,EAAE;MAChBxC,WAAW;MACXC,WAAW;MACXC,UAAU;MACVwC,cAAc,EAAExC,UAAU,GAAGE,aAAa,GAAGC,YAAY;MACzDsC,QAAQ,EAAEzC,UAAU,GAChBI,wBAAwB,GACxBC,qBAAqB;MACzBY,YAAY;MACZX,YAAY;MACZC,YAAY;MAAE;MACdC,aAAa;MAAE;MACfC,kBAAkB;MAAE;MACpBC,uBAAuB;MACvBC;IACF,CAAC,CACF;IACD+B,YAAY,EAAEA,CAACC,KAAK,EAAEzB,KAAK,KAAM,UAASA,KAAM,EAAE;IAClD0B,GAAG,EAAE7B,WAAY;IACjB8B,qBAAqB,EAAEC,KAAA,IAAe;MAAA,IAAd;QAAE5B;MAAM,CAAC,GAAA4B,KAAA;MAC/BC,UAAU,CAAC,MAAM;QACf9B,YAAY,CAACC,KAAK,CAAC;MACrB,CAAC,EAAE,GAAG,CAAC;IACT;EAAE,GACEJ,IAAI,CACT,CAAC;AAEN,CAAC;AAED,MAAMyB,WAAW,GAAGA,CAAAS,KAAA,EAAgBC,KAAU,KAAK;EAAA,IAA9B;IAAEX;EAAU,CAAC,GAAAU,KAAA;EAChC,oBACE3F,MAAA,CAAAS,OAAA,CAAA2D,aAAA,CAAChE,iBAAA,CAAAK,OAAgB;IACfwE,IAAI,EAAEA,IAAK;IACXxC,WAAW,EAAEmD,KAAK,CAACnD,WAAY;IAC/BC,WAAW,EAAEkD,KAAK,CAAClD,WAAY;IAC/BC,UAAU,EAAEiD,KAAK,CAACjD,UAAW;IAC7BwC,cAAc,EAAES,KAAK,CAACT,cAAe;IACrCC,QAAQ,EAAEQ,KAAK,CAACR,QAAS;IACzBnC,YAAY,EAAE2C,KAAK,CAAC3C,YAAa;IACjCC,YAAY,EAAE0C,KAAK,CAAC1C,YAAa;IACjCC,aAAa,EAAEyC,KAAK,CAACzC,aAAc;IACnCC,kBAAkB,EAAEwC,KAAK,CAACxC,kBAAmB;IAC7CQ,YAAY,EAAEgC,KAAK,CAAChC,YAAa;IACjCP,uBAAuB,EAAEuC,KAAK,CAACvC,uBAAwB;IACvDC,iBAAiB,EAAEsC,KAAK,CAACtC;EAAkB,CAC5C,CAAC;AAEN,CAAC;AAED,MAAMuB,MAAM,GAAGgB,uBAAU,CAACC,MAAM,CAAC;EAC/BnB,qBAAqB,EAAE;IAAEC,UAAU,EAAE;EAAG;AAC1C,CAAC,CAAC;AAAC,IAAAmB,QAAA,GAEYzD,gBAAgB;AAAA0D,OAAA,CAAAvF,OAAA,GAAAsF,QAAA"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DropdownListItem","_interopRequireDefault","_Others","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownFlatList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","emptyListMessage","rest","flatlistRef","useRef","scrollToItem","index","_flatlistRef$current","current","scrollToIndex","animated","useEffect","itemIndex","createElement","FlatList","data","extraData","initialNumToRender","ListEmptyComponent","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","ref","onScrollToIndexFailed","_ref2","setTimeout","_ref3","props","StyleSheet","create","_default","exports"],"sources":["DropdownFlatList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useRef } from 'react';\nimport { FlatList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { ItemSeparatorComponent, ListEmptyComponent } from '../Others';\nimport { TFlatList } from 'src/types/index.types';\n\nconst DropdownFlatList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility to be removed in future release\n checkboxStyle, // kept for backwards compatibility to be removed in future release\n checkboxLabelStyle, // kept for backwards compatibility to be removed in future release\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const flatlistRef = useRef<FlatList<TFlatList>>(null);\n\n const scrollToItem = (index: number) => {\n flatlistRef.current?.scrollToIndex({\n index,\n animated: true,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToItem(listIndex.itemIndex);\n }\n }, [listIndex, options]);\n\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n scrollToItem,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n ref={flatlistRef}\n onScrollToIndexFailed={({ index }) => {\n setTimeout(() => {\n scrollToItem(index);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n scrollToItem={props.scrollToItem}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownFlatList;\n"],"mappings":"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"}
@@ -32,6 +32,7 @@ const DropdownSectionList = _ref => {
32
32
  checkboxComponent,
33
33
  listComponentStyles,
34
34
  listIndex,
35
+ emptyListMessage,
35
36
  ...rest
36
37
  } = _ref;
37
38
  const [expandedSections, setExpandedSections] = (0, _react.useState)(new Set());
@@ -83,7 +84,8 @@ const DropdownSectionList = _ref => {
83
84
  extraData: isMultiple ? selectedItems : selectedItem,
84
85
  initialNumToRender: 5,
85
86
  ListEmptyComponent: /*#__PURE__*/_react.default.createElement(_Others.ListEmptyComponent, {
86
- listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle
87
+ listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle,
88
+ emptyListMessage: emptyListMessage
87
89
  }),
88
90
  contentContainerStyle: [isSearchable ? {
89
91
  paddingTop: 0
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DropdownListItem","_interopRequireDefault","_Others","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSectionList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","rest","expandedSections","setExpandedSections","useState","Set","useEffect","initialState","extractPropertyFromArray","handleToggleListExpansion","title","expandedSectionsState","next","delete","add","sectionlistRef","useRef","scrollToLocation","_sectionlistRef$curre","current","sectionIndex","animated","itemIndex","createElement","SectionList","sections","extraData","initialNumToRender","ListEmptyComponent","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","renderSectionHeader","_ref2","section","SectionHeaderTitle","sectionHeaderStyle","onPress","isExpanded","keyExtractor","_item","index","stickySectionHeadersEnabled","ref","onScrollToIndexFailed","setTimeout","_ref3","props","StyleSheet","create","_default","exports"],"sources":["DropdownSectionList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { SectionList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport {\n ItemSeparatorComponent,\n ListEmptyComponent,\n SectionHeaderTitle,\n} from '../Others';\nimport { extractPropertyFromArray } from '../../utils';\nimport { TSectionList } from 'src/types/index.types';\n\nconst DropdownSectionList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n ...rest\n}: any) => {\n const [expandedSections, setExpandedSections] = useState(new Set());\n\n /**\n * Expand all sections\n */\n useEffect(() => {\n let initialState = new Set(extractPropertyFromArray(options, 'title'));\n setExpandedSections(initialState);\n }, [options]);\n\n /**\n * @param title\n */\n const handleToggleListExpansion = (title: string) => {\n setExpandedSections((expandedSectionsState) => {\n // Using Set here but you can use an array too\n const next = new Set(expandedSectionsState);\n if (next.has(title)) {\n next.delete(title);\n } else {\n next.add(title);\n }\n return next;\n });\n };\n\n /**\n * @description Scroll to item location\n */\n\n const sectionlistRef = useRef<SectionList<TSectionList>>(null);\n\n const scrollToLocation = (listIndex: any) => {\n sectionlistRef.current?.scrollToLocation({\n sectionIndex: listIndex.sectionIndex,\n animated: true,\n itemIndex: listIndex.itemIndex,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToLocation(listIndex);\n }\n }, [listIndex, options]);\n\n return (\n <SectionList\n sections={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n expandedSections,\n })\n }\n renderSectionHeader={({ section: { title } }) => (\n <SectionHeaderTitle\n title={title}\n sectionHeaderStyle={listComponentStyles?.sectionHeaderStyle}\n onPress={() => handleToggleListExpansion(title)}\n isExpanded={expandedSections.has(title)}\n />\n )}\n keyExtractor={(_item, index) => `Options${index}`}\n stickySectionHeadersEnabled={false}\n ref={sectionlistRef}\n onScrollToIndexFailed={() => {\n setTimeout(() => {\n scrollToLocation(listIndex);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ section: { title }, item }: any, props: any) => {\n const isExpanded = props?.expandedSections.has(title);\n\n //return null if it is not expanded\n if (!isExpanded) return null;\n\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownSectionList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DropdownListItem","_interopRequireDefault","_Others","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSectionList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","emptyListMessage","rest","expandedSections","setExpandedSections","useState","Set","useEffect","initialState","extractPropertyFromArray","handleToggleListExpansion","title","expandedSectionsState","next","delete","add","sectionlistRef","useRef","scrollToLocation","_sectionlistRef$curre","current","sectionIndex","animated","itemIndex","createElement","SectionList","sections","extraData","initialNumToRender","ListEmptyComponent","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","ItemSeparatorComponent","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","renderSectionHeader","_ref2","section","SectionHeaderTitle","sectionHeaderStyle","onPress","isExpanded","keyExtractor","_item","index","stickySectionHeadersEnabled","ref","onScrollToIndexFailed","setTimeout","_ref3","props","StyleSheet","create","_default","exports"],"sources":["DropdownSectionList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { SectionList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport {\n ItemSeparatorComponent,\n ListEmptyComponent,\n SectionHeaderTitle,\n} from '../Others';\nimport { extractPropertyFromArray } from '../../utils';\nimport { TSectionList } from 'src/types/index.types';\n\nconst DropdownSectionList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const [expandedSections, setExpandedSections] = useState(new Set());\n\n /**\n * Expand all sections\n */\n useEffect(() => {\n let initialState = new Set(extractPropertyFromArray(options, 'title'));\n setExpandedSections(initialState);\n }, [options]);\n\n /**\n * @param title\n */\n const handleToggleListExpansion = (title: string) => {\n setExpandedSections((expandedSectionsState) => {\n // Using Set here but you can use an array too\n const next = new Set(expandedSectionsState);\n if (next.has(title)) {\n next.delete(title);\n } else {\n next.add(title);\n }\n return next;\n });\n };\n\n /**\n * @description Scroll to item location\n */\n\n const sectionlistRef = useRef<SectionList<TSectionList>>(null);\n\n const scrollToLocation = (listIndex: any) => {\n sectionlistRef.current?.scrollToLocation({\n sectionIndex: listIndex.sectionIndex,\n animated: true,\n itemIndex: listIndex.itemIndex,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToLocation(listIndex);\n }\n }, [listIndex, options]);\n\n return (\n <SectionList\n sections={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n expandedSections,\n })\n }\n renderSectionHeader={({ section: { title } }) => (\n <SectionHeaderTitle\n title={title}\n sectionHeaderStyle={listComponentStyles?.sectionHeaderStyle}\n onPress={() => handleToggleListExpansion(title)}\n isExpanded={expandedSections.has(title)}\n />\n )}\n keyExtractor={(_item, index) => `Options${index}`}\n stickySectionHeadersEnabled={false}\n ref={sectionlistRef}\n onScrollToIndexFailed={() => {\n setTimeout(() => {\n scrollToLocation(listIndex);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ section: { title }, item }: any, props: any) => {\n const isExpanded = props?.expandedSections.has(title);\n\n //return null if it is not expanded\n if (!isExpanded) return null;\n\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownSectionList;\n"],"mappings":"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"}
@@ -10,13 +10,14 @@ var _colors = require("../../styles/colors");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  const ListEmptyComponent = _ref => {
12
12
  let {
13
- listEmptyComponentStyle
13
+ listEmptyComponentStyle,
14
+ emptyListMessage
14
15
  } = _ref;
15
16
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
16
17
  style: styles.listEmptyComponentStyle
17
18
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
18
19
  style: listEmptyComponentStyle
19
- }, "No options available"));
20
+ }, emptyListMessage || 'No options available'));
20
21
  };
21
22
  exports.ListEmptyComponent = ListEmptyComponent;
22
23
  const ItemSeparatorComponent = _ref2 => {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","obj","__esModule","default","ListEmptyComponent","_ref","listEmptyComponentStyle","createElement","View","style","styles","Text","exports","ItemSeparatorComponent","_ref2","itemSeparatorStyle","ListItemContainer","_ref3","children","listItemContainerStyle","SectionHeaderTitle","_ref4","title","sectionHeaderStyle","onPress","isExpanded","TouchableOpacity","accordionStyle","rotatedIcon90","Image","source","StyleSheet","create","alignItems","width","marginVertical","backgroundColor","colors","gray","height","opacity","paddingHorizontal","paddingVertical","flexDirection","fontWeight","flexWrap","justifyContent","alignContent","transform","rotate"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n TextStyle,\n Image,\n ViewStyle,\n} from 'react-native';\nimport { colors } from '../../styles/colors';\n\nexport const ListEmptyComponent = ({ listEmptyComponentStyle }: any) => {\n return (\n <View style={styles.listEmptyComponentStyle}>\n <Text style={listEmptyComponentStyle}>No options available</Text>\n </View>\n );\n};\n\nexport const ItemSeparatorComponent = ({ itemSeparatorStyle }: any) => {\n return <View style={[styles.itemSeparatorStyle, itemSeparatorStyle]} />;\n};\n\nexport const ListItemContainer = ({\n children,\n listItemContainerStyle,\n}: {\n children: ReactNode;\n listItemContainerStyle: ViewStyle;\n}) => {\n return (\n <View style={[styles.listItemContainerStyle, listItemContainerStyle]}>\n {children}\n </View>\n );\n};\n\nexport const SectionHeaderTitle = ({\n title,\n sectionHeaderStyle,\n onPress,\n isExpanded,\n}: {\n title: string;\n sectionHeaderStyle?: TextStyle;\n onPress?: () => void;\n isExpanded: Boolean;\n}) => {\n return (\n <TouchableOpacity onPress={onPress}>\n <ListItemContainer listItemContainerStyle={styles.accordionStyle}>\n <Text style={[styles.sectionHeaderStyle, sectionHeaderStyle]}>\n {title}\n </Text>\n <View style={isExpanded ? null : styles.rotatedIcon90}>\n <Image source={require('../../asset/arrow-down.png')} />\n </View>\n </ListItemContainer>\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n listEmptyComponentStyle: {\n alignItems: 'center',\n width: '100%',\n marginVertical: 20,\n },\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n listItemContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n sectionHeaderStyle: { fontWeight: '500' },\n accordionStyle: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n alignContent: 'center',\n },\n rotatedIcon90: {\n transform: [{ rotate: '-90deg' }],\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_colors","obj","__esModule","default","ListEmptyComponent","_ref","listEmptyComponentStyle","emptyListMessage","createElement","View","style","styles","Text","exports","ItemSeparatorComponent","_ref2","itemSeparatorStyle","ListItemContainer","_ref3","children","listItemContainerStyle","SectionHeaderTitle","_ref4","title","sectionHeaderStyle","onPress","isExpanded","TouchableOpacity","accordionStyle","rotatedIcon90","Image","source","StyleSheet","create","alignItems","width","marginVertical","backgroundColor","colors","gray","height","opacity","paddingHorizontal","paddingVertical","flexDirection","fontWeight","flexWrap","justifyContent","alignContent","transform","rotate"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n TextStyle,\n Image,\n ViewStyle,\n} from 'react-native';\nimport { colors } from '../../styles/colors';\n\nexport const ListEmptyComponent = ({\n listEmptyComponentStyle,\n emptyListMessage,\n}: any) => {\n return (\n <View style={styles.listEmptyComponentStyle}>\n <Text style={listEmptyComponentStyle}>\n {emptyListMessage || 'No options available'}\n </Text>\n </View>\n );\n};\n\nexport const ItemSeparatorComponent = ({ itemSeparatorStyle }: any) => {\n return <View style={[styles.itemSeparatorStyle, itemSeparatorStyle]} />;\n};\n\nexport const ListItemContainer = ({\n children,\n listItemContainerStyle,\n}: {\n children: ReactNode;\n listItemContainerStyle: ViewStyle;\n}) => {\n return (\n <View style={[styles.listItemContainerStyle, listItemContainerStyle]}>\n {children}\n </View>\n );\n};\n\nexport const SectionHeaderTitle = ({\n title,\n sectionHeaderStyle,\n onPress,\n isExpanded,\n}: {\n title: string;\n sectionHeaderStyle?: TextStyle;\n onPress?: () => void;\n isExpanded: Boolean;\n}) => {\n return (\n <TouchableOpacity onPress={onPress}>\n <ListItemContainer listItemContainerStyle={styles.accordionStyle}>\n <Text style={[styles.sectionHeaderStyle, sectionHeaderStyle]}>\n {title}\n </Text>\n <View style={isExpanded ? null : styles.rotatedIcon90}>\n <Image source={require('../../asset/arrow-down.png')} />\n </View>\n </ListItemContainer>\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n listEmptyComponentStyle: {\n alignItems: 'center',\n width: '100%',\n marginVertical: 20,\n },\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n listItemContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n sectionHeaderStyle: { fontWeight: '500' },\n accordionStyle: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n alignContent: 'center',\n },\n rotatedIcon90: {\n transform: [{ rotate: '-90deg' }],\n },\n});\n"],"mappings":"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"}
@@ -345,7 +345,8 @@ const DropdownSelect = _ref => {
345
345
  checkboxLabelStyle: checkboxLabelStyle,
346
346
  checkboxComponentStyles: checkboxComponentStyles,
347
347
  checkboxComponent: checkboxComponent,
348
- listIndex: listIndex
348
+ listIndex: listIndex,
349
+ emptyListMessage: listControls === null || listControls === void 0 ? void 0 : listControls.emptyListMessage
349
350
  })));
350
351
  };
351
352
  exports.DropdownSelect = DropdownSelect;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Input","_interopRequireDefault","_CheckBox","_Dropdown","_DropdownFlatList","_DropdownSectionList","_CustomModal","_colors","_constants","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSelect","_ref","_extractPropertyFromA","_searchControls$textI","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","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","searchControls","rest","newOptions","setNewOptions","useState","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","sectionIndex","useEffect","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","DropdownSectionList","DropdownFlatList","modifiedSectionData","extractPropertyFromArray","flat","modifiedOptions","optLabel","DEFAULT_OPTION_LABEL","optValue","DEFAULT_OPTION_VALUE","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","removeDisabledItems","items","handleSelectAll","filteredOptions","selectAllCallback","unselectAllCallback","checkSelectAll","useCallback","_removeDisabledItems","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","filteredData","handleToggleModal","primary","colors","gray","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","onRequestClose","ListHeaderComponent","onChangeText","text","style","textInputStyle","textInputContainerStyle","textInputProps","View","styles","optionsContainerStyle","TouchableOpacity","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","exports","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","_default"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } 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 { extractPropertyFromArray } 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, // kept for backwards compatibility\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 checkboxComponent,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps,\n hideModal = false,\n listControls,\n searchControls,\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 const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: 0, sectionIndex: 0 }); // for scrollToIndex in Sectionlist and Flatlist\n\n useEffect(() => {\n setNewOptions(options);\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 // check the structure of the new options array to determine if it is a section list or a\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 const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n )?.flat();\n\n /**\n * `options` is the original array, it never changes. (Do not use except you really need the original array) .\n * `newOptions` is a copy of options but can be mutated by `setNewOptions`, as a result, the value many change.\n * `modifiedOptions` should only be used for computations. It has the same structure for both `FlatList` and `SectionList`\n */\n const 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 onValueChange(selectedValues); // send value to parent\n return selectedValues;\n });\n };\n\n const removeDisabledItems = (items: TFlatList) => {\n return items?.filter((item: TFlatListItem) => !item.disabled);\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n // don't select disabled items\n const filteredOptions = removeDisabledItems(\n isSectionList\n ? extractPropertyFromArray(options, 'data').flat()\n : options\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 if (typeof listControls?.selectAllCallback === 'function' && !selectAll) {\n listControls.selectAllCallback();\n }\n\n if (typeof listControls?.unselectAllCallback === 'function' && selectAll) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n removeDisabledItems(modifiedOptions)?.length === selectedValues?.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\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 the options array will be mutated while searching, we have to search with the original array\n const searchResults = isSectionList\n ? searchSectionList(options as TSectionList, regexFilter)\n : searchFlatList(options 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 true;\n }\n return false;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n const filteredData = 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 true;\n }\n return false;\n });\n\n return { ...listItem, data: filteredData };\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: 0, sectionIndex: 0 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? (options as TSectionListItem[] | undefined)?.map(\n (item: TSectionListItem, sectionIndex: number) => {\n item?.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n }\n )\n : (options as TFlatListItem[] | undefined)?.find(\n (item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n }\n );\n };\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 setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n open={open}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => handleToggleModal()}\n modalProps={modalProps}\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchControls?.textInputStyle || searchInputStyle}\n primaryColor={primary}\n textInputContainerStyle={\n searchControls?.textInputContainerStyle\n }\n placeholder={\n searchControls?.textInputProps?.placeholder || 'Search'\n }\n {...searchControls?.textInputProps}\n />\n )}\n {listHeaderComponent}\n {isMultiple && modifiedOptions?.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\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 checkboxComponent={checkboxComponent}\n listIndex={listIndex}\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
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Input","_interopRequireDefault","_CheckBox","_Dropdown","_DropdownFlatList","_DropdownSectionList","_CustomModal","_colors","_constants","_utils","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSelect","_ref","_extractPropertyFromA","_searchControls$textI","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","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","searchControls","rest","newOptions","setNewOptions","useState","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","sectionIndex","useEffect","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","DropdownSectionList","DropdownFlatList","modifiedSectionData","extractPropertyFromArray","flat","modifiedOptions","optLabel","DEFAULT_OPTION_LABEL","optValue","DEFAULT_OPTION_VALUE","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","removeDisabledItems","items","handleSelectAll","filteredOptions","selectAllCallback","unselectAllCallback","checkSelectAll","useCallback","_removeDisabledItems","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","filteredData","handleToggleModal","primary","colors","gray","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","onRequestClose","ListHeaderComponent","onChangeText","text","style","textInputStyle","textInputContainerStyle","textInputProps","View","styles","optionsContainerStyle","TouchableOpacity","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","emptyListMessage","exports","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","_default"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } 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 { extractPropertyFromArray } 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, // kept for backwards compatibility\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 checkboxComponent,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps,\n hideModal = false,\n listControls,\n searchControls,\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 const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: 0, sectionIndex: 0 }); // for scrollToIndex in Sectionlist and Flatlist\n\n useEffect(() => {\n setNewOptions(options);\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 // check the structure of the new options array to determine if it is a section list or a\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 const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n )?.flat();\n\n /**\n * `options` is the original array, it never changes. (Do not use except you really need the original array) .\n * `newOptions` is a copy of options but can be mutated by `setNewOptions`, as a result, the value many change.\n * `modifiedOptions` should only be used for computations. It has the same structure for both `FlatList` and `SectionList`\n */\n const 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 onValueChange(selectedValues); // send value to parent\n return selectedValues;\n });\n };\n\n const removeDisabledItems = (items: TFlatList) => {\n return items?.filter((item: TFlatListItem) => !item.disabled);\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n // don't select disabled items\n const filteredOptions = removeDisabledItems(\n isSectionList\n ? extractPropertyFromArray(options, 'data').flat()\n : options\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 if (typeof listControls?.selectAllCallback === 'function' && !selectAll) {\n listControls.selectAllCallback();\n }\n\n if (typeof listControls?.unselectAllCallback === 'function' && selectAll) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n removeDisabledItems(modifiedOptions)?.length === selectedValues?.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\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 the options array will be mutated while searching, we have to search with the original array\n const searchResults = isSectionList\n ? searchSectionList(options as TSectionList, regexFilter)\n : searchFlatList(options 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 true;\n }\n return false;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n const filteredData = 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 true;\n }\n return false;\n });\n\n return { ...listItem, data: filteredData };\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: 0, sectionIndex: 0 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? (options as TSectionListItem[] | undefined)?.map(\n (item: TSectionListItem, sectionIndex: number) => {\n item?.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n }\n )\n : (options as TFlatListItem[] | undefined)?.find(\n (item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n }\n );\n };\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 setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n open={open}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => handleToggleModal()}\n modalProps={modalProps}\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchControls?.textInputStyle || searchInputStyle}\n primaryColor={primary}\n textInputContainerStyle={\n searchControls?.textInputContainerStyle\n }\n placeholder={\n searchControls?.textInputProps?.placeholder || 'Search'\n }\n {...searchControls?.textInputProps}\n />\n )}\n {listHeaderComponent}\n {isMultiple && modifiedOptions?.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\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 checkboxComponent={checkboxComponent}\n listIndex={listIndex}\n emptyListMessage={listControls?.emptyListMessage}\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,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type {\n ViewStyle,\n ColorValue,\n TextStyle,\n ModalProps,\n TextInputProps,\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 checkboxComponent?: React.ReactNode;\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 listControls?: {\n selectAllText?: string;\n unselectAllText?: string;\n selectAllCallback?: () => void;\n unselectAllCallback?: () => void;\n };\n searchControls?: {\n textInputStyle?: ViewStyle | TextStyle;\n textInputContainerStyle?: ViewStyle;\n textInputProps?: TextInputProps;\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":""}
1
+ {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type {\n ViewStyle,\n ColorValue,\n TextStyle,\n ModalProps,\n TextInputProps,\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 checkboxComponent?: React.ReactNode;\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 listControls?: {\n selectAllText?: string;\n unselectAllText?: string;\n selectAllCallback?: () => void;\n unselectAllCallback?: () => void;\n emptyListMessage?: string;\n };\n searchControls?: {\n textInputStyle?: ViewStyle | TextStyle;\n textInputContainerStyle?: ViewStyle;\n textInputProps?: TextInputProps;\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":""}
@@ -26,6 +26,7 @@ const DropdownFlatList = _ref => {
26
26
  checkboxComponent,
27
27
  listComponentStyles,
28
28
  listIndex,
29
+ emptyListMessage,
29
30
  ...rest
30
31
  } = _ref;
31
32
  const flatlistRef = useRef(null);
@@ -46,7 +47,8 @@ const DropdownFlatList = _ref => {
46
47
  extraData: isMultiple ? selectedItems : selectedItem,
47
48
  initialNumToRender: 5,
48
49
  ListEmptyComponent: /*#__PURE__*/React.createElement(ListEmptyComponent, {
49
- listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle
50
+ listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle,
51
+ emptyListMessage: emptyListMessage
50
52
  }),
51
53
  contentContainerStyle: [isSearchable ? {
52
54
  paddingTop: 0
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","FlatList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","DropdownFlatList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","rest","flatlistRef","scrollToItem","index","_flatlistRef$current","current","scrollToIndex","animated","length","itemIndex","createElement","_extends","data","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","ref","onScrollToIndexFailed","_ref2","setTimeout","_ref3","props","create"],"sources":["DropdownFlatList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useRef } from 'react';\nimport { FlatList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { ItemSeparatorComponent, ListEmptyComponent } from '../Others';\nimport { TFlatList } from 'src/types/index.types';\n\nconst DropdownFlatList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility to be removed in future release\n checkboxStyle, // kept for backwards compatibility to be removed in future release\n checkboxLabelStyle, // kept for backwards compatibility to be removed in future release\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n ...rest\n}: any) => {\n const flatlistRef = useRef<FlatList<TFlatList>>(null);\n\n const scrollToItem = (index: number) => {\n flatlistRef.current?.scrollToIndex({\n index,\n animated: true,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToItem(listIndex.itemIndex);\n }\n }, [listIndex, options]);\n\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n scrollToItem,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n ref={flatlistRef}\n onScrollToIndexFailed={({ index }) => {\n setTimeout(() => {\n scrollToItem(index);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n scrollToItem={props.scrollToItem}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownFlatList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useRef","FlatList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","DropdownFlatList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","emptyListMessage","rest","flatlistRef","scrollToItem","index","_flatlistRef$current","current","scrollToIndex","animated","length","itemIndex","createElement","_extends","data","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","keyExtractor","_item","ref","onScrollToIndexFailed","_ref2","setTimeout","_ref3","props","create"],"sources":["DropdownFlatList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useRef } from 'react';\nimport { FlatList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport { ItemSeparatorComponent, ListEmptyComponent } from '../Others';\nimport { TFlatList } from 'src/types/index.types';\n\nconst DropdownFlatList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility to be removed in future release\n checkboxStyle, // kept for backwards compatibility to be removed in future release\n checkboxLabelStyle, // kept for backwards compatibility to be removed in future release\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const flatlistRef = useRef<FlatList<TFlatList>>(null);\n\n const scrollToItem = (index: number) => {\n flatlistRef.current?.scrollToIndex({\n index,\n animated: true,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToItem(listIndex.itemIndex);\n }\n }, [listIndex, options]);\n\n return (\n <FlatList\n data={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n scrollToItem,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n })\n }\n keyExtractor={(_item, index) => `Options${index}`}\n ref={flatlistRef}\n onScrollToIndexFailed={({ index }) => {\n setTimeout(() => {\n scrollToItem(index);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ item }: any, props: any) => {\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n scrollToItem={props.scrollToItem}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownFlatList;\n"],"mappings":"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"}
@@ -24,6 +24,7 @@ const DropdownSectionList = _ref => {
24
24
  checkboxComponent,
25
25
  listComponentStyles,
26
26
  listIndex,
27
+ emptyListMessage,
27
28
  ...rest
28
29
  } = _ref;
29
30
  const [expandedSections, setExpandedSections] = useState(new Set());
@@ -75,7 +76,8 @@ const DropdownSectionList = _ref => {
75
76
  extraData: isMultiple ? selectedItems : selectedItem,
76
77
  initialNumToRender: 5,
77
78
  ListEmptyComponent: /*#__PURE__*/React.createElement(ListEmptyComponent, {
78
- listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle
79
+ listEmptyComponentStyle: listComponentStyles === null || listComponentStyles === void 0 ? void 0 : listComponentStyles.listEmptyComponentStyle,
80
+ emptyListMessage: emptyListMessage
79
81
  }),
80
82
  contentContainerStyle: [isSearchable ? {
81
83
  paddingTop: 0
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","useRef","SectionList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","SectionHeaderTitle","extractPropertyFromArray","DropdownSectionList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","rest","expandedSections","setExpandedSections","Set","initialState","handleToggleListExpansion","title","expandedSectionsState","next","has","delete","add","sectionlistRef","scrollToLocation","_sectionlistRef$curre","current","sectionIndex","animated","itemIndex","length","createElement","_extends","sections","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","renderSectionHeader","_ref2","section","sectionHeaderStyle","onPress","isExpanded","keyExtractor","_item","index","stickySectionHeadersEnabled","ref","onScrollToIndexFailed","setTimeout","_ref3","props","create"],"sources":["DropdownSectionList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { SectionList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport {\n ItemSeparatorComponent,\n ListEmptyComponent,\n SectionHeaderTitle,\n} from '../Others';\nimport { extractPropertyFromArray } from '../../utils';\nimport { TSectionList } from 'src/types/index.types';\n\nconst DropdownSectionList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n ...rest\n}: any) => {\n const [expandedSections, setExpandedSections] = useState(new Set());\n\n /**\n * Expand all sections\n */\n useEffect(() => {\n let initialState = new Set(extractPropertyFromArray(options, 'title'));\n setExpandedSections(initialState);\n }, [options]);\n\n /**\n * @param title\n */\n const handleToggleListExpansion = (title: string) => {\n setExpandedSections((expandedSectionsState) => {\n // Using Set here but you can use an array too\n const next = new Set(expandedSectionsState);\n if (next.has(title)) {\n next.delete(title);\n } else {\n next.add(title);\n }\n return next;\n });\n };\n\n /**\n * @description Scroll to item location\n */\n\n const sectionlistRef = useRef<SectionList<TSectionList>>(null);\n\n const scrollToLocation = (listIndex: any) => {\n sectionlistRef.current?.scrollToLocation({\n sectionIndex: listIndex.sectionIndex,\n animated: true,\n itemIndex: listIndex.itemIndex,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToLocation(listIndex);\n }\n }, [listIndex, options]);\n\n return (\n <SectionList\n sections={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n expandedSections,\n })\n }\n renderSectionHeader={({ section: { title } }) => (\n <SectionHeaderTitle\n title={title}\n sectionHeaderStyle={listComponentStyles?.sectionHeaderStyle}\n onPress={() => handleToggleListExpansion(title)}\n isExpanded={expandedSections.has(title)}\n />\n )}\n keyExtractor={(_item, index) => `Options${index}`}\n stickySectionHeadersEnabled={false}\n ref={sectionlistRef}\n onScrollToIndexFailed={() => {\n setTimeout(() => {\n scrollToLocation(listIndex);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ section: { title }, item }: any, props: any) => {\n const isExpanded = props?.expandedSections.has(title);\n\n //return null if it is not expanded\n if (!isExpanded) return null;\n\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownSectionList;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useState","useRef","SectionList","StyleSheet","DropdownListItem","ItemSeparatorComponent","ListEmptyComponent","SectionHeaderTitle","extractPropertyFromArray","DropdownSectionList","_ref","options","optionLabel","optionValue","isMultiple","isSearchable","selectedItems","selectedItem","handleMultipleSelections","handleSingleSelection","primaryColor","checkboxSize","checkboxStyle","checkboxLabelStyle","checkboxComponentStyles","checkboxComponent","listComponentStyles","listIndex","emptyListMessage","rest","expandedSections","setExpandedSections","Set","initialState","handleToggleListExpansion","title","expandedSectionsState","next","has","delete","add","sectionlistRef","scrollToLocation","_sectionlistRef$curre","current","sectionIndex","animated","itemIndex","length","createElement","_extends","sections","extraData","initialNumToRender","listEmptyComponentStyle","contentContainerStyle","paddingTop","styles","itemSeparatorStyle","renderItem","item","_renderItem","selectedOption","onChange","renderSectionHeader","_ref2","section","sectionHeaderStyle","onPress","isExpanded","keyExtractor","_item","index","stickySectionHeadersEnabled","ref","onScrollToIndexFailed","setTimeout","_ref3","props","create"],"sources":["DropdownSectionList.tsx"],"sourcesContent":["/* eslint-disable react-native/no-inline-styles */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { SectionList, StyleSheet } from 'react-native';\nimport DropdownListItem from './DropdownListItem';\nimport {\n ItemSeparatorComponent,\n ListEmptyComponent,\n SectionHeaderTitle,\n} from '../Others';\nimport { extractPropertyFromArray } from '../../utils';\nimport { TSectionList } from 'src/types/index.types';\n\nconst DropdownSectionList = ({\n options,\n optionLabel,\n optionValue,\n isMultiple,\n isSearchable,\n selectedItems,\n selectedItem,\n handleMultipleSelections,\n handleSingleSelection,\n primaryColor,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n checkboxComponentStyles,\n checkboxComponent,\n listComponentStyles,\n listIndex,\n emptyListMessage,\n ...rest\n}: any) => {\n const [expandedSections, setExpandedSections] = useState(new Set());\n\n /**\n * Expand all sections\n */\n useEffect(() => {\n let initialState = new Set(extractPropertyFromArray(options, 'title'));\n setExpandedSections(initialState);\n }, [options]);\n\n /**\n * @param title\n */\n const handleToggleListExpansion = (title: string) => {\n setExpandedSections((expandedSectionsState) => {\n // Using Set here but you can use an array too\n const next = new Set(expandedSectionsState);\n if (next.has(title)) {\n next.delete(title);\n } else {\n next.add(title);\n }\n return next;\n });\n };\n\n /**\n * @description Scroll to item location\n */\n\n const sectionlistRef = useRef<SectionList<TSectionList>>(null);\n\n const scrollToLocation = (listIndex: any) => {\n sectionlistRef.current?.scrollToLocation({\n sectionIndex: listIndex.sectionIndex,\n animated: true,\n itemIndex: listIndex.itemIndex,\n });\n };\n\n useEffect(() => {\n if (options?.length) {\n scrollToLocation(listIndex);\n }\n }, [listIndex, options]);\n\n return (\n <SectionList\n sections={options}\n extraData={isMultiple ? selectedItems : selectedItem}\n initialNumToRender={5}\n ListEmptyComponent={\n <ListEmptyComponent\n listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}\n emptyListMessage={emptyListMessage}\n />\n }\n contentContainerStyle={[\n isSearchable ? { paddingTop: 0 } : styles.contentContainerStyle,\n ]}\n ItemSeparatorComponent={() => (\n <ItemSeparatorComponent\n itemSeparatorStyle={listComponentStyles?.itemSeparatorStyle}\n />\n )}\n renderItem={(item) =>\n _renderItem(item, {\n optionLabel,\n optionValue,\n isMultiple,\n selectedOption: isMultiple ? selectedItems : selectedItem,\n onChange: isMultiple\n ? handleMultipleSelections\n : handleSingleSelection,\n primaryColor,\n checkboxSize, // kept for backwards compatibility\n checkboxStyle, // kept for backwards compatibility\n checkboxLabelStyle, // kept for backwards compatibility\n checkboxComponentStyles,\n checkboxComponent,\n expandedSections,\n })\n }\n renderSectionHeader={({ section: { title } }) => (\n <SectionHeaderTitle\n title={title}\n sectionHeaderStyle={listComponentStyles?.sectionHeaderStyle}\n onPress={() => handleToggleListExpansion(title)}\n isExpanded={expandedSections.has(title)}\n />\n )}\n keyExtractor={(_item, index) => `Options${index}`}\n stickySectionHeadersEnabled={false}\n ref={sectionlistRef}\n onScrollToIndexFailed={() => {\n setTimeout(() => {\n scrollToLocation(listIndex);\n }, 500);\n }}\n {...rest}\n />\n );\n};\n\nconst _renderItem = ({ section: { title }, item }: any, props: any) => {\n const isExpanded = props?.expandedSections.has(title);\n\n //return null if it is not expanded\n if (!isExpanded) return null;\n\n return (\n <DropdownListItem\n item={item}\n optionLabel={props.optionLabel}\n optionValue={props.optionValue}\n isMultiple={props.isMultiple}\n selectedOption={props.selectedOption}\n onChange={props.onChange}\n primaryColor={props.primaryColor}\n checkboxSize={props.checkboxSize}\n checkboxStyle={props.checkboxStyle}\n checkboxLabelStyle={props.checkboxLabelStyle}\n checkboxComponentStyles={props.checkboxComponentStyles}\n checkboxComponent={props.checkboxComponent}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n contentContainerStyle: { paddingTop: 20 },\n});\n\nexport default DropdownSectionList;\n"],"mappings":";AAAA;AACA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAC1D,SAASC,WAAW,EAAEC,UAAU,QAAQ,cAAc;AACtD,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,kBAAkB,QACb,WAAW;AAClB,SAASC,wBAAwB,QAAQ,aAAa;AAGtD,MAAMC,mBAAmB,GAAGC,IAAA,IAoBjB;EAAA,IApBkB;IAC3BC,OAAO;IACPC,WAAW;IACXC,WAAW;IACXC,UAAU;IACVC,YAAY;IACZC,aAAa;IACbC,YAAY;IACZC,wBAAwB;IACxBC,qBAAqB;IACrBC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC,uBAAuB;IACvBC,iBAAiB;IACjBC,mBAAmB;IACnBC,SAAS;IACTC,gBAAgB;IAChB,GAAGC;EACA,CAAC,GAAAnB,IAAA;EACJ,MAAM,CAACoB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG/B,QAAQ,CAAC,IAAIgC,GAAG,CAAC,CAAC,CAAC;;EAEnE;AACF;AACA;EACEjC,SAAS,CAAC,MAAM;IACd,IAAIkC,YAAY,GAAG,IAAID,GAAG,CAACxB,wBAAwB,CAACG,OAAO,EAAE,OAAO,CAAC,CAAC;IACtEoB,mBAAmB,CAACE,YAAY,CAAC;EACnC,CAAC,EAAE,CAACtB,OAAO,CAAC,CAAC;;EAEb;AACF;AACA;EACE,MAAMuB,yBAAyB,GAAIC,KAAa,IAAK;IACnDJ,mBAAmB,CAAEK,qBAAqB,IAAK;MAC7C;MACA,MAAMC,IAAI,GAAG,IAAIL,GAAG,CAACI,qBAAqB,CAAC;MAC3C,IAAIC,IAAI,CAACC,GAAG,CAACH,KAAK,CAAC,EAAE;QACnBE,IAAI,CAACE,MAAM,CAACJ,KAAK,CAAC;MACpB,CAAC,MAAM;QACLE,IAAI,CAACG,GAAG,CAACL,KAAK,CAAC;MACjB;MACA,OAAOE,IAAI;IACb,CAAC,CAAC;EACJ,CAAC;;EAED;AACF;AACA;;EAEE,MAAMI,cAAc,GAAGxC,MAAM,CAA4B,IAAI,CAAC;EAE9D,MAAMyC,gBAAgB,GAAIf,SAAc,IAAK;IAAA,IAAAgB,qBAAA;IAC3C,CAAAA,qBAAA,GAAAF,cAAc,CAACG,OAAO,cAAAD,qBAAA,uBAAtBA,qBAAA,CAAwBD,gBAAgB,CAAC;MACvCG,YAAY,EAAElB,SAAS,CAACkB,YAAY;MACpCC,QAAQ,EAAE,IAAI;MACdC,SAAS,EAAEpB,SAAS,CAACoB;IACvB,CAAC,CAAC;EACJ,CAAC;EAEDhD,SAAS,CAAC,MAAM;IACd,IAAIY,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEqC,MAAM,EAAE;MACnBN,gBAAgB,CAACf,SAAS,CAAC;IAC7B;EACF,CAAC,EAAE,CAACA,SAAS,EAAEhB,OAAO,CAAC,CAAC;EAExB,oBACEb,KAAA,CAAAmD,aAAA,CAAC/C,WAAW,EAAAgD,QAAA;IACVC,QAAQ,EAAExC,OAAQ;IAClByC,SAAS,EAAEtC,UAAU,GAAGE,aAAa,GAAGC,YAAa;IACrDoC,kBAAkB,EAAE,CAAE;IACtB/C,kBAAkB,eAChBR,KAAA,CAAAmD,aAAA,CAAC3C,kBAAkB;MACjBgD,uBAAuB,EAAE5B,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAE4B,uBAAwB;MACtE1B,gBAAgB,EAAEA;IAAiB,CACpC,CACF;IACD2B,qBAAqB,EAAE,CACrBxC,YAAY,GAAG;MAAEyC,UAAU,EAAE;IAAE,CAAC,GAAGC,MAAM,CAACF,qBAAqB,CAC/D;IACFlD,sBAAsB,EAAEA,CAAA,kBACtBP,KAAA,CAAAmD,aAAA,CAAC5C,sBAAsB;MACrBqD,kBAAkB,EAAEhC,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEgC;IAAmB,CAC7D,CACD;IACFC,UAAU,EAAGC,IAAI,IACfC,WAAW,CAACD,IAAI,EAAE;MAChBhD,WAAW;MACXC,WAAW;MACXC,UAAU;MACVgD,cAAc,EAAEhD,UAAU,GAAGE,aAAa,GAAGC,YAAY;MACzD8C,QAAQ,EAAEjD,UAAU,GAChBI,wBAAwB,GACxBC,qBAAqB;MACzBC,YAAY;MACZC,YAAY;MAAE;MACdC,aAAa;MAAE;MACfC,kBAAkB;MAAE;MACpBC,uBAAuB;MACvBC,iBAAiB;MACjBK;IACF,CAAC,CACF;IACDkC,mBAAmB,EAAEC,KAAA;MAAA,IAAC;QAAEC,OAAO,EAAE;UAAE/B;QAAM;MAAE,CAAC,GAAA8B,KAAA;MAAA,oBAC1CnE,KAAA,CAAAmD,aAAA,CAAC1C,kBAAkB;QACjB4B,KAAK,EAAEA,KAAM;QACbgC,kBAAkB,EAAEzC,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEyC,kBAAmB;QAC5DC,OAAO,EAAEA,CAAA,KAAMlC,yBAAyB,CAACC,KAAK,CAAE;QAChDkC,UAAU,EAAEvC,gBAAgB,CAACQ,GAAG,CAACH,KAAK;MAAE,CACzC,CAAC;IAAA,CACF;IACFmC,YAAY,EAAEA,CAACC,KAAK,EAAEC,KAAK,KAAM,UAASA,KAAM,EAAE;IAClDC,2BAA2B,EAAE,KAAM;IACnCC,GAAG,EAAEjC,cAAe;IACpBkC,qBAAqB,EAAEA,CAAA,KAAM;MAC3BC,UAAU,CAAC,MAAM;QACflC,gBAAgB,CAACf,SAAS,CAAC;MAC7B,CAAC,EAAE,GAAG,CAAC;IACT;EAAE,GACEE,IAAI,CACT,CAAC;AAEN,CAAC;AAED,MAAMgC,WAAW,GAAGA,CAAAgB,KAAA,EAAoCC,KAAU,KAAK;EAAA,IAAlD;IAAEZ,OAAO,EAAE;MAAE/B;IAAM,CAAC;IAAEyB;EAAU,CAAC,GAAAiB,KAAA;EACpD,MAAMR,UAAU,GAAGS,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEhD,gBAAgB,CAACQ,GAAG,CAACH,KAAK,CAAC;;EAErD;EACA,IAAI,CAACkC,UAAU,EAAE,OAAO,IAAI;EAE5B,oBACEvE,KAAA,CAAAmD,aAAA,CAAC7C,gBAAgB;IACfwD,IAAI,EAAEA,IAAK;IACXhD,WAAW,EAAEkE,KAAK,CAAClE,WAAY;IAC/BC,WAAW,EAAEiE,KAAK,CAACjE,WAAY;IAC/BC,UAAU,EAAEgE,KAAK,CAAChE,UAAW;IAC7BgD,cAAc,EAAEgB,KAAK,CAAChB,cAAe;IACrCC,QAAQ,EAAEe,KAAK,CAACf,QAAS;IACzB3C,YAAY,EAAE0D,KAAK,CAAC1D,YAAa;IACjCC,YAAY,EAAEyD,KAAK,CAACzD,YAAa;IACjCC,aAAa,EAAEwD,KAAK,CAACxD,aAAc;IACnCC,kBAAkB,EAAEuD,KAAK,CAACvD,kBAAmB;IAC7CC,uBAAuB,EAAEsD,KAAK,CAACtD,uBAAwB;IACvDC,iBAAiB,EAAEqD,KAAK,CAACrD;EAAkB,CAC5C,CAAC;AAEN,CAAC;AAED,MAAMgC,MAAM,GAAGtD,UAAU,CAAC4E,MAAM,CAAC;EAC/BxB,qBAAqB,EAAE;IAAEC,UAAU,EAAE;EAAG;AAC1C,CAAC,CAAC;AAEF,eAAe/C,mBAAmB"}
@@ -3,13 +3,14 @@ import { View, Text, StyleSheet, TouchableOpacity, Image } from 'react-native';
3
3
  import { colors } from '../../styles/colors';
4
4
  export const ListEmptyComponent = _ref => {
5
5
  let {
6
- listEmptyComponentStyle
6
+ listEmptyComponentStyle,
7
+ emptyListMessage
7
8
  } = _ref;
8
9
  return /*#__PURE__*/React.createElement(View, {
9
10
  style: styles.listEmptyComponentStyle
10
11
  }, /*#__PURE__*/React.createElement(Text, {
11
12
  style: listEmptyComponentStyle
12
- }, "No options available"));
13
+ }, emptyListMessage || 'No options available'));
13
14
  };
14
15
  export const ItemSeparatorComponent = _ref2 => {
15
16
  let {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","StyleSheet","TouchableOpacity","Image","colors","ListEmptyComponent","_ref","listEmptyComponentStyle","createElement","style","styles","ItemSeparatorComponent","_ref2","itemSeparatorStyle","ListItemContainer","_ref3","children","listItemContainerStyle","SectionHeaderTitle","_ref4","title","sectionHeaderStyle","onPress","isExpanded","accordionStyle","rotatedIcon90","source","require","create","alignItems","width","marginVertical","backgroundColor","gray","height","opacity","paddingHorizontal","paddingVertical","flexDirection","fontWeight","flexWrap","justifyContent","alignContent","transform","rotate"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n TextStyle,\n Image,\n ViewStyle,\n} from 'react-native';\nimport { colors } from '../../styles/colors';\n\nexport const ListEmptyComponent = ({ listEmptyComponentStyle }: any) => {\n return (\n <View style={styles.listEmptyComponentStyle}>\n <Text style={listEmptyComponentStyle}>No options available</Text>\n </View>\n );\n};\n\nexport const ItemSeparatorComponent = ({ itemSeparatorStyle }: any) => {\n return <View style={[styles.itemSeparatorStyle, itemSeparatorStyle]} />;\n};\n\nexport const ListItemContainer = ({\n children,\n listItemContainerStyle,\n}: {\n children: ReactNode;\n listItemContainerStyle: ViewStyle;\n}) => {\n return (\n <View style={[styles.listItemContainerStyle, listItemContainerStyle]}>\n {children}\n </View>\n );\n};\n\nexport const SectionHeaderTitle = ({\n title,\n sectionHeaderStyle,\n onPress,\n isExpanded,\n}: {\n title: string;\n sectionHeaderStyle?: TextStyle;\n onPress?: () => void;\n isExpanded: Boolean;\n}) => {\n return (\n <TouchableOpacity onPress={onPress}>\n <ListItemContainer listItemContainerStyle={styles.accordionStyle}>\n <Text style={[styles.sectionHeaderStyle, sectionHeaderStyle]}>\n {title}\n </Text>\n <View style={isExpanded ? null : styles.rotatedIcon90}>\n <Image source={require('../../asset/arrow-down.png')} />\n </View>\n </ListItemContainer>\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n listEmptyComponentStyle: {\n alignItems: 'center',\n width: '100%',\n marginVertical: 20,\n },\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n listItemContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n sectionHeaderStyle: { fontWeight: '500' },\n accordionStyle: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n alignContent: 'center',\n },\n rotatedIcon90: {\n transform: [{ rotate: '-90deg' }],\n },\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,SACEC,IAAI,EACJC,IAAI,EACJC,UAAU,EACVC,gBAAgB,EAEhBC,KAAK,QAEA,cAAc;AACrB,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,OAAO,MAAMC,kBAAkB,GAAGC,IAAA,IAAsC;EAAA,IAArC;IAAEC;EAA6B,CAAC,GAAAD,IAAA;EACjE,oBACER,KAAA,CAAAU,aAAA,CAACT,IAAI;IAACU,KAAK,EAAEC,MAAM,CAACH;EAAwB,gBAC1CT,KAAA,CAAAU,aAAA,CAACR,IAAI;IAACS,KAAK,EAAEF;EAAwB,GAAC,sBAA0B,CAC5D,CAAC;AAEX,CAAC;AAED,OAAO,MAAMI,sBAAsB,GAAGC,KAAA,IAAiC;EAAA,IAAhC;IAAEC;EAAwB,CAAC,GAAAD,KAAA;EAChE,oBAAOd,KAAA,CAAAU,aAAA,CAACT,IAAI;IAACU,KAAK,EAAE,CAACC,MAAM,CAACG,kBAAkB,EAAEA,kBAAkB;EAAE,CAAE,CAAC;AACzE,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAGC,KAAA,IAM3B;EAAA,IAN4B;IAChCC,QAAQ;IACRC;EAIF,CAAC,GAAAF,KAAA;EACC,oBACEjB,KAAA,CAAAU,aAAA,CAACT,IAAI;IAACU,KAAK,EAAE,CAACC,MAAM,CAACO,sBAAsB,EAAEA,sBAAsB;EAAE,GAClED,QACG,CAAC;AAEX,CAAC;AAED,OAAO,MAAME,kBAAkB,GAAGC,KAAA,IAU5B;EAAA,IAV6B;IACjCC,KAAK;IACLC,kBAAkB;IAClBC,OAAO;IACPC;EAMF,CAAC,GAAAJ,KAAA;EACC,oBACErB,KAAA,CAAAU,aAAA,CAACN,gBAAgB;IAACoB,OAAO,EAAEA;EAAQ,gBACjCxB,KAAA,CAAAU,aAAA,CAACM,iBAAiB;IAACG,sBAAsB,EAAEP,MAAM,CAACc;EAAe,gBAC/D1B,KAAA,CAAAU,aAAA,CAACR,IAAI;IAACS,KAAK,EAAE,CAACC,MAAM,CAACW,kBAAkB,EAAEA,kBAAkB;EAAE,GAC1DD,KACG,CAAC,eACPtB,KAAA,CAAAU,aAAA,CAACT,IAAI;IAACU,KAAK,EAAEc,UAAU,GAAG,IAAI,GAAGb,MAAM,CAACe;EAAc,gBACpD3B,KAAA,CAAAU,aAAA,CAACL,KAAK;IAACuB,MAAM,EAAEC,OAAO,CAAC,4BAA4B;EAAE,CAAE,CACnD,CACW,CACH,CAAC;AAEvB,CAAC;AAED,MAAMjB,MAAM,GAAGT,UAAU,CAAC2B,MAAM,CAAC;EAC/BrB,uBAAuB,EAAE;IACvBsB,UAAU,EAAE,QAAQ;IACpBC,KAAK,EAAE,MAAM;IACbC,cAAc,EAAE;EAClB,CAAC;EACDlB,kBAAkB,EAAE;IAClBmB,eAAe,EAAE5B,MAAM,CAAC6B,IAAI;IAC5BC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC;EACDlB,sBAAsB,EAAE;IACtBmB,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE,KAAK;IACpBT,UAAU,EAAE;EACd,CAAC;EACDR,kBAAkB,EAAE;IAAEkB,UAAU,EAAE;EAAM,CAAC;EACzCf,cAAc,EAAE;IACdc,aAAa,EAAE,KAAK;IACpBE,QAAQ,EAAE,QAAQ;IAClBC,cAAc,EAAE,eAAe;IAC/BC,YAAY,EAAE;EAChB,CAAC;EACDjB,aAAa,EAAE;IACbkB,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAS,CAAC;EAClC;AACF,CAAC,CAAC"}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","TouchableOpacity","Image","colors","ListEmptyComponent","_ref","listEmptyComponentStyle","emptyListMessage","createElement","style","styles","ItemSeparatorComponent","_ref2","itemSeparatorStyle","ListItemContainer","_ref3","children","listItemContainerStyle","SectionHeaderTitle","_ref4","title","sectionHeaderStyle","onPress","isExpanded","accordionStyle","rotatedIcon90","source","require","create","alignItems","width","marginVertical","backgroundColor","gray","height","opacity","paddingHorizontal","paddingVertical","flexDirection","fontWeight","flexWrap","justifyContent","alignContent","transform","rotate"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n View,\n Text,\n StyleSheet,\n TouchableOpacity,\n TextStyle,\n Image,\n ViewStyle,\n} from 'react-native';\nimport { colors } from '../../styles/colors';\n\nexport const ListEmptyComponent = ({\n listEmptyComponentStyle,\n emptyListMessage,\n}: any) => {\n return (\n <View style={styles.listEmptyComponentStyle}>\n <Text style={listEmptyComponentStyle}>\n {emptyListMessage || 'No options available'}\n </Text>\n </View>\n );\n};\n\nexport const ItemSeparatorComponent = ({ itemSeparatorStyle }: any) => {\n return <View style={[styles.itemSeparatorStyle, itemSeparatorStyle]} />;\n};\n\nexport const ListItemContainer = ({\n children,\n listItemContainerStyle,\n}: {\n children: ReactNode;\n listItemContainerStyle: ViewStyle;\n}) => {\n return (\n <View style={[styles.listItemContainerStyle, listItemContainerStyle]}>\n {children}\n </View>\n );\n};\n\nexport const SectionHeaderTitle = ({\n title,\n sectionHeaderStyle,\n onPress,\n isExpanded,\n}: {\n title: string;\n sectionHeaderStyle?: TextStyle;\n onPress?: () => void;\n isExpanded: Boolean;\n}) => {\n return (\n <TouchableOpacity onPress={onPress}>\n <ListItemContainer listItemContainerStyle={styles.accordionStyle}>\n <Text style={[styles.sectionHeaderStyle, sectionHeaderStyle]}>\n {title}\n </Text>\n <View style={isExpanded ? null : styles.rotatedIcon90}>\n <Image source={require('../../asset/arrow-down.png')} />\n </View>\n </ListItemContainer>\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n listEmptyComponentStyle: {\n alignItems: 'center',\n width: '100%',\n marginVertical: 20,\n },\n itemSeparatorStyle: {\n backgroundColor: colors.gray,\n height: 1,\n opacity: 0.15,\n },\n listItemContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n alignItems: 'center',\n },\n sectionHeaderStyle: { fontWeight: '500' },\n accordionStyle: {\n flexDirection: 'row',\n flexWrap: 'nowrap',\n justifyContent: 'space-between',\n alignContent: 'center',\n },\n rotatedIcon90: {\n transform: [{ rotate: '-90deg' }],\n },\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,SACEC,IAAI,EACJC,IAAI,EACJC,UAAU,EACVC,gBAAgB,EAEhBC,KAAK,QAEA,cAAc;AACrB,SAASC,MAAM,QAAQ,qBAAqB;AAE5C,OAAO,MAAMC,kBAAkB,GAAGC,IAAA,IAGvB;EAAA,IAHwB;IACjCC,uBAAuB;IACvBC;EACG,CAAC,GAAAF,IAAA;EACJ,oBACER,KAAA,CAAAW,aAAA,CAACV,IAAI;IAACW,KAAK,EAAEC,MAAM,CAACJ;EAAwB,gBAC1CT,KAAA,CAAAW,aAAA,CAACT,IAAI;IAACU,KAAK,EAAEH;EAAwB,GAClCC,gBAAgB,IAAI,sBACjB,CACF,CAAC;AAEX,CAAC;AAED,OAAO,MAAMI,sBAAsB,GAAGC,KAAA,IAAiC;EAAA,IAAhC;IAAEC;EAAwB,CAAC,GAAAD,KAAA;EAChE,oBAAOf,KAAA,CAAAW,aAAA,CAACV,IAAI;IAACW,KAAK,EAAE,CAACC,MAAM,CAACG,kBAAkB,EAAEA,kBAAkB;EAAE,CAAE,CAAC;AACzE,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAGC,KAAA,IAM3B;EAAA,IAN4B;IAChCC,QAAQ;IACRC;EAIF,CAAC,GAAAF,KAAA;EACC,oBACElB,KAAA,CAAAW,aAAA,CAACV,IAAI;IAACW,KAAK,EAAE,CAACC,MAAM,CAACO,sBAAsB,EAAEA,sBAAsB;EAAE,GAClED,QACG,CAAC;AAEX,CAAC;AAED,OAAO,MAAME,kBAAkB,GAAGC,KAAA,IAU5B;EAAA,IAV6B;IACjCC,KAAK;IACLC,kBAAkB;IAClBC,OAAO;IACPC;EAMF,CAAC,GAAAJ,KAAA;EACC,oBACEtB,KAAA,CAAAW,aAAA,CAACP,gBAAgB;IAACqB,OAAO,EAAEA;EAAQ,gBACjCzB,KAAA,CAAAW,aAAA,CAACM,iBAAiB;IAACG,sBAAsB,EAAEP,MAAM,CAACc;EAAe,gBAC/D3B,KAAA,CAAAW,aAAA,CAACT,IAAI;IAACU,KAAK,EAAE,CAACC,MAAM,CAACW,kBAAkB,EAAEA,kBAAkB;EAAE,GAC1DD,KACG,CAAC,eACPvB,KAAA,CAAAW,aAAA,CAACV,IAAI;IAACW,KAAK,EAAEc,UAAU,GAAG,IAAI,GAAGb,MAAM,CAACe;EAAc,gBACpD5B,KAAA,CAAAW,aAAA,CAACN,KAAK;IAACwB,MAAM,EAAEC,OAAO,CAAC,4BAA4B;EAAE,CAAE,CACnD,CACW,CACH,CAAC;AAEvB,CAAC;AAED,MAAMjB,MAAM,GAAGV,UAAU,CAAC4B,MAAM,CAAC;EAC/BtB,uBAAuB,EAAE;IACvBuB,UAAU,EAAE,QAAQ;IACpBC,KAAK,EAAE,MAAM;IACbC,cAAc,EAAE;EAClB,CAAC;EACDlB,kBAAkB,EAAE;IAClBmB,eAAe,EAAE7B,MAAM,CAAC8B,IAAI;IAC5BC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC;EACDlB,sBAAsB,EAAE;IACtBmB,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE,KAAK;IACpBT,UAAU,EAAE;EACd,CAAC;EACDR,kBAAkB,EAAE;IAAEkB,UAAU,EAAE;EAAM,CAAC;EACzCf,cAAc,EAAE;IACdc,aAAa,EAAE,KAAK;IACpBE,QAAQ,EAAE,QAAQ;IAClBC,cAAc,EAAE,eAAe;IAC/BC,YAAY,EAAE;EAChB,CAAC;EACDjB,aAAa,EAAE;IACbkB,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAS,CAAC;EAClC;AACF,CAAC,CAAC"}
@@ -336,7 +336,8 @@ export const DropdownSelect = _ref => {
336
336
  checkboxLabelStyle: checkboxLabelStyle,
337
337
  checkboxComponentStyles: checkboxComponentStyles,
338
338
  checkboxComponent: checkboxComponent,
339
- listIndex: listIndex
339
+ listIndex: listIndex,
340
+ emptyListMessage: listControls === null || listControls === void 0 ? void 0 : listControls.emptyListMessage
340
341
  })));
341
342
  };
342
343
  const styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useCallback","TouchableOpacity","StyleSheet","View","Input","CheckBox","Dropdown","DropdownFlatList","DropdownSectionList","CustomModal","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","extractPropertyFromArray","DropdownSelect","_ref","_extractPropertyFromA","_searchControls$textI","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","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","searchControls","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","sectionIndex","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","modifiedSectionData","flat","modifiedOptions","optLabel","optValue","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","removeDisabledItems","items","handleSelectAll","filteredOptions","i","length","selectAllCallback","unselectAllCallback","checkSelectAll","_removeDisabledItems","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","filteredData","handleToggleModal","primary","gray","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","_extends","onRequestClose","ListHeaderComponent","onChangeText","text","style","textInputStyle","textInputContainerStyle","textInputProps","styles","optionsContainerStyle","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } 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 { extractPropertyFromArray } 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, // kept for backwards compatibility\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 checkboxComponent,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps,\n hideModal = false,\n listControls,\n searchControls,\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 const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: 0, sectionIndex: 0 }); // for scrollToIndex in Sectionlist and Flatlist\n\n useEffect(() => {\n setNewOptions(options);\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 // check the structure of the new options array to determine if it is a section list or a\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 const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n )?.flat();\n\n /**\n * `options` is the original array, it never changes. (Do not use except you really need the original array) .\n * `newOptions` is a copy of options but can be mutated by `setNewOptions`, as a result, the value many change.\n * `modifiedOptions` should only be used for computations. It has the same structure for both `FlatList` and `SectionList`\n */\n const 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 onValueChange(selectedValues); // send value to parent\n return selectedValues;\n });\n };\n\n const removeDisabledItems = (items: TFlatList) => {\n return items?.filter((item: TFlatListItem) => !item.disabled);\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n // don't select disabled items\n const filteredOptions = removeDisabledItems(\n isSectionList\n ? extractPropertyFromArray(options, 'data').flat()\n : options\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 if (typeof listControls?.selectAllCallback === 'function' && !selectAll) {\n listControls.selectAllCallback();\n }\n\n if (typeof listControls?.unselectAllCallback === 'function' && selectAll) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n removeDisabledItems(modifiedOptions)?.length === selectedValues?.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\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 the options array will be mutated while searching, we have to search with the original array\n const searchResults = isSectionList\n ? searchSectionList(options as TSectionList, regexFilter)\n : searchFlatList(options 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 true;\n }\n return false;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n const filteredData = 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 true;\n }\n return false;\n });\n\n return { ...listItem, data: filteredData };\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: 0, sectionIndex: 0 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? (options as TSectionListItem[] | undefined)?.map(\n (item: TSectionListItem, sectionIndex: number) => {\n item?.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n }\n )\n : (options as TFlatListItem[] | undefined)?.find(\n (item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n }\n );\n };\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 setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n open={open}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => handleToggleModal()}\n modalProps={modalProps}\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchControls?.textInputStyle || searchInputStyle}\n primaryColor={primary}\n textInputContainerStyle={\n searchControls?.textInputContainerStyle\n }\n placeholder={\n searchControls?.textInputProps?.placeholder || 'Search'\n }\n {...searchControls?.textInputProps}\n />\n )}\n {listHeaderComponent}\n {isMultiple && modifiedOptions?.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\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 checkboxComponent={checkboxComponent}\n listIndex={listIndex}\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":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AAC/D,SAASC,gBAAgB,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACjE,OAAOC,KAAK,MAAM,oBAAoB;AACtC,OAAOC,QAAQ,MAAM,uBAAuB;AAC5C,OAAOC,QAAQ,MAAM,gCAAgC;AACrD,OAAOC,gBAAgB,MAAM,wCAAwC;AACrE,OAAOC,mBAAmB,MAAM,2CAA2C;AAC3E,OAAOC,WAAW,MAAM,0BAA0B;AAClD,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,oBAAoB,EAAEC,oBAAoB,QAAQ,aAAa;AAQxE,SAASC,wBAAwB,QAAQ,SAAS;AAElD,OAAO,MAAMC,cAAuC,GAAGC,IAAA,IAyCjD;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EAAA,IAzCkD;IACtDC,WAAW;IACXC,KAAK;IACLC,KAAK;IACLC,UAAU;IACVC,OAAO;IACPC,WAAW;IACXC,WAAW;IACXC,aAAa;IACbC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,YAAY;IACZC,UAAU;IACVC,gBAAgB;IAChBC,aAAa;IACbC,iBAAiB;IACjBC,sBAAsB;IACtBC,kBAAkB;IAClBC,sBAAsB;IACtBC,uBAAuB;IACvBC,iBAAiB;IACjBC,yBAAyB;IACzBC,oBAAoB;IACpBC,0BAA0B;IAC1BC,gBAAgB;IAAE;IAClBC,YAAY;IACZC,QAAQ;IACRC,YAAY;IAAE;IACdC,aAAa;IAAE;IACfC,kBAAkB;IAAE;IACpBC,uBAAuB;IACvBC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IACnBC,mBAAmB;IACnBC,UAAU;IACVC,SAAS,GAAG,KAAK;IACjBC,YAAY;IACZC,cAAc;IACd,GAAGC;EACL,CAAC,GAAA1C,IAAA;EACC,MAAM,CAAC2C,UAAU,EAAEC,aAAa,CAAC,GAAG7D,QAAQ,CAA2B,EAAE,CAAC;EAC1E,MAAM,CAAC8D,IAAI,EAAEC,OAAO,CAAC,GAAG/D,QAAQ,CAAU,KAAK,CAAC;EAChD,MAAM,CAACgE,SAAS,EAAEC,YAAY,CAAC,GAAGjE,QAAQ,CAAU,KAAK,CAAC;EAC1D,MAAM,CAACkE,YAAY,EAAEC,eAAe,CAAC,GAAGnE,QAAQ,CAAM,EAAE,CAAC,CAAC,CAAC;EAC3D,MAAM,CAACoE,aAAa,EAAEC,gBAAgB,CAAC,GAAGrE,QAAQ,CAAQ,EAAE,CAAC,CAAC,CAAC;EAC/D,MAAM,CAACsE,WAAW,EAAEC,cAAc,CAAC,GAAGvE,QAAQ,CAAS,EAAE,CAAC;EAC1D,MAAM,CAACwE,SAAS,EAAEC,YAAY,CAAC,GAAGzE,QAAQ,CAGvC;IAAE0E,SAAS,EAAE,CAAC;IAAEC,YAAY,EAAE;EAAE,CAAC,CAAC,CAAC,CAAC;;EAEvC1E,SAAS,CAAC,MAAM;IACd4D,aAAa,CAACrC,OAAO,CAAC;IACtB,OAAO,MAAM,CAAC,CAAC;EACjB,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEbvB,SAAS,CAAC,MAAM;IACd4B,UAAU,GACNwC,gBAAgB,CAACO,KAAK,CAACC,OAAO,CAACjD,aAAa,CAAC,GAAGA,aAAa,GAAG,EAAE,CAAC,GACnEuC,eAAe,CAACvC,aAAa,CAAC;IAElC,OAAO,MAAM,CAAC,CAAC;EACjB,CAAC,EAAE,CAACA,aAAa,EAAEC,UAAU,EAAEF,aAAa,CAAC,CAAC;;EAE9C;AACF;AACA;;EAEE;EACA,MAAMmD,aAAa,GAAGlB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEmB,IAAI,CACnCC,IAAI,IAAKA,IAAI,CAACC,KAAK,IAAID,IAAI,CAACE,IAAI,IAAIN,KAAK,CAACC,OAAO,CAACG,IAAI,CAACE,IAAI,CAC9D,CAAC;EAED,MAAMC,iBAAiB,GAAGL,aAAa,GACnCpE,mBAAmB,GACnBD,gBAAgB;EACpB,MAAM2E,mBAAmB,IAAAlE,qBAAA,GAAGH,wBAAwB,CAClD6C,UAAU,EACV,MACF,CAAC,cAAA1C,qBAAA,uBAH2BA,qBAAA,CAGzBmE,IAAI,CAAC,CAAC;;EAET;AACF;AACA;AACA;AACA;EACE,MAAMC,eAAe,GAAGR,aAAa,GAAGM,mBAAmB,GAAGxB,UAAU;EAExE,MAAM2B,QAAQ,GAAG9D,WAAW,IAAIZ,oBAAoB;EACpD,MAAM2E,QAAQ,GAAG9D,WAAW,IAAIZ,oBAAoB;;EAEpD;AACF;AACA;EACE,MAAM2E,qBAAqB,GAAIC,KAAsB,IAAK;IACxD,IAAIxB,YAAY,KAAKwB,KAAK,EAAE;MAC1BvB,eAAe,CAAC,IAAI,CAAC;MACrBxC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACvB,CAAC,MAAM;MACLwC,eAAe,CAACuB,KAAK,CAAC;MACtB/D,aAAa,CAAC+D,KAAK,CAAC,CAAC,CAAC;MACtB3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClB;EACF,CAAC;;EAED,MAAM4B,wBAAwB,GAAID,KAA0B,IAAK;IAC/DrB,gBAAgB,CAAEuB,OAAO,IAAK;MAAA,IAAAC,eAAA;MAC5B,IAAIC,cAAc,GAAG,CAAC,GAAGF,OAAO,CAAC;MAEjC,KAAAC,eAAA,GAAIC,cAAc,cAAAD,eAAA,eAAdA,eAAA,CAAgBE,QAAQ,CAACL,KAAK,CAAC,EAAE;QACnCI,cAAc,GAAGA,cAAc,CAACE,MAAM,CAAEhB,IAAI,IAAKA,IAAI,KAAKU,KAAK,CAAC;MAClE,CAAC,MAAM;QACLI,cAAc,CAACG,IAAI,CAACP,KAAK,CAAC;MAC5B;MACA/D,aAAa,CAACmE,cAAc,CAAC,CAAC,CAAC;MAC/B,OAAOA,cAAc;IACvB,CAAC,CAAC;EACJ,CAAC;EAED,MAAMI,mBAAmB,GAAIC,KAAgB,IAAK;IAChD,OAAOA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEH,MAAM,CAAEhB,IAAmB,IAAK,CAACA,IAAI,CAAClC,QAAQ,CAAC;EAC/D,CAAC;EAED,MAAMsD,eAAe,GAAGA,CAAA,KAAM;IAC5BnC,YAAY,CAAE2B,OAAO,IAAK;MACxB,MAAME,cAAc,GAAG,EAAE;;MAEzB;MACA,MAAMO,eAAe,GAAGH,mBAAmB,CACzCpB,aAAa,GACT/D,wBAAwB,CAACS,OAAO,EAAE,MAAM,CAAC,CAAC6D,IAAI,CAAC,CAAC,GAChD7D,OACN,CAAC;MAED,IAAI,CAACoE,OAAO,EAAE;QACZ,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,eAAe,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;UAC/CR,cAAc,CAACG,IAAI,CAACI,eAAe,CAACC,CAAC,CAAC,CAACd,QAAQ,CAAC,CAAC;QACnD;MACF;MAEAnB,gBAAgB,CAACyB,cAAc,CAAC;MAChCnE,aAAa,CAACmE,cAAc,CAAC,CAAC,CAAC;MAC/B,OAAO,CAACF,OAAO;IACjB,CAAC,CAAC;IAEF,IAAI,QAAOnC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE+C,iBAAiB,MAAK,UAAU,IAAI,CAACxC,SAAS,EAAE;MACvEP,YAAY,CAAC+C,iBAAiB,CAAC,CAAC;IAClC;IAEA,IAAI,QAAO/C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgD,mBAAmB,MAAK,UAAU,IAAIzC,SAAS,EAAE;MACxEP,YAAY,CAACgD,mBAAmB,CAAC,CAAC;IACpC;EACF,CAAC;;EAED;AACF;AACA;EACE,MAAMC,cAAc,GAAGxG,WAAW,CAC/B4F,cAAqB,IAAK;IAAA,IAAAa,oBAAA;IACzB;IACA,IACE,EAAAA,oBAAA,GAAAT,mBAAmB,CAACZ,eAAe,CAAC,cAAAqB,oBAAA,uBAApCA,oBAAA,CAAsCJ,MAAM,OAAKT,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAES,MAAM,GACvE;MACAtC,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,MAAM;MACLA,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EACD,CAACqB,eAAe,CAClB,CAAC;;EAED;EACArF,SAAS,CAAC,MAAM;IACd,IAAI4B,UAAU,EAAE;MACd6E,cAAc,CAACtC,aAAa,CAAC;IAC/B;IACA,OAAO,MAAM,CAAC,CAAC;EACjB,CAAC,EAAE,CAACsC,cAAc,EAAE7E,UAAU,EAAEuC,aAAa,CAAC,CAAC;;EAE/C;AACF;AACA;EACE,MAAMwC,qBAAqB,GAAGA,CAAA,KAAM;IAClC,IAAI/E,UAAU,IAAI+C,KAAK,CAACC,OAAO,CAACT,aAAa,CAAC,EAAE;MAC9C,IAAIyC,cAA6B,GAAG,EAAE;MAEtCzC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE0C,OAAO,CAAEC,OAAwB,IAAK;QAAA,IAAAC,qBAAA;QACnD,IAAIC,iBAAiB,GAAG3B,eAAe,aAAfA,eAAe,gBAAA0B,qBAAA,GAAf1B,eAAe,CAAE4B,IAAI,CAC1ClC,IAAmB,IAAKA,IAAI,CAACQ,QAAQ,CAAC,KAAKuB,OAC9C,CAAC,cAAAC,qBAAA,uBAFuBA,qBAAA,CAEpBzB,QAAQ,CAAC;QACbsB,cAAc,CAACZ,IAAI,CAACgB,iBAAiB,CAAC;MACxC,CAAC,CAAC;MACF,OAAOJ,cAAc;IACvB;IAEA,IAAII,iBAAiB,GAAG3B,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE4B,IAAI,CAC1ClC,IAAmB,IAAKA,IAAI,CAACQ,QAAQ,CAAC,KAAKtB,YAC9C,CAAC;IACD,OAAO+C,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAG1B,QAAQ,CAAC;EACtC,CAAC;;EAED;AACF;AACA;EACE,MAAM4B,QAAQ,GAAIzB,KAAa,IAAK;IAClCnB,cAAc,CAACmB,KAAK,CAAC;IAErB,IAAI0B,UAAU,GAAG1B,KAAK,CAAC2B,QAAQ,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC;IAE5D,MAAMC,WAAW,GAAG,IAAIC,MAAM,CAACL,UAAU,EAAE,GAAG,CAAC;;IAE/C;IACA,MAAMM,aAAa,GAAG5C,aAAa,GAC/B6C,iBAAiB,CAACnG,OAAO,EAAkBgG,WAAW,CAAC,GACvDI,cAAc,CAACpG,OAAO,EAAegG,WAAW,CAAC;IAErD3D,aAAa,CAAC6D,aAAa,CAAC;EAC9B,CAAC;EAED,MAAME,cAAc,GAAGA,CAACC,QAAmB,EAAEL,WAAmB,KAAK;IACnE,MAAME,aAAa,GAAGG,QAAQ,CAAC7B,MAAM,CAAEhB,IAAmB,IAAK;MAC7D,IACEA,IAAI,CAACO,QAAQ,CAAC,CAAC8B,QAAQ,CAAC,CAAC,CAACS,WAAW,CAAC,CAAC,CAACC,MAAM,CAACP,WAAW,CAAC,KAAK,CAAC,CAAC,IAClExC,IAAI,CAACQ,QAAQ,CAAC,CAAC6B,QAAQ,CAAC,CAAC,CAACS,WAAW,CAAC,CAAC,CAACC,MAAM,CAACP,WAAW,CAAC,KAAK,CAAC,CAAC,EAClE;QACA,OAAO,IAAI;MACb;MACA,OAAO,KAAK;IACd,CAAC,CAAC;IACF,OAAOE,aAAa;EACtB,CAAC;EAED,MAAMC,iBAAiB,GAAGA,CACxBK,WAAyB,EACzBR,WAAmB,KAChB;IACH,MAAME,aAAa,GAAGM,WAAW,CAACC,GAAG,CAAEC,QAA0B,IAAK;MACpE,MAAMC,YAAY,GAAGD,QAAQ,CAAChD,IAAI,CAACc,MAAM,CAAEhB,IAAmB,IAAK;QACjE,IACEA,IAAI,CAACO,QAAQ,CAAC,CAAC8B,QAAQ,CAAC,CAAC,CAACS,WAAW,CAAC,CAAC,CAACC,MAAM,CAACP,WAAW,CAAC,KAAK,CAAC,CAAC,IAClExC,IAAI,CAACQ,QAAQ,CAAC,CAAC6B,QAAQ,CAAC,CAAC,CAACS,WAAW,CAAC,CAAC,CAACC,MAAM,CAACP,WAAW,CAAC,KAAK,CAAC,CAAC,EAClE;UACA,OAAO,IAAI;QACb;QACA,OAAO,KAAK;MACd,CAAC,CAAC;MAEF,OAAO;QAAE,GAAGU,QAAQ;QAAEhD,IAAI,EAAEiD;MAAa,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAOT,aAAa;EACtB,CAAC;;EAED;AACF;AACA;EACE,MAAMU,iBAAiB,GAAGA,CAAA,KAAM;IAC9BrE,OAAO,CAAC,CAACD,IAAI,CAAC;IACdS,cAAc,CAAC,EAAE,CAAC;IAClBV,aAAa,CAACrC,OAAO,CAAC;IACtBiD,YAAY,CAAC;MAAEC,SAAS,EAAE,CAAC;MAAEC,YAAY,EAAE;IAAE,CAAC,CAAC;EACjD,CAAC;EAED1E,SAAS,CAAC,MAAM;IACd,IAAIuD,SAAS,EAAE;MACbO,OAAO,CAAC,KAAK,CAAC;IAChB;IACA,OAAO,MAAM,CAAC,CAAC;EACjB,CAAC,EAAE,CAACP,SAAS,CAAC,CAAC;EAEf,IAAI6E,OAAO,GAAGxF,YAAY,IAAIjC,MAAM,CAAC0H,IAAI;;EAEzC;AACF;AACA;EACE,MAAMC,sBAAsB,GAAIC,aAAqB,IAAK;IACxD1D,aAAa,GACRtD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAqCyG,GAAG,CAC9C,CAACjD,IAAsB,EAAEL,YAAoB,KAAK;MAAA,IAAA8D,UAAA;MAChDzD,IAAI,aAAJA,IAAI,gBAAAyD,UAAA,GAAJzD,IAAI,CAAEE,IAAI,cAAAuD,UAAA,uBAAVA,UAAA,CAAYvB,IAAI,CAAC,CAACwB,QAAuB,EAAEhE,SAAiB,KAAK;QAC/D,IAAIgE,QAAQ,CAACnD,QAAQ,CAAC,KAAKiD,aAAa,EAAE;UACxC/D,YAAY,CAAC;YAAEE,YAAY;YAAED;UAAU,CAAC,CAAC;QAC3C;MACF,CAAC,CAAC;IACJ,CACF,CAAC,GACAlD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAkC0F,IAAI,CAC5C,CAAClC,IAAmB,EAAEN,SAAiB,KAAK;MAC1C,IAAIM,IAAI,CAACO,QAAQ,CAAC,KAAKiD,aAAa,EAAE;QACpC/D,YAAY,CAAC;UAAEC;QAAU,CAAC,CAAC;MAC7B;IACF,CACF,CAAC;EACP,CAAC;EAED,oBACE3E,KAAA,CAAA4I,aAAA,CAAA5I,KAAA,CAAA6I,QAAA,qBACE7I,KAAA,CAAA4I,aAAA,CAACnI,QAAQ,EAAAqI,QAAA;IACPxH,KAAK,EAAEA,KAAM;IACbD,WAAW,EAAEA,WAAY;IACzBG,UAAU,EAAEA,UAAW;IACvBD,KAAK,EAAEA,KAAM;IACbsF,qBAAqB,EAAEA,qBAAsB;IAC7C1C,YAAY,EAAEA,YAAa;IAC3BE,aAAa,EAAEA,aAAc;IAC7BgE,iBAAiB,EAAEA,iBAAkB;IACrCpG,UAAU,EAAEA,UAAW;IACvBD,YAAY,EAAEA,YAAa;IAC3BG,aAAa,EAAEA,aAAc;IAC7BC,iBAAiB,EAAEA,iBAAkB;IACrCC,sBAAsB,EAAEA,sBAAuB;IAC/CC,kBAAkB,EAAEA,kBAAmB;IACvCC,sBAAsB,EAAEA,sBAAuB;IAC/CC,uBAAuB,EAAEA,uBAAwB;IACjDC,iBAAiB,EAAEA,iBAAkB;IACrCC,yBAAyB,EAAEA,yBAA0B;IACrDZ,UAAU,EAAEA,UAAW;IACvBgB,YAAY,EAAEwF,OAAQ;IACtBvF,QAAQ,EAAEA,QAAS;IACnBb,gBAAgB,EAAEA,gBAAiB;IACnCsG,sBAAsB,EAAEA;EAAuB,GAC3C5E,IAAI,CACT,CAAC,eACF5D,KAAA,CAAA4I,aAAA,CAAChI,WAAW;IACVmD,IAAI,EAAEA,IAAK;IACXpB,oBAAoB,EAAEA,oBAAqB;IAC3CC,0BAA0B,EAAEA,0BAA2B;IACvDmG,cAAc,EAAEA,CAAA,KAAMV,iBAAiB,CAAC,CAAE;IAC1C7E,UAAU,EAAEA;EAAW,gBAEvBxD,KAAA,CAAA4I,aAAA,CAACxD,iBAAiB;IAChB4D,mBAAmB,eACjBhJ,KAAA,CAAA4I,aAAA,CAAA5I,KAAA,CAAA6I,QAAA,QACG9G,YAAY,iBACX/B,KAAA,CAAA4I,aAAA,CAACrI,KAAK,EAAAuI,QAAA;MACJnD,KAAK,EAAEpB,WAAY;MACnB0E,YAAY,EAAGC,IAAY,IAAK9B,QAAQ,CAAC8B,IAAI,CAAE;MAC/CC,KAAK,EAAE,CAAAxF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEyF,cAAc,KAAIvG,gBAAiB;MAC1DC,YAAY,EAAEwF,OAAQ;MACtBe,uBAAuB,EACrB1F,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAE0F,uBACjB;MACDhI,WAAW,EACT,CAAAsC,cAAc,aAAdA,cAAc,gBAAAvC,qBAAA,GAAduC,cAAc,CAAE2F,cAAc,cAAAlI,qBAAA,uBAA9BA,qBAAA,CAAgCC,WAAW,KAAI;IAChD,GACGsC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAE2F,cAAc,CACnC,CACF,EACAjG,mBAAmB,EACnBvB,UAAU,IAAI,CAAAyD,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEiB,MAAM,IAAG,CAAC,iBACxCxG,KAAA,CAAA4I,aAAA,CAACtI,IAAI;MAAC6I,KAAK,EAAEI,MAAM,CAACC;IAAsB,gBACxCxJ,KAAA,CAAA4I,aAAA,CAACxI,gBAAgB;MAACqJ,OAAO,EAAEA,CAAA,KAAM,CAAC;IAAE,gBAClCzJ,KAAA,CAAA4I,aAAA,CAACpI,QAAQ;MACPmF,KAAK,EAAE1B,SAAU;MACjB3C,KAAK,EACH2C,SAAS,GACL,CAAAP,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgG,eAAe,KAAI,WAAW,GAC5C,CAAAhG,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEiG,aAAa,KAAI,YACpC;MACDC,QAAQ,EAAEA,CAAA,KAAMvD,eAAe,CAAC,CAAE;MAClCvD,YAAY,EAAEwF,OAAQ;MACtBtF,YAAY,EAAEA,YAAa;MAC3BC,aAAa,EAAEA,aAAc;MAC7BC,kBAAkB,EAAEA,kBAAmB;MACvCC,uBAAuB,EAAEA,uBAAwB;MACjDC,iBAAiB,EAAEA;IAAkB,CACtC,CACe,CACd,CAER,CACH;IACDyG,mBAAmB,EAAEvG,mBAAoB;IACzCC,mBAAmB,EAAEA,mBAAoB;IACzC9B,OAAO,EAAEoC,UAAW;IACpBnC,WAAW,EAAE8D,QAAS;IACtB7D,WAAW,EAAE8D,QAAS;IACtB3D,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3BsC,aAAa,EAAEA,aAAc;IAC7BF,YAAY,EAAEA,YAAa;IAC3ByB,wBAAwB,EAAEA,wBAAyB;IACnDF,qBAAqB,EAAEA,qBAAsB;IAC7C5C,YAAY,EAAEwF,OAAQ;IACtBtF,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,aAAc;IAC7BC,kBAAkB,EAAEA,kBAAmB;IACvCC,uBAAuB,EAAEA,uBAAwB;IACjDC,iBAAiB,EAAEA,iBAAkB;IACrCqB,SAAS,EAAEA;EAAU,CACtB,CACU,CACb,CAAC;AAEP,CAAC;AAED,MAAM8E,MAAM,GAAGlJ,UAAU,CAACyJ,MAAM,CAAC;EAC/BN,qBAAqB,EAAE;IACrBO,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAEF,eAAehJ,cAAc"}
1
+ {"version":3,"names":["React","useState","useEffect","useCallback","TouchableOpacity","StyleSheet","View","Input","CheckBox","Dropdown","DropdownFlatList","DropdownSectionList","CustomModal","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","extractPropertyFromArray","DropdownSelect","_ref","_extractPropertyFromA","_searchControls$textI","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","checkboxComponent","listHeaderComponent","listFooterComponent","listComponentStyles","modalProps","hideModal","listControls","searchControls","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","searchValue","setSearchValue","listIndex","setListIndex","itemIndex","sectionIndex","Array","isArray","isSectionList","some","item","title","data","ListTypeComponent","modifiedSectionData","flat","modifiedOptions","optLabel","optValue","handleSingleSelection","value","handleMultipleSelections","prevVal","_selectedValues","selectedValues","includes","filter","push","removeDisabledItems","items","handleSelectAll","filteredOptions","i","length","selectAllCallback","unselectAllCallback","checkSelectAll","_removeDisabledItems","getSelectedItemsLabel","selectedLabels","forEach","element","_modifiedOptions$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","searchSectionList","searchFlatList","flatList","toLowerCase","search","sectionList","map","listItem","filteredData","handleToggleModal","primary","gray","setIndexOfSelectedItem","selectedLabel","_item$data","dataItem","createElement","Fragment","_extends","onRequestClose","ListHeaderComponent","onChangeText","text","style","textInputStyle","textInputContainerStyle","textInputProps","styles","optionsContainerStyle","onPress","unselectAllText","selectAllText","onChange","ListFooterComponent","emptyListMessage","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } 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 { extractPropertyFromArray } 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, // kept for backwards compatibility\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 checkboxComponent,\n listHeaderComponent,\n listFooterComponent,\n listComponentStyles,\n modalProps,\n hideModal = false,\n listControls,\n searchControls,\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 const [listIndex, setListIndex] = useState<{\n sectionIndex?: number;\n itemIndex: number;\n }>({ itemIndex: 0, sectionIndex: 0 }); // for scrollToIndex in Sectionlist and Flatlist\n\n useEffect(() => {\n setNewOptions(options);\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 // check the structure of the new options array to determine if it is a section list or a\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 const modifiedSectionData = extractPropertyFromArray(\n newOptions,\n 'data'\n )?.flat();\n\n /**\n * `options` is the original array, it never changes. (Do not use except you really need the original array) .\n * `newOptions` is a copy of options but can be mutated by `setNewOptions`, as a result, the value many change.\n * `modifiedOptions` should only be used for computations. It has the same structure for both `FlatList` and `SectionList`\n */\n const 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 onValueChange(selectedValues); // send value to parent\n return selectedValues;\n });\n };\n\n const removeDisabledItems = (items: TFlatList) => {\n return items?.filter((item: TFlatListItem) => !item.disabled);\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n\n // don't select disabled items\n const filteredOptions = removeDisabledItems(\n isSectionList\n ? extractPropertyFromArray(options, 'data').flat()\n : options\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 if (typeof listControls?.selectAllCallback === 'function' && !selectAll) {\n listControls.selectAllCallback();\n }\n\n if (typeof listControls?.unselectAllCallback === 'function' && selectAll) {\n listControls.unselectAllCallback();\n }\n };\n\n /*===========================================\n * Handle side effects\n *==========================================*/\n const checkSelectAll = useCallback(\n (selectedValues: any[]) => {\n //if the list contains disabled values, those values will not be selected\n if (\n removeDisabledItems(modifiedOptions)?.length === selectedValues?.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n },\n [modifiedOptions]\n );\n\n // anytime the selected items change, check if it is time to set `selectAll` to true\n useEffect(() => {\n if (isMultiple) {\n checkSelectAll(selectedItems);\n }\n return () => {};\n }, [checkSelectAll, isMultiple, selectedItems]);\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 the options array will be mutated while searching, we have to search with the original array\n const searchResults = isSectionList\n ? searchSectionList(options as TSectionList, regexFilter)\n : searchFlatList(options 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 true;\n }\n return false;\n });\n return searchResults;\n };\n\n const searchSectionList = (\n sectionList: TSectionList,\n regexFilter: RegExp\n ) => {\n const searchResults = sectionList.map((listItem: TSectionListItem) => {\n const filteredData = 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 true;\n }\n return false;\n });\n\n return { ...listItem, data: filteredData };\n });\n\n return searchResults;\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n setListIndex({ itemIndex: 0, sectionIndex: 0 });\n };\n\n useEffect(() => {\n if (hideModal) {\n setOpen(false);\n }\n return () => {};\n }, [hideModal]);\n\n let primary = primaryColor || colors.gray;\n\n /*===========================================\n * setIndexOfSelectedItem - For ScrollToIndex\n *==========================================*/\n const setIndexOfSelectedItem = (selectedLabel: string) => {\n isSectionList\n ? (options as TSectionListItem[] | undefined)?.map(\n (item: TSectionListItem, sectionIndex: number) => {\n item?.data?.find((dataItem: TFlatListItem, itemIndex: number) => {\n if (dataItem[optLabel] === selectedLabel) {\n setListIndex({ sectionIndex, itemIndex });\n }\n });\n }\n )\n : (options as TFlatListItem[] | undefined)?.find(\n (item: TFlatListItem, itemIndex: number) => {\n if (item[optLabel] === selectedLabel) {\n setListIndex({ itemIndex });\n }\n }\n );\n };\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 setIndexOfSelectedItem={setIndexOfSelectedItem}\n {...rest}\n />\n <CustomModal\n open={open}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainerStyle={modalOptionsContainerStyle}\n onRequestClose={() => handleToggleModal()}\n modalProps={modalProps}\n >\n <ListTypeComponent\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchControls?.textInputStyle || searchInputStyle}\n primaryColor={primary}\n textInputContainerStyle={\n searchControls?.textInputContainerStyle\n }\n placeholder={\n searchControls?.textInputProps?.placeholder || 'Search'\n }\n {...searchControls?.textInputProps}\n />\n )}\n {listHeaderComponent}\n {isMultiple && modifiedOptions?.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={\n selectAll\n ? listControls?.unselectAllText || 'Clear all'\n : listControls?.selectAllText || 'Select all'\n }\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n checkboxComponentStyles={checkboxComponentStyles}\n checkboxComponent={checkboxComponent}\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 checkboxComponent={checkboxComponent}\n listIndex={listIndex}\n emptyListMessage={listControls?.emptyListMessage}\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,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type {\n ViewStyle,\n ColorValue,\n TextStyle,\n ModalProps,\n TextInputProps,\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 checkboxComponent?: React.ReactNode;\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 listControls?: {\n selectAllText?: string;\n unselectAllText?: string;\n selectAllCallback?: () => void;\n unselectAllCallback?: () => void;\n };\n searchControls?: {\n textInputStyle?: ViewStyle | TextStyle;\n textInputContainerStyle?: ViewStyle;\n textInputProps?: TextInputProps;\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":""}
1
+ {"version":3,"names":[],"sources":["index.types.ts"],"sourcesContent":["import type {\n ViewStyle,\n ColorValue,\n TextStyle,\n ModalProps,\n TextInputProps,\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 checkboxComponent?: React.ReactNode;\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 listControls?: {\n selectAllText?: string;\n unselectAllText?: string;\n selectAllCallback?: () => void;\n unselectAllCallback?: () => void;\n emptyListMessage?: string;\n };\n searchControls?: {\n textInputStyle?: ViewStyle | TextStyle;\n textInputContainerStyle?: ViewStyle;\n textInputProps?: TextInputProps;\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":""}
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
- declare const DropdownFlatList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, listComponentStyles, listIndex, ...rest }: any) => JSX.Element;
2
+ declare const DropdownFlatList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, listComponentStyles, listIndex, emptyListMessage, ...rest }: any) => JSX.Element;
3
3
  export default DropdownFlatList;
@@ -1,3 +1,3 @@
1
1
  /// <reference types="react" />
2
- declare const DropdownSectionList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, listComponentStyles, listIndex, ...rest }: any) => JSX.Element;
2
+ declare const DropdownSectionList: ({ options, optionLabel, optionValue, isMultiple, isSearchable, selectedItems, selectedItem, handleMultipleSelections, handleSingleSelection, primaryColor, checkboxSize, checkboxStyle, checkboxLabelStyle, checkboxComponentStyles, checkboxComponent, listComponentStyles, listIndex, emptyListMessage, ...rest }: any) => JSX.Element;
3
3
  export default DropdownSectionList;
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { TextStyle, ViewStyle } from 'react-native';
3
- export declare const ListEmptyComponent: ({ listEmptyComponentStyle }: any) => JSX.Element;
3
+ export declare const ListEmptyComponent: ({ listEmptyComponentStyle, emptyListMessage, }: any) => JSX.Element;
4
4
  export declare const ItemSeparatorComponent: ({ itemSeparatorStyle }: any) => JSX.Element;
5
5
  export declare const ListItemContainer: ({ children, listItemContainerStyle, }: {
6
6
  children: ReactNode;
@@ -51,6 +51,7 @@ export type DropdownProps = {
51
51
  unselectAllText?: string;
52
52
  selectAllCallback?: () => void;
53
53
  unselectAllCallback?: () => void;
54
+ emptyListMessage?: string;
54
55
  };
55
56
  searchControls?: {
56
57
  textInputStyle?: ViewStyle | TextStyle;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-input-select",
3
- "version": "1.1.10",
3
+ "version": "1.2.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",
@@ -23,6 +23,7 @@ const DropdownFlatList = ({
23
23
  checkboxComponent,
24
24
  listComponentStyles,
25
25
  listIndex,
26
+ emptyListMessage,
26
27
  ...rest
27
28
  }: any) => {
28
29
  const flatlistRef = useRef<FlatList<TFlatList>>(null);
@@ -48,6 +49,7 @@ const DropdownFlatList = ({
48
49
  ListEmptyComponent={
49
50
  <ListEmptyComponent
50
51
  listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}
52
+ emptyListMessage={emptyListMessage}
51
53
  />
52
54
  }
53
55
  contentContainerStyle={[
@@ -28,6 +28,7 @@ const DropdownSectionList = ({
28
28
  checkboxComponent,
29
29
  listComponentStyles,
30
30
  listIndex,
31
+ emptyListMessage,
31
32
  ...rest
32
33
  }: any) => {
33
34
  const [expandedSections, setExpandedSections] = useState(new Set());
@@ -84,6 +85,7 @@ const DropdownSectionList = ({
84
85
  ListEmptyComponent={
85
86
  <ListEmptyComponent
86
87
  listEmptyComponentStyle={listComponentStyles?.listEmptyComponentStyle}
88
+ emptyListMessage={emptyListMessage}
87
89
  />
88
90
  }
89
91
  contentContainerStyle={[
@@ -10,10 +10,15 @@ import {
10
10
  } from 'react-native';
11
11
  import { colors } from '../../styles/colors';
12
12
 
13
- export const ListEmptyComponent = ({ listEmptyComponentStyle }: any) => {
13
+ export const ListEmptyComponent = ({
14
+ listEmptyComponentStyle,
15
+ emptyListMessage,
16
+ }: any) => {
14
17
  return (
15
18
  <View style={styles.listEmptyComponentStyle}>
16
- <Text style={listEmptyComponentStyle}>No options available</Text>
19
+ <Text style={listEmptyComponentStyle}>
20
+ {emptyListMessage || 'No options available'}
21
+ </Text>
17
22
  </View>
18
23
  );
19
24
  };
package/src/index.tsx CHANGED
@@ -409,6 +409,7 @@ export const DropdownSelect: React.FC<DropdownProps> = ({
409
409
  checkboxComponentStyles={checkboxComponentStyles}
410
410
  checkboxComponent={checkboxComponent}
411
411
  listIndex={listIndex}
412
+ emptyListMessage={listControls?.emptyListMessage}
412
413
  />
413
414
  </CustomModal>
414
415
  </>
@@ -64,6 +64,7 @@ export type DropdownProps = {
64
64
  unselectAllText?: string;
65
65
  selectAllCallback?: () => void;
66
66
  unselectAllCallback?: () => void;
67
+ emptyListMessage?: string;
67
68
  };
68
69
  searchControls?: {
69
70
  textInputStyle?: ViewStyle | TextStyle;