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

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 (784) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/LICENSE +21 -21
  3. package/README.md +57 -0
  4. package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
  5. package/cjs/components/Autocomplete/Autocomplete.js +11 -5
  6. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  7. package/cjs/components/Autocomplete/Autocomplete.md +7 -7
  8. package/cjs/components/Button/Button.d.ts +5 -1
  9. package/cjs/components/Button/Button.js +17 -5
  10. package/cjs/components/Button/Button.js.map +1 -1
  11. package/cjs/components/Button/Button.styles.d.ts +1 -0
  12. package/cjs/components/Button/Button.styles.js +38 -28
  13. package/cjs/components/Button/Button.styles.js.map +1 -1
  14. package/cjs/components/Center/Center.d.ts +1 -0
  15. package/cjs/components/Center/Center.js +10 -3
  16. package/cjs/components/Center/Center.js.map +1 -1
  17. package/cjs/components/Checkbox/Checkbox.d.ts +3 -3
  18. package/cjs/components/Checkbox/Checkbox.js +31 -22
  19. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  20. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  21. package/cjs/components/ComboBox/ComboBox.js +100 -70
  22. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  24. package/cjs/components/CurrencyInput/CurrencyInput.js +35 -4
  25. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  26. package/cjs/components/CurrencyInput/CurrencyInput.md +24 -24
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
  28. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  29. package/cjs/components/DateInput/DateInput.js +6 -3
  30. package/cjs/components/DateInput/DateInput.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.md +106 -106
  32. package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
  33. package/cjs/components/DatePicker/DatePicker.js +17 -7
  34. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  35. package/cjs/components/DatePicker/DatePicker.md +307 -307
  36. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  37. package/cjs/components/Dropdown/Dropdown.js +11 -4
  38. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  39. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  40. package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
  41. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  42. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  43. package/cjs/components/FxInput/FxInput.js +9 -2
  44. package/cjs/components/FxInput/FxInput.js.map +1 -1
  45. package/cjs/components/FxInput/FxInput.md +16 -16
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -0
  47. package/cjs/components/Gapped/Gapped.js +22 -14
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/Gapped/Gapped.md +43 -43
  50. package/cjs/components/Group/Group.d.ts +1 -0
  51. package/cjs/components/Group/Group.js +10 -7
  52. package/cjs/components/Group/Group.js.map +1 -1
  53. package/cjs/components/Group/Group.md +18 -18
  54. package/cjs/components/Hint/Hint.d.ts +5 -3
  55. package/cjs/components/Hint/Hint.js +7 -20
  56. package/cjs/components/Hint/Hint.js.map +1 -1
  57. package/cjs/components/Input/Input.d.ts +8 -1
  58. package/cjs/components/Input/Input.js +22 -5
  59. package/cjs/components/Input/Input.js.map +1 -1
  60. package/cjs/components/Input/Input.md +13 -13
  61. package/cjs/components/Kebab/Kebab.d.ts +3 -2
  62. package/cjs/components/Kebab/Kebab.js +8 -5
  63. package/cjs/components/Kebab/Kebab.js.map +1 -1
  64. package/cjs/components/Link/Link.d.ts +1 -0
  65. package/cjs/components/Link/Link.js +11 -3
  66. package/cjs/components/Link/Link.js.map +1 -1
  67. package/cjs/components/Loader/Loader.d.ts +1 -0
  68. package/cjs/components/Loader/Loader.js +11 -7
  69. package/cjs/components/Loader/Loader.js.map +1 -1
  70. package/cjs/components/MenuItem/MenuItem.d.ts +2 -1
  71. package/cjs/components/MenuItem/MenuItem.js +11 -8
  72. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  73. package/cjs/components/Modal/Modal.js +1 -1
  74. package/cjs/components/Modal/Modal.js.map +1 -1
  75. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  76. package/cjs/components/Modal/ModalBody.js +9 -6
  77. package/cjs/components/Modal/ModalBody.js.map +1 -1
  78. package/cjs/components/Paging/Paging.d.ts +2 -2
  79. package/cjs/components/Paging/Paging.js +6 -5
  80. package/cjs/components/Paging/Paging.js.map +1 -1
  81. package/cjs/components/Paging/Paging.md +43 -43
  82. package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
  83. package/cjs/components/PasswordInput/PasswordInput.js +13 -6
  84. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  85. package/cjs/components/PasswordInput/PasswordInput.md +9 -9
  86. package/cjs/components/Radio/Radio.d.ts +5 -10
  87. package/cjs/components/Radio/Radio.js +15 -11
  88. package/cjs/components/Radio/Radio.js.map +1 -1
  89. package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -26
  90. package/cjs/components/RadioGroup/RadioGroup.js +25 -29
  91. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  92. package/cjs/components/RadioGroup/RadioGroup.md +43 -43
  93. package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  94. package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
  95. package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
  96. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  97. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  98. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  99. package/cjs/components/ScrollContainer/ScrollContainer.js +10 -6
  100. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  101. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  102. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  103. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  104. package/cjs/components/Select/Select.d.ts +1 -0
  105. package/cjs/components/Select/Select.js +9 -5
  106. package/cjs/components/Select/Select.js.map +1 -1
  107. package/cjs/components/SidePage/SidePage.d.ts +3 -0
  108. package/cjs/components/SidePage/SidePage.js +20 -2
  109. package/cjs/components/SidePage/SidePage.js.map +1 -1
  110. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  111. package/cjs/components/SidePage/SidePageBody.js +9 -6
  112. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  113. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  114. package/cjs/components/SidePage/SidePageContainer.js +9 -6
  115. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  116. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
  117. package/cjs/components/SidePage/SidePageFooter.js +11 -12
  118. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  119. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  120. package/cjs/components/SidePage/SidePageHeader.js +6 -3
  121. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  122. package/cjs/components/Spinner/Spinner.d.ts +9 -0
  123. package/cjs/components/Spinner/Spinner.js +29 -8
  124. package/cjs/components/Spinner/Spinner.js.map +1 -1
  125. package/cjs/components/Spinner/Spinner.md +1 -0
  126. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  127. package/cjs/components/Spinner/Spinner.styles.js +13 -10
  128. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  129. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  130. package/cjs/components/Sticky/Sticky.js +8 -5
  131. package/cjs/components/Sticky/Sticky.js.map +1 -1
  132. package/cjs/components/Switcher/Switcher.d.ts +1 -0
  133. package/cjs/components/Switcher/Switcher.js +6 -3
  134. package/cjs/components/Switcher/Switcher.js.map +1 -1
  135. package/cjs/components/Switcher/Switcher.styles.js +4 -2
  136. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  137. package/cjs/components/Tabs/Indicator.d.ts +1 -0
  138. package/cjs/components/Tabs/Indicator.js +16 -15
  139. package/cjs/components/Tabs/Indicator.js.map +1 -1
  140. package/cjs/components/Tabs/Tab.d.ts +2 -1
  141. package/cjs/components/Tabs/Tab.js +13 -9
  142. package/cjs/components/Tabs/Tab.js.map +1 -1
  143. package/cjs/components/Tabs/Tabs.d.ts +1 -0
  144. package/cjs/components/Tabs/Tabs.js +9 -9
  145. package/cjs/components/Tabs/Tabs.js.map +1 -1
  146. package/cjs/components/Tabs/Tabs.md +36 -36
  147. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  148. package/cjs/components/Textarea/Textarea.js +12 -5
  149. package/cjs/components/Textarea/Textarea.js.map +1 -1
  150. package/cjs/components/Textarea/Textarea.md +25 -25
  151. package/cjs/components/Toast/Toast.d.ts +3 -0
  152. package/cjs/components/Toast/Toast.js +15 -4
  153. package/cjs/components/Toast/Toast.js.map +1 -1
  154. package/cjs/components/Toast/ToastView.d.ts +1 -0
  155. package/cjs/components/Toast/ToastView.js +8 -5
  156. package/cjs/components/Toast/ToastView.js.map +1 -1
  157. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  158. package/cjs/components/Toggle/Toggle.js +9 -6
  159. package/cjs/components/Toggle/Toggle.js.map +1 -1
  160. package/cjs/components/Token/Token.d.ts +1 -0
  161. package/cjs/components/Token/Token.js +7 -4
  162. package/cjs/components/Token/Token.js.map +1 -1
  163. package/cjs/components/Token/Token.md +112 -112
  164. package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
  165. package/cjs/components/TokenInput/TokenInput.js +11 -8
  166. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  167. package/cjs/components/TokenInput/TokenInput.md +79 -79
  168. package/cjs/components/Tooltip/Tooltip.d.ts +11 -22
  169. package/cjs/components/Tooltip/Tooltip.js +28 -30
  170. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  171. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  172. package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
  173. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  174. package/cjs/index.d.ts +1 -1
  175. package/cjs/index.js +2 -2
  176. package/cjs/index.js.map +1 -1
  177. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  178. package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
  179. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  180. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
  181. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  182. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  183. package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
  184. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  185. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  186. package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
  187. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  188. package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
  189. package/cjs/internal/DateSelect/DateSelect.js +3 -3
  190. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  191. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  192. package/cjs/internal/DropdownContainer/DropdownContainer.js +14 -11
  193. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  194. package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  195. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +9 -0
  196. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -0
  197. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  198. package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
  199. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  200. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
  201. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  202. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  203. package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
  204. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  205. package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
  206. package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
  207. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  208. package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
  209. package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
  210. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  211. package/cjs/internal/Menu/Menu.d.ts +3 -0
  212. package/cjs/internal/Menu/Menu.js +33 -6
  213. package/cjs/internal/Menu/Menu.js.map +1 -1
  214. package/cjs/internal/Menu/Menu.styles.d.ts +3 -0
  215. package/cjs/internal/Menu/Menu.styles.js +22 -3
  216. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  217. package/cjs/internal/Popup/Popup.d.ts +9 -8
  218. package/cjs/internal/Popup/Popup.js +64 -48
  219. package/cjs/internal/Popup/Popup.js.map +1 -1
  220. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  221. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  222. package/cjs/internal/Popup/types.d.ts +1 -0
  223. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js +0 -0
  224. package/cjs/{components/FileUploader/locale → internal/Popup}/types.js.map +0 -0
  225. package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -3
  226. package/cjs/internal/PopupMenu/PopupMenu.js +23 -6
  227. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  228. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  229. package/cjs/internal/PopupMenu/validatePositions.js +2 -4
  230. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  231. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
  232. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  233. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  234. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
  235. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  236. package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
  237. package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
  238. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  239. package/cjs/internal/ThemePlayground/Playground.d.ts +0 -1
  240. package/cjs/internal/ThemePlayground/Playground.js +1 -11
  241. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/darkTheme.d.ts +0 -15
  243. package/cjs/internal/ThemePlayground/darkTheme.js +1 -25
  244. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  245. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  246. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
  247. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  249. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  250. package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
  251. package/cjs/internal/ZIndex/ZIndex.js +45 -34
  252. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  253. package/cjs/internal/icons/16px/index.d.ts +17 -19
  254. package/cjs/internal/icons/16px/index.js +105 -84
  255. package/cjs/internal/icons/16px/index.js.map +1 -1
  256. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  257. package/cjs/internal/icons/SpinnerIcon.js +5 -2
  258. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  259. package/cjs/internal/themes/DefaultTheme.d.ts +0 -23
  260. package/cjs/internal/themes/DefaultTheme.js +1 -64
  261. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  262. package/cjs/lib/ModalStack.js +16 -17
  263. package/cjs/lib/ModalStack.js.map +1 -1
  264. package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
  265. package/cjs/lib/callChildRef/callChildRef.js +19 -0
  266. package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
  267. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  268. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
  269. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  270. package/cjs/lib/getDisplayName.d.ts +3 -0
  271. package/cjs/lib/getDisplayName.js +9 -0
  272. package/cjs/lib/getDisplayName.js.map +1 -0
  273. package/cjs/lib/locale/types.d.ts +0 -2
  274. package/cjs/lib/locale/types.js +0 -2
  275. package/cjs/lib/locale/types.js.map +1 -1
  276. package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
  277. package/cjs/lib/rootNode/getRootNode.js +27 -0
  278. package/cjs/lib/rootNode/getRootNode.js.map +1 -0
  279. package/cjs/lib/rootNode/index.d.ts +2 -0
  280. package/cjs/lib/rootNode/index.js +2 -0
  281. package/cjs/lib/rootNode/index.js.map +1 -0
  282. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  283. package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
  284. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
  285. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  286. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  287. package/cjs/lib/theming/Emotion.js +1 -0
  288. package/cjs/lib/theming/Emotion.js.map +1 -1
  289. package/cjs/lib/theming/useTheme.d.ts +1 -0
  290. package/cjs/lib/theming/useTheme.js +7 -0
  291. package/cjs/lib/theming/useTheme.js.map +1 -0
  292. package/cjs/lib/utils.d.ts +35 -1
  293. package/cjs/lib/utils.js +77 -22
  294. package/cjs/lib/utils.js.map +1 -1
  295. package/cjs/lib/withClassWrapper.d.ts +71 -0
  296. package/cjs/lib/withClassWrapper.js +59 -0
  297. package/cjs/lib/withClassWrapper.js.map +1 -0
  298. package/cjs/typings/html-props.d.ts +123 -0
  299. package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
  300. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  301. package/components/Autocomplete/Autocomplete.d.ts +1 -0
  302. package/components/Autocomplete/Autocomplete.md +7 -7
  303. package/components/Button/Button/Button.js +24 -15
  304. package/components/Button/Button/Button.js.map +1 -1
  305. package/components/Button/Button.d.ts +5 -1
  306. package/components/Button/Button.styles/Button.styles.js +31 -28
  307. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  308. package/components/Button/Button.styles.d.ts +1 -0
  309. package/components/Center/Center/Center.js +14 -9
  310. package/components/Center/Center/Center.js.map +1 -1
  311. package/components/Center/Center.d.ts +1 -0
  312. package/components/Checkbox/Checkbox/Checkbox.js +34 -30
  313. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  314. package/components/Checkbox/Checkbox.d.ts +3 -3
  315. package/components/ComboBox/ComboBox/ComboBox.js +38 -32
  316. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  317. package/components/ComboBox/ComboBox.d.ts +2 -0
  318. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +62 -27
  319. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  320. package/components/CurrencyInput/CurrencyInput.d.ts +4 -3
  321. package/components/CurrencyInput/CurrencyInput.md +24 -24
  322. package/components/CurrencyLabel/CurrencyLabel.md +23 -23
  323. package/components/DateInput/DateInput/DateInput.js +7 -3
  324. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  325. package/components/DateInput/DateInput.d.ts +1 -0
  326. package/components/DateInput/DateInput.md +106 -106
  327. package/components/DatePicker/DatePicker/DatePicker.js +29 -22
  328. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  329. package/components/DatePicker/DatePicker.d.ts +4 -2
  330. package/components/DatePicker/DatePicker.md +307 -307
  331. package/components/Dropdown/Dropdown/Dropdown.js +15 -13
  332. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  333. package/components/Dropdown/Dropdown.d.ts +1 -0
  334. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
  335. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  336. package/components/DropdownMenu/DropdownMenu.d.ts +3 -2
  337. package/components/FxInput/FxInput/FxInput.js +13 -9
  338. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  339. package/components/FxInput/FxInput.d.ts +1 -0
  340. package/components/FxInput/FxInput.md +16 -16
  341. package/components/Gapped/Gapped/Gapped.js +24 -21
  342. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  343. package/components/Gapped/Gapped.d.ts +2 -0
  344. package/components/Gapped/Gapped.md +43 -43
  345. package/components/Group/Group/Group.js +22 -9
  346. package/components/Group/Group/Group.js.map +1 -1
  347. package/components/Group/Group.d.ts +1 -0
  348. package/components/Group/Group.md +18 -18
  349. package/components/Hint/Hint/Hint.js +18 -12
  350. package/components/Hint/Hint/Hint.js.map +1 -1
  351. package/components/Hint/Hint.d.ts +5 -3
  352. package/components/Input/Input/Input.js +29 -14
  353. package/components/Input/Input/Input.js.map +1 -1
  354. package/components/Input/Input.d.ts +8 -1
  355. package/components/Input/Input.md +13 -13
  356. package/components/Kebab/Kebab/Kebab.js +12 -7
  357. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  358. package/components/Kebab/Kebab.d.ts +3 -2
  359. package/components/Link/Link/Link.js +15 -11
  360. package/components/Link/Link/Link.js.map +1 -1
  361. package/components/Link/Link.d.ts +1 -0
  362. package/components/Loader/Loader/Loader.js +19 -13
  363. package/components/Loader/Loader/Loader.js.map +1 -1
  364. package/components/Loader/Loader.d.ts +1 -0
  365. package/components/MenuItem/MenuItem/MenuItem.js +19 -17
  366. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  367. package/components/MenuItem/MenuItem.d.ts +2 -1
  368. package/components/Modal/Modal/Modal.js +1 -1
  369. package/components/Modal/Modal/Modal.js.map +1 -1
  370. package/components/Modal/ModalBody/ModalBody.js +16 -10
  371. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  372. package/components/Modal/ModalBody.d.ts +1 -0
  373. package/components/Paging/Paging/Paging.js +17 -14
  374. package/components/Paging/Paging/Paging.js.map +1 -1
  375. package/components/Paging/Paging.d.ts +2 -2
  376. package/components/Paging/Paging.md +43 -43
  377. package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
  378. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  379. package/components/PasswordInput/PasswordInput.d.ts +3 -2
  380. package/components/PasswordInput/PasswordInput.md +9 -9
  381. package/components/Radio/Radio/Radio.js +21 -20
  382. package/components/Radio/Radio/Radio.js.map +1 -1
  383. package/components/Radio/Radio.d.ts +5 -10
  384. package/components/RadioGroup/RadioGroup/RadioGroup.js +36 -29
  385. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  386. package/components/RadioGroup/RadioGroup.d.ts +11 -26
  387. package/components/RadioGroup/RadioGroup.md +43 -43
  388. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
  389. package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
  390. package/components/RadioGroup/RadioGroupContext/package.json +6 -0
  391. package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
  392. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  393. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +15 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
  397. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  398. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  399. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  400. package/components/Select/Select/Select.js +16 -7
  401. package/components/Select/Select/Select.js.map +1 -1
  402. package/components/Select/Select.d.ts +1 -0
  403. package/components/SidePage/SidePage/SidePage.js +27 -3
  404. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  405. package/components/SidePage/SidePage.d.ts +3 -0
  406. package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
  407. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  408. package/components/SidePage/SidePageBody.d.ts +1 -0
  409. package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
  410. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  411. package/components/SidePage/SidePageContainer.d.ts +1 -0
  412. package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
  413. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  414. package/components/SidePage/SidePageFooter.d.ts +1 -2
  415. package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
  416. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  417. package/components/SidePage/SidePageHeader.d.ts +1 -0
  418. package/components/Spinner/Spinner/Spinner.js +14 -6
  419. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  420. package/components/Spinner/Spinner.d.ts +9 -0
  421. package/components/Spinner/Spinner.md +1 -0
  422. package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
  423. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  424. package/components/Spinner/Spinner.styles.d.ts +2 -1
  425. package/components/Sticky/Sticky/Sticky.js +13 -8
  426. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  427. package/components/Sticky/Sticky.d.ts +1 -0
  428. package/components/Switcher/Switcher/Switcher.js +11 -6
  429. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  430. package/components/Switcher/Switcher.d.ts +1 -0
  431. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  432. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  433. package/components/Tabs/Indicator/Indicator.js +16 -14
  434. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  435. package/components/Tabs/Indicator.d.ts +1 -0
  436. package/components/Tabs/Tab/Tab.js +31 -34
  437. package/components/Tabs/Tab/Tab.js.map +1 -1
  438. package/components/Tabs/Tab.d.ts +2 -1
  439. package/components/Tabs/Tabs/Tabs.js +20 -20
  440. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  441. package/components/Tabs/Tabs.d.ts +1 -0
  442. package/components/Tabs/Tabs.md +36 -36
  443. package/components/Textarea/Textarea/Textarea.js +21 -17
  444. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  445. package/components/Textarea/Textarea.d.ts +1 -0
  446. package/components/Textarea/Textarea.md +25 -25
  447. package/components/Toast/Toast/Toast.js +29 -14
  448. package/components/Toast/Toast/Toast.js.map +1 -1
  449. package/components/Toast/Toast.d.ts +3 -0
  450. package/components/Toast/ToastView/ToastView.js +10 -5
  451. package/components/Toast/ToastView/ToastView.js.map +1 -1
  452. package/components/Toast/ToastView.d.ts +1 -0
  453. package/components/Toggle/Toggle/Toggle.js +16 -11
  454. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  455. package/components/Toggle/Toggle.d.ts +1 -0
  456. package/components/Token/Token/Token.js +11 -4
  457. package/components/Token/Token/Token.js.map +1 -1
  458. package/components/Token/Token.d.ts +1 -0
  459. package/components/Token/Token.md +112 -112
  460. package/components/TokenInput/TokenInput/TokenInput.js +12 -6
  461. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  462. package/components/TokenInput/TokenInput.d.ts +1 -0
  463. package/components/TokenInput/TokenInput.md +79 -79
  464. package/components/Tooltip/Tooltip/Tooltip.js +26 -17
  465. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  466. package/components/Tooltip/Tooltip.d.ts +11 -22
  467. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
  468. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  469. package/components/TooltipMenu/TooltipMenu.d.ts +3 -2
  470. package/index.d.ts +1 -1
  471. package/index.js +2 -2
  472. package/index.js.map +1 -1
  473. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
  474. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  475. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  476. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
  477. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  478. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
  479. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  480. package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
  481. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
  482. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  483. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
  484. package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
  485. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  486. package/internal/DateSelect/DateSelect.d.ts +2 -2
  487. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +17 -16
  488. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  489. package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
  490. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js +10 -0
  491. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js.map +1 -0
  492. package/internal/DropdownContainer/DropdownContainer.styles/package.json +6 -0
  493. package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  494. package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
  495. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  496. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  497. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
  498. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  499. package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
  500. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  501. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  502. package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
  503. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  504. package/internal/InternalMenu/InternalMenu.d.ts +2 -3
  505. package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
  506. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  507. package/internal/MaskedInput/MaskedInput.d.ts +2 -2
  508. package/internal/Menu/Menu/Menu.js +24 -12
  509. package/internal/Menu/Menu/Menu.js.map +1 -1
  510. package/internal/Menu/Menu.d.ts +3 -0
  511. package/internal/Menu/Menu.styles/Menu.styles.js +12 -3
  512. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  513. package/internal/Menu/Menu.styles.d.ts +3 -0
  514. package/internal/Popup/Popup/Popup.js +85 -68
  515. package/internal/Popup/Popup/Popup.js.map +1 -1
  516. package/internal/Popup/Popup.d.ts +9 -8
  517. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  518. package/internal/Popup/PopupHelper.d.ts +2 -2
  519. package/{components/FileUploader/locale → internal/Popup}/types/package.json +1 -1
  520. package/{components/FileUploader/locale → internal/Popup}/types/types.js +0 -0
  521. package/{components/FileUploader/locale → internal/Popup}/types/types.js.map +0 -0
  522. package/internal/Popup/types.d.ts +1 -0
  523. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -10
  524. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  525. package/internal/PopupMenu/PopupMenu.d.ts +4 -3
  526. package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
  527. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  528. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  529. package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
  530. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  531. package/internal/RenderContainer/RenderContainer.d.ts +1 -1
  532. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  533. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  534. package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
  535. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  536. package/internal/RenderLayer/RenderLayer.d.ts +3 -1
  537. package/internal/ThemePlayground/Playground/Playground.js +1 -11
  538. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  539. package/internal/ThemePlayground/Playground.d.ts +0 -1
  540. package/internal/ThemePlayground/darkTheme/darkTheme.js +1 -26
  541. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  542. package/internal/ThemePlayground/darkTheme.d.ts +0 -15
  543. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
  544. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  545. package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
  546. package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
  547. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  548. package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
  549. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  550. package/internal/ZIndex/ZIndex.d.ts +2 -0
  551. package/internal/icons/16px/index/index.js +83 -78
  552. package/internal/icons/16px/index/index.js.map +1 -1
  553. package/internal/icons/16px/index.d.ts +17 -19
  554. package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
  555. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  556. package/internal/icons/SpinnerIcon.d.ts +4 -1
  557. package/internal/themes/DefaultTheme/DefaultTheme.js +0 -67
  558. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  559. package/internal/themes/DefaultTheme.d.ts +0 -23
  560. package/lib/ModalStack/ModalStack.js +9 -13
  561. package/lib/ModalStack/ModalStack.js.map +1 -1
  562. package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
  563. package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
  564. package/lib/callChildRef/callChildRef/package.json +6 -0
  565. package/lib/callChildRef/callChildRef.d.ts +3 -0
  566. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
  567. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
  568. package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
  569. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
  570. package/lib/getDisplayName/getDisplayName.js +3 -0
  571. package/lib/getDisplayName/getDisplayName.js.map +1 -0
  572. package/lib/getDisplayName/package.json +6 -0
  573. package/lib/getDisplayName.d.ts +3 -0
  574. package/lib/locale/types/types.js.map +1 -1
  575. package/lib/locale/types.d.ts +0 -2
  576. package/lib/rootNode/getRootNode/getRootNode.js +25 -0
  577. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
  578. package/lib/rootNode/getRootNode/package.json +6 -0
  579. package/lib/rootNode/getRootNode.d.ts +3 -0
  580. package/lib/rootNode/index/index.js +2 -0
  581. package/lib/rootNode/index/index.js.map +1 -0
  582. package/{components/FileUploader → lib/rootNode}/index/package.json +1 -1
  583. package/lib/rootNode/index.d.ts +2 -0
  584. package/{components/FileUploader → lib/rootNode}/package.json +1 -1
  585. package/lib/rootNode/rootNodeDecorator/package.json +6 -0
  586. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
  587. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
  588. package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
  589. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  590. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  591. package/lib/theming/Emotion/Emotion.js +1 -0
  592. package/lib/theming/Emotion/Emotion.js.map +1 -1
  593. package/lib/theming/useTheme/package.json +6 -0
  594. package/lib/theming/useTheme/useTheme.js +5 -0
  595. package/lib/theming/useTheme/useTheme.js.map +1 -0
  596. package/lib/theming/useTheme.d.ts +1 -0
  597. package/lib/utils/utils.js +77 -19
  598. package/lib/utils/utils.js.map +1 -1
  599. package/lib/utils.d.ts +35 -1
  600. package/lib/withClassWrapper/package.json +6 -0
  601. package/lib/withClassWrapper/withClassWrapper.js +70 -0
  602. package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
  603. package/lib/withClassWrapper.d.ts +71 -0
  604. package/package.json +13 -5
  605. package/typings/html-props.d.ts +123 -0
  606. package/cjs/components/FileUploader/FileUploader.d.ts +0 -31
  607. package/cjs/components/FileUploader/FileUploader.js +0 -270
  608. package/cjs/components/FileUploader/FileUploader.js.map +0 -1
  609. package/cjs/components/FileUploader/FileUploader.md +0 -67
  610. package/cjs/components/FileUploader/FileUploader.styles.d.ts +0 -19
  611. package/cjs/components/FileUploader/FileUploader.styles.js +0 -159
  612. package/cjs/components/FileUploader/FileUploader.styles.js.map +0 -1
  613. package/cjs/components/FileUploader/index.d.ts +0 -4
  614. package/cjs/components/FileUploader/index.js +0 -4
  615. package/cjs/components/FileUploader/index.js.map +0 -1
  616. package/cjs/components/FileUploader/locale/index.d.ts +0 -4
  617. package/cjs/components/FileUploader/locale/index.js +0 -11
  618. package/cjs/components/FileUploader/locale/index.js.map +0 -1
  619. package/cjs/components/FileUploader/locale/locales/en.d.ts +0 -2
  620. package/cjs/components/FileUploader/locale/locales/en.js +0 -7
  621. package/cjs/components/FileUploader/locale/locales/en.js.map +0 -1
  622. package/cjs/components/FileUploader/locale/locales/ru.d.ts +0 -2
  623. package/cjs/components/FileUploader/locale/locales/ru.js +0 -7
  624. package/cjs/components/FileUploader/locale/locales/ru.js.map +0 -1
  625. package/cjs/components/FileUploader/locale/types.d.ts +0 -6
  626. package/cjs/hooks/useDrop.d.ts +0 -11
  627. package/cjs/hooks/useDrop.js +0 -75
  628. package/cjs/hooks/useDrop.js.map +0 -1
  629. package/cjs/hooks/useMemoObject.d.ts +0 -1
  630. package/cjs/hooks/useMemoObject.js +0 -5
  631. package/cjs/hooks/useMemoObject.js.map +0 -1
  632. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  633. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +0 -15
  634. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
  635. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  636. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +0 -107
  637. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
  638. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  639. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -187
  640. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
  641. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  642. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +0 -66
  643. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
  644. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  645. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +0 -24
  646. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  647. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  648. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +0 -17
  649. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
  650. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  651. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +0 -16
  652. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
  653. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  654. package/cjs/internal/FileUploaderControl/fileUtils.js +0 -55
  655. package/cjs/internal/FileUploaderControl/fileUtils.js.map +0 -1
  656. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  657. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
  658. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
  659. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  660. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +0 -51
  661. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
  662. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  663. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +0 -18
  664. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
  665. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  666. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  667. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  668. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  669. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +0 -34
  670. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +0 -1
  671. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  672. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -23
  673. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
  674. package/cjs/lib/guidUtils.d.ts +0 -1
  675. package/cjs/lib/guidUtils.js +0 -5
  676. package/cjs/lib/guidUtils.js.map +0 -1
  677. package/cjs/lib/locale/useLocaleForControl.d.ts +0 -3
  678. package/cjs/lib/locale/useLocaleForControl.js +0 -14
  679. package/cjs/lib/locale/useLocaleForControl.js.map +0 -1
  680. package/cjs/lib/stringUtils.d.ts +0 -1
  681. package/cjs/lib/stringUtils.js +0 -13
  682. package/cjs/lib/stringUtils.js.map +0 -1
  683. package/components/FileUploader/FileUploader/FileUploader.js +0 -277
  684. package/components/FileUploader/FileUploader/FileUploader.js.map +0 -1
  685. package/components/FileUploader/FileUploader/package.json +0 -6
  686. package/components/FileUploader/FileUploader.d.ts +0 -31
  687. package/components/FileUploader/FileUploader.md +0 -67
  688. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +0 -56
  689. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +0 -1
  690. package/components/FileUploader/FileUploader.styles/package.json +0 -6
  691. package/components/FileUploader/FileUploader.styles.d.ts +0 -19
  692. package/components/FileUploader/index/index.js +0 -3
  693. package/components/FileUploader/index/index.js.map +0 -1
  694. package/components/FileUploader/index.d.ts +0 -4
  695. package/components/FileUploader/locale/index/index.js +0 -8
  696. package/components/FileUploader/locale/index/index.js.map +0 -1
  697. package/components/FileUploader/locale/index/package.json +0 -6
  698. package/components/FileUploader/locale/index.d.ts +0 -4
  699. package/components/FileUploader/locale/locales/en/en.js +0 -6
  700. package/components/FileUploader/locale/locales/en/en.js.map +0 -1
  701. package/components/FileUploader/locale/locales/en/package.json +0 -6
  702. package/components/FileUploader/locale/locales/en.d.ts +0 -2
  703. package/components/FileUploader/locale/locales/ru/package.json +0 -6
  704. package/components/FileUploader/locale/locales/ru/ru.js +0 -6
  705. package/components/FileUploader/locale/locales/ru/ru.js.map +0 -1
  706. package/components/FileUploader/locale/locales/ru.d.ts +0 -2
  707. package/components/FileUploader/locale/package.json +0 -6
  708. package/components/FileUploader/locale/types.d.ts +0 -6
  709. package/hooks/useDrop/package.json +0 -6
  710. package/hooks/useDrop/useDrop.js +0 -57
  711. package/hooks/useDrop/useDrop.js.map +0 -1
  712. package/hooks/useDrop.d.ts +0 -11
  713. package/hooks/useMemoObject/package.json +0 -6
  714. package/hooks/useMemoObject/useMemoObject.js +0 -6
  715. package/hooks/useMemoObject/useMemoObject.js.map +0 -1
  716. package/hooks/useMemoObject.d.ts +0 -1
  717. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +0 -2
  718. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +0 -1
  719. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +0 -6
  720. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
  721. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +0 -79
  722. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +0 -1
  723. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +0 -6
  724. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
  725. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +0 -176
  726. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +0 -1
  727. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +0 -6
  728. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
  729. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +0 -32
  730. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +0 -1
  731. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +0 -6
  732. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
  733. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +0 -23
  734. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
  735. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +0 -6
  736. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
  737. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +0 -11
  738. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +0 -1
  739. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +0 -6
  740. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
  741. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +0 -18
  742. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +0 -1
  743. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +0 -6
  744. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
  745. package/internal/FileUploaderControl/fileUtils/fileUtils.js +0 -85
  746. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +0 -1
  747. package/internal/FileUploaderControl/fileUtils/package.json +0 -6
  748. package/internal/FileUploaderControl/fileUtils.d.ts +0 -18
  749. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +0 -6
  750. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +0 -5
  751. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +0 -1
  752. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
  753. package/internal/FileUploaderControl/hooks/useUpload/package.json +0 -6
  754. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +0 -56
  755. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +0 -1
  756. package/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
  757. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +0 -6
  758. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +0 -16
  759. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +0 -1
  760. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
  761. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  762. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  763. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  764. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  765. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +0 -49
  766. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +0 -1
  767. package/internal/TextWidthHelper/TextWidthHelper/package.json +0 -6
  768. package/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
  769. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +0 -14
  770. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +0 -1
  771. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +0 -6
  772. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
  773. package/lib/guidUtils/guidUtils.js +0 -4
  774. package/lib/guidUtils/guidUtils.js.map +0 -1
  775. package/lib/guidUtils/package.json +0 -6
  776. package/lib/guidUtils.d.ts +0 -1
  777. package/lib/locale/useLocaleForControl/package.json +0 -6
  778. package/lib/locale/useLocaleForControl/useLocaleForControl.js +0 -12
  779. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +0 -1
  780. package/lib/locale/useLocaleForControl.d.ts +0 -3
  781. package/lib/stringUtils/package.json +0 -6
  782. package/lib/stringUtils/stringUtils.js +0 -12
  783. package/lib/stringUtils/stringUtils.js.map +0 -1
  784. package/lib/stringUtils.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["DateSelect.tsx"],"names":["itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","DateSelect","DatePickerLocaleHelper","state","botCapped","current","height","opened","pos","top","topCapped","nodeTop","Infinity","theme","locale","root","itemsContainer","listener","timeout","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","clearTimeout","setTimeout","getBoundingClientRect","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","isMobile","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","e","value","onValueChange","handleKey","handleUp","handleDown","UNSAFE_componentWillReceiveProps","componentDidMount","LayoutEvents","addListener","componentWillUnmount","remove","render","renderMain","width","rootProps","className","styles","Boolean","style","ref","caption","getItem","arrow","arrowDisabled","renderMenu","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItem","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","onClick","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","menu","menuUp","itemsHolder","menuDown","type","months","minPos","getMinPos","maxPos","getMaxPos","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","number","isRequired","oneOfType","func","defaultProps","minMonth","maxMonth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateSelect extends React.Component<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps = {\n type: 'year',\n minMonth: 0,\n maxMonth: 11,\n width: 'auto',\n };\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public UNSAFE_componentWillReceiveProps() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { width, disabled } = this.props;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid=\"DateSelect__caption\" className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: root.getBoundingClientRect().top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (this.props.maxValue != null && this.props.minValue != null) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n if (this.props.minValue != null) {\n return value < this.props.minValue;\n }\n if (this.props.maxValue != null) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid=\"DateSelect__menuItem\"\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronUpIcon />\n </span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronDownIcon />\n </span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return (e: React.MouseEvent<HTMLElement>) => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.props.type === 'month') {\n return this.locale.months[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.props.type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n if (minPos >= pos) {\n pos = minPos;\n }\n if (maxPos <= pos) {\n pos = maxPos;\n }\n const topCapped = pos <= minPos;\n const botCapped = pos >= maxPos;\n\n this.setState({ pos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n if (this.props.type === 'month') {\n return -this.props.value * itemHeight;\n } else if (this.props.type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n if (this.props.type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (this.props.type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
1
+ {"version":3,"sources":["DateSelect.tsx"],"names":["itemHeight","visibleYearsCount","itemsToMoveCount","monthsCount","defaultMinYear","defaultMaxYear","DateSelect","DatePickerLocaleHelper","state","botCapped","current","height","opened","pos","top","topCapped","nodeTop","Infinity","theme","locale","root","itemsContainer","listener","timeout","longClickTimer","setPositionRepeatTimer","yearStep","touchStartY","open","props","disabled","setPosition","setState","close","refRoot","element","setNodeTop","clearTimeout","setTimeout","getBoundingClientRect","refItemsContainer","addEventListener","handleWheel","passive","removeEventListener","isMobile","handleTouchStart","handleTouchMove","handleLongClickUp","event","preventDefault","window","setInterval","handleLongClickDown","handleLongClickStop","getAnchor","WheelEvent","stopPropagation","deltaY","deltaMode","TouchEvent","targetTouches","clientY","changedTouches","pixelRatio","devicePixelRatio","handleItemClick","shift","e","value","onValueChange","handleKey","handleUp","handleDown","componentDidUpdate","componentDidMount","LayoutEvents","addListener","componentWillUnmount","remove","render","renderMain","width","rootProps","className","styles","Boolean","style","ref","caption","getItem","arrow","arrowDisabled","renderMenu","disableItems","index","maxValue","minValue","from","to","Math","ceil","items","i","menuItem","menuItemSelected","menuItemActive","menuItemDisabled","clickHandler","onMouseDown","onClick","push","left","right","shiftStyle","position","holderClass","menuHolder","isTopCapped","isBotCapped","dropdownOffset","overflowOffsetDelta","menu","menuUp","itemsHolder","menuDown","type","months","minPos","getMinPos","maxPos","getMaxPos","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","number","isRequired","oneOfType","func","defaultProps","minMonth","maxMonth"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../../components/DatePicker/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { RenderLayer } from '../RenderLayer';\nimport { DropdownContainer } from '../DropdownContainer';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ArrowTriangleUpDownIcon, ArrowChevronDownIcon, ArrowChevronUpIcon } from '../icons/16px';\nimport { isMobile } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './DateSelect.styles';\n\nconst itemHeight = 24;\nconst visibleYearsCount = 11;\nconst itemsToMoveCount = -5;\nconst monthsCount = 12;\nconst defaultMinYear = 1900;\nconst defaultMaxYear = 2100;\n\nexport interface DateSelectProps {\n disabled?: boolean | null;\n onValueChange: (value: number) => void;\n type?: 'month' | 'year';\n value: number;\n width?: number | string;\n minValue?: number;\n maxValue?: number;\n}\n\nexport interface DateSelectState {\n botCapped: boolean;\n current: Nullable<number>;\n height: number;\n opened: boolean;\n pos: number;\n top: number;\n topCapped: boolean;\n nodeTop: number;\n}\n\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateSelect extends React.PureComponent<DateSelectProps, DateSelectState> {\n public static __KONTUR_REACT_UI__ = 'DateSelect';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n type: PropTypes.string,\n\n value: PropTypes.number.isRequired,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onValueChange: PropTypes.func,\n\n minValue: PropTypes.number,\n\n maxValue: PropTypes.number,\n };\n\n public static defaultProps = {\n type: 'year',\n minMonth: 0,\n maxMonth: 11,\n width: 'auto',\n };\n\n public state = {\n botCapped: false,\n current: 0,\n height: 0,\n opened: false,\n pos: 0,\n top: 0,\n topCapped: false,\n nodeTop: Infinity,\n };\n\n private theme!: Theme;\n private readonly locale!: DatePickerLocale;\n private root: HTMLElement | null = null;\n private itemsContainer: HTMLElement | null = null;\n private listener: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private timeout: NodeJS.Timeout | undefined;\n private longClickTimer = 0;\n private setPositionRepeatTimer = 0;\n private yearStep = 3;\n private touchStartY: Nullable<number> = null;\n\n public componentDidUpdate() {\n this.setNodeTop();\n }\n\n public componentDidMount() {\n this.listener = LayoutEvents.addListener(this.setNodeTop);\n this.setNodeTop();\n window.addEventListener('keydown', this.handleKey);\n }\n\n public componentWillUnmount() {\n if (this.listener) {\n this.listener.remove();\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n if (this.longClickTimer) {\n clearTimeout(this.longClickTimer);\n }\n if (this.setPositionRepeatTimer) {\n clearTimeout(this.setPositionRepeatTimer);\n }\n window.removeEventListener('keydown', this.handleKey);\n }\n\n /**\n * @public\n */\n public open = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n return;\n }\n\n this.setPosition(0);\n this.setState({\n opened: true,\n current: 0,\n });\n };\n\n /**\n * @public\n */\n public close = () => {\n if (!this.state.opened) {\n return;\n }\n\n this.setState({ opened: false });\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { width, disabled } = this.props;\n const rootProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.disabled()]: Boolean(disabled),\n }),\n style: { width },\n ref: this.refRoot,\n };\n return (\n <span {...rootProps}>\n <div data-tid=\"DateSelect__caption\" className={styles.caption()} onClick={this.open}>\n {this.getItem(0)}\n <div\n className={cx({\n [styles.arrow(this.theme)]: true,\n [styles.arrowDisabled()]: Boolean(disabled),\n })}\n >\n <ArrowTriangleUpDownIcon size={12} />\n </div>\n </div>\n {this.state.opened && this.renderMenu()}\n </span>\n );\n }\n\n private refRoot = (element: HTMLElement | null) => {\n this.root = element;\n };\n\n private setNodeTop = () => {\n const root = this.root;\n if (!root) {\n return;\n }\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n this.timeout = setTimeout(() =>\n this.setState({\n nodeTop: root.getBoundingClientRect().top,\n }),\n );\n };\n\n private disableItems(index: number) {\n const value = this.props.value + index;\n if (this.props.maxValue != null && this.props.minValue != null) {\n return value > this.props.maxValue || value < this.props.minValue;\n }\n if (this.props.minValue != null) {\n return value < this.props.minValue;\n }\n if (this.props.maxValue != null) {\n return value > this.props.maxValue;\n }\n }\n\n private renderMenu(): React.ReactNode {\n const { top, height, nodeTop } = this.state;\n\n let shift = this.state.pos % itemHeight;\n if (shift < 0) {\n shift += itemHeight;\n }\n\n const from = (this.state.pos - shift + top) / itemHeight;\n const to = from + Math.ceil((height + shift) / itemHeight);\n const items = [];\n\n for (let i = from; i < to; ++i) {\n const disableItems = this.disableItems(i) || false;\n const className = cx({\n [styles.menuItem(this.theme)]: true,\n [styles.menuItemSelected(this.theme)]: i === 0,\n [styles.menuItemActive(this.theme)]: i === this.state.current,\n [styles.menuItemDisabled(this.theme)]: disableItems,\n });\n const clickHandler = {\n onMouseDown: preventDefault,\n onClick: this.handleItemClick(i),\n };\n items.push(\n <div\n data-tid=\"DateSelect__menuItem\"\n data-prop-disabled={disableItems}\n key={i}\n className={className}\n onMouseEnter={() => this.setState({ current: i })}\n onMouseLeave={() => this.setState({ current: null })}\n {...clickHandler}\n >\n {this.getItem(i)}\n </div>,\n );\n }\n const style: {\n left?: number | string;\n right?: number | string;\n top: number;\n width?: number | string;\n } = {\n top: top - 5,\n left: 0,\n right: 0,\n };\n\n const shiftStyle: React.CSSProperties = {\n position: 'relative',\n top: -shift,\n };\n\n const holderClass = cx({\n [styles.menuHolder(this.theme)]: true,\n [styles.isTopCapped()]: this.state.topCapped,\n [styles.isBotCapped()]: this.state.botCapped,\n });\n\n let dropdownOffset = -itemHeight;\n if (nodeTop < -top) {\n const overflowOffsetDelta = this.state.topCapped ? 6 : 17;\n dropdownOffset -= nodeTop + top - overflowOffsetDelta;\n }\n\n return (\n <RenderLayer onClickOutside={this.close} onFocusOutside={this.close} active>\n <div>\n <DropdownContainer getParent={this.getAnchor} offsetY={dropdownOffset} offsetX={-10}>\n <div className={holderClass} style={style}>\n {!this.state.topCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuUp())}\n onClick={this.handleUp}\n onMouseDown={this.handleLongClickUp}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickUp}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronUpIcon />\n </span>\n </div>\n )}\n <div className={styles.itemsHolder()} style={{ height }}>\n <div ref={this.refItemsContainer} style={shiftStyle}>\n {items}\n </div>\n </div>\n {!this.state.botCapped && (\n <div\n className={cx(styles.menu(this.theme), styles.menuDown())}\n onClick={this.handleDown}\n onMouseDown={this.handleLongClickDown}\n onMouseUp={this.handleLongClickStop}\n onMouseLeave={this.handleLongClickStop}\n onTouchStart={this.handleLongClickDown}\n onTouchEnd={this.handleLongClickStop}\n >\n <span>\n <ArrowChevronDownIcon />\n </span>\n </div>\n )}\n </div>\n </DropdownContainer>\n </div>\n </RenderLayer>\n );\n }\n\n private refItemsContainer = (element: HTMLElement | null) => {\n if (!this.itemsContainer && element) {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('wheel', this.handleWheel);\n }\n\n if (isMobile) {\n if (!this.itemsContainer && element) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.handleTouchMove);\n }\n if (this.itemsContainer && !element) {\n this.itemsContainer.removeEventListener('touchstart', this.handleTouchStart);\n this.itemsContainer.removeEventListener('touchmove', this.handleTouchMove);\n }\n }\n\n this.itemsContainer = element;\n };\n\n private handleLongClickUp = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos - itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickDown = (event: React.MouseEvent | React.TouchEvent) => {\n event.preventDefault();\n this.longClickTimer = window.setTimeout(() => {\n this.setPositionRepeatTimer = window.setInterval(() => this.setPosition(this.state.pos + itemHeight), 100);\n }, 200);\n };\n\n private handleLongClickStop = () => {\n clearTimeout(this.longClickTimer);\n clearTimeout(this.setPositionRepeatTimer);\n };\n\n private getAnchor = () => this.root;\n\n private handleWheel = (event: Event) => {\n if (!(event instanceof WheelEvent)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n\n let deltaY = event.deltaY;\n if (event.deltaMode === 1) {\n deltaY *= itemHeight;\n } else if (event.deltaMode === 2) {\n deltaY *= itemHeight * 4;\n }\n const pos = this.state.pos + deltaY;\n this.setPosition(pos);\n };\n\n private handleTouchStart = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n this.touchStartY = event.targetTouches[0].clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!(event instanceof TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n const pixelRatio = window.devicePixelRatio;\n\n const deltaY = ((this.touchStartY || 0) - clientY) / pixelRatio;\n const pos = this.state.pos + deltaY + deltaY / itemHeight;\n\n this.touchStartY = clientY;\n\n this.setPosition(pos);\n };\n\n private handleItemClick = (shift: number) => {\n return (e: React.MouseEvent<HTMLElement>) => {\n const value = this.props.value + shift;\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n this.setState({ opened: false });\n };\n };\n\n private handleKey = (e: KeyboardEvent) => {\n if (this.state.opened && isKeyEscape(e)) {\n e.preventDefault();\n this.close();\n e.stopPropagation();\n }\n };\n\n private handleUp = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos - itemHeight * this.yearStep);\n };\n\n private handleDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setPosition(this.state.pos + itemHeight * this.yearStep);\n };\n\n private getItem(index: number) {\n const value = this.props.value + index;\n if (this.props.type === 'month') {\n return this.locale.months[value];\n }\n return value;\n }\n\n private setPosition(pos: number) {\n let top = itemsToMoveCount * itemHeight;\n let height = visibleYearsCount * itemHeight;\n if (this.props.type === 'month') {\n top = -this.props.value * itemHeight;\n height = monthsCount * itemHeight;\n }\n\n const minPos = this.getMinPos() - top;\n const maxPos = this.getMaxPos() - top - height + itemHeight;\n if (minPos >= pos) {\n pos = minPos;\n }\n if (maxPos <= pos) {\n pos = maxPos;\n }\n const topCapped = pos <= minPos;\n const botCapped = pos >= maxPos;\n\n this.setState({ pos, top, height, topCapped, botCapped });\n }\n\n private getMinPos() {\n if (this.props.type === 'month') {\n return -this.props.value * itemHeight;\n } else if (this.props.type === 'year') {\n return ((this.props.minValue || defaultMinYear) - this.props.value) * itemHeight;\n }\n return -Infinity; // Be defensive.\n }\n\n private getMaxPos() {\n if (this.props.type === 'month') {\n return (visibleYearsCount - this.props.value) * itemHeight;\n } else if (this.props.type === 'year') {\n return ((this.props.maxValue || defaultMaxYear) - this.props.value) * itemHeight;\n }\n return Infinity; // Be defensive.\n }\n}\n\nfunction preventDefault(e: React.SyntheticEvent) {\n e.preventDefault();\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { Nullable } from '../../typings/utility-types';
3
- declare type DOMNode = Element | Text | null;
4
3
  export interface DropdownContainerPosition {
5
4
  top: Nullable<number>;
6
5
  bottom: Nullable<number>;
@@ -9,7 +8,7 @@ export interface DropdownContainerPosition {
9
8
  }
10
9
  export interface DropdownContainerProps {
11
10
  align?: 'left' | 'right';
12
- getParent: () => DOMNode;
11
+ getParent: () => Nullable<HTMLElement>;
13
12
  children?: React.ReactNode;
14
13
  disablePortal?: boolean;
15
14
  offsetY?: number;
@@ -20,7 +19,7 @@ export interface DropdownContainerState {
20
19
  minWidth: number;
21
20
  isDocumentElementRoot?: boolean;
22
21
  }
23
- export declare class DropdownContainer extends React.Component<DropdownContainerProps, DropdownContainerState> {
22
+ export declare class DropdownContainer extends React.PureComponent<DropdownContainerProps, DropdownContainerState> {
24
23
  static __KONTUR_REACT_UI__: string;
25
24
  static defaultProps: {
26
25
  align: string;
@@ -33,14 +32,12 @@ export declare class DropdownContainer extends React.Component<DropdownContainer
33
32
  private dom;
34
33
  private layoutSub;
35
34
  componentDidMount(): void;
36
- UNSAFE_componentWillMount(): void;
37
35
  componentWillUnmount(): void;
38
36
  render(): JSX.Element;
39
- private ref;
37
+ private ZIndexRef;
40
38
  private isElement;
41
- private position;
39
+ position: () => void;
42
40
  private getHeight;
43
41
  private getMinWidth;
44
42
  private convertToRelativePosition;
45
43
  }
46
- export {};
@@ -1,12 +1,13 @@
1
1
  "use strict";var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.DropdownContainer = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
- var _reactDom = require("react-dom");
3
2
 
4
3
  var LayoutEvents = _interopRequireWildcard(require("../../lib/LayoutEvents"));
5
4
  var _RenderContainer = require("../RenderContainer");
6
5
  var _ZIndex = require("../ZIndex");
7
- var _createPropsGetter = require("../../lib/createPropsGetter");var
6
+ var _createPropsGetter = require("../../lib/createPropsGetter");
8
7
 
8
+ var _Emotion = require("../../lib/theming/Emotion");
9
9
 
10
+ var _DropdownContainer = require("./DropdownContainer.styles");var
10
11
 
11
12
 
12
13
 
@@ -30,8 +31,7 @@ var _createPropsGetter = require("../../lib/createPropsGetter");var
30
31
 
31
32
 
32
33
 
33
-
34
- DropdownContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(DropdownContainer, _React$Component);function DropdownContainer() {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.
34
+ DropdownContainer = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(DropdownContainer, _React$PureComponent);function DropdownContainer() {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.
35
35
 
36
36
 
37
37
 
@@ -49,7 +49,7 @@ DropdownContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
49
49
 
50
50
  getProps = (0, _createPropsGetter.createPropsGetter)(DropdownContainer.defaultProps);_this.
51
51
 
52
- dom = null;_this.
52
+ dom = void 0;_this.
53
53
  layoutSub = void 0;_this.
54
54
 
55
55
 
@@ -100,8 +100,11 @@ DropdownContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
100
100
 
101
101
 
102
102
 
103
- ref = function (e) {
104
- _this.dom = e && (0, _reactDom.findDOMNode)(e);
103
+
104
+
105
+
106
+ ZIndexRef = function (element) {
107
+ _this.dom = element;
105
108
  };_this.
106
109
 
107
110
  isElement = function (node) {
@@ -112,7 +115,7 @@ DropdownContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
112
115
  var target = _this.props.getParent();
113
116
  var dom = _this.dom;
114
117
 
115
- if (_this.isElement(target) && dom) {
118
+ if (target && _this.isElement(target) && dom) {
116
119
  var targetRect = target.getBoundingClientRect();var _document =
117
120
  document,body = _document.body,docEl = _document.documentElement;
118
121
 
@@ -174,7 +177,7 @@ DropdownContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
174
177
 
175
178
  getMinWidth = function () {
176
179
  var target = _this.props.getParent();
177
- if (!_this.isElement(target)) {
180
+ if (!target || !_this.isElement(target)) {
178
181
  return 0;
179
182
  }
180
183
  return target.getBoundingClientRect().width;
@@ -184,7 +187,7 @@ DropdownContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
184
187
  var target = _this.props.getParent();var _this$props =
185
188
  _this.props,_this$props$offsetX = _this$props.offsetX,offsetX = _this$props$offsetX === void 0 ? 0 : _this$props$offsetX,_this$props$offsetY2 = _this$props.offsetY,offsetY = _this$props$offsetY2 === void 0 ? 0 : _this$props$offsetY2;var
186
189
  top = position.top,bottom = position.bottom,left = position.left,right = position.right;
187
- if (_this.isElement(target)) {
190
+ if (target && _this.isElement(target)) {
188
191
  var targetHeight = target.getBoundingClientRect().height;
189
192
  return {
190
193
  top: top !== null ? targetHeight + offsetY : null,
@@ -199,4 +202,4 @@ DropdownContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose
199
202
  left: offsetX,
200
203
  right: null };
201
204
 
202
- };return _this;}var _proto = DropdownContainer.prototype;_proto.componentDidMount = function componentDidMount() {this.position();this.layoutSub = LayoutEvents.addListener(this.position);};_proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {var _document2 = document,body = _document2.body,docEl = _document2.documentElement;var htmlPosition = getComputedStyle(docEl).position;var bodyPosition = getComputedStyle(body).position;var hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;var hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';this.setState({ isDocumentElementRoot: hasLimitedHeightRoot || hasStaticRoot });};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutSub) {this.layoutSub.remove();}};_proto.render = function render() {var style = { position: 'absolute', top: '0' };if (this.state.position) {var _this$state$position = this.state.position,top = _this$state$position.top,bottom = _this$state$position.bottom,left = _this$state$position.left,right = _this$state$position.right;style = (0, _extends2.default)({}, style, { top: top !== null ? top : undefined, bottom: bottom !== null ? bottom : undefined, left: left !== null ? left : undefined, right: right !== null ? right : undefined, minWidth: this.state.minWidth });}var content = /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'DropdownContainer', ref: this.ref, style: style }, this.props.children);return this.props.disablePortal ? content : /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, content);};return DropdownContainer;}(_react.default.Component);exports.DropdownContainer = DropdownContainer;DropdownContainer.__KONTUR_REACT_UI__ = 'DropdownContainer';DropdownContainer.defaultProps = { align: 'left', disablePortal: false, offsetX: 0, offsetY: -1 };
205
+ };return _this;}var _proto = DropdownContainer.prototype;_proto.componentDidMount = function componentDidMount() {this.position();this.layoutSub = LayoutEvents.addListener(this.position);var _document2 = document,body = _document2.body,docEl = _document2.documentElement;var htmlPosition = getComputedStyle(docEl).position;var bodyPosition = getComputedStyle(body).position;var hasLimitedHeightRoot = body.scrollHeight > body.clientHeight;var hasStaticRoot = htmlPosition === 'static' && bodyPosition === 'static';this.setState({ isDocumentElementRoot: hasLimitedHeightRoot || hasStaticRoot });};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutSub) {this.layoutSub.remove();}};_proto.render = function render() {var _cx;var style = { position: 'absolute', top: '0' };if (this.state.position) {var _this$state$position = this.state.position,top = _this$state$position.top,bottom = _this$state$position.bottom,left = _this$state$position.left,right = _this$state$position.right;style = (0, _extends2.default)({}, style, { top: top !== null ? top : undefined, bottom: bottom !== null ? bottom : undefined, left: left !== null ? left : undefined, right: right !== null ? right : undefined, minWidth: this.state.minWidth });}var content = /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'DropdownContainer', wrapperRef: this.ZIndexRef, style: style, className: (0, _Emotion.cx)((_cx = {}, _cx[_DropdownContainer.styles.alignRight()] = !this.props.disablePortal && this.props.align === 'right', _cx)) }, this.props.children);return this.props.disablePortal ? content : /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, content);};return DropdownContainer;}(_react.default.PureComponent);exports.DropdownContainer = DropdownContainer;DropdownContainer.__KONTUR_REACT_UI__ = 'DropdownContainer';DropdownContainer.defaultProps = { align: 'left', disablePortal: false, offsetX: 0, offsetY: -1 };
@@ -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","styles","alignRight","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';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './DropdownContainer.styles';\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\n priority={'DropdownContainer'}\n wrapperRef={this.ZIndexRef}\n style={style}\n className={cx({ [styles.alignRight()]: !this.props.disablePortal && this.props.align === 'right' })}\n >\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"]}
@@ -0,0 +1,3 @@
1
+ export declare const styles: {
2
+ alignRight(): string;
3
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject;
2
+
3
+ var styles = (0, _Emotion.memoizeStyle)({
4
+ alignRight: function alignRight() {
5
+ return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n display: flex;\n flex-direction: row-reverse;\n "])));
6
+
7
+
8
+
9
+ } });exports.styles = styles;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["DropdownContainer.styles.ts"],"names":["styles","alignRight","css"],"mappings":"4QAAA,oD;;AAEO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,UADiC,wBACpB;AACX,eAAOC,YAAP;;;;AAID,GANgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n alignRight() {\n return css`\n display: flex;\n flex-direction: row-reverse;\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;