@skbkontur/react-ui 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +7 -7
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
  4. package/cjs/components/Autocomplete/Autocomplete.js +49 -46
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +2 -0
  7. package/cjs/components/Button/Button.js +29 -1
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +6 -0
  10. package/cjs/components/Button/Button.styles.js +107 -75
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Calendar/Calendar.d.ts +2 -0
  13. package/cjs/components/Calendar/Calendar.js +1 -0
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Center/Center.d.ts +2 -0
  16. package/cjs/components/Center/Center.js +1 -0
  17. package/cjs/components/Center/Center.js.map +1 -1
  18. package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
  19. package/cjs/components/Checkbox/Checkbox.js +2 -14
  20. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  21. package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
  22. package/cjs/components/ComboBox/ComboBox.js +1 -0
  23. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  24. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  25. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
  26. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  27. package/cjs/components/CurrencyInput/constants.js +1 -2
  28. package/cjs/components/CurrencyInput/constants.js.map +1 -1
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
  30. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  31. package/cjs/components/DateInput/DateInput.d.ts +2 -0
  32. package/cjs/components/DateInput/DateInput.js +1 -0
  33. package/cjs/components/DateInput/DateInput.js.map +1 -1
  34. package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
  35. package/cjs/components/DatePicker/DatePicker.js +6 -60
  36. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  37. package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
  38. package/cjs/components/Dropdown/Dropdown.js +2 -82
  39. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  40. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  41. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
  42. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  43. package/cjs/components/FxInput/FxInput.d.ts +2 -5
  44. package/cjs/components/FxInput/FxInput.js +2 -7
  45. package/cjs/components/FxInput/FxInput.js.map +1 -1
  46. package/cjs/components/Gapped/Gapped.d.ts +2 -15
  47. package/cjs/components/Gapped/Gapped.js +1 -24
  48. package/cjs/components/Gapped/Gapped.js.map +1 -1
  49. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  50. package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
  51. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  52. package/cjs/components/Group/Group.d.ts +5 -4
  53. package/cjs/components/Group/Group.js +91 -40
  54. package/cjs/components/Group/Group.js.map +1 -1
  55. package/cjs/components/Group/Group.styles.d.ts +1 -0
  56. package/cjs/components/Group/Group.styles.js +12 -6
  57. package/cjs/components/Group/Group.styles.js.map +1 -1
  58. package/cjs/components/Hint/Hint.d.ts +2 -0
  59. package/cjs/components/Hint/Hint.js +1 -0
  60. package/cjs/components/Hint/Hint.js.map +1 -1
  61. package/cjs/components/Input/Input.d.ts +2 -0
  62. package/cjs/components/Input/Input.js +1 -0
  63. package/cjs/components/Input/Input.js.map +1 -1
  64. package/cjs/components/Kebab/Kebab.d.ts +2 -1
  65. package/cjs/components/Kebab/Kebab.js +2 -26
  66. package/cjs/components/Kebab/Kebab.js.map +1 -1
  67. package/cjs/components/Link/Link.d.ts +2 -0
  68. package/cjs/components/Link/Link.js +1 -0
  69. package/cjs/components/Link/Link.js.map +1 -1
  70. package/cjs/components/Loader/Loader.d.ts +6 -36
  71. package/cjs/components/Loader/Loader.js +3 -57
  72. package/cjs/components/Loader/Loader.js.map +1 -1
  73. package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
  74. package/cjs/components/MaskedInput/MaskedInput.js +17 -1
  75. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  76. package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
  77. package/cjs/components/MenuItem/MenuItem.js +2 -22
  78. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  79. package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
  80. package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
  81. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
  82. package/cjs/components/MiniModal/MiniModalBody.js +17 -2
  83. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
  84. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  85. package/cjs/components/Modal/Modal.styles.js +36 -28
  86. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  87. package/cjs/components/Modal/ModalBody.d.ts +2 -0
  88. package/cjs/components/Modal/ModalBody.js +1 -0
  89. package/cjs/components/Modal/ModalBody.js.map +1 -1
  90. package/cjs/components/Modal/ModalHeader.d.ts +5 -0
  91. package/cjs/components/Modal/ModalHeader.js +8 -1
  92. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  93. package/cjs/components/Paging/DotsIcon.d.ts +3 -0
  94. package/cjs/components/Paging/DotsIcon.js +13 -0
  95. package/cjs/components/Paging/DotsIcon.js.map +1 -0
  96. package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
  97. package/cjs/components/Paging/ForwardIcon.js +13 -1
  98. package/cjs/components/Paging/ForwardIcon.js.map +1 -1
  99. package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
  100. package/cjs/components/Paging/NavigationHelper.js +8 -6
  101. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  102. package/cjs/components/Paging/Paging.d.ts +13 -2
  103. package/cjs/components/Paging/Paging.js +120 -50
  104. package/cjs/components/Paging/Paging.js.map +1 -1
  105. package/cjs/components/Paging/Paging.styles.d.ts +24 -1
  106. package/cjs/components/Paging/Paging.styles.js +151 -22
  107. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  108. package/cjs/components/Paging/PagingHelper.d.ts +1 -1
  109. package/cjs/components/Paging/PagingHelper.js +18 -11
  110. package/cjs/components/Paging/PagingHelper.js.map +1 -1
  111. package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
  112. package/cjs/components/PasswordInput/PasswordInput.js +2 -11
  113. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  114. package/cjs/components/Radio/Radio.d.ts +2 -0
  115. package/cjs/components/Radio/Radio.js +1 -0
  116. package/cjs/components/Radio/Radio.js.map +1 -1
  117. package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
  118. package/cjs/components/RadioGroup/RadioGroup.js +1 -0
  119. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  120. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  121. package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
  122. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  123. package/cjs/components/Select/Select.d.ts +2 -0
  124. package/cjs/components/Select/Select.js +1 -0
  125. package/cjs/components/Select/Select.js.map +1 -1
  126. package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
  127. package/cjs/components/SidePage/SidePage.styles.js +52 -38
  128. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  129. package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
  130. package/cjs/components/SidePage/SidePageBody.js +1 -0
  131. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  132. package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
  133. package/cjs/components/SidePage/SidePageContainer.js +1 -0
  134. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  135. package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
  136. package/cjs/components/SidePage/SidePageFooter.js +1 -0
  137. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  138. package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
  139. package/cjs/components/SidePage/SidePageHeader.js +60 -19
  140. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  141. package/cjs/components/Spinner/Spinner.d.ts +2 -18
  142. package/cjs/components/Spinner/Spinner.js +2 -32
  143. package/cjs/components/Spinner/Spinner.js.map +1 -1
  144. package/cjs/components/Sticky/Sticky.d.ts +2 -13
  145. package/cjs/components/Sticky/Sticky.js +2 -22
  146. package/cjs/components/Sticky/Sticky.js.map +1 -1
  147. package/cjs/components/Switcher/Switcher.d.ts +6 -21
  148. package/cjs/components/Switcher/Switcher.js +11 -20
  149. package/cjs/components/Switcher/Switcher.js.map +1 -1
  150. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  151. package/cjs/components/Switcher/Switcher.styles.js +17 -9
  152. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  153. package/cjs/components/Tabs/Indicator.d.ts +2 -0
  154. package/cjs/components/Tabs/Indicator.js +1 -0
  155. package/cjs/components/Tabs/Indicator.js.map +1 -1
  156. package/cjs/components/Tabs/Tab.d.ts +2 -0
  157. package/cjs/components/Tabs/Tab.js +1 -0
  158. package/cjs/components/Tabs/Tab.js.map +1 -1
  159. package/cjs/components/Tabs/Tabs.d.ts +2 -0
  160. package/cjs/components/Tabs/Tabs.js +1 -0
  161. package/cjs/components/Tabs/Tabs.js.map +1 -1
  162. package/cjs/components/Textarea/Textarea.d.ts +2 -44
  163. package/cjs/components/Textarea/Textarea.js +2 -56
  164. package/cjs/components/Textarea/Textarea.js.map +1 -1
  165. package/cjs/components/Textarea/TextareaCounter.js +2 -13
  166. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  167. package/cjs/components/Toast/Toast.d.ts +2 -0
  168. package/cjs/components/Toast/Toast.js +1 -0
  169. package/cjs/components/Toast/Toast.js.map +1 -1
  170. package/cjs/components/Toast/ToastView.d.ts +2 -14
  171. package/cjs/components/Toast/ToastView.js +3 -22
  172. package/cjs/components/Toast/ToastView.js.map +1 -1
  173. package/cjs/components/Toggle/Toggle.d.ts +2 -10
  174. package/cjs/components/Toggle/Toggle.js +1 -11
  175. package/cjs/components/Toggle/Toggle.js.map +1 -1
  176. package/cjs/components/Token/Token.d.ts +2 -0
  177. package/cjs/components/Token/Token.js +1 -0
  178. package/cjs/components/Token/Token.js.map +1 -1
  179. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  180. package/cjs/components/TokenInput/TokenInput.js +1 -0
  181. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  182. package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
  183. package/cjs/components/Tooltip/Tooltip.js +95 -13
  184. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  185. package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
  186. package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
  187. package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
  188. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  189. package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
  190. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  191. package/cjs/index.d.ts +1 -0
  192. package/cjs/index.js.map +1 -1
  193. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  194. package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
  195. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  196. package/cjs/internal/ComponentTable.js +2 -3
  197. package/cjs/internal/ComponentTable.js.map +1 -1
  198. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  199. package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
  200. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  201. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  202. package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
  203. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  204. package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
  205. package/cjs/internal/DateSelect/DateSelect.js +1 -18
  206. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  207. package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
  208. package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
  209. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  210. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
  211. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  212. package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
  213. package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
  214. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  215. package/cjs/internal/Menu/Menu.d.ts +2 -0
  216. package/cjs/internal/Menu/Menu.js +1 -0
  217. package/cjs/internal/Menu/Menu.js.map +1 -1
  218. package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
  219. package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
  220. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  221. package/cjs/internal/Popup/Popup.d.ts +41 -59
  222. package/cjs/internal/Popup/Popup.js +36 -79
  223. package/cjs/internal/Popup/Popup.js.map +1 -1
  224. package/cjs/internal/Popup/PopupPin.d.ts +23 -33
  225. package/cjs/internal/Popup/PopupPin.js +2 -35
  226. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  227. package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
  228. package/cjs/internal/Popup/PopupPinNew.js +180 -0
  229. package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
  230. package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  231. package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
  232. package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
  233. package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
  234. package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
  235. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  236. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  237. package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
  238. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  239. package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
  240. package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
  241. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  242. package/cjs/internal/ThemePlayground/Playground.js +1 -1
  243. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  244. package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
  245. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  246. package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
  247. package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
  248. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  249. package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
  250. package/cjs/internal/ZIndex/ZIndex.js +5 -1
  251. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  252. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  253. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
  254. package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
  255. package/cjs/internal/themes/BasicTheme.d.ts +112 -20
  256. package/cjs/internal/themes/BasicTheme.js +149 -18
  257. package/cjs/internal/themes/BasicTheme.js.map +1 -1
  258. package/cjs/internal/themes/DarkTheme5_2.js +1 -1
  259. package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
  260. package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
  261. package/cjs/internal/themes/DarkTheme5_3.js +13 -0
  262. package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
  263. package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
  264. package/cjs/internal/themes/LightTheme5_3.js +13 -0
  265. package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
  266. package/cjs/lib/delay.mts +3 -0
  267. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  268. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  269. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
  270. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  271. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  272. package/cjs/lib/forwardRefAndName.js +0 -1
  273. package/cjs/lib/forwardRefAndName.js.map +1 -1
  274. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  275. package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
  276. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  277. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  278. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  279. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  280. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  281. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  282. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  283. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  284. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  285. package/cjs/lib/utils.d.ts +4 -0
  286. package/cjs/lib/utils.js +5 -1
  287. package/cjs/lib/utils.js.map +1 -1
  288. package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
  289. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  290. package/components/Autocomplete/Autocomplete.d.ts +6 -23
  291. package/components/Button/Button/Button.js +26 -5
  292. package/components/Button/Button/Button.js.map +1 -1
  293. package/components/Button/Button.d.ts +2 -0
  294. package/components/Button/Button.styles/Button.styles.js +78 -60
  295. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  296. package/components/Button/Button.styles.d.ts +6 -0
  297. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  298. package/components/Calendar/Calendar.d.ts +2 -0
  299. package/components/Center/Center/Center.js.map +1 -1
  300. package/components/Center/Center.d.ts +2 -0
  301. package/components/Checkbox/Checkbox/Checkbox.js +0 -11
  302. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  303. package/components/Checkbox/Checkbox.d.ts +2 -12
  304. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  305. package/components/ComboBox/ComboBox.d.ts +2 -0
  306. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
  307. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  308. package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
  309. package/components/CurrencyInput/constants/constants.js +0 -1
  310. package/components/CurrencyInput/constants/constants.js.map +1 -1
  311. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
  312. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  313. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  314. package/components/DateInput/DateInput.d.ts +2 -0
  315. package/components/DatePicker/DatePicker/DatePicker.js +1 -32
  316. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  317. package/components/DatePicker/DatePicker.d.ts +6 -33
  318. package/components/Dropdown/Dropdown/Dropdown.js +1 -47
  319. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  320. package/components/Dropdown/Dropdown.d.ts +2 -47
  321. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  322. package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
  323. package/components/FxInput/FxInput/FxInput.js +1 -5
  324. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  325. package/components/FxInput/FxInput.d.ts +2 -5
  326. package/components/Gapped/Gapped/Gapped.js +1 -15
  327. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  328. package/components/Gapped/Gapped.d.ts +2 -15
  329. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  330. package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
  331. package/components/Group/Group/Group.js +64 -28
  332. package/components/Group/Group/Group.js.map +1 -1
  333. package/components/Group/Group.d.ts +5 -4
  334. package/components/Group/Group.styles/Group.styles.js +9 -6
  335. package/components/Group/Group.styles/Group.styles.js.map +1 -1
  336. package/components/Group/Group.styles.d.ts +1 -0
  337. package/components/Hint/Hint/Hint.js.map +1 -1
  338. package/components/Hint/Hint.d.ts +2 -0
  339. package/components/Input/Input/Input.js.map +1 -1
  340. package/components/Input/Input.d.ts +2 -0
  341. package/components/Kebab/Kebab/Kebab.js +2 -20
  342. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  343. package/components/Kebab/Kebab.d.ts +2 -1
  344. package/components/Link/Link/Link.js.map +1 -1
  345. package/components/Link/Link.d.ts +2 -0
  346. package/components/Loader/Loader/Loader.js +0 -33
  347. package/components/Loader/Loader/Loader.js.map +1 -1
  348. package/components/Loader/Loader.d.ts +6 -36
  349. package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
  350. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  351. package/components/MaskedInput/MaskedInput.d.ts +1 -0
  352. package/components/MenuItem/MenuItem/MenuItem.js +1 -12
  353. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  354. package/components/MenuItem/MenuItem.d.ts +2 -12
  355. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
  356. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
  357. package/components/MiniModal/MiniModal.styles.d.ts +1 -0
  358. package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
  359. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
  360. package/components/Modal/Modal.styles/Modal.styles.js +31 -28
  361. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  362. package/components/Modal/Modal.styles.d.ts +1 -0
  363. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  364. package/components/Modal/ModalBody.d.ts +2 -0
  365. package/components/Modal/ModalHeader/ModalHeader.js +3 -1
  366. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  367. package/components/Modal/ModalHeader.d.ts +5 -0
  368. package/components/Paging/DotsIcon/DotsIcon.js +14 -0
  369. package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
  370. package/components/Paging/DotsIcon/package.json +6 -0
  371. package/components/Paging/DotsIcon.d.ts +3 -0
  372. package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
  373. package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
  374. package/components/Paging/ForwardIcon.d.ts +3 -0
  375. package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
  376. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  377. package/components/Paging/NavigationHelper.d.ts +3 -2
  378. package/components/Paging/Paging/Paging.js +96 -47
  379. package/components/Paging/Paging/Paging.js.map +1 -1
  380. package/components/Paging/Paging.d.ts +13 -2
  381. package/components/Paging/Paging.styles/Paging.styles.js +77 -16
  382. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  383. package/components/Paging/Paging.styles.d.ts +24 -1
  384. package/components/Paging/PagingHelper/PagingHelper.js +16 -8
  385. package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
  386. package/components/Paging/PagingHelper.d.ts +1 -1
  387. package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
  388. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  389. package/components/PasswordInput/PasswordInput.d.ts +2 -7
  390. package/components/Radio/Radio/Radio.js.map +1 -1
  391. package/components/Radio/Radio.d.ts +2 -0
  392. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  393. package/components/RadioGroup/RadioGroup.d.ts +2 -0
  394. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
  395. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  396. package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
  397. package/components/Select/Select/Select.js.map +1 -1
  398. package/components/Select/Select.d.ts +2 -0
  399. package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
  400. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  401. package/components/SidePage/SidePage.styles.d.ts +3 -1
  402. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  403. package/components/SidePage/SidePageBody.d.ts +2 -0
  404. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  405. package/components/SidePage/SidePageContainer.d.ts +2 -0
  406. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  407. package/components/SidePage/SidePageFooter.d.ts +2 -0
  408. package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
  409. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  410. package/components/SidePage/SidePageHeader.d.ts +12 -2
  411. package/components/Spinner/Spinner/Spinner.js +1 -18
  412. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  413. package/components/Spinner/Spinner.d.ts +2 -18
  414. package/components/Sticky/Sticky/Sticky.js +1 -13
  415. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  416. package/components/Sticky/Sticky.d.ts +2 -13
  417. package/components/Switcher/Switcher/Switcher.js +19 -16
  418. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  419. package/components/Switcher/Switcher.d.ts +6 -21
  420. package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
  421. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  422. package/components/Switcher/Switcher.styles.d.ts +1 -0
  423. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  424. package/components/Tabs/Indicator.d.ts +2 -0
  425. package/components/Tabs/Tab/Tab.js.map +1 -1
  426. package/components/Tabs/Tab.d.ts +2 -0
  427. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  428. package/components/Tabs/Tabs.d.ts +2 -0
  429. package/components/Textarea/Textarea/Textarea.js +1 -44
  430. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  431. package/components/Textarea/Textarea.d.ts +2 -44
  432. package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
  433. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  434. package/components/Toast/Toast/Toast.js.map +1 -1
  435. package/components/Toast/Toast.d.ts +2 -0
  436. package/components/Toast/ToastView/ToastView.js +3 -17
  437. package/components/Toast/ToastView/ToastView.js.map +1 -1
  438. package/components/Toast/ToastView.d.ts +2 -14
  439. package/components/Toggle/Toggle/Toggle.js +1 -10
  440. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  441. package/components/Toggle/Toggle.d.ts +2 -10
  442. package/components/Token/Token/Token.js.map +1 -1
  443. package/components/Token/Token.d.ts +2 -0
  444. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  445. package/components/TokenInput/TokenInput.d.ts +2 -0
  446. package/components/Tooltip/Tooltip/Tooltip.js +67 -20
  447. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  448. package/components/Tooltip/Tooltip.d.ts +14 -9
  449. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
  450. package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
  451. package/components/Tooltip/Tooltip.styles.d.ts +7 -1
  452. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  453. package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
  454. package/index.d.ts +1 -0
  455. package/index.js +1 -0
  456. package/index.js.map +1 -1
  457. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  458. package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
  459. package/internal/ComponentTable/ComponentTable.js +0 -2
  460. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  461. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  462. package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
  463. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  464. package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
  465. package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
  466. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  467. package/internal/DateSelect/DateSelect.d.ts +0 -10
  468. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  469. package/internal/FocusTrap/FocusTrap.d.ts +2 -0
  470. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  471. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  472. package/internal/InputLikeText/InputLikeText.d.ts +2 -0
  473. package/internal/Menu/Menu/Menu.js.map +1 -1
  474. package/internal/Menu/Menu.d.ts +2 -0
  475. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  476. package/internal/MobilePopup/MobilePopup.d.ts +2 -0
  477. package/internal/Popup/Popup/Popup.js +14 -64
  478. package/internal/Popup/Popup/Popup.js.map +1 -1
  479. package/internal/Popup/Popup.d.ts +41 -59
  480. package/internal/Popup/PopupPin/PopupPin.js +1 -34
  481. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  482. package/internal/Popup/PopupPin.d.ts +23 -33
  483. package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
  484. package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
  485. package/internal/Popup/PopupPinNew/package.json +6 -0
  486. package/internal/Popup/PopupPinNew.d.ts +31 -0
  487. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
  488. package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
  489. package/internal/Popup/PopupPinNew.styles/package.json +6 -0
  490. package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
  491. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  492. package/internal/PopupMenu/PopupMenu.d.ts +2 -0
  493. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
  494. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  495. package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
  496. package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
  497. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  498. package/internal/RenderLayer/RenderLayer.d.ts +2 -3
  499. package/internal/ThemePlayground/Playground/Playground.js +4 -3
  500. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  501. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
  502. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  503. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
  504. package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
  505. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  506. package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
  507. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  508. package/internal/ZIndex/ZIndex.d.ts +3 -3
  509. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
  510. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
  511. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
  512. package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
  513. package/internal/themes/BasicTheme/BasicTheme.js +170 -26
  514. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
  515. package/internal/themes/BasicTheme.d.ts +112 -20
  516. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
  517. package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
  518. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
  519. package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
  520. package/internal/themes/DarkTheme5_3/package.json +6 -0
  521. package/internal/themes/DarkTheme5_3.d.ts +1 -0
  522. package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
  523. package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
  524. package/internal/themes/LightTheme5_3/package.json +6 -0
  525. package/internal/themes/LightTheme5_3.d.ts +1 -0
  526. package/lib/delay.d.mts +1 -0
  527. package/lib/delay.mts +3 -0
  528. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
  529. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
  530. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  531. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
  532. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  533. package/lib/forwardRefAndName.d.ts +1 -1
  534. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  535. package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
  536. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  537. package/lib/theming/ThemeVersions.d.ts +1 -1
  538. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  539. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  540. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  541. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  542. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  543. package/lib/theming/themes/LightTheme.d.ts +1 -0
  544. package/lib/utils/utils.js +2 -0
  545. package/lib/utils/utils.js.map +1 -1
  546. package/lib/utils.d.ts +4 -0
  547. package/package.json +10 -13
  548. package/cjs/lib/SSRSafe.d.ts +0 -2
  549. package/cjs/lib/SSRSafe.js +0 -5
  550. package/cjs/lib/SSRSafe.js.map +0 -1
  551. package/lib/SSRSafe/SSRSafe.js +0 -4
  552. package/lib/SSRSafe/SSRSafe.js.map +0 -1
  553. package/lib/SSRSafe/package.json +0 -6
  554. package/lib/SSRSafe.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","Transition","warning","globalObject","getDOMRect","LayoutEvents","ZIndex","RenderContainer","getRandomID","isFunction","isNonNullable","isNullable","isRefableElement","isIE11","isEdge","ThemeContext","safePropTypesInstanceOf","isTestEnv","CommonWrapper","cx","responsiveLayout","MobilePopup","getRootNode","rootNode","isInstanceWithAnchorElement","createPropsGetter","isInstanceOf","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","mergeRefs","getVisualStateDataAttributes","PopupPin","PopupHelper","styles","POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","PopupNonPinnablePositions","PopupPinnablePositions","PopupPositions","concat","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","isFullyVisible","PopupDataTids","root","content","contentInner","popupPin","PopupIds","Popup","_class","_Popup","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","getProps","defaultProps","state","location","props","opened","locationUpdateId","refForTransition","createRef","hasAnchorElementListeners","rootId","anchorElement","absoluteParent","renderInPortal","anchor","ref","createElement","isMobileLayout","withoutMobile","renderMobile","renderContent","renderWithoutPortal","EmptyWrapper","updateAbsoluteElement","className","updateAnchorElement","instance","childDomNode","getAnchorElement","removeEventListeners","addEventListeners","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","anchorWidth","replace","percent","parseFloat","children","backgroundColor","_this$getProps","minWidth","theme","refPopupContentElement","style","prepareDataVisualState","_this$state$location","_getVisualStateDataAt","attrName","resetLocation","cancelDelayedUpdateLocation","setState","element","lastPopupContentElement","handleLayoutEvent","updateLocation","popupContentElement","getLocation","onPositionChange","locationEquals","getRelativeShift","_this2","disablePortal","rect","getElementAbsoluteRect","_inheritsLoose","_proto","prototype","componentDidMount","layoutEventsToken","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","onOpen","onClose","delayUpdateLocation","componentWillUnmount","remove","render","_this3","Consumer","flags","featureFlags","renderMain","renderChildren","rootNodeRef","setRootNode","withoutRenderContainer","onCloseRequest","mobileOnCloseRequest","_anchor","useWrapper","Element","isValidElement","anchorWithRef","cloneElement","canGetAnchorNode","renderRef","renderAnchor","addEventListener","removeEventListener","_this4","_this$props","maxWidth","_this$getProps2","hasShadow","disableAnimations","ignoreHover","relativeShift","_PopupHelper$getPosit","getPositionObject","direction","rootStyle","timeout","appear","Boolean","mountOnEnter","unmountOnExit","onExited","nodeRef","_this4$props$id","_extends2","_ref","_extends","id","priority","popup","shadow","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","_this$props2","pinSize","borderColor","_this$getProps3","hasPin","popupElement","popupPosition","size","parseInt","popupPinSize","offset","getPinOffset","align","borderWidth","popupBackground","requestAnimationFrame","cancelAnimationFrame","x","y","Math","abs","reorderPropsPositionsWithPriorityPos","positions","pos_","pos","index","findIndex","startsWith","join","slice","_this$getProps4","tryPreserveFirstRenderedPosition","anchorRect","popupRect","getCoordinates","canBecomeVisible","canBecomeFullyVisible","_iterator","_createForOfIteratorHelperLoose","_step","done","value","getPinnedPopupOffset","test","anchorSize","height","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","displayName","propTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","priorities","defaultRootNode","_React$Component2","_proto2"],"sources":["Popup.tsx"],"sourcesContent":["import type { HTMLAttributes, LegacyRef } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Priority } from '../ZIndex';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport type { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { getRandomID, isFunction, isNonNullable, isNullable, isRefableElement } from '../../lib/utils';\nimport { isIE11, isEdge } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { MobilePopup } from '../MobilePopup';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { mergeRefs } from '../../lib/mergeRefs';\nimport { getVisualStateDataAttributes } from '../CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { PopupPin } from './PopupPin';\nimport type { Offset, PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupNonPinnablePositions = ['middle center', 'middle left', 'middle right'];\n\nexport const PopupPinnablePositions = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\nexport const PopupPositions = [...PopupPinnablePositions, ...PopupNonPinnablePositions] as const;\n\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = (typeof PopupPositions)[number];\nexport type PopupPinnablePositionsType = (typeof PopupPinnablePositions)[number];\nexport type ShortPopupPositionsType = 'top' | 'bottom' | 'left' | 'right';\n\nexport const DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\n isFullyVisible: false,\n};\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps\n extends Omit<CommonProps, 'children'>,\n PopupHandlerProps,\n Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n anchorElement: React.ReactNode | Element;\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n hasPin?: boolean;\n hasShadow?: boolean;\n disableAnimations?: boolean;\n margin?: number;\n maxWidth?: number | string;\n opened: boolean;\n pinOffset?: number;\n pinSize?: number;\n popupOffset?: number;\n priority?: Priority;\n positions?: Readonly<PopupPositionsType[]>;\n pos?: PopupPositionsType | ShortPopupPositionsType;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n ignoreHover?: boolean;\n width?: React.CSSProperties['width'];\n minWidth?: React.CSSProperties['minWidth'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в том числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n withoutMobile?: boolean;\n /** @ignore */\n disablePortal?: boolean;\n mobileOnCloseRequest?: () => void;\n /**\n * Возвращает текущую позицию попапа\n */\n onPositionChange?: (pos: PopupPositionsType, isFullyVisible: boolean) => void;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n isFullyVisible: boolean;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport const PopupDataTids = {\n root: 'Popup__root',\n content: 'PopupContent',\n contentInner: 'PopupContentInner',\n popupPin: 'PopupPin__root',\n} as const;\n\nexport const PopupIds = {\n root: PopupDataTids.root,\n};\n\ntype DefaultProps = Required<\n Pick<\n PopupProps,\n | 'popupOffset'\n | 'hasPin'\n | 'hasShadow'\n | 'disablePortal'\n | 'disableAnimations'\n | 'useWrapper'\n | 'ignoreHover'\n | 'width'\n | 'priority'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n public static displayName = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(globalObject.HTMLElement), PropTypes.node]).isRequired,\n\n /**\n * Фон попапа и пина\n */\n backgroundColor: PropTypes.string,\n\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Показывать ли пин\n */\n hasPin: PropTypes.bool,\n\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow: PropTypes.bool,\n\n /**\n * Отступ попапа от элемента\n */\n margin: PropTypes.number,\n\n /**\n * Показан или скрыт попап\n */\n opened: PropTypes.bool,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset: PropTypes.number,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize: PropTypes.number,\n\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset: PropTypes.number,\n\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions: PropTypes.array,\n\n /**\n * Приоритетная позиция попапа\n */\n pos: PropTypes.string,\n\n /**\n * Отключает использование портала\n */\n disablePortal: PropTypes.bool,\n\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps: DefaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n disablePortal: false,\n width: 'auto',\n priority: ZIndex.priorities.Popup,\n };\n\n private getProps = createPropsGetter(Popup.defaultProps);\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n public featureFlags!: ReactUIFeatureFlags;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupContentElement: Nullable<Element>;\n private isMobileLayout!: boolean;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n private hasAnchorElementListeners = false;\n private rootId = PopupIds.root + getRandomID();\n\n public anchorElement: Nullable<Element> = null;\n private absoluteParent: Nullable<HTMLDivElement> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n\n if (!this.hasAnchorElementListeners) {\n this.addEventListeners(this.anchorElement);\n }\n }\n\n public static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else if (state.location) {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n const wasClosed = prevProps.opened && !this.props.opened;\n\n if (this.isMobileLayout && prevState.location === null && this.state.location === null) {\n this.setState({ location: DUMMY_LOCATION });\n }\n\n if (this.props.opened && hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (wasClosed && !hasLocation && this.props.onClose) {\n this.props.onClose();\n }\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n if (this.hasAnchorElementListeners) {\n this.removeEventListeners(this.anchorElement);\n }\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderMobile() {\n const { opened } = this.props;\n const children = this.renderChildren();\n\n return children ? (\n <CommonWrapper rootNodeRef={this.setRootNode}>\n <MobilePopup opened={opened} withoutRenderContainer onCloseRequest={this.props.mobileOnCloseRequest}>\n {this.content(children)}\n </MobilePopup>\n </CommonWrapper>\n ) : null;\n }\n\n private renderMain() {\n const { anchorElement } = this.props;\n const useWrapper = this.getProps().useWrapper;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isInstanceOf(anchorElement, globalObject.Element)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n anchor = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n anchor = <span>{anchorElement}</span>;\n }\n\n const anchorWithRef =\n anchor && React.isValidElement(anchor) && isRefableElement(anchor)\n ? React.cloneElement(anchor, {\n ref: mergeRefs(\n (anchor as React.RefAttributes<typeof anchor>)?.ref as React.RefCallback<any>,\n this.updateAnchorElement,\n ),\n } as { ref: (instance: Nullable<React.ReactInstance>) => void })\n : null;\n // we need to get anchor's DOM node\n // so we either set our own ref on it via cloning\n // or relay on findDOMNode (inside getRootNode)\n // which should be called within updateAnchorElement\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isInstanceOf(anchorElement, globalObject.Element);\n const renderRef = canGetAnchorNode ? null : this.updateAnchorElement;\n const renderAnchor = anchorWithRef || anchor;\n\n return this.props.disablePortal\n ? this.renderWithoutPortal(renderAnchor, renderRef)\n : this.renderInPortal(renderAnchor, renderRef);\n }\n\n private renderInPortal = (anchor: React.ReactNode, ref: null | LegacyRef<RenderContainer>) => {\n const { location } = this.state;\n\n return (\n <RenderContainer anchor={anchor} ref={ref}>\n {this.isMobileLayout && !this.props.withoutMobile\n ? this.renderMobile()\n : location && this.renderContent(location)}\n </RenderContainer>\n );\n };\n\n private renderWithoutPortal = (anchor: React.ReactNode, ref: null | LegacyRef<EmptyWrapper>) => {\n const { location } = this.state;\n\n return (\n <EmptyWrapper ref={ref}>\n {anchor}\n {location && (\n <div ref={this.updateAbsoluteElement} className={styles.absoluteParent()}>\n {this.renderContent(location)}\n </div>\n )}\n </EmptyWrapper>\n );\n };\n\n private updateAnchorElement = (instance: Nullable<React.ReactInstance>) => {\n const childDomNode = isInstanceWithAnchorElement(instance) ? instance.getAnchorElement() : getRootNode(instance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n }\n };\n\n private updateAbsoluteElement = (instance: HTMLDivElement) => {\n this.absoluteParent = instance;\n };\n\n private addEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.addEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.addEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = true;\n }\n }\n\n private removeEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = false;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n const anchorWidth = getDOMRect(this.anchorElement).width;\n\n return width.replace(/(\\d)+%/g, (percent: string) => `${(anchorWidth * parseFloat(percent)) / 100}px`);\n }\n return width;\n };\n\n private content = (children: React.ReactNode) => {\n const { backgroundColor } = this.props;\n const { width, minWidth } = this.getProps();\n\n return (\n <div\n className={styles.content(this.theme)}\n data-tid={PopupDataTids.content}\n ref={mergeRefs(this.refForTransition, this.refPopupContentElement)}\n >\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width), minWidth: this.calculateWidth(minWidth) }}\n data-tid={PopupDataTids.contentInner}\n >\n {children}\n </div>\n </div>\n );\n };\n\n private renderContent(location: PopupLocation) {\n const { maxWidth, opened } = this.props;\n const { hasShadow, disableAnimations, ignoreHover } = this.getProps();\n const children = this.renderChildren();\n\n const relativeShift = this.getRelativeShift();\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = {\n maxWidth,\n top: location.coordinates.top + relativeShift.top,\n left: location.coordinates.left + relativeShift.left,\n };\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n nodeRef={this.refForTransition}\n >\n {(state: string) => (\n <CommonWrapper {...this.props} rootNodeRef={this.setRootNode} {...this.prepareDataVisualState()}>\n <ZIndex\n id={this.props.id ?? this.rootId}\n data-tid={PopupDataTids.root}\n priority={this.props.priority}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {this.content(children)}\n {(!this.isMobileLayout || this.props.withoutMobile) && this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private prepareDataVisualState = () => {\n const position = this.state.location?.position;\n if (position) {\n const attrName = `position-` + position.replace(' ', '-');\n return getVisualStateDataAttributes({ [attrName]: true });\n }\n return {};\n };\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.state.location !== null && this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupContentElement = (element: HTMLDivElement) => {\n this.lastPopupContentElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, backgroundColor, borderColor } = this.props;\n const { hasShadow, hasPin } = this.getProps();\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n hasPin &&\n !PopupNonPinnablePositions.includes(positionName) && (\n <PopupPin\n popupElement={this.lastPopupContentElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = globalObject.requestAnimationFrame?.(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n globalObject.cancelAnimationFrame?.(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupContentElement = this.lastPopupContentElement;\n\n if (!popupContentElement) {\n return;\n }\n\n const location = this.getLocation(popupContentElement, this.state.location);\n if (location) {\n this.props.onPositionChange?.(location.position, location.isFullyVisible);\n }\n\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (isNullable(x) || isNullable(y)) {\n return false;\n }\n\n if (!isIE11 && !isEdge) {\n return (\n x.coordinates.left === y.coordinates.left &&\n x.coordinates.top === y.coordinates.top &&\n x.position === y.position\n );\n }\n\n // Для ie/edge обновляем позицию только при разнице минимум в 1. Иначе есть вероятность\n // уйти в бесконечный ререндер\n\n return (\n x.position === y.position &&\n Math.abs(x.coordinates.top - y.coordinates.top) <= 1 &&\n Math.abs(x.coordinates.left - y.coordinates.left) <= 1\n );\n }\n\n private reorderPropsPositionsWithPriorityPos() {\n const positions = this.props.positions ? this.props.positions : PopupPinnablePositions;\n let pos_ = '';\n if (this.props.pos) {\n pos_ = this.props.pos;\n } else {\n pos_ = positions[0];\n }\n const index = positions.findIndex((position) => position.startsWith(pos_));\n if (index === -1) {\n warning(false, 'Unexpected position ' + pos_ + ' passed to Popup. Expected one of: ' + positions.join(', '));\n return positions;\n }\n return [...positions.slice(index), ...positions.slice(0, index)];\n }\n\n private getLocation(popupElement: Element, location?: Nullable<PopupLocation>): Nullable<PopupLocation> {\n const { tryPreserveFirstRenderedPosition } = this.getProps();\n const positions = this.reorderPropsPositionsWithPriorityPos();\n\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isInstanceOf(anchorElement, globalObject.Element),\n 'Anchor element is not defined or not instance of Element',\n );\n\n if (!(anchorElement && isInstanceOf(anchorElement, globalObject.Element))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPositionsType;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n return { coordinates, position, isFullyVisible: false };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.getProps().hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getRelativeShift = () => {\n const { absoluteParent } = this;\n\n if (!this.props.disablePortal || !absoluteParent) {\n return {\n top: 0,\n left: 0,\n };\n }\n\n const rect = PopupHelper.getElementAbsoluteRect(absoluteParent);\n\n return {\n top: -rect.top,\n left: -rect.left,\n };\n };\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.getProps().popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'middle':\n return {\n top: anchorRect.top + anchorRect.height / 2 - popupRect.height / 2,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n\n// Нужно, чтобы получать по рефу dom-элемент, в который зарендерится anchor\ntype EmptyWrapperProps = Readonly<{\n children: React.ReactNode;\n}>;\n\nclass EmptyWrapper extends React.Component<EmptyWrapperProps> {\n public render() {\n return this.props.children;\n }\n}\n"],"mappings":";AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,wBAAwB;AACnD,OAAOC,OAAO,MAAM,SAAS;AAC7B,SAASC,YAAY,QAAQ,0BAA0B;;AAEvD,SAASC,UAAU,QAAQ,0BAA0B;;AAErD,OAAO,KAAKC,YAAY,MAAM,wBAAwB;;AAEtD,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,eAAe,QAAQ,oBAAoB;;AAEpD,SAASC,WAAW,EAAEC,UAAU,EAAEC,aAAa,EAAEC,UAAU,EAAEC,gBAAgB,QAAQ,iBAAiB;AACtG,SAASC,MAAM,EAAEC,MAAM,QAAQ,kBAAkB;AACjD,SAASC,YAAY,QAAQ,gCAAgC;;AAE7D,SAASC,uBAAuB,QAAQ,mBAAmB;AAC3D,SAASC,SAAS,QAAQ,8BAA8B;;AAExD,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,gBAAgB,QAAQ,6CAA6C;AAC9E,SAASC,WAAW,QAAQ,gBAAgB;;AAE5C,SAASC,WAAW,EAAEC,QAAQ,QAAQ,oBAAoB;AAC1D,SAASC,2BAA2B,QAAQ,qCAAqC;AACjF,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,YAAY,QAAQ,wBAAwB;;AAErD,SAASC,0BAA0B,EAAEC,0BAA0B,QAAQ,+BAA+B;AACtG,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAASC,4BAA4B,QAAQ,qDAAqD;;AAElG,SAASC,QAAQ,QAAQ,YAAY;;AAErC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,MAAM,QAAQ,gBAAgB;;AAEvC,IAAMC,0BAA0B,GAAG,aAAa;AAChD,IAAMC,kBAAkB,GAAG,EAAEC,KAAK,EAAE,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC;;AAElD,OAAO,IAAMC,yBAAyB,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,cAAc,CAAC;;AAEzF,OAAO,IAAMC,sBAAsB,GAAG;AACpC,YAAY;AACZ,UAAU;AACV,WAAW;AACX,eAAe;AACf,aAAa;AACb,cAAc;AACd,aAAa;AACb,UAAU;AACV,aAAa;AACb,cAAc;AACd,WAAW;AACX,cAAc,CACf;;;AAED,OAAO,IAAMC,cAAc,MAAAC,MAAA,CAAOF,sBAAsB,EAAKD,yBAAyB,CAAU;;AAEhG,OAAO,IAAMI,eAAe,GAAGF,cAAc,CAAC,CAAC,CAAC;;;;;;AAMhD,OAAO,IAAMG,cAA6B,GAAG;EAC3CC,QAAQ,EAAEF,eAAe;EACzBG,WAAW,EAAE;IACXC,GAAG,EAAE,CAAC,IAAI;IACVC,IAAI,EAAE,CAAC;EACT,CAAC;EACDC,cAAc,EAAE;AAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwED,OAAO,IAAMC,aAAa,GAAG;EAC3BC,IAAI,EAAE,aAAa;EACnBC,OAAO,EAAE,cAAc;EACvBC,YAAY,EAAE,mBAAmB;EACjCC,QAAQ,EAAE;AACZ,CAAU;;AAEV,OAAO,IAAMC,QAAQ,GAAG;EACtBJ,IAAI,EAAED,aAAa,CAACC;AACtB,CAAC;;;;;;;;;;;;;;;;;AAiBD;;AAEaK,KAAK,GAFjBnC,gBAAgB,CAAAoC,MAAA,GAChBjC,QAAQ,CAAAiC,MAAA,IAAAC,MAAA,0BAAAC,gBAAA,YAAAH,MAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAjB,MAAA,CAAAsB,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyFCS,QAAQ,GAAG3C,iBAAiB,CAAC8B,KAAK,CAACc,YAAY,CAAC,CAAAV,KAAA;;;;;IAKjDW,KAAK,GAAe,EAAEC,QAAQ,EAAEZ,KAAA,CAAKa,KAAK,CAACC,MAAM,GAAG9B,cAAc,GAAG,IAAI,CAAC,CAAC,CAAAgB,KAAA;;;;IAI1Ee,gBAAgB,GAAqB,IAAI,CAAAf,KAAA;;;;IAIzCgB,gBAAgB,gBAAG5E,KAAK,CAAC6E,SAAS,CAAiB,CAAC,CAAAjB,KAAA;IACpDkB,yBAAyB,GAAG,KAAK,CAAAlB,KAAA;IACjCmB,MAAM,GAAGxB,QAAQ,CAACJ,IAAI,GAAG1C,WAAW,CAAC,CAAC,CAAAmD,KAAA;;IAEvCoB,aAAa,GAAsB,IAAI,CAAApB,KAAA;IACtCqB,cAAc,GAA6B,IAAI,CAAArB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+H/CsB,cAAc,GAAG,UAACC,MAAuB,EAAEC,GAAsC,EAAK;MAC5F,IAAQZ,QAAQ,GAAKZ,KAAA,CAAKW,KAAK,CAAvBC,QAAQ;;MAEhB;QACExE,KAAA,CAAAqF,aAAA,CAAC7E,eAAe,IAAC2E,MAAM,EAAEA,MAAO,EAACC,GAAG,EAAEA,GAAI;QACvCxB,KAAA,CAAK0B,cAAc,IAAI,CAAC1B,KAAA,CAAKa,KAAK,CAACc,aAAa;QAC7C3B,KAAA,CAAK4B,YAAY,CAAC,CAAC;QACnBhB,QAAQ,IAAIZ,KAAA,CAAK6B,aAAa,CAACjB,QAAQ;QAC5B,CAAC;;IAEtB,CAAC,CAAAZ,KAAA;;IAEO8B,mBAAmB,GAAG,UAACP,MAAuB,EAAEC,GAAmC,EAAK;MAC9F,IAAQZ,QAAQ,GAAKZ,KAAA,CAAKW,KAAK,CAAvBC,QAAQ;;MAEhB;QACExE,KAAA,CAAAqF,aAAA,CAACM,YAAY,IAACP,GAAG,EAAEA,GAAI;QACpBD,MAAM;QACNX,QAAQ;QACPxE,KAAA,CAAAqF,aAAA,UAAKD,GAAG,EAAExB,KAAA,CAAKgC,qBAAsB,EAACC,SAAS,EAAE3D,MAAM,CAAC+C,cAAc,CAAC,CAAE;QACtErB,KAAA,CAAK6B,aAAa,CAACjB,QAAQ;QACzB;;QAEK,CAAC;;IAEnB,CAAC,CAAAZ,KAAA;;IAEOkC,mBAAmB,GAAG,UAACC,QAAuC,EAAK;MACzE,IAAMC,YAAY,GAAGvE,2BAA2B,CAACsE,QAAQ,CAAC,GAAGA,QAAQ,CAACE,gBAAgB,CAAC,CAAC,GAAG1E,WAAW,CAACwE,QAAQ,CAAC;MAChH,IAAMf,aAAa,GAAGpB,KAAA,CAAKoB,aAAa;;MAExC,IAAIgB,YAAY,KAAKhB,aAAa,EAAE;QAClCpB,KAAA,CAAKsC,oBAAoB,CAAClB,aAAa,CAAC;QACxCpB,KAAA,CAAKoB,aAAa,GAAGgB,YAAY;QACjCpC,KAAA,CAAKuC,iBAAiB,CAACH,YAAY,CAAC;MACtC;IACF,CAAC,CAAApC,KAAA;;IAEOgC,qBAAqB,GAAG,UAACG,QAAwB,EAAK;MAC5DnC,KAAA,CAAKqB,cAAc,GAAGc,QAAQ;IAChC,CAAC,CAAAnC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCOwC,gBAAgB,GAAG,UAACC,KAAqB,EAAK;MACpD,IAAIzC,KAAA,CAAKa,KAAK,CAAC6B,YAAY,EAAE;QAC3B1C,KAAA,CAAKa,KAAK,CAAC6B,YAAY,CAACD,KAAK,CAAC;MAChC;IACF,CAAC,CAAAzC,KAAA;;IAEO2C,gBAAgB,GAAG,UAACF,KAAqB,EAAK;MACpD,IAAIzC,KAAA,CAAKa,KAAK,CAAC+B,YAAY,EAAE;QAC3B5C,KAAA,CAAKa,KAAK,CAAC+B,YAAY,CAACH,KAAK,CAAC;MAChC;IACF,CAAC,CAAAzC,KAAA;;IAEO6C,WAAW,GAAG,UAACJ,KAAqB,EAAK;MAC/C,IAAIzC,KAAA,CAAKa,KAAK,CAACiC,OAAO,EAAE;QACtB9C,KAAA,CAAKa,KAAK,CAACiC,OAAO,CAACL,KAAK,CAAC;MAC3B;IACF,CAAC,CAAAzC,KAAA;;IAEO+C,WAAW,GAAG,UAACN,KAAqB,EAAK;MAC/C,IAAIzC,KAAA,CAAKa,KAAK,CAACmC,OAAO,EAAE;QACtBhD,KAAA,CAAKa,KAAK,CAACmC,OAAO,CAACP,KAAK,CAAC;MAC3B;IACF,CAAC,CAAAzC,KAAA;;IAEOiD,UAAU,GAAG,UAACR,KAAqB,EAAK;MAC9C,IAAIzC,KAAA,CAAKa,KAAK,CAACqC,MAAM,EAAE;QACrBlD,KAAA,CAAKa,KAAK,CAACqC,MAAM,CAACT,KAAK,CAAC;MAC1B;IACF,CAAC,CAAAzC,KAAA;;IAEOmD,cAAc,GAAG,UAACC,KAA0B,EAAK;MACvD,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACpD,IAAMC,WAAW,GAAG7G,UAAU,CAACuD,KAAA,CAAKoB,aAAa,CAAC,CAACgC,KAAK;;QAExD,OAAOA,KAAK,CAACG,OAAO,CAAC,SAAS,EAAE,UAACC,OAAe,UAASF,WAAW,GAAGG,UAAU,CAACD,OAAO,CAAC,GAAI,GAAG,SAAI,CAAC;MACxG;MACA,OAAOJ,KAAK;IACd,CAAC,CAAApD,KAAA;;IAEOR,OAAO,GAAG,UAACkE,QAAyB,EAAK;MAC/C,IAAQC,eAAe,GAAK3D,KAAA,CAAKa,KAAK,CAA9B8C,eAAe;MACvB,IAAAC,cAAA,GAA4B5D,KAAA,CAAKS,QAAQ,CAAC,CAAC,CAAnC2C,KAAK,GAAAQ,cAAA,CAALR,KAAK,CAAES,QAAQ,GAAAD,cAAA,CAARC,QAAQ;;MAEvB;QACEzH,KAAA,CAAAqF,aAAA;UACEQ,SAAS,EAAE3D,MAAM,CAACkB,OAAO,CAACQ,KAAA,CAAK8D,KAAK,CAAE;UACtC,YAAUxE,aAAa,CAACE,OAAQ;UAChCgC,GAAG,EAAEtD,SAAS,CAAC8B,KAAA,CAAKgB,gBAAgB,EAAEhB,KAAA,CAAK+D,sBAAsB,CAAE;;QAEnE3H,KAAA,CAAAqF,aAAA;UACEQ,SAAS,EAAE3D,MAAM,CAACmB,YAAY,CAACO,KAAA,CAAK8D,KAAK,CAAE;UAC3CE,KAAK,EAAE,EAAEL,eAAe,EAAfA,eAAe,EAAEP,KAAK,EAAEpD,KAAA,CAAKmD,cAAc,CAACC,KAAK,CAAC,EAAES,QAAQ,EAAE7D,KAAA,CAAKmD,cAAc,CAACU,QAAQ,CAAC,CAAC,CAAE;UACvG,YAAUvE,aAAa,CAACG,YAAa;;QAEpCiE;QACE;QACF,CAAC;;IAEV,CAAC,CAAA1D,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2DOiE,sBAAsB,GAAG,YAAM,KAAAC,oBAAA;MACrC,IAAMjF,QAAQ,IAAAiF,oBAAA,GAAGlE,KAAA,CAAKW,KAAK,CAACC,QAAQ,qBAAnBsD,oBAAA,CAAqBjF,QAAQ;MAC9C,IAAIA,QAAQ,EAAE,KAAAkF,qBAAA;QACZ,IAAMC,QAAQ,GAAG,cAAcnF,QAAQ,CAACsE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QACzD,OAAOpF,4BAA4B,EAAAgG,qBAAA,OAAAA,qBAAA,CAAIC,QAAQ,IAAG,IAAI,EAAAD,qBAAA,CAAE,CAAC;MAC3D;MACA,OAAO,CAAC,CAAC;IACX,CAAC,CAAAnE,KAAA;;IAEOqE,aAAa,GAAG,YAAM;MAC5BrE,KAAA,CAAKsE,2BAA2B,CAAC,CAAC;MAClCtE,KAAA,CAAKW,KAAK,CAACC,QAAQ,KAAK,IAAI,IAAIZ,KAAA,CAAKuE,QAAQ,CAAC,EAAE3D,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC,CAAAZ,KAAA;;;;;;IAMO+D,sBAAsB,GAAG,UAACS,OAAuB,EAAK;MAC5DxE,KAAA,CAAKyE,uBAAuB,GAAGD,OAAO;IACxC,CAAC,CAAAxE,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BO0E,iBAAiB,GAAG,YAAM;MAChC,IAAI,CAAC1E,KAAA,CAAKW,KAAK,CAACC,QAAQ,EAAE;QACxB;MACF;MACAZ,KAAA,CAAK2E,cAAc,CAAC,CAAC;IACvB,CAAC,CAAA3E,KAAA;;;;;;;;;;;;;;IAcO2E,cAAc,GAAG,YAAM;MAC7B,IAAMC,mBAAmB,GAAG5E,KAAA,CAAKyE,uBAAuB;;MAExD,IAAI,CAACG,mBAAmB,EAAE;QACxB;MACF;;MAEA,IAAMhE,QAAQ,GAAGZ,KAAA,CAAK6E,WAAW,CAACD,mBAAmB,EAAE5E,KAAA,CAAKW,KAAK,CAACC,QAAQ,CAAC;MAC3E,IAAIA,QAAQ,EAAE;QACZZ,KAAA,CAAKa,KAAK,CAACiE,gBAAgB,YAA3B9E,KAAA,CAAKa,KAAK,CAACiE,gBAAgB,CAAGlE,QAAQ,CAAC3B,QAAQ,EAAE2B,QAAQ,CAACvB,cAAc,CAAC;MAC3E;;MAEA,IAAI,CAACW,KAAA,CAAK+E,cAAc,CAAC/E,KAAA,CAAKW,KAAK,CAACC,QAAQ,EAAEA,QAAQ,CAAC,EAAE;QACvDZ,KAAA,CAAKuE,QAAQ,CAAC,EAAE3D,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;MAC7B;IACF,CAAC,CAAAZ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkHOgF,gBAAgB,GAAG,YAAM;MAC/B,IAAAC,MAAA,GAAAjF,KAAA,CAAQqB,cAAc,GAAA4D,MAAA,CAAd5D,cAAc;;MAEtB,IAAI,CAACrB,KAAA,CAAKa,KAAK,CAACqE,aAAa,IAAI,CAAC7D,cAAc,EAAE;QAChD,OAAO;UACLlC,GAAG,EAAE,CAAC;UACNC,IAAI,EAAE;QACR,CAAC;MACH;;MAEA,IAAM+F,IAAI,GAAG9G,WAAW,CAAC+G,sBAAsB,CAAC/D,cAAc,CAAC;;MAE/D,OAAO;QACLlC,GAAG,EAAE,CAACgG,IAAI,CAAChG,GAAG;QACdC,IAAI,EAAE,CAAC+F,IAAI,CAAC/F;MACd,CAAC;IACH,CAAC,QAAAY,KAAA,EAAAqF,cAAA,CAAAzF,KAAA,EAAAG,gBAAA,MAAAuF,MAAA,GAAA1F,KAAA,CAAA2F,SAAA,CAAAD,MAAA,CA5gBME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAACb,cAAc,CAAC,CAAC,CACrB,IAAI,CAACc,iBAAiB,GAAG/I,YAAY,CAACgJ,WAAW,CAAC,IAAI,CAAChB,iBAAiB,CAAC,CAEzE,IAAI,CAAC,IAAI,CAACxD,yBAAyB,EAAE,CACnC,IAAI,CAACqB,iBAAiB,CAAC,IAAI,CAACnB,aAAa,CAAC,CAC5C,CACF,CAAC,CAAAxB,KAAA,CAEa+F,wBAAwB,GAAtC,SAAAA,yBAAuC9E,KAA2B,EAAEF,KAAiB,EAAE,CACrF;AACJ;AACA,OACI,IAAIE,KAAK,CAACC,MAAM,EAAE,CAChB,IAAI,CAACH,KAAK,CAACC,QAAQ,EAAE,CACnB,OAAO,EAAEA,QAAQ,EAAE5B,cAAc,CAAC,CAAC,CACrC,CACF,CAAC,MAAM,IAAI2B,KAAK,CAACC,QAAQ,EAAE,CACzB,OAAO,EAAEA,QAAQ,EAAE5B,cAAc,CAAC,CAAC,CACrC,CACA,OAAO2B,KAAK,CACd,CAAC,CAAA2E,MAAA,CAEMM,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAqB,EAAEC,SAAqB,EAAE,CACtE,IAAMC,aAAa,GAAGD,SAAS,CAAClF,QAAQ,KAAK5B,cAAc,CAC3D,IAAMgH,WAAW,GAAG,IAAI,CAACrF,KAAK,CAACC,QAAQ,KAAK5B,cAAc,CAC1D,IAAMiH,SAAS,GAAGJ,SAAS,CAAC/E,MAAM,IAAI,CAAC,IAAI,CAACD,KAAK,CAACC,MAAM,CAExD,IAAI,IAAI,CAACY,cAAc,IAAIoE,SAAS,CAAClF,QAAQ,KAAK,IAAI,IAAI,IAAI,CAACD,KAAK,CAACC,QAAQ,KAAK,IAAI,EAAE,CACtF,IAAI,CAAC2D,QAAQ,CAAC,EAAE3D,QAAQ,EAAE5B,cAAc,CAAC,CAAC,CAAC,CAC7C,CAEA,IAAI,IAAI,CAAC6B,KAAK,CAACC,MAAM,IAAIiF,aAAa,IAAIC,WAAW,IAAI,IAAI,CAACnF,KAAK,CAACqF,MAAM,EAAE,CAC1E,IAAI,CAACrF,KAAK,CAACqF,MAAM,CAAC,CAAC,CACrB,CACA,IAAID,SAAS,IAAI,CAACD,WAAW,IAAI,IAAI,CAACnF,KAAK,CAACsF,OAAO,EAAE,CACnD,IAAI,CAACtF,KAAK,CAACsF,OAAO,CAAC,CAAC,CACtB,CACA,IAAI,IAAI,CAACtF,KAAK,CAACC,MAAM,EAAE,CACrB,IAAI,CAACsF,mBAAmB,CAAC,CAAC,CAC5B,CACF,CAAC,CAAAd,MAAA,CAEMe,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAAC/B,2BAA2B,CAAC,CAAC,CAClC,IAAI,IAAI,CAACpD,yBAAyB,EAAE,CAClC,IAAI,CAACoB,oBAAoB,CAAC,IAAI,CAAClB,aAAa,CAAC,CAC/C,CACA,IAAI,IAAI,CAACqE,iBAAiB,EAAE,CAC1B,IAAI,CAACA,iBAAiB,CAACa,MAAM,CAAC,CAAC,CAC/B,IAAI,CAACb,iBAAiB,GAAG,IAAI,CAC/B,CACA,IAAI,IAAI,CAAC9E,KAAK,CAACC,QAAQ,IAAI,IAAI,CAACC,KAAK,CAACsF,OAAO,EAAE,CAC7C,IAAI,CAACtF,KAAK,CAACsF,OAAO,CAAC,CAAC,CACtB,CACF,CAAC,CAAAb,MAAA,CAEMiB,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACEpK,KAAA,CAAAqF,aAAA,CAACxD,0BAA0B,CAACwI,QAAQ,QACjC,UAACC,KAAK,EAAK,CACVF,MAAI,CAACG,YAAY,GAAG3I,0BAA0B,CAAC0I,KAAK,CAAC,CACrD,oBACEtK,KAAA,CAAAqF,aAAA,CAACrE,YAAY,CAACqJ,QAAQ,QACnB,UAAC3C,KAAK,EAAK,CACV0C,MAAI,CAAC1C,KAAK,GAAGA,KAAK,CAClB,OAAO0C,MAAI,CAACI,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CACmC,CAAC,CAE1C,CAAC,CAAAtB,MAAA,CAEO1D,YAAY,GAApB,SAAAA,aAAA,EAAuB,CACrB,IAAQd,MAAM,GAAK,IAAI,CAACD,KAAK,CAArBC,MAAM,CACd,IAAM4C,QAAQ,GAAG,IAAI,CAACmD,cAAc,CAAC,CAAC,CAEtC,OAAOnD,QAAQ,gBACbtH,KAAA,CAAAqF,aAAA,CAAClE,aAAa,IAACuJ,WAAW,EAAE,IAAI,CAACC,WAAY,iBAC3C3K,KAAA,CAAAqF,aAAA,CAAC/D,WAAW,IAACoD,MAAM,EAAEA,MAAO,EAACkG,sBAAsB,QAACC,cAAc,EAAE,IAAI,CAACpG,KAAK,CAACqG,oBAAqB,IACjG,IAAI,CAAC1H,OAAO,CAACkE,QAAQ,CACX,CACA,CAAC,GACd,IAAI,CACV,CAAC,CAAA4B,MAAA,CAEOsB,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAO,OAAA,CACnB,IAAQ/F,aAAa,GAAK,IAAI,CAACP,KAAK,CAA5BO,aAAa,CACrB,IAAMgG,UAAU,GAAG,IAAI,CAAC3G,QAAQ,CAAC,CAAC,CAAC2G,UAAU,CAE7C,IAAI7F,MAAiC,GAAG,IAAI,CAC5C,IAAIxD,YAAY,CAACqD,aAAa,EAAE5E,YAAY,CAAC6K,OAAO,CAAC,EAAE,CACrD,IAAI,CAACnF,mBAAmB,CAACd,aAAa,CAAC,CACzC,CAAC,MAAM,kBAAIhF,KAAK,CAACkL,cAAc,CAAClG,aAAa,CAAC,EAAE,CAC9CG,MAAM,GAAG6F,UAAU,gBAAGhL,KAAA,CAAAqF,aAAA,eAAOL,aAAoB,CAAC,GAAGA,aAAa,CACpE,CAAC,MAAM,CACLG,MAAM,gBAAGnF,KAAA,CAAAqF,aAAA,eAAOL,aAAoB,CAAC,CACvC,CAEA,IAAMmG,aAAa,GACjBhG,MAAM,iBAAInF,KAAK,CAACkL,cAAc,CAAC/F,MAAM,CAAC,IAAItE,gBAAgB,CAACsE,MAAM,CAAC,gBAC9DnF,KAAK,CAACoL,YAAY,CAACjG,MAAM,EAAE,EACzBC,GAAG,EAAEtD,SAAS,EAAAiJ,OAAA,GACX5F,MAAM,qBAAP4F,OAAA,CAAgD3F,GAAG,EACnD,IAAI,CAACU,mBACP,CAAC,CACH,CAA+D,CAAC,GAChE,IAAI,CAAC,CACX;IACA;IACA;IACA;IACA;IAEA,IAAMuF,gBAAgB,GAAG,CAAC,CAACF,aAAa,IAAIxJ,YAAY,CAACqD,aAAa,EAAE5E,YAAY,CAAC6K,OAAO,CAAC,CAC7F,IAAMK,SAAS,GAAGD,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAACvF,mBAAmB,CACpE,IAAMyF,YAAY,GAAGJ,aAAa,IAAIhG,MAAM,CAE5C,OAAO,IAAI,CAACV,KAAK,CAACqE,aAAa,GAC3B,IAAI,CAACpD,mBAAmB,CAAC6F,YAAY,EAAED,SAAS,CAAC,GACjD,IAAI,CAACpG,cAAc,CAACqG,YAAY,EAAED,SAAS,CAAC,CAClD,CAAC,CAAApC,MAAA,CA4CO/C,iBAAiB,GAAzB,SAAAA,kBAA0BiC,OAA0B,EAAE,CACpD,IAAIA,OAAO,IAAIzG,YAAY,CAACyG,OAAO,EAAEhI,YAAY,CAAC6K,OAAO,CAAC,EAAE,CAC1D;MACA7C,OAAO,CAACoD,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAACpF,gBAAgB,CAAC,CAAC,CAC9D;MACAgC,OAAO,CAACoD,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAACjF,gBAAgB,CAAC,CAAC,CAC9D;MACA6B,OAAO,CAACoD,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC/E,WAAW,CAAC,CACnD2B,OAAO,CAACoD,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC7E,WAA4B,CAAC,CACtEyB,OAAO,CAACoD,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC3E,UAA2B,CAAC,CAEtE,IAAI,CAAC/B,yBAAyB,GAAG,IAAI,CACvC,CACF,CAAC,CAAAoE,MAAA,CAEOhD,oBAAoB,GAA5B,SAAAA,qBAA6BkC,OAA0B,EAAE,CACvD,IAAIA,OAAO,IAAIzG,YAAY,CAACyG,OAAO,EAAEhI,YAAY,CAAC6K,OAAO,CAAC,EAAE,CAC1D;MACA7C,OAAO,CAACqD,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAACrF,gBAAgB,CAAC,CAAC,CACjE;MACAgC,OAAO,CAACqD,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAClF,gBAAgB,CAAC,CAAC,CACjE;MACA6B,OAAO,CAACqD,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAChF,WAAW,CAAC,CACtD2B,OAAO,CAACqD,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC9E,WAA4B,CAAC,CACzEyB,OAAO,CAACqD,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC5E,UAA2B,CAAC,CAEzE,IAAI,CAAC/B,yBAAyB,GAAG,KAAK,CACxC,CACF,CAAC,CAAAoE,MAAA,CA8DOzD,aAAa,GAArB,SAAAA,cAAsBjB,QAAuB,EAAE,KAAAkH,MAAA,QAC7C,IAAAC,WAAA,GAA6B,IAAI,CAAClH,KAAK,CAA/BmH,QAAQ,GAAAD,WAAA,CAARC,QAAQ,CAAElH,MAAM,GAAAiH,WAAA,CAANjH,MAAM,CACxB,IAAAmH,eAAA,GAAsD,IAAI,CAACxH,QAAQ,CAAC,CAAC,CAA7DyH,SAAS,GAAAD,eAAA,CAATC,SAAS,CAAEC,iBAAiB,GAAAF,eAAA,CAAjBE,iBAAiB,CAAEC,WAAW,GAAAH,eAAA,CAAXG,WAAW,CACjD,IAAM1E,QAAQ,GAAG,IAAI,CAACmD,cAAc,CAAC,CAAC,CAEtC,IAAMwB,aAAa,GAAG,IAAI,CAACrD,gBAAgB,CAAC,CAAC,CAC7C,IAAAsD,qBAAA,GAAsBjK,WAAW,CAACkK,iBAAiB,CAAC3H,QAAQ,CAAC3B,QAAQ,CAAC,CAA9DuJ,SAAS,GAAAF,qBAAA,CAATE,SAAS,CACjB,IAAMC,SAA8B,GAAG,EACrCT,QAAQ,EAARA,QAAQ,EACR7I,GAAG,EAAEyB,QAAQ,CAAC1B,WAAW,CAACC,GAAG,GAAGkJ,aAAa,CAAClJ,GAAG,EACjDC,IAAI,EAAEwB,QAAQ,CAAC1B,WAAW,CAACE,IAAI,GAAGiJ,aAAa,CAACjJ,IAAI,CACtD,CAAC,CAED,oBACEhD,KAAA,CAAAqF,aAAA,CAACnF,UAAU,IACToM,OAAO,EAAElK,kBAAmB,EAC5BmK,MAAM,EAAE,CAACR,iBAAkB,EAC3B,MAAIS,OAAO,CAAC9H,MAAM,IAAI4C,QAAQ,CAAE,EAChCmF,YAAY,QACZC,aAAa,QACbrK,KAAK,EAAE,CAAC0J,iBAAkB,EAC1BzJ,IAAI,EAAE,CAACyJ,iBAAkB,EACzBY,QAAQ,EAAE,IAAI,CAAC1E,aAAc,EAC7B2E,OAAO,EAAE,IAAI,CAAChI,gBAAiB,IAE9B,UAACL,KAAa,OAAAsI,eAAA,EAAAC,SAAA,EAAAC,IAAA,qBACb/M,KAAA,CAAAqF,aAAA,CAAClE,aAAa,EAAA6L,QAAA,KAAKtB,MAAI,CAACjH,KAAK,IAAEiG,WAAW,EAAEgB,MAAI,CAACf,WAAY,IAAKe,MAAI,CAAC7D,sBAAsB,CAAC,CAAC,gBAC7F7H,KAAA,CAAAqF,aAAA,CAAC9E,MAAM,IACL0M,EAAE,GAAAJ,eAAA,GAAEnB,MAAI,CAACjH,KAAK,CAACwI,EAAE,YAAAJ,eAAA,GAAInB,MAAI,CAAC3G,MAAO,EACjC,YAAU7B,aAAa,CAACC,IAAK,EAC7B+J,QAAQ,EAAExB,MAAI,CAACjH,KAAK,CAACyI,QAAS,EAC9BrH,SAAS,EAAEzE,EAAE,CAAA4L,QAAA,EAAAF,SAAA,OAAAA,SAAA,CACV5K,MAAM,CAACiL,KAAK,CAACzB,MAAI,CAAChE,KAAK,CAAC,IAAG,IAAI,EAAAoF,SAAA,CAC/B5K,MAAM,CAACkL,MAAM,CAAC1B,MAAI,CAAChE,KAAK,CAAC,IAAGoE,SAAS,EAAAgB,SAAA,CACrC5K,MAAM,CAACmL,gBAAgB,CAAC,CAAC,IAAGrB,WAAW,EAAAc,SAAA,GACpCf,iBAAiB,GACjB,CAAC,CAAC,IAAAgB,IAAA,OAAAA,IAAA,CAEC7K,MAAM,uBAAqBkK,SAAS,CAA0B,CAACV,MAAI,CAAChE,KAAK,CAAC,IAAG,IAAI,EAAAqF,IAAA,CACjF7K,MAAM,CAACoL,eAAe,CAAC,CAAC,IAAG/I,KAAK,KAAK,UAAU,EAAAwI,IAAA,CAC/C7K,MAAM,CAACqL,qBAAqB,CAAC,CAAC,IAAGhJ,KAAK,KAAK,SAAS,EAAAwI,IAAA,CACpD7K,MAAM,CAACsL,cAAc,CAAC,CAAC,IAAGjJ,KAAK,KAAK,SAAS,EAAAwI,IAAA,CAC/C,CACN,CAAE,EACHnF,KAAK,EAAEyE,SAAU,EACjB/F,YAAY,EAAEoF,MAAI,CAACtF,gBAAiB,EACpCI,YAAY,EAAEkF,MAAI,CAACnF,gBAAiB,IAEnCmF,MAAI,CAACtI,OAAO,CAACkE,QAAQ,CAAC,EACtB,CAAC,CAACoE,MAAI,CAACpG,cAAc,IAAIoG,MAAI,CAACjH,KAAK,CAACc,aAAa,KAAKmG,MAAI,CAAC+B,SAAS,CAACjJ,QAAQ,CAAC3B,QAAQ,CACjF,CACK,CAAC,EAER,CAAC,CAEjB,CAAC,CAAAqG,MAAA,CAgBOuB,cAAc,GAAtB,SAAAA,eAAA,EAAyB,CACvB,OAAO/J,UAAU,CAAC,IAAI,CAAC+D,KAAK,CAAC6C,QAAQ,CAAC,GAAG,IAAI,CAAC7C,KAAK,CAAC6C,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC7C,KAAK,CAAC6C,QAAQ,CACtF,CAAC,CAAA4B,MAAA,CAMOuE,SAAS,GAAjB,SAAAA,UAAkBC,YAAoB,EAAmB,CACvD,IAAMC,oBAAoB,GAAG,IAAI,CAACjG,KAAK,CAACkG,gBAAgB,KAAKzL,0BAA0B,CACvF,IAAM0L,SAAS,GAAG/M,MAAM,IAAI6M,oBAAoB,GAAG,qBAAqB,GAAG,IAAI,CAACjG,KAAK,CAACkG,gBAAgB,CAEtG,IAAAE,YAAA,GAAkD,IAAI,CAACrJ,KAAK,CAApDsJ,OAAO,GAAAD,YAAA,CAAPC,OAAO,CAAExG,eAAe,GAAAuG,YAAA,CAAfvG,eAAe,CAAEyG,WAAW,GAAAF,YAAA,CAAXE,WAAW,CAC7C,IAAAC,eAAA,GAA8B,IAAI,CAAC5J,QAAQ,CAAC,CAAC,CAArCyH,SAAS,GAAAmC,eAAA,CAATnC,SAAS,CAAEoC,MAAM,GAAAD,eAAA,CAANC,MAAM,CACzB,IAAMrL,QAAQ,GAAGZ,WAAW,CAACkK,iBAAiB,CAACuB,YAAY,CAAC,CAE5D,OACEQ,MAAM,IACN,CAAC3L,yBAAyB,CAAC0E,QAAQ,CAACyG,YAAY,CAAC,iBAC/C1N,KAAA,CAAAqF,aAAA,CAACrD,QAAQ,IACPmM,YAAY,EAAE,IAAI,CAAC9F,uBAAwB,EAC3C+F,aAAa,EAAEV,YAAa,EAC5BW,IAAI,EAAEN,OAAO,IAAIO,QAAQ,CAAC,IAAI,CAAC5G,KAAK,CAAC6G,YAAY,CAAE,EACnDC,MAAM,EAAE,IAAI,CAACC,YAAY,CAAC5L,QAAQ,CAAC6L,KAAK,CAAE,EAC1CC,WAAW,EAAE7C,SAAS,GAAG,CAAC,GAAG,CAAE,EAC/BvE,eAAe,EAAEA,eAAe,IAAI,IAAI,CAACG,KAAK,CAACkH,eAAgB,EAC/DZ,WAAW,EAAEA,WAAW,IAAIH,SAAU,EACvC,CACF,CAEL,CAAC,CAAA3E,MAAA,CASOc,mBAAmB,GAA3B,SAAAA,oBAAA,EAA8B,CAC5B,IAAI,CAAC9B,2BAA2B,CAAC,CAAC,CAClC,IAAI,CAACvD,gBAAgB,GAAGvE,YAAY,CAACyO,qBAAqB,oBAAlCzO,YAAY,CAACyO,qBAAqB,CAAG,IAAI,CAACtG,cAAc,CAAC,CACnF,CAAC,CAAAW,MAAA,CAEOhB,2BAA2B,GAAnC,SAAAA,4BAAA,EAAsC,CACpC,IAAI,IAAI,CAACvD,gBAAgB,EAAE,CACzBvE,YAAY,CAAC0O,oBAAoB,YAAjC1O,YAAY,CAAC0O,oBAAoB,CAAG,IAAI,CAACnK,gBAAgB,CAAC,CAC1D,IAAI,CAACA,gBAAgB,GAAG,IAAI,CAC9B,CACF,CAAC,CAAAuE,MAAA,CAmBOP,cAAc,GAAtB,SAAAA,eAAuBoG,CAA0B,EAAEC,CAA0B,EAAE,CAC7E,IAAID,CAAC,KAAKC,CAAC,EAAE,CACX,OAAO,IAAI,CACb,CAEA,IAAIpO,UAAU,CAACmO,CAAC,CAAC,IAAInO,UAAU,CAACoO,CAAC,CAAC,EAAE,CAClC,OAAO,KAAK,CACd,CAEA,IAAI,CAAClO,MAAM,IAAI,CAACC,MAAM,EAAE,CACtB,OACEgO,CAAC,CAACjM,WAAW,CAACE,IAAI,KAAKgM,CAAC,CAAClM,WAAW,CAACE,IAAI,IACzC+L,CAAC,CAACjM,WAAW,CAACC,GAAG,KAAKiM,CAAC,CAAClM,WAAW,CAACC,GAAG,IACvCgM,CAAC,CAAClM,QAAQ,KAAKmM,CAAC,CAACnM,QAAQ,CAE7B,CAAC,CAED;IACA;IAEA,OACEkM,CAAC,CAAClM,QAAQ,KAAKmM,CAAC,CAACnM,QAAQ,IACzBoM,IAAI,CAACC,GAAG,CAACH,CAAC,CAACjM,WAAW,CAACC,GAAG,GAAGiM,CAAC,CAAClM,WAAW,CAACC,GAAG,CAAC,IAAI,CAAC,IACpDkM,IAAI,CAACC,GAAG,CAACH,CAAC,CAACjM,WAAW,CAACE,IAAI,GAAGgM,CAAC,CAAClM,WAAW,CAACE,IAAI,CAAC,IAAI,CAAC,CAE1D,CAAC,CAAAkG,MAAA,CAEOiG,oCAAoC,GAA5C,SAAAA,qCAAA,EAA+C,CAC7C,IAAMC,SAAS,GAAG,IAAI,CAAC3K,KAAK,CAAC2K,SAAS,GAAG,IAAI,CAAC3K,KAAK,CAAC2K,SAAS,GAAG5M,sBAAsB,CACtF,IAAI6M,IAAI,GAAG,EAAE,CACb,IAAI,IAAI,CAAC5K,KAAK,CAAC6K,GAAG,EAAE,CAClBD,IAAI,GAAG,IAAI,CAAC5K,KAAK,CAAC6K,GAAG,CACvB,CAAC,MAAM,CACLD,IAAI,GAAGD,SAAS,CAAC,CAAC,CAAC,CACrB,CACA,IAAMG,KAAK,GAAGH,SAAS,CAACI,SAAS,CAAC,UAAC3M,QAAQ,UAAKA,QAAQ,CAAC4M,UAAU,CAACJ,IAAI,CAAC,GAAC,CAC1E,IAAIE,KAAK,KAAK,CAAC,CAAC,EAAE,CAChBpP,OAAO,CAAC,KAAK,EAAE,sBAAsB,GAAGkP,IAAI,GAAG,qCAAqC,GAAGD,SAAS,CAACM,IAAI,CAAC,IAAI,CAAC,CAAC,CAC5G,OAAON,SAAS,CAClB,CACA,UAAA1M,MAAA,CAAW0M,SAAS,CAACO,KAAK,CAACJ,KAAK,CAAC,EAAKH,SAAS,CAACO,KAAK,CAAC,CAAC,EAAEJ,KAAK,CAAC,EACjE,CAAC,CAAArG,MAAA,CAEOT,WAAW,GAAnB,SAAAA,YAAoB0F,YAAqB,EAAE3J,QAAkC,EAA2B,CACtG,IAAAoL,eAAA,GAA6C,IAAI,CAACvL,QAAQ,CAAC,CAAC,CAApDwL,gCAAgC,GAAAD,eAAA,CAAhCC,gCAAgC,CACxC,IAAMT,SAAS,GAAG,IAAI,CAACD,oCAAoC,CAAC,CAAC,CAE7D,IAAMnK,aAAa,GAAG,IAAI,CAACA,aAAa,CAExC7E,OAAO,CACL6E,aAAa,IAAIrD,YAAY,CAACqD,aAAa,EAAE5E,YAAY,CAAC6K,OAAO,CAAC,EAClE,0DACF,CAAC,CAED,IAAI,EAAEjG,aAAa,IAAIrD,YAAY,CAACqD,aAAa,EAAE5E,YAAY,CAAC6K,OAAO,CAAC,CAAC,EAAE,CACzE,OAAOzG,QAAQ,CACjB,CAEA,IAAMsL,UAAU,GAAG7N,WAAW,CAAC+G,sBAAsB,CAAChE,aAAa,CAAC,CACpE,IAAM+K,SAAS,GAAG9N,WAAW,CAAC+G,sBAAsB,CAACmF,YAAY,CAAC,CAElE,IAAItL,QAA4B,CAChC,IAAIC,WAAmB,CAEvB,IAAI0B,QAAQ,IAAIA,QAAQ,KAAK5B,cAAc,IAAI4B,QAAQ,CAAC3B,QAAQ,EAAE,CAChEA,QAAQ,GAAG2B,QAAQ,CAAC3B,QAAQ,CAC5BC,WAAW,GAAG,IAAI,CAACkN,cAAc,CAACF,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC,CAElE,IAAMI,cAAc,GAAGhB,WAAW,CAACgB,cAAc,CAACH,WAAW,EAAEiN,SAAS,CAAC,CACzE,IAAME,gBAAgB,GAAG,CAAChN,cAAc,IAAIhB,WAAW,CAACiO,qBAAqB,CAACrN,QAAQ,EAAEC,WAAW,CAAC,CAEpG,KACE;MACA;MACC+M,gCAAgC,KAAK5M,cAAc,IAAIgN,gBAAgB,CAAC,IACzE;MACA;MACChN,cAAc,IAAIJ,QAAQ,KAAKuM,SAAS,CAAC,CAAC,CAAE,EAC7C,CACA;QACA,OAAO,EAAEtM,WAAW,EAAXA,WAAW,EAAED,QAAQ,EAARA,QAAQ,EAAEI,cAAc,EAAE,IAAI,CAAC,CAAC,CACxD,CACF,CAEA,SAAAkN,SAAA,GAAAC,+BAAA,CAAiBhB,SAAS,GAAAiB,KAAA,IAAAA,KAAA,GAAAF,SAAA,IAAAG,IAAA,GAAE,CAAvBzN,QAAQ,GAAAwN,KAAA,CAAAE,KAAA,CACXzN,WAAW,GAAG,IAAI,CAACkN,cAAc,CAACF,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC,CAClE,IAAIZ,WAAW,CAACgB,cAAc,CAACH,WAAW,EAAEiN,SAAS,CAAC,EAAE,CACtD,OAAO,EAAEjN,WAAW,EAAXA,WAAW,EAAED,QAAQ,EAARA,QAAQ,EAAEI,cAAc,EAAE,IAAI,CAAC,CAAC,CACxD,CACF,CAEAJ,QAAQ,GAAGuM,SAAS,CAAC,CAAC,CAAC,CACvBtM,WAAW,GAAG,IAAI,CAACkN,cAAc,CAACF,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC,CAElE,OAAO,EAAEC,WAAW,EAAXA,WAAW,EAAED,QAAQ,EAARA,QAAQ,EAAEI,cAAc,EAAE,KAAK,CAAC,CAAC,CACzD,CAAC,CAAAiG,MAAA,CAEOsH,oBAAoB,GAA5B,SAAAA,qBAA6BV,UAAgB,EAAEjN,QAAwB,EAAE,CACvE,IAAI,CAAC,IAAI,CAACwB,QAAQ,CAAC,CAAC,CAAC6J,MAAM,IAAI,eAAe,CAACuC,IAAI,CAAC5N,QAAQ,CAAC6L,KAAK,CAAC,EAAE,CACnE,OAAO,CAAC,CACV,CAEA,IAAMgC,UAAU,GAAG,YAAY,CAACD,IAAI,CAAC5N,QAAQ,CAACuJ,SAAS,CAAC,GAAG0D,UAAU,CAAC9I,KAAK,GAAG8I,UAAU,CAACa,MAAM,CAE/F,IAAQ5C,OAAO,GAAK,IAAI,CAACtJ,KAAK,CAAtBsJ,OAAO,CAEf,OAAOkB,IAAI,CAAC2B,GAAG,CACb,CAAC,EACD,IAAI,CAACnC,YAAY,CAAC5L,QAAQ,CAAC6L,KAAK,CAAC,IAAIX,OAAO,IAAIO,QAAQ,CAAC,IAAI,CAAC5G,KAAK,CAAC6G,YAAY,CAAC,CAAC,GAAGmC,UAAU,GAAG,CACpG,CAAC,CACH,CAAC,CAAAxH,MAAA,CAoBO8G,cAAc,GAAtB,SAAAA,eAAuBF,UAAgB,EAAEC,SAAe,EAAErC,YAAoB,EAAE,CAC9E,IAAgBmD,eAAe,GAAK,IAAI,CAACpM,KAAK,CAAtCqM,MAAM,CACd,IAAMA,MAAM,GACVnQ,aAAa,CAACkQ,eAAe,CAAC,IAAI,CAACE,KAAK,CAACF,eAAe,CAAC,GACrDA,eAAe,GACfvC,QAAQ,CAAC,IAAI,CAAC5G,KAAK,CAACsJ,WAAW,CAAC,IAAI,CAAC,CAC3C,IAAMnO,QAAQ,GAAGZ,WAAW,CAACkK,iBAAiB,CAACuB,YAAY,CAAC,CAC5D,IAAMuD,WAAW,GAAG,IAAI,CAAC5M,QAAQ,CAAC,CAAC,CAAC4M,WAAW,GAAG,IAAI,CAACT,oBAAoB,CAACV,UAAU,EAAEjN,QAAQ,CAAC,CAEjG,QAAQA,QAAQ,CAACuJ,SAAS,GACxB,KAAK,KAAK,CACR,OAAO,EACLrJ,GAAG,EAAE+M,UAAU,CAAC/M,GAAG,GAAGgN,SAAS,CAACY,MAAM,GAAGG,MAAM,EAC/C9N,IAAI,EAAE,IAAI,CAACkO,qBAAqB,CAACpB,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC6L,KAAK,EAAEuC,WAAW,CAAC,CACtF,CAAC,CACH,KAAK,QAAQ,CACX,OAAO,EACLlO,GAAG,EAAE+M,UAAU,CAAC/M,GAAG,GAAG+M,UAAU,CAACa,MAAM,GAAG,CAAC,GAAGZ,SAAS,CAACY,MAAM,GAAG,CAAC,EAClE3N,IAAI,EAAE,IAAI,CAACkO,qBAAqB,CAACpB,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC6L,KAAK,EAAEuC,WAAW;QACrF,CAAC;MACH,KAAK,QAAQ;QACX,OAAO;UACLlO,GAAG,EAAE+M,UAAU,CAAC/M,GAAG,GAAG+M,UAAU,CAACa,MAAM,GAAGG,MAAM;UAChD9N,IAAI,EAAE,IAAI,CAACkO,qBAAqB,CAACpB,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC6L,KAAK,EAAEuC,WAAW;QACrF,CAAC;MACH,KAAK,MAAM;QACT,OAAO;UACLlO,GAAG,EAAE,IAAI,CAACoO,mBAAmB,CAACrB,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC6L,KAAK,EAAEuC,WAAW,CAAC;UACjFjO,IAAI,EAAE8M,UAAU,CAAC9M,IAAI,GAAG+M,SAAS,CAAC/I,KAAK,GAAG8J;QAC5C,CAAC;MACH,KAAK,OAAO;QACV,OAAO;UACL/N,GAAG,EAAE,IAAI,CAACoO,mBAAmB,CAACrB,UAAU,EAAEC,SAAS,EAAElN,QAAQ,CAAC6L,KAAK,EAAEuC,WAAW,CAAC;UACjFjO,IAAI,EAAE8M,UAAU,CAAC9M,IAAI,GAAG8M,UAAU,CAAC9I,KAAK,GAAG8J;QAC7C,CAAC;MACH;QACE,MAAM,IAAIM,KAAK,4BAA0BvO,QAAQ,CAACuJ,SAAS,MAAG,CAAC;IACnE;EACF,CAAC,CAAAlD,MAAA;;EAEOuF,YAAY,GAApB,SAAAA,aAAqBC,KAAa,EAAE;IAClC,IAAQ2C,SAAS,GAAK,IAAI,CAAC5M,KAAK,CAAxB4M,SAAS;;IAEjB,QAAQ3C,KAAK;MACX,KAAK,KAAK;MACV,KAAK,QAAQ;QACX,OAAO2C,SAAS,IAAI/C,QAAQ,CAAC,IAAI,CAAC5G,KAAK,CAAC4J,eAAe,CAAC;MAC1D,KAAK,MAAM;MACX,KAAK,OAAO;QACV,OAAOD,SAAS,IAAI/C,QAAQ,CAAC,IAAI,CAAC5G,KAAK,CAAC6J,eAAe,CAAC;MAC1D,KAAK,QAAQ;MACb,KAAK,QAAQ;QACX,OAAO,CAAC;MACV;QACE,MAAM,IAAIH,KAAK,wBAAsB1C,KAAK,MAAG,CAAC;IAClD;EACF,CAAC,CAAAxF,MAAA;;EAEOgI,qBAAqB,GAA7B,SAAAA,sBAA8BpB,UAAgB,EAAEC,SAAe,EAAErB,KAAa,EAAEuC,WAAmB,EAAE;IACnG,QAAQvC,KAAK;MACX,KAAK,MAAM;QACT,OAAOoB,UAAU,CAAC9M,IAAI,GAAGiO,WAAW;MACtC,KAAK,QAAQ;QACX,OAAOnB,UAAU,CAAC9M,IAAI,GAAG,CAAC+M,SAAS,CAAC/I,KAAK,GAAG8I,UAAU,CAAC9I,KAAK,IAAI,CAAC;MACnE,KAAK,OAAO;QACV,OAAO8I,UAAU,CAAC9M,IAAI,IAAI+M,SAAS,CAAC/I,KAAK,GAAG8I,UAAU,CAAC9I,KAAK,CAAC,GAAGiK,WAAW;MAC7E;QACE,MAAM,IAAIG,KAAK,wBAAsB1C,KAAK,MAAG,CAAC;IAClD;EACF,CAAC,CAAAxF,MAAA;;EAEOiI,mBAAmB,GAA3B,SAAAA,oBAA4BrB,UAAgB,EAAEC,SAAe,EAAErB,KAAa,EAAEuC,WAAmB,EAAE;IACjG,QAAQvC,KAAK;MACX,KAAK,KAAK;QACR,OAAOoB,UAAU,CAAC/M,GAAG,GAAGkO,WAAW;MACrC,KAAK,QAAQ;QACX,OAAOnB,UAAU,CAAC/M,GAAG,GAAG,CAACgN,SAAS,CAACY,MAAM,GAAGb,UAAU,CAACa,MAAM,IAAI,CAAC;MACpE,KAAK,QAAQ;QACX,OAAOb,UAAU,CAAC/M,GAAG,IAAIgN,SAAS,CAACY,MAAM,GAAGb,UAAU,CAACa,MAAM,CAAC,GAAGM,WAAW;MAC9E;QACE,MAAM,IAAIG,KAAK,wBAAsB1C,KAAK,MAAG,CAAC;IAClD;EACF,CAAC,QAAAlL,KAAA,GA5sBwBxD,KAAK,CAACwR,SAAS,GAAA9N,MAAA,CAC1B+N,mBAAmB,GAAG,OAAO,EAAA/N,MAAA,CAC7BgO,WAAW,GAAG,OAAO,EAAAhO,MAAA,CAErBiO,SAAS,GAAG,EACxB;AACJ;AACA,KACI3M,aAAa,EAAE/E,SAAS,CAAC2R,SAAS,CAAC,CAAC3Q,uBAAuB,CAACb,YAAY,CAACyR,WAAW,CAAC,EAAE5R,SAAS,CAAC6R,IAAI,CAAC,CAAC,CAACC,UAAU,EAElH;AACJ;AACA,KACIxK,eAAe,EAAEtH,SAAS,CAAC+R,MAAM,EAEjC1K,QAAQ,EAAErH,SAAS,CAAC2R,SAAS,CAAC,CAAC3R,SAAS,CAAC6R,IAAI,EAAE7R,SAAS,CAACgS,IAAI,CAAC,CAAC,EAE/D;AACJ;AACA,KACI/D,MAAM,EAAEjO,SAAS,CAACiS,IAAI,EAEtB;AACJ;AACA,KACIpG,SAAS,EAAE7L,SAAS,CAACiS,IAAI,EAEzB;AACJ;AACA,KACIpB,MAAM,EAAE7Q,SAAS,CAACkS,MAAM,EAExB;AACJ;AACA,KACIzN,MAAM,EAAEzE,SAAS,CAACiS,IAAI,EAEtB;AACJ;AACA,KACIb,SAAS,EAAEpR,SAAS,CAACkS,MAAM,EAE3B;AACJ;AACA;AACA;AACA,KACIpE,OAAO,EAAE9N,SAAS,CAACkS,MAAM,EAEzB;AACJ;AACA,KACIlB,WAAW,EAAEhR,SAAS,CAACkS,MAAM,EAE7B;AACJ;AACA;AACA,KACI/C,SAAS,EAAEnP,SAAS,CAACmS,KAAK,EAE1B;AACJ;AACA,KACI9C,GAAG,EAAErP,SAAS,CAAC+R,MAAM,EAErB;AACJ;AACA,KACIlJ,aAAa,EAAE7I,SAAS,CAACiS,IAAI,EAE7B;AACJ;AACA,KACIlG,WAAW,EAAE/L,SAAS,CAACiS,IAAI,CAC7B,CAAC,EAAAxO,MAAA,CAEaY,YAAY,GAAiB,EACzC2M,WAAW,EAAE,CAAC,EACd/C,MAAM,EAAE,KAAK,EACbpC,SAAS,EAAE,KAAK,EAChBC,iBAAiB,EAAE7K,SAAS,EAC5B8J,UAAU,EAAE,KAAK,EACjBgB,WAAW,EAAE,KAAK,EAClBlD,aAAa,EAAE,KAAK,EACpB9B,KAAK,EAAE,MAAM,EACbkG,QAAQ,EAAE3M,MAAM,CAAC8R,UAAU,CAAC7O,KAAK,CACnC,CAAC,EAAAE,MAAA,CAKsB4O,eAAe,GAAG,IAAI,EAAA5O,MAAA,MAAAD,MAAA,KAAAA,MAAA,CAknB9C,CAED;AAAA,IAKMkC,YAAY,0BAAA4M,iBAAA,YAAA5M,aAAA,UAAA4M,iBAAA,CAAAnO,KAAA,OAAAN,SAAA,WAAAmF,cAAA,CAAAtD,YAAA,EAAA4M,iBAAA,MAAAC,OAAA,GAAA7M,YAAA,CAAAwD,SAAA,CAAAqJ,OAAA,CACTrI,MAAM,GAAb,SAAAA,OAAA,EAAgB,CACd,OAAO,IAAI,CAAC1F,KAAK,CAAC6C,QAAQ,CAC5B,CAAC,QAAA3B,YAAA,GAHwB3F,KAAK,CAACwR,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["React","Transition","warning","globalObject","getDOMRect","LayoutEvents","ZIndex","RenderContainer","getRandomID","isFunction","isNonNullable","isNullable","isRefableElement","isIE11","isEdge","ThemeContext","isTestEnv","CommonWrapper","cx","responsiveLayout","MobilePopup","getRootNode","rootNode","isInstanceWithAnchorElement","createPropsGetter","isInstanceOf","getFullReactUIFlagsContext","ReactUIFeatureFlagsContext","mergeRefs","getVisualStateDataAttributes","PopupPinNew","PopupHelper","styles","PopupPin","POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","PopupNonPinnablePositions","PopupPinnablePositions","PopupPositions","concat","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","isFullyVisible","PopupDataTids","root","content","contentInner","popupPin","PopupIds","Popup","_class","_Popup","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","getProps","defaultProps","state","location","props","opened","locationUpdateId","refForTransition","createRef","hasAnchorElementListeners","rootId","anchorElement","absoluteParent","renderInPortal","anchor","ref","createElement","isMobileLayout","withoutMobile","renderMobile","renderContent","renderWithoutPortal","EmptyWrapper","updateAbsoluteElement","className","updateAnchorElement","instance","childDomNode","getAnchorElement","removeEventListeners","addEventListeners","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","anchorWidth","replace","percent","parseFloat","children","backgroundColor","_this$getProps","minWidth","theme","refPopupContentElement","style","prepareDataVisualState","_this$state$location","_getVisualStateDataAt","attrName","resetLocation","cancelDelayedUpdateLocation","setState","element","lastPopupContentElement","handleLayoutEvent","updateLocation","popupContentElement","getLocation","onPositionChange","locationEquals","getRelativeShift","_this2","disablePortal","rect","getElementAbsoluteRect","_inheritsLoose","_proto","prototype","componentDidMount","layoutEventsToken","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","onOpen","onClose","delayUpdateLocation","componentWillUnmount","remove","render","_this3","Consumer","flags","featureFlags","renderMain","renderChildren","rootNodeRef","setRootNode","withoutRenderContainer","onCloseRequest","mobileOnCloseRequest","_anchor","useWrapper","Element","isValidElement","anchorWithRef","cloneElement","canGetAnchorNode","renderRef","renderAnchor","addEventListener","removeEventListener","_this4","_this$props","maxWidth","_this$getProps2","hasShadow","disableAnimations","ignoreHover","relativeShift","_PopupHelper$getPosit","getPositionObject","direction","rootStyle","timeout","appear","Boolean","mountOnEnter","unmountOnExit","onExited","nodeRef","_this4$props$id","_extends2","_ref","_extends","id","priority","popup","shadow","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","_this$props2","pinSize","borderColor","_this$getProps3","hasPin","popupFixPinTearing","popupElement","popupPosition","size","parseInt","popupPinSize","offset","getPinOffset","align","popupBackground","borderWidth","requestAnimationFrame","cancelAnimationFrame","x","y","Math","abs","reorderPropsPositionsWithPriorityPos","positions","pos_","pos","index","findIndex","startsWith","join","slice","_this$getProps4","tryPreserveFirstRenderedPosition","anchorRect","popupRect","getCoordinates","canBecomeVisible","canBecomeFullyVisible","_iterator","_createForOfIteratorHelperLoose","_step","done","value","getPinnedPopupOffset","test","anchorSize","height","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","displayName","priorities","defaultRootNode","_React$Component2","_proto2"],"sources":["Popup.tsx"],"sourcesContent":["import type { HTMLAttributes, LegacyRef } from 'react';\nimport React from 'react';\nimport { Transition } from 'react-transition-group';\nimport warning from 'warning';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Priority } from '../ZIndex';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport type { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { getRandomID, isFunction, isNonNullable, isNullable, isRefableElement } from '../../lib/utils';\nimport { isIE11, isEdge } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { MobilePopup } from '../MobilePopup';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { mergeRefs } from '../../lib/mergeRefs';\nimport { getVisualStateDataAttributes } from '../CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { PopupPinNew } from './PopupPinNew';\nimport type { Offset, PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './Popup.styles';\nimport { PopupPin } from './PopupPin';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupNonPinnablePositions = ['middle center', 'middle left', 'middle right'];\n\nexport const PopupPinnablePositions = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\nexport const PopupPositions = [...PopupPinnablePositions, ...PopupNonPinnablePositions] as const;\n\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = (typeof PopupPositions)[number];\nexport type PopupPinnablePositionsType = (typeof PopupPinnablePositions)[number];\nexport type ShortPopupPositionsType = 'top' | 'bottom' | 'left' | 'right';\n\nexport const DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\n isFullyVisible: false,\n};\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps\n extends Omit<CommonProps, 'children'>,\n PopupHandlerProps,\n Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: React.ReactNode | Element;\n /**\n * Фон попапа и пина\n */\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n /**\n * Показывать ли пин\n */\n hasPin?: boolean;\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow?: boolean;\n disableAnimations?: boolean;\n /**\n * Отступ попапа от элемента\n */\n margin?: number;\n maxWidth?: number | string;\n /**\n * Показан или скрыт попап\n */\n opened: boolean;\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset?: number;\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize?: number;\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset?: number;\n priority?: Priority;\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions?: Readonly<PopupPositionsType[]>;\n /**\n * Приоритетная позиция попапа\n */\n pos?: PopupPositionsType | ShortPopupPositionsType;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover?: boolean;\n width?: React.CSSProperties['width'];\n minWidth?: React.CSSProperties['minWidth'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в том числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n withoutMobile?: boolean;\n /** @ignore */\n disablePortal?: boolean;\n mobileOnCloseRequest?: () => void;\n /**\n * Возвращает текущую позицию попапа\n */\n onPositionChange?: (pos: PopupPositionsType, isFullyVisible: boolean) => void;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n isFullyVisible: boolean;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport const PopupDataTids = {\n root: 'Popup__root',\n content: 'PopupContent',\n contentInner: 'PopupContentInner',\n popupPin: 'PopupPin__root',\n} as const;\n\nexport const PopupIds = {\n root: PopupDataTids.root,\n};\n\ntype DefaultProps = Required<\n Pick<\n PopupProps,\n | 'popupOffset'\n | 'hasPin'\n | 'hasShadow'\n | 'disablePortal'\n | 'disableAnimations'\n | 'useWrapper'\n | 'ignoreHover'\n | 'width'\n | 'priority'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n public static displayName = 'Popup';\n\n public static defaultProps: DefaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n disablePortal: false,\n width: 'auto',\n priority: ZIndex.priorities.Popup,\n };\n\n private getProps = createPropsGetter(Popup.defaultProps);\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n public featureFlags!: ReactUIFeatureFlags;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupContentElement: Nullable<Element>;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n private hasAnchorElementListeners = false;\n private rootId = PopupIds.root + getRandomID();\n\n public anchorElement: Nullable<Element> = null;\n private absoluteParent: Nullable<HTMLDivElement> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n\n if (!this.hasAnchorElementListeners) {\n this.addEventListeners(this.anchorElement);\n }\n }\n\n public static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else if (state.location) {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n const wasClosed = prevProps.opened && !this.props.opened;\n\n if (this.isMobileLayout && prevState.location === null && this.state.location === null) {\n this.setState({ location: DUMMY_LOCATION });\n }\n\n if (this.props.opened && hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (wasClosed && !hasLocation && this.props.onClose) {\n this.props.onClose();\n }\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n if (this.hasAnchorElementListeners) {\n this.removeEventListeners(this.anchorElement);\n }\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private renderMobile() {\n const { opened } = this.props;\n const children = this.renderChildren();\n\n return children ? (\n <CommonWrapper rootNodeRef={this.setRootNode}>\n <MobilePopup opened={opened} withoutRenderContainer onCloseRequest={this.props.mobileOnCloseRequest}>\n {this.content(children)}\n </MobilePopup>\n </CommonWrapper>\n ) : null;\n }\n\n private renderMain() {\n const { anchorElement } = this.props;\n const useWrapper = this.getProps().useWrapper;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isInstanceOf(anchorElement, globalObject.Element)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n anchor = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n anchor = <span>{anchorElement}</span>;\n }\n\n const anchorWithRef =\n anchor && React.isValidElement(anchor) && isRefableElement(anchor)\n ? React.cloneElement(anchor, {\n ref: mergeRefs(\n (anchor as React.RefAttributes<typeof anchor>)?.ref as React.RefCallback<any>,\n this.updateAnchorElement,\n ),\n } as { ref: (instance: Nullable<React.ReactInstance>) => void })\n : null;\n // we need to get anchor's DOM node\n // so we either set our own ref on it via cloning\n // or relay on findDOMNode (inside getRootNode)\n // which should be called within updateAnchorElement\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isInstanceOf(anchorElement, globalObject.Element);\n const renderRef = canGetAnchorNode ? null : this.updateAnchorElement;\n const renderAnchor = anchorWithRef || anchor;\n\n return this.props.disablePortal\n ? this.renderWithoutPortal(renderAnchor, renderRef)\n : this.renderInPortal(renderAnchor, renderRef);\n }\n\n private renderInPortal = (anchor: React.ReactNode, ref: null | LegacyRef<RenderContainer>) => {\n const { location } = this.state;\n\n return (\n <RenderContainer anchor={anchor} ref={ref}>\n {this.isMobileLayout && !this.props.withoutMobile\n ? this.renderMobile()\n : location && this.renderContent(location)}\n </RenderContainer>\n );\n };\n\n private renderWithoutPortal = (anchor: React.ReactNode, ref: null | LegacyRef<EmptyWrapper>) => {\n const { location } = this.state;\n\n return (\n <EmptyWrapper ref={ref}>\n {anchor}\n {location && (\n <div ref={this.updateAbsoluteElement} className={styles.absoluteParent()}>\n {this.renderContent(location)}\n </div>\n )}\n </EmptyWrapper>\n );\n };\n\n private updateAnchorElement = (instance: Nullable<React.ReactInstance>) => {\n const childDomNode = isInstanceWithAnchorElement(instance) ? instance.getAnchorElement() : getRootNode(instance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n }\n };\n\n private updateAbsoluteElement = (instance: HTMLDivElement) => {\n this.absoluteParent = instance;\n };\n\n private addEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.addEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.addEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = true;\n }\n }\n\n private removeEventListeners(element: Nullable<Element>) {\n if (element && isInstanceOf(element, globalObject.Element)) {\n // @ts-expect-error: Type ElementEventMap is missing events: https://github.com/skbkontur/retail-ui/pull/2946#discussion_r931072657\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n // @ts-expect-error: See the comment above\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n // @ts-expect-error: See the comment above\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n\n this.hasAnchorElementListeners = false;\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n const anchorWidth = getDOMRect(this.anchorElement).width;\n\n return width.replace(/(\\d)+%/g, (percent: string) => `${(anchorWidth * parseFloat(percent)) / 100}px`);\n }\n return width;\n };\n\n private content = (children: React.ReactNode) => {\n const { backgroundColor } = this.props;\n const { width, minWidth } = this.getProps();\n\n return (\n <div\n className={styles.content(this.theme)}\n data-tid={PopupDataTids.content}\n ref={mergeRefs(this.refForTransition, this.refPopupContentElement)}\n >\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width), minWidth: this.calculateWidth(minWidth) }}\n data-tid={PopupDataTids.contentInner}\n >\n {children}\n </div>\n </div>\n );\n };\n\n private renderContent(location: PopupLocation) {\n const { maxWidth, opened } = this.props;\n const { hasShadow, disableAnimations, ignoreHover } = this.getProps();\n const children = this.renderChildren();\n\n const relativeShift = this.getRelativeShift();\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = {\n maxWidth,\n top: location.coordinates.top + relativeShift.top,\n left: location.coordinates.left + relativeShift.left,\n };\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n nodeRef={this.refForTransition}\n >\n {(state: string) => (\n <CommonWrapper {...this.props} rootNodeRef={this.setRootNode} {...this.prepareDataVisualState()}>\n <ZIndex\n id={this.props.id ?? this.rootId}\n data-tid={PopupDataTids.root}\n priority={this.props.priority}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n {this.content(children)}\n {(!this.isMobileLayout || this.props.withoutMobile) && this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private prepareDataVisualState = () => {\n const position = this.state.location?.position;\n if (position) {\n const attrName = `position-` + position.replace(' ', '-');\n return getVisualStateDataAttributes({ [attrName]: true });\n }\n return {};\n };\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.state.location !== null && this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupContentElement = (element: HTMLDivElement) => {\n this.lastPopupContentElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, backgroundColor, borderColor } = this.props;\n const { hasShadow, hasPin } = this.getProps();\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n hasPin &&\n !PopupNonPinnablePositions.includes(positionName) &&\n (this.featureFlags.popupFixPinTearing ? (\n <PopupPinNew\n popupElement={this.lastPopupContentElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n />\n ) : (\n <PopupPin\n popupElement={this.lastPopupContentElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n ))\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = globalObject.requestAnimationFrame?.(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n globalObject.cancelAnimationFrame?.(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupContentElement = this.lastPopupContentElement;\n\n if (!popupContentElement) {\n return;\n }\n\n const location = this.getLocation(popupContentElement, this.state.location);\n if (location) {\n this.props.onPositionChange?.(location.position, location.isFullyVisible);\n }\n\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (isNullable(x) || isNullable(y)) {\n return false;\n }\n\n if (!isIE11 && !isEdge) {\n return (\n x.coordinates.left === y.coordinates.left &&\n x.coordinates.top === y.coordinates.top &&\n x.position === y.position\n );\n }\n\n // Для ie/edge обновляем позицию только при разнице минимум в 1. Иначе есть вероятность\n // уйти в бесконечный ререндер\n\n return (\n x.position === y.position &&\n Math.abs(x.coordinates.top - y.coordinates.top) <= 1 &&\n Math.abs(x.coordinates.left - y.coordinates.left) <= 1\n );\n }\n\n private reorderPropsPositionsWithPriorityPos() {\n const positions = this.props.positions ? this.props.positions : PopupPinnablePositions;\n let pos_ = '';\n if (this.props.pos) {\n pos_ = this.props.pos;\n } else {\n pos_ = positions[0];\n }\n const index = positions.findIndex((position) => position.startsWith(pos_));\n if (index === -1) {\n warning(false, 'Unexpected position ' + pos_ + ' passed to Popup. Expected one of: ' + positions.join(', '));\n return positions;\n }\n return [...positions.slice(index), ...positions.slice(0, index)];\n }\n\n private getLocation(popupElement: Element, location?: Nullable<PopupLocation>): Nullable<PopupLocation> {\n const { tryPreserveFirstRenderedPosition } = this.getProps();\n const positions = this.reorderPropsPositionsWithPriorityPos();\n\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isInstanceOf(anchorElement, globalObject.Element),\n 'Anchor element is not defined or not instance of Element',\n );\n\n if (!(anchorElement && isInstanceOf(anchorElement, globalObject.Element))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPositionsType;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position, isFullyVisible: true };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n return { coordinates, position, isFullyVisible: false };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.getProps().hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getRelativeShift = () => {\n const { absoluteParent } = this;\n\n if (!this.props.disablePortal || !absoluteParent) {\n return {\n top: 0,\n left: 0,\n };\n }\n\n const rect = PopupHelper.getElementAbsoluteRect(absoluteParent);\n\n return {\n top: -rect.top,\n left: -rect.left,\n };\n };\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.getProps().popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'middle':\n return {\n top: anchorRect.top + anchorRect.height / 2 - popupRect.height / 2,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n\n// Нужно, чтобы получать по рефу dom-элемент, в который зарендерится anchor\ntype EmptyWrapperProps = Readonly<{\n children: React.ReactNode;\n}>;\n\nclass EmptyWrapper extends React.Component<EmptyWrapperProps> {\n public render() {\n return this.props.children;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  import type { HTMLAttributes } from 'react';
2
2
  import React from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import type { Nullable } from '../../typings/utility-types';
5
4
  import type { Priority } from '../ZIndex';
6
5
  import type { FocusEventType, MouseEventType } from '../../typings/event-types';
7
6
  import type { CommonProps } from '../CommonWrapper';
7
+ import type { TGetRootNode } from '../../lib/rootNode';
8
8
  import type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';
9
9
  export declare const PopupNonPinnablePositions: string[];
10
10
  export declare const PopupPinnablePositions: string[];
@@ -24,21 +24,57 @@ export interface PopupHandlerProps {
24
24
  onClose?: () => void;
25
25
  }
26
26
  export interface PopupProps extends Omit<CommonProps, 'children'>, PopupHandlerProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {
27
+ /**
28
+ * Ссылка (ref) на элемент или React компонент, для которого рисуется попап
29
+ */
27
30
  anchorElement: React.ReactNode | Element;
31
+ /**
32
+ * Фон попапа и пина
33
+ */
28
34
  backgroundColor?: React.CSSProperties['backgroundColor'];
29
35
  borderColor?: React.CSSProperties['borderColor'];
30
36
  children: React.ReactNode | (() => React.ReactNode);
37
+ /**
38
+ * Показывать ли пин
39
+ */
31
40
  hasPin?: boolean;
41
+ /**
42
+ * Применять ли box-shadow на попапе. При false отключает границу на пине
43
+ */
32
44
  hasShadow?: boolean;
33
45
  disableAnimations?: boolean;
46
+ /**
47
+ * Отступ попапа от элемента
48
+ */
34
49
  margin?: number;
35
50
  maxWidth?: number | string;
51
+ /**
52
+ * Показан или скрыт попап
53
+ */
36
54
  opened: boolean;
55
+ /**
56
+ * Смещение пина от края попапа. Край задаётся в пропе position вторым словом
57
+ */
37
58
  pinOffset?: number;
59
+ /**
60
+ * Сторона пина без учёта границы.
61
+ * Пин представляет собой равносторонний треугольник, высота от попапа
62
+ * до "носика" пина будет соответствовать формуле (size* √3)/2
63
+ */
38
64
  pinSize?: number;
65
+ /**
66
+ * смещение попапа относительно родительского элемента
67
+ */
39
68
  popupOffset?: number;
40
69
  priority?: Priority;
70
+ /**
71
+ * С какой стороны показывать попап и край попапа,
72
+ * на котором будет отображаться пин
73
+ */
41
74
  positions?: Readonly<PopupPositionsType[]>;
75
+ /**
76
+ * Приоритетная позиция попапа
77
+ */
42
78
  pos?: PopupPositionsType | ShortPopupPositionsType;
43
79
  /**
44
80
  * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.
@@ -46,6 +82,9 @@ export interface PopupProps extends Omit<CommonProps, 'children'>, PopupHandlerP
46
82
  * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.
47
83
  */
48
84
  useWrapper?: boolean;
85
+ /**
86
+ * Игнорировать ли события hover/click
87
+ */
49
88
  ignoreHover?: boolean;
50
89
  width?: React.CSSProperties['width'];
51
90
  minWidth?: React.CSSProperties['minWidth'];
@@ -90,64 +129,6 @@ type DefaultProps = Required<Pick<PopupProps, 'popupOffset' | 'hasPin' | 'hasSha
90
129
  export declare class Popup extends React.Component<PopupProps, PopupState> {
91
130
  static __KONTUR_REACT_UI__: string;
92
131
  static displayName: string;
93
- static propTypes: {
94
- /**
95
- * Ссылка (ref) на элемент или React компонент, для которого рисуется попап
96
- */
97
- anchorElement: PropTypes.Validator<NonNullable<NonNullable<HTMLElement | PropTypes.ReactNodeLike>>>;
98
- /**
99
- * Фон попапа и пина
100
- */
101
- backgroundColor: PropTypes.Requireable<string>;
102
- children: PropTypes.Requireable<NonNullable<((...args: any[]) => any) | PropTypes.ReactNodeLike>>;
103
- /**
104
- * Показывать ли пин
105
- */
106
- hasPin: PropTypes.Requireable<boolean>;
107
- /**
108
- * Применять ли box-shadow на попапе. При false отключает границу на пине
109
- */
110
- hasShadow: PropTypes.Requireable<boolean>;
111
- /**
112
- * Отступ попапа от элемента
113
- */
114
- margin: PropTypes.Requireable<number>;
115
- /**
116
- * Показан или скрыт попап
117
- */
118
- opened: PropTypes.Requireable<boolean>;
119
- /**
120
- * Смещение пина от края попапа. Край задаётся в пропе position вторым словом
121
- */
122
- pinOffset: PropTypes.Requireable<number>;
123
- /**
124
- * Сторона пина без учёта границы.
125
- * Пин представляет собой равносторонний треугольник, высота от попапа
126
- * до "носика" пина будет соответствовать формуле (size* √3)/2
127
- */
128
- pinSize: PropTypes.Requireable<number>;
129
- /**
130
- * смещение попапа относительно родительского элемента
131
- */
132
- popupOffset: PropTypes.Requireable<number>;
133
- /**
134
- * С какой стороны показывать попап и край попапа,
135
- * на котором будет отображаться пин
136
- */
137
- positions: PropTypes.Requireable<any[]>;
138
- /**
139
- * Приоритетная позиция попапа
140
- */
141
- pos: PropTypes.Requireable<string>;
142
- /**
143
- * Отключает использование портала
144
- */
145
- disablePortal: PropTypes.Requireable<boolean>;
146
- /**
147
- * Игнорировать ли события hover/click
148
- */
149
- ignoreHover: PropTypes.Requireable<boolean>;
150
- };
151
132
  static defaultProps: DefaultProps;
152
133
  private getProps;
153
134
  static readonly defaultRootNode: null;
@@ -158,6 +139,7 @@ export declare class Popup extends React.Component<PopupProps, PopupState> {
158
139
  private locationUpdateId;
159
140
  private lastPopupContentElement;
160
141
  private isMobileLayout;
142
+ getRootNode: TGetRootNode;
161
143
  private setRootNode;
162
144
  private refForTransition;
163
145
  private hasAnchorElementListeners;
@@ -1,7 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
3
  import React from 'react';
4
- import PropTypes from 'prop-types';
5
4
  import { PopupHelper } from "../PopupHelper";
6
5
  import { styles } from "../PopupPin.styles";
7
6
  import { PopupDataTids } from "../Popup";
@@ -169,36 +168,4 @@ export var PopupPin = /*#__PURE__*/function (_React$Component) {
169
168
  return PopupPin;
170
169
  }(React.Component);
171
170
  PopupPin.__KONTUR_REACT_UI__ = 'PopupPin';
172
- PopupPin.displayName = 'PopupPin';
173
- PopupPin.propTypes = {
174
- /**
175
- * Цвет фон пина
176
- */
177
- backgroundColor: PropTypes.string,
178
- /**
179
- * Цвет границы пина
180
- */
181
- borderColor: PropTypes.string,
182
- /**
183
- * Ширина границы пина
184
- */
185
- borderWidth: PropTypes.number,
186
- /**
187
- * Смещение пина от края попапа. Край задаётся в пропе position вторым словом
188
- */
189
- offset: PropTypes.number,
190
- /**
191
- * Ссылка на попап
192
- */
193
- popupElement: PropTypes.any,
194
- /**
195
- * Позиция попапа, по которой будет вычислено положение пина
196
- */
197
- popupPosition: PropTypes.string,
198
- /**
199
- * Сторона пина без учёта границы.
200
- * Пин представляет собой равносторонний треугольник, высота от попапа
201
- * до "носика" пина будет соответствовать формуле (size* √3)/2
202
- */
203
- size: PropTypes.number
204
- };
171
+ PopupPin.displayName = 'PopupPin';
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","PopupHelper","styles","PopupDataTids","borderStyles","position","borderStyle","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","PopupPin","_React$Component","apply","arguments","_inheritsLoose","_proto","prototype","render","props","popupElement","options","getPinOptions","getElementAbsoluteRect","getPositionObject","popupPosition","size","offset","borderWidth","styleOuter","getOuterStyle","activeBorder","outerSize","borderColor","styleInner","getInnerStyle","backgroundColor","styleWrapper","getWrapperStyle","outerLeft","outerTop","createElement","popupPin","className","wrapper","style","getPopupOppositeDirection","popupDirection","direction","TypeError","left","top","_ref","_ref2","width","height","borderWitdth","_extends2","_extends3","_extends","_extends4","_extends5","popupRect","pinSize","pinOffset","bordersDelta","getPinLeftCoordinate","align","innerTop","innerLeft","getPinTopCoordinate","Error","pinHeight","Component","__KONTUR_REACT_UI__","displayName","propTypes","string","number","any"],"sources":["PopupPin.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nimport type { PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } 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<Element>;\n popupPosition: string;\n size: number;\n}\n\nexport class PopupPin extends React.Component<Props> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = '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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","PopupHelper","styles","PopupDataTids","borderStyles","position","borderStyle","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","PopupPin","_React$Component","apply","arguments","_inheritsLoose","_proto","prototype","render","props","popupElement","options","getPinOptions","getElementAbsoluteRect","getPositionObject","popupPosition","size","offset","borderWidth","styleOuter","getOuterStyle","activeBorder","outerSize","borderColor","styleInner","getInnerStyle","backgroundColor","styleWrapper","getWrapperStyle","outerLeft","outerTop","createElement","popupPin","className","wrapper","style","getPopupOppositeDirection","popupDirection","direction","TypeError","left","top","_ref","_ref2","width","height","borderWitdth","_extends2","_extends3","_extends","_extends4","_extends5","popupRect","pinSize","pinOffset","bordersDelta","getPinLeftCoordinate","align","innerTop","innerLeft","getPinTopCoordinate","Error","pinHeight","Component","__KONTUR_REACT_UI__","displayName"],"sources":["PopupPin.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nimport type { PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } 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 /**\n * Цвет фон пина\n */\n backgroundColor: string;\n /**\n * Цвет границы пина\n */\n borderColor: string;\n /**\n * Ширина границы пина\n */\n borderWidth: number;\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n offset: number;\n /**\n * Ссылка на попап\n */\n popupElement: Nullable<Element>;\n /**\n * Позиция попапа, по которой будет вычислено положение пина\n */\n popupPosition: string;\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: number;\n}\n\nexport class PopupPin extends React.Component<Props> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\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"],"mappings":"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","ignoreList":[]}