@skbkontur/react-ui 3.10.0-fileuploader.1 → 3.11.0-latest

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 (751) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/LICENSE +21 -21
  3. package/README.md +57 -0
  4. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  5. package/cjs/components/Autocomplete/Autocomplete.js +11 -5
  6. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/Button/Button.d.ts +5 -1
  8. package/cjs/components/Button/Button.js +17 -5
  9. package/cjs/components/Button/Button.js.map +1 -1
  10. package/cjs/components/Button/Button.styles.d.ts +1 -0
  11. package/cjs/components/Button/Button.styles.js +38 -28
  12. package/cjs/components/Button/Button.styles.js.map +1 -1
  13. package/cjs/components/Center/Center.d.ts +1 -0
  14. package/cjs/components/Center/Center.js +10 -3
  15. package/cjs/components/Center/Center.js.map +1 -1
  16. package/cjs/components/Checkbox/Checkbox.d.ts +3 -3
  17. package/cjs/components/Checkbox/Checkbox.js +31 -22
  18. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  19. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  20. package/cjs/components/ComboBox/ComboBox.js +100 -70
  21. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  22. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  23. package/cjs/components/CurrencyInput/CurrencyInput.js +35 -4
  24. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  25. package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
  26. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  27. package/cjs/components/DateInput/DateInput.js +6 -3
  28. package/cjs/components/DateInput/DateInput.js.map +1 -1
  29. package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
  30. package/cjs/components/DatePicker/DatePicker.js +17 -7
  31. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  32. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  33. package/cjs/components/Dropdown/Dropdown.js +11 -4
  34. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  35. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  36. package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
  37. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  38. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  39. package/cjs/components/FxInput/FxInput.js +9 -2
  40. package/cjs/components/FxInput/FxInput.js.map +1 -1
  41. package/cjs/components/Gapped/Gapped.d.ts +2 -0
  42. package/cjs/components/Gapped/Gapped.js +22 -14
  43. package/cjs/components/Gapped/Gapped.js.map +1 -1
  44. package/cjs/components/Gapped/Gapped.md +43 -43
  45. package/cjs/components/Group/Group.d.ts +1 -0
  46. package/cjs/components/Group/Group.js +10 -7
  47. package/cjs/components/Group/Group.js.map +1 -1
  48. package/cjs/components/Hint/Hint.d.ts +5 -3
  49. package/cjs/components/Hint/Hint.js +7 -20
  50. package/cjs/components/Hint/Hint.js.map +1 -1
  51. package/cjs/components/Input/Input.d.ts +8 -1
  52. package/cjs/components/Input/Input.js +22 -5
  53. package/cjs/components/Input/Input.js.map +1 -1
  54. package/cjs/components/Input/Input.md +13 -13
  55. package/cjs/components/Kebab/Kebab.d.ts +3 -2
  56. package/cjs/components/Kebab/Kebab.js +8 -5
  57. package/cjs/components/Kebab/Kebab.js.map +1 -1
  58. package/cjs/components/Link/Link.d.ts +1 -0
  59. package/cjs/components/Link/Link.js +11 -3
  60. package/cjs/components/Link/Link.js.map +1 -1
  61. package/cjs/components/Loader/Loader.d.ts +1 -0
  62. package/cjs/components/Loader/Loader.js +11 -7
  63. package/cjs/components/Loader/Loader.js.map +1 -1
  64. package/cjs/components/MenuItem/MenuItem.d.ts +2 -1
  65. package/cjs/components/MenuItem/MenuItem.js +11 -8
  66. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  67. package/cjs/components/Modal/Modal.js +1 -1
  68. package/cjs/components/Modal/Modal.js.map +1 -1
  69. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  70. package/cjs/components/Modal/ModalBody.js +9 -6
  71. package/cjs/components/Modal/ModalBody.js.map +1 -1
  72. package/cjs/components/Paging/Paging.d.ts +2 -2
  73. package/cjs/components/Paging/Paging.js +6 -5
  74. package/cjs/components/Paging/Paging.js.map +1 -1
  75. package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
  76. package/cjs/components/PasswordInput/PasswordInput.js +13 -6
  77. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  78. package/cjs/components/PasswordInput/PasswordInput.md +9 -9
  79. package/cjs/components/Radio/Radio.d.ts +5 -10
  80. package/cjs/components/Radio/Radio.js +15 -11
  81. package/cjs/components/Radio/Radio.js.map +1 -1
  82. package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -26
  83. package/cjs/components/RadioGroup/RadioGroup.js +25 -29
  84. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  85. package/cjs/components/RadioGroup/RadioGroup.md +43 -43
  86. package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  87. package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
  88. package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
  89. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  90. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  91. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  92. package/cjs/components/ScrollContainer/ScrollContainer.js +10 -6
  93. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  94. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  95. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  96. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  97. package/cjs/components/Select/Select.d.ts +1 -0
  98. package/cjs/components/Select/Select.js +8 -5
  99. package/cjs/components/Select/Select.js.map +1 -1
  100. package/cjs/components/SidePage/SidePage.d.ts +3 -0
  101. package/cjs/components/SidePage/SidePage.js +20 -2
  102. package/cjs/components/SidePage/SidePage.js.map +1 -1
  103. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  104. package/cjs/components/SidePage/SidePageBody.js +9 -6
  105. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  106. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  107. package/cjs/components/SidePage/SidePageContainer.js +9 -6
  108. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  109. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
  110. package/cjs/components/SidePage/SidePageFooter.js +11 -12
  111. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  112. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  113. package/cjs/components/SidePage/SidePageHeader.js +6 -3
  114. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  115. package/cjs/components/Spinner/Spinner.d.ts +9 -0
  116. package/cjs/components/Spinner/Spinner.js +29 -8
  117. package/cjs/components/Spinner/Spinner.js.map +1 -1
  118. package/cjs/components/Spinner/Spinner.md +1 -0
  119. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  120. package/cjs/components/Spinner/Spinner.styles.js +13 -10
  121. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  122. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  123. package/cjs/components/Sticky/Sticky.js +8 -5
  124. package/cjs/components/Sticky/Sticky.js.map +1 -1
  125. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  126. package/cjs/components/Switcher/Switcher.js +6 -3
  127. package/cjs/components/Switcher/Switcher.js.map +1 -1
  128. package/cjs/components/Switcher/Switcher.styles.js +4 -2
  129. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  130. package/cjs/components/Tabs/Indicator.d.ts +1 -0
  131. package/cjs/components/Tabs/Indicator.js +16 -15
  132. package/cjs/components/Tabs/Indicator.js.map +1 -1
  133. package/cjs/components/Tabs/Tab.d.ts +2 -1
  134. package/cjs/components/Tabs/Tab.js +13 -9
  135. package/cjs/components/Tabs/Tab.js.map +1 -1
  136. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  137. package/cjs/components/Tabs/Tabs.js +9 -9
  138. package/cjs/components/Tabs/Tabs.js.map +1 -1
  139. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  140. package/cjs/components/Textarea/Textarea.js +12 -5
  141. package/cjs/components/Textarea/Textarea.js.map +1 -1
  142. package/cjs/components/Toast/Toast.d.ts +3 -0
  143. package/cjs/components/Toast/Toast.js +15 -4
  144. package/cjs/components/Toast/Toast.js.map +1 -1
  145. package/cjs/components/Toast/ToastView.d.ts +1 -0
  146. package/cjs/components/Toast/ToastView.js +8 -5
  147. package/cjs/components/Toast/ToastView.js.map +1 -1
  148. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  149. package/cjs/components/Toggle/Toggle.js +9 -6
  150. package/cjs/components/Toggle/Toggle.js.map +1 -1
  151. package/cjs/components/Token/Token.d.ts +1 -0
  152. package/cjs/components/Token/Token.js +7 -4
  153. package/cjs/components/Token/Token.js.map +1 -1
  154. package/cjs/components/Token/Token.md +112 -112
  155. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  156. package/cjs/components/TokenInput/TokenInput.js +11 -8
  157. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  158. package/cjs/components/Tooltip/Tooltip.d.ts +11 -22
  159. package/cjs/components/Tooltip/Tooltip.js +28 -30
  160. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  161. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  162. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
  163. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  164. package/cjs/index.d.ts +1 -1
  165. package/cjs/index.js +2 -2
  166. package/cjs/index.js.map +1 -1
  167. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  168. package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
  169. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  170. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
  171. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  172. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  173. package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
  174. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  175. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  176. package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
  177. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  178. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
  179. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  180. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  181. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  182. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -13
  183. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  184. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  185. package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
  186. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  187. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
  188. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  189. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  190. package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
  191. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  192. package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
  193. package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
  194. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  195. package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
  196. package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
  197. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  198. package/cjs/internal/Menu/Menu.d.ts +1 -0
  199. package/cjs/internal/Menu/Menu.js +9 -6
  200. package/cjs/internal/Menu/Menu.js.map +1 -1
  201. package/cjs/internal/Popup/Popup.d.ts +9 -8
  202. package/cjs/internal/Popup/Popup.js +64 -48
  203. package/cjs/internal/Popup/Popup.js.map +1 -1
  204. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  205. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  206. package/cjs/internal/Popup/types.d.ts +1 -0
  207. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js +0 -0
  208. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js.map +0 -0
  209. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -3
  210. package/cjs/internal/PopupMenu/PopupMenu.js +23 -6
  211. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  212. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  213. package/cjs/internal/PopupMenu/validatePositions.js +2 -4
  214. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  215. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
  216. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  217. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  218. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
  219. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  220. package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
  221. package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
  222. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  223. package/cjs/internal/ThemePlayground/Playground.d.ts +0 -1
  224. package/cjs/internal/ThemePlayground/Playground.js +1 -11
  225. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  226. package/cjs/internal/ThemePlayground/darkTheme.d.ts +0 -15
  227. package/cjs/internal/ThemePlayground/darkTheme.js +1 -25
  228. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  229. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  230. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
  231. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  232. package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  233. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  234. package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
  235. package/cjs/internal/ZIndex/ZIndex.js +45 -34
  236. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  237. package/cjs/internal/icons/16px/index.d.ts +17 -19
  238. package/cjs/internal/icons/16px/index.js +105 -84
  239. package/cjs/internal/icons/16px/index.js.map +1 -1
  240. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  241. package/cjs/internal/icons/SpinnerIcon.js +5 -2
  242. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  243. package/cjs/internal/themes/DefaultTheme.d.ts +0 -23
  244. package/cjs/internal/themes/DefaultTheme.js +1 -64
  245. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  246. package/cjs/lib/ModalStack.js +16 -17
  247. package/cjs/lib/ModalStack.js.map +1 -1
  248. package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
  249. package/cjs/lib/callChildRef/callChildRef.js +19 -0
  250. package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
  251. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  252. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
  253. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  254. package/cjs/lib/getDisplayName.d.ts +3 -0
  255. package/cjs/lib/getDisplayName.js +9 -0
  256. package/cjs/lib/getDisplayName.js.map +1 -0
  257. package/cjs/lib/locale/types.d.ts +0 -2
  258. package/cjs/lib/locale/types.js +0 -2
  259. package/cjs/lib/locale/types.js.map +1 -1
  260. package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
  261. package/cjs/lib/rootNode/getRootNode.js +27 -0
  262. package/cjs/lib/rootNode/getRootNode.js.map +1 -0
  263. package/cjs/lib/rootNode/index.d.ts +2 -0
  264. package/cjs/lib/rootNode/index.js +2 -0
  265. package/cjs/lib/rootNode/index.js.map +1 -0
  266. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  267. package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
  268. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
  269. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  270. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  271. package/cjs/lib/theming/Emotion.js +1 -0
  272. package/cjs/lib/theming/Emotion.js.map +1 -1
  273. package/cjs/lib/theming/useTheme.d.ts +1 -0
  274. package/cjs/lib/theming/useTheme.js +7 -0
  275. package/cjs/lib/theming/useTheme.js.map +1 -0
  276. package/cjs/lib/utils.d.ts +35 -1
  277. package/cjs/lib/utils.js +77 -22
  278. package/cjs/lib/utils.js.map +1 -1
  279. package/cjs/lib/withClassWrapper.d.ts +71 -0
  280. package/cjs/lib/withClassWrapper.js +59 -0
  281. package/cjs/lib/withClassWrapper.js.map +1 -0
  282. package/cjs/typings/html-props.d.ts +123 -0
  283. package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
  284. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  285. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  286. package/components/Button/Button/Button.js +24 -15
  287. package/components/Button/Button/Button.js.map +1 -1
  288. package/components/Button/Button.d.ts +5 -1
  289. package/components/Button/Button.styles/Button.styles.js +31 -28
  290. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  291. package/components/Button/Button.styles.d.ts +1 -0
  292. package/components/Center/Center/Center.js +14 -9
  293. package/components/Center/Center/Center.js.map +1 -1
  294. package/components/Center/Center.d.ts +1 -0
  295. package/components/Checkbox/Checkbox/Checkbox.js +34 -30
  296. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  297. package/components/Checkbox/Checkbox.d.ts +3 -3
  298. package/components/ComboBox/ComboBox/ComboBox.js +38 -32
  299. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  300. package/components/ComboBox/ComboBox.d.ts +2 -0
  301. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +62 -27
  302. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  303. package/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  304. package/components/CurrencyLabel/CurrencyLabel.md +23 -23
  305. package/components/DateInput/DateInput/DateInput.js +7 -3
  306. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  307. package/components/DateInput/DateInput.d.ts +1 -0
  308. package/components/DatePicker/DatePicker/DatePicker.js +29 -22
  309. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  310. package/components/DatePicker/DatePicker.d.ts +4 -2
  311. package/components/Dropdown/Dropdown/Dropdown.js +15 -13
  312. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  313. package/components/Dropdown/Dropdown.d.ts +1 -0
  314. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
  315. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  316. package/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  317. package/components/FxInput/FxInput/FxInput.js +13 -9
  318. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  319. package/components/FxInput/FxInput.d.ts +1 -0
  320. package/components/Gapped/Gapped/Gapped.js +24 -21
  321. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  322. package/components/Gapped/Gapped.d.ts +2 -0
  323. package/components/Gapped/Gapped.md +43 -43
  324. package/components/Group/Group/Group.js +22 -9
  325. package/components/Group/Group/Group.js.map +1 -1
  326. package/components/Group/Group.d.ts +1 -0
  327. package/components/Hint/Hint/Hint.js +18 -12
  328. package/components/Hint/Hint/Hint.js.map +1 -1
  329. package/components/Hint/Hint.d.ts +5 -3
  330. package/components/Input/Input/Input.js +29 -14
  331. package/components/Input/Input/Input.js.map +1 -1
  332. package/components/Input/Input.d.ts +8 -1
  333. package/components/Input/Input.md +13 -13
  334. package/components/Kebab/Kebab/Kebab.js +12 -7
  335. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  336. package/components/Kebab/Kebab.d.ts +3 -2
  337. package/components/Link/Link/Link.js +15 -11
  338. package/components/Link/Link/Link.js.map +1 -1
  339. package/components/Link/Link.d.ts +1 -0
  340. package/components/Loader/Loader/Loader.js +19 -13
  341. package/components/Loader/Loader/Loader.js.map +1 -1
  342. package/components/Loader/Loader.d.ts +1 -0
  343. package/components/MenuItem/MenuItem/MenuItem.js +19 -17
  344. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  345. package/components/MenuItem/MenuItem.d.ts +2 -1
  346. package/components/Modal/Modal/Modal.js +1 -1
  347. package/components/Modal/Modal/Modal.js.map +1 -1
  348. package/components/Modal/ModalBody/ModalBody.js +16 -10
  349. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  350. package/components/Modal/ModalBody.d.ts +1 -0
  351. package/components/Paging/Paging/Paging.js +17 -14
  352. package/components/Paging/Paging/Paging.js.map +1 -1
  353. package/components/Paging/Paging.d.ts +2 -2
  354. package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
  355. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  356. package/components/PasswordInput/PasswordInput.d.ts +3 -2
  357. package/components/PasswordInput/PasswordInput.md +9 -9
  358. package/components/Radio/Radio/Radio.js +21 -20
  359. package/components/Radio/Radio/Radio.js.map +1 -1
  360. package/components/Radio/Radio.d.ts +5 -10
  361. package/components/RadioGroup/RadioGroup/RadioGroup.js +36 -29
  362. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  363. package/components/RadioGroup/RadioGroup.d.ts +11 -26
  364. package/components/RadioGroup/RadioGroup.md +43 -43
  365. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
  366. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
  367. package/components/RadioGroup/RadioGroupContext/package.json +6 -0
  368. package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  369. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  370. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  371. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +15 -9
  372. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  373. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  374. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  375. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  376. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  377. package/components/Select/Select/Select.js +14 -6
  378. package/components/Select/Select/Select.js.map +1 -1
  379. package/components/Select/Select.d.ts +1 -0
  380. package/components/SidePage/SidePage/SidePage.js +27 -3
  381. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  382. package/components/SidePage/SidePage.d.ts +3 -0
  383. package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
  384. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  385. package/components/SidePage/SidePageBody.d.ts +1 -0
  386. package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
  387. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  388. package/components/SidePage/SidePageContainer.d.ts +1 -0
  389. package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
  390. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  391. package/components/SidePage/SidePageFooter.d.ts +1 -2
  392. package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
  393. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  394. package/components/SidePage/SidePageHeader.d.ts +1 -0
  395. package/components/Spinner/Spinner/Spinner.js +14 -6
  396. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  397. package/components/Spinner/Spinner.d.ts +9 -0
  398. package/components/Spinner/Spinner.md +1 -0
  399. package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
  400. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  401. package/components/Spinner/Spinner.styles.d.ts +2 -1
  402. package/components/Sticky/Sticky/Sticky.js +13 -8
  403. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  404. package/components/Sticky/Sticky.d.ts +1 -0
  405. package/components/Switcher/Switcher/Switcher.js +11 -6
  406. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  407. package/components/Switcher/Switcher.d.ts +1 -0
  408. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  409. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  410. package/components/Tabs/Indicator/Indicator.js +16 -14
  411. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  412. package/components/Tabs/Indicator.d.ts +1 -0
  413. package/components/Tabs/Tab/Tab.js +31 -34
  414. package/components/Tabs/Tab/Tab.js.map +1 -1
  415. package/components/Tabs/Tab.d.ts +2 -1
  416. package/components/Tabs/Tabs/Tabs.js +20 -20
  417. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  418. package/components/Tabs/Tabs.d.ts +1 -0
  419. package/components/Textarea/Textarea/Textarea.js +21 -17
  420. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  421. package/components/Textarea/Textarea.d.ts +1 -0
  422. package/components/Toast/Toast/Toast.js +29 -14
  423. package/components/Toast/Toast/Toast.js.map +1 -1
  424. package/components/Toast/Toast.d.ts +3 -0
  425. package/components/Toast/ToastView/ToastView.js +10 -5
  426. package/components/Toast/ToastView/ToastView.js.map +1 -1
  427. package/components/Toast/ToastView.d.ts +1 -0
  428. package/components/Toggle/Toggle/Toggle.js +16 -11
  429. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  430. package/components/Toggle/Toggle.d.ts +1 -0
  431. package/components/Token/Token/Token.js +11 -4
  432. package/components/Token/Token/Token.js.map +1 -1
  433. package/components/Token/Token.d.ts +1 -0
  434. package/components/Token/Token.md +112 -112
  435. package/components/TokenInput/TokenInput/TokenInput.js +12 -6
  436. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  437. package/components/TokenInput/TokenInput.d.ts +1 -0
  438. package/components/Tooltip/Tooltip/Tooltip.js +26 -17
  439. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  440. package/components/Tooltip/Tooltip.d.ts +11 -22
  441. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
  442. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  443. package/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  444. package/index.d.ts +1 -1
  445. package/index.js +2 -2
  446. package/index.js.map +1 -1
  447. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
  448. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  449. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  450. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
  451. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  452. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
  453. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  454. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  455. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
  456. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  457. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  458. package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
  459. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  460. package/internal/DateSelect/DateSelect.d.ts +2 -2
  461. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +11 -15
  462. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  463. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  464. package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
  465. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  466. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  467. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
  468. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  469. package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
  470. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  471. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  472. package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
  473. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  474. package/internal/InternalMenu/InternalMenu.d.ts +2 -3
  475. package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
  476. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  477. package/internal/MaskedInput/MaskedInput.d.ts +2 -2
  478. package/internal/Menu/Menu/Menu.js +11 -8
  479. package/internal/Menu/Menu/Menu.js.map +1 -1
  480. package/internal/Menu/Menu.d.ts +1 -0
  481. package/internal/Popup/Popup/Popup.js +85 -68
  482. package/internal/Popup/Popup/Popup.js.map +1 -1
  483. package/internal/Popup/Popup.d.ts +9 -8
  484. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  485. package/internal/Popup/PopupHelper.d.ts +2 -2
  486. package/{components/FileUploader/locale → internal/Popup}/types/package.json +1 -1
  487. package/{components/FileUploader/locale → internal/Popup}/types/types.js +0 -0
  488. package/{components/FileUploader/locale → internal/Popup}/types/types.js.map +0 -0
  489. package/internal/Popup/types.d.ts +1 -0
  490. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -10
  491. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  492. package/internal/PopupMenu/PopupMenu.d.ts +4 -3
  493. package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
  494. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  495. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  496. package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
  497. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  498. package/internal/RenderContainer/RenderContainer.d.ts +1 -1
  499. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  500. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  501. package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
  502. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  503. package/internal/RenderLayer/RenderLayer.d.ts +3 -1
  504. package/internal/ThemePlayground/Playground/Playground.js +1 -11
  505. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  506. package/internal/ThemePlayground/Playground.d.ts +0 -1
  507. package/internal/ThemePlayground/darkTheme/darkTheme.js +1 -26
  508. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  509. package/internal/ThemePlayground/darkTheme.d.ts +0 -15
  510. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
  511. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  512. package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  513. package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  514. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  515. package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
  516. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  517. package/internal/ZIndex/ZIndex.d.ts +2 -0
  518. package/internal/icons/16px/index/index.js +83 -78
  519. package/internal/icons/16px/index/index.js.map +1 -1
  520. package/internal/icons/16px/index.d.ts +17 -19
  521. package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
  522. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  523. package/internal/icons/SpinnerIcon.d.ts +4 -1
  524. package/internal/themes/DefaultTheme/DefaultTheme.js +0 -67
  525. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  526. package/internal/themes/DefaultTheme.d.ts +0 -23
  527. package/lib/ModalStack/ModalStack.js +9 -13
  528. package/lib/ModalStack/ModalStack.js.map +1 -1
  529. package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
  530. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
  531. package/lib/callChildRef/callChildRef/package.json +6 -0
  532. package/lib/callChildRef/callChildRef.d.ts +3 -0
  533. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
  534. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  535. package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
  536. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  537. package/lib/getDisplayName/getDisplayName.js +3 -0
  538. package/lib/getDisplayName/getDisplayName.js.map +1 -0
  539. package/lib/getDisplayName/package.json +6 -0
  540. package/lib/getDisplayName.d.ts +3 -0
  541. package/lib/locale/types/types.js.map +1 -1
  542. package/lib/locale/types.d.ts +0 -2
  543. package/lib/rootNode/getRootNode/getRootNode.js +25 -0
  544. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
  545. package/lib/rootNode/getRootNode/package.json +6 -0
  546. package/lib/rootNode/getRootNode.d.ts +3 -0
  547. package/lib/rootNode/index/index.js +2 -0
  548. package/lib/rootNode/index/index.js.map +1 -0
  549. package/{components/FileUploader → lib/rootNode}/index/package.json +1 -1
  550. package/lib/rootNode/index.d.ts +2 -0
  551. package/{components/FileUploader → lib/rootNode}/package.json +1 -1
  552. package/lib/rootNode/rootNodeDecorator/package.json +6 -0
  553. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
  554. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
  555. package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  556. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  557. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  558. package/lib/theming/Emotion/Emotion.js +1 -0
  559. package/lib/theming/Emotion/Emotion.js.map +1 -1
  560. package/lib/theming/useTheme/package.json +6 -0
  561. package/lib/theming/useTheme/useTheme.js +5 -0
  562. package/lib/theming/useTheme/useTheme.js.map +1 -0
  563. package/lib/theming/useTheme.d.ts +1 -0
  564. package/lib/utils/utils.js +77 -19
  565. package/lib/utils/utils.js.map +1 -1
  566. package/lib/utils.d.ts +35 -1
  567. package/lib/withClassWrapper/package.json +6 -0
  568. package/lib/withClassWrapper/withClassWrapper.js +70 -0
  569. package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
  570. package/lib/withClassWrapper.d.ts +71 -0
  571. package/package.json +13 -5
  572. package/typings/html-props.d.ts +123 -0
  573. package/cjs/components/FileUploader/FileUploader.d.ts +0 -31
  574. package/cjs/components/FileUploader/FileUploader.js +0 -270
  575. package/cjs/components/FileUploader/FileUploader.js.map +0 -1
  576. package/cjs/components/FileUploader/FileUploader.md +0 -67
  577. package/cjs/components/FileUploader/FileUploader.styles.d.ts +0 -19
  578. package/cjs/components/FileUploader/FileUploader.styles.js +0 -159
  579. package/cjs/components/FileUploader/FileUploader.styles.js.map +0 -1
  580. package/cjs/components/FileUploader/index.d.ts +0 -4
  581. package/cjs/components/FileUploader/index.js +0 -4
  582. package/cjs/components/FileUploader/index.js.map +0 -1
  583. package/cjs/components/FileUploader/locale/index.d.ts +0 -4
  584. package/cjs/components/FileUploader/locale/index.js +0 -11
  585. package/cjs/components/FileUploader/locale/index.js.map +0 -1
  586. package/cjs/components/FileUploader/locale/locales/en.d.ts +0 -2
  587. package/cjs/components/FileUploader/locale/locales/en.js +0 -7
  588. package/cjs/components/FileUploader/locale/locales/en.js.map +0 -1
  589. package/cjs/components/FileUploader/locale/locales/ru.d.ts +0 -2
  590. package/cjs/components/FileUploader/locale/locales/ru.js +0 -7
  591. package/cjs/components/FileUploader/locale/locales/ru.js.map +0 -1
  592. package/cjs/components/FileUploader/locale/types.d.ts +0 -6
  593. package/cjs/hooks/useDrop.d.ts +0 -11
  594. package/cjs/hooks/useDrop.js +0 -75
  595. package/cjs/hooks/useDrop.js.map +0 -1
  596. package/cjs/hooks/useMemoObject.d.ts +0 -1
  597. package/cjs/hooks/useMemoObject.js +0 -5
  598. package/cjs/hooks/useMemoObject.js.map +0 -1
  599. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  600. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +0 -15
  601. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
  602. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  603. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +0 -107
  604. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
  605. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  606. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -187
  607. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
  608. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  609. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +0 -66
  610. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
  611. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  612. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +0 -24
  613. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  614. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  615. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +0 -17
  616. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  617. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  618. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +0 -16
  619. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
  620. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  621. package/cjs/internal/FileUploaderControl/fileUtils.js +0 -55
  622. package/cjs/internal/FileUploaderControl/fileUtils.js.map +0 -1
  623. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  624. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
  625. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
  626. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  627. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +0 -51
  628. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
  629. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  630. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +0 -18
  631. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
  632. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  633. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  634. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  635. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  636. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +0 -34
  637. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +0 -1
  638. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  639. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -23
  640. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  641. package/cjs/lib/guidUtils.d.ts +0 -1
  642. package/cjs/lib/guidUtils.js +0 -5
  643. package/cjs/lib/guidUtils.js.map +0 -1
  644. package/cjs/lib/locale/useLocaleForControl.d.ts +0 -3
  645. package/cjs/lib/locale/useLocaleForControl.js +0 -14
  646. package/cjs/lib/locale/useLocaleForControl.js.map +0 -1
  647. package/cjs/lib/stringUtils.d.ts +0 -1
  648. package/cjs/lib/stringUtils.js +0 -13
  649. package/cjs/lib/stringUtils.js.map +0 -1
  650. package/components/FileUploader/FileUploader/FileUploader.js +0 -277
  651. package/components/FileUploader/FileUploader/FileUploader.js.map +0 -1
  652. package/components/FileUploader/FileUploader/package.json +0 -6
  653. package/components/FileUploader/FileUploader.d.ts +0 -31
  654. package/components/FileUploader/FileUploader.md +0 -67
  655. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +0 -56
  656. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +0 -1
  657. package/components/FileUploader/FileUploader.styles/package.json +0 -6
  658. package/components/FileUploader/FileUploader.styles.d.ts +0 -19
  659. package/components/FileUploader/index/index.js +0 -3
  660. package/components/FileUploader/index/index.js.map +0 -1
  661. package/components/FileUploader/index.d.ts +0 -4
  662. package/components/FileUploader/locale/index/index.js +0 -8
  663. package/components/FileUploader/locale/index/index.js.map +0 -1
  664. package/components/FileUploader/locale/index/package.json +0 -6
  665. package/components/FileUploader/locale/index.d.ts +0 -4
  666. package/components/FileUploader/locale/locales/en/en.js +0 -6
  667. package/components/FileUploader/locale/locales/en/en.js.map +0 -1
  668. package/components/FileUploader/locale/locales/en/package.json +0 -6
  669. package/components/FileUploader/locale/locales/en.d.ts +0 -2
  670. package/components/FileUploader/locale/locales/ru/package.json +0 -6
  671. package/components/FileUploader/locale/locales/ru/ru.js +0 -6
  672. package/components/FileUploader/locale/locales/ru/ru.js.map +0 -1
  673. package/components/FileUploader/locale/locales/ru.d.ts +0 -2
  674. package/components/FileUploader/locale/package.json +0 -6
  675. package/components/FileUploader/locale/types.d.ts +0 -6
  676. package/hooks/useDrop/package.json +0 -6
  677. package/hooks/useDrop/useDrop.js +0 -57
  678. package/hooks/useDrop/useDrop.js.map +0 -1
  679. package/hooks/useDrop.d.ts +0 -11
  680. package/hooks/useMemoObject/package.json +0 -6
  681. package/hooks/useMemoObject/useMemoObject.js +0 -6
  682. package/hooks/useMemoObject/useMemoObject.js.map +0 -1
  683. package/hooks/useMemoObject.d.ts +0 -1
  684. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +0 -2
  685. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +0 -1
  686. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +0 -6
  687. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  688. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +0 -79
  689. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +0 -1
  690. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +0 -6
  691. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  692. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +0 -176
  693. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +0 -1
  694. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +0 -6
  695. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  696. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +0 -32
  697. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +0 -1
  698. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +0 -6
  699. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  700. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +0 -23
  701. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  702. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +0 -6
  703. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  704. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +0 -11
  705. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +0 -1
  706. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +0 -6
  707. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  708. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +0 -18
  709. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +0 -1
  710. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +0 -6
  711. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  712. package/internal/FileUploaderControl/fileUtils/fileUtils.js +0 -85
  713. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +0 -1
  714. package/internal/FileUploaderControl/fileUtils/package.json +0 -6
  715. package/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  716. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +0 -6
  717. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +0 -5
  718. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +0 -1
  719. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  720. package/internal/FileUploaderControl/hooks/useUpload/package.json +0 -6
  721. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +0 -56
  722. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +0 -1
  723. package/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  724. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +0 -6
  725. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +0 -16
  726. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +0 -1
  727. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  728. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  729. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  730. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  731. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  732. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +0 -49
  733. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +0 -1
  734. package/internal/TextWidthHelper/TextWidthHelper/package.json +0 -6
  735. package/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  736. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +0 -14
  737. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +0 -1
  738. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +0 -6
  739. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  740. package/lib/guidUtils/guidUtils.js +0 -4
  741. package/lib/guidUtils/guidUtils.js.map +0 -1
  742. package/lib/guidUtils/package.json +0 -6
  743. package/lib/guidUtils.d.ts +0 -1
  744. package/lib/locale/useLocaleForControl/package.json +0 -6
  745. package/lib/locale/useLocaleForControl/useLocaleForControl.js +0 -12
  746. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +0 -1
  747. package/lib/locale/useLocaleForControl.d.ts +0 -3
  748. package/lib/stringUtils/package.json +0 -6
  749. package/lib/stringUtils/stringUtils.js +0 -12
  750. package/lib/stringUtils/stringUtils.js.map +0 -1
  751. package/lib/stringUtils.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Tab.tsx"],"names":["Tab","context","state","focusedByKeyboard","theme","tabComponent","getUnderlyingNode","getId","props","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","onClick","defaultPrevented","component","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","keyListener","isTabPressed","isArrowPressed","setState","handleBlur","UNSAFE_componentWillMount","TabsContextDefaultValue","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","renderMain","getIndicators","error","Boolean","warning","success","primary","children","Component","defaultProps","isActive","isVertical","vertical","orientationStyles","verticalStyles","horizontalStyles","styles","root","active","focus","globalClasses","React","__KONTUR_REACT_UI__","contextType","TabsContext","propTypes","PropTypes","node","bool","string","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { TabsContext, TabsContextType, TabsContextDefaultValue } from './TabsContext';\nimport { styles, horizontalStyles, verticalStyles, globalClasses } 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 interface TabProps<T extends string = string> extends CommonProps {\n /**\n * Tab content\n */\n children?: React.ReactNode;\n\n /**\n * Component to use as a tab\n */\n component?: React.ComponentType<any> | string;\n\n /**\n * Link href\n */\n href?: string;\n\n /**\n * Tab identifier\n */\n id?: T;\n\n /**\n * Click event\n */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /**\n * Click event\n */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /**\n * Disabled indicator\n */\n disabled?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * Success indicator\n */\n success?: boolean;\n\n /**\n * Primary indicator\n */\n primary?: boolean;\n\n /**\n * Style property\n */\n style?: React.CSSProperties;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\n/**\n * Tab element of Tabs component\n *\n * Can be used for creating custom tabs\n * ```js\n *\n * const RouteTab = (props) => (\n * <Tab id={props.to} component={RouteLink} {...props}/>\n * )\n *\n * const MyAwesomeTab = (props) => <Tab id={props.id}>8) {props.children}</Tab>\n * ```\n *\n * Works only inside Tabs component, otherwise throws\n */\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n href: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n };\n\n public static defaultProps = {\n component: 'a',\n href: '',\n };\n\n public state: TabState = {\n focusedByKeyboard: false,\n };\n\n private theme!: Theme;\n private tabComponent: Nullable<React.ReactElement<Tab<T>>> = null;\n\n public UNSAFE_componentWillMount() {\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 component: Component = Tab.defaultProps.component,\n href,\n } = this.props;\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 {...this.props}>\n <Component\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.vertical(this.theme)]: !!isVertical,\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 >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && <div className={cx(styles.focus(this.theme), globalClasses.focus)} />}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.props.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\n const id = this.props.id || this.props.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 (this.props.component === 'a' && !this.props.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 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"]}
1
+ {"version":3,"sources":["Tab.tsx"],"names":["Tab","rootNode","props","context","state","focusedByKeyboard","theme","tabComponent","setRootNode","getUnderlyingNode","getId","id","href","refTabComponent","instance","getTabInstance","switchTab","event","disabled","preventDefault","onClick","defaultPrevented","component","handleKeyDown","e","onKeyDown","delta","shiftFocus","handleFocus","requestAnimationFrame","keyListener","isTabPressed","isArrowPressed","setState","handleBlur","TabsContextDefaultValue","componentDidMount","addTab","componentDidUpdate","activeTab","notifyUpdate","componentWillUnmount","removeTab","render","renderMain","getIndicators","error","Boolean","warning","success","primary","children","Component","defaultProps","isActive","isVertical","vertical","orientationStyles","verticalStyles","horizontalStyles","styles","root","active","focus","globalClasses","React","__KONTUR_REACT_UI__","contextType","TabsContext","propTypes","PropTypes","node","bool","string","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isKeyArrow, isKeyArrowLeft, isKeyArrowUp } from '../../lib/events/keyboard/identifiers';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Nullable } from '../../typings/utility-types';\nimport { isFunctionalComponent } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { TabsContext, TabsContextType, TabsContextDefaultValue } from './TabsContext';\nimport { styles, horizontalStyles, verticalStyles, globalClasses } 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 interface TabProps<T extends string = string> extends CommonProps {\n /**\n * Tab content\n */\n children?: React.ReactNode;\n\n /**\n * Component to use as a tab\n */\n component?: React.ComponentType<any> | string;\n\n /**\n * Link href\n */\n href?: string;\n\n /**\n * Tab identifier\n */\n id?: T;\n\n /**\n * Click event\n */\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /**\n * Click event\n */\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n /**\n * Disabled indicator\n */\n disabled?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * Success indicator\n */\n success?: boolean;\n\n /**\n * Primary indicator\n */\n primary?: boolean;\n\n /**\n * Style property\n */\n style?: React.CSSProperties;\n}\n\nexport interface TabState {\n focusedByKeyboard: boolean;\n}\n\n/**\n * Tab element of Tabs component\n *\n * Can be used for creating custom tabs\n * ```js\n *\n * const RouteTab = (props) => (\n * <Tab id={props.to} component={RouteLink} {...props}/>\n * )\n *\n * const MyAwesomeTab = (props) => <Tab id={props.id}>8) {props.children}</Tab>\n * ```\n *\n * Works only inside Tabs component, otherwise throws\n */\n@rootNode\nexport class Tab<T extends string = string> extends React.Component<TabProps<T>, TabState> {\n public static __KONTUR_REACT_UI__ = 'Tab';\n\n public static contextType = TabsContext;\n public context: TabsContextType = this.context;\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n href: PropTypes.string.isRequired,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n };\n\n public static defaultProps = {\n component: 'a',\n href: '',\n };\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 component: Component = Tab.defaultProps.component,\n href,\n } = this.props;\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 rootNodeRef={this.setRootNode} {...this.props}>\n <Component\n className={cx({\n [styles.root(this.theme)]: true,\n [styles.vertical(this.theme)]: !!isVertical,\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 >\n <ResizeDetector onResize={this.context.notifyUpdate}>{children}</ResizeDetector>\n {this.state.focusedByKeyboard && <div className={cx(styles.focus(this.theme), globalClasses.focus)} />}\n </Component>\n </CommonWrapper>\n );\n }\n\n private getId = () => this.props.id || this.props.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\n const id = this.props.id || this.props.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 (this.props.component === 'a' && !this.props.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 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"]}
@@ -51,6 +51,7 @@ export declare class Tabs<T extends string = string> extends React.Component<Tab
51
51
  private tabs;
52
52
  private tabUpdates;
53
53
  private listeners;
54
+ private setRootNode;
54
55
  render(): JSX.Element;
55
56
  private shiftFocus;
56
57
  private notifyUpdate;
@@ -1,16 +1,17 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Tabs = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = require("react-dom");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Tabs = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
3
2
  var _propTypes = _interopRequireDefault(require("prop-types"));
4
3
 
5
4
  var _ThemeContext = require("../../lib/theming/ThemeContext");
6
5
 
7
6
  var _CommonWrapper = require("../../internal/CommonWrapper");
8
7
  var _Emotion = require("../../lib/theming/Emotion");
8
+ var _getRootNode = require("../../lib/rootNode/getRootNode");
9
+ var _rootNode = require("../../lib/rootNode");
9
10
 
10
11
  var _Indicator = require("./Indicator");
11
12
  var _Tabs = require("./Tabs.styles");
12
13
  var _TabsContext = require("./TabsContext");
13
- var _Tab = require("./Tab");
14
+ var _Tab = require("./Tab");var _class, _class2, _temp;
14
15
 
15
16
 
16
17
 
@@ -50,7 +51,8 @@ var _Tab = require("./Tab");
50
51
  *
51
52
  * contains static property `Tab`
52
53
  */var
53
- Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tabs, _React$Component);function Tabs() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
54
+
55
+ Tabs = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Tabs, _React$Component);function Tabs() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
54
56
 
55
57
 
56
58
 
@@ -83,6 +85,7 @@ Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ta
83
85
 
84
86
 
85
87
  listeners = [];_this.
88
+ setRootNode = void 0;_this.
86
89
 
87
90
 
88
91
 
@@ -124,10 +127,7 @@ Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ta
124
127
  var tab = tabs[newIndex];
125
128
 
126
129
  var tabNode = tab.getNode();
127
- var htmlNode = null;
128
- if (tabNode instanceof _react.default.Component) {
129
- htmlNode = (0, _reactDom.findDOMNode)(tabNode);
130
- }
130
+ var htmlNode = (0, _getRootNode.getRootNode)(tabNode);
131
131
 
132
132
  if (htmlNode && htmlNode instanceof HTMLElement && typeof htmlNode.focus === 'function') {
133
133
  htmlNode.focus();
@@ -156,4 +156,4 @@ Tabs = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Ta
156
156
 
157
157
  removeTab = function (id) {
158
158
  _this.tabs = _this.tabs.filter(function (tab) {return tab.id !== id;});
159
- };return _this;}var _proto = Tabs.prototype;_proto.render = function render() {var _this2 = this;var _this$props2 = this.props,vertical = _this$props2.vertical,value = _this$props2.value,width = _this$props2.width,children = _this$props2.children,indicatorClassName = _this$props2.indicatorClassName;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this2.props, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tabs.styles.root(_this2.theme), vertical && _Tabs.styles.vertical()), style: { width: width } }, /*#__PURE__*/_react.default.createElement(_TabsContext.TabsContext.Provider, { value: { vertical: vertical, activeTab: value, getTab: _this2.getTab, addTab: _this2.addTab, removeTab: _this2.removeTab, notifyUpdate: _this2.notifyUpdate, shiftFocus: _this2.shiftFocus, switchTab: _this2.switchTab } }, children, /*#__PURE__*/_react.default.createElement(_Indicator.Indicator, { className: indicatorClassName, tabUpdates: _this2.tabUpdates, vertical: vertical }))));});};return Tabs;}(_react.default.Component);exports.Tabs = Tabs;Tabs.__KONTUR_REACT_UI__ = 'Tabs';Tabs.propTypes = { children: _propTypes.default.node, indicatorClassName: _propTypes.default.string, value: _propTypes.default.string.isRequired, vertical: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]) };Tabs.defaultProps = { vertical: false };Tabs.Tab = _Tab.Tab;
159
+ };return _this;}var _proto = Tabs.prototype;_proto.render = function render() {var _this2 = this;var _this$props2 = this.props,vertical = _this$props2.vertical,value = _this$props2.value,width = _this$props2.width,children = _this$props2.children,indicatorClassName = _this$props2.indicatorClassName;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Tabs.styles.root(_this2.theme), vertical && _Tabs.styles.vertical()), style: { width: width } }, /*#__PURE__*/_react.default.createElement(_TabsContext.TabsContext.Provider, { value: { vertical: vertical, activeTab: value, getTab: _this2.getTab, addTab: _this2.addTab, removeTab: _this2.removeTab, notifyUpdate: _this2.notifyUpdate, shiftFocus: _this2.shiftFocus, switchTab: _this2.switchTab } }, children, /*#__PURE__*/_react.default.createElement(_Indicator.Indicator, { className: indicatorClassName, tabUpdates: _this2.tabUpdates, vertical: vertical }))));});};return Tabs;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Tabs', _class2.propTypes = { children: _propTypes.default.node, indicatorClassName: _propTypes.default.string, value: _propTypes.default.string.isRequired, vertical: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]) }, _class2.defaultProps = { vertical: false }, _class2.Tab = _Tab.Tab, _temp)) || _class;exports.Tabs = Tabs;
@@ -1 +1 @@
1
- {"version":3,"sources":["Tabs.tsx"],"names":["Tabs","theme","tabs","tabUpdates","on","cb","index","listeners","push","splice","shiftFocus","fromTab","delta","findIndex","x","id","newIndex","Math","max","min","length","tab","tabNode","getNode","htmlNode","React","Component","HTMLElement","focus","notifyUpdate","forEach","switchTab","props","onValueChange","value","getTab","find","addTab","concat","removeTab","filter","render","vertical","width","children","indicatorClassName","styles","root","activeTab","__KONTUR_REACT_UI__","propTypes","PropTypes","node","string","isRequired","bool","oneOfType","number","defaultProps","Tab"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { Tab } from './Tab';\n\nexport interface TabsProps<T extends string = string> extends CommonProps {\n /**\n * Tab component should be child of Tabs component\n */\n children?: React.ReactNode;\n\n /**\n * Classname of indicator\n */\n indicatorClassName?: string;\n\n /**\n * Tabs change event\n */\n onValueChange?: (value: T) => void;\n\n /**\n * Active tab identifier\n */\n value: T;\n\n /**\n * Vertical indicator\n * @default false\n */\n vertical: boolean;\n\n /**\n * Width of tabs container\n */\n width?: number | string;\n}\n\n/**\n * Tabs wrapper\n *\n * contains static property `Tab`\n */\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n\n public static propTypes = {\n children: PropTypes.node,\n indicatorClassName: PropTypes.string,\n value: PropTypes.string.isRequired,\n vertical: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n public static defaultProps = {\n vertical: false,\n };\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<{\n getNode: () => Tab<T> | null;\n id: T;\n }> = [];\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<() => void> = [];\n\n public render(): JSX.Element {\n const { vertical, value, width, children, indicatorClassName } = this.props;\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper {...this.props}>\n <div className={cx(styles.root(this.theme), vertical && styles.vertical())} style={{ width }}>\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\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 className={indicatorClassName} tabUpdates={this.tabUpdates} vertical={vertical} />\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 let htmlNode = null;\n if (tabNode instanceof React.Component) {\n htmlNode = findDOMNode(tabNode);\n }\n\n if (htmlNode && htmlNode instanceof 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"]}
1
+ {"version":3,"sources":["Tabs.tsx"],"names":["Tabs","rootNode","theme","tabs","tabUpdates","on","cb","index","listeners","push","splice","setRootNode","shiftFocus","fromTab","delta","findIndex","x","id","newIndex","Math","max","min","length","tab","tabNode","getNode","htmlNode","HTMLElement","focus","notifyUpdate","forEach","switchTab","props","onValueChange","value","getTab","find","addTab","concat","removeTab","filter","render","vertical","width","children","indicatorClassName","styles","root","activeTab","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","node","string","isRequired","bool","oneOfType","number","defaultProps","Tab"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode } from '../../lib/rootNode/getRootNode';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { Indicator } from './Indicator';\nimport { styles } from './Tabs.styles';\nimport { TabsContext, TabsContextType } from './TabsContext';\nimport { Tab } from './Tab';\n\nexport interface TabsProps<T extends string = string> extends CommonProps {\n /**\n * Tab component should be child of Tabs component\n */\n children?: React.ReactNode;\n\n /**\n * Classname of indicator\n */\n indicatorClassName?: string;\n\n /**\n * Tabs change event\n */\n onValueChange?: (value: T) => void;\n\n /**\n * Active tab identifier\n */\n value: T;\n\n /**\n * Vertical indicator\n * @default false\n */\n vertical: boolean;\n\n /**\n * Width of tabs container\n */\n width?: number | string;\n}\n\n/**\n * Tabs wrapper\n *\n * contains static property `Tab`\n */\n@rootNode\nexport class Tabs<T extends string = string> extends React.Component<TabsProps<T>> {\n public static __KONTUR_REACT_UI__ = 'Tabs';\n\n public static propTypes = {\n children: PropTypes.node,\n indicatorClassName: PropTypes.string,\n value: PropTypes.string.isRequired,\n vertical: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n public static defaultProps = {\n vertical: false,\n };\n\n public static Tab = Tab;\n\n private theme!: Theme;\n\n private tabs: Array<{\n getNode: () => Tab<T> | null;\n id: T;\n }> = [];\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<() => void> = [];\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n const { vertical, value, width, children, indicatorClassName } = this.props;\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={cx(styles.root(this.theme), vertical && styles.vertical())} style={{ width }}>\n <TabsContext.Provider\n value={{\n vertical,\n activeTab: value,\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 className={indicatorClassName} tabUpdates={this.tabUpdates} vertical={vertical} />\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 (htmlNode && htmlNode instanceof 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"]}
@@ -143,6 +143,7 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
143
143
  private counter;
144
144
  private layoutEvents;
145
145
  private textareaObserver;
146
+ private setRootNode;
146
147
  private getAutoResizeThrottleWait;
147
148
  private isAnimationsDisabled;
148
149
  componentDidMount(): void;
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Textarea = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");exports.__esModule = true;exports.Textarea = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
  var _propTypes = _interopRequireDefault(require("prop-types"));
3
3
  var _lodash = _interopRequireDefault(require("lodash.throttle"));
4
4
  var _raf = _interopRequireDefault(require("raf"));
@@ -15,10 +15,11 @@ var _client = require("../../lib/client");
15
15
  var _CommonWrapper = require("../../internal/CommonWrapper");
16
16
  var _currentEnvironment = require("../../lib/currentEnvironment");
17
17
  var _Emotion = require("../../lib/theming/Emotion");
18
+ var _rootNode = require("../../lib/rootNode");
18
19
 
19
20
  var _TextareaHelpers = require("./TextareaHelpers");
20
21
  var _Textarea = require("./Textarea.styles");
21
- var _TextareaCounter = require("./TextareaCounter");
22
+ var _TextareaCounter = require("./TextareaCounter");var _class, _class2, _temp;
22
23
 
23
24
  var DEFAULT_WIDTH = 250;
24
25
  var AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;
@@ -117,7 +118,8 @@ var AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;
117
118
  *
118
119
  * ** `className` и `style` игнорируются**
119
120
  */var
120
- Textarea = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Textarea, _React$Component);function Textarea() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
121
+
122
+ Textarea = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Textarea, _React$Component);function Textarea() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
121
123
 
122
124
 
123
125
 
@@ -198,6 +200,11 @@ Textarea = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
198
200
  counter = void 0;_this.
199
201
  layoutEvents = void 0;_this.
200
202
  textareaObserver = _client.isBrowser ? new MutationObserver(_this.reflowCounter) : null;_this.
203
+ setRootNode = void 0;_this.
204
+
205
+
206
+
207
+
201
208
 
202
209
 
203
210
 
@@ -530,7 +537,7 @@ Textarea = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
530
537
  }
531
538
  };return _this;}var _proto = Textarea.prototype;_proto.getAutoResizeThrottleWait = function getAutoResizeThrottleWait(props) {if (props === void 0) {props = this.props;} // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты
532
539
  // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120
533
- return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp) {var _ref2 = _temp === void 0 ? this.props : _temp,disableAnimations = _ref2.disableAnimations,extraRow = _ref2.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}if (this.props.autoResize && (this.props.rows !== prevProps.rows || this.props.maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {this.autoResize();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this2.props, _this2.renderMain);});} /**
540
+ return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp2) {var _ref2 = _temp2 === void 0 ? this.props : _temp2,disableAnimations = _ref2.disableAnimations,extraRow = _ref2.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}if (this.props.autoResize && (this.props.rows !== prevProps.rows || this.props.maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {this.autoResize();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});} /**
534
541
  * @public
535
542
  */;_proto.focus = function focus() {if (this.node) {this.node.focus();}} /**
536
543
  * @public
@@ -538,4 +545,4 @@ Textarea = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
538
545
  * @public
539
546
  * @param {number} start
540
547
  * @param {number} end
541
- */;return Textarea;}(_react.default.Component);exports.Textarea = Textarea;Textarea.__KONTUR_REACT_UI__ = 'Textarea';Textarea.propTypes = { error: _propTypes.default.bool, warning: _propTypes.default.bool, disabled: _propTypes.default.bool, autoResize: _propTypes.default.bool, extraRow: _propTypes.default.bool, disableAnimations: _propTypes.default.bool, maxRows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), resize: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), id: _propTypes.default.string, name: _propTypes.default.string, title: _propTypes.default.string, spellCheck: _propTypes.default.bool, role: _propTypes.default.string, maxLength: _propTypes.default.number, tabIndex: _propTypes.default.number, rows: _propTypes.default.number, placeholder: _propTypes.default.string, value: _propTypes.default.string, defaultValue: _propTypes.default.string, onValueChange: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, onMouseMove: _propTypes.default.func, onMouseOut: _propTypes.default.func, onMouseUp: _propTypes.default.func, onMouseDown: _propTypes.default.func, onClick: _propTypes.default.func, onDoubleClick: _propTypes.default.func, onKeyDown: _propTypes.default.func, onKeyPress: _propTypes.default.func, onKeyUp: _propTypes.default.func, onInput: _propTypes.default.func, onFocus: _propTypes.default.func, onBlur: _propTypes.default.func, onScroll: _propTypes.default.func, onWheel: _propTypes.default.func, onCut: _propTypes.default.func, onPaste: _propTypes.default.func, onCopy: _propTypes.default.func };Textarea.defaultProps = { rows: 3, maxRows: 15, extraRow: true, disableAnimations: _currentEnvironment.isTestEnv };
548
+ */;return Textarea;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Textarea', _class2.propTypes = { error: _propTypes.default.bool, warning: _propTypes.default.bool, disabled: _propTypes.default.bool, autoResize: _propTypes.default.bool, extraRow: _propTypes.default.bool, disableAnimations: _propTypes.default.bool, maxRows: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), resize: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), width: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), id: _propTypes.default.string, name: _propTypes.default.string, title: _propTypes.default.string, spellCheck: _propTypes.default.bool, role: _propTypes.default.string, maxLength: _propTypes.default.number, tabIndex: _propTypes.default.number, rows: _propTypes.default.number, placeholder: _propTypes.default.string, value: _propTypes.default.string, defaultValue: _propTypes.default.string, onValueChange: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, onMouseMove: _propTypes.default.func, onMouseOut: _propTypes.default.func, onMouseUp: _propTypes.default.func, onMouseDown: _propTypes.default.func, onClick: _propTypes.default.func, onDoubleClick: _propTypes.default.func, onKeyDown: _propTypes.default.func, onKeyPress: _propTypes.default.func, onKeyUp: _propTypes.default.func, onInput: _propTypes.default.func, onFocus: _propTypes.default.func, onBlur: _propTypes.default.func, onScroll: _propTypes.default.func, onWheel: _propTypes.default.func, onCut: _propTypes.default.func, onPaste: _propTypes.default.func, onCopy: _propTypes.default.func }, _class2.defaultProps = { rows: 3, maxRows: 15, extraRow: true, disableAnimations: _currentEnvironment.isTestEnv }, _temp)) || _class;exports.Textarea = Textarea;
@@ -1 +1 @@
1
- {"version":3,"sources":["Textarea.tsx"],"names":["DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","Textarea","state","polyfillPlaceholder","isCounterVisible","reflowCounter","counter","reflow","theme","selectAllId","node","fakeNode","layoutEvents","textareaObserver","isBrowser","MutationObserver","setSelectionRange","start","end","Error","document","activeElement","focus","selectAll","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","renderMain","props","width","error","warning","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","rootProps","style","textareaClassNames","styles","textarea","isAnimationsDisabled","textareaStyle","placeholderPolyfill","fakeTextarea","fakeProps","defaultValue","className","fake","readOnly","refFake","maxLength","handleCloseCounterHelp","refCounter","root","undefined","ref","handleChange","handleCut","handlePaste","handleFocus","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","onKeyDown","fieldIsEmpty","target","onChange","element","autoResizeHandler","rows","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","isIE11","componentDidMount","LayoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","render","blur","React","Component","__KONTUR_REACT_UI__","propTypes","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","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport raf from 'raf';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { polyfillPlaceholder } from '../../lib/polyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isBrowser, isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport { TextareaCounter, TextareaCounterRef } from './TextareaCounter';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Не активное состояние */\n disabled?: boolean;\n\n /**\n * Атоматический ресайз\n * в зависимости от содержимого\n */\n autoResize?: boolean;\n /**\n * Число строк\n */\n rows: number;\n /**\n * Максимальное число строк при\n * автоматическом ресайзе\n */\n maxRows: string | number;\n\n /**\n * Стандартный ресайз\n * Попадает в `style`\n */\n resize?: React.CSSProperties['resize'];\n\n /**\n * Ширина\n */\n width?: React.CSSProperties['width'];\n\n /**\n * Вызывается при изменении `value`\n */\n onValueChange?: (value: string) => void;\n\n /** Выделение значения при фокусе */\n selectAllOnFocus?: boolean;\n\n /** Показывать счетчик символов */\n showLengthCounter?: boolean;\n\n /** Допустимое количество символов в поле. Отображается в счетчике.\n * Если не указано, равно `maxLength`\n */\n lengthCounter?: number;\n\n /** Подсказка к счетчику символов.\n *\n * По умолчанию - тултип с содежимым из пропа, если передан`ReactNode`.\n *\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой. Например,\n *\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ```\n * */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавлять дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04\n * */\n extraRow: boolean;\n\n /** Отключать анимацию при авто-ресайзе.\n * Автоматически отключается когда в `extraRow` передан `false`.\n */\n disableAnimations: boolean;\n }\n > {}\n\nexport interface TextareaState {\n polyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\n/**\n * Компонент для ввода многострочного текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`\n *\n * ** `className` и `style` игнорируются**\n */\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = '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 = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public state = {\n polyfillPlaceholder,\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 = isBrowser ? new MutationObserver(this.reflowCounter) : null;\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 if (\n this.props.autoResize &&\n (this.props.rows !== prevProps.rows ||\n this.props.maxRows !== prevProps.maxRows ||\n 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 <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\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 (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 => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(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 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({\n [styles.textarea(this.theme)]: true,\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.polyfillPlaceholder && !textareaProps.value) {\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 help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label {...rootProps} className={styles.root(this.theme)}>\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <textarea\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 </textarea>\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 (polyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.polyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ polyfillPlaceholder: 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, extraRow } = this.props;\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n const { height, exceededMaxHeight } = getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow,\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"]}
1
+ {"version":3,"sources":["Textarea.tsx"],"names":["DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","Textarea","rootNode","state","polyfillPlaceholder","isCounterVisible","reflowCounter","counter","reflow","theme","selectAllId","node","fakeNode","layoutEvents","textareaObserver","isBrowser","MutationObserver","setRootNode","setSelectionRange","start","end","Error","document","activeElement","focus","selectAll","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","renderMain","props","width","error","warning","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","rootProps","style","textareaClassNames","styles","textarea","isAnimationsDisabled","textareaStyle","placeholderPolyfill","fakeTextarea","fakeProps","defaultValue","className","fake","readOnly","refFake","maxLength","handleCloseCounterHelp","refCounter","root","undefined","ref","handleChange","handleCut","handlePaste","handleFocus","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","onKeyDown","fieldIsEmpty","target","onChange","element","autoResizeHandler","rows","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","isIE11","componentDidMount","LayoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","render","blur","React","Component","__KONTUR_REACT_UI__","propTypes","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","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport raf from 'raf';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { polyfillPlaceholder } from '../../lib/polyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isBrowser, isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport { TextareaCounter, TextareaCounterRef } from './TextareaCounter';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Не активное состояние */\n disabled?: boolean;\n\n /**\n * Атоматический ресайз\n * в зависимости от содержимого\n */\n autoResize?: boolean;\n /**\n * Число строк\n */\n rows: number;\n /**\n * Максимальное число строк при\n * автоматическом ресайзе\n */\n maxRows: string | number;\n\n /**\n * Стандартный ресайз\n * Попадает в `style`\n */\n resize?: React.CSSProperties['resize'];\n\n /**\n * Ширина\n */\n width?: React.CSSProperties['width'];\n\n /**\n * Вызывается при изменении `value`\n */\n onValueChange?: (value: string) => void;\n\n /** Выделение значения при фокусе */\n selectAllOnFocus?: boolean;\n\n /** Показывать счетчик символов */\n showLengthCounter?: boolean;\n\n /** Допустимое количество символов в поле. Отображается в счетчике.\n * Если не указано, равно `maxLength`\n */\n lengthCounter?: number;\n\n /** Подсказка к счетчику символов.\n *\n * По умолчанию - тултип с содежимым из пропа, если передан`ReactNode`.\n *\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой. Например,\n *\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ```\n * */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавлять дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04\n * */\n extraRow: boolean;\n\n /** Отключать анимацию при авто-ресайзе.\n * Автоматически отключается когда в `extraRow` передан `false`.\n */\n disableAnimations: boolean;\n }\n > {}\n\nexport interface TextareaState {\n polyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\n/**\n * Компонент для ввода многострочного текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`\n *\n * ** `className` и `style` игнорируются**\n */\n@rootNode\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = '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 = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public state = {\n polyfillPlaceholder,\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 = isBrowser ? new MutationObserver(this.reflowCounter) : 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 if (\n this.props.autoResize &&\n (this.props.rows !== prevProps.rows ||\n this.props.maxRows !== prevProps.maxRows ||\n 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.props}>\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 (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 => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(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 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({\n [styles.textarea(this.theme)]: true,\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.polyfillPlaceholder && !textareaProps.value) {\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 help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label {...rootProps} className={styles.root(this.theme)}>\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <textarea\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 </textarea>\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 (polyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.polyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ polyfillPlaceholder: 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, extraRow } = this.props;\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n const { height, exceededMaxHeight } = getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow,\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"]}
@@ -26,10 +26,12 @@ export interface ToastProps extends CommonProps {
26
26
  */
27
27
  export declare class Toast extends React.Component<ToastProps, ToastState> {
28
28
  static __KONTUR_REACT_UI__: string;
29
+ private setRootNode;
29
30
  static push(notification: string, action?: Action): void;
30
31
  static close(): void;
31
32
  _toast: Nullable<ToastView>;
32
33
  private _timeout;
34
+ private rootRef;
33
35
  constructor(props: ToastProps);
34
36
  componentWillUnmount(): void;
35
37
  render(): JSX.Element;
@@ -49,6 +51,7 @@ export declare class Toast extends React.Component<ToastProps, ToastState> {
49
51
  */
50
52
  close: () => void;
51
53
  private _renderToast;
54
+ private setRootRef;
52
55
  private _clearTimer;
53
56
  private _setTimer;
54
57
  private _refToast;
@@ -5,10 +5,11 @@ var _RenderContainer = require("../../internal/RenderContainer");
5
5
 
6
6
  var _CommonWrapper = require("../../internal/CommonWrapper");
7
7
  var _currentEnvironment = require("../../lib/currentEnvironment");
8
+ var _rootNode = require("../../lib/rootNode");
8
9
 
9
10
  var _Toast = require("./Toast.styles");
10
11
  var _ToastView = require("./ToastView");
11
- var _ToastStatic = require("./ToastStatic");
12
+ var _ToastStatic = require("./ToastStatic");var _class, _class2, _temp;
12
13
 
13
14
 
14
15
 
@@ -35,7 +36,9 @@ var _ToastStatic = require("./ToastStatic");
35
36
  *
36
37
  * Рекомендуется использовать Toast через `ref` (см. примеры).
37
38
  */var
38
- Toast = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Toast, _React$Component);Toast.
39
+
40
+ Toast = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Toast, _React$Component);Toast.
41
+
39
42
 
40
43
 
41
44
  push = function push(notification, action) {
@@ -49,8 +52,9 @@ Toast = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(T
49
52
 
50
53
 
51
54
 
55
+
52
56
  function Toast(props) {var _this;
53
- _this = _React$Component.call(this, props) || this;_this._toast = void 0;_this._timeout = null;_this.
57
+ _this = _React$Component.call(this, props) || this;_this.setRootNode = void 0;_this._toast = void 0;_this._timeout = null;_this.rootRef = /*#__PURE__*/_react.default.createRef();_this.
54
58
 
55
59
 
56
60
 
@@ -135,6 +139,13 @@ Toast = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(T
135
139
 
136
140
 
137
141
 
142
+
143
+
144
+ setRootRef = function (element) {
145
+ _this.setRootNode(element);
146
+ // @ts-ignore
147
+ _this.rootRef.current = element;
148
+ };_this.
138
149
 
139
150
  _clearTimer = function () {
140
151
  if (_this._timeout) {
@@ -164,4 +175,4 @@ Toast = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(T
164
175
  * добавляет кнопку в виде ссылки при клике на которую вызывается переданный handler
165
176
  */;_proto.push = function push(notification, action) {if (this.state.notification) {this.close();}safelyCall(this.props.onPush, notification, action);this.setState(function (_ref) {var id = _ref.id;return { notification: notification, action: action, id: id + 1 };}, this._setTimer);} /**
166
177
  * @public
167
- */;_proto._renderToast = function _renderToast() {var _this$state = this.state,notification = _this$state.notification,action = _this$state.action,id = _this$state.id;if (!notification) {return null;}var toastProps = { onMouseEnter: this._clearTimer, onMouseLeave: this._setTimer, onClose: this.close, children: notification, action: action };return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.CSSTransition, { key: id, classNames: { enter: _Toast.styles.enter(), enterActive: _Toast.styles.enterActive(), exit: _Toast.styles.exit(), exitActive: _Toast.styles.exitActive() }, timeout: { enter: 200, exit: 150 }, enter: !_currentEnvironment.isTestEnv, exit: !_currentEnvironment.isTestEnv }, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_ToastView.ToastView, (0, _extends2.default)({ ref: this._refToast }, toastProps))));};return Toast;}(_react.default.Component);exports.Toast = Toast;Toast.__KONTUR_REACT_UI__ = 'Toast';function safelyCall(fn) {if (fn) {for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}fn.apply(void 0, args);}}
178
+ */;_proto._renderToast = function _renderToast() {var _this$state = this.state,notification = _this$state.notification,action = _this$state.action,id = _this$state.id;if (!notification) {return null;}var toastProps = { onMouseEnter: this._clearTimer, onMouseLeave: this._setTimer, onClose: this.close, children: notification, action: action };return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.CSSTransition, { key: id, classNames: { enter: _Toast.styles.enter(), enterActive: _Toast.styles.enterActive(), exit: _Toast.styles.exit(), exitActive: _Toast.styles.exitActive() }, timeout: { enter: 200, exit: 150 }, enter: !_currentEnvironment.isTestEnv, exit: !_currentEnvironment.isTestEnv, nodeRef: this.rootRef }, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootRef }, this.props), /*#__PURE__*/_react.default.createElement(_ToastView.ToastView, (0, _extends2.default)({ ref: this._refToast }, toastProps))));};return Toast;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Toast', _temp)) || _class;exports.Toast = Toast;function safelyCall(fn) {if (fn) {for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}fn.apply(void 0, args);}}
@@ -1 +1 @@
1
- {"version":3,"sources":["Toast.tsx"],"names":["Toast","push","notification","action","ToastStatic","close","props","_toast","_timeout","safelyCall","onClose","state","setState","_clearTimer","clearTimeout","_setTimer","timeOut","window","setTimeout","_refToast","element","id","componentWillUnmount","render","_renderToast","onPush","toastProps","onMouseEnter","onMouseLeave","children","enter","styles","enterActive","exit","exitActive","isTestEnv","React","Component","__KONTUR_REACT_UI__","fn","args"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\n\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\n\nimport { styles } from './Toast.styles';\nimport { ToastView, ToastViewProps } from './ToastView';\nimport { ToastStatic } from './ToastStatic';\n\nexport interface Action {\n label: string;\n handler: () => void;\n}\n\nexport interface ToastState {\n notification: Nullable<string>;\n action: Nullable<Action>;\n id: number;\n}\n\nexport interface ToastProps extends CommonProps {\n onPush?: (notification: string, action?: Action) => void;\n onClose?: (notification: string, action?: Action) => void;\n}\n\n/**\n * Показывает уведомления.\n *\n * Доступен статический метод: `Toast.push(notification, action?)`.\n * Однако, при его использовании не работает кастомизация и могут быть проблемы\n * с перекрытием уведомления другими элементами страницы.\n *\n * Рекомендуется использовать Toast через `ref` (см. примеры).\n */\nexport class Toast extends React.Component<ToastProps, ToastState> {\n public static __KONTUR_REACT_UI__ = 'Toast';\n\n public static push(notification: string, action?: Action) {\n ToastStatic.push(notification, action);\n }\n\n public static close() {\n ToastStatic.close();\n }\n\n public _toast: Nullable<ToastView>;\n private _timeout: Nullable<number> = null;\n\n constructor(props: ToastProps) {\n super(props);\n this.state = {\n notification: null,\n action: null,\n id: 0,\n };\n }\n\n public componentWillUnmount() {\n this._clearTimer();\n }\n\n public render() {\n return (\n <RenderContainer>\n <TransitionGroup>{this._renderToast()}</TransitionGroup>\n </RenderContainer>\n );\n }\n\n /**\n * Показывает тост с `notification` в качестве сообщения.\n * Тост автоматически скрывается через 3 или 7 секунд,\n * в зависимости от наличия у него кнопки `action`.\n *\n * @public\n * @param {string} notification\n * @param {Action} action `action` опциональный параметр формата `{ label: string, handler: function }`\n * добавляет кнопку в виде ссылки при клике на которую вызывается переданный handler\n */\n public push(notification: string, action?: Action) {\n if (this.state.notification) {\n this.close();\n }\n\n safelyCall(this.props.onPush, notification, action);\n\n this.setState(({ id }) => ({ notification, action, id: id + 1 }), this._setTimer);\n }\n\n /**\n * @public\n */\n public close = () => {\n safelyCall(this.props.onClose, this.state.notification, this.state.action);\n this.setState({ notification: null, action: null });\n };\n\n private _renderToast() {\n const { notification, action, id } = this.state;\n\n if (!notification) {\n return null;\n }\n\n const toastProps: ToastViewProps = {\n onMouseEnter: this._clearTimer,\n onMouseLeave: this._setTimer,\n onClose: this.close,\n children: notification,\n action,\n };\n\n return (\n <CSSTransition\n key={id}\n classNames={{\n enter: styles.enter(),\n enterActive: styles.enterActive(),\n exit: styles.exit(),\n exitActive: styles.exitActive(),\n }}\n timeout={{\n enter: 200,\n exit: 150,\n }}\n enter={!isTestEnv}\n exit={!isTestEnv}\n >\n <CommonWrapper {...this.props}>\n <ToastView ref={this._refToast} {...toastProps} />\n </CommonWrapper>\n </CSSTransition>\n );\n }\n\n private _clearTimer = () => {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n };\n\n private _setTimer = () => {\n this._clearTimer();\n\n const timeOut = this.state.action ? 7 : 3;\n\n this._timeout = window.setTimeout(this.close, timeOut * 1000);\n };\n\n private _refToast = (element: ToastView) => {\n this._toast = element;\n };\n}\n\nfunction safelyCall(fn: Nullable<(a?: any) => any>, ...args: any[]) {\n if (fn) {\n fn(...args);\n }\n}\n"]}
1
+ {"version":3,"sources":["Toast.tsx"],"names":["Toast","rootNode","push","notification","action","ToastStatic","close","props","setRootNode","_toast","_timeout","rootRef","React","createRef","safelyCall","onClose","state","setState","setRootRef","element","current","_clearTimer","clearTimeout","_setTimer","timeOut","window","setTimeout","_refToast","id","componentWillUnmount","render","_renderToast","onPush","toastProps","onMouseEnter","onMouseLeave","children","enter","styles","enterActive","exit","exitActive","isTestEnv","Component","__KONTUR_REACT_UI__","fn","args"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\n\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Toast.styles';\nimport { ToastView, ToastViewProps } from './ToastView';\nimport { ToastStatic } from './ToastStatic';\n\nexport interface Action {\n label: string;\n handler: () => void;\n}\n\nexport interface ToastState {\n notification: Nullable<string>;\n action: Nullable<Action>;\n id: number;\n}\n\nexport interface ToastProps extends CommonProps {\n onPush?: (notification: string, action?: Action) => void;\n onClose?: (notification: string, action?: Action) => void;\n}\n\n/**\n * Показывает уведомления.\n *\n * Доступен статический метод: `Toast.push(notification, action?)`.\n * Однако, при его использовании не работает кастомизация и могут быть проблемы\n * с перекрытием уведомления другими элементами страницы.\n *\n * Рекомендуется использовать Toast через `ref` (см. примеры).\n */\n@rootNode\nexport class Toast extends React.Component<ToastProps, ToastState> {\n public static __KONTUR_REACT_UI__ = 'Toast';\n private setRootNode!: TSetRootNode;\n\n public static push(notification: string, action?: Action) {\n ToastStatic.push(notification, action);\n }\n\n public static close() {\n ToastStatic.close();\n }\n\n public _toast: Nullable<ToastView>;\n private _timeout: Nullable<number> = null;\n private rootRef = React.createRef<HTMLElement>();\n\n constructor(props: ToastProps) {\n super(props);\n this.state = {\n notification: null,\n action: null,\n id: 0,\n };\n }\n\n public componentWillUnmount() {\n this._clearTimer();\n }\n\n public render() {\n return (\n <RenderContainer>\n <TransitionGroup>{this._renderToast()}</TransitionGroup>\n </RenderContainer>\n );\n }\n\n /**\n * Показывает тост с `notification` в качестве сообщения.\n * Тост автоматически скрывается через 3 или 7 секунд,\n * в зависимости от наличия у него кнопки `action`.\n *\n * @public\n * @param {string} notification\n * @param {Action} action `action` опциональный параметр формата `{ label: string, handler: function }`\n * добавляет кнопку в виде ссылки при клике на которую вызывается переданный handler\n */\n public push(notification: string, action?: Action) {\n if (this.state.notification) {\n this.close();\n }\n\n safelyCall(this.props.onPush, notification, action);\n\n this.setState(({ id }) => ({ notification, action, id: id + 1 }), this._setTimer);\n }\n\n /**\n * @public\n */\n public close = () => {\n safelyCall(this.props.onClose, this.state.notification, this.state.action);\n this.setState({ notification: null, action: null });\n };\n\n private _renderToast() {\n const { notification, action, id } = this.state;\n\n if (!notification) {\n return null;\n }\n\n const toastProps: ToastViewProps = {\n onMouseEnter: this._clearTimer,\n onMouseLeave: this._setTimer,\n onClose: this.close,\n children: notification,\n action,\n };\n\n return (\n <CSSTransition\n key={id}\n classNames={{\n enter: styles.enter(),\n enterActive: styles.enterActive(),\n exit: styles.exit(),\n exitActive: styles.exitActive(),\n }}\n timeout={{\n enter: 200,\n exit: 150,\n }}\n enter={!isTestEnv}\n exit={!isTestEnv}\n nodeRef={this.rootRef}\n >\n <CommonWrapper rootNodeRef={this.setRootRef} {...this.props}>\n <ToastView ref={this._refToast} {...toastProps} />\n </CommonWrapper>\n </CSSTransition>\n );\n }\n\n private setRootRef = (element: Nullable<HTMLElement>) => {\n this.setRootNode(element);\n // @ts-ignore\n this.rootRef.current = element;\n };\n\n private _clearTimer = () => {\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n };\n\n private _setTimer = () => {\n this._clearTimer();\n\n const timeOut = this.state.action ? 7 : 3;\n\n this._timeout = window.setTimeout(this.close, timeOut * 1000);\n };\n\n private _refToast = (element: ToastView) => {\n this._toast = element;\n };\n}\n\nfunction safelyCall(fn: Nullable<(a?: any) => any>, ...args: any[]) {\n if (fn) {\n fn(...args);\n }\n}\n"]}
@@ -32,6 +32,7 @@ export declare class ToastView extends React.Component<ToastViewProps> {
32
32
  onClose: import("prop-types").Requireable<(...args: any[]) => any>;
33
33
  };
34
34
  private theme;
35
+ private setRootNode;
35
36
  render(): JSX.Element;
36
37
  private renderMain;
37
38
  }