@skbkontur/react-ui 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +7 -7
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
  4. package/cjs/components/Autocomplete/Autocomplete.js +49 -46
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +2 -0
  7. package/cjs/components/Button/Button.js +29 -1
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +6 -0
  10. package/cjs/components/Button/Button.styles.js +107 -75
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Calendar/Calendar.d.ts +2 -0
  13. package/cjs/components/Calendar/Calendar.js +1 -0
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Center/Center.d.ts +2 -0
  16. package/cjs/components/Center/Center.js +1 -0
  17. package/cjs/components/Center/Center.js.map +1 -1
  18. package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
  19. package/cjs/components/Checkbox/Checkbox.js +2 -14
  20. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  22. package/cjs/components/ComboBox/ComboBox.js +1 -0
  23. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  25. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
  26. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  27. package/cjs/components/CurrencyInput/constants.js +1 -2
  28. package/cjs/components/CurrencyInput/constants.js.map +1 -1
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.d.ts +2 -0
  32. package/cjs/components/DateInput/DateInput.js +1 -0
  33. package/cjs/components/DateInput/DateInput.js.map +1 -1
  34. package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
  35. package/cjs/components/DatePicker/DatePicker.js +6 -60
  36. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
  38. package/cjs/components/Dropdown/Dropdown.js +2 -82
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FxInput/FxInput.d.ts +2 -5
  44. package/cjs/components/FxInput/FxInput.js +2 -7
  45. package/cjs/components/FxInput/FxInput.js.map +1 -1
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -15
  47. package/cjs/components/Gapped/Gapped.js +1 -24
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  50. package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
  51. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  52. package/cjs/components/Group/Group.d.ts +5 -4
  53. package/cjs/components/Group/Group.js +91 -40
  54. package/cjs/components/Group/Group.js.map +1 -1
  55. package/cjs/components/Group/Group.styles.d.ts +1 -0
  56. package/cjs/components/Group/Group.styles.js +12 -6
  57. package/cjs/components/Group/Group.styles.js.map +1 -1
  58. package/cjs/components/Hint/Hint.d.ts +2 -0
  59. package/cjs/components/Hint/Hint.js +1 -0
  60. package/cjs/components/Hint/Hint.js.map +1 -1
  61. package/cjs/components/Input/Input.d.ts +2 -0
  62. package/cjs/components/Input/Input.js +1 -0
  63. package/cjs/components/Input/Input.js.map +1 -1
  64. package/cjs/components/Kebab/Kebab.d.ts +2 -1
  65. package/cjs/components/Kebab/Kebab.js +2 -26
  66. package/cjs/components/Kebab/Kebab.js.map +1 -1
  67. package/cjs/components/Link/Link.d.ts +2 -0
  68. package/cjs/components/Link/Link.js +1 -0
  69. package/cjs/components/Link/Link.js.map +1 -1
  70. package/cjs/components/Loader/Loader.d.ts +6 -36
  71. package/cjs/components/Loader/Loader.js +3 -57
  72. package/cjs/components/Loader/Loader.js.map +1 -1
  73. package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
  74. package/cjs/components/MaskedInput/MaskedInput.js +17 -1
  75. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  76. package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
  77. package/cjs/components/MenuItem/MenuItem.js +2 -22
  78. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  79. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  80. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  81. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  82. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  83. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  84. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  85. package/cjs/components/Modal/Modal.styles.js +36 -28
  86. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  87. package/cjs/components/Modal/ModalBody.d.ts +2 -0
  88. package/cjs/components/Modal/ModalBody.js +1 -0
  89. package/cjs/components/Modal/ModalBody.js.map +1 -1
  90. package/cjs/components/Modal/ModalHeader.d.ts +5 -0
  91. package/cjs/components/Modal/ModalHeader.js +8 -1
  92. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  93. package/cjs/components/Paging/DotsIcon.d.ts +3 -0
  94. package/cjs/components/Paging/DotsIcon.js +13 -0
  95. package/cjs/components/Paging/DotsIcon.js.map +1 -0
  96. package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
  97. package/cjs/components/Paging/ForwardIcon.js +13 -1
  98. package/cjs/components/Paging/ForwardIcon.js.map +1 -1
  99. package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
  100. package/cjs/components/Paging/NavigationHelper.js +8 -6
  101. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  102. package/cjs/components/Paging/Paging.d.ts +13 -2
  103. package/cjs/components/Paging/Paging.js +120 -50
  104. package/cjs/components/Paging/Paging.js.map +1 -1
  105. package/cjs/components/Paging/Paging.styles.d.ts +24 -1
  106. package/cjs/components/Paging/Paging.styles.js +151 -22
  107. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  108. package/cjs/components/Paging/PagingHelper.d.ts +1 -1
  109. package/cjs/components/Paging/PagingHelper.js +18 -11
  110. package/cjs/components/Paging/PagingHelper.js.map +1 -1
  111. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
  112. package/cjs/components/PasswordInput/PasswordInput.js +2 -11
  113. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  114. package/cjs/components/Radio/Radio.d.ts +2 -0
  115. package/cjs/components/Radio/Radio.js +1 -0
  116. package/cjs/components/Radio/Radio.js.map +1 -1
  117. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
  118. package/cjs/components/RadioGroup/RadioGroup.js +1 -0
  119. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  120. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  121. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
  122. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  123. package/cjs/components/Select/Select.d.ts +2 -0
  124. package/cjs/components/Select/Select.js +1 -0
  125. package/cjs/components/Select/Select.js.map +1 -1
  126. package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
  127. package/cjs/components/SidePage/SidePage.styles.js +52 -38
  128. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  129. package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
  130. package/cjs/components/SidePage/SidePageBody.js +1 -0
  131. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  132. package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
  133. package/cjs/components/SidePage/SidePageContainer.js +1 -0
  134. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
  136. package/cjs/components/SidePage/SidePageFooter.js +1 -0
  137. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  138. package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
  139. package/cjs/components/SidePage/SidePageHeader.js +60 -19
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.d.ts +2 -18
  142. package/cjs/components/Spinner/Spinner.js +2 -32
  143. package/cjs/components/Spinner/Spinner.js.map +1 -1
  144. package/cjs/components/Sticky/Sticky.d.ts +2 -13
  145. package/cjs/components/Sticky/Sticky.js +2 -22
  146. package/cjs/components/Sticky/Sticky.js.map +1 -1
  147. package/cjs/components/Switcher/Switcher.d.ts +6 -21
  148. package/cjs/components/Switcher/Switcher.js +11 -20
  149. package/cjs/components/Switcher/Switcher.js.map +1 -1
  150. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  151. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  152. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  153. package/cjs/components/Tabs/Indicator.d.ts +2 -0
  154. package/cjs/components/Tabs/Indicator.js +1 -0
  155. package/cjs/components/Tabs/Indicator.js.map +1 -1
  156. package/cjs/components/Tabs/Tab.d.ts +2 -0
  157. package/cjs/components/Tabs/Tab.js +1 -0
  158. package/cjs/components/Tabs/Tab.js.map +1 -1
  159. package/cjs/components/Tabs/Tabs.d.ts +2 -0
  160. package/cjs/components/Tabs/Tabs.js +1 -0
  161. package/cjs/components/Tabs/Tabs.js.map +1 -1
  162. package/cjs/components/Textarea/Textarea.d.ts +2 -44
  163. package/cjs/components/Textarea/Textarea.js +2 -56
  164. package/cjs/components/Textarea/Textarea.js.map +1 -1
  165. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  166. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +2 -0
  168. package/cjs/components/Toast/Toast.js +1 -0
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toast/ToastView.d.ts +2 -14
  171. package/cjs/components/Toast/ToastView.js +3 -22
  172. package/cjs/components/Toast/ToastView.js.map +1 -1
  173. package/cjs/components/Toggle/Toggle.d.ts +2 -10
  174. package/cjs/components/Toggle/Toggle.js +1 -11
  175. package/cjs/components/Toggle/Toggle.js.map +1 -1
  176. package/cjs/components/Token/Token.d.ts +2 -0
  177. package/cjs/components/Token/Token.js +1 -0
  178. package/cjs/components/Token/Token.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  180. package/cjs/components/TokenInput/TokenInput.js +1 -0
  181. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
  183. package/cjs/components/Tooltip/Tooltip.js +95 -13
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
  186. package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
  187. package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
  188. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  189. package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
  190. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  191. package/cjs/index.d.ts +1 -0
  192. package/cjs/index.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  194. package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
  195. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  196. package/cjs/internal/ComponentTable.js +2 -3
  197. package/cjs/internal/ComponentTable.js.map +1 -1
  198. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  199. package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
  200. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  201. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  202. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
  203. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  204. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  205. package/cjs/internal/DateSelect/DateSelect.js +1 -18
  206. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  207. package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
  208. package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
  209. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  210. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
  211. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  212. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
  213. package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
  214. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  215. package/cjs/internal/Menu/Menu.d.ts +2 -0
  216. package/cjs/internal/Menu/Menu.js +1 -0
  217. package/cjs/internal/Menu/Menu.js.map +1 -1
  218. package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
  219. package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  221. package/cjs/internal/Popup/Popup.d.ts +41 -59
  222. package/cjs/internal/Popup/Popup.js +36 -79
  223. package/cjs/internal/Popup/Popup.js.map +1 -1
  224. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  225. package/cjs/internal/Popup/PopupPin.js +2 -35
  226. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  227. package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
  228. package/cjs/internal/Popup/PopupPinNew.js +180 -0
  229. package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
  230. package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  231. package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
  232. package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
  233. package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
  234. package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
  235. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  236. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  237. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  238. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  239. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
  240. package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
  241. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  243. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  244. package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
  245. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  246. package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
  247. package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  249. package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
  250. package/cjs/internal/ZIndex/ZIndex.js +5 -1
  251. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  252. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  253. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
  254. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
  255. package/cjs/internal/themes/BasicTheme.d.ts +112 -20
  256. package/cjs/internal/themes/BasicTheme.js +149 -18
  257. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  258. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  259. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  260. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  261. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  262. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  263. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  264. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  265. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  266. package/cjs/lib/delay.mts +3 -0
  267. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  268. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  269. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  270. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  271. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  272. package/cjs/lib/forwardRefAndName.js +0 -1
  273. package/cjs/lib/forwardRefAndName.js.map +1 -1
  274. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  275. package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
  276. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  277. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  278. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  279. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  280. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  281. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  282. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  283. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  284. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  285. package/cjs/lib/utils.d.ts +4 -0
  286. package/cjs/lib/utils.js +5 -1
  287. package/cjs/lib/utils.js.map +1 -1
  288. package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
  289. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  290. package/components/Autocomplete/Autocomplete.d.ts +6 -23
  291. package/components/Button/Button/Button.js +26 -5
  292. package/components/Button/Button/Button.js.map +1 -1
  293. package/components/Button/Button.d.ts +2 -0
  294. package/components/Button/Button.styles/Button.styles.js +78 -60
  295. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  296. package/components/Button/Button.styles.d.ts +6 -0
  297. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  298. package/components/Calendar/Calendar.d.ts +2 -0
  299. package/components/Center/Center/Center.js.map +1 -1
  300. package/components/Center/Center.d.ts +2 -0
  301. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  302. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  303. package/components/Checkbox/Checkbox.d.ts +2 -12
  304. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  305. package/components/ComboBox/ComboBox.d.ts +2 -0
  306. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
  307. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  308. package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  309. package/components/CurrencyInput/constants/constants.js +0 -1
  310. package/components/CurrencyInput/constants/constants.js.map +1 -1
  311. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  312. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  313. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  314. package/components/DateInput/DateInput.d.ts +2 -0
  315. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  316. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  317. package/components/DatePicker/DatePicker.d.ts +6 -33
  318. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  319. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  320. package/components/Dropdown/Dropdown.d.ts +2 -47
  321. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  322. package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  323. package/components/FxInput/FxInput/FxInput.js +1 -5
  324. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  325. package/components/FxInput/FxInput.d.ts +2 -5
  326. package/components/Gapped/Gapped/Gapped.js +1 -15
  327. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  328. package/components/Gapped/Gapped.d.ts +2 -15
  329. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  330. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  331. package/components/Group/Group/Group.js +64 -28
  332. package/components/Group/Group/Group.js.map +1 -1
  333. package/components/Group/Group.d.ts +5 -4
  334. package/components/Group/Group.styles/Group.styles.js +9 -6
  335. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  336. package/components/Group/Group.styles.d.ts +1 -0
  337. package/components/Hint/Hint/Hint.js.map +1 -1
  338. package/components/Hint/Hint.d.ts +2 -0
  339. package/components/Input/Input/Input.js.map +1 -1
  340. package/components/Input/Input.d.ts +2 -0
  341. package/components/Kebab/Kebab/Kebab.js +2 -20
  342. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  343. package/components/Kebab/Kebab.d.ts +2 -1
  344. package/components/Link/Link/Link.js.map +1 -1
  345. package/components/Link/Link.d.ts +2 -0
  346. package/components/Loader/Loader/Loader.js +0 -33
  347. package/components/Loader/Loader/Loader.js.map +1 -1
  348. package/components/Loader/Loader.d.ts +6 -36
  349. package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
  350. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  351. package/components/MaskedInput/MaskedInput.d.ts +1 -0
  352. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  353. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  354. package/components/MenuItem/MenuItem.d.ts +2 -12
  355. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  356. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  357. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  358. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  359. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  360. package/components/Modal/Modal.styles/Modal.styles.js +31 -28
  361. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  362. package/components/Modal/Modal.styles.d.ts +1 -0
  363. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  364. package/components/Modal/ModalBody.d.ts +2 -0
  365. package/components/Modal/ModalHeader/ModalHeader.js +3 -1
  366. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  367. package/components/Modal/ModalHeader.d.ts +5 -0
  368. package/components/Paging/DotsIcon/DotsIcon.js +14 -0
  369. package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
  370. package/components/Paging/DotsIcon/package.json +6 -0
  371. package/components/Paging/DotsIcon.d.ts +3 -0
  372. package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
  373. package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
  374. package/components/Paging/ForwardIcon.d.ts +3 -0
  375. package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
  376. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  377. package/components/Paging/NavigationHelper.d.ts +3 -2
  378. package/components/Paging/Paging/Paging.js +96 -47
  379. package/components/Paging/Paging/Paging.js.map +1 -1
  380. package/components/Paging/Paging.d.ts +13 -2
  381. package/components/Paging/Paging.styles/Paging.styles.js +77 -16
  382. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  383. package/components/Paging/Paging.styles.d.ts +24 -1
  384. package/components/Paging/PagingHelper/PagingHelper.js +16 -8
  385. package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
  386. package/components/Paging/PagingHelper.d.ts +1 -1
  387. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  388. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  389. package/components/PasswordInput/PasswordInput.d.ts +2 -7
  390. package/components/Radio/Radio/Radio.js.map +1 -1
  391. package/components/Radio/Radio.d.ts +2 -0
  392. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  393. package/components/RadioGroup/RadioGroup.d.ts +2 -0
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  397. package/components/Select/Select/Select.js.map +1 -1
  398. package/components/Select/Select.d.ts +2 -0
  399. package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
  400. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  401. package/components/SidePage/SidePage.styles.d.ts +3 -1
  402. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  403. package/components/SidePage/SidePageBody.d.ts +2 -0
  404. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  405. package/components/SidePage/SidePageContainer.d.ts +2 -0
  406. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  407. package/components/SidePage/SidePageFooter.d.ts +2 -0
  408. package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
  409. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  410. package/components/SidePage/SidePageHeader.d.ts +12 -2
  411. package/components/Spinner/Spinner/Spinner.js +1 -18
  412. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  413. package/components/Spinner/Spinner.d.ts +2 -18
  414. package/components/Sticky/Sticky/Sticky.js +1 -13
  415. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  416. package/components/Sticky/Sticky.d.ts +2 -13
  417. package/components/Switcher/Switcher/Switcher.js +19 -16
  418. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  419. package/components/Switcher/Switcher.d.ts +6 -21
  420. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  421. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  422. package/components/Switcher/Switcher.styles.d.ts +1 -0
  423. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  424. package/components/Tabs/Indicator.d.ts +2 -0
  425. package/components/Tabs/Tab/Tab.js.map +1 -1
  426. package/components/Tabs/Tab.d.ts +2 -0
  427. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  428. package/components/Tabs/Tabs.d.ts +2 -0
  429. package/components/Textarea/Textarea/Textarea.js +1 -44
  430. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  431. package/components/Textarea/Textarea.d.ts +2 -44
  432. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  433. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  434. package/components/Toast/Toast/Toast.js.map +1 -1
  435. package/components/Toast/Toast.d.ts +2 -0
  436. package/components/Toast/ToastView/ToastView.js +3 -17
  437. package/components/Toast/ToastView/ToastView.js.map +1 -1
  438. package/components/Toast/ToastView.d.ts +2 -14
  439. package/components/Toggle/Toggle/Toggle.js +1 -10
  440. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  441. package/components/Toggle/Toggle.d.ts +2 -10
  442. package/components/Token/Token/Token.js.map +1 -1
  443. package/components/Token/Token.d.ts +2 -0
  444. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  445. package/components/TokenInput/TokenInput.d.ts +2 -0
  446. package/components/Tooltip/Tooltip/Tooltip.js +67 -20
  447. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  448. package/components/Tooltip/Tooltip.d.ts +14 -9
  449. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
  450. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
  451. package/components/Tooltip/Tooltip.styles.d.ts +7 -1
  452. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  453. package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  454. package/index.d.ts +1 -0
  455. package/index.js +1 -0
  456. package/index.js.map +1 -1
  457. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  458. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  459. package/internal/ComponentTable/ComponentTable.js +0 -2
  460. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  461. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  462. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  463. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  464. package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  465. package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
  466. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  467. package/internal/DateSelect/DateSelect.d.ts +0 -10
  468. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  469. package/internal/FocusTrap/FocusTrap.d.ts +2 -0
  470. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  471. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  472. package/internal/InputLikeText/InputLikeText.d.ts +2 -0
  473. package/internal/Menu/Menu/Menu.js.map +1 -1
  474. package/internal/Menu/Menu.d.ts +2 -0
  475. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  476. package/internal/MobilePopup/MobilePopup.d.ts +2 -0
  477. package/internal/Popup/Popup/Popup.js +14 -64
  478. package/internal/Popup/Popup/Popup.js.map +1 -1
  479. package/internal/Popup/Popup.d.ts +41 -59
  480. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  481. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  482. package/internal/Popup/PopupPin.d.ts +23 -33
  483. package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
  484. package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
  485. package/internal/Popup/PopupPinNew/package.json +6 -0
  486. package/internal/Popup/PopupPinNew.d.ts +31 -0
  487. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
  488. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
  489. package/internal/Popup/PopupPinNew.styles/package.json +6 -0
  490. package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  491. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  492. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  493. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  494. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  495. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  496. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  497. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  498. package/internal/RenderLayer/RenderLayer.d.ts +2 -3
  499. package/internal/ThemePlayground/Playground/Playground.js +4 -3
  500. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  501. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
  502. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  503. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
  504. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
  505. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  506. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  507. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  508. package/internal/ZIndex/ZIndex.d.ts +3 -3
  509. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
  510. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
  511. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
  512. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  513. package/internal/themes/BasicTheme/BasicTheme.js +170 -26
  514. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  515. package/internal/themes/BasicTheme.d.ts +112 -20
  516. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  517. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  518. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  519. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  520. package/internal/themes/DarkTheme5_3/package.json +6 -0
  521. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  522. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  523. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  524. package/internal/themes/LightTheme5_3/package.json +6 -0
  525. package/internal/themes/LightTheme5_3.d.ts +1 -0
  526. package/lib/delay.d.mts +1 -0
  527. package/lib/delay.mts +3 -0
  528. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  529. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  530. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  531. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  532. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  533. package/lib/forwardRefAndName.d.ts +1 -1
  534. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  535. package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  536. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  537. package/lib/theming/ThemeVersions.d.ts +1 -1
  538. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  539. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  540. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  541. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  542. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  543. package/lib/theming/themes/LightTheme.d.ts +1 -0
  544. package/lib/utils/utils.js +2 -0
  545. package/lib/utils/utils.js.map +1 -1
  546. package/lib/utils.d.ts +4 -0
  547. package/package.json +10 -13
  548. package/cjs/lib/SSRSafe.d.ts +0 -2
  549. package/cjs/lib/SSRSafe.js +0 -5
  550. package/cjs/lib/SSRSafe.js.map +0 -1
  551. package/lib/SSRSafe/SSRSafe.js +0 -4
  552. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  553. package/lib/SSRSafe/package.json +0 -6
  554. package/lib/SSRSafe.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["invariant","React","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","blinking","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","cancelBlink","callback","blinkTimeout","clearTimeout","setState","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","_this$state","labelProps","className","theme","getSizeClassName","focus","hovering","blink","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","_this2","offsetWidth","setTimeout","start","end","_globalObject$documen","_this$props$value","_this3","Error","document","activeElement","_this3$input","_this$input2","render","_this4","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Задает выравнивание контента. */\n align?: InputAlign;\n\n /** Задает паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задает словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при изменении значения в инпуте. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает тип инпута. */\n type?: InputType;\n\n /** Задает значение. */\n value?: string;\n\n ///** */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n\n /** Задает функцию для обработки ввода.\n * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.\n * Если `onUnexpectedInput` передан - вызывается переданный обработчик b вспыхивание можно вызвать публичным методом инстанса `blink()`.\n * @param {string} value - значение инпута. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size' | 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.\n *\n * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.\n *\n * Если вводимое значение имеет определенный формат, используйте специальную версию поля:\n * * Поле с паролем PasswordInput.\n * * Поле с валютой CurrencyInput.\n * * Поле с маской MaskedInput.\n * * Автополе FxInput.\n *\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n type: 'text',\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout: SafeTimer;\n public input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"2vBAAA;AACA,OAAOA,SAAS,MAAM,WAAW;;AAEjC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,OAAO,MAAM,SAAS;;AAE7B,SAASC,YAAY,QAAQ,0BAA0B;;AAEvD,SAASC,MAAM,EAAEC,MAAM,QAAQ,kBAAkB;AACjD,SAASC,cAAc,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,uCAAuC;AAC7F,SAASC,wBAAwB,QAAQ,oCAAoC;;AAE7E,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,YAAY,QAAQ,gCAAgC;;;AAG7D,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,WAAW,EAAEC,QAAQ,QAAQ,oBAAoB;AAC1D,SAASC,iBAAiB,QAAQ,6BAA6B;;AAE/D,SAASC,mBAAmB,QAAQ,oCAAoC;AACxE,SAASC,cAAc,QAAQ,8CAA8C;AAC7E,SAASC,uBAAuB,QAAQ,sBAAsB;;;AAG9D,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,mBAAmB,QAAQ,mCAAmC;;AAEvE,OAAO,IAAMC,UAAU,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAU;;;;;;;AAOlH,OAAO,IAAMC,qBAAkC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;AAC9F,OAAO,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,IAAe,EAAEC,YAAyB,EAA6B,KAAtDA,YAAyB,cAAzBA,YAAyB,GAAGH,qBAAqB;EACtG,gEAA6DE,IAAI,0CAAoCC,YAAY;EAC9GC,GAAG,CAAC,UAACC,CAAC,iBAASA,CAAC,SAAG,CAAC;EACpBC,IAAI,CAAC,IAAI,CAAC;AACf,CAAC;;AAED,OAAO,IAAMC,kBAA+B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;AACzE,OAAO,IAAMC,gBAA6B,GAAGT,UAAU,CAACU,MAAM,CAAC,UAACP,IAAI,EAAK;EACvE,OAAO,CAACK,kBAAkB,CAACG,QAAQ,CAACR,IAAI,CAAC;AAC3C,CAAC,CAAC;AACF,OAAO,IAAMS,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIT,IAAe,EAAEC,YAAyB,EAAwB,KAAjDA,YAAyB,cAAzBA,YAAyB,GAAGK,gBAAgB;EAC5F,6DAAwDN,IAAI,6BAAuBC,YAAY;EAC5FC,GAAG,CAAC,UAACC,CAAC,iBAASA,CAAC,SAAG,CAAC;EACpBC,IAAI,CAAC,IAAI,CAAC;AACf,CAAC;AACD,OAAO,IAAMM,8BAA8B,GAAG,SAAjCA,8BAA8BA,CAAAC,IAAA;;;;;;;;;;AAU5B,KATbC,aAAa,GAAAD,IAAA,CAAbC,aAAa,CACbC,aAAa,GAAAF,IAAA,CAAbE,aAAa,CACbC,OAAO,GAAAH,IAAA,CAAPG,OAAO,CACPC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;EAOP,QAAQH,aAAa;IACnB,KAAK,QAAQ;MACX,OAAOC,aAAa;IACtB,KAAK,MAAM;MACT,OAAOG,OAAO,CAAC,CAACF,OAAO,IAAIC,OAAO,KAAKF,aAAa,CAAC;IACvD,KAAK,OAAO;MACV,OAAO,KAAK;IACd;MACE,OAAOpB,uBAAuB,CAACmB,aAAa,EAAE,KAAK,CAAC;EACxD;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqHD,OAAO,IAAMK,aAAa,GAAG;EAC3BC,IAAI,EAAE,aAAa;EACnBC,UAAU,EAAE;AACd,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaC,KAAK,GADjB/B,QAAQ,CAAAgC,MAAA,IAAAC,MAAA,0BAAAC,gBAAA,YAAAH,MAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;IAWCU,QAAQ,GAAG5C,iBAAiB,CAAC8B,KAAK,CAACe,YAAY,CAAC,CAAAX,KAAA;;IAEhDY,WAAW,GAAkB,IAAI,CAAAZ,KAAA;;;IAGlCa,KAAK,GAA4B,IAAI,CAAAb,KAAA;;;IAGpCc,mBAAmB,GAAG,UAAAC,KAAA;;;;;;;;IAQf,KAAAC,WAAA,KAPb1B,OAAO,GAAAyB,KAAA,CAAPzB,OAAO,CACPC,OAAO,GAAAwB,KAAA,CAAPxB,OAAO,CACP0B,eAAe,GAAAF,KAAA,CAAfE,eAAe;MAMf,IAAIjB,KAAA,CAAKkB,KAAK,CAACC,QAAQ,EAAE;QACvB,OAAO,KAAK;MACd;MACA,OAAOjC,8BAA8B,CAAC;QACpCE,aAAa,EAAEY,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACtB,aAAa;QAC5CC,aAAa,EAAEG,OAAO,CAAC,EAAAwB,WAAA,GAAAhB,KAAA,CAAKa,KAAK,qBAAVG,WAAA,CAAYI,KAAK,KAAIH,eAAe,CAAC;QAC5D3B,OAAO,EAAPA,OAAO;QACPC,OAAO,EAAPA;MACF,CAAC,CAAC;IACJ,CAAC,CAAAS,KAAA;;IAEMqB,KAAK,GAAe;MACzB9D,wBAAwB,EAAxBA,wBAAwB;MACxB+D,QAAQ,EAAE,KAAK;MACfhC,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,KAAK;MACdgC,gBAAgB,EAAEvB,KAAA,CAAKc,mBAAmB,CAAC;QACzCxB,OAAO,EAAE,KAAK;QACd2B,eAAe,EAAEzB,OAAO,CAACQ,KAAA,CAAKkB,KAAK,CAACE,KAAK,IAAIpB,KAAA,CAAKkB,KAAK,CAACM,YAAY;MACtE,CAAC;IACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuHD;AACF;AACA;AACA;AACA,OAJExB,KAAA;IAKOyB,SAAS,GAAG,oBAAYzB,KAAA,CAAK0B,UAAU,CAAC,CAAC,GAAA1B,KAAA;;IAEzC2B,cAAc,GAAG,YAAqB,KAAAC,qBAAA;MAC3C,OAAQ5B,KAAA,CAAKY,WAAW,IAAAgB,qBAAA,GAAG3E,YAAY,CAAC4E,qBAAqB,oBAAlC5E,YAAY,CAAC4E,qBAAqB,CAAG7B,KAAA,CAAK0B,UAAU,CAAC,YAAAE,qBAAA,GAAI,IAAI;IAC1F,CAAC,CAAA5B,KAAA;;IAEO0B,UAAU,GAAG,YAAY;MAC/B,IAAI1B,KAAA,CAAKa,KAAK,EAAE;QACdb,KAAA,CAAK8B,iBAAiB,CAAC,CAAC,EAAE9B,KAAA,CAAKa,KAAK,CAACO,KAAK,CAACjB,MAAM,CAAC;MACpD;IACF,CAAC,CAAAH,KAAA;;IAEO+B,sBAAsB,GAAG,YAAY;MAC3C,IAAI/B,KAAA,CAAKY,WAAW,EAAE;QACpB3D,YAAY,CAAC+E,oBAAoB,YAAjC/E,YAAY,CAAC+E,oBAAoB,CAAGhC,KAAA,CAAKY,WAAW,CAAC;QACrDZ,KAAA,CAAKY,WAAW,GAAG,IAAI;MACzB;IACF,CAAC,CAAAZ,KAAA;;IAEOiC,WAAW,GAAG,UAACC,QAAqB,EAAW;MACrD,IAAIlC,KAAA,CAAKmC,YAAY,EAAE;QACrBlF,YAAY,CAACmF,YAAY,CAACpC,KAAA,CAAKmC,YAAY,CAAC;QAC5CnC,KAAA,CAAKmC,YAAY,GAAG,CAAC;QACrB,IAAInC,KAAA,CAAKqB,KAAK,CAACC,QAAQ,EAAE;UACvBtB,KAAA,CAAKqC,QAAQ,CAAC,EAAEf,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAEY,QAAQ,CAAC;UAC5C;QACF;MACF;MACA,IAAIA,QAAQ,EAAE;QACZA,QAAQ,CAAC,CAAC;MACZ;IACF,CAAC,CAAAlC,KAAA;;IAEOsC,QAAQ,GAAG,UAACC,UAAiE,EAAK;MACxF,IAAIvC,KAAA,CAAKkB,KAAK,CAACsB,OAAO,EAAE;QACtB,oBAAOzF,KAAK,CAAC0F,YAAY,CAACzC,KAAA,CAAKkB,KAAK,CAACsB,OAAO,EAAED,UAAU,CAAC;MAC3D;;MAEA,OAAOvC,KAAA,CAAKkB,KAAK,CAACwB,IAAI,IAAI,CAAC1C,KAAA,CAAK2C,iBAAiB;MAC7C3C,KAAA,CAAK4C,iBAAiB,CAACL,UAAU,EAAEvC,KAAA,CAAKkB,KAAK,CAACwB,IAAI,CAAC;MACnD3F,KAAK,CAAC8F,aAAa,CAAC,OAAO,EAAEN,UAAU,CAAC;IAC9C,CAAC,CAAAvC,KAAA;;IAEO8C,UAAU,GAAG,UAAC5B,KAAyC,EAAK,KAAA6B,GAAA,EAAAC,IAAA;MAClE;QACEC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkCV/B,KAAK,CAlCP+B,YAAY,CACZC,YAAY,GAiCVhC,KAAK,CAjCPgC,YAAY,CACZC,WAAW,GAgCTjC,KAAK,CAhCPiC,WAAW,CACXC,SAAS,GA+BPlC,KAAK,CA/BPkC,SAAS,CACTC,UAAU,GA8BRnC,KAAK,CA9BPmC,UAAU,CACVC,aAAa,GA6BXpC,KAAK,CA7BPoC,aAAa,CACbC,KAAK,GA4BHrC,KAAK,CA5BPqC,KAAK,CACLC,KAAK,GA2BHtC,KAAK,CA3BPsC,KAAK,CACLC,IAAI,GA0BFvC,KAAK,CA1BPuC,IAAI,CACJzG,OAAO,GAyBLkE,KAAK,CAzBPlE,OAAO,CACP0G,QAAQ,GAwBNxC,KAAK,CAxBPwC,QAAQ,CACRC,SAAS,GAuBPzC,KAAK,CAvBPyC,SAAS,CACTC,UAAU,GAsBR1C,KAAK,CAtBP0C,UAAU,CACVxC,KAAK,GAqBHF,KAAK,CArBPE,KAAK,CACLyC,KAAK,GAoBH3C,KAAK,CApBP2C,KAAK,CACLrF,IAAI,GAmBF0C,KAAK,CAnBP1C,IAAI,CACJkE,IAAI,GAkBFxB,KAAK,CAlBPwB,IAAI,CACJoB,QAAQ,GAiBN5C,KAAK,CAjBP4C,QAAQ,CACRC,cAAc,GAgBZ7C,KAAK,CAhBP6C,cAAc,CACdC,IAAI,GAeF9C,KAAK,CAfP8C,IAAI,CACJC,WAAW,GAcT/C,KAAK,CAdP+C,WAAW,CACXC,gBAAgB,GAadhD,KAAK,CAbPgD,gBAAgB,CAChB/C,QAAQ,GAYND,KAAK,CAZPC,QAAQ,CACRgD,iBAAiB,GAWfjD,KAAK,CAXPiD,iBAAiB,CACjBC,MAAM,GAUJlD,KAAK,CAVPkD,MAAM,CACNC,MAAM,GASJnD,KAAK,CATPmD,MAAM,CACNC,WAAW,GAQTpD,KAAK,CARPoD,WAAW,CACXC,OAAO,GAOLrD,KAAK,CAPPqD,OAAO,CACaC,eAAe,GAMjCtD,KAAK,CANP,kBAAkB,EACDuD,YAAY,GAK3BvD,KAAK,CALP,eAAe,EACDwD,SAAS,GAIrBxD,KAAK,CAJP,YAAY,EACZsB,OAAO,GAGLtB,KAAK,CAHPsB,OAAO,CACPpD,aAAa,GAEX8B,KAAK,CAFP9B,aAAa,CACVuF,IAAI,GAAAC,6BAAA,CACL1D,KAAK,EAAA2D,SAAA;;MAET,IAAAC,WAAA,GAA8B9E,KAAA,CAAKqB,KAAK,CAAhCC,QAAQ,GAAAwD,WAAA,CAARxD,QAAQ,CAAEhC,OAAO,GAAAwF,WAAA,CAAPxF,OAAO;;MAEzB,IAAMyF,UAAU,GAAG;QACjBC,SAAS,EAAErH,EAAE,CAACO,MAAM,CAACwB,IAAI,CAACM,KAAA,CAAKiF,KAAK,CAAC,EAAEjF,KAAA,CAAKkF,gBAAgB,CAAC,CAAC,GAAAnC,GAAA,OAAAA,GAAA;QAC3D7E,MAAM,CAACiH,KAAK,CAACnF,KAAA,CAAKiF,KAAK,CAAC,IAAG3F,OAAO,IAAI,CAACtC,OAAO,IAAI,CAACwG,KAAK,EAAAT,GAAA;QACxD7E,MAAM,CAACkH,QAAQ,CAACpF,KAAA,CAAKiF,KAAK,CAAC,IAAG,CAAC3F,OAAO,IAAI,CAAC6B,QAAQ,IAAI,CAACnE,OAAO,IAAI,CAACwG,KAAK,IAAI,CAACI,UAAU,EAAAb,GAAA;QACxF7E,MAAM,CAACmH,KAAK,CAACrF,KAAA,CAAKiF,KAAK,CAAC,IAAG3D,QAAQ,EAAAyB,GAAA;QACnC7E,MAAM,CAAC0F,UAAU,CAAC,CAAC,IAAGA,UAAU,IAAI,CAACtE,OAAO,EAAAyD,GAAA;QAC5C7E,MAAM,CAACiD,QAAQ,CAACnB,KAAA,CAAKiF,KAAK,CAAC,IAAG9D,QAAQ,EAAA4B,GAAA;QACtC7E,MAAM,CAAClB,OAAO,CAACgD,KAAA,CAAKiF,KAAK,CAAC,IAAGjI,OAAO,EAAA+F,GAAA;QACpC7E,MAAM,CAACsF,KAAK,CAACxD,KAAA,CAAKiF,KAAK,CAAC,IAAGzB,KAAK,EAAAT,GAAA;QAChC7E,MAAM,CAACoH,aAAa,CAACtF,KAAA,CAAKiF,KAAK,CAAC,IAAG3F,OAAO,KAAKnC,MAAM,IAAID,MAAM,CAAC,EAAA6F,GAAA;QAChE7E,MAAM,CAACqH,eAAe,CAACvF,KAAA,CAAKiF,KAAK,CAAC,IAAGjI,OAAO,KAAKG,MAAM,IAAID,MAAM,CAAC,EAAA6F,GAAA;QAClE7E,MAAM,CAACsH,aAAa,CAACxF,KAAA,CAAKiF,KAAK,CAAC,IAAGzB,KAAK,KAAKrG,MAAM,IAAID,MAAM,CAAC,EAAA6F,GAAA;QAChE,CAAC;QACF,eAAe,EAAE0B,YAAY;QAC7BgB,KAAK,EAAAC,QAAA,GAAInC,KAAK,EAALA,KAAK,IAAKgB,OAAO,CAAE;QAC5BtB,YAAY,EAAEjD,KAAA,CAAK2F,gBAAgB;QACnCzC,YAAY,EAAElD,KAAA,CAAK4F,gBAAgB;QACnCzC,WAAW,EAAXA;MACF,CAAC;;MAED,IAAMZ,UAAiE,GAAAmD,QAAA;MAClEf,IAAI;QACPK,SAAS,EAAErH,EAAE,CAACO,MAAM,CAAC2C,KAAK,CAACb,KAAA,CAAKiF,KAAK,CAAC,GAAAjC,IAAA,OAAAA,IAAA;QACnC9E,MAAM,CAAC2H,UAAU,CAAC7F,KAAA,CAAKiF,KAAK,CAAC,IAAG3F,OAAO,EAAA0D,IAAA;QACvC9E,MAAM,CAAC4H,aAAa,CAAC9F,KAAA,CAAKiF,KAAK,CAAC,IAAG9D,QAAQ,EAAA6B,IAAA;QAC7C,CAAC;QACF5B,KAAK,EAALA,KAAK;QACLqC,IAAI,EAAJA,IAAI;QACJsC,QAAQ,EAAE/F,KAAA,CAAKgG,YAAY;QAC3BC,OAAO,EAAEjG,KAAA,CAAKkG,WAAW;QACzB9C,SAAS,EAAEpD,KAAA,CAAKmG,aAAa;QAC7B9C,UAAU,EAAErD,KAAA,CAAKoG,cAAc;QAC/BC,MAAM,EAAErG,KAAA,CAAKsG,UAAU;QACvBb,KAAK,EAAE,EAAEc,SAAS,EAAE1C,KAAK,CAAC,CAAC;QAC3B2C,GAAG,EAAExG,KAAA,CAAKyG,QAAQ;QAClBjI,IAAI,EAAJA,IAAI;QACJyF,WAAW,EAAE,CAACjE,KAAA,CAAK0G,aAAa,IAAI,CAACnJ,wBAAwB,GAAG0G,WAAW,GAAG0C,SAAS;QACvFxF,QAAQ,EAARA,QAAQ;QACR,kBAAkB,EAAEqD,eAAe;QACnC,YAAY,EAAEE,SAAS,GACxB;;;MAED,IAAM7D,KAAK;MACT9D,KAAA,CAAA8F,aAAA,CAAC9E,mBAAmB,IAAC6I,kBAAkB,EAAE5G,KAAA,CAAK6G,UAAW,IAAE7G,KAAA,CAAKsC,QAAQ,CAACC,UAAU,CAAuB,CAC3G;;;MAED,IAAMuE,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;QACzB,OAAO9G,KAAA,CAAKqB,KAAK,CAACE,gBAAgB;QAChCxE,KAAA,CAAA8F,aAAA,CAAC7E,cAAc,IAAC,YAAUyB,aAAa,CAACE,UAAW,EAACqE,IAAI,EAAEA,IAAK,EAAC+C,OAAO,EAAE/G,KAAA,CAAKgH,gBAAiB,EAAE,CAAC;;QAElGrD,SACD;;MACH,CAAC;;MAED;QACE5G,KAAA,CAAA8F,aAAA,CAAC1E,WAAW;UACVuF,QAAQ,EAAEA,QAAS;UACnBC,SAAS,EAAEmD,YAAY,CAAC,CAAE;UAC1B1C,MAAM,EAAEA,MAAO;UACfC,MAAM,EAAEA,MAAO;UACfU,UAAU,EAAEA,UAAW;UACvBkC,OAAO,EAAE,EAAE9F,QAAQ,EAAE3B,OAAO,CAAC2B,QAAQ,CAAC,EAAE7B,OAAO,EAAPA,OAAO,EAAE0E,IAAI,EAAJA,IAAI,CAAC,CAAE;;QAEvDnD,KAAK;QACLb,KAAA,CAAKqB,KAAK,CAAC9D,wBAAwB;QAClCR,KAAA,CAAA8F,aAAA,CAACzE,mBAAmB;UAClBsI,aAAa,EAAE1G,KAAA,CAAK0G,aAAc;UAClCtF,KAAK,EAAEA,KAAM;UACbI,YAAY,EAAExB,KAAA,CAAKkB,KAAK,CAACM,YAAa;UACtCqC,KAAK,EAAEA,KAAM;;QAEZI;QACkB;;QAEZ,CAAC;;IAElB,CAAC,CAAAjE,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsCOyG,QAAQ,GAAG,UAACjE,OAAqE,EAAK;MAC5F,IAAIA,OAAO,YAAYhF,mBAAmB,IAAKgF,OAAO,IAAI,OAAO,IAAIA,OAAQ,EAAE;QAC7ExC,KAAA,CAAKa,KAAK,GAAG2B,OAAO,CAAC3B,KAAK;MAC5B,CAAC,MAAM;QACLb,KAAA,CAAKa,KAAK,GAAG2B,OAAO;MACtB;IACF,CAAC,CAAAxC,KAAA;;IAEOgH,gBAAgB,GAAG,YAAM;MAC/B,IAAIhH,KAAA,CAAKa,KAAK,EAAE;QACdb,KAAA,CAAKa,KAAK,CAACO,KAAK,GAAG,EAAE;MACvB;;MAEApB,KAAA,CAAKqC,QAAQ,CAAC,EAAEd,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;;MAE1C,IAAIvB,KAAA,CAAKkB,KAAK,CAACoC,aAAa,EAAE;QAC5BtD,KAAA,CAAKkB,KAAK,CAACoC,aAAa,CAAC,EAAE,CAAC;MAC9B;IACF,CAAC,CAAAtD,KAAA;;IAEOgG,YAAY,GAAG,UAACkB,KAA0C,EAAK;MACrE,IAAI3J,wBAAwB,EAAE;QAC5B,IAAM4J,YAAY,GAAGD,KAAK,CAACE,MAAM,CAAChG,KAAK,KAAK,EAAE;QAC9C,IAAIpB,KAAA,CAAKqB,KAAK,CAAC9D,wBAAwB,KAAK4J,YAAY,EAAE;UACxDnH,KAAA,CAAKqC,QAAQ,CAAC,EAAE9E,wBAAwB,EAAE4J,YAAY,CAAC,CAAC,CAAC;QAC3D;MACF;;MAEA,IAAInH,KAAA,CAAKkB,KAAK,CAACoC,aAAa,EAAE;QAC5BtD,KAAA,CAAKkB,KAAK,CAACoC,aAAa,CAAC4D,KAAK,CAACE,MAAM,CAAChG,KAAK,CAAC;MAC9C;;MAEA,IAAIpB,KAAA,CAAKkB,KAAK,CAAC6E,QAAQ,EAAE;QACvB/F,KAAA,CAAKkB,KAAK,CAAC6E,QAAQ,CAACmB,KAAK,CAAC;MAC5B;;MAEAlH,KAAA,CAAKqC,QAAQ,CAAC;QACZd,gBAAgB,EAAEvB,KAAA,CAAKc,mBAAmB,CAAC,EAAExB,OAAO,EAAEU,KAAA,CAAKqB,KAAK,CAAC/B,OAAO,EAAEC,OAAO,EAAES,KAAA,CAAKqB,KAAK,CAAC9B,OAAO,CAAC,CAAC;MACzG,CAAC,CAAC;IACJ,CAAC,CAAAS,KAAA;;IAEO2F,gBAAgB,GAAG,UAAC0B,CAAiD,EAAK;MAChFrH,KAAA,CAAKqC,QAAQ,CAAC;QACZ9C,OAAO,EAAE,IAAI;QACbgC,gBAAgB,EAAEvB,KAAA,CAAKc,mBAAmB,CAAC,EAAExB,OAAO,EAAEU,KAAA,CAAKqB,KAAK,CAAC/B,OAAO,EAAEC,OAAO,EAAE,IAAI,CAAC,CAAC;MAC3F,CAAC,CAAC;MACF,IAAIS,KAAA,CAAKkB,KAAK,CAAC+B,YAAY,EAAE;QAC3BjD,KAAA,CAAKkB,KAAK,CAAC+B,YAAY,CAACoE,CAAC,CAAC;MAC5B;IACF,CAAC,CAAArH,KAAA;IACO4F,gBAAgB,GAAG,UAACyB,CAAiD,EAAK;MAChFrH,KAAA,CAAKqC,QAAQ,CAAC;QACZ9C,OAAO,EAAE,KAAK;QACdgC,gBAAgB,EAAEvB,KAAA,CAAKc,mBAAmB,CAAC,EAAExB,OAAO,EAAEU,KAAA,CAAKqB,KAAK,CAAC/B,OAAO,EAAEC,OAAO,EAAE,KAAK,CAAC,CAAC;MAC5F,CAAC,CAAC;MACF,IAAIS,KAAA,CAAKkB,KAAK,CAACgC,YAAY,EAAE;QAC3BlD,KAAA,CAAKkB,KAAK,CAACgC,YAAY,CAACmE,CAAC,CAAC;MAC5B;IACF,CAAC,CAAArH,KAAA;;IAEOkG,WAAW,GAAG,UAACgB,KAAyC,EAAK;MACnElH,KAAA,CAAKqC,QAAQ,CAAC;QACZ/C,OAAO,EAAE,IAAI;QACbiC,gBAAgB,EAAEvB,KAAA,CAAKc,mBAAmB,CAAC,EAAExB,OAAO,EAAE,IAAI,EAAEC,OAAO,EAAES,KAAA,CAAKqB,KAAK,CAAC9B,OAAO,CAAC,CAAC;MAC3F,CAAC,CAAC;;MAEF,IAAIS,KAAA,CAAKkB,KAAK,CAACgD,gBAAgB,EAAE;QAC/BlE,KAAA,CAAKa,KAAK,IAAI,CAAC1D,MAAM,GAAG6C,KAAA,CAAKyB,SAAS,CAAC,CAAC,GAAGzB,KAAA,CAAK2B,cAAc,CAAC,CAAC;MAClE;;MAEA,IAAI3B,KAAA,CAAKkB,KAAK,CAAC+E,OAAO,EAAE;QACtBjG,KAAA,CAAKkB,KAAK,CAAC+E,OAAO,CAACiB,KAAK,CAAC;MAC3B;IACF,CAAC,CAAAlH,KAAA;;IAEOmG,aAAa,GAAG,UAACkB,CAAwC,EAAK;MACpE,IAAIrH,KAAA,CAAKkB,KAAK,CAACkC,SAAS,EAAE;QACxBpD,KAAA,CAAKkB,KAAK,CAACkC,SAAS,CAACiE,CAAC,CAAC;MACzB;;MAEA,IAAMC,WAAW,GAAGhK,QAAQ,CAACF,cAAc,EAAEC,WAAW,CAAC,CAACgK,CAAC,CAAC;;MAE5D,IAAI,CAACA,CAAC,CAACE,aAAa,CAACnG,KAAK,IAAIkG,WAAW,IAAI,CAACD,CAAC,CAACG,MAAM,EAAE;QACtDxH,KAAA,CAAKyH,qBAAqB,CAAC,CAAC;MAC9B;IACF,CAAC,CAAAzH,KAAA;;IAEOoG,cAAc,GAAG,UAACc,KAA4C,EAAK;MACzE,IAAIlH,KAAA,CAAKkB,KAAK,CAACmC,UAAU,EAAE;QACzBrD,KAAA,CAAKkB,KAAK,CAACmC,UAAU,CAAC6D,KAAK,CAAC;MAC9B;;MAEA,IAAIlH,KAAA,CAAKkB,KAAK,CAACwG,SAAS,KAAKR,KAAK,CAACK,aAAa,CAACnG,KAAK,CAACjB,MAAM,EAAE;QAC7DH,KAAA,CAAKyH,qBAAqB,CAACP,KAAK,CAACK,aAAa,CAACnG,KAAK,CAAC;MACvD;IACF,CAAC,CAAApB,KAAA;;IAEO2H,uBAAuB,GAAG,UAACvG,KAAa,EAAK;MACnD,IAAIpB,KAAA,CAAKkB,KAAK,CAACoC,aAAa,EAAE;QAC5BtD,KAAA,CAAKkB,KAAK,CAACoC,aAAa,CAAClC,KAAK,CAAC;MACjC;IACF,CAAC,CAAApB,KAAA;;IAEOyH,qBAAqB,GAAG,UAACrG,KAAa,EAA8B,KAA3CA,KAAa,cAAbA,KAAa,GAAGpB,KAAA,CAAKkB,KAAK,CAACE,KAAK,IAAI,EAAE;MACrE,IAAIpB,KAAA,CAAKkB,KAAK,CAACiD,iBAAiB,EAAE;QAChCnE,KAAA,CAAKkB,KAAK,CAACiD,iBAAiB,CAAC/C,KAAK,CAAC;MACrC,CAAC,MAAM;QACLpB,KAAA,CAAKqF,KAAK,CAAC,CAAC;MACd;IACF,CAAC,CAAArF,KAAA;;IAEO6G,UAAU,GAAG,oBAAM7G,KAAA,CAAKqC,QAAQ,CAAC,EAAE/C,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAAU,KAAA;;IAEpDsG,UAAU,GAAG,UAACY,KAAyC,EAAK,KAAAU,YAAA;MAClE,IAAMxI,aAAa,GAAGY,KAAA,CAAKkB,KAAK,CAAC9B,aAAa;MAC9C,IAAIA,aAAa,KAAAwI,YAAA,GAAIhK,WAAW,CAAAoC,KAAK,CAAC,aAAjB4H,YAAA,CAAmBC,QAAQ,CAACX,KAAK,CAACY,aAAa,CAAC,EAAE;QACrE9H,KAAA,CAAKqC,QAAQ,CAAC,EAAE/C,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;MACnC,CAAC,MAAM;QACL,IAAMiC,gBAAgB,GAAGvB,KAAA,CAAKc,mBAAmB,CAAC,EAAExB,OAAO,EAAE,KAAK,EAAEC,OAAO,EAAES,KAAA,CAAKqB,KAAK,CAAC9B,OAAO,CAAC,CAAC,CAAC;QAClGS,KAAA,CAAKqC,QAAQ,CAAC;UACZ/C,OAAO,EAAE,KAAK;UACdiC,gBAAgB,EAAhBA;QACF,CAAC,CAAC;QACFvB,KAAA,CAAKkB,KAAK,CAACmF,MAAM,YAAjBrG,KAAA,CAAKkB,KAAK,CAACmF,MAAM,CAAGa,KAAK,CAAC;MAC5B;IACF,CAAC,QAAAlH,KAAA,EAAA+H,cAAA,CAAAnI,KAAA,EAAAG,gBAAA,MAAAiI,MAAA,GAAApI,KAAA,CAAAqI,SAAA,CAAAD,MAAA,CA5bOE,eAAe,GAAvB,SAAAA,gBAAA,EAA0B,CACxBlL,OAAO,CAAC,EAAE,IAAI,CAACkE,KAAK,CAACwB,IAAI,IAAI,IAAI,CAACC,iBAAiB,CAAC,EAAE1D,gBAAgB,CAAC,IAAI,CAACyB,QAAQ,CAAC,CAAC,CAAClC,IAAI,CAAC,CAAC,CAC/F,CAAC,CAAAwJ,MAAA,CAEMG,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAACD,eAAe,CAAC,CAAC,CACxB,CAAC,CAAAF,MAAA,CAEMI,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAA+B,EAAE,CACzD,IAAI,IAAI,CAACnH,KAAK,CAAC1C,IAAI,KAAK6J,SAAS,CAAC7J,IAAI,IAAI,IAAI,CAAC0C,KAAK,CAACwB,IAAI,KAAK2F,SAAS,CAAC3F,IAAI,EAAE,CAC5E,IAAI,CAACwF,eAAe,CAAC,CAAC,CACxB,CACF,CAAC,CAAAF,MAAA,CAEMM,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,IAAI,CAACnG,YAAY,EAAE,CACrBlF,YAAY,CAACmF,YAAY,CAAC,IAAI,CAACD,YAAY,CAAC,CAC9C,CACA,IAAI,CAACJ,sBAAsB,CAAC,CAAC,CAC/B,CAAC,CAED;AACF;AACA,KAFE,CAAAiG,MAAA,CAGO7C,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACbrI,SAAS,CAAC,IAAI,CAAC+D,KAAK,EAAE,kDAAkD,CAAC,CACzE,IAAI,CAACA,KAAK,CAACsE,KAAK,CAAC,CAAC,CACpB,CAAC,CAED;AACF;AACA,KAFE,CAAA6C,MAAA,CAGOO,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZzL,SAAS,CAAC,IAAI,CAAC+D,KAAK,EAAE,iDAAiD,CAAC,CACxE,IAAI,CAACA,KAAK,CAAC0H,IAAI,CAAC,CAAC,CACnB,CAAC,CAED;AACF;AACA,KAFE,CAAAP,MAAA,CAGOQ,OAAO,GAAd,SAAAA,QAAA,EAAiB,CACf,OAAO,IAAI,CAAC3H,KAAK,CACnB,CAAC,CAED;AACF;AACA,KAFE,CAAAmH,MAAA,CAGO3C,KAAK,GAAZ,SAAAA,MAAA,EAAe,KAAAoD,MAAA,QACb,IAAI,IAAI,CAACtG,YAAY,EAAE,CACrB,IAAI,CAACF,WAAW,CAAC,YAAM,CACrB;UACA;UACA,MAAMwG,MAAI,CAAC5H,KAAK,IAAI4H,MAAI,CAAC5H,KAAK,CAAC6H,WAAW,CAAC,CAC3CD,MAAI,CAACpD,KAAK,CAAC,CAAC,CACd,CAAC,CAAC,CACF,OACF,CACA,IAAI,CAAChD,QAAQ,CAAC,EAAEf,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,YAAM,CACtCmH,MAAI,CAACtG,YAAY,GAAGlF,YAAY,CAAC0L,UAAU,CAACF,MAAI,CAACxG,WAAW,EAAE,GAAG,CAAC,CACpE,CAAC,CAAC,CACJ,CAAC,CAED;AACF;AACA;AACA;AACA,KAJE,CAAA+F,MAAA,CAKOlG,iBAAiB,GAAxB,SAAAA,kBAAyB8G,KAAa,EAAEC,GAAW,EAAE,KAAAC,qBAAA,CAAAC,iBAAA,CAAAC,MAAA,SACnD;IACA;IACA,IAAI,CAAC1K,qBAAqB,CAACU,QAAQ,CAAC,IAAI,CAAC0B,QAAQ,CAAC,CAAC,CAAClC,IAAI,CAAC,EAAE,CACzDxB,OAAO,CAAC,KAAK,EAAEuB,qBAAqB,CAAC,IAAI,CAACmC,QAAQ,CAAC,CAAC,CAAClC,IAAI,CAAC,CAAC,CAE3D,OACF,CAEA,IAAI,CAAC,IAAI,CAACqC,KAAK,EAAE,CACf,MAAM,IAAIoI,KAAK,CAAC,oDAAoD,CAAC,CACvE,CAEA,IAAI,EAAAH,qBAAA,GAAA7L,YAAY,CAACiM,QAAQ,qBAArBJ,qBAAA,CAAuBK,aAAa,MAAK,IAAI,CAACtI,KAAK,EAAE,CACvD,IAAI,CAACsE,KAAK,CAAC,CAAC,CACd,CACA,IAAI,IAAI,CAACjE,KAAK,CAACwB,IAAI,IAAI,IAAI,CAACxB,KAAK,CAACE,KAAK,IAAI,EAAA2H,iBAAA,OAAI,CAAC7H,KAAK,CAACE,KAAK,qBAAhB2H,iBAAA,CAAkB5I,MAAM,IAAG,IAAI,CAACe,KAAK,CAACwB,IAAI,CAACvC,MAAM,EAAE,CAC5FlD,YAAY,CAAC0L,UAAU,CAAC,YAAM,KAAAS,YAAA,CAC5B,CAAAA,YAAA,GAAAJ,MAAI,CAACnI,KAAK,aAAVuI,YAAA,CAAYtH,iBAAiB,CAAC8G,KAAK,EAAEC,GAAG,CAAC,CAC3C,CAAC,EAAE,GAAG,CAAC,CACT,CAAC,MAAM,KAAAQ,YAAA,CACL,CAAAA,YAAA,OAAI,CAACxI,KAAK,aAAVwI,YAAA,CAAYvH,iBAAiB,CAAC8G,KAAK,EAAEC,GAAG,CAAC,CAC3C,CACF,CAAC,CAAAb,MAAA,CAQMsB,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,oBACExM,KAAA,CAAA8F,aAAA,CAACpF,YAAY,CAAC+L,QAAQ,QACnB,UAACvE,KAAK,EAAK,CACVsE,MAAI,CAACtE,KAAK,GAAGA,KAAK,CAClB,oBACElI,KAAA,CAAA8F,aAAA,CAACnF,aAAa,EAAAgI,QAAA,GAAC+D,WAAW,EAAEF,MAAI,CAACG,WAAY,IAAKH,MAAI,CAAC7I,QAAQ,CAAC,CAAC,GAC9D6I,MAAI,CAACzG,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,CAAAkF,MAAA,CA4KOpF,iBAAiB,GAAzB,SAAAA,kBAA0BL,UAAuD,EAAEG,IAAY,EAAE,CAC/F,oBACE3F,KAAA,CAAA8F,aAAA,CAACrF,mBAAmB,EAAAkI,QAAA,KACdnD,UAAU,IACdG,IAAI,EAAEA,IAAK,EACXoB,QAAQ,EAAE,IAAI,CAAC5C,KAAK,CAAC4C,QAAS,EAC9BC,cAAc,EAAE,IAAI,CAAC7C,KAAK,CAAC6C,cAAe,EAC1CO,WAAW,EAAE,IAAI,CAACpD,KAAK,CAACoD,WAAY,EACpCyB,QAAQ,EAAE,IAAI,CAAC7E,KAAK,CAAC6E,QAAS,EAC9BzC,aAAa,EAAE,IAAI,CAACqE,uBAAwB,EAC5CxD,iBAAiB,EAAE,IAAI,CAACsD,qBAAsB,GAC/C,CAAC,CAEN,CAAC,CAAAO,MAAA,CAEO9C,gBAAgB,GAAxB,SAAAA,iBAAA,EAA2B,KAAAyE,IAAA,EAAAC,IAAA,EAAAC,IAAA,CACzB,QAAQ,IAAI,CAACnJ,QAAQ,CAAC,CAAC,CAACsD,IAAI,GAC1B,KAAK,OAAO,CACV,OAAOrG,EAAE,EAAAgM,IAAA,OAAAA,IAAA,CACNzL,MAAM,CAAC4L,SAAS,CAAC,IAAI,CAAC7E,KAAK,CAAC,IAAG,IAAI,EAAA0E,IAAA,CACnCzL,MAAM,CAAC6L,iBAAiB,CAAC,IAAI,CAAC9E,KAAK,CAAC,IAAG9H,MAAM,IAAID,MAAM,EAAAyM,IAAA,CACzD,CAAC,CACJ,KAAK,QAAQ,CACX,OAAOhM,EAAE,EAAAiM,IAAA,OAAAA,IAAA,CACN1L,MAAM,CAAC8L,UAAU,CAAC,IAAI,CAAC/E,KAAK,CAAC,IAAG,IAAI,EAAA2E,IAAA,CACpC1L,MAAM,CAAC+L,kBAAkB,CAAC,IAAI,CAAChF,KAAK,CAAC,IAAG9H,MAAM,IAAID,MAAM,EAAA0M,IAAA,CAC1D,CAAC,CACJ,KAAK,OAAO,CACZ,QACE,OAAOjM,EAAE,EAAAkM,IAAA,OAAAA,IAAA,CACN3L,MAAM,CAACgM,SAAS,CAAC,IAAI,CAACjF,KAAK,CAAC,IAAG,IAAI,EAAA4E,IAAA,CACnC3L,MAAM,CAACiM,iBAAiB,CAAC,IAAI,CAAClF,KAAK,CAAC,IAAG9H,MAAM,IAAID,MAAM,EAAA2M,IAAA,CACzD,CAAC,CACN,CACF,CAAC,QAAAO,YAAA,CAAAxK,KAAA,KAAAyK,GAAA,mBAAAC,GAAA,EAjOD,SAAAA,IAAA,EAAoC,CAClC,IAAAC,WAAA,GAAiC,IAAI,CAACrJ,KAAK,CAAnCwB,IAAI,GAAA6H,WAAA,CAAJ7H,IAAI,CAAEqB,cAAc,GAAAwG,WAAA,CAAdxG,cAAc,CAC5B,IAAQzE,OAAO,GAAK,IAAI,CAAC+B,KAAK,CAAtB/B,OAAO,CACf,OAAOE,OAAO,CAACkD,IAAI,KAAKpD,OAAO,IAAIyE,cAAc,CAAC,CAAC,CACrD,CAAC,MAAAsG,GAAA,uBAAAC,GAAA,EAiBD,SAAAA,IAAA,EAAgC,CAC9B,OAAOzL,kBAAkB,CAACG,QAAQ,CAAC,IAAI,CAAC0B,QAAQ,CAAC,CAAC,CAAClC,IAAI,CAAC,CAC1D,CAAC,OApKwBzB,KAAK,CAACyN,SAAS,GAAA1K,MAAA,CAC1B2K,mBAAmB,GAAG,OAAO,EAAA3K,MAAA,CAC7B4K,WAAW,GAAG,OAAO,EAAA5K,MAAA,CAErBa,YAAY,GAAiB,EACzCqD,IAAI,EAAE,OAAO,EACbxF,IAAI,EAAE,MAAM,EACZY,aAAa,EAAE,OAAO,CACxB,CAAC,EAAAU,MAAA,MAAAD,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["invariant","React","warning","globalObject","isEdge","isIE11","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","InternalMaskedInput","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","FocusControlWrapper","ClearCrossIcon","catchUnreachableWarning","styles","InputLayout","PolyfillPlaceholder","inputTypes","selectionAllowedTypes","selectionErrorMessage","type","allowedTypes","map","i","join","maskForbiddenTypes","maskAllowedTypes","filter","includes","maskErrorMessage","calculateClearCrossShowedState","_ref","showClearIcon","notEmptyValue","focused","hovered","Boolean","InputDataTids","root","clearCross","Input","_class","_Input","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","selectAllId","input","getClearCrossShowed","_ref2","_this$input","hasInitialValue","props","disabled","value","state","blinking","clearCrossShowed","defaultValue","selectAll","_selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","setSelectionRange","cancelDelayedSelectAll","cancelAnimationFrame","cancelBlink","callback","blinkTimeout","clearTimeout","setState","getInput","inputProps","element","cloneElement","mask","canBeUsedWithMask","renderMaskedInput","createElement","renderMain","_cx","_cx2","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","role","leftIcon","rightIcon","borderless","align","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","onUnexpectedInput","prefix","suffix","formatChars","corners","ariaDescribedby","ariaControls","ariaLabel","rest","_objectWithoutPropertiesLoose","_excluded","_this$state","labelProps","className","theme","getSizeClassName","focus","hovering","blink","focusFallback","warningFallback","errorFallback","style","_extends","handleMouseEnter","handleMouseLeave","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","onBlurWhenDisabled","resetFocus","getRightIcon","onClick","handleClearInput","context","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","_getRootNode","contains","relatedTarget","_inheritsLoose","_proto","prototype","outputMaskError","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","blur","getNode","_this2","offsetWidth","setTimeout","start","end","_globalObject$documen","_this$props$value","_this3","Error","document","activeElement","_this3$input","_this$input2","render","_this4","Consumer","rootNodeRef","setRootNode","_cx3","_cx4","_cx5","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_createClass","key","get","_this$props","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Input.tsx"],"sourcesContent":["// TODO: Enable this rule in functional components.\nimport invariant from 'invariant';\nimport type { AriaAttributes, ClassAttributes, HTMLAttributes, ReactElement } from 'react';\nimport React from 'react';\nimport warning from 'warning';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { InternalMaskedInput } from '../../internal/InternalMaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { ClearCrossIcon } from '../../internal/ClearCrossIcon/ClearCrossIcon';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\n\nimport type { InputElement, InputElementProps } from './Input.typings';\nimport { styles } from './Input.styles';\nimport { InputLayout } from './InputLayout/InputLayout';\nimport { PolyfillPlaceholder } from './InputLayout/PolyfillPlaceholder';\n\nexport const inputTypes = ['password', 'text', 'number', 'tel', 'search', 'time', 'date', 'url', 'email'] as const;\n\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type ShowClearIcon = 'auto' | 'always' | 'never';\nexport type InputType = (typeof inputTypes)[number];\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport const selectionAllowedTypes: InputType[] = ['text', 'password', 'tel', 'search', 'url'];\nexport const selectionErrorMessage = (type: InputType, allowedTypes: InputType[] = selectionAllowedTypes) => {\n return `<Input />. Selection is not supported by the type \"${type}\". Types that support selection: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}. Reason: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange.`;\n};\n\nexport const maskForbiddenTypes: InputType[] = ['number', 'date', 'time'];\nexport const maskAllowedTypes: InputType[] = inputTypes.filter((type) => {\n return !maskForbiddenTypes.includes(type);\n});\nexport const maskErrorMessage = (type: InputType, allowedTypes: InputType[] = maskAllowedTypes) => {\n return `<Input />. Prop \"mask\" does not support type \"${type}\". Supported types: ${allowedTypes\n .map((i) => `\"${i}\"`)\n .join(', ')}.`;\n};\nexport const calculateClearCrossShowedState = ({\n showClearIcon,\n notEmptyValue,\n focused,\n hovered,\n}: {\n showClearIcon: ShowClearIcon;\n notEmptyValue: boolean;\n focused?: boolean;\n hovered?: boolean;\n}): boolean => {\n switch (showClearIcon) {\n case 'always':\n return notEmptyValue;\n case 'auto':\n return Boolean((focused || hovered) && notEmptyValue);\n case 'never':\n return false;\n default:\n return catchUnreachableWarning(showClearIcon, false);\n }\n};\n\nexport interface InputProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-controls' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает иконку слева.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n * При использовании `ReactNode` применяются дефолтные стили для иконки.\n * При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Задает выравнивание контента. */\n align?: InputAlign;\n\n /** Задает паттерн маски. Доступен для типов `text`, `password`, `email`, `tel`, `search`, `url`\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n mask?: Nullable<string>;\n\n /** Устанавливает символ маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n maskChar?: Nullable<string>;\n\n /** Задает словарь символов-регулярок для задания маски\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }. */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @deprecated Со следующей мажорной версии Input перестанет поддерживать маску. Используйте MaskedInput. */\n alwaysShowMask?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает функцию, которая вызывается при изменении значения в инпуте. */\n onValueChange?: (value: string) => void;\n\n /** @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает тип инпута. */\n type?: InputType;\n\n /** Задает значение. */\n value?: string;\n\n ///** */\n capture?: boolean;\n\n /** Устанавливает префикс `ReactNode` перед значением, но после иконки. */\n prefix?: React.ReactNode;\n\n /** Устанавливает суффикс `ReactNode` после значения, но перед правой иконкой. */\n suffix?: React.ReactNode;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами `text`, `password`, `tel`, `search`, `url`. [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange) */\n selectAllOnFocus?: boolean;\n\n /** Задает функцию для обработки ввода.\n * При неправильном вводе инпут по-умолчанию вспыхивает акцентным цветом.\n * Если `onUnexpectedInput` передан - вызывается переданный обработчик b вспыхивание можно вызвать публичным методом инстанса `blink()`.\n * @param {string} value - значение инпута. */\n onUnexpectedInput?: (value: string) => void;\n\n /** Устанавливает радиус скруглений углов.\n * @ignore */\n corners?: Partial<\n Pick<\n React.CSSProperties,\n 'borderTopRightRadius' | 'borderBottomRightRadius' | 'borderBottomLeftRadius' | 'borderTopLeftRadius'\n >\n >;\n\n /** Устанавливает элемент, заменяющий нативный input. Должен иметь пропы `InputElementProps` и тип `InputElement`. */\n element?: ReactElement<InputElementProps>;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n hovered: boolean;\n needsPolyfillPlaceholder: boolean;\n clearCrossShowed: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n clearCross: 'Input__clearCross',\n} as const;\n\ntype DefaultProps = Required<Pick<InputProps, 'size' | 'type' | 'showClearIcon'>>;\n\n/**\n * Поле ввода `Input` дает возможность указать значение с помощью клавиатуры.\n *\n * Используйте поле ввода для коротких текстовых или цифровых значений без предсказуемого формата.\n *\n * Если вводимое значение имеет определенный формат, используйте специальную версию поля:\n * * Поле с паролем PasswordInput.\n * * Поле с валютой CurrencyInput.\n * * Поле с маской MaskedInput.\n * * Автополе FxInput.\n *\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n public static displayName = 'Input';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n type: 'text',\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(Input.defaultProps);\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout: SafeTimer;\n public input: HTMLInputElement | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private getClearCrossShowed = ({\n focused,\n hovered,\n hasInitialValue,\n }: {\n focused?: boolean;\n hovered?: boolean;\n hasInitialValue?: boolean;\n }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.input?.value || hasInitialValue),\n focused,\n hovered,\n });\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n hasInitialValue: Boolean(this.props.value || this.props.defaultValue),\n }),\n };\n\n private outputMaskError() {\n warning(!(this.props.mask && this.canBeUsedWithMask), maskErrorMessage(this.getProps().type));\n }\n\n public componentDidMount() {\n this.outputMaskError();\n }\n\n public componentDidUpdate(prevProps: Readonly<InputProps>) {\n if (this.props.type !== prevProps.type || this.props.mask !== prevProps.mask) {\n this.outputMaskError();\n }\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n // https://github.com/facebook/react/issues/7769\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n if (!selectionAllowedTypes.includes(this.getProps().type)) {\n warning(false, selectionErrorMessage(this.getProps().type));\n\n return;\n }\n\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.input) {\n this.focus();\n }\n if (this.props.mask && this.props.value && this.props.value?.length < this.props.mask.length) {\n globalObject.setTimeout(() => {\n this.input?.setSelectionRange(start, end);\n }, 150);\n } else {\n this.input?.setSelectionRange(start, end);\n }\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private get canBeUsedWithMask() {\n return maskForbiddenTypes.includes(this.getProps().type);\n }\n\n /**\n * Работает с типами `text`, `password`, `tel`, `search`, `url`\n * [Документация](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange)\n * @public\n */\n public selectAll = (): void => this._selectAll();\n\n public delaySelectAll = (): number | null => {\n return (this.selectAllId = globalObject.requestAnimationFrame?.(this._selectAll) ?? null);\n };\n\n private _selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private getInput = (inputProps: InputElementProps & ClassAttributes<HTMLInputElement>) => {\n if (this.props.element) {\n return React.cloneElement(this.props.element, inputProps);\n }\n\n return this.props.mask && !this.canBeUsedWithMask\n ? this.renderMaskedInput(inputProps, this.props.mask)\n : React.createElement('input', inputProps);\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n role,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n corners,\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n element,\n showClearIcon,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused && !warning && !error,\n [styles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n 'aria-controls': ariaControls,\n style: { width, ...corners },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onMouseOver,\n };\n\n const inputProps: InputElementProps & ClassAttributes<HTMLInputElement> = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n role,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type,\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n };\n\n const input = (\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>{this.getInput(inputProps)}</FocusControlWrapper>\n );\n\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n\n return (\n <InputLayout\n leftIcon={leftIcon}\n rightIcon={getRightIcon()}\n prefix={prefix}\n suffix={suffix}\n labelProps={labelProps}\n context={{ disabled: Boolean(disabled), focused, size }}\n >\n {input}\n {this.state.needsPolyfillPlaceholder && (\n <PolyfillPlaceholder\n isMaskVisible={this.isMaskVisible}\n value={value}\n defaultValue={this.props.defaultValue}\n align={align}\n >\n {placeholder}\n </PolyfillPlaceholder>\n )}\n </InputLayout>\n );\n };\n\n private renderMaskedInput(inputProps: React.InputHTMLAttributes<HTMLInputElement>, mask: string) {\n return (\n <InternalMaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | InternalMaskedInput | InputElement | null) => {\n if (element instanceof InternalMaskedInput || (element && 'input' in element)) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleClearInput = () => {\n if (this.input) {\n this.input.value = '';\n }\n\n this.setState({ clearCrossShowed: false });\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n this.setState({\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: this.state.hovered }),\n });\n };\n\n private handleMouseEnter = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }),\n });\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n private handleMouseLeave = (e: React.MouseEvent<HTMLLabelElement, MouseEvent>) => {\n this.setState({\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }),\n });\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n\n if (this.props.selectAllOnFocus) {\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private resetFocus = () => this.setState({ focused: false });\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const showClearIcon = this.props.showClearIcon;\n if (showClearIcon && getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n const clearCrossShowed = this.getClearCrossShowed({ focused: false, hovered: this.state.hovered });\n this.setState({\n focused: false,\n clearCrossShowed,\n });\n this.props.onBlur?.(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@ import type { AriaAttributes, HTMLAttributes, ReactElement } from 'react';
2
2
  import React from 'react';
3
3
  import type { Nullable, Override } from '../../typings/utility-types';
4
4
  import type { CommonProps } from '../../internal/CommonWrapper';
5
+ import type { TGetRootNode } from '../../lib/rootNode';
5
6
  import type { SizeProp } from '../../lib/types/props';
6
7
  import type { InputElementProps } from './Input.typings';
7
8
  export declare const inputTypes: readonly ["password", "text", "number", "tel", "search", "time", "date", "url", "email"];
@@ -124,6 +125,7 @@ export declare class Input extends React.Component<InputProps, InputState> {
124
125
  private theme;
125
126
  private blinkTimeout;
126
127
  input: HTMLInputElement | null;
128
+ getRootNode: TGetRootNode;
127
129
  private setRootNode;
128
130
  private getClearCrossShowed;
129
131
  state: InputState;
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  var _class, _Kebab;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import { isElement } from 'react-is';
7
6
  import { globalObject } from '@skbkontur/global-object';
8
7
  import { isKonturIcon } from "../../../lib/utils";
@@ -170,7 +169,7 @@ export var Kebab = rootNode(_class = (_Kebab = /*#__PURE__*/function (_React$Com
170
169
  return icon;
171
170
  };
172
171
  return Kebab;
173
- }(React.Component), _Kebab.__KONTUR_REACT_UI__ = 'Kebab', _Kebab.displayName = 'Kebab', _Kebab.propTypes = {}, _Kebab.defaultProps = {
172
+ }(React.Component), _Kebab.__KONTUR_REACT_UI__ = 'Kebab', _Kebab.displayName = 'Kebab', _Kebab.defaultProps = {
174
173
  onOpen: function onOpen() {
175
174
  return undefined;
176
175
  },
@@ -180,21 +179,4 @@ export var Kebab = rootNode(_class = (_Kebab = /*#__PURE__*/function (_React$Com
180
179
  positions: ['bottom left', 'bottom right', 'top left', 'top right'],
181
180
  size: 'small',
182
181
  disableAnimations: isTestEnv
183
- }, _Kebab)) || _class;
184
- Kebab.propTypes = {
185
- children: PropTypes.node,
186
- disabled: PropTypes.bool,
187
- menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
188
- /**
189
- * Размер кебаба small 14px | large 20px
190
- */
191
- size: PropTypes.string,
192
- /**
193
- * Коллбек, вызывающийся перед закрытием кебаба
194
- */
195
- onClose: PropTypes.func,
196
- /**
197
- * Коллбек, вызывающийся перед открытием кебаба
198
- */
199
- onOpen: PropTypes.func
200
- };
182
+ }, _Kebab)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","isElement","globalObject","isKonturIcon","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","keyListener","PopupMenu","ThemeContext","isTestEnv","ThemeFactory","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","styles","KebabIcon","KebabDataTids","caption","Kebab","_class","_Kebab","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","isTabPressed","_inheritsLoose","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","Consumer","Provider","value","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","_extends","rootNodeRef","setRootNode","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName","propTypes","node","bool","oneOfType","string","number","func"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, ReactElement, HTMLAttributes } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { isElement } from 'react-is';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']. */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Задает максимальную высоту меню. */\n menuMaxHeight?: number | string;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню `Kebab` содержит действия с объектом.\n */\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled, size } = this.getProps();\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { size, icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon as ReactElement, {\n size: icon.props.size ?? sizes[size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isElement","globalObject","isKonturIcon","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","keyListener","PopupMenu","ThemeContext","isTestEnv","ThemeFactory","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","styles","KebabIcon","KebabDataTids","caption","Kebab","_class","_Kebab","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","isTabPressed","_inheritsLoose","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","Consumer","Provider","value","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","_extends","rootNodeRef","setRootNode","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, ReactElement, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']. */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Задает максимальную высоту меню. */\n menuMaxHeight?: number | string;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню `Kebab` содержит действия с объектом.\n */\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled, size } = this.getProps();\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { size, icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon as ReactElement, {\n size: icon.props.size ?? sizes[size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import type { PopupMenuProps } from '../../internal/PopupMenu';
4
4
  import type { Nullable } from '../../typings/utility-types';
5
5
  import type { PopupPositionsType } from '../../internal/Popup';
6
6
  import type { CommonProps } from '../../internal/CommonWrapper';
7
+ import type { TGetRootNode } from '../../lib/rootNode';
7
8
  import type { SizeProp } from '../../lib/types/props';
8
9
  export interface KebabProps extends Pick<AriaAttributes, 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>, CommonProps {
9
10
  /** Делает компонент недоступным. */
@@ -38,11 +39,11 @@ type DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions'
38
39
  export declare class Kebab extends React.Component<KebabProps, KebabState> {
39
40
  static __KONTUR_REACT_UI__: string;
40
41
  static displayName: string;
41
- static propTypes: {};
42
42
  static defaultProps: DefaultProps;
43
43
  private getProps;
44
44
  state: KebabState;
45
45
  private theme;
46
+ getRootNode: TGetRootNode;
46
47
  private setRootNode;
47
48
  private listener;
48
49
  componentDidMount(): void;
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","resetButton","keyListener","ThemeContext","isExternalLink","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","styles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","children","requestAnimationFrame","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose","_proto","prototype","render","_this2","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа. */\n rightIcon?: React.ReactElement;\n\n /** Задает тему ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","resetButton","keyListener","ThemeContext","isExternalLink","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","styles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","children","requestAnimationFrame","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose","_proto","prototype","render","_this2","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа. */\n rightIcon?: React.ReactElement;\n\n /** Задает тему ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@ import type { ButtonLinkAllowedValues } from '../../lib/types/button-link';
3
3
  import type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';
4
4
  import type { ThemeIn } from '../../lib/theming/Theme';
5
5
  import type { CommonProps } from '../../internal/CommonWrapper';
6
+ import type { TGetRootNode } from '../../lib/rootNode';
6
7
  export interface LinkInnerProps extends CommonProps {
7
8
  /** Делает компонент недоступным. */
8
9
  disabled?: boolean;
@@ -49,6 +50,7 @@ export declare class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAUL
49
50
  private getProps;
50
51
  state: LinkState;
51
52
  private theme;
53
+ getRootNode: TGetRootNode;
52
54
  private setRootNode;
53
55
  render(): JSX.Element;
54
56
  private getTabIndex;
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  var _class, _Loader;
4
4
  import React from 'react';
5
- import PropTypes from 'prop-types';
6
5
  import debounce from 'lodash.debounce';
7
6
  import { globalObject, isBrowser } from '@skbkontur/global-object';
8
7
  import * as LayoutEvents from "../../../lib/LayoutEvents";
@@ -285,36 +284,4 @@ export var Loader = rootNode(_class = (_Loader = /*#__PURE__*/function (_React$C
285
284
  active: false,
286
285
  delayBeforeSpinnerShow: isTestEnv ? 0 : 300,
287
286
  minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000
288
- }, _Loader.propTypes = {
289
- /**
290
- * показываем лоадер или нет
291
- */
292
- active: PropTypes.bool,
293
- /**
294
- * Текст рядом с лоадером.
295
- *
296
- * @default "Загрузка"
297
- */
298
- caption: Spinner.propTypes.caption,
299
- component: PropTypes.node,
300
- /**
301
- * Класс для обертки
302
- */
303
- className: PropTypes.string,
304
- /**
305
- * Тип спиннера: mini, normal, big
306
- *
307
- * @default normal
308
- */
309
- type: PropTypes.oneOf(types),
310
- /**
311
- * Время в миллисекундах для показа вуали без спиннера.
312
- * @default 300
313
- */
314
- delayBeforeSpinnerShow: PropTypes.number,
315
- /**
316
- * Минимальное время в миллисекундах для показа спиннера
317
- * @default 1000
318
- */
319
- minimalDelayBeforeSpinnerHide: PropTypes.number
320
287
  }, _Loader)) || _class;