@razorpay/blade 12.32.3 → 12.33.2

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 (221) hide show
  1. package/build/lib/native/components/Accordion/AccordionButton.native.js +1 -1
  2. package/build/lib/native/components/Accordion/AccordionButton.native.js.map +1 -1
  3. package/build/lib/native/components/Accordion/AccordionItemHeader.js +2 -1
  4. package/build/lib/native/components/Accordion/AccordionItemHeader.js.map +1 -1
  5. package/build/lib/native/components/Accordion/commonStyles.js +1 -1
  6. package/build/lib/native/components/Accordion/commonStyles.js.map +1 -1
  7. package/build/lib/native/components/ActionList/ActionListItem.js +1 -1
  8. package/build/lib/native/components/ActionList/ActionListItem.js.map +1 -1
  9. package/build/lib/native/components/ActionList/ActionListNoResults.js +2 -2
  10. package/build/lib/native/components/Alert/Alert.js +2 -2
  11. package/build/lib/native/components/BaseHeaderFooter/BaseHeader.js +4 -4
  12. package/build/lib/native/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  13. package/build/lib/native/components/BottomSheet/BottomSheetCommon.js +3 -3
  14. package/build/lib/native/components/Button/BaseButton/BaseButton.js +1 -1
  15. package/build/lib/native/components/Button/BaseButton/BaseButton.js.map +1 -1
  16. package/build/lib/native/components/Button/BaseButton/buttonTokens.js +1 -1
  17. package/build/lib/native/components/Button/BaseButton/buttonTokens.js.map +1 -1
  18. package/build/lib/native/components/Carousel/NavigationButton/NavigationButton.js +2 -2
  19. package/build/lib/native/components/Collapsible/CollapsibleChevronIcon.native.js +2 -2
  20. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  21. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  22. package/build/lib/native/components/Dropdown/DropdownButton.js +1 -1
  23. package/build/lib/native/components/Dropdown/DropdownButton.js.map +1 -1
  24. package/build/lib/native/components/Dropdown/InputDropdownButton.native.js +7 -0
  25. package/build/lib/native/components/Dropdown/InputDropdownButton.native.js.map +1 -0
  26. package/build/lib/native/components/Dropdown/dropdownComponentIds.js +1 -1
  27. package/build/lib/native/components/Dropdown/dropdownComponentIds.js.map +1 -1
  28. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  29. package/build/lib/native/components/Form/FormHint.js +2 -2
  30. package/build/lib/native/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +12 -0
  31. package/build/lib/native/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  32. package/build/lib/native/components/Icons/useIconProps/iconSizeMap.js +8 -0
  33. package/build/lib/native/components/Icons/useIconProps/iconSizeMap.js.map +1 -0
  34. package/build/lib/native/components/Icons/useIconProps/useIconProps.js +2 -4
  35. package/build/lib/native/components/Icons/useIconProps/useIconProps.js.map +1 -1
  36. package/build/lib/native/components/InfoGroup/InfoGroup.native.js +7 -0
  37. package/build/lib/native/components/InfoGroup/InfoGroup.native.js.map +1 -0
  38. package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
  39. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  40. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js +1 -1
  41. package/build/lib/native/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  42. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js +1 -1
  43. package/build/lib/native/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  44. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js +1 -1
  45. package/build/lib/native/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  46. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +2 -5
  47. package/build/lib/native/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  48. package/build/lib/native/components/Input/DropdownInputTriggers/Chevron.js +2 -2
  49. package/build/lib/native/components/Input/PasswordInput/PasswordInput.js +2 -2
  50. package/build/lib/native/components/Input/SearchInput/SearchInput.js +14 -5
  51. package/build/lib/native/components/Input/SearchInput/SearchInput.js.map +1 -1
  52. package/build/lib/native/components/Input/TextArea/TextArea.js +2 -2
  53. package/build/lib/native/components/Input/TextInput/TextInput.js +13 -5
  54. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  55. package/build/lib/native/components/Popover/PopoverCloseButton.js +2 -2
  56. package/build/lib/native/components/Table/tokens.js +2 -2
  57. package/build/lib/native/components/Typography/Text/Text.js +1 -1
  58. package/build/lib/native/components/Typography/Text/Text.js.map +1 -1
  59. package/build/lib/native/components/index.js +3 -0
  60. package/build/lib/native/components/index.js.map +1 -1
  61. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  62. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  63. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js +14 -0
  64. package/build/lib/native/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  65. package/build/lib/web/development/components/Accordion/AccordionItemHeader.js +18 -2
  66. package/build/lib/web/development/components/Accordion/AccordionItemHeader.js.map +1 -1
  67. package/build/lib/web/development/components/Accordion/StyledAccordionButton.web.js +4 -3
  68. package/build/lib/web/development/components/Accordion/StyledAccordionButton.web.js.map +1 -1
  69. package/build/lib/web/development/components/Accordion/commonStyles.js +1 -11
  70. package/build/lib/web/development/components/Accordion/commonStyles.js.map +1 -1
  71. package/build/lib/web/development/components/ActionList/ActionListItem.js +2 -1
  72. package/build/lib/web/development/components/ActionList/ActionListItem.js.map +1 -1
  73. package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js +6 -3
  74. package/build/lib/web/development/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  75. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js +24 -3
  76. package/build/lib/web/development/components/Button/BaseButton/BaseButton.js.map +1 -1
  77. package/build/lib/web/development/components/Button/BaseButton/StyledBaseButton.web.js +14 -2
  78. package/build/lib/web/development/components/Button/BaseButton/StyledBaseButton.web.js.map +1 -1
  79. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js +19 -0
  80. package/build/lib/web/development/components/Button/BaseButton/buttonTokens.js.map +1 -1
  81. package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
  82. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  83. package/build/lib/web/development/components/Dropdown/DropdownButton.js +4 -1
  84. package/build/lib/web/development/components/Dropdown/DropdownButton.js.map +1 -1
  85. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js +4 -2
  86. package/build/lib/web/development/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  87. package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js +180 -0
  88. package/build/lib/web/development/components/Dropdown/InputDropdownButton.web.js.map +1 -0
  89. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js +2 -1
  90. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js.map +1 -1
  91. package/build/lib/web/development/components/Dropdown/index.js +1 -0
  92. package/build/lib/web/development/components/Dropdown/index.js.map +1 -1
  93. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  94. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +40 -0
  95. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  96. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/index.js +2 -0
  97. package/build/lib/web/development/components/Icons/ChevronUpDownIcon/index.js.map +1 -0
  98. package/build/lib/web/development/components/Icons/index.js +1 -0
  99. package/build/lib/web/development/components/Icons/index.js.map +1 -1
  100. package/build/lib/web/development/components/Icons/useIconProps/iconSizeMap.js +14 -0
  101. package/build/lib/web/development/components/Icons/useIconProps/iconSizeMap.js.map +1 -0
  102. package/build/lib/web/development/components/Icons/useIconProps/useIconProps.js +3 -12
  103. package/build/lib/web/development/components/Icons/useIconProps/useIconProps.js.map +1 -1
  104. package/build/lib/web/development/components/InfoGroup/InfoGroup.web.js +448 -0
  105. package/build/lib/web/development/components/InfoGroup/InfoGroup.web.js.map +1 -0
  106. package/build/lib/web/development/components/InfoGroup/InfoGroupContext.js +26 -0
  107. package/build/lib/web/development/components/InfoGroup/InfoGroupContext.js.map +1 -0
  108. package/build/lib/web/development/components/InfoGroup/index.js +3 -0
  109. package/build/lib/web/development/components/InfoGroup/index.js.map +1 -0
  110. package/build/lib/web/development/components/InfoGroup/infoGroupTokens.js +49 -0
  111. package/build/lib/web/development/components/InfoGroup/infoGroupTokens.js.map +1 -0
  112. package/build/lib/web/development/components/InfoGroup/types.js +2 -0
  113. package/build/lib/web/development/components/InfoGroup/types.js.map +1 -0
  114. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +10 -4
  115. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  116. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js +32 -8
  117. package/build/lib/web/development/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  118. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js +2 -1
  119. package/build/lib/web/development/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  120. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js +8 -4
  121. package/build/lib/web/development/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  122. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js +1 -1
  123. package/build/lib/web/development/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  124. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +25 -124
  125. package/build/lib/web/development/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  126. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js +6 -4
  127. package/build/lib/web/development/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  128. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js +97 -30
  129. package/build/lib/web/development/components/Input/SearchInput/SearchInput.js.map +1 -1
  130. package/build/lib/web/development/components/Input/TextInput/TextInput.js +123 -31
  131. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  132. package/build/lib/web/development/components/Typography/Text/Text.js +0 -1
  133. package/build/lib/web/development/components/Typography/Text/Text.js.map +1 -1
  134. package/build/lib/web/development/components/index.js +4 -0
  135. package/build/lib/web/development/components/index.js.map +1 -1
  136. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +5 -0
  137. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  138. package/build/lib/web/development/utils/useControlledDropdownInput/index.js +2 -0
  139. package/build/lib/web/development/utils/useControlledDropdownInput/index.js.map +1 -0
  140. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js +108 -0
  141. package/build/lib/web/development/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  142. package/build/lib/web/production/components/Accordion/AccordionItemHeader.js +18 -2
  143. package/build/lib/web/production/components/Accordion/AccordionItemHeader.js.map +1 -1
  144. package/build/lib/web/production/components/Accordion/StyledAccordionButton.web.js +4 -3
  145. package/build/lib/web/production/components/Accordion/StyledAccordionButton.web.js.map +1 -1
  146. package/build/lib/web/production/components/Accordion/commonStyles.js +1 -11
  147. package/build/lib/web/production/components/Accordion/commonStyles.js.map +1 -1
  148. package/build/lib/web/production/components/ActionList/ActionListItem.js +2 -1
  149. package/build/lib/web/production/components/ActionList/ActionListItem.js.map +1 -1
  150. package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js +6 -3
  151. package/build/lib/web/production/components/BaseHeaderFooter/BaseHeader.js.map +1 -1
  152. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js +24 -3
  153. package/build/lib/web/production/components/Button/BaseButton/BaseButton.js.map +1 -1
  154. package/build/lib/web/production/components/Button/BaseButton/StyledBaseButton.web.js +14 -2
  155. package/build/lib/web/production/components/Button/BaseButton/StyledBaseButton.web.js.map +1 -1
  156. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js +19 -0
  157. package/build/lib/web/production/components/Button/BaseButton/buttonTokens.js.map +1 -1
  158. package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
  159. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  160. package/build/lib/web/production/components/Dropdown/DropdownButton.js +4 -1
  161. package/build/lib/web/production/components/Dropdown/DropdownButton.js.map +1 -1
  162. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js +4 -2
  163. package/build/lib/web/production/components/Dropdown/DropdownOverlay.web.js.map +1 -1
  164. package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js +180 -0
  165. package/build/lib/web/production/components/Dropdown/InputDropdownButton.web.js.map +1 -0
  166. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js +2 -1
  167. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js.map +1 -1
  168. package/build/lib/web/production/components/Dropdown/index.js +1 -0
  169. package/build/lib/web/production/components/Dropdown/index.js.map +1 -1
  170. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  171. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js +40 -0
  172. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/ChevronUpDownIcon.js.map +1 -0
  173. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/index.js +2 -0
  174. package/build/lib/web/production/components/Icons/ChevronUpDownIcon/index.js.map +1 -0
  175. package/build/lib/web/production/components/Icons/index.js +1 -0
  176. package/build/lib/web/production/components/Icons/index.js.map +1 -1
  177. package/build/lib/web/production/components/Icons/useIconProps/iconSizeMap.js +14 -0
  178. package/build/lib/web/production/components/Icons/useIconProps/iconSizeMap.js.map +1 -0
  179. package/build/lib/web/production/components/Icons/useIconProps/useIconProps.js +3 -12
  180. package/build/lib/web/production/components/Icons/useIconProps/useIconProps.js.map +1 -1
  181. package/build/lib/web/production/components/InfoGroup/InfoGroup.web.js +448 -0
  182. package/build/lib/web/production/components/InfoGroup/InfoGroup.web.js.map +1 -0
  183. package/build/lib/web/production/components/InfoGroup/InfoGroupContext.js +26 -0
  184. package/build/lib/web/production/components/InfoGroup/InfoGroupContext.js.map +1 -0
  185. package/build/lib/web/production/components/InfoGroup/index.js +3 -0
  186. package/build/lib/web/production/components/InfoGroup/index.js.map +1 -0
  187. package/build/lib/web/production/components/InfoGroup/infoGroupTokens.js +49 -0
  188. package/build/lib/web/production/components/InfoGroup/infoGroupTokens.js.map +1 -0
  189. package/build/lib/web/production/components/InfoGroup/types.js +2 -0
  190. package/build/lib/web/production/components/InfoGroup/types.js.map +1 -0
  191. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +10 -4
  192. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  193. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js +32 -8
  194. package/build/lib/web/production/components/Input/BaseInput/BaseInputVisuals.js.map +1 -1
  195. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js +2 -1
  196. package/build/lib/web/production/components/Input/BaseInput/StyledBaseInput.web.js.map +1 -1
  197. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js +8 -4
  198. package/build/lib/web/production/components/Input/BaseInput/baseInputStyles.js.map +1 -1
  199. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js +1 -1
  200. package/build/lib/web/production/components/Input/BaseInput/baseInputTokens.js.map +1 -1
  201. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js +25 -124
  202. package/build/lib/web/production/components/Input/DropdownInputTriggers/BaseDropdownInputTrigger.js.map +1 -1
  203. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js +6 -4
  204. package/build/lib/web/production/components/Input/PhoneNumberInput/CountrySelector.web.js.map +1 -1
  205. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js +97 -30
  206. package/build/lib/web/production/components/Input/SearchInput/SearchInput.js.map +1 -1
  207. package/build/lib/web/production/components/Input/TextInput/TextInput.js +123 -31
  208. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  209. package/build/lib/web/production/components/Typography/Text/Text.js +0 -1
  210. package/build/lib/web/production/components/Typography/Text/Text.js.map +1 -1
  211. package/build/lib/web/production/components/index.js +4 -0
  212. package/build/lib/web/production/components/index.js.map +1 -1
  213. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +5 -0
  214. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  215. package/build/lib/web/production/utils/useControlledDropdownInput/index.js +2 -0
  216. package/build/lib/web/production/utils/useControlledDropdownInput/index.js.map +1 -0
  217. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js +108 -0
  218. package/build/lib/web/production/utils/useControlledDropdownInput/useControlledDropdownInput.js.map +1 -0
  219. package/build/types/components/index.d.ts +4446 -3019
  220. package/build/types/components/index.native.d.ts +2782 -2661
  221. package/package.json +2 -2
@@ -0,0 +1,108 @@
1
+ import React__default from 'react';
2
+ import isEmpty from '../lodashButBetter/isEmpty.js';
3
+ import '../index.js';
4
+ import { useFirstRender } from '../useFirstRender.js';
5
+ import '../fireNativeEvent/index.js';
6
+ import { useDropdown } from '../../components/Dropdown/useDropdown.js';
7
+ import { isBrowser } from '../platform/isBrowser.js';
8
+ import { fireNativeEvent } from '../fireNativeEvent/fireNativeEvent.web.js';
9
+
10
+ var useControlledDropdownInput = function useControlledDropdownInput(props) {
11
+ var isFirstRender = useFirstRender();
12
+ var _useDropdown = useDropdown(),
13
+ changeCallbackTriggerer = _useDropdown.changeCallbackTriggerer,
14
+ isControlled = _useDropdown.isControlled,
15
+ options = _useDropdown.options,
16
+ selectedIndices = _useDropdown.selectedIndices,
17
+ controlledValueIndices = _useDropdown.controlledValueIndices,
18
+ setSelectedIndices = _useDropdown.setSelectedIndices,
19
+ selectionType = _useDropdown.selectionType,
20
+ setIsControlled = _useDropdown.setIsControlled;
21
+ var getValuesArrayFromIndices = function getValuesArrayFromIndices() {
22
+ var indices = [];
23
+ if (isControlled) {
24
+ indices = controlledValueIndices;
25
+ } else {
26
+ indices = selectedIndices;
27
+ }
28
+ return indices.map(function (selectionIndex) {
29
+ return options[selectionIndex].value;
30
+ });
31
+ };
32
+ var selectValues = function selectValues(valuesToSelect) {
33
+ if (options.length > 0) {
34
+ // we use empty `''` for clearing the input
35
+ if (isEmpty(valuesToSelect)) {
36
+ setSelectedIndices([]);
37
+ } else if (typeof valuesToSelect === 'string') {
38
+ // single select control
39
+ var selectedItemIndex = options.findIndex(function (option) {
40
+ return option.value === valuesToSelect;
41
+ });
42
+ if (selectedItemIndex >= 0) {
43
+ setSelectedIndices([selectedItemIndex]);
44
+ }
45
+ } else {
46
+ // multiselect control
47
+
48
+ // Handles repeated values in user state
49
+ var uniqueValues = Array.from(new Set(valuesToSelect));
50
+ // Handle selectionType single with multiselect values
51
+ var userValues = selectionType === 'single' ? [valuesToSelect === null || valuesToSelect === void 0 ? void 0 : valuesToSelect[0]] : uniqueValues;
52
+ var selectedItemIndices = userValues.map(function (optionValue) {
53
+ return options.findIndex(function (option) {
54
+ return option.value === optionValue;
55
+ });
56
+ }).filter(function (value) {
57
+ return value >= 0;
58
+ });
59
+ setSelectedIndices(selectedItemIndices);
60
+ }
61
+ }
62
+ };
63
+
64
+ // Handles `defaultValue` prop
65
+ React__default.useEffect(function () {
66
+ if (options.length > 0 && props.defaultValue) {
67
+ selectValues(props.defaultValue);
68
+ }
69
+ // eslint-disable-next-line react-hooks/exhaustive-deps
70
+ }, [options.length]);
71
+
72
+ // Handles `value` prop
73
+ React__default.useEffect(function () {
74
+ if (options.length > 0 && props.value !== undefined) {
75
+ if (!isControlled) {
76
+ setIsControlled(true);
77
+ }
78
+ selectValues(props.value);
79
+
80
+ // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.
81
+ if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {
82
+ var _props$syncInputValue;
83
+ (_props$syncInputValue = props.syncInputValueWithSelection) === null || _props$syncInputValue === void 0 ? void 0 : _props$syncInputValue.call(props, props.value);
84
+ }
85
+ }
86
+ // eslint-disable-next-line react-hooks/exhaustive-deps
87
+ }, [props.value, options]);
88
+
89
+ // onChange behaviour
90
+ React__default.useEffect(function () {
91
+ // Ignore calling onChange on mount
92
+
93
+ if (!isFirstRender) {
94
+ var _props$onChange;
95
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, {
96
+ name: props.name,
97
+ values: getValuesArrayFromIndices()
98
+ });
99
+ if (isBrowser()) {
100
+ fireNativeEvent(props.triggererRef, ['change', 'input']);
101
+ }
102
+ }
103
+ // eslint-disable-next-line react-hooks/exhaustive-deps
104
+ }, [changeCallbackTriggerer]);
105
+ };
106
+
107
+ export { useControlledDropdownInput };
108
+ //# sourceMappingURL=useControlledDropdownInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlledDropdownInput.js","sources":["../../../../../../src/utils/useControlledDropdownInput/useControlledDropdownInput.tsx"],"sourcesContent":["import React from 'react';\nimport type { BaseDropdownInputTriggerProps } from '~components/Input/DropdownInputTriggers/types';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport { isBrowser } from '~utils';\nimport { useFirstRender } from '~utils/useFirstRender';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\nimport { useDropdown } from '~components/Dropdown/useDropdown';\n\nexport type useControlledDropdownInputProps = Pick<\n BaseDropdownInputTriggerProps,\n | 'onChange'\n | 'name'\n | 'value'\n | 'defaultValue'\n | 'onInputValueChange'\n | 'syncInputValueWithSelection'\n | 'isSelectInput'\n> & {\n triggererRef: React.RefObject<HTMLElement>;\n};\n\nconst useControlledDropdownInput = (props: useControlledDropdownInputProps): void => {\n const isFirstRender = useFirstRender();\n const {\n changeCallbackTriggerer,\n isControlled,\n options,\n selectedIndices,\n controlledValueIndices,\n setSelectedIndices,\n selectionType,\n setIsControlled,\n } = useDropdown();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n const selectValues = (valuesToSelect: string | string[]): void => {\n if (options.length > 0) {\n // we use empty `''` for clearing the input\n if (isEmpty(valuesToSelect)) {\n setSelectedIndices([]);\n } else if (typeof valuesToSelect === 'string') {\n // single select control\n const selectedItemIndex = options.findIndex((option) => option.value === valuesToSelect);\n if (selectedItemIndex >= 0) {\n setSelectedIndices([selectedItemIndex]);\n }\n } else {\n // multiselect control\n\n // Handles repeated values in user state\n const uniqueValues = Array.from(new Set(valuesToSelect));\n // Handle selectionType single with multiselect values\n const userValues = selectionType === 'single' ? [valuesToSelect?.[0]] : uniqueValues;\n\n const selectedItemIndices = userValues\n .map((optionValue) => options.findIndex((option) => option.value === optionValue))\n .filter((value) => value >= 0);\n\n setSelectedIndices(selectedItemIndices);\n }\n }\n };\n\n // Handles `defaultValue` prop\n React.useEffect(() => {\n if (options.length > 0 && props.defaultValue) {\n selectValues(props.defaultValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options.length]);\n\n // Handles `value` prop\n React.useEffect(() => {\n if (options.length > 0 && props.value !== undefined) {\n if (!isControlled) {\n setIsControlled(true);\n }\n\n selectValues(props.value);\n\n // in single select AutoComplete, we have to set inputValue of autocomplete according to the new selection.\n if (selectionType === 'single' && !Array.isArray(props.value) && !props.isSelectInput) {\n props.syncInputValueWithSelection?.(props.value);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, options]);\n\n // onChange behaviour\n React.useEffect(() => {\n // Ignore calling onChange on mount\n\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name,\n values: getValuesArrayFromIndices(),\n });\n if (isBrowser()) {\n fireNativeEvent(props.triggererRef, ['change', 'input']);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n};\n\nexport { useControlledDropdownInput };\n"],"names":["useControlledDropdownInput","props","isFirstRender","useFirstRender","_useDropdown","useDropdown","changeCallbackTriggerer","isControlled","options","selectedIndices","controlledValueIndices","setSelectedIndices","selectionType","setIsControlled","getValuesArrayFromIndices","indices","map","selectionIndex","value","selectValues","valuesToSelect","length","isEmpty","selectedItemIndex","findIndex","option","uniqueValues","Array","from","Set","userValues","selectedItemIndices","optionValue","filter","React","useEffect","defaultValue","undefined","isArray","isSelectInput","_props$syncInputValue","syncInputValueWithSelection","call","_props$onChange","onChange","name","values","isBrowser","fireNativeEvent","triggererRef"],"mappings":"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"}