@skbkontur/react-ui 4.2.2 → 4.4.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 (694) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -17
  3. package/cjs/components/Autocomplete/Autocomplete.js +13 -7
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +4 -5
  6. package/cjs/components/Button/Button.js +8 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.mixins.js +1 -1
  9. package/cjs/components/Button/Button.mixins.js.map +1 -1
  10. package/cjs/components/Button/Button.styles.js +18 -18
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +4 -3
  13. package/cjs/components/Center/Center.js +9 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.js +4 -2
  16. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -1
  18. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  19. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  20. package/cjs/components/ComboBox/ComboBox.d.ts +8 -13
  21. package/cjs/components/ComboBox/ComboBox.js +12 -2
  22. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  24. package/cjs/components/CurrencyInput/CurrencyInput.js +25 -10
  25. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  26. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  27. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
  28. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
  31. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  32. package/cjs/components/DateInput/DateFragmentsView.d.ts +1 -1
  33. package/cjs/components/DateInput/DateFragmentsView.js +10 -1
  34. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  35. package/cjs/components/DateInput/DateInput.d.ts +9 -12
  36. package/cjs/components/DateInput/DateInput.js +11 -3
  37. package/cjs/components/DateInput/DateInput.js.map +1 -1
  38. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -2
  39. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  40. package/cjs/components/DateInput/helpers/SelectionHelpers.js +2 -2
  41. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  42. package/cjs/components/DatePicker/DatePicker.d.ts +7 -9
  43. package/cjs/components/DatePicker/DatePicker.js +23 -9
  44. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  45. package/cjs/components/DatePicker/Picker.js +5 -1
  46. package/cjs/components/DatePicker/Picker.js.map +1 -1
  47. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  48. package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
  49. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  50. package/cjs/components/FileUploader/FileUploader.js +2 -2
  51. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  52. package/cjs/components/FileUploader/FileUploader.md +8 -1
  53. package/cjs/components/FxInput/FxInput.d.ts +6 -6
  54. package/cjs/components/FxInput/FxInput.js +16 -11
  55. package/cjs/components/FxInput/FxInput.js.map +1 -1
  56. package/cjs/components/Gapped/Gapped.d.ts +7 -8
  57. package/cjs/components/Gapped/Gapped.js +12 -6
  58. package/cjs/components/Gapped/Gapped.js.map +1 -1
  59. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  60. package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
  61. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  62. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  63. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  64. package/cjs/components/Hint/Hint.d.ts +8 -12
  65. package/cjs/components/Hint/Hint.js +15 -5
  66. package/cjs/components/Hint/Hint.js.map +1 -1
  67. package/cjs/components/Hint/Hint.md +14 -0
  68. package/cjs/components/Input/Input.d.ts +4 -3
  69. package/cjs/components/Input/Input.js +10 -5
  70. package/cjs/components/Input/Input.js.map +1 -1
  71. package/cjs/components/Input/Input.md +5 -1
  72. package/cjs/components/Kebab/Kebab.d.ts +8 -15
  73. package/cjs/components/Kebab/Kebab.js +14 -5
  74. package/cjs/components/Kebab/Kebab.js.map +1 -1
  75. package/cjs/components/Link/Link.d.ts +5 -7
  76. package/cjs/components/Link/Link.js +12 -5
  77. package/cjs/components/Link/Link.js.map +1 -1
  78. package/cjs/components/Loader/Loader.d.ts +9 -5
  79. package/cjs/components/Loader/Loader.js +15 -4
  80. package/cjs/components/Loader/Loader.js.map +1 -1
  81. package/cjs/components/Loader/__stories__/LoaderAndButton.js +6 -0
  82. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  83. package/cjs/components/MenuItem/MenuItem.js +3 -1
  84. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  85. package/cjs/components/Modal/Modal.d.ts +4 -3
  86. package/cjs/components/Modal/Modal.js +9 -4
  87. package/cjs/components/Modal/Modal.js.map +1 -1
  88. package/cjs/components/Modal/Modal.styles.d.ts +2 -2
  89. package/cjs/components/Modal/Modal.styles.js +2 -2
  90. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  91. package/cjs/components/Modal/ModalBody.js +2 -2
  92. package/cjs/components/Modal/ModalBody.js.map +1 -1
  93. package/cjs/components/Paging/Paging.d.ts +7 -10
  94. package/cjs/components/Paging/Paging.js +16 -6
  95. package/cjs/components/Paging/Paging.js.map +1 -1
  96. package/cjs/components/Paging/PagingDefaultComponent.d.ts +3 -3
  97. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  98. package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
  99. package/cjs/components/PasswordInput/PasswordInput.js +14 -7
  100. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  101. package/cjs/components/Radio/Radio.d.ts +4 -3
  102. package/cjs/components/Radio/Radio.js +11 -4
  103. package/cjs/components/Radio/Radio.js.map +1 -1
  104. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
  105. package/cjs/components/RadioGroup/RadioGroup.js +4 -2
  106. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  107. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +2 -2
  108. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  109. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +7 -8
  110. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
  111. package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
  112. package/cjs/components/ScrollContainer/ScrollContainer.js +12 -6
  113. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  114. package/cjs/components/Select/Item.d.ts +4 -2
  115. package/cjs/components/Select/Item.js +3 -0
  116. package/cjs/components/Select/Item.js.map +1 -1
  117. package/cjs/components/Select/Select.d.ts +3 -12
  118. package/cjs/components/Select/Select.js +8 -1
  119. package/cjs/components/Select/Select.js.map +1 -1
  120. package/cjs/components/Select/Select.styles.js +4 -4
  121. package/cjs/components/Select/Select.styles.js.map +1 -1
  122. package/cjs/components/SidePage/SidePage.d.ts +5 -6
  123. package/cjs/components/SidePage/SidePage.js +8 -1
  124. package/cjs/components/SidePage/SidePage.js.map +1 -1
  125. package/cjs/components/SidePage/SidePageFooter.d.ts +6 -4
  126. package/cjs/components/SidePage/SidePageFooter.js +4 -0
  127. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  128. package/cjs/components/Spinner/Spinner.d.ts +4 -2
  129. package/cjs/components/Spinner/Spinner.js +10 -4
  130. package/cjs/components/Spinner/Spinner.js.map +1 -1
  131. package/cjs/components/Spinner/Spinner.styles.d.ts +1 -1
  132. package/cjs/components/Spinner/Spinner.styles.js +7 -7
  133. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  134. package/cjs/components/Sticky/Sticky.d.ts +5 -4
  135. package/cjs/components/Sticky/Sticky.js +9 -2
  136. package/cjs/components/Sticky/Sticky.js.map +1 -1
  137. package/cjs/components/Tabs/Indicator.d.ts +1 -1
  138. package/cjs/components/Tabs/Indicator.js +1 -1
  139. package/cjs/components/Tabs/Indicator.js.map +1 -1
  140. package/cjs/components/Tabs/Tab.d.ts +4 -4
  141. package/cjs/components/Tabs/Tab.js +11 -13
  142. package/cjs/components/Tabs/Tab.js.map +1 -1
  143. package/cjs/components/Tabs/Tabs.d.ts +4 -4
  144. package/cjs/components/Tabs/Tabs.js +12 -3
  145. package/cjs/components/Tabs/Tabs.js.map +1 -1
  146. package/cjs/components/Textarea/Textarea.d.ts +8 -10
  147. package/cjs/components/Textarea/Textarea.js +13 -7
  148. package/cjs/components/Textarea/Textarea.js.map +1 -1
  149. package/cjs/components/Textarea/TextareaCounter.d.ts +2 -2
  150. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  151. package/cjs/components/Toast/Toast.js +1 -1
  152. package/cjs/components/Toast/Toast.js.map +1 -1
  153. package/cjs/components/Toggle/Toggle.d.ts +5 -6
  154. package/cjs/components/Toggle/Toggle.js +10 -4
  155. package/cjs/components/Toggle/Toggle.js.map +1 -1
  156. package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
  157. package/cjs/components/TokenInput/TokenInput.js +76 -59
  158. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  159. package/cjs/components/TokenInput/TokenInputMenu.d.ts +2 -1
  160. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  161. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  162. package/cjs/components/Tooltip/Tooltip.d.ts +12 -16
  163. package/cjs/components/Tooltip/Tooltip.js +25 -14
  164. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  165. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +6 -5
  166. package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
  167. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  168. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -2
  169. package/cjs/hooks/useEffectWithoutInitCall.js +2 -2
  170. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -1
  171. package/cjs/hooks/useMemoObject.d.ts +2 -1
  172. package/cjs/hooks/useMemoObject.js +2 -0
  173. package/cjs/hooks/useMemoObject.js.map +1 -1
  174. package/cjs/internal/BGRuler.d.ts +13 -15
  175. package/cjs/internal/BGRuler.js +16 -8
  176. package/cjs/internal/BGRuler.js.map +1 -1
  177. package/cjs/internal/Calendar/Calendar.d.ts +4 -13
  178. package/cjs/internal/Calendar/Calendar.js +10 -5
  179. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  180. package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
  181. package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
  182. package/cjs/internal/Calendar/Month.js +16 -11
  183. package/cjs/internal/Calendar/Month.js.map +1 -1
  184. package/cjs/internal/Calendar/MonthViewModel.d.ts +1 -1
  185. package/cjs/internal/Calendar/config.d.ts +1 -8
  186. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  187. package/cjs/internal/CommonWrapper/CommonWrapper.js +5 -4
  188. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  189. package/cjs/internal/ComponentCombinator.d.ts +6 -8
  190. package/cjs/internal/ComponentCombinator.js +6 -2
  191. package/cjs/internal/ComponentCombinator.js.map +1 -1
  192. package/cjs/internal/ComponentTable.d.ts +7 -8
  193. package/cjs/internal/ComponentTable.js +14 -3
  194. package/cjs/internal/ComponentTable.js.map +1 -1
  195. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +6 -6
  196. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +14 -8
  197. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  198. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  199. package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
  200. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  201. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -5
  202. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  203. package/cjs/internal/DataTids/DataTids.d.ts +5 -5
  204. package/cjs/internal/DataTids/DataTids.js +4 -0
  205. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  206. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
  207. package/cjs/internal/DateSelect/DateSelect.js +16 -10
  208. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  209. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  210. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
  211. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  212. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  213. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  214. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  215. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  216. package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
  217. package/cjs/internal/InputLikeText/InputLikeText.js +11 -4
  218. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  219. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
  220. package/cjs/internal/InternalMenu/InternalMenu.js +36 -14
  221. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  222. package/cjs/internal/MaskedInput/MaskedInput.d.ts +5 -2
  223. package/cjs/internal/MaskedInput/MaskedInput.js +20 -7
  224. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  225. package/cjs/internal/Menu/Menu.d.ts +4 -7
  226. package/cjs/internal/Menu/Menu.js +14 -4
  227. package/cjs/internal/Menu/Menu.js.map +1 -1
  228. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  229. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  230. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  231. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  232. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  233. package/cjs/internal/Popup/Popup.d.ts +11 -17
  234. package/cjs/internal/Popup/Popup.js +38 -19
  235. package/cjs/internal/Popup/Popup.js.map +1 -1
  236. package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
  237. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  238. package/cjs/internal/Popup/PopupPin.d.ts +1 -1
  239. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  240. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
  241. package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
  242. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  243. package/cjs/internal/RenderLayer/RenderLayer.d.ts +5 -4
  244. package/cjs/internal/RenderLayer/RenderLayer.js +8 -2
  245. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  246. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  247. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +7 -0
  248. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  249. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  250. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +2 -3
  251. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  252. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  253. package/cjs/internal/ThemePlayground/FxInputPlayground.js +5 -5
  254. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  255. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  256. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  257. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  258. package/cjs/internal/ThemePlayground/PagingPlayground.js +5 -2
  259. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  260. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -1
  261. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  262. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  263. package/cjs/internal/ThemePlayground/SelectPlayground.js +6 -0
  264. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  265. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  266. package/cjs/internal/ThemePlayground/SizesGroup.js +2 -0
  267. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  268. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  269. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +6 -1
  270. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  271. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -4
  272. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  273. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  274. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  275. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  276. package/cjs/internal/ThemePlayground/TogglePlayground.js +4 -10
  277. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  278. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  279. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +3 -0
  280. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  281. package/cjs/internal/ThemePlayground/VariableValue.d.ts +6 -8
  282. package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
  283. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  284. package/cjs/internal/ThemePlayground/helpers.d.ts +1 -1
  285. package/cjs/internal/ThemePlayground/helpers.js +4 -2
  286. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  287. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  288. package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
  289. package/cjs/internal/ZIndex/ZIndex.js +7 -7
  290. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  291. package/cjs/internal/themes/DefaultTheme.js +1 -1
  292. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  293. package/cjs/lib/ConditionalHandler.js.map +1 -1
  294. package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
  295. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
  296. package/cjs/lib/ModalStack.js +2 -2
  297. package/cjs/lib/ModalStack.js.map +1 -1
  298. package/cjs/lib/SSRSafe.d.ts +2 -1
  299. package/cjs/lib/SSRSafe.js +9 -1
  300. package/cjs/lib/SSRSafe.js.map +1 -1
  301. package/cjs/lib/animation/index.js +1 -0
  302. package/cjs/lib/animation/index.js.map +1 -1
  303. package/cjs/lib/callChildRef/callChildRef.js +1 -1
  304. package/cjs/lib/callChildRef/callChildRef.js.map +1 -1
  305. package/cjs/lib/createPropsGetter.d.ts +2 -1
  306. package/cjs/lib/createPropsGetter.js +3 -0
  307. package/cjs/lib/createPropsGetter.js.map +1 -1
  308. package/cjs/lib/date/InternalDateCalculator.d.ts +1 -1
  309. package/cjs/lib/date/InternalDateCalculator.js +1 -1
  310. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  311. package/cjs/lib/date/InternalDateValidator.d.ts +1 -1
  312. package/cjs/lib/date/InternalDateValidator.js +9 -2
  313. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  314. package/cjs/lib/extractKeyboardAction.d.ts +1 -1
  315. package/cjs/lib/extractKeyboardAction.js.map +1 -1
  316. package/cjs/lib/filterProps.js +0 -1
  317. package/cjs/lib/filterProps.js.map +1 -1
  318. package/cjs/lib/listenFocusOutside.d.ts +1 -1
  319. package/cjs/lib/listenFocusOutside.js.map +1 -1
  320. package/cjs/lib/locale/useLocaleForControl.d.ts +1 -1
  321. package/cjs/lib/locale/useLocaleForControl.js.map +1 -1
  322. package/cjs/lib/memo.d.ts +3 -1
  323. package/cjs/lib/memo.js +3 -3
  324. package/cjs/lib/memo.js.map +1 -1
  325. package/cjs/lib/net/fetch.js +2 -2
  326. package/cjs/lib/net/fetch.js.map +1 -1
  327. package/cjs/lib/reactGetTextContent.js +0 -1
  328. package/cjs/lib/reactGetTextContent.js.map +1 -1
  329. package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
  330. package/cjs/lib/rootNode/getRootNode.js +7 -7
  331. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  332. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  333. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  334. package/cjs/lib/styles/ColorFactory.js +2 -2
  335. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  336. package/cjs/lib/styles/ColorFunctions.js.map +1 -1
  337. package/cjs/lib/theming/AnimationKeyframes.d.ts +3 -5
  338. package/cjs/lib/theming/AnimationKeyframes.js +8 -22
  339. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  340. package/cjs/lib/theming/Emotion.js +1 -0
  341. package/cjs/lib/theming/Emotion.js.map +1 -1
  342. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  343. package/cjs/lib/theming/ThemeFactory.js +3 -1
  344. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  345. package/cjs/lib/theming/ThemeHelpers.d.ts +2 -2
  346. package/cjs/lib/theming/ThemeHelpers.js +1 -1
  347. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  348. package/cjs/lib/utils.d.ts +3 -1
  349. package/cjs/lib/utils.js +5 -2
  350. package/cjs/lib/utils.js.map +1 -1
  351. package/cjs/lib/withClassWrapper.js +1 -4
  352. package/cjs/lib/withClassWrapper.js.map +1 -1
  353. package/cjs/typings/event-types.d.ts +2 -2
  354. package/components/Autocomplete/Autocomplete/Autocomplete.js +26 -13
  355. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  356. package/components/Autocomplete/Autocomplete.d.ts +9 -17
  357. package/components/Button/Button/Button.js +11 -5
  358. package/components/Button/Button/Button.js.map +1 -1
  359. package/components/Button/Button.d.ts +4 -5
  360. package/components/Button/Button.mixins/Button.mixins.js +1 -1
  361. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  362. package/components/Button/Button.styles/Button.styles.js +18 -18
  363. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  364. package/components/Center/Center/Center.js +7 -5
  365. package/components/Center/Center/Center.js.map +1 -1
  366. package/components/Center/Center.d.ts +4 -3
  367. package/components/Checkbox/Checkbox/Checkbox.js +5 -2
  368. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  369. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  370. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  371. package/components/Checkbox/Checkbox.styles.d.ts +1 -1
  372. package/components/ComboBox/ComboBox/ComboBox.js +3 -1
  373. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  374. package/components/ComboBox/ComboBox.d.ts +8 -13
  375. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +36 -21
  376. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  377. package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
  378. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
  379. package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
  380. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +3 -1
  381. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
  382. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  383. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
  384. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +11 -1
  385. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  386. package/components/DateInput/DateFragmentsView.d.ts +1 -1
  387. package/components/DateInput/DateInput/DateInput.js +18 -5
  388. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  389. package/components/DateInput/DateInput.d.ts +9 -12
  390. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +0 -1
  391. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  392. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +2 -2
  393. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  394. package/components/DatePicker/DatePicker/DatePicker.js +25 -21
  395. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  396. package/components/DatePicker/DatePicker.d.ts +7 -9
  397. package/components/DatePicker/Picker/Picker.js +5 -1
  398. package/components/DatePicker/Picker/Picker.js.map +1 -1
  399. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
  400. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  401. package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
  402. package/components/FileUploader/FileUploader/FileUploader.js +2 -2
  403. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  404. package/components/FileUploader/FileUploader.md +8 -1
  405. package/components/FxInput/FxInput/FxInput.js +15 -10
  406. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  407. package/components/FxInput/FxInput.d.ts +6 -6
  408. package/components/Gapped/Gapped/Gapped.js +17 -8
  409. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  410. package/components/Gapped/Gapped.d.ts +7 -8
  411. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
  412. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  413. package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
  414. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  415. package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -2
  416. package/components/Hint/Hint/Hint.js +30 -18
  417. package/components/Hint/Hint/Hint.js.map +1 -1
  418. package/components/Hint/Hint.d.ts +8 -12
  419. package/components/Hint/Hint.md +14 -0
  420. package/components/Input/Input/Input.js +13 -8
  421. package/components/Input/Input/Input.js.map +1 -1
  422. package/components/Input/Input.d.ts +4 -3
  423. package/components/Input/Input.md +5 -1
  424. package/components/Kebab/Kebab/Kebab.js +19 -8
  425. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  426. package/components/Kebab/Kebab.d.ts +8 -15
  427. package/components/Link/Link/Link.js +10 -7
  428. package/components/Link/Link/Link.js.map +1 -1
  429. package/components/Link/Link.d.ts +5 -7
  430. package/components/Loader/Loader/Loader.js +22 -17
  431. package/components/Loader/Loader/Loader.js.map +1 -1
  432. package/components/Loader/Loader.d.ts +9 -5
  433. package/components/Loader/__stories__/LoaderAndButton/LoaderAndButton.js.map +1 -1
  434. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  435. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  436. package/components/Modal/Modal/Modal.js +5 -3
  437. package/components/Modal/Modal/Modal.js.map +1 -1
  438. package/components/Modal/Modal.d.ts +4 -3
  439. package/components/Modal/Modal.styles/Modal.styles.js +2 -2
  440. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  441. package/components/Modal/Modal.styles.d.ts +2 -2
  442. package/components/Modal/ModalBody/ModalBody.js +2 -2
  443. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  444. package/components/Paging/Paging/Paging.js +25 -15
  445. package/components/Paging/Paging/Paging.js.map +1 -1
  446. package/components/Paging/Paging.d.ts +7 -10
  447. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  448. package/components/Paging/PagingDefaultComponent.d.ts +3 -3
  449. package/components/PasswordInput/PasswordInput/PasswordInput.js +14 -13
  450. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  451. package/components/PasswordInput/PasswordInput.d.ts +4 -3
  452. package/components/Radio/Radio/Radio.js +11 -6
  453. package/components/Radio/Radio/Radio.js.map +1 -1
  454. package/components/Radio/Radio.d.ts +4 -3
  455. package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
  456. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  457. package/components/RadioGroup/RadioGroup.d.ts +2 -4
  458. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -1
  459. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  460. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +11 -7
  461. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  462. package/components/ScrollContainer/ScrollContainer.d.ts +7 -8
  463. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
  464. package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
  465. package/components/Select/Item/Item.js.map +1 -1
  466. package/components/Select/Item.d.ts +4 -2
  467. package/components/Select/Select/Select.js +4 -3
  468. package/components/Select/Select/Select.js.map +1 -1
  469. package/components/Select/Select.d.ts +3 -12
  470. package/components/Select/Select.styles/Select.styles.js +4 -4
  471. package/components/Select/Select.styles/Select.styles.js.map +1 -1
  472. package/components/SidePage/SidePage/SidePage.js +14 -9
  473. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  474. package/components/SidePage/SidePage.d.ts +5 -6
  475. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  476. package/components/SidePage/SidePageFooter.d.ts +6 -4
  477. package/components/Spinner/Spinner/Spinner.js +8 -6
  478. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  479. package/components/Spinner/Spinner.d.ts +4 -2
  480. package/components/Spinner/Spinner.styles/Spinner.styles.js +3 -3
  481. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  482. package/components/Spinner/Spinner.styles.d.ts +1 -1
  483. package/components/Sticky/Sticky/Sticky.js +7 -4
  484. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  485. package/components/Sticky/Sticky.d.ts +5 -4
  486. package/components/Tabs/Indicator/Indicator.js +1 -1
  487. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  488. package/components/Tabs/Indicator.d.ts +1 -1
  489. package/components/Tabs/Tab/Tab.js +15 -7
  490. package/components/Tabs/Tab/Tab.js.map +1 -1
  491. package/components/Tabs/Tab.d.ts +4 -4
  492. package/components/Tabs/Tabs/Tabs.js +10 -8
  493. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  494. package/components/Tabs/Tabs.d.ts +4 -4
  495. package/components/Textarea/Textarea/Textarea.js +23 -15
  496. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  497. package/components/Textarea/Textarea.d.ts +8 -10
  498. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  499. package/components/Textarea/TextareaCounter.d.ts +2 -2
  500. package/components/Toast/Toast/Toast.js +1 -1
  501. package/components/Toast/Toast/Toast.js.map +1 -1
  502. package/components/Toggle/Toggle/Toggle.js +12 -7
  503. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  504. package/components/Toggle/Toggle.d.ts +5 -6
  505. package/components/TokenInput/TokenInput/TokenInput.js +107 -77
  506. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  507. package/components/TokenInput/TokenInput.d.ts +19 -16
  508. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -1
  509. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  510. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  511. package/components/Tooltip/Tooltip/Tooltip.js +53 -32
  512. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  513. package/components/Tooltip/Tooltip.d.ts +12 -16
  514. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
  515. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  516. package/components/TooltipMenu/TooltipMenu.d.ts +6 -5
  517. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +2 -2
  518. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -1
  519. package/hooks/useEffectWithoutInitCall.d.ts +2 -2
  520. package/hooks/useMemoObject/useMemoObject.js.map +1 -1
  521. package/hooks/useMemoObject.d.ts +2 -1
  522. package/internal/BGRuler/BGRuler.js +11 -6
  523. package/internal/BGRuler/BGRuler.js.map +1 -1
  524. package/internal/BGRuler.d.ts +13 -15
  525. package/internal/Calendar/Calendar/Calendar.js +11 -5
  526. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  527. package/internal/Calendar/Calendar.d.ts +4 -13
  528. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
  529. package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
  530. package/internal/Calendar/Month/Month.js +20 -11
  531. package/internal/Calendar/Month/Month.js.map +1 -1
  532. package/internal/Calendar/MonthViewModel.d.ts +1 -1
  533. package/internal/Calendar/config.d.ts +1 -8
  534. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
  535. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  536. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
  537. package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
  538. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  539. package/internal/ComponentCombinator.d.ts +6 -8
  540. package/internal/ComponentTable/ComponentTable.js +16 -4
  541. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  542. package/internal/ComponentTable.d.ts +7 -8
  543. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +18 -19
  544. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  545. package/internal/CustomComboBox/ComboBoxMenu.d.ts +6 -6
  546. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
  547. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  548. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
  549. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -5
  550. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  551. package/internal/DataTids/DataTids/DataTids.js.map +1 -1
  552. package/internal/DataTids/DataTids.d.ts +5 -5
  553. package/internal/DateSelect/DateSelect/DateSelect.js +15 -12
  554. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  555. package/internal/DateSelect/DateSelect.d.ts +4 -6
  556. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
  557. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  558. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  559. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  560. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
  561. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  562. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  563. package/internal/InputLikeText/InputLikeText/InputLikeText.js +9 -4
  564. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  565. package/internal/InputLikeText/InputLikeText.d.ts +4 -3
  566. package/internal/InternalMenu/InternalMenu/InternalMenu.js +38 -17
  567. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  568. package/internal/InternalMenu/InternalMenu.d.ts +3 -9
  569. package/internal/MaskedInput/MaskedInput/MaskedInput.js +16 -7
  570. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  571. package/internal/MaskedInput/MaskedInput.d.ts +5 -2
  572. package/internal/Menu/Menu/Menu.js +16 -4
  573. package/internal/Menu/Menu/Menu.js.map +1 -1
  574. package/internal/Menu/Menu.d.ts +4 -7
  575. package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -1
  576. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  577. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +1 -1
  578. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  579. package/internal/PerformanceMetrics/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  580. package/internal/Popup/Popup/Popup.js +52 -35
  581. package/internal/Popup/Popup/Popup.js.map +1 -1
  582. package/internal/Popup/Popup.d.ts +11 -17
  583. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  584. package/internal/Popup/PopupHelper.d.ts +1 -1
  585. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  586. package/internal/Popup/PopupPin.d.ts +1 -1
  587. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
  588. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  589. package/internal/PopupMenu/PopupMenu.d.ts +8 -11
  590. package/internal/RenderLayer/RenderLayer/RenderLayer.js +8 -4
  591. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  592. package/internal/RenderLayer/RenderLayer.d.ts +5 -4
  593. package/internal/ThemePlayground/AnotherInputsPlayground/AnotherInputsPlayground.js.map +1 -1
  594. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +11 -6
  595. package/internal/ThemePlayground/CurrencyInputPlayground/CurrencyInputPlayground.js.map +1 -1
  596. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +7 -6
  597. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js +10 -6
  598. package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
  599. package/internal/ThemePlayground/FxInputPlayground.d.ts +6 -4
  600. package/internal/ThemePlayground/HintPlayground/HintPlayground.js.map +1 -1
  601. package/internal/ThemePlayground/HintPlayground.d.ts +1 -1
  602. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js +2 -2
  603. package/internal/ThemePlayground/PagingPlayground/PagingPlayground.js.map +1 -1
  604. package/internal/ThemePlayground/PagingPlayground.d.ts +6 -6
  605. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  606. package/internal/ThemePlayground/Playground.d.ts +1 -1
  607. package/internal/ThemePlayground/SelectPlayground/SelectPlayground.js.map +1 -1
  608. package/internal/ThemePlayground/SelectPlayground.d.ts +9 -6
  609. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  610. package/internal/ThemePlayground/SizesGroup.d.ts +2 -2
  611. package/internal/ThemePlayground/SwitcherPlayground/SwitcherPlayground.js.map +1 -1
  612. package/internal/ThemePlayground/SwitcherPlayground.d.ts +9 -8
  613. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +13 -3
  614. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  615. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  616. package/internal/ThemePlayground/ThemeEditor.d.ts +1 -4
  617. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js +5 -17
  618. package/internal/ThemePlayground/TogglePlayground/TogglePlayground.js.map +1 -1
  619. package/internal/ThemePlayground/TogglePlayground.d.ts +2 -7
  620. package/internal/ThemePlayground/TokenInputPlayground/TokenInputPlayground.js.map +1 -1
  621. package/internal/ThemePlayground/TokenInputPlayground.d.ts +6 -4
  622. package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
  623. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  624. package/internal/ThemePlayground/VariableValue.d.ts +6 -8
  625. package/internal/ThemePlayground/helpers/helpers.js +0 -1
  626. package/internal/ThemePlayground/helpers/helpers.js.map +1 -1
  627. package/internal/ThemePlayground/helpers.d.ts +1 -1
  628. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  629. package/internal/ZIndex/ZIndex/ZIndex.js +21 -16
  630. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  631. package/internal/ZIndex/ZIndex.d.ts +7 -11
  632. package/internal/themes/DefaultTheme/DefaultTheme.js +6 -6
  633. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  634. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  635. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
  636. package/lib/InstanceWithAnchorElement.d.ts +1 -1
  637. package/lib/ModalStack/ModalStack.js +2 -2
  638. package/lib/ModalStack/ModalStack.js.map +1 -1
  639. package/lib/SSRSafe/SSRSafe.js +7 -0
  640. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  641. package/lib/SSRSafe.d.ts +2 -1
  642. package/lib/animation/index/index.js +1 -1
  643. package/lib/animation/index/index.js.map +1 -1
  644. package/lib/callChildRef/callChildRef/callChildRef.js +1 -1
  645. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -1
  646. package/lib/createPropsGetter/createPropsGetter.js +1 -0
  647. package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
  648. package/lib/createPropsGetter.d.ts +2 -1
  649. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +1 -2
  650. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  651. package/lib/date/InternalDateCalculator.d.ts +1 -1
  652. package/lib/date/InternalDateValidator/InternalDateValidator.js +8 -2
  653. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  654. package/lib/date/InternalDateValidator.d.ts +1 -1
  655. package/lib/extractKeyboardAction/extractKeyboardAction.js.map +1 -1
  656. package/lib/extractKeyboardAction.d.ts +1 -1
  657. package/lib/filterProps/filterProps.js +0 -1
  658. package/lib/filterProps/filterProps.js.map +1 -1
  659. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  660. package/lib/listenFocusOutside.d.ts +1 -1
  661. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -1
  662. package/lib/locale/useLocaleForControl.d.ts +1 -1
  663. package/lib/memo/memo.js +2 -4
  664. package/lib/memo/memo.js.map +1 -1
  665. package/lib/memo.d.ts +3 -1
  666. package/lib/net/fetch/fetch.js +2 -2
  667. package/lib/net/fetch/fetch.js.map +1 -1
  668. package/lib/reactGetTextContent/reactGetTextContent.js +0 -1
  669. package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
  670. package/lib/rootNode/getRootNode/getRootNode.js +8 -8
  671. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  672. package/lib/rootNode/getRootNode.d.ts +3 -3
  673. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  674. package/lib/rootNode/rootNodeDecorator.d.ts +9 -9
  675. package/lib/styles/ColorFactory/ColorFactory.js +3 -1
  676. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  677. package/lib/styles/ColorFunctions/ColorFunctions.js.map +1 -1
  678. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +8 -14
  679. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  680. package/lib/theming/AnimationKeyframes.d.ts +3 -5
  681. package/lib/theming/Emotion/Emotion.js.map +1 -1
  682. package/lib/theming/ThemeFactory/ThemeFactory.js +4 -1
  683. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  684. package/lib/theming/ThemeFactory.d.ts +1 -1
  685. package/lib/theming/ThemeHelpers/ThemeHelpers.js +1 -1
  686. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  687. package/lib/theming/ThemeHelpers.d.ts +2 -2
  688. package/lib/utils/utils.js +2 -2
  689. package/lib/utils/utils.js.map +1 -1
  690. package/lib/utils.d.ts +3 -1
  691. package/lib/withClassWrapper/withClassWrapper.js +1 -4
  692. package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
  693. package/package.json +4 -4
  694. package/typings/event-types.d.ts +2 -2
@@ -1,5 +1,6 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.InternalMenuDataTids = exports.InternalMenu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
 
3
+ var _SSRSafe = require("../../lib/SSRSafe");
3
4
  var _utils = require("../../lib/utils");
4
5
  var _identifiers = require("../../lib/events/keyboard/identifiers");
5
6
  var _ScrollContainer = require("../../components/ScrollContainer");
@@ -9,7 +10,7 @@ var _createPropsGetter = require("../../lib/createPropsGetter");
9
10
  var _ThemeContext = require("../../lib/theming/ThemeContext");
10
11
 
11
12
  var _Emotion = require("../../lib/theming/Emotion");
12
- var _rootNode = require("../../lib/rootNode");
13
+ var _rootNode2 = require("../../lib/rootNode");
13
14
  var _getDOMRect = require("../../lib/dom/getDOMRect");
14
15
 
15
16
  var _InternalMenu = require("./InternalMenu.styles");
@@ -49,7 +50,6 @@ var InternalMenuDataTids = {
49
50
 
50
51
 
51
52
 
52
- InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(InternalMenu, _React$PureComponent);function InternalMenu() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
53
53
 
54
54
 
55
55
 
@@ -57,13 +57,23 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
57
57
 
58
58
 
59
59
 
60
+ InternalMenu = (0, _rootNode2.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(InternalMenu, _React$PureComponent);function InternalMenu() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
60
61
 
61
62
 
62
63
 
63
64
 
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+ getProps = (0, _createPropsGetter.createPropsGetter)(InternalMenu.defaultProps);_this.
73
+
64
74
  state = {
65
75
  highlightedIndex: -1,
66
- maxHeight: _this.props.maxHeight || 'none',
76
+ maxHeight: _this.getProps().maxHeight || 'none',
67
77
  scrollState: 'top' };_this.
68
78
 
69
79
 
@@ -73,7 +83,7 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
73
83
 
74
84
 
75
85
 
76
- getProps = (0, _createPropsGetter.createPropsGetter)(InternalMenu.defaultProps);_this.
86
+
77
87
 
78
88
 
79
89
 
@@ -212,12 +222,16 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
212
222
 
213
223
  };_this.
214
224
 
215
- focusOnRootElement = function () {var _getRootNode;
216
- (_getRootNode = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this))) == null ? void 0 : _getRootNode.focus();
225
+ focusOnRootElement = function () {
226
+ var rootNode = (0, _rootNode2.getRootNode)((0, _assertThisInitialized2.default)(_this));
227
+ if ((0, _SSRSafe.isHTMLElement)(rootNode)) {
228
+ rootNode == null ? void 0 : rootNode.focus();
229
+ }
217
230
  };_this.
218
231
 
219
232
  shouldRecalculateMaxHeight = function (prevProps) {
220
- var _this$props = _this.props,maxHeight = _this$props.maxHeight,header = _this$props.header,footer = _this$props.footer,children = _this$props.children;
233
+ var _this$props = _this.props,header = _this$props.header,footer = _this$props.footer,children = _this$props.children;
234
+ var maxHeight = _this.getProps().maxHeight;
221
235
  var prevMaxHeight = prevProps.maxHeight;
222
236
  var prevHeader = prevProps.header;
223
237
  var prevFooter = prevProps.footer;
@@ -232,9 +246,9 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
232
246
  };_this.
233
247
 
234
248
  calculateMaxHeight = function () {
235
- var maxHeight = _this.props.maxHeight;
249
+ var maxHeight = _this.getProps().maxHeight;
236
250
  var parsedMaxHeight = maxHeight;
237
- var rootNode = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this));
251
+ var rootNode = (0, _rootNode2.getRootNode)((0, _assertThisInitialized2.default)(_this));
238
252
 
239
253
  if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {
240
254
  var rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;
@@ -286,7 +300,11 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
286
300
 
287
301
  scrollToSelected = function () {
288
302
  if (_this.scrollContainer && _this.highlighted) {
289
- _this.scrollContainer.scrollTo((0, _rootNode.getRootNode)(_this.highlighted));
303
+ var _rootNode = (0, _rootNode2.getRootNode)(_this.highlighted);
304
+ // TODO: Remove this check once IF-647 is resolved
305
+ if (_rootNode instanceof HTMLElement) {
306
+ _this.scrollContainer.scrollTo(_rootNode);
307
+ }
290
308
  }
291
309
  };_this.
292
310
 
@@ -312,9 +330,13 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
312
330
 
313
331
 
314
332
 
315
- highlightItem = function (index) {var _getRootNode2;
333
+ highlightItem = function (index) {
316
334
  _this.setState({ highlightedIndex: index });
317
- (_getRootNode2 = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this))) == null ? void 0 : _getRootNode2.focus();
335
+
336
+ var rootNode = (0, _rootNode2.getRootNode)((0, _assertThisInitialized2.default)(_this));
337
+ if ((0, _SSRSafe.isHTMLElement)(rootNode)) {
338
+ rootNode == null ? void 0 : rootNode.focus();
339
+ }
318
340
  };_this.
319
341
 
320
342
  unhighlight = function () {
@@ -388,8 +410,8 @@ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/
388
410
  if (_this.state.scrollState !== scrollState) {
389
411
  _this.setState({ scrollState: scrollState });
390
412
  }
391
- };return _this;}var _proto = InternalMenu.prototype;_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}if (prevProps.maxHeight !== this.props.maxHeight) {this.setState({ maxHeight: this.props.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx3,_this3 = this;var enableIconPadding = _react.default.Children.toArray(this.props.children).some(function (x) {return /*#__PURE__*/_react.default.isValidElement(x) && x.props.icon;});if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { "data-tid": InternalMenuDataTids.root, className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_InternalMenu.styles.root(this.theme)] = true, _cx3[_InternalMenu.styles.shadow(this.theme)] = this.props.hasShadow, _cx3)), style: { width: this.props.width, maxHeight: this.state.maxHeight }, onKeyDown: this.handleKeyDown, ref: this.setRootNode, tabIndex: 0 }, this.props.header ? this.renderHeader() : null, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, onScrollStateChange: this.handleScrollStateChange }, _react.default.Children.map(this.props.children, function (child, index) {if (typeof child === 'string' || typeof child === 'number' || (0, _utils.isNullable)(child)) {return child;}if ( /*#__PURE__*/_react.default.isValidElement(child) && typeof child.type === 'string') {return child;}var modifiedChild = (0, _addIconPaddingIfPartOfMenu.addIconPaddingIfPartOfMenu)(child, enableIconPadding);if ((0, _isActiveElement.isActiveElement)(modifiedChild)) {var highlight = _this3.state.highlightedIndex === index;var ref = modifiedChild.ref;var originalRef = ref;if (highlight) {ref = function ref(menuItem) {return _this3.refHighlighted(originalRef, menuItem);};}return /*#__PURE__*/_react.default.cloneElement(modifiedChild, { ref: ref, state: highlight ? 'hover' : modifiedChild.props.state, onClick: _this3.select.bind(_this3, index, false), onMouseEnter: function onMouseEnter(event) {_this3.highlightItem(index);if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseEnter) {modifiedChild.props.onMouseEnter(event);}}, onMouseLeave: function onMouseLeave(event) {_this3.unhighlight();if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseLeave) {modifiedChild.props.onMouseLeave(event);}} });}return modifiedChild;})), this.props.footer ? this.renderFooter() : null);};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (!originalRef || typeof originalRef === 'string') {return;}if (typeof originalRef === 'function') {originalRef(menuItem);} else if (typeof originalRef === 'object') {// @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065
392
- originalRef.current = menuItem;}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick(event);}return true;}return false;};_proto.move = function move(step) {this.setState(function (state, props) {var children = childrenToArray(props.children);if (!children.some(_isActiveElement.isActiveElement)) {return null;}var index = state.highlightedIndex;do {index += step;if (!props.cyclicSelection && (index < 0 || index > children.length)) {return null;}if (index < 0) {index = children.length - 1;} else if (index > children.length) {index = 0;}var child = children[index];if ((0, _isActiveElement.isActiveElement)(child)) {return { highlightedIndex: index };}} while (index !== state.highlightedIndex);return null;}, this.scrollToSelected);};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(_utils.isNonNullable).length;};return InternalMenu;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'InternalMenu', _class2.defaultProps = { width: 'auto', maxHeight: 300, hasShadow: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 }, _temp)) || _class;exports.InternalMenu = InternalMenu;
413
+ };return _this;}var _proto = InternalMenu.prototype;_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}if (prevProps.maxHeight !== this.getProps().maxHeight) {this.setState({ maxHeight: this.props.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx3,_this3 = this;var enableIconPadding = _react.default.Children.toArray(this.props.children).some(function (x) {return /*#__PURE__*/_react.default.isValidElement(x) && x.props.icon;});if (this.isEmpty()) {return null;}var _this$getProps = this.getProps(),hasShadow = _this$getProps.hasShadow,width = _this$getProps.width,maxHeight = _this$getProps.maxHeight,preventWindowScroll = _this$getProps.preventWindowScroll;return /*#__PURE__*/_react.default.createElement("div", { "data-tid": InternalMenuDataTids.root, className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_InternalMenu.styles.root(this.theme)] = true, _cx3[_InternalMenu.styles.shadow(this.theme)] = hasShadow, _cx3)), style: { width: width, maxHeight: this.state.maxHeight }, onKeyDown: this.handleKeyDown, ref: this.setRootNode, tabIndex: 0 }, this.props.header ? this.renderHeader() : null, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: maxHeight, preventWindowScroll: preventWindowScroll, onScrollStateChange: this.handleScrollStateChange }, _react.default.Children.map(this.props.children, function (child, index) {if (typeof child === 'string' || typeof child === 'number' || (0, _utils.isNullable)(child)) {return child;}if ( /*#__PURE__*/_react.default.isValidElement(child) && typeof child.type === 'string') {return child;}var modifiedChild = (0, _addIconPaddingIfPartOfMenu.addIconPaddingIfPartOfMenu)(child, enableIconPadding);if ((0, _isActiveElement.isActiveElement)(modifiedChild)) {var highlight = _this3.state.highlightedIndex === index;var ref = modifiedChild.ref;var originalRef = ref;if (highlight) {ref = function ref(menuItem) {return _this3.refHighlighted(originalRef, menuItem);};}return /*#__PURE__*/_react.default.cloneElement(modifiedChild, { ref: ref, state: highlight ? 'hover' : modifiedChild.props.state, onClick: _this3.select.bind(_this3, index, false), onMouseEnter: function onMouseEnter(event) {_this3.highlightItem(index);if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseEnter) {modifiedChild.props.onMouseEnter(event);}}, onMouseLeave: function onMouseLeave(event) {_this3.unhighlight();if ((0, _MenuItem.isMenuItem)(modifiedChild) && modifiedChild.props.onMouseLeave) {modifiedChild.props.onMouseLeave(event);}} });}return modifiedChild;})), this.props.footer ? this.renderFooter() : null);};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (!originalRef || typeof originalRef === 'string') {return;}if (typeof originalRef === 'function') {originalRef(menuItem);} else if (typeof originalRef === 'object') {// @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.
414
+ originalRef.current = menuItem;}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick(event);}return true;}return false;};_proto.move = function move(step) {var _this4 = this;this.setState(function (state, props) {var children = childrenToArray(props.children);if (!children.some(_isActiveElement.isActiveElement)) {return null;}var index = state.highlightedIndex;do {index += step;if (!_this4.getProps().cyclicSelection && (index < 0 || index > children.length)) {return null;}if (index < 0) {index = children.length - 1;} else if (index > children.length) {index = 0;}var child = children[index];if ((0, _isActiveElement.isActiveElement)(child)) {return { highlightedIndex: index };}} while (index !== state.highlightedIndex);return null;}, this.scrollToSelected);};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(_utils.isNonNullable).length;};return InternalMenu;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'InternalMenu', _class2.defaultProps = { width: 'auto', maxHeight: 300, hasShadow: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 }, _temp)) || _class;exports.InternalMenu = InternalMenu;
393
415
 
394
416
  function childrenToArray(children) {
395
417
  var ret = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["InternalMenu.tsx"],"names":["InternalMenuDataTids","root","InternalMenu","rootNode","state","highlightedIndex","maxHeight","props","scrollState","getProps","defaultProps","renderHeader","el","header","styles","fixedHeader","renderFooter","footer","fixedFooter","focusOnRootElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","React","Children","count","calculateMaxHeight","parsedMaxHeight","window","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","setInitialSelection","i","initialSelectedItemIndex","moveDown","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","highlightItem","index","unhighlight","moveUp","move","handleKeyDown","e","onKeyDown","defaultPrevented","preventDefault","onClick","handleScrollStateChange","componentDidMount","componentDidUpdate","render","theme","renderMain","enableIconPadding","toArray","some","x","isValidElement","icon","isEmpty","shadow","hasShadow","width","setRootNode","preventWindowScroll","map","child","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","isActiveElement","cyclicSelection","length","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\n\ninterface MenuProps {\n children?: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const InternalMenuDataTids = {\n root: 'InternalMenu__root',\n} as const;\n\n@rootNode\nexport class InternalMenu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n\n public static defaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.props.maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.props.maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n if (this.isEmpty()) {\n return null;\n }\n\n return (\n <div\n data-tid={InternalMenuDataTids.root}\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: this.props.hasShadow,\n })}\n style={{\n width: this.props.width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={this.props.maxHeight}\n preventWindowScroll={this.props.preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n ref={(el) => (this.header = el)}\n className={cx({\n [styles.header()]: true,\n [styles.fixedHeader()]: this.state.scrollState !== 'top',\n })}\n >\n {this.props.header}\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n ref={(el) => (this.footer = el)}\n className={cx({\n [styles.footer()]: true,\n [styles.fixedFooter()]: this.state.scrollState !== 'bottom',\n })}\n >\n {this.props.footer}\n </div>\n );\n };\n\n private focusOnRootElement = (): void => {\n getRootNode(this)?.focus();\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { maxHeight, header, footer, children } = this.props;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const { maxHeight } = this.props;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {\n const rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n this.scrollContainer.scrollTo(getRootNode(this.highlighted));\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n window.open(item.props.href, item.props.target);\n } else {\n location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n getRootNode(this)?.focus();\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!props.cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
1
+ {"version":3,"sources":["InternalMenu.tsx"],"names":["InternalMenuDataTids","root","InternalMenu","rootNode","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","renderHeader","el","header","styles","fixedHeader","props","renderFooter","footer","fixedFooter","focusOnRootElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","React","Children","count","calculateMaxHeight","parsedMaxHeight","window","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","setInitialSelection","i","initialSelectedItemIndex","moveDown","refScrollContainer","scrollContainer","scrollToSelected","highlighted","HTMLElement","scrollTo","highlightItem","index","unhighlight","moveUp","move","handleKeyDown","e","onKeyDown","defaultPrevented","preventDefault","onClick","handleScrollStateChange","componentDidMount","componentDidUpdate","render","theme","renderMain","enableIconPadding","toArray","some","x","isValidElement","icon","isEmpty","hasShadow","width","preventWindowScroll","shadow","setRootNode","map","child","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","isActiveElement","cyclicSelection","length","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isHTMLElement } from '../../lib/SSRSafe';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { styles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\n\ninterface MenuProps {\n children?: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const InternalMenuDataTids = {\n root: 'InternalMenu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll' | 'cyclicSelection' | 'initialSelectedItemIndex'\n >\n>;\n\n@rootNode\nexport class InternalMenu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n\n public static defaultProps: DefaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, width, maxHeight, preventWindowScroll } = this.getProps();\n\n return (\n <div\n data-tid={InternalMenuDataTids.root}\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow,\n })}\n style={{\n width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n ref={(el) => (this.header = el)}\n className={cx({\n [styles.header()]: true,\n [styles.fixedHeader()]: this.state.scrollState !== 'top',\n })}\n >\n {this.props.header}\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n ref={(el) => (this.footer = el)}\n className={cx({\n [styles.footer()]: true,\n [styles.fixedFooter()]: this.state.scrollState !== 'bottom',\n })}\n >\n {this.props.footer}\n </div>\n );\n };\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isHTMLElement(rootNode)) {\n rootNode?.focus();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {\n const rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n const rootNode = getRootNode(this.highlighted);\n // TODO: Remove this check once IF-647 is resolved\n if (rootNode instanceof HTMLElement) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n window.open(item.props.href, item.props.target);\n } else {\n location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n\n const rootNode = getRootNode(this);\n if (isHTMLElement(rootNode)) {\n rootNode?.focus();\n }\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  export interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
3
  mask: string;
4
- maskChar: string | null;
4
+ maskChar?: string | null;
5
5
  formatChars?: {
6
6
  [key: string]: string;
7
7
  };
@@ -13,15 +13,18 @@ export interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputEle
13
13
  }
14
14
  interface MaskedInputState {
15
15
  value: string;
16
+ originValue: string;
16
17
  emptyValue: string;
17
18
  focused: boolean;
18
19
  }
20
+ declare type DefaultProps = Required<Pick<MaskedInputProps, 'maskChar'>>;
19
21
  export declare const MaskedInputDataTids: {
20
22
  readonly root: "MaskedInput__root";
21
23
  };
22
24
  export declare class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {
23
25
  static __KONTUR_REACT_UI__: string;
24
- static defaultProps: Partial<MaskedInputProps>;
26
+ static defaultProps: DefaultProps;
27
+ private getProps;
25
28
  input: HTMLInputElement | null;
26
29
  private theme;
27
30
  private reactInputMask;
@@ -1,4 +1,6 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MaskedInputDataTids = exports.MaskedInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MaskedInputDataTids = exports.MaskedInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
2
+
3
+ var _react = _interopRequireDefault(require("react"));
2
4
  var _reactInputMask = _interopRequireDefault(require("react-input-mask"));
3
5
 
4
6
  var _utils = require("../../lib/utils");
@@ -6,6 +8,7 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
6
8
 
7
9
  var _MaskCharLowLine = require("../MaskCharLowLine");
8
10
  var _Emotion = require("../../lib/theming/Emotion");
11
+ var _createPropsGetter = require("../../lib/createPropsGetter");
9
12
 
10
13
  var _MaskedInput = require("./MaskedInput.styles");var _excluded = ["maskChar", "alwaysShowMask", "hasLeftIcon", "hasRightIcon", "maxLength", "onValueChange", "onUnexpectedInput", "defaultValue", "style"];
11
14
 
@@ -22,6 +25,12 @@ var _MaskedInput = require("./MaskedInput.styles");var _excluded = ["maskChar",
22
25
 
23
26
 
24
27
 
28
+
29
+
30
+
31
+
32
+
33
+
25
34
 
26
35
 
27
36
 
@@ -41,8 +50,11 @@ MaskedInput = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.
41
50
 
42
51
 
43
52
 
53
+
54
+
44
55
  function MaskedInput(_props) {var _this;
45
- _this = _React$PureComponent.call(this, _props) || this;_this.input = null;_this.reactInputMask = null;_this.
56
+ _this = _React$PureComponent.call(this, _props) || this;_this.getProps = (0, _createPropsGetter.createPropsGetter)(MaskedInput.defaultProps);_this.input = null;_this.reactInputMask = null;_this.
57
+
46
58
 
47
59
 
48
60
 
@@ -151,7 +163,7 @@ MaskedInput = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.
151
163
  if (event.target.value === _this.state.value) {
152
164
  _this.handleUnexpectedInput();
153
165
  } else {
154
- _this.setState({ value: event.target.value });
166
+ _this.setState({ value: event.target.value, originValue: event.target.value });
155
167
  if (_this.props.onValueChange) {
156
168
  _this.props.onValueChange(event.target.value);
157
169
  }
@@ -183,11 +195,12 @@ MaskedInput = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.
183
195
  userInput,
184
196
  options)
185
197
  {
186
- var visibleMaskChars = new Array(options.mask.length).fill(_this.props.maskChar);
198
+ var visibleMaskChars = new Array(options.mask.length).fill(_this.getProps().maskChar);
187
199
 
188
200
  if (newState.value !== oldState.value && userInput === null) {
189
201
  _this.setState({
190
- value: newState.value });
202
+ value: newState.value,
203
+ originValue: newState.value });
191
204
 
192
205
  }
193
206
 
@@ -218,5 +231,5 @@ MaskedInput = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.
218
231
  if (_this.props.onUnexpectedInput) {
219
232
  _this.props.onUnexpectedInput(_this.state.value);
220
233
  }
221
- };_this.state = { value: _this.getValue(_props), emptyValue: '', focused: false };return _this;}var _proto = MaskedInput.prototype;_proto.componentDidMount = function componentDidMount() {if (this.reactInputMask) {// FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue
222
- this.reactInputMask.forceUpdate();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.props.value !== prevProps.value) {this.setState({ value: this.props.value ? this.props.value.toString() : '' });}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this$props = this.props,maskChar = _this$props.maskChar,alwaysShowMask = _this$props.alwaysShowMask,hasLeftIcon = _this$props.hasLeftIcon,hasRightIcon = _this$props.hasRightIcon,maxLength = _this$props.maxLength,onValueChange = _this$props.onValueChange,onUnexpectedInput = _this$props.onUnexpectedInput,defaultValue = _this$props.defaultValue,style = _this$props.style,inputProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);var _this$state = this.state,emptyValue = _this$state.emptyValue,value = _this$state.value;var leftHelper = (style == null ? void 0 : style.textAlign) !== 'right' && /*#__PURE__*/_react.default.createElement("span", { style: { color: 'transparent' } }, emptyValue.slice(0, value.length));var leftClass = (style == null ? void 0 : style.textAlign) !== 'right' && _MaskedInput.styles.inputMaskLeft();var rightHelper = emptyValue.slice(value.length).split('').map(function (_char, i) {return _char === '_' ? /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i }) : _char;});return /*#__PURE__*/_react.default.createElement("span", { "data-tid": MaskedInputDataTids.root, className: _MaskedInput.styles.container(), "x-ms-format-detection": "none" }, /*#__PURE__*/_react.default.createElement(_reactInputMask.default, (0, _extends2.default)({}, inputProps, { maskChar: null, beforeMaskedValueChange: this.preprocess, alwaysShowMask: false, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur, value: value, inputRef: this.refInput, ref: this.refMaskedInput, style: (0, _extends2.default)({}, style) })), this.isMaskVisible() && /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_MaskedInput.styles.inputMask(this.theme), leftClass) }, leftHelper, rightHelper));};return MaskedInput;}(_react.default.PureComponent);exports.MaskedInput = MaskedInput;MaskedInput.__KONTUR_REACT_UI__ = 'MaskedInput';MaskedInput.defaultProps = { maskChar: '_' };
234
+ };_this.state = { value: _this.getValue(_props), originValue: _this.getValue(_props), emptyValue: '', focused: false };return _this;}var _proto = MaskedInput.prototype;_proto.componentDidMount = function componentDidMount() {if (this.reactInputMask) {// FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue
235
+ this.reactInputMask.forceUpdate();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.props.value !== prevProps.value) {this.setState({ value: this.props.value ? this.props.value.toString() : '' });}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _this$props = this.props,maskChar = _this$props.maskChar,alwaysShowMask = _this$props.alwaysShowMask,hasLeftIcon = _this$props.hasLeftIcon,hasRightIcon = _this$props.hasRightIcon,maxLength = _this$props.maxLength,onValueChange = _this$props.onValueChange,onUnexpectedInput = _this$props.onUnexpectedInput,defaultValue = _this$props.defaultValue,style = _this$props.style,inputProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);var _this$state = this.state,emptyValue = _this$state.emptyValue,value = _this$state.value,originValue = _this$state.originValue;var leftHelper = (style == null ? void 0 : style.textAlign) !== 'right' && /*#__PURE__*/_react.default.createElement("span", { style: { color: 'transparent' } }, emptyValue.slice(0, originValue.length));var leftClass = (style == null ? void 0 : style.textAlign) !== 'right' && _MaskedInput.styles.inputMaskLeft();var rightHelper = emptyValue.slice(originValue.length).split('').map(function (_char, i) {return _char === '_' ? /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i }) : _char;});return /*#__PURE__*/_react.default.createElement("span", { "data-tid": MaskedInputDataTids.root, className: _MaskedInput.styles.container(), "x-ms-format-detection": "none" }, /*#__PURE__*/_react.default.createElement(_reactInputMask.default, (0, _extends2.default)({}, inputProps, { maskChar: null, beforeMaskedValueChange: this.preprocess, alwaysShowMask: false, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur, value: value, inputRef: this.refInput, ref: this.refMaskedInput, style: (0, _extends2.default)({}, style) })), this.isMaskVisible() && /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_MaskedInput.styles.inputMask(this.theme), leftClass) }, leftHelper, rightHelper));};return MaskedInput;}(_react.default.PureComponent);exports.MaskedInput = MaskedInput;MaskedInput.__KONTUR_REACT_UI__ = 'MaskedInput';MaskedInput.defaultProps = { maskChar: '_' };
@@ -1 +1 @@
1
- {"version":3,"sources":["MaskedInput.tsx"],"names":["MaskedInputDataTids","root","MaskedInput","props","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","leftClass","styles","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","React","PureComponent","__KONTUR_REACT_UI__","defaultProps"],"mappings":"meAAA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,mD;;;;;;;;;;;;;;;;;;;AAmBO,IAAMA,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B,C;;;AAIMC,W;;;;;;;;;;;AAWX,uBAAmBC,MAAnB,EAA4C;AAC1C,4CAAMA,MAAN,UAD0C,MAJrCC,KAIqC,GAJJ,IAII,OAFpCC,cAEoC,GAFI,IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFpCC,IAAAA,QAtFoC,GAsFzB,UAACH,KAAD,EAAqC;AACtD,UAAI,0BAAcA,KAAK,CAACI,KAApB,CAAJ,EAAgC;AAC9B,eAAOJ,KAAK,CAACI,KAAN,CAAYC,QAAZ,EAAP;AACD;;AAED,UAAI,0BAAcL,KAAK,CAACM,YAApB,CAAJ,EAAuC;AACrC,eAAON,KAAK,CAACM,YAAN,CAAmBD,QAAnB,EAAP;AACD;;AAED,aAAO,EAAP;AACD,KAhG2C;;AAkGpCE,IAAAA,QAlGoC,GAkGzB,UAACN,KAAD,EAAoC;AACrD,YAAKA,KAAL,GAAaA,KAAb;AACD,KApG2C;;AAsGpCO,IAAAA,cAtGoC,GAsGnB,UAACN,cAAD,EAAoC;AAC3D,YAAKA,cAAL,GAAsBA,cAAtB;AACD,KAxG2C;;AA0GpCO,IAAAA,YA1GoC,GA0GrB,UAACC,KAAD,EAAgD;AACrE,UAAIA,KAAK,CAACC,MAAN,CAAaP,KAAb,KAAuB,MAAKQ,KAAL,CAAWR,KAAtC,EAA6C;AAC3C,cAAKS,qBAAL;AACD,OAFD,MAEO;AACL,cAAKC,QAAL,CAAc,EAAEV,KAAK,EAAEM,KAAK,CAACC,MAAN,CAAaP,KAAtB,EAAd;AACA,YAAI,MAAKJ,KAAL,CAAWe,aAAf,EAA8B;AAC5B,gBAAKf,KAAL,CAAWe,aAAX,CAAyBL,KAAK,CAACC,MAAN,CAAaP,KAAtC;AACD;AACD,YAAI,MAAKJ,KAAL,CAAWgB,QAAf,EAAyB;AACvB,gBAAKhB,KAAL,CAAWgB,QAAX,CAAoBN,KAApB;AACD;AACF;AACF,KAtH2C;;AAwHpCO,IAAAA,WAxHoC,GAwHtB,UAACP,KAAD,EAA+C;AACnE,YAAKI,QAAL,CAAc,EAAEI,OAAO,EAAE,IAAX,EAAd;;AAEA,UAAI,MAAKlB,KAAL,CAAWmB,OAAf,EAAwB;AACtB,cAAKnB,KAAL,CAAWmB,OAAX,CAAmBT,KAAnB;AACD;AACF,KA9H2C;;AAgIpCU,IAAAA,UAhIoC,GAgIvB,UAACV,KAAD,EAA+C;AAClE,YAAKI,QAAL,CAAc,EAAEI,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKlB,KAAL,CAAWqB,MAAf,EAAuB;AACrB,cAAKrB,KAAL,CAAWqB,MAAX,CAAkBX,KAAlB;AACD;AACF,KAtI2C;;AAwIpCY,IAAAA,UAxIoC,GAwIvB;AACnBC,IAAAA,QADmB;AAEnBC,IAAAA,QAFmB;AAGnBC,IAAAA,SAHmB;AAInBC,IAAAA,OAJmB;AAKhB;AACH,UAAMC,gBAAgB,GAAG,IAAIC,KAAJ,CAAUF,OAAO,CAACG,IAAR,CAAaC,MAAvB,EAA+BC,IAA/B,CAAoC,MAAK/B,KAAL,CAAWgC,QAA/C,CAAzB;;AAEA,UAAIT,QAAQ,CAACnB,KAAT,KAAmBoB,QAAQ,CAACpB,KAA5B,IAAqCqB,SAAS,KAAK,IAAvD,EAA6D;AAC3D,cAAKX,QAAL,CAAc;AACZV,UAAAA,KAAK,EAAEmB,QAAQ,CAACnB,KADJ,EAAd;;AAGD;;AAEDsB,MAAAA,OAAO,CAACG,IAAR,CAAaI,KAAb,CAAmB,EAAnB,EAAuBC,OAAvB,CAA+B,UAACC,IAAD,EAAeC,KAAf,EAAiC;AAC9D,YAAIV,OAAO,CAACW,UAAR,CAAmBC,QAAnB,CAA4BF,KAA5B,CAAJ,EAAwC;AACtCT,UAAAA,gBAAgB,CAACS,KAAD,CAAhB,GAA0BD,IAA1B;AACD;;AAED,YAAIZ,QAAQ,CAACnB,KAAT,CAAegC,KAAf,CAAJ,EAA2B;AACzBT,UAAAA,gBAAgB,CAACS,KAAD,CAAhB,GAA0Bb,QAAQ,CAACnB,KAAT,CAAegC,KAAf,CAA1B;AACD;AACF,OARD;;AAUA,UAAMG,UAAU,GAAGZ,gBAAgB,CAACa,IAAjB,CAAsB,EAAtB,CAAnB;;AAEA,UAAI,MAAK5B,KAAL,CAAW2B,UAAX,KAA0BA,UAA9B,EAA0C;AACxC,cAAKzB,QAAL,CAAc;AACZyB,UAAAA,UAAU,EAAVA,UADY,EAAd;;AAGD;;AAED,aAAOhB,QAAP;AACD,KAzK2C;;AA2KpCkB,IAAAA,aA3KoC,GA2KpB,oBAAM,MAAKzC,KAAL,CAAW0C,cAAX,IAA6B,MAAK9B,KAAL,CAAWM,OAA9C,EA3KoB;;AA6KpCL,IAAAA,qBA7KoC,GA6KZ,YAAM;AACpC,UAAI,MAAKb,KAAL,CAAW2C,iBAAf,EAAkC;AAChC,cAAK3C,KAAL,CAAW2C,iBAAX,CAA6B,MAAK/B,KAAL,CAAWR,KAAxC;AACD;AACF,KAjL2C,CAG1C,MAAKQ,KAAL,GAAa,EACXR,KAAK,EAAE,MAAKD,QAAL,CAAcH,MAAd,CADI,EAEXuC,UAAU,EAAE,EAFD,EAGXrB,OAAO,EAAE,KAHE,EAAb,CAH0C,aAQ3C,C,0CAEM0B,iB,GAAP,6BAA2B,CACzB,IAAI,KAAK1C,cAAT,EAAyB,CACvB;AACA,WAAKA,cAAL,CAAoB2C,WAApB,GACD,CACF,C,QAEMC,kB,GAAP,4BAA0BC,SAA1B,EAAuD,CACrD,IAAI,KAAK/C,KAAL,CAAWI,KAAX,KAAqB2C,SAAS,CAAC3C,KAAnC,EAA0C,CACxC,KAAKU,QAAL,CAAc,EACZV,KAAK,EAAE,KAAKJ,KAAL,CAAWI,KAAX,GAAmB,KAAKJ,KAAL,CAAWI,KAAX,CAAiBC,QAAjB,EAAnB,GAAiD,EAD5C,EAAd,EAGD,CACF,C,QAEM2C,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEOA,U,GAAR,sBAAqB,CACnB,kBAWI,KAAKlD,KAXT,CACEgC,QADF,eACEA,QADF,CAEEU,cAFF,eAEEA,cAFF,CAGES,WAHF,eAGEA,WAHF,CAIEC,YAJF,eAIEA,YAJF,CAKEC,SALF,eAKEA,SALF,CAMEtC,aANF,eAMEA,aANF,CAOE4B,iBAPF,eAOEA,iBAPF,CAQErC,YARF,eAQEA,YARF,CASEgD,KATF,eASEA,KATF,CAUKC,UAVL,uEAYA,kBAA8B,KAAK3C,KAAnC,CAAQ2B,UAAR,eAAQA,UAAR,CAAoBnC,KAApB,eAAoBA,KAApB,CAEA,IAAMoD,UAAU,GAAG,CAAAF,KAAK,QAAL,YAAAA,KAAK,CAAEG,SAAP,MAAqB,OAArB,iBACjB,uCAAM,KAAK,EAAE,EAAEC,KAAK,EAAE,aAAT,EAAb,IAAwCnB,UAAU,CAACoB,KAAX,CAAiB,CAAjB,EAAoBvD,KAAK,CAAC0B,MAA1B,CAAxC,CADF,CAGA,IAAM8B,SAAS,GAAG,CAAAN,KAAK,QAAL,YAAAA,KAAK,CAAEG,SAAP,MAAqB,OAArB,IAAgCI,oBAAOC,aAAP,EAAlD,CAEA,IAAMC,WAAW,GAAGxB,UAAU,CAC3BoB,KADiB,CACXvD,KAAK,CAAC0B,MADK,EAEjBG,KAFiB,CAEX,EAFW,EAGjB+B,GAHiB,CAGb,UAACC,KAAD,EAAQC,CAAR,UAAeD,KAAK,KAAK,GAAV,gBAAgB,6BAAC,gCAAD,IAAiB,GAAG,EAAEC,CAAtB,GAAhB,GAA8CD,KAA7D,EAHa,CAApB,CAKA,oBACE,uCAAM,YAAUpE,mBAAmB,CAACC,IAApC,EAA0C,SAAS,EAAE+D,oBAAOM,SAAP,EAArD,EAAyE,yBAAsB,MAA/F,iBACE,6BAAC,uBAAD,6BACMZ,UADN,IAEE,QAAQ,EAAE,IAFZ,EAGE,uBAAuB,EAAE,KAAKjC,UAHhC,EAIE,cAAc,EAAE,KAJlB,EAKE,QAAQ,EAAE,KAAKb,YALjB,EAME,OAAO,EAAE,KAAKQ,WANhB,EAOE,MAAM,EAAE,KAAKG,UAPf,EAQE,KAAK,EAAEhB,KART,EASE,QAAQ,EAAE,KAAKG,QATjB,EAUE,GAAG,EAAE,KAAKC,cAVZ,EAWE,KAAK,6BAAO8C,KAAP,CAXP,IADF,EAcG,KAAKb,aAAL,mBACC,uCAAM,SAAS,EAAE,iBAAGoB,oBAAOO,SAAP,CAAiB,KAAKnB,KAAtB,CAAH,EAAiCW,SAAjC,CAAjB,IACGJ,UADH,EAEGO,WAFH,CAfJ,CADF,CAuBD,C,sBA/F8BM,eAAMC,a,oCAA1BvE,W,CACGwE,mB,GAAsB,a,CADzBxE,W,CAGGyE,Y,GAA0C,EACtDxC,QAAQ,EAAE,GAD4C,E","sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MaskedInput.styles';\n\nexport interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n emptyValue: string;\n focused: boolean;\n}\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\nexport class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'MaskedInput';\n\n public static defaultProps: Partial<MaskedInputProps> = {\n maskChar: '_',\n };\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: MaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: MaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, value.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(value.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: MaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<MaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.props.maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["MaskedInput.tsx"],"names":["MaskedInputDataTids","root","MaskedInput","props","getProps","defaultProps","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","originValue","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","leftClass","styles","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","React","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './MaskedInput.styles';\n\nexport interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n\n // Users can unmask value themselves. In these cases we take origin value length\n originValue: string;\n\n emptyValue: string;\n focused: boolean;\n}\n\ntype DefaultProps = Required<Pick<MaskedInputProps, 'maskChar'>>;\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\nexport class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'MaskedInput';\n\n public static defaultProps: DefaultProps = {\n maskChar: '_',\n };\n\n private getProps = createPropsGetter(MaskedInput.defaultProps);\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: MaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n originValue: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: MaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value, originValue } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, originValue.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(originValue.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: MaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value, originValue: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<MaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.getProps().maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n originValue: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
@@ -18,15 +18,11 @@ export interface MenuState {
18
18
  export declare const MenuDataTids: {
19
19
  readonly root: "Menu__root";
20
20
  };
21
+ declare type DefaultProps = Required<Pick<MenuProps, 'align' | 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll'>>;
21
22
  export declare class Menu extends React.Component<MenuProps, MenuState> {
22
23
  static __KONTUR_REACT_UI__: string;
23
- static defaultProps: {
24
- align: string;
25
- width: string;
26
- maxHeight: number;
27
- hasShadow: boolean;
28
- preventWindowScroll: boolean;
29
- };
24
+ static defaultProps: DefaultProps;
25
+ private getProps;
30
26
  state: {
31
27
  highlightedIndex: number;
32
28
  };
@@ -71,3 +67,4 @@ export declare class Menu extends React.Component<MenuProps, MenuState> {
71
67
  private move;
72
68
  private isEmpty;
73
69
  }
70
+ export {};
@@ -7,9 +7,10 @@ var _ScrollContainer = require("../../components/ScrollContainer");
7
7
  var _ThemeContext = require("../../lib/theming/ThemeContext");
8
8
 
9
9
  var _Emotion = require("../../lib/theming/Emotion");
10
- var _rootNode = require("../../lib/rootNode");
10
+ var _rootNode2 = require("../../lib/rootNode");
11
11
  var _addIconPaddingIfPartOfMenu = require("../InternalMenu/addIconPaddingIfPartOfMenu");
12
12
  var _client = require("../../lib/client");
13
+ var _createPropsGetter = require("../../lib/createPropsGetter");
13
14
 
14
15
  var _Menu = require("./Menu.styles");
15
16
  var _isActiveElement = require("./isActiveElement");var _class, _class2, _temp;
@@ -37,9 +38,9 @@ var MenuDataTids = {
37
38
 
38
39
 
39
40
 
40
- Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Menu, _React$Component);function Menu() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
41
41
 
42
42
 
43
+ Menu = (0, _rootNode2.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Menu, _React$Component);function Menu() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
43
44
 
44
45
 
45
46
 
@@ -48,6 +49,10 @@ Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
48
49
 
49
50
 
50
51
 
52
+
53
+
54
+ getProps = (0, _createPropsGetter.createPropsGetter)(Menu.defaultProps);_this.
55
+
51
56
  state = {
52
57
  highlightedIndex: -1 };_this.
53
58
 
@@ -137,6 +142,7 @@ Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
137
142
 
138
143
 
139
144
 
145
+
140
146
 
141
147
 
142
148
  getChildList = function () {
@@ -193,7 +199,11 @@ Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
193
199
 
194
200
  scrollToSelected = function () {
195
201
  if (_this.scrollContainer && _this.highlighted) {
196
- _this.scrollContainer.scrollTo((0, _rootNode.getRootNode)(_this.highlighted));
202
+ var _rootNode = (0, _rootNode2.getRootNode)(_this.highlighted);
203
+ // TODO: Remove this check once IF-647 is resolved
204
+ if (_rootNode instanceof HTMLElement) {
205
+ _this.scrollContainer.scrollTo(_rootNode);
206
+ }
197
207
  }
198
208
  };_this.
199
209
 
@@ -246,7 +256,7 @@ Menu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
246
256
  * @public
247
257
  */;_proto.reset = function reset() {this.setState({ highlightedIndex: -1 });} /**
248
258
  * @public
249
- */;_proto.hasHighlightedItem = function hasHighlightedItem() {return this.state.highlightedIndex !== -1;};_proto.highlightItem = function highlightItem(index) {this.highlight(index);};_proto.renderMain = function renderMain() {var _cx;if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { "data-tid": MenuDataTids.root, className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx = {}, _cx[_Menu.styles.root(this.theme)] = true, _cx[_Menu.styles.shadow(this.theme)] = this.props.hasShadow, _cx)), style: getStyle(this.props), ref: this.setRootNode }, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, disabled: this.props.disableScrollContainer }, /*#__PURE__*/_react.default.createElement("div", { className: _Menu.styles.scrollContainer(this.theme) }, this.getChildList())));};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (typeof originalRef === 'function') {originalRef(menuItem);}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick();}return true;}return false;};_proto.move = function move(step) {var _this3 = this;if (this.unmounted) {// NOTE workaround, because `ComboBox` call `process.nextTick` in reducer
259
+ */;_proto.hasHighlightedItem = function hasHighlightedItem() {return this.state.highlightedIndex !== -1;};_proto.highlightItem = function highlightItem(index) {this.highlight(index);};_proto.renderMain = function renderMain() {var _cx;if (this.isEmpty()) {return null;}var _this$getProps = this.getProps(),hasShadow = _this$getProps.hasShadow,maxHeight = _this$getProps.maxHeight,preventWindowScroll = _this$getProps.preventWindowScroll;return /*#__PURE__*/_react.default.createElement("div", { "data-tid": MenuDataTids.root, className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx = {}, _cx[_Menu.styles.root(this.theme)] = true, _cx[_Menu.styles.shadow(this.theme)] = hasShadow, _cx)), style: getStyle(this.props), ref: this.setRootNode }, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: maxHeight, preventWindowScroll: preventWindowScroll, disabled: this.props.disableScrollContainer }, /*#__PURE__*/_react.default.createElement("div", { className: _Menu.styles.scrollContainer(this.theme) }, this.getChildList())));};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (typeof originalRef === 'function') {originalRef(menuItem);}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick();}return true;}return false;};_proto.move = function move(step) {var _this3 = this;if (this.unmounted) {// NOTE workaround, because `ComboBox` call `process.nextTick` in reducer
250
260
  return;}var children = childrenToArray(this.props.children);var activeElements = children.filter(_isActiveElement.isActiveElement);if (!activeElements.length) {return;
251
261
  }
252
262
  var index = this.state.highlightedIndex;var _loop = function _loop() {