@skbkontur/react-ui 0.0.0-f50cd2db6e → 0.0.0-fed57d84fb

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 (1213) hide show
  1. package/CHANGELOG.md +243 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -1
  4. package/cjs/components/Autocomplete/Autocomplete.js +21 -15
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +7 -8
  7. package/cjs/components/Button/Button.js +9 -12
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +2 -1
  10. package/cjs/components/Button/Button.styles.js +43 -33
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +3 -0
  13. package/cjs/components/Center/Center.js +8 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.d.ts +10 -2
  16. package/cjs/components/Checkbox/Checkbox.js +37 -3
  17. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  18. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
  19. package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
  20. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +3 -3
  22. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  24. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  25. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +5 -2
  26. package/cjs/components/CurrencyInput/CurrencyInput.js +41 -15
  27. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  28. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  29. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  30. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  31. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  32. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  33. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
  34. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  35. package/cjs/components/DateInput/DateInput.d.ts +2 -2
  36. package/cjs/components/DateInput/DateInput.js +5 -1
  37. package/cjs/components/DateInput/DateInput.js.map +1 -1
  38. package/cjs/components/DateInput/DateInput.styles.js +2 -2
  39. package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
  40. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  41. package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
  42. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  43. package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
  44. package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
  45. package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
  46. package/cjs/components/DatePicker/DatePicker.d.ts +8 -6
  47. package/cjs/components/DatePicker/DatePicker.js +28 -12
  48. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  49. package/cjs/components/DatePicker/Picker.js +7 -2
  50. package/cjs/components/DatePicker/Picker.js.map +1 -1
  51. package/cjs/components/Dropdown/Dropdown.d.ts +5 -2
  52. package/cjs/components/Dropdown/Dropdown.js +7 -2
  53. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  54. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -6
  55. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  56. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  57. package/cjs/components/FileUploader/FileUploader.d.ts +47 -0
  58. package/cjs/components/FileUploader/FileUploader.js +292 -0
  59. package/cjs/components/FileUploader/FileUploader.js.map +1 -0
  60. package/cjs/components/FileUploader/FileUploader.md +67 -0
  61. package/cjs/components/FileUploader/FileUploader.styles.d.ts +22 -0
  62. package/cjs/components/FileUploader/FileUploader.styles.js +173 -0
  63. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -0
  64. package/cjs/components/FileUploader/index.d.ts +5 -0
  65. package/cjs/components/FileUploader/index.js +5 -0
  66. package/cjs/components/FileUploader/index.js.map +1 -0
  67. package/cjs/components/FileUploader/locale/index.d.ts +4 -0
  68. package/cjs/components/FileUploader/locale/index.js +11 -0
  69. package/cjs/components/FileUploader/locale/index.js.map +1 -0
  70. package/cjs/components/FileUploader/locale/locales/en.d.ts +2 -0
  71. package/cjs/components/FileUploader/locale/locales/en.js +7 -0
  72. package/cjs/components/FileUploader/locale/locales/en.js.map +1 -0
  73. package/cjs/components/FileUploader/locale/locales/ru.d.ts +2 -0
  74. package/cjs/components/FileUploader/locale/locales/ru.js +7 -0
  75. package/cjs/components/FileUploader/locale/locales/ru.js.map +1 -0
  76. package/cjs/components/FileUploader/locale/types.d.ts +6 -0
  77. package/cjs/components/FileUploader/locale/types.js +1 -0
  78. package/cjs/components/FileUploader/locale/types.js.map +1 -0
  79. package/cjs/components/FxInput/FxInput.d.ts +3 -0
  80. package/cjs/components/FxInput/FxInput.js +7 -3
  81. package/cjs/components/FxInput/FxInput.js.map +1 -1
  82. package/cjs/components/Gapped/Gapped.d.ts +4 -0
  83. package/cjs/components/Gapped/Gapped.js +13 -7
  84. package/cjs/components/Gapped/Gapped.js.map +1 -1
  85. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +113 -0
  86. package/cjs/components/GlobalLoader/GlobalLoader.js +271 -0
  87. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -0
  88. package/cjs/components/GlobalLoader/GlobalLoader.md +98 -0
  89. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +13 -0
  90. package/cjs/components/GlobalLoader/GlobalLoaderView.js +73 -0
  91. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -0
  92. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.d.ts +16 -0
  93. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +190 -0
  94. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -0
  95. package/cjs/components/GlobalLoader/index.d.ts +1 -0
  96. package/cjs/components/GlobalLoader/index.js +1 -0
  97. package/cjs/components/GlobalLoader/index.js.map +1 -0
  98. package/cjs/components/GlobalLoader/useParams.d.ts +22 -0
  99. package/cjs/components/GlobalLoader/useParams.js +45 -0
  100. package/cjs/components/GlobalLoader/useParams.js.map +1 -0
  101. package/cjs/components/Group/Group.d.ts +3 -0
  102. package/cjs/components/Group/Group.js +80 -33
  103. package/cjs/components/Group/Group.js.map +1 -1
  104. package/cjs/components/Hint/Hint.d.ts +8 -3
  105. package/cjs/components/Hint/Hint.js +9 -17
  106. package/cjs/components/Hint/Hint.js.map +1 -1
  107. package/cjs/components/Input/Input.d.ts +7 -8
  108. package/cjs/components/Input/Input.js +22 -25
  109. package/cjs/components/Input/Input.js.map +1 -1
  110. package/cjs/components/Kebab/Kebab.d.ts +4 -15
  111. package/cjs/components/Kebab/Kebab.js +5 -29
  112. package/cjs/components/Kebab/Kebab.js.map +1 -1
  113. package/cjs/components/Link/Link.d.ts +4 -1
  114. package/cjs/components/Link/Link.js +9 -5
  115. package/cjs/components/Link/Link.js.map +1 -1
  116. package/cjs/components/Link/Link.styles.d.ts +1 -1
  117. package/cjs/components/Link/Link.styles.js +3 -3
  118. package/cjs/components/Link/Link.styles.js.map +1 -1
  119. package/cjs/components/Loader/Loader.d.ts +4 -0
  120. package/cjs/components/Loader/Loader.js +15 -10
  121. package/cjs/components/Loader/Loader.js.map +1 -1
  122. package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
  123. package/cjs/components/MenuHeader/MenuHeader.js +7 -2
  124. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  125. package/cjs/components/MenuItem/MenuItem.d.ts +6 -2
  126. package/cjs/components/MenuItem/MenuItem.js +12 -9
  127. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  128. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  129. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  130. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  131. package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
  132. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  133. package/cjs/components/Modal/Modal.d.ts +6 -1
  134. package/cjs/components/Modal/Modal.js +13 -6
  135. package/cjs/components/Modal/Modal.js.map +1 -1
  136. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  137. package/cjs/components/Modal/Modal.styles.js +26 -14
  138. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  139. package/cjs/components/Modal/ModalClose.js +3 -2
  140. package/cjs/components/Modal/ModalClose.js.map +1 -1
  141. package/cjs/components/Modal/ModalFooter.d.ts +3 -0
  142. package/cjs/components/Modal/ModalFooter.js +10 -4
  143. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  144. package/cjs/components/Modal/ModalHeader.d.ts +3 -0
  145. package/cjs/components/Modal/ModalHeader.js +10 -4
  146. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  147. package/cjs/components/Paging/Paging.d.ts +20 -3
  148. package/cjs/components/Paging/Paging.js +29 -10
  149. package/cjs/components/Paging/Paging.js.map +1 -1
  150. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  151. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  152. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  153. package/cjs/components/PasswordInput/PasswordInput.d.ts +7 -0
  154. package/cjs/components/PasswordInput/PasswordInput.js +36 -11
  155. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  156. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  157. package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
  158. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  159. package/cjs/components/Radio/Radio.d.ts +5 -2
  160. package/cjs/components/Radio/Radio.js +7 -3
  161. package/cjs/components/Radio/Radio.js.map +1 -1
  162. package/cjs/components/Radio/Radio.styles.js +4 -7
  163. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  164. package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -2
  165. package/cjs/components/RadioGroup/RadioGroup.js +22 -5
  166. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  167. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  168. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  169. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  170. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +14 -7
  171. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  172. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
  173. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  174. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  175. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  176. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  177. package/cjs/components/ScrollContainer/ScrollContainer.js +19 -7
  178. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  179. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  180. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  181. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  182. package/cjs/components/Select/Select.d.ts +13 -8
  183. package/cjs/components/Select/Select.js +57 -18
  184. package/cjs/components/Select/Select.js.map +1 -1
  185. package/cjs/components/SidePage/SidePage.d.ts +8 -1
  186. package/cjs/components/SidePage/SidePage.js +25 -11
  187. package/cjs/components/SidePage/SidePage.js.map +1 -1
  188. package/cjs/components/SidePage/SidePage.styles.d.ts +1 -0
  189. package/cjs/components/SidePage/SidePage.styles.js +14 -6
  190. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  191. package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
  192. package/cjs/components/SidePage/SidePageBody.js +10 -3
  193. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  194. package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
  195. package/cjs/components/SidePage/SidePageContainer.js +7 -2
  196. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  197. package/cjs/components/SidePage/SidePageContext.d.ts +2 -0
  198. package/cjs/components/SidePage/SidePageContext.js +3 -0
  199. package/cjs/components/SidePage/SidePageContext.js.map +1 -1
  200. package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
  201. package/cjs/components/SidePage/SidePageFooter.js +16 -6
  202. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  203. package/cjs/components/SidePage/SidePageHeader.d.ts +7 -0
  204. package/cjs/components/SidePage/SidePageHeader.js +44 -28
  205. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  206. package/cjs/components/Spinner/Spinner.d.ts +11 -1
  207. package/cjs/components/Spinner/Spinner.js +28 -9
  208. package/cjs/components/Spinner/Spinner.js.map +1 -1
  209. package/cjs/components/Spinner/Spinner.md +1 -0
  210. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  211. package/cjs/components/Spinner/Spinner.styles.js +14 -11
  212. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  213. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  214. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  215. package/cjs/components/Sticky/Sticky.d.ts +9 -1
  216. package/cjs/components/Sticky/Sticky.js +16 -6
  217. package/cjs/components/Sticky/Sticky.js.map +1 -1
  218. package/cjs/components/Switcher/Switcher.d.ts +5 -1
  219. package/cjs/components/Switcher/Switcher.js +8 -3
  220. package/cjs/components/Switcher/Switcher.js.map +1 -1
  221. package/cjs/components/Switcher/Switcher.styles.js +5 -3
  222. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  223. package/cjs/components/Tabs/Indicator.js +6 -3
  224. package/cjs/components/Tabs/Indicator.js.map +1 -1
  225. package/cjs/components/Tabs/Tab.d.ts +5 -2
  226. package/cjs/components/Tabs/Tab.js +7 -2
  227. package/cjs/components/Tabs/Tab.js.map +1 -1
  228. package/cjs/components/Tabs/Tabs.d.ts +7 -1
  229. package/cjs/components/Tabs/Tabs.js +20 -7
  230. package/cjs/components/Tabs/Tabs.js.map +1 -1
  231. package/cjs/components/Textarea/Textarea.d.ts +10 -6
  232. package/cjs/components/Textarea/Textarea.js +14 -9
  233. package/cjs/components/Textarea/Textarea.js.map +1 -1
  234. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  235. package/cjs/components/Textarea/TextareaCounter.js +25 -16
  236. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  237. package/cjs/components/Toast/Toast.d.ts +6 -0
  238. package/cjs/components/Toast/Toast.js +9 -2
  239. package/cjs/components/Toast/Toast.js.map +1 -1
  240. package/cjs/components/Toast/Toast.styles.js +2 -2
  241. package/cjs/components/Toast/Toast.styles.js.map +1 -1
  242. package/cjs/components/Toast/ToastStatic.js +1 -1
  243. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  244. package/cjs/components/Toast/ToastView.js +6 -5
  245. package/cjs/components/Toast/ToastView.js.map +1 -1
  246. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  247. package/cjs/components/Toast/ToastView.styles.js +3 -2
  248. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  249. package/cjs/components/Toggle/Toggle.d.ts +6 -3
  250. package/cjs/components/Toggle/Toggle.js +7 -3
  251. package/cjs/components/Toggle/Toggle.js.map +1 -1
  252. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  253. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  254. package/cjs/components/Token/Token.d.ts +5 -2
  255. package/cjs/components/Token/Token.js +20 -3
  256. package/cjs/components/Token/Token.js.map +1 -1
  257. package/cjs/components/Token/Token.styles.js +13 -6
  258. package/cjs/components/Token/Token.styles.js.map +1 -1
  259. package/cjs/components/TokenInput/TextWidthHelper.js +2 -1
  260. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  261. package/cjs/components/TokenInput/TokenInput.d.ts +16 -2
  262. package/cjs/components/TokenInput/TokenInput.js +37 -14
  263. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  264. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  265. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  266. package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
  267. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  268. package/cjs/components/Tooltip/Tooltip.d.ts +19 -24
  269. package/cjs/components/Tooltip/Tooltip.js +44 -37
  270. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  271. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +6 -3
  272. package/cjs/components/TooltipMenu/TooltipMenu.js +9 -2
  273. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  274. package/cjs/hooks/useDrop.d.ts +11 -0
  275. package/cjs/hooks/useDrop.js +77 -0
  276. package/cjs/hooks/useDrop.js.map +1 -0
  277. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -0
  278. package/cjs/hooks/useEffectWithoutInitCall.js +13 -0
  279. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -0
  280. package/cjs/hooks/useMemoObject.d.ts +1 -0
  281. package/cjs/hooks/useMemoObject.js +5 -0
  282. package/cjs/hooks/useMemoObject.js.map +1 -0
  283. package/cjs/index.d.ts +5 -0
  284. package/cjs/index.js +6 -1
  285. package/cjs/index.js.map +1 -1
  286. package/cjs/internal/BGRuler.js +3 -1
  287. package/cjs/internal/BGRuler.js.map +1 -1
  288. package/cjs/internal/Calendar/Calendar.d.ts +6 -0
  289. package/cjs/internal/Calendar/Calendar.js +12 -5
  290. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  291. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  292. package/cjs/internal/Calendar/MonthView.js +5 -4
  293. package/cjs/internal/Calendar/MonthView.js.map +1 -1
  294. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  295. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  296. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  297. package/cjs/internal/CommonWrapper/CommonWrapper.js +22 -6
  298. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  299. package/cjs/internal/ComponentTable.d.ts +4 -2
  300. package/cjs/internal/ComponentTable.js +1 -0
  301. package/cjs/internal/ComponentTable.js.map +1 -1
  302. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  303. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +28 -5
  304. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  305. package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
  306. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  307. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  308. package/cjs/internal/CustomComboBox/CustomComboBox.js +9 -4
  309. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  310. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  311. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  312. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  313. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  314. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  315. package/cjs/internal/DataTids/DataTids.js +46 -0
  316. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  317. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  318. package/cjs/internal/DataTids/DataTids.styles.js +41 -0
  319. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  320. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  321. package/cjs/internal/DataTids/componentsDataTids.js +16 -0
  322. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  323. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
  324. package/cjs/internal/DateSelect/DateSelect.js +30 -13
  325. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  326. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +2 -1
  327. package/cjs/internal/DropdownContainer/DropdownContainer.js +28 -18
  328. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  329. package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  330. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +9 -0
  331. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -0
  332. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
  333. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +16 -0
  334. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -0
  335. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
  336. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +108 -0
  337. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -0
  338. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +19 -0
  339. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +197 -0
  340. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -0
  341. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
  342. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +68 -0
  343. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -0
  344. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +13 -0
  345. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +34 -0
  346. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  347. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +5 -0
  348. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +22 -0
  349. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
  350. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
  351. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +16 -0
  352. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +1 -0
  353. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +14 -0
  354. package/cjs/internal/FileUploaderControl/fileUtils.js +26 -0
  355. package/cjs/internal/FileUploaderControl/fileUtils.js.map +1 -0
  356. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
  357. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +4 -0
  358. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +1 -0
  359. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
  360. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +51 -0
  361. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +1 -0
  362. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
  363. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +23 -0
  364. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -0
  365. package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -1
  366. package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
  367. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  368. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
  369. package/cjs/internal/InternalMenu/InternalMenu.js +13 -14
  370. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  371. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  372. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  373. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  374. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  375. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  376. package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
  377. package/cjs/internal/MaskedInput/MaskedInput.js +16 -5
  378. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  379. package/cjs/internal/Menu/Menu.d.ts +5 -0
  380. package/cjs/internal/Menu/Menu.js +54 -23
  381. package/cjs/internal/Menu/Menu.js.map +1 -1
  382. package/cjs/internal/Menu/Menu.styles.d.ts +3 -0
  383. package/cjs/internal/Menu/Menu.styles.js +27 -5
  384. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  385. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  386. package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
  387. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  388. package/cjs/internal/Popup/Popup.d.ts +12 -6
  389. package/cjs/internal/Popup/Popup.js +38 -39
  390. package/cjs/internal/Popup/Popup.js.map +1 -1
  391. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  392. package/cjs/internal/Popup/PopupHelper.js +4 -2
  393. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  394. package/cjs/internal/Popup/PopupPin.js +2 -1
  395. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  396. package/cjs/internal/Popup/types.d.ts +2 -0
  397. package/cjs/internal/Popup/types.js +1 -0
  398. package/cjs/internal/Popup/types.js.map +1 -0
  399. package/cjs/internal/PopupMenu/PopupMenu.d.ts +11 -3
  400. package/cjs/internal/PopupMenu/PopupMenu.js +39 -7
  401. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  402. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  403. package/cjs/internal/PopupMenu/validatePositions.js +8 -10
  404. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  405. package/cjs/internal/RenderContainer/RenderContainer.js +9 -0
  406. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  407. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +2 -0
  408. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  409. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
  410. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  411. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  412. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  413. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
  414. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +36 -0
  415. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -0
  416. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  417. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +23 -0
  418. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -0
  419. package/cjs/internal/ThemePlayground/CheckboxPlayground.js +1 -0
  420. package/cjs/internal/ThemePlayground/CheckboxPlayground.js.map +1 -1
  421. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -0
  422. package/cjs/internal/ThemePlayground/Playground.js +20 -21
  423. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  424. package/cjs/internal/ThemePlayground/RadioPlayground.js.map +1 -1
  425. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  426. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  427. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  428. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -2
  429. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +11 -14
  430. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  431. package/cjs/internal/ThemePlayground/ThemeEditor.js +8 -1
  432. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  433. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  434. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  435. package/cjs/internal/ThemePlayground/constants.d.ts +2 -1
  436. package/cjs/internal/ThemePlayground/constants.js +4 -2
  437. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  438. package/cjs/internal/ThemePlayground/darkTheme.d.ts +14 -0
  439. package/cjs/internal/ThemePlayground/darkTheme.js +14 -0
  440. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  441. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +42 -42
  442. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  443. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +4 -2
  444. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js +37 -22
  445. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js.map +1 -1
  446. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  447. package/cjs/internal/ThemeShowcase/VariablesCollector.js +10 -6
  448. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  449. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +3 -1
  450. package/cjs/internal/ZIndex/ZIndexStorage.js +14 -6
  451. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  452. package/cjs/internal/icons/16px/index.d.ts +19 -16
  453. package/cjs/internal/icons/16px/index.js +86 -37
  454. package/cjs/internal/icons/16px/index.js.map +1 -1
  455. package/cjs/internal/icons/20px/svg.js +6 -0
  456. package/cjs/internal/icons/20px/svg.js.map +1 -1
  457. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  458. package/cjs/internal/icons/SpinnerIcon.js +7 -4
  459. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  460. package/cjs/internal/themes/DarkTheme.d.ts +34 -0
  461. package/cjs/internal/themes/DarkTheme.js +55 -3
  462. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  463. package/cjs/internal/themes/DefaultTheme.d.ts +62 -4
  464. package/cjs/internal/themes/DefaultTheme.js +119 -18
  465. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  466. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  467. package/cjs/internal/themes/NotFlat.js +12 -2
  468. package/cjs/internal/themes/NotFlat.js.map +1 -1
  469. package/cjs/internal/themes/OldColors.d.ts +6 -0
  470. package/cjs/internal/themes/OldColors.js +35 -17
  471. package/cjs/internal/themes/OldColors.js.map +1 -1
  472. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  473. package/cjs/internal/themes/Theme2022.js +100 -0
  474. package/cjs/internal/themes/Theme2022.js.map +1 -0
  475. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  476. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  477. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  478. package/cjs/lib/ConditionalHandler.d.ts +3 -2
  479. package/cjs/lib/ConditionalHandler.js +5 -3
  480. package/cjs/lib/ConditionalHandler.js.map +1 -1
  481. package/cjs/lib/InstanceWithAnchorElement.d.ts +5 -0
  482. package/cjs/lib/InstanceWithAnchorElement.js +9 -0
  483. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -0
  484. package/cjs/lib/ModalStack.d.ts +1 -1
  485. package/cjs/lib/ModalStack.js +16 -17
  486. package/cjs/lib/ModalStack.js.map +1 -1
  487. package/cjs/lib/SSRSafe.d.ts +1 -0
  488. package/cjs/lib/SSRSafe.js +9 -1
  489. package/cjs/lib/SSRSafe.js.map +1 -1
  490. package/cjs/lib/animation/index.d.ts +1 -1
  491. package/cjs/lib/animation/index.js +3 -3
  492. package/cjs/lib/animation/index.js.map +1 -1
  493. package/cjs/lib/date/InternalDate.js +23 -9
  494. package/cjs/lib/date/InternalDate.js.map +1 -1
  495. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  496. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  497. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  498. package/cjs/lib/date/InternalDateGetter.js +27 -7
  499. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  500. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  501. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  502. package/cjs/lib/date/InternalDateValidator.js +52 -17
  503. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  504. package/cjs/lib/date/types.d.ts +4 -0
  505. package/cjs/lib/date/types.js.map +1 -1
  506. package/cjs/lib/dom/getDOMRect.d.ts +11 -0
  507. package/cjs/lib/dom/getDOMRect.js +36 -0
  508. package/cjs/lib/dom/getDOMRect.js.map +1 -0
  509. package/cjs/lib/events/MouseDrag.js +5 -1
  510. package/cjs/lib/events/MouseDrag.js.map +1 -1
  511. package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  512. package/cjs/lib/events/keyboard/KeyboardMapKeys.js +1 -0
  513. package/cjs/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  514. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  515. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  516. package/cjs/lib/listenFocusOutside.js +1 -1
  517. package/cjs/lib/listenFocusOutside.js.map +1 -1
  518. package/cjs/lib/locale/types.d.ts +2 -0
  519. package/cjs/lib/locale/types.js +2 -0
  520. package/cjs/lib/locale/types.js.map +1 -1
  521. package/cjs/lib/locale/useLocaleForControl.d.ts +3 -0
  522. package/cjs/lib/locale/useLocaleForControl.js +14 -0
  523. package/cjs/lib/locale/useLocaleForControl.js.map +1 -0
  524. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  525. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  526. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  527. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  528. package/cjs/lib/rootNode/getRootNode.js +44 -12
  529. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  530. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +20 -1
  531. package/cjs/lib/rootNode/rootNodeDecorator.js +42 -5
  532. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  533. package/cjs/lib/stringUtils.d.ts +1 -0
  534. package/cjs/lib/stringUtils.js +15 -0
  535. package/cjs/lib/stringUtils.js.map +1 -0
  536. package/cjs/lib/styles/ColorFactory.js +9 -9
  537. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  538. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  539. package/cjs/lib/styles/ColorHelpers.js +33 -10
  540. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  541. package/cjs/lib/styles/ColorObject.js +3 -2
  542. package/cjs/lib/styles/ColorObject.js.map +1 -1
  543. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  544. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  545. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  546. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  547. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  548. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  549. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  550. package/cjs/lib/theming/Emotion.js +5 -2
  551. package/cjs/lib/theming/Emotion.js.map +1 -1
  552. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  553. package/cjs/lib/theming/ThemeFactory.js +9 -4
  554. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  555. package/cjs/lib/theming/ThemeHelpers.d.ts +1 -0
  556. package/cjs/lib/theming/ThemeHelpers.js +16 -2
  557. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  558. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  559. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  560. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  561. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  562. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  563. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  564. package/cjs/lib/theming/useTheme.d.ts +1 -0
  565. package/cjs/lib/theming/useTheme.js +7 -0
  566. package/cjs/lib/theming/useTheme.js.map +1 -0
  567. package/cjs/lib/uidUtils.d.ts +1 -0
  568. package/cjs/lib/uidUtils.js +5 -0
  569. package/cjs/lib/uidUtils.js.map +1 -0
  570. package/cjs/lib/utils.d.ts +48 -0
  571. package/cjs/lib/utils.js +117 -3
  572. package/cjs/lib/utils.js.map +1 -1
  573. package/cjs/typings/html-props.d.ts +123 -0
  574. package/components/Autocomplete/Autocomplete/Autocomplete.js +18 -20
  575. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  576. package/components/Autocomplete/Autocomplete.d.ts +3 -1
  577. package/components/Button/Button/Button.js +13 -20
  578. package/components/Button/Button/Button.js.map +1 -1
  579. package/components/Button/Button.d.ts +7 -8
  580. package/components/Button/Button.styles/Button.styles.js +35 -32
  581. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  582. package/components/Button/Button.styles.d.ts +2 -1
  583. package/components/Center/Center/Center.js +10 -5
  584. package/components/Center/Center/Center.js.map +1 -1
  585. package/components/Center/Center.d.ts +3 -0
  586. package/components/Checkbox/Checkbox/Checkbox.js +33 -2
  587. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  588. package/components/Checkbox/Checkbox.d.ts +10 -2
  589. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
  590. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  591. package/components/Checkbox/Checkbox.styles.d.ts +1 -0
  592. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  593. package/components/ComboBox/ComboBox.d.ts +3 -3
  594. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  595. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  596. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +45 -22
  597. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  598. package/components/CurrencyInput/CurrencyInput.d.ts +5 -2
  599. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  600. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  601. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  602. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  603. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
  604. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  605. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  606. package/components/DateInput/DateInput/DateInput.js +9 -1
  607. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  608. package/components/DateInput/DateInput.d.ts +2 -2
  609. package/components/DateInput/DateInput.styles/DateInput.styles.js +2 -2
  610. package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
  611. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
  612. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  613. package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  614. package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
  615. package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
  616. package/components/DateInput/helpers/inputNumber.d.ts +1 -1
  617. package/components/DatePicker/DatePicker/DatePicker.js +25 -15
  618. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  619. package/components/DatePicker/DatePicker.d.ts +8 -6
  620. package/components/DatePicker/Picker/Picker.js +3 -1
  621. package/components/DatePicker/Picker/Picker.js.map +1 -1
  622. package/components/Dropdown/Dropdown/Dropdown.js +9 -5
  623. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  624. package/components/Dropdown/Dropdown.d.ts +5 -2
  625. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  626. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  627. package/components/DropdownMenu/DropdownMenu.d.ts +3 -6
  628. package/components/FileUploader/FileUploader/FileUploader.js +280 -0
  629. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -0
  630. package/components/FileUploader/FileUploader/package.json +6 -0
  631. package/components/FileUploader/FileUploader.d.ts +47 -0
  632. package/components/FileUploader/FileUploader.md +67 -0
  633. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +65 -0
  634. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -0
  635. package/components/FileUploader/FileUploader.styles/package.json +6 -0
  636. package/components/FileUploader/FileUploader.styles.d.ts +22 -0
  637. package/components/FileUploader/index/index.js +3 -0
  638. package/components/FileUploader/index/index.js.map +1 -0
  639. package/components/FileUploader/index/package.json +6 -0
  640. package/components/FileUploader/index.d.ts +5 -0
  641. package/components/FileUploader/locale/index/index.js +8 -0
  642. package/components/FileUploader/locale/index/index.js.map +1 -0
  643. package/components/FileUploader/locale/index/package.json +6 -0
  644. package/components/FileUploader/locale/index.d.ts +4 -0
  645. package/components/FileUploader/locale/locales/en/en.js +6 -0
  646. package/components/FileUploader/locale/locales/en/en.js.map +1 -0
  647. package/components/FileUploader/locale/locales/en/package.json +6 -0
  648. package/components/FileUploader/locale/locales/en.d.ts +2 -0
  649. package/components/FileUploader/locale/locales/ru/package.json +6 -0
  650. package/components/FileUploader/locale/locales/ru/ru.js +6 -0
  651. package/components/FileUploader/locale/locales/ru/ru.js.map +1 -0
  652. package/components/FileUploader/locale/locales/ru.d.ts +2 -0
  653. package/components/FileUploader/locale/package.json +6 -0
  654. package/components/FileUploader/locale/types/package.json +6 -0
  655. package/components/FileUploader/locale/types/types.js +1 -0
  656. package/components/FileUploader/locale/types/types.js.map +1 -0
  657. package/components/FileUploader/locale/types.d.ts +6 -0
  658. package/components/FileUploader/package.json +6 -0
  659. package/components/FxInput/FxInput/FxInput.js +6 -2
  660. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  661. package/components/FxInput/FxInput.d.ts +3 -0
  662. package/components/Gapped/Gapped/Gapped.js +16 -8
  663. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  664. package/components/Gapped/Gapped.d.ts +4 -0
  665. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +223 -0
  666. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -0
  667. package/components/GlobalLoader/GlobalLoader/package.json +6 -0
  668. package/components/GlobalLoader/GlobalLoader.d.ts +113 -0
  669. package/components/GlobalLoader/GlobalLoader.md +98 -0
  670. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +73 -0
  671. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -0
  672. package/components/GlobalLoader/GlobalLoaderView/package.json +6 -0
  673. package/components/GlobalLoader/GlobalLoaderView.d.ts +13 -0
  674. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +53 -0
  675. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -0
  676. package/components/GlobalLoader/GlobalLoaderView.styles/package.json +6 -0
  677. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +16 -0
  678. package/components/GlobalLoader/index/index.js +1 -0
  679. package/components/GlobalLoader/index/index.js.map +1 -0
  680. package/components/GlobalLoader/index/package.json +6 -0
  681. package/components/GlobalLoader/index.d.ts +1 -0
  682. package/components/GlobalLoader/package.json +6 -0
  683. package/components/GlobalLoader/useParams/package.json +6 -0
  684. package/components/GlobalLoader/useParams/useParams.js +51 -0
  685. package/components/GlobalLoader/useParams/useParams.js.map +1 -0
  686. package/components/GlobalLoader/useParams.d.ts +22 -0
  687. package/components/Group/Group/Group.js +66 -30
  688. package/components/Group/Group/Group.js.map +1 -1
  689. package/components/Group/Group.d.ts +3 -0
  690. package/components/Hint/Hint/Hint.js +9 -1
  691. package/components/Hint/Hint/Hint.js.map +1 -1
  692. package/components/Hint/Hint.d.ts +8 -3
  693. package/components/Input/Input/Input.js +18 -31
  694. package/components/Input/Input/Input.js.map +1 -1
  695. package/components/Input/Input.d.ts +7 -8
  696. package/components/Kebab/Kebab/Kebab.js +3 -13
  697. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  698. package/components/Kebab/Kebab.d.ts +4 -15
  699. package/components/Link/Link/Link.js +12 -7
  700. package/components/Link/Link/Link.js.map +1 -1
  701. package/components/Link/Link.d.ts +4 -1
  702. package/components/Link/Link.styles/Link.styles.js +2 -2
  703. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  704. package/components/Link/Link.styles.d.ts +1 -1
  705. package/components/Loader/Loader/Loader.js +21 -18
  706. package/components/Loader/Loader/Loader.js.map +1 -1
  707. package/components/Loader/Loader.d.ts +4 -0
  708. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  709. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  710. package/components/MenuHeader/MenuHeader.d.ts +3 -0
  711. package/components/MenuItem/MenuItem/MenuItem.js +18 -17
  712. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  713. package/components/MenuItem/MenuItem.d.ts +6 -2
  714. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  715. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  716. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
  717. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  718. package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  719. package/components/Modal/Modal/Modal.js +11 -5
  720. package/components/Modal/Modal/Modal.js.map +1 -1
  721. package/components/Modal/Modal.d.ts +6 -1
  722. package/components/Modal/Modal.styles/Modal.styles.js +15 -12
  723. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  724. package/components/Modal/Modal.styles.d.ts +1 -0
  725. package/components/Modal/ModalClose/ModalClose.js +2 -1
  726. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  727. package/components/Modal/ModalFooter/ModalFooter.js +8 -4
  728. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  729. package/components/Modal/ModalFooter.d.ts +3 -0
  730. package/components/Modal/ModalHeader/ModalHeader.js +7 -3
  731. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  732. package/components/Modal/ModalHeader.d.ts +3 -0
  733. package/components/Paging/Paging/Paging.js +24 -18
  734. package/components/Paging/Paging/Paging.js.map +1 -1
  735. package/components/Paging/Paging.d.ts +20 -3
  736. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  737. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  738. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  739. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  740. package/components/PasswordInput/PasswordInput/PasswordInput.js +39 -14
  741. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  742. package/components/PasswordInput/PasswordInput.d.ts +7 -0
  743. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
  744. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  745. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  746. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  747. package/components/Radio/Radio/Radio.js +10 -5
  748. package/components/Radio/Radio/Radio.js.map +1 -1
  749. package/components/Radio/Radio.d.ts +5 -2
  750. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  751. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  752. package/components/RadioGroup/RadioGroup/RadioGroup.js +25 -13
  753. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  754. package/components/RadioGroup/RadioGroup.d.ts +11 -2
  755. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  756. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  757. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +15 -7
  758. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  759. package/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  760. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +1 -1
  761. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  762. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  763. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  764. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +11 -4
  765. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  766. package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  767. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  768. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  769. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  770. package/components/Select/Select/Select.js +51 -22
  771. package/components/Select/Select/Select.js.map +1 -1
  772. package/components/Select/Select.d.ts +13 -8
  773. package/components/SidePage/SidePage/SidePage.js +27 -15
  774. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  775. package/components/SidePage/SidePage.d.ts +8 -1
  776. package/components/SidePage/SidePage.styles/SidePage.styles.js +9 -6
  777. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  778. package/components/SidePage/SidePage.styles.d.ts +1 -0
  779. package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
  780. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  781. package/components/SidePage/SidePageBody.d.ts +3 -0
  782. package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
  783. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  784. package/components/SidePage/SidePageContainer.d.ts +3 -0
  785. package/components/SidePage/SidePageContext/SidePageContext.js +3 -0
  786. package/components/SidePage/SidePageContext/SidePageContext.js.map +1 -1
  787. package/components/SidePage/SidePageContext.d.ts +2 -0
  788. package/components/SidePage/SidePageFooter/SidePageFooter.js +15 -11
  789. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  790. package/components/SidePage/SidePageFooter.d.ts +3 -0
  791. package/components/SidePage/SidePageHeader/SidePageHeader.js +41 -23
  792. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  793. package/components/SidePage/SidePageHeader.d.ts +7 -0
  794. package/components/Spinner/Spinner/Spinner.js +19 -8
  795. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  796. package/components/Spinner/Spinner.d.ts +11 -1
  797. package/components/Spinner/Spinner.md +1 -0
  798. package/components/Spinner/Spinner.styles/Spinner.styles.js +13 -10
  799. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  800. package/components/Spinner/Spinner.styles.d.ts +2 -1
  801. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  802. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  803. package/components/Sticky/Sticky/Sticky.js +13 -8
  804. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  805. package/components/Sticky/Sticky.d.ts +9 -1
  806. package/components/Switcher/Switcher/Switcher.js +4 -0
  807. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  808. package/components/Switcher/Switcher.d.ts +5 -1
  809. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  810. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  811. package/components/Tabs/Indicator/Indicator.js +4 -1
  812. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  813. package/components/Tabs/Tab/Tab.js +4 -0
  814. package/components/Tabs/Tab/Tab.js.map +1 -1
  815. package/components/Tabs/Tab.d.ts +5 -2
  816. package/components/Tabs/Tabs/Tabs.js +11 -6
  817. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  818. package/components/Tabs/Tabs.d.ts +7 -1
  819. package/components/Textarea/Textarea/Textarea.js +21 -15
  820. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  821. package/components/Textarea/Textarea.d.ts +10 -6
  822. package/components/Textarea/TextareaCounter/TextareaCounter.js +20 -8
  823. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  824. package/components/Textarea/TextareaCounter.d.ts +1 -2
  825. package/components/Toast/Toast/Toast.js +16 -10
  826. package/components/Toast/Toast/Toast.js.map +1 -1
  827. package/components/Toast/Toast.d.ts +6 -0
  828. package/components/Toast/Toast.styles/Toast.styles.js +2 -2
  829. package/components/Toast/Toast.styles/Toast.styles.js.map +1 -1
  830. package/components/Toast/ToastStatic/ToastStatic.js +2 -2
  831. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  832. package/components/Toast/ToastView/ToastView.js +5 -4
  833. package/components/Toast/ToastView/ToastView.js.map +1 -1
  834. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  835. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  836. package/components/Toast/ToastView.styles.d.ts +1 -1
  837. package/components/Toggle/Toggle/Toggle.js +8 -4
  838. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  839. package/components/Toggle/Toggle.d.ts +6 -3
  840. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  841. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  842. package/components/Token/Token/Token.js +16 -1
  843. package/components/Token/Token/Token.js.map +1 -1
  844. package/components/Token/Token.d.ts +5 -2
  845. package/components/Token/Token.styles/Token.styles.js +11 -4
  846. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  847. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +3 -2
  848. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  849. package/components/TokenInput/TokenInput/TokenInput.js +31 -17
  850. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  851. package/components/TokenInput/TokenInput.d.ts +16 -2
  852. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  853. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  854. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
  855. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  856. package/components/Tooltip/Tooltip/Tooltip.js +42 -22
  857. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  858. package/components/Tooltip/Tooltip.d.ts +19 -24
  859. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +18 -12
  860. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  861. package/components/TooltipMenu/TooltipMenu.d.ts +6 -3
  862. package/hooks/useDrop/package.json +6 -0
  863. package/hooks/useDrop/useDrop.js +61 -0
  864. package/hooks/useDrop/useDrop.js.map +1 -0
  865. package/hooks/useDrop.d.ts +11 -0
  866. package/hooks/useEffectWithoutInitCall/package.json +6 -0
  867. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +11 -0
  868. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -0
  869. package/hooks/useEffectWithoutInitCall.d.ts +2 -0
  870. package/hooks/useMemoObject/package.json +6 -0
  871. package/hooks/useMemoObject/useMemoObject.js +6 -0
  872. package/hooks/useMemoObject/useMemoObject.js.map +1 -0
  873. package/hooks/useMemoObject.d.ts +1 -0
  874. package/index.d.ts +5 -0
  875. package/index.js +6 -1
  876. package/index.js.map +1 -1
  877. package/internal/BGRuler/BGRuler.js +2 -1
  878. package/internal/BGRuler/BGRuler.js.map +1 -1
  879. package/internal/Calendar/Calendar/Calendar.js +13 -5
  880. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  881. package/internal/Calendar/Calendar.d.ts +6 -0
  882. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  883. package/internal/Calendar/MonthView/MonthView.js +4 -3
  884. package/internal/Calendar/MonthView/MonthView.js.map +1 -1
  885. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  886. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  887. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +24 -11
  888. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  889. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  890. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  891. package/internal/ComponentTable.d.ts +4 -2
  892. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +34 -19
  893. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  894. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  895. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
  896. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  897. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +21 -17
  898. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  899. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  900. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  901. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  902. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  903. package/internal/DataTids/DATATIDS.md +12 -0
  904. package/internal/DataTids/DataTids/DataTids.js +69 -0
  905. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  906. package/internal/DataTids/DataTids/package.json +6 -0
  907. package/internal/DataTids/DataTids.d.ts +12 -0
  908. package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
  909. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  910. package/internal/DataTids/DataTids.styles/package.json +6 -0
  911. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  912. package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
  913. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  914. package/internal/DataTids/componentsDataTids/package.json +6 -0
  915. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  916. package/internal/DateSelect/DateSelect/DateSelect.js +29 -18
  917. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  918. package/internal/DateSelect/DateSelect.d.ts +4 -0
  919. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +32 -35
  920. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  921. package/internal/DropdownContainer/DropdownContainer.d.ts +2 -1
  922. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js +10 -0
  923. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js.map +1 -0
  924. package/internal/DropdownContainer/DropdownContainer.styles/package.json +6 -0
  925. package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  926. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +2 -0
  927. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -0
  928. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +6 -0
  929. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
  930. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +89 -0
  931. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -0
  932. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +6 -0
  933. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
  934. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +187 -0
  935. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -0
  936. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +6 -0
  937. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +19 -0
  938. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +32 -0
  939. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -0
  940. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +6 -0
  941. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
  942. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +30 -0
  943. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  944. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +6 -0
  945. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +13 -0
  946. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +14 -0
  947. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -0
  948. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +6 -0
  949. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +5 -0
  950. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +16 -0
  951. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +1 -0
  952. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +6 -0
  953. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
  954. package/internal/FileUploaderControl/fileUtils/fileUtils.js +19 -0
  955. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +1 -0
  956. package/internal/FileUploaderControl/fileUtils/package.json +6 -0
  957. package/internal/FileUploaderControl/fileUtils.d.ts +14 -0
  958. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +6 -0
  959. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +5 -0
  960. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +1 -0
  961. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
  962. package/internal/FileUploaderControl/hooks/useUpload/package.json +6 -0
  963. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +56 -0
  964. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +1 -0
  965. package/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
  966. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +6 -0
  967. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +19 -0
  968. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -0
  969. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
  970. package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
  971. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  972. package/internal/InputLikeText/InputLikeText.d.ts +5 -1
  973. package/internal/InternalMenu/InternalMenu/InternalMenu.js +20 -22
  974. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  975. package/internal/InternalMenu/InternalMenu.d.ts +3 -0
  976. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  977. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  978. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  979. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  980. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  981. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  982. package/internal/MaskedInput/MaskedInput/MaskedInput.js +14 -3
  983. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  984. package/internal/MaskedInput/MaskedInput.d.ts +3 -0
  985. package/internal/Menu/Menu/Menu.js +45 -25
  986. package/internal/Menu/Menu/Menu.js.map +1 -1
  987. package/internal/Menu/Menu.d.ts +5 -0
  988. package/internal/Menu/Menu.styles/Menu.styles.js +13 -4
  989. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  990. package/internal/Menu/Menu.styles.d.ts +3 -0
  991. package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
  992. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  993. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  994. package/internal/Popup/Popup/Popup.js +37 -28
  995. package/internal/Popup/Popup/Popup.js.map +1 -1
  996. package/internal/Popup/Popup.d.ts +12 -6
  997. package/internal/Popup/PopupHelper/PopupHelper.js +3 -1
  998. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  999. package/internal/Popup/PopupHelper.d.ts +2 -2
  1000. package/internal/Popup/PopupPin/PopupPin.js +2 -0
  1001. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  1002. package/internal/Popup/types/package.json +6 -0
  1003. package/internal/Popup/types/types.js +1 -0
  1004. package/internal/Popup/types/types.js.map +1 -0
  1005. package/internal/Popup/types.d.ts +2 -0
  1006. package/internal/PopupMenu/PopupMenu/PopupMenu.js +19 -6
  1007. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  1008. package/internal/PopupMenu/PopupMenu.d.ts +11 -3
  1009. package/internal/PopupMenu/validatePositions/validatePositions.js +8 -8
  1010. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  1011. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  1012. package/internal/RenderContainer/RenderContainer/RenderContainer.js +9 -0
  1013. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  1014. package/internal/RenderContainer/RenderContainerTypes.d.ts +2 -0
  1015. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
  1016. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  1017. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  1018. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  1019. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  1020. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +50 -0
  1021. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -0
  1022. package/internal/TextWidthHelper/TextWidthHelper/package.json +6 -0
  1023. package/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
  1024. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +14 -0
  1025. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +1 -0
  1026. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +6 -0
  1027. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  1028. package/internal/ThemePlayground/CheckboxPlayground/CheckboxPlayground.js.map +1 -1
  1029. package/internal/ThemePlayground/Playground/Playground.js +26 -35
  1030. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  1031. package/internal/ThemePlayground/Playground.d.ts +1 -0
  1032. package/internal/ThemePlayground/RadioPlayground/RadioPlayground.js.map +1 -1
  1033. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  1034. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  1035. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  1036. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  1037. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +15 -18
  1038. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  1039. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -2
  1040. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  1041. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  1042. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  1043. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  1044. package/internal/ThemePlayground/constants/constants.js +5 -1
  1045. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  1046. package/internal/ThemePlayground/constants.d.ts +2 -1
  1047. package/internal/ThemePlayground/darkTheme/darkTheme.js +14 -0
  1048. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  1049. package/internal/ThemePlayground/darkTheme.d.ts +14 -0
  1050. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +12 -13
  1051. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  1052. package/internal/ThemeShowcase/ThemeShowcase.styles/ThemeShowcase.styles.js +26 -20
  1053. package/internal/ThemeShowcase/ThemeShowcase.styles/ThemeShowcase.styles.js.map +1 -1
  1054. package/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +4 -2
  1055. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +12 -6
  1056. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  1057. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  1058. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +13 -6
  1059. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  1060. package/internal/ZIndex/ZIndexStorage.d.ts +3 -1
  1061. package/internal/icons/16px/index/index.js +67 -17
  1062. package/internal/icons/16px/index/index.js.map +1 -1
  1063. package/internal/icons/16px/index.d.ts +19 -16
  1064. package/internal/icons/20px/svg/svg.js +5 -0
  1065. package/internal/icons/20px/svg/svg.js.map +1 -1
  1066. package/internal/icons/SpinnerIcon/SpinnerIcon.js +7 -5
  1067. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  1068. package/internal/icons/SpinnerIcon.d.ts +4 -1
  1069. package/internal/themes/DarkTheme/DarkTheme.js +65 -3
  1070. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  1071. package/internal/themes/DarkTheme.d.ts +34 -0
  1072. package/internal/themes/DefaultTheme/DefaultTheme.js +159 -24
  1073. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  1074. package/internal/themes/DefaultTheme.d.ts +62 -4
  1075. package/internal/themes/NotFlat/NotFlat.js +15 -0
  1076. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  1077. package/internal/themes/NotFlat.d.ts +6 -0
  1078. package/internal/themes/OldColors/OldColors.js +31 -19
  1079. package/internal/themes/OldColors/OldColors.js.map +1 -1
  1080. package/internal/themes/OldColors.d.ts +6 -0
  1081. package/internal/themes/Theme2022/Theme2022.js +78 -0
  1082. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  1083. package/internal/themes/Theme2022/package.json +6 -0
  1084. package/internal/themes/Theme2022.d.ts +66 -0
  1085. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  1086. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  1087. package/internal/themes/Theme2022Dark/package.json +6 -0
  1088. package/internal/themes/Theme2022Dark.d.ts +5 -0
  1089. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  1090. package/lib/ConditionalHandler.d.ts +3 -2
  1091. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js +3 -0
  1092. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -0
  1093. package/lib/InstanceWithAnchorElement/package.json +6 -0
  1094. package/lib/InstanceWithAnchorElement.d.ts +5 -0
  1095. package/lib/ModalStack/ModalStack.js +9 -13
  1096. package/lib/ModalStack/ModalStack.js.map +1 -1
  1097. package/lib/ModalStack.d.ts +1 -1
  1098. package/lib/SSRSafe/SSRSafe.js +7 -0
  1099. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  1100. package/lib/SSRSafe.d.ts +1 -0
  1101. package/lib/animation/index/index.js +1 -1
  1102. package/lib/animation/index/index.js.map +1 -1
  1103. package/lib/animation/index.d.ts +1 -1
  1104. package/lib/date/InternalDate/InternalDate.js +16 -1
  1105. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  1106. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  1107. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  1108. package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
  1109. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  1110. package/lib/date/InternalDateGetter.d.ts +1 -1
  1111. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  1112. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  1113. package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
  1114. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  1115. package/lib/date/types/types.js.map +1 -1
  1116. package/lib/date/types.d.ts +4 -0
  1117. package/lib/dom/getDOMRect/getDOMRect.js +40 -0
  1118. package/lib/dom/getDOMRect/getDOMRect.js.map +1 -0
  1119. package/lib/dom/getDOMRect/package.json +6 -0
  1120. package/lib/dom/getDOMRect.d.ts +11 -0
  1121. package/lib/events/MouseDrag/MouseDrag.js +5 -1
  1122. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  1123. package/lib/events/keyboard/KeyboardMapKeys/KeyboardMapKeys.js.map +1 -1
  1124. package/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  1125. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  1126. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  1127. package/lib/listenFocusOutside/listenFocusOutside.js +1 -1
  1128. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  1129. package/lib/locale/types/types.js.map +1 -1
  1130. package/lib/locale/types.d.ts +2 -0
  1131. package/lib/locale/useLocaleForControl/package.json +6 -0
  1132. package/lib/locale/useLocaleForControl/useLocaleForControl.js +12 -0
  1133. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -0
  1134. package/lib/locale/useLocaleForControl.d.ts +3 -0
  1135. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  1136. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  1137. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  1138. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  1139. package/lib/rootNode/getRootNode/getRootNode.js +41 -13
  1140. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  1141. package/lib/rootNode/getRootNode.d.ts +9 -0
  1142. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +26 -2
  1143. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  1144. package/lib/rootNode/rootNodeDecorator.d.ts +20 -1
  1145. package/lib/stringUtils/package.json +6 -0
  1146. package/lib/stringUtils/stringUtils.js +15 -0
  1147. package/lib/stringUtils/stringUtils.js.map +1 -0
  1148. package/lib/stringUtils.d.ts +1 -0
  1149. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  1150. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  1151. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  1152. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  1153. package/lib/styles/ColorHelpers.d.ts +1 -0
  1154. package/lib/styles/ColorObject/ColorObject.js +2 -2
  1155. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  1156. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  1157. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  1158. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  1159. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  1160. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  1161. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  1162. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  1163. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  1164. package/lib/theming/Emotion/Emotion.js +5 -2
  1165. package/lib/theming/Emotion/Emotion.js.map +1 -1
  1166. package/lib/theming/ThemeFactory/ThemeFactory.js +8 -4
  1167. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  1168. package/lib/theming/ThemeFactory.d.ts +1 -1
  1169. package/lib/theming/ThemeHelpers/ThemeHelpers.js +14 -1
  1170. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  1171. package/lib/theming/ThemeHelpers.d.ts +1 -0
  1172. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  1173. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  1174. package/lib/theming/themes/Theme2022/package.json +6 -0
  1175. package/lib/theming/themes/Theme2022.d.ts +1 -0
  1176. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  1177. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  1178. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  1179. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  1180. package/lib/theming/useTheme/package.json +6 -0
  1181. package/lib/theming/useTheme/useTheme.js +5 -0
  1182. package/lib/theming/useTheme/useTheme.js.map +1 -0
  1183. package/lib/theming/useTheme.d.ts +1 -0
  1184. package/lib/uidUtils/package.json +6 -0
  1185. package/lib/uidUtils/uidUtils.js +4 -0
  1186. package/lib/uidUtils/uidUtils.js.map +1 -0
  1187. package/lib/uidUtils.d.ts +1 -0
  1188. package/lib/utils/utils.js +120 -0
  1189. package/lib/utils/utils.js.map +1 -1
  1190. package/lib/utils.d.ts +48 -0
  1191. package/package.json +14 -5
  1192. package/typings/html-props.d.ts +123 -0
  1193. package/cjs/components/Button/Corners.d.ts +0 -6
  1194. package/cjs/components/Button/Corners.js +0 -5
  1195. package/cjs/components/Button/Corners.js.map +0 -1
  1196. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  1197. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  1198. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  1199. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  1200. package/cjs/lib/polyfillPlaceholder.js +0 -17
  1201. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  1202. package/components/Button/Corners/Corners.js +0 -6
  1203. package/components/Button/Corners/Corners.js.map +0 -1
  1204. package/components/Button/Corners/package.json +0 -6
  1205. package/components/Button/Corners.d.ts +0 -6
  1206. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  1207. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  1208. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  1209. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  1210. package/lib/polyfillPlaceholder/package.json +0 -6
  1211. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  1212. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  1213. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["InternalMenu.tsx"],"names":["React","isKeyArrowDown","isKeyArrowUp","isKeyEnter","ScrollContainer","isMenuItem","isMenuHeader","createPropsGetter","ThemeContext","cx","getRootNode","rootNode","styles","isActiveElement","InternalMenu","state","highlightedIndex","maxHeight","props","scrollState","getProps","defaultProps","renderHeader","el","header","fixedHeader","renderFooter","footer","fixedFooter","focusOnRootElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","window","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","getBoundingClientRect","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","root","shadow","hasShadow","width","setRootNode","preventWindowScroll","map","child","type","cloneElement","_enableIconPadding","highlight","ref","originalRef","menuItem","refHighlighted","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","cyclicSelection","length","filter","isExist","PureComponent","__KONTUR_REACT_UI__","value","undefined","ret","forEach","push"],"mappings":"uLAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,cAAT,EAAyBC,YAAzB,EAAuCC,UAAvC,QAAyD,uCAAzD;AACA,SAASC,eAAT,QAA4D,kCAA5D;AACA,SAASC,UAAT,QAAoD,2BAApD;AACA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,eAAT,QAAgC,mBAAhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,WAAaC,YAAb,GADCH,QACD;;;;;;;;;;;;AAYSI,IAAAA,KAZT,GAY4B;AACxBC,MAAAA,gBAAgB,EAAE,CAAC,CADK;AAExBC,MAAAA,SAAS,EAAE,MAAKC,KAAL,CAAWD,SAAX,IAAwB,MAFX;AAGxBE,MAAAA,WAAW,EAAE,KAHW,EAZ5B;;;;;;;;;AAwBUC,IAAAA,QAxBV,GAwBqBb,iBAAiB,CAACO,YAAY,CAACO,YAAd,CAxBtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0IUC,IAAAA,YA1IV,GA0IyB,YAAM;AAC3B;AACE;AACE,UAAA,GAAG,EAAE,aAACC,EAAD,UAAS,MAAKC,MAAL,GAAcD,EAAvB,EADP;AAEE,UAAA,SAAS,EAAEd,EAAE;AACVG,UAAAA,MAAM,CAACY,MAAP,EADU,IACQ,IADR;AAEVZ,UAAAA,MAAM,CAACa,WAAP,EAFU,IAEa,MAAKV,KAAL,CAAWI,WAAX,KAA2B,KAFxC,OAFf;;;AAOG,cAAKD,KAAL,CAAWM,MAPd,CADF;;;AAWD,KAtJH;;AAwJUE,IAAAA,YAxJV,GAwJyB,YAAM;AAC3B;AACE;AACE,UAAA,GAAG,EAAE,aAACH,EAAD,UAAS,MAAKI,MAAL,GAAcJ,EAAvB,EADP;AAEE,UAAA,SAAS,EAAEd,EAAE;AACVG,UAAAA,MAAM,CAACe,MAAP,EADU,IACQ,IADR;AAEVf,UAAAA,MAAM,CAACgB,WAAP,EAFU,IAEa,MAAKb,KAAL,CAAWI,WAAX,KAA2B,QAFxC,QAFf;;;AAOG,cAAKD,KAAL,CAAWS,MAPd,CADF;;;AAWD,KApKH;;AAsKUE,IAAAA,kBAtKV,GAsK+B,YAAY;AACvC,sBAAAnB,WAAW,+BAAX,kCAAmBoB,KAAnB;AACD,KAxKH;;AA0KUC,IAAAA,0BA1KV,GA0KuC,UAACC,SAAD,EAAmC;AACtE,wBAAgD,MAAKd,KAArD,CAAQD,SAAR,eAAQA,SAAR,CAAmBO,MAAnB,eAAmBA,MAAnB,CAA2BG,MAA3B,eAA2BA,MAA3B,CAAmCM,QAAnC,eAAmCA,QAAnC;AACA,UAAMC,aAAa,GAAGF,SAAS,CAACf,SAAhC;AACA,UAAMkB,UAAU,GAAGH,SAAS,CAACR,MAA7B;AACA,UAAMY,UAAU,GAAGJ,SAAS,CAACL,MAA7B;AACA,UAAMU,iBAAiB,GAAGrC,KAAK,CAACsC,QAAN,CAAeC,KAAf,CAAqBP,SAAS,CAACC,QAA/B,CAA1B;;AAEA;AACEhB,QAAAA,SAAS,KAAKiB,aAAd;AACAP,QAAAA,MAAM,KAAKS,UADX;AAEAZ,QAAAA,MAAM,KAAKW,UAFX;AAGAnC,QAAAA,KAAK,CAACsC,QAAN,CAAeC,KAAf,CAAqBN,QAArB,MAAmCI,iBAJrC;;AAMD,KAvLH;;AAyLUG,IAAAA,kBAzLV,GAyL+B,YAAM;AACjC,UAAQvB,SAAR,GAAsB,MAAKC,KAA3B,CAAQD,SAAR;AACA,UAAIwB,eAAe,GAAGxB,SAAtB;AACA,UAAMN,QAAQ,GAAGD,WAAW,+BAA5B;;AAEA,UAAI,OAAOO,SAAP,KAAqB,QAArB,IAAiC,OAAOyB,MAAP,KAAkB,WAAnD,IAAkE/B,QAAtE,EAAgF;AAC9E,YAAMgC,oBAAoB,GAAGD,MAAM,CAACE,gBAAP,CAAwBjC,QAAxB,EAAkCM,SAA/D;;AAEA,YAAI0B,oBAAJ,EAA0B;AACxBF,UAAAA,eAAe,GAAGI,UAAU,CAACF,oBAAD,CAA5B;AACD;AACF;;AAED,UAAMG,mBAAmB;AACvB,aAAOL,eAAP,KAA2B,QAA3B;AACIA,MAAAA,eAAe;AACb,YAAKjB,MAAL,IAAe,MAAKA,MAAL,CAAYuB,qBAAZ,GAAoCC,MAApD,IAA+D,CADjD,CAAf;AAEE,YAAKrB,MAAL,IAAe,MAAKA,MAAL,CAAYoB,qBAAZ,GAAoCC,MAApD,IAA+D,CAFhE,CADJ;AAII/B,MAAAA,SALN;;AAOA,YAAKgC,QAAL,CAAc;AACZhC,QAAAA,SAAS,EAAE6B,mBAAmB,IAAI,MADtB,EAAd;;AAGD,KAhNH;;AAkNUI,IAAAA,mBAlNV,GAkNgC,YAAM;AAClC,WAAK,IAAIC,CAAC,GAAG,MAAK/B,QAAL,GAAgBgC,wBAA7B,EAAuDD,CAAC,GAAG,CAAC,CAA5D,EAA+DA,CAAC,EAAhE,EAAoE;AAClE,cAAKE,QAAL;AACD;AACF,KAtNH;;AAwNUC,IAAAA,kBAxNV,GAwN+B,UAACC,eAAD,EAAgD;AAC3E,YAAKA,eAAL,GAAuBA,eAAvB;AACD,KA1NH;;;;;;;;;;;;;;;;;;;;AA8OUC,IAAAA,gBA9OV,GA8O6B,YAAM;AAC/B,UAAI,MAAKD,eAAL,IAAwB,MAAKE,WAAjC,EAA8C;AAC5C,cAAKF,eAAL,CAAqBG,QAArB,CAA8BhD,WAAW,CAAC,MAAK+C,WAAN,CAAzC;AACD;AACF,KAlPH;;;;;;;;;;;;;;;;;;;;;;;;AA0QUE,IAAAA,aA1QV,GA0Q0B,UAACC,KAAD,EAAyB;AAC/C,YAAKX,QAAL,CAAc,EAAEjC,gBAAgB,EAAE4C,KAApB,EAAd;AACA,uBAAAlD,WAAW,+BAAX,mCAAmBoB,KAAnB;AACD,KA7QH;;AA+QU+B,IAAAA,WA/QV,GA+QwB,YAAM;AAC1B,YAAKZ,QAAL,CAAc,EAAEjC,gBAAgB,EAAE,CAAC,CAArB,EAAd;AACD,KAjRH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+SU8C,IAAAA,MA/SV,GA+SmB,YAAM;AACrB,YAAKC,IAAL,CAAU,CAAC,CAAX;AACD,KAjTH;;AAmTUV,IAAAA,QAnTV,GAmTqB,YAAM;AACvB,YAAKU,IAAL,CAAU,CAAV;AACD,KArTH;;;;;;;AA4TUC,IAAAA,aA5TV,GA4T0B,UAACC,CAAD,EAAkD;AACxE,UAAI,OAAO,MAAK/C,KAAL,CAAWgD,SAAlB,KAAgC,UAApC,EAAgD;AAC9C,cAAKhD,KAAL,CAAWgD,SAAX,CAAqBD,CAArB;AACD;;AAED,UAAIA,CAAC,CAACE,gBAAN,EAAwB;AACtB;AACD;;AAED,UAAIjE,YAAY,CAAC+D,CAAD,CAAhB,EAAqB;AACnBA,QAAAA,CAAC,CAACG,cAAF;AACA,cAAKN,MAAL;AACD,OAHD,MAGO,IAAI7D,cAAc,CAACgE,CAAD,CAAlB,EAAuB;AAC5BA,QAAAA,CAAC,CAACG,cAAF;AACA,cAAKf,QAAL;AACD,OAHM,MAGA,IAAIlD,UAAU,CAAC8D,CAAD,CAAd,EAAmB;AACxB,YAAI,MAAKR,WAAL,IAAoB,MAAKA,WAAL,CAAiBvC,KAAjB,CAAuBmD,OAA/C,EAAwD;AACtD,gBAAKZ,WAAL,CAAiBvC,KAAjB,CAAuBmD,OAAvB,CAA+BJ,CAA/B;AACD;AACF;AACF,KAhVH;;AAkVUK,IAAAA,uBAlVV,GAkVoC,UAACnD,WAAD,EAA6C;AAC7E,UAAI,MAAKJ,KAAL,CAAWI,WAAX,KAA2BA,WAA/B,EAA4C;AAC1C,cAAK8B,QAAL,CAAc,EAAE9B,WAAW,EAAXA,WAAF,EAAd;AACD;AACF,KAtVH,0DA0BSoD,iBA1BT,GA0BE,6BAA2B,CACzB,KAAKrB,mBAAL,GACA,KAAKV,kBAAL,GACD,CA7BH,QA+BSgC,kBA/BT,GA+BE,4BAA0BxC,SAA1B,EAAgD,CAC9C,IAAI,KAAKD,0BAAL,CAAgCC,SAAhC,CAAJ,EAAgD,CAC9C,KAAKQ,kBAAL,GACD,CAED,IAAIR,SAAS,CAACf,SAAV,KAAwB,KAAKC,KAAL,CAAWD,SAAvC,EAAkD,CAChD,KAAKgC,QAAL,CAAc,EACZhC,SAAS,EAAE,KAAKC,KAAL,CAAWD,SAAX,IAAwB,MADvB,EAAd,EAGD,CACF,CAzCH,QA2CSa,KA3CT,GA2CE,iBAAe,CACb,KAAKD,kBAAL,GACD,CA7CH,QA+CS4C,MA/CT,GA+CE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CAxDH,QA0DUA,UA1DV,GA0DE,sBAAqB,wBACnB,IAAMC,iBAAiB,GAAG5E,KAAK,CAACsC,QAAN,CAAeuC,OAAf,CAAuB,KAAK3D,KAAL,CAAWe,QAAlC,EAA4C6C,IAA5C,CACxB,UAACC,CAAD,UAAO,aAAA/E,KAAK,CAACgF,cAAN,CAAqBD,CAArB,KAA2BA,CAAC,CAAC7D,KAAF,CAAQ+D,IAA1C,EADwB,CAA1B,CAIA,IAAI,KAAKC,OAAL,EAAJ,EAAoB,CAClB,OAAO,IAAP,CACD,CAED,oBACE,6BACE,SAAS,EAAEzE,EAAE,kBACVG,MAAM,CAACuE,IAAP,CAAY,KAAKT,KAAjB,CADU,IACgB,IADhB,OAEV9D,MAAM,CAACwE,MAAP,CAAc,KAAKV,KAAnB,CAFU,IAEkB,KAAKxD,KAAL,CAAWmE,SAF7B,QADf,EAKE,KAAK,EAAE,EACLC,KAAK,EAAE,KAAKpE,KAAL,CAAWoE,KADb,EAELrE,SAAS,EAAE,KAAKF,KAAL,CAAWE,SAFjB,EALT,EASE,SAAS,EAAE,KAAK+C,aATlB,EAUE,GAAG,EAAE,KAAKuB,WAVZ,EAWE,QAAQ,EAAE,CAXZ,IAaG,KAAKrE,KAAL,CAAWM,MAAX,GAAoB,KAAKF,YAAL,EAApB,GAA0C,IAb7C,eAcE,oBAAC,eAAD,IACE,GAAG,EAAE,KAAKgC,kBADZ,EAEE,SAAS,EAAE,KAAKpC,KAAL,CAAWD,SAFxB,EAGE,mBAAmB,EAAE,KAAKC,KAAL,CAAWsE,mBAHlC,EAIE,mBAAmB,EAAE,KAAKlB,uBAJ5B,IAMGtE,KAAK,CAACsC,QAAN,CAAemD,GAAf,CAAmB,KAAKvE,KAAL,CAAWe,QAA9B,EAAwC,UAACyD,KAAD,EAAQ9B,KAAR,EAAkB,CACzD,IAAI,OAAO8B,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAA9C,IAA0DA,KAAK,IAAI,IAAvE,EAA6E,CAC3E,OAAOA,KAAP,CACD,CACD,IAAI,cAAA1F,KAAK,CAACgF,cAAN,CAAqBU,KAArB,KAA+B,OAAOA,KAAK,CAACC,IAAb,KAAsB,QAAzD,EAAmE,CACjE,OAAOD,KAAP,CACD,CAED,IAAId,iBAAiB,KAAKvE,UAAU,CAACqF,KAAD,CAAV,IAAqBpF,YAAY,CAACoF,KAAD,CAAtC,CAArB,EAAqE,CACnEA,KAAK,gBAAG1F,KAAK,CAAC4F,YAAN,CAAmBF,KAAnB,EAA0B,EAChCG,kBAAkB,EAAE,IADY,EAA1B,CAAR,CAGD,CAED,IAAIhF,eAAe,CAAC6E,KAAD,CAAnB,EAA4B,CAC1B,IAAMI,SAAS,GAAG,MAAI,CAAC/E,KAAL,CAAWC,gBAAX,KAAgC4C,KAAlD,CAEA,IAAImC,GAAG,GAAGL,KAAK,CAACK,GAAhB,CACA,IAAMC,WAAW,GAAGD,GAApB,CACA,IAAID,SAAJ,EAAe,CACbC,GAAG,GAAG,aAACE,QAAD,UAAc,MAAI,CAACC,cAAL,CAAoBF,WAApB,EAAiCC,QAAjC,CAAd,EAAN,CACD,CAED,oBAAOjG,KAAK,CAAC4F,YAAN,CAA4CF,KAA5C,EAAmD,EACxDK,GAAG,EAAHA,GADwD,EAExDhF,KAAK,EAAE+E,SAAS,GAAG,OAAH,GAAaJ,KAAK,CAACxE,KAAN,CAAYH,KAFe,EAGxDsD,OAAO,EAAE,MAAI,CAAC8B,MAAL,CAAYC,IAAZ,CAAiB,MAAjB,EAAuBxC,KAAvB,EAA8B,KAA9B,CAH+C,EAIxDyC,YAAY,EAAE,sBAACC,KAAD,EAAW,CACvB,MAAI,CAAC3C,aAAL,CAAmBC,KAAnB,EACA,IAAIvD,UAAU,CAACqF,KAAD,CAAV,IAAqBA,KAAK,CAACxE,KAAN,CAAYmF,YAArC,EAAmD,CACjDX,KAAK,CAACxE,KAAN,CAAYmF,YAAZ,CAAyBC,KAAzB,EACD,CACF,CATuD,EAUxDC,YAAY,EAAE,sBAACD,KAAD,EAAW,CACvB,MAAI,CAACzC,WAAL,GACA,IAAIxD,UAAU,CAACqF,KAAD,CAAV,IAAqBA,KAAK,CAACxE,KAAN,CAAYqF,YAArC,EAAmD,CACjDb,KAAK,CAACxE,KAAN,CAAYqF,YAAZ,CAAyBD,KAAzB,EACD,CACF,CAfuD,EAAnD,CAAP,CAiBD,CAED,OAAOZ,KAAP,CACD,CA3CA,CANH,CAdF,EAiEG,KAAKxE,KAAL,CAAWS,MAAX,GAAoB,KAAKD,YAAL,EAApB,GAA0C,IAjE7C,CADF,CAqED,CAxIH,QA4NUwE,cA5NV,GA4NE,wBACEF,WADF,EAEEC,QAFF,EAGE,CACA,KAAKxC,WAAL,GAAmBwC,QAAnB,CAEA,IAAI,CAACD,WAAD,IAAgB,OAAOA,WAAP,KAAuB,QAA3C,EAAqD,CACnD,OACD,CAED,IAAI,OAAOA,WAAP,KAAuB,UAA3B,EAAuC,CACrCA,WAAW,CAACC,QAAD,CAAX,CACD,CAFD,MAEO,IAAI,OAAOD,WAAP,KAAuB,QAA3B,EAAqC,CAC1C;AACAA,MAAAA,WAAW,CAACQ,OAAZ,GAAsBP,QAAtB,CACD,CACF,CA5OH,QAoPUE,MApPV,GAoPE,gBAAevC,KAAf,EAA8B6C,gBAA9B,EAAyDH,KAAzD,EAA4G,CAC1G,IAAMI,IAAI,GAAGC,eAAe,CAAC,KAAKzF,KAAL,CAAWe,QAAZ,CAAf,CAAqC2B,KAArC,CAAb,CAEA,IAAI/C,eAAe,CAAC6F,IAAD,CAAnB,EAA2B,CACzB,IAAID,gBAAgB,IAAIC,IAAI,CAACxF,KAAL,CAAW0F,IAAnC,EAAyC,CACvC,IAAIF,IAAI,CAACxF,KAAL,CAAW2F,MAAf,EAAuB,CACrBnE,MAAM,CAACoE,IAAP,CAAYJ,IAAI,CAACxF,KAAL,CAAW0F,IAAvB,EAA6BF,IAAI,CAACxF,KAAL,CAAW2F,MAAxC,EACD,CAFD,MAEO,CACLE,QAAQ,CAACH,IAAT,GAAgBF,IAAI,CAACxF,KAAL,CAAW0F,IAA3B,CACD,CACF,CACD,IAAIF,IAAI,CAACxF,KAAL,CAAWmD,OAAf,EAAwB,CACtBqC,IAAI,CAACxF,KAAL,CAAWmD,OAAX,CAAmBiC,KAAnB,EACD,CACD,IAAI,KAAKpF,KAAL,CAAW8F,WAAf,EAA4B,CAC1B,KAAK9F,KAAL,CAAW8F,WAAX,CAAuBV,KAAvB,EACD,CACD,OAAO,IAAP,CACD,CACD,OAAO,KAAP,CACD,CAxQH,QAmRUvC,IAnRV,GAmRE,cAAakD,IAAb,EAA2B,CACzB,KAAKhE,QAAL,CAAc,UAAClC,KAAD,EAAQG,KAAR,EAAkB,CAC9B,IAAMe,QAAQ,GAAG0E,eAAe,CAACzF,KAAK,CAACe,QAAP,CAAhC,CACA,IAAI,CAACA,QAAQ,CAAC6C,IAAT,CAAcjE,eAAd,CAAL,EAAqC,CACnC,OAAO,IAAP,CACD,CACD,IAAI+C,KAAK,GAAG7C,KAAK,CAACC,gBAAlB,CACA,GAAG,CACD4C,KAAK,IAAIqD,IAAT,CACA,IAAI,CAAC/F,KAAK,CAACgG,eAAP,KAA2BtD,KAAK,GAAG,CAAR,IAAaA,KAAK,GAAG3B,QAAQ,CAACkF,MAAzD,CAAJ,EAAsE,CACpE,OAAO,IAAP,CACD,CAED,IAAIvD,KAAK,GAAG,CAAZ,EAAe,CACbA,KAAK,GAAG3B,QAAQ,CAACkF,MAAT,GAAkB,CAA1B,CACD,CAFD,MAEO,IAAIvD,KAAK,GAAG3B,QAAQ,CAACkF,MAArB,EAA6B,CAClCvD,KAAK,GAAG,CAAR,CACD,CAED,IAAM8B,KAAK,GAAGzD,QAAQ,CAAC2B,KAAD,CAAtB,CACA,IAAI/C,eAAe,CAAC6E,KAAD,CAAnB,EAA4B,CAC1B,OAAO,EAAE1E,gBAAgB,EAAE4C,KAApB,EAAP,CACD,CACF,CAhBD,QAgBSA,KAAK,KAAK7C,KAAK,CAACC,gBAhBzB,EAiBA,OAAO,IAAP,CACD,CAxBD,EAwBG,KAAKwC,gBAxBR,EAyBD,CA7SH,QAuTU0B,OAvTV,GAuTE,mBAAkB,CAChB,IAAQjD,QAAR,GAAqB,KAAKf,KAA1B,CAAQe,QAAR,CACA,OAAO,CAACA,QAAD,IAAa,CAAC0E,eAAe,CAAC1E,QAAD,CAAf,CAA0BmF,MAA1B,CAAiCC,OAAjC,EAA0CF,MAA/D,CACD,CA1TH,uBAAkCnH,KAAK,CAACsH,aAAxC,WACgBC,mBADhB,GACsC,cADtC,UAGgBlG,YAHhB,GAG+B,EAC3BiE,KAAK,EAAE,MADoB,EAE3BrE,SAAS,EAAE,GAFgB,EAG3BoE,SAAS,EAAE,IAHgB,EAI3BG,mBAAmB,EAAE,IAJM,EAK3B0B,eAAe,EAAE,IALU,EAM3B9D,wBAAwB,EAAE,CAAC,CANA,EAH/B;;AAyVA,SAASiE,OAAT,CAAiBG,KAAjB,EAA2C;AACzC,SAAOA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKC,SAAnC;AACD;;AAED,SAASd,eAAT,CAAyB1E,QAAzB,EAAuE;AACrE,MAAMyF,GAAsB,GAAG,EAA/B;AACA;AACA1H,EAAAA,KAAK,CAACsC,QAAN,CAAeqF,OAAf,CAAuB1F,QAAvB,EAAiC,UAACyD,KAAD,EAAW;AAC1CgC,IAAAA,GAAG,CAACE,IAAJ,CAASlC,KAAT;AACD,GAFD;AAGA,SAAOgC,GAAP;AACD","sourcesContent":["import React from 'react';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { isMenuHeader } from '../../components/MenuHeader';\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';\n\nimport { styles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\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\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 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' || child == null) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n if (enableIconPadding && (isMenuItem(child) || isMenuHeader(child))) {\n child = React.cloneElement(child, {\n _enableIconPadding: true,\n });\n }\n\n if (isActiveElement(child)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = child.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(child, {\n ref,\n state: highlight ? 'hover' : child.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(child) && child.props.onMouseEnter) {\n child.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(child) && child.props.onMouseLeave) {\n child.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return child;\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 && this.header.getBoundingClientRect().height) || 0) +\n ((this.footer && this.footer.getBoundingClientRect().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(isExist).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 isExist(value: any): value is any {\n return value !== null && value !== undefined;\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":["React","isNonNullable","isNullable","isKeyArrowDown","isKeyArrowUp","isKeyEnter","ScrollContainer","isMenuItem","createPropsGetter","ThemeContext","cx","getRootNode","rootNode","getDOMRect","styles","isActiveElement","addIconPaddingIfPartOfMenu","InternalMenuDataTids","root","InternalMenu","state","highlightedIndex","maxHeight","props","scrollState","getProps","defaultProps","renderHeader","el","header","fixedHeader","renderFooter","footer","fixedFooter","focusOnRootElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","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","cyclicSelection","length","filter","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"]}
@@ -23,6 +23,9 @@ interface MenuState {
23
23
  maxHeight: number | string;
24
24
  scrollState: ScrollContainerScrollState;
25
25
  }
26
+ export declare const InternalMenuDataTids: {
27
+ readonly root: "InternalMenu__root";
28
+ };
26
29
  export declare class InternalMenu extends React.PureComponent<MenuProps, MenuState> {
27
30
  static __KONTUR_REACT_UI__: string;
28
31
  static defaultProps: {
@@ -5,7 +5,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
5
5
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
6
6
  export var styles = memoizeStyle({
7
7
  root: function root(t) {
8
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n overflow: auto;\n padding: 5px 0;\n outline: none;\n background: ", ";\n "])), t.bgSecondary);
8
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n overflow: auto;\n padding: 5px ", ";\n outline: none;\n box-sizing: content-box;\n background: ", ";\n "])), t.menuPaddingX, t.bgSecondary);
9
9
  },
10
10
  shadow: function shadow(t) {
11
11
  return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n border: ", ";\n box-shadow: ", ";\n "])), t.menuBorder, t.menuShadow);
@@ -1 +1 @@
1
- {"version":3,"sources":["InternalMenu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","bgSecondary","shadow","menuBorder","menuShadow","header","footer","fixedHeader","fixedFooter"],"mappings":"8MAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;;;;AAIgBI,IAAAA,CAAC,CAACC,WAJlB;;AAMD,GARgC;;AAUjCC,EAAAA,MAViC,kBAU1BF,CAV0B,EAUhB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACG,UADd;AAEgBH,IAAAA,CAAC,CAACI,UAFlB;;AAID,GAfgC;;AAiBjCC,EAAAA,MAjBiC,oBAiBxB;AACP,WAAOT,GAAP;;;;;;;;;;AAUD,GA5BgC;;AA8BjCU,EAAAA,MA9BiC,oBA8BxB;AACP,WAAOV,GAAP;;;;;;;;;;AAUD,GAzCgC;;AA2CjCW,EAAAA,WA3CiC,yBA2CnB;AACZ,WAAOX,GAAP;;;AAGD,GA/CgC;;AAiDjCY,EAAAA,WAjDiC,yBAiDnB;AACZ,WAAOZ,GAAP;;;AAGD,GArDgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n overflow: auto;\n padding: 5px 0;\n outline: none;\n background: ${t.bgSecondary};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n header() {\n return css`\n top: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n footer() {\n return css`\n bottom: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n fixedHeader() {\n return css`\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n\n fixedFooter() {\n return css`\n box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["InternalMenu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","menuPaddingX","bgSecondary","shadow","menuBorder","menuShadow","header","footer","fixedHeader","fixedFooter"],"mappings":"8MAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;;AAEiBI,IAAAA,CAAC,CAACC,YAFnB;;;AAKgBD,IAAAA,CAAC,CAACE,WALlB;;AAOD,GATgC;;AAWjCC,EAAAA,MAXiC,kBAW1BH,CAX0B,EAWhB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACI,UADd;AAEgBJ,IAAAA,CAAC,CAACK,UAFlB;;AAID,GAhBgC;;AAkBjCC,EAAAA,MAlBiC,oBAkBxB;AACP,WAAOV,GAAP;;;;;;;;;;AAUD,GA7BgC;;AA+BjCW,EAAAA,MA/BiC,oBA+BxB;AACP,WAAOX,GAAP;;;;;;;;;;AAUD,GA1CgC;;AA4CjCY,EAAAA,WA5CiC,yBA4CnB;AACZ,WAAOZ,GAAP;;;AAGD,GAhDgC;;AAkDjCa,EAAAA,WAlDiC,yBAkDnB;AACZ,WAAOb,GAAP;;;AAGD,GAtDgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n overflow: auto;\n padding: 5px ${t.menuPaddingX};\n outline: none;\n box-sizing: content-box;\n background: ${t.bgSecondary};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n header() {\n return css`\n top: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n footer() {\n return css`\n bottom: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n fixedHeader() {\n return css`\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n\n fixedFooter() {\n return css`\n box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n});\n"]}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { isMenuItem } from "../../../components/MenuItem";
3
+ import { isMenuHeader } from "../../../components/MenuHeader";
4
+ export var addIconPaddingIfPartOfMenu = function addIconPaddingIfPartOfMenu(child, enableIconPadding) {
5
+ var isPartOfMenu = isMenuItem(child) || isMenuHeader(child);
6
+
7
+ if (enableIconPadding && isPartOfMenu) {
8
+ return /*#__PURE__*/React.cloneElement(child, {
9
+ _enableIconPadding: true
10
+ });
11
+ }
12
+
13
+ return child;
14
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["addIconPaddingIfPartOfMenu.ts"],"names":["React","isMenuItem","isMenuHeader","addIconPaddingIfPartOfMenu","child","enableIconPadding","isPartOfMenu","cloneElement","_enableIconPadding"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,UAAT,QAA2B,2BAA3B;AACA,SAASC,YAAT,QAA6B,6BAA7B;;AAEA,OAAO,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,KAAD,EAAyBC,iBAAzB,EAAwD;AAChG,MAAMC,YAAY,GAAGL,UAAU,CAACG,KAAD,CAAV,IAAqBF,YAAY,CAACE,KAAD,CAAtD;;AAEA,MAAIC,iBAAiB,IAAIC,YAAzB,EAAuC;AACrC,wBAAON,KAAK,CAACO,YAAN,CAAmBH,KAAnB,EAA0B;AAC/BI,MAAAA,kBAAkB,EAAE,IADW,EAA1B,CAAP;;AAGD;;AAED,SAAOJ,KAAP;AACD,CAVM","sourcesContent":["import React from 'react';\n\nimport { isMenuItem } from '../../components/MenuItem';\nimport { isMenuHeader } from '../../components/MenuHeader';\n\nexport const addIconPaddingIfPartOfMenu = (child: React.ReactNode, enableIconPadding: boolean) => {\n const isPartOfMenu = isMenuItem(child) || isMenuHeader(child);\n\n if (enableIconPadding && isPartOfMenu) {\n return React.cloneElement(child, {\n _enableIconPadding: true,\n });\n }\n\n return child;\n};\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js",
3
+ "module": "addIconPaddingIfPartOfMenu",
4
+ "types": "../addIconPaddingIfPartOfMenu.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const addIconPaddingIfPartOfMenu: (child: React.ReactNode, enableIconPadding: boolean) => {} | null | undefined;
@@ -4,10 +4,14 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _excluded = ["maskChar", "alwaysShowMask", "hasLeftIcon", "hasRightIcon", "maxLength", "onValueChange", "onUnexpectedInput", "defaultValue", "style"];
5
5
  import React from 'react';
6
6
  import ReactInputMask from 'react-input-mask';
7
+ import { isNonNullable } from "../../../lib/utils";
7
8
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
8
9
  import { MaskCharLowLine } from "../../MaskCharLowLine";
9
10
  import { cx } from "../../../lib/theming/Emotion";
10
11
  import { styles } from "../MaskedInput.styles";
12
+ export var MaskedInputDataTids = {
13
+ root: 'MaskedInput__root'
14
+ };
11
15
  export var MaskedInput = /*#__PURE__*/function (_React$PureComponent) {
12
16
  _inheritsLoose(MaskedInput, _React$PureComponent);
13
17
 
@@ -19,9 +23,15 @@ export var MaskedInput = /*#__PURE__*/function (_React$PureComponent) {
19
23
  _this.reactInputMask = null;
20
24
 
21
25
  _this.getValue = function (props) {
22
- var value = props.value,
23
- defaultValue = props.defaultValue;
24
- return value !== undefined ? value.toString() : defaultValue !== undefined ? defaultValue.toString() : '';
26
+ if (isNonNullable(props.value)) {
27
+ return props.value.toString();
28
+ }
29
+
30
+ if (isNonNullable(props.defaultValue)) {
31
+ return props.defaultValue.toString();
32
+ }
33
+
34
+ return '';
25
35
  };
26
36
 
27
37
  _this.refInput = function (input) {
@@ -171,6 +181,7 @@ export var MaskedInput = /*#__PURE__*/function (_React$PureComponent) {
171
181
  }) : _char;
172
182
  });
173
183
  return /*#__PURE__*/React.createElement("span", {
184
+ "data-tid": MaskedInputDataTids.root,
174
185
  className: styles.container(),
175
186
  "x-ms-format-detection": "none"
176
187
  }, /*#__PURE__*/React.createElement(ReactInputMask, _extends({}, inputProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["MaskedInput.tsx"],"names":["React","ReactInputMask","ThemeContext","MaskCharLowLine","cx","styles","MaskedInput","props","input","reactInputMask","getValue","value","defaultValue","undefined","toString","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","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","PureComponent","__KONTUR_REACT_UI__","defaultProps"],"mappings":"8XAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,cAAP,MAAwD,kBAAxD;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,eAAT,QAAgC,oBAAhC;AACA,SAASC,EAAT,QAAmB,2BAAnB;;AAEA,SAASC,MAAT,QAAuB,sBAAvB;;;;;;;;;;;;;;;;;;;AAmBA,WAAaC,WAAb;;;;;;;;;;;AAWE,uBAAmBC,MAAnB,EAA4C;AAC1C,4CAAMA,MAAN,UAD0C,MAJrCC,KAIqC,GAJJ,IAII,OAFpCC,cAEoC,GAFI,IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsFpCC,IAAAA,QAtFoC,GAsFzB,UAACH,KAAD,EAAqC;AACtD,UAAQI,KAAR,GAAgCJ,KAAhC,CAAQI,KAAR,CAAeC,YAAf,GAAgCL,KAAhC,CAAeK,YAAf;;AAEA,aAAOD,KAAK,KAAKE,SAAV,GAAsBF,KAAK,CAACG,QAAN,EAAtB,GAAyCF,YAAY,KAAKC,SAAjB,GAA6BD,YAAY,CAACE,QAAb,EAA7B,GAAuD,EAAvG;AACD,KA1F2C;;AA4FpCC,IAAAA,QA5FoC,GA4FzB,UAACP,KAAD,EAAoC;AACrD,YAAKA,KAAL,GAAaA,KAAb;AACD,KA9F2C;;AAgGpCQ,IAAAA,cAhGoC,GAgGnB,UAACP,cAAD,EAAoC;AAC3D,YAAKA,cAAL,GAAsBA,cAAtB;AACD,KAlG2C;;AAoGpCQ,IAAAA,YApGoC,GAoGrB,UAACC,KAAD,EAAgD;AACrE,UAAIA,KAAK,CAACC,MAAN,CAAaR,KAAb,KAAuB,MAAKS,KAAL,CAAWT,KAAtC,EAA6C;AAC3C,cAAKU,qBAAL;AACD,OAFD,MAEO;AACL,cAAKC,QAAL,CAAc,EAAEX,KAAK,EAAEO,KAAK,CAACC,MAAN,CAAaR,KAAtB,EAAd;AACA,YAAI,MAAKJ,KAAL,CAAWgB,aAAf,EAA8B;AAC5B,gBAAKhB,KAAL,CAAWgB,aAAX,CAAyBL,KAAK,CAACC,MAAN,CAAaR,KAAtC;AACD;AACD,YAAI,MAAKJ,KAAL,CAAWiB,QAAf,EAAyB;AACvB,gBAAKjB,KAAL,CAAWiB,QAAX,CAAoBN,KAApB;AACD;AACF;AACF,KAhH2C;;AAkHpCO,IAAAA,WAlHoC,GAkHtB,UAACP,KAAD,EAA+C;AACnE,YAAKI,QAAL,CAAc,EAAEI,OAAO,EAAE,IAAX,EAAd;;AAEA,UAAI,MAAKnB,KAAL,CAAWoB,OAAf,EAAwB;AACtB,cAAKpB,KAAL,CAAWoB,OAAX,CAAmBT,KAAnB;AACD;AACF,KAxH2C;;AA0HpCU,IAAAA,UA1HoC,GA0HvB,UAACV,KAAD,EAA+C;AAClE,YAAKI,QAAL,CAAc,EAAEI,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKnB,KAAL,CAAWsB,MAAf,EAAuB;AACrB,cAAKtB,KAAL,CAAWsB,MAAX,CAAkBX,KAAlB;AACD;AACF,KAhI2C;;AAkIpCY,IAAAA,UAlIoC,GAkIvB;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,MAAKhC,KAAL,CAAWiC,QAA/C,CAAzB;;AAEA,UAAIT,QAAQ,CAACpB,KAAT,KAAmBqB,QAAQ,CAACrB,KAA5B,IAAqCsB,SAAS,KAAK,IAAvD,EAA6D;AAC3D,cAAKX,QAAL,CAAc;AACZX,UAAAA,KAAK,EAAEoB,QAAQ,CAACpB,KADJ,EAAd;;AAGD;;AAEDuB,MAAAA,OAAO,CAACG,IAAR,CAAaI,KAAb,CAAmB,EAAnB,EAAuBC,OAAvB,CAA+B,UAACC,MAAD,EAAeC,KAAf,EAAiC;AAC9D,YAAIV,OAAO,CAACW,UAAR,CAAmBC,QAAnB,CAA4BF,KAA5B,CAAJ,EAAwC;AACtCT,UAAAA,gBAAgB,CAACS,KAAD,CAAhB,GAA0BD,MAA1B;AACD;;AAED,YAAIZ,QAAQ,CAACpB,KAAT,CAAeiC,KAAf,CAAJ,EAA2B;AACzBT,UAAAA,gBAAgB,CAACS,KAAD,CAAhB,GAA0Bb,QAAQ,CAACpB,KAAT,CAAeiC,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,KAnK2C;;AAqKpCkB,IAAAA,aArKoC,GAqKpB,oBAAM,MAAK1C,KAAL,CAAW2C,cAAX,IAA6B,MAAK9B,KAAL,CAAWM,OAA9C,EArKoB;;AAuKpCL,IAAAA,qBAvKoC,GAuKZ,YAAM;AACpC,UAAI,MAAKd,KAAL,CAAW4C,iBAAf,EAAkC;AAChC,cAAK5C,KAAL,CAAW4C,iBAAX,CAA6B,MAAK/B,KAAL,CAAWT,KAAxC;AACD;AACF,KA3K2C,CAG1C,MAAKS,KAAL,GAAa,EACXT,KAAK,EAAE,MAAKD,QAAL,CAAcH,MAAd,CADI,EAEXwC,UAAU,EAAE,EAFD,EAGXrB,OAAO,EAAE,KAHE,EAAb,CAH0C,aAQ3C,CAnBH,0CAqBS0B,iBArBT,GAqBE,6BAA2B,CACzB,IAAI,KAAK3C,cAAT,EAAyB,CACvB;AACA,WAAKA,cAAL,CAAoB4C,WAApB,GACD,CACF,CA1BH,QA4BSC,kBA5BT,GA4BE,4BAA0BC,SAA1B,EAAuD,CACrD,IAAI,KAAKhD,KAAL,CAAWI,KAAX,KAAqB4C,SAAS,CAAC5C,KAAnC,EAA0C,CACxC,KAAKW,QAAL,CAAc,EACZX,KAAK,EAAE,KAAKJ,KAAL,CAAWI,KAAX,GAAmB,KAAKJ,KAAL,CAAWI,KAAX,CAAiBG,QAAjB,EAAnB,GAAiD,EAD5C,EAAd,EAGD,CACF,CAlCH,QAoCS0C,MApCT,GAoCE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACC,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CA7CH,QA+CUA,UA/CV,GA+CE,sBAAqB,CACnB,kBAWI,KAAKnD,KAXT,CACEiC,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,CAQEvC,YARF,eAQEA,YARF,CASEkD,KATF,eASEA,KATF,CAUKC,UAVL,yDAYA,kBAA8B,KAAK3C,KAAnC,CAAQ2B,UAAR,eAAQA,UAAR,CAAoBpC,KAApB,eAAoBA,KAApB,CAEA,IAAMqD,UAAU,GAAG,CAAAF,KAAK,QAAL,YAAAA,KAAK,CAAEG,SAAP,MAAqB,OAArB,iBACjB,8BAAM,KAAK,EAAE,EAAEC,KAAK,EAAE,aAAT,EAAb,IAAwCnB,UAAU,CAACoB,KAAX,CAAiB,CAAjB,EAAoBxD,KAAK,CAAC2B,MAA1B,CAAxC,CADF,CAGA,IAAM8B,SAAS,GAAG,CAAAN,KAAK,QAAL,YAAAA,KAAK,CAAEG,SAAP,MAAqB,OAArB,IAAgC5D,MAAM,CAACgE,aAAP,EAAlD,CAEA,IAAMC,WAAW,GAAGvB,UAAU,CAC3BoB,KADiB,CACXxD,KAAK,CAAC2B,MADK,EAEjBG,KAFiB,CAEX,EAFW,EAGjB8B,GAHiB,CAGb,UAACC,KAAD,EAAQC,CAAR,UAAeD,KAAK,KAAK,GAAV,gBAAgB,oBAAC,eAAD,IAAiB,GAAG,EAAEC,CAAtB,GAAhB,GAA8CD,KAA7D,EAHa,CAApB,CAKA,oBACE,8BAAM,SAAS,EAAEnE,MAAM,CAACqE,SAAP,EAAjB,EAAqC,yBAAsB,MAA3D,iBACE,oBAAC,cAAD,eACMX,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,EAAEjB,KART,EASE,QAAQ,EAAE,KAAKI,QATjB,EAUE,GAAG,EAAE,KAAKC,cAVZ,EAWE,KAAK,eAAO8C,KAAP,CAXP,IADF,EAcG,KAAKb,aAAL,mBACC,8BAAM,SAAS,EAAE7C,EAAE,CAACC,MAAM,CAACsE,SAAP,CAAiB,KAAKlB,KAAtB,CAAD,EAA+BW,SAA/B,CAAnB,IACGJ,UADH,EAEGM,WAFH,CAfJ,CADF,CAuBD,CA/FH,sBAAiCtE,KAAK,CAAC4E,aAAvC,EAAatE,W,CACGuE,mB,GAAsB,a,CADzBvE,W,CAGGwE,Y,GAA0C,EACtDtC,QAAQ,EAAE,GAD4C,E","sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\n\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 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 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 const { value, defaultValue } = props;\n\n return value !== undefined ? value.toString() : defaultValue !== undefined ? defaultValue.toString() : '';\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":["React","ReactInputMask","isNonNullable","ThemeContext","MaskCharLowLine","cx","styles","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","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","PureComponent","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","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"]}
@@ -16,6 +16,9 @@ interface MaskedInputState {
16
16
  emptyValue: string;
17
17
  focused: boolean;
18
18
  }
19
+ export declare const MaskedInputDataTids: {
20
+ readonly root: "MaskedInput__root";
21
+ };
19
22
  export declare class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {
20
23
  static __KONTUR_REACT_UI__: string;
21
24
  static defaultProps: Partial<MaskedInputProps>;
@@ -4,14 +4,18 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _class, _class2, _temp;
5
5
 
6
6
  import React from 'react';
7
+ import { isNonNullable } from "../../../lib/utils";
7
8
  import { ScrollContainer } from "../../../components/ScrollContainer";
8
- import { isMenuItem } from "../../../components/MenuItem";
9
- import { isMenuHeader } from "../../../components/MenuHeader";
10
9
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
11
10
  import { cx } from "../../../lib/theming/Emotion";
12
11
  import { getRootNode, rootNode } from "../../../lib/rootNode";
12
+ import { addIconPaddingIfPartOfMenu } from "../../InternalMenu/addIconPaddingIfPartOfMenu";
13
+ import { isIE11 } from "../../../lib/client";
13
14
  import { styles } from "../Menu.styles";
14
15
  import { isActiveElement } from "../isActiveElement";
16
+ export var MenuDataTids = {
17
+ root: 'Menu__root'
18
+ };
15
19
  export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
16
20
  _inheritsLoose(Menu, _React$Component);
17
21
 
@@ -41,30 +45,26 @@ export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
41
45
  return child;
42
46
  }
43
47
 
44
- if (enableIconPadding && (isMenuItem(child) || isMenuHeader(child))) {
45
- child = /*#__PURE__*/React.cloneElement(child, {
46
- _enableIconPadding: true
47
- });
48
- }
48
+ var modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);
49
49
 
50
- if (isActiveElement(child)) {
50
+ if (isActiveElement(modifiedChild)) {
51
51
  var highlight = _this.state.highlightedIndex === index;
52
- var ref = child.ref;
52
+ var ref = modifiedChild.ref;
53
53
 
54
- if (highlight && typeof child.ref !== 'string') {
55
- ref = _this.refHighlighted.bind(_assertThisInitialized(_this), child.ref);
54
+ if (highlight && typeof modifiedChild.ref !== 'string') {
55
+ ref = _this.refHighlighted.bind(_assertThisInitialized(_this), modifiedChild.ref);
56
56
  }
57
57
 
58
- return /*#__PURE__*/React.cloneElement(child, {
58
+ return /*#__PURE__*/React.cloneElement(modifiedChild, {
59
59
  ref: ref,
60
- state: highlight ? 'hover' : child.props.state,
60
+ state: highlight ? 'hover' : modifiedChild.props.state,
61
61
  onClick: _this.select.bind(_assertThisInitialized(_this), index, false),
62
62
  onMouseEnter: _this.highlight.bind(_assertThisInitialized(_this), index),
63
63
  onMouseLeave: _this.unhighlight
64
64
  });
65
65
  }
66
66
 
67
- return child;
67
+ return modifiedChild;
68
68
  });
69
69
  };
70
70
 
@@ -174,11 +174,9 @@ export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
174
174
  }
175
175
 
176
176
  return /*#__PURE__*/React.createElement("div", {
177
- className: cx((_cx = {}, _cx[styles.root(this.theme)] = true, _cx[styles.shadow(this.theme)] = this.props.hasShadow, _cx)),
178
- style: {
179
- width: this.props.width,
180
- maxHeight: this.props.maxHeight
181
- },
177
+ "data-tid": MenuDataTids.root,
178
+ className: cx(getAlignRightClass(this.props), (_cx = {}, _cx[styles.root(this.theme)] = true, _cx[styles.shadow(this.theme)] = this.props.hasShadow, _cx)),
179
+ style: getStyle(this.props),
182
180
  ref: this.setRootNode
183
181
  }, /*#__PURE__*/React.createElement(ScrollContainer, {
184
182
  ref: this.refScrollContainer,
@@ -288,21 +286,18 @@ export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
288
286
 
289
287
  _proto.isEmpty = function isEmpty() {
290
288
  var children = this.props.children;
291
- return !children || !childrenToArray(children).filter(isExist).length;
289
+ return !children || !childrenToArray(children).filter(isNonNullable).length;
292
290
  };
293
291
 
294
292
  return Menu;
295
293
  }(React.Component), _class2.__KONTUR_REACT_UI__ = 'Menu', _class2.defaultProps = {
294
+ align: 'left',
296
295
  width: 'auto',
297
296
  maxHeight: 300,
298
297
  hasShadow: true,
299
298
  preventWindowScroll: true
300
299
  }, _temp)) || _class;
301
300
 
302
- function isExist(value) {
303
- return value !== null && value !== undefined;
304
- }
305
-
306
301
  function childrenToArray(children) {
307
302
  var ret = []; // Use forEach instead of map to avoid cloning for key unifying.
308
303
 
@@ -310,4 +305,29 @@ function childrenToArray(children) {
310
305
  ret.push(child);
311
306
  });
312
307
  return ret;
313
- }
308
+ }
309
+
310
+ var getStyle = function getStyle(props) {
311
+ if (props.align === 'right') {
312
+ return {
313
+ maxWidth: props.width,
314
+ minWidth: props.width,
315
+ maxHeight: props.maxHeight
316
+ };
317
+ }
318
+
319
+ return {
320
+ width: props.width,
321
+ maxHeight: props.maxHeight
322
+ };
323
+ };
324
+
325
+ var getAlignRightClass = function getAlignRightClass(props) {
326
+ if (props.align === 'right') {
327
+ var _cx2;
328
+
329
+ return cx((_cx2 = {}, _cx2[styles.alignRight()] = !isIE11, _cx2[styles.alignRightIE11()] = isIE11, _cx2[styles.alignRightIE11FixAutoWidth()] = isIE11 && props.width === 'auto', _cx2));
330
+ }
331
+
332
+ return null;
333
+ };
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.tsx"],"names":["React","ScrollContainer","isMenuItem","isMenuHeader","ThemeContext","cx","getRootNode","rootNode","styles","isActiveElement","Menu","state","highlightedIndex","unmounted","getChildList","enableIconPadding","Children","toArray","props","children","some","x","isValidElement","icon","map","child","index","cloneElement","_enableIconPadding","highlight","ref","refHighlighted","bind","onClick","select","onMouseEnter","onMouseLeave","unhighlight","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","scrollToTop","scrollToBottom","setState","componentWillUnmount","render","theme","renderMain","up","move","down","enter","event","reset","hasHighlightedItem","highlightItem","isEmpty","root","shadow","hasShadow","width","maxHeight","setRootNode","preventWindowScroll","disableScrollContainer","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","window","open","location","onItemClick","step","activeElements","filter","length","indexOf","isExist","Component","__KONTUR_REACT_UI__","defaultProps","value","undefined","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ScrollContainer } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { isMenuHeader } from '../../components/MenuHeader';\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';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\n\nexport interface MenuProps {\n children: React.ReactNode;\n hasShadow?: boolean;\n maxHeight?: number | string;\n onItemClick?: () => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n}\n\n@rootNode\nexport class Menu extends React.Component<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n\n public static defaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n };\n\n public state = {\n highlightedIndex: -1,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n this.unmounted = true;\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 /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.setState({ highlightedIndex: -1 });\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n this.highlight(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n\n return (\n <div\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: this.props.hasShadow,\n })}\n style={{ width: this.props.width, maxHeight: this.props.maxHeight }}\n ref={this.setRootNode}\n >\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={this.props.maxHeight}\n preventWindowScroll={this.props.preventWindowScroll}\n disabled={this.props.disableScrollContainer}\n >\n <div className={styles.scrollContainer(this.theme)}>{this.getChildList()}</div>\n </ScrollContainer>\n </div>\n );\n }\n\n private getChildList = () => {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n return React.Children.map(this.props.children, (child, index) => {\n if (!child) {\n return child;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n return child;\n }\n\n if (enableIconPadding && (isMenuItem(child) || isMenuHeader(child))) {\n child = React.cloneElement(child, {\n _enableIconPadding: true,\n });\n }\n if (isActiveElement(child)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = child.ref;\n if (highlight && typeof child.ref !== 'string') {\n ref = this.refHighlighted.bind(this, child.ref);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(child, {\n ref,\n state: highlight ? 'hover' : child.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n return child;\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(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 scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\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);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick();\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\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 this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isExist).length;\n }\n}\n\nfunction isExist(value: any): value is any {\n return value !== null && value !== undefined;\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":["Menu.tsx"],"names":["React","isNonNullable","ScrollContainer","ThemeContext","cx","getRootNode","rootNode","addIconPaddingIfPartOfMenu","isIE11","styles","isActiveElement","MenuDataTids","root","Menu","state","highlightedIndex","unmounted","getChildList","enableIconPadding","Children","toArray","props","children","some","x","isValidElement","icon","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","scrollToTop","scrollToBottom","setState","componentWillUnmount","render","theme","renderMain","up","move","down","enter","event","reset","hasHighlightedItem","highlightItem","isEmpty","getAlignRightClass","shadow","hasShadow","getStyle","setRootNode","maxHeight","preventWindowScroll","disableScrollContainer","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","window","open","location","onItemClick","step","activeElements","filter","length","indexOf","Component","__KONTUR_REACT_UI__","defaultProps","align","width","ret","forEach","push","maxWidth","minWidth","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ScrollContainer } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemProps } from '../../components/MenuItem';\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 { addIconPaddingIfPartOfMenu } from '../InternalMenu/addIconPaddingIfPartOfMenu';\nimport { isIE11 } from '../../lib/client';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\n\nexport interface MenuProps {\n children: React.ReactNode;\n hasShadow?: boolean;\n maxHeight?: number | string;\n onItemClick?: () => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\n@rootNode\nexport class Menu extends React.Component<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n\n public static defaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n };\n\n public state = {\n highlightedIndex: -1,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n this.unmounted = true;\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 /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.setState({ highlightedIndex: -1 });\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n this.highlight(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: this.props.hasShadow,\n })}\n style={getStyle(this.props)}\n ref={this.setRootNode}\n >\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={this.props.maxHeight}\n preventWindowScroll={this.props.preventWindowScroll}\n disabled={this.props.disableScrollContainer}\n >\n <div className={styles.scrollContainer(this.theme)}>{this.getChildList()}</div>\n </ScrollContainer>\n </div>\n );\n }\n\n private getChildList = () => {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n return React.Children.map(this.props.children, (child, index) => {\n if (!child) {\n return child;\n }\n\n if (typeof child === 'string' || typeof child === 'number') {\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 if (highlight && typeof modifiedChild.ref !== 'string') {\n ref = this.refHighlighted.bind(this, modifiedChild.ref);\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: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n\n return modifiedChild;\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(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 scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\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);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick();\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\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 this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\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\nconst getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: props.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: props.maxHeight,\n };\n};\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"]}
@@ -10,13 +10,18 @@ export interface MenuProps {
10
10
  * Отключение кастомного скролла контейнера
11
11
  */
12
12
  disableScrollContainer?: boolean;
13
+ align?: 'left' | 'right';
13
14
  }
14
15
  export interface MenuState {
15
16
  highlightedIndex: number;
16
17
  }
18
+ export declare const MenuDataTids: {
19
+ readonly root: "Menu__root";
20
+ };
17
21
  export declare class Menu extends React.Component<MenuProps, MenuState> {
18
22
  static __KONTUR_REACT_UI__: string;
19
23
  static defaultProps: {
24
+ align: string;
20
25
  width: string;
21
26
  maxHeight: number;
22
27
  hasShadow: boolean;
@@ -1,16 +1,25 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
4
4
 
5
5
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
6
6
  export var styles = memoizeStyle({
7
7
  root: function root(t) {
8
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n background: ", ";\n box-sizing: content-box;\n overflow: auto;\n padding: 0 0;\n "])), t.menuBgDefault);
8
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n background: ", ";\n border-radius: ", ";\n box-sizing: content-box;\n overflow: auto;\n padding: 0 ", ";\n border-radius: ", ";\n "])), t.menuBgDefault, t.menuBorderRadius, t.menuPaddingX, t.menuBorderRadius);
9
+ },
10
+ alignRight: function alignRight() {
11
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n flex: 1 1 100%;\n "])));
12
+ },
13
+ alignRightIE11: function alignRightIE11() {
14
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n float: right;\n width: 100%;\n "])));
15
+ },
16
+ alignRightIE11FixAutoWidth: function alignRightIE11FixAutoWidth() {
17
+ return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n box-sizing: border-box !important; // override root styles\n overflow: hidden !important; // override root styles\n "])));
9
18
  },
10
19
  scrollContainer: function scrollContainer(t) {
11
- return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n padding: ", " 0;\n "])), t.menuPaddingY);
20
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n padding: ", " 0;\n "])), t.menuPaddingY);
12
21
  },
13
22
  shadow: function shadow(t) {
14
- return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n border: ", ";\n box-shadow: ", ";\n "])), t.menuBorder, t.menuShadow);
23
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n border: ", ";\n box-shadow: ", ";\n "])), t.menuBorder, t.menuShadow);
15
24
  }
16
25
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","menuBgDefault","scrollContainer","menuPaddingY","shadow","menuBorder","menuShadow"],"mappings":"wJAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;AACgBI,IAAAA,CAAC,CAACC,aADlB;;;;;AAMD,GARgC;;AAUjCC,EAAAA,eAViC,2BAUjBF,CAViB,EAUP;AACxB,WAAOJ,GAAP;AACaI,IAAAA,CAAC,CAACG,YADf;;AAGD,GAdgC;;AAgBjCC,EAAAA,MAhBiC,kBAgB1BJ,CAhB0B,EAgBhB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACK,UADd;AAEgBL,IAAAA,CAAC,CAACM,UAFlB;;AAID,GArBgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n background: ${t.menuBgDefault};\n box-sizing: content-box;\n overflow: auto;\n padding: 0 0;\n `;\n },\n\n scrollContainer(t: Theme) {\n return css`\n padding: ${t.menuPaddingY} 0;\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Menu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","menuBgDefault","menuBorderRadius","menuPaddingX","alignRight","alignRightIE11","alignRightIE11FixAutoWidth","scrollContainer","menuPaddingY","shadow","menuBorder","menuShadow"],"mappings":"8MAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;AACgBI,IAAAA,CAAC,CAACC,aADlB;AAEmBD,IAAAA,CAAC,CAACE,gBAFrB;;;AAKeF,IAAAA,CAAC,CAACG,YALjB;AAMmBH,IAAAA,CAAC,CAACE,gBANrB;;AAQD,GAVgC;;AAYjCE,EAAAA,UAZiC,wBAYpB;AACX,WAAOR,GAAP;;;AAGD,GAhBgC;;AAkBjCS,EAAAA,cAlBiC,4BAkBhB;AACf,WAAOT,GAAP;;;;AAID,GAvBgC;;AAyBjCU,EAAAA,0BAzBiC,wCAyBJ;AAC3B,WAAOV,GAAP;;;;AAID,GA9BgC;;AAgCjCW,EAAAA,eAhCiC,2BAgCjBP,CAhCiB,EAgCP;AACxB,WAAOJ,GAAP;AACaI,IAAAA,CAAC,CAACQ,YADf;;AAGD,GApCgC;;AAsCjCC,EAAAA,MAtCiC,kBAsC1BT,CAtC0B,EAsChB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACU,UADd;AAEgBV,IAAAA,CAAC,CAACW,UAFlB;;AAID,GA3CgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n background: ${t.menuBgDefault};\n border-radius: ${t.menuBorderRadius};\n box-sizing: content-box;\n overflow: auto;\n padding: 0 ${t.menuPaddingX};\n border-radius: ${t.menuBorderRadius};\n `;\n },\n\n alignRight() {\n return css`\n flex: 1 1 100%;\n `;\n },\n\n alignRightIE11() {\n return css`\n float: right;\n width: 100%;\n `;\n },\n\n alignRightIE11FixAutoWidth() {\n return css`\n box-sizing: border-box !important; // override root styles\n overflow: hidden !important; // override root styles\n `;\n },\n\n scrollContainer(t: Theme) {\n return css`\n padding: ${t.menuPaddingY} 0;\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n});\n"]}
@@ -1,6 +1,9 @@
1
1
  import { Theme } from '../../lib/theming/Theme';
2
2
  export declare const styles: {
3
3
  root(t: Theme): string;
4
+ alignRight(): string;
5
+ alignRightIE11(): string;
6
+ alignRightIE11FixAutoWidth(): string;
4
7
  scrollContainer(t: Theme): string;
5
8
  shadow(t: Theme): string;
6
9
  };