intelicoreact 1.5.41 → 1.6.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 (521) hide show
  1. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.interface.js +4 -0
  2. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.js +93 -44
  3. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.scss +23 -13
  4. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.stories.js +89 -0
  5. package/dist/Atomic/FormElements/ActionAlert/ActionAlert.test.js +130 -0
  6. package/dist/Atomic/FormElements/ActionAlert/index.js +17 -0
  7. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.interface.js +4 -0
  8. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +43 -38
  9. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.scss +20 -10
  10. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.stories.js +81 -0
  11. package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.test.js +104 -0
  12. package/dist/Atomic/FormElements/AdvancedStatus/index.js +17 -0
  13. package/dist/Atomic/FormElements/Calendar/Calendar.js +243 -164
  14. package/dist/Atomic/FormElements/Calendar/Calendar.props.js +4 -0
  15. package/dist/Atomic/FormElements/Calendar/Calendar.scss +1 -0
  16. package/dist/Atomic/FormElements/Calendar/Calendar.stories.js +108 -0
  17. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.interface.js +4 -0
  18. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +60 -51
  19. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.scss +21 -11
  20. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.stories.js +100 -0
  21. package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.test.js +143 -0
  22. package/dist/Atomic/FormElements/CheckboxInput/index.js +17 -0
  23. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.interface.js +4 -0
  24. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +47 -39
  25. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.scss +5 -2
  26. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.stories.js +94 -0
  27. package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.test.js +177 -0
  28. package/dist/Atomic/FormElements/CheckboxesLine/index.js +17 -0
  29. package/dist/Atomic/FormElements/Datepicker/Datepicker.js +410 -308
  30. package/dist/Atomic/FormElements/Datepicker/Datepicker.stories.js +51 -0
  31. package/dist/Atomic/FormElements/Datepicker/components/Calendar.js +169 -109
  32. package/dist/Atomic/FormElements/Dropdown/Dropdown.js +680 -527
  33. package/dist/Atomic/FormElements/Dropdown/Dropdown.scss +58 -56
  34. package/dist/Atomic/FormElements/Dropdown/Dropdown.stories.js +596 -0
  35. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +28 -15
  36. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +498 -378
  37. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.scss +33 -29
  38. package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.stories.js +272 -0
  39. package/dist/Atomic/FormElements/FileLoader/FileLoader.js +103 -70
  40. package/dist/Atomic/FormElements/FileLoader/FileLoader.scss +0 -2
  41. package/dist/Atomic/FormElements/FileLoader/FileLoader.stories.js +182 -0
  42. package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +138 -91
  43. package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +109 -55
  44. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +254 -193
  45. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.scss +19 -16
  46. package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.stories.js +327 -0
  47. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +156 -140
  48. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.scss +8 -4
  49. package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.stories.js +186 -0
  50. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +222 -156
  51. package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.stories.js +84 -0
  52. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +158 -114
  53. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.stories.js +107 -0
  54. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +151 -92
  55. package/dist/Atomic/FormElements/Input/Input.js +340 -330
  56. package/dist/Atomic/FormElements/Input/Input.stories.js +251 -0
  57. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +156 -110
  58. package/dist/Atomic/FormElements/InputCalendar/InputCalendar.stories.js +115 -0
  59. package/dist/Atomic/FormElements/InputColor/InputColor.js +57 -58
  60. package/dist/Atomic/FormElements/InputColor/InputColor.stories.js +119 -0
  61. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.interface.js +4 -0
  62. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +189 -145
  63. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.stories.js +178 -0
  64. package/dist/Atomic/FormElements/InputCurrency/InputCurrency.test.js +129 -0
  65. package/dist/Atomic/FormElements/InputCurrency/index.js +16 -0
  66. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +294 -228
  67. package/dist/Atomic/FormElements/InputDateRange/InputDateRange.stories.js +123 -0
  68. package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +55 -56
  69. package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +645 -536
  70. package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +220 -190
  71. package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +33 -31
  72. package/dist/Atomic/FormElements/InputDateRange/dependencies.js +247 -169
  73. package/dist/Atomic/FormElements/InputLink/InputLink.js +118 -71
  74. package/dist/Atomic/FormElements/InputLink/InputLink.stories.js +140 -0
  75. package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +47 -38
  76. package/dist/Atomic/FormElements/InputMask/InputMask.js +938 -1053
  77. package/dist/Atomic/FormElements/InputMask/InputMask.stories.js +303 -0
  78. package/dist/Atomic/FormElements/InputMask/config.js +16 -15
  79. package/dist/Atomic/FormElements/InputMask/functions.js +77 -51
  80. package/dist/Atomic/FormElements/InputMask2/InputMask2.js +569 -592
  81. package/dist/Atomic/FormElements/InputMask2/InputMask2.stories.js +314 -0
  82. package/dist/Atomic/FormElements/InputMask2/config.js +16 -15
  83. package/dist/Atomic/FormElements/InputMask2/functions.js +77 -51
  84. package/dist/Atomic/FormElements/InputMask3/InputMask3.js +651 -679
  85. package/dist/Atomic/FormElements/InputMask3/InputMask3.stories.js +335 -0
  86. package/dist/Atomic/FormElements/InputMask3/config.js +16 -15
  87. package/dist/Atomic/FormElements/InputMask3/functions.js +77 -51
  88. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +127 -88
  89. package/dist/Atomic/FormElements/InputWithAction/InputWithAction.stories.js +276 -0
  90. package/dist/Atomic/FormElements/InputsRow/InputsRow.js +182 -111
  91. package/dist/Atomic/FormElements/InputsRow/InputsRow.stories.js +56 -0
  92. package/dist/Atomic/FormElements/Label/Label.interface.js +4 -0
  93. package/dist/Atomic/FormElements/Label/Label.js +82 -55
  94. package/dist/Atomic/FormElements/Label/Label.scss +18 -8
  95. package/dist/Atomic/FormElements/Label/Label.stories.js +47 -0
  96. package/dist/Atomic/FormElements/Label/Label.test.js +167 -0
  97. package/dist/Atomic/FormElements/Label/index.js +17 -0
  98. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +437 -382
  99. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.stories.js +172 -0
  100. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +88 -50
  101. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.stories.js +121 -0
  102. package/dist/Atomic/FormElements/NumericInput/NumericInput.js +314 -264
  103. package/dist/Atomic/FormElements/NumericInput/NumericInput.stories.js +184 -0
  104. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +93 -51
  105. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.stories.js +79 -0
  106. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +69 -55
  107. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.stories.js +151 -0
  108. package/dist/Atomic/FormElements/RadioInput/RadioInput.js +51 -45
  109. package/dist/Atomic/FormElements/RadioInput/RadioInput.scss +4 -4
  110. package/dist/Atomic/FormElements/RadioInput/RadioInput.stories.js +67 -0
  111. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +53 -40
  112. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.stories.js +116 -0
  113. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +169 -120
  114. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.stories.js +107 -0
  115. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +195 -141
  116. package/dist/Atomic/FormElements/RangeInputs/RangeInputs.stories.js +92 -0
  117. package/dist/Atomic/FormElements/RangeList/RangeList.js +199 -140
  118. package/dist/Atomic/FormElements/RangeList/RangeList.scss +2 -2
  119. package/dist/Atomic/FormElements/RangeList/RangeList.stories.js +169 -0
  120. package/dist/Atomic/FormElements/RangeList/partial/AnyOuterClass.scss +0 -3
  121. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +57 -44
  122. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +463 -377
  123. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.stories.js +401 -0
  124. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +760 -759
  125. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.stories.js +314 -0
  126. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +36 -31
  127. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.scss +0 -2
  128. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.stories.js +137 -0
  129. package/dist/Atomic/FormElements/Switcher/Switcher.js +52 -44
  130. package/dist/Atomic/FormElements/Switcher/Switcher.scss +3 -3
  131. package/dist/Atomic/FormElements/Switcher/Switcher.stories.js +91 -0
  132. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +43 -44
  133. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.scss +0 -2
  134. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.stories.js +104 -0
  135. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +37 -36
  136. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.scss +0 -2
  137. package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.stories.js +96 -0
  138. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +93 -56
  139. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.scss +0 -2
  140. package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.stories.js +140 -0
  141. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +86 -53
  142. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.scss +0 -2
  143. package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.stories.js +112 -0
  144. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +46 -54
  145. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.stories.js +145 -0
  146. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +172 -102
  147. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.scss +4 -6
  148. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.stories.js +158 -0
  149. package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +209 -154
  150. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +59 -56
  151. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.scss +2 -2
  152. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.stories.js +101 -0
  153. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +140 -112
  154. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.stories.js +131 -0
  155. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1035 -919
  156. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.scss +153 -116
  157. package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.stories.js +357 -0
  158. package/dist/Atomic/FormElements/Text/Text.js +88 -97
  159. package/dist/Atomic/FormElements/Text/Text.stories.js +80 -0
  160. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +44 -35
  161. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.scss +8 -8
  162. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.stories.js +106 -0
  163. package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.test.js +93 -0
  164. package/dist/Atomic/FormElements/Textarea/Textarea.js +102 -64
  165. package/dist/Atomic/FormElements/Textarea/Textarea.scss +4 -8
  166. package/dist/Atomic/FormElements/Textarea/Textarea.stories.js +103 -0
  167. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +172 -133
  168. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.stories.js +174 -0
  169. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +48 -49
  170. package/dist/Atomic/FormElements/TimeRange/TimeRange.interface.js +4 -0
  171. package/dist/Atomic/FormElements/TimeRange/TimeRange.js +114 -63
  172. package/dist/Atomic/FormElements/TimeRange/TimeRange.scss +9 -3
  173. package/dist/Atomic/FormElements/TimeRange/TimeRange.stories.js +40 -0
  174. package/dist/Atomic/FormElements/TimeRange/TimeRange.test.js +163 -0
  175. package/dist/Atomic/FormElements/TimeRange/index.js +17 -0
  176. package/dist/Atomic/FormElements/UserContacts/UserContact.test.js +381 -0
  177. package/dist/Atomic/FormElements/UserContacts/UserContacts.interface.js +4 -0
  178. package/dist/Atomic/FormElements/UserContacts/UserContacts.js +179 -122
  179. package/dist/Atomic/FormElements/UserContacts/UserContacts.scss +10 -5
  180. package/dist/Atomic/FormElements/UserContacts/UserContacts.stories.js +74 -0
  181. package/dist/Atomic/FormElements/UserContacts/index.js +17 -0
  182. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +101 -65
  183. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.stories.js +193 -0
  184. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +80 -71
  185. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +79 -64
  186. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.scss +0 -2
  187. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.stories.js +147 -0
  188. package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +42 -34
  189. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +102 -83
  190. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.scss +0 -2
  191. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.stories.js +151 -0
  192. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +42 -35
  193. package/dist/Atomic/Layout/Header/Header.js +148 -80
  194. package/dist/Atomic/Layout/Header/Header.stories.js +71 -0
  195. package/dist/Atomic/Layout/MainMenu/MainMenu.js +213 -133
  196. package/dist/Atomic/Layout/MainMenu/MainMenu.scss +7 -7
  197. package/dist/Atomic/Layout/MainMenu/MainMenu.stories.js +115 -0
  198. package/dist/Atomic/Layout/Spinner/Spinner.interface.js +4 -0
  199. package/dist/Atomic/Layout/Spinner/Spinner.js +39 -22
  200. package/dist/Atomic/Layout/Spinner/Spinner.scss +36 -16
  201. package/dist/Atomic/Layout/Spinner/Spinner.stories.js +46 -0
  202. package/dist/Atomic/Layout/Spinner/Spinner.test.js +54 -0
  203. package/dist/Atomic/Layout/Spinner/index.js +17 -0
  204. package/dist/Atomic/UI/Accordion/Accordion.interface.js +4 -0
  205. package/dist/Atomic/UI/Accordion/Accordion.js +102 -53
  206. package/dist/Atomic/UI/Accordion/Accordion.scss +25 -14
  207. package/dist/Atomic/UI/Accordion/Accordion.stories.js +168 -0
  208. package/dist/Atomic/UI/Accordion/Accordion.test.js +54 -0
  209. package/dist/Atomic/UI/Accordion/AccordionItem.js +170 -102
  210. package/dist/Atomic/UI/Accordion/AccordionItem.test.js +50 -0
  211. package/dist/Atomic/UI/Accordion/index.js +17 -0
  212. package/dist/Atomic/UI/AccordionTable/AccordionTable.js +251 -167
  213. package/dist/Atomic/UI/AccordionTable/AccordionTable.stories.js +268 -0
  214. package/dist/Atomic/UI/AccordionText/AccordionText.js +105 -54
  215. package/dist/Atomic/UI/AccordionText/AccordionText.scss +22 -9
  216. package/dist/Atomic/UI/AccordionText/AccordionText.stories.js +125 -0
  217. package/dist/Atomic/UI/AdvancedTag/AdvTag.js +207 -135
  218. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +100 -46
  219. package/dist/Atomic/UI/AdvancedTag/AdvancedTags.stories.js +115 -0
  220. package/dist/Atomic/UI/Alert/Alert.js +116 -63
  221. package/dist/Atomic/UI/Alert/Alert.scss +2 -2
  222. package/dist/Atomic/UI/Alert/Alert.stories.js +81 -0
  223. package/dist/Atomic/UI/Arrow/Arrow.js +163 -110
  224. package/dist/Atomic/UI/Arrow/Arrow.stories.js +62 -0
  225. package/dist/Atomic/UI/Box/Box.js +37 -37
  226. package/dist/Atomic/UI/Box/Box.scss +11 -11
  227. package/dist/Atomic/UI/Box/Box.stories.js +114 -0
  228. package/dist/Atomic/UI/Button/Button.js +43 -41
  229. package/dist/Atomic/UI/Button/Button.stories.js +105 -0
  230. package/dist/Atomic/UI/Button/Button.test.js +147 -0
  231. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +61 -67
  232. package/dist/Atomic/UI/ButtonsBar/ButtonsBar.stories.js +129 -0
  233. package/dist/Atomic/UI/Chart/Chart.js +170 -96
  234. package/dist/Atomic/UI/Chart/Chart.stories.js +93 -0
  235. package/dist/Atomic/UI/Chart/partial/Chart.constants.js +142 -74
  236. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +91 -77
  237. package/dist/Atomic/UI/Chart/partial/datasetSetters.js +120 -117
  238. package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +314 -292
  239. package/dist/Atomic/UI/Chart/partial/optionsSetters.js +54 -39
  240. package/dist/Atomic/UI/Chart/partial/utils.js +56 -33
  241. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +145 -88
  242. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.stories.js +85 -0
  243. package/dist/Atomic/UI/DateTime/DateTime.js +89 -37
  244. package/dist/Atomic/UI/DateTime/DateTime.scss +2 -2
  245. package/dist/Atomic/UI/DateTime/DateTime.stories.js +50 -0
  246. package/dist/Atomic/UI/DebugContainer/DebugContainer.js +93 -31
  247. package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +66 -18
  248. package/dist/Atomic/UI/DoubleString/DoubleString.js +134 -77
  249. package/dist/Atomic/UI/DoubleString/DoubleString.scss +6 -4
  250. package/dist/Atomic/UI/DoubleString/DoubleString.stories.js +79 -0
  251. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.interface.js +4 -0
  252. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +65 -22
  253. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.stories.js +98 -0
  254. package/dist/Atomic/UI/DynamicIcon/DynamicIcon.test.js +51 -0
  255. package/dist/Atomic/UI/DynamicIcon/index.js +17 -0
  256. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +251 -170
  257. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.stories.js +98 -0
  258. package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +109 -84
  259. package/dist/Atomic/UI/Hint/Hint.interface.js +4 -0
  260. package/dist/Atomic/UI/Hint/Hint.js +247 -204
  261. package/dist/Atomic/UI/Hint/Hint.scss +4 -2
  262. package/dist/Atomic/UI/Hint/Hint.stories.js +106 -0
  263. package/dist/Atomic/UI/Hint/Hint.test.js +96 -0
  264. package/dist/Atomic/UI/Hint/index.js +17 -0
  265. package/dist/Atomic/UI/Hint/partials/_utils.js +60 -46
  266. package/dist/Atomic/UI/Modal/Modal.interface.js +4 -0
  267. package/dist/Atomic/UI/Modal/Modal.js +171 -172
  268. package/dist/Atomic/UI/Modal/Modal.scss +91 -65
  269. package/dist/Atomic/UI/Modal/Modal.stories.js +370 -0
  270. package/dist/Atomic/UI/Modal/ModalHOC.js +92 -38
  271. package/dist/Atomic/UI/Modal/ModalHOC.stories.js +191 -0
  272. package/dist/Atomic/UI/Modal/ModalHOC.test.js +187 -0
  273. package/dist/Atomic/UI/Modal/ModalMobile.scss +26 -14
  274. package/dist/Atomic/UI/Modal/index.js +26 -0
  275. package/dist/Atomic/UI/Modal/partials/ModalFooter.js +68 -18
  276. package/dist/Atomic/UI/Modal/partials/ModalFooter.test.js +118 -0
  277. package/dist/Atomic/UI/Modal/partials/ModalTitle.js +107 -38
  278. package/dist/Atomic/UI/Modal/partials/ModalTitle.test.js +126 -0
  279. package/dist/Atomic/UI/Modal/partials/useMobileModal.js +130 -153
  280. package/dist/Atomic/UI/Modal/partials/useMobileModal.test.js +133 -0
  281. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.interface.js +4 -0
  282. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +118 -62
  283. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.scss +172 -25
  284. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.stories.js +513 -0
  285. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.test.js +84 -0
  286. package/dist/Atomic/UI/MonoAccordion/index.js +17 -0
  287. package/dist/Atomic/UI/NavLine/NavLine.interface.js +4 -0
  288. package/dist/Atomic/UI/NavLine/NavLine.js +306 -273
  289. package/dist/Atomic/UI/NavLine/NavLine.scss +202 -155
  290. package/dist/Atomic/UI/NavLine/NavLine.stories.js +434 -0
  291. package/dist/Atomic/UI/NavLine/NavLine.test.js +311 -0
  292. package/dist/Atomic/UI/NavLine/index.js +17 -0
  293. package/dist/Atomic/UI/PageTitle/PageTitle.interface.js +4 -0
  294. package/dist/Atomic/UI/PageTitle/PageTitle.js +73 -52
  295. package/dist/Atomic/UI/PageTitle/PageTitle.scss +52 -14
  296. package/dist/Atomic/UI/PageTitle/PageTitle.stories.js +62 -0
  297. package/dist/Atomic/UI/PageTitle/PageTitle.test.js +181 -0
  298. package/dist/Atomic/UI/PageTitle/index.js +17 -0
  299. package/dist/Atomic/UI/PieChart/PieChar.interface.js +4 -0
  300. package/dist/Atomic/UI/PieChart/PieChart.js +105 -42
  301. package/dist/Atomic/UI/PieChart/PieChart.scss +87 -11
  302. package/dist/Atomic/UI/PieChart/PieChart.stories.js +82 -0
  303. package/dist/Atomic/UI/PieChart/PieChart.test.js +142 -0
  304. package/dist/Atomic/UI/PieChart/index.js +26 -0
  305. package/dist/Atomic/UI/Price/Price.interface.js +4 -0
  306. package/dist/Atomic/UI/Price/Price.js +27 -20
  307. package/dist/Atomic/UI/Price/Price.stories.js +52 -0
  308. package/dist/Atomic/UI/Price/Price.test.js +83 -0
  309. package/dist/Atomic/UI/Price/index.js +17 -0
  310. package/dist/Atomic/UI/PriceRange/PriceRange.interface.js +4 -0
  311. package/dist/Atomic/UI/PriceRange/PriceRange.js +40 -18
  312. package/dist/Atomic/UI/PriceRange/PriceRange.stories.js +51 -0
  313. package/dist/Atomic/UI/PriceRange/PriceRange.test.js +72 -0
  314. package/dist/Atomic/UI/PriceRange/index.js +17 -0
  315. package/dist/Atomic/UI/ProgressLine/ProgressLine.interface.js +4 -0
  316. package/dist/Atomic/UI/ProgressLine/ProgressLine.js +92 -73
  317. package/dist/Atomic/UI/ProgressLine/ProgressLine.scss +66 -52
  318. package/dist/Atomic/UI/ProgressLine/ProgressLine.stories.js +163 -0
  319. package/dist/Atomic/UI/ProgressLine/ProgressLine.test.js +60 -0
  320. package/dist/Atomic/UI/ProgressLine/index.js +17 -0
  321. package/dist/Atomic/UI/Status/Status.interface.js +4 -0
  322. package/dist/Atomic/UI/Status/Status.js +62 -51
  323. package/dist/Atomic/UI/Status/Status.scss +48 -29
  324. package/dist/Atomic/UI/Status/Status.stories.js +79 -0
  325. package/dist/Atomic/UI/Status/Status.test.js +103 -0
  326. package/dist/Atomic/UI/Status/index.js +17 -0
  327. package/dist/Atomic/UI/Table/Partials/TdCell.js +126 -88
  328. package/dist/Atomic/UI/Table/Partials/TdHeader.js +58 -39
  329. package/dist/Atomic/UI/Table/Partials/TdRow.js +124 -73
  330. package/dist/Atomic/UI/Table/Partials/TdTitle.js +113 -45
  331. package/dist/Atomic/UI/Table/Table.js +61 -43
  332. package/dist/Atomic/UI/Table/Table.scss +0 -3
  333. package/dist/Atomic/UI/Table/Table.stories.js +250 -0
  334. package/dist/Atomic/UI/Table/TdTypes/TdActions.js +108 -64
  335. package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +44 -31
  336. package/dist/Atomic/UI/Table/TdTypes/TdRange.js +24 -10
  337. package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +59 -48
  338. package/dist/Atomic/UI/Tag/Tag.interface.js +4 -0
  339. package/dist/Atomic/UI/Tag/Tag.js +157 -113
  340. package/dist/Atomic/UI/Tag/Tag.scss +104 -47
  341. package/dist/Atomic/UI/Tag/Tag.stories.js +108 -0
  342. package/dist/Atomic/UI/Tag/Tag.test.js +75 -0
  343. package/dist/Atomic/UI/Tag/index.js +17 -0
  344. package/dist/Atomic/UI/TagList/TagList.js +223 -179
  345. package/dist/Atomic/UI/TagList/TagList.scss +13 -9
  346. package/dist/Atomic/UI/TagList/TagList.stories.js +169 -0
  347. package/dist/Atomic/UI/UserBox/UserBox.interface.js +4 -0
  348. package/dist/Atomic/UI/UserBox/UserBox.js +80 -56
  349. package/dist/Atomic/UI/UserBox/UserBox.scss +45 -21
  350. package/dist/Atomic/UI/UserBox/UserBox.stories.js +57 -0
  351. package/dist/Atomic/UI/UserBox/UserBox.test.js +136 -0
  352. package/dist/Atomic/UI/UserBox/index.js +17 -0
  353. package/dist/Atomic/UI/WizardStepper/WizardStepper.stories.js +70 -0
  354. package/dist/Atomic/UI/WizardStepper/constructor.js +127 -89
  355. package/dist/Atomic/UI/WizardStepper/index.js +14 -6
  356. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +53 -51
  357. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.scss +11 -7
  358. package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +9 -5
  359. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +84 -67
  360. package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.scss +13 -7
  361. package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +14 -6
  362. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +50 -45
  363. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.scss +24 -18
  364. package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +14 -6
  365. package/dist/Atomic/UI/WizardStepper/ui/icons.js +138 -106
  366. package/dist/Atomic/UI/WizardStepper/ui/index.js +14 -6
  367. package/dist/Classes/AbortableFetch.js +394 -326
  368. package/dist/Classes/AnimatedHandler.js +31 -44
  369. package/dist/Classes/RESTAPI/index.js +131 -173
  370. package/dist/Classes/RESTAPI/partials/AbortableFetch.js +399 -334
  371. package/dist/Classes/RESTAPI/partials/ApiBase.js +30 -30
  372. package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +107 -88
  373. package/dist/Classes/RESTAPI/partials/ApiUtils.js +144 -166
  374. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +180 -204
  375. package/dist/Classes/RESTAPI/partials/Utils.js +80 -83
  376. package/dist/Classes/RESTAPI/partials/_outerDependencies.js +16 -8
  377. package/dist/Classes/RESTAPI/partials/_utils.js +139 -125
  378. package/dist/Constants/index.constants.js +102 -22
  379. package/dist/Functions/Portal.js +67 -23
  380. package/dist/Functions/customEventListener.js +48 -50
  381. package/dist/Functions/dateTime.js +130 -177
  382. package/dist/Functions/fieldValueFormatters.js +275 -346
  383. package/dist/Functions/guards/assertions.js +294 -0
  384. package/dist/Functions/guards/safeValue.js +75 -0
  385. package/dist/Functions/guards/typeGuards.js +374 -0
  386. package/dist/Functions/hooks/useFormFieldsChangesManager.js +125 -96
  387. package/dist/Functions/locale/createTranslator.js +29 -27
  388. package/dist/Functions/operations.js +129 -102
  389. package/dist/Functions/presets/inputMaskPresets.js +88 -99
  390. package/dist/Functions/presets/inputPresets.js +41 -35
  391. package/dist/Functions/presets/mobileKeyboardTypesPresets.js +30 -49
  392. package/dist/Functions/schemas.js +78 -20
  393. package/dist/Functions/useBodyScrollLock.js +21 -15
  394. package/dist/Functions/useClickOutside.js +21 -16
  395. package/dist/Functions/useDebounce.js +62 -21
  396. package/dist/Functions/useFieldFocus.js +83 -79
  397. package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +39 -46
  398. package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +132 -137
  399. package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +63 -73
  400. package/dist/Functions/useFormTools/functions/General.js +117 -129
  401. package/dist/Functions/useFormTools/functions/RenderFields.js +75 -85
  402. package/dist/Functions/useFormTools/functions/usePrevious.js +16 -10
  403. package/dist/Functions/useFormTools/index.js +647 -709
  404. package/dist/Functions/useInputHighlightError.js +104 -53
  405. package/dist/Functions/useIsMobile/index.js +17 -0
  406. package/dist/Functions/useIsMobile/useIsMobile.js +33 -0
  407. package/dist/Functions/useIsMobile/useIsMobile.test.js +104 -0
  408. package/dist/Functions/useKeyPress/useHandleKeyPress.js +40 -33
  409. package/dist/Functions/useKeyPress/useHandleKeyPress.test.js +96 -0
  410. package/dist/Functions/useKeyPress/useKeyPress.js +48 -39
  411. package/dist/Functions/useKeyPress/useKeyPress.test.js +87 -0
  412. package/dist/Functions/useLocalStorage.js +38 -31
  413. package/dist/Functions/useLocationParams.js +31 -24
  414. package/dist/Functions/useMediaQuery.js +14 -10
  415. package/dist/Functions/useMetaInfo.js +45 -35
  416. package/dist/Functions/useMouseUpOutside.js +21 -15
  417. package/dist/Functions/useOnlineStatus.js +25 -21
  418. package/dist/Functions/usePasswordChecker.js +183 -111
  419. package/dist/Functions/usePrevious.js +16 -10
  420. package/dist/Functions/useResize.js +32 -28
  421. package/dist/Functions/useScrollTo.js +26 -16
  422. package/dist/Functions/useToggle.js +20 -16
  423. package/dist/Functions/utils.js +493 -469
  424. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +75 -28
  425. package/dist/Molecular/CustomIcons/components/AlertCircle.js +77 -28
  426. package/dist/Molecular/CustomIcons/components/AppStore.js +84 -32
  427. package/dist/Molecular/CustomIcons/components/Arrow.js +93 -38
  428. package/dist/Molecular/CustomIcons/components/ArrowDown.js +63 -20
  429. package/dist/Molecular/CustomIcons/components/ArrowLeft.js +71 -23
  430. package/dist/Molecular/CustomIcons/components/ArrowRight.js +71 -23
  431. package/dist/Molecular/CustomIcons/components/ArrowUp.js +63 -20
  432. package/dist/Molecular/CustomIcons/components/Bell.js +61 -18
  433. package/dist/Molecular/CustomIcons/components/Button.js +61 -18
  434. package/dist/Molecular/CustomIcons/components/Campaigns.js +62 -19
  435. package/dist/Molecular/CustomIcons/components/Check.js +62 -19
  436. package/dist/Molecular/CustomIcons/components/Check2.js +61 -18
  437. package/dist/Molecular/CustomIcons/components/ChevronDown.js +61 -18
  438. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +61 -18
  439. package/dist/Molecular/CustomIcons/components/ChevronLeft.js +61 -18
  440. package/dist/Molecular/CustomIcons/components/ChevronRight.js +61 -18
  441. package/dist/Molecular/CustomIcons/components/ChevronUp.js +61 -18
  442. package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +81 -33
  443. package/dist/Molecular/CustomIcons/components/Close.js +64 -20
  444. package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +95 -45
  445. package/dist/Molecular/CustomIcons/components/Delete.js +62 -19
  446. package/dist/Molecular/CustomIcons/components/Edit.js +61 -18
  447. package/dist/Molecular/CustomIcons/components/Email.js +87 -36
  448. package/dist/Molecular/CustomIcons/components/FinturfLogo.js +82 -26
  449. package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +83 -34
  450. package/dist/Molecular/CustomIcons/components/Flows.js +61 -18
  451. package/dist/Molecular/CustomIcons/components/Gift.js +71 -23
  452. package/dist/Molecular/CustomIcons/components/GoogleAuth.js +84 -32
  453. package/dist/Molecular/CustomIcons/components/GooglePlay.js +84 -32
  454. package/dist/Molecular/CustomIcons/components/HelpCircle.js +67 -21
  455. package/dist/Molecular/CustomIcons/components/HelpCircle2.js +68 -22
  456. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +67 -21
  457. package/dist/Molecular/CustomIcons/components/Home.js +67 -21
  458. package/dist/Molecular/CustomIcons/components/Home2.js +70 -24
  459. package/dist/Molecular/CustomIcons/components/Key.js +69 -26
  460. package/dist/Molecular/CustomIcons/components/Landers.js +68 -22
  461. package/dist/Molecular/CustomIcons/components/Lock.js +61 -18
  462. package/dist/Molecular/CustomIcons/components/Mail.js +75 -26
  463. package/dist/Molecular/CustomIcons/components/Mastercard.js +128 -68
  464. package/dist/Molecular/CustomIcons/components/Minus.js +79 -31
  465. package/dist/Molecular/CustomIcons/components/Offers.js +62 -19
  466. package/dist/Molecular/CustomIcons/components/Pause.js +79 -31
  467. package/dist/Molecular/CustomIcons/components/PayPal.js +96 -45
  468. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +81 -32
  469. package/dist/Molecular/CustomIcons/components/Phone.js +81 -33
  470. package/dist/Molecular/CustomIcons/components/Play.js +79 -31
  471. package/dist/Molecular/CustomIcons/components/Plus.js +79 -31
  472. package/dist/Molecular/CustomIcons/components/Profile.js +69 -23
  473. package/dist/Molecular/CustomIcons/components/QRCode.js +85 -33
  474. package/dist/Molecular/CustomIcons/components/Rectangle.js +61 -18
  475. package/dist/Molecular/CustomIcons/components/Revert.js +67 -21
  476. package/dist/Molecular/CustomIcons/components/Star.js +60 -17
  477. package/dist/Molecular/CustomIcons/components/Star2.js +62 -19
  478. package/dist/Molecular/CustomIcons/components/TrafficSources.js +68 -21
  479. package/dist/Molecular/CustomIcons/components/Trash.js +61 -18
  480. package/dist/Molecular/CustomIcons/components/TrashRed.js +61 -18
  481. package/dist/Molecular/CustomIcons/components/Triggers.js +61 -18
  482. package/dist/Molecular/CustomIcons/components/User.js +71 -23
  483. package/dist/Molecular/CustomIcons/components/Visa.js +88 -34
  484. package/dist/Molecular/CustomIcons/components/X.js +61 -18
  485. package/dist/Molecular/CustomIcons/index.js +76 -674
  486. package/dist/Molecular/FormElement/FormElement.js +44 -41
  487. package/dist/Molecular/FormElement/FormElement.stories.js +92 -0
  488. package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +179 -161
  489. package/dist/Molecular/FormWithDependOn/FormWithDependOn.stories.js +301 -0
  490. package/dist/Molecular/FormWithDependOn/partials/_utils.js +49 -56
  491. package/dist/Molecular/InputAddress/InputAddress.js +496 -421
  492. package/dist/Molecular/InputAddress/InputAddress.scss +12 -14
  493. package/dist/Molecular/InputAddress/InputAddress.stories.js +541 -0
  494. package/dist/Molecular/InputPassword/InputPassword.js +99 -47
  495. package/dist/Molecular/InputPassword/InputPassword.stories.js +86 -0
  496. package/dist/index.js +11 -8
  497. package/dist/scss/_mixins.scss +2 -2
  498. package/dist/scss/_vars.scss +1 -2
  499. package/dist/scss/main.scss +4 -3
  500. package/dist/types/base.interface.js +4 -0
  501. package/dist/types/base.types.js +4 -0
  502. package/dist/types/declaration/ArrayElement.d.js +4 -0
  503. package/dist/types/declaration/AsyncReturnType.d.js +4 -0
  504. package/dist/types/declaration/DeepPartial.d.js +4 -0
  505. package/dist/types/declaration/DeepReadonly.d.js +4 -0
  506. package/dist/types/declaration/DeepRequired.d.js +4 -0
  507. package/dist/types/declaration/Flatten.d.js +4 -0
  508. package/dist/types/declaration/FunctionType.d.js +4 -0
  509. package/dist/types/declaration/If.d.js +4 -0
  510. package/dist/types/declaration/KeysType.d.js +4 -0
  511. package/dist/types/declaration/NonNullableType.d.js +4 -0
  512. package/dist/types/declaration/ObjectType.d.js +4 -0
  513. package/dist/types/declaration/OnlyObjectKeys.d.js +4 -0
  514. package/dist/types/declaration/PrettyPrint.d.js +31 -0
  515. package/dist/types/declaration/RequiredFields.d.js +4 -0
  516. package/dist/types/declaration/TupleType.d.js +4 -0
  517. package/dist/types/declaration/ValuesType.d.js +4 -0
  518. package/package.json +18 -21
  519. package/dist/Atomic/UI/NavLine/Tabs.js +0 -115
  520. package/dist/Functions/animatingFunctions/getAnimatedHandler.js +0 -1
  521. package/dist/Functions/useIsMobile.js +0 -26
@@ -1,393 +1,513 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
2
  Object.defineProperty(exports, "__esModule", {
5
- value: true
3
+ value: true
6
4
  });
7
- exports.default = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _classnames = _interopRequireDefault(require("classnames"));
11
- var _reactDom = require("react-dom");
12
- var _reactFeather = require("react-feather");
13
- var _fieldValueFormatters = require("../../../Functions/fieldValueFormatters");
14
- var _useDebounce = require("../../../Functions/useDebounce");
15
- var _useIsMobile = _interopRequireDefault(require("../../../Functions/useIsMobile"));
16
- var _Spinner = _interopRequireDefault(require("../../Layout/Spinner/Spinner"));
17
- var _RadioInput = _interopRequireDefault(require("../RadioInput/RadioInput"));
18
- require("./DropdownLiveSearch.scss");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
- const RC = "dropdown-live-search";
22
- const DropdownLiveSearch = _ref => {
23
- let {
24
- label,
25
- value,
26
- error,
27
- disabled,
28
- onChange,
29
- placeholder,
30
- className,
31
- isSearchable,
32
- doRequest,
33
- isLoading,
34
- options = [],
35
- fieldKey,
36
- id,
37
- isListTop,
38
- attributesOfNativeInput = {},
39
- withMobileLogic,
40
- tabIndex,
41
- isNotValidateASCII = false,
42
- noOptionsText = "No options available",
43
- testId = "dropdown-live-search"
44
- } = _ref;
45
- const [dropdownId] = (0, _react.useState)(id || fieldKey || Math.random().toString(16).slice(2));
46
- const [isOpen, setIsOpenState] = (0, _react.useState)(false);
47
- const [isValueDeleted, setIsValueDeleted] = (0, _react.useState)(false);
48
- const {
49
- isMobile: isMobileProp
50
- } = (0, _useIsMobile.default)();
51
- const isMobile = isMobileProp && withMobileLogic && window.screen.width <= 768;
52
- const labelByValue = (0, _react.useMemo)(() => {
53
- return options?.find(item => item.value === value)?.label ?? "";
54
- }, [value, options]);
55
- const [searchValue, setSV] = (0, _react.useState)("");
56
- const [isSearchValueChangedAfterOpen, setIsSearchValueChangedAfterOpen] = (0, _react.useState)(false);
57
- const dropdownLiveSearchRef = (0, _react.useRef)(null);
58
- const dropdownListBoxRef = (0, _react.useRef)(null);
59
- const dropdownListRef = (0, _react.useRef)(null);
60
- const dropdownListHeaderRef = (0, _react.useRef)(null);
61
- const searchInputRef = (0, _react.useRef)(null);
62
- const searchInputModalRef = (0, _react.useRef)(null);
63
- const searchValueRef = (0, _react.useRef)(null);
64
- const wrapperRef = (0, _react.useRef)(null);
65
- const [isFocusedByClick, setIsFocusedByClick] = (0, _react.useState)(false);
66
- const [isScrollableList, setIsScrollableList] = (0, _react.useState)(null);
67
- const [isFixedMaxHeight, setIsFixedMaxHeight] = (0, _react.useState)(false);
68
- const [scrollTop, setScrollTop] = (0, _react.useState)(0);
69
- const [scrollHeight, setScrollHeight] = (0, _react.useState)(1);
70
- const debouncedSearchTerm = (0, _useDebounce.useDebounce)({
71
- searchValue,
72
- delay: 600
73
- });
74
- const doScrollCallback = (0, _react.useCallback)(e => {
75
- if (doRequest && typeof doRequest === "function") {
76
- if (Math.round(e.target.clientHeight + e.target.scrollTop) == e.target.scrollHeight) {
77
- doRequest(searchValueRef.current, true);
78
- }
79
- }
80
- }, [options]);
81
- const setSearchValue = function (val) {
82
- let isChanged = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
83
- if (isChanged) setIsSearchValueChangedAfterOpen(true);
84
- setSV(val);
85
- searchValueRef.current = val;
86
- };
87
- const setIsOpen = v => {
88
- setIsOpenState(v);
89
- setSearchValue("", false);
90
- if (!v) setIsSearchValueChangedAfterOpen(false);
91
- };
92
- const getParentNode = () => {
93
- return document.querySelector("div#root") ?? document.querySelector("div#app") ?? document.querySelector("div#storybook-root");
94
- };
95
- const getListContainer = () => {
96
- return document.getElementById(dropdownId);
97
- };
98
- const onWrapperClick = e => {
99
- if (e.target === wrapperRef?.current) {
100
- e.stopPropagation();
101
- e.preventDefault();
102
- setIsOpen(false);
103
- }
104
- };
105
- const onSearchableInputFocus = e => {
106
- if (!isOpen) {
107
- e.preventDefault();
108
- e.stopPropagation();
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
109
9
  }
110
- };
111
- const handleClickOutside = event => {
112
- if (!dropdownLiveSearchRef.current.contains(event.target) && (!getListContainer() || !getListContainer()?.contains(event.target))) setIsOpen(false);
113
- };
114
- const closeListViaEsc = e => {
115
- if ([27].includes(e.keyCode)) setIsOpen(false);
116
- };
117
- const closeList = isOpen ? handleClickOutside : () => {};
118
- const handle = {
119
- onInputClick: e => {
120
- if (!isOpen) setIsOpen(true);
121
- if (isMobile && withMobileLogic) {
122
- e.preventDefault();
123
- e.stopPropagation();
124
- e.target.blur();
125
- } else {
126
- e.target.select();
127
- }
128
- },
129
- onInputChange: e => {
130
- let inputValue = e.target.value;
131
- if (!isNotValidateASCII) inputValue = (0, _fieldValueFormatters.formatToOnlyASCIICodeText)(inputValue);
132
- setSearchValue(inputValue);
133
- if ((searchValue || !isSearchValueChangedAfterOpen) && !e.target.value) {
134
- onChange("");
135
- setSearchValue("");
136
- setIsValueDeleted(true);
137
- } else setIsValueDeleted(false);
10
+ });
11
+ const _jsxruntime = require("react/jsx-runtime");
12
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
+ const _classnames = /*#__PURE__*/ _interop_require_default(require("classnames"));
14
+ const _reactdom = require("react-dom");
15
+ const _reactfeather = require("react-feather");
16
+ const _fieldValueFormatters = require("../../../Functions/fieldValueFormatters");
17
+ const _useDebounce = require("../../../Functions/useDebounce");
18
+ const _useIsMobile = /*#__PURE__*/ _interop_require_default(require("../../../Functions/useIsMobile/useIsMobile"));
19
+ const _Spinner = /*#__PURE__*/ _interop_require_default(require("../../Layout/Spinner/Spinner"));
20
+ const _RadioInput = /*#__PURE__*/ _interop_require_default(require("../RadioInput/RadioInput"));
21
+ require("./DropdownLiveSearch.scss");
22
+ function _interop_require_default(obj) {
23
+ return obj && obj.__esModule ? obj : {
24
+ default: obj
25
+ };
26
+ }
27
+ function _getRequireWildcardCache(nodeInterop) {
28
+ if (typeof WeakMap !== "function") return null;
29
+ var cacheBabelInterop = new WeakMap();
30
+ var cacheNodeInterop = new WeakMap();
31
+ return (_getRequireWildcardCache = function(nodeInterop) {
32
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
33
+ })(nodeInterop);
34
+ }
35
+ function _interop_require_wildcard(obj, nodeInterop) {
36
+ if (!nodeInterop && obj && obj.__esModule) {
37
+ return obj;
138
38
  }
139
- };
140
- const highlightedText = (text, postfix) => {
141
- if (!isSearchable) return text;else {
142
- const preparedSearchValue = isSearchValueChangedAfterOpen || isMobile && withMobileLogic ? searchValue : labelByValue;
143
- const prepare = text => text?.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
144
- text = text.replace(/["&<>]/g, a => {
39
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
145
40
  return {
146
- '"': "&quot;",
147
- "&": "&amp;",
148
- "<": "&lt;",
149
- ">": "&gt;"
150
- }[a];
151
- });
152
- const main = preparedSearchValue ? text?.replace(new RegExp(prepare(preparedSearchValue), "i"), match => `<span class="bg--yellow">${match}</span>`) : text;
153
- const postfixPart = postfix ? `<span class="dropdown__list-item-postfix">${postfix}</span>` : "";
154
- return main + postfixPart;
155
- }
156
- };
157
- const getMarkupForElement = (item, index, optTestId) => {
158
- const lowerLabel = item.label.toLowerCase();
159
- const lowerSearchValue = searchValue?.toLowerCase();
160
- return /*#__PURE__*/_react.default.createElement("button", {
161
- "data-testid": `${testId}-${optTestId || index}-option`,
162
- key: item.value?.toString()?.replace(/ /g, "_"),
163
- onClick: () => {
164
- onChange(item.value);
165
- setIsOpen(false);
166
- },
167
- className: (0, _classnames.default)(`${RC}__list-item`, {
168
- [`${RC}__list-item_active`]: item.value === value,
169
- [`${RC}__list-item_disabled`]: item.disabled
170
- }, item.className)
171
- }, !isMobile || isMobile && !withMobileLogic && /*#__PURE__*/_react.default.createElement("span", {
172
- className: (0, _classnames.default)(`${RC}__active-icon`, {
173
- [`${RC}__active-icon_active`]: lowerLabel === lowerSearchValue
174
- })
175
- }, /*#__PURE__*/_react.default.createElement(_reactFeather.Check, null)), /*#__PURE__*/_react.default.createElement("p", {
176
- title: item.label,
177
- className: item.labelClassName || "",
178
- dangerouslySetInnerHTML: {
179
- __html: highlightedText(item.label, item.postfix)
180
- }
181
- }), isMobile ? item?.customMobileIcon ?? /*#__PURE__*/_react.default.createElement(_RadioInput.default, {
182
- value: item.value,
183
- checked: value
184
- }) : "");
185
- };
186
- const getListMarkUp = () => {
187
- return /*#__PURE__*/_react.default.createElement("div", {
188
- className: (0, _classnames.default)(`${RC}__container-wrapper`),
189
- ref: wrapperRef,
190
- onClick: isMobile ? onWrapperClick : () => {}
191
- }, /*#__PURE__*/_react.default.createElement("div", {
192
- className: (0, _classnames.default)(`${RC}__list-wrapper`, {
193
- [`${RC}__list-wrapper--fixed-height`]: isFixedMaxHeight,
194
- [`${RC}__list-wrapper--with-bottom-shadow`]: isScrollableList && isMobile,
195
- [`${RC}__list-wrapper--with-bottom-shadow-hidden`]: scrollTop === scrollHeight
196
- })
197
- }, /*#__PURE__*/_react.default.createElement("div", {
198
- id: "dropdown-live-search-list",
199
- className: (0, _classnames.default)(`${RC}__container`, {
200
- [`${RC}__list-top`]: isListTop
201
- }),
202
- ref: dropdownListBoxRef
203
- }, isMobile && /*#__PURE__*/_react.default.createElement("div", {
204
- ref: dropdownListHeaderRef,
205
- className: (0, _classnames.default)(`${RC}__list-header`, {
206
- [`${RC}__list-header-with-shadow`]: isScrollableList && isMobile,
207
- [`${RC}__list-header-with-shadow-hidden`]: scrollTop === 0
208
- })
209
- }, /*#__PURE__*/_react.default.createElement("div", {
210
- className: (0, _classnames.default)(`${RC}__list-header-row`)
211
- }, /*#__PURE__*/_react.default.createElement("div", {
212
- className: (0, _classnames.default)(`${RC}__list-label`)
213
- }, label), /*#__PURE__*/_react.default.createElement("div", {
214
- className: (0, _classnames.default)(`${RC}__list-close-icon`),
215
- onClick: () => setIsOpen(false)
216
- }, /*#__PURE__*/_react.default.createElement(_reactFeather.X, {
217
- onClick: () => setIsOpen(false)
218
- }))), isSearchable && /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
219
- ref: searchInputModalRef,
220
- className: `${RC}__input`,
221
- value: isOpen ? searchValue : labelByValue,
222
- onChange: handle.onInputChange,
223
- placeholder: placeholder,
224
- onFocus: onSearchableInputFocus,
225
- tabIndex: -1
226
- }, attributesOfNativeInput))), /*#__PURE__*/_react.default.createElement("div", {
227
- className: (0, _classnames.default)(`${RC}__list`, {
228
- disabled: isLoading
229
- }),
230
- ref: dropdownListRef
231
- }, options.map(option => getMarkupForElement(option)), !options.length && /*#__PURE__*/_react.default.createElement("div", {
232
- className: `${RC}__list-item ${RC}__list-item--no-options`
233
- }, noOptionsText)), isLoading && isOpen && /*#__PURE__*/_react.default.createElement(_Spinner.default, {
234
- size: options.length <= 3 ? "small" : null
235
- }))));
236
- };
237
- const initListContainer = () => {
238
- const dropdownList = document.createElement("div");
239
- dropdownList.setAttribute("id", dropdownId);
240
- dropdownList.classList.add("dropdown__container");
241
- if (isMobile) {
242
- dropdownList.addEventListener("click", e => {
243
- if (e.target.id === dropdownId) setIsOpen(false);
244
- });
41
+ default: obj
42
+ };
245
43
  }
246
- try {
247
- getListContainer()?.remove();
248
- } finally {
249
- if (isMobile) {
250
- try {
251
- document.getElementById(`mlw-${dropdownId}`)?.remove();
252
- } catch (e) {}
253
- const dropdownMobileListWrapper = document.createElement("div");
254
- dropdownMobileListWrapper.classList.add("dropdown-live-search-mobile");
255
- dropdownMobileListWrapper.setAttribute("id", `mlw-${dropdownId}`);
256
- dropdownMobileListWrapper?.append(dropdownList);
257
- getParentNode()?.append(dropdownMobileListWrapper);
258
- } else {
259
- getParentNode()?.append(dropdownList);
260
- }
261
- }
262
- };
263
- const renderListContainer = () => {
264
- const lc = getListContainer();
265
- if (!lc) return null;
266
- return /*#__PURE__*/(0, _reactDom.createPortal)(getListMarkUp(), lc);
267
- };
268
- (0, _react.useEffect)(() => {
269
- document.addEventListener("click", handleClickOutside, true);
270
- return () => document.removeEventListener("click", handleClickOutside, true);
271
- }, []);
272
- (0, _react.useEffect)(() => {
273
- if (options.length === 1 && searchValue === options[0].label) {
274
- setSearchValue(options[0].label);
275
- onChange(options[0].value);
276
- }
277
- }, [options]);
278
- (0, _react.useEffect)(() => {
279
- if (isSearchable && (debouncedSearchTerm || isValueDeleted)) {
280
- doRequest(debouncedSearchTerm);
281
- if (isValueDeleted) setIsValueDeleted(false);
282
- }
283
- }, [debouncedSearchTerm, isValueDeleted]);
284
- (0, _react.useEffect)(() => {
285
- if (isMobile && withMobileLogic) {
286
- initListContainer();
44
+ var cache = _getRequireWildcardCache(nodeInterop);
45
+ if (cache && cache.has(obj)) {
46
+ return cache.get(obj);
287
47
  }
288
- }, [isMobile, withMobileLogic]);
289
- (0, _react.useEffect)(() => {
290
- if (isOpen && isMobile && dropdownListRef?.current && !searchValue) {
291
- setIsScrollableList(dropdownListRef?.current?.scrollHeight > dropdownListRef?.current?.clientHeight);
292
- setIsFixedMaxHeight(isScrollableList || dropdownListRef?.current?.scrollHeight > dropdownListRef?.current?.clientHeight);
293
- }
294
- }, [isOpen, isMobile, isScrollableList, dropdownListRef?.current, dropdownListRef?.current?.scrollHeight, dropdownListRef?.current?.clientHeight]);
295
- (0, _react.useLayoutEffect)(() => {
296
- const list = document.getElementById("dropdown-live-search-list");
297
- if ((list || isOpen) && (!withMobileLogic || !isMobile)) {
298
- const dropdownWidth = dropdownLiveSearchRef?.current?.clientWidth;
299
- list.style.minWidth = `${dropdownWidth}px`;
300
- }
301
- }, [dropdownLiveSearchRef, isOpen, withMobileLogic]);
302
- (0, _react.useEffect)(() => {
303
- if (!isOpen) {
304
- setIsFocusedByClick(false);
305
- if (withMobileLogic && isMobile) setSearchValue("");
48
+ var newObj = {
49
+ __proto__: null
50
+ };
51
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
52
+ for(var key in obj){
53
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
54
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
55
+ if (desc && (desc.get || desc.set)) {
56
+ Object.defineProperty(newObj, key, desc);
57
+ } else {
58
+ newObj[key] = obj[key];
59
+ }
60
+ }
306
61
  }
307
- if (isOpen && dropdownListRef && dropdownListRef.current) {
308
- if (isMobile && withMobileLogic) {
309
- doRequest("").then(() => {
310
- setTimeout(() => {
311
- dropdownListRef.current.style.maxHeight = `${dropdownListBoxRef?.current?.getBoundingClientRect()?.height - dropdownListHeaderRef?.current?.getBoundingClientRect()?.height}px`;
312
- }, 1);
313
- });
314
- searchInputModalRef?.current?.focus();
315
- }
316
- dropdownListRef.current.addEventListener("scroll", doScrollCallback);
62
+ newObj.default = obj;
63
+ if (cache) {
64
+ cache.set(obj, newObj);
317
65
  }
318
- return () => {
319
- removeEventListener("scroll", doScrollCallback);
66
+ return newObj;
67
+ }
68
+ const RC = "dropdown-live-search";
69
+ const DropdownLiveSearch = ({ label, value, error, disabled, onChange, placeholder, className, isSearchable, doRequest, isLoading, options = [], fieldKey, id, isListTop, attributesOfNativeInput = {}, withMobileLogic, tabIndex, isNotValidateASCII = false, noOptionsText = "No options available", testId = "dropdown-live-search" })=>{
70
+ var _dropdownListRef_current, _dropdownListRef_current1, _tabIndex_toString;
71
+ const [dropdownId] = (0, _react.useState)(id || fieldKey || Math.random().toString(16).slice(2));
72
+ const [isOpen, setIsOpenState] = (0, _react.useState)(false);
73
+ const [isValueDeleted, setIsValueDeleted] = (0, _react.useState)(false);
74
+ const { isMobile: isMobileProp } = (0, _useIsMobile.default)();
75
+ const isMobile = isMobileProp && withMobileLogic && window.screen.width <= 768;
76
+ const labelByValue = (0, _react.useMemo)(()=>{
77
+ var _options_find;
78
+ var _options_find_label;
79
+ return (_options_find_label = options === null || options === void 0 ? void 0 : (_options_find = options.find((item)=>item.value === value)) === null || _options_find === void 0 ? void 0 : _options_find.label) !== null && _options_find_label !== void 0 ? _options_find_label : "";
80
+ }, [
81
+ value,
82
+ options
83
+ ]);
84
+ const [searchValue, setSV] = (0, _react.useState)("");
85
+ const [isSearchValueChangedAfterOpen, setIsSearchValueChangedAfterOpen] = (0, _react.useState)(false);
86
+ const dropdownLiveSearchRef = (0, _react.useRef)(null);
87
+ const dropdownListBoxRef = (0, _react.useRef)(null);
88
+ const dropdownListRef = (0, _react.useRef)(null);
89
+ const dropdownListHeaderRef = (0, _react.useRef)(null);
90
+ const searchInputRef = (0, _react.useRef)(null);
91
+ const searchInputModalRef = (0, _react.useRef)(null);
92
+ const searchValueRef = (0, _react.useRef)(null);
93
+ const wrapperRef = (0, _react.useRef)(null);
94
+ const [isFocusedByClick, setIsFocusedByClick] = (0, _react.useState)(false);
95
+ const [isScrollableList, setIsScrollableList] = (0, _react.useState)(null);
96
+ const [isFixedMaxHeight, setIsFixedMaxHeight] = (0, _react.useState)(false);
97
+ const [scrollTop, setScrollTop] = (0, _react.useState)(0);
98
+ const [scrollHeight, setScrollHeight] = (0, _react.useState)(1);
99
+ const debouncedSearchTerm = (0, _useDebounce.useDebounce)({
100
+ searchValue,
101
+ delay: 600
102
+ });
103
+ const doScrollCallback = (0, _react.useCallback)((e)=>{
104
+ if (doRequest && typeof doRequest === "function") {
105
+ if (Math.round(e.target.clientHeight + e.target.scrollTop) == e.target.scrollHeight) {
106
+ doRequest(searchValueRef.current, true);
107
+ }
108
+ }
109
+ }, [
110
+ options
111
+ ]);
112
+ const setSearchValue = (val, isChanged = true)=>{
113
+ if (isChanged) setIsSearchValueChangedAfterOpen(true);
114
+ setSV(val);
115
+ searchValueRef.current = val;
320
116
  };
321
- }, [isOpen, dropdownListRef]);
322
- (0, _react.useLayoutEffect)(() => {
323
- if (!isMobile) {
324
- window.addEventListener("mousewheel", closeList);
325
- window.addEventListener("scroll", closeList);
326
- window.addEventListener("touchmove", closeList);
327
- } else {
328
- window.removeEventListener("mousewheel", closeList);
329
- window.removeEventListener("scroll", closeList);
330
- window.removeEventListener("touchmove", closeList);
331
- }
332
- getListContainer()?.addEventListener("click", closeList);
333
- window.addEventListener("keyup", closeListViaEsc);
334
- return () => {
335
- window.removeEventListener("mousewheel", closeList);
336
- window.removeEventListener("scroll", closeList);
337
- window.removeEventListener("touchmove", closeList);
338
- window.removeEventListener("keyup", closeListViaEsc);
339
- getListContainer()?.removeEventListener("click", closeList);
117
+ const setIsOpen = (v)=>{
118
+ setIsOpenState(v);
119
+ setSearchValue("", false);
120
+ if (!v) setIsSearchValueChangedAfterOpen(false);
340
121
  };
341
- }, [getListContainer]);
342
- (0, _react.useEffect)(() => {
343
- const setScrollTopValue = e => {
344
- setScrollTop(parseInt(e.target.scrollTop, 10));
122
+ const getParentNode = ()=>{
123
+ var _document_querySelector, _ref;
124
+ return (_ref = (_document_querySelector = document.querySelector("div#root")) !== null && _document_querySelector !== void 0 ? _document_querySelector : document.querySelector("div#app")) !== null && _ref !== void 0 ? _ref : document.querySelector("div#storybook-root");
345
125
  };
346
- if (isOpen && isMobile && dropdownListRef?.current) {
347
- dropdownListRef?.current?.addEventListener("scroll", setScrollTopValue);
348
- }
349
- return () => {
350
- dropdownListRef?.current?.removeEventListener("scroll", setScrollTopValue);
126
+ const getListContainer = ()=>{
127
+ return document.getElementById(dropdownId);
351
128
  };
352
- }, [isOpen, isMobile, dropdownListRef?.current]);
353
- (0, _react.useEffect)(() => {
354
- if (dropdownListRef?.current) {
355
- setScrollHeight(parseInt(dropdownListRef?.current?.scrollHeight - dropdownListRef?.current?.clientHeight, 10));
356
- }
357
- }, [scrollTop, dropdownListRef?.current]);
358
- if (!options) return null;
359
- return /*#__PURE__*/_react.default.createElement("div", {
360
- className: (0, _classnames.default)(RC, className, {
361
- disabled,
362
- [`${RC}-mobile`]: isMobile,
363
- [`${RC}--focused`]: isOpen
364
- }),
365
- ref: dropdownLiveSearchRef
366
- }, /*#__PURE__*/_react.default.createElement("button", {
367
- "data-testid": testId,
368
- className: `${RC}__trigger input__wrap ${isOpen ? "input__wrap--focus" : ""} ${!value ? "placeholder" : ""} ${error ? "error" : ""}`,
369
- onClick: () => !isSearchable ? setIsOpen(!isOpen) : null,
370
- onMouseDown: () => setIsFocusedByClick(true),
371
- onFocus: () => !isFocusedByClick ? setIsOpen(true) : null,
372
- tabIndex: tabIndex?.toString?.()
373
- }, isSearchable ? /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
374
- ref: searchInputRef,
375
- className: `${RC}__input`,
376
- value: isOpen ? isMobile && withMobileLogic || !isSearchValueChangedAfterOpen ? labelByValue : searchValue : labelByValue,
377
- onChange: handle.onInputChange,
378
- placeholder: placeholder,
379
- onFocus: onSearchableInputFocus,
380
- onClick: handle.onInputClick,
381
- tabIndex: -1
382
- }, attributesOfNativeInput)) : /*#__PURE__*/_react.default.createElement("span", {
383
- className: "text"
384
- }, labelByValue || placeholder), /*#__PURE__*/_react.default.createElement("span", {
385
- className: (0, _classnames.default)(`${RC}__arrow`, {
386
- [`${RC}__arrow_active`]: isOpen
387
- }),
388
- onClick: () => setIsOpen(!isOpen)
389
- }, isMobile ? /*#__PURE__*/_react.default.createElement(_reactFeather.Code, {
390
- className: "mobile-icon"
391
- }) : isOpen ? /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronUp, null) : /*#__PURE__*/_react.default.createElement(_reactFeather.ChevronDown, null))), isOpen && (isMobile && withMobileLogic ? renderListContainer() : getListMarkUp()));
129
+ const onWrapperClick = (e)=>{
130
+ if (e.target === (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current)) {
131
+ e.stopPropagation();
132
+ e.preventDefault();
133
+ setIsOpen(false);
134
+ }
135
+ };
136
+ const onSearchableInputFocus = (e)=>{
137
+ if (!isOpen) {
138
+ e.preventDefault();
139
+ e.stopPropagation();
140
+ }
141
+ };
142
+ const handleClickOutside = (event)=>{
143
+ var _getListContainer;
144
+ if (!dropdownLiveSearchRef.current.contains(event.target) && (!getListContainer() || !((_getListContainer = getListContainer()) === null || _getListContainer === void 0 ? void 0 : _getListContainer.contains(event.target)))) setIsOpen(false);
145
+ };
146
+ const closeListViaEsc = (e)=>{
147
+ if ([
148
+ 27
149
+ ].includes(e.keyCode)) setIsOpen(false);
150
+ };
151
+ const closeList = isOpen ? handleClickOutside : ()=>{};
152
+ const handle = {
153
+ onInputClick: (e)=>{
154
+ if (!isOpen) setIsOpen(true);
155
+ if (isMobile && withMobileLogic) {
156
+ e.preventDefault();
157
+ e.stopPropagation();
158
+ e.target.blur();
159
+ } else {
160
+ e.target.select();
161
+ }
162
+ },
163
+ onInputChange: (e)=>{
164
+ let inputValue = e.target.value;
165
+ if (!isNotValidateASCII) inputValue = (0, _fieldValueFormatters.formatToOnlyASCIICodeText)(inputValue);
166
+ setSearchValue(inputValue);
167
+ if ((searchValue || !isSearchValueChangedAfterOpen) && !e.target.value) {
168
+ onChange("");
169
+ setSearchValue("");
170
+ setIsValueDeleted(true);
171
+ } else setIsValueDeleted(false);
172
+ }
173
+ };
174
+ const highlightedText = (text, postfix)=>{
175
+ if (!isSearchable) return text;
176
+ else {
177
+ const preparedSearchValue = isSearchValueChangedAfterOpen || isMobile && withMobileLogic ? searchValue : labelByValue;
178
+ const prepare = (text)=>text === null || text === void 0 ? void 0 : text.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&");
179
+ text = text.replace(/["&<>]/g, (a)=>{
180
+ return ({
181
+ '"': "&quot;",
182
+ "&": "&amp;",
183
+ "<": "&lt;",
184
+ ">": "&gt;"
185
+ })[a];
186
+ });
187
+ const main = preparedSearchValue ? text === null || text === void 0 ? void 0 : text.replace(new RegExp(prepare(preparedSearchValue), "i"), (match)=>`<span class="bg--yellow">${match}</span>`) : text;
188
+ const postfixPart = postfix ? `<span class="dropdown__list-item-postfix">${postfix}</span>` : "";
189
+ return main + postfixPart;
190
+ }
191
+ };
192
+ const getMarkupForElement = (item, index, optTestId)=>{
193
+ var _item_value_toString, _item_value;
194
+ const lowerLabel = item.label.toLowerCase();
195
+ const lowerSearchValue = searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase();
196
+ var _item_customMobileIcon;
197
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("button", {
198
+ "data-testid": `${testId}-${optTestId || index}-option`,
199
+ onClick: ()=>{
200
+ onChange(item.value);
201
+ setIsOpen(false);
202
+ },
203
+ className: (0, _classnames.default)(`${RC}__list-item`, {
204
+ [`${RC}__list-item_active`]: item.value === value,
205
+ [`${RC}__list-item_disabled`]: item.disabled
206
+ }, item.className),
207
+ children: [
208
+ !isMobile || isMobile && !withMobileLogic && /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
209
+ className: (0, _classnames.default)(`${RC}__active-icon`, {
210
+ [`${RC}__active-icon_active`]: lowerLabel === lowerSearchValue
211
+ }),
212
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.Check, {})
213
+ }),
214
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("p", {
215
+ title: item.label,
216
+ className: item.labelClassName || "",
217
+ dangerouslySetInnerHTML: {
218
+ __html: highlightedText(item.label, item.postfix)
219
+ }
220
+ }),
221
+ isMobile ? (_item_customMobileIcon = item === null || item === void 0 ? void 0 : item.customMobileIcon) !== null && _item_customMobileIcon !== void 0 ? _item_customMobileIcon : /*#__PURE__*/ (0, _jsxruntime.jsx)(_RadioInput.default, {
222
+ value: item.value,
223
+ checked: value
224
+ }) : ""
225
+ ]
226
+ }, (_item_value = item.value) === null || _item_value === void 0 ? void 0 : (_item_value_toString = _item_value.toString()) === null || _item_value_toString === void 0 ? void 0 : _item_value_toString.replace(/ /g, "_"));
227
+ };
228
+ const getListMarkUp = ()=>{
229
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
230
+ className: (0, _classnames.default)(`${RC}__container-wrapper`),
231
+ ref: wrapperRef,
232
+ onClick: isMobile ? onWrapperClick : ()=>{},
233
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
234
+ className: (0, _classnames.default)(`${RC}__list-wrapper`, {
235
+ [`${RC}__list-wrapper--fixed-height`]: isFixedMaxHeight,
236
+ [`${RC}__list-wrapper--with-bottom-shadow`]: isScrollableList && isMobile,
237
+ [`${RC}__list-wrapper--with-bottom-shadow-hidden`]: scrollTop === scrollHeight
238
+ }),
239
+ children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
240
+ id: "dropdown-live-search-list",
241
+ className: (0, _classnames.default)(`${RC}__container`, {
242
+ [`${RC}__list-top`]: isListTop
243
+ }),
244
+ ref: dropdownListBoxRef,
245
+ children: [
246
+ isMobile && /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
247
+ ref: dropdownListHeaderRef,
248
+ className: (0, _classnames.default)(`${RC}__list-header`, {
249
+ [`${RC}__list-header-with-shadow`]: isScrollableList && isMobile,
250
+ [`${RC}__list-header-with-shadow-hidden`]: scrollTop === 0
251
+ }),
252
+ children: [
253
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
254
+ className: (0, _classnames.default)(`${RC}__list-header-row`),
255
+ children: [
256
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
257
+ className: (0, _classnames.default)(`${RC}__list-label`),
258
+ children: label
259
+ }),
260
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
261
+ className: (0, _classnames.default)(`${RC}__list-close-icon`),
262
+ onClick: ()=>setIsOpen(false),
263
+ children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.X, {
264
+ onClick: ()=>setIsOpen(false)
265
+ })
266
+ })
267
+ ]
268
+ }),
269
+ isSearchable && /*#__PURE__*/ (0, _jsxruntime.jsx)("input", {
270
+ ref: searchInputModalRef,
271
+ className: `${RC}__input`,
272
+ value: isOpen ? searchValue : labelByValue,
273
+ onChange: handle.onInputChange,
274
+ placeholder: placeholder,
275
+ onFocus: onSearchableInputFocus,
276
+ tabIndex: -1,
277
+ ...attributesOfNativeInput
278
+ })
279
+ ]
280
+ }),
281
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
282
+ className: (0, _classnames.default)(`${RC}__list`, {
283
+ disabled: isLoading
284
+ }),
285
+ ref: dropdownListRef,
286
+ children: [
287
+ options.map((option)=>getMarkupForElement(option)),
288
+ !options.length && /*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
289
+ className: `${RC}__list-item ${RC}__list-item--no-options`,
290
+ children: noOptionsText
291
+ })
292
+ ]
293
+ }),
294
+ isLoading && isOpen && /*#__PURE__*/ (0, _jsxruntime.jsx)(_Spinner.default, {
295
+ size: options.length <= 3 ? "small" : null
296
+ })
297
+ ]
298
+ })
299
+ })
300
+ });
301
+ };
302
+ const initListContainer = ()=>{
303
+ const dropdownList = document.createElement("div");
304
+ dropdownList.setAttribute("id", dropdownId);
305
+ dropdownList.classList.add("dropdown__container");
306
+ if (isMobile) {
307
+ dropdownList.addEventListener("click", (e)=>{
308
+ if (e.target.id === dropdownId) setIsOpen(false);
309
+ });
310
+ }
311
+ try {
312
+ var _getListContainer;
313
+ (_getListContainer = getListContainer()) === null || _getListContainer === void 0 ? void 0 : _getListContainer.remove();
314
+ } finally{
315
+ if (isMobile) {
316
+ var _getParentNode;
317
+ try {
318
+ var _document_getElementById;
319
+ (_document_getElementById = document.getElementById(`mlw-${dropdownId}`)) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.remove();
320
+ } catch (e) {}
321
+ const dropdownMobileListWrapper = document.createElement("div");
322
+ dropdownMobileListWrapper.classList.add("dropdown-live-search-mobile");
323
+ dropdownMobileListWrapper.setAttribute("id", `mlw-${dropdownId}`);
324
+ dropdownMobileListWrapper === null || dropdownMobileListWrapper === void 0 ? void 0 : dropdownMobileListWrapper.append(dropdownList);
325
+ (_getParentNode = getParentNode()) === null || _getParentNode === void 0 ? void 0 : _getParentNode.append(dropdownMobileListWrapper);
326
+ } else {
327
+ var _getParentNode1;
328
+ (_getParentNode1 = getParentNode()) === null || _getParentNode1 === void 0 ? void 0 : _getParentNode1.append(dropdownList);
329
+ }
330
+ }
331
+ };
332
+ const renderListContainer = ()=>{
333
+ const lc = getListContainer();
334
+ if (!lc) return null;
335
+ return /*#__PURE__*/ (0, _reactdom.createPortal)(getListMarkUp(), lc);
336
+ };
337
+ (0, _react.useEffect)(()=>{
338
+ document.addEventListener("click", handleClickOutside, true);
339
+ return ()=>document.removeEventListener("click", handleClickOutside, true);
340
+ }, []);
341
+ (0, _react.useEffect)(()=>{
342
+ if (options.length === 1 && searchValue === options[0].label) {
343
+ setSearchValue(options[0].label);
344
+ onChange(options[0].value);
345
+ }
346
+ }, [
347
+ options
348
+ ]);
349
+ (0, _react.useEffect)(()=>{
350
+ if (isSearchable && (debouncedSearchTerm || isValueDeleted)) {
351
+ doRequest(debouncedSearchTerm);
352
+ if (isValueDeleted) setIsValueDeleted(false);
353
+ }
354
+ }, [
355
+ debouncedSearchTerm,
356
+ isValueDeleted
357
+ ]);
358
+ (0, _react.useEffect)(()=>{
359
+ if (isMobile && withMobileLogic) {
360
+ initListContainer();
361
+ }
362
+ }, [
363
+ isMobile,
364
+ withMobileLogic
365
+ ]);
366
+ (0, _react.useEffect)(()=>{
367
+ if (isOpen && isMobile && (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current) && !searchValue) {
368
+ var _dropdownListRef_current, _dropdownListRef_current1, _dropdownListRef_current2, _dropdownListRef_current3;
369
+ setIsScrollableList((dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current = dropdownListRef.current) === null || _dropdownListRef_current === void 0 ? void 0 : _dropdownListRef_current.scrollHeight) > (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current1 = dropdownListRef.current) === null || _dropdownListRef_current1 === void 0 ? void 0 : _dropdownListRef_current1.clientHeight));
370
+ setIsFixedMaxHeight(isScrollableList || (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current2 = dropdownListRef.current) === null || _dropdownListRef_current2 === void 0 ? void 0 : _dropdownListRef_current2.scrollHeight) > (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current3 = dropdownListRef.current) === null || _dropdownListRef_current3 === void 0 ? void 0 : _dropdownListRef_current3.clientHeight));
371
+ }
372
+ }, [
373
+ isOpen,
374
+ isMobile,
375
+ isScrollableList,
376
+ dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current,
377
+ dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current = dropdownListRef.current) === null || _dropdownListRef_current === void 0 ? void 0 : _dropdownListRef_current.scrollHeight,
378
+ dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current1 = dropdownListRef.current) === null || _dropdownListRef_current1 === void 0 ? void 0 : _dropdownListRef_current1.clientHeight
379
+ ]);
380
+ (0, _react.useLayoutEffect)(()=>{
381
+ const list = document.getElementById("dropdown-live-search-list");
382
+ if ((list || isOpen) && (!withMobileLogic || !isMobile)) {
383
+ var _dropdownLiveSearchRef_current;
384
+ const dropdownWidth = dropdownLiveSearchRef === null || dropdownLiveSearchRef === void 0 ? void 0 : (_dropdownLiveSearchRef_current = dropdownLiveSearchRef.current) === null || _dropdownLiveSearchRef_current === void 0 ? void 0 : _dropdownLiveSearchRef_current.clientWidth;
385
+ list.style.minWidth = `${dropdownWidth}px`;
386
+ }
387
+ }, [
388
+ dropdownLiveSearchRef,
389
+ isOpen,
390
+ withMobileLogic
391
+ ]);
392
+ (0, _react.useEffect)(()=>{
393
+ if (!isOpen) {
394
+ setIsFocusedByClick(false);
395
+ if (withMobileLogic && isMobile) setSearchValue("");
396
+ }
397
+ if (isOpen && dropdownListRef && dropdownListRef.current) {
398
+ if (isMobile && withMobileLogic) {
399
+ var _searchInputModalRef_current;
400
+ doRequest("").then(()=>{
401
+ setTimeout(()=>{
402
+ var _dropdownListBoxRef_current_getBoundingClientRect, _dropdownListBoxRef_current, _dropdownListHeaderRef_current_getBoundingClientRect, _dropdownListHeaderRef_current;
403
+ dropdownListRef.current.style.maxHeight = `${(dropdownListBoxRef === null || dropdownListBoxRef === void 0 ? void 0 : (_dropdownListBoxRef_current = dropdownListBoxRef.current) === null || _dropdownListBoxRef_current === void 0 ? void 0 : (_dropdownListBoxRef_current_getBoundingClientRect = _dropdownListBoxRef_current.getBoundingClientRect()) === null || _dropdownListBoxRef_current_getBoundingClientRect === void 0 ? void 0 : _dropdownListBoxRef_current_getBoundingClientRect.height) - (dropdownListHeaderRef === null || dropdownListHeaderRef === void 0 ? void 0 : (_dropdownListHeaderRef_current = dropdownListHeaderRef.current) === null || _dropdownListHeaderRef_current === void 0 ? void 0 : (_dropdownListHeaderRef_current_getBoundingClientRect = _dropdownListHeaderRef_current.getBoundingClientRect()) === null || _dropdownListHeaderRef_current_getBoundingClientRect === void 0 ? void 0 : _dropdownListHeaderRef_current_getBoundingClientRect.height)}px`;
404
+ }, 1);
405
+ });
406
+ searchInputModalRef === null || searchInputModalRef === void 0 ? void 0 : (_searchInputModalRef_current = searchInputModalRef.current) === null || _searchInputModalRef_current === void 0 ? void 0 : _searchInputModalRef_current.focus();
407
+ }
408
+ dropdownListRef.current.addEventListener("scroll", doScrollCallback);
409
+ }
410
+ return ()=>{
411
+ removeEventListener("scroll", doScrollCallback);
412
+ };
413
+ }, [
414
+ isOpen,
415
+ dropdownListRef
416
+ ]);
417
+ (0, _react.useLayoutEffect)(()=>{
418
+ var _getListContainer;
419
+ if (!isMobile) {
420
+ window.addEventListener("mousewheel", closeList);
421
+ window.addEventListener("scroll", closeList);
422
+ window.addEventListener("touchmove", closeList);
423
+ } else {
424
+ window.removeEventListener("mousewheel", closeList);
425
+ window.removeEventListener("scroll", closeList);
426
+ window.removeEventListener("touchmove", closeList);
427
+ }
428
+ (_getListContainer = getListContainer()) === null || _getListContainer === void 0 ? void 0 : _getListContainer.addEventListener("click", closeList);
429
+ window.addEventListener("keyup", closeListViaEsc);
430
+ return ()=>{
431
+ var _getListContainer;
432
+ window.removeEventListener("mousewheel", closeList);
433
+ window.removeEventListener("scroll", closeList);
434
+ window.removeEventListener("touchmove", closeList);
435
+ window.removeEventListener("keyup", closeListViaEsc);
436
+ (_getListContainer = getListContainer()) === null || _getListContainer === void 0 ? void 0 : _getListContainer.removeEventListener("click", closeList);
437
+ };
438
+ }, [
439
+ getListContainer
440
+ ]);
441
+ (0, _react.useEffect)(()=>{
442
+ const setScrollTopValue = (e)=>{
443
+ setScrollTop(parseInt(e.target.scrollTop, 10));
444
+ };
445
+ if (isOpen && isMobile && (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current)) {
446
+ var _dropdownListRef_current;
447
+ dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current = dropdownListRef.current) === null || _dropdownListRef_current === void 0 ? void 0 : _dropdownListRef_current.addEventListener("scroll", setScrollTopValue);
448
+ }
449
+ return ()=>{
450
+ var _dropdownListRef_current;
451
+ dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current = dropdownListRef.current) === null || _dropdownListRef_current === void 0 ? void 0 : _dropdownListRef_current.removeEventListener("scroll", setScrollTopValue);
452
+ };
453
+ }, [
454
+ isOpen,
455
+ isMobile,
456
+ dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current
457
+ ]);
458
+ (0, _react.useEffect)(()=>{
459
+ if (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current) {
460
+ var _dropdownListRef_current, _dropdownListRef_current1;
461
+ setScrollHeight(parseInt((dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current = dropdownListRef.current) === null || _dropdownListRef_current === void 0 ? void 0 : _dropdownListRef_current.scrollHeight) - (dropdownListRef === null || dropdownListRef === void 0 ? void 0 : (_dropdownListRef_current1 = dropdownListRef.current) === null || _dropdownListRef_current1 === void 0 ? void 0 : _dropdownListRef_current1.clientHeight), 10));
462
+ }
463
+ }, [
464
+ scrollTop,
465
+ dropdownListRef === null || dropdownListRef === void 0 ? void 0 : dropdownListRef.current
466
+ ]);
467
+ if (!options) return null;
468
+ return /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
469
+ className: (0, _classnames.default)(RC, className, {
470
+ disabled,
471
+ [`${RC}-mobile`]: isMobile,
472
+ [`${RC}--focused`]: isOpen
473
+ }),
474
+ ref: dropdownLiveSearchRef,
475
+ children: [
476
+ /*#__PURE__*/ (0, _jsxruntime.jsxs)("button", {
477
+ "data-testid": testId,
478
+ className: `${RC}__trigger input__wrap ${isOpen ? "input__wrap--focus" : ""} ${!value ? "placeholder" : ""} ${error ? "error" : ""}`,
479
+ onClick: ()=>!isSearchable ? setIsOpen(!isOpen) : null,
480
+ onMouseDown: ()=>setIsFocusedByClick(true),
481
+ onFocus: ()=>!isFocusedByClick ? setIsOpen(true) : null,
482
+ tabIndex: tabIndex === null || tabIndex === void 0 ? void 0 : (_tabIndex_toString = tabIndex.toString) === null || _tabIndex_toString === void 0 ? void 0 : _tabIndex_toString.call(tabIndex),
483
+ children: [
484
+ isSearchable ? /*#__PURE__*/ (0, _jsxruntime.jsx)("input", {
485
+ ref: searchInputRef,
486
+ className: `${RC}__input`,
487
+ value: isOpen ? isMobile && withMobileLogic || !isSearchValueChangedAfterOpen ? labelByValue : searchValue : labelByValue,
488
+ onChange: handle.onInputChange,
489
+ placeholder: placeholder,
490
+ onFocus: onSearchableInputFocus,
491
+ onClick: handle.onInputClick,
492
+ tabIndex: -1,
493
+ ...attributesOfNativeInput
494
+ }) : /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
495
+ className: "text",
496
+ children: labelByValue || placeholder
497
+ }),
498
+ /*#__PURE__*/ (0, _jsxruntime.jsx)("span", {
499
+ className: (0, _classnames.default)(`${RC}__arrow`, {
500
+ [`${RC}__arrow_active`]: isOpen
501
+ }),
502
+ onClick: ()=>setIsOpen(!isOpen),
503
+ children: isMobile ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.Code, {
504
+ className: "mobile-icon"
505
+ }) : isOpen ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.ChevronUp, {}) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactfeather.ChevronDown, {})
506
+ })
507
+ ]
508
+ }),
509
+ isOpen && (isMobile && withMobileLogic ? renderListContainer() : getListMarkUp())
510
+ ]
511
+ });
392
512
  };
393
- var _default = exports.default = DropdownLiveSearch;
513
+ const _default = DropdownLiveSearch;