@skbkontur/react-ui 0.0.0-f50cd2db6e → 0.0.0-fed57d84fb

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 (1213) hide show
  1. package/CHANGELOG.md +243 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -1
  4. package/cjs/components/Autocomplete/Autocomplete.js +21 -15
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +7 -8
  7. package/cjs/components/Button/Button.js +9 -12
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +2 -1
  10. package/cjs/components/Button/Button.styles.js +43 -33
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Center/Center.d.ts +3 -0
  13. package/cjs/components/Center/Center.js +8 -3
  14. package/cjs/components/Center/Center.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.d.ts +10 -2
  16. package/cjs/components/Checkbox/Checkbox.js +37 -3
  17. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  18. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
  19. package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
  20. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +3 -3
  22. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  24. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  25. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +5 -2
  26. package/cjs/components/CurrencyInput/CurrencyInput.js +41 -15
  27. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  28. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  29. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  30. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  31. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  32. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  33. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
  34. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  35. package/cjs/components/DateInput/DateInput.d.ts +2 -2
  36. package/cjs/components/DateInput/DateInput.js +5 -1
  37. package/cjs/components/DateInput/DateInput.js.map +1 -1
  38. package/cjs/components/DateInput/DateInput.styles.js +2 -2
  39. package/cjs/components/DateInput/DateInput.styles.js.map +1 -1
  40. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  41. package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
  42. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  43. package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
  44. package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
  45. package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
  46. package/cjs/components/DatePicker/DatePicker.d.ts +8 -6
  47. package/cjs/components/DatePicker/DatePicker.js +28 -12
  48. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  49. package/cjs/components/DatePicker/Picker.js +7 -2
  50. package/cjs/components/DatePicker/Picker.js.map +1 -1
  51. package/cjs/components/Dropdown/Dropdown.d.ts +5 -2
  52. package/cjs/components/Dropdown/Dropdown.js +7 -2
  53. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  54. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -6
  55. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  56. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  57. package/cjs/components/FileUploader/FileUploader.d.ts +47 -0
  58. package/cjs/components/FileUploader/FileUploader.js +292 -0
  59. package/cjs/components/FileUploader/FileUploader.js.map +1 -0
  60. package/cjs/components/FileUploader/FileUploader.md +67 -0
  61. package/cjs/components/FileUploader/FileUploader.styles.d.ts +22 -0
  62. package/cjs/components/FileUploader/FileUploader.styles.js +173 -0
  63. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -0
  64. package/cjs/components/FileUploader/index.d.ts +5 -0
  65. package/cjs/components/FileUploader/index.js +5 -0
  66. package/cjs/components/FileUploader/index.js.map +1 -0
  67. package/cjs/components/FileUploader/locale/index.d.ts +4 -0
  68. package/cjs/components/FileUploader/locale/index.js +11 -0
  69. package/cjs/components/FileUploader/locale/index.js.map +1 -0
  70. package/cjs/components/FileUploader/locale/locales/en.d.ts +2 -0
  71. package/cjs/components/FileUploader/locale/locales/en.js +7 -0
  72. package/cjs/components/FileUploader/locale/locales/en.js.map +1 -0
  73. package/cjs/components/FileUploader/locale/locales/ru.d.ts +2 -0
  74. package/cjs/components/FileUploader/locale/locales/ru.js +7 -0
  75. package/cjs/components/FileUploader/locale/locales/ru.js.map +1 -0
  76. package/cjs/components/FileUploader/locale/types.d.ts +6 -0
  77. package/cjs/components/FileUploader/locale/types.js +1 -0
  78. package/cjs/components/FileUploader/locale/types.js.map +1 -0
  79. package/cjs/components/FxInput/FxInput.d.ts +3 -0
  80. package/cjs/components/FxInput/FxInput.js +7 -3
  81. package/cjs/components/FxInput/FxInput.js.map +1 -1
  82. package/cjs/components/Gapped/Gapped.d.ts +4 -0
  83. package/cjs/components/Gapped/Gapped.js +13 -7
  84. package/cjs/components/Gapped/Gapped.js.map +1 -1
  85. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +113 -0
  86. package/cjs/components/GlobalLoader/GlobalLoader.js +271 -0
  87. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -0
  88. package/cjs/components/GlobalLoader/GlobalLoader.md +98 -0
  89. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +13 -0
  90. package/cjs/components/GlobalLoader/GlobalLoaderView.js +73 -0
  91. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -0
  92. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.d.ts +16 -0
  93. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +190 -0
  94. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -0
  95. package/cjs/components/GlobalLoader/index.d.ts +1 -0
  96. package/cjs/components/GlobalLoader/index.js +1 -0
  97. package/cjs/components/GlobalLoader/index.js.map +1 -0
  98. package/cjs/components/GlobalLoader/useParams.d.ts +22 -0
  99. package/cjs/components/GlobalLoader/useParams.js +45 -0
  100. package/cjs/components/GlobalLoader/useParams.js.map +1 -0
  101. package/cjs/components/Group/Group.d.ts +3 -0
  102. package/cjs/components/Group/Group.js +80 -33
  103. package/cjs/components/Group/Group.js.map +1 -1
  104. package/cjs/components/Hint/Hint.d.ts +8 -3
  105. package/cjs/components/Hint/Hint.js +9 -17
  106. package/cjs/components/Hint/Hint.js.map +1 -1
  107. package/cjs/components/Input/Input.d.ts +7 -8
  108. package/cjs/components/Input/Input.js +22 -25
  109. package/cjs/components/Input/Input.js.map +1 -1
  110. package/cjs/components/Kebab/Kebab.d.ts +4 -15
  111. package/cjs/components/Kebab/Kebab.js +5 -29
  112. package/cjs/components/Kebab/Kebab.js.map +1 -1
  113. package/cjs/components/Link/Link.d.ts +4 -1
  114. package/cjs/components/Link/Link.js +9 -5
  115. package/cjs/components/Link/Link.js.map +1 -1
  116. package/cjs/components/Link/Link.styles.d.ts +1 -1
  117. package/cjs/components/Link/Link.styles.js +3 -3
  118. package/cjs/components/Link/Link.styles.js.map +1 -1
  119. package/cjs/components/Loader/Loader.d.ts +4 -0
  120. package/cjs/components/Loader/Loader.js +15 -10
  121. package/cjs/components/Loader/Loader.js.map +1 -1
  122. package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
  123. package/cjs/components/MenuHeader/MenuHeader.js +7 -2
  124. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  125. package/cjs/components/MenuItem/MenuItem.d.ts +6 -2
  126. package/cjs/components/MenuItem/MenuItem.js +12 -9
  127. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  128. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  129. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  130. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  131. package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
  132. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  133. package/cjs/components/Modal/Modal.d.ts +6 -1
  134. package/cjs/components/Modal/Modal.js +13 -6
  135. package/cjs/components/Modal/Modal.js.map +1 -1
  136. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  137. package/cjs/components/Modal/Modal.styles.js +26 -14
  138. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  139. package/cjs/components/Modal/ModalClose.js +3 -2
  140. package/cjs/components/Modal/ModalClose.js.map +1 -1
  141. package/cjs/components/Modal/ModalFooter.d.ts +3 -0
  142. package/cjs/components/Modal/ModalFooter.js +10 -4
  143. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  144. package/cjs/components/Modal/ModalHeader.d.ts +3 -0
  145. package/cjs/components/Modal/ModalHeader.js +10 -4
  146. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  147. package/cjs/components/Paging/Paging.d.ts +20 -3
  148. package/cjs/components/Paging/Paging.js +29 -10
  149. package/cjs/components/Paging/Paging.js.map +1 -1
  150. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  151. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  152. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  153. package/cjs/components/PasswordInput/PasswordInput.d.ts +7 -0
  154. package/cjs/components/PasswordInput/PasswordInput.js +36 -11
  155. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  156. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  157. package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
  158. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  159. package/cjs/components/Radio/Radio.d.ts +5 -2
  160. package/cjs/components/Radio/Radio.js +7 -3
  161. package/cjs/components/Radio/Radio.js.map +1 -1
  162. package/cjs/components/Radio/Radio.styles.js +4 -7
  163. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  164. package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -2
  165. package/cjs/components/RadioGroup/RadioGroup.js +22 -5
  166. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  167. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  168. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  169. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  170. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +14 -7
  171. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  172. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js +1 -1
  173. package/cjs/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
  174. package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
  175. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  176. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  177. package/cjs/components/ScrollContainer/ScrollContainer.js +19 -7
  178. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  179. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  180. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
  181. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  182. package/cjs/components/Select/Select.d.ts +13 -8
  183. package/cjs/components/Select/Select.js +57 -18
  184. package/cjs/components/Select/Select.js.map +1 -1
  185. package/cjs/components/SidePage/SidePage.d.ts +8 -1
  186. package/cjs/components/SidePage/SidePage.js +25 -11
  187. package/cjs/components/SidePage/SidePage.js.map +1 -1
  188. package/cjs/components/SidePage/SidePage.styles.d.ts +1 -0
  189. package/cjs/components/SidePage/SidePage.styles.js +14 -6
  190. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  191. package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
  192. package/cjs/components/SidePage/SidePageBody.js +10 -3
  193. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  194. package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
  195. package/cjs/components/SidePage/SidePageContainer.js +7 -2
  196. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  197. package/cjs/components/SidePage/SidePageContext.d.ts +2 -0
  198. package/cjs/components/SidePage/SidePageContext.js +3 -0
  199. package/cjs/components/SidePage/SidePageContext.js.map +1 -1
  200. package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
  201. package/cjs/components/SidePage/SidePageFooter.js +16 -6
  202. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  203. package/cjs/components/SidePage/SidePageHeader.d.ts +7 -0
  204. package/cjs/components/SidePage/SidePageHeader.js +44 -28
  205. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  206. package/cjs/components/Spinner/Spinner.d.ts +11 -1
  207. package/cjs/components/Spinner/Spinner.js +28 -9
  208. package/cjs/components/Spinner/Spinner.js.map +1 -1
  209. package/cjs/components/Spinner/Spinner.md +1 -0
  210. package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
  211. package/cjs/components/Spinner/Spinner.styles.js +14 -11
  212. package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
  213. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  214. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  215. package/cjs/components/Sticky/Sticky.d.ts +9 -1
  216. package/cjs/components/Sticky/Sticky.js +16 -6
  217. package/cjs/components/Sticky/Sticky.js.map +1 -1
  218. package/cjs/components/Switcher/Switcher.d.ts +5 -1
  219. package/cjs/components/Switcher/Switcher.js +8 -3
  220. package/cjs/components/Switcher/Switcher.js.map +1 -1
  221. package/cjs/components/Switcher/Switcher.styles.js +5 -3
  222. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  223. package/cjs/components/Tabs/Indicator.js +6 -3
  224. package/cjs/components/Tabs/Indicator.js.map +1 -1
  225. package/cjs/components/Tabs/Tab.d.ts +5 -2
  226. package/cjs/components/Tabs/Tab.js +7 -2
  227. package/cjs/components/Tabs/Tab.js.map +1 -1
  228. package/cjs/components/Tabs/Tabs.d.ts +7 -1
  229. package/cjs/components/Tabs/Tabs.js +20 -7
  230. package/cjs/components/Tabs/Tabs.js.map +1 -1
  231. package/cjs/components/Textarea/Textarea.d.ts +10 -6
  232. package/cjs/components/Textarea/Textarea.js +14 -9
  233. package/cjs/components/Textarea/Textarea.js.map +1 -1
  234. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  235. package/cjs/components/Textarea/TextareaCounter.js +25 -16
  236. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  237. package/cjs/components/Toast/Toast.d.ts +6 -0
  238. package/cjs/components/Toast/Toast.js +9 -2
  239. package/cjs/components/Toast/Toast.js.map +1 -1
  240. package/cjs/components/Toast/Toast.styles.js +2 -2
  241. package/cjs/components/Toast/Toast.styles.js.map +1 -1
  242. package/cjs/components/Toast/ToastStatic.js +1 -1
  243. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  244. package/cjs/components/Toast/ToastView.js +6 -5
  245. package/cjs/components/Toast/ToastView.js.map +1 -1
  246. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  247. package/cjs/components/Toast/ToastView.styles.js +3 -2
  248. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  249. package/cjs/components/Toggle/Toggle.d.ts +6 -3
  250. package/cjs/components/Toggle/Toggle.js +7 -3
  251. package/cjs/components/Toggle/Toggle.js.map +1 -1
  252. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  253. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  254. package/cjs/components/Token/Token.d.ts +5 -2
  255. package/cjs/components/Token/Token.js +20 -3
  256. package/cjs/components/Token/Token.js.map +1 -1
  257. package/cjs/components/Token/Token.styles.js +13 -6
  258. package/cjs/components/Token/Token.styles.js.map +1 -1
  259. package/cjs/components/TokenInput/TextWidthHelper.js +2 -1
  260. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  261. package/cjs/components/TokenInput/TokenInput.d.ts +16 -2
  262. package/cjs/components/TokenInput/TokenInput.js +37 -14
  263. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  264. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  265. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  266. package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
  267. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  268. package/cjs/components/Tooltip/Tooltip.d.ts +19 -24
  269. package/cjs/components/Tooltip/Tooltip.js +44 -37
  270. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  271. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +6 -3
  272. package/cjs/components/TooltipMenu/TooltipMenu.js +9 -2
  273. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  274. package/cjs/hooks/useDrop.d.ts +11 -0
  275. package/cjs/hooks/useDrop.js +77 -0
  276. package/cjs/hooks/useDrop.js.map +1 -0
  277. package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -0
  278. package/cjs/hooks/useEffectWithoutInitCall.js +13 -0
  279. package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -0
  280. package/cjs/hooks/useMemoObject.d.ts +1 -0
  281. package/cjs/hooks/useMemoObject.js +5 -0
  282. package/cjs/hooks/useMemoObject.js.map +1 -0
  283. package/cjs/index.d.ts +5 -0
  284. package/cjs/index.js +6 -1
  285. package/cjs/index.js.map +1 -1
  286. package/cjs/internal/BGRuler.js +3 -1
  287. package/cjs/internal/BGRuler.js.map +1 -1
  288. package/cjs/internal/Calendar/Calendar.d.ts +6 -0
  289. package/cjs/internal/Calendar/Calendar.js +12 -5
  290. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  291. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  292. package/cjs/internal/Calendar/MonthView.js +5 -4
  293. package/cjs/internal/Calendar/MonthView.js.map +1 -1
  294. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  295. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  296. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  297. package/cjs/internal/CommonWrapper/CommonWrapper.js +22 -6
  298. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  299. package/cjs/internal/ComponentTable.d.ts +4 -2
  300. package/cjs/internal/ComponentTable.js +1 -0
  301. package/cjs/internal/ComponentTable.js.map +1 -1
  302. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  303. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +28 -5
  304. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  305. package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
  306. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  307. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  308. package/cjs/internal/CustomComboBox/CustomComboBox.js +9 -4
  309. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  310. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  311. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  312. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  313. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  314. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  315. package/cjs/internal/DataTids/DataTids.js +46 -0
  316. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  317. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  318. package/cjs/internal/DataTids/DataTids.styles.js +41 -0
  319. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  320. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  321. package/cjs/internal/DataTids/componentsDataTids.js +16 -0
  322. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  323. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
  324. package/cjs/internal/DateSelect/DateSelect.js +30 -13
  325. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  326. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +2 -1
  327. package/cjs/internal/DropdownContainer/DropdownContainer.js +28 -18
  328. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  329. package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  330. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +9 -0
  331. package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -0
  332. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
  333. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +16 -0
  334. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -0
  335. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
  336. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +108 -0
  337. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -0
  338. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +19 -0
  339. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +197 -0
  340. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -0
  341. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
  342. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +68 -0
  343. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -0
  344. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +13 -0
  345. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +34 -0
  346. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  347. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +5 -0
  348. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +22 -0
  349. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
  350. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
  351. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +16 -0
  352. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +1 -0
  353. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +14 -0
  354. package/cjs/internal/FileUploaderControl/fileUtils.js +26 -0
  355. package/cjs/internal/FileUploaderControl/fileUtils.js.map +1 -0
  356. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
  357. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +4 -0
  358. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +1 -0
  359. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
  360. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +51 -0
  361. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +1 -0
  362. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
  363. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +23 -0
  364. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -0
  365. package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -1
  366. package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
  367. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  368. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
  369. package/cjs/internal/InternalMenu/InternalMenu.js +13 -14
  370. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  371. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
  372. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  373. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  374. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  375. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  376. package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
  377. package/cjs/internal/MaskedInput/MaskedInput.js +16 -5
  378. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  379. package/cjs/internal/Menu/Menu.d.ts +5 -0
  380. package/cjs/internal/Menu/Menu.js +54 -23
  381. package/cjs/internal/Menu/Menu.js.map +1 -1
  382. package/cjs/internal/Menu/Menu.styles.d.ts +3 -0
  383. package/cjs/internal/Menu/Menu.styles.js +27 -5
  384. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  385. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  386. package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
  387. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  388. package/cjs/internal/Popup/Popup.d.ts +12 -6
  389. package/cjs/internal/Popup/Popup.js +38 -39
  390. package/cjs/internal/Popup/Popup.js.map +1 -1
  391. package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
  392. package/cjs/internal/Popup/PopupHelper.js +4 -2
  393. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  394. package/cjs/internal/Popup/PopupPin.js +2 -1
  395. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  396. package/cjs/internal/Popup/types.d.ts +2 -0
  397. package/cjs/internal/Popup/types.js +1 -0
  398. package/cjs/internal/Popup/types.js.map +1 -0
  399. package/cjs/internal/PopupMenu/PopupMenu.d.ts +11 -3
  400. package/cjs/internal/PopupMenu/PopupMenu.js +39 -7
  401. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  402. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  403. package/cjs/internal/PopupMenu/validatePositions.js +8 -10
  404. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  405. package/cjs/internal/RenderContainer/RenderContainer.js +9 -0
  406. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  407. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +2 -0
  408. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  409. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
  410. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  411. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  412. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  413. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
  414. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +36 -0
  415. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -0
  416. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  417. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +23 -0
  418. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -0
  419. package/cjs/internal/ThemePlayground/CheckboxPlayground.js +1 -0
  420. package/cjs/internal/ThemePlayground/CheckboxPlayground.js.map +1 -1
  421. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -0
  422. package/cjs/internal/ThemePlayground/Playground.js +20 -21
  423. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  424. package/cjs/internal/ThemePlayground/RadioPlayground.js.map +1 -1
  425. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  426. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  427. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  428. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -2
  429. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +11 -14
  430. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  431. package/cjs/internal/ThemePlayground/ThemeEditor.js +8 -1
  432. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  433. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  434. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  435. package/cjs/internal/ThemePlayground/constants.d.ts +2 -1
  436. package/cjs/internal/ThemePlayground/constants.js +4 -2
  437. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  438. package/cjs/internal/ThemePlayground/darkTheme.d.ts +14 -0
  439. package/cjs/internal/ThemePlayground/darkTheme.js +14 -0
  440. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  441. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +42 -42
  442. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  443. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +4 -2
  444. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js +37 -22
  445. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js.map +1 -1
  446. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  447. package/cjs/internal/ThemeShowcase/VariablesCollector.js +10 -6
  448. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  449. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +3 -1
  450. package/cjs/internal/ZIndex/ZIndexStorage.js +14 -6
  451. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  452. package/cjs/internal/icons/16px/index.d.ts +19 -16
  453. package/cjs/internal/icons/16px/index.js +86 -37
  454. package/cjs/internal/icons/16px/index.js.map +1 -1
  455. package/cjs/internal/icons/20px/svg.js +6 -0
  456. package/cjs/internal/icons/20px/svg.js.map +1 -1
  457. package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
  458. package/cjs/internal/icons/SpinnerIcon.js +7 -4
  459. package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
  460. package/cjs/internal/themes/DarkTheme.d.ts +34 -0
  461. package/cjs/internal/themes/DarkTheme.js +55 -3
  462. package/cjs/internal/themes/DarkTheme.js.map +1 -1
  463. package/cjs/internal/themes/DefaultTheme.d.ts +62 -4
  464. package/cjs/internal/themes/DefaultTheme.js +119 -18
  465. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  466. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  467. package/cjs/internal/themes/NotFlat.js +12 -2
  468. package/cjs/internal/themes/NotFlat.js.map +1 -1
  469. package/cjs/internal/themes/OldColors.d.ts +6 -0
  470. package/cjs/internal/themes/OldColors.js +35 -17
  471. package/cjs/internal/themes/OldColors.js.map +1 -1
  472. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  473. package/cjs/internal/themes/Theme2022.js +100 -0
  474. package/cjs/internal/themes/Theme2022.js.map +1 -0
  475. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  476. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  477. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  478. package/cjs/lib/ConditionalHandler.d.ts +3 -2
  479. package/cjs/lib/ConditionalHandler.js +5 -3
  480. package/cjs/lib/ConditionalHandler.js.map +1 -1
  481. package/cjs/lib/InstanceWithAnchorElement.d.ts +5 -0
  482. package/cjs/lib/InstanceWithAnchorElement.js +9 -0
  483. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -0
  484. package/cjs/lib/ModalStack.d.ts +1 -1
  485. package/cjs/lib/ModalStack.js +16 -17
  486. package/cjs/lib/ModalStack.js.map +1 -1
  487. package/cjs/lib/SSRSafe.d.ts +1 -0
  488. package/cjs/lib/SSRSafe.js +9 -1
  489. package/cjs/lib/SSRSafe.js.map +1 -1
  490. package/cjs/lib/animation/index.d.ts +1 -1
  491. package/cjs/lib/animation/index.js +3 -3
  492. package/cjs/lib/animation/index.js.map +1 -1
  493. package/cjs/lib/date/InternalDate.js +23 -9
  494. package/cjs/lib/date/InternalDate.js.map +1 -1
  495. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  496. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  497. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  498. package/cjs/lib/date/InternalDateGetter.js +27 -7
  499. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  500. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  501. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  502. package/cjs/lib/date/InternalDateValidator.js +52 -17
  503. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  504. package/cjs/lib/date/types.d.ts +4 -0
  505. package/cjs/lib/date/types.js.map +1 -1
  506. package/cjs/lib/dom/getDOMRect.d.ts +11 -0
  507. package/cjs/lib/dom/getDOMRect.js +36 -0
  508. package/cjs/lib/dom/getDOMRect.js.map +1 -0
  509. package/cjs/lib/events/MouseDrag.js +5 -1
  510. package/cjs/lib/events/MouseDrag.js.map +1 -1
  511. package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  512. package/cjs/lib/events/keyboard/KeyboardMapKeys.js +1 -0
  513. package/cjs/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  514. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  515. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  516. package/cjs/lib/listenFocusOutside.js +1 -1
  517. package/cjs/lib/listenFocusOutside.js.map +1 -1
  518. package/cjs/lib/locale/types.d.ts +2 -0
  519. package/cjs/lib/locale/types.js +2 -0
  520. package/cjs/lib/locale/types.js.map +1 -1
  521. package/cjs/lib/locale/useLocaleForControl.d.ts +3 -0
  522. package/cjs/lib/locale/useLocaleForControl.js +14 -0
  523. package/cjs/lib/locale/useLocaleForControl.js.map +1 -0
  524. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  525. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  526. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  527. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  528. package/cjs/lib/rootNode/getRootNode.js +44 -12
  529. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  530. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +20 -1
  531. package/cjs/lib/rootNode/rootNodeDecorator.js +42 -5
  532. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  533. package/cjs/lib/stringUtils.d.ts +1 -0
  534. package/cjs/lib/stringUtils.js +15 -0
  535. package/cjs/lib/stringUtils.js.map +1 -0
  536. package/cjs/lib/styles/ColorFactory.js +9 -9
  537. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  538. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  539. package/cjs/lib/styles/ColorHelpers.js +33 -10
  540. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  541. package/cjs/lib/styles/ColorObject.js +3 -2
  542. package/cjs/lib/styles/ColorObject.js.map +1 -1
  543. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  544. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  545. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  546. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  547. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  548. package/cjs/lib/theming/AnimationKeyframes.js +1 -1
  549. package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
  550. package/cjs/lib/theming/Emotion.js +5 -2
  551. package/cjs/lib/theming/Emotion.js.map +1 -1
  552. package/cjs/lib/theming/ThemeFactory.d.ts +1 -1
  553. package/cjs/lib/theming/ThemeFactory.js +9 -4
  554. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  555. package/cjs/lib/theming/ThemeHelpers.d.ts +1 -0
  556. package/cjs/lib/theming/ThemeHelpers.js +16 -2
  557. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  558. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  559. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  560. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  561. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  562. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  563. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  564. package/cjs/lib/theming/useTheme.d.ts +1 -0
  565. package/cjs/lib/theming/useTheme.js +7 -0
  566. package/cjs/lib/theming/useTheme.js.map +1 -0
  567. package/cjs/lib/uidUtils.d.ts +1 -0
  568. package/cjs/lib/uidUtils.js +5 -0
  569. package/cjs/lib/uidUtils.js.map +1 -0
  570. package/cjs/lib/utils.d.ts +48 -0
  571. package/cjs/lib/utils.js +117 -3
  572. package/cjs/lib/utils.js.map +1 -1
  573. package/cjs/typings/html-props.d.ts +123 -0
  574. package/components/Autocomplete/Autocomplete/Autocomplete.js +18 -20
  575. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  576. package/components/Autocomplete/Autocomplete.d.ts +3 -1
  577. package/components/Button/Button/Button.js +13 -20
  578. package/components/Button/Button/Button.js.map +1 -1
  579. package/components/Button/Button.d.ts +7 -8
  580. package/components/Button/Button.styles/Button.styles.js +35 -32
  581. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  582. package/components/Button/Button.styles.d.ts +2 -1
  583. package/components/Center/Center/Center.js +10 -5
  584. package/components/Center/Center/Center.js.map +1 -1
  585. package/components/Center/Center.d.ts +3 -0
  586. package/components/Checkbox/Checkbox/Checkbox.js +33 -2
  587. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  588. package/components/Checkbox/Checkbox.d.ts +10 -2
  589. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
  590. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  591. package/components/Checkbox/Checkbox.styles.d.ts +1 -0
  592. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  593. package/components/ComboBox/ComboBox.d.ts +3 -3
  594. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  595. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  596. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +45 -22
  597. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  598. package/components/CurrencyInput/CurrencyInput.d.ts +5 -2
  599. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  600. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  601. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  602. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  603. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
  604. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  605. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  606. package/components/DateInput/DateInput/DateInput.js +9 -1
  607. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  608. package/components/DateInput/DateInput.d.ts +2 -2
  609. package/components/DateInput/DateInput.styles/DateInput.styles.js +2 -2
  610. package/components/DateInput/DateInput.styles/DateInput.styles.js.map +1 -1
  611. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
  612. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  613. package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  614. package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
  615. package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
  616. package/components/DateInput/helpers/inputNumber.d.ts +1 -1
  617. package/components/DatePicker/DatePicker/DatePicker.js +25 -15
  618. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  619. package/components/DatePicker/DatePicker.d.ts +8 -6
  620. package/components/DatePicker/Picker/Picker.js +3 -1
  621. package/components/DatePicker/Picker/Picker.js.map +1 -1
  622. package/components/Dropdown/Dropdown/Dropdown.js +9 -5
  623. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  624. package/components/Dropdown/Dropdown.d.ts +5 -2
  625. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  626. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  627. package/components/DropdownMenu/DropdownMenu.d.ts +3 -6
  628. package/components/FileUploader/FileUploader/FileUploader.js +280 -0
  629. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -0
  630. package/components/FileUploader/FileUploader/package.json +6 -0
  631. package/components/FileUploader/FileUploader.d.ts +47 -0
  632. package/components/FileUploader/FileUploader.md +67 -0
  633. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +65 -0
  634. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -0
  635. package/components/FileUploader/FileUploader.styles/package.json +6 -0
  636. package/components/FileUploader/FileUploader.styles.d.ts +22 -0
  637. package/components/FileUploader/index/index.js +3 -0
  638. package/components/FileUploader/index/index.js.map +1 -0
  639. package/components/FileUploader/index/package.json +6 -0
  640. package/components/FileUploader/index.d.ts +5 -0
  641. package/components/FileUploader/locale/index/index.js +8 -0
  642. package/components/FileUploader/locale/index/index.js.map +1 -0
  643. package/components/FileUploader/locale/index/package.json +6 -0
  644. package/components/FileUploader/locale/index.d.ts +4 -0
  645. package/components/FileUploader/locale/locales/en/en.js +6 -0
  646. package/components/FileUploader/locale/locales/en/en.js.map +1 -0
  647. package/components/FileUploader/locale/locales/en/package.json +6 -0
  648. package/components/FileUploader/locale/locales/en.d.ts +2 -0
  649. package/components/FileUploader/locale/locales/ru/package.json +6 -0
  650. package/components/FileUploader/locale/locales/ru/ru.js +6 -0
  651. package/components/FileUploader/locale/locales/ru/ru.js.map +1 -0
  652. package/components/FileUploader/locale/locales/ru.d.ts +2 -0
  653. package/components/FileUploader/locale/package.json +6 -0
  654. package/components/FileUploader/locale/types/package.json +6 -0
  655. package/components/FileUploader/locale/types/types.js +1 -0
  656. package/components/FileUploader/locale/types/types.js.map +1 -0
  657. package/components/FileUploader/locale/types.d.ts +6 -0
  658. package/components/FileUploader/package.json +6 -0
  659. package/components/FxInput/FxInput/FxInput.js +6 -2
  660. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  661. package/components/FxInput/FxInput.d.ts +3 -0
  662. package/components/Gapped/Gapped/Gapped.js +16 -8
  663. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  664. package/components/Gapped/Gapped.d.ts +4 -0
  665. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +223 -0
  666. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -0
  667. package/components/GlobalLoader/GlobalLoader/package.json +6 -0
  668. package/components/GlobalLoader/GlobalLoader.d.ts +113 -0
  669. package/components/GlobalLoader/GlobalLoader.md +98 -0
  670. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +73 -0
  671. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -0
  672. package/components/GlobalLoader/GlobalLoaderView/package.json +6 -0
  673. package/components/GlobalLoader/GlobalLoaderView.d.ts +13 -0
  674. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +53 -0
  675. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -0
  676. package/components/GlobalLoader/GlobalLoaderView.styles/package.json +6 -0
  677. package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +16 -0
  678. package/components/GlobalLoader/index/index.js +1 -0
  679. package/components/GlobalLoader/index/index.js.map +1 -0
  680. package/components/GlobalLoader/index/package.json +6 -0
  681. package/components/GlobalLoader/index.d.ts +1 -0
  682. package/components/GlobalLoader/package.json +6 -0
  683. package/components/GlobalLoader/useParams/package.json +6 -0
  684. package/components/GlobalLoader/useParams/useParams.js +51 -0
  685. package/components/GlobalLoader/useParams/useParams.js.map +1 -0
  686. package/components/GlobalLoader/useParams.d.ts +22 -0
  687. package/components/Group/Group/Group.js +66 -30
  688. package/components/Group/Group/Group.js.map +1 -1
  689. package/components/Group/Group.d.ts +3 -0
  690. package/components/Hint/Hint/Hint.js +9 -1
  691. package/components/Hint/Hint/Hint.js.map +1 -1
  692. package/components/Hint/Hint.d.ts +8 -3
  693. package/components/Input/Input/Input.js +18 -31
  694. package/components/Input/Input/Input.js.map +1 -1
  695. package/components/Input/Input.d.ts +7 -8
  696. package/components/Kebab/Kebab/Kebab.js +3 -13
  697. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  698. package/components/Kebab/Kebab.d.ts +4 -15
  699. package/components/Link/Link/Link.js +12 -7
  700. package/components/Link/Link/Link.js.map +1 -1
  701. package/components/Link/Link.d.ts +4 -1
  702. package/components/Link/Link.styles/Link.styles.js +2 -2
  703. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  704. package/components/Link/Link.styles.d.ts +1 -1
  705. package/components/Loader/Loader/Loader.js +21 -18
  706. package/components/Loader/Loader/Loader.js.map +1 -1
  707. package/components/Loader/Loader.d.ts +4 -0
  708. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  709. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  710. package/components/MenuHeader/MenuHeader.d.ts +3 -0
  711. package/components/MenuItem/MenuItem/MenuItem.js +18 -17
  712. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  713. package/components/MenuItem/MenuItem.d.ts +6 -2
  714. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  715. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  716. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
  717. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  718. package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  719. package/components/Modal/Modal/Modal.js +11 -5
  720. package/components/Modal/Modal/Modal.js.map +1 -1
  721. package/components/Modal/Modal.d.ts +6 -1
  722. package/components/Modal/Modal.styles/Modal.styles.js +15 -12
  723. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  724. package/components/Modal/Modal.styles.d.ts +1 -0
  725. package/components/Modal/ModalClose/ModalClose.js +2 -1
  726. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  727. package/components/Modal/ModalFooter/ModalFooter.js +8 -4
  728. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  729. package/components/Modal/ModalFooter.d.ts +3 -0
  730. package/components/Modal/ModalHeader/ModalHeader.js +7 -3
  731. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  732. package/components/Modal/ModalHeader.d.ts +3 -0
  733. package/components/Paging/Paging/Paging.js +24 -18
  734. package/components/Paging/Paging/Paging.js.map +1 -1
  735. package/components/Paging/Paging.d.ts +20 -3
  736. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  737. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  738. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  739. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  740. package/components/PasswordInput/PasswordInput/PasswordInput.js +39 -14
  741. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  742. package/components/PasswordInput/PasswordInput.d.ts +7 -0
  743. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
  744. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  745. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  746. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  747. package/components/Radio/Radio/Radio.js +10 -5
  748. package/components/Radio/Radio/Radio.js.map +1 -1
  749. package/components/Radio/Radio.d.ts +5 -2
  750. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  751. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  752. package/components/RadioGroup/RadioGroup/RadioGroup.js +25 -13
  753. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  754. package/components/RadioGroup/RadioGroup.d.ts +11 -2
  755. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  756. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  757. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +15 -7
  758. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  759. package/components/ResponsiveLayout/ResponsiveLayoutEvents.d.ts +1 -1
  760. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js +1 -1
  761. package/components/ResponsiveLayout/useResponsiveLayout/useResponsiveLayout.js.map +1 -1
  762. package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
  763. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  764. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +11 -4
  765. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  766. package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  767. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
  768. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  769. package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
  770. package/components/Select/Select/Select.js +51 -22
  771. package/components/Select/Select/Select.js.map +1 -1
  772. package/components/Select/Select.d.ts +13 -8
  773. package/components/SidePage/SidePage/SidePage.js +27 -15
  774. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  775. package/components/SidePage/SidePage.d.ts +8 -1
  776. package/components/SidePage/SidePage.styles/SidePage.styles.js +9 -6
  777. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  778. package/components/SidePage/SidePage.styles.d.ts +1 -0
  779. package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
  780. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  781. package/components/SidePage/SidePageBody.d.ts +3 -0
  782. package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
  783. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  784. package/components/SidePage/SidePageContainer.d.ts +3 -0
  785. package/components/SidePage/SidePageContext/SidePageContext.js +3 -0
  786. package/components/SidePage/SidePageContext/SidePageContext.js.map +1 -1
  787. package/components/SidePage/SidePageContext.d.ts +2 -0
  788. package/components/SidePage/SidePageFooter/SidePageFooter.js +15 -11
  789. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  790. package/components/SidePage/SidePageFooter.d.ts +3 -0
  791. package/components/SidePage/SidePageHeader/SidePageHeader.js +41 -23
  792. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  793. package/components/SidePage/SidePageHeader.d.ts +7 -0
  794. package/components/Spinner/Spinner/Spinner.js +19 -8
  795. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  796. package/components/Spinner/Spinner.d.ts +11 -1
  797. package/components/Spinner/Spinner.md +1 -0
  798. package/components/Spinner/Spinner.styles/Spinner.styles.js +13 -10
  799. package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
  800. package/components/Spinner/Spinner.styles.d.ts +2 -1
  801. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  802. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  803. package/components/Sticky/Sticky/Sticky.js +13 -8
  804. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  805. package/components/Sticky/Sticky.d.ts +9 -1
  806. package/components/Switcher/Switcher/Switcher.js +4 -0
  807. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  808. package/components/Switcher/Switcher.d.ts +5 -1
  809. package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
  810. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  811. package/components/Tabs/Indicator/Indicator.js +4 -1
  812. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  813. package/components/Tabs/Tab/Tab.js +4 -0
  814. package/components/Tabs/Tab/Tab.js.map +1 -1
  815. package/components/Tabs/Tab.d.ts +5 -2
  816. package/components/Tabs/Tabs/Tabs.js +11 -6
  817. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  818. package/components/Tabs/Tabs.d.ts +7 -1
  819. package/components/Textarea/Textarea/Textarea.js +21 -15
  820. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  821. package/components/Textarea/Textarea.d.ts +10 -6
  822. package/components/Textarea/TextareaCounter/TextareaCounter.js +20 -8
  823. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  824. package/components/Textarea/TextareaCounter.d.ts +1 -2
  825. package/components/Toast/Toast/Toast.js +16 -10
  826. package/components/Toast/Toast/Toast.js.map +1 -1
  827. package/components/Toast/Toast.d.ts +6 -0
  828. package/components/Toast/Toast.styles/Toast.styles.js +2 -2
  829. package/components/Toast/Toast.styles/Toast.styles.js.map +1 -1
  830. package/components/Toast/ToastStatic/ToastStatic.js +2 -2
  831. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  832. package/components/Toast/ToastView/ToastView.js +5 -4
  833. package/components/Toast/ToastView/ToastView.js.map +1 -1
  834. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  835. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  836. package/components/Toast/ToastView.styles.d.ts +1 -1
  837. package/components/Toggle/Toggle/Toggle.js +8 -4
  838. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  839. package/components/Toggle/Toggle.d.ts +6 -3
  840. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  841. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  842. package/components/Token/Token/Token.js +16 -1
  843. package/components/Token/Token/Token.js.map +1 -1
  844. package/components/Token/Token.d.ts +5 -2
  845. package/components/Token/Token.styles/Token.styles.js +11 -4
  846. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  847. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +3 -2
  848. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  849. package/components/TokenInput/TokenInput/TokenInput.js +31 -17
  850. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  851. package/components/TokenInput/TokenInput.d.ts +16 -2
  852. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  853. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  854. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
  855. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  856. package/components/Tooltip/Tooltip/Tooltip.js +42 -22
  857. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  858. package/components/Tooltip/Tooltip.d.ts +19 -24
  859. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +18 -12
  860. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  861. package/components/TooltipMenu/TooltipMenu.d.ts +6 -3
  862. package/hooks/useDrop/package.json +6 -0
  863. package/hooks/useDrop/useDrop.js +61 -0
  864. package/hooks/useDrop/useDrop.js.map +1 -0
  865. package/hooks/useDrop.d.ts +11 -0
  866. package/hooks/useEffectWithoutInitCall/package.json +6 -0
  867. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +11 -0
  868. package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -0
  869. package/hooks/useEffectWithoutInitCall.d.ts +2 -0
  870. package/hooks/useMemoObject/package.json +6 -0
  871. package/hooks/useMemoObject/useMemoObject.js +6 -0
  872. package/hooks/useMemoObject/useMemoObject.js.map +1 -0
  873. package/hooks/useMemoObject.d.ts +1 -0
  874. package/index.d.ts +5 -0
  875. package/index.js +6 -1
  876. package/index.js.map +1 -1
  877. package/internal/BGRuler/BGRuler.js +2 -1
  878. package/internal/BGRuler/BGRuler.js.map +1 -1
  879. package/internal/Calendar/Calendar/Calendar.js +13 -5
  880. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  881. package/internal/Calendar/Calendar.d.ts +6 -0
  882. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  883. package/internal/Calendar/MonthView/MonthView.js +4 -3
  884. package/internal/Calendar/MonthView/MonthView.js.map +1 -1
  885. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  886. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  887. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +24 -11
  888. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  889. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  890. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  891. package/internal/ComponentTable.d.ts +4 -2
  892. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +34 -19
  893. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  894. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  895. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
  896. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  897. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +21 -17
  898. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  899. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  900. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  901. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  902. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  903. package/internal/DataTids/DATATIDS.md +12 -0
  904. package/internal/DataTids/DataTids/DataTids.js +69 -0
  905. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  906. package/internal/DataTids/DataTids/package.json +6 -0
  907. package/internal/DataTids/DataTids.d.ts +12 -0
  908. package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
  909. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  910. package/internal/DataTids/DataTids.styles/package.json +6 -0
  911. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  912. package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
  913. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  914. package/internal/DataTids/componentsDataTids/package.json +6 -0
  915. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  916. package/internal/DateSelect/DateSelect/DateSelect.js +29 -18
  917. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  918. package/internal/DateSelect/DateSelect.d.ts +4 -0
  919. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +32 -35
  920. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  921. package/internal/DropdownContainer/DropdownContainer.d.ts +2 -1
  922. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js +10 -0
  923. package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js.map +1 -0
  924. package/internal/DropdownContainer/DropdownContainer.styles/package.json +6 -0
  925. package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
  926. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +2 -0
  927. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -0
  928. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +6 -0
  929. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
  930. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +89 -0
  931. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -0
  932. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +6 -0
  933. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
  934. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +187 -0
  935. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -0
  936. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +6 -0
  937. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +19 -0
  938. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +32 -0
  939. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -0
  940. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +6 -0
  941. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
  942. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +30 -0
  943. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  944. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +6 -0
  945. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +13 -0
  946. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +14 -0
  947. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -0
  948. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +6 -0
  949. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +5 -0
  950. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +16 -0
  951. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +1 -0
  952. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +6 -0
  953. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
  954. package/internal/FileUploaderControl/fileUtils/fileUtils.js +19 -0
  955. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +1 -0
  956. package/internal/FileUploaderControl/fileUtils/package.json +6 -0
  957. package/internal/FileUploaderControl/fileUtils.d.ts +14 -0
  958. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +6 -0
  959. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +5 -0
  960. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +1 -0
  961. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
  962. package/internal/FileUploaderControl/hooks/useUpload/package.json +6 -0
  963. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +56 -0
  964. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +1 -0
  965. package/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
  966. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +6 -0
  967. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +19 -0
  968. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -0
  969. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
  970. package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
  971. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  972. package/internal/InputLikeText/InputLikeText.d.ts +5 -1
  973. package/internal/InternalMenu/InternalMenu/InternalMenu.js +20 -22
  974. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  975. package/internal/InternalMenu/InternalMenu.d.ts +3 -0
  976. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  977. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  978. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  979. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  980. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  981. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  982. package/internal/MaskedInput/MaskedInput/MaskedInput.js +14 -3
  983. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  984. package/internal/MaskedInput/MaskedInput.d.ts +3 -0
  985. package/internal/Menu/Menu/Menu.js +45 -25
  986. package/internal/Menu/Menu/Menu.js.map +1 -1
  987. package/internal/Menu/Menu.d.ts +5 -0
  988. package/internal/Menu/Menu.styles/Menu.styles.js +13 -4
  989. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  990. package/internal/Menu/Menu.styles.d.ts +3 -0
  991. package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
  992. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  993. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  994. package/internal/Popup/Popup/Popup.js +37 -28
  995. package/internal/Popup/Popup/Popup.js.map +1 -1
  996. package/internal/Popup/Popup.d.ts +12 -6
  997. package/internal/Popup/PopupHelper/PopupHelper.js +3 -1
  998. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  999. package/internal/Popup/PopupHelper.d.ts +2 -2
  1000. package/internal/Popup/PopupPin/PopupPin.js +2 -0
  1001. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  1002. package/internal/Popup/types/package.json +6 -0
  1003. package/internal/Popup/types/types.js +1 -0
  1004. package/internal/Popup/types/types.js.map +1 -0
  1005. package/internal/Popup/types.d.ts +2 -0
  1006. package/internal/PopupMenu/PopupMenu/PopupMenu.js +19 -6
  1007. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  1008. package/internal/PopupMenu/PopupMenu.d.ts +11 -3
  1009. package/internal/PopupMenu/validatePositions/validatePositions.js +8 -8
  1010. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  1011. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  1012. package/internal/RenderContainer/RenderContainer/RenderContainer.js +9 -0
  1013. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  1014. package/internal/RenderContainer/RenderContainerTypes.d.ts +2 -0
  1015. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
  1016. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  1017. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  1018. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  1019. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  1020. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +50 -0
  1021. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -0
  1022. package/internal/TextWidthHelper/TextWidthHelper/package.json +6 -0
  1023. package/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
  1024. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +14 -0
  1025. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +1 -0
  1026. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +6 -0
  1027. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  1028. package/internal/ThemePlayground/CheckboxPlayground/CheckboxPlayground.js.map +1 -1
  1029. package/internal/ThemePlayground/Playground/Playground.js +26 -35
  1030. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  1031. package/internal/ThemePlayground/Playground.d.ts +1 -0
  1032. package/internal/ThemePlayground/RadioPlayground/RadioPlayground.js.map +1 -1
  1033. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  1034. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  1035. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  1036. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  1037. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +15 -18
  1038. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  1039. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -2
  1040. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  1041. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  1042. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  1043. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  1044. package/internal/ThemePlayground/constants/constants.js +5 -1
  1045. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  1046. package/internal/ThemePlayground/constants.d.ts +2 -1
  1047. package/internal/ThemePlayground/darkTheme/darkTheme.js +14 -0
  1048. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  1049. package/internal/ThemePlayground/darkTheme.d.ts +14 -0
  1050. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +12 -13
  1051. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  1052. package/internal/ThemeShowcase/ThemeShowcase.styles/ThemeShowcase.styles.js +26 -20
  1053. package/internal/ThemeShowcase/ThemeShowcase.styles/ThemeShowcase.styles.js.map +1 -1
  1054. package/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +4 -2
  1055. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +12 -6
  1056. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  1057. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  1058. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +13 -6
  1059. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  1060. package/internal/ZIndex/ZIndexStorage.d.ts +3 -1
  1061. package/internal/icons/16px/index/index.js +67 -17
  1062. package/internal/icons/16px/index/index.js.map +1 -1
  1063. package/internal/icons/16px/index.d.ts +19 -16
  1064. package/internal/icons/20px/svg/svg.js +5 -0
  1065. package/internal/icons/20px/svg/svg.js.map +1 -1
  1066. package/internal/icons/SpinnerIcon/SpinnerIcon.js +7 -5
  1067. package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
  1068. package/internal/icons/SpinnerIcon.d.ts +4 -1
  1069. package/internal/themes/DarkTheme/DarkTheme.js +65 -3
  1070. package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
  1071. package/internal/themes/DarkTheme.d.ts +34 -0
  1072. package/internal/themes/DefaultTheme/DefaultTheme.js +159 -24
  1073. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  1074. package/internal/themes/DefaultTheme.d.ts +62 -4
  1075. package/internal/themes/NotFlat/NotFlat.js +15 -0
  1076. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  1077. package/internal/themes/NotFlat.d.ts +6 -0
  1078. package/internal/themes/OldColors/OldColors.js +31 -19
  1079. package/internal/themes/OldColors/OldColors.js.map +1 -1
  1080. package/internal/themes/OldColors.d.ts +6 -0
  1081. package/internal/themes/Theme2022/Theme2022.js +78 -0
  1082. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  1083. package/internal/themes/Theme2022/package.json +6 -0
  1084. package/internal/themes/Theme2022.d.ts +66 -0
  1085. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  1086. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  1087. package/internal/themes/Theme2022Dark/package.json +6 -0
  1088. package/internal/themes/Theme2022Dark.d.ts +5 -0
  1089. package/lib/ConditionalHandler/ConditionalHandler.js.map +1 -1
  1090. package/lib/ConditionalHandler.d.ts +3 -2
  1091. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js +3 -0
  1092. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -0
  1093. package/lib/InstanceWithAnchorElement/package.json +6 -0
  1094. package/lib/InstanceWithAnchorElement.d.ts +5 -0
  1095. package/lib/ModalStack/ModalStack.js +9 -13
  1096. package/lib/ModalStack/ModalStack.js.map +1 -1
  1097. package/lib/ModalStack.d.ts +1 -1
  1098. package/lib/SSRSafe/SSRSafe.js +7 -0
  1099. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  1100. package/lib/SSRSafe.d.ts +1 -0
  1101. package/lib/animation/index/index.js +1 -1
  1102. package/lib/animation/index/index.js.map +1 -1
  1103. package/lib/animation/index.d.ts +1 -1
  1104. package/lib/date/InternalDate/InternalDate.js +16 -1
  1105. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  1106. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  1107. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  1108. package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
  1109. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  1110. package/lib/date/InternalDateGetter.d.ts +1 -1
  1111. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  1112. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  1113. package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
  1114. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  1115. package/lib/date/types/types.js.map +1 -1
  1116. package/lib/date/types.d.ts +4 -0
  1117. package/lib/dom/getDOMRect/getDOMRect.js +40 -0
  1118. package/lib/dom/getDOMRect/getDOMRect.js.map +1 -0
  1119. package/lib/dom/getDOMRect/package.json +6 -0
  1120. package/lib/dom/getDOMRect.d.ts +11 -0
  1121. package/lib/events/MouseDrag/MouseDrag.js +5 -1
  1122. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  1123. package/lib/events/keyboard/KeyboardMapKeys/KeyboardMapKeys.js.map +1 -1
  1124. package/lib/events/keyboard/KeyboardMapKeys.d.ts +2 -1
  1125. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  1126. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  1127. package/lib/listenFocusOutside/listenFocusOutside.js +1 -1
  1128. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  1129. package/lib/locale/types/types.js.map +1 -1
  1130. package/lib/locale/types.d.ts +2 -0
  1131. package/lib/locale/useLocaleForControl/package.json +6 -0
  1132. package/lib/locale/useLocaleForControl/useLocaleForControl.js +12 -0
  1133. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -0
  1134. package/lib/locale/useLocaleForControl.d.ts +3 -0
  1135. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  1136. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  1137. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  1138. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  1139. package/lib/rootNode/getRootNode/getRootNode.js +41 -13
  1140. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  1141. package/lib/rootNode/getRootNode.d.ts +9 -0
  1142. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +26 -2
  1143. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  1144. package/lib/rootNode/rootNodeDecorator.d.ts +20 -1
  1145. package/lib/stringUtils/package.json +6 -0
  1146. package/lib/stringUtils/stringUtils.js +15 -0
  1147. package/lib/stringUtils/stringUtils.js.map +1 -0
  1148. package/lib/stringUtils.d.ts +1 -0
  1149. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  1150. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  1151. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  1152. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  1153. package/lib/styles/ColorHelpers.d.ts +1 -0
  1154. package/lib/styles/ColorObject/ColorObject.js +2 -2
  1155. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  1156. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  1157. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  1158. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  1159. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  1160. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  1161. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  1162. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
  1163. package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
  1164. package/lib/theming/Emotion/Emotion.js +5 -2
  1165. package/lib/theming/Emotion/Emotion.js.map +1 -1
  1166. package/lib/theming/ThemeFactory/ThemeFactory.js +8 -4
  1167. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  1168. package/lib/theming/ThemeFactory.d.ts +1 -1
  1169. package/lib/theming/ThemeHelpers/ThemeHelpers.js +14 -1
  1170. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  1171. package/lib/theming/ThemeHelpers.d.ts +1 -0
  1172. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  1173. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  1174. package/lib/theming/themes/Theme2022/package.json +6 -0
  1175. package/lib/theming/themes/Theme2022.d.ts +1 -0
  1176. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  1177. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  1178. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  1179. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  1180. package/lib/theming/useTheme/package.json +6 -0
  1181. package/lib/theming/useTheme/useTheme.js +5 -0
  1182. package/lib/theming/useTheme/useTheme.js.map +1 -0
  1183. package/lib/theming/useTheme.d.ts +1 -0
  1184. package/lib/uidUtils/package.json +6 -0
  1185. package/lib/uidUtils/uidUtils.js +4 -0
  1186. package/lib/uidUtils/uidUtils.js.map +1 -0
  1187. package/lib/uidUtils.d.ts +1 -0
  1188. package/lib/utils/utils.js +120 -0
  1189. package/lib/utils/utils.js.map +1 -1
  1190. package/lib/utils.d.ts +48 -0
  1191. package/package.json +14 -5
  1192. package/typings/html-props.d.ts +123 -0
  1193. package/cjs/components/Button/Corners.d.ts +0 -6
  1194. package/cjs/components/Button/Corners.js +0 -5
  1195. package/cjs/components/Button/Corners.js.map +0 -1
  1196. package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  1197. package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
  1198. package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
  1199. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  1200. package/cjs/lib/polyfillPlaceholder.js +0 -17
  1201. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  1202. package/components/Button/Corners/Corners.js +0 -6
  1203. package/components/Button/Corners/Corners.js.map +0 -1
  1204. package/components/Button/Corners/package.json +0 -6
  1205. package/components/Button/Corners.d.ts +0 -6
  1206. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
  1207. package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
  1208. package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
  1209. package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
  1210. package/lib/polyfillPlaceholder/package.json +0 -6
  1211. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  1212. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  1213. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["PopupHelper.tsx"],"names":["getPositionObject","position","x","split","direction","align","getElementAbsoluteRect","element","rect","_getElementRelativeRect","convertRectToAbsolute","isAbsoluteRectFullyVisible","coordinates","popupRect","windowRelativeRect","_getWindowRelativeRect","windowAbsoluteRect","absoluteRect","top","left","height","width","_rectContainsRect","canBecomeFullyVisible","positionName","availableScrollDistances","getBoundingClientRect","right","bottom","_getViewProperty","clientWidth","window","innerWidth","clientHeight","innerHeight","offset","_getAbsoluteOffset","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","outerRect","innerRect","getProperty","views","document","documentElement","body","map","find","Boolean","PopupHelper","isFullyVisible"],"mappings":"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","sourcesContent":["import { PopupPosition } from './Popup';\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport interface Offset {\n top: number;\n left: number;\n}\n\nexport interface PositionObject {\n direction: string;\n align: string;\n}\n\nfunction getPositionObject(position: string): PositionObject {\n const x = position.split(' ');\n\n return {\n direction: x[0],\n align: x[1],\n };\n}\n\nfunction getElementAbsoluteRect(element: HTMLElement): Rect {\n const rect = _getElementRelativeRect(element);\n return convertRectToAbsolute(rect);\n}\n\nfunction isAbsoluteRectFullyVisible(coordinates: Offset, popupRect: Rect): boolean {\n const windowRelativeRect = _getWindowRelativeRect();\n const windowAbsoluteRect = convertRectToAbsolute(windowRelativeRect);\n const absoluteRect = {\n top: coordinates.top,\n left: coordinates.left,\n height: popupRect.height,\n width: popupRect.width,\n };\n\n return _rectContainsRect(windowAbsoluteRect, absoluteRect);\n}\n\n// Can become fully visible by scrolling into viewport\nfunction canBecomeFullyVisible(positionName: PopupPosition, coordinates: Offset) {\n const position = getPositionObject(positionName);\n\n if (position.direction === 'top') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect());\n return coordinates.top + availableScrollDistances.top >= 0;\n }\n\n if (position.direction === 'left') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect());\n return coordinates.left + availableScrollDistances.left >= 0;\n }\n\n // NOTE: for bottom/right cases browser will always expand document size\n return true;\n}\n\nfunction _getElementRelativeRect(element: HTMLElement) {\n const rect = element.getBoundingClientRect();\n\n return {\n top: rect.top,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n}\n\nfunction _getWindowRelativeRect(): Rect {\n return {\n top: 0,\n left: 0,\n width: _getViewProperty((x) => x.clientWidth) || window.innerWidth,\n height: _getViewProperty((x) => x.clientHeight) || window.innerHeight,\n };\n}\n\nfunction convertRectToAbsolute(rect: Rect): Rect {\n const offset = _getAbsoluteOffset();\n\n return {\n top: rect.top + offset.top,\n left: rect.left + offset.left,\n width: rect.width,\n height: rect.height,\n };\n}\n\nfunction _getAbsoluteOffset(): Offset {\n const scrollTop = window.pageYOffset || _getViewProperty((x) => x.scrollTop);\n const scrollLeft = window.pageXOffset || _getViewProperty((x) => x.scrollLeft);\n\n const clientTop = _getViewProperty((x) => x.clientTop);\n const clientLeft = _getViewProperty((x) => x.clientLeft);\n\n const top = scrollTop - clientTop;\n const left = scrollLeft - clientLeft;\n\n return {\n top,\n left,\n };\n}\n\nfunction _rectContainsRect(outerRect: Rect, innerRect: Rect): boolean {\n return (\n innerRect.top > outerRect.top &&\n innerRect.top + innerRect.height < outerRect.top + outerRect.height &&\n innerRect.left > outerRect.left &&\n innerRect.left + innerRect.width < outerRect.left + outerRect.width\n );\n}\n\nfunction _getViewProperty(getProperty: (e: HTMLElement) => number): number {\n const views = [document.documentElement, document.body];\n return views.map((x) => x && getProperty(x)).find(Boolean) || 0;\n}\n\nexport const PopupHelper = {\n getPositionObject,\n getElementAbsoluteRect,\n isFullyVisible: isAbsoluteRectFullyVisible,\n canBecomeFullyVisible,\n};\n"]}
1
+ {"version":3,"sources":["PopupHelper.tsx"],"names":["getPositionObject","position","x","split","direction","align","getElementAbsoluteRect","element","rect","_getElementRelativeRect","convertRectToAbsolute","isAbsoluteRectFullyVisible","coordinates","popupRect","windowRelativeRect","_getWindowRelativeRect","windowAbsoluteRect","absoluteRect","top","left","height","width","_rectContainsRect","canBecomeFullyVisible","positionName","availableScrollDistances","right","bottom","_getViewProperty","clientWidth","window","innerWidth","clientHeight","innerHeight","offset","_getAbsoluteOffset","scrollTop","pageYOffset","scrollLeft","pageXOffset","clientTop","clientLeft","outerRect","innerRect","getProperty","views","document","documentElement","body","map","find","Boolean","PopupHelper","isFullyVisible"],"mappings":"oEAAA;;;;;;;;;;;;;;;;;;;;;AAqBA,SAASA,iBAAT,CAA2BC,QAA3B,EAA6D;AAC3D,MAAMC,CAAC,GAAGD,QAAQ,CAACE,KAAT,CAAe,GAAf,CAAV;;AAEA,SAAO;AACLC,IAAAA,SAAS,EAAEF,CAAC,CAAC,CAAD,CADP;AAELG,IAAAA,KAAK,EAAEH,CAAC,CAAC,CAAD,CAFH,EAAP;;AAID;;AAED,SAASI,sBAAT,CAAgCC,OAAhC,EAA4D;AAC1D,MAAMC,IAAI,GAAGC,uBAAuB,CAACF,OAAD,CAApC;AACA,SAAOG,qBAAqB,CAACF,IAAD,CAA5B;AACD;;AAED,SAASG,0BAAT,CAAoCC,WAApC,EAAyDC,SAAzD,EAAmF;AACjF,MAAMC,kBAAkB,GAAGC,sBAAsB,EAAjD;AACA,MAAMC,kBAAkB,GAAGN,qBAAqB,CAACI,kBAAD,CAAhD;AACA,MAAMG,YAAY,GAAG;AACnBC,IAAAA,GAAG,EAAEN,WAAW,CAACM,GADE;AAEnBC,IAAAA,IAAI,EAAEP,WAAW,CAACO,IAFC;AAGnBC,IAAAA,MAAM,EAAEP,SAAS,CAACO,MAHC;AAInBC,IAAAA,KAAK,EAAER,SAAS,CAACQ,KAJE,EAArB;;;AAOA,SAAOC,iBAAiB,CAACN,kBAAD,EAAqBC,YAArB,CAAxB;AACD;;AAED;AACA,SAASM,qBAAT,CAA+BC,YAA/B,EAAiEZ,WAAjE,EAAsF;AACpF,MAAMX,QAAQ,GAAGD,iBAAiB,CAACwB,YAAD,CAAlC;;AAEA,MAAIvB,QAAQ,CAACG,SAAT,KAAuB,KAA3B,EAAkC;AAChC,QAAMqB,wBAAwB,GAAGf,qBAAqB,CAACK,sBAAsB,EAAvB,CAAtD;AACA,WAAOH,WAAW,CAACM,GAAZ,GAAkBO,wBAAwB,CAACP,GAA3C,IAAkD,CAAzD;AACD;;AAED,MAAIjB,QAAQ,CAACG,SAAT,KAAuB,MAA3B,EAAmC;AACjC,QAAMqB,yBAAwB,GAAGf,qBAAqB,CAACK,sBAAsB,EAAvB,CAAtD;AACA,WAAOH,WAAW,CAACO,IAAZ,GAAmBM,yBAAwB,CAACN,IAA5C,IAAoD,CAA3D;AACD;;AAED;AACA,SAAO,IAAP;AACD;;AAED,SAASV,uBAAT,CAAiCF,OAAjC,EAAuD;AACrD,MAAMC,IAAI,GAAG,4BAAWD,OAAX,CAAb;;AAEA,SAAO;AACLW,IAAAA,GAAG,EAAEV,IAAI,CAACU,GADL;AAELC,IAAAA,IAAI,EAAEX,IAAI,CAACW,IAFN;AAGLE,IAAAA,KAAK,EAAEb,IAAI,CAACkB,KAAL,GAAalB,IAAI,CAACW,IAHpB;AAILC,IAAAA,MAAM,EAAEZ,IAAI,CAACmB,MAAL,GAAcnB,IAAI,CAACU,GAJtB,EAAP;;AAMD;;AAED,SAASH,sBAAT,GAAwC;AACtC,SAAO;AACLG,IAAAA,GAAG,EAAE,CADA;AAELC,IAAAA,IAAI,EAAE,CAFD;AAGLE,IAAAA,KAAK,EAAEO,gBAAgB,CAAC,UAAC1B,CAAD,UAAOA,CAAC,CAAC2B,WAAT,EAAD,CAAhB,IAA0CC,MAAM,CAACC,UAHnD;AAILX,IAAAA,MAAM,EAAEQ,gBAAgB,CAAC,UAAC1B,CAAD,UAAOA,CAAC,CAAC8B,YAAT,EAAD,CAAhB,IAA2CF,MAAM,CAACG,WAJrD,EAAP;;AAMD;;AAED,SAASvB,qBAAT,CAA+BF,IAA/B,EAAiD;AAC/C,MAAM0B,MAAM,GAAGC,kBAAkB,EAAjC;;AAEA,SAAO;AACLjB,IAAAA,GAAG,EAAEV,IAAI,CAACU,GAAL,GAAWgB,MAAM,CAAChB,GADlB;AAELC,IAAAA,IAAI,EAAEX,IAAI,CAACW,IAAL,GAAYe,MAAM,CAACf,IAFpB;AAGLE,IAAAA,KAAK,EAAEb,IAAI,CAACa,KAHP;AAILD,IAAAA,MAAM,EAAEZ,IAAI,CAACY,MAJR,EAAP;;AAMD;;AAED,SAASe,kBAAT,GAAsC;AACpC,MAAMC,SAAS,GAAGN,MAAM,CAACO,WAAP,IAAsBT,gBAAgB,CAAC,UAAC1B,CAAD,UAAOA,CAAC,CAACkC,SAAT,EAAD,CAAxD;AACA,MAAME,UAAU,GAAGR,MAAM,CAACS,WAAP,IAAsBX,gBAAgB,CAAC,UAAC1B,CAAD,UAAOA,CAAC,CAACoC,UAAT,EAAD,CAAzD;;AAEA,MAAME,SAAS,GAAGZ,gBAAgB,CAAC,UAAC1B,CAAD,UAAOA,CAAC,CAACsC,SAAT,EAAD,CAAlC;AACA,MAAMC,UAAU,GAAGb,gBAAgB,CAAC,UAAC1B,CAAD,UAAOA,CAAC,CAACuC,UAAT,EAAD,CAAnC;;AAEA,MAAMvB,GAAG,GAAGkB,SAAS,GAAGI,SAAxB;AACA,MAAMrB,IAAI,GAAGmB,UAAU,GAAGG,UAA1B;;AAEA,SAAO;AACLvB,IAAAA,GAAG,EAAHA,GADK;AAELC,IAAAA,IAAI,EAAJA,IAFK,EAAP;;AAID;;AAED,SAASG,iBAAT,CAA2BoB,SAA3B,EAA4CC,SAA5C,EAAsE;AACpE;AACEA,IAAAA,SAAS,CAACzB,GAAV,GAAgBwB,SAAS,CAACxB,GAA1B;AACAyB,IAAAA,SAAS,CAACzB,GAAV,GAAgByB,SAAS,CAACvB,MAA1B,GAAmCsB,SAAS,CAACxB,GAAV,GAAgBwB,SAAS,CAACtB,MAD7D;AAEAuB,IAAAA,SAAS,CAACxB,IAAV,GAAiBuB,SAAS,CAACvB,IAF3B;AAGAwB,IAAAA,SAAS,CAACxB,IAAV,GAAiBwB,SAAS,CAACtB,KAA3B,GAAmCqB,SAAS,CAACvB,IAAV,GAAiBuB,SAAS,CAACrB,KAJhE;;AAMD;;AAED,SAASO,gBAAT,CAA0BgB,WAA1B,EAA2E;AACzE,MAAMC,KAAK,GAAG,CAACC,QAAQ,CAACC,eAAV,EAA2BD,QAAQ,CAACE,IAApC,CAAd;AACA,SAAOH,KAAK,CAACI,GAAN,CAAU,UAAC/C,CAAD,UAAOA,CAAC,IAAI0C,WAAW,CAAC1C,CAAD,CAAvB,EAAV,EAAsCgD,IAAtC,CAA2CC,OAA3C,KAAuD,CAA9D;AACD;;AAEM,IAAMC,WAAW,GAAG;AACzBpD,EAAAA,iBAAiB,EAAjBA,iBADyB;AAEzBM,EAAAA,sBAAsB,EAAtBA,sBAFyB;AAGzB+C,EAAAA,cAAc,EAAE1C,0BAHS;AAIzBY,EAAAA,qBAAqB,EAArBA,qBAJyB,EAApB,C","sourcesContent":["import { getDOMRect } from '../../lib/dom/getDOMRect';\n\nimport { PopupPositionsType } from './Popup';\n\nexport interface Rect {\n top: number;\n left: number;\n width: number;\n height: number;\n}\n\nexport interface Offset {\n top: number;\n left: number;\n}\n\nexport interface PositionObject {\n direction: string;\n align: string;\n}\n\nfunction getPositionObject(position: string): PositionObject {\n const x = position.split(' ');\n\n return {\n direction: x[0],\n align: x[1],\n };\n}\n\nfunction getElementAbsoluteRect(element: HTMLElement): Rect {\n const rect = _getElementRelativeRect(element);\n return convertRectToAbsolute(rect);\n}\n\nfunction isAbsoluteRectFullyVisible(coordinates: Offset, popupRect: Rect): boolean {\n const windowRelativeRect = _getWindowRelativeRect();\n const windowAbsoluteRect = convertRectToAbsolute(windowRelativeRect);\n const absoluteRect = {\n top: coordinates.top,\n left: coordinates.left,\n height: popupRect.height,\n width: popupRect.width,\n };\n\n return _rectContainsRect(windowAbsoluteRect, absoluteRect);\n}\n\n// Can become fully visible by scrolling into viewport\nfunction canBecomeFullyVisible(positionName: PopupPositionsType, coordinates: Offset) {\n const position = getPositionObject(positionName);\n\n if (position.direction === 'top') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect());\n return coordinates.top + availableScrollDistances.top >= 0;\n }\n\n if (position.direction === 'left') {\n const availableScrollDistances = convertRectToAbsolute(_getWindowRelativeRect());\n return coordinates.left + availableScrollDistances.left >= 0;\n }\n\n // NOTE: for bottom/right cases browser will always expand document size\n return true;\n}\n\nfunction _getElementRelativeRect(element: HTMLElement) {\n const rect = getDOMRect(element);\n\n return {\n top: rect.top,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n}\n\nfunction _getWindowRelativeRect(): Rect {\n return {\n top: 0,\n left: 0,\n width: _getViewProperty((x) => x.clientWidth) || window.innerWidth,\n height: _getViewProperty((x) => x.clientHeight) || window.innerHeight,\n };\n}\n\nfunction convertRectToAbsolute(rect: Rect): Rect {\n const offset = _getAbsoluteOffset();\n\n return {\n top: rect.top + offset.top,\n left: rect.left + offset.left,\n width: rect.width,\n height: rect.height,\n };\n}\n\nfunction _getAbsoluteOffset(): Offset {\n const scrollTop = window.pageYOffset || _getViewProperty((x) => x.scrollTop);\n const scrollLeft = window.pageXOffset || _getViewProperty((x) => x.scrollLeft);\n\n const clientTop = _getViewProperty((x) => x.clientTop);\n const clientLeft = _getViewProperty((x) => x.clientLeft);\n\n const top = scrollTop - clientTop;\n const left = scrollLeft - clientLeft;\n\n return {\n top,\n left,\n };\n}\n\nfunction _rectContainsRect(outerRect: Rect, innerRect: Rect): boolean {\n return (\n innerRect.top > outerRect.top &&\n innerRect.top + innerRect.height < outerRect.top + outerRect.height &&\n innerRect.left > outerRect.left &&\n innerRect.left + innerRect.width < outerRect.left + outerRect.width\n );\n}\n\nfunction _getViewProperty(getProperty: (e: HTMLElement) => number): number {\n const views = [document.documentElement, document.body];\n return views.map((x) => x && getProperty(x)).find(Boolean) || 0;\n}\n\nexport const PopupHelper = {\n getPositionObject,\n getElementAbsoluteRect,\n isFullyVisible: isAbsoluteRectFullyVisible,\n canBecomeFullyVisible,\n};\n"]}
@@ -5,6 +5,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
5
5
 
6
6
  var _PopupHelper = require("./PopupHelper");
7
7
  var _PopupPin = require("./PopupPin.styles");
8
+ var _Popup = require("./Popup");
8
9
 
9
10
  var borderStyles = {
10
11
  position: 'absolute',
@@ -95,7 +96,7 @@ PopupPin = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
95
96
  var styleWrapper = this.getWrapperStyle(options.outerLeft, options.outerTop, options.outerSize);
96
97
 
97
98
  return /*#__PURE__*/(
98
- _react.default.createElement("div", { className: _PopupPin.styles.wrapper(), style: styleWrapper }, /*#__PURE__*/
99
+ _react.default.createElement("div", { "data-tid": _Popup.PopupDataTids.popupPin, className: _PopupPin.styles.wrapper(), style: styleWrapper }, /*#__PURE__*/
99
100
  _react.default.createElement("div", { style: styleOuter }, /*#__PURE__*/
100
101
  _react.default.createElement("div", { style: styleInner }))));
101
102
 
@@ -1 +1 @@
1
- {"version":3,"sources":["PopupPin.tsx"],"names":["borderStyles","position","borderStyle","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","PopupPin","render","props","popupElement","options","getPinOptions","PopupHelper","getElementAbsoluteRect","getPositionObject","popupPosition","size","offset","borderWidth","styleOuter","getOuterStyle","activeBorder","outerSize","borderColor","styleInner","getInnerStyle","backgroundColor","styleWrapper","getWrapperStyle","outerLeft","outerTop","styles","wrapper","getPopupOppositeDirection","popupDirection","direction","TypeError","left","top","width","height","borderWitdth","popupRect","pinSize","pinOffset","bordersDelta","getPinLeftCoordinate","align","innerTop","innerLeft","getPinTopCoordinate","Error","pinHeight","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","string","number","any"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './PopupPin.styles';\n\nconst borderStyles = {\n position: 'absolute',\n borderStyle: 'solid',\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n};\n\ninterface Props {\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n offset: number;\n popupElement: Nullable<HTMLElement>;\n popupPosition: string;\n size: number;\n}\n\nexport class PopupPin extends React.Component<Props> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n\n public static propTypes = {\n /**\n * Цвет фон пина\n */\n backgroundColor: PropTypes.string,\n\n /**\n * Цвет границы пина\n */\n borderColor: PropTypes.string,\n\n /**\n * Ширина границы пина\n */\n borderWidth: PropTypes.number,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n offset: PropTypes.number,\n\n /**\n * Ссылка на попап\n */\n popupElement: PropTypes.any,\n\n /**\n * Позиция поапа, по которой будет вычеслено положение пина\n */\n popupPosition: PropTypes.string,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: PropTypes.number,\n };\n\n public render() {\n if (!this.props.popupElement) {\n return null;\n }\n\n const options = this.getPinOptions(\n PopupHelper.getElementAbsoluteRect(this.props.popupElement),\n PopupHelper.getPositionObject(this.props.popupPosition),\n this.props.size,\n this.props.offset,\n this.props.borderWidth,\n );\n\n const styleOuter: React.CSSProperties = this.getOuterStyle(\n options.activeBorder,\n options.outerSize,\n this.props.borderColor,\n );\n\n const styleInner: React.CSSProperties = this.getInnerStyle(\n options.activeBorder,\n this.props.size,\n this.props.backgroundColor,\n );\n\n const styleWrapper = this.getWrapperStyle(options.outerLeft, options.outerTop, options.outerSize);\n\n return (\n <div className={styles.wrapper()} style={styleWrapper}>\n <div style={styleOuter}>\n <div style={styleInner} />\n </div>\n </div>\n );\n }\n\n private getPopupOppositeDirection(): 'bottom' | 'top' | 'left' | 'right' {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n throw new TypeError('Unknown direction ' + popupDirection);\n }\n }\n\n private getWrapperStyle(left: number, top: number, borderWidth: number) {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n [direction]: -borderWidth + 'px',\n left: left + 'px',\n width: borderWidth * 2 + 'px',\n height: borderWidth + 'px',\n };\n case 'left':\n case 'right':\n return {\n [direction]: -borderWidth + 'px',\n top: top + 'px',\n height: borderWidth * 2 + 'px',\n width: borderWidth + 'px',\n };\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getOuterStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n left: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n top: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getInnerStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n left: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n top: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getPinOptions(\n popupRect: Rect,\n popupPosition: PositionObject,\n pinSize: number,\n pinOffset: number,\n borderWidth: number,\n ) {\n const bordersDelta = 2 * borderWidth;\n const outerSize = pinSize + bordersDelta;\n\n switch (popupPosition.direction) {\n case 'top':\n return {\n outerTop: popupRect.height,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Top',\n outerSize,\n };\n case 'bottom':\n return {\n outerTop: -2 * outerSize,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize + 2 * bordersDelta,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Bottom',\n outerSize,\n };\n case 'left':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: popupRect.width,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize,\n activeBorder: 'Left',\n outerSize,\n };\n case 'right':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: -2 * outerSize,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize + 2 * bordersDelta,\n activeBorder: 'Right',\n outerSize,\n };\n default:\n throw new Error('Direction must be one of top, right, bottom, left');\n }\n }\n\n private getPinTopCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'top':\n return pinOffset;\n case 'middle':\n return popupRect.height / 2 - pinHeight;\n case 'bottom':\n return popupRect.height - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getPinLeftCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'left':\n return pinOffset;\n case 'center':\n return popupRect.width / 2 - pinHeight;\n case 'right':\n return popupRect.width - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["PopupPin.tsx"],"names":["borderStyles","position","borderStyle","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","PopupPin","render","props","popupElement","options","getPinOptions","PopupHelper","getElementAbsoluteRect","getPositionObject","popupPosition","size","offset","borderWidth","styleOuter","getOuterStyle","activeBorder","outerSize","borderColor","styleInner","getInnerStyle","backgroundColor","styleWrapper","getWrapperStyle","outerLeft","outerTop","PopupDataTids","popupPin","styles","wrapper","getPopupOppositeDirection","popupDirection","direction","TypeError","left","top","width","height","borderWitdth","popupRect","pinSize","pinOffset","bordersDelta","getPinLeftCoordinate","align","innerTop","innerLeft","getPinTopCoordinate","Error","pinHeight","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","string","number","any"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './PopupPin.styles';\nimport { PopupDataTids } from './Popup';\n\nconst borderStyles = {\n position: 'absolute',\n borderStyle: 'solid',\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n};\n\ninterface Props {\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n offset: number;\n popupElement: Nullable<HTMLElement>;\n popupPosition: string;\n size: number;\n}\n\nexport class PopupPin extends React.Component<Props> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n\n public static propTypes = {\n /**\n * Цвет фон пина\n */\n backgroundColor: PropTypes.string,\n\n /**\n * Цвет границы пина\n */\n borderColor: PropTypes.string,\n\n /**\n * Ширина границы пина\n */\n borderWidth: PropTypes.number,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n offset: PropTypes.number,\n\n /**\n * Ссылка на попап\n */\n popupElement: PropTypes.any,\n\n /**\n * Позиция поапа, по которой будет вычеслено положение пина\n */\n popupPosition: PropTypes.string,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: PropTypes.number,\n };\n\n public render() {\n if (!this.props.popupElement) {\n return null;\n }\n\n const options = this.getPinOptions(\n PopupHelper.getElementAbsoluteRect(this.props.popupElement),\n PopupHelper.getPositionObject(this.props.popupPosition),\n this.props.size,\n this.props.offset,\n this.props.borderWidth,\n );\n\n const styleOuter: React.CSSProperties = this.getOuterStyle(\n options.activeBorder,\n options.outerSize,\n this.props.borderColor,\n );\n\n const styleInner: React.CSSProperties = this.getInnerStyle(\n options.activeBorder,\n this.props.size,\n this.props.backgroundColor,\n );\n\n const styleWrapper = this.getWrapperStyle(options.outerLeft, options.outerTop, options.outerSize);\n\n return (\n <div data-tid={PopupDataTids.popupPin} className={styles.wrapper()} style={styleWrapper}>\n <div style={styleOuter}>\n <div style={styleInner} />\n </div>\n </div>\n );\n }\n\n private getPopupOppositeDirection(): 'bottom' | 'top' | 'left' | 'right' {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n throw new TypeError('Unknown direction ' + popupDirection);\n }\n }\n\n private getWrapperStyle(left: number, top: number, borderWidth: number) {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n [direction]: -borderWidth + 'px',\n left: left + 'px',\n width: borderWidth * 2 + 'px',\n height: borderWidth + 'px',\n };\n case 'left':\n case 'right':\n return {\n [direction]: -borderWidth + 'px',\n top: top + 'px',\n height: borderWidth * 2 + 'px',\n width: borderWidth + 'px',\n };\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getOuterStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n left: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n top: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getInnerStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n left: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n top: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getPinOptions(\n popupRect: Rect,\n popupPosition: PositionObject,\n pinSize: number,\n pinOffset: number,\n borderWidth: number,\n ) {\n const bordersDelta = 2 * borderWidth;\n const outerSize = pinSize + bordersDelta;\n\n switch (popupPosition.direction) {\n case 'top':\n return {\n outerTop: popupRect.height,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Top',\n outerSize,\n };\n case 'bottom':\n return {\n outerTop: -2 * outerSize,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize + 2 * bordersDelta,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Bottom',\n outerSize,\n };\n case 'left':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: popupRect.width,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize,\n activeBorder: 'Left',\n outerSize,\n };\n case 'right':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: -2 * outerSize,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize + 2 * bordersDelta,\n activeBorder: 'Right',\n outerSize,\n };\n default:\n throw new Error('Direction must be one of top, right, bottom, left');\n }\n }\n\n private getPinTopCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'top':\n return pinOffset;\n case 'middle':\n return popupRect.height / 2 - pinHeight;\n case 'bottom':\n return popupRect.height - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getPinLeftCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'left':\n return pinOffset;\n case 'center':\n return popupRect.width / 2 - pinHeight;\n case 'right':\n return popupRect.width - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import { PopupPositionsType as Type } from './Popup';
2
+ export declare type PopupPositionsType = Type;
@@ -0,0 +1 @@
1
+ "use strict";exports.__esModule = true;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PopupPosition } from '../Popup';
2
+ import { PopupPositionsType } from '../Popup';
3
3
  import { CommonProps } from '../../internal/CommonWrapper';
4
4
  export interface PopupMenuCaptionProps {
5
5
  opened: boolean;
@@ -25,7 +25,7 @@ export interface PopupMenuProps extends CommonProps {
25
25
  header?: React.ReactNode;
26
26
  footer?: React.ReactNode;
27
27
  /** Массив разрешенных положений меню относительно caption'а. */
28
- positions?: PopupPosition[];
28
+ positions?: PopupPositionsType[];
29
29
  /** Колбэк, вызываемый после открытия/закрытия меню */
30
30
  onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;
31
31
  /** Пропсы, передающиеся в Popup */
@@ -34,6 +34,10 @@ export interface PopupMenuProps extends CommonProps {
34
34
  popupPinOffset?: number;
35
35
  type?: 'dropdown' | 'tooltip';
36
36
  disableAnimations: boolean;
37
+ /** Действие при открытии меню */
38
+ onOpen?: () => void;
39
+ /** Действие при закрытии меню */
40
+ onClose?: () => void;
37
41
  }
38
42
  interface PopupMenuState {
39
43
  menuVisible: boolean;
@@ -43,11 +47,15 @@ export declare const PopupMenuType: {
43
47
  Dropdown: string;
44
48
  Tooltip: string;
45
49
  };
50
+ export declare const PopupMenuDataTids: {
51
+ readonly root: "PopupMenu__root";
52
+ readonly caption: "PopupMenu__caption";
53
+ };
46
54
  export declare class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {
47
55
  static __KONTUR_REACT_UI__: string;
48
56
  private isMobileLayout;
49
57
  static defaultProps: {
50
- positions: PopupPosition[];
58
+ positions: ("top left" | "top center" | "top right" | "right top" | "right middle" | "right bottom" | "bottom right" | "bottom center" | "bottom left" | "left bottom" | "left middle" | "left top")[];
51
59
  type: string;
52
60
  popupHasPin: boolean;
53
61
  disableAnimations: boolean;
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.PopupMenuType = exports.PopupMenu = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.PopupMenuType = exports.PopupMenuDataTids = exports.PopupMenu = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
 
3
3
  var _identifiers = require("../../lib/events/keyboard/identifiers");
4
4
 
@@ -15,7 +15,6 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
15
15
  var _decorator = require("../../components/ResponsiveLayout/decorator");
16
16
  var _rootNode = require("../../lib/rootNode");
17
17
 
18
- var _PopupMenuPositions = require("./PopupMenuPositions");
19
18
  var _validatePositions = require("./validatePositions");
20
19
  var _PopupMenu = require("./PopupMenu.styles");var _class, _class2, _temp;
21
20
 
@@ -58,6 +57,10 @@ var _PopupMenu = require("./PopupMenu.styles");var _class, _class2, _temp;
58
57
 
59
58
 
60
59
 
60
+
61
+
62
+
63
+
61
64
 
62
65
 
63
66
 
@@ -65,12 +68,32 @@ var _PopupMenu = require("./PopupMenu.styles");var _class, _class2, _temp;
65
68
 
66
69
  var PopupMenuType = {
67
70
  Dropdown: 'dropdown',
68
- Tooltip: 'tooltip' };exports.PopupMenuType = PopupMenuType;var
71
+ Tooltip: 'tooltip' };exports.PopupMenuType = PopupMenuType;
72
+
73
+
74
+ var PopupMenuDataTids = {
75
+ root: 'PopupMenu__root',
76
+ caption: 'PopupMenu__caption' };exports.PopupMenuDataTids = PopupMenuDataTids;
77
+
69
78
 
79
+ var Positions = [
80
+ 'top left',
81
+ 'top center',
82
+ 'top right',
83
+ 'right top',
84
+ 'right middle',
85
+ 'right bottom',
86
+ 'bottom left',
87
+ 'bottom center',
88
+ 'bottom right',
89
+ 'left top',
90
+ 'left middle',
91
+ 'left bottom'];var
70
92
 
71
93
 
72
94
 
73
- PopupMenu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(PopupMenu, _React$Component);function PopupMenu() {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.
95
+
96
+ PopupMenu = (0, _rootNode.rootNode)(_class = (0, _decorator.responsiveLayout)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(PopupMenu, _React$Component);function PopupMenu() {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.
74
97
 
75
98
 
76
99
 
@@ -161,7 +184,7 @@ PopupMenu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
161
184
 
162
185
  return /*#__PURE__*/(
163
186
  _react.default.createElement("span", {
164
- "data-tid": "PopupMenu__caption",
187
+ "data-tid": PopupMenuDataTids.caption,
165
188
  className: _PopupMenu.styles.caption(),
166
189
  ref: function ref(element) {return _this.captionWrapper = element;} },
167
190
 
@@ -172,7 +195,7 @@ PopupMenu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
172
195
 
173
196
  return /*#__PURE__*/(
174
197
  _react.default.createElement("span", {
175
- "data-tid": "PopupMenu__caption",
198
+ "data-tid": PopupMenuDataTids.caption,
176
199
  onClick: _this.handleCaptionClick,
177
200
  onKeyDown: _this.handleCaptionKeyDown,
178
201
  ref: function ref(element) {return _this.captionWrapper = element;},
@@ -257,6 +280,15 @@ PopupMenu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
257
280
  if (focusShouldBeRestored) {
258
281
  _this.restoreFocus();
259
282
  }
283
+
284
+ if (_this.state.menuVisible && _this.props.onOpen) {
285
+ _this.props.onOpen();
286
+ }
287
+
288
+ if (!_this.state.menuVisible && _this.props.onClose) {
289
+ _this.props.onClose();
290
+ }
291
+
260
292
  if (typeof _this.props.onChangeMenuState === 'function') {
261
293
  _this.props.onChangeMenuState(_this.state.menuVisible, focusShouldBeRestored);
262
294
  }
@@ -273,4 +305,4 @@ PopupMenu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_c
273
305
 
274
306
  var restoreFocus = event.type === 'keydown';
275
307
  _this.hideMenu(restoreFocus);
276
- };return _this;}var _proto = PopupMenu.prototype;_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.hideMenuWithoutFocusing, onFocusOutside: this.hideMenuWithoutFocusing, active: this.state.menuVisible }, /*#__PURE__*/_react.default.createElement("div", { className: _PopupMenu.styles.container(), style: { width: this.props.width } }, this.renderCaption(), this.captionWrapper && this.props.children && /*#__PURE__*/_react.default.createElement(_Popup.Popup, { anchorElement: this.captionWrapper, opened: this.state.menuVisible, hasShadow: true, margin: this.props.popupMargin, hasPin: this.props.popupHasPin, pinOffset: this.props.popupPinOffset, positions: this.getPositions(), disableAnimations: this.props.disableAnimations, onOpen: this.handleOpen, mobileOnCloseRequest: this.hideMenu, width: this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto' }, /*#__PURE__*/_react.default.createElement(_InternalMenu.InternalMenu, { hasShadow: false, maxHeight: this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none', onKeyDown: this.handleKeyDown, onItemClick: this.handleItemSelection, cyclicSelection: false, ref: this.refInternalMenu, initialSelectedItemIndex: this.state.firstItemShouldBeSelected ? 0 : -1, header: this.props.header, footer: this.props.footer }, this.props.children)))));};_proto.getPositions = function getPositions() {if (this.props.positions && (0, _validatePositions.isValidPositions)(this.props.positions)) {return this.props.positions;}return _PopupMenuPositions.PopupMenuPositions;};return PopupMenu;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'PopupMenu', _class2.defaultProps = { positions: _PopupMenuPositions.PopupMenuPositions, type: PopupMenuType.Tooltip, popupHasPin: true, disableAnimations: false }, _class2.Type = PopupMenuType, _temp)) || _class) || _class;exports.PopupMenu = PopupMenu;
308
+ };return _this;}var _proto = PopupMenu.prototype;_proto.render = function render() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.hideMenuWithoutFocusing, onFocusOutside: this.hideMenuWithoutFocusing, active: this.state.menuVisible }, /*#__PURE__*/_react.default.createElement("div", { "data-tid": PopupMenuDataTids.root, className: _PopupMenu.styles.container(), style: { width: this.props.width } }, this.renderCaption(), this.captionWrapper && this.props.children && /*#__PURE__*/_react.default.createElement(_Popup.Popup, { anchorElement: this.captionWrapper, opened: this.state.menuVisible, hasShadow: true, margin: this.props.popupMargin, hasPin: this.props.popupHasPin, pinOffset: this.props.popupPinOffset, positions: this.getPositions(), disableAnimations: this.props.disableAnimations, onOpen: this.handleOpen, mobileOnCloseRequest: this.hideMenu, width: this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto' }, /*#__PURE__*/_react.default.createElement(_InternalMenu.InternalMenu, { hasShadow: false, maxHeight: this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none', onKeyDown: this.handleKeyDown, onItemClick: this.handleItemSelection, cyclicSelection: false, ref: this.refInternalMenu, initialSelectedItemIndex: this.state.firstItemShouldBeSelected ? 0 : -1, header: this.props.header, footer: this.props.footer }, this.props.children)))));};_proto.getPositions = function getPositions() {if (this.props.positions && (0, _validatePositions.isValidPositions)(this.props.positions)) {return this.props.positions;}return Positions;};return PopupMenu;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'PopupMenu', _class2.defaultProps = { positions: Positions, type: PopupMenuType.Tooltip, popupHasPin: true, disableAnimations: false }, _class2.Type = PopupMenuType, _temp)) || _class) || _class;exports.PopupMenu = PopupMenu;
@@ -1 +1 @@
1
- {"version":3,"sources":["PopupMenu.tsx"],"names":["PopupMenuType","Dropdown","Tooltip","PopupMenu","responsiveLayout","rootNode","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","refInternalMenu","element","handleOpen","focus","renderCaption","props","caption","opened","openMenu","closeMenu","toggleMenu","styles","handleCaptionClick","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","document","activeElement","focusShouldBeRestored","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","render","setRootNode","container","width","children","popupMargin","popupHasPin","popupPinOffset","getPositions","disableAnimations","isMobileLayout","menuWidth","menuMaxHeight","header","footer","positions","PopupMenuPositions","React","Component","__KONTUR_REACT_UI__","defaultProps","Type"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { InternalMenu } from '../InternalMenu';\nimport { Popup, PopupPosition } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { PopupMenuPositions } from './PopupMenuPositions';\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n}\n\nexport interface PopupMenuProps extends CommonProps {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPosition[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations: boolean;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n};\n\n@responsiveLayout\n@rootNode\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n\n public static defaultProps = {\n positions: PopupMenuPositions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<InternalMenu> = null;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={this.props.popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={this.props.disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <InternalMenu\n hasShadow={false}\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n cyclicSelection={false}\n ref={this.refInternalMenu}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </InternalMenu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private refInternalMenu = (element: Nullable<InternalMenu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n });\n\n return (\n <span\n data-tid=\"PopupMenu__caption\"\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {caption}\n </span>\n );\n }\n\n return (\n <span\n data-tid=\"PopupMenu__caption\"\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.props.caption}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions() {\n if (this.props.positions && isValidPositions(this.props.positions)) {\n return this.props.positions;\n }\n\n return PopupMenuPositions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (document) {\n this.savedFocusableElement = document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}
1
+ {"version":3,"sources":["PopupMenu.tsx"],"names":["PopupMenuType","Dropdown","Tooltip","PopupMenuDataTids","root","caption","Positions","PopupMenu","rootNode","responsiveLayout","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","refInternalMenu","element","handleOpen","focus","renderCaption","props","opened","openMenu","closeMenu","toggleMenu","styles","handleCaptionClick","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","render","setRootNode","container","width","children","popupMargin","popupHasPin","popupPinOffset","getPositions","disableAnimations","isMobileLayout","menuWidth","menuMaxHeight","header","footer","positions","React","Component","__KONTUR_REACT_UI__","defaultProps","Type"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { InternalMenu } from '../InternalMenu';\nimport { Popup, PopupPositionsType } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport { Nullable } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n}\n\nexport interface PopupMenuProps extends CommonProps {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations: boolean;\n /** Действие при открытии меню */\n onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n};\n\nexport const PopupMenuDataTids = {\n root: 'PopupMenu__root',\n caption: 'PopupMenu__caption',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left middle',\n 'left bottom',\n];\n\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n\n public static defaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<InternalMenu> = null;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div data-tid={PopupMenuDataTids.root} className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={this.props.popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={this.props.disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <InternalMenu\n hasShadow={false}\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n cyclicSelection={false}\n ref={this.refInternalMenu}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </InternalMenu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private refInternalMenu = (element: Nullable<InternalMenu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {caption}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.props.caption}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n if (this.props.positions && isValidPositions(this.props.positions)) {\n return this.props.positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (document) {\n this.savedFocusableElement = document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\n\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"]}
@@ -1,2 +1,2 @@
1
- import { PopupPosition } from '../Popup';
2
- export declare const isValidPositions: (positions: PopupPosition[]) => boolean;
1
+ import { PopupPositionsType } from '../Popup';
2
+ export declare const isValidPositions: (positions: PopupPositionsType[]) => boolean;
@@ -1,22 +1,20 @@
1
1
  "use strict";exports.__esModule = true;exports.isValidPositions = void 0;var _currentEnvironment = require("../../lib/currentEnvironment");
2
-
3
-
4
- var _PopupMenuPositions = require("./PopupMenuPositions");
2
+ var _Popup = require("../Popup");
5
3
 
6
4
  var isValidPosition = function isValidPosition(position) {
7
- return _PopupMenuPositions.PopupMenuPositions.includes(position);
5
+ return _Popup.PopupPositions.includes(position);
8
6
  };
9
7
 
10
8
  var isValidPositions = function isValidPositions(positions) {
11
9
  return positions.every(function (item) {
12
10
  if (_currentEnvironment.isProductionEnv) {
13
11
  return isValidPosition(item);
14
- } else {
15
- if (isValidPosition(item)) {
16
- return true;
17
- } else {
18
- throw new Error("Unxpected position \"" + item + "\"");
19
- }
20
12
  }
13
+
14
+ if (isValidPosition(item)) {
15
+ return true;
16
+ }
17
+
18
+ throw new Error("Unxpected position \"" + item + "\"");
21
19
  });
22
20
  };exports.isValidPositions = isValidPositions;
@@ -1 +1 @@
1
- {"version":3,"sources":["validatePositions.tsx"],"names":["isValidPosition","position","PopupMenuPositions","includes","isValidPositions","positions","every","item","isProductionEnv","Error"],"mappings":"yEAAA;;;AAGA;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,QAAD,EAAsC;AAC5D,SAAOC,uCAAmBC,QAAnB,CAA4BF,QAA5B,CAAP;AACD,CAFD;;AAIO,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,SAAD,EAAyC;AACvE,SAAOA,SAAS,CAACC,KAAV,CAAgB,UAACC,IAAD,EAAU;AAC/B,QAAIC,mCAAJ,EAAqB;AACnB,aAAOR,eAAe,CAACO,IAAD,CAAtB;AACD,KAFD,MAEO;AACL,UAAIP,eAAe,CAACO,IAAD,CAAnB,EAA2B;AACzB,eAAO,IAAP;AACD,OAFD,MAEO;AACL,cAAM,IAAIE,KAAJ,2BAAiCF,IAAjC,QAAN;AACD;AACF;AACF,GAVM,CAAP;AAWD,CAZM,C","sourcesContent":["import { isProductionEnv } from '../../lib/currentEnvironment';\nimport { PopupPosition } from '../Popup';\n\nimport { PopupMenuPositions } from './PopupMenuPositions';\n\nconst isValidPosition = (position: PopupPosition): boolean => {\n return PopupMenuPositions.includes(position);\n};\n\nexport const isValidPositions = (positions: PopupPosition[]): boolean => {\n return positions.every((item) => {\n if (isProductionEnv) {\n return isValidPosition(item);\n } else {\n if (isValidPosition(item)) {\n return true;\n } else {\n throw new Error(`Unxpected position \"${item}\"`);\n }\n }\n });\n};\n"]}
1
+ {"version":3,"sources":["validatePositions.ts"],"names":["isValidPosition","position","PopupPositions","includes","isValidPositions","positions","every","item","isProductionEnv","Error"],"mappings":"yEAAA;AACA;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,QAAD,EAA2C;AACjE,SAAOC,sBAAeC,QAAf,CAAwBF,QAAxB,CAAP;AACD,CAFD;;AAIO,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,SAAD,EAA8C;AAC5E,SAAOA,SAAS,CAACC,KAAV,CAAgB,UAACC,IAAD,EAAU;AAC/B,QAAIC,mCAAJ,EAAqB;AACnB,aAAOR,eAAe,CAACO,IAAD,CAAtB;AACD;;AAED,QAAIP,eAAe,CAACO,IAAD,CAAnB,EAA2B;AACzB,aAAO,IAAP;AACD;;AAED,UAAM,IAAIE,KAAJ,2BAAiCF,IAAjC,QAAN;AACD,GAVM,CAAP;AAWD,CAZM,C","sourcesContent":["import { isProductionEnv } from '../../lib/currentEnvironment';\nimport { PopupPositionsType, PopupPositions } from '../Popup';\n\nconst isValidPosition = (position: PopupPositionsType): boolean => {\n return PopupPositions.includes(position);\n};\n\nexport const isValidPositions = (positions: PopupPositionsType[]): boolean => {\n return positions.every((item) => {\n if (isProductionEnv) {\n return isValidPosition(item);\n }\n\n if (isValidPosition(item)) {\n return true;\n }\n\n throw new Error(`Unxpected position \"${item}\"`);\n });\n};\n"]}
@@ -4,6 +4,7 @@ var _client = require("../../lib/client");
4
4
 
5
5
  var _utils = require("../../lib/utils");
6
6
  var _Upgrades = require("../../lib/Upgrades");
7
+ var _callChildRef = require("../../lib/callChildRef/callChildRef");
7
8
 
8
9
  var _RenderInnerContainer = require("./RenderInnerContainer");var
9
10
 
@@ -57,6 +58,10 @@ RenderContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.
57
58
  }
58
59
  if (this.domContainer && this.domContainer.parentNode !== document.body) {
59
60
  document.body.appendChild(this.domContainer);
61
+
62
+ if (this.props.containerRef) {
63
+ (0, _callChildRef.callChildRef)(this.props.containerRef, this.domContainer);
64
+ }
60
65
  if (window.ReactTesting) {
61
66
  window.ReactTesting.addRenderContainer(this.rootId, this);
62
67
  }
@@ -74,6 +79,10 @@ RenderContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.
74
79
  if (this.domContainer && this.domContainer.parentNode) {
75
80
  this.domContainer.parentNode.removeChild(this.domContainer);
76
81
 
82
+ if (this.props.containerRef) {
83
+ (0, _callChildRef.callChildRef)(this.props.containerRef, null);
84
+ }
85
+
77
86
  if (window.ReactTesting) {
78
87
  window.ReactTesting.removeRenderContainer(this.rootId);
79
88
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["RenderContainer.tsx"],"names":["RenderContainer","props","domContainer","rootId","getRootId","isBrowser","children","mountContainer","shouldComponentUpdate","nextProps","unmountContainer","componentWillUnmount","destroyContainer","render","createContainer","canUseDOM","document","createElement","setAttribute","Upgrade","getSpecificityClassName","parentNode","body","appendChild","window","ReactTesting","addRenderContainer","removeChild","removeRenderContainer","React","Component","__KONTUR_REACT_UI__"],"mappings":"6UAAA;;AAEA;;AAEA;AACA;;AAEA,8D;;;AAGaA,e;;;;;;;;AAQX,2BAAYC,KAAZ,EAAyC;AACvC,wCAAMA,KAAN,UADuC,MAJjCC,YAIiC,GAJK,IAIL,OAFxBC,MAEwB,GAFPH,eAAe,CAACI,SAAhB,EAEO;;AAGvC,QAAIC,qBAAaJ,KAAK,CAACK,QAAvB,EAAiC;AAC/B,YAAKC,cAAL;AACD,KALsC;AAMxC,G;;AAEMC,EAAAA,qB,GAAP,+BAA6BC,SAA7B,EAA8D;AAC5D,QAAI,CAAC,KAAKR,KAAL,CAAWK,QAAZ,IAAwBG,SAAS,CAACH,QAAtC,EAAgD;AAC9C,WAAKC,cAAL;AACD;AACD,QAAI,KAAKN,KAAL,CAAWK,QAAX,IAAuB,CAACG,SAAS,CAACH,QAAtC,EAAgD;AAC9C,WAAKI,gBAAL;AACD;AACD,WAAO,IAAP;AACD,G;;AAEMC,EAAAA,oB,GAAP,gCAA8B;AAC5B,SAAKC,gBAAL;AACD,G;;AAEMC,EAAAA,M,GAAP,kBAAgB;AACd,wBAAO,6BAAC,0CAAD,6BAA0B,KAAKZ,KAA/B,IAAsC,YAAY,EAAE,KAAKC,YAAzD,EAAuE,MAAM,EAAE,KAAKC,MAApF,IAAP;AACD,G;;AAEOW,EAAAA,e,GAAR,2BAA0B;AACxB,QAAIC,iBAAJ,EAAe;AACb,UAAMb,YAAY,GAAGc,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAArB;AACAf,MAAAA,YAAY,CAACgB,YAAb,CAA0B,OAA1B,EAAmCC,kBAAQC,uBAAR,EAAnC;AACAlB,MAAAA,YAAY,CAACgB,YAAb,CAA0B,4BAA1B,OAA2D,KAAKf,MAAhE;AACA,WAAKD,YAAL,GAAoBA,YAApB;AACD;AACF,G;;AAEOK,EAAAA,c,GAAR,0BAAyB;AACvB,QAAI,CAAC,KAAKL,YAAV,EAAwB;AACtB,WAAKY,eAAL;AACD;AACD,QAAI,KAAKZ,YAAL,IAAqB,KAAKA,YAAL,CAAkBmB,UAAlB,KAAiCL,QAAQ,CAACM,IAAnE,EAAyE;AACvEN,MAAAA,QAAQ,CAACM,IAAT,CAAcC,WAAd,CAA0B,KAAKrB,YAA/B;AACA,UAAIsB,MAAM,CAACC,YAAX,EAAyB;AACvBD,QAAAA,MAAM,CAACC,YAAP,CAAoBC,kBAApB,CAAuC,KAAKvB,MAA5C,EAAoD,IAApD;AACD;AACF;AACF,G;;AAEOS,EAAAA,gB,GAAR,4BAA2B;AACzB,QAAI,KAAKV,YAAT,EAAuB;AACrB,WAAKQ,gBAAL;AACA,WAAKR,YAAL,GAAoB,IAApB;AACD;AACF,G;;AAEOQ,EAAAA,gB,GAAR,4BAA2B;AACzB,QAAI,KAAKR,YAAL,IAAqB,KAAKA,YAAL,CAAkBmB,UAA3C,EAAuD;AACrD,WAAKnB,YAAL,CAAkBmB,UAAlB,CAA6BM,WAA7B,CAAyC,KAAKzB,YAA9C;;AAEA,UAAIsB,MAAM,CAACC,YAAX,EAAyB;AACvBD,QAAAA,MAAM,CAACC,YAAP,CAAoBG,qBAApB,CAA0C,KAAKzB,MAA/C;AACD;AACF;AACF,G,0BAtEkC0B,eAAMC,S,4CAA9B9B,e,CACG+B,mB,GAAsB,iB,CADzB/B,e,CAGII,S,GAAY,oBAAM,yBAAN,E","sourcesContent":["import React from 'react';\n\nimport { canUseDOM, isBrowser } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRandomID } from '../../lib/utils';\nimport { Upgrade } from '../../lib/Upgrades';\n\nimport { RenderInnerContainer } from './RenderInnerContainer';\nimport { RenderContainerProps } from './RenderContainerTypes';\n\nexport class RenderContainer extends React.Component<RenderContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderContainer';\n\n private static getRootId = () => getRandomID();\n private domContainer: Nullable<HTMLElement> = null;\n\n private readonly rootId: string = RenderContainer.getRootId();\n\n constructor(props: RenderContainerProps) {\n super(props);\n\n if (isBrowser && props.children) {\n this.mountContainer();\n }\n }\n\n public shouldComponentUpdate(nextProps: RenderContainerProps) {\n if (!this.props.children && nextProps.children) {\n this.mountContainer();\n }\n if (this.props.children && !nextProps.children) {\n this.unmountContainer();\n }\n return true;\n }\n\n public componentWillUnmount() {\n this.destroyContainer();\n }\n\n public render() {\n return <RenderInnerContainer {...this.props} domContainer={this.domContainer} rootId={this.rootId} />;\n }\n\n private createContainer() {\n if (canUseDOM) {\n const domContainer = document.createElement('div');\n domContainer.setAttribute('class', Upgrade.getSpecificityClassName());\n domContainer.setAttribute('data-rendered-container-id', `${this.rootId}`);\n this.domContainer = domContainer;\n }\n }\n\n private mountContainer() {\n if (!this.domContainer) {\n this.createContainer();\n }\n if (this.domContainer && this.domContainer.parentNode !== document.body) {\n document.body.appendChild(this.domContainer);\n if (window.ReactTesting) {\n window.ReactTesting.addRenderContainer(this.rootId, this);\n }\n }\n }\n\n private destroyContainer() {\n if (this.domContainer) {\n this.unmountContainer();\n this.domContainer = null;\n }\n }\n\n private unmountContainer() {\n if (this.domContainer && this.domContainer.parentNode) {\n this.domContainer.parentNode.removeChild(this.domContainer);\n\n if (window.ReactTesting) {\n window.ReactTesting.removeRenderContainer(this.rootId);\n }\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["RenderContainer.tsx"],"names":["RenderContainer","props","domContainer","rootId","getRootId","isBrowser","children","mountContainer","shouldComponentUpdate","nextProps","unmountContainer","componentWillUnmount","destroyContainer","render","createContainer","canUseDOM","document","createElement","setAttribute","Upgrade","getSpecificityClassName","parentNode","body","appendChild","containerRef","window","ReactTesting","addRenderContainer","removeChild","removeRenderContainer","React","Component","__KONTUR_REACT_UI__"],"mappings":"6UAAA;;AAEA;;AAEA;AACA;AACA;;AAEA,8D;;;AAGaA,e;;;;;;;;AAQX,2BAAYC,KAAZ,EAAyC;AACvC,wCAAMA,KAAN,UADuC,MAJjCC,YAIiC,GAJK,IAIL,OAFxBC,MAEwB,GAFPH,eAAe,CAACI,SAAhB,EAEO;;AAGvC,QAAIC,qBAAaJ,KAAK,CAACK,QAAvB,EAAiC;AAC/B,YAAKC,cAAL;AACD,KALsC;AAMxC,G;;AAEMC,EAAAA,qB,GAAP,+BAA6BC,SAA7B,EAA8D;AAC5D,QAAI,CAAC,KAAKR,KAAL,CAAWK,QAAZ,IAAwBG,SAAS,CAACH,QAAtC,EAAgD;AAC9C,WAAKC,cAAL;AACD;AACD,QAAI,KAAKN,KAAL,CAAWK,QAAX,IAAuB,CAACG,SAAS,CAACH,QAAtC,EAAgD;AAC9C,WAAKI,gBAAL;AACD;AACD,WAAO,IAAP;AACD,G;;AAEMC,EAAAA,oB,GAAP,gCAA8B;AAC5B,SAAKC,gBAAL;AACD,G;;AAEMC,EAAAA,M,GAAP,kBAAgB;AACd,wBAAO,6BAAC,0CAAD,6BAA0B,KAAKZ,KAA/B,IAAsC,YAAY,EAAE,KAAKC,YAAzD,EAAuE,MAAM,EAAE,KAAKC,MAApF,IAAP;AACD,G;;AAEOW,EAAAA,e,GAAR,2BAA0B;AACxB,QAAIC,iBAAJ,EAAe;AACb,UAAMb,YAAY,GAAGc,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAArB;AACAf,MAAAA,YAAY,CAACgB,YAAb,CAA0B,OAA1B,EAAmCC,kBAAQC,uBAAR,EAAnC;AACAlB,MAAAA,YAAY,CAACgB,YAAb,CAA0B,4BAA1B,OAA2D,KAAKf,MAAhE;AACA,WAAKD,YAAL,GAAoBA,YAApB;AACD;AACF,G;;AAEOK,EAAAA,c,GAAR,0BAAyB;AACvB,QAAI,CAAC,KAAKL,YAAV,EAAwB;AACtB,WAAKY,eAAL;AACD;AACD,QAAI,KAAKZ,YAAL,IAAqB,KAAKA,YAAL,CAAkBmB,UAAlB,KAAiCL,QAAQ,CAACM,IAAnE,EAAyE;AACvEN,MAAAA,QAAQ,CAACM,IAAT,CAAcC,WAAd,CAA0B,KAAKrB,YAA/B;;AAEA,UAAI,KAAKD,KAAL,CAAWuB,YAAf,EAA6B;AAC3B,wCAAa,KAAKvB,KAAL,CAAWuB,YAAxB,EAAsC,KAAKtB,YAA3C;AACD;AACD,UAAIuB,MAAM,CAACC,YAAX,EAAyB;AACvBD,QAAAA,MAAM,CAACC,YAAP,CAAoBC,kBAApB,CAAuC,KAAKxB,MAA5C,EAAoD,IAApD;AACD;AACF;AACF,G;;AAEOS,EAAAA,gB,GAAR,4BAA2B;AACzB,QAAI,KAAKV,YAAT,EAAuB;AACrB,WAAKQ,gBAAL;AACA,WAAKR,YAAL,GAAoB,IAApB;AACD;AACF,G;;AAEOQ,EAAAA,gB,GAAR,4BAA2B;AACzB,QAAI,KAAKR,YAAL,IAAqB,KAAKA,YAAL,CAAkBmB,UAA3C,EAAuD;AACrD,WAAKnB,YAAL,CAAkBmB,UAAlB,CAA6BO,WAA7B,CAAyC,KAAK1B,YAA9C;;AAEA,UAAI,KAAKD,KAAL,CAAWuB,YAAf,EAA6B;AAC3B,wCAAa,KAAKvB,KAAL,CAAWuB,YAAxB,EAAsC,IAAtC;AACD;;AAED,UAAIC,MAAM,CAACC,YAAX,EAAyB;AACvBD,QAAAA,MAAM,CAACC,YAAP,CAAoBG,qBAApB,CAA0C,KAAK1B,MAA/C;AACD;AACF;AACF,G,0BA9EkC2B,eAAMC,S,4CAA9B/B,e,CACGgC,mB,GAAsB,iB,CADzBhC,e,CAGII,S,GAAY,oBAAM,yBAAN,E","sourcesContent":["import React from 'react';\n\nimport { canUseDOM, isBrowser } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { getRandomID } from '../../lib/utils';\nimport { Upgrade } from '../../lib/Upgrades';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nimport { RenderInnerContainer } from './RenderInnerContainer';\nimport { RenderContainerProps } from './RenderContainerTypes';\n\nexport class RenderContainer extends React.Component<RenderContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderContainer';\n\n private static getRootId = () => getRandomID();\n private domContainer: Nullable<HTMLElement> = null;\n\n private readonly rootId: string = RenderContainer.getRootId();\n\n constructor(props: RenderContainerProps) {\n super(props);\n\n if (isBrowser && props.children) {\n this.mountContainer();\n }\n }\n\n public shouldComponentUpdate(nextProps: RenderContainerProps) {\n if (!this.props.children && nextProps.children) {\n this.mountContainer();\n }\n if (this.props.children && !nextProps.children) {\n this.unmountContainer();\n }\n return true;\n }\n\n public componentWillUnmount() {\n this.destroyContainer();\n }\n\n public render() {\n return <RenderInnerContainer {...this.props} domContainer={this.domContainer} rootId={this.rootId} />;\n }\n\n private createContainer() {\n if (canUseDOM) {\n const domContainer = document.createElement('div');\n domContainer.setAttribute('class', Upgrade.getSpecificityClassName());\n domContainer.setAttribute('data-rendered-container-id', `${this.rootId}`);\n this.domContainer = domContainer;\n }\n }\n\n private mountContainer() {\n if (!this.domContainer) {\n this.createContainer();\n }\n if (this.domContainer && this.domContainer.parentNode !== document.body) {\n document.body.appendChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, this.domContainer);\n }\n if (window.ReactTesting) {\n window.ReactTesting.addRenderContainer(this.rootId, this);\n }\n }\n }\n\n private destroyContainer() {\n if (this.domContainer) {\n this.unmountContainer();\n this.domContainer = null;\n }\n }\n\n private unmountContainer() {\n if (this.domContainer && this.domContainer.parentNode) {\n this.domContainer.parentNode.removeChild(this.domContainer);\n\n if (this.props.containerRef) {\n callChildRef(this.props.containerRef, null);\n }\n\n if (window.ReactTesting) {\n window.ReactTesting.removeRenderContainer(this.rootId);\n }\n }\n }\n}\n"]}
@@ -4,8 +4,10 @@ import { CommonProps } from '../CommonWrapper';
4
4
  export interface PortalProps {
5
5
  rt_rootID: string;
6
6
  container: Nullable<HTMLElement>;
7
+ children: React.ReactNode;
7
8
  }
8
9
  export interface RenderContainerProps extends CommonProps {
9
10
  anchor?: React.ReactNode;
10
11
  children?: React.ReactNode;
12
+ containerRef?: React.Ref<HTMLElement>;
11
13
  }
@@ -1,11 +1,19 @@
1
1
  import React from 'react';
2
+ import propTypes from 'prop-types';
2
3
  import { Nullable } from '../../typings/utility-types';
3
4
  import { PortalProps, RenderContainerProps } from './RenderContainerTypes';
4
5
  interface RenderInnerContainerProps extends RenderContainerProps {
5
6
  domContainer: Nullable<HTMLElement>;
6
7
  rootId: string;
7
8
  }
8
- export declare const Portal: React.FunctionComponent<PortalProps>;
9
+ export declare const Portal: {
10
+ ({ container, rt_rootID, children }: PortalProps): JSX.Element;
11
+ propTypes: {
12
+ container: propTypes.Requireable<HTMLElement>;
13
+ rt_rootID: propTypes.Validator<string>;
14
+ children: propTypes.Validator<string | number | boolean | {} | propTypes.ReactElementLike | propTypes.ReactNodeArray>;
15
+ };
16
+ };
9
17
  export declare class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {
10
18
  static __KONTUR_REACT_UI__: string;
11
19
  render(): React.ReactNode;
@@ -1,7 +1,9 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.RenderInnerContainer = exports.Portal = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
  var _reactDom = _interopRequireDefault(require("react-dom"));
3
+ var _propTypes = _interopRequireDefault(require("prop-types"));
3
4
 
4
5
 
6
+ var _SSRSafe = require("../../lib/SSRSafe");
5
7
 
6
8
 
7
9
 
@@ -59,4 +61,10 @@ RenderInnerContainer = /*#__PURE__*/function (_React$Component) {(0, _inheritsLo
59
61
  }
60
62
 
61
63
  return inner;
62
- };return RenderInnerContainer;}(_react.default.Component);exports.RenderInnerContainer = RenderInnerContainer;RenderInnerContainer.__KONTUR_REACT_UI__ = 'RenderInnerContainer';
64
+ };return RenderInnerContainer;}(_react.default.Component);exports.RenderInnerContainer = RenderInnerContainer;RenderInnerContainer.__KONTUR_REACT_UI__ = 'RenderInnerContainer';
65
+
66
+
67
+ Portal.propTypes = {
68
+ container: (0, _SSRSafe.safePropTypesInstanceOf)(function () {return HTMLElement;}),
69
+ rt_rootID: _propTypes.default.string.isRequired,
70
+ children: _propTypes.default.node.isRequired };
@@ -1 +1 @@
1
- {"version":3,"sources":["RenderInnerContainer.tsx"],"names":["SSRPlaceholder","Portal","container","rt_rootID","children","ReactDOM","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","React","Component","__KONTUR_REACT_UI__"],"mappings":"iRAAA;AACA;;;;;;;;;;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,wBAAM,yCAAQ,WAAQ,iBAAhB,GAAN,EAAvB;;AAEO,IAAMC,MAA4C,GAAG,SAA/CA,MAA+C,OAAwC,KAArCC,SAAqC,QAArCA,SAAqC,CAA1BC,SAA0B,QAA1BA,SAA0B,CAAfC,QAAe,QAAfA,QAAe;AAClG;AACA;AACE,iCAAC,cAAD,CAAO,QAAP;AACGF,IAAAA,SAAS,gBAAGG,kBAASC,YAAT,CAAsBF,QAAtB,EAAgCF,SAAhC,CAAH,gBAAgD,6BAAC,cAAD,OAD5D;AAEGA,IAAAA,SAAS,gBAAG,2CAAU,4BAA0BC,SAApC,GAAH,gBAAuD,6BAAC,cAAD,OAFnE,CADF;;;AAMD,CARM,C;;AAUMI,oB;;;AAGJC,EAAAA,M,GAAP,kBAAgB;AACd,sBAAmD,KAAKC,KAAxD,CAAQC,MAAR,eAAQA,MAAR,CAAgBN,QAAhB,eAAgBA,QAAhB,CAA0BO,YAA1B,eAA0BA,YAA1B,CAAwCC,MAAxC,eAAwCA,MAAxC;AACA,QAAIC,KAAK,GAAGH,MAAZ;;AAEA,QAAIN,QAAJ,EAAc;AACZS,MAAAA,KAAK;AACH,mCAAC,cAAD,CAAO,QAAP;AACGH,MAAAA,MADH;AAEE,mCAAC,MAAD,IAAQ,GAAG,EAAC,YAAZ,EAAyB,SAAS,EAAEE,MAApC,EAA4C,SAAS,EAAED,YAAvD;AACGP,MAAAA,QADH,CAFF,CADF;;;;AAQD;;AAED,WAAOS,KAAP;AACD,G,+BAnBuCC,eAAMC,S,sDAAnCR,oB,CACGS,mB,GAAsB,sB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { PortalProps, RenderContainerProps } from './RenderContainerTypes';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal: React.FunctionComponent<PortalProps> = ({ container, rt_rootID, children }) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript data-render-container-id={rt_rootID} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n"]}
1
+ {"version":3,"sources":["RenderInnerContainer.tsx"],"names":["SSRPlaceholder","Portal","container","rt_rootID","children","ReactDOM","createPortal","RenderInnerContainer","render","props","anchor","domContainer","rootId","inner","React","Component","__KONTUR_REACT_UI__","propTypes","HTMLElement","string","isRequired","node"],"mappings":"iRAAA;AACA;AACA;;;AAGA;;;;;;;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,wBAAM,yCAAQ,WAAQ,iBAAhB,GAAN,EAAvB;;AAEO,IAAMC,MAAM,GAAG,SAATA,MAAS,OAAqD,KAAlDC,SAAkD,QAAlDA,SAAkD,CAAvCC,SAAuC,QAAvCA,SAAuC,CAA5BC,QAA4B,QAA5BA,QAA4B;AACzE;AACA;AACE,iCAAC,cAAD,CAAO,QAAP;AACGF,IAAAA,SAAS,gBAAGG,kBAASC,YAAT,CAAsBF,QAAtB,EAAgCF,SAAhC,CAAH,gBAAgD,6BAAC,cAAD,OAD5D;AAEGA,IAAAA,SAAS,gBAAG,2CAAU,4BAA0BC,SAApC,GAAH,gBAAuD,6BAAC,cAAD,OAFnE,CADF;;;AAMD,CARM,C;;AAUMI,oB;;;AAGJC,EAAAA,M,GAAP,kBAAgB;AACd,sBAAmD,KAAKC,KAAxD,CAAQC,MAAR,eAAQA,MAAR,CAAgBN,QAAhB,eAAgBA,QAAhB,CAA0BO,YAA1B,eAA0BA,YAA1B,CAAwCC,MAAxC,eAAwCA,MAAxC;AACA,QAAIC,KAAK,GAAGH,MAAZ;;AAEA,QAAIN,QAAJ,EAAc;AACZS,MAAAA,KAAK;AACH,mCAAC,cAAD,CAAO,QAAP;AACGH,MAAAA,MADH;AAEE,mCAAC,MAAD,IAAQ,GAAG,EAAC,YAAZ,EAAyB,SAAS,EAAEE,MAApC,EAA4C,SAAS,EAAED,YAAvD;AACGP,MAAAA,QADH,CAFF,CADF;;;;AAQD;;AAED,WAAOS,KAAP;AACD,G,+BAnBuCC,eAAMC,S,sDAAnCR,oB,CACGS,mB,GAAsB,sB;;;AAqBtCf,MAAM,CAACgB,SAAP,GAAmB;AACjBf,EAAAA,SAAS,EAAE,sCAAwB,oBAAMgB,WAAN,EAAxB,CADM;AAEjBf,EAAAA,SAAS,EAAEc,mBAAUE,MAAV,CAAiBC,UAFX;AAGjBhB,EAAAA,QAAQ,EAAEa,mBAAUI,IAAV,CAAeD,UAHR,EAAnB","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport propTypes from 'prop-types';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { safePropTypesInstanceOf } from '../../lib/SSRSafe';\n\nimport { PortalProps, RenderContainerProps } from './RenderContainerTypes';\n\ninterface RenderInnerContainerProps extends RenderContainerProps {\n domContainer: Nullable<HTMLElement>;\n rootId: string;\n}\n\n// Заглушка нужна для корректной гидрации порталов после SSR,\n// которую реакт сам пока не поддерживает.\n// @see https://github.com/facebook/react/issues/13097\n// А также для вставки актуального render-container-id на клиенте.\n//\n// Дело в том, что во время гидрации, структура HTML на сервере\n// и на клиенте должна совпадать, иначе возможны артефакты.\n// Алгоритм там примерно такой. Клиент во время гидрации идет\n// по этим двум деревьям и сравнивает узлы. Элементы разных типов\n// он подменяет на свои. А те, что совпадают, он оставляет как есть\n// вместе со всеми атрибутами, навесив только обработчики событий.\n//\n// Поэтому, для портала, который рендерится только на клиенте,\n// нужно использовать серверную заглушку, чтобы при гидрации\n// он не испортил какой-то другой элемент. Null не подходит,\n// т.к. на сервере он тоже не рендерится.\n// А элемент с render-container-id нужно отрендерить с нуля.\n\nconst SSRPlaceholder = () => <script data-id=\"ssr-placeholder\" />;\n\nexport const Portal = ({ container, rt_rootID, children }: PortalProps) => {\n // container exists only in browser\n return (\n <React.Fragment>\n {container ? ReactDOM.createPortal(children, container) : <SSRPlaceholder />}\n {container ? <noscript data-render-container-id={rt_rootID} /> : <SSRPlaceholder />}\n </React.Fragment>\n );\n};\n\nexport class RenderInnerContainer extends React.Component<RenderInnerContainerProps> {\n public static __KONTUR_REACT_UI__ = 'RenderInnerContainer';\n\n public render() {\n const { anchor, children, domContainer, rootId } = this.props;\n let inner = anchor;\n\n if (children) {\n inner = (\n <React.Fragment>\n {anchor}\n <Portal key=\"portal-ref\" rt_rootID={rootId} container={domContainer}>\n {children}\n </Portal>\n </React.Fragment>\n );\n }\n\n return inner;\n }\n}\n\nPortal.propTypes = {\n container: safePropTypesInstanceOf(() => HTMLElement),\n rt_rootID: propTypes.string.isRequired,\n children: propTypes.node.isRequired,\n};\n"]}
@@ -86,6 +86,9 @@ RenderLayer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/f
86
86
 
87
87
 
88
88
 
89
+
90
+
91
+
89
92
 
90
93
 
91
94
 
@@ -107,4 +110,4 @@ RenderLayer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/f
107
110
  if (_this.props.onClickOutside) {
108
111
  _this.props.onClickOutside(event);
109
112
  }
110
- };return _this;}var _proto = RenderLayer.prototype;_proto.componentDidMount = function componentDidMount() {if (this.props.active) {this.attachListeners();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (!prevProps.active && this.props.active) {this.attachListeners();}if (prevProps.active && !this.props.active) {this.detachListeners();}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.props.active) {this.detachListeners();}};_proto.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));};_proto.attachListeners = function attachListeners() {var _this$props$getAnchor, _this$props;var rootNode = (0, _rootNode.getRootNode)(this) || ((_this$props$getAnchor = (_this$props = this.props).getAnchorElement) == null ? void 0 : _this$props$getAnchor.call(_this$props));if (!rootNode) return;this.focusOutsideListenerToken = (0, _listenFocusOutside.listen)(function () {return [rootNode];}, this.handleFocusOutside);window.addEventListener('blur', this.handleFocusOutside);document.addEventListener('ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown', this.handleNativeDocClick);};_proto.detachListeners = function detachListeners() {if (this.focusOutsideListenerToken) {this.focusOutsideListenerToken.remove();this.focusOutsideListenerToken = null;}window.removeEventListener('blur', this.handleFocusOutside);document.removeEventListener('ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown', this.handleNativeDocClick);};return RenderLayer;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'RenderLayer', _class2.propTypes = { active: function active(props, propName, componentName) {var active = props.active,onClickOutside = props.onClickOutside,onFocusOutside = props.onFocusOutside;if (active && !(onClickOutside || onFocusOutside)) {return new Error("[" + componentName + "]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.");}} }, _class2.defaultProps = { active: true }, _temp)) || _class;exports.RenderLayer = RenderLayer;
113
+ };return _this;}var _proto = RenderLayer.prototype;_proto.componentDidMount = function componentDidMount() {if (this.props.active) {this.attachListeners();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (!prevProps.active && this.props.active) {this.attachListeners();}if (prevProps.active && !this.props.active) {this.detachListeners();}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.props.active) {this.detachListeners();}};_proto.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));};_proto.attachListeners = function attachListeners() {var _this$props$getAnchor, _this$props;var rootNode = (0, _rootNode.getRootNode)(this) || ((_this$props$getAnchor = (_this$props = this.props).getAnchorElement) == null ? void 0 : _this$props$getAnchor.call(_this$props));if (!rootNode) {return;}this.focusOutsideListenerToken = (0, _listenFocusOutside.listen)(function () {return [rootNode];}, this.handleFocusOutside);window.addEventListener('blur', this.handleFocusOutside);document.addEventListener('ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown', this.handleNativeDocClick);};_proto.detachListeners = function detachListeners() {if (this.focusOutsideListenerToken) {this.focusOutsideListenerToken.remove();this.focusOutsideListenerToken = null;}window.removeEventListener('blur', this.handleFocusOutside);document.removeEventListener('ontouchstart' in document.documentElement ? 'touchstart' : 'mousedown', this.handleNativeDocClick);};return RenderLayer;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'RenderLayer', _class2.propTypes = { active: function active(props, propName, componentName) {var active = props.active,onClickOutside = props.onClickOutside,onFocusOutside = props.onFocusOutside;if (active && !(onClickOutside || onFocusOutside)) {return new Error("[" + componentName + "]: using the component without either 'onClickOutside' or 'onFocusOutside' callback is pointless.");}} }, _class2.defaultProps = { active: true }, _temp)) || _class;exports.RenderLayer = RenderLayer;