@skbkontur/react-ui 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +7 -7
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
  4. package/cjs/components/Autocomplete/Autocomplete.js +49 -46
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +2 -0
  7. package/cjs/components/Button/Button.js +29 -1
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +6 -0
  10. package/cjs/components/Button/Button.styles.js +107 -75
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Calendar/Calendar.d.ts +2 -0
  13. package/cjs/components/Calendar/Calendar.js +1 -0
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Center/Center.d.ts +2 -0
  16. package/cjs/components/Center/Center.js +1 -0
  17. package/cjs/components/Center/Center.js.map +1 -1
  18. package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
  19. package/cjs/components/Checkbox/Checkbox.js +2 -14
  20. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  22. package/cjs/components/ComboBox/ComboBox.js +1 -0
  23. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  25. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
  26. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  27. package/cjs/components/CurrencyInput/constants.js +1 -2
  28. package/cjs/components/CurrencyInput/constants.js.map +1 -1
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.d.ts +2 -0
  32. package/cjs/components/DateInput/DateInput.js +1 -0
  33. package/cjs/components/DateInput/DateInput.js.map +1 -1
  34. package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
  35. package/cjs/components/DatePicker/DatePicker.js +6 -60
  36. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
  38. package/cjs/components/Dropdown/Dropdown.js +2 -82
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FxInput/FxInput.d.ts +2 -5
  44. package/cjs/components/FxInput/FxInput.js +2 -7
  45. package/cjs/components/FxInput/FxInput.js.map +1 -1
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -15
  47. package/cjs/components/Gapped/Gapped.js +1 -24
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  50. package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
  51. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  52. package/cjs/components/Group/Group.d.ts +5 -4
  53. package/cjs/components/Group/Group.js +91 -40
  54. package/cjs/components/Group/Group.js.map +1 -1
  55. package/cjs/components/Group/Group.styles.d.ts +1 -0
  56. package/cjs/components/Group/Group.styles.js +12 -6
  57. package/cjs/components/Group/Group.styles.js.map +1 -1
  58. package/cjs/components/Hint/Hint.d.ts +2 -0
  59. package/cjs/components/Hint/Hint.js +1 -0
  60. package/cjs/components/Hint/Hint.js.map +1 -1
  61. package/cjs/components/Input/Input.d.ts +2 -0
  62. package/cjs/components/Input/Input.js +1 -0
  63. package/cjs/components/Input/Input.js.map +1 -1
  64. package/cjs/components/Kebab/Kebab.d.ts +2 -1
  65. package/cjs/components/Kebab/Kebab.js +2 -26
  66. package/cjs/components/Kebab/Kebab.js.map +1 -1
  67. package/cjs/components/Link/Link.d.ts +2 -0
  68. package/cjs/components/Link/Link.js +1 -0
  69. package/cjs/components/Link/Link.js.map +1 -1
  70. package/cjs/components/Loader/Loader.d.ts +6 -36
  71. package/cjs/components/Loader/Loader.js +3 -57
  72. package/cjs/components/Loader/Loader.js.map +1 -1
  73. package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
  74. package/cjs/components/MaskedInput/MaskedInput.js +17 -1
  75. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  76. package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
  77. package/cjs/components/MenuItem/MenuItem.js +2 -22
  78. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  79. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  80. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  81. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  82. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  83. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  84. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  85. package/cjs/components/Modal/Modal.styles.js +36 -28
  86. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  87. package/cjs/components/Modal/ModalBody.d.ts +2 -0
  88. package/cjs/components/Modal/ModalBody.js +1 -0
  89. package/cjs/components/Modal/ModalBody.js.map +1 -1
  90. package/cjs/components/Modal/ModalHeader.d.ts +5 -0
  91. package/cjs/components/Modal/ModalHeader.js +8 -1
  92. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  93. package/cjs/components/Paging/DotsIcon.d.ts +3 -0
  94. package/cjs/components/Paging/DotsIcon.js +13 -0
  95. package/cjs/components/Paging/DotsIcon.js.map +1 -0
  96. package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
  97. package/cjs/components/Paging/ForwardIcon.js +13 -1
  98. package/cjs/components/Paging/ForwardIcon.js.map +1 -1
  99. package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
  100. package/cjs/components/Paging/NavigationHelper.js +8 -6
  101. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  102. package/cjs/components/Paging/Paging.d.ts +13 -2
  103. package/cjs/components/Paging/Paging.js +120 -50
  104. package/cjs/components/Paging/Paging.js.map +1 -1
  105. package/cjs/components/Paging/Paging.styles.d.ts +24 -1
  106. package/cjs/components/Paging/Paging.styles.js +151 -22
  107. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  108. package/cjs/components/Paging/PagingHelper.d.ts +1 -1
  109. package/cjs/components/Paging/PagingHelper.js +18 -11
  110. package/cjs/components/Paging/PagingHelper.js.map +1 -1
  111. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
  112. package/cjs/components/PasswordInput/PasswordInput.js +2 -11
  113. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  114. package/cjs/components/Radio/Radio.d.ts +2 -0
  115. package/cjs/components/Radio/Radio.js +1 -0
  116. package/cjs/components/Radio/Radio.js.map +1 -1
  117. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
  118. package/cjs/components/RadioGroup/RadioGroup.js +1 -0
  119. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  120. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  121. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
  122. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  123. package/cjs/components/Select/Select.d.ts +2 -0
  124. package/cjs/components/Select/Select.js +1 -0
  125. package/cjs/components/Select/Select.js.map +1 -1
  126. package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
  127. package/cjs/components/SidePage/SidePage.styles.js +52 -38
  128. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  129. package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
  130. package/cjs/components/SidePage/SidePageBody.js +1 -0
  131. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  132. package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
  133. package/cjs/components/SidePage/SidePageContainer.js +1 -0
  134. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
  136. package/cjs/components/SidePage/SidePageFooter.js +1 -0
  137. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  138. package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
  139. package/cjs/components/SidePage/SidePageHeader.js +60 -19
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.d.ts +2 -18
  142. package/cjs/components/Spinner/Spinner.js +2 -32
  143. package/cjs/components/Spinner/Spinner.js.map +1 -1
  144. package/cjs/components/Sticky/Sticky.d.ts +2 -13
  145. package/cjs/components/Sticky/Sticky.js +2 -22
  146. package/cjs/components/Sticky/Sticky.js.map +1 -1
  147. package/cjs/components/Switcher/Switcher.d.ts +6 -21
  148. package/cjs/components/Switcher/Switcher.js +11 -20
  149. package/cjs/components/Switcher/Switcher.js.map +1 -1
  150. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  151. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  152. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  153. package/cjs/components/Tabs/Indicator.d.ts +2 -0
  154. package/cjs/components/Tabs/Indicator.js +1 -0
  155. package/cjs/components/Tabs/Indicator.js.map +1 -1
  156. package/cjs/components/Tabs/Tab.d.ts +2 -0
  157. package/cjs/components/Tabs/Tab.js +1 -0
  158. package/cjs/components/Tabs/Tab.js.map +1 -1
  159. package/cjs/components/Tabs/Tabs.d.ts +2 -0
  160. package/cjs/components/Tabs/Tabs.js +1 -0
  161. package/cjs/components/Tabs/Tabs.js.map +1 -1
  162. package/cjs/components/Textarea/Textarea.d.ts +2 -44
  163. package/cjs/components/Textarea/Textarea.js +2 -56
  164. package/cjs/components/Textarea/Textarea.js.map +1 -1
  165. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  166. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +2 -0
  168. package/cjs/components/Toast/Toast.js +1 -0
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toast/ToastView.d.ts +2 -14
  171. package/cjs/components/Toast/ToastView.js +3 -22
  172. package/cjs/components/Toast/ToastView.js.map +1 -1
  173. package/cjs/components/Toggle/Toggle.d.ts +2 -10
  174. package/cjs/components/Toggle/Toggle.js +1 -11
  175. package/cjs/components/Toggle/Toggle.js.map +1 -1
  176. package/cjs/components/Token/Token.d.ts +2 -0
  177. package/cjs/components/Token/Token.js +1 -0
  178. package/cjs/components/Token/Token.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  180. package/cjs/components/TokenInput/TokenInput.js +1 -0
  181. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
  183. package/cjs/components/Tooltip/Tooltip.js +95 -13
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
  186. package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
  187. package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
  188. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  189. package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
  190. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  191. package/cjs/index.d.ts +1 -0
  192. package/cjs/index.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  194. package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
  195. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  196. package/cjs/internal/ComponentTable.js +2 -3
  197. package/cjs/internal/ComponentTable.js.map +1 -1
  198. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  199. package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
  200. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  201. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  202. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
  203. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  204. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  205. package/cjs/internal/DateSelect/DateSelect.js +1 -18
  206. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  207. package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
  208. package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
  209. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  210. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
  211. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  212. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
  213. package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
  214. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  215. package/cjs/internal/Menu/Menu.d.ts +2 -0
  216. package/cjs/internal/Menu/Menu.js +1 -0
  217. package/cjs/internal/Menu/Menu.js.map +1 -1
  218. package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
  219. package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  221. package/cjs/internal/Popup/Popup.d.ts +41 -59
  222. package/cjs/internal/Popup/Popup.js +36 -79
  223. package/cjs/internal/Popup/Popup.js.map +1 -1
  224. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  225. package/cjs/internal/Popup/PopupPin.js +2 -35
  226. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  227. package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
  228. package/cjs/internal/Popup/PopupPinNew.js +180 -0
  229. package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
  230. package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  231. package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
  232. package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
  233. package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
  234. package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
  235. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  236. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  237. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  238. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  239. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
  240. package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
  241. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  243. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  244. package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
  245. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  246. package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
  247. package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  249. package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
  250. package/cjs/internal/ZIndex/ZIndex.js +5 -1
  251. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  252. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  253. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
  254. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
  255. package/cjs/internal/themes/BasicTheme.d.ts +112 -20
  256. package/cjs/internal/themes/BasicTheme.js +149 -18
  257. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  258. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  259. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  260. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  261. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  262. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  263. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  264. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  265. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  266. package/cjs/lib/delay.mts +3 -0
  267. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  268. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  269. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  270. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  271. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  272. package/cjs/lib/forwardRefAndName.js +0 -1
  273. package/cjs/lib/forwardRefAndName.js.map +1 -1
  274. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  275. package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
  276. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  277. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  278. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  279. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  280. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  281. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  282. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  283. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  284. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  285. package/cjs/lib/utils.d.ts +4 -0
  286. package/cjs/lib/utils.js +5 -1
  287. package/cjs/lib/utils.js.map +1 -1
  288. package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
  289. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  290. package/components/Autocomplete/Autocomplete.d.ts +6 -23
  291. package/components/Button/Button/Button.js +26 -5
  292. package/components/Button/Button/Button.js.map +1 -1
  293. package/components/Button/Button.d.ts +2 -0
  294. package/components/Button/Button.styles/Button.styles.js +78 -60
  295. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  296. package/components/Button/Button.styles.d.ts +6 -0
  297. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  298. package/components/Calendar/Calendar.d.ts +2 -0
  299. package/components/Center/Center/Center.js.map +1 -1
  300. package/components/Center/Center.d.ts +2 -0
  301. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  302. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  303. package/components/Checkbox/Checkbox.d.ts +2 -12
  304. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  305. package/components/ComboBox/ComboBox.d.ts +2 -0
  306. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
  307. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  308. package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  309. package/components/CurrencyInput/constants/constants.js +0 -1
  310. package/components/CurrencyInput/constants/constants.js.map +1 -1
  311. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  312. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  313. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  314. package/components/DateInput/DateInput.d.ts +2 -0
  315. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  316. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  317. package/components/DatePicker/DatePicker.d.ts +6 -33
  318. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  319. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  320. package/components/Dropdown/Dropdown.d.ts +2 -47
  321. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  322. package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  323. package/components/FxInput/FxInput/FxInput.js +1 -5
  324. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  325. package/components/FxInput/FxInput.d.ts +2 -5
  326. package/components/Gapped/Gapped/Gapped.js +1 -15
  327. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  328. package/components/Gapped/Gapped.d.ts +2 -15
  329. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  330. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  331. package/components/Group/Group/Group.js +64 -28
  332. package/components/Group/Group/Group.js.map +1 -1
  333. package/components/Group/Group.d.ts +5 -4
  334. package/components/Group/Group.styles/Group.styles.js +9 -6
  335. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  336. package/components/Group/Group.styles.d.ts +1 -0
  337. package/components/Hint/Hint/Hint.js.map +1 -1
  338. package/components/Hint/Hint.d.ts +2 -0
  339. package/components/Input/Input/Input.js.map +1 -1
  340. package/components/Input/Input.d.ts +2 -0
  341. package/components/Kebab/Kebab/Kebab.js +2 -20
  342. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  343. package/components/Kebab/Kebab.d.ts +2 -1
  344. package/components/Link/Link/Link.js.map +1 -1
  345. package/components/Link/Link.d.ts +2 -0
  346. package/components/Loader/Loader/Loader.js +0 -33
  347. package/components/Loader/Loader/Loader.js.map +1 -1
  348. package/components/Loader/Loader.d.ts +6 -36
  349. package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
  350. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  351. package/components/MaskedInput/MaskedInput.d.ts +1 -0
  352. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  353. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  354. package/components/MenuItem/MenuItem.d.ts +2 -12
  355. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  356. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  357. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  358. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  359. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  360. package/components/Modal/Modal.styles/Modal.styles.js +31 -28
  361. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  362. package/components/Modal/Modal.styles.d.ts +1 -0
  363. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  364. package/components/Modal/ModalBody.d.ts +2 -0
  365. package/components/Modal/ModalHeader/ModalHeader.js +3 -1
  366. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  367. package/components/Modal/ModalHeader.d.ts +5 -0
  368. package/components/Paging/DotsIcon/DotsIcon.js +14 -0
  369. package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
  370. package/components/Paging/DotsIcon/package.json +6 -0
  371. package/components/Paging/DotsIcon.d.ts +3 -0
  372. package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
  373. package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
  374. package/components/Paging/ForwardIcon.d.ts +3 -0
  375. package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
  376. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  377. package/components/Paging/NavigationHelper.d.ts +3 -2
  378. package/components/Paging/Paging/Paging.js +96 -47
  379. package/components/Paging/Paging/Paging.js.map +1 -1
  380. package/components/Paging/Paging.d.ts +13 -2
  381. package/components/Paging/Paging.styles/Paging.styles.js +77 -16
  382. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  383. package/components/Paging/Paging.styles.d.ts +24 -1
  384. package/components/Paging/PagingHelper/PagingHelper.js +16 -8
  385. package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
  386. package/components/Paging/PagingHelper.d.ts +1 -1
  387. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  388. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  389. package/components/PasswordInput/PasswordInput.d.ts +2 -7
  390. package/components/Radio/Radio/Radio.js.map +1 -1
  391. package/components/Radio/Radio.d.ts +2 -0
  392. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  393. package/components/RadioGroup/RadioGroup.d.ts +2 -0
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  397. package/components/Select/Select/Select.js.map +1 -1
  398. package/components/Select/Select.d.ts +2 -0
  399. package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
  400. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  401. package/components/SidePage/SidePage.styles.d.ts +3 -1
  402. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  403. package/components/SidePage/SidePageBody.d.ts +2 -0
  404. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  405. package/components/SidePage/SidePageContainer.d.ts +2 -0
  406. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  407. package/components/SidePage/SidePageFooter.d.ts +2 -0
  408. package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
  409. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  410. package/components/SidePage/SidePageHeader.d.ts +12 -2
  411. package/components/Spinner/Spinner/Spinner.js +1 -18
  412. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  413. package/components/Spinner/Spinner.d.ts +2 -18
  414. package/components/Sticky/Sticky/Sticky.js +1 -13
  415. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  416. package/components/Sticky/Sticky.d.ts +2 -13
  417. package/components/Switcher/Switcher/Switcher.js +19 -16
  418. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  419. package/components/Switcher/Switcher.d.ts +6 -21
  420. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  421. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  422. package/components/Switcher/Switcher.styles.d.ts +1 -0
  423. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  424. package/components/Tabs/Indicator.d.ts +2 -0
  425. package/components/Tabs/Tab/Tab.js.map +1 -1
  426. package/components/Tabs/Tab.d.ts +2 -0
  427. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  428. package/components/Tabs/Tabs.d.ts +2 -0
  429. package/components/Textarea/Textarea/Textarea.js +1 -44
  430. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  431. package/components/Textarea/Textarea.d.ts +2 -44
  432. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  433. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  434. package/components/Toast/Toast/Toast.js.map +1 -1
  435. package/components/Toast/Toast.d.ts +2 -0
  436. package/components/Toast/ToastView/ToastView.js +3 -17
  437. package/components/Toast/ToastView/ToastView.js.map +1 -1
  438. package/components/Toast/ToastView.d.ts +2 -14
  439. package/components/Toggle/Toggle/Toggle.js +1 -10
  440. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  441. package/components/Toggle/Toggle.d.ts +2 -10
  442. package/components/Token/Token/Token.js.map +1 -1
  443. package/components/Token/Token.d.ts +2 -0
  444. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  445. package/components/TokenInput/TokenInput.d.ts +2 -0
  446. package/components/Tooltip/Tooltip/Tooltip.js +67 -20
  447. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  448. package/components/Tooltip/Tooltip.d.ts +14 -9
  449. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
  450. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
  451. package/components/Tooltip/Tooltip.styles.d.ts +7 -1
  452. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  453. package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  454. package/index.d.ts +1 -0
  455. package/index.js +1 -0
  456. package/index.js.map +1 -1
  457. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  458. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  459. package/internal/ComponentTable/ComponentTable.js +0 -2
  460. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  461. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  462. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  463. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  464. package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  465. package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
  466. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  467. package/internal/DateSelect/DateSelect.d.ts +0 -10
  468. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  469. package/internal/FocusTrap/FocusTrap.d.ts +2 -0
  470. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  471. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  472. package/internal/InputLikeText/InputLikeText.d.ts +2 -0
  473. package/internal/Menu/Menu/Menu.js.map +1 -1
  474. package/internal/Menu/Menu.d.ts +2 -0
  475. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  476. package/internal/MobilePopup/MobilePopup.d.ts +2 -0
  477. package/internal/Popup/Popup/Popup.js +14 -64
  478. package/internal/Popup/Popup/Popup.js.map +1 -1
  479. package/internal/Popup/Popup.d.ts +41 -59
  480. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  481. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  482. package/internal/Popup/PopupPin.d.ts +23 -33
  483. package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
  484. package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
  485. package/internal/Popup/PopupPinNew/package.json +6 -0
  486. package/internal/Popup/PopupPinNew.d.ts +31 -0
  487. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
  488. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
  489. package/internal/Popup/PopupPinNew.styles/package.json +6 -0
  490. package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  491. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  492. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  493. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  494. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  495. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  496. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  497. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  498. package/internal/RenderLayer/RenderLayer.d.ts +2 -3
  499. package/internal/ThemePlayground/Playground/Playground.js +4 -3
  500. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  501. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
  502. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  503. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
  504. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
  505. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  506. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  507. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  508. package/internal/ZIndex/ZIndex.d.ts +3 -3
  509. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
  510. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
  511. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
  512. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  513. package/internal/themes/BasicTheme/BasicTheme.js +170 -26
  514. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  515. package/internal/themes/BasicTheme.d.ts +112 -20
  516. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  517. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  518. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  519. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  520. package/internal/themes/DarkTheme5_3/package.json +6 -0
  521. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  522. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  523. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  524. package/internal/themes/LightTheme5_3/package.json +6 -0
  525. package/internal/themes/LightTheme5_3.d.ts +1 -0
  526. package/lib/delay.d.mts +1 -0
  527. package/lib/delay.mts +3 -0
  528. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  529. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  530. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  531. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  532. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  533. package/lib/forwardRefAndName.d.ts +1 -1
  534. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  535. package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  536. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  537. package/lib/theming/ThemeVersions.d.ts +1 -1
  538. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  539. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  540. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  541. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  542. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  543. package/lib/theming/themes/LightTheme.d.ts +1 -0
  544. package/lib/utils/utils.js +2 -0
  545. package/lib/utils/utils.js.map +1 -1
  546. package/lib/utils.d.ts +4 -0
  547. package/package.json +10 -13
  548. package/cjs/lib/SSRSafe.d.ts +0 -2
  549. package/cjs/lib/SSRSafe.js +0 -5
  550. package/cjs/lib/SSRSafe.js.map +0 -1
  551. package/lib/SSRSafe/SSRSafe.js +0 -4
  552. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  553. package/lib/SSRSafe/package.json +0 -6
  554. package/lib/SSRSafe.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["React","isEqual","globalObject","PopupIds","isKeyArrowHorizontal","isKeyArrowLeft","isKeyArrowRight","isKeyArrowUp","isKeyArrowVertical","isKeyBackspace","isKeyComma","isKeyDelete","isKeyEnter","isKeyEscape","isShortcutSelectAll","LayoutEvents","Token","MenuItem","emptyHandler","getRandomID","ThemeContext","locale","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","getUid","TokenView","TokenInputLocaleHelper","styles","tokenInputReducer","TokenInputMenu","TextWidthHelper","TEMP_FAKE_FLAG","TokenInputType","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","isActive","onClick","onDoubleClick","onRemove","disabled","size","createElement","key","TokenInput","_dec","_class","_TokenInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","rootId","input","tokensInputMenu","textHelper","wrapper","memoizedTokens","Map","hasValueInItems","items","value","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","handleInputFocus","event","type","getProps","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","valueToString","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","handleCopy","isCursorVisible","_this$getProps","selectedItems","delimiters","tokens","map","token","indexOf","sort","index","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps2","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_this$getProps3","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","props","getItems","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","handleInputKeyDown","handleWrapperKeyDown","e","_this$input3","_this$input4","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","enter","up","down","blur","moveFocusToLastToken","selectionStart","getAvailableTokenIndex","itemNew","focusInput","_this$input5","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps4","indexOfActiveToken","itemsNew","_this$input6","handleWrapperArrows","handleTokenEdit","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input7","handleValueChange","_this$getProps5","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps6","_this$state2","editedItem","splice","onUnexpectedInput","returnedValue","handleChangeInputValue","trimLeft","endsWith","trimRight","onInputValueChange","Combined","renderTokensStart","slice","renderToken","renderTokensEnd","_this$props$selectedI","_this$props","_this$props$renderTok","handleIconClick","handleTokenDoubleClick","renderedToken","set","renderAddButton","showAddItemHint","_this$locale","addButtonComment","addButtonTitle","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps7","step","availableIndex","_inheritsLoose","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","defaultProps","propsWithOldDelimiters","_extends","componentDidMount","_globalObject$documen","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_globalObject$documen2","removeEventListener","_this$input8","_this$input9","render","_this2","Consumer","theme","renderMain","getLabelSizeClassName","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_cx","_cx2","_cx3","Error","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps8","width","onMouseEnter","onMouseLeave","menuWidth","menuAlign","renderItem","_this$state3","showMenu","inputInlineStyles","height","caretColor","labelClassName","hovering","labelDisabled","labelFocused","inputClassName","inputDisabled","placeholder","inputNode","className","inputPlaceholderWrapper","hideCloseButton","id","textareaId","ref","style","spellCheck","onChange","onKeyDown","onPaste","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","text","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass","_this$props$id","isInputValueChanged","_this$state4","_this$getProps9","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Menu } from '../../internal/Menu';\nimport type { TokenProps, TokenSize } from '../Token';\nimport { Token } from '../Token';\nimport type { MenuItemState } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport type { AnyObject } from '../../lib/utils';\nimport { emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { styles } from './TokenInput.styles';\nimport type { TokenInputAction } from './TokenInputReducer';\nimport { tokenInputReducer } from './TokenInputReducer';\nimport { TokenInputMenu } from './TokenInputMenu';\nimport { TextWidthHelper } from './TextWidthHelper';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Задает выбранные токены, которые будут отображаться в поле ввода. */\n selectedItems?: T[];\n\n /** Задает функцию, которая вызывается при добавлении нового токена. */\n onValueChange?: (items: T[]) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onfocus`.\n * @ignore */\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: TokenSize;\n\n /** Задает тип инпута.\n * Возможные значения:\n * `TokenInputType.WithReference` (можно выбирать токены только из предложенных, нельзя добавить новые).\n * `TokenInputType.WithoutReference` (можно добавлять токены, но нельзя выбирать).\n * `TokenInputType.Combined` (можно и выбирать, и добавлять). */\n type?: TokenInputType;\n\n /** Задает ширину выпадающего меню. Может быть 'auto', в пикселях, процентах (от ширины инпута) и других конкретных единицах.\n * Если menuAlign = 'cursor', то ширина выпадающего меню всегда будет равна 'auto' (по ширине текста). */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задает функцию поиска элементов, должна возвращать Promise с массивом элементов. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В таком случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<T[]>;\n\n /** Скрывает меню при пустом вводе. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Задает функцию, которая отображает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Задает функцию, которая отображает выбранное значение. */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию, которая возвращает строковое представление токена.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Задает функцию, которая отображает заданное содержимое при пустом результате поиска. Не работает, если рендерится `AddButton`. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразует значение в элемент списка. */\n valueToItem?: (item: string) => T;\n\n /** Определяет уникальный ключ по элементу. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает символы, которые разделяют введённый текст на токены. */\n delimiters?: string[];\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает ширину токен-инпута. */\n width?: string | number;\n\n /** Задает максимальную высоту выпадающего меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая отображает токен и предоставляет возможность кастомизации внешнего вида и поведения токена. */\n renderToken?: (item: T, props: Partial<TokenProps>) => ReactNode;\n\n /** Задает функцию, вызывающуюся при изменении текста в поле ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Задает функцию для обработки ввода строки в инпут и последующую потерю фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет\n * совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение, неравное `undefined`, с которым будет вызван `onValueChange`.\n * При возвращаемом значении `null` будет выполнена очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n | 'size'\n >\n>;\n\nconst defaultToKey = <T extends AnyObject>(item: T): string => item.toString();\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/**\n * Поле с токенами `TokenInput` — это поле ввода со списком подсказок.\n *\n * Поле с токенами используют для выбора нескольких значений из справочника и для добавления своих значений.\n */\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n toKey: defaultToKey,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n size: 'small',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private theme!: Theme;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n throw Error('Missed getItems for type ' + this.type);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (inputValue !== '' || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = cx(styles.label(theme), this.getLabelSizeClassName(), {\n [styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [styles.labelDisabled(theme)]: !!disabled,\n [styles.labelFocused(theme)]: !!inFocus,\n [styles.error(theme)]: !!error,\n [styles.warning(theme)]: !!warning,\n });\n const inputClassName = cx(styles.input(theme), this.getInputSizeClassName(), {\n [styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.getProps().size}\n className={cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n htmlFor={this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n <TextWidthHelper\n ref={this.textHelperRef}\n text={inputValue}\n theme={this.theme}\n size={this.getProps().size}\n />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.getProps().size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.props.size}>\n <span className={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private hasValueInItems = (items: T[], value: T) => {\n if (typeof value === 'string') {\n return items.includes(value);\n }\n // todo: как то не очень\n return items.some((item) => isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems;\n const value = this.getProps().valueToItem(this.state.inputValue);\n\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.state.inputValue !== '') {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (state.inputValue !== '' || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => (this.input = node);\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => (this.tokensInputMenu = node);\n private textHelperRef = (node: TextWidthHelper) => (this.textHelper = node);\n private wrapperRef = (node: HTMLLabelElement) => (this.wrapper = node);\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus();\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = () => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.state.inputValue !== '' || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) => !isSelectedItem(item) || isEditingItem(item));\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.state.inputValue !== '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n }\n const selectItemIndex = autocompleteItemsUnique.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n switch (true) {\n case isKeyEnter(e):\n if (this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = () => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems, valueToString } = this.getProps();\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput();\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput();\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.state.inputValue !== '') {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const selectedItems = this.getProps().selectedItems;\n const { editingTokenIndex, inputValue, reservedInputValue } = this.state;\n const editedItem = this.getProps().valueToItem(inputValue);\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(inputValue !== '' ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n if (onUnexpectedInput) {\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput(inputValue);\n\n if (returnedValue === undefined) {\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n this.selectItem(returnedValue);\n }\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.state.inputValue !== '' && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (\n this.menuRef &&\n this.state.autocompleteItems &&\n this.state.autocompleteItems.length > 0 &&\n this.type !== TokenInputType.Combined\n ) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = () => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map(this.renderToken);\n };\n\n private renderTokensEnd = () => {\n if (this.state.editingTokenIndex >= 0) {\n return this.getProps()\n .selectedItems.slice(this.state.editingTokenIndex + 1)\n .map(this.renderToken);\n }\n };\n\n private renderToken = (item: T) => {\n const { renderToken = defaultRenderToken, disabled, size } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(item as T & AnyObject, {\n size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n });\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex]) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isEqual","globalObject","PopupIds","isKeyArrowHorizontal","isKeyArrowLeft","isKeyArrowRight","isKeyArrowUp","isKeyArrowVertical","isKeyBackspace","isKeyComma","isKeyDelete","isKeyEnter","isKeyEscape","isShortcutSelectAll","LayoutEvents","Token","MenuItem","emptyHandler","getRandomID","ThemeContext","locale","CommonWrapper","cx","getRootNode","rootNode","createPropsGetter","getUid","TokenView","TokenInputLocaleHelper","styles","tokenInputReducer","TokenInputMenu","TextWidthHelper","TEMP_FAKE_FLAG","TokenInputType","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","isActive","onClick","onDoubleClick","onRemove","disabled","size","createElement","key","TokenInput","_dec","_class","_TokenInput","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","rootId","input","tokensInputMenu","textHelper","wrapper","memoizedTokens","Map","hasValueInItems","items","value","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","handleInputFocus","event","type","getProps","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","valueToString","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","handleCopy","isCursorVisible","_this$getProps","selectedItems","delimiters","tokens","map","token","indexOf","sort","index","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps2","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_this$getProps3","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","props","getItems","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","handleInputKeyDown","handleWrapperKeyDown","e","_this$input3","_this$input4","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","enter","up","down","blur","moveFocusToLastToken","selectionStart","getAvailableTokenIndex","itemNew","focusInput","_this$input5","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps4","indexOfActiveToken","itemsNew","_this$input6","handleWrapperArrows","handleTokenEdit","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input7","handleValueChange","_this$getProps5","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps6","_this$state2","editedItem","splice","onUnexpectedInput","returnedValue","handleChangeInputValue","trimLeft","endsWith","trimRight","onInputValueChange","Combined","renderTokensStart","slice","renderToken","renderTokensEnd","_this$props$selectedI","_this$props","_this$props$renderTok","handleIconClick","handleTokenDoubleClick","renderedToken","set","renderAddButton","showAddItemHint","_this$locale","addButtonComment","addButtonTitle","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps7","step","availableIndex","_inheritsLoose","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","defaultProps","propsWithOldDelimiters","_extends","componentDidMount","_globalObject$documen","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_globalObject$documen2","removeEventListener","_this$input8","_this$input9","render","_this2","Consumer","theme","renderMain","getLabelSizeClassName","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_cx","_cx2","_cx3","Error","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps8","width","onMouseEnter","onMouseLeave","menuWidth","menuAlign","renderItem","_this$state3","showMenu","inputInlineStyles","height","caretColor","labelClassName","hovering","labelDisabled","labelFocused","inputClassName","inputDisabled","placeholder","inputNode","className","inputPlaceholderWrapper","hideCloseButton","id","textareaId","ref","style","spellCheck","onChange","onKeyDown","onPaste","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","text","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass","_this$props$id","isInputValueChanged","_this$state4","_this$getProps9","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Menu } from '../../internal/Menu';\nimport type { TokenProps, TokenSize } from '../Token';\nimport { Token } from '../Token';\nimport type { MenuItemState } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport type { AnyObject } from '../../lib/utils';\nimport { emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { styles } from './TokenInput.styles';\nimport type { TokenInputAction } from './TokenInputReducer';\nimport { tokenInputReducer } from './TokenInputReducer';\nimport { TokenInputMenu } from './TokenInputMenu';\nimport { TextWidthHelper } from './TextWidthHelper';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Задает выбранные токены, которые будут отображаться в поле ввода. */\n selectedItems?: T[];\n\n /** Задает функцию, которая вызывается при добавлении нового токена. */\n onValueChange?: (items: T[]) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onfocus`.\n * @ignore */\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: TokenSize;\n\n /** Задает тип инпута.\n * Возможные значения:\n * `TokenInputType.WithReference` (можно выбирать токены только из предложенных, нельзя добавить новые).\n * `TokenInputType.WithoutReference` (можно добавлять токены, но нельзя выбирать).\n * `TokenInputType.Combined` (можно и выбирать, и добавлять). */\n type?: TokenInputType;\n\n /** Задает ширину выпадающего меню. Может быть 'auto', в пикселях, процентах (от ширины инпута) и других конкретных единицах.\n * Если menuAlign = 'cursor', то ширина выпадающего меню всегда будет равна 'auto' (по ширине текста). */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задает функцию поиска элементов, должна возвращать Promise с массивом элементов. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В таком случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<T[]>;\n\n /** Скрывает меню при пустом вводе. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Задает функцию, которая отображает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Задает функцию, которая отображает выбранное значение. */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию, которая возвращает строковое представление токена.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Задает функцию, которая отображает заданное содержимое при пустом результате поиска. Не работает, если рендерится `AddButton`. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразует значение в элемент списка. */\n valueToItem?: (item: string) => T;\n\n /** Определяет уникальный ключ по элементу. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает символы, которые разделяют введённый текст на токены. */\n delimiters?: string[];\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает ширину токен-инпута. */\n width?: string | number;\n\n /** Задает максимальную высоту выпадающего меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая отображает токен и предоставляет возможность кастомизации внешнего вида и поведения токена. */\n renderToken?: (item: T, props: Partial<TokenProps>) => ReactNode;\n\n /** Задает функцию, вызывающуюся при изменении текста в поле ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Задает функцию для обработки ввода строки в инпут и последующую потерю фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет\n * совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение, неравное `undefined`, с которым будет вызван `onValueChange`.\n * При возвращаемом значении `null` будет выполнена очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n | 'size'\n >\n>;\n\nconst defaultToKey = <T extends AnyObject>(item: T): string => item.toString();\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/**\n * Поле с токенами `TokenInput` — это поле ввода со списком подсказок.\n *\n * Поле с токенами используют для выбора нескольких значений из справочника и для добавления своих значений.\n */\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n toKey: defaultToKey,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n size: 'small',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private theme!: Theme;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n throw Error('Missed getItems for type ' + this.type);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (inputValue !== '' || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = cx(styles.label(theme), this.getLabelSizeClassName(), {\n [styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [styles.labelDisabled(theme)]: !!disabled,\n [styles.labelFocused(theme)]: !!inFocus,\n [styles.error(theme)]: !!error,\n [styles.warning(theme)]: !!warning,\n });\n const inputClassName = cx(styles.input(theme), this.getInputSizeClassName(), {\n [styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.getProps().size}\n className={cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n htmlFor={this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n <TextWidthHelper\n ref={this.textHelperRef}\n text={inputValue}\n theme={this.theme}\n size={this.getProps().size}\n />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.getProps().size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.props.size}>\n <span className={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private hasValueInItems = (items: T[], value: T) => {\n if (typeof value === 'string') {\n return items.includes(value);\n }\n // todo: как то не очень\n return items.some((item) => isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems;\n const value = this.getProps().valueToItem(this.state.inputValue);\n\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.state.inputValue !== '') {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (state.inputValue !== '' || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => (this.input = node);\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => (this.tokensInputMenu = node);\n private textHelperRef = (node: TextWidthHelper) => (this.textHelper = node);\n private wrapperRef = (node: HTMLLabelElement) => (this.wrapper = node);\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus();\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = () => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.state.inputValue !== '' || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) => !isSelectedItem(item) || isEditingItem(item));\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.state.inputValue !== '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n }\n const selectItemIndex = autocompleteItemsUnique.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n switch (true) {\n case isKeyEnter(e):\n if (this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = () => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems, valueToString } = this.getProps();\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput();\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput();\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.state.inputValue !== '') {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const selectedItems = this.getProps().selectedItems;\n const { editingTokenIndex, inputValue, reservedInputValue } = this.state;\n const editedItem = this.getProps().valueToItem(inputValue);\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(inputValue !== '' ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n if (onUnexpectedInput) {\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput(inputValue);\n\n if (returnedValue === undefined) {\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n this.selectItem(returnedValue);\n }\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.state.inputValue !== '' && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (\n this.menuRef &&\n this.state.autocompleteItems &&\n this.state.autocompleteItems.length > 0 &&\n this.type !== TokenInputType.Combined\n ) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = () => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map(this.renderToken);\n };\n\n private renderTokensEnd = () => {\n if (this.state.editingTokenIndex >= 0) {\n return this.getProps()\n .selectedItems.slice(this.state.editingTokenIndex + 1)\n .map(this.renderToken);\n }\n };\n\n private renderToken = (item: T) => {\n const { renderToken = defaultRenderToken, disabled, size } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(item as T & AnyObject, {\n size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n });\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex]) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import type { TokenProps, TokenSize } from '../Token';
4
4
  import type { MenuItemState } from '../MenuItem';
5
5
  import type { CommonProps } from '../../internal/CommonWrapper';
6
+ import type { TGetRootNode } from '../../lib/rootNode';
6
7
  export declare enum TokenInputType {
7
8
  WithReference = 0,
8
9
  WithoutReference = 1,
@@ -149,6 +150,7 @@ export declare class TokenInput<T = string> extends React.PureComponent<TokenInp
149
150
  private tokensInputMenu;
150
151
  private textHelper;
151
152
  private wrapper;
153
+ getRootNode: TGetRootNode;
152
154
  private setRootNode;
153
155
  private memoizedTokens;
154
156
  componentDidMount(): void;
@@ -17,6 +17,7 @@ import { createPropsGetter } from "../../../lib/createPropsGetter";
17
17
  import { CloseButtonIcon } from "../../../internal/CloseButtonIcon/CloseButtonIcon";
18
18
  import { isInstanceOf } from "../../../lib/isInstanceOf";
19
19
  import { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext";
20
+ import { cx } from "../../../lib/theming/Emotion";
20
21
  import { styles } from "../Tooltip.styles";
21
22
  var DEFAULT_DELAY = 100;
22
23
  export var TooltipDataTids = {
@@ -27,12 +28,10 @@ export var TooltipDataTids = {
27
28
  var OldPositions = ['right bottom', 'right middle', 'right top', 'top right', 'top center', 'top left', 'left top', 'left middle', 'left bottom', 'bottom left', 'bottom center', 'bottom right'];
28
29
 
29
30
  /**
30
- * `Tooltip` — это подсказка, которую пользователь открывает сам, кликом по элементу.
31
+ * `Tooltip` — это подсказка, которая объясняет состояние контрола или даёт контекстную справку.
31
32
  *
32
- * `Tooltip` используется для коротких поясняющих текстов, если необходимо дать разъяснение к деталям интерфейса, упомянутой информации или помочь с заполнением полей.
33
- * Если эти подробности не нужны постоянно, но могут помочь пользователю в момент когда он испытывает трудности.
34
- *
35
- * Для подсказки, всплывающей по наведению используйте Hint.
33
+ * Открывается по клику, фокусом на элемент или по наведению. В отличие от `Hint`, `Tooltip` может содержать
34
+ * изображения, кнопки, ссылки и прочие интерактивные элементы.
36
35
  */
37
36
  export var Tooltip = rootNode(_class = (_Tooltip = /*#__PURE__*/function (_React$PureComponent) {
38
37
  function Tooltip() {
@@ -57,7 +56,7 @@ export var Tooltip = rootNode(_class = (_Tooltip = /*#__PURE__*/function (_React
57
56
  return /*#__PURE__*/(
58
57
  React.createElement("div", {
59
58
  ref: _this.refContent,
60
- className: styles.tooltipContent(_this.theme),
59
+ className: cx(styles.tooltipContent(_this.theme), _this.sizeVariables.contentStyle),
61
60
  "data-tid": TooltipDataTids.content
62
61
  }, content, _this.renderCloseButton())
63
62
  );
@@ -146,16 +145,68 @@ export var Tooltip = rootNode(_class = (_Tooltip = /*#__PURE__*/function (_React
146
145
  }
147
146
  _this.close();
148
147
  };
148
+ _this.getSizeVariables = function () {
149
+ switch (_this.props.size) {
150
+ case 'small':
151
+ return {
152
+ closeButtonStyle: styles.closeButtonSmall(_this.theme),
153
+ contentStyle: styles.tooltipContentSmall(_this.theme),
154
+ borderRadius: _this.theme.tooltipBorderRadiusSmall,
155
+ pinSize: _this.theme.tooltipPinSizeSmall,
156
+ pinOffsetX: _this.theme.tooltipPinOffsetXSmall,
157
+ pinOffsetY: _this.theme.tooltipPinOffsetYSmall,
158
+ margin: _this.theme.tooltipMarginSmall
159
+ };
160
+ case 'medium':
161
+ return {
162
+ closeButtonStyle: styles.closeButtonMedium(_this.theme),
163
+ contentStyle: styles.tooltipContentMedium(_this.theme),
164
+ borderRadius: _this.theme.tooltipBorderRadiusMedium,
165
+ pinSize: _this.theme.tooltipPinSizeMedium,
166
+ pinOffsetX: _this.theme.tooltipPinOffsetXMedium,
167
+ pinOffsetY: _this.theme.tooltipPinOffsetYMedium,
168
+ margin: _this.theme.tooltipMarginMedium
169
+ };
170
+ case 'large':
171
+ return {
172
+ closeButtonStyle: styles.closeButtonLarge(_this.theme),
173
+ contentStyle: styles.tooltipContentLarge(_this.theme),
174
+ borderRadius: _this.theme.tooltipBorderRadiusLarge,
175
+ pinSize: _this.theme.tooltipPinSizeLarge,
176
+ pinOffsetX: _this.theme.tooltipPinOffsetXLarge,
177
+ pinOffsetY: _this.theme.tooltipPinOffsetYLarge,
178
+ margin: _this.theme.tooltipMarginLarge
179
+ };
180
+ default:
181
+ console.error("Can't get size variables: invalid value in size prop '" + _this.props.size + "'. Returning default");
182
+ return {
183
+ closeButtonStyle: styles.closeButtonSmall(_this.theme),
184
+ contentStyle: styles.tooltipContentSmall(_this.theme),
185
+ borderRadius: _this.theme.tooltipBorderRadiusSmall,
186
+ pinSize: _this.theme.tooltipPinSizeSmall,
187
+ pinOffsetX: _this.theme.tooltipPinOffsetXSmall,
188
+ pinOffsetY: _this.theme.tooltipPinOffsetYSmall,
189
+ margin: _this.theme.tooltipMarginSmall
190
+ };
191
+ }
192
+ };
149
193
  return _this;
150
194
  }
151
195
  _inheritsLoose(Tooltip, _React$PureComponent);
152
196
  var _proto = Tooltip.prototype;
197
+ _proto.validateProps = function validateProps(props) {
198
+ warning(props.children || props.anchorElement, "[Tooltip]: you must provide either 'children' or 'anchorElement' prop for Tooltip to work properly");
199
+ };
153
200
  _proto.getAllowedPositions = function getAllowedPositions() {
154
201
  return this.props.allowedPositions ? this.props.allowedPositions : OldPositions;
155
202
  };
203
+ _proto.componentDidMount = function componentDidMount() {
204
+ this.validateProps(this.getProps());
205
+ };
156
206
  _proto.componentDidUpdate = function componentDidUpdate() {
157
207
  var _this$getProps = this.getProps(),
158
208
  trigger = _this$getProps.trigger;
209
+ this.validateProps(this.getProps());
159
210
  if (trigger === 'closed' && this.state.opened) {
160
211
  this.close();
161
212
  }
@@ -169,15 +220,16 @@ export var Tooltip = rootNode(_class = (_Tooltip = /*#__PURE__*/function (_React
169
220
  _this2.featureFlags = getFullReactUIFlagsContext(flags);
170
221
  return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
171
222
  _this2.theme = theme;
223
+ _this2.sizeVariables = _this2.getSizeVariables();
172
224
  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
173
225
  value: ThemeFactory.create({
174
- popupMargin: theme.tooltipMargin,
226
+ popupBackground: theme.tooltipBg,
175
227
  popupBorder: theme.tooltipBorder,
176
- popupBorderRadius: theme.tooltipBorderRadius,
177
- popupPinSize: theme.tooltipPinSize,
178
- popupPinOffsetX: theme.tooltipPinOffsetX,
179
- popupPinOffsetY: theme.tooltipPinOffsetY,
180
- popupBackground: theme.tooltipBg
228
+ popupBorderRadius: _this2.sizeVariables.borderRadius,
229
+ popupPinSize: _this2.sizeVariables.pinSize,
230
+ popupPinOffsetX: _this2.sizeVariables.pinOffsetX,
231
+ popupPinOffsetY: _this2.sizeVariables.pinOffsetY,
232
+ popupMargin: _this2.sizeVariables.margin
181
233
  }, theme)
182
234
  }, _this2.renderMain());
183
235
  });
@@ -195,7 +247,7 @@ export var Tooltip = rootNode(_class = (_Tooltip = /*#__PURE__*/function (_React
195
247
  colorHover: this.theme.tooltipCloseBtnHoverColor
196
248
  });
197
249
  return /*#__PURE__*/React.createElement("div", {
198
- className: styles.cross(this.theme),
250
+ className: cx(styles.closeButton(this.theme), this.sizeVariables.closeButtonStyle),
199
251
  onClick: this.handleCloseButtonClick,
200
252
  "data-tid": TooltipDataTids.crossIcon
201
253
  }, icon);
@@ -354,13 +406,8 @@ export var Tooltip = rootNode(_class = (_Tooltip = /*#__PURE__*/function (_React
354
406
  return true;
355
407
  };
356
408
  return Tooltip;
357
- }(React.PureComponent), _Tooltip.__KONTUR_REACT_UI__ = 'Tooltip', _Tooltip.displayName = 'Tooltip', _Tooltip.propTypes = {
358
- children: function children(props, propName, componentName) {
359
- var children = props[propName];
360
- warning(children || props.anchorElement, "[" + componentName + "]: you must provide either 'children' or 'anchorElement' prop for " + componentName + " to work properly");
361
- warning(!(Array.isArray(children) && props.useWrapper === false), "[" + componentName + "]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly");
362
- }
363
- }, _Tooltip.defaultProps = {
409
+ }(React.PureComponent), _Tooltip.__KONTUR_REACT_UI__ = 'Tooltip', _Tooltip.displayName = 'Tooltip', _Tooltip.defaultProps = {
410
+ size: 'small',
364
411
  trigger: 'hover',
365
412
  disableAnimations: isTestEnv,
366
413
  useWrapper: false,