react-native-input-select 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Input/index.js +6 -4
- package/lib/commonjs/components/Input/index.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/Input/index.js +7 -5
- package/lib/module/components/Input/index.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Input/index.tsx +8 -6
- package/src/index.tsx +3 -1
|
@@ -24,12 +24,14 @@ const Input = _ref => {
|
|
|
24
24
|
style: styles.container
|
|
25
25
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, _extends({
|
|
26
26
|
placeholder: placeholder,
|
|
27
|
-
style: [_input.inputStyles.input,
|
|
27
|
+
style: [_input.inputStyles.input, _reactNative.Platform.select({
|
|
28
|
+
web: {
|
|
29
|
+
outlineColor: primaryColor
|
|
30
|
+
}
|
|
31
|
+
}), isFocused && {
|
|
28
32
|
borderColor: primaryColor
|
|
29
33
|
}, style],
|
|
30
|
-
onFocus: () =>
|
|
31
|
-
setFocus(true);
|
|
32
|
-
},
|
|
34
|
+
onFocus: () => setFocus(true),
|
|
33
35
|
onBlur: () => setFocus(false),
|
|
34
36
|
value: value,
|
|
35
37
|
onChangeText: onChangeText
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_input","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","Input","_ref","placeholder","value","onChangeText","style","primaryColor","rest","isFocused","setFocus","useState","createElement","View","styles","container","TextInput","inputStyles","input","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_input","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","Input","_ref","placeholder","value","onChangeText","style","primaryColor","rest","isFocused","setFocus","useState","createElement","View","styles","container","TextInput","inputStyles","input","Platform","select","web","outlineColor","borderColor","onFocus","onBlur","exports","StyleSheet","create","margin"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TextInput, StyleSheet, View, Platform } from 'react-native';\nimport { inputStyles } from '../../styles/input';\n\nexport const Input = ({\n placeholder,\n value,\n onChangeText,\n style,\n primaryColor,\n ...rest\n}: any) => {\n const [isFocused, setFocus] = useState(false);\n\n return (\n <View style={styles.container}>\n <TextInput\n placeholder={placeholder}\n style={[\n inputStyles.input,\n Platform.select({\n web: {\n outlineColor: primaryColor,\n },\n }),\n isFocused && { borderColor: primaryColor },\n style,\n ]}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n value={value}\n onChangeText={onChangeText}\n {...rest}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { margin: 23 },\n});\n"],"mappings":"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"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -79,7 +79,7 @@ const DropdownSelect = _ref => {
|
|
|
79
79
|
setSelectedItems(selectedValues);
|
|
80
80
|
onValueChange(selectedValues); //send value to parent
|
|
81
81
|
|
|
82
|
-
if (options.length === selectedValues.length) {
|
|
82
|
+
if (options.filter(item => !item.disabled).length === selectedValues.length) {
|
|
83
83
|
setSelectAll(true);
|
|
84
84
|
} else {
|
|
85
85
|
setSelectAll(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Dropdown","_interopRequireDefault","_DropdownList","_CustomModal","_Input","_CheckBox","_colors","_constants","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","placeholderStyle","rest","newOptions","setNewOptions","useState","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","handleSelectAll","prevVal","filteredOptions","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","DEFAULT_OPTION_VALUE","DEFAULT_OPTION_LABEL","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","colors","gray","createElement","Fragment","onRequestClose","ListHeaderComponent","Input","onChangeText","text","style","View","styles","optionsContainerStyle","TouchableOpacity","onPress","onChange","exports","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","_default"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n placeholderStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n } else {\n setSelectedItem(value);\n onValueChange(value); //send value to parent\n setOpen(false); //close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (options.length === selectedValues.length) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownStyle={dropdownStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n <DropdownList\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,aAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,YAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAJ,sBAAA,CAAAH,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AAAyE,SAAAG,uBAAAO,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,SAAAf,wBAAAW,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;AAGlE,MAAMI,cAAc,GAAGC,IAAA,IA8BT;EAAA,IA9BU;IAC7BC,WAAW;IACXC,KAAK;IACLC,KAAK;IACLC,UAAU;IACVC,OAAO;IACPC,WAAW;IACXC,WAAW;IACXC,aAAa;IACbC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,UAAU;IACVC,aAAa;IACbC,sBAAsB;IACtBC,kBAAkB;IAClBC,sBAAsB;IACtBC,uBAAuB;IACvBC,iBAAiB;IACjBC,yBAAyB;IACzBC,oBAAoB;IACpBC,qBAAqB;IACrBC,gBAAgB;IAChBC,YAAY;IACZC,QAAQ;IACRC,YAAY;IACZC,aAAa;IACbC,kBAAkB;IAClBC,gBAAgB;IAChB,GAAGC;EACU,CAAC,GAAA7B,IAAA;EACd,MAAM,CAAC8B,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC3B,OAAO,GAAGA,OAAO,GAAG,EAAE,CAAC;EACpE,MAAM,CAAC4B,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EACvC,MAAM,CAACG,SAAS,EAAEC,YAAY,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EACjD,MAAM,CAACK,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAN,eAAQ,EAACvB,aAAa,CAAC,CAAC,CAAC;EACjE,MAAM,CAAC8B,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAR,eAAQ,EAChDS,KAAK,CAACC,OAAO,CAACjC,aAAa,CAAC,GACxBA,aAAa,GACbA,aAAa,KAAK,EAAE,IAAIA,aAAa,KAAKkC,SAAS,GACnD,EAAE,GACF,CAAClC,aAAa,CAAC,CACpB,CAAC,CAAC;EACH,MAAM,CAACmC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAb,eAAQ,EAAC,EAAE,CAAC;;EAElD;AACF;AACA;EACE,MAAMc,qBAAqB,GAAIC,KAAU,IAAK;IAC5C,IAAIV,YAAY,KAAKU,KAAK,EAAE;MAC1BT,eAAe,CAAC,IAAI,CAAC;IACvB,CAAC,MAAM;MACLA,eAAe,CAACS,KAAK,CAAC;MACtBvC,aAAa,CAACuC,KAAK,CAAC,CAAC,CAAC;MACtBb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClB;EACF,CAAC;;EAED,MAAMc,wBAAwB,GAAID,KAAU,IAAK;IAC/C,IAAIE,cAAc,GAAG,CAAC,GAAGV,aAAa,CAAC;IAEvC,IAAIU,cAAc,CAACC,QAAQ,CAACH,KAAK,CAAC,EAAE;MAClCE,cAAc,GAAGA,cAAc,CAACE,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKL,KAAK,CAAC;IAClE,CAAC,MAAM;MACLE,cAAc,CAACI,IAAI,CAACN,KAAK,CAAC;IAC5B;IACAP,gBAAgB,CAACS,cAAc,CAAC;IAChCzC,aAAa,CAACyC,cAAc,CAAC,CAAC,CAAC;;IAE/B,IAAI5C,OAAO,CAACT,MAAM,KAAKqD,cAAc,CAACrD,MAAM,EAAE;MAC5CwC,YAAY,CAAC,IAAI,CAAC;IACpB,CAAC,MAAM;MACLA,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC;EAED,MAAMkB,eAAe,GAAGA,CAAA,KAAM;IAC5BlB,YAAY,CAAEmB,OAAO,IAAK;MACxB,MAAMN,cAAc,GAAG,EAAE;MACzB,MAAMO,eAAe,GAAG1B,UAAU,CAACqB,MAAM,CAAEC,IAAI,IAAK,CAACA,IAAI,CAAC5B,QAAQ,CAAC,CAAC,CAAC;MACrE,IAAI,CAAC+B,OAAO,EAAE;QACZ,KAAK,IAAI7D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8D,eAAe,CAAC5D,MAAM,EAAEF,CAAC,EAAE,EAAE;UAC/CuD,cAAc,CAACI,IAAI,CAACG,eAAe,CAAC9D,CAAC,CAAC,CAACa,WAAW,CAAC,CAAC;QACtD;MACF;MAEAiC,gBAAgB,CAACS,cAAc,CAAC;MAChCzC,aAAa,CAACyC,cAAc,CAAC,CAAC,CAAC;MAC/B,OAAO,CAACM,OAAO;IACjB,CAAC,CAAC;EACJ,CAAC;;EAED;AACF;AACA;EACE,MAAME,qBAAqB,GAAGA,CAAA,KAAM;IAClC,IAAI/C,UAAU,EAAE;MACd,IAAIgD,cAA6B,GAAG,EAAE;MACtCnB,aAAa,IACXA,aAAa,CAACoB,OAAO,CAAEC,OAAO,IAAK;QAAA,IAAAC,aAAA;QACjC,IAAIC,iBAAiB,GACnBzD,OAAO,MAAAwD,aAAA,GACPxD,OAAO,CAAC0D,IAAI,CACTX,IAAS,IACRA,IAAI,CAAC7C,WAAW,IAAIyD,+BAAoB,CAAC,KAAKJ,OAAO,CACxD,cAAAC,aAAA,uBAHDA,aAAA,CAGIvD,WAAW,CAAC;QAClBoD,cAAc,CAACL,IAAI,CAACS,iBAAiB,CAAC;MACxC,CAAC,CAAC;MACJ,OAAOJ,cAAc;IACvB;IAEA,IAAII,iBAAiB,GACnBzD,OAAO,IACPA,OAAO,CAAC0D,IAAI,CACTX,IAAS,IACRA,IAAI,CAAC7C,WAAW,IAAIyD,+BAAoB,CAAC,KAAK3B,YAAY,CAC7D;IACH,OAAOyB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAGxD,WAAW,IAAI2D,+BAAoB,CAAC;EACjE,CAAC;;EAED;AACF;AACA;EACE,MAAMC,QAAQ,GAAInB,KAAa,IAAK;IAClCF,cAAc,CAACE,KAAK,CAAC;IAErB,IAAIoB,UAAU,GAAGpB,KAAK,CAACqB,QAAQ,EAAE,CAACC,iBAAiB,EAAE,CAACC,IAAI,EAAE;IAE5D,MAAMC,WAAW,GAAG,IAAIC,MAAM,CAACL,UAAU,EAAE,GAAG,CAAC;IAE/C,MAAMM,aAAa,GAAGpE,OAAO,CAAC8C,MAAM,CAAEC,IAAS,IAAK;MAClD,IACEA,IAAI,CAAC9C,WAAW,IAAI2D,+BAAoB,CAAC,CACtCG,QAAQ,EAAE,CACVM,WAAW,EAAE,CACbC,MAAM,CAACJ,WAAW,CAAC,KAAK,CAAC,CAAC,IAC7BnB,IAAI,CAAC7C,WAAW,IAAIyD,+BAAoB,CAAC,CACtCI,QAAQ,CAACG,WAAW,CAAC,CACrBG,WAAW,EAAE,CACbC,MAAM,CAACJ,WAAW,CAAC,KAAK,CAAC,CAAC,EAC7B;QACA,OAAOnB,IAAI;MACb;IACF,CAAC,CAAC;IAEFrB,aAAa,CAAC0C,aAAa,CAAC;EAC9B,CAAC;;EAED;AACF;AACA;EACE,MAAMG,iBAAiB,GAAGA,CAAA,KAAM;IAC9B1C,OAAO,CAAC,CAACD,IAAI,CAAC;IACdY,cAAc,CAAC,EAAE,CAAC;IAClBd,aAAa,CAAC1B,OAAO,CAAC;EACxB,CAAC;EAED,IAAIwE,OAAO,GAAGtD,YAAY,IAAIuD,cAAM,CAACC,IAAI;EACzC,oBACE3H,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAAA5H,MAAA,CAAAc,OAAA,CAAA+G,QAAA,qBACE7H,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAACxH,SAAA,CAAAU,OAAQ,EAAAoB,QAAA;IACPY,KAAK,EAAEA,KAAM;IACbD,WAAW,EAAEA,WAAY;IACzBG,UAAU,EAAEA,UAAW;IACvBD,KAAK,EAAEA,KAAM;IACbsD,qBAAqB,EAAEA,qBAAsB;IAC7CpB,YAAY,EAAEA,YAAa;IAC3BE,aAAa,EAAEA,aAAc;IAC7BqC,iBAAiB,EAAEA,iBAAkB;IACrChE,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA,aAAc;IAC7BC,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;IACrDT,UAAU,EAAEA,UAAW;IACvBa,YAAY,EAAEsD,OAAQ;IACtBrD,QAAQ,EAAEA,QAAS;IACnBI,gBAAgB,EAAEA;EAAiB,GAC/BC,IAAI,EACR,eACFzE,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAACrH,YAAA,CAAAO,OAAW;IACV+D,IAAI,EAAEA,IAAK;IACX2C,iBAAiB,EAAEA,iBAAkB;IACrCxD,oBAAoB,EAAEA,oBAAqB;IAC3CC,qBAAqB,EAAEA,qBAAsB;IAC7C6D,cAAc,EAAEA,CAAA,KAAM,CAAC;EAAE,gBAEzB9H,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAACtH,aAAA,CAAAQ,OAAY;IACXiH,mBAAmB,eACjB/H,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAAA5H,MAAA,CAAAc,OAAA,CAAA+G,QAAA,QACGtE,YAAY,iBACXvD,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAACpH,MAAA,CAAAwH,KAAK;MACJrC,KAAK,EAAEH,WAAY;MACnByC,YAAY,EAAGC,IAAY,IAAKpB,QAAQ,CAACoB,IAAI,CAAE;MAC/CC,KAAK,EAAEjE,gBAAiB;MACxBC,YAAY,EAAEsD;IAAQ,EAEzB,EACAnE,UAAU,IAAIoB,UAAU,CAAClC,MAAM,GAAG,CAAC,iBAClCxC,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAACzH,YAAA,CAAAiI,IAAI;MAACD,KAAK,EAAEE,MAAM,CAACC;IAAsB,gBACxCtI,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAACzH,YAAA,CAAAoI,gBAAgB;MAACC,OAAO,EAAEA,CAAA,KAAM,CAAC;IAAE,gBAClCxI,MAAA,CAAAc,OAAA,CAAA8G,aAAA,CAACnH,SAAA,CAAAK,OAAQ;MACP6E,KAAK,EAAEZ,SAAU;MACjBjC,KAAK,EAAEiC,SAAS,GAAG,WAAW,GAAG,YAAa;MAC9C0D,QAAQ,EAAEA,CAAA,KAAMvC,eAAe,EAAG;MAClC/B,YAAY,EAAEsD,OAAQ;MACtBpD,YAAY,EAAEA,YAAa;MAC3BC,aAAa,EAAEA,aAAc;MAC7BC,kBAAkB,EAAEA;IAAmB,EACvC,CACe,CAEtB,CAEJ;IACDtB,OAAO,EAAEyB,UAAW;IACpBxB,WAAW,EAAEA,WAAY;IACzBC,WAAW,EAAEA,WAAY;IACzBG,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3B4B,aAAa,EAAEA,aAAc;IAC7BF,YAAY,EAAEA,YAAa;IAC3BW,wBAAwB,EAAEA,wBAAyB;IACnDF,qBAAqB,EAAEA,qBAAsB;IAC7CvB,YAAY,EAAEsD,OAAQ;IACtBpD,YAAY,EAAEA,YAAa;IAC3BC,aAAa,EAAEA,aAAc;IAC7BC,kBAAkB,EAAEA;EAAmB,EACvC,CACU,CACb;AAEP,CAAC;AAACmE,OAAA,CAAA/F,cAAA,GAAAA,cAAA;AAEF,MAAM0F,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAC/BN,qBAAqB,EAAE;IACrBO,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYrG,cAAc;AAAA+F,OAAA,CAAA5H,OAAA,GAAAkI,QAAA"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Dropdown","_interopRequireDefault","_DropdownList","_CustomModal","_Input","_CheckBox","_colors","_constants","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","placeholderStyle","rest","newOptions","setNewOptions","useState","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","handleSelectAll","prevVal","filteredOptions","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","DEFAULT_OPTION_VALUE","DEFAULT_OPTION_LABEL","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","colors","gray","createElement","Fragment","onRequestClose","ListHeaderComponent","Input","onChangeText","text","style","View","styles","optionsContainerStyle","TouchableOpacity","onPress","onChange","exports","StyleSheet","create","paddingHorizontal","paddingVertical","flexDirection","_default"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n placeholderStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n } else {\n setSelectedItem(value);\n onValueChange(value); //send value to parent\n setOpen(false); //close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (\n options.filter((item) => !item.disabled).length === selectedValues.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownStyle={dropdownStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n <DropdownList\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
import React, { useState } from 'react';
|
|
3
|
-
import { TextInput, StyleSheet, View } from 'react-native';
|
|
3
|
+
import { TextInput, StyleSheet, View, Platform } from 'react-native';
|
|
4
4
|
import { inputStyles } from '../../styles/input';
|
|
5
5
|
export const Input = _ref => {
|
|
6
6
|
let {
|
|
@@ -16,12 +16,14 @@ export const Input = _ref => {
|
|
|
16
16
|
style: styles.container
|
|
17
17
|
}, /*#__PURE__*/React.createElement(TextInput, _extends({
|
|
18
18
|
placeholder: placeholder,
|
|
19
|
-
style: [inputStyles.input,
|
|
19
|
+
style: [inputStyles.input, Platform.select({
|
|
20
|
+
web: {
|
|
21
|
+
outlineColor: primaryColor
|
|
22
|
+
}
|
|
23
|
+
}), isFocused && {
|
|
20
24
|
borderColor: primaryColor
|
|
21
25
|
}, style],
|
|
22
|
-
onFocus: () =>
|
|
23
|
-
setFocus(true);
|
|
24
|
-
},
|
|
26
|
+
onFocus: () => setFocus(true),
|
|
25
27
|
onBlur: () => setFocus(false),
|
|
26
28
|
value: value,
|
|
27
29
|
onChangeText: onChangeText
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","TextInput","StyleSheet","View","inputStyles","Input","_ref","placeholder","value","onChangeText","style","primaryColor","rest","isFocused","setFocus","createElement","styles","container","_extends","input","
|
|
1
|
+
{"version":3,"names":["React","useState","TextInput","StyleSheet","View","Platform","inputStyles","Input","_ref","placeholder","value","onChangeText","style","primaryColor","rest","isFocused","setFocus","createElement","styles","container","_extends","input","select","web","outlineColor","borderColor","onFocus","onBlur","create","margin"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TextInput, StyleSheet, View, Platform } from 'react-native';\nimport { inputStyles } from '../../styles/input';\n\nexport const Input = ({\n placeholder,\n value,\n onChangeText,\n style,\n primaryColor,\n ...rest\n}: any) => {\n const [isFocused, setFocus] = useState(false);\n\n return (\n <View style={styles.container}>\n <TextInput\n placeholder={placeholder}\n style={[\n inputStyles.input,\n Platform.select({\n web: {\n outlineColor: primaryColor,\n },\n }),\n isFocused && { borderColor: primaryColor },\n style,\n ]}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n value={value}\n onChangeText={onChangeText}\n {...rest}\n />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { margin: 23 },\n});\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,EAAEC,QAAQ,QAAQ,cAAc;AACpE,SAASC,WAAW,QAAQ,oBAAoB;AAEhD,OAAO,MAAMC,KAAK,GAAGC,IAAA,IAOV;EAAA,IAPW;IACpBC,WAAW;IACXC,KAAK;IACLC,YAAY;IACZC,KAAK;IACLC,YAAY;IACZ,GAAGC;EACA,CAAC,GAAAN,IAAA;EACJ,MAAM,CAACO,SAAS,EAAEC,QAAQ,CAAC,GAAGf,QAAQ,CAAC,KAAK,CAAC;EAE7C,oBACED,KAAA,CAAAiB,aAAA,CAACb,IAAI;IAACQ,KAAK,EAAEM,MAAM,CAACC;EAAU,gBAC5BnB,KAAA,CAAAiB,aAAA,CAACf,SAAS,EAAAkB,QAAA;IACRX,WAAW,EAAEA,WAAY;IACzBG,KAAK,EAAE,CACLN,WAAW,CAACe,KAAK,EACjBhB,QAAQ,CAACiB,MAAM,CAAC;MACdC,GAAG,EAAE;QACHC,YAAY,EAAEX;MAChB;IACF,CAAC,CAAC,EACFE,SAAS,IAAI;MAAEU,WAAW,EAAEZ;IAAa,CAAC,EAC1CD,KAAK,CACL;IACFc,OAAO,EAAEA,CAAA,KAAMV,QAAQ,CAAC,IAAI,CAAE;IAC9BW,MAAM,EAAEA,CAAA,KAAMX,QAAQ,CAAC,KAAK,CAAE;IAC9BN,KAAK,EAAEA,KAAM;IACbC,YAAY,EAAEA;EAAa,GACvBG,IAAI,EACR,CACG;AAEX,CAAC;AAED,MAAMI,MAAM,GAAGf,UAAU,CAACyB,MAAM,CAAC;EAC/BT,SAAS,EAAE;IAAEU,MAAM,EAAE;EAAG;AAC1B,CAAC,CAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -70,7 +70,7 @@ export const DropdownSelect = _ref => {
|
|
|
70
70
|
setSelectedItems(selectedValues);
|
|
71
71
|
onValueChange(selectedValues); //send value to parent
|
|
72
72
|
|
|
73
|
-
if (options.length === selectedValues.length) {
|
|
73
|
+
if (options.filter(item => !item.disabled).length === selectedValues.length) {
|
|
74
74
|
setSelectAll(true);
|
|
75
75
|
} else {
|
|
76
76
|
setSelectAll(false);
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","TouchableOpacity","StyleSheet","View","Dropdown","DropdownList","CustomModal","Input","CheckBox","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","placeholderStyle","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","length","handleSelectAll","prevVal","filteredOptions","i","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","gray","createElement","Fragment","_extends","onRequestClose","ListHeaderComponent","onChangeText","text","style","styles","optionsContainerStyle","onPress","onChange","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n placeholderStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n } else {\n setSelectedItem(value);\n onValueChange(value); //send value to parent\n setOpen(false); //close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (options.length === selectedValues.length) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownStyle={dropdownStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n <DropdownList\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useState","TouchableOpacity","StyleSheet","View","Dropdown","DropdownList","CustomModal","Input","CheckBox","colors","DEFAULT_OPTION_LABEL","DEFAULT_OPTION_VALUE","DropdownSelect","_ref","placeholder","label","error","helperText","options","optionLabel","optionValue","onValueChange","selectedValue","isMultiple","isSearchable","labelStyle","dropdownStyle","dropdownContainerStyle","dropdownErrorStyle","dropdownErrorTextStyle","dropdownHelperTextStyle","selectedItemStyle","multipleSelectedItemStyle","modalBackgroundStyle","modalOptionsContainer","searchInputStyle","primaryColor","disabled","checkboxSize","checkboxStyle","checkboxLabelStyle","placeholderStyle","rest","newOptions","setNewOptions","open","setOpen","selectAll","setSelectAll","selectedItem","setSelectedItem","selectedItems","setSelectedItems","Array","isArray","undefined","searchValue","setSearchValue","handleSingleSelection","value","handleMultipleSelections","selectedValues","includes","filter","item","push","length","handleSelectAll","prevVal","filteredOptions","i","getSelectedItemsLabel","selectedLabels","forEach","element","_options$find","selectedItemLabel","find","onSearch","searchText","toString","toLocaleLowerCase","trim","regexFilter","RegExp","searchResults","toLowerCase","search","handleToggleModal","primary","gray","createElement","Fragment","_extends","onRequestClose","ListHeaderComponent","onChangeText","text","style","styles","optionsContainerStyle","onPress","onChange","create","paddingHorizontal","paddingVertical","flexDirection"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, StyleSheet, View } from 'react-native';\nimport Dropdown from './components/Dropdown/Dropdown';\nimport DropdownList from './components/Dropdown/DropdownList';\nimport CustomModal from './components/CustomModal';\nimport { Input } from './components/Input';\nimport CheckBox from './components/CheckBox';\nimport { colors } from './styles/colors';\nimport { DEFAULT_OPTION_LABEL, DEFAULT_OPTION_VALUE } from './constants';\nimport type { DropdownProps } from './types/index.types';\n\nexport const DropdownSelect = ({\n placeholder,\n label,\n error,\n helperText,\n options,\n optionLabel,\n optionValue,\n onValueChange,\n selectedValue,\n isMultiple,\n isSearchable,\n labelStyle,\n dropdownStyle,\n dropdownContainerStyle,\n dropdownErrorStyle,\n dropdownErrorTextStyle,\n dropdownHelperTextStyle,\n selectedItemStyle,\n multipleSelectedItemStyle,\n modalBackgroundStyle,\n modalOptionsContainer,\n searchInputStyle,\n primaryColor,\n disabled,\n checkboxSize,\n checkboxStyle,\n checkboxLabelStyle,\n placeholderStyle,\n ...rest\n}: DropdownProps) => {\n const [newOptions, setNewOptions] = useState(options ? options : []);\n const [open, setOpen] = useState(false);\n const [selectAll, setSelectAll] = useState(false);\n const [selectedItem, setSelectedItem] = useState(selectedValue); //for single selection\n const [selectedItems, setSelectedItems] = useState(\n Array.isArray(selectedValue)\n ? selectedValue\n : selectedValue === '' || selectedValue === undefined\n ? []\n : [selectedValue]\n ); //for multiple selection\n const [searchValue, setSearchValue] = useState('');\n\n /*===========================================\n * Selection handlers\n *==========================================*/\n const handleSingleSelection = (value: any) => {\n if (selectedItem === value) {\n setSelectedItem(null);\n } else {\n setSelectedItem(value);\n onValueChange(value); //send value to parent\n setOpen(false); //close modal upon selection\n }\n };\n\n const handleMultipleSelections = (value: any) => {\n let selectedValues = [...selectedItems];\n\n if (selectedValues.includes(value)) {\n selectedValues = selectedValues.filter((item) => item !== value);\n } else {\n selectedValues.push(value);\n }\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n\n if (\n options.filter((item) => !item.disabled).length === selectedValues.length\n ) {\n setSelectAll(true);\n } else {\n setSelectAll(false);\n }\n };\n\n const handleSelectAll = () => {\n setSelectAll((prevVal) => {\n const selectedValues = [];\n const filteredOptions = newOptions.filter((item) => !item.disabled); //don't select disabled items\n if (!prevVal) {\n for (let i = 0; i < filteredOptions.length; i++) {\n selectedValues.push(filteredOptions[i][optionValue]);\n }\n }\n\n setSelectedItems(selectedValues);\n onValueChange(selectedValues); //send value to parent\n return !prevVal;\n });\n };\n\n /*===========================================\n * Get label handler\n *==========================================*/\n const getSelectedItemsLabel = () => {\n if (isMultiple) {\n let selectedLabels: Array<string> = [];\n selectedItems &&\n selectedItems.forEach((element) => {\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === element\n )?.[optionLabel];\n selectedLabels.push(selectedItemLabel);\n });\n return selectedLabels;\n }\n\n let selectedItemLabel =\n options &&\n options.find(\n (item: any) =>\n item[optionValue ?? DEFAULT_OPTION_VALUE] === selectedItem\n );\n return selectedItemLabel?.[optionLabel ?? DEFAULT_OPTION_LABEL];\n };\n\n /*===========================================\n * Search\n *==========================================*/\n const onSearch = (value: string) => {\n setSearchValue(value);\n\n let searchText = value.toString().toLocaleLowerCase().trim();\n\n const regexFilter = new RegExp(searchText, 'i');\n\n const searchResults = options.filter((item: any) => {\n if (\n item[optionLabel ?? DEFAULT_OPTION_LABEL]\n .toString()\n .toLowerCase()\n .search(regexFilter) !== -1 ||\n item[optionValue ?? DEFAULT_OPTION_VALUE]\n .toString(regexFilter)\n .toLowerCase()\n .search(regexFilter) !== -1\n ) {\n return item;\n }\n });\n\n setNewOptions(searchResults);\n };\n\n /*===========================================\n * Modal\n *==========================================*/\n const handleToggleModal = () => {\n setOpen(!open);\n setSearchValue('');\n setNewOptions(options);\n };\n\n let primary = primaryColor || colors.gray;\n return (\n <>\n <Dropdown\n label={label}\n placeholder={placeholder}\n helperText={helperText}\n error={error}\n getSelectedItemsLabel={getSelectedItemsLabel}\n selectedItem={selectedItem}\n selectedItems={selectedItems}\n handleToggleModal={handleToggleModal}\n labelStyle={labelStyle}\n dropdownStyle={dropdownStyle}\n dropdownContainerStyle={dropdownContainerStyle}\n dropdownErrorStyle={dropdownErrorStyle}\n dropdownErrorTextStyle={dropdownErrorTextStyle}\n dropdownHelperTextStyle={dropdownHelperTextStyle}\n selectedItemStyle={selectedItemStyle}\n multipleSelectedItemStyle={multipleSelectedItemStyle}\n isMultiple={isMultiple}\n primaryColor={primary}\n disabled={disabled}\n placeholderStyle={placeholderStyle}\n {...rest}\n />\n <CustomModal\n open={open}\n handleToggleModal={handleToggleModal}\n modalBackgroundStyle={modalBackgroundStyle}\n modalOptionsContainer={modalOptionsContainer}\n onRequestClose={() => {}}\n >\n <DropdownList\n ListHeaderComponent={\n <>\n {isSearchable && (\n <Input\n value={searchValue}\n onChangeText={(text: string) => onSearch(text)}\n style={searchInputStyle}\n primaryColor={primary}\n />\n )}\n {isMultiple && newOptions.length > 1 && (\n <View style={styles.optionsContainerStyle}>\n <TouchableOpacity onPress={() => {}}>\n <CheckBox\n value={selectAll}\n label={selectAll ? 'Clear all' : 'Select all'}\n onChange={() => handleSelectAll()}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </TouchableOpacity>\n </View>\n )}\n </>\n }\n options={newOptions}\n optionLabel={optionLabel}\n optionValue={optionValue}\n isMultiple={isMultiple}\n isSearchable={isSearchable}\n selectedItems={selectedItems}\n selectedItem={selectedItem}\n handleMultipleSelections={handleMultipleSelections}\n handleSingleSelection={handleSingleSelection}\n primaryColor={primary}\n checkboxSize={checkboxSize}\n checkboxStyle={checkboxStyle}\n checkboxLabelStyle={checkboxLabelStyle}\n />\n </CustomModal>\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n optionsContainerStyle: {\n paddingHorizontal: 20,\n paddingVertical: 10,\n flexDirection: 'row',\n },\n});\n\nexport default DropdownSelect;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-input-select",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.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",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
-
import { TextInput, StyleSheet, View } from 'react-native';
|
|
2
|
+
import { TextInput, StyleSheet, View, Platform } from 'react-native';
|
|
3
3
|
import { inputStyles } from '../../styles/input';
|
|
4
4
|
|
|
5
5
|
export const Input = ({
|
|
@@ -18,13 +18,15 @@ export const Input = ({
|
|
|
18
18
|
placeholder={placeholder}
|
|
19
19
|
style={[
|
|
20
20
|
inputStyles.input,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
Platform.select({
|
|
22
|
+
web: {
|
|
23
|
+
outlineColor: primaryColor,
|
|
24
|
+
},
|
|
25
|
+
}),
|
|
26
|
+
isFocused && { borderColor: primaryColor },
|
|
23
27
|
style,
|
|
24
28
|
]}
|
|
25
|
-
onFocus={() =>
|
|
26
|
-
setFocus(true);
|
|
27
|
-
}}
|
|
29
|
+
onFocus={() => setFocus(true)}
|
|
28
30
|
onBlur={() => setFocus(false)}
|
|
29
31
|
value={value}
|
|
30
32
|
onChangeText={onChangeText}
|
package/src/index.tsx
CHANGED
|
@@ -77,7 +77,9 @@ export const DropdownSelect = ({
|
|
|
77
77
|
setSelectedItems(selectedValues);
|
|
78
78
|
onValueChange(selectedValues); //send value to parent
|
|
79
79
|
|
|
80
|
-
if (
|
|
80
|
+
if (
|
|
81
|
+
options.filter((item) => !item.disabled).length === selectedValues.length
|
|
82
|
+
) {
|
|
81
83
|
setSelectAll(true);
|
|
82
84
|
} else {
|
|
83
85
|
setSelectAll(false);
|