@skbkontur/react-ui 5.2.1 → 5.3.1

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 (555) hide show
  1. package/CHANGELOG.md +42 -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 +2 -1
  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 +2 -2
  398. package/components/Select/Select/Select.js.map +1 -1
  399. package/components/Select/Select.d.ts +2 -0
  400. package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
  401. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  402. package/components/SidePage/SidePage.styles.d.ts +3 -1
  403. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  404. package/components/SidePage/SidePageBody.d.ts +2 -0
  405. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  406. package/components/SidePage/SidePageContainer.d.ts +2 -0
  407. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  408. package/components/SidePage/SidePageFooter.d.ts +2 -0
  409. package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
  410. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  411. package/components/SidePage/SidePageHeader.d.ts +12 -2
  412. package/components/Spinner/Spinner/Spinner.js +1 -18
  413. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  414. package/components/Spinner/Spinner.d.ts +2 -18
  415. package/components/Sticky/Sticky/Sticky.js +1 -13
  416. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  417. package/components/Sticky/Sticky.d.ts +2 -13
  418. package/components/Switcher/Switcher/Switcher.js +19 -16
  419. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  420. package/components/Switcher/Switcher.d.ts +6 -21
  421. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  422. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  423. package/components/Switcher/Switcher.styles.d.ts +1 -0
  424. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  425. package/components/Tabs/Indicator.d.ts +2 -0
  426. package/components/Tabs/Tab/Tab.js.map +1 -1
  427. package/components/Tabs/Tab.d.ts +2 -0
  428. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  429. package/components/Tabs/Tabs.d.ts +2 -0
  430. package/components/Textarea/Textarea/Textarea.js +1 -44
  431. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  432. package/components/Textarea/Textarea.d.ts +2 -44
  433. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  434. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  435. package/components/Toast/Toast/Toast.js.map +1 -1
  436. package/components/Toast/Toast.d.ts +2 -0
  437. package/components/Toast/ToastView/ToastView.js +3 -17
  438. package/components/Toast/ToastView/ToastView.js.map +1 -1
  439. package/components/Toast/ToastView.d.ts +2 -14
  440. package/components/Toggle/Toggle/Toggle.js +1 -10
  441. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  442. package/components/Toggle/Toggle.d.ts +2 -10
  443. package/components/Token/Token/Token.js.map +1 -1
  444. package/components/Token/Token.d.ts +2 -0
  445. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  446. package/components/TokenInput/TokenInput.d.ts +2 -0
  447. package/components/Tooltip/Tooltip/Tooltip.js +67 -20
  448. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  449. package/components/Tooltip/Tooltip.d.ts +14 -9
  450. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
  451. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
  452. package/components/Tooltip/Tooltip.styles.d.ts +7 -1
  453. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  454. package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  455. package/index.d.ts +1 -0
  456. package/index.js +1 -0
  457. package/index.js.map +1 -1
  458. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  459. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  460. package/internal/ComponentTable/ComponentTable.js +0 -2
  461. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  462. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  463. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  464. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  465. package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  466. package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
  467. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  468. package/internal/DateSelect/DateSelect.d.ts +0 -10
  469. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  470. package/internal/FocusTrap/FocusTrap.d.ts +2 -0
  471. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  472. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  473. package/internal/InputLikeText/InputLikeText.d.ts +2 -0
  474. package/internal/Menu/Menu/Menu.js.map +1 -1
  475. package/internal/Menu/Menu.d.ts +2 -0
  476. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  477. package/internal/MobilePopup/MobilePopup.d.ts +2 -0
  478. package/internal/Popup/Popup/Popup.js +14 -64
  479. package/internal/Popup/Popup/Popup.js.map +1 -1
  480. package/internal/Popup/Popup.d.ts +41 -59
  481. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  482. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  483. package/internal/Popup/PopupPin.d.ts +23 -33
  484. package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
  485. package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
  486. package/internal/Popup/PopupPinNew/package.json +6 -0
  487. package/internal/Popup/PopupPinNew.d.ts +31 -0
  488. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
  489. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
  490. package/internal/Popup/PopupPinNew.styles/package.json +6 -0
  491. package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  492. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  493. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  494. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  495. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  496. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  497. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  498. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  499. package/internal/RenderLayer/RenderLayer.d.ts +2 -3
  500. package/internal/ThemePlayground/Playground/Playground.js +4 -3
  501. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  502. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
  503. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  504. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
  505. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
  506. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  507. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  508. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  509. package/internal/ZIndex/ZIndex.d.ts +3 -3
  510. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
  511. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
  512. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
  513. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  514. package/internal/themes/BasicTheme/BasicTheme.js +170 -26
  515. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  516. package/internal/themes/BasicTheme.d.ts +112 -20
  517. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  518. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  519. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  520. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  521. package/internal/themes/DarkTheme5_3/package.json +6 -0
  522. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  523. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  524. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  525. package/internal/themes/LightTheme5_3/package.json +6 -0
  526. package/internal/themes/LightTheme5_3.d.ts +1 -0
  527. package/lib/delay.d.mts +1 -0
  528. package/lib/delay.mts +3 -0
  529. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  530. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  531. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  532. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  533. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  534. package/lib/forwardRefAndName.d.ts +1 -1
  535. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  536. package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  537. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  538. package/lib/theming/ThemeVersions.d.ts +1 -1
  539. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  540. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  541. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  542. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  543. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  544. package/lib/theming/themes/LightTheme.d.ts +1 -0
  545. package/lib/utils/utils.js +2 -0
  546. package/lib/utils/utils.js.map +1 -1
  547. package/lib/utils.d.ts +4 -0
  548. package/package.json +10 -13
  549. package/cjs/lib/SSRSafe.d.ts +0 -2
  550. package/cjs/lib/SSRSafe.js +0 -5
  551. package/cjs/lib/SSRSafe.js.map +0 -1
  552. package/lib/SSRSafe/SSRSafe.js +0 -4
  553. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  554. package/lib/SSRSafe/package.json +0 -6
  555. package/lib/SSRSafe.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["React","invariant","globalObject","ResizeDetector","isKeyArrow","isKeyArrowLeft","isKeyArrowUp","keyListener","isFunctionalComponent","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","TabsContext","TabsContextDefaultValue","globalClasses","horizontalStyles","styles","verticalStyles","TabDataTids","root","Tab","_class","_Tab","_React$Component","props","_this","call","context","getProps","defaultProps","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","_this$getProps","component","onClick","defaultPrevented","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","isTabPressed","isArrowPressed","setState","handleBlur","_inheritsLoose","_proto","prototype","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","_this2","createElement","Consumer","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","_cx","_cx2","_this$props","children","ariaDescribedby","ariaLabel","_this$getProps2","Component","isActive","isVertical","vertical","orientationStyles","_extends","rootNodeRef","setRootNode","active","className","rootSmall","size","rootMedium","rootLarge","verticalSmall","verticalMedium","verticalLarge","onBlur","onFocus","tabIndex","ref","onResize","focus","focusSmall","focusMedium","focusLarge","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["Tab.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\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 { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext';\nimport { globalClasses, horizontalStyles, styles, verticalStyles } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps {\n /** Позволяет передавать свой компонент, строку или функцию, которая заменит собой элемент используемый в компоненте по умолчанию.\n * Реализует паттерн [render prop](https://www.patterns.dev/posts/render-props-pattern). */\n component?: React.ComponentType<any> | string;\n\n /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */\n href?: string;\n\n /** Задает уникальный идентификатор таба. По нему компонент `<Tabs />` определяет какой `<Tab />` сейчас выбран. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Устанавливает визульное состояние валидации \"успех\". */\n success?: boolean;\n\n /** Задает визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Вложенный элемент компонента Tabs.\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: this.context.size === 'small',\n [styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [styles.rootLarge(this.theme)]: this.context.size === 'large',\n [styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={cx(globalClasses.focus, {\n [styles.focusSmall(this.theme)]: this.context.size === 'small',\n [styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","invariant","globalObject","ResizeDetector","isKeyArrow","isKeyArrowLeft","isKeyArrowUp","keyListener","isFunctionalComponent","ThemeContext","CommonWrapper","cx","rootNode","createPropsGetter","getVisualStateDataAttributes","TabsContext","TabsContextDefaultValue","globalClasses","horizontalStyles","styles","verticalStyles","TabDataTids","root","Tab","_class","_Tab","_React$Component","props","_this","call","context","getProps","defaultProps","state","focusedByKeyboard","tabComponent","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","_this$getProps","component","onClick","defaultPrevented","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","isTabPressed","isArrowPressed","setState","handleBlur","_inheritsLoose","_proto","prototype","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","_this2","createElement","Consumer","theme","renderMain","getIndicators","error","Boolean","warning","success","primary","_cx","_cx2","_this$props","children","ariaDescribedby","ariaLabel","_this$getProps2","Component","isActive","isVertical","vertical","orientationStyles","_extends","rootNodeRef","setRootNode","active","className","rootSmall","size","rootMedium","rootLarge","verticalSmall","verticalMedium","verticalLarge","onBlur","onFocus","tabIndex","ref","onResize","focus","focusSmall","focusMedium","focusLarge","__KONTUR_REACT_UI__","displayName","contextType"],"sources":["Tab.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport invariant from 'invariant';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\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 { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext, TabsContextDefaultValue } from './TabsContext';\nimport { globalClasses, horizontalStyles, styles, verticalStyles } from './Tab.styles';\n\nexport interface TabIndicators {\n error: boolean;\n warning: boolean;\n success: boolean;\n primary: boolean;\n disabled: boolean;\n}\n\nexport const TabDataTids = {\n root: 'Tab__root',\n} as const;\n\nexport interface TabProps<T extends string = string>\n extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n CommonProps {\n /** Позволяет передавать свой компонент, строку или функцию, которая заменит собой элемент используемый в компоненте по умолчанию.\n * Реализует паттерн [render prop](https://www.patterns.dev/posts/render-props-pattern). */\n component?: React.ComponentType<any> | string;\n\n /** Задает HTML-атрибут `href` - адрес, на который следует перейти. */\n href?: string;\n\n /** Задает уникальный идентификатор таба. По нему компонент `<Tabs />` определяет какой `<Tab />` сейчас выбран. */\n id?: T;\n\n /**`HTML`-событие `onclick`. */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** `HTML`-событие `onkeydown`. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Устанавливает визульное состояние валидации \"успех\". */\n success?: boolean;\n\n /** Задает визульное состояние главного элемента. */\n primary?: boolean;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\ntype DefaultProps = Required<Pick<TabProps, 'component' | 'href'>>;\n\n/**\n * Вложенный элемент компонента Tabs.\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n public static displayName = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static defaultProps: DefaultProps = {\n component: 'a',\n href: '',\n };\n\n private getProps = createPropsGetter(Tab.defaultProps);\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: TabProps<T>) {\n super(props);\n invariant(this.context !== TabsContextDefaultValue, 'Tab should be placed inside Tabs component');\n }\n\n public componentDidMount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.addTab(id, this.getTabInstance);\n }\n }\n\n public componentDidUpdate() {\n if (this.context.activeTab === this.props.id) {\n this.context.notifyUpdate();\n }\n }\n\n public componentWillUnmount() {\n const id = this.getId();\n if (typeof id === 'string') {\n this.context.removeTab(id);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getIndicators() {\n return {\n error: Boolean(this.props.error),\n warning: Boolean(this.props.warning),\n success: Boolean(this.props.success),\n primary: Boolean(this.props.primary),\n disabled: Boolean(this.props.disabled),\n };\n }\n\n public getUnderlyingNode = () => this.tabComponent;\n\n private renderMain() {\n const {\n children,\n disabled,\n error,\n warning,\n success,\n primary,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n const { component: Component, href } = this.getProps();\n\n let isActive = false;\n let isVertical = false;\n\n const id = this.getId();\n if (typeof id === 'string') {\n isActive = this.context.activeTab === this.getId();\n isVertical = this.context.vertical;\n }\n const orientationStyles = isVertical ? verticalStyles : horizontalStyles;\n\n return (\n <CommonWrapper\n rootNodeRef={this.setRootNode}\n {...getVisualStateDataAttributes({ active: isActive, disabled })}\n {...this.props}\n >\n <Component\n data-tid={TabDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: this.context.size === 'small',\n [styles.rootMedium(this.theme)]: this.context.size === 'medium',\n [styles.rootLarge(this.theme)]: this.context.size === 'large',\n [styles.verticalSmall(this.theme)]: !!isVertical && this.context.size === 'small',\n [styles.verticalMedium(this.theme)]: !!isVertical && this.context.size === 'medium',\n [styles.verticalLarge(this.theme)]: !!isVertical && this.context.size === 'large',\n [orientationStyles.primary(this.theme)]: !!primary,\n [orientationStyles.success(this.theme)]: !!success,\n [orientationStyles.warning(this.theme)]: !!warning,\n [orientationStyles.error(this.theme)]: !!error,\n [styles.active()]: !!isActive,\n [orientationStyles.active(this.theme)]: !!isActive,\n [styles.disabled(this.theme)]: !!disabled,\n [orientationStyles.disabled()]: !!disabled,\n })}\n onBlur={this.handleBlur}\n onClick={this.switchTab}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n tabIndex={disabled ? -1 : 0}\n ref={isFunctionalComponent(Component) ? null : this.refTabComponent}\n href={href}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && (\n <div\n className={cx(globalClasses.focus, {\n [styles.focusSmall(this.theme)]: this.context.size === 'small',\n [styles.focusMedium(this.theme)]: this.context.size === 'medium',\n [styles.focusLarge(this.theme)]: this.context.size === 'large',\n })}\n />\n )}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.getProps().href;\n\n private refTabComponent = (instance: React.ReactElement<any>) => {\n this.tabComponent = instance;\n };\n\n private getTabInstance = () => this;\n\n private switchTab = (event: React.MouseEvent<HTMLElement>) => {\n if (this.props.disabled) {\n event.preventDefault();\n return;\n }\n const { href, component } = this.getProps();\n\n const id = this.props.id || href;\n if (this.props.onClick) {\n this.props.onClick(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (typeof id === 'string') {\n this.context.switchTab(id);\n }\n if (component === 'a' && !href) {\n event.preventDefault();\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n }\n const id = this.getId();\n if (typeof id !== 'string') {\n return;\n }\n if (!isKeyArrow(e)) {\n return;\n }\n e.preventDefault();\n const delta = isKeyArrowLeft(e) || isKeyArrowUp(e) ? -1 : 1;\n this.context.shiftFocus(id, delta);\n };\n\n private handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n // focus event fires before keyDown eventlistener\n // so we should check focusKeyPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed || keyListener.isArrowPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n };\n\n private handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focusedByKeyboard: false });\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@ import type { AriaAttributes } from 'react';
2
2
  import React from 'react';
3
3
  import type { Nullable } from '../../typings/utility-types';
4
4
  import type { CommonProps } from '../../internal/CommonWrapper';
5
+ import type { TGetRootNode } from '../../lib/rootNode';
5
6
  import type { TabsContextType } from './TabsContext';
6
7
  export interface TabIndicators {
7
8
  error: boolean;
@@ -53,6 +54,7 @@ export declare class Tab<T extends string = string> extends React.Component<TabP
53
54
  state: TabState;
54
55
  private theme;
55
56
  private tabComponent;
57
+ getRootNode: TGetRootNode;
56
58
  private setRootNode;
57
59
  constructor(props: TabProps<T>);
58
60
  componentDidMount(): void;
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","isInstanceOf","Indicator","styles","TabsContext","Tab","TabsDataTids","root","indicatorRoot","Tabs","_class","_Tabs","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","_this2","findIndex","x","id","newIndex","Math","max","min","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","_this$props","props","onValueChange","value","getTab","_ref","find","_ref$getNode","addTab","removeTab","filter","_inheritsLoose","_proto","prototype","render","_this3","_this$props2","width","children","indicatorClassName","ariaDescribedby","_this$getProps","vertical","size","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","className","rootSmall","rootMedium","rootLarge","style","Provider","activeTab","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Tabs.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport { Tab } from './Tab';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Задает кастомный класс подчёркиванию таба. */\n indicatorClassName?: string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает текущий активный `<Tab />`. Принимает `id` таба. */\n value: T;\n\n /** Задает функцию, изменяющую текущий активный `<Tab />`. */\n onValueChange?: (value: T) => void;\n\n /** Задает расположение элементов по вертикали.\n * @default false */\n vertical?: boolean;\n\n /** Задает ширину компонента Tabs. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Родитель компонента Tab. Связывает `Tab`'ы в группу и позволяет управлять их состоянием, помогают в навигации.\n *\n * Используйте `Tabs` для второстепенной навигации, для группировки или фильтрации контента.\n *\n * Не используйте `Tabs` для основной навигации. Для этого лучше подходит главное меню на цветной плашке — оно более заметно на странице.\n * Не используйте `Tabs` для переключения состояний — для этого есть RadioGroup, Toggle и Switcher.\n */\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: size === 'small',\n [styles.rootMedium(this.theme)]: size === 'medium',\n [styles.rootLarge(this.theme)]: size === 'large',\n [styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","ThemeContext","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","isInstanceOf","Indicator","styles","TabsContext","Tab","TabsDataTids","root","indicatorRoot","Tabs","_class","_Tabs","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","_this2","findIndex","x","id","newIndex","Math","max","min","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","_this$props","props","onValueChange","value","getTab","_ref","find","_ref$getNode","addTab","removeTab","filter","_inheritsLoose","_proto","prototype","render","_this3","_this$props2","width","children","indicatorClassName","ariaDescribedby","_this$getProps","vertical","size","createElement","Consumer","theme","_cx","_extends","rootNodeRef","setRootNode","className","rootSmall","rootMedium","rootLarge","style","Provider","activeTab","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Tabs.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\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 { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport type { TabsContextType } from './TabsContext';\nimport { TabsContext } from './TabsContext';\nimport { Tab } from './Tab';\n\ntype ValueBaseType = string;\ninterface TabType<T extends ValueBaseType> {\n getNode: () => Tab<T> | null;\n id: T;\n}\n\nexport interface TabsProps<T extends ValueBaseType = string> extends CommonProps {\n /** Задает кастомный класс подчёркиванию таба. */\n indicatorClassName?: string;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Задает текущий активный `<Tab />`. Принимает `id` таба. */\n value: T;\n\n /** Задает функцию, изменяющую текущий активный `<Tab />`. */\n onValueChange?: (value: T) => void;\n\n /** Задает расположение элементов по вертикали.\n * @default false */\n vertical?: boolean;\n\n /** Задает ширину компонента Tabs. */\n width?: number | string;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const TabsDataTids = {\n root: 'Tabs__root',\n indicatorRoot: 'Indicator__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TabsProps, 'vertical' | 'size'>>;\n\n/**\n * Родитель компонента Tab. Связывает `Tab`'ы в группу и позволяет управлять их состоянием, помогают в навигации.\n *\n * Используйте `Tabs` для второстепенной навигации, для группировки или фильтрации контента.\n *\n * Не используйте `Tabs` для основной навигации. Для этого лучше подходит главное меню на цветной плашке — оно более заметно на странице.\n * Не используйте `Tabs` для переключения состояний — для этого есть RadioGroup, Toggle и Switcher.\n */\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n public static displayName = 'Tabs';\n\n public static defaultProps: DefaultProps = {\n vertical: false,\n size: 'large',\n };\n\n private getProps = createPropsGetter(Tabs.defaultProps);\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<TabType<T>> = [];\n\n private tabUpdates = {\n on: (cb: () => void) => {\n const index = this.listeners.push(cb);\n return () => {\n this.listeners.splice(index, 1);\n };\n },\n };\n\n private listeners: Array<typeof emptyHandler> = [];\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { value, width, children, indicatorClassName, 'aria-describedby': ariaDescribedby } = this.props;\n const { vertical, size } = this.getProps();\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={TabsDataTids.root}\n className={cx({\n [styles.rootSmall(this.theme)]: size === 'small',\n [styles.rootMedium(this.theme)]: size === 'medium',\n [styles.rootLarge(this.theme)]: size === 'large',\n [styles.vertical()]: vertical,\n })}\n style={{ width }}\n aria-describedby={ariaDescribedby}\n >\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\n size,\n getTab: this.getTab,\n addTab: this.addTab,\n removeTab: this.removeTab,\n notifyUpdate: this.notifyUpdate,\n shiftFocus: this.shiftFocus,\n switchTab: this.switchTab,\n }}\n >\n {children}\n <Indicator\n className={indicatorClassName}\n tabUpdates={this.tabUpdates}\n vertical={this.getProps().vertical}\n />\n </TabsContext.Provider>\n </div>\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private shiftFocus: TabsContextType<T>['shiftFocus'] = (fromTab, delta) => {\n const { tabs } = this;\n const index = tabs.findIndex((x) => x.id === fromTab);\n const newIndex = Math.max(0, Math.min(index + delta, tabs.length - 1));\n const tab = tabs[newIndex];\n\n const tabNode = tab.getNode();\n const htmlNode = getRootNode(tabNode);\n\n if (isInstanceOf(htmlNode, globalObject.HTMLElement) && typeof htmlNode.focus === 'function') {\n htmlNode.focus();\n }\n };\n\n private notifyUpdate: TabsContextType<T>['notifyUpdate'] = () => {\n this.listeners.forEach((cb) => cb());\n };\n\n private switchTab: TabsContextType<T>['switchTab'] = (id) => {\n const { onValueChange, value } = this.props;\n if (id !== value && onValueChange) {\n onValueChange(id);\n }\n };\n\n private getTab: TabsContextType<T>['getTab'] = (id) => {\n const { getNode = null } = this.tabs.find((x) => x.id === id) || {};\n return getNode && getNode();\n };\n\n private addTab: TabsContextType<T>['addTab'] = (id, getNode) => {\n this.tabs = this.tabs.concat({ id, getNode });\n };\n\n private removeTab: TabsContextType<T>['removeTab'] = (id) => {\n this.tabs = this.tabs.filter((tab) => tab.id !== id);\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import type { AriaAttributes } from 'react';
2
2
  import React from 'react';
3
3
  import type { CommonProps } from '../../internal/CommonWrapper';
4
+ import type { TGetRootNode } from '../../lib/rootNode';
4
5
  import type { SizeProp } from '../../lib/types/props';
5
6
  import { Tab } from './Tab';
6
7
  type ValueBaseType = string;
@@ -44,6 +45,7 @@ export declare class Tabs<T extends string = string> extends React.Component<Tab
44
45
  private tabs;
45
46
  private tabUpdates;
46
47
  private listeners;
48
+ getRootNode: TGetRootNode;
47
49
  private setRootNode;
48
50
  render(): JSX.Element;
49
51
  private shiftFocus;
@@ -4,7 +4,6 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _excluded = ["width", "error", "warning", "size", "autoResize", "resize", "onCut", "onPaste", "maxRows", "onFocus", "selectAllOnFocus", "placeholder", "onValueChange", "showLengthCounter", "lengthCounter", "counterHelp", "extraRow", "disableAnimations", "disabled"];
5
5
  var _class, _Textarea;
6
6
  import React from 'react';
7
- import PropTypes from 'prop-types';
8
7
  import throttle from 'lodash.throttle';
9
8
  import { globalObject } from '@skbkontur/global-object';
10
9
  import { isKeyEnter } from "../../../lib/events/keyboard/identifiers";
@@ -387,49 +386,7 @@ export var Textarea = rootNode(_class = (_Textarea = /*#__PURE__*/function (_Rea
387
386
  }
388
387
  };
389
388
  return Textarea;
390
- }(React.Component), _Textarea.__KONTUR_REACT_UI__ = 'Textarea', _Textarea.displayName = 'Textarea', _Textarea.propTypes = {
391
- error: PropTypes.bool,
392
- warning: PropTypes.bool,
393
- disabled: PropTypes.bool,
394
- autoResize: PropTypes.bool,
395
- extraRow: PropTypes.bool,
396
- disableAnimations: PropTypes.bool,
397
- maxRows: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
398
- resize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
399
- width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
400
- id: PropTypes.string,
401
- name: PropTypes.string,
402
- title: PropTypes.string,
403
- spellCheck: PropTypes.bool,
404
- role: PropTypes.string,
405
- maxLength: PropTypes.number,
406
- tabIndex: PropTypes.number,
407
- rows: PropTypes.number,
408
- placeholder: PropTypes.string,
409
- value: PropTypes.string,
410
- defaultValue: PropTypes.string,
411
- onValueChange: PropTypes.func,
412
- onMouseEnter: PropTypes.func,
413
- onMouseLeave: PropTypes.func,
414
- onMouseOver: PropTypes.func,
415
- onMouseMove: PropTypes.func,
416
- onMouseOut: PropTypes.func,
417
- onMouseUp: PropTypes.func,
418
- onMouseDown: PropTypes.func,
419
- onClick: PropTypes.func,
420
- onDoubleClick: PropTypes.func,
421
- onKeyDown: PropTypes.func,
422
- onKeyPress: PropTypes.func,
423
- onKeyUp: PropTypes.func,
424
- onInput: PropTypes.func,
425
- onFocus: PropTypes.func,
426
- onBlur: PropTypes.func,
427
- onScroll: PropTypes.func,
428
- onWheel: PropTypes.func,
429
- onCut: PropTypes.func,
430
- onPaste: PropTypes.func,
431
- onCopy: PropTypes.func
432
- }, _Textarea.defaultProps = {
389
+ }(React.Component), _Textarea.__KONTUR_REACT_UI__ = 'Textarea', _Textarea.displayName = 'Textarea', _Textarea.defaultProps = {
433
390
  rows: 3,
434
391
  maxRows: 15,
435
392
  extraRow: true,
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","node","Error","document","activeElement","focus","selectAll","value","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","fakeNode","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName","propTypes","bool","oneOfType","string","number","id","name","title","spellCheck","role","tabIndex","func","onMouseEnter","onMouseLeave","onMouseOver","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onClick","onDoubleClick","onKeyPress","onKeyUp","onInput","onBlur","onScroll","onWheel","onCopy"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\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';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations' | 'size'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n@rootNode\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static propTypes = {\n error: PropTypes.bool,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n\n autoResize: PropTypes.bool,\n extraRow: PropTypes.bool,\n disableAnimations: PropTypes.bool,\n maxRows: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n resize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n id: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n spellCheck: PropTypes.bool,\n role: PropTypes.string,\n maxLength: PropTypes.number,\n tabIndex: PropTypes.number,\n rows: PropTypes.number,\n placeholder: PropTypes.string,\n\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n onValueChange: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onInput: PropTypes.func,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n onScroll: PropTypes.func,\n onWheel: PropTypes.func,\n\n onCut: PropTypes.func,\n onPaste: PropTypes.func,\n onCopy: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\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 /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.getProps().size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","node","Error","document","activeElement","focus","selectAll","value","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","fakeNode","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\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';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations' | 'size'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n@rootNode\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\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 /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.getProps().size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,SAASC,YAAY,QAAQ,0BAA0B;;AAEvD,SAASC,UAAU,QAAQ,uCAAuC;AAClE,SAASC,wBAAwB,QAAQ,oCAAoC;AAC7E,OAAO,KAAKC,YAAY,MAAM,wBAAwB;;AAEtD,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,WAAW,QAAQ,4BAA4B;AACxD,SAASC,cAAc,QAAQ,+BAA+B;AAC9D,SAASC,MAAM,EAAEC,uBAAuB,QAAQ,kBAAkB;;AAElE,SAASC,aAAa,QAAQ,8BAA8B;AAC5D,SAASC,SAAS,QAAQ,8BAA8B;AACxD,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,iBAAiB,QAAQ,6BAA6B;;;AAG/D,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,MAAM,QAAQ,mBAAmB;;AAE1C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,8BAA8B,QAAQ,kCAAkC;;AAEjF,IAAMC,aAAa,GAAG,GAAG;AACzB,IAAMC,gCAAgC,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwE5C,OAAO,IAAMC,gBAAgB,GAAG;EAC9BC,IAAI,EAAE,gBAAgB;EACtBC,OAAO,EAAE,uBAAuB;EAChCC,QAAQ,EAAE;AACZ,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACaC,QAAQ,GADpBZ,QAAQ,CAAAa,MAAA,IAAAC,SAAA,0BAAAC,gBAAA,YAAAH,SAAA,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;;;;;;;;;;;;IAaCU,QAAQ,GAAGzB,iBAAiB,CAACW,QAAQ,CAACe,YAAY,CAAC,CAAAX,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BpDY,KAAK,GAAG;MACbtC,wBAAwB,EAAxBA,wBAAwB;MACxBuC,gBAAgB,EAAE;IACpB,CAAC,CAAAb,KAAA;IACOc,aAAa,GAAG,YAAM;MAC5B,IAAId,KAAA,CAAKN,OAAO,EAAE;QAChBM,KAAA,CAAKN,OAAO,CAACqB,MAAM,CAAC,CAAC;MACvB;IACF,CAAC,CAAAf,KAAA;;;IAGOgB,WAAW,GAAkB,IAAI,CAAAhB,KAAA;;;;;IAKjCiB,gBAAgB,GAAG7C,YAAY,CAAC8C,gBAAgB;IACpD,IAAI9C,YAAY,CAAC8C,gBAAgB,CAAClB,KAAA,CAAKc,aAAa,CAAC;IACrD,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgFR;AACF;AACA;AACA;AACA,OAJEd,KAAA;IAKOmB,iBAAiB,GAAG,UAACC,KAAa,EAAEC,GAAW,EAAK,KAAAC,qBAAA;MACzD,IAAI,CAACtB,KAAA,CAAKuB,IAAI,EAAE;QACd,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;MACvE;;MAEA,IAAI,EAAAF,qBAAA,GAAAlD,YAAY,CAACqD,QAAQ,qBAArBH,qBAAA,CAAuBI,aAAa,MAAK1B,KAAA,CAAKuB,IAAI,EAAE;QACtDvB,KAAA,CAAK2B,KAAK,CAAC,CAAC;MACd;;MAEA3B,KAAA,CAAKuB,IAAI,CAACJ,iBAAiB,CAACC,KAAK,EAAEC,GAAG,CAAC;IACzC,CAAC;;IAED;AACF;AACA,OAFErB,KAAA;IAGO4B,SAAS,GAAG,YAAM;MACvB,IAAI5B,KAAA,CAAKuB,IAAI,EAAE;QACbvB,KAAA,CAAKmB,iBAAiB,CAAC,CAAC,EAAEnB,KAAA,CAAKuB,IAAI,CAACM,KAAK,CAAC1B,MAAM,CAAC;MACnD;IACF,CAAC,CAAAH,KAAA;;IAEO8B,cAAc,GAAG,iBAAAC,qBAAA;QACtB/B,KAAA,CAAKgB,WAAW,IAAAe,qBAAA,GAAG3D,YAAY,CAAC4D,qBAAqB,oBAAlC5D,YAAY,CAAC4D,qBAAqB,CAAGhC,KAAA,CAAK4B,SAAS,CAAC,YAAAG,qBAAA,GAAI,IAAI,GAAC,CAAA/B,KAAA;;IAE3EiC,sBAAsB,GAAG,YAAY;MAC3C,IAAIjC,KAAA,CAAKgB,WAAW,EAAE;QACpB5C,YAAY,CAAC8D,oBAAoB,YAAjC9D,YAAY,CAAC8D,oBAAoB,CAAGlC,KAAA,CAAKgB,WAAW,CAAC;QACrDhB,KAAA,CAAKgB,WAAW,GAAG,IAAI;MACzB;IACF,CAAC,CAAAhB,KAAA;;IAEOmC,UAAU,GAAG,UAACC,KAA4C,EAAK,KAAAC,GAAA,EAAAC,IAAA,EAAAC,qBAAA,EAAAC,IAAA;MACrE,IAAAC,YAAA;;;;;;;;;;;;;;;;;;;;;QAqBIL,KAAK,CApBPM,KAAK,CAALA,KAAK,GAAAD,YAAA,cAAGnD,aAAa,GAAAmD,YAAA,CACrBE,KAAK,GAmBHP,KAAK,CAnBPO,KAAK,CACLC,OAAO,GAkBLR,KAAK,CAlBPQ,OAAO,CACPC,IAAI,GAiBFT,KAAK,CAjBPS,IAAI,CACJC,UAAU,GAgBRV,KAAK,CAhBPU,UAAU,CACVC,MAAM,GAeJX,KAAK,CAfPW,MAAM,CACNC,KAAK,GAcHZ,KAAK,CAdPY,KAAK,CACLC,OAAO,GAaLb,KAAK,CAbPa,OAAO,CACPC,OAAO,GAYLd,KAAK,CAZPc,OAAO,CACPC,OAAO,GAWLf,KAAK,CAXPe,OAAO,CACPC,gBAAgB,GAUdhB,KAAK,CAVPgB,gBAAgB,CAChBC,WAAW,GASTjB,KAAK,CATPiB,WAAW,CACXC,aAAa,GAQXlB,KAAK,CARPkB,aAAa,CACbC,iBAAiB,GAOfnB,KAAK,CAPPmB,iBAAiB,CACjBC,aAAa,GAMXpB,KAAK,CANPoB,aAAa,CACbC,WAAW,GAKTrB,KAAK,CALPqB,WAAW,CACXC,QAAQ,GAINtB,KAAK,CAJPsB,QAAQ,CACRC,iBAAiB,GAGfvB,KAAK,CAHPuB,iBAAiB,CACjBC,QAAQ,GAENxB,KAAK,CAFPwB,QAAQ,CACLC,aAAa,GAAAC,6BAAA,CACd1B,KAAK,EAAA2B,SAAA;;MAET,IAAQlD,gBAAgB,GAAKb,KAAA,CAAKY,KAAK,CAA/BC,gBAAgB;;MAExB,IAAMmD,SAAS,GAAG;QAChBC,KAAK,EAAE;UACLvB,KAAK,EAALA;QACF;MACF,CAAC;;MAED,IAAMwB,kBAAkB,GAAGnF,EAAE,CAACiB,KAAA,CAAKmE,wBAAwB,CAAC,CAAC,GAAA9B,GAAA,OAAAA,GAAA;MAC1DlD,MAAM,CAACiF,QAAQ,CAACpE,KAAA,CAAKqE,KAAK,CAAC,IAAG,IAAI,EAAAhC,GAAA;MAClClD,MAAM,CAACmF,QAAQ,CAACtE,KAAA,CAAKqE,KAAK,CAAC,IAAG,CAAC1B,KAAK,IAAI,CAACC,OAAO,EAAAP,GAAA;MAChDlD,MAAM,CAACyE,QAAQ,CAAC5D,KAAA,CAAKqE,KAAK,CAAC,IAAGT,QAAQ,EAAAvB,GAAA;MACtClD,MAAM,CAACwD,KAAK,CAAC3C,KAAA,CAAKqE,KAAK,CAAC,IAAG,CAAC,CAAC1B,KAAK,EAAAN,GAAA;MAClClD,MAAM,CAACyD,OAAO,CAAC5C,KAAA,CAAKqE,KAAK,CAAC,IAAG,CAAC,CAACzB,OAAO,EAAAP,GAAA;MACtClD,MAAM,CAACwE,iBAAiB,CAAC,CAAC,IAAG3D,KAAA,CAAKuE,oBAAoB,CAAC,CAAC,EAAAlC,GAAA;MAC1D,CAAC;;MAEF,IAAMmC,aAAa,GAAG;QACpBzB,MAAM,EAAED,UAAU,GAAG,MAAM,GAAGC;MAChC,CAAC;;MAED,IAAI0B,mBAAmB,GAAG,IAAI;;MAE9B,IAAIzE,KAAA,CAAKY,KAAK,CAACtC,wBAAwB,IAAI,CAACuF,aAAa,CAAChC,KAAK,IAAI,CAACgC,aAAa,CAACa,YAAY,EAAE;QAC9FD,mBAAmB,gBAAGvG,KAAA,CAAAyG,aAAA,WAAMC,SAAS,EAAEzF,MAAM,CAACkE,WAAW,CAAC,CAAE,IAAEA,WAAkB,CAAC;MACnF;;MAEA,IAAIwB,YAAY,GAAG,IAAI;MACvB,IAAI/B,UAAU,EAAE;QACd,IAAMgC,SAAS,GAAG;UAChBjD,KAAK,EAAE7B,KAAA,CAAKoC,KAAK,CAACP,KAAK;UACvB6C,YAAY,EAAE1E,KAAA,CAAKoC,KAAK,CAACsC,YAAY;UACrCE,SAAS,EAAE7F,EAAE,CAACmF,kBAAkB,EAAE/E,MAAM,CAAC4F,IAAI,CAAC,CAAC,CAAC;UAChDC,QAAQ,EAAE;QACZ,CAAC;QACDH,YAAY,gBAAG3G,KAAA,CAAAyG,aAAA,aAAAM,QAAA,KAAcH,SAAS,IAAEI,GAAG,EAAElF,KAAA,CAAKmF,OAAQ,GAAE,CAAC;MAC/D;;MAEA,IAAMzF,OAAO,GAAG6D,iBAAiB,IAAI1C,gBAAgB,IAAIb,KAAA,CAAKuB,IAAI;MAChErD,KAAA,CAAAyG,aAAA,CAACvF,eAAe;QACdgF,QAAQ,EAAEpE,KAAA,CAAKuB,IAAK;QACpBsB,IAAI,EAAE7C,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACmC,IAAK;QAC3BuC,IAAI,EAAE3B,WAAY;QAClB5B,KAAK,EAAEgC,aAAa,CAAChC,KAAM;QAC3B1B,MAAM,GAAAmC,IAAA,IAAAC,qBAAA,GAAEsB,aAAa,CAACwB,SAAS,YAAA9C,qBAAA,GAAIiB,aAAa,YAAAlB,IAAA,GAAI,CAAE;QACtDgD,WAAW,EAAEtF,KAAA,CAAKuF,sBAAuB;QACzCL,GAAG,EAAElF,KAAA,CAAKwF,UAAW;MACtB,CACF;;;MAED,IAAMC,SAAS,GAAG7G,uBAAuB,GAAGS,8BAA8B,GAAG,UAAU;;MAEvF;QACEnB,KAAA,CAAAyG,aAAA,CAAClG,WAAW;UACViH,cAAc,EAAE1F,KAAA,CAAKuF,sBAAuB;UAC5CI,cAAc,EAAE3F,KAAA,CAAKuF,sBAAuB;UAC5CK,MAAM,EAAE5F,KAAA,CAAKY,KAAK,CAACC,gBAAiB;;QAEpC3C,KAAA,CAAAyG,aAAA,UAAAM,QAAA;UACE,YAAUzF,gBAAgB,CAACC,IAAK;QAC5BuE,SAAS;UACbY,SAAS,EAAE7F,EAAE,CAACiB,KAAA,CAAK6F,oBAAoB,CAAC,CAAC,GAAArD,IAAA,OAAAA,IAAA;UACtCrD,MAAM,CAACM,IAAI,CAAC,CAAC,IAAG,IAAI,EAAA+C,IAAA;UACtB,CAAE;;QAEFiC,mBAAmB;QACpBvG,KAAA,CAAAyG,aAAA,CAACjG,cAAc,IAACoH,QAAQ,EAAE9F,KAAA,CAAKc,aAAc;QAC3C5C,KAAA,CAAAyG,aAAA,CAACc,SAAS,EAAAR,QAAA;QACJpB,aAAa;UACjBe,SAAS,EAAEV,kBAAmB;UAC9BD,KAAK,EAAEO,aAAc;UACrBnB,WAAW,EAAE,CAACoB,mBAAmB,GAAGpB,WAAW,GAAG0C,SAAU;UAC5Db,GAAG,EAAElF,KAAA,CAAKkF,GAAI;UACdc,QAAQ,EAAEhG,KAAA,CAAKiG,YAAa;UAC5BjD,KAAK,EAAEhD,KAAA,CAAKkG,SAAU;UACtBjD,OAAO,EAAEjD,KAAA,CAAKmG,WAAY;UAC1BhD,OAAO,EAAEnD,KAAA,CAAKoG,WAAY;UAC1BC,SAAS,EAAErG,KAAA,CAAKsG,aAAc;UAC9B1C,QAAQ,EAAEA,QAAS;;QAElB5D,KAAA,CAAKoC,KAAK,CAACmE;QACH;QACG,CAAC;QAChB1B,YAAY;QACZnF;QACI;QACI,CAAC;;IAElB,CAAC,CAAAM,KAAA;;IAEOuF,sBAAsB,GAAG,oBAAMvF,KAAA,CAAKwG,QAAQ,CAAC,EAAE3F,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAAb,KAAA;;IAEzEsG,aAAa,GAAG,UAACG,CAA2C,EAAK;MACvE;MACA;MACA,IAAM5E,KAAK,GAAG7B,KAAA,CAAKoC,KAAK,CAACP,KAAK,KAAKkE,SAAS,GAAG/F,KAAA,CAAKoC,KAAK,CAACP,KAAK,CAAC6E,QAAQ,CAAC,CAAC,GAAG,IAAI;MACjF,IAAMC,YAAY,GAAGtI,UAAU,CAACoI,CAAC,CAAC,IAAI5E,KAAK,KAAK,IAAI,IAAIA,KAAK,CAAC1B,MAAM,KAAKH,KAAA,CAAKoC,KAAK,CAACiD,SAAS;;MAE7F,IAAIsB,YAAY,EAAE;QAChBF,CAAC,CAACG,cAAc,CAAC,CAAC;MACpB;;MAEA,IAAI5G,KAAA,CAAKoC,KAAK,CAACiE,SAAS,EAAE;QACxBrG,KAAA,CAAKoC,KAAK,CAACiE,SAAS,CAACI,CAAC,CAAC;MACzB;IACF,CAAC,CAAAzG,KAAA;;IAEOiG,YAAY,GAAG,UAACQ,CAAyC,EAAK;MACpE,IAAInI,wBAAwB,EAAE;QAC5B,IAAMuI,YAAY,GAAGJ,CAAC,CAACK,MAAM,CAACjF,KAAK,KAAK,EAAE;;QAE1C,IAAI7B,KAAA,CAAKY,KAAK,CAACtC,wBAAwB,KAAKuI,YAAY,EAAE;UACxD7G,KAAA,CAAKwG,QAAQ,CAAC,EAAElI,wBAAwB,EAAEuI,YAAY,CAAC,CAAC,CAAC;QAC3D;MACF;;MAEA,IAAI7G,KAAA,CAAKoC,KAAK,CAACkB,aAAa,EAAE;QAC5BtD,KAAA,CAAKoC,KAAK,CAACkB,aAAa,CAACmD,CAAC,CAACK,MAAM,CAACjF,KAAK,CAAC;MAC1C;;MAEA,IAAI7B,KAAA,CAAKoC,KAAK,CAACU,UAAU,EAAE;QACzB9C,KAAA,CAAK8C,UAAU,CAAC,CAAC;MACnB;;MAEA,IAAI9C,KAAA,CAAKoC,KAAK,CAAC4D,QAAQ,EAAE;QACvBhG,KAAA,CAAKoC,KAAK,CAAC4D,QAAQ,CAACS,CAAC,CAAC;MACxB;;MAEAzG,KAAA,CAAKc,aAAa,CAAC,CAAC;IACtB,CAAC,CAAAd,KAAA;;IAEOkF,GAAG,GAAG,UAAC6B,OAA4B,EAAK;MAC9C/G,KAAA,CAAKuB,IAAI,GAAGwF,OAAO;IACrB,CAAC,CAAA/G,KAAA;;IAEOmF,OAAO,GAAG,UAAC4B,OAA4B,EAAK;MAClD/G,KAAA,CAAKgH,QAAQ,GAAGD,OAAO;IACzB,CAAC,CAAA/G,KAAA;;IAEOwF,UAAU,GAAG,UAACN,GAA8B,EAAK;MACvDlF,KAAA,CAAKN,OAAO,GAAGwF,GAAG;IACpB,CAAC,CAAAlF,KAAA;;IAEOiH,iBAAiB,GAAG,YAAM;MAChC,IAAMD,QAAQ,GAAGhH,KAAA,CAAKgH,QAAQ;MAC9B,IAAI,CAACA,QAAQ,EAAE;QACb;MACF;MACA,IAAMzF,IAAI,GAAGvB,KAAA,CAAKuB,IAAI;MACtB,IAAI,CAACA,IAAI,EAAE;QACT;MACF;MACA,IAAIvB,KAAA,CAAKoC,KAAK,CAACP,KAAK,KAAKkE,SAAS,EAAE;QAClCiB,QAAQ,CAACnF,KAAK,GAAGN,IAAI,CAACM,KAAK;MAC7B;;MAEA,IAAAqF,cAAA,GAA0BlH,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAAjCyG,IAAI,GAAAD,cAAA,CAAJC,IAAI,CAAEjE,OAAO,GAAAgE,cAAA,CAAPhE,OAAO;MACrB,IAAIiE,IAAI,KAAKpB,SAAS,IAAI7C,OAAO,KAAK6C,SAAS,EAAE;QAC/C;MACF;;MAEA,IAAAqB,KAAA;QACElI,iBAAiB,CAAC;UAChBqC,IAAI,EAAEyF,QAAQ;UACdK,OAAO,EAAE,OAAOF,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGG,QAAQ,CAACH,IAAI,EAAE,EAAE,CAAC;UAC7DjE,OAAO,EAAE,OAAOA,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAGoE,QAAQ,CAACpE,OAAO,EAAE,EAAE,CAAC;UACtEQ,QAAQ,EAAE1D,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACgD;QAC5B,CAAC,CAAC,IAAI,CAAC,CAAC,CANF6D,MAAM,GAAAH,KAAA,CAANG,MAAM,CAAEC,iBAAiB,GAAAJ,KAAA,CAAjBI,iBAAiB;;MAQjC,IAAID,MAAM,KAAKxB,SAAS,IAAIyB,iBAAiB,KAAKzB,SAAS,EAAE;QAC3D;MACF;;MAEAxE,IAAI,CAAC0C,KAAK,CAACsD,MAAM,GAAGA,MAAM,GAAG,IAAI;MACjChG,IAAI,CAAC0C,KAAK,CAACwD,SAAS,GAAGD,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;MAC9DR,QAAQ,CAAC/C,KAAK,CAACwD,SAAS,GAAGD,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;IACpE,CAAC,CAAAxH,KAAA;;IAEO8C,UAAU,GAAG3E,QAAQ,CAAC6B,KAAA,CAAKiH,iBAAiB,EAAEjH,KAAA,CAAK0H,yBAAyB,CAAC,CAAC,CAAC,CAAA1H,KAAA;;IAE/EkG,SAAS,GAAG,UAACyB,KAAgD,EAAK;MACxE,IAAI3H,KAAA,CAAKoC,KAAK,CAACU,UAAU,EAAE;QACzB9C,KAAA,CAAK8C,UAAU,CAAC,CAAC;MACnB;;MAEA,IAAI9C,KAAA,CAAKoC,KAAK,CAACY,KAAK,EAAE;QACpBhD,KAAA,CAAKoC,KAAK,CAACY,KAAK,CAAC2E,KAAK,CAAC;MACzB;;MAEA3H,KAAA,CAAKc,aAAa,CAAC,CAAC;IACtB,CAAC,CAAAd,KAAA;;IAEOmG,WAAW,GAAG,UAACwB,KAAgD,EAAK;MAC1E,IAAI3H,KAAA,CAAKoC,KAAK,CAACU,UAAU,EAAE;QACzB9C,KAAA,CAAK8C,UAAU,CAAC,CAAC;MACnB;;MAEA,IAAI9C,KAAA,CAAKoC,KAAK,CAACa,OAAO,EAAE;QACtBjD,KAAA,CAAKoC,KAAK,CAACa,OAAO,CAAC0E,KAAK,CAAC;MAC3B;;MAEA3H,KAAA,CAAKc,aAAa,CAAC,CAAC;IACtB,CAAC,CAAAd,KAAA;;IAEOoG,WAAW,GAAG,UAACuB,KAA4C,EAAK;MACtE3H,KAAA,CAAKwG,QAAQ,CAAC,EAAE3F,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;;MAEzC,IAAIb,KAAA,CAAKoC,KAAK,CAACgB,gBAAgB,EAAE;QAC/B;QACApD,KAAA,CAAKuB,IAAI,IAAI,CAAC5C,MAAM,GAAGqB,KAAA,CAAK4B,SAAS,CAAC,CAAC,GAAG5B,KAAA,CAAK8B,cAAc,CAAC,CAAC;MACjE;;MAEA,IAAI9B,KAAA,CAAKoC,KAAK,CAACe,OAAO,EAAE;QACtBnD,KAAA,CAAKoC,KAAK,CAACe,OAAO,CAACwE,KAAK,CAAC;MAC3B;IACF,CAAC,QAAA3H,KAAA,EAAA4H,cAAA,CAAAhI,QAAA,EAAAG,gBAAA,MAAA8H,MAAA,GAAAjI,QAAA,CAAAkI,SAAA,CAAAD,MAAA,CA7YOhC,oBAAoB,GAA5B,SAAAA,qBAAA,EAA+B,CAC7B,QAAQ,IAAI,CAACnF,QAAQ,CAAC,CAAC,CAACmC,IAAI,GAC1B,KAAK,OAAO,CACV,OAAO1D,MAAM,CAAC4I,SAAS,CAAC,IAAI,CAAC1D,KAAK,CAAC,CACrC,KAAK,QAAQ,CACX,OAAOlF,MAAM,CAAC6I,UAAU,CAAC,IAAI,CAAC3D,KAAK,CAAC,CACtC,KAAK,OAAO,CACZ,QACE,OAAOlF,MAAM,CAAC8I,SAAS,CAAC,IAAI,CAAC5D,KAAK,CAAC,CACvC,CACF,CAAC,CAAAwD,MAAA,CAEO1D,wBAAwB,GAAhC,SAAAA,yBAAA,EAAmC,CACjC,QAAQ,IAAI,CAACzD,QAAQ,CAAC,CAAC,CAACmC,IAAI,GAC1B,KAAK,OAAO,CACV,OAAO1D,MAAM,CAAC+I,aAAa,CAAC,IAAI,CAAC7D,KAAK,CAAC,CACzC,KAAK,QAAQ,CACX,OAAOlF,MAAM,CAACgJ,cAAc,CAAC,IAAI,CAAC9D,KAAK,CAAC,CAC1C,KAAK,OAAO,CACZ,QACE,OAAOlF,MAAM,CAACiJ,aAAa,CAAC,IAAI,CAAC/D,KAAK,CAAC,CAC3C,CACF,CAAC,CAAAwD,MAAA,CAuBOH,yBAAyB,GAAjC,SAAAA,0BAAkCtF,KAAoB,EAAuB,KAA3CA,KAAoB,cAApBA,KAAoB,GAAG,IAAI,CAACA,KAAK,GACjE;IACA;IACA,OAAO,IAAI,CAACmC,oBAAoB,CAACnC,KAAK,CAAC,GAAG,CAAC,GAAG7C,gCAAgC,CAChF,CAAC,CAAAsI,MAAA,CACOtD,oBAAoB,GAA5B,SAAAA,qBAAA8D,KAAA,EAAmG,KAAAC,KAAA,GAAAD,KAAA,cAArB,IAAI,CAACjG,KAAK,GAAAiG,KAAA,CAAzD1E,iBAAiB,GAAA2E,KAAA,CAAjB3E,iBAAiB,CAAED,QAAQ,GAAA4E,KAAA,CAAR5E,QAAQ,CACxD,OAAOC,iBAAiB,IAAI,CAACD,QAAQ,CACvC,CAAC,CAAAmE,MAAA,CAEMU,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAACnG,KAAK,CAACU,UAAU,EAAE,CACzB,IAAI,CAACA,UAAU,CAAC,CAAC,CACjB,IAAI,CAAC0F,YAAY,GAAGjK,YAAY,CAACkK,WAAW,CAAC,IAAI,CAAC3F,UAAU,CAAC,CAC/D,CAEA,IAAI,IAAI,CAACvB,IAAI,IAAI,IAAI,CAACa,KAAK,CAACmB,iBAAiB,IAAI,IAAI,CAACtC,gBAAgB,EAAE,CACtE,IAAI,CAACA,gBAAgB,CAACyH,OAAO,CAAC,IAAI,CAACnH,IAAI,EAAE,EAAEoH,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAChE,CACF,CAAC,CAAAd,MAAA,CAEMe,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,IAAI,CAACJ,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACK,MAAM,CAAC,CAAC,CAC5B,CACA,IAAI,IAAI,CAACzG,KAAK,CAACmB,iBAAiB,IAAI,IAAI,CAACtC,gBAAgB,EAAE,CACzD,IAAI,CAACA,gBAAgB,CAAC6H,UAAU,CAAC,CAAC,CACpC,CACA,IAAI,CAAC7G,sBAAsB,CAAC,CAAC,CAC/B,CAAC,CAAA4F,MAAA,CAEMkB,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAwB,EAAE,CAClD,IAAI,IAAI,CAACtB,yBAAyB,CAAC,CAAC,KAAK,IAAI,CAACA,yBAAyB,CAACsB,SAAS,CAAC,EAAE,CAClF,IAAI,CAAClG,UAAU,CAACmG,MAAM,CAAC,CAAC,CACxB,IAAI,CAACnG,UAAU,GAAG3E,QAAQ,CAAC,IAAI,CAAC8I,iBAAiB,EAAE,IAAI,CAACS,yBAAyB,CAAC,CAAC,CAAC,CACtF,CACA,IAAAwB,eAAA,GAA0B,IAAI,CAACxI,QAAQ,CAAC,CAAC,CAAjCyG,IAAI,GAAA+B,eAAA,CAAJ/B,IAAI,CAAEjE,OAAO,GAAAgG,eAAA,CAAPhG,OAAO,CACrB,IACE,IAAI,CAACd,KAAK,CAACU,UAAU,KACpBqE,IAAI,KAAK6B,SAAS,CAAC7B,IAAI,IAAIjE,OAAO,KAAK8F,SAAS,CAAC9F,OAAO,IAAI,IAAI,CAACd,KAAK,CAACP,KAAK,KAAKmH,SAAS,CAACnH,KAAK,CAAC,EAClG,CACA,IAAI,CAACiB,UAAU,CAAC,CAAC,CACnB,CACF,CAAC,CAAA+E,MAAA,CAEMsB,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACElL,KAAA,CAAAyG,aAAA,CAACnG,YAAY,CAAC6K,QAAQ,QACnB,UAAChF,KAAK,EAAK,CACV+E,MAAI,CAAC/E,KAAK,GAAGA,KAAK,CAClB,oBACEnG,KAAA,CAAAyG,aAAA,CAAC9F,aAAa,EAAAoG,QAAA,GAACqE,WAAW,EAAEF,MAAI,CAACG,WAAY,IAAKH,MAAI,CAAC1I,QAAQ,CAAC,CAAC,GAC9D0I,MAAI,CAACjH,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,CAED;AACF;AACA,KAFE,CAAA0F,MAAA,CAGOlG,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,IAAI,CAACJ,IAAI,EAAE,CACb,IAAI,CAACA,IAAI,CAACI,KAAK,CAAC,CAAC,CACnB,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAkG,MAAA,CAGO2B,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,IAAI,CAACjI,IAAI,EAAE,CACb,IAAI,CAACA,IAAI,CAACiI,IAAI,CAAC,CAAC,CAClB,CACF,CAAC,QAAA5J,QAAA,GAtI2B1B,KAAK,CAACuH,SAAS,GAAA3F,SAAA,CAC7B2J,mBAAmB,GAAG,UAAU,EAAA3J,SAAA,CAChC4J,WAAW,GAAG,UAAU,EAAA5J,SAAA,CAExBa,YAAY,GAAiB,EACzCwG,IAAI,EAAE,CAAC,EACPjE,OAAO,EAAE,EAAE,EACXQ,QAAQ,EAAE,IAAI,EACdb,IAAI,EAAE,OAAO,EACbc,iBAAiB,EAAE7E,SAAS,CAC9B,CAAC,EAAAgB,SAAA,MAAAD,MAAA","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import type { AriaAttributes, ReactNode } from 'react';
2
2
  import React from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import type { Override } from '../../typings/utility-types';
5
4
  import type { CommonProps } from '../../internal/CommonWrapper';
5
+ import type { TGetRootNode } from '../../lib/rootNode';
6
6
  import type { SizeProp } from '../../lib/types/props';
7
7
  export interface TextareaProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<React.TextareaHTMLAttributes<HTMLTextAreaElement>, {
8
8
  /** Переводит контрол в состояние валидации "ошибка". */
@@ -67,49 +67,6 @@ type DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow'
67
67
  export declare class Textarea extends React.Component<TextareaProps, TextareaState> {
68
68
  static __KONTUR_REACT_UI__: string;
69
69
  static displayName: string;
70
- static propTypes: {
71
- error: PropTypes.Requireable<boolean>;
72
- warning: PropTypes.Requireable<boolean>;
73
- disabled: PropTypes.Requireable<boolean>;
74
- autoResize: PropTypes.Requireable<boolean>;
75
- extraRow: PropTypes.Requireable<boolean>;
76
- disableAnimations: PropTypes.Requireable<boolean>;
77
- maxRows: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
78
- resize: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
79
- width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
80
- id: PropTypes.Requireable<string>;
81
- name: PropTypes.Requireable<string>;
82
- title: PropTypes.Requireable<string>;
83
- spellCheck: PropTypes.Requireable<boolean>;
84
- role: PropTypes.Requireable<string>;
85
- maxLength: PropTypes.Requireable<number>;
86
- tabIndex: PropTypes.Requireable<number>;
87
- rows: PropTypes.Requireable<number>;
88
- placeholder: PropTypes.Requireable<string>;
89
- value: PropTypes.Requireable<string>;
90
- defaultValue: PropTypes.Requireable<string>;
91
- onValueChange: PropTypes.Requireable<(...args: any[]) => any>;
92
- onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
93
- onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
94
- onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
95
- onMouseMove: PropTypes.Requireable<(...args: any[]) => any>;
96
- onMouseOut: PropTypes.Requireable<(...args: any[]) => any>;
97
- onMouseUp: PropTypes.Requireable<(...args: any[]) => any>;
98
- onMouseDown: PropTypes.Requireable<(...args: any[]) => any>;
99
- onClick: PropTypes.Requireable<(...args: any[]) => any>;
100
- onDoubleClick: PropTypes.Requireable<(...args: any[]) => any>;
101
- onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
102
- onKeyPress: PropTypes.Requireable<(...args: any[]) => any>;
103
- onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
104
- onInput: PropTypes.Requireable<(...args: any[]) => any>;
105
- onFocus: PropTypes.Requireable<(...args: any[]) => any>;
106
- onBlur: PropTypes.Requireable<(...args: any[]) => any>;
107
- onScroll: PropTypes.Requireable<(...args: any[]) => any>;
108
- onWheel: PropTypes.Requireable<(...args: any[]) => any>;
109
- onCut: PropTypes.Requireable<(...args: any[]) => any>;
110
- onPaste: PropTypes.Requireable<(...args: any[]) => any>;
111
- onCopy: PropTypes.Requireable<(...args: any[]) => any>;
112
- };
113
70
  static defaultProps: DefaultProps;
114
71
  private getProps;
115
72
  private getRootSizeClassName;
@@ -126,6 +83,7 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
126
83
  private counter;
127
84
  private layoutEvents;
128
85
  private textareaObserver;
86
+ getRootNode: TGetRootNode;
129
87
  private setRootNode;
130
88
  private getAutoResizeThrottleWait;
131
89
  private isAnimationsDisabled;
@@ -1,7 +1,4 @@
1
1
  import React, { useContext, useCallback, useImperativeHandle, useState } from 'react';
2
- import propTypes from 'prop-types';
3
- import { globalObject } from '@skbkontur/global-object';
4
- import { safePropTypesInstanceOf } from "../../../lib/SSRSafe";
5
2
  import { forwardRefAndName } from "../../../lib/forwardRefAndName";
6
3
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
7
4
  import { isFunction } from "../../../lib/utils";
@@ -87,11 +84,4 @@ export var TextareaCounter = forwardRefAndName('TextareaCounter', function (_ref
87
84
  className: styles.counterHelp()
88
85
  }, counterHelp)))
89
86
  );
90
- });
91
- TextareaCounter.propTypes = {
92
- length: propTypes.number.isRequired,
93
- value: propTypes.oneOfType([propTypes.string, propTypes.number]),
94
- help: propTypes.oneOfType([propTypes.node, propTypes.func]),
95
- onCloseHelp: propTypes.func.isRequired,
96
- textarea: safePropTypesInstanceOf(globalObject.HTMLTextAreaElement).isRequired
97
- };
87
+ });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useCallback","useImperativeHandle","useState","propTypes","globalObject","safePropTypesInstanceOf","forwardRefAndName","ThemeContext","isFunction","Tooltip","cx","QuestionCircleIcon16Solid","TextareaDataTids","styles","handleHelpMouseDown","e","preventDefault","TextareaCounter","_ref","ref","_cx","length","value","help","onCloseHelp","textarea","size","theme","_useState","clientWidth","width","setWidth","_useState2","clientHeight","height","setHeight","reflow","renderTooltipContent","textareaValue","toString","counterValue","helpIconProps","onMouseDown","color","textareaCounterHelpIconColor","helpIcon","createElement","counterHelp","pos","trigger","render","onCloseClick","getCounterSizeClassName","counterLarge","counterMedium","counterSmall","counter","className","counterContainer","style","counterError","number","isRequired","oneOfType","string","node","func","HTMLTextAreaElement"],"sources":["TextareaCounter.tsx"],"sourcesContent":["import type { SyntheticEvent } from 'react';\nimport React, { useContext, useCallback, useImperativeHandle, useState } from 'react';\nimport propTypes from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isFunction } from '../../lib/utils';\nimport { Tooltip } from '../Tooltip';\nimport { cx } from '../../lib/theming/Emotion';\nimport { QuestionCircleIcon16Solid } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport type { TextareaProps } from './Textarea';\nimport { TextareaDataTids } from './Textarea';\nimport { styles } from './Textarea.styles';\n\nexport interface TextareaCounterProps {\n value: TextareaProps['value'];\n length: number;\n help: TextareaProps['counterHelp'];\n onCloseHelp: () => void;\n textarea: HTMLTextAreaElement;\n size: SizeProp;\n}\n\nexport interface TextareaCounterRef {\n reflow: () => void;\n}\n\nconst handleHelpMouseDown = (e: SyntheticEvent) => e.preventDefault();\n\nexport const TextareaCounter = forwardRefAndName<TextareaCounterRef, TextareaCounterProps>(\n 'TextareaCounter',\n ({ length, value, help, onCloseHelp, textarea, size }, ref) => {\n const theme = useContext(ThemeContext);\n const [width, setWidth] = useState(textarea.clientWidth);\n const [height, setHeight] = useState(textarea.clientHeight);\n const reflow = useCallback(() => {\n const { clientWidth, clientHeight } = textarea;\n setWidth(clientWidth);\n setHeight(clientHeight);\n }, [textarea]);\n useImperativeHandle(ref, () => ({ reflow }), [reflow]);\n const renderTooltipContent = useCallback(() => {\n if (typeof help === 'function') {\n return help();\n }\n return help;\n }, [help]);\n const textareaValue = value ? value.toString().length : 0;\n const counterValue = length - textareaValue;\n\n const helpIconProps = {\n onMouseDown: handleHelpMouseDown,\n color: theme.textareaCounterHelpIconColor,\n 'data-tid': TextareaDataTids.helpIcon,\n };\n const helpIcon = <QuestionCircleIcon16Solid {...helpIconProps} />;\n const counterHelp = isFunction(help) ? (\n help()\n ) : (\n <Tooltip pos={'right bottom'} trigger={'click'} render={renderTooltipContent} onCloseClick={onCloseHelp}>\n {helpIcon}\n </Tooltip>\n );\n\n const getCounterSizeClassName = () => {\n switch (size) {\n case 'large':\n return styles.counterLarge(theme);\n case 'medium':\n return styles.counterMedium(theme);\n case 'small':\n default:\n return styles.counterSmall(theme);\n }\n };\n\n return (\n <div data-tid={TextareaDataTids.counter} className={cx(styles.counterContainer(theme))} style={{ width, height }}>\n <span\n className={cx(getCounterSizeClassName(), styles.counter(theme), {\n [styles.counterError(theme)]: counterValue < 0,\n })}\n >\n {counterValue}\n {help && <span className={styles.counterHelp()}>{counterHelp}</span>}\n </span>\n </div>\n );\n },\n);\n\nTextareaCounter.propTypes = {\n length: propTypes.number.isRequired,\n value: propTypes.oneOfType([propTypes.string, propTypes.number]),\n help: propTypes.oneOfType([propTypes.node, propTypes.func]),\n onCloseHelp: propTypes.func.isRequired,\n textarea: safePropTypesInstanceOf(globalObject.HTMLTextAreaElement).isRequired,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useContext","useCallback","useImperativeHandle","useState","forwardRefAndName","ThemeContext","isFunction","Tooltip","cx","QuestionCircleIcon16Solid","TextareaDataTids","styles","handleHelpMouseDown","e","preventDefault","TextareaCounter","_ref","ref","_cx","length","value","help","onCloseHelp","textarea","size","theme","_useState","clientWidth","width","setWidth","_useState2","clientHeight","height","setHeight","reflow","renderTooltipContent","textareaValue","toString","counterValue","helpIconProps","onMouseDown","color","textareaCounterHelpIconColor","helpIcon","createElement","counterHelp","pos","trigger","render","onCloseClick","getCounterSizeClassName","counterLarge","counterMedium","counterSmall","counter","className","counterContainer","style","counterError"],"sources":["TextareaCounter.tsx"],"sourcesContent":["import type { SyntheticEvent } from 'react';\nimport React, { useContext, useCallback, useImperativeHandle, useState } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isFunction } from '../../lib/utils';\nimport { Tooltip } from '../Tooltip';\nimport { cx } from '../../lib/theming/Emotion';\nimport { QuestionCircleIcon16Solid } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport type { TextareaProps } from './Textarea';\nimport { TextareaDataTids } from './Textarea';\nimport { styles } from './Textarea.styles';\n\nexport interface TextareaCounterProps {\n value: TextareaProps['value'];\n length: number;\n help: TextareaProps['counterHelp'];\n onCloseHelp: () => void;\n textarea: HTMLTextAreaElement;\n size: SizeProp;\n}\n\nexport interface TextareaCounterRef {\n reflow: () => void;\n}\n\nconst handleHelpMouseDown = (e: SyntheticEvent) => e.preventDefault();\n\nexport const TextareaCounter = forwardRefAndName<TextareaCounterRef, TextareaCounterProps>(\n 'TextareaCounter',\n ({ length, value, help, onCloseHelp, textarea, size }, ref) => {\n const theme = useContext(ThemeContext);\n const [width, setWidth] = useState(textarea.clientWidth);\n const [height, setHeight] = useState(textarea.clientHeight);\n const reflow = useCallback(() => {\n const { clientWidth, clientHeight } = textarea;\n setWidth(clientWidth);\n setHeight(clientHeight);\n }, [textarea]);\n useImperativeHandle(ref, () => ({ reflow }), [reflow]);\n const renderTooltipContent = useCallback(() => {\n if (typeof help === 'function') {\n return help();\n }\n return help;\n }, [help]);\n const textareaValue = value ? value.toString().length : 0;\n const counterValue = length - textareaValue;\n\n const helpIconProps = {\n onMouseDown: handleHelpMouseDown,\n color: theme.textareaCounterHelpIconColor,\n 'data-tid': TextareaDataTids.helpIcon,\n };\n const helpIcon = <QuestionCircleIcon16Solid {...helpIconProps} />;\n const counterHelp = isFunction(help) ? (\n help()\n ) : (\n <Tooltip pos={'right bottom'} trigger={'click'} render={renderTooltipContent} onCloseClick={onCloseHelp}>\n {helpIcon}\n </Tooltip>\n );\n\n const getCounterSizeClassName = () => {\n switch (size) {\n case 'large':\n return styles.counterLarge(theme);\n case 'medium':\n return styles.counterMedium(theme);\n case 'small':\n default:\n return styles.counterSmall(theme);\n }\n };\n\n return (\n <div data-tid={TextareaDataTids.counter} className={cx(styles.counterContainer(theme))} style={{ width, height }}>\n <span\n className={cx(getCounterSizeClassName(), styles.counter(theme), {\n [styles.counterError(theme)]: counterValue < 0,\n })}\n >\n {counterValue}\n {help && <span className={styles.counterHelp()}>{counterHelp}</span>}\n </span>\n </div>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}