@skbkontur/react-ui 4.21.2 → 4.21.3

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 (592) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  3. package/cjs/components/Autocomplete/Autocomplete.js +2 -1
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +1 -0
  6. package/cjs/components/Button/Button.js +2 -1
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Calendar/Calendar.d.ts +1 -0
  9. package/cjs/components/Calendar/Calendar.js +2 -1
  10. package/cjs/components/Calendar/Calendar.js.map +1 -1
  11. package/cjs/components/Calendar/DayCellView.js +8 -5
  12. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  13. package/cjs/components/Center/Center.d.ts +1 -0
  14. package/cjs/components/Center/Center.js +2 -1
  15. package/cjs/components/Center/Center.js.map +1 -1
  16. package/cjs/components/Checkbox/Checkbox.d.ts +1 -0
  17. package/cjs/components/Checkbox/Checkbox.js +2 -1
  18. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  19. package/cjs/components/ComboBox/ComboBox.d.ts +1 -0
  20. package/cjs/components/ComboBox/ComboBox.js +2 -1
  21. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  22. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  23. package/cjs/components/CurrencyInput/CurrencyInput.js +2 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  25. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  26. package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -0
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  28. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  29. package/cjs/components/DateInput/DateInput.js +2 -1
  30. package/cjs/components/DateInput/DateInput.js.map +1 -1
  31. package/cjs/components/DatePicker/DatePicker.d.ts +1 -0
  32. package/cjs/components/DatePicker/DatePicker.js +2 -1
  33. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  34. package/cjs/components/DatePicker/Picker.d.ts +1 -0
  35. package/cjs/components/DatePicker/Picker.js +2 -1
  36. package/cjs/components/DatePicker/Picker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  38. package/cjs/components/Dropdown/Dropdown.js +2 -1
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FileUploader/FileUploader.js +2 -1
  44. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  45. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  46. package/cjs/components/FxInput/FxInput.js +2 -1
  47. package/cjs/components/FxInput/FxInput.js.map +1 -1
  48. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  49. package/cjs/components/Gapped/Gapped.js +2 -1
  50. package/cjs/components/Gapped/Gapped.js.map +1 -1
  51. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  52. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -1
  53. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  54. package/cjs/components/Group/Group.d.ts +1 -0
  55. package/cjs/components/Group/Group.js +3 -1
  56. package/cjs/components/Group/Group.js.map +1 -1
  57. package/cjs/components/Hint/Hint.d.ts +1 -0
  58. package/cjs/components/Hint/Hint.js +2 -1
  59. package/cjs/components/Hint/Hint.js.map +1 -1
  60. package/cjs/components/Input/Input.d.ts +1 -0
  61. package/cjs/components/Input/Input.js +2 -1
  62. package/cjs/components/Input/Input.js.map +1 -1
  63. package/cjs/components/Kebab/Kebab.d.ts +1 -0
  64. package/cjs/components/Kebab/Kebab.js +2 -1
  65. package/cjs/components/Kebab/Kebab.js.map +1 -1
  66. package/cjs/components/Link/Link.d.ts +1 -0
  67. package/cjs/components/Link/Link.js +2 -1
  68. package/cjs/components/Link/Link.js.map +1 -1
  69. package/cjs/components/Loader/Loader.d.ts +1 -0
  70. package/cjs/components/Loader/Loader.js +2 -1
  71. package/cjs/components/Loader/Loader.js.map +1 -1
  72. package/cjs/components/MenuFooter/MenuFooter.d.ts +1 -0
  73. package/cjs/components/MenuFooter/MenuFooter.js +1 -0
  74. package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
  75. package/cjs/components/MenuHeader/MenuHeader.d.ts +1 -0
  76. package/cjs/components/MenuHeader/MenuHeader.js +1 -0
  77. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  78. package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
  79. package/cjs/components/MenuItem/MenuItem.js +29 -10
  80. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  81. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  82. package/cjs/components/MenuSeparator/MenuSeparator.js +2 -1
  83. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  84. package/cjs/components/MiniModal/MiniModal.js +0 -2
  85. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  86. package/cjs/components/Modal/Modal.d.ts +1 -0
  87. package/cjs/components/Modal/Modal.js +2 -1
  88. package/cjs/components/Modal/Modal.js.map +1 -1
  89. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  90. package/cjs/components/Modal/ModalBody.js +2 -1
  91. package/cjs/components/Modal/ModalBody.js.map +1 -1
  92. package/cjs/components/Modal/ModalClose.d.ts +4 -0
  93. package/cjs/components/Modal/ModalClose.js +4 -1
  94. package/cjs/components/Modal/ModalClose.js.map +1 -1
  95. package/cjs/components/Modal/ModalFooter.d.ts +1 -0
  96. package/cjs/components/Modal/ModalFooter.js +1 -0
  97. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  98. package/cjs/components/Modal/ModalHeader.d.ts +1 -0
  99. package/cjs/components/Modal/ModalHeader.js +1 -0
  100. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  101. package/cjs/components/Modal/ModalSeparator.d.ts +4 -0
  102. package/cjs/components/Modal/ModalSeparator.js +4 -1
  103. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  104. package/cjs/components/Paging/Paging.d.ts +1 -0
  105. package/cjs/components/Paging/Paging.js +10 -6
  106. package/cjs/components/Paging/Paging.js.map +1 -1
  107. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -0
  108. package/cjs/components/PasswordInput/PasswordInput.js +2 -1
  109. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  110. package/cjs/components/Radio/Radio.d.ts +1 -0
  111. package/cjs/components/Radio/Radio.js +2 -1
  112. package/cjs/components/Radio/Radio.js.map +1 -1
  113. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  114. package/cjs/components/RadioGroup/RadioGroup.js +2 -1
  115. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  116. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  117. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +4 -1
  118. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  119. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  120. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
  121. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  122. package/cjs/components/Select/Item.d.ts +1 -0
  123. package/cjs/components/Select/Item.js +2 -1
  124. package/cjs/components/Select/Item.js.map +1 -1
  125. package/cjs/components/Select/Select.d.ts +2 -0
  126. package/cjs/components/Select/Select.js +5 -2
  127. package/cjs/components/Select/Select.js.map +1 -1
  128. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  129. package/cjs/components/SidePage/SidePage.js +2 -1
  130. package/cjs/components/SidePage/SidePage.js.map +1 -1
  131. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  132. package/cjs/components/SidePage/SidePageBody.js +2 -1
  133. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  134. package/cjs/components/SidePage/SidePageCloseButton.d.ts +5 -1
  135. package/cjs/components/SidePage/SidePageCloseButton.js +4 -1
  136. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  137. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  138. package/cjs/components/SidePage/SidePageContainer.js +2 -1
  139. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  140. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -0
  141. package/cjs/components/SidePage/SidePageFooter.js +2 -1
  142. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  143. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  144. package/cjs/components/SidePage/SidePageHeader.js +2 -1
  145. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  146. package/cjs/components/SingleToast/SingleToast.d.ts +2 -0
  147. package/cjs/components/SingleToast/SingleToast.js +4 -1
  148. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  149. package/cjs/components/Spinner/Spinner.d.ts +1 -0
  150. package/cjs/components/Spinner/Spinner.js +2 -1
  151. package/cjs/components/Spinner/Spinner.js.map +1 -1
  152. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  153. package/cjs/components/Sticky/Sticky.js +2 -1
  154. package/cjs/components/Sticky/Sticky.js.map +1 -1
  155. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  156. package/cjs/components/Switcher/Switcher.js +2 -1
  157. package/cjs/components/Switcher/Switcher.js.map +1 -1
  158. package/cjs/components/Tabs/Tab.d.ts +1 -0
  159. package/cjs/components/Tabs/Tab.js +7 -1
  160. package/cjs/components/Tabs/Tab.js.map +1 -1
  161. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  162. package/cjs/components/Tabs/Tabs.js +2 -1
  163. package/cjs/components/Tabs/Tabs.js.map +1 -1
  164. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  165. package/cjs/components/Textarea/Textarea.js +2 -1
  166. package/cjs/components/Textarea/Textarea.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +1 -0
  168. package/cjs/components/Toast/Toast.js +3 -1
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  171. package/cjs/components/Toggle/Toggle.js +2 -1
  172. package/cjs/components/Toggle/Toggle.js.map +1 -1
  173. package/cjs/components/Token/Token.d.ts +1 -0
  174. package/cjs/components/Token/Token.js +8 -1
  175. package/cjs/components/Token/Token.js.map +1 -1
  176. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  177. package/cjs/components/TokenInput/TokenInput.js +2 -1
  178. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInputMenu.d.ts +1 -0
  180. package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
  181. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +1 -0
  183. package/cjs/components/Tooltip/Tooltip.js +2 -1
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  186. package/cjs/components/TooltipMenu/TooltipMenu.js +3 -1
  187. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  188. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +4 -1
  189. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  190. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  191. package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -56
  192. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  194. package/cjs/internal/CommonWrapper/extractCommonProps.js +34 -0
  195. package/cjs/internal/CommonWrapper/extractCommonProps.js.map +1 -0
  196. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  197. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js +12 -0
  198. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +1 -0
  199. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  200. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js +23 -0
  201. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +1 -0
  202. package/cjs/internal/CommonWrapper/index.d.ts +2 -0
  203. package/cjs/internal/CommonWrapper/index.js.map +1 -1
  204. package/cjs/internal/CommonWrapper/types.d.ts +25 -0
  205. package/cjs/internal/CommonWrapper/types.js +1 -0
  206. package/cjs/internal/CommonWrapper/types.js.map +1 -0
  207. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  208. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -1
  209. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  210. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  211. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
  212. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  213. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  214. package/cjs/internal/CustomComboBox/CustomComboBox.js +2 -1
  215. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  216. package/cjs/internal/DateSelect/DateSelect.d.ts +1 -0
  217. package/cjs/internal/DateSelect/DateSelect.js +2 -1
  218. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  219. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  220. package/cjs/internal/DropdownContainer/DropdownContainer.js +2 -1
  221. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  222. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  223. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +1 -0
  224. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  225. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  226. package/cjs/internal/FocusTrap/FocusTrap.js +3 -1
  227. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  228. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  229. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
  230. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  231. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
  232. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  233. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  234. package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
  235. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  236. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  237. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +2 -1
  238. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  239. package/cjs/internal/InternalMenu/InternalMenu.d.ts +1 -0
  240. package/cjs/internal/InternalMenu/InternalMenu.js +2 -1
  241. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  242. package/cjs/internal/Menu/Menu.d.ts +1 -0
  243. package/cjs/internal/Menu/Menu.js +2 -1
  244. package/cjs/internal/Menu/Menu.js.map +1 -1
  245. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  246. package/cjs/internal/MobilePopup/MobilePopup.js +2 -1
  247. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  248. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  249. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -1
  250. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  251. package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  252. package/cjs/internal/NativeDateInput/NativeDateInput.js +3 -1
  253. package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  254. package/cjs/internal/Popup/Popup.d.ts +1 -0
  255. package/cjs/internal/Popup/Popup.js +2 -1
  256. package/cjs/internal/Popup/Popup.js.map +1 -1
  257. package/cjs/internal/Popup/PopupPin.d.ts +1 -0
  258. package/cjs/internal/Popup/PopupPin.js +2 -1
  259. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  260. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
  261. package/cjs/internal/PopupMenu/PopupMenu.js +2 -1
  262. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  263. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -0
  264. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  265. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  266. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  267. package/cjs/internal/RenderContainer/RenderInnerContainer.js +7 -2
  268. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  269. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
  270. package/cjs/internal/RenderLayer/RenderLayer.js +2 -1
  271. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  272. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  273. package/cjs/internal/ResizeDetector/ResizeDetector.js +2 -1
  274. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  275. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -0
  276. package/cjs/internal/ZIndex/ZIndex.js +2 -1
  277. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  278. package/cjs/internal/icons/20px/Icon.d.ts +1 -0
  279. package/cjs/internal/icons/20px/Icon.js +2 -1
  280. package/cjs/internal/icons/20px/Icon.js.map +1 -1
  281. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  282. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  283. package/cjs/lib/locale/LocaleContext.js +2 -1
  284. package/cjs/lib/locale/LocaleContext.js.map +1 -1
  285. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  286. package/cjs/lib/rootNode/rootNodeDecorator.js +4 -1
  287. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  288. package/cjs/lib/theming/ThemeContext.js +2 -1
  289. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  290. package/cjs/lib/toKebabCase.d.ts +1 -0
  291. package/cjs/lib/toKebabCase.js +10 -0
  292. package/cjs/lib/toKebabCase.js.map +1 -0
  293. package/cjs/typings/global-react.d.ts +12 -0
  294. package/components/Autocomplete/Autocomplete/Autocomplete.js +1 -1
  295. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  296. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  297. package/components/Button/Button/Button.js +1 -1
  298. package/components/Button/Button/Button.js.map +1 -1
  299. package/components/Button/Button.d.ts +1 -0
  300. package/components/Calendar/Calendar/Calendar.js +1 -1
  301. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  302. package/components/Calendar/Calendar.d.ts +1 -0
  303. package/components/Calendar/DayCellView/DayCellView.js +9 -3
  304. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  305. package/components/Center/Center/Center.js +1 -1
  306. package/components/Center/Center/Center.js.map +1 -1
  307. package/components/Center/Center.d.ts +1 -0
  308. package/components/Checkbox/Checkbox/Checkbox.js +1 -1
  309. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  310. package/components/Checkbox/Checkbox.d.ts +1 -0
  311. package/components/ComboBox/ComboBox/ComboBox.js +1 -1
  312. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  313. package/components/ComboBox/ComboBox.d.ts +1 -0
  314. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +1 -1
  315. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  316. package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  317. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -0
  318. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  319. package/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  320. package/components/DateInput/DateInput/DateInput.js +1 -1
  321. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  322. package/components/DateInput/DateInput.d.ts +1 -0
  323. package/components/DatePicker/DatePicker/DatePicker.js +1 -1
  324. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  325. package/components/DatePicker/DatePicker.d.ts +1 -0
  326. package/components/DatePicker/Picker/Picker.js +1 -1
  327. package/components/DatePicker/Picker/Picker.js.map +1 -1
  328. package/components/DatePicker/Picker.d.ts +1 -0
  329. package/components/Dropdown/Dropdown/Dropdown.js +1 -1
  330. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  331. package/components/Dropdown/Dropdown.d.ts +1 -0
  332. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  333. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  334. package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  335. package/components/FileUploader/FileUploader/FileUploader.js +2 -1
  336. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  337. package/components/FxInput/FxInput/FxInput.js +1 -1
  338. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  339. package/components/FxInput/FxInput.d.ts +1 -0
  340. package/components/Gapped/Gapped/Gapped.js +1 -1
  341. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  342. package/components/Gapped/Gapped.d.ts +1 -0
  343. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +1 -1
  344. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  345. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  346. package/components/Group/Group/Group.js +1 -1
  347. package/components/Group/Group/Group.js.map +1 -1
  348. package/components/Group/Group.d.ts +1 -0
  349. package/components/Hint/Hint/Hint.js +1 -1
  350. package/components/Hint/Hint/Hint.js.map +1 -1
  351. package/components/Hint/Hint.d.ts +1 -0
  352. package/components/Input/Input/Input.js +1 -1
  353. package/components/Input/Input/Input.js.map +1 -1
  354. package/components/Input/Input.d.ts +1 -0
  355. package/components/Kebab/Kebab/Kebab.js +1 -1
  356. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  357. package/components/Kebab/Kebab.d.ts +1 -0
  358. package/components/Link/Link/Link.js +1 -1
  359. package/components/Link/Link/Link.js.map +1 -1
  360. package/components/Link/Link.d.ts +1 -0
  361. package/components/Loader/Loader/Loader.js +1 -1
  362. package/components/Loader/Loader/Loader.js.map +1 -1
  363. package/components/Loader/Loader.d.ts +1 -0
  364. package/components/MenuFooter/MenuFooter/MenuFooter.js +1 -0
  365. package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
  366. package/components/MenuFooter/MenuFooter.d.ts +1 -0
  367. package/components/MenuHeader/MenuHeader/MenuHeader.js +1 -0
  368. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  369. package/components/MenuHeader/MenuHeader.d.ts +1 -0
  370. package/components/MenuItem/MenuItem/MenuItem.js +29 -6
  371. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  372. package/components/MenuItem/MenuItem.d.ts +4 -0
  373. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +1 -0
  374. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  375. package/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  376. package/components/MiniModal/MiniModal/MiniModal.js +0 -1
  377. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
  378. package/components/Modal/Modal/Modal.js +1 -0
  379. package/components/Modal/Modal/Modal.js.map +1 -1
  380. package/components/Modal/Modal.d.ts +1 -0
  381. package/components/Modal/ModalBody/ModalBody.js +1 -1
  382. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  383. package/components/Modal/ModalBody.d.ts +1 -0
  384. package/components/Modal/ModalClose/ModalClose.js +3 -1
  385. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  386. package/components/Modal/ModalClose.d.ts +4 -0
  387. package/components/Modal/ModalFooter/ModalFooter.js +1 -0
  388. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  389. package/components/Modal/ModalFooter.d.ts +1 -0
  390. package/components/Modal/ModalHeader/ModalHeader.js +1 -0
  391. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  392. package/components/Modal/ModalHeader.d.ts +1 -0
  393. package/components/Modal/ModalSeparator/ModalSeparator.js +3 -1
  394. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  395. package/components/Modal/ModalSeparator.d.ts +4 -0
  396. package/components/Paging/Paging/Paging.js +11 -5
  397. package/components/Paging/Paging/Paging.js.map +1 -1
  398. package/components/Paging/Paging.d.ts +1 -0
  399. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
  400. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  401. package/components/PasswordInput/PasswordInput.d.ts +1 -0
  402. package/components/Radio/Radio/Radio.js +1 -1
  403. package/components/Radio/Radio/Radio.js.map +1 -1
  404. package/components/Radio/Radio.d.ts +1 -0
  405. package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
  406. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  407. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  408. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +3 -1
  409. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  410. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  411. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
  412. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  413. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  414. package/components/Select/Item/Item.js +2 -1
  415. package/components/Select/Item/Item.js.map +1 -1
  416. package/components/Select/Item.d.ts +1 -0
  417. package/components/Select/Select/Select.js +4 -2
  418. package/components/Select/Select/Select.js.map +1 -1
  419. package/components/Select/Select.d.ts +2 -0
  420. package/components/SidePage/SidePage/SidePage.js +1 -0
  421. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  422. package/components/SidePage/SidePage.d.ts +1 -0
  423. package/components/SidePage/SidePageBody/SidePageBody.js +1 -1
  424. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  425. package/components/SidePage/SidePageBody.d.ts +1 -0
  426. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +3 -1
  427. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  428. package/components/SidePage/SidePageCloseButton.d.ts +5 -1
  429. package/components/SidePage/SidePageContainer/SidePageContainer.js +1 -1
  430. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  431. package/components/SidePage/SidePageContainer.d.ts +1 -0
  432. package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
  433. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  434. package/components/SidePage/SidePageFooter.d.ts +1 -0
  435. package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
  436. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  437. package/components/SidePage/SidePageHeader.d.ts +1 -0
  438. package/components/SingleToast/SingleToast/SingleToast.js +2 -0
  439. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  440. package/components/SingleToast/SingleToast.d.ts +2 -0
  441. package/components/Spinner/Spinner/Spinner.js +1 -1
  442. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  443. package/components/Spinner/Spinner.d.ts +1 -0
  444. package/components/Sticky/Sticky/Sticky.js +1 -1
  445. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  446. package/components/Sticky/Sticky.d.ts +1 -0
  447. package/components/Switcher/Switcher/Switcher.js +1 -1
  448. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  449. package/components/Switcher/Switcher.d.ts +1 -0
  450. package/components/Tabs/Tab/Tab.js +6 -2
  451. package/components/Tabs/Tab/Tab.js.map +1 -1
  452. package/components/Tabs/Tab.d.ts +1 -0
  453. package/components/Tabs/Tabs/Tabs.js +1 -1
  454. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  455. package/components/Tabs/Tabs.d.ts +1 -0
  456. package/components/Textarea/Textarea/Textarea.js +1 -1
  457. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  458. package/components/Textarea/Textarea.d.ts +1 -0
  459. package/components/Toast/Toast/Toast.js +1 -1
  460. package/components/Toast/Toast/Toast.js.map +1 -1
  461. package/components/Toast/Toast.d.ts +1 -0
  462. package/components/Toggle/Toggle/Toggle.js +1 -1
  463. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  464. package/components/Toggle/Toggle.d.ts +1 -0
  465. package/components/Token/Token/Token.js +2 -2
  466. package/components/Token/Token/Token.js.map +1 -1
  467. package/components/Token/Token.d.ts +1 -0
  468. package/components/TokenInput/TokenInput/TokenInput.js +1 -1
  469. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  470. package/components/TokenInput/TokenInput.d.ts +1 -0
  471. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -1
  472. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  473. package/components/TokenInput/TokenInputMenu.d.ts +1 -0
  474. package/components/Tooltip/Tooltip/Tooltip.js +1 -1
  475. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  476. package/components/Tooltip/Tooltip.d.ts +1 -0
  477. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
  478. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  479. package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  480. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +3 -1
  481. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  482. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +8 -38
  483. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  484. package/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  485. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js +31 -0
  486. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +1 -0
  487. package/internal/CommonWrapper/extractCommonProps/package.json +6 -0
  488. package/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  489. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js +12 -0
  490. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
  491. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/package.json +6 -0
  492. package/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  493. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js +16 -0
  494. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
  495. package/internal/CommonWrapper/getVisualStateDataAttributes/package.json +6 -0
  496. package/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  497. package/internal/CommonWrapper/index/index.js +2 -1
  498. package/internal/CommonWrapper/index/index.js.map +1 -1
  499. package/internal/CommonWrapper/index.d.ts +2 -0
  500. package/internal/CommonWrapper/types/package.json +6 -0
  501. package/internal/CommonWrapper/types/types.js +1 -0
  502. package/internal/CommonWrapper/types/types.js.map +1 -0
  503. package/internal/CommonWrapper/types.d.ts +25 -0
  504. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +1 -1
  505. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  506. package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
  507. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +1 -1
  508. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  509. package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
  510. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -1
  511. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  512. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  513. package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
  514. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  515. package/internal/DateSelect/DateSelect.d.ts +1 -0
  516. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +1 -0
  517. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  518. package/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
  519. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +1 -0
  520. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  521. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
  522. package/internal/FocusTrap/FocusTrap/FocusTrap.js +1 -1
  523. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  524. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  525. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +1 -0
  526. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  527. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  528. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +1 -1
  529. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  530. package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
  531. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  532. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  533. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -1
  534. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
  535. package/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
  536. package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
  537. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  538. package/internal/InternalMenu/InternalMenu.d.ts +1 -0
  539. package/internal/Menu/Menu/Menu.js +1 -1
  540. package/internal/Menu/Menu/Menu.js.map +1 -1
  541. package/internal/Menu/Menu.d.ts +1 -0
  542. package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
  543. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  544. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  545. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -1
  546. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  547. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  548. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js +2 -1
  549. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js.map +1 -1
  550. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  551. package/internal/Popup/Popup/Popup.js +1 -1
  552. package/internal/Popup/Popup/Popup.js.map +1 -1
  553. package/internal/Popup/Popup.d.ts +1 -0
  554. package/internal/Popup/PopupPin/PopupPin.js +1 -0
  555. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  556. package/internal/Popup/PopupPin.d.ts +1 -0
  557. package/internal/PopupMenu/PopupMenu/PopupMenu.js +1 -1
  558. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  559. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  560. package/internal/RenderContainer/RenderContainer/RenderContainer.js +1 -0
  561. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  562. package/internal/RenderContainer/RenderContainer.d.ts +1 -0
  563. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +4 -1
  564. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  565. package/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  566. package/internal/RenderLayer/RenderLayer/RenderLayer.js +1 -1
  567. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  568. package/internal/RenderLayer/RenderLayer.d.ts +1 -0
  569. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +2 -1
  570. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  571. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  572. package/internal/ZIndex/ZIndex/ZIndex.js +1 -1
  573. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  574. package/internal/ZIndex/ZIndex.d.ts +1 -0
  575. package/internal/icons/20px/Icon/Icon.js +1 -0
  576. package/internal/icons/20px/Icon/Icon.js.map +1 -1
  577. package/internal/icons/20px/Icon.d.ts +1 -0
  578. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  579. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  580. package/lib/locale/LocaleContext/LocaleContext.js +2 -1
  581. package/lib/locale/LocaleContext/LocaleContext.js.map +1 -1
  582. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +1 -1
  583. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  584. package/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  585. package/lib/theming/ThemeContext/ThemeContext.js +2 -1
  586. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  587. package/lib/toKebabCase/package.json +6 -0
  588. package/lib/toKebabCase/toKebabCase.js +7 -0
  589. package/lib/toKebabCase/toKebabCase.js.map +1 -0
  590. package/lib/toKebabCase.d.ts +1 -0
  591. package/package.json +8 -8
  592. package/typings/global-react.d.ts +12 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["Tooltip.tsx"],"names":["DEFAULT_DELAY","TooltipDataTids","root","content","crossIcon","Positions","Tooltip","rootNode","getProps","defaultProps","state","opened","focused","contentElement","positions","clickedOutside","popupRef","React","createRef","renderContent","props","render","refContent","styles","tooltipContent","theme","renderCloseButton","getAnchorElement","current","anchorElement","node","open","setState","close","handleMouseEnter","event","isHoverAnchor","trigger","target","clearHoverTimeout","hoverTimeout","globalObject","setTimeout","delayBeforeShow","handleMouseLeave","relatedTarget","delay","handleClick","handleClickOutsideAnchor","isClickOutsideContent","onCloseRequest","handleFocus","handleBlur","handleCloseButtonClick","stopPropagation","onCloseClick","defaultPrevented","componentDidUpdate","prevProps","allowedPositions","pos","posChanged","allowedChanged","componentWillUnmount","ThemeFactory","create","popupPinOffset","tooltipPinOffset","popupMargin","tooltipMargin","popupBorder","tooltipBorder","popupBorderRadius","tooltipBorderRadius","popupPinSize","tooltipPinSize","popupPinOffsetX","tooltipPinOffsetX","popupPinOffsetY","tooltipPinOffsetY","popupBackground","tooltipBg","renderMain","hasCross","closeButton","undefined","triggersWithoutCloseButton","includes","icon","parseInt","tooltipCloseBtnSide","tooltipCloseBtnColor","tooltipCloseBtnHoverColor","cross","show","hide","getPopupAndLayerProps","popupProps","layerProps","active","children","popup","renderPopup","disableAnimations","setRootNode","getPositions","onOpen","onClose","index","indexOf","Error","join","slice","useWrapper","onClickOutside","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","clearTimeout","Element","PureComponent","__KONTUR_REACT_UI__","propTypes","propName","componentName","Array","isArray","DefaultPosition","isTestEnv"],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport isEqual from 'lodash.isequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isNullable } from '../../lib/utils';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { DefaultPosition, Popup, PopupProps, PopupPositionsType } from '../../internal/Popup';\nimport { RenderLayer, RenderLayerProps } from '../../internal/RenderLayer';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { styles } from './Tooltip.styles';\n\nexport type TooltipTrigger =\n /** Наведение на children и на тултип */\n | 'hover'\n /** Клик на children */\n | 'click'\n /** Фокус на children */\n | 'focus'\n /** Наведение на children и на тултип и фокус на children */\n | 'hover&focus'\n /** Просто открыт */\n | 'opened'\n /** Просто закрыт */\n | 'closed'\n /** Наведение ТОЛЬКО на children, а не на тултип */\n | 'hoverAnchor'\n /** Управление через публичные функции show и hide */\n | 'manual';\n\nexport interface TooltipProps extends CommonProps {\n /**\n * Относительно какого элемента позиционировать тултип\n */\n anchorElement?: HTMLElement;\n\n /**\n * Если не указан `anchorElement` то тултип будет позиционироваться\n * относительно дочерних элементов\n */\n children?: React.ReactNode;\n\n className?: string;\n\n /**\n * Показывать крестик для закрытия тултипа. По-умолчанию крестик\n * показывается если проп *trigger* не `hover` и не `focus`.\n */\n closeButton?: boolean;\n\n /**\n * Функция, которая возвращает содержимое тултипа.\n *\n * Если эта функция вернула `null`, то тултип не показывается.\n */\n render?: Nullable<() => React.ReactNode>;\n\n /**\n * Значение по умолчанию: `\"top left\"`.\n */\n pos?: PopupPositionsType;\n\n /**\n * Триггер открытия тултипа\n * ```ts\n * type TooltipTrigger =\n * | 'hover'\n * | 'click'\n * | 'focus'\n * | 'hover&focus'\n * | 'opened'\n * | 'closed'\n * | 'hoverAnchor'\n * | 'manual';\n * ```\n */\n trigger?: TooltipTrigger;\n\n /**\n * Хэндлер, вызываемый при клике по крестику\n */\n onCloseClick?: React.MouseEventHandler<HTMLElement>;\n\n /**\n * Хэндлер, вызываемый при клике по крестику или\n * снаружи тултипа\n */\n onCloseRequest?: (event?: Event | React.MouseEvent) => void;\n\n /**\n * Хэндлер, вызываемый при закрытии тултипа\n */\n onClose?: () => void;\n\n /**\n * Хэндлер, вызываемый при открытии тултипа\n */\n onOpen?: () => void;\n\n /**\n * Список позиций, которые тултип будет занимать.\n * Если положение тултипа в определенной позиции\n * будет выходить за край экрана, то будет выбрана\n * следующая позиция. Обязательно должен включать\n * позицию указанную в `pos`\n */\n allowedPositions?: PopupPositionsType[];\n\n /**\n * Флаг отключения анимации.\n * @default false\n */\n disableAnimations?: boolean;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n\n /**\n * Задержка перед появлением тултипа в миллисекундах\n * Значение по умолчанию: `100`\n */\n delayBeforeShow?: number;\n}\n\nconst DEFAULT_DELAY = 100;\n\nexport interface TooltipState {\n opened: boolean;\n focused: boolean;\n}\n\nexport const TooltipDataTids = {\n root: 'Tooltip__root',\n content: 'Tooltip__content',\n crossIcon: 'Tooltip__crossIcon',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'right bottom',\n 'right middle',\n 'right top',\n 'top right',\n 'top center',\n 'top left',\n 'left top',\n 'left middle',\n 'left bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n];\n\ntype DefaultProps = Required<\n Pick<TooltipProps, 'pos' | 'trigger' | 'allowedPositions' | 'disableAnimations' | 'useWrapper' | 'delayBeforeShow'>\n>;\n\n@rootNode\nexport class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Tooltip';\n\n public static propTypes = {\n children(props: TooltipProps, propName: keyof TooltipProps, componentName: string) {\n const children = props[propName];\n warning(\n children || props.anchorElement,\n `[${componentName}]: you must provide either 'children' or 'anchorElement' prop for ${componentName} to work properly`,\n );\n warning(\n !(Array.isArray(children) && props.useWrapper === false),\n `[${componentName}]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly`,\n );\n },\n };\n\n public static defaultProps: DefaultProps = {\n pos: DefaultPosition,\n trigger: 'hover',\n allowedPositions: Positions,\n disableAnimations: isTestEnv,\n useWrapper: false,\n delayBeforeShow: DEFAULT_DELAY,\n };\n\n private getProps = createPropsGetter(Tooltip.defaultProps);\n\n public static delay = DEFAULT_DELAY;\n private static triggersWithoutCloseButton: TooltipTrigger[] = ['hover', 'hoverAnchor', 'focus', 'hover&focus'];\n\n public state: TooltipState = { opened: false, focused: false };\n private theme!: Theme;\n private hoverTimeout: SafeTimer;\n private contentElement: Nullable<HTMLElement> = null;\n private positions: Nullable<PopupPositionsType[]> = null;\n private clickedOutside = true;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n public componentDidUpdate(prevProps: TooltipProps) {\n const { trigger, allowedPositions, pos } = this.getProps();\n if (trigger === 'closed' && this.state.opened) {\n this.close();\n }\n const posChanged = prevProps.pos !== pos;\n const allowedChanged = !isEqual(prevProps.allowedPositions, allowedPositions);\n\n if (posChanged || allowedChanged) {\n this.positions = null;\n }\n }\n\n public componentWillUnmount() {\n this.clearHoverTimeout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipPinOffset,\n popupMargin: theme.tooltipMargin,\n popupBorder: theme.tooltipBorder,\n popupBorderRadius: theme.tooltipBorderRadius,\n popupPinSize: theme.tooltipPinSize,\n popupPinOffsetX: theme.tooltipPinOffsetX,\n popupPinOffsetY: theme.tooltipPinOffsetY,\n popupBackground: theme.tooltipBg,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderContent = () => {\n const content = this.props.render ? this.props.render() : null;\n if (isNullable(content)) {\n return null;\n }\n\n return (\n <div ref={this.refContent} className={styles.tooltipContent(this.theme)} data-tid={TooltipDataTids.content}>\n {content}\n {this.renderCloseButton()}\n </div>\n );\n };\n\n public renderCloseButton() {\n const hasCross =\n this.props.closeButton === undefined\n ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger)\n : this.props.closeButton;\n\n if (!hasCross) {\n return null;\n }\n\n const icon = isTheme2022(this.theme) ? (\n <CloseButtonIcon\n tabbable={false}\n side={parseInt(this.theme.tooltipCloseBtnSide)}\n color={this.theme.tooltipCloseBtnColor}\n colorHover={this.theme.tooltipCloseBtnHoverColor}\n />\n ) : (\n <CrossIcon />\n );\n\n return (\n <div\n className={styles.cross(this.theme)}\n onClick={this.handleCloseButtonClick}\n data-tid={TooltipDataTids.crossIcon}\n >\n {icon}\n </div>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n /**\n * Программно открывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public show() {\n if (this.state.opened) {\n return;\n }\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'show' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.open();\n }\n\n /**\n * Программно закрывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public hide() {\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'hide' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.close();\n }\n\n private renderMain() {\n const props = this.props;\n const content = this.renderContent();\n const { popupProps, layerProps = { active: false } } = this.getPopupAndLayerProps();\n const anchorElement = props.children || props.anchorElement;\n const popup = this.renderPopup(anchorElement, popupProps, content);\n\n return (\n <RenderLayer {...layerProps} getAnchorElement={this.getAnchorElement}>\n {popup}\n </RenderLayer>\n );\n }\n\n private renderPopup(\n anchorElement: React.ReactNode | HTMLElement,\n popupProps: Partial<PopupProps>,\n content: JSX.Element | null,\n ) {\n const { disableAnimations, trigger } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n data-tid={TooltipDataTids.root}\n anchorElement={anchorElement}\n hasPin\n hasShadow\n maxWidth=\"none\"\n opened={this.state.opened}\n disableAnimations={disableAnimations}\n positions={this.getPositions()}\n ignoreHover={trigger === 'hoverAnchor'}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n tryPreserveFirstRenderedPosition\n ref={this.popupRef}\n withoutMobile\n {...popupProps}\n >\n {content}\n </Popup>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.contentElement = node;\n };\n\n private getPositions() {\n if (!this.positions) {\n const { allowedPositions, pos } = this.getProps();\n const index = allowedPositions.indexOf(pos);\n if (index === -1) {\n throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));\n }\n\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n\n return this.positions;\n }\n\n private getPopupAndLayerProps(): {\n layerProps?: Partial<RenderLayerProps>;\n popupProps: Partial<PopupProps>;\n } {\n const props = this.props;\n const useWrapper = !!props.children && this.getProps().useWrapper;\n const trigger = this.getProps().trigger;\n\n switch (trigger) {\n case 'opened':\n return {\n layerProps: {\n active: true,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n opened: true,\n useWrapper,\n },\n };\n\n case 'closed':\n return {\n popupProps: {\n opened: false,\n useWrapper,\n },\n };\n\n case 'hoverAnchor':\n case 'hover':\n return {\n popupProps: {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n case 'manual':\n return {\n popupProps: {\n useWrapper,\n },\n };\n case 'click':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onClick: this.handleClick,\n useWrapper,\n },\n };\n\n case 'focus':\n return {\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n useWrapper,\n },\n };\n\n case 'hover&focus':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n\n default:\n throw new Error('Unknown trigger specified: ' + trigger);\n }\n }\n\n private open = () => this.setState({ opened: true });\n\n private close = () => this.setState({ opened: false });\n\n private clearHoverTimeout() {\n if (this.hoverTimeout) {\n globalObject.clearTimeout(this.hoverTimeout);\n this.hoverTimeout = null;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n const isHoverAnchor = this.getProps().trigger === 'hoverAnchor';\n if (isHoverAnchor && event.target === this.contentElement) {\n return;\n }\n\n this.clearHoverTimeout();\n this.hoverTimeout = globalObject.setTimeout(this.open, this.getProps().delayBeforeShow);\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n const trigger = this.getProps().trigger;\n if (\n (trigger === 'hover&focus' && this.state.focused) ||\n (trigger === 'hover' && event.relatedTarget === this.contentElement)\n ) {\n return;\n }\n\n this.clearHoverTimeout();\n\n if (trigger === 'hoverAnchor') {\n this.close();\n } else {\n this.hoverTimeout = globalObject.setTimeout(this.close, Tooltip.delay);\n }\n };\n\n private handleClick = () => {\n this.open();\n };\n\n private handleClickOutsideAnchor = (event: Event) => {\n this.clickedOutside = this.isClickOutsideContent(event);\n if (this.clickedOutside) {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n this.close();\n }\n };\n\n private isClickOutsideContent(event: Event) {\n if (this.contentElement && isInstanceOf(event.target, globalObject.Element)) {\n return !containsTargetOrRenderContainer(event.target)(this.contentElement);\n }\n\n return true;\n }\n\n private handleFocus = () => {\n this.setState({ focused: true });\n this.open();\n };\n\n private handleBlur = () => {\n const trigger = this.getProps().trigger;\n if (trigger === 'hover&focus' && this.clickedOutside) {\n this.close();\n }\n\n if (trigger === 'focus') {\n this.close();\n }\n\n this.clickedOutside = true;\n this.setState({ focused: false });\n };\n\n private handleCloseButtonClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n\n if (this.props.onCloseClick) {\n this.props.onCloseClick(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n\n this.close();\n };\n}\n"]}
1
+ {"version":3,"sources":["Tooltip.tsx"],"names":["DEFAULT_DELAY","TooltipDataTids","root","content","crossIcon","Positions","Tooltip","rootNode","getProps","defaultProps","state","opened","focused","contentElement","positions","clickedOutside","popupRef","React","createRef","renderContent","props","render","refContent","styles","tooltipContent","theme","renderCloseButton","getAnchorElement","current","anchorElement","node","open","setState","close","handleMouseEnter","event","isHoverAnchor","trigger","target","clearHoverTimeout","hoverTimeout","globalObject","setTimeout","delayBeforeShow","handleMouseLeave","relatedTarget","delay","handleClick","handleClickOutsideAnchor","isClickOutsideContent","onCloseRequest","handleFocus","handleBlur","handleCloseButtonClick","stopPropagation","onCloseClick","defaultPrevented","componentDidUpdate","prevProps","allowedPositions","pos","posChanged","allowedChanged","componentWillUnmount","ThemeFactory","create","popupPinOffset","tooltipPinOffset","popupMargin","tooltipMargin","popupBorder","tooltipBorder","popupBorderRadius","tooltipBorderRadius","popupPinSize","tooltipPinSize","popupPinOffsetX","tooltipPinOffsetX","popupPinOffsetY","tooltipPinOffsetY","popupBackground","tooltipBg","renderMain","hasCross","closeButton","undefined","triggersWithoutCloseButton","includes","icon","parseInt","tooltipCloseBtnSide","tooltipCloseBtnColor","tooltipCloseBtnHoverColor","cross","show","hide","getPopupAndLayerProps","popupProps","layerProps","active","children","popup","renderPopup","disableAnimations","setRootNode","getPositions","onOpen","onClose","index","indexOf","Error","join","slice","useWrapper","onClickOutside","onMouseEnter","onMouseLeave","onClick","onFocus","onBlur","clearTimeout","Element","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","propName","componentName","Array","isArray","DefaultPosition","isTestEnv"],"mappings":"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","sourcesContent":["import React from 'react';\nimport warning from 'warning';\nimport isEqual from 'lodash.isequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isNullable } from '../../lib/utils';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { DefaultPosition, Popup, PopupProps, PopupPositionsType } from '../../internal/Popup';\nimport { RenderLayer, RenderLayerProps } from '../../internal/RenderLayer';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { CloseButtonIcon } from '../../internal/CloseButtonIcon/CloseButtonIcon';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\n\nimport { styles } from './Tooltip.styles';\n\nexport type TooltipTrigger =\n /** Наведение на children и на тултип */\n | 'hover'\n /** Клик на children */\n | 'click'\n /** Фокус на children */\n | 'focus'\n /** Наведение на children и на тултип и фокус на children */\n | 'hover&focus'\n /** Просто открыт */\n | 'opened'\n /** Просто закрыт */\n | 'closed'\n /** Наведение ТОЛЬКО на children, а не на тултип */\n | 'hoverAnchor'\n /** Управление через публичные функции show и hide */\n | 'manual';\n\nexport interface TooltipProps extends CommonProps {\n /**\n * Относительно какого элемента позиционировать тултип\n */\n anchorElement?: HTMLElement;\n\n /**\n * Если не указан `anchorElement` то тултип будет позиционироваться\n * относительно дочерних элементов\n */\n children?: React.ReactNode;\n\n className?: string;\n\n /**\n * Показывать крестик для закрытия тултипа. По-умолчанию крестик\n * показывается если проп *trigger* не `hover` и не `focus`.\n */\n closeButton?: boolean;\n\n /**\n * Функция, которая возвращает содержимое тултипа.\n *\n * Если эта функция вернула `null`, то тултип не показывается.\n */\n render?: Nullable<() => React.ReactNode>;\n\n /**\n * Значение по умолчанию: `\"top left\"`.\n */\n pos?: PopupPositionsType;\n\n /**\n * Триггер открытия тултипа\n * ```ts\n * type TooltipTrigger =\n * | 'hover'\n * | 'click'\n * | 'focus'\n * | 'hover&focus'\n * | 'opened'\n * | 'closed'\n * | 'hoverAnchor'\n * | 'manual';\n * ```\n */\n trigger?: TooltipTrigger;\n\n /**\n * Хэндлер, вызываемый при клике по крестику\n */\n onCloseClick?: React.MouseEventHandler<HTMLElement>;\n\n /**\n * Хэндлер, вызываемый при клике по крестику или\n * снаружи тултипа\n */\n onCloseRequest?: (event?: Event | React.MouseEvent) => void;\n\n /**\n * Хэндлер, вызываемый при закрытии тултипа\n */\n onClose?: () => void;\n\n /**\n * Хэндлер, вызываемый при открытии тултипа\n */\n onOpen?: () => void;\n\n /**\n * Список позиций, которые тултип будет занимать.\n * Если положение тултипа в определенной позиции\n * будет выходить за край экрана, то будет выбрана\n * следующая позиция. Обязательно должен включать\n * позицию указанную в `pos`\n */\n allowedPositions?: PopupPositionsType[];\n\n /**\n * Флаг отключения анимации.\n * @default false\n */\n disableAnimations?: boolean;\n\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n\n /**\n * Задержка перед появлением тултипа в миллисекундах\n * Значение по умолчанию: `100`\n */\n delayBeforeShow?: number;\n}\n\nconst DEFAULT_DELAY = 100;\n\nexport interface TooltipState {\n opened: boolean;\n focused: boolean;\n}\n\nexport const TooltipDataTids = {\n root: 'Tooltip__root',\n content: 'Tooltip__content',\n crossIcon: 'Tooltip__crossIcon',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'right bottom',\n 'right middle',\n 'right top',\n 'top right',\n 'top center',\n 'top left',\n 'left top',\n 'left middle',\n 'left bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n];\n\ntype DefaultProps = Required<\n Pick<TooltipProps, 'pos' | 'trigger' | 'allowedPositions' | 'disableAnimations' | 'useWrapper' | 'delayBeforeShow'>\n>;\n\n@rootNode\nexport class Tooltip extends React.PureComponent<TooltipProps, TooltipState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Tooltip';\n public static displayName = 'Tooltip';\n\n public static propTypes = {\n children(props: TooltipProps, propName: keyof TooltipProps, componentName: string) {\n const children = props[propName];\n warning(\n children || props.anchorElement,\n `[${componentName}]: you must provide either 'children' or 'anchorElement' prop for ${componentName} to work properly`,\n );\n warning(\n !(Array.isArray(children) && props.useWrapper === false),\n `[${componentName}]: you provided multiple children, but useWrapper={false} - forcing wrapper <span/> for positioning to work correctly`,\n );\n },\n };\n\n public static defaultProps: DefaultProps = {\n pos: DefaultPosition,\n trigger: 'hover',\n allowedPositions: Positions,\n disableAnimations: isTestEnv,\n useWrapper: false,\n delayBeforeShow: DEFAULT_DELAY,\n };\n\n private getProps = createPropsGetter(Tooltip.defaultProps);\n\n public static delay = DEFAULT_DELAY;\n private static triggersWithoutCloseButton: TooltipTrigger[] = ['hover', 'hoverAnchor', 'focus', 'hover&focus'];\n\n public state: TooltipState = { opened: false, focused: false };\n private theme!: Theme;\n private hoverTimeout: SafeTimer;\n private contentElement: Nullable<HTMLElement> = null;\n private positions: Nullable<PopupPositionsType[]> = null;\n private clickedOutside = true;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n public componentDidUpdate(prevProps: TooltipProps) {\n const { trigger, allowedPositions, pos } = this.getProps();\n if (trigger === 'closed' && this.state.opened) {\n this.close();\n }\n const posChanged = prevProps.pos !== pos;\n const allowedChanged = !isEqual(prevProps.allowedPositions, allowedPositions);\n\n if (posChanged || allowedChanged) {\n this.positions = null;\n }\n }\n\n public componentWillUnmount() {\n this.clearHoverTimeout();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipPinOffset,\n popupMargin: theme.tooltipMargin,\n popupBorder: theme.tooltipBorder,\n popupBorderRadius: theme.tooltipBorderRadius,\n popupPinSize: theme.tooltipPinSize,\n popupPinOffsetX: theme.tooltipPinOffsetX,\n popupPinOffsetY: theme.tooltipPinOffsetY,\n popupBackground: theme.tooltipBg,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderContent = () => {\n const content = this.props.render ? this.props.render() : null;\n if (isNullable(content)) {\n return null;\n }\n\n return (\n <div ref={this.refContent} className={styles.tooltipContent(this.theme)} data-tid={TooltipDataTids.content}>\n {content}\n {this.renderCloseButton()}\n </div>\n );\n };\n\n public renderCloseButton() {\n const hasCross =\n this.props.closeButton === undefined\n ? !Tooltip.triggersWithoutCloseButton.includes(this.getProps().trigger)\n : this.props.closeButton;\n\n if (!hasCross) {\n return null;\n }\n\n const icon = isTheme2022(this.theme) ? (\n <CloseButtonIcon\n tabbable={false}\n side={parseInt(this.theme.tooltipCloseBtnSide)}\n color={this.theme.tooltipCloseBtnColor}\n colorHover={this.theme.tooltipCloseBtnHoverColor}\n />\n ) : (\n <CrossIcon />\n );\n\n return (\n <div\n className={styles.cross(this.theme)}\n onClick={this.handleCloseButtonClick}\n data-tid={TooltipDataTids.crossIcon}\n >\n {icon}\n </div>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n /**\n * Программно открывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public show() {\n if (this.state.opened) {\n return;\n }\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'show' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.open();\n }\n\n /**\n * Программно закрывает тултип.\n * <p>Не действует если проп *trigger* `'opened'` или `'closed'`.</p>\n * @public\n */\n public hide() {\n const trigger = this.getProps().trigger;\n if (trigger === 'opened' || trigger === 'closed') {\n warning(true, `Function 'hide' is not supported with trigger specified '${trigger}'`);\n return;\n }\n this.close();\n }\n\n private renderMain() {\n const props = this.props;\n const content = this.renderContent();\n const { popupProps, layerProps = { active: false } } = this.getPopupAndLayerProps();\n const anchorElement = props.children || props.anchorElement;\n const popup = this.renderPopup(anchorElement, popupProps, content);\n\n return (\n <RenderLayer {...layerProps} getAnchorElement={this.getAnchorElement}>\n {popup}\n </RenderLayer>\n );\n }\n\n private renderPopup(\n anchorElement: React.ReactNode | HTMLElement,\n popupProps: Partial<PopupProps>,\n content: JSX.Element | null,\n ) {\n const { disableAnimations, trigger } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n data-tid={TooltipDataTids.root}\n anchorElement={anchorElement}\n hasPin\n hasShadow\n maxWidth=\"none\"\n opened={this.state.opened}\n disableAnimations={disableAnimations}\n positions={this.getPositions()}\n ignoreHover={trigger === 'hoverAnchor'}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n tryPreserveFirstRenderedPosition\n ref={this.popupRef}\n withoutMobile\n {...popupProps}\n >\n {content}\n </Popup>\n </CommonWrapper>\n );\n }\n\n private refContent = (node: HTMLElement | null) => {\n this.contentElement = node;\n };\n\n private getPositions() {\n if (!this.positions) {\n const { allowedPositions, pos } = this.getProps();\n const index = allowedPositions.indexOf(pos);\n if (index === -1) {\n throw new Error('Unexpected position passed to Tooltip. Expected one of: ' + allowedPositions.join(', '));\n }\n\n this.positions = [...allowedPositions.slice(index), ...allowedPositions.slice(0, index)];\n }\n\n return this.positions;\n }\n\n private getPopupAndLayerProps(): {\n layerProps?: Partial<RenderLayerProps>;\n popupProps: Partial<PopupProps>;\n } {\n const props = this.props;\n const useWrapper = !!props.children && this.getProps().useWrapper;\n const trigger = this.getProps().trigger;\n\n switch (trigger) {\n case 'opened':\n return {\n layerProps: {\n active: true,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n opened: true,\n useWrapper,\n },\n };\n\n case 'closed':\n return {\n popupProps: {\n opened: false,\n useWrapper,\n },\n };\n\n case 'hoverAnchor':\n case 'hover':\n return {\n popupProps: {\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n case 'manual':\n return {\n popupProps: {\n useWrapper,\n },\n };\n case 'click':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onClick: this.handleClick,\n useWrapper,\n },\n };\n\n case 'focus':\n return {\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n useWrapper,\n },\n };\n\n case 'hover&focus':\n return {\n layerProps: {\n active: this.state.opened,\n onClickOutside: this.handleClickOutsideAnchor,\n },\n popupProps: {\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n useWrapper,\n },\n };\n\n default:\n throw new Error('Unknown trigger specified: ' + trigger);\n }\n }\n\n private open = () => this.setState({ opened: true });\n\n private close = () => this.setState({ opened: false });\n\n private clearHoverTimeout() {\n if (this.hoverTimeout) {\n globalObject.clearTimeout(this.hoverTimeout);\n this.hoverTimeout = null;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n const isHoverAnchor = this.getProps().trigger === 'hoverAnchor';\n if (isHoverAnchor && event.target === this.contentElement) {\n return;\n }\n\n this.clearHoverTimeout();\n this.hoverTimeout = globalObject.setTimeout(this.open, this.getProps().delayBeforeShow);\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n const trigger = this.getProps().trigger;\n if (\n (trigger === 'hover&focus' && this.state.focused) ||\n (trigger === 'hover' && event.relatedTarget === this.contentElement)\n ) {\n return;\n }\n\n this.clearHoverTimeout();\n\n if (trigger === 'hoverAnchor') {\n this.close();\n } else {\n this.hoverTimeout = globalObject.setTimeout(this.close, Tooltip.delay);\n }\n };\n\n private handleClick = () => {\n this.open();\n };\n\n private handleClickOutsideAnchor = (event: Event) => {\n this.clickedOutside = this.isClickOutsideContent(event);\n if (this.clickedOutside) {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n this.close();\n }\n };\n\n private isClickOutsideContent(event: Event) {\n if (this.contentElement && isInstanceOf(event.target, globalObject.Element)) {\n return !containsTargetOrRenderContainer(event.target)(this.contentElement);\n }\n\n return true;\n }\n\n private handleFocus = () => {\n this.setState({ focused: true });\n this.open();\n };\n\n private handleBlur = () => {\n const trigger = this.getProps().trigger;\n if (trigger === 'hover&focus' && this.clickedOutside) {\n this.close();\n }\n\n if (trigger === 'focus') {\n this.close();\n }\n\n this.clickedOutside = true;\n this.setState({ focused: false });\n };\n\n private handleCloseButtonClick = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n\n if (this.props.onCloseClick) {\n this.props.onCloseClick(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest(event);\n }\n\n this.close();\n };\n}\n"]}
@@ -59,6 +59,7 @@ declare type DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>
59
59
  */
60
60
  export declare class TooltipMenu extends React.Component<TooltipMenuProps> {
61
61
  static __KONTUR_REACT_UI__: string;
62
+ static displayName: string;
62
63
  private setRootNode;
63
64
  static defaultProps: DefaultProps;
64
65
  private getProps;
@@ -82,6 +82,8 @@ TooltipMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/f
82
82
 
83
83
 
84
84
 
85
+
86
+
85
87
  function TooltipMenu(props) {var _this;
86
88
  _this = _React$Component.call(this, props) || this;_this.getProps = (0, _createPropsGetter.createPropsGetter)(TooltipMenu.defaultProps);
87
89
 
@@ -142,4 +144,4 @@ TooltipMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/f
142
144
 
143
145
 
144
146
 
145
- };return TooltipMenu;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'TooltipMenu', _class2.defaultProps = { disableAnimations: _currentEnvironment.isTestEnv }, _temp)) || _class;exports.TooltipMenu = TooltipMenu;
147
+ };return TooltipMenu;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'TooltipMenu', _class2.displayName = 'TooltipMenu', _class2.defaultProps = { disableAnimations: _currentEnvironment.isTestEnv }, _temp)) || _class;exports.TooltipMenu = TooltipMenu;
@@ -1 +1 @@
1
- {"version":3,"sources":["TooltipMenu.tsx"],"names":["TooltipMenuDataTids","root","TooltipMenu","rootNode","props","getProps","defaultProps","caption","isProductionEnv","Error","render","theme","ThemeFactory","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","menuScrollContainerContentWrapperPaddingY","menuLegacyPaddingY","renderMain","disableAnimations","setRootNode","menuMaxHeight","menuWidth","header","footer","preventIconsOffset","positions","onOpen","onClose","children","React","Component","__KONTUR_REACT_UI__","isTestEnv"],"mappings":"uWAAA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,gE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CO,IAAMA,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B,C;;;;;AAMP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;AAEaC,W,OADZC,kB;;;;;;;;;;AAWC,uBAAYC,KAAZ,EAAqC;AACnC,wCAAMA,KAAN,UADmC,MAF7BC,QAE6B,GAFlB,0CAAkBH,WAAW,CAACI,YAA9B,CAEkB;;AAGnC,QAAI,CAACF,KAAK,CAACG,OAAP,IAAkB,CAACC,mCAAvB,EAAwC;AACtC,YAAM,IAAIC,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,G;;AAEMC,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV;AACE,uCAAC,0BAAD,CAAc,QAAd;AACE,YAAA,KAAK,EAAEC,2BAAaC,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEH,KAAK,CAACI,oBADxB;AAEEC,cAAAA,WAAW,EAAEL,KAAK,CAACM,iBAFrB;AAGEC,cAAAA,YAAY,EAAEP,KAAK,CAACQ,kBAHtB;AAIEC,cAAAA,yCAAyC,EAAET,KAAK,CAACU,kBAJnD,EADK;;AAOLV,YAAAA,KAPK,CADT;;;AAWG,UAAA,MAAI,CAACW,UAAL,EAXH,CADF;;;AAeD,OAjBH,CADF;;;AAqBD,G;;AAEMA,EAAAA,U,GAAP,sBAAoB;AAClB,QAAI,CAAC,KAAKlB,KAAL,CAAWG,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED,yBAA8B,KAAKF,QAAL,EAA9B,CAAQkB,iBAAR,kBAAQA,iBAAR;;AAEA;AACE,mCAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAKpB,KAAvD;AACE,mCAAC,oBAAD;AACE,sBAAY,KAAKA,KAAL,CAAW,YAAX,CADd;AAEE,oBAAUJ,mBAAmB,CAACC,IAFhC;AAGE,QAAA,aAAa,EAAE,KAAKG,KAAL,CAAWqB,aAH5B;AAIE,QAAA,SAAS,EAAE,KAAKrB,KAAL,CAAWsB,SAJxB;AAKE,QAAA,OAAO,EAAE,KAAKtB,KAAL,CAAWG,OALtB;AAME,QAAA,MAAM,EAAE,KAAKH,KAAL,CAAWuB,MANrB;AAOE,QAAA,MAAM,EAAE,KAAKvB,KAAL,CAAWwB,MAPrB;AAQE,QAAA,kBAAkB,EAAE,KAAKxB,KAAL,CAAWyB,kBARjC;AASE,QAAA,SAAS,EAAE,KAAKzB,KAAL,CAAW0B,SATxB;AAUE,QAAA,MAAM,EAAE,KAAK1B,KAAL,CAAW2B,MAVrB;AAWE,QAAA,OAAO,EAAE,KAAK3B,KAAL,CAAW4B,OAXtB;AAYE,QAAA,WAAW,MAZb;AAaE,QAAA,iBAAiB,EAAET,iBAbrB;;AAeG,WAAKnB,KAAL,CAAW6B,QAfd,CADF,CADF;;;;AAqBD,G,sBAtE8BC,eAAMC,S,WACvBC,mB,GAAsB,a,UAGtB9B,Y,GAA6B,EACzCiB,iBAAiB,EAAEc,6BADsB,E","sourcesContent":["import React, { AriaAttributes } from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | unknown | MenuHeaderProps>;\n\nexport interface TooltipMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'preventIconsOffset'> {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [MenuHeader](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [MenuSeparator](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\nexport const TooltipMenuDataTids = {\n root: 'TooltipMenu__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(TooltipMenu.defaultProps);\n\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n menuScrollContainerContentWrapperPaddingY: theme.menuLegacyPaddingY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n const { disableAnimations } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n aria-label={this.props['aria-label']}\n data-tid={TooltipMenuDataTids.root}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={this.props.positions}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n popupHasPin\n disableAnimations={disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["TooltipMenu.tsx"],"names":["TooltipMenuDataTids","root","TooltipMenu","rootNode","props","getProps","defaultProps","caption","isProductionEnv","Error","render","theme","ThemeFactory","create","popupPinOffset","tooltipMenuPinOffset","popupMargin","tooltipMenuMargin","popupPinSize","tooltipMenuPinSize","menuScrollContainerContentWrapperPaddingY","menuLegacyPaddingY","renderMain","disableAnimations","setRootNode","menuMaxHeight","menuWidth","header","footer","preventIconsOffset","positions","onOpen","onClose","children","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"mappings":"uWAAA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA,gE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CO,IAAMA,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,mBAD2B,EAA5B,C;;;;;AAMP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;AAEaC,W,OADZC,kB;;;;;;;;;;;;AAaC,uBAAYC,KAAZ,EAAqC;AACnC,wCAAMA,KAAN,UADmC,MAF7BC,QAE6B,GAFlB,0CAAkBH,WAAW,CAACI,YAA9B,CAEkB;;AAGnC,QAAI,CAACF,KAAK,CAACG,OAAP,IAAkB,CAACC,mCAAvB,EAAwC;AACtC,YAAM,IAAIC,KAAJ,CAAU,+BAAV,CAAN;AACD,KALkC;AAMpC,G;;AAEMC,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,gBAACC,KAAD,EAAW;AACV;AACE,uCAAC,0BAAD,CAAc,QAAd;AACE,YAAA,KAAK,EAAEC,2BAAaC,MAAb;AACL;AACEC,cAAAA,cAAc,EAAEH,KAAK,CAACI,oBADxB;AAEEC,cAAAA,WAAW,EAAEL,KAAK,CAACM,iBAFrB;AAGEC,cAAAA,YAAY,EAAEP,KAAK,CAACQ,kBAHtB;AAIEC,cAAAA,yCAAyC,EAAET,KAAK,CAACU,kBAJnD,EADK;;AAOLV,YAAAA,KAPK,CADT;;;AAWG,UAAA,MAAI,CAACW,UAAL,EAXH,CADF;;;AAeD,OAjBH,CADF;;;AAqBD,G;;AAEMA,EAAAA,U,GAAP,sBAAoB;AAClB,QAAI,CAAC,KAAKlB,KAAL,CAAWG,OAAhB,EAAyB;AACvB,aAAO,IAAP;AACD;;AAED,yBAA8B,KAAKF,QAAL,EAA9B,CAAQkB,iBAAR,kBAAQA,iBAAR;;AAEA;AACE,mCAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAKpB,KAAvD;AACE,mCAAC,oBAAD;AACE,sBAAY,KAAKA,KAAL,CAAW,YAAX,CADd;AAEE,oBAAUJ,mBAAmB,CAACC,IAFhC;AAGE,QAAA,aAAa,EAAE,KAAKG,KAAL,CAAWqB,aAH5B;AAIE,QAAA,SAAS,EAAE,KAAKrB,KAAL,CAAWsB,SAJxB;AAKE,QAAA,OAAO,EAAE,KAAKtB,KAAL,CAAWG,OALtB;AAME,QAAA,MAAM,EAAE,KAAKH,KAAL,CAAWuB,MANrB;AAOE,QAAA,MAAM,EAAE,KAAKvB,KAAL,CAAWwB,MAPrB;AAQE,QAAA,kBAAkB,EAAE,KAAKxB,KAAL,CAAWyB,kBARjC;AASE,QAAA,SAAS,EAAE,KAAKzB,KAAL,CAAW0B,SATxB;AAUE,QAAA,MAAM,EAAE,KAAK1B,KAAL,CAAW2B,MAVrB;AAWE,QAAA,OAAO,EAAE,KAAK3B,KAAL,CAAW4B,OAXtB;AAYE,QAAA,WAAW,MAZb;AAaE,QAAA,iBAAiB,EAAET,iBAbrB;;AAeG,WAAKnB,KAAL,CAAW6B,QAfd,CADF,CADF;;;;AAqBD,G,sBAxE8BC,eAAMC,S,WACvBC,mB,GAAsB,a,UACtBC,W,GAAc,a,UAId/B,Y,GAA6B,EACzCiB,iBAAiB,EAAEe,6BADsB,E","sourcesContent":["import React, { AriaAttributes } from 'react';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { PopupMenu, PopupMenuProps } from '../../internal/PopupMenu';\nimport { MenuItemProps } from '../MenuItem';\nimport { isProductionEnv, isTestEnv } from '../../lib/currentEnvironment';\nimport { MenuHeaderProps } from '../MenuHeader';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport type TooltipMenuChildType = React.ReactElement<MenuItemProps | unknown | MenuHeaderProps>;\n\nexport interface TooltipMenuProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'preventIconsOffset'> {\n children?: TooltipMenuChildType | TooltipMenuChildType[];\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол [MenuHeader](#/Components/MenuHeader) передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен [MenuSeparator](#/Components/MenuSeparator).\n */\n footer?: React.ReactNode;\n /** Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n */\n positions?: PopupPositionsType[];\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n}\n\nexport const TooltipMenuDataTids = {\n root: 'TooltipMenu__root',\n} as const;\n\ntype DefaultProps = Required<Pick<TooltipMenuProps, 'disableAnimations'>>;\n\n/**\n * Меню, раскрывающееся по клику на переданный в `caption` элемент.\n *\n * Положение меню задаётся с помощью массива `positions` и работает так:\n * первое значение в массиве - дефолтная позиция, меню раскроется на этой позиции, если оно не будет выходить за пределы `viewport`,\n * если раскрыться в дефолтной позиции не получится - будет использована следующая позиция, и так далее, пока не будет достигнут конец массива. Если все положения из списка будут выходить за пределы `viewport`, в качестве положения будет использовано первое значение в массиве.\n *\n * Если меню должно раскрываться только в одну сторону - массив `positions` должен содержать только один элемент: сторону, в которую должно открываться меню.\n *\n * Если массив `positions` не передан (или передан пустой массив), будут использованы всевозможные значения.\n */\n@rootNode\nexport class TooltipMenu extends React.Component<TooltipMenuProps> {\n public static __KONTUR_REACT_UI__ = 'TooltipMenu';\n public static displayName = 'TooltipMenu';\n\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(TooltipMenu.defaultProps);\n\n constructor(props: TooltipMenuProps) {\n super(props);\n\n if (!props.caption && !isProductionEnv) {\n throw new Error('Prop \"caption\" is required!!!');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.tooltipMenuPinOffset,\n popupMargin: theme.tooltipMenuMargin,\n popupPinSize: theme.tooltipMenuPinSize,\n menuScrollContainerContentWrapperPaddingY: theme.menuLegacyPaddingY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n if (!this.props.caption) {\n return null;\n }\n\n const { disableAnimations } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n aria-label={this.props['aria-label']}\n data-tid={TooltipMenuDataTids.root}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n caption={this.props.caption}\n header={this.props.header}\n footer={this.props.footer}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={this.props.positions}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n popupHasPin\n disableAnimations={disableAnimations}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n}\n"]}
@@ -99,4 +99,7 @@ var CloseButtonIcon = function CloseButtonIcon(_ref)
99
99
 
100
100
 
101
101
 
102
- };exports.CloseButtonIcon = CloseButtonIcon;
102
+ };exports.CloseButtonIcon = CloseButtonIcon;
103
+
104
+ CloseButtonIcon.__KONTUR_REACT_UI__ = 'CloseButtonIcon';
105
+ CloseButtonIcon.displayName = 'CloseButtonIcon';
@@ -1 +1 @@
1
- {"version":3,"sources":["CloseButtonIcon.tsx"],"names":["CloseButtonIcon","side","DEFAULT_ICON_SIZE","size","color","colorHover","tabbable","style","rest","_theme","React","useContext","ThemeContext","theme","ThemeFactory","create","closeBtnIconColor","closeBtnIconHoverColor","useState","focusedByTab","setFocusedByTab","handleFocus","globalObject","requestAnimationFrame","keyListener","isTabPressed","handleBlur","tabIndex","disabled","styles","root","focus","rootDisabled","width","height","wrapper"],"mappings":"2WAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,IAAMA,eAA8D,GAAG,SAAjEA,eAAiE;;;;;;;;AAQxE,sBAPJC,IAOI,CAPJA,IAOI,0BAPGC,gCAOH,8BANJC,IAMI,CANJA,IAMI,0BANGD,gCAMH,aALJE,KAKI,QALJA,KAKI,CAJJC,UAII,QAJJA,UAII,sBAHJC,QAGI,CAHJA,QAGI,8BAHO,IAGP,iBAFJC,KAEI,QAFJA,KAEI,CADDC,IACC;AACJ,MAAMC,MAAM,GAAGC,eAAMC,UAAN,CAAiBC,0BAAjB,CAAf;AACA,MAAMC,KAAK,GAAGC,2BAAaC,MAAb;AACZ;AACEC,IAAAA,iBAAiB,EAAEZ,KAAF,WAAEA,KAAF,GAAWK,MAAM,CAACO,iBADrC;AAEEC,IAAAA,sBAAsB,EAAEZ,UAAF,WAAEA,UAAF,GAAgBI,MAAM,CAACQ,sBAF/C,EADY;;AAKZR,EAAAA,MALY,CAAd;;AAOA,wBAAwCC,eAAMQ,QAAN,CAAe,KAAf,CAAxC,CAAOC,YAAP,sBAAqBC,eAArB;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB;AACA;AACAC,+BAAaC,qBAAb,+CAAaA,qBAAb,CAAqC,YAAM;AACzC,UAAIC,yBAAYC,YAAhB,EAA8B;AAC5BL,QAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,KAJD;AAKD,GARD;AASA,MAAMM,UAAU,GAAG,SAAbA,UAAa,WAAMN,eAAe,CAAC,KAAD,CAArB,EAAnB;;AAEA,MAAMO,QAAQ,GAAG,CAACrB,QAAD,IAAaE,IAAI,CAACoB,QAAlB,GAA6B,CAAC,CAA9B,GAAkC,CAAnD;;AAEA;AACE,iCAAC,4BAAD,EAAmBpB,IAAnB;AACE;AACE,MAAA,QAAQ,EAAEmB,QADZ;AAEE,MAAA,SAAS,EAAE;AACTE,8BAAOC,IAAP,CAAYjB,KAAZ,CADS;AAET,OAACL,IAAI,CAACoB,QAAN,IAAkBT,YAAlB,IAAkCU,wBAAOE,KAAP,CAAalB,KAAb,CAFzB;AAGTL,MAAAA,IAAI,CAACoB,QAAL,IAAiBC,wBAAOG,YAAP,CAAoBnB,KAApB,CAHR,CAFb;;AAOE,MAAA,KAAK,6BAAON,KAAP,IAAc0B,KAAK,EAAEhC,IAArB,EAA2BiC,MAAM,EAAEjC,IAAnC,GAPP;AAQE,MAAA,OAAO,EAAEoB,WARX;AASE,MAAA,MAAM,EAAEK,UATV;AAUMlB,IAAAA,IAVN;;AAYE,2CAAM,SAAS,EAAEqB,wBAAOM,OAAP,EAAjB;AACE,iCAAC,oBAAD,IAAW,IAAI,EAAElC,IAAI,GAAGE,IAAP,GAAcF,IAAd,GAAqBE,IAAtC,EAA4C,SAAS,EAAEwB,QAAQ,IAAI,CAAnE,GADF,CAZF,CADF,CADF;;;;;AAoBD,CApDM,C","sourcesContent":["import React, { AriaAttributes, CSSProperties } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { DEFAULT_ICON_SIZE } from '../icons2022/iconConstants';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../CommonWrapper';\n\nimport { styles } from './CloseButtonIcon.styles';\nimport { CrossIcon } from './CrossIcon';\n\nexport interface CloseButtonIconProps\n extends Pick<AriaAttributes, 'aria-label'>,\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n CommonProps {\n /**\n * Ширина и высота иконки крестика\n *\n * @default 16\n */\n size?: number;\n /**\n * Ширина и высота всей кнопки\n *\n * @default 16\n */\n side?: number;\n /**\n * Цвет иконки\n *\n * Переменная темы: `closeBtnIconColor`\n */\n color?: CSSProperties['color'];\n /**\n * Цвет иконки при наведении мышью и при фокусе\n *\n * Переменная темы: `closeBtnIconHoverColor`\n */\n colorHover?: CSSProperties['color'];\n /**\n * Возможность сфокусироваться на кнопке клавишей TAB\n *\n * @default true\n * */\n tabbable?: boolean;\n}\n\nexport const CloseButtonIcon: React.FunctionComponent<CloseButtonIconProps> = ({\n side = DEFAULT_ICON_SIZE,\n size = DEFAULT_ICON_SIZE,\n color,\n colorHover,\n tabbable = true,\n style,\n ...rest\n}) => {\n const _theme = React.useContext(ThemeContext);\n const theme = ThemeFactory.create(\n {\n closeBtnIconColor: color ?? _theme.closeBtnIconColor,\n closeBtnIconHoverColor: colorHover ?? _theme.closeBtnIconHoverColor,\n },\n _theme,\n );\n const [focusedByTab, setFocusedByTab] = React.useState(false);\n\n const handleFocus = () => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n };\n const handleBlur = () => setFocusedByTab(false);\n\n const tabIndex = !tabbable || rest.disabled ? -1 : 0;\n\n return (\n <CommonWrapper {...rest}>\n <button\n tabIndex={tabIndex}\n className={cx(\n styles.root(theme),\n !rest.disabled && focusedByTab && styles.focus(theme),\n rest.disabled && styles.rootDisabled(theme),\n )}\n style={{ ...style, width: side, height: side }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n >\n <span className={styles.wrapper()}>\n <CrossIcon size={side < size ? side : size} focusable={tabIndex >= 0} />\n </span>\n </button>\n </CommonWrapper>\n );\n};\n"]}
1
+ {"version":3,"sources":["CloseButtonIcon.tsx"],"names":["CloseButtonIcon","side","DEFAULT_ICON_SIZE","size","color","colorHover","tabbable","style","rest","_theme","React","useContext","ThemeContext","theme","ThemeFactory","create","closeBtnIconColor","closeBtnIconHoverColor","useState","focusedByTab","setFocusedByTab","handleFocus","globalObject","requestAnimationFrame","keyListener","isTabPressed","handleBlur","tabIndex","disabled","styles","root","focus","rootDisabled","width","height","wrapper","__KONTUR_REACT_UI__","displayName"],"mappings":"2WAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCO,IAAMA,eAA8D,GAAG,SAAjEA,eAAiE;;;;;;;;AAQxE,sBAPJC,IAOI,CAPJA,IAOI,0BAPGC,gCAOH,8BANJC,IAMI,CANJA,IAMI,0BANGD,gCAMH,aALJE,KAKI,QALJA,KAKI,CAJJC,UAII,QAJJA,UAII,sBAHJC,QAGI,CAHJA,QAGI,8BAHO,IAGP,iBAFJC,KAEI,QAFJA,KAEI,CADDC,IACC;AACJ,MAAMC,MAAM,GAAGC,eAAMC,UAAN,CAAiBC,0BAAjB,CAAf;AACA,MAAMC,KAAK,GAAGC,2BAAaC,MAAb;AACZ;AACEC,IAAAA,iBAAiB,EAAEZ,KAAF,WAAEA,KAAF,GAAWK,MAAM,CAACO,iBADrC;AAEEC,IAAAA,sBAAsB,EAAEZ,UAAF,WAAEA,UAAF,GAAgBI,MAAM,CAACQ,sBAF/C,EADY;;AAKZR,EAAAA,MALY,CAAd;;AAOA,wBAAwCC,eAAMQ,QAAN,CAAe,KAAf,CAAxC,CAAOC,YAAP,sBAAqBC,eAArB;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB;AACA;AACAC,+BAAaC,qBAAb,+CAAaA,qBAAb,CAAqC,YAAM;AACzC,UAAIC,yBAAYC,YAAhB,EAA8B;AAC5BL,QAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,KAJD;AAKD,GARD;AASA,MAAMM,UAAU,GAAG,SAAbA,UAAa,WAAMN,eAAe,CAAC,KAAD,CAArB,EAAnB;;AAEA,MAAMO,QAAQ,GAAG,CAACrB,QAAD,IAAaE,IAAI,CAACoB,QAAlB,GAA6B,CAAC,CAA9B,GAAkC,CAAnD;;AAEA;AACE,iCAAC,4BAAD,EAAmBpB,IAAnB;AACE;AACE,MAAA,QAAQ,EAAEmB,QADZ;AAEE,MAAA,SAAS,EAAE;AACTE,8BAAOC,IAAP,CAAYjB,KAAZ,CADS;AAET,OAACL,IAAI,CAACoB,QAAN,IAAkBT,YAAlB,IAAkCU,wBAAOE,KAAP,CAAalB,KAAb,CAFzB;AAGTL,MAAAA,IAAI,CAACoB,QAAL,IAAiBC,wBAAOG,YAAP,CAAoBnB,KAApB,CAHR,CAFb;;AAOE,MAAA,KAAK,6BAAON,KAAP,IAAc0B,KAAK,EAAEhC,IAArB,EAA2BiC,MAAM,EAAEjC,IAAnC,GAPP;AAQE,MAAA,OAAO,EAAEoB,WARX;AASE,MAAA,MAAM,EAAEK,UATV;AAUMlB,IAAAA,IAVN;;AAYE,2CAAM,SAAS,EAAEqB,wBAAOM,OAAP,EAAjB;AACE,iCAAC,oBAAD,IAAW,IAAI,EAAElC,IAAI,GAAGE,IAAP,GAAcF,IAAd,GAAqBE,IAAtC,EAA4C,SAAS,EAAEwB,QAAQ,IAAI,CAAnE,GADF,CAZF,CADF,CADF;;;;;AAoBD,CApDM,C;;AAsDP3B,eAAe,CAACoC,mBAAhB,GAAsC,iBAAtC;AACApC,eAAe,CAACqC,WAAhB,GAA8B,iBAA9B","sourcesContent":["import React, { AriaAttributes, CSSProperties } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { DEFAULT_ICON_SIZE } from '../icons2022/iconConstants';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../CommonWrapper';\n\nimport { styles } from './CloseButtonIcon.styles';\nimport { CrossIcon } from './CrossIcon';\n\nexport interface CloseButtonIconProps\n extends Pick<AriaAttributes, 'aria-label'>,\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n CommonProps {\n /**\n * Ширина и высота иконки крестика\n *\n * @default 16\n */\n size?: number;\n /**\n * Ширина и высота всей кнопки\n *\n * @default 16\n */\n side?: number;\n /**\n * Цвет иконки\n *\n * Переменная темы: `closeBtnIconColor`\n */\n color?: CSSProperties['color'];\n /**\n * Цвет иконки при наведении мышью и при фокусе\n *\n * Переменная темы: `closeBtnIconHoverColor`\n */\n colorHover?: CSSProperties['color'];\n /**\n * Возможность сфокусироваться на кнопке клавишей TAB\n *\n * @default true\n * */\n tabbable?: boolean;\n}\n\nexport const CloseButtonIcon: React.FunctionComponent<CloseButtonIconProps> = ({\n side = DEFAULT_ICON_SIZE,\n size = DEFAULT_ICON_SIZE,\n color,\n colorHover,\n tabbable = true,\n style,\n ...rest\n}) => {\n const _theme = React.useContext(ThemeContext);\n const theme = ThemeFactory.create(\n {\n closeBtnIconColor: color ?? _theme.closeBtnIconColor,\n closeBtnIconHoverColor: colorHover ?? _theme.closeBtnIconHoverColor,\n },\n _theme,\n );\n const [focusedByTab, setFocusedByTab] = React.useState(false);\n\n const handleFocus = () => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n };\n const handleBlur = () => setFocusedByTab(false);\n\n const tabIndex = !tabbable || rest.disabled ? -1 : 0;\n\n return (\n <CommonWrapper {...rest}>\n <button\n tabIndex={tabIndex}\n className={cx(\n styles.root(theme),\n !rest.disabled && focusedByTab && styles.focus(theme),\n rest.disabled && styles.rootDisabled(theme),\n )}\n style={{ ...style, width: side, height: side }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n >\n <span className={styles.wrapper()}>\n <CrossIcon size={side < size ? side : size} focusable={tabIndex >= 0} />\n </span>\n </button>\n </CommonWrapper>\n );\n};\n\nCloseButtonIcon.__KONTUR_REACT_UI__ = 'CloseButtonIcon';\nCloseButtonIcon.displayName = 'CloseButtonIcon';\n"]}
@@ -1,33 +1,12 @@
1
1
  import React from 'react';
2
- import { Nullable } from '../../typings/utility-types';
3
- export interface CommonProps {
4
- /**
5
- * HTML-атрибут `class`.
6
- */
7
- className?: React.HTMLAttributes<HTMLElement>['className'];
8
- /**
9
- * HTML-атрибут `style`.
10
- */
11
- style?: React.HTMLAttributes<HTMLElement>['style'];
12
- /**
13
- * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.
14
- */
15
- 'data-tid'?: string;
16
- children?: React.ReactNode;
17
- }
18
- interface CommonPropsRootNodeRef {
19
- rootNodeRef?: (instance: Nullable<Element>) => void;
20
- }
21
- export declare type NotCommonProps<P> = Omit<P, keyof CommonProps>;
22
- export declare type CommonWrapperProps<P> = P & {
23
- children: React.ReactNode | ((rest: CommonWrapperRestProps<P>) => React.ReactNode);
24
- };
25
- export declare type CommonWrapperRestProps<P> = Omit<NotCommonProps<P>, 'children'>;
26
- export declare class CommonWrapper<P extends CommonProps & CommonPropsRootNodeRef> extends React.Component<CommonWrapperProps<P> & CommonPropsRootNodeRef> {
2
+ import type { CommonProps, CommonPropsRootNodeRef, CommonWrapperProps } from './types';
3
+ export declare type CommonPropsWithRootNodeRef = CommonProps & CommonPropsRootNodeRef;
4
+ export declare class CommonWrapper<P extends CommonPropsWithRootNodeRef> extends React.Component<CommonWrapperProps<P> & CommonPropsRootNodeRef> {
5
+ static __KONTUR_REACT_UI__: string;
6
+ static displayName: string;
27
7
  private child;
28
8
  private setRootNode;
29
9
  private rootNodeSubscription;
30
10
  render(): React.ReactNode;
31
11
  private ref;
32
12
  }
33
- export {};
@@ -4,13 +4,16 @@ var _utils = require("../../lib/utils");
4
4
  var _Emotion = require("../../lib/theming/Emotion");
5
5
 
6
6
  var _rootNode = require("../../lib/rootNode");
7
- var _callChildRef = require("../../lib/callChildRef/callChildRef");var _excluded = ["className", "style", "children", "rootNodeRef"];var _class;var
7
+ var _callChildRef = require("../../lib/callChildRef/callChildRef");
8
8
 
9
9
 
10
+ var _extractCommonProps2 = require("./extractCommonProps");
11
+ var _getCommonVisualStateDataAttributes = require("./getCommonVisualStateDataAttributes");var _excluded = ["className", "style", "children", "rootNodeRef"];var _class, _class2, _temp;var
10
12
 
11
13
 
12
14
 
13
15
 
16
+ CommonWrapper = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(CommonWrapper, _React$Component);function CommonWrapper() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
14
17
 
15
18
 
16
19
 
@@ -18,27 +21,6 @@ var _callChildRef = require("../../lib/callChildRef/callChildRef");var _excluded
18
21
 
19
22
 
20
23
 
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
- CommonWrapper = (0, _rootNode.rootNode)(_class = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(CommonWrapper, _React$Component);function CommonWrapper() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
38
-
39
-
40
-
41
-
42
24
  rootNodeSubscription = null;_this.
43
25
 
44
26
 
@@ -58,11 +40,12 @@ CommonWrapper = (0, _rootNode.rootNode)(_class = /*#__PURE__*/function (_React$C
58
40
 
59
41
 
60
42
 
43
+
61
44
  ref = function (instance) {var _this$rootNodeSubscri, _this$child;
62
45
  _this.setRootNode(instance);
63
46
  _this.props.rootNodeRef == null ? void 0 : _this.props.rootNodeRef((0, _rootNode.getRootNode)(instance));
64
47
 
65
- // refs are called when instances change
48
+ // refs are called when instances change,
66
49
  // so we have to renew or remove old subscription
67
50
  (_this$rootNodeSubscri = _this.rootNodeSubscription) == null ? void 0 : _this$rootNodeSubscri.remove();
68
51
  _this.rootNodeSubscription = null;
@@ -77,36 +60,4 @@ CommonWrapper = (0, _rootNode.rootNode)(_class = /*#__PURE__*/function (_React$C
77
60
  var originalRef = (_this$child = _this.child) == null ? void 0 : _this$child.ref;
78
61
  originalRef && (0, _callChildRef.callChildRef)(originalRef, instance);
79
62
  };return _this;}var _proto = CommonWrapper.prototype;_proto.render = function render() {// eslint-disable-next-line @typescript-eslint/no-unused-vars
80
- var _extractCommonProps = extractCommonProps(this.props),_extractCommonProps$ = _extractCommonProps[0],className = _extractCommonProps$.className,style = _extractCommonProps$.style,children = _extractCommonProps$.children,rootNodeRef = _extractCommonProps$.rootNodeRef,dataProps = (0, _objectWithoutPropertiesLoose2.default)(_extractCommonProps$, _excluded),rest = (0, _extends2.default)({}, _extractCommonProps[1]);this.child = (0, _utils.isFunction)(children) ? children(rest) : children;return /*#__PURE__*/_react.default.isValidElement(this.child) ? /*#__PURE__*/_react.default.cloneElement(this.child, (0, _extends2.default)({ ref: (0, _utils.isRefableElement)(this.child) ? this.ref : null, className: (0, _Emotion.cx)(this.child.props.className, className), style: (0, _extends2.default)({}, this.child.props.style, style) }, dataProps)) : this.child;};return CommonWrapper;}(_react.default.Component)) || _class;exports.CommonWrapper = CommonWrapper;
81
-
82
- var extractCommonProps = function extractCommonProps(
83
- props)
84
- {
85
- var common = {};
86
- var rest = {};
87
-
88
- for (var key in props) {
89
- if (isCommonProp(key)) {
90
- // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.
91
- common[key] = props[key];
92
- } else {
93
- // @ts-expect-error: Read the comment above.
94
- rest[key] = props[key];
95
- }
96
- }
97
-
98
- return [common, rest];
99
- };
100
-
101
- var isCommonProp = function isCommonProp(name) {
102
- switch (true) {
103
- case name === 'className':
104
- case name === 'style':
105
- case name === 'rootNodeRef':
106
- case name === 'children':
107
- case name.indexOf('data-') === 0: // все data-атрибуты
108
- return true;
109
- default:
110
- return false;}
111
-
112
- };
63
+ var _extractCommonProps = (0, _extractCommonProps2.extractCommonProps)(this.props),_extractCommonProps$ = _extractCommonProps[0],className = _extractCommonProps$.className,style = _extractCommonProps$.style,children = _extractCommonProps$.children,rootNodeRef = _extractCommonProps$.rootNodeRef,dataProps = (0, _objectWithoutPropertiesLoose2.default)(_extractCommonProps$, _excluded),rest = (0, _extends2.default)({}, _extractCommonProps[1]);this.child = (0, _utils.isFunction)(children) ? children(rest) : children;return /*#__PURE__*/_react.default.isValidElement(this.child) ? /*#__PURE__*/_react.default.cloneElement(this.child, (0, _extends2.default)({ ref: (0, _utils.isRefableElement)(this.child) ? this.ref : null, className: (0, _Emotion.cx)(this.child.props.className, className), style: (0, _extends2.default)({}, this.child.props.style, style) }, (0, _getCommonVisualStateDataAttributes.getCommonVisualStateDataAttributes)(rest), dataProps)) : this.child;};return CommonWrapper;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'CommonWrapper', _class2.displayName = 'CommonWrapper', _temp)) || _class;exports.CommonWrapper = CommonWrapper;
@@ -1 +1 @@
1
- {"version":3,"sources":["CommonWrapper.tsx"],"names":["CommonWrapper","rootNode","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","extractCommonProps","className","style","children","dataProps","rest","isValidElement","React","cloneElement","Component","common","key","isCommonProp","name","indexOf"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, rootNode, TSetRootNode, TRootNodeSubscription, isInstanceWithRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nexport interface CommonProps {\n /**\n * HTML-атрибут `class`.\n */\n className?: React.HTMLAttributes<HTMLElement>['className'];\n /**\n * HTML-атрибут `style`.\n */\n style?: React.HTMLAttributes<HTMLElement>['style'];\n /**\n * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.\n */\n 'data-tid'?: string;\n children?: React.ReactNode;\n}\n\ninterface CommonPropsRootNodeRef {\n rootNodeRef?: (instance: Nullable<Element>) => void;\n}\n\nexport type NotCommonProps<P> = Omit<P, keyof CommonProps>;\n\nexport type CommonWrapperProps<P> = P & {\n children: React.ReactNode | ((rest: CommonWrapperRestProps<P>) => React.ReactNode);\n};\nexport type CommonWrapperRestProps<P> = Omit<NotCommonProps<P>, 'children'>;\n\n@rootNode\nexport class CommonWrapper<P extends CommonProps & CommonPropsRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, {\n ref: isRefableElement(this.child) ? this.ref : null,\n className: cx(this.child.props.className, className),\n style: {\n ...this.child.props.style,\n ...style,\n },\n ...dataProps,\n })\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n\nconst extractCommonProps = <P extends CommonProps & CommonPropsRootNodeRef>(\n props: P,\n): [CommonProps & CommonPropsRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonProps & CommonPropsRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const key in props) {\n if (isCommonProp(key)) {\n // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.\n common[key] = props[key];\n } else {\n // @ts-expect-error: Read the comment above.\n rest[key] = props[key];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (name: string) => {\n switch (true) {\n case name === 'className':\n case name === 'style':\n case name === 'rootNodeRef':\n case name === 'children':\n case name.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n"]}
1
+ {"version":3,"sources":["CommonWrapper.tsx"],"names":["CommonWrapper","rootNode","rootNodeSubscription","ref","instance","setRootNode","props","rootNodeRef","remove","addRootNodeChangeListener","node","originalRef","child","render","className","style","children","dataProps","rest","isValidElement","React","cloneElement","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"ucAAA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA,0F;;;;;AAKaA,a,OADZC,kB;;;;;;;;AASSC,IAAAA,oB,GAAwD,I;;;;;;;;;;;;;;;;;;;;AAoBxDC,IAAAA,G,GAAM,UAACC,QAAD,EAA6C;AACzD,YAAKC,WAAL,CAAiBD,QAAjB;AACA,YAAKE,KAAL,CAAWC,WAAX,0BAAKD,KAAL,CAAWC,WAAX,CAAyB,2BAAYH,QAAZ,CAAzB;;AAEA;AACA;AACA,qCAAKF,oBAAL,2CAA2BM,MAA3B;AACA,YAAKN,oBAAL,GAA4B,IAA5B;;AAEA,UAAIE,QAAQ,IAAI,sCAAuBA,QAAvB,CAAhB,EAAkD;AAChD,cAAKF,oBAAL,GAA4BE,QAAQ,CAACK,yBAArC,oBAA4BL,QAAQ,CAACK,yBAAT,CAAqC,UAACC,IAAD,EAAU;AACzE,gBAAKL,WAAL,CAAiBK,IAAjB;AACA,gBAAKJ,KAAL,CAAWC,WAAX,0BAAKD,KAAL,CAAWC,WAAX,CAAyBG,IAAzB;AACD,SAH2B,CAA5B;AAID;;AAED,UAAMC,WAAW,kBAAI,MAAKC,KAAT,qBAAG,YAA0CT,GAA9D;AACAQ,MAAAA,WAAW,IAAI,gCAAaA,WAAb,EAA0BP,QAA1B,CAAf;AACD,K,2DApCDS,M,GAAA,kBAAS,CACP;AACA,8BAAiF,6CAAmB,KAAKP,KAAxB,CAAjF,+CAASQ,SAAT,wBAASA,SAAT,CAAoBC,KAApB,wBAAoBA,KAApB,CAA2BC,QAA3B,wBAA2BA,QAA3B,CAAqCT,WAArC,wBAAqCA,WAArC,CAAqDU,SAArD,gFAAuEC,IAAvE,sDACA,KAAKN,KAAL,GAAa,uBAAWI,QAAX,IAAuBA,QAAQ,CAACE,IAAD,CAA/B,GAAwCF,QAArD,CACA,OAAO,4BAAMG,cAAN,CAA6D,KAAKP,KAAlE,iBACHQ,eAAMC,YAAN,CAAmB,KAAKT,KAAxB,2BACET,GAAG,EAAE,6BAAiB,KAAKS,KAAtB,IAA+B,KAAKT,GAApC,GAA0C,IADjD,EAEEW,SAAS,EAAE,iBAAG,KAAKF,KAAL,CAAWN,KAAX,CAAiBQ,SAApB,EAA+BA,SAA/B,CAFb,EAGEC,KAAK,6BACA,KAAKH,KAAL,CAAWN,KAAX,CAAiBS,KADjB,EAEAA,KAFA,CAHP,IAOK,4EAAmCG,IAAnC,CAPL,EAQKD,SARL,EADG,GAWH,KAAKL,KAXT,CAYD,C,wBA1BsEQ,eAAME,S,WAG/DC,mB,GAAsB,e,UACtBC,W,GAAc,e","sourcesContent":["import React from 'react';\n\nimport { isFunction, isRefableElement } from '../../lib/utils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRootNode, isInstanceWithRootNode, rootNode, TRootNodeSubscription, TSetRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nimport type { CommonProps, CommonPropsRootNodeRef, CommonWrapperProps } from './types';\nimport { extractCommonProps } from './extractCommonProps';\nimport { getCommonVisualStateDataAttributes } from './getCommonVisualStateDataAttributes';\n\nexport type CommonPropsWithRootNodeRef = CommonProps & CommonPropsRootNodeRef;\n\n@rootNode\nexport class CommonWrapper<P extends CommonPropsWithRootNodeRef> extends React.Component<\n CommonWrapperProps<P> & CommonPropsRootNodeRef\n> {\n public static __KONTUR_REACT_UI__ = 'CommonWrapper';\n public static displayName = 'CommonWrapper';\n\n private child: React.ReactNode;\n private setRootNode!: TSetRootNode;\n private rootNodeSubscription: Nullable<TRootNodeSubscription> = null;\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [{ className, style, children, rootNodeRef, ...dataProps }, { ...rest }] = extractCommonProps(this.props);\n this.child = isFunction(children) ? children(rest) : children;\n return React.isValidElement<CommonProps & React.RefAttributes<any>>(this.child)\n ? React.cloneElement(this.child, {\n ref: isRefableElement(this.child) ? this.ref : null,\n className: cx(this.child.props.className, className),\n style: {\n ...this.child.props.style,\n ...style,\n },\n ...getCommonVisualStateDataAttributes(rest),\n ...dataProps,\n })\n : this.child;\n }\n\n private ref = (instance: Nullable<React.ReactInstance>) => {\n this.setRootNode(instance);\n this.props.rootNodeRef?.(getRootNode(instance));\n\n // refs are called when instances change,\n // so we have to renew or remove old subscription\n this.rootNodeSubscription?.remove();\n this.rootNodeSubscription = null;\n\n if (instance && isInstanceWithRootNode(instance)) {\n this.rootNodeSubscription = instance.addRootNodeChangeListener?.((node) => {\n this.setRootNode(node);\n this.props.rootNodeRef?.(node);\n });\n }\n\n const originalRef = (this.child as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n };\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { NotCommonProps } from './types';
2
+ import type { CommonPropsWithRootNodeRef } from './CommonWrapper';
3
+ export declare const extractCommonProps: <P extends CommonPropsWithRootNodeRef>(props: P) => [CommonPropsWithRootNodeRef, NotCommonProps<P>];
@@ -0,0 +1,34 @@
1
+ "use strict";exports.__esModule = true;exports.extractCommonProps = void 0;
2
+
3
+
4
+ var extractCommonProps = function extractCommonProps(
5
+ props)
6
+ {
7
+ var common = {};
8
+ var rest = {};
9
+
10
+ for (var prop in props) {
11
+ if (isCommonProp(prop)) {
12
+ // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.
13
+ common[prop] = props[prop];
14
+ } else {
15
+ // @ts-expect-error: Read the comment above.
16
+ rest[prop] = props[prop];
17
+ }
18
+ }
19
+
20
+ return [common, rest];
21
+ };exports.extractCommonProps = extractCommonProps;
22
+
23
+ var isCommonProp = function isCommonProp(prop) {
24
+ switch (true) {
25
+ case prop === 'className':
26
+ case prop === 'style':
27
+ case prop === 'rootNodeRef':
28
+ case prop === 'children':
29
+ case prop.indexOf('data-') === 0: // все data-атрибуты
30
+ return true;
31
+ default:
32
+ return false;}
33
+
34
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["extractCommonProps.ts"],"names":["extractCommonProps","props","common","rest","prop","isCommonProp","indexOf"],"mappings":";;;AAGO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB;AAChCC,KADgC;AAEoB;AACpD,MAAMC,MAAM,GAAG,EAAf;AACA,MAAMC,IAAI,GAAG,EAAb;;AAEA,OAAK,IAAMC,IAAX,IAAmBH,KAAnB,EAA0B;AACxB,QAAII,YAAY,CAACD,IAAD,CAAhB,EAA4D;AAC1D;AACAF,MAAAA,MAAM,CAACE,IAAD,CAAN,GAAeH,KAAK,CAACG,IAAD,CAApB;AACD,KAHD,MAGO;AACL;AACAD,MAAAA,IAAI,CAACC,IAAD,CAAJ,GAAaH,KAAK,CAACG,IAAD,CAAlB;AACD;AACF;;AAED,SAAO,CAACF,MAAD,EAASC,IAAT,CAAP;AACD,CAjBM,C;;AAmBP,IAAME,YAAY,GAAG,SAAfA,YAAe,CAACD,IAAD,EAA4C;AAC/D,UAAQ,IAAR;AACE,SAAKA,IAAI,KAAK,WAAd;AACA,SAAKA,IAAI,KAAK,OAAd;AACA,SAAKA,IAAI,KAAK,aAAd;AACA,SAAKA,IAAI,KAAK,UAAd;AACA,SAAKA,IAAI,CAACE,OAAL,CAAa,OAAb,MAA0B,CAA/B,EAAkC;AAChC,aAAO,IAAP;AACF;AACE,aAAO,KAAP,CARJ;;AAUD,CAXD","sourcesContent":["import type { NotCommonProps } from './types';\nimport type { CommonPropsWithRootNodeRef } from './CommonWrapper';\n\nexport const extractCommonProps = <P extends CommonPropsWithRootNodeRef>(\n props: P,\n): [CommonPropsWithRootNodeRef, NotCommonProps<P>] => {\n const common = {} as CommonPropsWithRootNodeRef;\n const rest = {} as NotCommonProps<P>;\n\n for (const prop in props) {\n if (isCommonProp(prop as keyof CommonPropsWithRootNodeRef)) {\n // @ts-expect-error: See: https://github.com/skbkontur/retail-ui/pull/2257#discussion_r565275843 and https://github.com/skbkontur/retail-ui/pull/2257#discussion_r569542736.\n common[prop] = props[prop];\n } else {\n // @ts-expect-error: Read the comment above.\n rest[prop] = props[prop];\n }\n }\n\n return [common, rest];\n};\n\nconst isCommonProp = (prop: keyof CommonPropsWithRootNodeRef) => {\n switch (true) {\n case prop === 'className':\n case prop === 'style':\n case prop === 'rootNodeRef':\n case prop === 'children':\n case prop.indexOf('data-') === 0: // все data-атрибуты\n return true;\n default:\n return false;\n }\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import { VisualStateDataAttributesResultType } from './getVisualStateDataAttributes';
2
+ export declare function getCommonVisualStateDataAttributes(componentProps: Record<string, unknown>): VisualStateDataAttributesResultType;
@@ -0,0 +1,12 @@
1
+ "use strict";exports.__esModule = true;exports.getCommonVisualStateDataAttributes = getCommonVisualStateDataAttributes;var _getVisualStateDataAttributes = require("./getVisualStateDataAttributes");
2
+
3
+ var tryGetBoolean = function tryGetBoolean(value) {return typeof value === 'boolean' ? value : undefined;};
4
+
5
+ function getCommonVisualStateDataAttributes(
6
+ componentProps)
7
+ {
8
+ return (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({
9
+ error: tryGetBoolean(componentProps['error']),
10
+ warning: tryGetBoolean(componentProps['warning']) });
11
+
12
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getCommonVisualStateDataAttributes.ts"],"names":["tryGetBoolean","value","undefined","getCommonVisualStateDataAttributes","componentProps","error","warning"],"mappings":"uHAAA;;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,UAA0C,OAAOA,KAAP,KAAiB,SAAjB,GAA6BA,KAA7B,GAAqCC,SAA/E,EAAtB;;AAEO,SAASC,kCAAT;AACLC,cADK;AAEgC;AACrC,SAAO,gEAA6B;AAClCC,IAAAA,KAAK,EAAEL,aAAa,CAACI,cAAc,CAAC,OAAD,CAAf,CADc;AAElCE,IAAAA,OAAO,EAAEN,aAAa,CAACI,cAAc,CAAC,SAAD,CAAf,CAFY,EAA7B,CAAP;;AAID","sourcesContent":["import { getVisualStateDataAttributes, VisualStateDataAttributesResultType } from './getVisualStateDataAttributes';\n\nconst tryGetBoolean = (value: unknown): boolean | undefined => (typeof value === 'boolean' ? value : undefined);\n\nexport function getCommonVisualStateDataAttributes(\n componentProps: Record<string, unknown>,\n): VisualStateDataAttributesResultType {\n return getVisualStateDataAttributes({\n error: tryGetBoolean(componentProps['error']),\n warning: tryGetBoolean(componentProps['warning']),\n });\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { Nullable } from '../../typings/utility-types';
2
+ export declare type VisualStateDataAttributesResultType = Record<string, string>;
3
+ export declare function getVisualStateDataAttributes<T extends Record<string, Nullable<boolean>>>(attributes: T): VisualStateDataAttributesResultType;
@@ -0,0 +1,23 @@
1
+ "use strict";exports.__esModule = true;exports.getVisualStateDataAttributes = getVisualStateDataAttributes;var _toKebabCase = require("../../lib/toKebabCase");
2
+
3
+
4
+
5
+
6
+ var prefix = "data-visual-state-";
7
+
8
+ function fillResult(result, key, value) {
9
+ if (value !== null && value !== undefined) {
10
+ result["" + prefix + (0, _toKebabCase.toKebabCase)(key)] = String(value);
11
+ }
12
+
13
+ return result;
14
+ }
15
+
16
+ function getVisualStateDataAttributes(
17
+ attributes)
18
+ {
19
+ return Object.entries(attributes).reduce(
20
+ function (previousValue, currentValue) {return fillResult(previousValue, currentValue[0], currentValue[1]);},
21
+ {});
22
+
23
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getVisualStateDataAttributes.ts"],"names":["prefix","fillResult","result","key","value","undefined","String","getVisualStateDataAttributes","attributes","Object","entries","reduce","previousValue","currentValue"],"mappings":"2GAAA;;;;;AAKA,IAAMA,MAAM,uBAAZ;;AAEA,SAASC,UAAT,CAAoBC,MAApB,EAAiEC,GAAjE,EAA8EC,KAA9E,EAA8F;AAC5F,MAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKC,SAAhC,EAA2C;AACzCH,IAAAA,MAAM,MAAIF,MAAJ,GAAa,8BAAYG,GAAZ,CAAb,CAAN,GAAyCG,MAAM,CAACF,KAAD,CAA/C;AACD;;AAED,SAAOF,MAAP;AACD;;AAEM,SAASK,4BAAT;AACLC,UADK;AAEgC;AACrC,SAAOC,MAAM,CAACC,OAAP,CAAeF,UAAf,EAA2BG,MAA3B;AACL,YAACC,aAAD,EAAgBC,YAAhB,UAAiCZ,UAAU,CAACW,aAAD,EAAgBC,YAAY,CAAC,CAAD,CAA5B,EAAiCA,YAAY,CAAC,CAAD,CAA7C,CAA3C,EADK;AAEL,IAFK,CAAP;;AAID","sourcesContent":["import { toKebabCase } from '../../lib/toKebabCase';\nimport type { Nullable } from '../../typings/utility-types';\n\nexport type VisualStateDataAttributesResultType = Record<string, string>;\n\nconst prefix = `data-visual-state-`;\n\nfunction fillResult(result: VisualStateDataAttributesResultType, key: string, value: unknown) {\n if (value !== null && value !== undefined) {\n result[`${prefix}${toKebabCase(key)}`] = String(value);\n }\n\n return result;\n}\n\nexport function getVisualStateDataAttributes<T extends Record<string, Nullable<boolean>>>(\n attributes: T,\n): VisualStateDataAttributesResultType {\n return Object.entries(attributes).reduce(\n (previousValue, currentValue) => fillResult(previousValue, currentValue[0], currentValue[1]),\n {},\n );\n}\n"]}
@@ -1 +1,3 @@
1
1
  export * from './CommonWrapper';
2
+ export type { CommonWrapperRestProps } from './types';
3
+ export type { CommonProps } from './types';
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":[],"mappings":"uCAAA","sourcesContent":["export * from './CommonWrapper';\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":[],"mappings":"uCAAA","sourcesContent":["export * from './CommonWrapper';\nexport type { CommonWrapperRestProps } from './types';\nexport type { CommonProps } from './types';\n"]}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import type { Nullable } from '../../typings/utility-types';
3
+ export interface CommonProps {
4
+ /**
5
+ * HTML-атрибут `class`.
6
+ */
7
+ className?: React.HTMLAttributes<HTMLElement>['className'];
8
+ /**
9
+ * HTML-атрибут `style`.
10
+ */
11
+ style?: React.HTMLAttributes<HTMLElement>['style'];
12
+ /**
13
+ * На равне с data-tid транслируются любые data-атрибуты. Они попадают на корневой элемент.
14
+ */
15
+ 'data-tid'?: string;
16
+ children?: React.ReactNode;
17
+ }
18
+ export interface CommonPropsRootNodeRef {
19
+ rootNodeRef?: (instance: Nullable<Element>) => void;
20
+ }
21
+ export declare type NotCommonProps<P> = Omit<P, keyof CommonProps>;
22
+ export declare type CommonWrapperProps<P> = P & {
23
+ children: React.ReactNode | ((rest: CommonWrapperRestProps<P>) => React.ReactNode);
24
+ };
25
+ export declare type CommonWrapperRestProps<P> = Omit<NotCommonProps<P>, 'children'>;
@@ -0,0 +1 @@
1
+ "use strict";exports.__esModule = true;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -35,6 +35,7 @@ export declare const ComboBoxMenuDataTids: {
35
35
  declare type DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;
36
36
  export declare class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {
37
37
  static __KONTUR_REACT_UI__: string;
38
+ static displayName: string;
38
39
  static defaultProps: DefaultProps<unknown>;
39
40
  private getProps;
40
41
  private readonly locale;