@skbkontur/react-ui 4.22.0 → 4.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (738) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/cjs/components/Autocomplete/Autocomplete.js +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.styles.js +1 -1
  4. package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
  5. package/cjs/components/Button/ArrowLeftIcon.js +1 -1
  6. package/cjs/components/Button/ArrowRightIcon.js +1 -1
  7. package/cjs/components/Button/Button.d.ts +1 -0
  8. package/cjs/components/Button/Button.js +5 -3
  9. package/cjs/components/Button/Button.js.map +1 -1
  10. package/cjs/components/Button/Button.mixins.js +1 -1
  11. package/cjs/components/Button/Button.mixins.js.map +1 -1
  12. package/cjs/components/Button/Button.styles.d.ts +1 -0
  13. package/cjs/components/Button/Button.styles.js +18 -12
  14. package/cjs/components/Button/Button.styles.js.map +1 -1
  15. package/cjs/components/Button/ButtonArrow.js +2 -2
  16. package/cjs/components/Button/ButtonArrow.js.map +1 -1
  17. package/cjs/components/Button/ButtonIcon.js +2 -2
  18. package/cjs/components/Button/ButtonIcon.js.map +1 -1
  19. package/cjs/components/Button/ButtonIcon.styles.js +1 -1
  20. package/cjs/components/Button/ButtonIcon.styles.js.map +1 -1
  21. package/cjs/components/Button/LoadingButtonIcon.js +2 -2
  22. package/cjs/components/Button/LoadingButtonIcon.js.map +1 -1
  23. package/cjs/components/Calendar/Calendar.js +2 -2
  24. package/cjs/components/Calendar/Calendar.js.map +1 -1
  25. package/cjs/components/Calendar/Calendar.styles.js +1 -1
  26. package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
  27. package/cjs/components/Calendar/CalendarScrollEvents.js +1 -1
  28. package/cjs/components/Calendar/CalendarScrollEvents.js.map +1 -1
  29. package/cjs/components/Calendar/DayCellView.js +2 -2
  30. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  31. package/cjs/components/Calendar/DayCellView.styles.js +1 -1
  32. package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
  33. package/cjs/components/Calendar/Month.js +2 -2
  34. package/cjs/components/Calendar/Month.js.map +1 -1
  35. package/cjs/components/Calendar/MonthView.js +2 -2
  36. package/cjs/components/Calendar/MonthView.js.map +1 -1
  37. package/cjs/components/Calendar/MonthView.styles.js +1 -1
  38. package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
  39. package/cjs/components/Center/Center.js +1 -1
  40. package/cjs/components/Center/Center.js.map +1 -1
  41. package/cjs/components/Center/Center.styles.js +1 -1
  42. package/cjs/components/Center/Center.styles.js.map +1 -1
  43. package/cjs/components/Checkbox/Checkbox.js +1 -1
  44. package/cjs/components/Checkbox/Checkbox.mixins.js +1 -1
  45. package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -1
  46. package/cjs/components/Checkbox/Checkbox.styles.js +1 -1
  47. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  48. package/cjs/components/Checkbox/CheckedIcon.js +1 -1
  49. package/cjs/components/Checkbox/IndeterminateIcon.js +1 -1
  50. package/cjs/components/ComboBox/ComboBox.js +1 -1
  51. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  52. package/cjs/components/CurrencyInput/CurrencyHelper.js +1 -1
  53. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  54. package/cjs/components/CurrencyInput/CurrencyInput.js +1 -1
  55. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +2 -2
  56. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
  57. package/cjs/components/CurrencyInput/CursorHelper.js +2 -2
  58. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  59. package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -1
  60. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  61. package/cjs/components/DateInput/CalendarIcon.js +1 -1
  62. package/cjs/components/DateInput/DateFragmentsView.js +1 -1
  63. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  64. package/cjs/components/DateInput/DateFragmentsView.styles.js +1 -1
  65. package/cjs/components/DateInput/DateFragmentsView.styles.js.map +1 -1
  66. package/cjs/components/DateInput/DateInput.js +1 -1
  67. package/cjs/components/DateInput/DateInput.js.map +1 -1
  68. package/cjs/components/DateInput/DateInput.styles.js +1 -1
  69. package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
  70. package/cjs/components/DateInput/ViewDateInputValidateChecks.js +1 -1
  71. package/cjs/components/DateInput/ViewDateInputValidateChecks.js.map +1 -1
  72. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +2 -2
  73. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  74. package/cjs/components/DatePicker/DatePicker.js +1 -1
  75. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  76. package/cjs/components/DatePicker/DatePicker.styles.js +1 -1
  77. package/cjs/components/DatePicker/Picker.js +1 -1
  78. package/cjs/components/DatePicker/Picker.js.map +1 -1
  79. package/cjs/components/DatePicker/locale/locales/en.js +1 -1
  80. package/cjs/components/DatePicker/locale/locales/en.js.map +1 -1
  81. package/cjs/components/DatePicker/locale/locales/ru.js +1 -1
  82. package/cjs/components/DatePicker/locale/locales/ru.js.map +1 -1
  83. package/cjs/components/Dropdown/Dropdown.js +1 -1
  84. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  85. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
  86. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  87. package/cjs/components/FileUploader/FileUploader.js +2 -2
  88. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  89. package/cjs/components/FileUploader/FileUploader.mixins.js +1 -1
  90. package/cjs/components/FileUploader/FileUploader.mixins.js.map +1 -1
  91. package/cjs/components/FileUploader/FileUploader.styles.js +2 -2
  92. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  93. package/cjs/components/FileUploader/UploadIcon.js +1 -1
  94. package/cjs/components/FxInput/FxInput.js +1 -1
  95. package/cjs/components/FxInput/FxInputRestoreBtn.js +2 -2
  96. package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  97. package/cjs/components/FxInput/MathFunctionIcon.js +1 -1
  98. package/cjs/components/FxInput/UndoIcon.js +1 -1
  99. package/cjs/components/Gapped/Gapped.js +1 -1
  100. package/cjs/components/Gapped/Gapped.js.map +1 -1
  101. package/cjs/components/GlobalLoader/GlobalLoader.js +1 -1
  102. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  103. package/cjs/components/GlobalLoader/GlobalLoaderView.js +2 -2
  104. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  105. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +1 -1
  106. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  107. package/cjs/components/Group/Group.js +1 -1
  108. package/cjs/components/Group/Group.js.map +1 -1
  109. package/cjs/components/Group/Group.styles.js +1 -1
  110. package/cjs/components/Group/Group.styles.js.map +1 -1
  111. package/cjs/components/Hint/Hint.js +1 -1
  112. package/cjs/components/Hint/Hint.js.map +1 -1
  113. package/cjs/components/Hint/Hint.styles.js +1 -1
  114. package/cjs/components/Input/Input.js +1 -1
  115. package/cjs/components/Input/Input.styles.js +1 -1
  116. package/cjs/components/Input/Input.styles.js.map +1 -1
  117. package/cjs/components/Input/InputLayout/InputLayout.js +1 -1
  118. package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
  119. package/cjs/components/Input/InputLayout/InputLayout.styles.js +1 -1
  120. package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  121. package/cjs/components/Input/InputLayout/InputLayoutAside.js +1 -1
  122. package/cjs/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  123. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
  124. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  125. package/cjs/components/Input/InputLayout/InputLayoutAsideText.js +1 -1
  126. package/cjs/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
  127. package/cjs/components/Input/InputLayout/InputLayoutContext.js +1 -1
  128. package/cjs/components/Input/InputLayout/InputLayoutContext.js.map +1 -1
  129. package/cjs/components/Input/InputLayout/PolyfillPlaceholder.js +1 -1
  130. package/cjs/components/Input/InputLayout/PolyfillPlaceholder.js.map +1 -1
  131. package/cjs/components/Kebab/Kebab.js +2 -2
  132. package/cjs/components/Kebab/Kebab.js.map +1 -1
  133. package/cjs/components/Kebab/Kebab.styles.js +1 -1
  134. package/cjs/components/Kebab/Kebab.styles.js.map +1 -1
  135. package/cjs/components/Kebab/KebabIcon.js +1 -1
  136. package/cjs/components/Link/Link.js +1 -1
  137. package/cjs/components/Link/Link.js.map +1 -1
  138. package/cjs/components/Link/Link.styles.js +1 -1
  139. package/cjs/components/Link/Link.styles.js.map +1 -1
  140. package/cjs/components/Link/LinkIcon.js +2 -2
  141. package/cjs/components/Link/LinkIcon.js.map +1 -1
  142. package/cjs/components/Loader/Loader.js +2 -2
  143. package/cjs/components/Loader/Loader.js.map +1 -1
  144. package/cjs/components/Loader/Loader.styles.js +1 -1
  145. package/cjs/components/Loader/Loader.styles.js.map +1 -1
  146. package/cjs/components/Loader/__stories__/LoaderAndButton.js +1 -1
  147. package/cjs/components/Loader/__stories__/LoaderAndButton.js.map +1 -1
  148. package/cjs/components/MaskedInput/MaskedInput.js +2 -2
  149. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  150. package/cjs/components/MenuFooter/MenuFooter.js +2 -2
  151. package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
  152. package/cjs/components/MenuFooter/MenuFooter.mixins.js +1 -1
  153. package/cjs/components/MenuFooter/MenuFooter.mixins.js.map +1 -1
  154. package/cjs/components/MenuFooter/MenuFooter.styles.js +1 -1
  155. package/cjs/components/MenuFooter/MenuFooter.styles.js.map +1 -1
  156. package/cjs/components/MenuHeader/MenuHeader.js +2 -2
  157. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  158. package/cjs/components/MenuHeader/MenuHeader.mixins.js +1 -1
  159. package/cjs/components/MenuHeader/MenuHeader.mixins.js.map +1 -1
  160. package/cjs/components/MenuHeader/MenuHeader.styles.js +1 -1
  161. package/cjs/components/MenuHeader/MenuHeader.styles.js.map +1 -1
  162. package/cjs/components/MenuItem/MenuItem.js +1 -1
  163. package/cjs/components/MenuItem/MenuItem.mixins.js +1 -1
  164. package/cjs/components/MenuItem/MenuItem.mixins.js.map +1 -1
  165. package/cjs/components/MenuItem/MenuItem.styles.js +1 -1
  166. package/cjs/components/MenuSeparator/MenuSeparator.js +2 -2
  167. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  168. package/cjs/components/MenuSeparator/MenuSeparator.styles.js +1 -1
  169. package/cjs/components/MenuSeparator/MenuSeparator.styles.js.map +1 -1
  170. package/cjs/components/MiniModal/MiniModal.js +2 -2
  171. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  172. package/cjs/components/MiniModal/MiniModal.styles.js +1 -1
  173. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  174. package/cjs/components/MiniModal/MiniModalBody.js +1 -1
  175. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  176. package/cjs/components/MiniModal/MiniModalFooter.js +2 -2
  177. package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -1
  178. package/cjs/components/MiniModal/MiniModalHeader.js +2 -2
  179. package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -1
  180. package/cjs/components/MiniModal/MiniModalIndent.js +2 -2
  181. package/cjs/components/MiniModal/MiniModalIndent.js.map +1 -1
  182. package/cjs/components/Modal/Modal.js +2 -2
  183. package/cjs/components/Modal/Modal.js.map +1 -1
  184. package/cjs/components/Modal/Modal.styles.js +1 -1
  185. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  186. package/cjs/components/Modal/ModalBody.js +2 -2
  187. package/cjs/components/Modal/ModalBody.js.map +1 -1
  188. package/cjs/components/Modal/ModalClose.js +2 -2
  189. package/cjs/components/Modal/ModalClose.js.map +1 -1
  190. package/cjs/components/Modal/ModalContext.js +1 -1
  191. package/cjs/components/Modal/ModalContext.js.map +1 -1
  192. package/cjs/components/Modal/ModalFooter.js +2 -2
  193. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  194. package/cjs/components/Modal/ModalHeader.js +2 -2
  195. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  196. package/cjs/components/Modal/ModalSeparator.js +2 -2
  197. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  198. package/cjs/components/Paging/ForwardIcon.js +1 -1
  199. package/cjs/components/Paging/Paging.js +2 -2
  200. package/cjs/components/Paging/Paging.js.map +1 -1
  201. package/cjs/components/Paging/Paging.styles.js +1 -1
  202. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  203. package/cjs/components/Paging/PagingDefaultComponent.js +1 -1
  204. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  205. package/cjs/components/PasswordInput/ClosedIcon.js +1 -1
  206. package/cjs/components/PasswordInput/OpenedIcon.js +1 -1
  207. package/cjs/components/PasswordInput/PasswordInput.js +1 -1
  208. package/cjs/components/PasswordInput/PasswordInput.styles.js +1 -1
  209. package/cjs/components/PasswordInput/PasswordInputIcon.js +1 -1
  210. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -1
  211. package/cjs/components/Radio/Radio.js +1 -1
  212. package/cjs/components/Radio/Radio.mixins.js +1 -1
  213. package/cjs/components/Radio/Radio.mixins.js.map +1 -1
  214. package/cjs/components/Radio/Radio.styles.js +1 -1
  215. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  216. package/cjs/components/RadioGroup/Prevent.js +1 -1
  217. package/cjs/components/RadioGroup/Prevent.js.map +1 -1
  218. package/cjs/components/RadioGroup/RadioGroup.js +3 -3
  219. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  220. package/cjs/components/RadioGroup/RadioGroup.styles.js +1 -1
  221. package/cjs/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  222. package/cjs/components/RadioGroup/RadioGroupContext.js +1 -1
  223. package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -1
  224. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +2 -2
  225. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  226. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +1 -1
  227. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  228. package/cjs/components/ResponsiveLayout/decorator.js +1 -1
  229. package/cjs/components/ResponsiveLayout/decorator.js.map +1 -1
  230. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
  231. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  232. package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
  233. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  234. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -2
  235. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  236. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +1 -1
  237. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  238. package/cjs/components/Select/ArrowDownIcon.js +1 -1
  239. package/cjs/components/Select/Item.js +1 -1
  240. package/cjs/components/Select/Item.js.map +1 -1
  241. package/cjs/components/Select/Select.js +3 -3
  242. package/cjs/components/Select/Select.js.map +1 -1
  243. package/cjs/components/Select/Select.styles.js +1 -1
  244. package/cjs/components/Select/Select.styles.js.map +1 -1
  245. package/cjs/components/SidePage/SidePage.js +2 -2
  246. package/cjs/components/SidePage/SidePage.js.map +1 -1
  247. package/cjs/components/SidePage/SidePage.styles.js +1 -1
  248. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  249. package/cjs/components/SidePage/SidePageBody.js +1 -1
  250. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  251. package/cjs/components/SidePage/SidePageCloseButton.js +2 -2
  252. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  253. package/cjs/components/SidePage/SidePageContainer.js +1 -1
  254. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  255. package/cjs/components/SidePage/SidePageContext.js +1 -1
  256. package/cjs/components/SidePage/SidePageContext.js.map +1 -1
  257. package/cjs/components/SidePage/SidePageFooter.js +2 -2
  258. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  259. package/cjs/components/SidePage/SidePageHeader.js +1 -1
  260. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  261. package/cjs/components/SingleToast/SingleToast.js +1 -1
  262. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  263. package/cjs/components/Spinner/Spinner.js +1 -1
  264. package/cjs/components/Spinner/Spinner.js.map +1 -1
  265. package/cjs/components/Spinner/Spinner.styles.js +1 -1
  266. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  267. package/cjs/components/Sticky/Sticky.js +2 -2
  268. package/cjs/components/Sticky/Sticky.js.map +1 -1
  269. package/cjs/components/Sticky/Sticky.styles.js +1 -1
  270. package/cjs/components/Sticky/Sticky.styles.js.map +1 -1
  271. package/cjs/components/Switcher/Switcher.js +1 -1
  272. package/cjs/components/Switcher/Switcher.js.map +1 -1
  273. package/cjs/components/Switcher/Switcher.styles.js +1 -1
  274. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  275. package/cjs/components/Tabs/Indicator.js +2 -2
  276. package/cjs/components/Tabs/Indicator.js.map +1 -1
  277. package/cjs/components/Tabs/Indicator.styles.js +1 -1
  278. package/cjs/components/Tabs/Indicator.styles.js.map +1 -1
  279. package/cjs/components/Tabs/Tab.js +1 -1
  280. package/cjs/components/Tabs/Tab.js.map +1 -1
  281. package/cjs/components/Tabs/Tab.styles.js +2 -2
  282. package/cjs/components/Tabs/Tab.styles.js.map +1 -1
  283. package/cjs/components/Tabs/Tabs.js +1 -1
  284. package/cjs/components/Tabs/Tabs.js.map +1 -1
  285. package/cjs/components/Tabs/Tabs.styles.js +1 -1
  286. package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
  287. package/cjs/components/Tabs/TabsContext.js +1 -1
  288. package/cjs/components/Tabs/TabsContext.js.map +1 -1
  289. package/cjs/components/Textarea/Textarea.js +2 -2
  290. package/cjs/components/Textarea/Textarea.mixins.js +1 -1
  291. package/cjs/components/Textarea/Textarea.mixins.js.map +1 -1
  292. package/cjs/components/Textarea/Textarea.styles.js +1 -1
  293. package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
  294. package/cjs/components/Textarea/TextareaCounter.js +2 -2
  295. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  296. package/cjs/components/Textarea/TextareaWithSafari17Workaround.js +1 -1
  297. package/cjs/components/Textarea/TextareaWithSafari17Workaround.js.map +1 -1
  298. package/cjs/components/Toast/Toast.js +1 -1
  299. package/cjs/components/Toast/Toast.js.map +1 -1
  300. package/cjs/components/Toast/Toast.styles.js +1 -1
  301. package/cjs/components/Toast/Toast.styles.js.map +1 -1
  302. package/cjs/components/Toast/ToastStatic.js +1 -1
  303. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  304. package/cjs/components/Toast/ToastView.js +1 -1
  305. package/cjs/components/Toast/ToastView.js.map +1 -1
  306. package/cjs/components/Toast/ToastView.styles.js +1 -1
  307. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  308. package/cjs/components/Toggle/Toggle.js +1 -1
  309. package/cjs/components/Toggle/Toggle.js.map +1 -1
  310. package/cjs/components/Toggle/Toggle.mixins.js +1 -1
  311. package/cjs/components/Toggle/Toggle.mixins.js.map +1 -1
  312. package/cjs/components/Toggle/Toggle.styles.js +1 -1
  313. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  314. package/cjs/components/Token/Token.js +3 -2
  315. package/cjs/components/Token/Token.js.map +1 -1
  316. package/cjs/components/Token/Token.mixins.js +1 -1
  317. package/cjs/components/Token/Token.mixins.js.map +1 -1
  318. package/cjs/components/Token/Token.styles.js +2 -2
  319. package/cjs/components/Token/Token.styles.js.map +1 -1
  320. package/cjs/components/Token/TokenView.js +2 -2
  321. package/cjs/components/Token/TokenView.js.map +1 -1
  322. package/cjs/components/TokenInput/TextWidthHelper.js +1 -1
  323. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  324. package/cjs/components/TokenInput/TokenInput.js +2 -2
  325. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  326. package/cjs/components/TokenInput/TokenInput.mixins.js +1 -1
  327. package/cjs/components/TokenInput/TokenInput.mixins.js.map +1 -1
  328. package/cjs/components/TokenInput/TokenInput.styles.js +1 -1
  329. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  330. package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
  331. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  332. package/cjs/components/Tooltip/Tooltip.js +1 -1
  333. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  334. package/cjs/components/Tooltip/Tooltip.styles.js +1 -1
  335. package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
  336. package/cjs/components/TooltipMenu/TooltipMenu.js +1 -1
  337. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  338. package/cjs/index.js +2 -2
  339. package/cjs/index.js.map +1 -1
  340. package/cjs/internal/BGRuler.js +1 -1
  341. package/cjs/internal/BGRuler.js.map +1 -1
  342. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  343. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  344. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js +1 -1
  345. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
  346. package/cjs/internal/CloseButtonIcon/CrossIcon.js +1 -1
  347. package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -1
  348. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  349. package/cjs/internal/ComponentCombinator.js +1 -1
  350. package/cjs/internal/ComponentCombinator.js.map +1 -1
  351. package/cjs/internal/ComponentTable.js +1 -1
  352. package/cjs/internal/ComponentTable.js.map +1 -1
  353. package/cjs/internal/CustomComboBox/ArrowDownIcon.js +1 -1
  354. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  355. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  356. package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -1
  357. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  358. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -1
  359. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  360. package/cjs/internal/CustomComboBox/CustomComboBox.styles.js +1 -1
  361. package/cjs/internal/CustomComboBox/CustomComboBox.styles.js.map +1 -1
  362. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +2 -2
  363. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  364. package/cjs/internal/DataTids/DataTids.js +1 -1
  365. package/cjs/internal/DataTids/DataTids.js.map +1 -1
  366. package/cjs/internal/DataTids/DataTids.styles.js +1 -1
  367. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -1
  368. package/cjs/internal/DataTids/componentsDataTids.js +1 -1
  369. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -1
  370. package/cjs/internal/DateSelect/DateSelect.js +2 -2
  371. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  372. package/cjs/internal/DateSelect/DateSelect.styles.js +1 -1
  373. package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
  374. package/cjs/internal/DropdownContainer/DropdownContainer.js +2 -2
  375. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  376. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +1 -1
  377. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -1
  378. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +1 -1
  379. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -1
  380. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +2 -2
  381. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  382. package/cjs/internal/FileUploaderControl/FileUploaderFile/DeleteIcon.js +1 -1
  383. package/cjs/internal/FileUploaderControl/FileUploaderFile/ErrorIcon.js +1 -1
  384. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +2 -2
  385. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  386. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +1 -1
  387. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -1
  388. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js +2 -2
  389. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js.map +1 -1
  390. package/cjs/internal/FileUploaderControl/FileUploaderFile/OkIcon.js +1 -1
  391. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +2 -2
  392. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  393. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +1 -1
  394. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -1
  395. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +1 -1
  396. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +1 -1
  397. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +1 -1
  398. package/cjs/internal/FocusTrap/FocusTrap.js +1 -1
  399. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  400. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +1 -1
  401. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  402. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -1
  403. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  404. package/cjs/internal/InputLikeText/HiddenInput.js +1 -1
  405. package/cjs/internal/InputLikeText/HiddenInput.js.map +1 -1
  406. package/cjs/internal/InputLikeText/InputLikeText.js +1 -1
  407. package/cjs/internal/InputLikeText/InputLikeText.styles.js +1 -1
  408. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  409. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
  410. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.styles.js +1 -1
  411. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.styles.js.map +1 -1
  412. package/cjs/internal/InternalMenu/InternalMenu.js +1 -1
  413. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  414. package/cjs/internal/InternalMenu/InternalMenu.styles.js +1 -1
  415. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  416. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +1 -1
  417. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -1
  418. package/cjs/internal/InternalMenu/isIconPaddingEnabled.js +1 -1
  419. package/cjs/internal/InternalMenu/isIconPaddingEnabled.js.map +1 -1
  420. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.js +1 -1
  421. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
  422. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.styles.js +1 -1
  423. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.styles.js.map +1 -1
  424. package/cjs/internal/MaskedInputElement/MaskedInputElement.js +2 -2
  425. package/cjs/internal/MaskedInputElement/MaskedInputElement.js.map +1 -1
  426. package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js +1 -1
  427. package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js.map +1 -1
  428. package/cjs/internal/Menu/Menu.js +1 -1
  429. package/cjs/internal/Menu/Menu.js.map +1 -1
  430. package/cjs/internal/Menu/Menu.styles.js +1 -1
  431. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  432. package/cjs/internal/Menu/MenuContext.js +1 -1
  433. package/cjs/internal/Menu/MenuContext.js.map +1 -1
  434. package/cjs/internal/MenuMessage/MenuMessage.js +2 -2
  435. package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -1
  436. package/cjs/internal/MenuMessage/MenuMessage.styles.js +1 -1
  437. package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
  438. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  439. package/cjs/internal/MobilePopup/MobilePopup.styles.js +1 -1
  440. package/cjs/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  441. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
  442. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  443. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +1 -1
  444. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  445. package/cjs/internal/NativeDateInput/NativeDateInput.js +1 -1
  446. package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  447. package/cjs/internal/NativeDateInput/NativeDateInput.styles.js +1 -1
  448. package/cjs/internal/NativeDateInput/NativeDateInput.styles.js.map +1 -1
  449. package/cjs/internal/NativeDateInput/utils.js +1 -1
  450. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js +1 -1
  451. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.js.map +1 -1
  452. package/cjs/internal/Popup/Popup.js +3 -3
  453. package/cjs/internal/Popup/Popup.js.map +1 -1
  454. package/cjs/internal/Popup/Popup.styles.js +1 -1
  455. package/cjs/internal/Popup/Popup.styles.js.map +1 -1
  456. package/cjs/internal/Popup/PopupPin.js +1 -1
  457. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  458. package/cjs/internal/Popup/PopupPin.styles.js +1 -1
  459. package/cjs/internal/Popup/PopupPin.styles.js.map +1 -1
  460. package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
  461. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  462. package/cjs/internal/PopupMenu/PopupMenu.styles.js +1 -1
  463. package/cjs/internal/PopupMenu/PopupMenu.styles.js.map +1 -1
  464. package/cjs/internal/RenderContainer/RenderContainer.js +1 -1
  465. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  466. package/cjs/internal/RenderContainer/RenderInnerContainer.js +1 -1
  467. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  468. package/cjs/internal/RenderLayer/RenderLayer.js +1 -1
  469. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  470. package/cjs/internal/ResizeDetector/ResizeDetector.js +1 -1
  471. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  472. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js +1 -1
  473. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
  474. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +1 -1
  475. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
  476. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +1 -1
  477. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -1
  478. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js +1 -1
  479. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.js.map +1 -1
  480. package/cjs/internal/ThemePlayground/CheckboxPlayground.js +1 -1
  481. package/cjs/internal/ThemePlayground/CheckboxPlayground.js.map +1 -1
  482. package/cjs/internal/ThemePlayground/ComponentsGroup.js +1 -1
  483. package/cjs/internal/ThemePlayground/ComponentsGroup.js.map +1 -1
  484. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js +1 -1
  485. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.js.map +1 -1
  486. package/cjs/internal/ThemePlayground/FxInputPlayground.js +1 -1
  487. package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
  488. package/cjs/internal/ThemePlayground/HintPlayground.js +1 -1
  489. package/cjs/internal/ThemePlayground/HintPlayground.js.map +1 -1
  490. package/cjs/internal/ThemePlayground/PagingPlayground.js +1 -1
  491. package/cjs/internal/ThemePlayground/PagingPlayground.js.map +1 -1
  492. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  493. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  494. package/cjs/internal/ThemePlayground/Playground.styles.js +1 -1
  495. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  496. package/cjs/internal/ThemePlayground/RadioPlayground.js +1 -1
  497. package/cjs/internal/ThemePlayground/RadioPlayground.js.map +1 -1
  498. package/cjs/internal/ThemePlayground/SelectPlayground.js +1 -1
  499. package/cjs/internal/ThemePlayground/SelectPlayground.js.map +1 -1
  500. package/cjs/internal/ThemePlayground/ShowcaseGroup.js +1 -1
  501. package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
  502. package/cjs/internal/ThemePlayground/SizesGroup.js +1 -1
  503. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  504. package/cjs/internal/ThemePlayground/SwitcherPlayground.js +1 -1
  505. package/cjs/internal/ThemePlayground/SwitcherPlayground.js.map +1 -1
  506. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +2 -2
  507. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  508. package/cjs/internal/ThemePlayground/ThemeEditor.js +4 -4
  509. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  510. package/cjs/internal/ThemePlayground/TogglePlayground.js +1 -1
  511. package/cjs/internal/ThemePlayground/TogglePlayground.js.map +1 -1
  512. package/cjs/internal/ThemePlayground/TokenInputPlayground.js +1 -1
  513. package/cjs/internal/ThemePlayground/TokenInputPlayground.js.map +1 -1
  514. package/cjs/internal/ThemePlayground/VariableValue.js +1 -1
  515. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  516. package/cjs/internal/ThemePlayground/helpers.js +1 -1
  517. package/cjs/internal/ThemePlayground/helpers.js.map +1 -1
  518. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +2 -2
  519. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  520. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js +1 -1
  521. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js.map +1 -1
  522. package/cjs/internal/ZIndex/ZIndex.js +1 -1
  523. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  524. package/cjs/internal/icons/16px/icon.styles.js +1 -1
  525. package/cjs/internal/icons/16px/icon.styles.js.map +1 -1
  526. package/cjs/internal/icons/16px/index.js +1 -1
  527. package/cjs/internal/icons/16px/index.js.map +1 -1
  528. package/cjs/internal/icons/20px/Icon.js +1 -1
  529. package/cjs/internal/icons/20px/Icon.js.map +1 -1
  530. package/cjs/internal/icons/20px/icon.styles.js +1 -1
  531. package/cjs/internal/icons/20px/icon.styles.js.map +1 -1
  532. package/cjs/internal/icons/20px/svg.js +1 -1
  533. package/cjs/internal/icons/20px/svg.js.map +1 -1
  534. package/cjs/internal/icons/CloudIcon.js +1 -1
  535. package/cjs/internal/icons/CloudIcon.js.map +1 -1
  536. package/cjs/internal/icons/CrossIcon.js +1 -1
  537. package/cjs/internal/icons/CrossIcon.js.map +1 -1
  538. package/cjs/internal/icons/SpinnerIcon.js +1 -1
  539. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  540. package/cjs/internal/icons/SpinnerIcon.styles.js +1 -1
  541. package/cjs/internal/icons/SpinnerIcon.styles.js.map +1 -1
  542. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.js +1 -1
  543. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.js.map +1 -1
  544. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.js +1 -1
  545. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.js.map +1 -1
  546. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.js +1 -1
  547. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.js.map +1 -1
  548. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.js +1 -1
  549. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.js.map +1 -1
  550. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.js +1 -1
  551. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.js.map +1 -1
  552. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.js +1 -1
  553. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.js.map +1 -1
  554. package/cjs/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js +1 -1
  555. package/cjs/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js.map +1 -1
  556. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.js +1 -1
  557. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.js.map +1 -1
  558. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.js +1 -1
  559. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.js.map +1 -1
  560. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.js +1 -1
  561. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.js.map +1 -1
  562. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.js +1 -1
  563. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.js.map +1 -1
  564. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.js +1 -1
  565. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.js.map +1 -1
  566. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.js +1 -1
  567. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.js.map +1 -1
  568. package/cjs/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.js +1 -1
  569. package/cjs/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.js.map +1 -1
  570. package/cjs/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.js +1 -1
  571. package/cjs/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.js.map +1 -1
  572. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.js +1 -1
  573. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.js.map +1 -1
  574. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.js +1 -1
  575. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.js.map +1 -1
  576. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.js +1 -1
  577. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.js.map +1 -1
  578. package/cjs/internal/icons2022/BaseIcon.js +1 -1
  579. package/cjs/internal/icons2022/BaseIcon.js.map +1 -1
  580. package/cjs/internal/icons2022/BaseIcon.styles.js +1 -1
  581. package/cjs/internal/icons2022/BaseIcon.styles.js.map +1 -1
  582. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon16Light.js +1 -1
  583. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon16Light.js.map +1 -1
  584. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon20Light.js +1 -1
  585. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon20Light.js.map +1 -1
  586. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon24Regular.js +1 -1
  587. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon24Regular.js.map +1 -1
  588. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Light.js +1 -1
  589. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Light.js.map +1 -1
  590. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Regular.js +1 -1
  591. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Regular.js.map +1 -1
  592. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Solid.js +1 -1
  593. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Solid.js.map +1 -1
  594. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Light.js +1 -1
  595. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Light.js.map +1 -1
  596. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Solid.js +1 -1
  597. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Solid.js.map +1 -1
  598. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon24Regular.js +1 -1
  599. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon24Regular.js.map +1 -1
  600. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.js +1 -1
  601. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.js.map +1 -1
  602. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.js +1 -1
  603. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.js.map +1 -1
  604. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.js +1 -1
  605. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.js.map +1 -1
  606. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.js +1 -1
  607. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.js.map +1 -1
  608. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.js +1 -1
  609. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.js.map +1 -1
  610. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.js +1 -1
  611. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.js.map +1 -1
  612. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js +1 -1
  613. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -1
  614. package/cjs/internal/icons2022/LoadingIcon.js +1 -1
  615. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.js +1 -1
  616. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.js.map +1 -1
  617. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.js +1 -1
  618. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.js.map +1 -1
  619. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.js +1 -1
  620. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.js.map +1 -1
  621. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.js +1 -1
  622. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.js.map +1 -1
  623. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.js +1 -1
  624. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.js.map +1 -1
  625. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.js +1 -1
  626. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.js.map +1 -1
  627. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.js +1 -1
  628. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.js.map +1 -1
  629. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.js +1 -1
  630. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.js.map +1 -1
  631. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.js +1 -1
  632. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.js.map +1 -1
  633. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.js +1 -1
  634. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.js.map +1 -1
  635. package/cjs/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.js +1 -1
  636. package/cjs/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.js.map +1 -1
  637. package/cjs/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.js +1 -1
  638. package/cjs/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.js.map +1 -1
  639. package/cjs/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.js +1 -1
  640. package/cjs/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.js.map +1 -1
  641. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.js +1 -1
  642. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.js.map +1 -1
  643. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.js +1 -1
  644. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.js.map +1 -1
  645. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.js +1 -1
  646. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.js.map +1 -1
  647. package/cjs/internal/icons2022/XIcon/XIcon16Light.js +1 -1
  648. package/cjs/internal/icons2022/XIcon/XIcon16Light.js.map +1 -1
  649. package/cjs/internal/icons2022/XIcon/XIcon16Regular.js +1 -1
  650. package/cjs/internal/icons2022/XIcon/XIcon16Regular.js.map +1 -1
  651. package/cjs/internal/icons2022/XIcon/XIcon20Light.js +1 -1
  652. package/cjs/internal/icons2022/XIcon/XIcon20Light.js.map +1 -1
  653. package/cjs/internal/icons2022/XIcon/XIcon20Regular.js +1 -1
  654. package/cjs/internal/icons2022/XIcon/XIcon20Regular.js.map +1 -1
  655. package/cjs/internal/icons2022/XIcon/XIcon24Regular.js +1 -1
  656. package/cjs/internal/icons2022/XIcon/XIcon24Regular.js.map +1 -1
  657. package/cjs/internal/icons2022/iconSizer.js +1 -1
  658. package/cjs/internal/icons2022/iconSizer.js.map +1 -1
  659. package/cjs/internal/themes/DarkTheme.js +1 -1
  660. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  661. package/cjs/internal/themes/DefaultTheme.js +2 -2
  662. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  663. package/cjs/internal/themes/NotFlat.js +1 -1
  664. package/cjs/internal/themes/NotFlat.js.map +1 -1
  665. package/cjs/internal/themes/OldColors.js +1 -1
  666. package/cjs/internal/themes/OldColors.js.map +1 -1
  667. package/cjs/internal/themes/Theme2022.js +2 -2
  668. package/cjs/internal/themes/Theme2022.js.map +1 -1
  669. package/cjs/internal/themes/Theme2022Dark.js +1 -1
  670. package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
  671. package/cjs/lib/LayoutEvents.js +1 -1
  672. package/cjs/lib/LayoutEvents.js.map +1 -1
  673. package/cjs/lib/ModalStack.js +1 -1
  674. package/cjs/lib/SSRSafe.js +1 -1
  675. package/cjs/lib/SSRSafe.js.map +1 -1
  676. package/cjs/lib/Upgrades.js +1 -1
  677. package/cjs/lib/Upgrades.js.map +1 -1
  678. package/cjs/lib/date/InternalDate.js +1 -1
  679. package/cjs/lib/date/InternalDate.js.map +1 -1
  680. package/cjs/lib/date/InternalDateTransformer.js +1 -1
  681. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  682. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js +1 -1
  683. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js.map +1 -1
  684. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +1 -1
  685. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  686. package/cjs/lib/listenFocusOutside.js +1 -1
  687. package/cjs/lib/listenFocusOutside.js.map +1 -1
  688. package/cjs/lib/locale/LocaleContext.js +1 -1
  689. package/cjs/lib/locale/LocaleContext.js.map +1 -1
  690. package/cjs/lib/locale/decorators.js +1 -1
  691. package/cjs/lib/reactGetTextContent.js +1 -1
  692. package/cjs/lib/reactGetTextContent.js.map +1 -1
  693. package/cjs/lib/rootNode/getRootNode.js +1 -1
  694. package/cjs/lib/rootNode/rootNodeDecorator.js +1 -1
  695. package/cjs/lib/styles/ColorFactory.js +1 -1
  696. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  697. package/cjs/lib/styles/ColorObject.js +1 -1
  698. package/cjs/lib/styles/ColorObject.js.map +1 -1
  699. package/cjs/lib/styles/HoldSelectionColor.js +1 -1
  700. package/cjs/lib/styles/HoldSelectionColor.js.map +1 -1
  701. package/cjs/lib/styles/Mixins.js +1 -1
  702. package/cjs/lib/styles/Mixins.js.map +1 -1
  703. package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -1
  704. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  705. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  706. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  707. package/cjs/lib/theming/Emotion.js +1 -1
  708. package/cjs/lib/theming/Emotion.js.map +1 -1
  709. package/cjs/lib/theming/ThemeContext.js +1 -1
  710. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  711. package/cjs/lib/utils.d.ts +0 -7
  712. package/cjs/lib/utils.js +2 -25
  713. package/cjs/lib/utils.js.map +1 -1
  714. package/cjs/lib/withClassWrapper.js +1 -1
  715. package/cjs/lib/withClassWrapper.js.map +1 -1
  716. package/components/Button/Button/Button.js +5 -2
  717. package/components/Button/Button/Button.js.map +1 -1
  718. package/components/Button/Button.d.ts +1 -0
  719. package/components/Button/Button.styles/Button.styles.js +14 -11
  720. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  721. package/components/Button/Button.styles.d.ts +1 -0
  722. package/components/CurrencyInput/CursorHelper/CursorHelper.js +1 -39
  723. package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -40
  724. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  725. package/components/Select/Select/Select.js +1 -40
  726. package/components/Select/Select/Select.js.map +1 -1
  727. package/components/Token/Token/Token.js +3 -2
  728. package/components/Token/Token/Token.js.map +1 -1
  729. package/internal/Popup/Popup/Popup.js +1 -40
  730. package/internal/Popup/Popup/Popup.js.map +1 -1
  731. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +1 -41
  732. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  733. package/internal/themes/Theme2022/Theme2022.js +2 -2
  734. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  735. package/lib/utils/utils.js +0 -26
  736. package/lib/utils/utils.js.map +1 -1
  737. package/lib/utils.d.ts +0 -7
  738. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["InternalMenu.tsx"],"names":["InternalMenuDataTids","root","InternalMenu","responsiveLayout","rootNode","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","renderHeader","styles","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","ThemeFactory","create","menuSeparatorMarginY","focusOnRootElement","globalObject","HTMLElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","React","Children","count","calculateMaxHeight","parsedMaxHeight","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","renderMain","enableIconPadding","preventIconsOffset","isEmpty","hasShadow","width","preventWindowScroll","isMobile","isMobileLayout","mobileRoot","shadow","setRootNode","map","child","isValidElement","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","some","isActiveElement","cyclicSelection","length","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\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';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { styles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\nimport { isIconPaddingEnabled } from './isIconPaddingEnabled';\n\nexport interface InternalMenuProps {\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 /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const InternalMenuDataTids = {\n root: 'InternalMenu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n InternalMenuProps,\n 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll' | 'cyclicSelection' | 'initialSelectedItemIndex'\n >\n>;\n/**\n * @deprecated use Menu component instead\n */\n@responsiveLayout\n@rootNode\nexport class InternalMenu extends React.PureComponent<InternalMenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n public static displayName = 'InternalMenu';\n\n public static defaultProps: DefaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: InternalMenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, width, maxHeight, preventWindowScroll } = this.getProps();\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={InternalMenuDataTids.root}\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow,\n })}\n style={{\n width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: InternalMenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof globalObject !== 'undefined' && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n const rootNode = getRootNode(this.highlighted);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
1
+ {"version":3,"sources":["InternalMenu.tsx"],"names":["InternalMenuDataTids","root","InternalMenu","responsiveLayout","rootNode","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","renderHeader","styles","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","ThemeFactory","create","menuSeparatorMarginY","focusOnRootElement","globalObject","HTMLElement","focus","shouldRecalculateMaxHeight","prevProps","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","React","Children","count","calculateMaxHeight","parsedMaxHeight","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","renderMain","enableIconPadding","preventIconsOffset","isEmpty","hasShadow","width","preventWindowScroll","isMobile","isMobileLayout","mobileRoot","shadow","setRootNode","map","child","isValidElement","type","modifiedChild","highlight","ref","originalRef","menuItem","refHighlighted","cloneElement","select","bind","onMouseEnter","event","onMouseLeave","current","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","some","isActiveElement","cyclicSelection","length","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\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';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { styles } from './InternalMenu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { addIconPaddingIfPartOfMenu } from './addIconPaddingIfPartOfMenu';\nimport { isIconPaddingEnabled } from './isIconPaddingEnabled';\n\nexport interface InternalMenuProps {\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 /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n // Циклический перебор айтемов меню (по-дефолтну включен)\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\ninterface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const InternalMenuDataTids = {\n root: 'InternalMenu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n InternalMenuProps,\n 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll' | 'cyclicSelection' | 'initialSelectedItemIndex'\n >\n>;\n/**\n * @deprecated use Menu component instead\n */\n@responsiveLayout\n@rootNode\nexport class InternalMenu extends React.PureComponent<InternalMenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'InternalMenu';\n public static displayName = 'InternalMenu';\n\n public static defaultProps: DefaultProps = {\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(InternalMenu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: InternalMenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, width, maxHeight, preventWindowScroll } = this.getProps();\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={InternalMenuDataTids.root}\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow,\n })}\n style={{\n width,\n maxHeight: this.state.maxHeight,\n }}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header ? this.renderHeader() : null}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n >\n {React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\n return child;\n }\n if (React.isValidElement(child) && typeof child.type === 'string') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n const originalRef = ref;\n if (highlight) {\n ref = (menuItem) => this.refHighlighted(originalRef, menuItem);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: (event) => {\n this.highlightItem(index);\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseEnter) {\n modifiedChild.props.onMouseEnter(event);\n }\n },\n onMouseLeave: (event) => {\n this.unhighlight();\n if (isMenuItem(modifiedChild) && modifiedChild.props.onMouseLeave) {\n modifiedChild.props.onMouseLeave(event);\n }\n },\n });\n }\n\n return modifiedChild;\n })}\n </ScrollContainer>\n {this.props.footer ? this.renderFooter() : null}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: InternalMenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof globalObject !== 'undefined' && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.moveDown();\n }\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: string | ((instance: MenuItem | null) => void) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (!originalRef || typeof originalRef === 'string') {\n return;\n }\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n } else if (typeof originalRef === 'object') {\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n originalRef.current = menuItem;\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n const rootNode = getRootNode(this.highlighted);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n\n if (isActiveElement(item) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event as React.MouseEvent<HTMLElement>);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick(event);\n }\n return true;\n }\n return false;\n }\n\n private highlightItem = (index: number): void => {\n this.setState({ highlightedIndex: index });\n\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n this.setState((state, props) => {\n const children = childrenToArray(props.children);\n if (!children.some(isActiveElement)) {\n return null;\n }\n let index = state.highlightedIndex;\n do {\n index += step;\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return null;\n }\n\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n return { highlightedIndex: index };\n }\n } while (index !== state.highlightedIndex);\n return null;\n }, this.scrollToSelected);\n }\n\n private moveUp = () => {\n this.move(-1);\n };\n\n private moveDown = () => {\n this.move(1);\n };\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(e);\n }\n\n if (e.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(e)) {\n e.preventDefault();\n this.moveUp();\n } else if (isKeyArrowDown(e)) {\n e.preventDefault();\n this.moveDown();\n } else if (isKeyEnter(e)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(e);\n }\n }\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
2
2
 
3
3
 
4
4
  var styles = (0, _Emotion.memoizeStyle)({
@@ -1 +1 @@
1
- {"version":3,"sources":["InternalMenu.styles.ts"],"names":["styles","root","t","css","internalMenuPaddingY","menuPaddingX","bgSecondary","mobileRoot","mobileMenuPaddingX","shadow","menuBorder","menuShadow","wrapper","headerWrapper","footerWrapper","contentWrapper","menuSeparatorWrapper","menuSeparatorBorderWidth"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,eAAOC,YAAP;AACaD,IAAAA,CAAC,CAACE,oBADf,EACuCF,CAAC,CAACG,YADzC;;;AAIgBH,IAAAA,CAAC,CAACI,WAJlB;;AAMD,GARgC;;AAUjCC,EAAAA,UAViC,sBAUtBL,CAVsB,EAUZ;AACnB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACM,kBADjB;;AAGD,GAdgC;;AAgBjCC,EAAAA,MAhBiC,kBAgB1BP,CAhB0B,EAgBhB;AACf,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACQ,UADd;AAEgBR,IAAAA,CAAC,CAACS,UAFlB;;AAID,GArBgC;;AAuBjCC,EAAAA,OAvBiC,qBAuBvB;AACR,eAAOT,YAAP;;;;;;;;AAQD,GAhCgC;;AAkCjCU,EAAAA,aAlCiC,2BAkCjB;AACd,eAAOV,YAAP;;;AAGD,GAtCgC;;AAwCjCW,EAAAA,aAxCiC,2BAwCjB;AACd,eAAOX,YAAP;;;AAGD,GA5CgC;;AA8CjCY,EAAAA,cA9CiC,4BA8ChB;AACf,eAAOZ,YAAP;;;AAGD,GAlDgC;;AAoDjCa,EAAAA,oBApDiC,gCAoDZd,CApDY,EAoDF;AAC7B,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACe,wBADd;;AAGD,GAxDgC,EAAb,CAAf,C","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 padding: ${t.internalMenuPaddingY} ${t.menuPaddingX};\n outline: none;\n box-sizing: content-box;\n background: ${t.bgSecondary};\n `;\n },\n\n mobileRoot(t: Theme) {\n return css`\n padding: 0 ${t.mobileMenuPaddingX};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n wrapper() {\n return css`\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n `;\n },\n\n headerWrapper() {\n return css`\n top: -5px;\n `;\n },\n\n footerWrapper() {\n return css`\n bottom: -5px;\n `;\n },\n\n contentWrapper() {\n return css`\n padding: 6px 18px 7px 8px;\n `;\n },\n\n menuSeparatorWrapper(t: Theme) {\n return css`\n height: ${t.menuSeparatorBorderWidth};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["InternalMenu.styles.ts"],"names":["styles","root","t","css","internalMenuPaddingY","menuPaddingX","bgSecondary","mobileRoot","mobileMenuPaddingX","shadow","menuBorder","menuShadow","wrapper","headerWrapper","footerWrapper","contentWrapper","menuSeparatorWrapper","menuSeparatorBorderWidth"],"mappings":"oRAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,eAAOC,YAAP;AACaD,IAAAA,CAAC,CAACE,oBADf,EACuCF,CAAC,CAACG,YADzC;;;AAIgBH,IAAAA,CAAC,CAACI,WAJlB;;AAMD,GARgC;;AAUjCC,EAAAA,UAViC,sBAUtBL,CAVsB,EAUZ;AACnB,eAAOC,YAAP;AACeD,IAAAA,CAAC,CAACM,kBADjB;;AAGD,GAdgC;;AAgBjCC,EAAAA,MAhBiC,kBAgB1BP,CAhB0B,EAgBhB;AACf,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACQ,UADd;AAEgBR,IAAAA,CAAC,CAACS,UAFlB;;AAID,GArBgC;;AAuBjCC,EAAAA,OAvBiC,qBAuBvB;AACR,eAAOT,YAAP;;;;;;;;AAQD,GAhCgC;;AAkCjCU,EAAAA,aAlCiC,2BAkCjB;AACd,eAAOV,YAAP;;;AAGD,GAtCgC;;AAwCjCW,EAAAA,aAxCiC,2BAwCjB;AACd,eAAOX,YAAP;;;AAGD,GA5CgC;;AA8CjCY,EAAAA,cA9CiC,4BA8ChB;AACf,eAAOZ,YAAP;;;AAGD,GAlDgC;;AAoDjCa,EAAAA,oBApDiC,gCAoDZd,CApDY,EAoDF;AAC7B,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACe,wBADd;;AAGD,GAxDgC,EAAb,CAAf,C","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 padding: ${t.internalMenuPaddingY} ${t.menuPaddingX};\n outline: none;\n box-sizing: content-box;\n background: ${t.bgSecondary};\n `;\n },\n\n mobileRoot(t: Theme) {\n return css`\n padding: 0 ${t.mobileMenuPaddingX};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n wrapper() {\n return css`\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n `;\n },\n\n headerWrapper() {\n return css`\n top: -5px;\n `;\n },\n\n footerWrapper() {\n return css`\n bottom: -5px;\n `;\n },\n\n contentWrapper() {\n return css`\n padding: 6px 18px 7px 8px;\n `;\n },\n\n menuSeparatorWrapper(t: Theme) {\n return css`\n height: ${t.menuSeparatorBorderWidth};\n `;\n },\n});\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.addIconPaddingIfPartOfMenu = void 0;var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.addIconPaddingIfPartOfMenu = void 0;var _react = _interopRequireDefault(require("react"));
2
2
 
3
3
  var _MenuItem = require("../../components/MenuItem");
4
4
  var _MenuHeader = require("../../components/MenuHeader");
@@ -1 +1 @@
1
- {"version":3,"sources":["addIconPaddingIfPartOfMenu.ts"],"names":["addIconPaddingIfPartOfMenu","child","enableIconPadding","isPartOfMenu","React","cloneElement","_enableIconPadding"],"mappings":"wKAAA;;AAEA;AACA;;AAEO,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,KAAD,EAAyBC,iBAAzB,EAAwD;AAChG,MAAMC,YAAY,GAAG,0BAAWF,KAAX,KAAqB,8BAAaA,KAAb,CAA1C;;AAEA,MAAIC,iBAAiB,IAAIC,YAAzB,EAAuC;AACrC,wBAAOC,eAAMC,YAAN,CAAmBJ,KAAnB,EAA0B;AAC/BK,MAAAA,kBAAkB,EAAE,IADW,EAA1B,CAAP;;AAGD;;AAED,SAAOL,KAAP;AACD,CAVM,C","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"]}
1
+ {"version":3,"sources":["addIconPaddingIfPartOfMenu.ts"],"names":["addIconPaddingIfPartOfMenu","child","enableIconPadding","isPartOfMenu","React","cloneElement","_enableIconPadding"],"mappings":"gLAAA;;AAEA;AACA;;AAEO,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,KAAD,EAAyBC,iBAAzB,EAAwD;AAChG,MAAMC,YAAY,GAAG,0BAAWF,KAAX,KAAqB,8BAAaA,KAAb,CAA1C;;AAEA,MAAIC,iBAAiB,IAAIC,YAAzB,EAAuC;AACrC,wBAAOC,eAAMC,YAAN,CAAmBJ,KAAnB,EAA0B;AAC/BK,MAAAA,kBAAkB,EAAE,IADW,EAA1B,CAAP;;AAGD;;AAED,SAAOL,KAAP;AACD,CAVM,C","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"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.isIconPaddingEnabled = void 0;var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.isIconPaddingEnabled = void 0;var _react = _interopRequireDefault(require("react"));
2
2
 
3
3
 
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["isIconPaddingEnabled.ts"],"names":["isIconPaddingEnabled","children","preventIconsOffset","Boolean","React","Children","toArray","some","x","isValidElement","props","icon"],"mappings":"kKAAA;;;;AAIO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB;AAClCC,QADkC;AAElCC,kBAFkC;;AAIlCC,IAAAA,OAAO,CAAC,CAACD,kBAAD,IAAuBE,eAAMC,QAAN,CAAeC,OAAf,CAAuBL,QAAvB,EAAiCM,IAAjC,CAAsC,UAACC,CAAD,UAAO,4BAAMC,cAAN,CAAqBD,CAArB,KAA2BA,CAAC,CAACE,KAAF,CAAQC,IAA1C,EAAtC,CAAxB,CAJ2B,GAA7B,C","sourcesContent":["import React from 'react';\n\nimport { InternalMenuProps } from './InternalMenu';\n\nexport const isIconPaddingEnabled = (\n children: InternalMenuProps['children'],\n preventIconsOffset: InternalMenuProps['preventIconsOffset'],\n) =>\n Boolean(!preventIconsOffset && React.Children.toArray(children).some((x) => React.isValidElement(x) && x.props.icon));\n"]}
1
+ {"version":3,"sources":["isIconPaddingEnabled.ts"],"names":["isIconPaddingEnabled","children","preventIconsOffset","Boolean","React","Children","toArray","some","x","isValidElement","props","icon"],"mappings":"0KAAA;;;;AAIO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB;AAClCC,QADkC;AAElCC,kBAFkC;;AAIlCC,IAAAA,OAAO,CAAC,CAACD,kBAAD,IAAuBE,eAAMC,QAAN,CAAeC,OAAf,CAAuBL,QAAvB,EAAiCM,IAAjC,CAAsC,UAACC,CAAD,UAAO,4BAAMC,cAAN,CAAqBD,CAArB,KAA2BA,CAAC,CAACE,KAAF,CAAQC,IAA1C,EAAtC,CAAxB,CAJ2B,GAA7B,C","sourcesContent":["import React from 'react';\n\nimport { InternalMenuProps } from './InternalMenu';\n\nexport const isIconPaddingEnabled = (\n children: InternalMenuProps['children'],\n preventIconsOffset: InternalMenuProps['preventIconsOffset'],\n) =>\n Boolean(!preventIconsOffset && React.Children.toArray(children).some((x) => React.isValidElement(x) && x.props.icon));\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MaskCharLowLine = exports.MASK_CHAR_EXEMPLAR = void 0;var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.MaskCharLowLine = exports.MASK_CHAR_EXEMPLAR = void 0;var _react = _interopRequireDefault(require("react"));
2
2
 
3
3
  var _MaskCharLowLine = require("./MaskCharLowLine.styles");
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["MaskCharLowLine.tsx"],"names":["MASK_CHAR_EXEMPLAR","String","fromCharCode","MaskCharLowLine","styles","root"],"mappings":"0LAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,kBAAkB,GAAGC,MAAM,CAACC,YAAP,CAAoB,MAApB,CAA3B,C;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,wBAAM,uCAAM,SAAS,EAAEC,wBAAOC,IAAP,EAAjB,IAAiCL,kBAAjC,CAAN,EAAxB,C","sourcesContent":["import React from 'react';\n\nimport { styles } from './MaskCharLowLine.styles';\n\n/**\n * FIGURE SPACE\n *\n * space equal to tabular width of a font this is equivalent to the digit width of fonts with fixed-width digits\n *\n * @see http://www.fileformat.info/info/unicode/char/2007/index.htm\n */\nexport const MASK_CHAR_EXEMPLAR = String.fromCharCode(0x2007);\n\nexport const MaskCharLowLine = () => <span className={styles.root()}>{MASK_CHAR_EXEMPLAR}</span>;\n"]}
1
+ {"version":3,"sources":["MaskCharLowLine.tsx"],"names":["MASK_CHAR_EXEMPLAR","String","fromCharCode","MaskCharLowLine","styles","root"],"mappings":"kMAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,kBAAkB,GAAGC,MAAM,CAACC,YAAP,CAAoB,MAApB,CAA3B,C;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,wBAAM,uCAAM,SAAS,EAAEC,wBAAOC,IAAP,EAAjB,IAAiCL,kBAAjC,CAAN,EAAxB,C","sourcesContent":["import React from 'react';\n\nimport { styles } from './MaskCharLowLine.styles';\n\n/**\n * FIGURE SPACE\n *\n * space equal to tabular width of a font this is equivalent to the digit width of fonts with fixed-width digits\n *\n * @see http://www.fileformat.info/info/unicode/char/2007/index.htm\n */\nexport const MASK_CHAR_EXEMPLAR = String.fromCharCode(0x2007);\n\nexport const MaskCharLowLine = () => <span className={styles.root()}>{MASK_CHAR_EXEMPLAR}</span>;\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject;
2
2
 
3
3
  var styles = (0, _Emotion.memoizeStyle)({
4
4
  root: function root() {
@@ -1 +1 @@
1
- {"version":3,"sources":["MaskCharLowLine.styles.ts"],"names":["styles","root","css"],"mappings":"4QAAA,oD;;AAEO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,kBAC1B;AACL,eAAOC,YAAP;;;;;;;;;;;;;AAaD,GAfgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n\n &:after {\n content: '';\n position: absolute;\n width: calc(100% - 0.1em);\n height: 1px;\n left: 0.05em;\n bottom: 0.11em;\n border-bottom: solid 0.05em;\n }\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["MaskCharLowLine.styles.ts"],"names":["styles","root","css"],"mappings":"oRAAA,oD;;AAEO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,kBAC1B;AACL,eAAOC,YAAP;;;;;;;;;;;;;AAaD,GAfgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n\n &:after {\n content: '';\n position: absolute;\n width: calc(100% - 0.1em);\n height: 1px;\n left: 0.05em;\n bottom: 0.11em;\n border-bottom: solid 0.05em;\n }\n `;\n },\n});\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MaskedInputElementDataTids = exports.MaskedInputElement = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react = _interopRequireWildcard(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.MaskedInputElementDataTids = exports.MaskedInputElement = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react = _interopRequireWildcard(require("react"));
2
2
  var _reactImask = require("react-imask");
3
3
 
4
4
  var _ThemeContext = require("../../lib/theming/ThemeContext");
@@ -8,7 +8,7 @@ var _Emotion = require("../../lib/theming/Emotion");
8
8
  var _forwardRefAndName = require("../../lib/forwardRefAndName");
9
9
 
10
10
  var _MaskedInputElement = require("./MaskedInputElement.styles");
11
- var _MaskedInputElement2 = require("./MaskedInputElement.helpers");var _excluded = ["mask", "maskChar", "formatChars", "alwaysShowMask", "maxLength", "onUnexpectedInput", "defaultValue", "style"];function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
11
+ var _MaskedInputElement2 = require("./MaskedInputElement.helpers");var _excluded = ["mask", "maskChar", "formatChars", "alwaysShowMask", "maxLength", "onUnexpectedInput", "defaultValue", "style"];
12
12
 
13
13
 
14
14
 
@@ -1 +1 @@
1
- {"version":3,"sources":["MaskedInputElement.tsx"],"names":["MaskedInputElementDataTids","root","MaskedInputElement","props","ref","value","getValue","originValue","values","setValues","emptyValue","setEmptyValue","focused","setFocused","inputRef","rootNodeRef","React","useRef","theme","ThemeContext","expectedChangesRef","isFirstRender","input","current","getRootNode","getEmptyValue","mask","maskChar","formatChars","toString","alwaysShowMask","maxLength","onUnexpectedInput","defaultValue","style","inputProps","leftClass","textAlign","styles","inputMaskLeft","currentValue","left","right","rightHelper","split","map","_char","i","leftHelper","color","isMaskVisible","container","handleAccept","handleInput","handleFocus","handleBlur","inputMask","setTimeout","e","target","handleUnexpectedInput","event","onFocus","onBlur","maskPattern","IMask","createMask","definitions","lazy","placeholderChar","appendTail","inserted"],"mappings":"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","sourcesContent":["import React, { ForwardedRef, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { IMaskInput, IMask } from 'react-imask';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\nimport { InputElement, InputElementProps } from '../../components/Input';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { styles } from './MaskedInputElement.styles';\nimport { getCurrentValue, getDefinitions, getFocusPrefix, getMaskChar } from './MaskedInputElement.helpers';\n\nexport interface MaskedInputElementProps extends InputElementProps {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n onUnexpectedInput: (value: string) => void;\n}\n\nexport const MaskedInputElementDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\nexport const MaskedInputElement = forwardRefAndName(\n 'MaskedInputElement',\n function MaskedInputElement(props: MaskedInputElementProps, ref: ForwardedRef<InputElement>) {\n const [values, setValues] = useState<{ value: string; originValue: string }>(() => {\n const value = getValue(props);\n return { value, originValue: value };\n });\n const { value, originValue } = values;\n\n const [emptyValue, setEmptyValue] = useState('');\n const [focused, setFocused] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const rootNodeRef = React.useRef<HTMLDivElement>(null);\n const theme = useContext(ThemeContext);\n const expectedChangesRef = useRef(false);\n const isFirstRender = useRef(true);\n\n useImperativeHandle(\n ref,\n () => ({\n input: inputRef.current,\n getRootNode: () => rootNodeRef.current,\n }),\n [],\n );\n\n useEffect(() => {\n setEmptyValue(getEmptyValue(props.mask, props.maskChar, props.formatChars));\n }, [props.mask, props.maskChar]);\n\n useEffect(() => {\n if (isFirstRender.current) {\n return;\n }\n\n const value = props.value ? props.value.toString() : '';\n setValues((values) => ({ ...values, value }));\n }, [props.value]);\n\n useEffect(() => {\n isFirstRender.current = false;\n }, []);\n\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask,\n maxLength,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = props;\n\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n const [currentValue, left, right] = getCurrentValue({ value, originValue, emptyValue }, focused, maskChar);\n\n /* В rightHelper не DEFAULT_MASK_CHAR, а специальная логика для обработки подчркивания('_').\n * Не менять на DEFAULT_MASK_CHAR\n */\n const rightHelper = right.split('').map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n const leftHelper = style?.textAlign !== 'right' && <span style={{ color: 'transparent' }}>{left}</span>;\n const isMaskVisible = alwaysShowMask || focused;\n\n return (\n <span\n data-tid={MaskedInputElementDataTids.root}\n ref={rootNodeRef}\n className={styles.container()}\n x-ms-format-detection=\"none\"\n >\n <IMaskInput\n {...inputProps}\n mask={mask}\n definitions={getDefinitions(formatChars)}\n eager\n overwrite={'shift'}\n onAccept={handleAccept}\n onInput={handleInput}\n onFocus={handleFocus}\n onBlur={handleBlur}\n value={currentValue}\n inputRef={inputRef}\n style={{ ...style }}\n />\n {isMaskVisible && (\n <span className={cx(styles.inputMask(theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n\n function getValue(props: MaskedInputElementProps): string {\n return (props.value ?? props.defaultValue ?? '').toString();\n }\n\n /** В imask вызывается только когда значение с маской меняется*/\n function handleAccept(value: string) {\n expectedChangesRef.current = true;\n // Если разделить на 2 setState - между первым и вторым происходит рендер и иногда символы \"съедаются\"\n setValues({ value, originValue: value });\n\n setTimeout(() => {\n /** При вводе с клавиатуры срабатывает handleAccept, за ним handleInput\n * expectedChanges - нужен чтобы сообщить из handleAccept в handleInput, что значение с маской изменилось.\n * Если маска не изменилась и сработал handleInput, вызываем handleUnexpectedInput. Ввели значение не по маске.\n * setTimeout нужен чтобы сбросить expectedChanges, например, если изменилось значение в пропах.\n * Маска изменится, вызовется handleAccept, но не handleInput\n */\n expectedChangesRef.current = false;\n });\n }\n\n /** Отслеживаем неправильные нажатия,\n * handleAccept не вызывается когда значение с маской не меняется, а handleInput вызывается\n * Сначала вызывается handleAccept, затем handleInput\n * */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const value = e.target.value;\n\n if (!expectedChangesRef.current && value === originValue) {\n handleUnexpectedInput();\n }\n\n expectedChangesRef.current = false;\n }\n\n function handleFocus(event: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n\n expectedChangesRef.current = false;\n\n if (props.onFocus) {\n props.onFocus(event);\n }\n }\n\n function handleBlur(event: React.FocusEvent<HTMLInputElement>) {\n if (value === getFocusPrefix(emptyValue, maskChar)) {\n setValues({ value: '', originValue: '' });\n }\n\n setFocused(false);\n\n if (props.onBlur) {\n props.onBlur(event);\n }\n }\n\n function handleUnexpectedInput() {\n if (props.onUnexpectedInput) {\n props.onUnexpectedInput(value);\n }\n }\n\n function getEmptyValue(\n mask: MaskedInputElementProps['mask'],\n maskChar: MaskedInputElementProps['maskChar'],\n formatChars: MaskedInputElementProps['formatChars'],\n ): string {\n const maskPattern = IMask.createMask({\n mask,\n definitions: getDefinitions(formatChars),\n lazy: false,\n placeholderChar: getMaskChar(maskChar),\n });\n return maskPattern.appendTail('').inserted;\n }\n },\n);\n"]}
1
+ {"version":3,"sources":["MaskedInputElement.tsx"],"names":["MaskedInputElementDataTids","root","MaskedInputElement","props","ref","value","getValue","originValue","values","setValues","emptyValue","setEmptyValue","focused","setFocused","inputRef","rootNodeRef","React","useRef","theme","ThemeContext","expectedChangesRef","isFirstRender","input","current","getRootNode","getEmptyValue","mask","maskChar","formatChars","toString","alwaysShowMask","maxLength","onUnexpectedInput","defaultValue","style","inputProps","leftClass","textAlign","styles","inputMaskLeft","currentValue","left","right","rightHelper","split","map","_char","i","leftHelper","color","isMaskVisible","container","handleAccept","handleInput","handleFocus","handleBlur","inputMask","setTimeout","e","target","handleUnexpectedInput","event","onFocus","onBlur","maskPattern","IMask","createMask","definitions","lazy","placeholderChar","appendTail","inserted"],"mappings":"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","sourcesContent":["import React, { ForwardedRef, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { IMaskInput, IMask } from 'react-imask';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\nimport { InputElement, InputElementProps } from '../../components/Input';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { styles } from './MaskedInputElement.styles';\nimport { getCurrentValue, getDefinitions, getFocusPrefix, getMaskChar } from './MaskedInputElement.helpers';\n\nexport interface MaskedInputElementProps extends InputElementProps {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n onUnexpectedInput: (value: string) => void;\n}\n\nexport const MaskedInputElementDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\nexport const MaskedInputElement = forwardRefAndName(\n 'MaskedInputElement',\n function MaskedInputElement(props: MaskedInputElementProps, ref: ForwardedRef<InputElement>) {\n const [values, setValues] = useState<{ value: string; originValue: string }>(() => {\n const value = getValue(props);\n return { value, originValue: value };\n });\n const { value, originValue } = values;\n\n const [emptyValue, setEmptyValue] = useState('');\n const [focused, setFocused] = useState(false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const rootNodeRef = React.useRef<HTMLDivElement>(null);\n const theme = useContext(ThemeContext);\n const expectedChangesRef = useRef(false);\n const isFirstRender = useRef(true);\n\n useImperativeHandle(\n ref,\n () => ({\n input: inputRef.current,\n getRootNode: () => rootNodeRef.current,\n }),\n [],\n );\n\n useEffect(() => {\n setEmptyValue(getEmptyValue(props.mask, props.maskChar, props.formatChars));\n }, [props.mask, props.maskChar]);\n\n useEffect(() => {\n if (isFirstRender.current) {\n return;\n }\n\n const value = props.value ? props.value.toString() : '';\n setValues((values) => ({ ...values, value }));\n }, [props.value]);\n\n useEffect(() => {\n isFirstRender.current = false;\n }, []);\n\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask,\n maxLength,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = props;\n\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n const [currentValue, left, right] = getCurrentValue({ value, originValue, emptyValue }, focused, maskChar);\n\n /* В rightHelper не DEFAULT_MASK_CHAR, а специальная логика для обработки подчркивания('_').\n * Не менять на DEFAULT_MASK_CHAR\n */\n const rightHelper = right.split('').map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n const leftHelper = style?.textAlign !== 'right' && <span style={{ color: 'transparent' }}>{left}</span>;\n const isMaskVisible = alwaysShowMask || focused;\n\n return (\n <span\n data-tid={MaskedInputElementDataTids.root}\n ref={rootNodeRef}\n className={styles.container()}\n x-ms-format-detection=\"none\"\n >\n <IMaskInput\n {...inputProps}\n mask={mask}\n definitions={getDefinitions(formatChars)}\n eager\n overwrite={'shift'}\n onAccept={handleAccept}\n onInput={handleInput}\n onFocus={handleFocus}\n onBlur={handleBlur}\n value={currentValue}\n inputRef={inputRef}\n style={{ ...style }}\n />\n {isMaskVisible && (\n <span className={cx(styles.inputMask(theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n\n function getValue(props: MaskedInputElementProps): string {\n return (props.value ?? props.defaultValue ?? '').toString();\n }\n\n /** В imask вызывается только когда значение с маской меняется*/\n function handleAccept(value: string) {\n expectedChangesRef.current = true;\n // Если разделить на 2 setState - между первым и вторым происходит рендер и иногда символы \"съедаются\"\n setValues({ value, originValue: value });\n\n setTimeout(() => {\n /** При вводе с клавиатуры срабатывает handleAccept, за ним handleInput\n * expectedChanges - нужен чтобы сообщить из handleAccept в handleInput, что значение с маской изменилось.\n * Если маска не изменилась и сработал handleInput, вызываем handleUnexpectedInput. Ввели значение не по маске.\n * setTimeout нужен чтобы сбросить expectedChanges, например, если изменилось значение в пропах.\n * Маска изменится, вызовется handleAccept, но не handleInput\n */\n expectedChangesRef.current = false;\n });\n }\n\n /** Отслеживаем неправильные нажатия,\n * handleAccept не вызывается когда значение с маской не меняется, а handleInput вызывается\n * Сначала вызывается handleAccept, затем handleInput\n * */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const value = e.target.value;\n\n if (!expectedChangesRef.current && value === originValue) {\n handleUnexpectedInput();\n }\n\n expectedChangesRef.current = false;\n }\n\n function handleFocus(event: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n\n expectedChangesRef.current = false;\n\n if (props.onFocus) {\n props.onFocus(event);\n }\n }\n\n function handleBlur(event: React.FocusEvent<HTMLInputElement>) {\n if (value === getFocusPrefix(emptyValue, maskChar)) {\n setValues({ value: '', originValue: '' });\n }\n\n setFocused(false);\n\n if (props.onBlur) {\n props.onBlur(event);\n }\n }\n\n function handleUnexpectedInput() {\n if (props.onUnexpectedInput) {\n props.onUnexpectedInput(value);\n }\n }\n\n function getEmptyValue(\n mask: MaskedInputElementProps['mask'],\n maskChar: MaskedInputElementProps['maskChar'],\n formatChars: MaskedInputElementProps['formatChars'],\n ): string {\n const maskPattern = IMask.createMask({\n mask,\n definitions: getDefinitions(formatChars),\n lazy: false,\n placeholderChar: getMaskChar(maskChar),\n });\n return maskPattern.appendTail('').inserted;\n }\n },\n);\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3;
2
2
 
3
3
 
4
4
  var styles = (0, _Emotion.memoizeStyle)({
@@ -1 +1 @@
1
- {"version":3,"sources":["MaskedInputElement.styles.ts"],"names":["styles","container","css","inputMask","t","placeholderColor","inputMaskLeft"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,SADiC,uBACrB;AACV,eAAOC,YAAP;;;;;;AAMD,GARgC;AASjCC,EAAAA,SATiC,qBASvBC,CATuB,EASb;AAClB,eAAOF,YAAP;AACWE,IAAAA,CAAC,CAACC,gBADb;;;;;;AAOD,GAjBgC;AAkBjCC,EAAAA,aAlBiC,2BAkBjB;AACd,eAAOJ,YAAP;;;;;;AAMD,GAzBgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n container() {\n return css`\n display: inline-flex;\n position: relative;\n font-size: inherit;\n flex: 100% 1 1;\n `;\n },\n inputMask(t: Theme) {\n return css`\n color: ${t.placeholderColor};\n pointer-events: none;\n font-size: inherit;\n z-index: 5;\n user-select: none;\n `;\n },\n inputMaskLeft() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["MaskedInputElement.styles.ts"],"names":["styles","container","css","inputMask","t","placeholderColor","inputMaskLeft"],"mappings":"oRAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,SADiC,uBACrB;AACV,eAAOC,YAAP;;;;;;AAMD,GARgC;AASjCC,EAAAA,SATiC,qBASvBC,CATuB,EASb;AAClB,eAAOF,YAAP;AACWE,IAAAA,CAAC,CAACC,gBADb;;;;;;AAOD,GAjBgC;AAkBjCC,EAAAA,aAlBiC,2BAkBjB;AACd,eAAOJ,YAAP;;;;;;AAMD,GAzBgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n container() {\n return css`\n display: inline-flex;\n position: relative;\n font-size: inherit;\n flex: 100% 1 1;\n `;\n },\n inputMask(t: Theme) {\n return css`\n color: ${t.placeholderColor};\n pointer-events: none;\n font-size: inherit;\n z-index: 5;\n user-select: none;\n `;\n },\n inputMaskLeft() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n `;\n },\n});\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MenuDataTids = exports.Menu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.MenuDataTids = exports.Menu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
  var _globalObject = require("@skbkontur/global-object");
3
3
 
4
4
  var _identifiers = require("../../lib/events/keyboard/identifiers");
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.tsx"],"names":["MenuDataTids","root","Menu","responsiveLayout","rootNode","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","React","createRef","menuNavigation","MenuNavigation","MenuItemDataTids","content","focusOnRootElement","globalObject","HTMLElement","focus","renderHeader","styles","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","ThemeFactory","create","menuSeparatorMarginY","getChildList","menuItemsAtAnyLevel","children","preventIconsOffset","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","highlighted","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","length","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","componentWillUnmount","componentDidMount","componentDidUpdate","render","flags","renderMain","move","enter","navigate","reset","hasHighlightedItem","highlightItem","highlightByIndex","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","step","cyclicSelection","activeElements","filter","isActiveElement","indexOf","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push","alignRight","isIE11","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids, 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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\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 /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n private menuItemsAtAnyLevel?: boolean;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.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 if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.reset();\n } else {\n this.setState({ highlightedIndex: -1 });\n }\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n if (this.menuItemsAtAnyLevel) {\n return !!this.menuNavigation.highlightedItem;\n }\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightByIndex(index);\n } else {\n this.highlight(index);\n }\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.getChildList()}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private getChildList = () => {\n if (this.menuItemsAtAnyLevel) {\n return this.props.children;\n }\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\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 setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.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 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 const highlightedItem = this.menuItemsAtAnyLevel ? this.menuNavigation.highlightedItem : this.highlighted;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\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 scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\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) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.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(event);\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 if (this.menuItemsAtAnyLevel) {\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n } else {\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\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\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 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\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.select(event);\n } else if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\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 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"]}
1
+ {"version":3,"sources":["Menu.tsx"],"names":["MenuDataTids","root","Menu","responsiveLayout","rootNode","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","React","createRef","menuNavigation","MenuNavigation","MenuItemDataTids","content","focusOnRootElement","globalObject","HTMLElement","focus","renderHeader","styles","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","ThemeFactory","create","menuSeparatorMarginY","getChildList","menuItemsAtAnyLevel","children","preventIconsOffset","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","highlighted","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","length","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","componentWillUnmount","componentDidMount","componentDidUpdate","render","flags","renderMain","move","enter","navigate","reset","hasHighlightedItem","highlightItem","highlightByIndex","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","step","cyclicSelection","activeElements","filter","isActiveElement","indexOf","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push","alignRight","isIE11","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids, 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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\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 /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n private menuItemsAtAnyLevel?: boolean;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.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 if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.reset();\n } else {\n this.setState({ highlightedIndex: -1 });\n }\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n if (this.menuItemsAtAnyLevel) {\n return !!this.menuNavigation.highlightedItem;\n }\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightByIndex(index);\n } else {\n this.highlight(index);\n }\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.getChildList()}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private getChildList = () => {\n if (this.menuItemsAtAnyLevel) {\n return this.props.children;\n }\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\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 setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.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 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 const highlightedItem = this.menuItemsAtAnyLevel ? this.menuNavigation.highlightedItem : this.highlighted;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\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 scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\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) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.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(event);\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 if (this.menuItemsAtAnyLevel) {\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n } else {\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\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\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 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\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.select(event);\n } else if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\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 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"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
2
2
 
3
3
 
4
4
  var styles = (0, _Emotion.memoizeStyle)({
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.styles.ts"],"names":["styles","root","t","css","menuBgDefault","menuBorderRadius","menuBoxSizing","menuPaddingY","menuPaddingX","menuOffsetY","mobileRoot","mobileMenuPaddingX","alignRight","alignRightIE11","alignRightIE11FixAutoWidth","scrollContainer","menuScrollContainerContentWrapperPaddingY","scrollContainerMobile","mobileMenuScrollContainerContentWrapperPaddingY","shadow","menuBorder","menuShadow","wrapper","headerWrapper","footerWrapper","contentWrapper","menuSeparatorWrapper","menuSeparatorBorderWidth"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,eAAOC,YAAP;AACgBD,IAAAA,CAAC,CAACE,aADlB;AAEmBF,IAAAA,CAAC,CAACG,gBAFrB;AAGgBH,IAAAA,CAAC,CAACI,aAHlB;;AAKaJ,IAAAA,CAAC,CAACK,YALf,EAK+BL,CAAC,CAACM,YALjC;AAMYN,IAAAA,CAAC,CAACO,WANd;;AAQD,GAVgC;;AAYjCC,EAAAA,UAZiC,sBAYtBR,CAZsB,EAYZ;AACnB,eAAOC,YAAP;;;AAGeD,IAAAA,CAAC,CAACS,kBAHjB;;AAKD,GAlBgC;;AAoBjCC,EAAAA,UApBiC,wBAoBpB;AACX,eAAOT,YAAP;;;AAGD,GAxBgC;;AA0BjCU,EAAAA,cA1BiC,4BA0BhB;AACf,eAAOV,YAAP;;;;AAID,GA/BgC;;AAiCjCW,EAAAA,0BAjCiC,wCAiCJ;AAC3B,eAAOX,YAAP;;;;AAID,GAtCgC;;AAwCjCY,EAAAA,eAxCiC,2BAwCjBb,CAxCiB,EAwCP;AACxB,eAAOC,YAAP;AACaD,IAAAA,CAAC,CAACc,yCADf;;AAGD,GA5CgC;;AA8CjCC,EAAAA,qBA9CiC,iCA8CXf,CA9CW,EA8CD;AAC9B,eAAOC,YAAP;AACaD,IAAAA,CAAC,CAACgB,+CADf;;AAGD,GAlDgC;;AAoDjCC,EAAAA,MApDiC,kBAoD1BjB,CApD0B,EAoDhB;AACf,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACkB,UADd;AAEgBlB,IAAAA,CAAC,CAACmB,UAFlB;;AAID,GAzDgC;;AA2DjCC,EAAAA,OA3DiC,qBA2DvB;AACR,eAAOnB,YAAP;;;;;;;;AAQD,GApEgC;;AAsEjCoB,EAAAA,aAtEiC,2BAsEjB;AACd,eAAOpB,YAAP;;;AAGD,GA1EgC;;AA4EjCqB,EAAAA,aA5EiC,2BA4EjB;AACd,eAAOrB,YAAP;;;AAGD,GAhFgC;;AAkFjCsB,EAAAA,cAlFiC,4BAkFhB;AACf,eAAOtB,YAAP;;;AAGD,GAtFgC;;AAwFjCuB,EAAAA,oBAxFiC,gCAwFZxB,CAxFY,EAwFF;AAC7B,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACyB,wBADd;;AAGD,GA5FgC,EAAb,CAAf,C","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: ${t.menuBoxSizing};\n outline: none;\n padding: ${t.menuPaddingY} ${t.menuPaddingX};\n margin: ${t.menuOffsetY} 0;\n `;\n },\n\n mobileRoot(t: Theme) {\n return css`\n border-radius: 0;\n margin: 0;\n padding: 0 ${t.mobileMenuPaddingX};\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.menuScrollContainerContentWrapperPaddingY} 0;\n `;\n },\n\n scrollContainerMobile(t: Theme) {\n return css`\n padding: ${t.mobileMenuScrollContainerContentWrapperPaddingY} 0;\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n wrapper() {\n return css`\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n `;\n },\n\n headerWrapper() {\n return css`\n top: -5px;\n `;\n },\n\n footerWrapper() {\n return css`\n bottom: -5px;\n `;\n },\n\n contentWrapper() {\n return css`\n padding: 6px 18px 7px 8px;\n `;\n },\n\n menuSeparatorWrapper(t: Theme) {\n return css`\n height: ${t.menuSeparatorBorderWidth};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Menu.styles.ts"],"names":["styles","root","t","css","menuBgDefault","menuBorderRadius","menuBoxSizing","menuPaddingY","menuPaddingX","menuOffsetY","mobileRoot","mobileMenuPaddingX","alignRight","alignRightIE11","alignRightIE11FixAutoWidth","scrollContainer","menuScrollContainerContentWrapperPaddingY","scrollContainerMobile","mobileMenuScrollContainerContentWrapperPaddingY","shadow","menuBorder","menuShadow","wrapper","headerWrapper","footerWrapper","contentWrapper","menuSeparatorWrapper","menuSeparatorBorderWidth"],"mappings":"oRAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,eAAOC,YAAP;AACgBD,IAAAA,CAAC,CAACE,aADlB;AAEmBF,IAAAA,CAAC,CAACG,gBAFrB;AAGgBH,IAAAA,CAAC,CAACI,aAHlB;;AAKaJ,IAAAA,CAAC,CAACK,YALf,EAK+BL,CAAC,CAACM,YALjC;AAMYN,IAAAA,CAAC,CAACO,WANd;;AAQD,GAVgC;;AAYjCC,EAAAA,UAZiC,sBAYtBR,CAZsB,EAYZ;AACnB,eAAOC,YAAP;;;AAGeD,IAAAA,CAAC,CAACS,kBAHjB;;AAKD,GAlBgC;;AAoBjCC,EAAAA,UApBiC,wBAoBpB;AACX,eAAOT,YAAP;;;AAGD,GAxBgC;;AA0BjCU,EAAAA,cA1BiC,4BA0BhB;AACf,eAAOV,YAAP;;;;AAID,GA/BgC;;AAiCjCW,EAAAA,0BAjCiC,wCAiCJ;AAC3B,eAAOX,YAAP;;;;AAID,GAtCgC;;AAwCjCY,EAAAA,eAxCiC,2BAwCjBb,CAxCiB,EAwCP;AACxB,eAAOC,YAAP;AACaD,IAAAA,CAAC,CAACc,yCADf;;AAGD,GA5CgC;;AA8CjCC,EAAAA,qBA9CiC,iCA8CXf,CA9CW,EA8CD;AAC9B,eAAOC,YAAP;AACaD,IAAAA,CAAC,CAACgB,+CADf;;AAGD,GAlDgC;;AAoDjCC,EAAAA,MApDiC,kBAoD1BjB,CApD0B,EAoDhB;AACf,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACkB,UADd;AAEgBlB,IAAAA,CAAC,CAACmB,UAFlB;;AAID,GAzDgC;;AA2DjCC,EAAAA,OA3DiC,qBA2DvB;AACR,eAAOnB,YAAP;;;;;;;;AAQD,GApEgC;;AAsEjCoB,EAAAA,aAtEiC,2BAsEjB;AACd,eAAOpB,YAAP;;;AAGD,GA1EgC;;AA4EjCqB,EAAAA,aA5EiC,2BA4EjB;AACd,eAAOrB,YAAP;;;AAGD,GAhFgC;;AAkFjCsB,EAAAA,cAlFiC,4BAkFhB;AACf,eAAOtB,YAAP;;;AAGD,GAtFgC;;AAwFjCuB,EAAAA,oBAxFiC,gCAwFZxB,CAxFY,EAwFF;AAC7B,eAAOC,YAAP;AACYD,IAAAA,CAAC,CAACyB,wBADd;;AAGD,GA5FgC,EAAb,CAAf,C","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: ${t.menuBoxSizing};\n outline: none;\n padding: ${t.menuPaddingY} ${t.menuPaddingX};\n margin: ${t.menuOffsetY} 0;\n `;\n },\n\n mobileRoot(t: Theme) {\n return css`\n border-radius: 0;\n margin: 0;\n padding: 0 ${t.mobileMenuPaddingX};\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.menuScrollContainerContentWrapperPaddingY} 0;\n `;\n },\n\n scrollContainerMobile(t: Theme) {\n return css`\n padding: ${t.mobileMenuScrollContainerContentWrapperPaddingY} 0;\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n wrapper() {\n return css`\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n `;\n },\n\n headerWrapper() {\n return css`\n top: -5px;\n `;\n },\n\n footerWrapper() {\n return css`\n bottom: -5px;\n `;\n },\n\n contentWrapper() {\n return css`\n padding: 6px 18px 7px 8px;\n `;\n },\n\n menuSeparatorWrapper(t: Theme) {\n return css`\n height: ${t.menuSeparatorBorderWidth};\n `;\n },\n});\n"]}
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MenuContext = void 0;var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.MenuContext = void 0;var _react = _interopRequireDefault(require("react"));
2
2
 
3
3
 
4
4
 
@@ -1 +1 @@
1
- {"version":3,"sources":["MenuContext.ts"],"names":["MenuContext","React","createContext","navigation","enableIconPadding"],"mappings":"yJAAA;;;;;;;;;;;;;AAaO,IAAMA,WAAW,gBAAGC,eAAMC,aAAN,CAAqC;AAC9DC,EAAAA,UAAU,EAAE,IADkD;AAE9DC,EAAAA,iBAAiB,EAAE,KAF2C,EAArC,CAApB,C","sourcesContent":["import React from 'react';\n\nimport { MenuItem } from '../../components/MenuItem';\n\nimport { MenuNavigation } from './MenuNavigation';\n\nexport interface MenuContextType {\n navigation: MenuNavigation<MenuItem> | null;\n enableIconPadding: boolean;\n setEnableIconPadding?: (isIconPaddingEnabled: boolean) => void;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n navigation: null,\n enableIconPadding: false,\n});\n"]}
1
+ {"version":3,"sources":["MenuContext.ts"],"names":["MenuContext","React","createContext","navigation","enableIconPadding"],"mappings":"iKAAA;;;;;;;;;;;;;AAaO,IAAMA,WAAW,gBAAGC,eAAMC,aAAN,CAAqC;AAC9DC,EAAAA,UAAU,EAAE,IADkD;AAE9DC,EAAAA,iBAAiB,EAAE,KAF2C,EAArC,CAApB,C","sourcesContent":["import React from 'react';\n\nimport { MenuItem } from '../../components/MenuItem';\n\nimport { MenuNavigation } from './MenuNavigation';\n\nexport interface MenuContextType {\n navigation: MenuNavigation<MenuItem> | null;\n enableIconPadding: boolean;\n setEnableIconPadding?: (isIconPaddingEnabled: boolean) => void;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n navigation: null,\n enableIconPadding: false,\n});\n"]}