@skbkontur/react-ui 3.9.4 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +57 -0
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  4. package/cjs/components/Autocomplete/Autocomplete.js +11 -5
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +1 -0
  7. package/cjs/components/Button/Button.js +7 -3
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Center/Center.d.ts +1 -0
  10. package/cjs/components/Center/Center.js +10 -3
  11. package/cjs/components/Center/Center.js.map +1 -1
  12. package/cjs/components/Checkbox/Checkbox.d.ts +3 -2
  13. package/cjs/components/Checkbox/Checkbox.js +10 -4
  14. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  15. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  16. package/cjs/components/ComboBox/ComboBox.js +100 -70
  17. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +3 -3
  19. package/cjs/components/CurrencyInput/CurrencyInput.js +7 -4
  20. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  21. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  22. package/cjs/components/DateInput/DateInput.js +6 -3
  23. package/cjs/components/DateInput/DateInput.js.map +1 -1
  24. package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
  25. package/cjs/components/DatePicker/DatePicker.js +17 -7
  26. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  27. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  28. package/cjs/components/Dropdown/Dropdown.js +11 -4
  29. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  30. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  31. package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
  32. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  33. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  34. package/cjs/components/FxInput/FxInput.js +9 -2
  35. package/cjs/components/FxInput/FxInput.js.map +1 -1
  36. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  37. package/cjs/components/Gapped/Gapped.js +8 -5
  38. package/cjs/components/Gapped/Gapped.js.map +1 -1
  39. package/cjs/components/Group/Group.d.ts +1 -0
  40. package/cjs/components/Group/Group.js +10 -7
  41. package/cjs/components/Group/Group.js.map +1 -1
  42. package/cjs/components/Hint/Hint.d.ts +3 -2
  43. package/cjs/components/Hint/Hint.js +7 -4
  44. package/cjs/components/Hint/Hint.js.map +1 -1
  45. package/cjs/components/Input/Input.d.ts +4 -1
  46. package/cjs/components/Input/Input.js +13 -5
  47. package/cjs/components/Input/Input.js.map +1 -1
  48. package/cjs/components/Kebab/Kebab.d.ts +1 -0
  49. package/cjs/components/Kebab/Kebab.js +8 -5
  50. package/cjs/components/Kebab/Kebab.js.map +1 -1
  51. package/cjs/components/Link/Link.d.ts +1 -0
  52. package/cjs/components/Link/Link.js +11 -3
  53. package/cjs/components/Link/Link.js.map +1 -1
  54. package/cjs/components/Loader/Loader.d.ts +1 -0
  55. package/cjs/components/Loader/Loader.js +9 -6
  56. package/cjs/components/Loader/Loader.js.map +1 -1
  57. package/cjs/components/MenuItem/MenuItem.d.ts +1 -0
  58. package/cjs/components/MenuItem/MenuItem.js +13 -7
  59. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  60. package/cjs/components/Modal/Modal.js +1 -1
  61. package/cjs/components/Modal/Modal.js.map +1 -1
  62. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  63. package/cjs/components/Modal/ModalBody.js +9 -6
  64. package/cjs/components/Modal/ModalBody.js.map +1 -1
  65. package/cjs/components/Paging/Paging.d.ts +2 -2
  66. package/cjs/components/Paging/Paging.js +6 -5
  67. package/cjs/components/Paging/Paging.js.map +1 -1
  68. package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
  69. package/cjs/components/PasswordInput/PasswordInput.js +13 -6
  70. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  71. package/cjs/components/Radio/Radio.d.ts +5 -10
  72. package/cjs/components/Radio/Radio.js +11 -10
  73. package/cjs/components/Radio/Radio.js.map +1 -1
  74. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -16
  75. package/cjs/components/RadioGroup/RadioGroup.js +16 -19
  76. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  77. package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  78. package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
  79. package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
  80. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  81. package/cjs/components/ScrollContainer/ScrollContainer.js +8 -5
  82. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  83. package/cjs/components/Select/Select.d.ts +1 -0
  84. package/cjs/components/Select/Select.js +6 -4
  85. package/cjs/components/Select/Select.js.map +1 -1
  86. package/cjs/components/SidePage/SidePage.d.ts +1 -0
  87. package/cjs/components/SidePage/SidePage.js +4 -1
  88. package/cjs/components/SidePage/SidePage.js.map +1 -1
  89. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  90. package/cjs/components/SidePage/SidePageBody.js +9 -6
  91. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  92. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  93. package/cjs/components/SidePage/SidePageContainer.js +9 -6
  94. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  95. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
  96. package/cjs/components/SidePage/SidePageFooter.js +11 -12
  97. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  98. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  99. package/cjs/components/SidePage/SidePageHeader.js +6 -3
  100. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  101. package/cjs/components/Spinner/Spinner.d.ts +1 -0
  102. package/cjs/components/Spinner/Spinner.js +8 -5
  103. package/cjs/components/Spinner/Spinner.js.map +1 -1
  104. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  105. package/cjs/components/Sticky/Sticky.js +8 -5
  106. package/cjs/components/Sticky/Sticky.js.map +1 -1
  107. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  108. package/cjs/components/Switcher/Switcher.js +6 -3
  109. package/cjs/components/Switcher/Switcher.js.map +1 -1
  110. package/cjs/components/Tabs/Indicator.d.ts +1 -0
  111. package/cjs/components/Tabs/Indicator.js +16 -15
  112. package/cjs/components/Tabs/Indicator.js.map +1 -1
  113. package/cjs/components/Tabs/Tab.d.ts +2 -1
  114. package/cjs/components/Tabs/Tab.js +13 -9
  115. package/cjs/components/Tabs/Tab.js.map +1 -1
  116. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  117. package/cjs/components/Tabs/Tabs.js +9 -9
  118. package/cjs/components/Tabs/Tabs.js.map +1 -1
  119. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  120. package/cjs/components/Textarea/Textarea.js +12 -5
  121. package/cjs/components/Textarea/Textarea.js.map +1 -1
  122. package/cjs/components/Toast/Toast.d.ts +3 -0
  123. package/cjs/components/Toast/Toast.js +15 -4
  124. package/cjs/components/Toast/Toast.js.map +1 -1
  125. package/cjs/components/Toast/ToastView.d.ts +1 -0
  126. package/cjs/components/Toast/ToastView.js +8 -5
  127. package/cjs/components/Toast/ToastView.js.map +1 -1
  128. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  129. package/cjs/components/Toggle/Toggle.js +9 -6
  130. package/cjs/components/Toggle/Toggle.js.map +1 -1
  131. package/cjs/components/Token/Token.d.ts +1 -0
  132. package/cjs/components/Token/Token.js +7 -4
  133. package/cjs/components/Token/Token.js.map +1 -1
  134. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  135. package/cjs/components/TokenInput/TokenInput.js +11 -8
  136. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  137. package/cjs/components/Tooltip/Tooltip.d.ts +3 -1
  138. package/cjs/components/Tooltip/Tooltip.js +16 -5
  139. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  140. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  141. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
  142. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  143. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  144. package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
  145. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  146. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
  147. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  148. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  149. package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
  150. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  151. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  152. package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
  153. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  154. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
  155. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  156. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  157. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  158. package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -13
  159. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  160. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  161. package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
  162. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  163. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
  164. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  165. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  166. package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
  167. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  168. package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
  169. package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
  170. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  171. package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
  172. package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
  173. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  174. package/cjs/internal/Menu/Menu.d.ts +1 -0
  175. package/cjs/internal/Menu/Menu.js +9 -6
  176. package/cjs/internal/Menu/Menu.js.map +1 -1
  177. package/cjs/internal/Popup/Popup.d.ts +4 -4
  178. package/cjs/internal/Popup/Popup.js +50 -27
  179. package/cjs/internal/Popup/Popup.js.map +1 -1
  180. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
  181. package/cjs/internal/PopupMenu/PopupMenu.js +7 -4
  182. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  183. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
  184. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  185. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  186. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
  187. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  188. package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
  189. package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
  190. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  191. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  192. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
  193. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  194. package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
  195. package/cjs/internal/ZIndex/ZIndex.js +45 -34
  196. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  197. package/cjs/internal/icons/16px/index.d.ts +17 -16
  198. package/cjs/internal/icons/16px/index.js +108 -51
  199. package/cjs/internal/icons/16px/index.js.map +1 -1
  200. package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
  201. package/cjs/lib/callChildRef/callChildRef.js +19 -0
  202. package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
  203. package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
  204. package/cjs/lib/rootNode/getRootNode.js +27 -0
  205. package/cjs/lib/rootNode/getRootNode.js.map +1 -0
  206. package/cjs/lib/rootNode/index.d.ts +2 -0
  207. package/cjs/lib/rootNode/index.js +2 -0
  208. package/cjs/lib/rootNode/index.js.map +1 -0
  209. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  210. package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
  211. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
  212. package/cjs/lib/theming/Emotion.js +1 -0
  213. package/cjs/lib/theming/Emotion.js.map +1 -1
  214. package/cjs/lib/utils.d.ts +3 -0
  215. package/cjs/lib/utils.js +15 -2
  216. package/cjs/lib/utils.js.map +1 -1
  217. package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
  218. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  219. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  220. package/components/Button/Button/Button.js +15 -12
  221. package/components/Button/Button/Button.js.map +1 -1
  222. package/components/Button/Button.d.ts +1 -0
  223. package/components/Center/Center/Center.js +14 -9
  224. package/components/Center/Center/Center.js.map +1 -1
  225. package/components/Center/Center.d.ts +1 -0
  226. package/components/Checkbox/Checkbox/Checkbox.js +16 -10
  227. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  228. package/components/Checkbox/Checkbox.d.ts +3 -2
  229. package/components/ComboBox/ComboBox/ComboBox.js +38 -32
  230. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  231. package/components/ComboBox/ComboBox.d.ts +2 -0
  232. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +29 -27
  233. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  234. package/components/CurrencyInput/CurrencyInput.d.ts +3 -3
  235. package/components/DateInput/DateInput/DateInput.js +7 -3
  236. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  237. package/components/DateInput/DateInput.d.ts +1 -0
  238. package/components/DatePicker/DatePicker/DatePicker.js +29 -22
  239. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  240. package/components/DatePicker/DatePicker.d.ts +4 -2
  241. package/components/Dropdown/Dropdown/Dropdown.js +15 -13
  242. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  243. package/components/Dropdown/Dropdown.d.ts +1 -0
  244. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
  245. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  246. package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  247. package/components/FxInput/FxInput/FxInput.js +13 -9
  248. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  249. package/components/FxInput/FxInput.d.ts +1 -0
  250. package/components/Gapped/Gapped/Gapped.js +15 -11
  251. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  252. package/components/Gapped/Gapped.d.ts +1 -0
  253. package/components/Group/Group/Group.js +22 -9
  254. package/components/Group/Group/Group.js.map +1 -1
  255. package/components/Group/Group.d.ts +1 -0
  256. package/components/Hint/Hint/Hint.js +18 -12
  257. package/components/Hint/Hint/Hint.js.map +1 -1
  258. package/components/Hint/Hint.d.ts +3 -2
  259. package/components/Input/Input/Input.js +21 -14
  260. package/components/Input/Input/Input.js.map +1 -1
  261. package/components/Input/Input.d.ts +4 -1
  262. package/components/Kebab/Kebab/Kebab.js +12 -7
  263. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  264. package/components/Kebab/Kebab.d.ts +1 -0
  265. package/components/Link/Link/Link.js +15 -11
  266. package/components/Link/Link/Link.js.map +1 -1
  267. package/components/Link/Link.d.ts +1 -0
  268. package/components/Loader/Loader/Loader.js +16 -11
  269. package/components/Loader/Loader/Loader.js.map +1 -1
  270. package/components/Loader/Loader.d.ts +1 -0
  271. package/components/MenuItem/MenuItem/MenuItem.js +21 -14
  272. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  273. package/components/MenuItem/MenuItem.d.ts +1 -0
  274. package/components/Modal/Modal/Modal.js +1 -1
  275. package/components/Modal/Modal/Modal.js.map +1 -1
  276. package/components/Modal/ModalBody/ModalBody.js +16 -10
  277. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  278. package/components/Modal/ModalBody.d.ts +1 -0
  279. package/components/Paging/Paging/Paging.js +17 -14
  280. package/components/Paging/Paging/Paging.js.map +1 -1
  281. package/components/Paging/Paging.d.ts +2 -2
  282. package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
  283. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  284. package/components/PasswordInput/PasswordInput.d.ts +3 -2
  285. package/components/Radio/Radio/Radio.js +17 -19
  286. package/components/Radio/Radio/Radio.js.map +1 -1
  287. package/components/Radio/Radio.d.ts +5 -10
  288. package/components/RadioGroup/RadioGroup/RadioGroup.js +35 -38
  289. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  290. package/components/RadioGroup/RadioGroup.d.ts +2 -16
  291. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
  292. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
  293. package/components/RadioGroup/RadioGroupContext/package.json +6 -0
  294. package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  295. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +13 -8
  296. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  297. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  298. package/components/Select/Select/Select.js +8 -5
  299. package/components/Select/Select/Select.js.map +1 -1
  300. package/components/Select/Select.d.ts +1 -0
  301. package/components/SidePage/SidePage/SidePage.js +6 -3
  302. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  303. package/components/SidePage/SidePage.d.ts +1 -0
  304. package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
  305. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  306. package/components/SidePage/SidePageBody.d.ts +1 -0
  307. package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
  308. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  309. package/components/SidePage/SidePageContainer.d.ts +1 -0
  310. package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
  311. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  312. package/components/SidePage/SidePageFooter.d.ts +1 -2
  313. package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
  314. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  315. package/components/SidePage/SidePageHeader.d.ts +1 -0
  316. package/components/Spinner/Spinner/Spinner.js +8 -3
  317. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  318. package/components/Spinner/Spinner.d.ts +1 -0
  319. package/components/Sticky/Sticky/Sticky.js +13 -8
  320. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  321. package/components/Sticky/Sticky.d.ts +1 -0
  322. package/components/Switcher/Switcher/Switcher.js +11 -6
  323. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  324. package/components/Switcher/Switcher.d.ts +1 -0
  325. package/components/Tabs/Indicator/Indicator.js +16 -14
  326. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  327. package/components/Tabs/Indicator.d.ts +1 -0
  328. package/components/Tabs/Tab/Tab.js +31 -34
  329. package/components/Tabs/Tab/Tab.js.map +1 -1
  330. package/components/Tabs/Tab.d.ts +2 -1
  331. package/components/Tabs/Tabs/Tabs.js +20 -20
  332. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  333. package/components/Tabs/Tabs.d.ts +1 -0
  334. package/components/Textarea/Textarea/Textarea.js +21 -17
  335. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  336. package/components/Textarea/Textarea.d.ts +1 -0
  337. package/components/Toast/Toast/Toast.js +29 -14
  338. package/components/Toast/Toast/Toast.js.map +1 -1
  339. package/components/Toast/Toast.d.ts +3 -0
  340. package/components/Toast/ToastView/ToastView.js +10 -5
  341. package/components/Toast/ToastView/ToastView.js.map +1 -1
  342. package/components/Toast/ToastView.d.ts +1 -0
  343. package/components/Toggle/Toggle/Toggle.js +16 -11
  344. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  345. package/components/Toggle/Toggle.d.ts +1 -0
  346. package/components/Token/Token/Token.js +11 -4
  347. package/components/Token/Token/Token.js.map +1 -1
  348. package/components/Token/Token.d.ts +1 -0
  349. package/components/TokenInput/TokenInput/TokenInput.js +12 -6
  350. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  351. package/components/TokenInput/TokenInput.d.ts +1 -0
  352. package/components/Tooltip/Tooltip/Tooltip.js +24 -15
  353. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  354. package/components/Tooltip/Tooltip.d.ts +3 -1
  355. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
  356. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  357. package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  358. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
  359. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  360. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  361. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
  362. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  363. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
  364. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  365. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  366. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
  367. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  368. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  369. package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
  370. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  371. package/internal/DateSelect/DateSelect.d.ts +2 -2
  372. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +11 -15
  373. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  374. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  375. package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
  376. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  377. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  378. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
  379. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  380. package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
  381. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  382. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  383. package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
  384. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  385. package/internal/InternalMenu/InternalMenu.d.ts +2 -3
  386. package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
  387. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  388. package/internal/MaskedInput/MaskedInput.d.ts +2 -2
  389. package/internal/Menu/Menu/Menu.js +11 -8
  390. package/internal/Menu/Menu/Menu.js.map +1 -1
  391. package/internal/Menu/Menu.d.ts +1 -0
  392. package/internal/Popup/Popup/Popup.js +79 -68
  393. package/internal/Popup/Popup/Popup.js.map +1 -1
  394. package/internal/Popup/Popup.d.ts +4 -4
  395. package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -7
  396. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  397. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  398. package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
  399. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  400. package/internal/RenderContainer/RenderContainer.d.ts +1 -1
  401. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  402. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  403. package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
  404. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  405. package/internal/RenderLayer/RenderLayer.d.ts +3 -1
  406. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
  407. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  408. package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  409. package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
  410. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  411. package/internal/ZIndex/ZIndex.d.ts +2 -0
  412. package/internal/icons/16px/index/index.js +83 -51
  413. package/internal/icons/16px/index/index.js.map +1 -1
  414. package/internal/icons/16px/index.d.ts +17 -16
  415. package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
  416. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
  417. package/lib/callChildRef/callChildRef/package.json +6 -0
  418. package/lib/callChildRef/callChildRef.d.ts +3 -0
  419. package/lib/rootNode/getRootNode/getRootNode.js +25 -0
  420. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
  421. package/lib/rootNode/getRootNode/package.json +6 -0
  422. package/lib/rootNode/getRootNode.d.ts +3 -0
  423. package/lib/rootNode/index/index.js +2 -0
  424. package/lib/rootNode/index/index.js.map +1 -0
  425. package/lib/rootNode/index/package.json +6 -0
  426. package/lib/rootNode/index.d.ts +2 -0
  427. package/lib/rootNode/package.json +6 -0
  428. package/lib/rootNode/rootNodeDecorator/package.json +6 -0
  429. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
  430. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
  431. package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  432. package/lib/theming/Emotion/Emotion.js +1 -0
  433. package/lib/theming/Emotion/Emotion.js.map +1 -1
  434. package/lib/utils/utils.js +11 -1
  435. package/lib/utils/utils.js.map +1 -1
  436. package/lib/utils.d.ts +3 -0
  437. package/package.json +8 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["DropdownContainer.tsx"],"names":["DropdownContainer","state","position","minWidth","isDocumentElementRoot","getProps","defaultProps","dom","layoutSub","ref","e","isElement","node","Element","target","props","getParent","targetRect","getBoundingClientRect","document","body","docEl","documentElement","Error","scrollX","window","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","scrollHeight","setState","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","componentDidMount","LayoutEvents","addListener","UNSAFE_componentWillMount","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot","componentWillUnmount","remove","render","style","undefined","content","React","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\n\ntype DOMNode = Element | Text | null;\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps {\n align?: 'left' | 'right';\n getParent: () => DOMNode;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\nexport class DropdownContainer extends React.Component<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n\n public static defaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n public state: DropdownContainerState = {\n position: null,\n minWidth: 0,\n isDocumentElementRoot: true,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: DOMNode = null;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n }\n\n public UNSAFE_componentWillMount() {\n const { body, documentElement: docEl } = document;\n const htmlPosition = getComputedStyle(docEl).position;\n const bodyPosition = getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n\n this.setState({ isDocumentElementRoot: hasLimitedHeightRoot || hasStaticRoot });\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n };\n }\n\n const content = (\n <ZIndex priority={'DropdownContainer'} ref={this.ref} style={style}>\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ref = (e: ZIndex | null) => {\n this.dom = e && findDOMNode(e);\n };\n\n private isElement = (node: DOMNode): node is Element => {\n return node instanceof Element;\n };\n\n private position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (this.isElement(target) && dom) {\n const targetRect = target.getBoundingClientRect();\n const { body, documentElement: docEl } = document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = window.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = window.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.props.align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const { offsetY = 0 } = this.props;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n\n top = null;\n bottom = clientHeight + offsetY - scrollY - targetRect.top;\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.props.disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!this.isElement(this.dom)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n if (!child) {\n return 0;\n }\n return child.getBoundingClientRect().height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n if (!this.isElement(target)) {\n return 0;\n }\n return target.getBoundingClientRect().width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const { offsetX = 0, offsetY = 0 } = this.props;\n const { top, bottom, left, right } = position;\n if (this.isElement(target)) {\n const targetHeight = target.getBoundingClientRect().height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n"]}
1
+ {"version":3,"sources":["DropdownContainer.tsx"],"names":["DropdownContainer","state","position","minWidth","isDocumentElementRoot","getProps","defaultProps","dom","layoutSub","ZIndexRef","element","isElement","node","Element","target","props","getParent","targetRect","getBoundingClientRect","document","body","docEl","documentElement","Error","scrollX","window","pageXOffset","scrollLeft","scrollY","pageYOffset","scrollTop","left","right","align","docWidth","offsetWidth","offsetX","offsetY","bottom","top","distanceToBottom","clientHeight","dropdownHeight","getHeight","scrollHeight","setState","getMinWidth","disablePortal","convertToRelativePosition","child","children","item","height","width","targetHeight","componentDidMount","LayoutEvents","addListener","htmlPosition","getComputedStyle","bodyPosition","hasLimitedHeightRoot","hasStaticRoot","componentWillUnmount","remove","render","style","undefined","content","React","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../RenderContainer';\nimport { ZIndex } from '../ZIndex';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\n\nexport interface DropdownContainerPosition {\n top: Nullable<number>;\n bottom: Nullable<number>;\n left: Nullable<number>;\n right: Nullable<number>;\n}\n\nexport interface DropdownContainerProps {\n align?: 'left' | 'right';\n getParent: () => Nullable<HTMLElement>;\n children?: React.ReactNode;\n disablePortal?: boolean;\n offsetY?: number;\n offsetX?: number;\n}\n\nexport interface DropdownContainerState {\n position: Nullable<DropdownContainerPosition>;\n minWidth: number;\n isDocumentElementRoot?: boolean;\n}\n\nexport class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {\n public static __KONTUR_REACT_UI__ = 'DropdownContainer';\n\n public static defaultProps = {\n align: 'left',\n disablePortal: false,\n offsetX: 0,\n offsetY: -1,\n };\n\n public state: DropdownContainerState = {\n position: null,\n minWidth: 0,\n isDocumentElementRoot: true,\n };\n\n private getProps = createPropsGetter(DropdownContainer.defaultProps);\n\n private dom: Nullable<HTMLDivElement>;\n private layoutSub: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n\n public componentDidMount() {\n this.position();\n this.layoutSub = LayoutEvents.addListener(this.position);\n\n const { body, documentElement: docEl } = document;\n const htmlPosition = getComputedStyle(docEl).position;\n const bodyPosition = getComputedStyle(body).position;\n\n const hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;\n const hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';\n\n this.setState({ isDocumentElementRoot: hasLimitedHeightRoot || hasStaticRoot });\n }\n\n public componentWillUnmount() {\n if (this.layoutSub) {\n this.layoutSub.remove();\n }\n }\n\n public render() {\n let style: React.CSSProperties = {\n position: 'absolute',\n top: '0',\n };\n if (this.state.position) {\n const { top, bottom, left, right } = this.state.position;\n style = {\n ...style,\n top: top !== null ? top : undefined,\n bottom: bottom !== null ? bottom : undefined,\n left: left !== null ? left : undefined,\n right: right !== null ? right : undefined,\n minWidth: this.state.minWidth,\n };\n }\n\n const content = (\n <ZIndex priority={'DropdownContainer'} wrapperRef={this.ZIndexRef} style={style}>\n {this.props.children}\n </ZIndex>\n );\n\n return this.props.disablePortal ? content : <RenderContainer>{content}</RenderContainer>;\n }\n\n private ZIndexRef = (element: Nullable<HTMLDivElement>) => {\n this.dom = element;\n };\n\n private isElement = (node: Nullable<Element>): node is Element => {\n return node instanceof Element;\n };\n\n public position = () => {\n const target = this.props.getParent();\n const dom = this.dom;\n\n if (target && this.isElement(target) && dom) {\n const targetRect = target.getBoundingClientRect();\n const { body, documentElement: docEl } = document;\n\n if (!docEl) {\n throw Error('There is no \"documentElement\" in \"document\"');\n }\n\n const scrollX = window.pageXOffset || docEl.scrollLeft || 0;\n const scrollY = window.pageYOffset || docEl.scrollTop || 0;\n\n let left = null;\n let right = null;\n\n if (this.props.align === 'right') {\n const docWidth = docEl.offsetWidth || 0;\n right = docWidth - (targetRect.right + scrollX) + this.getProps().offsetX;\n } else {\n left = targetRect.left + scrollX + this.getProps().offsetX;\n }\n\n const { offsetY = 0 } = this.props;\n let bottom = null;\n let top: number | null = targetRect.bottom + scrollY + offsetY;\n\n const distanceToBottom = docEl.clientHeight - targetRect.bottom;\n const dropdownHeight = this.getHeight();\n\n if (distanceToBottom < dropdownHeight && targetRect.top > dropdownHeight) {\n const clientHeight = this.state.isDocumentElementRoot ? docEl.clientHeight : body.scrollHeight;\n\n top = null;\n bottom = clientHeight + offsetY - scrollY - targetRect.top;\n }\n\n const position = {\n top,\n left,\n right,\n bottom,\n };\n\n this.setState({\n minWidth: this.getMinWidth(),\n position: this.props.disablePortal ? this.convertToRelativePosition(position) : position,\n });\n }\n };\n\n private getHeight = () => {\n if (!this.isElement(this.dom)) {\n return 0;\n }\n const child = this.dom.children.item(0);\n if (!child) {\n return 0;\n }\n return child.getBoundingClientRect().height;\n };\n\n private getMinWidth = () => {\n const target = this.props.getParent();\n if (!target || !this.isElement(target)) {\n return 0;\n }\n return target.getBoundingClientRect().width;\n };\n\n private convertToRelativePosition = (position: DropdownContainerPosition): DropdownContainerPosition => {\n const target = this.props.getParent();\n const { offsetX = 0, offsetY = 0 } = this.props;\n const { top, bottom, left, right } = position;\n if (target && this.isElement(target)) {\n const targetHeight = target.getBoundingClientRect().height;\n return {\n top: top !== null ? targetHeight + offsetY : null,\n bottom: bottom !== null ? targetHeight + offsetY : null,\n left: left !== null ? offsetX : null,\n right: right !== null ? offsetX : null,\n };\n }\n return {\n top: offsetY,\n bottom: null,\n left: offsetX,\n right: null,\n };\n };\n}\n"]}
@@ -6,6 +6,7 @@ export interface FocusTrapProps extends CommonProps {
6
6
  }
7
7
  export declare class FocusTrap extends React.PureComponent<FocusTrapProps> {
8
8
  static __KONTUR_REACT_UI__: string;
9
+ private setRootNode;
9
10
  private focusOutsideListenerToken;
10
11
  componentWillUnmount(): void;
11
12
  render(): JSX.Element;
@@ -1,16 +1,18 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.FocusTrap = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = require("react-dom");
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.FocusTrap = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
3
2
 
4
3
  var _CommonWrapper = require("../../internal/CommonWrapper");
5
- var _listenFocusOutside = require("../../lib/listenFocusOutside");var
4
+ var _listenFocusOutside = require("../../lib/listenFocusOutside");
5
+ var _rootNode = require("../../lib/rootNode");var _class, _class2, _temp;var
6
6
 
7
7
 
8
8
 
9
9
 
10
10
 
11
11
 
12
- FocusTrap = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(FocusTrap, _React$PureComponent);function FocusTrap() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
13
12
 
13
+ FocusTrap = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(FocusTrap, _React$PureComponent);function FocusTrap() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
14
+
15
+ setRootNode = void 0;_this.
14
16
 
15
17
  focusOutsideListenerToken =
16
18
 
@@ -48,8 +50,9 @@ FocusTrap = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.de
48
50
  };_this.
49
51
 
50
52
  attachListeners = function () {
51
- if (!_this.focusOutsideListenerToken) {
52
- _this.focusOutsideListenerToken = (0, _listenFocusOutside.listen)([(0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this))], _this.onClickOutside);
53
+ var rootNode = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this));
54
+ if (!_this.focusOutsideListenerToken && rootNode) {
55
+ _this.focusOutsideListenerToken = (0, _listenFocusOutside.listen)([rootNode], _this.onClickOutside);
53
56
 
54
57
  document.addEventListener(
55
58
  'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',
@@ -72,11 +75,11 @@ FocusTrap = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.de
72
75
 
73
76
  handleNativeDocClick = function (event) {
74
77
  var target = event.target || event.srcElement;
75
- var node = (0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this));
78
+ var node = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this));
76
79
 
77
- if (target instanceof Element && (0, _listenFocusOutside.containsTargetOrRenderContainer)(target)(node)) {
80
+ if (node && target instanceof Element && (0, _listenFocusOutside.containsTargetOrRenderContainer)(target)(node)) {
78
81
  return;
79
82
  }
80
83
 
81
84
  _this.onClickOutside(event);
82
- };return _this;}var _proto = FocusTrap.prototype;_proto.componentWillUnmount = function componentWillUnmount() {if (this.focusOutsideListenerToken) {this.detachListeners();}};_proto.render = function render() {var _this2 = this;var _this$props = this.props,children = _this$props.children,onBlur = _this$props.onBlur;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.cloneElement(_react.default.Children.only(children), { onFocus: function onFocus() {if (onBlur) {_this2.attachListeners();}if (children.props && children.props.onFocus) {var _children$props;(_children$props = children.props).onFocus.apply(_children$props, arguments);}} }));};_proto.detachListeners = function detachListeners() {if (this.focusOutsideListenerToken) {this.focusOutsideListenerToken.remove();this.focusOutsideListenerToken = null;document.removeEventListener('ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown', this.handleNativeDocClick);}};return FocusTrap;}(_react.default.PureComponent);exports.FocusTrap = FocusTrap;FocusTrap.__KONTUR_REACT_UI__ = 'FocusTrap';
85
+ };return _this;}var _proto = FocusTrap.prototype;_proto.componentWillUnmount = function componentWillUnmount() {if (this.focusOutsideListenerToken) {this.detachListeners();}};_proto.render = function render() {var _this2 = this;var _this$props = this.props,children = _this$props.children,onBlur = _this$props.onBlur;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.cloneElement(_react.default.Children.only(children), { onFocus: function onFocus() {if (onBlur) {_this2.attachListeners();}if (children.props && children.props.onFocus) {var _children$props;(_children$props = children.props).onFocus.apply(_children$props, arguments);}} }));};_proto.detachListeners = function detachListeners() {if (this.focusOutsideListenerToken) {this.focusOutsideListenerToken.remove();this.focusOutsideListenerToken = null;document.removeEventListener('ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown', this.handleNativeDocClick);}};return FocusTrap;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'FocusTrap', _temp)) || _class;exports.FocusTrap = FocusTrap;
@@ -1 +1 @@
1
- {"version":3,"sources":["FocusTrap.tsx"],"names":["FocusTrap","focusOutsideListenerToken","onClickOutside","e","props","onBlur","detachListeners","attachListeners","document","addEventListener","documentElement","handleNativeDocClick","event","target","srcElement","node","Element","componentWillUnmount","render","children","React","cloneElement","Children","only","onFocus","remove","removeEventListener","PureComponent","__KONTUR_REACT_UI__"],"mappings":"mWAAA;AACA;;AAEA;AACA,kE;;;;;;;AAOaA,S;;;AAGHC,IAAAA,yB;;AAEG,Q;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BHC,IAAAA,c,GAAiB,UAACC,CAAD,EAAc;AACrC,UAAI,MAAKC,KAAL,CAAWC,MAAf,EAAuB;AACrB,cAAKD,KAAL,CAAWC,MAAX,CAAkBF,CAAlB;AACD;AACD,YAAKG,eAAL;AACD,K;;AAEOC,IAAAA,e,GAAkB,YAAM;AAC9B,UAAI,CAAC,MAAKN,yBAAV,EAAqC;AACnC,cAAKA,yBAAL,GAAiC,gCAAmB,CAAC,uEAAD,CAAnB,EAAuD,MAAKC,cAA5D,CAAjC;;AAEAM,QAAAA,QAAQ,CAACC,gBAAT;AACE,0BAAkBD,QAAQ,CAACE,eAA3B,GAA6C,YAA7C,GAA4D,WAD9D;AAEE,cAAKC,oBAFP;;AAID;AACF,K;;;;;;;;;;;;;;AAcOA,IAAAA,oB,GAAuB,UAACC,KAAD,EAAkB;AAC/C,UAAMC,MAAM,GAAGD,KAAK,CAACC,MAAN,IAAgBD,KAAK,CAACE,UAArC;AACA,UAAMC,IAAI,GAAG,uEAAb;;AAEA,UAAIF,MAAM,YAAYG,OAAlB,IAA6B,yDAAgCH,MAAhC,EAAwCE,IAAxC,CAAjC,EAAgF;AAC9E;AACD;;AAED,YAAKb,cAAL,CAAoBU,KAApB;AACD,K,uDA/DMK,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKhB,yBAAT,EAAoC,CAClC,KAAKK,eAAL,GACD,CACF,C,QAEMY,M,GAAP,kBAAgB,qCACe,KAAKd,KADpB,CACNe,QADM,eACNA,QADM,CACId,MADJ,eACIA,MADJ,CAEd,oBACE,6BAAC,4BAAD,EAAmB,KAAKD,KAAxB,eACGgB,eAAMC,YAAN,CAAmBD,eAAME,QAAN,CAAeC,IAAf,CAAoBJ,QAApB,CAAnB,EAAkD,EACjDK,OAAO,EAAE,mBAAoB,CAC3B,IAAInB,MAAJ,EAAY,CACV,MAAI,CAACE,eAAL,GACD,CACD,IAAIY,QAAQ,CAACf,KAAT,IAAkBe,QAAQ,CAACf,KAAT,CAAeoB,OAArC,EAA8C,qBAC5C,mBAAAL,QAAQ,CAACf,KAAT,EAAeoB,OAAf,mCACD,CACF,CARgD,EAAlD,CADH,CADF,CAcD,C,QAoBOlB,e,GAAR,2BAA0B,CACxB,IAAI,KAAKL,yBAAT,EAAoC,CAClC,KAAKA,yBAAL,CAA+BwB,MAA/B,GACA,KAAKxB,yBAAL,GAAiC,IAAjC,CAEAO,QAAQ,CAACkB,mBAAT,CACE,kBAAkBlB,QAAQ,CAACE,eAA3B,GAA6C,YAA7C,GAA4D,WAD9D,EAEE,KAAKC,oBAFP,EAID,CACF,C,oBA3D4BS,eAAMO,a,gCAAxB3B,S,CACG4B,mB,GAAsB,W","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\n\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\n\nexport interface FocusTrapProps extends CommonProps {\n children: React.ReactElement<any>;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class FocusTrap extends React.PureComponent<FocusTrapProps> {\n public static __KONTUR_REACT_UI__ = 'FocusTrap';\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n\n public componentWillUnmount() {\n if (this.focusOutsideListenerToken) {\n this.detachListeners();\n }\n }\n\n public render() {\n const { children, onBlur } = this.props;\n return (\n <CommonWrapper {...this.props}>\n {React.cloneElement(React.Children.only(children), {\n onFocus: (...args: any[]) => {\n if (onBlur) {\n this.attachListeners();\n }\n if (children.props && children.props.onFocus) {\n children.props.onFocus(...args);\n }\n },\n })}\n </CommonWrapper>\n );\n }\n\n private onClickOutside = (e: Event) => {\n if (this.props.onBlur) {\n this.props.onBlur(e as FocusEvent);\n }\n this.detachListeners();\n };\n\n private attachListeners = () => {\n if (!this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken = listenFocusOutside([findDOMNode(this) as HTMLElement], this.onClickOutside);\n\n document.addEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n };\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n\n document.removeEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n }\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = findDOMNode(this) as HTMLElement;\n\n if (target instanceof Element && containsTargetOrRenderContainer(target)(node)) {\n return;\n }\n\n this.onClickOutside(event);\n };\n}\n"]}
1
+ {"version":3,"sources":["FocusTrap.tsx"],"names":["FocusTrap","rootNode","setRootNode","focusOutsideListenerToken","onClickOutside","e","props","onBlur","detachListeners","attachListeners","document","addEventListener","documentElement","handleNativeDocClick","event","target","srcElement","node","Element","componentWillUnmount","render","children","React","cloneElement","Children","only","onFocus","remove","removeEventListener","PureComponent","__KONTUR_REACT_UI__"],"mappings":"qbAAA;;AAEA;AACA;AACA,8C;;;;;;;;AAQaA,S,OADZC,kB;;AAGSC,IAAAA,W;;AAEAC,IAAAA,yB;;AAEG,Q;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BHC,IAAAA,c,GAAiB,UAACC,CAAD,EAAc;AACrC,UAAI,MAAKC,KAAL,CAAWC,MAAf,EAAuB;AACrB,cAAKD,KAAL,CAAWC,MAAX,CAAkBF,CAAlB;AACD;AACD,YAAKG,eAAL;AACD,K;;AAEOC,IAAAA,e,GAAkB,YAAM;AAC9B,UAAMR,QAAQ,GAAG,uEAAjB;AACA,UAAI,CAAC,MAAKE,yBAAN,IAAmCF,QAAvC,EAAiD;AAC/C,cAAKE,yBAAL,GAAiC,gCAAmB,CAACF,QAAD,CAAnB,EAA+B,MAAKG,cAApC,CAAjC;;AAEAM,QAAAA,QAAQ,CAACC,gBAAT;AACE,0BAAkBD,QAAQ,CAACE,eAA3B,GAA6C,YAA7C,GAA4D,WAD9D;AAEE,cAAKC,oBAFP;;AAID;AACF,K;;;;;;;;;;;;;;AAcOA,IAAAA,oB,GAAuB,UAACC,KAAD,EAAkB;AAC/C,UAAMC,MAAM,GAAGD,KAAK,CAACC,MAAN,IAAgBD,KAAK,CAACE,UAArC;AACA,UAAMC,IAAI,GAAG,uEAAb;;AAEA,UAAIA,IAAI,IAAIF,MAAM,YAAYG,OAA1B,IAAqC,yDAAgCH,MAAhC,EAAwCE,IAAxC,CAAzC,EAAwF;AACtF;AACD;;AAED,YAAKb,cAAL,CAAoBU,KAApB;AACD,K,uDAhEMK,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKhB,yBAAT,EAAoC,CAClC,KAAKK,eAAL,GACD,CACF,C,QAEMY,M,GAAP,kBAAgB,qCACe,KAAKd,KADpB,CACNe,QADM,eACNA,QADM,CACId,MADJ,eACIA,MADJ,CAEd,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKL,WAAjC,IAAkD,KAAKI,KAAvD,gBACGgB,eAAMC,YAAN,CAAmBD,eAAME,QAAN,CAAeC,IAAf,CAAoBJ,QAApB,CAAnB,EAAkD,EACjDK,OAAO,EAAE,mBAAoB,CAC3B,IAAInB,MAAJ,EAAY,CACV,MAAI,CAACE,eAAL,GACD,CACD,IAAIY,QAAQ,CAACf,KAAT,IAAkBe,QAAQ,CAACf,KAAT,CAAeoB,OAArC,EAA8C,qBAC5C,mBAAAL,QAAQ,CAACf,KAAT,EAAeoB,OAAf,mCACD,CACF,CARgD,EAAlD,CADH,CADF,CAcD,C,QAqBOlB,e,GAAR,2BAA0B,CACxB,IAAI,KAAKL,yBAAT,EAAoC,CAClC,KAAKA,yBAAL,CAA+BwB,MAA/B,GACA,KAAKxB,yBAAL,GAAiC,IAAjC,CAEAO,QAAQ,CAACkB,mBAAT,CACE,kBAAkBlB,QAAQ,CAACE,eAA3B,GAA6C,YAA7C,GAA4D,WAD9D,EAEE,KAAKC,oBAFP,EAID,CACF,C,oBA7D4BS,eAAMO,a,WACrBC,mB,GAAsB,W","sourcesContent":["import React from 'react';\n\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { listen as listenFocusOutside, containsTargetOrRenderContainer } from '../../lib/listenFocusOutside';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\n\nexport interface FocusTrapProps extends CommonProps {\n children: React.ReactElement<any>;\n onBlur?: (event: FocusEvent) => void;\n}\n\n@rootNode\nexport class FocusTrap extends React.PureComponent<FocusTrapProps> {\n public static __KONTUR_REACT_UI__ = 'FocusTrap';\n private setRootNode!: TSetRootNode;\n\n private focusOutsideListenerToken: {\n remove: () => void;\n } | null = null;\n\n public componentWillUnmount() {\n if (this.focusOutsideListenerToken) {\n this.detachListeners();\n }\n }\n\n public render() {\n const { children, onBlur } = this.props;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.cloneElement(React.Children.only(children), {\n onFocus: (...args: any[]) => {\n if (onBlur) {\n this.attachListeners();\n }\n if (children.props && children.props.onFocus) {\n children.props.onFocus(...args);\n }\n },\n })}\n </CommonWrapper>\n );\n }\n\n private onClickOutside = (e: Event) => {\n if (this.props.onBlur) {\n this.props.onBlur(e as FocusEvent);\n }\n this.detachListeners();\n };\n\n private attachListeners = () => {\n const rootNode = getRootNode(this);\n if (!this.focusOutsideListenerToken && rootNode) {\n this.focusOutsideListenerToken = listenFocusOutside([rootNode], this.onClickOutside);\n\n document.addEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n };\n\n private detachListeners() {\n if (this.focusOutsideListenerToken) {\n this.focusOutsideListenerToken.remove();\n this.focusOutsideListenerToken = null;\n\n document.removeEventListener(\n 'ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown',\n this.handleNativeDocClick,\n );\n }\n }\n\n private handleNativeDocClick = (event: Event) => {\n const target = event.target || event.srcElement;\n const node = getRootNode(this);\n\n if (node && target instanceof Element && containsTargetOrRenderContainer(target)(node)) {\n return;\n }\n\n this.onClickOutside(event);\n };\n}\n"]}
@@ -1,5 +1,7 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.IgnoreLayerClick = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = require("react-dom");var
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.IgnoreLayerClick = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
+
3
+ var _rootNode = require("../../lib/rootNode");
4
+ var _CommonWrapper = require("../CommonWrapper");var _class, _class2, _temp;var
3
5
 
4
6
 
5
7
 
@@ -18,10 +20,16 @@ IgnoreLayerClick = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2
18
20
 
19
21
 
20
22
  // NOTE Используется только в команде Контур.Бухгалтерия
21
- var IgnoreLayerClickWrapper = /*#__PURE__*/function (_React$Component2) {(0, _inheritsLoose2.default)(IgnoreLayerClickWrapper, _React$Component2);function IgnoreLayerClickWrapper() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;_this.
23
+ var
24
+ IgnoreLayerClickWrapper = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component2) {(0, _inheritsLoose2.default)(IgnoreLayerClickWrapper, _React$Component2);function IgnoreLayerClickWrapper() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;_this.
22
25
 
23
26
 
24
27
  element = null;_this.
28
+ setRootNode = void 0;_this.
29
+
30
+
31
+
32
+
25
33
 
26
34
 
27
35
 
@@ -44,4 +52,4 @@ var IgnoreLayerClickWrapper = /*#__PURE__*/function (_React$Component2) {(0, _in
44
52
 
45
53
  handleMouseDown = function (event) {
46
54
  event.stopPropagation();
47
- };return _this;}var _proto2 = IgnoreLayerClickWrapper.prototype;_proto2.componentDidMount = function componentDidMount() {var element = (0, _reactDom.findDOMNode)(this);if (element && element instanceof Element) {element.addEventListener('mousedown', this.handleMouseDown);this.element = element;}};_proto2.componentWillUnmount = function componentWillUnmount() {if (this.element) {this.element.removeEventListener('mousedown', this.handleMouseDown);this.element = null;}};_proto2.render = function render() {return _react.default.Children.only(this.props.children);};return IgnoreLayerClickWrapper;}(_react.default.Component);IgnoreLayerClickWrapper.__KONTUR_REACT_UI__ = 'IgnoreLayerClick';
55
+ };return _this;}var _proto2 = IgnoreLayerClickWrapper.prototype;_proto2.componentDidMount = function componentDidMount() {var element = (0, _rootNode.getRootNode)(this);if (element && element instanceof Element) {element.addEventListener('mousedown', this.handleMouseDown);this.element = element;}};_proto2.componentWillUnmount = function componentWillUnmount() {if (this.element) {this.element.removeEventListener('mousedown', this.handleMouseDown);this.element = null;}};_proto2.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), _react.default.Children.only(this.props.children));};return IgnoreLayerClickWrapper;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'IgnoreLayerClick', _temp)) || _class;
@@ -1 +1 @@
1
- {"version":3,"sources":["IgnoreLayerClick.tsx"],"names":["IgnoreLayerClick","render","child","React","Children","only","props","children","active","Component","IgnoreLayerClickWrapper","element","handleMouseDown","event","stopPropagation","componentDidMount","Element","addEventListener","componentWillUnmount","removeEventListener","__KONTUR_REACT_UI__"],"mappings":"4PAAA;AACA,qC;;;;;;;AAOaA,gB;AACJC,EAAAA,M,GAAP,kBAAgB;AACd,QAAMC,KAAK,GAAGC,eAAMC,QAAN,CAAeC,IAAf,CAAoB,KAAKC,KAAL,CAAWC,QAA/B,CAAd;AACA,WAAO,KAAKD,KAAL,CAAWE,MAAX,gBAAoB,6BAAC,uBAAD,QAA0BN,KAA1B,CAApB,GAAiFA,KAAxF;AACD,G,2BAJmCC,eAAMM,S;;;;;;;AAW5C;IACMC,uB;;;AAGIC,IAAAA,O,GAA0B,I;;;;;;;;;;;;;;;;;;;;;AAqB1BC,IAAAA,e,GAAkB,UAACC,KAAD,EAAkB;AAC1CA,MAAAA,KAAK,CAACC,eAAN;AACD,K,uEArBMC,iB,GAAP,6BAA2B,CACzB,IAAMJ,OAAO,GAAG,2BAAY,IAAZ,CAAhB,CACA,IAAIA,OAAO,IAAIA,OAAO,YAAYK,OAAlC,EAA2C,CACzCL,OAAO,CAACM,gBAAR,CAAyB,WAAzB,EAAsC,KAAKL,eAA3C,EACA,KAAKD,OAAL,GAAeA,OAAf,CACD,CACF,C,SAEMO,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKP,OAAT,EAAkB,CAChB,KAAKA,OAAL,CAAaQ,mBAAb,CAAiC,WAAjC,EAA8C,KAAKP,eAAnD,EACA,KAAKD,OAAL,GAAe,IAAf,CACD,CACF,C,SAEMV,M,GAAP,kBAAgB,CACd,OAAOE,eAAMC,QAAN,CAAeC,IAAf,CAAoB,KAAKC,KAAL,CAAWC,QAA/B,CAAP,CACD,C,kCAtBmCJ,eAAMM,S,EAAtCC,uB,CACUU,mB,GAAsB,kB","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\n\nexport interface IgnoreLayerClickProps {\n children: React.ReactNode;\n active: boolean;\n}\n\nexport class IgnoreLayerClick extends React.Component<IgnoreLayerClickProps> {\n public render() {\n const child = React.Children.only(this.props.children);\n return this.props.active ? <IgnoreLayerClickWrapper>{child}</IgnoreLayerClickWrapper> : child;\n }\n}\n\ninterface WrapperProps {\n children: React.ReactNode;\n}\n\n// NOTE Используется только в команде Контур.Бухгалтерия\nclass IgnoreLayerClickWrapper extends React.Component<WrapperProps> {\n public static __KONTUR_REACT_UI__ = 'IgnoreLayerClick';\n\n private element: Element | null = null;\n\n public componentDidMount() {\n const element = findDOMNode(this);\n if (element && element instanceof Element) {\n element.addEventListener('mousedown', this.handleMouseDown);\n this.element = element;\n }\n }\n\n public componentWillUnmount() {\n if (this.element) {\n this.element.removeEventListener('mousedown', this.handleMouseDown);\n this.element = null;\n }\n }\n\n public render() {\n return React.Children.only(this.props.children);\n }\n\n private handleMouseDown = (event: Event) => {\n event.stopPropagation();\n };\n}\n"]}
1
+ {"version":3,"sources":["IgnoreLayerClick.tsx"],"names":["IgnoreLayerClick","render","child","React","Children","only","props","children","active","Component","IgnoreLayerClickWrapper","rootNode","element","setRootNode","handleMouseDown","event","stopPropagation","componentDidMount","Element","addEventListener","componentWillUnmount","removeEventListener","__KONTUR_REACT_UI__"],"mappings":"8UAAA;;AAEA;AACA,iD;;;;;;;AAOaA,gB;AACJC,EAAAA,M,GAAP,kBAAgB;AACd,QAAMC,KAAK,GAAGC,eAAMC,QAAN,CAAeC,IAAf,CAAoB,KAAKC,KAAL,CAAWC,QAA/B,CAAd;AACA,WAAO,KAAKD,KAAL,CAAWE,MAAX,gBAAoB,6BAAC,uBAAD,QAA0BN,KAA1B,CAApB,GAAiFA,KAAxF;AACD,G,2BAJmCC,eAAMM,S;;;;;;;AAW5C;;AAEMC,uB,OADLC,kB;;;AAISC,IAAAA,O,GAA0B,I;AAC1BC,IAAAA,W;;;;;;;;;;;;;;;;;;;;;;;;;AAyBAC,IAAAA,e,GAAkB,UAACC,KAAD,EAAkB;AAC1CA,MAAAA,KAAK,CAACC,eAAN;AACD,K,uEAzBMC,iB,GAAP,6BAA2B,CACzB,IAAML,OAAO,GAAG,2BAAY,IAAZ,CAAhB,CACA,IAAIA,OAAO,IAAIA,OAAO,YAAYM,OAAlC,EAA2C,CACzCN,OAAO,CAACO,gBAAR,CAAyB,WAAzB,EAAsC,KAAKL,eAA3C,EACA,KAAKF,OAAL,GAAeA,OAAf,CACD,CACF,C,SAEMQ,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKR,OAAT,EAAkB,CAChB,KAAKA,OAAL,CAAaS,mBAAb,CAAiC,WAAjC,EAA8C,KAAKP,eAAnD,EACA,KAAKF,OAAL,GAAe,IAAf,CACD,CACF,C,SAEMX,M,GAAP,kBAAgB,CACd,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKY,WAAjC,IAAkD,KAAKP,KAAvD,GACGH,eAAMC,QAAN,CAAeC,IAAf,CAAoB,KAAKC,KAAL,CAAWC,QAA/B,CADH,CADF,CAKD,C,kCA3BmCJ,eAAMM,S,WAC5Ba,mB,GAAsB,kB","sourcesContent":["import React from 'react';\n\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { CommonWrapper } from '../CommonWrapper';\n\nexport interface IgnoreLayerClickProps {\n children: React.ReactNode;\n active: boolean;\n}\n\nexport class IgnoreLayerClick extends React.Component<IgnoreLayerClickProps> {\n public render() {\n const child = React.Children.only(this.props.children);\n return this.props.active ? <IgnoreLayerClickWrapper>{child}</IgnoreLayerClickWrapper> : child;\n }\n}\n\ninterface WrapperProps {\n children: React.ReactNode;\n}\n\n// NOTE Используется только в команде Контур.Бухгалтерия\n@rootNode\nclass IgnoreLayerClickWrapper extends React.Component<WrapperProps> {\n public static __KONTUR_REACT_UI__ = 'IgnoreLayerClick';\n\n private element: Element | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n const element = getRootNode(this);\n if (element && element instanceof Element) {\n element.addEventListener('mousedown', this.handleMouseDown);\n this.element = element;\n }\n }\n\n public componentWillUnmount() {\n if (this.element) {\n this.element.removeEventListener('mousedown', this.handleMouseDown);\n this.element = null;\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {React.Children.only(this.props.children)}\n </CommonWrapper>\n );\n }\n\n private handleMouseDown = (event: Event) => {\n event.stopPropagation();\n };\n}\n"]}
@@ -30,6 +30,7 @@ export declare class InputLikeText extends React.Component<InputLikeTextProps, I
30
30
  private dragging;
31
31
  private focusTimeout;
32
32
  private blinkTimeout;
33
+ private setRootNode;
33
34
  /**
34
35
  * @public
35
36
  */
@@ -13,9 +13,10 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
13
13
  var _CommonWrapper = require("../CommonWrapper");
14
14
  var _Emotion = require("../../lib/theming/Emotion");
15
15
  var _listenFocusOutside = require("../../lib/listenFocusOutside");
16
+ var _rootNode = require("../../lib/rootNode");
16
17
 
17
18
  var _InputLikeText = require("./InputLikeText.styles");
18
- var _HiddenInput = require("./HiddenInput");var
19
+ var _HiddenInput = require("./HiddenInput");var _class, _class2, _temp;var
19
20
 
20
21
 
21
22
 
@@ -29,7 +30,8 @@ var _HiddenInput = require("./HiddenInput");var
29
30
 
30
31
 
31
32
 
32
- InputLikeText = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(InputLikeText, _React$Component);function InputLikeText() {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.
33
+
34
+ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(InputLikeText, _React$Component);function InputLikeText() {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.
33
35
 
34
36
 
35
37
 
@@ -45,6 +47,7 @@ InputLikeText = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
45
47
  dragging = false;_this.
46
48
  focusTimeout = void 0;_this.
47
49
  blinkTimeout = void 0;_this.
50
+ setRootNode = void 0;_this.
48
51
 
49
52
 
50
53
 
@@ -122,6 +125,10 @@ InputLikeText = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
122
125
 
123
126
 
124
127
 
128
+
129
+
130
+
131
+
125
132
 
126
133
 
127
134
 
@@ -481,4 +488,4 @@ InputLikeText = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
481
488
  * @public
482
489
  */;_proto.blur = function blur() {if (this.node) {this.node.blur();}} /**
483
490
  * @public
484
- */;_proto.blink = function blink() {var _this3 = this;if (this.props.disabled) {return;}this.setState({ blinking: true }, function () {_this3.blinkTimeout = window.setTimeout(function () {return _this3.setState({ blinking: false });}, 150);});};_proto.getNode = function getNode() {return this.node;};_proto.componentDidMount = function componentDidMount() {if (this.node) {_MouseDrag.MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);}document.addEventListener('mousedown', this.handleDocumentMouseDown);document.addEventListener('keydown', this.handleDocumentKeyDown);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.blinkTimeout) {clearTimeout(this.blinkTimeout);}_MouseDrag.MouseDrag.stop(this.node);document.removeEventListener('mousedown', this.handleDocumentMouseDown);document.removeEventListener('keydown', this.handleDocumentKeyDown);};_proto.render = function render() {var _this4 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this4.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this4.props, _this4.renderMain);});};_proto.getIconClassname = function getIconClassname(right) {if (right === void 0) {right = false;}switch (this.props.size) {case 'large':return right ? _Input.styles.rightIconLarge(this.theme) : _Input.styles.leftIconLarge(this.theme);case 'medium':return right ? _Input.styles.rightIconMedium(this.theme) : _Input.styles.leftIconMedium(this.theme);case 'small':default:return right ? _Input.styles.rightIconSmall(this.theme) : _Input.styles.leftIconSmall(this.theme);}};return InputLikeText;}(_react.default.Component);exports.InputLikeText = InputLikeText;InputLikeText.__KONTUR_REACT_UI__ = 'InputLikeText';InputLikeText.defaultProps = { size: 'small' };
491
+ */;_proto.blink = function blink() {var _this3 = this;if (this.props.disabled) {return;}this.setState({ blinking: true }, function () {_this3.blinkTimeout = window.setTimeout(function () {return _this3.setState({ blinking: false });}, 150);});};_proto.getNode = function getNode() {return this.node;};_proto.componentDidMount = function componentDidMount() {if (this.node) {_MouseDrag.MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);}document.addEventListener('mousedown', this.handleDocumentMouseDown);document.addEventListener('keydown', this.handleDocumentKeyDown);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.blinkTimeout) {clearTimeout(this.blinkTimeout);}_MouseDrag.MouseDrag.stop(this.node);document.removeEventListener('mousedown', this.handleDocumentMouseDown);document.removeEventListener('keydown', this.handleDocumentKeyDown);};_proto.render = function render() {var _this4 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this4.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this4.setRootNode }, _this4.props), _this4.renderMain);});};_proto.getIconClassname = function getIconClassname(right) {if (right === void 0) {right = false;}switch (this.props.size) {case 'large':return right ? _Input.styles.rightIconLarge(this.theme) : _Input.styles.leftIconLarge(this.theme);case 'medium':return right ? _Input.styles.rightIconMedium(this.theme) : _Input.styles.leftIconMedium(this.theme);case 'small':default:return right ? _Input.styles.rightIconSmall(this.theme) : _Input.styles.leftIconSmall(this.theme);}};return InputLikeText;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'InputLikeText', _class2.defaultProps = { size: 'small' }, _temp)) || _class;exports.InputLikeText = InputLikeText;
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeText","state","blinking","focused","theme","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","focusTimeout","blinkTimeout","selectInnerNode","start","end","isIE11","document","body","setTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","rest","leftSide","renderLeftSide","rightSide","renderRightSide","className","styles","root","jsInputStyles","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","input","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","React","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\n\nimport { styles } from './InputLikeText.styles';\nimport { HiddenInput } from './HiddenInput';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'polyfillPlaceholder'>;\n\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps = { size: 'small' };\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = this.renderLeftSide();\n const rightSide = this.renderRightSide();\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n return (\n <span\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <input type=\"hidden\" value={value} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid=\"InputLikeText__input\"\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.props.size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeText","rootNode","state","blinking","focused","theme","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","focusTimeout","blinkTimeout","setRootNode","selectInnerNode","start","end","isIE11","document","body","setTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","rest","leftSide","renderLeftSide","rightSide","renderRightSide","className","styles","root","jsInputStyles","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","input","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","React","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\n\nimport { styles } from './InputLikeText.styles';\nimport { HiddenInput } from './HiddenInput';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'polyfillPlaceholder'>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps = { size: 'small' };\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = this.renderLeftSide();\n const rightSide = this.renderRightSide();\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n return (\n <span\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <input type=\"hidden\" value={value} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid=\"InputLikeText__input\"\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = (e: React.MouseEvent<HTMLElement>) => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.props.size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
@@ -18,7 +18,7 @@ interface MenuState {
18
18
  maxHeight: number | string;
19
19
  scrollState: ScrollContainerScrollState;
20
20
  }
21
- export declare class InternalMenu extends React.Component<MenuProps, MenuState> {
21
+ export declare class InternalMenu extends React.PureComponent<MenuProps, MenuState> {
22
22
  static __KONTUR_REACT_UI__: string;
23
23
  static defaultProps: {
24
24
  width: string;
@@ -32,13 +32,12 @@ export declare class InternalMenu extends React.Component<MenuProps, MenuState>
32
32
  private theme;
33
33
  private scrollContainer;
34
34
  private highlighted;
35
- private rootElement;
35
+ private setRootNode;
36
36
  private header;
37
37
  private footer;
38
38
  private getProps;
39
39
  componentDidMount(): void;
40
40
  componentDidUpdate(prevProps: MenuProps, prevState: MenuState): void;
41
- UNSAFE_componentWillReceiveProps(nextProps: MenuProps): void;
42
41
  focus(): void;
43
42
  render(): JSX.Element;
44
43
  private renderMain;
@@ -1,5 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.InternalMenu = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = _interopRequireDefault(require("react-dom"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.InternalMenu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
3
2
 
4
3
  var _identifiers = require("../../lib/events/keyboard/identifiers");
5
4
  var _ScrollContainer = require("../../components/ScrollContainer");
@@ -10,9 +9,10 @@ var _createPropsGetter = require("../../lib/createPropsGetter");
10
9
  var _ThemeContext = require("../../lib/theming/ThemeContext");
11
10
 
12
11
  var _Emotion = require("../../lib/theming/Emotion");
12
+ var _rootNode = require("../../lib/rootNode");
13
13
 
14
14
  var _InternalMenu = require("./InternalMenu.styles");
15
- var _isActiveElement = require("./isActiveElement");var
15
+ var _isActiveElement = require("./isActiveElement");var _class, _class2, _temp;var
16
16
 
17
17
 
18
18
 
@@ -37,7 +37,8 @@ var _isActiveElement = require("./isActiveElement");var
37
37
 
38
38
 
39
39
 
40
- InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(InternalMenu, _React$Component);function InternalMenu() {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.
40
+
41
+ InternalMenu = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(InternalMenu, _React$PureComponent);function InternalMenu() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
41
42
 
42
43
 
43
44
 
@@ -58,7 +59,7 @@ InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.def
58
59
  theme = void 0;_this.
59
60
  scrollContainer = void 0;_this.
60
61
  highlighted = void 0;_this.
61
- rootElement = void 0;_this.
62
+ setRootNode = void 0;_this.
62
63
  header = void 0;_this.
63
64
  footer = void 0;_this.
64
65
  getProps = (0, _createPropsGetter.createPropsGetter)(InternalMenu.defaultProps);_this.
@@ -170,10 +171,6 @@ InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.def
170
171
 
171
172
 
172
173
 
173
-
174
-
175
-
176
-
177
174
 
178
175
 
179
176
 
@@ -207,10 +204,8 @@ InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.def
207
204
 
208
205
  };_this.
209
206
 
210
- focusOnRootElement = function () {
211
- if (_this.rootElement) {
212
- _this.rootElement.focus();
213
- }
207
+ focusOnRootElement = function () {var _getRootNode;
208
+ (_getRootNode = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this))) == null ? void 0 : _getRootNode.focus();
214
209
  };_this.
215
210
 
216
211
  shouldRecalculateMaxHeight = function (prevProps) {var _this$props =
@@ -231,9 +226,10 @@ InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.def
231
226
  calculateMaxHeight = function () {var
232
227
  maxHeight = _this.props.maxHeight;
233
228
  var parsedMaxHeight = maxHeight;
229
+ var rootNode = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this));
234
230
 
235
- if (typeof maxHeight === 'string' && typeof window !== 'undefined' && _this.rootElement) {
236
- var rootElementMaxHeight = window.getComputedStyle(_this.rootElement).maxHeight;
231
+ if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {
232
+ var rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;
237
233
 
238
234
  if (rootElementMaxHeight) {
239
235
  parsedMaxHeight = parseFloat(rootElementMaxHeight);
@@ -282,7 +278,7 @@ InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.def
282
278
 
283
279
  scrollToSelected = function () {
284
280
  if (_this.scrollContainer && _this.highlighted) {
285
- _this.scrollContainer.scrollTo(_reactDom.default.findDOMNode(_this.highlighted));
281
+ _this.scrollContainer.scrollTo((0, _rootNode.getRootNode)(_this.highlighted));
286
282
  }
287
283
  };_this.
288
284
 
@@ -308,11 +304,9 @@ InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.def
308
304
 
309
305
 
310
306
 
311
- highlightItem = function (index) {
307
+ highlightItem = function (index) {var _getRootNode2;
312
308
  _this.setState({ highlightedIndex: index });
313
- if (_this.rootElement) {
314
- _this.rootElement.focus();
315
- }
309
+ (_getRootNode2 = (0, _rootNode.getRootNode)((0, _assertThisInitialized2.default)(_this))) == null ? void 0 : _getRootNode2.focus();
316
310
  };_this.
317
311
 
318
312
  unhighlight = function () {
@@ -386,8 +380,8 @@ InternalMenu = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.def
386
380
  if (_this.state.scrollState !== scrollState) {
387
381
  _this.setState({ scrollState: scrollState });
388
382
  }
389
- };return _this;}var _proto = InternalMenu.prototype;_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}};_proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {if (nextProps.maxHeight !== this.props.maxHeight) {this.setState({ maxHeight: nextProps.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx3,_this3 = this;var enableIconPadding = _react.default.Children.toArray(this.props.children).some(function (x) {return /*#__PURE__*/_react.default.isValidElement(x) && x.props.icon;});if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_InternalMenu.styles.root(this.theme)] = true, _cx3[_InternalMenu.styles.shadow(this.theme)] = this.props.hasShadow, _cx3)), style: { width: this.props.width, maxHeight: this.state.maxHeight }, onKeyDown: this.handleKeyDown, ref: function ref(element) {_this3.rootElement = element;}, tabIndex: 0 }, this.props.header ? this.renderHeader() : null, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, onScrollStateChange: this.handleScrollStateChange }, _react.default.Children.map(this.props.children, function (child, index) {if (typeof child === 'string' || typeof child === 'number' || child == null) {return child;}if ( /*#__PURE__*/_react.default.isValidElement(child) && typeof child.type === 'string') {return child;}if (enableIconPadding && ((0, _MenuItem.isMenuItem)(child) || (0, _MenuHeader.isMenuHeader)(child))) {child = /*#__PURE__*/_react.default.cloneElement(child, { _enableIconPadding: true });}if ((0, _isActiveElement.isActiveElement)(child)) {var highlight = _this3.state.highlightedIndex === index;var ref = child.ref;var originalRef = ref;if (highlight) {ref = function ref(menuItem) {return _this3.refHighlighted(originalRef, menuItem);};}return /*#__PURE__*/_react.default.cloneElement(child, { ref: ref, state: highlight ? 'hover' : child.props.state, onClick: _this3.select.bind(_this3, index, false), onMouseEnter: function onMouseEnter(event) {_this3.highlightItem(index);if ((0, _MenuItem.isMenuItem)(child) && child.props.onMouseEnter) {child.props.onMouseEnter(event);}}, onMouseLeave: function onMouseLeave(event) {_this3.unhighlight();if ((0, _MenuItem.isMenuItem)(child) && child.props.onMouseLeave) {child.props.onMouseLeave(event);}} });}return child;})), this.props.footer ? this.renderFooter() : null);};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (!originalRef || typeof originalRef === 'string') {return;}if (typeof originalRef === 'function') {originalRef(menuItem);} else if (typeof originalRef === 'object') {// @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065
390
- originalRef.current = menuItem;}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick(event);}return true;}return false;};_proto.move = function move(step) {this.setState(function (state, props) {var children = childrenToArray(props.children);if (!children.some(_isActiveElement.isActiveElement)) {return null;}var index = state.highlightedIndex;do {index += step;if (!props.cyclicSelection && (index < 0 || index > children.length)) {return null;}if (index < 0) {index = children.length - 1;} else if (index > children.length) {index = 0;}var child = children[index];if ((0, _isActiveElement.isActiveElement)(child)) {return { highlightedIndex: index };}} while (index !== state.highlightedIndex);return null;}, this.scrollToSelected);};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(isExist).length;};return InternalMenu;}(_react.default.Component);exports.InternalMenu = InternalMenu;InternalMenu.__KONTUR_REACT_UI__ = 'InternalMenu';InternalMenu.defaultProps = { width: 'auto', maxHeight: 300, hasShadow: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 };
383
+ };return _this;}var _proto = InternalMenu.prototype;_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}if (prevProps.maxHeight !== this.props.maxHeight) {this.setState({ maxHeight: this.props.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx3,_this3 = this;var enableIconPadding = _react.default.Children.toArray(this.props.children).some(function (x) {return /*#__PURE__*/_react.default.isValidElement(x) && x.props.icon;});if (this.isEmpty()) {return null;}return /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_InternalMenu.styles.root(this.theme)] = true, _cx3[_InternalMenu.styles.shadow(this.theme)] = this.props.hasShadow, _cx3)), style: { width: this.props.width, maxHeight: this.state.maxHeight }, onKeyDown: this.handleKeyDown, ref: this.setRootNode, tabIndex: 0 }, this.props.header ? this.renderHeader() : null, /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: this.props.maxHeight, preventWindowScroll: this.props.preventWindowScroll, onScrollStateChange: this.handleScrollStateChange }, _react.default.Children.map(this.props.children, function (child, index) {if (typeof child === 'string' || typeof child === 'number' || child == null) {return child;}if ( /*#__PURE__*/_react.default.isValidElement(child) && typeof child.type === 'string') {return child;}if (enableIconPadding && ((0, _MenuItem.isMenuItem)(child) || (0, _MenuHeader.isMenuHeader)(child))) {child = /*#__PURE__*/_react.default.cloneElement(child, { _enableIconPadding: true });}if ((0, _isActiveElement.isActiveElement)(child)) {var highlight = _this3.state.highlightedIndex === index;var ref = child.ref;var originalRef = ref;if (highlight) {ref = function ref(menuItem) {return _this3.refHighlighted(originalRef, menuItem);};}return /*#__PURE__*/_react.default.cloneElement(child, { ref: ref, state: highlight ? 'hover' : child.props.state, onClick: _this3.select.bind(_this3, index, false), onMouseEnter: function onMouseEnter(event) {_this3.highlightItem(index);if ((0, _MenuItem.isMenuItem)(child) && child.props.onMouseEnter) {child.props.onMouseEnter(event);}}, onMouseLeave: function onMouseLeave(event) {_this3.unhighlight();if ((0, _MenuItem.isMenuItem)(child) && child.props.onMouseLeave) {child.props.onMouseLeave(event);}} });}return child;})), this.props.footer ? this.renderFooter() : null);};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (!originalRef || typeof originalRef === 'string') {return;}if (typeof originalRef === 'function') {originalRef(menuItem);} else if (typeof originalRef === 'object') {// @ts-ignore see issue https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065
384
+ originalRef.current = menuItem;}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick(event);}return true;}return false;};_proto.move = function move(step) {this.setState(function (state, props) {var children = childrenToArray(props.children);if (!children.some(_isActiveElement.isActiveElement)) {return null;}var index = state.highlightedIndex;do {index += step;if (!props.cyclicSelection && (index < 0 || index > children.length)) {return null;}if (index < 0) {index = children.length - 1;} else if (index > children.length) {index = 0;}var child = children[index];if ((0, _isActiveElement.isActiveElement)(child)) {return { highlightedIndex: index };}} while (index !== state.highlightedIndex);return null;}, this.scrollToSelected);};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(isExist).length;};return InternalMenu;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'InternalMenu', _class2.defaultProps = { width: 'auto', maxHeight: 300, hasShadow: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 }, _temp)) || _class;exports.InternalMenu = InternalMenu;
391
385
 
392
386
  function isExist(value) {
393
387
  return value !== null && value !== undefined;