@skbkontur/react-ui 3.12.2 → 3.12.3-popup-fix

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 (811) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +113 -113
  3. package/cjs/components/Autocomplete/index.d.ts +1 -1
  4. package/cjs/components/Button/Button.d.ts +161 -161
  5. package/cjs/components/Button/Button.mixins.d.ts +6 -6
  6. package/cjs/components/Button/Button.styles.d.ts +68 -68
  7. package/cjs/components/Button/Corners.d.ts +6 -6
  8. package/cjs/components/Button/index.d.ts +1 -1
  9. package/cjs/components/Center/Center.d.ts +25 -25
  10. package/cjs/components/Center/Center.styles.d.ts +7 -7
  11. package/cjs/components/Center/index.d.ts +1 -1
  12. package/cjs/components/Checkbox/Checkbox.d.ts +96 -96
  13. package/cjs/components/Checkbox/Checkbox.styles.d.ts +22 -22
  14. package/cjs/components/Checkbox/index.d.ts +1 -1
  15. package/cjs/components/ComboBox/ComboBox.d.ts +184 -184
  16. package/cjs/components/ComboBox/index.d.ts +1 -1
  17. package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +35 -35
  18. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +106 -106
  19. package/cjs/components/CurrencyInput/CurrencyInputHelper.d.ts +20 -20
  20. package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +18 -18
  21. package/cjs/components/CurrencyInput/CursorHelper.d.ts +10 -10
  22. package/cjs/components/CurrencyInput/SelectionHelper.d.ts +11 -11
  23. package/cjs/components/CurrencyInput/constants.d.ts +2 -2
  24. package/cjs/components/CurrencyInput/index.d.ts +1 -1
  25. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +24 -24
  26. package/cjs/components/CurrencyLabel/index.d.ts +1 -1
  27. package/cjs/components/DateInput/DateFragmentsView.d.ts +20 -20
  28. package/cjs/components/DateInput/DateFragmentsView.styles.d.ts +7 -7
  29. package/cjs/components/DateInput/DateInput.d.ts +107 -107
  30. package/cjs/components/DateInput/DateInput.styles.d.ts +10 -10
  31. package/cjs/components/DateInput/ViewDateInputValidateChecks.d.ts +10 -10
  32. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.d.ts +21 -21
  33. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +26 -26
  34. package/cjs/components/DateInput/helpers/SelectionHelpers.d.ts +2 -2
  35. package/cjs/components/DateInput/helpers/inputNumber.d.ts +5 -5
  36. package/cjs/components/DateInput/index.d.ts +1 -1
  37. package/cjs/components/DatePicker/DatePicker.d.ts +131 -131
  38. package/cjs/components/DatePicker/DatePicker.styles.d.ts +3 -3
  39. package/cjs/components/DatePicker/DatePickerHelpers.d.ts +2 -2
  40. package/cjs/components/DatePicker/Picker.d.ts +33 -33
  41. package/cjs/components/DatePicker/Picker.styles.d.ts +5 -5
  42. package/cjs/components/DatePicker/index.d.ts +1 -1
  43. package/cjs/components/DatePicker/locale/index.d.ts +4 -4
  44. package/cjs/components/DatePicker/locale/locales/en.d.ts +2 -2
  45. package/cjs/components/DatePicker/locale/locales/ru.d.ts +2 -2
  46. package/cjs/components/DatePicker/locale/types.d.ts +5 -5
  47. package/cjs/components/Dropdown/Dropdown.d.ts +124 -124
  48. package/cjs/components/Dropdown/index.d.ts +1 -1
  49. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +65 -65
  50. package/cjs/components/DropdownMenu/index.d.ts +1 -1
  51. package/cjs/components/FxInput/FxInput.d.ts +50 -50
  52. package/cjs/components/FxInput/index.d.ts +1 -1
  53. package/cjs/components/Gapped/Gapped.d.ts +58 -58
  54. package/cjs/components/Gapped/index.d.ts +1 -1
  55. package/cjs/components/Group/Group.d.ts +14 -14
  56. package/cjs/components/Group/Group.styles.d.ts +8 -8
  57. package/cjs/components/Group/index.d.ts +1 -1
  58. package/cjs/components/Hint/Hint.d.ts +85 -81
  59. package/cjs/components/Hint/Hint.js +9 -1
  60. package/cjs/components/Hint/Hint.js.map +1 -1
  61. package/cjs/components/Hint/Hint.styles.d.ts +5 -5
  62. package/cjs/components/Hint/index.d.ts +1 -1
  63. package/cjs/components/Input/Input.d.ts +157 -157
  64. package/cjs/components/Input/Input.styles.d.ts +42 -42
  65. package/cjs/components/Input/index.d.ts +1 -1
  66. package/cjs/components/Kebab/Kebab.d.ts +71 -71
  67. package/cjs/components/Kebab/Kebab.styles.d.ts +12 -12
  68. package/cjs/components/Kebab/index.d.ts +1 -1
  69. package/cjs/components/Link/Link.d.ts +72 -72
  70. package/cjs/components/Link/Link.mixins.d.ts +3 -3
  71. package/cjs/components/Link/Link.styles.d.ts +15 -15
  72. package/cjs/components/Link/index.d.ts +1 -1
  73. package/cjs/components/Loader/Loader.d.ts +100 -100
  74. package/cjs/components/Loader/Loader.styles.d.ts +8 -8
  75. package/cjs/components/Loader/index.d.ts +1 -1
  76. package/cjs/components/MenuHeader/MenuHeader.d.ts +20 -20
  77. package/cjs/components/MenuHeader/MenuHeader.styles.d.ts +5 -5
  78. package/cjs/components/MenuHeader/index.d.ts +1 -1
  79. package/cjs/components/MenuItem/MenuItem.d.ts +94 -94
  80. package/cjs/components/MenuItem/MenuItem.styles.d.ts +13 -13
  81. package/cjs/components/MenuItem/index.d.ts +1 -1
  82. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +12 -12
  83. package/cjs/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
  84. package/cjs/components/MenuSeparator/index.d.ts +1 -1
  85. package/cjs/components/Modal/Modal.d.ts +87 -87
  86. package/cjs/components/Modal/Modal.styles.d.ts +26 -26
  87. package/cjs/components/Modal/ModalBody.d.ts +21 -21
  88. package/cjs/components/Modal/ModalClose.d.ts +2 -2
  89. package/cjs/components/Modal/ModalContext.d.ts +15 -15
  90. package/cjs/components/Modal/ModalFooter.d.ts +21 -21
  91. package/cjs/components/Modal/ModalHeader.d.ts +17 -17
  92. package/cjs/components/Modal/index.d.ts +4 -4
  93. package/cjs/components/Paging/NavigationHelper.d.ts +7 -7
  94. package/cjs/components/Paging/Paging.d.ts +90 -90
  95. package/cjs/components/Paging/Paging.styles.d.ts +16 -16
  96. package/cjs/components/Paging/PagingHelper.d.ts +2 -2
  97. package/cjs/components/Paging/index.d.ts +1 -1
  98. package/cjs/components/Paging/locale/index.d.ts +4 -4
  99. package/cjs/components/Paging/locale/locales/en.d.ts +2 -2
  100. package/cjs/components/Paging/locale/locales/ru.d.ts +2 -2
  101. package/cjs/components/Paging/locale/types.d.ts +3 -3
  102. package/cjs/components/PasswordInput/PasswordInput.d.ts +49 -49
  103. package/cjs/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
  104. package/cjs/components/PasswordInput/index.d.ts +1 -1
  105. package/cjs/components/Radio/Radio.d.ts +77 -77
  106. package/cjs/components/Radio/Radio.styles.d.ts +19 -19
  107. package/cjs/components/Radio/index.d.ts +1 -1
  108. package/cjs/components/RadioGroup/Prevent.d.ts +8 -8
  109. package/cjs/components/RadioGroup/RadioGroup.d.ts +117 -117
  110. package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +7 -7
  111. package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -10
  112. package/cjs/components/RadioGroup/index.d.ts +1 -1
  113. package/cjs/components/ScrollContainer/ScrollBar.d.ts +37 -37
  114. package/cjs/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -23
  115. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +84 -84
  116. package/cjs/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -10
  117. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +17 -17
  118. package/cjs/components/ScrollContainer/index.d.ts +1 -1
  119. package/cjs/components/Select/Item.d.ts +7 -7
  120. package/cjs/components/Select/Select.d.ts +179 -179
  121. package/cjs/components/Select/Select.styles.d.ts +17 -17
  122. package/cjs/components/Select/index.d.ts +1 -1
  123. package/cjs/components/Select/locale/index.d.ts +4 -4
  124. package/cjs/components/Select/locale/locales/en.d.ts +2 -2
  125. package/cjs/components/Select/locale/locales/ru.d.ts +2 -2
  126. package/cjs/components/Select/locale/types.d.ts +4 -4
  127. package/cjs/components/Select/selectTheme.d.ts +3 -3
  128. package/cjs/components/SidePage/SidePage.d.ts +109 -109
  129. package/cjs/components/SidePage/SidePage.styles.d.ts +37 -37
  130. package/cjs/components/SidePage/SidePageBody.d.ts +19 -19
  131. package/cjs/components/SidePage/SidePageContainer.d.ts +15 -15
  132. package/cjs/components/SidePage/SidePageContext.d.ts +17 -17
  133. package/cjs/components/SidePage/SidePageFooter.d.ts +36 -36
  134. package/cjs/components/SidePage/SidePageHeader.d.ts +44 -44
  135. package/cjs/components/SidePage/index.d.ts +5 -5
  136. package/cjs/components/Spinner/Spinner.d.ts +56 -56
  137. package/cjs/components/Spinner/Spinner.styles.d.ts +12 -12
  138. package/cjs/components/Spinner/SpinnerFallbackAnimation.d.ts +25 -25
  139. package/cjs/components/Spinner/index.d.ts +1 -1
  140. package/cjs/components/Spinner/locale/index.d.ts +4 -4
  141. package/cjs/components/Spinner/locale/locales/en.d.ts +2 -2
  142. package/cjs/components/Spinner/locale/locales/ru.d.ts +2 -2
  143. package/cjs/components/Spinner/locale/types.d.ts +4 -4
  144. package/cjs/components/Sticky/Sticky.d.ts +59 -59
  145. package/cjs/components/Sticky/Sticky.styles.d.ts +7 -7
  146. package/cjs/components/Sticky/index.d.ts +1 -1
  147. package/cjs/components/Switcher/Switcher.d.ts +56 -56
  148. package/cjs/components/Switcher/Switcher.styles.d.ts +10 -10
  149. package/cjs/components/Switcher/index.d.ts +1 -1
  150. package/cjs/components/Switcher/switcherTheme.d.ts +2 -2
  151. package/cjs/components/Tabs/Indicator.d.ts +28 -28
  152. package/cjs/components/Tabs/Indicator.styles.d.ts +8 -8
  153. package/cjs/components/Tabs/Tab.d.ts +121 -121
  154. package/cjs/components/Tabs/Tab.styles.d.ts +27 -27
  155. package/cjs/components/Tabs/Tabs.d.ts +62 -62
  156. package/cjs/components/Tabs/Tabs.styles.d.ts +5 -5
  157. package/cjs/components/Tabs/TabsContext.d.ts +14 -14
  158. package/cjs/components/Tabs/index.d.ts +2 -2
  159. package/cjs/components/Textarea/Textarea.d.ts +185 -185
  160. package/cjs/components/Textarea/Textarea.styles.d.ts +15 -15
  161. package/cjs/components/Textarea/TextareaCounter.d.ts +13 -13
  162. package/cjs/components/Textarea/TextareaHelpers.d.ts +11 -11
  163. package/cjs/components/Textarea/index.d.ts +1 -1
  164. package/cjs/components/Toast/Toast.d.ts +58 -58
  165. package/cjs/components/Toast/Toast.styles.d.ts +6 -6
  166. package/cjs/components/Toast/ToastStatic.d.ts +8 -8
  167. package/cjs/components/Toast/ToastView.d.ts +38 -38
  168. package/cjs/components/Toast/ToastView.styles.d.ts +8 -8
  169. package/cjs/components/Toast/index.d.ts +1 -1
  170. package/cjs/components/Toggle/Toggle.d.ts +107 -107
  171. package/cjs/components/Toggle/Toggle.styles.d.ts +30 -30
  172. package/cjs/components/Toggle/index.d.ts +1 -1
  173. package/cjs/components/Token/Token.d.ts +36 -36
  174. package/cjs/components/Token/Token.styles.d.ts +29 -29
  175. package/cjs/components/Token/index.d.ts +1 -1
  176. package/cjs/components/TokenInput/TextWidthHelper.d.ts +18 -18
  177. package/cjs/components/TokenInput/TokenInput.d.ts +194 -194
  178. package/cjs/components/TokenInput/TokenInput.styles.d.ts +15 -15
  179. package/cjs/components/TokenInput/TokenInputMenu.d.ts +18 -18
  180. package/cjs/components/TokenInput/TokenInputReducer.d.ts +25 -25
  181. package/cjs/components/TokenInput/index.d.ts +1 -1
  182. package/cjs/components/TokenInput/locale/index.d.ts +4 -4
  183. package/cjs/components/TokenInput/locale/locales/en.d.ts +2 -2
  184. package/cjs/components/TokenInput/locale/locales/ru.d.ts +2 -2
  185. package/cjs/components/TokenInput/locale/types.d.ts +4 -4
  186. package/cjs/components/Tooltip/Tooltip.d.ts +162 -160
  187. package/cjs/components/Tooltip/Tooltip.js +10 -7
  188. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  189. package/cjs/components/Tooltip/Tooltip.styles.d.ts +5 -5
  190. package/cjs/components/Tooltip/index.d.ts +1 -1
  191. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +65 -65
  192. package/cjs/components/TooltipMenu/index.d.ts +1 -1
  193. package/cjs/index.d.ts +49 -49
  194. package/cjs/internal/BGRuler.d.ts +30 -30
  195. package/cjs/internal/Calendar/Calendar.d.ts +66 -66
  196. package/cjs/internal/Calendar/Calendar.styles.d.ts +5 -5
  197. package/cjs/internal/Calendar/CalendarDateShape.d.ts +14 -14
  198. package/cjs/internal/Calendar/CalendarScrollEvents.d.ts +4 -4
  199. package/cjs/internal/Calendar/CalendarUtils.d.ts +19 -19
  200. package/cjs/internal/Calendar/DayCellView.d.ts +13 -13
  201. package/cjs/internal/Calendar/DayCellView.styles.d.ts +7 -7
  202. package/cjs/internal/Calendar/DayCellViewModel.d.ts +8 -8
  203. package/cjs/internal/Calendar/Month.d.ts +33 -33
  204. package/cjs/internal/Calendar/MonthView.d.ts +21 -21
  205. package/cjs/internal/Calendar/MonthView.styles.d.ts +9 -9
  206. package/cjs/internal/Calendar/MonthViewModel.d.ts +14 -14
  207. package/cjs/internal/Calendar/config.d.ts +9 -9
  208. package/cjs/internal/Calendar/index.d.ts +2 -2
  209. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +32 -31
  210. package/cjs/internal/CommonWrapper/CommonWrapper.js +17 -3
  211. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  212. package/cjs/internal/CommonWrapper/index.d.ts +1 -1
  213. package/cjs/internal/ComponentCombinator.d.ts +25 -25
  214. package/cjs/internal/ComponentTable.d.ts +21 -21
  215. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +31 -31
  216. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +90 -90
  217. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +136 -136
  218. package/cjs/internal/CustomComboBox/CustomComboBox.styles.d.ts +5 -5
  219. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +71 -71
  220. package/cjs/internal/CustomComboBox/CustomComboBoxTypes.d.ts +6 -6
  221. package/cjs/internal/CustomComboBox/index.d.ts +2 -2
  222. package/cjs/internal/CustomComboBox/locale/index.d.ts +4 -4
  223. package/cjs/internal/CustomComboBox/locale/locales/en.d.ts +2 -2
  224. package/cjs/internal/CustomComboBox/locale/locales/ru.d.ts +2 -2
  225. package/cjs/internal/CustomComboBox/locale/types.d.ts +5 -5
  226. package/cjs/internal/DateSelect/DateSelect.d.ts +93 -93
  227. package/cjs/internal/DateSelect/DateSelect.styles.d.ts +19 -19
  228. package/cjs/internal/DateSelect/index.d.ts +1 -1
  229. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +44 -44
  230. package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -3
  231. package/cjs/internal/DropdownContainer/index.d.ts +1 -1
  232. package/cjs/internal/FocusTrap/FocusTrap.d.ts +17 -17
  233. package/cjs/internal/FocusTrap/index.d.ts +1 -1
  234. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +14 -14
  235. package/cjs/internal/HideBodyVerticalScroll/index.d.ts +1 -1
  236. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +8 -8
  237. package/cjs/internal/IgnoreLayerClick/index.d.ts +1 -1
  238. package/cjs/internal/InputLikeText/HiddenInput.d.ts +13 -13
  239. package/cjs/internal/InputLikeText/InputLikeText.d.ts +73 -73
  240. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
  241. package/cjs/internal/InputLikeText/index.d.ts +1 -1
  242. package/cjs/internal/InternalMenu/InternalMenu.d.ts +63 -63
  243. package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +9 -9
  244. package/cjs/internal/InternalMenu/index.d.ts +1 -1
  245. package/cjs/internal/InternalMenu/isActiveElement.d.ts +3 -3
  246. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.d.ts +9 -9
  247. package/cjs/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -3
  248. package/cjs/internal/MaskCharLowLine/index.d.ts +1 -1
  249. package/cjs/internal/MaskedInput/MaskedInput.d.ts +40 -40
  250. package/cjs/internal/MaskedInput/MaskedInput.styles.d.ts +6 -6
  251. package/cjs/internal/MaskedInput/index.d.ts +1 -1
  252. package/cjs/internal/Menu/Menu.d.ts +65 -65
  253. package/cjs/internal/Menu/Menu.styles.d.ts +9 -9
  254. package/cjs/internal/Menu/index.d.ts +1 -1
  255. package/cjs/internal/Menu/isActiveElement.d.ts +3 -3
  256. package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +23 -23
  257. package/cjs/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -3
  258. package/cjs/internal/NativeDateInput/index.d.ts +1 -1
  259. package/cjs/internal/NativeDateInput/utils.d.ts +7 -7
  260. package/cjs/internal/PerformanceMetrics/PerformanceMetrics.d.ts +7 -7
  261. package/cjs/internal/Popup/Popup.d.ts +161 -162
  262. package/cjs/internal/Popup/Popup.js +14 -13
  263. package/cjs/internal/Popup/Popup.js.map +1 -1
  264. package/cjs/internal/Popup/Popup.styles.d.ts +16 -16
  265. package/cjs/internal/Popup/PopupHelper.d.ts +26 -26
  266. package/cjs/internal/Popup/PopupPin.d.ts +56 -56
  267. package/cjs/internal/Popup/PopupPin.styles.d.ts +3 -3
  268. package/cjs/internal/Popup/index.d.ts +1 -1
  269. package/cjs/internal/Popup/types.d.ts +1 -1
  270. package/cjs/internal/PopupMenu/PopupMenu.d.ts +85 -85
  271. package/cjs/internal/PopupMenu/PopupMenu.styles.d.ts +4 -4
  272. package/cjs/internal/PopupMenu/index.d.ts +1 -1
  273. package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
  274. package/cjs/internal/RenderContainer/RenderContainer.d.ts +16 -16
  275. package/cjs/internal/RenderContainer/RenderContainer.js +9 -0
  276. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  277. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +12 -11
  278. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +13 -13
  279. package/cjs/internal/RenderContainer/index.d.ts +1 -1
  280. package/cjs/internal/RenderLayer/RenderLayer.d.ts +29 -29
  281. package/cjs/internal/RenderLayer/index.d.ts +1 -1
  282. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +12 -12
  283. package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +5 -5
  284. package/cjs/internal/ResizeDetector/index.d.ts +1 -1
  285. package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +13 -13
  286. package/cjs/internal/ThemePlayground/CheckboxPlayground.d.ts +1 -1
  287. package/cjs/internal/ThemePlayground/ComponentsGroup.d.ts +10 -10
  288. package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +11 -11
  289. package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +10 -10
  290. package/cjs/internal/ThemePlayground/HintPlayground.d.ts +6 -6
  291. package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +10 -10
  292. package/cjs/internal/ThemePlayground/Playground.d.ts +31 -31
  293. package/cjs/internal/ThemePlayground/Playground.styles.d.ts +23 -23
  294. package/cjs/internal/ThemePlayground/RadioPlayground.d.ts +1 -1
  295. package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +12 -12
  296. package/cjs/internal/ThemePlayground/ShowcaseGroup.d.ts +5 -5
  297. package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +15 -15
  298. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +51 -51
  299. package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +39 -39
  300. package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +9 -9
  301. package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +7 -7
  302. package/cjs/internal/ThemePlayground/VariableValue.d.ts +45 -45
  303. package/cjs/internal/ThemePlayground/constants.d.ts +18 -18
  304. package/cjs/internal/ThemePlayground/darkTheme.d.ts +255 -255
  305. package/cjs/internal/ThemePlayground/helpers.d.ts +2 -2
  306. package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +22 -22
  307. package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +24 -24
  308. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +22 -22
  309. package/cjs/internal/ZIndex/ZIndex.d.ts +36 -36
  310. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +18 -18
  311. package/cjs/internal/ZIndex/index.d.ts +1 -1
  312. package/cjs/internal/icons/16px/icon.styles.d.ts +4 -4
  313. package/cjs/internal/icons/16px/index.d.ts +22 -22
  314. package/cjs/internal/icons/20px/Icon.d.ts +30 -30
  315. package/cjs/internal/icons/20px/icon.styles.d.ts +4 -4
  316. package/cjs/internal/icons/20px/index.d.ts +2 -2
  317. package/cjs/internal/icons/20px/svg.d.ts +14 -14
  318. package/cjs/internal/icons/CloudIcon.d.ts +1 -1
  319. package/cjs/internal/icons/CrossIcon.d.ts +1 -1
  320. package/cjs/internal/icons/SpinnerIcon.d.ts +26 -26
  321. package/cjs/internal/icons/SpinnerIcon.styles.d.ts +4 -4
  322. package/cjs/internal/themes/DefaultTheme.d.ts +766 -766
  323. package/cjs/internal/themes/FlatTheme.d.ts +132 -132
  324. package/cjs/internal/themes/Theme8px.d.ts +271 -271
  325. package/cjs/lib/ConditionalHandler.d.ts +11 -11
  326. package/cjs/lib/InstanceWithAnchorElement.d.ts +5 -0
  327. package/cjs/lib/InstanceWithAnchorElement.js +9 -0
  328. package/cjs/lib/InstanceWithAnchorElement.js.map +1 -0
  329. package/cjs/lib/LayoutEvents.d.ts +4 -4
  330. package/cjs/lib/ModalStack.d.ts +14 -14
  331. package/cjs/lib/SSRSafe.d.ts +4 -4
  332. package/cjs/lib/Supports.d.ts +1 -1
  333. package/cjs/lib/Upgrades.d.ts +6 -6
  334. package/cjs/lib/animation/index.d.ts +6 -6
  335. package/cjs/lib/animation/presets.d.ts +18 -18
  336. package/cjs/lib/animation/stepper.d.ts +1 -1
  337. package/cjs/lib/callChildRef/callChildRef.d.ts +3 -3
  338. package/cjs/lib/client.d.ts +16 -16
  339. package/cjs/lib/createPropsGetter.d.ts +2 -2
  340. package/cjs/lib/currentEnvironment.d.ts +3 -3
  341. package/cjs/lib/date/InternalDate.d.ts +58 -58
  342. package/cjs/lib/date/InternalDateCalculator.d.ts +6 -6
  343. package/cjs/lib/date/InternalDateGetter.d.ts +15 -15
  344. package/cjs/lib/date/InternalDateSetter.d.ts +6 -6
  345. package/cjs/lib/date/InternalDateTransformer.d.ts +12 -12
  346. package/cjs/lib/date/InternalDateValidator.d.ts +12 -12
  347. package/cjs/lib/date/constants.d.ts +28 -28
  348. package/cjs/lib/date/localeSets.d.ts +5 -5
  349. package/cjs/lib/date/types.d.ts +90 -90
  350. package/cjs/lib/dom/getScrollWidth.d.ts +1 -1
  351. package/cjs/lib/dom/tabbableHelpers.d.ts +16 -16
  352. package/cjs/lib/events/MouseDrag.d.ts +58 -58
  353. package/cjs/lib/events/fixClickFocusIE.d.ts +1 -1
  354. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -2
  355. package/cjs/lib/events/keyListener.d.ts +7 -7
  356. package/cjs/lib/events/keyboard/KeyboardEventCodes.d.ts +30 -30
  357. package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +6 -6
  358. package/cjs/lib/events/keyboard/extractCode.d.ts +3 -3
  359. package/cjs/lib/events/keyboard/identifiers.d.ts +48 -48
  360. package/cjs/lib/events/stopPropagation.d.ts +1 -1
  361. package/cjs/lib/events/tabListener.d.ts +1 -1
  362. package/cjs/lib/extractKeyboardAction.d.ts +13 -13
  363. package/cjs/lib/filterProps.d.ts +12 -12
  364. package/cjs/lib/forwardRefAndName.d.ts +5 -5
  365. package/cjs/lib/getDisplayName.d.ts +3 -3
  366. package/cjs/lib/listenFocusOutside.d.ts +8 -8
  367. package/cjs/lib/locale/LocaleContext.d.ts +7 -7
  368. package/cjs/lib/locale/LocaleHelper.d.ts +9 -9
  369. package/cjs/lib/locale/constants.d.ts +2 -2
  370. package/cjs/lib/locale/decorators.d.ts +36 -36
  371. package/cjs/lib/locale/index.d.ts +3 -3
  372. package/cjs/lib/locale/types.d.ts +19 -19
  373. package/cjs/lib/memo.d.ts +1 -1
  374. package/cjs/lib/net/fetch.d.ts +13 -13
  375. package/cjs/lib/polyfillPlaceholder.d.ts +1 -1
  376. package/cjs/lib/reactGetTextContent.d.ts +2 -2
  377. package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
  378. package/cjs/lib/rootNode/getRootNode.js +5 -4
  379. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  380. package/cjs/lib/rootNode/index.d.ts +2 -2
  381. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +47 -33
  382. package/cjs/lib/rootNode/rootNodeDecorator.js +39 -4
  383. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  384. package/cjs/lib/styles/ColorFactory.d.ts +11 -11
  385. package/cjs/lib/styles/ColorFunctions.d.ts +11 -11
  386. package/cjs/lib/styles/ColorHelpers.d.ts +20 -20
  387. package/cjs/lib/styles/ColorKeywords.d.ts +150 -150
  388. package/cjs/lib/styles/ColorObject.d.ts +52 -52
  389. package/cjs/lib/styles/DimensionFunctions.d.ts +1 -1
  390. package/cjs/lib/styles/HoldSelectionColor.d.ts +1 -1
  391. package/cjs/lib/styles/Mixins.d.ts +2 -2
  392. package/cjs/lib/taskWithDelayAndMinimalDuration.d.ts +21 -21
  393. package/cjs/lib/theming/AnimationKeyframes.d.ts +9 -9
  394. package/cjs/lib/theming/Emotion.d.ts +15 -15
  395. package/cjs/lib/theming/Theme.d.ts +3 -3
  396. package/cjs/lib/theming/ThemeContext.d.ts +2 -2
  397. package/cjs/lib/theming/ThemeFactory.d.ts +8 -8
  398. package/cjs/lib/theming/ThemeHelpers.d.ts +11 -11
  399. package/cjs/lib/theming/themes/DefaultTheme.d.ts +1 -1
  400. package/cjs/lib/theming/themes/DefaultThemeOld.d.ts +1 -1
  401. package/cjs/lib/theming/themes/FlatTheme.d.ts +1 -1
  402. package/cjs/lib/theming/themes/FlatThemeOld.d.ts +1 -1
  403. package/cjs/lib/theming/useTheme.d.ts +1 -1
  404. package/cjs/lib/utils.d.ts +63 -63
  405. package/cjs/lib/withClassWrapper.d.ts +71 -71
  406. package/components/Autocomplete/Autocomplete.d.ts +113 -113
  407. package/components/Autocomplete/index.d.ts +1 -1
  408. package/components/Button/Button.d.ts +161 -161
  409. package/components/Button/Button.mixins.d.ts +6 -6
  410. package/components/Button/Button.styles.d.ts +68 -68
  411. package/components/Button/Corners.d.ts +6 -6
  412. package/components/Button/index.d.ts +1 -1
  413. package/components/Center/Center.d.ts +25 -25
  414. package/components/Center/Center.styles.d.ts +7 -7
  415. package/components/Center/index.d.ts +1 -1
  416. package/components/Checkbox/Checkbox.d.ts +96 -96
  417. package/components/Checkbox/Checkbox.styles.d.ts +22 -22
  418. package/components/Checkbox/index.d.ts +1 -1
  419. package/components/ComboBox/ComboBox.d.ts +184 -184
  420. package/components/ComboBox/index.d.ts +1 -1
  421. package/components/CurrencyInput/CurrencyHelper.d.ts +35 -35
  422. package/components/CurrencyInput/CurrencyInput.d.ts +106 -106
  423. package/components/CurrencyInput/CurrencyInputHelper.d.ts +20 -20
  424. package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +18 -18
  425. package/components/CurrencyInput/CursorHelper.d.ts +10 -10
  426. package/components/CurrencyInput/SelectionHelper.d.ts +11 -11
  427. package/components/CurrencyInput/constants.d.ts +2 -2
  428. package/components/CurrencyInput/index.d.ts +1 -1
  429. package/components/CurrencyLabel/CurrencyLabel.d.ts +24 -24
  430. package/components/CurrencyLabel/index.d.ts +1 -1
  431. package/components/DateInput/DateFragmentsView.d.ts +20 -20
  432. package/components/DateInput/DateFragmentsView.styles.d.ts +7 -7
  433. package/components/DateInput/DateInput.d.ts +107 -107
  434. package/components/DateInput/DateInput.styles.d.ts +10 -10
  435. package/components/DateInput/ViewDateInputValidateChecks.d.ts +10 -10
  436. package/components/DateInput/helpers/DateInputKeyboardActions.d.ts +21 -21
  437. package/components/DateInput/helpers/InternalDateMediator.d.ts +26 -26
  438. package/components/DateInput/helpers/SelectionHelpers.d.ts +2 -2
  439. package/components/DateInput/helpers/inputNumber.d.ts +5 -5
  440. package/components/DateInput/index.d.ts +1 -1
  441. package/components/DatePicker/DatePicker.d.ts +131 -131
  442. package/components/DatePicker/DatePicker.styles.d.ts +3 -3
  443. package/components/DatePicker/DatePickerHelpers.d.ts +2 -2
  444. package/components/DatePicker/Picker.d.ts +33 -33
  445. package/components/DatePicker/Picker.styles.d.ts +5 -5
  446. package/components/DatePicker/index.d.ts +1 -1
  447. package/components/DatePicker/locale/index.d.ts +4 -4
  448. package/components/DatePicker/locale/locales/en.d.ts +2 -2
  449. package/components/DatePicker/locale/locales/ru.d.ts +2 -2
  450. package/components/DatePicker/locale/types.d.ts +5 -5
  451. package/components/Dropdown/Dropdown.d.ts +124 -124
  452. package/components/Dropdown/index.d.ts +1 -1
  453. package/components/DropdownMenu/DropdownMenu.d.ts +65 -65
  454. package/components/DropdownMenu/index.d.ts +1 -1
  455. package/components/FxInput/FxInput.d.ts +50 -50
  456. package/components/FxInput/index.d.ts +1 -1
  457. package/components/Gapped/Gapped.d.ts +58 -58
  458. package/components/Gapped/index.d.ts +1 -1
  459. package/components/Group/Group.d.ts +14 -14
  460. package/components/Group/Group.styles.d.ts +8 -8
  461. package/components/Group/index.d.ts +1 -1
  462. package/components/Hint/Hint/Hint.js +9 -1
  463. package/components/Hint/Hint/Hint.js.map +1 -1
  464. package/components/Hint/Hint.d.ts +85 -81
  465. package/components/Hint/Hint.styles.d.ts +5 -5
  466. package/components/Hint/index.d.ts +1 -1
  467. package/components/Input/Input.d.ts +157 -157
  468. package/components/Input/Input.styles.d.ts +42 -42
  469. package/components/Input/index.d.ts +1 -1
  470. package/components/Kebab/Kebab.d.ts +71 -71
  471. package/components/Kebab/Kebab.styles.d.ts +12 -12
  472. package/components/Kebab/index.d.ts +1 -1
  473. package/components/Link/Link.d.ts +72 -72
  474. package/components/Link/Link.mixins.d.ts +3 -3
  475. package/components/Link/Link.styles.d.ts +15 -15
  476. package/components/Link/index.d.ts +1 -1
  477. package/components/Loader/Loader.d.ts +100 -100
  478. package/components/Loader/Loader.styles.d.ts +8 -8
  479. package/components/Loader/index.d.ts +1 -1
  480. package/components/MenuHeader/MenuHeader.d.ts +20 -20
  481. package/components/MenuHeader/MenuHeader.styles.d.ts +5 -5
  482. package/components/MenuHeader/index.d.ts +1 -1
  483. package/components/MenuItem/MenuItem.d.ts +94 -94
  484. package/components/MenuItem/MenuItem.styles.d.ts +13 -13
  485. package/components/MenuItem/index.d.ts +1 -1
  486. package/components/MenuSeparator/MenuSeparator.d.ts +12 -12
  487. package/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
  488. package/components/MenuSeparator/index.d.ts +1 -1
  489. package/components/Modal/Modal.d.ts +87 -87
  490. package/components/Modal/Modal.styles.d.ts +26 -26
  491. package/components/Modal/ModalBody.d.ts +21 -21
  492. package/components/Modal/ModalClose.d.ts +2 -2
  493. package/components/Modal/ModalContext.d.ts +15 -15
  494. package/components/Modal/ModalFooter.d.ts +21 -21
  495. package/components/Modal/ModalHeader.d.ts +17 -17
  496. package/components/Modal/index.d.ts +4 -4
  497. package/components/Paging/NavigationHelper.d.ts +7 -7
  498. package/components/Paging/Paging.d.ts +90 -90
  499. package/components/Paging/Paging.styles.d.ts +16 -16
  500. package/components/Paging/PagingHelper.d.ts +2 -2
  501. package/components/Paging/index.d.ts +1 -1
  502. package/components/Paging/locale/index.d.ts +4 -4
  503. package/components/Paging/locale/locales/en.d.ts +2 -2
  504. package/components/Paging/locale/locales/ru.d.ts +2 -2
  505. package/components/Paging/locale/types.d.ts +3 -3
  506. package/components/PasswordInput/PasswordInput.d.ts +49 -49
  507. package/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
  508. package/components/PasswordInput/index.d.ts +1 -1
  509. package/components/Radio/Radio.d.ts +77 -77
  510. package/components/Radio/Radio.styles.d.ts +19 -19
  511. package/components/Radio/index.d.ts +1 -1
  512. package/components/RadioGroup/Prevent.d.ts +8 -8
  513. package/components/RadioGroup/RadioGroup.d.ts +117 -117
  514. package/components/RadioGroup/RadioGroup.styles.d.ts +7 -7
  515. package/components/RadioGroup/RadioGroupContext.d.ts +10 -10
  516. package/components/RadioGroup/index.d.ts +1 -1
  517. package/components/ScrollContainer/ScrollBar.d.ts +37 -37
  518. package/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -23
  519. package/components/ScrollContainer/ScrollContainer.d.ts +84 -84
  520. package/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -10
  521. package/components/ScrollContainer/ScrollContainer.styles.d.ts +17 -17
  522. package/components/ScrollContainer/index.d.ts +1 -1
  523. package/components/Select/Item.d.ts +7 -7
  524. package/components/Select/Select.d.ts +179 -179
  525. package/components/Select/Select.styles.d.ts +17 -17
  526. package/components/Select/index.d.ts +1 -1
  527. package/components/Select/locale/index.d.ts +4 -4
  528. package/components/Select/locale/locales/en.d.ts +2 -2
  529. package/components/Select/locale/locales/ru.d.ts +2 -2
  530. package/components/Select/locale/types.d.ts +4 -4
  531. package/components/Select/selectTheme.d.ts +3 -3
  532. package/components/SidePage/SidePage.d.ts +109 -109
  533. package/components/SidePage/SidePage.styles.d.ts +37 -37
  534. package/components/SidePage/SidePageBody.d.ts +19 -19
  535. package/components/SidePage/SidePageContainer.d.ts +15 -15
  536. package/components/SidePage/SidePageContext.d.ts +17 -17
  537. package/components/SidePage/SidePageFooter.d.ts +36 -36
  538. package/components/SidePage/SidePageHeader.d.ts +44 -44
  539. package/components/SidePage/index.d.ts +5 -5
  540. package/components/Spinner/Spinner.d.ts +56 -56
  541. package/components/Spinner/Spinner.styles.d.ts +12 -12
  542. package/components/Spinner/SpinnerFallbackAnimation.d.ts +25 -25
  543. package/components/Spinner/index.d.ts +1 -1
  544. package/components/Spinner/locale/index.d.ts +4 -4
  545. package/components/Spinner/locale/locales/en.d.ts +2 -2
  546. package/components/Spinner/locale/locales/ru.d.ts +2 -2
  547. package/components/Spinner/locale/types.d.ts +4 -4
  548. package/components/Sticky/Sticky.d.ts +59 -59
  549. package/components/Sticky/Sticky.styles.d.ts +7 -7
  550. package/components/Sticky/index.d.ts +1 -1
  551. package/components/Switcher/Switcher.d.ts +56 -56
  552. package/components/Switcher/Switcher.styles.d.ts +10 -10
  553. package/components/Switcher/index.d.ts +1 -1
  554. package/components/Switcher/switcherTheme.d.ts +2 -2
  555. package/components/Tabs/Indicator.d.ts +28 -28
  556. package/components/Tabs/Indicator.styles.d.ts +8 -8
  557. package/components/Tabs/Tab.d.ts +121 -121
  558. package/components/Tabs/Tab.styles.d.ts +27 -27
  559. package/components/Tabs/Tabs.d.ts +62 -62
  560. package/components/Tabs/Tabs.styles.d.ts +5 -5
  561. package/components/Tabs/TabsContext.d.ts +14 -14
  562. package/components/Tabs/index.d.ts +2 -2
  563. package/components/Textarea/Textarea.d.ts +185 -185
  564. package/components/Textarea/Textarea.styles.d.ts +15 -15
  565. package/components/Textarea/TextareaCounter.d.ts +13 -13
  566. package/components/Textarea/TextareaHelpers.d.ts +11 -11
  567. package/components/Textarea/index.d.ts +1 -1
  568. package/components/Toast/Toast.d.ts +58 -58
  569. package/components/Toast/Toast.styles.d.ts +6 -6
  570. package/components/Toast/ToastStatic.d.ts +8 -8
  571. package/components/Toast/ToastView.d.ts +38 -38
  572. package/components/Toast/ToastView.styles.d.ts +8 -8
  573. package/components/Toast/index.d.ts +1 -1
  574. package/components/Toggle/Toggle.d.ts +107 -107
  575. package/components/Toggle/Toggle.styles.d.ts +30 -30
  576. package/components/Toggle/index.d.ts +1 -1
  577. package/components/Token/Token.d.ts +36 -36
  578. package/components/Token/Token.styles.d.ts +29 -29
  579. package/components/Token/index.d.ts +1 -1
  580. package/components/TokenInput/TextWidthHelper.d.ts +18 -18
  581. package/components/TokenInput/TokenInput.d.ts +194 -194
  582. package/components/TokenInput/TokenInput.styles.d.ts +15 -15
  583. package/components/TokenInput/TokenInputMenu.d.ts +18 -18
  584. package/components/TokenInput/TokenInputReducer.d.ts +25 -25
  585. package/components/TokenInput/index.d.ts +1 -1
  586. package/components/TokenInput/locale/index.d.ts +4 -4
  587. package/components/TokenInput/locale/locales/en.d.ts +2 -2
  588. package/components/TokenInput/locale/locales/ru.d.ts +2 -2
  589. package/components/TokenInput/locale/types.d.ts +4 -4
  590. package/components/Tooltip/Tooltip/Tooltip.js +11 -8
  591. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  592. package/components/Tooltip/Tooltip.d.ts +162 -160
  593. package/components/Tooltip/Tooltip.styles.d.ts +5 -5
  594. package/components/Tooltip/index.d.ts +1 -1
  595. package/components/TooltipMenu/TooltipMenu.d.ts +65 -65
  596. package/components/TooltipMenu/index.d.ts +1 -1
  597. package/index.d.ts +49 -49
  598. package/internal/BGRuler.d.ts +30 -30
  599. package/internal/Calendar/Calendar.d.ts +66 -66
  600. package/internal/Calendar/Calendar.styles.d.ts +5 -5
  601. package/internal/Calendar/CalendarDateShape.d.ts +14 -14
  602. package/internal/Calendar/CalendarScrollEvents.d.ts +4 -4
  603. package/internal/Calendar/CalendarUtils.d.ts +19 -19
  604. package/internal/Calendar/DayCellView.d.ts +13 -13
  605. package/internal/Calendar/DayCellView.styles.d.ts +7 -7
  606. package/internal/Calendar/DayCellViewModel.d.ts +8 -8
  607. package/internal/Calendar/Month.d.ts +33 -33
  608. package/internal/Calendar/MonthView.d.ts +21 -21
  609. package/internal/Calendar/MonthView.styles.d.ts +9 -9
  610. package/internal/Calendar/MonthViewModel.d.ts +14 -14
  611. package/internal/Calendar/config.d.ts +9 -9
  612. package/internal/Calendar/index.d.ts +2 -2
  613. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +19 -4
  614. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  615. package/internal/CommonWrapper/CommonWrapper.d.ts +32 -31
  616. package/internal/CommonWrapper/index.d.ts +1 -1
  617. package/internal/ComponentCombinator.d.ts +25 -25
  618. package/internal/ComponentTable.d.ts +21 -21
  619. package/internal/CustomComboBox/ComboBoxMenu.d.ts +31 -31
  620. package/internal/CustomComboBox/ComboBoxView.d.ts +90 -90
  621. package/internal/CustomComboBox/CustomComboBox.d.ts +136 -136
  622. package/internal/CustomComboBox/CustomComboBox.styles.d.ts +5 -5
  623. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +71 -71
  624. package/internal/CustomComboBox/CustomComboBoxTypes.d.ts +6 -6
  625. package/internal/CustomComboBox/index.d.ts +2 -2
  626. package/internal/CustomComboBox/locale/index.d.ts +4 -4
  627. package/internal/CustomComboBox/locale/locales/en.d.ts +2 -2
  628. package/internal/CustomComboBox/locale/locales/ru.d.ts +2 -2
  629. package/internal/CustomComboBox/locale/types.d.ts +5 -5
  630. package/internal/DateSelect/DateSelect.d.ts +93 -93
  631. package/internal/DateSelect/DateSelect.styles.d.ts +19 -19
  632. package/internal/DateSelect/index.d.ts +1 -1
  633. package/internal/DropdownContainer/DropdownContainer.d.ts +44 -44
  634. package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -3
  635. package/internal/DropdownContainer/index.d.ts +1 -1
  636. package/internal/FocusTrap/FocusTrap.d.ts +17 -17
  637. package/internal/FocusTrap/index.d.ts +1 -1
  638. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +14 -14
  639. package/internal/HideBodyVerticalScroll/index.d.ts +1 -1
  640. package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +8 -8
  641. package/internal/IgnoreLayerClick/index.d.ts +1 -1
  642. package/internal/InputLikeText/HiddenInput.d.ts +13 -13
  643. package/internal/InputLikeText/InputLikeText.d.ts +73 -73
  644. package/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
  645. package/internal/InputLikeText/index.d.ts +1 -1
  646. package/internal/InternalMenu/InternalMenu.d.ts +63 -63
  647. package/internal/InternalMenu/InternalMenu.styles.d.ts +9 -9
  648. package/internal/InternalMenu/index.d.ts +1 -1
  649. package/internal/InternalMenu/isActiveElement.d.ts +3 -3
  650. package/internal/MaskCharLowLine/MaskCharLowLine.d.ts +9 -9
  651. package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -3
  652. package/internal/MaskCharLowLine/index.d.ts +1 -1
  653. package/internal/MaskedInput/MaskedInput.d.ts +40 -40
  654. package/internal/MaskedInput/MaskedInput.styles.d.ts +6 -6
  655. package/internal/MaskedInput/index.d.ts +1 -1
  656. package/internal/Menu/Menu.d.ts +65 -65
  657. package/internal/Menu/Menu.styles.d.ts +9 -9
  658. package/internal/Menu/index.d.ts +1 -1
  659. package/internal/Menu/isActiveElement.d.ts +3 -3
  660. package/internal/NativeDateInput/NativeDateInput.d.ts +23 -23
  661. package/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -3
  662. package/internal/NativeDateInput/index.d.ts +1 -1
  663. package/internal/NativeDateInput/utils.d.ts +7 -7
  664. package/internal/PerformanceMetrics/PerformanceMetrics.d.ts +7 -7
  665. package/internal/Popup/Popup/Popup.js +17 -18
  666. package/internal/Popup/Popup/Popup.js.map +1 -1
  667. package/internal/Popup/Popup.d.ts +161 -162
  668. package/internal/Popup/Popup.styles.d.ts +16 -16
  669. package/internal/Popup/PopupHelper.d.ts +26 -26
  670. package/internal/Popup/PopupPin.d.ts +56 -56
  671. package/internal/Popup/PopupPin.styles.d.ts +3 -3
  672. package/internal/Popup/index.d.ts +1 -1
  673. package/internal/Popup/types.d.ts +1 -1
  674. package/internal/PopupMenu/PopupMenu.d.ts +85 -85
  675. package/internal/PopupMenu/PopupMenu.styles.d.ts +4 -4
  676. package/internal/PopupMenu/index.d.ts +1 -1
  677. package/internal/PopupMenu/validatePositions.d.ts +2 -2
  678. package/internal/RenderContainer/RenderContainer/RenderContainer.js +9 -0
  679. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  680. package/internal/RenderContainer/RenderContainer.d.ts +16 -16
  681. package/internal/RenderContainer/RenderContainerTypes.d.ts +12 -11
  682. package/internal/RenderContainer/RenderInnerContainer.d.ts +13 -13
  683. package/internal/RenderContainer/index.d.ts +1 -1
  684. package/internal/RenderLayer/RenderLayer.d.ts +29 -29
  685. package/internal/RenderLayer/index.d.ts +1 -1
  686. package/internal/ResizeDetector/ResizeDetector.d.ts +12 -12
  687. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +5 -5
  688. package/internal/ResizeDetector/index.d.ts +1 -1
  689. package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +13 -13
  690. package/internal/ThemePlayground/CheckboxPlayground.d.ts +1 -1
  691. package/internal/ThemePlayground/ComponentsGroup.d.ts +10 -10
  692. package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +11 -11
  693. package/internal/ThemePlayground/FxInputPlayground.d.ts +10 -10
  694. package/internal/ThemePlayground/HintPlayground.d.ts +6 -6
  695. package/internal/ThemePlayground/PagingPlayground.d.ts +10 -10
  696. package/internal/ThemePlayground/Playground.d.ts +31 -31
  697. package/internal/ThemePlayground/Playground.styles.d.ts +23 -23
  698. package/internal/ThemePlayground/RadioPlayground.d.ts +1 -1
  699. package/internal/ThemePlayground/SelectPlayground.d.ts +12 -12
  700. package/internal/ThemePlayground/ShowcaseGroup.d.ts +5 -5
  701. package/internal/ThemePlayground/SwitcherPlayground.d.ts +15 -15
  702. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +51 -51
  703. package/internal/ThemePlayground/ThemeEditor.d.ts +39 -39
  704. package/internal/ThemePlayground/TogglePlayground.d.ts +9 -9
  705. package/internal/ThemePlayground/TokenInputPlayground.d.ts +7 -7
  706. package/internal/ThemePlayground/VariableValue.d.ts +45 -45
  707. package/internal/ThemePlayground/constants.d.ts +18 -18
  708. package/internal/ThemePlayground/darkTheme.d.ts +255 -255
  709. package/internal/ThemePlayground/helpers.d.ts +2 -2
  710. package/internal/ThemeShowcase/ThemeShowcase.d.ts +22 -22
  711. package/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +24 -24
  712. package/internal/ThemeShowcase/VariablesCollector.d.ts +22 -22
  713. package/internal/ZIndex/ZIndex.d.ts +36 -36
  714. package/internal/ZIndex/ZIndexStorage.d.ts +18 -18
  715. package/internal/ZIndex/index.d.ts +1 -1
  716. package/internal/icons/16px/icon.styles.d.ts +4 -4
  717. package/internal/icons/16px/index.d.ts +22 -22
  718. package/internal/icons/20px/Icon.d.ts +30 -30
  719. package/internal/icons/20px/icon.styles.d.ts +4 -4
  720. package/internal/icons/20px/index.d.ts +2 -2
  721. package/internal/icons/20px/svg.d.ts +14 -14
  722. package/internal/icons/CloudIcon.d.ts +1 -1
  723. package/internal/icons/CrossIcon.d.ts +1 -1
  724. package/internal/icons/SpinnerIcon.d.ts +26 -26
  725. package/internal/icons/SpinnerIcon.styles.d.ts +4 -4
  726. package/internal/themes/DefaultTheme.d.ts +766 -766
  727. package/internal/themes/FlatTheme.d.ts +132 -132
  728. package/internal/themes/Theme8px.d.ts +271 -271
  729. package/lib/ConditionalHandler.d.ts +11 -11
  730. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js +3 -0
  731. package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -0
  732. package/lib/InstanceWithAnchorElement/package.json +6 -0
  733. package/lib/InstanceWithAnchorElement.d.ts +5 -0
  734. package/lib/LayoutEvents.d.ts +4 -4
  735. package/lib/ModalStack.d.ts +14 -14
  736. package/lib/SSRSafe.d.ts +4 -4
  737. package/lib/Supports.d.ts +1 -1
  738. package/lib/Upgrades.d.ts +6 -6
  739. package/lib/animation/index.d.ts +6 -6
  740. package/lib/animation/presets.d.ts +18 -18
  741. package/lib/animation/stepper.d.ts +1 -1
  742. package/lib/callChildRef/callChildRef.d.ts +3 -3
  743. package/lib/client.d.ts +16 -16
  744. package/lib/createPropsGetter.d.ts +2 -2
  745. package/lib/currentEnvironment.d.ts +3 -3
  746. package/lib/date/InternalDate.d.ts +58 -58
  747. package/lib/date/InternalDateCalculator.d.ts +6 -6
  748. package/lib/date/InternalDateGetter.d.ts +15 -15
  749. package/lib/date/InternalDateSetter.d.ts +6 -6
  750. package/lib/date/InternalDateTransformer.d.ts +12 -12
  751. package/lib/date/InternalDateValidator.d.ts +12 -12
  752. package/lib/date/constants.d.ts +28 -28
  753. package/lib/date/localeSets.d.ts +5 -5
  754. package/lib/date/types.d.ts +90 -90
  755. package/lib/dom/getScrollWidth.d.ts +1 -1
  756. package/lib/dom/tabbableHelpers.d.ts +16 -16
  757. package/lib/events/MouseDrag.d.ts +58 -58
  758. package/lib/events/fixClickFocusIE.d.ts +1 -1
  759. package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -2
  760. package/lib/events/keyListener.d.ts +7 -7
  761. package/lib/events/keyboard/KeyboardEventCodes.d.ts +30 -30
  762. package/lib/events/keyboard/KeyboardMapKeys.d.ts +6 -6
  763. package/lib/events/keyboard/extractCode.d.ts +3 -3
  764. package/lib/events/keyboard/identifiers.d.ts +48 -48
  765. package/lib/events/stopPropagation.d.ts +1 -1
  766. package/lib/events/tabListener.d.ts +1 -1
  767. package/lib/extractKeyboardAction.d.ts +13 -13
  768. package/lib/filterProps.d.ts +12 -12
  769. package/lib/forwardRefAndName.d.ts +5 -5
  770. package/lib/getDisplayName.d.ts +3 -3
  771. package/lib/listenFocusOutside.d.ts +8 -8
  772. package/lib/locale/LocaleContext.d.ts +7 -7
  773. package/lib/locale/LocaleHelper.d.ts +9 -9
  774. package/lib/locale/constants.d.ts +2 -2
  775. package/lib/locale/decorators.d.ts +36 -36
  776. package/lib/locale/index.d.ts +3 -3
  777. package/lib/locale/types.d.ts +19 -19
  778. package/lib/memo.d.ts +1 -1
  779. package/lib/net/fetch.d.ts +13 -13
  780. package/lib/polyfillPlaceholder.d.ts +1 -1
  781. package/lib/reactGetTextContent.d.ts +2 -2
  782. package/lib/rootNode/getRootNode/getRootNode.js +3 -4
  783. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  784. package/lib/rootNode/getRootNode.d.ts +3 -3
  785. package/lib/rootNode/index.d.ts +2 -2
  786. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +24 -3
  787. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  788. package/lib/rootNode/rootNodeDecorator.d.ts +47 -33
  789. package/lib/styles/ColorFactory.d.ts +11 -11
  790. package/lib/styles/ColorFunctions.d.ts +11 -11
  791. package/lib/styles/ColorHelpers.d.ts +20 -20
  792. package/lib/styles/ColorKeywords.d.ts +150 -150
  793. package/lib/styles/ColorObject.d.ts +52 -52
  794. package/lib/styles/DimensionFunctions.d.ts +1 -1
  795. package/lib/styles/HoldSelectionColor.d.ts +1 -1
  796. package/lib/styles/Mixins.d.ts +2 -2
  797. package/lib/taskWithDelayAndMinimalDuration.d.ts +21 -21
  798. package/lib/theming/AnimationKeyframes.d.ts +9 -9
  799. package/lib/theming/Emotion.d.ts +15 -15
  800. package/lib/theming/Theme.d.ts +3 -3
  801. package/lib/theming/ThemeContext.d.ts +2 -2
  802. package/lib/theming/ThemeFactory.d.ts +8 -8
  803. package/lib/theming/ThemeHelpers.d.ts +11 -11
  804. package/lib/theming/themes/DefaultTheme.d.ts +1 -1
  805. package/lib/theming/themes/DefaultThemeOld.d.ts +1 -1
  806. package/lib/theming/themes/FlatTheme.d.ts +1 -1
  807. package/lib/theming/themes/FlatThemeOld.d.ts +1 -1
  808. package/lib/theming/useTheme.d.ts +1 -1
  809. package/lib/utils.d.ts +63 -63
  810. package/lib/withClassWrapper.d.ts +71 -71
  811. package/package.json +2 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["Popup.tsx"],"names":["React","PropTypes","Transition","raf","warning","LayoutEvents","ZIndex","RenderContainer","isFunction","isNonNullable","isRefableElement","isIE11","isEdge","isSafari","ThemeContext","isHTMLElement","safePropTypesInstanceOf","isTestEnv","CommonWrapper","cx","getRootNode","rootNode","callChildRef","PopupPin","PopupHelper","styles","POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","PopupPositions","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","Popup","state","location","props","opened","theme","layoutEventsToken","locationUpdateId","lastPopupElement","anchorElement","setRootNode","refForTransition","createRef","renderContainerRef","childInstance","updateAnchorElement","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","offsetWidth","parseFloat","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","element","handleLayoutEvent","updateLocation","popupElement","getLocation","locationEquals","componentDidMount","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","onOpen","onClose","delayUpdateLocation","componentWillUnmount","removeEventListeners","remove","render","renderMain","useWrapper","anchor","isValidElement","anchorWithRef","cloneElement","ref","instance","originalRef","canGetAnchorNode","renderContent","childDomNode","addEventListeners","addEventListener","removeEventListener","backgroundColor","disableAnimations","maxWidth","hasShadow","ignoreHover","children","renderChildren","getPositionObject","direction","rootStyle","shouldFallbackShadow","Boolean","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","content","contentInner","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","cancel","x","y","Math","abs","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable, isRefableElement } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isHTMLElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupPositions = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n] as const;\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = typeof PopupPositions[number];\n\nconst DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\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 extends CommonProps, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\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 positions: Readonly<PopupPositionsType[]>;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n ignoreHover: boolean;\n width: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => 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 * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<HTMLElement>;\n private anchorElement: Nullable<HTMLElement> = null;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\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 (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 this.removeEventListeners(this.anchorElement);\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 <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { location } = this.state;\n const { anchorElement, useWrapper } = this.props;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isHTMLElement(anchorElement)) {\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: (instance: Nullable<React.ReactInstance>) => {\n this.updateAnchorElement(instance);\n const originalRef = (anchor as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n },\n })\n : null;\n\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 with RenderContainer's ref\n // in the case when the anchor is not refable\n\n const canGetAnchorNode = !!anchorWithRef || isHTMLElement(anchorElement);\n\n return (\n <RenderContainer anchor={anchorWithRef || anchor} ref={canGetAnchorNode ? null : this.renderContainerRef}>\n {location && this.renderContent(location)}\n </RenderContainer>\n );\n }\n\n private renderContainerRef = (childInstance: Nullable<React.ReactInstance>) => {\n this.updateAnchorElement(childInstance);\n };\n\n private updateAnchorElement(childInstance: Nullable<React.ReactInstance>) {\n const childDomNode = getRootNode(childInstance);\n const anchorElement = this.anchorElement;\n\n if (childDomNode !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = childDomNode;\n this.addEventListeners(childDomNode);\n this.setRootNode(childDomNode);\n }\n }\n\n private addEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.addEventListener('mouseenter', this.handleMouseEnter);\n element.addEventListener('mouseleave', this.handleMouseLeave);\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\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 return this.anchorElement ? (this.anchorElement.offsetWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private renderContent(location: PopupLocation) {\n const { backgroundColor, disableAnimations, maxWidth, hasShadow, ignoreHover, opened, width } = this.props;\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\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}>\n <ZIndex\n wrapperRef={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\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 <div className={styles.content(this.theme)} data-tid={'PopupContent'} ref={this.refForTransition}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={'PopupContentInner'}\n >\n {children}\n </div>\n </div>\n {this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\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 refPopupElement = (element: Nullable<HTMLElement>) => {\n this.lastPopupElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\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, hasShadow, backgroundColor, borderColor } = this.props;\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n this.props.hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\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 = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\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 (x == null || y == null) {\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 getLocation(popupElement: HTMLElement, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isHTMLElement(anchorElement),\n 'Anchor element is not defined or not instance of HTMLElement',\n );\n\n if (!(anchorElement && isHTMLElement(anchorElement))) {\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 };\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 };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.props.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 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.props.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 '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.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || 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"]}
1
+ {"version":3,"sources":["Popup.tsx"],"names":["React","PropTypes","Transition","raf","warning","LayoutEvents","ZIndex","RenderContainer","isFunction","isNonNullable","isRefableElement","isIE11","isEdge","isSafari","ThemeContext","isHTMLElement","safePropTypesInstanceOf","isTestEnv","CommonWrapper","cx","getRootNode","rootNode","callChildRef","isInstanceWithAnchorElement","PopupPin","PopupHelper","styles","POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","PopupPositions","DefaultPosition","DUMMY_LOCATION","position","coordinates","top","left","Popup","state","location","props","opened","theme","layoutEventsToken","locationUpdateId","lastPopupElement","setRootNode","refForTransition","createRef","anchorElement","updateAnchorElement","instance","childDomNode","getAnchorElement","removeEventListeners","addEventListeners","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","offsetWidth","parseFloat","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","element","handleLayoutEvent","updateLocation","popupElement","getLocation","locationEquals","componentDidMount","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","wasClosed","onOpen","onClose","delayUpdateLocation","componentWillUnmount","remove","render","renderMain","useWrapper","anchor","isValidElement","anchorWithRef","cloneElement","ref","originalRef","canGetAnchorNode","renderContent","addEventListener","removeEventListener","backgroundColor","disableAnimations","maxWidth","hasShadow","ignoreHover","children","renderChildren","getPositionObject","direction","rootStyle","shouldFallbackShadow","Boolean","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","content","contentInner","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","cancel","x","y","Math","abs","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","defaultProps"],"mappings":"kzCAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,wBAA3B;AACA,OAAOC,GAAP,MAAgB,KAAhB;AACA,OAAOC,OAAP,MAAoB,SAApB;;;AAGA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,eAAT,QAAgC,oBAAhC;;AAEA,SAASC,UAAT,EAAqBC,aAArB,EAAoCC,gBAApC,QAA4D,iBAA5D;AACA,SAASC,MAAT,EAAiBC,MAAjB,EAAyBC,QAAzB,QAAyC,kBAAzC;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,aAAT,EAAwBC,uBAAxB,QAAuD,mBAAvD;AACA,SAASC,SAAT,QAA0B,8BAA1B;AACA,SAAsBC,aAAtB,QAA2C,kBAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,WAAT,EAAsBC,QAAtB,QAAoD,oBAApD;AACA,SAASC,YAAT,QAA6B,qCAA7B;AACA,SAASC,2BAAT,QAA4C,qCAA5C;;AAEA,SAASC,QAAT,QAAyB,YAAzB;AACA,SAAiBC,WAAjB,QAA0D,eAA1D;AACA,SAASC,MAAT,QAAuB,gBAAvB;;AAEA,IAAMC,0BAA0B,GAAG,aAAnC;AACA,IAAMC,kBAAkB,GAAG,EAAEC,KAAK,EAAE,CAAT,EAAYC,IAAI,EAAE,GAAlB,EAA3B;;AAEA,OAAO,IAAMC,cAAc,GAAG;AAC5B,UAD4B;AAE5B,YAF4B;AAG5B,WAH4B;AAI5B,WAJ4B;AAK5B,cAL4B;AAM5B,cAN4B;AAO5B,cAP4B;AAQ5B,eAR4B;AAS5B,aAT4B;AAU5B,aAV4B;AAW5B,aAX4B;AAY5B,UAZ4B,CAAvB;;AAcP,OAAO,IAAMC,eAAe,GAAGD,cAAc,CAAC,CAAD,CAAtC;;;;AAIP,IAAME,cAA6B,GAAG;AACpCC,EAAAA,QAAQ,EAAEF,eAD0B;AAEpCG,EAAAA,WAAW,EAAE;AACXC,IAAAA,GAAG,EAAE,CAAC,IADK;AAEXC,IAAAA,IAAI,EAAE,CAAC,IAFI,EAFuB,EAAtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgEA,WAAaC,KAAb,GADCjB,QACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2ESkB,IAAAA,KA3ET,GA2E6B,EAAEC,QAAQ,EAAE,MAAKC,KAAL,CAAWC,MAAX,GAAoBT,cAApB,GAAqC,IAAjD,EA3E7B;AA4EUU,IAAAA,KA5EV;AA6EUC,IAAAA,iBA7EV;AA8EUC,IAAAA,gBA9EV,GA8E+C,IA9E/C;AA+EUC,IAAAA,gBA/EV;AAgFUC,IAAAA,WAhFV;AAiFUC,IAAAA,gBAjFV,gBAiF6BhD,KAAK,CAACiD,SAAN,EAjF7B;;AAmFSC,IAAAA,aAnFT,GAmFgD,IAnFhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0LUC,IAAAA,mBA1LV,GA0LgC,UAACC,QAAD,EAA6C;AACzE,UAAMC,YAAY,GAAG9B,2BAA2B,CAAC6B,QAAD,CAA3B,GAAwCA,QAAQ,CAACE,gBAAT,EAAxC,GAAsElC,WAAW,CAACgC,QAAD,CAAtG;AACA,UAAMF,aAAa,GAAG,MAAKA,aAA3B;;AAEA,UAAIG,YAAY,KAAKH,aAArB,EAAoC;AAClC,cAAKK,oBAAL,CAA0BL,aAA1B;AACA,cAAKA,aAAL,GAAqBG,YAArB;AACA,cAAKG,iBAAL,CAAuBH,YAAvB;AACD;AACF,KAnMH;;;;;;;;;;;;;;;;;;;;;;AAyNUI,IAAAA,gBAzNV,GAyN6B,UAACC,KAAD,EAA2B;AACpD,UAAI,MAAKjB,KAAL,CAAWkB,YAAf,EAA6B;AAC3B,cAAKlB,KAAL,CAAWkB,YAAX,CAAwBD,KAAxB;AACD;AACF,KA7NH;;AA+NUE,IAAAA,gBA/NV,GA+N6B,UAACF,KAAD,EAA2B;AACpD,UAAI,MAAKjB,KAAL,CAAWoB,YAAf,EAA6B;AAC3B,cAAKpB,KAAL,CAAWoB,YAAX,CAAwBH,KAAxB;AACD;AACF,KAnOH;;AAqOUI,IAAAA,WArOV,GAqOwB,UAACJ,KAAD,EAA2B;AAC/C,UAAI,MAAKjB,KAAL,CAAWsB,OAAf,EAAwB;AACtB,cAAKtB,KAAL,CAAWsB,OAAX,CAAmBL,KAAnB;AACD;AACF,KAzOH;;AA2OUM,IAAAA,WA3OV,GA2OwB,UAACN,KAAD,EAA2B;AAC/C,UAAI,MAAKjB,KAAL,CAAWwB,OAAf,EAAwB;AACtB,cAAKxB,KAAL,CAAWwB,OAAX,CAAmBP,KAAnB;AACD;AACF,KA/OH;;AAiPUQ,IAAAA,UAjPV,GAiPuB,UAACR,KAAD,EAA2B;AAC9C,UAAI,MAAKjB,KAAL,CAAW0B,MAAf,EAAuB;AACrB,cAAK1B,KAAL,CAAW0B,MAAX,CAAkBT,KAAlB;AACD;AACF,KArPH;;AAuPUU,IAAAA,cAvPV,GAuP2B,UAACC,KAAD,EAAgC;AACvD,UAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACC,QAAN,CAAe,GAAf,CAAjC,EAAsD;AACpD,eAAO,MAAKpB,aAAL,GAAsB,MAAKA,aAAL,CAAmBqB,WAAnB,GAAiCC,UAAU,CAACH,KAAD,CAA5C,GAAuD,GAA5E,GAAkF,CAAzF;AACD;AACD,aAAOA,KAAP;AACD,KA5PH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2TUI,IAAAA,aA3TV,GA2T0B,YAAM;AAC5B,YAAKC,2BAAL;AACA,YAAKnC,KAAL,CAAWC,QAAX,KAAwB,IAAxB,IAAgC,MAAKmC,QAAL,CAAc,EAAEnC,QAAQ,EAAE,IAAZ,EAAd,CAAhC;AACD,KA9TH;;;;;;AAoUUoC,IAAAA,eApUV,GAoU4B,UAACC,OAAD,EAAoC;AAC5D,YAAK/B,gBAAL,GAAwB+B,OAAxB;AACD,KAtUH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmWUC,IAAAA,iBAnWV,GAmW8B,YAAM;AAChC,UAAI,CAAC,MAAKvC,KAAL,CAAWC,QAAhB,EAA0B;AACxB;AACD;AACD,YAAKuC,cAAL;AACD,KAxWH;;;;;;;;;;;;;;AAsXUA,IAAAA,cAtXV,GAsX2B,YAAM;AAC7B,UAAMC,YAAY,GAAG,MAAKlC,gBAA1B;;AAEA,UAAI,CAACkC,YAAL,EAAmB;AACjB;AACD;;AAED,UAAMxC,QAAQ,GAAG,MAAKyC,WAAL,CAAiBD,YAAjB,EAA+B,MAAKzC,KAAL,CAAWC,QAA1C,CAAjB;AACA,UAAI,CAAC,MAAK0C,cAAL,CAAoB,MAAK3C,KAAL,CAAWC,QAA/B,EAAyCA,QAAzC,CAAL,EAAyD;AACvD,cAAKmC,QAAL,CAAc,EAAEnC,QAAQ,EAARA,QAAF,EAAd;AACD;AACF,KAjYH,mDAqFS2C,iBArFT,GAqFE,6BAA2B,CACzB,KAAKJ,cAAL,GACA,KAAKnC,iBAAL,GAAyBvC,YAAY,CAAC+E,WAAb,CAAyB,KAAKN,iBAA9B,CAAzB,CACD,CAxFH,OA0FgBO,wBA1FhB,GA0FE,kCAAuC5C,KAAvC,EAAoEF,KAApE,EAAuF,CACrF;AACJ;AACA,OACI,IAAIE,KAAK,CAACC,MAAV,EAAkB,CAChB,IAAI,CAACH,KAAK,CAACC,QAAX,EAAqB,CACnB,OAAO,EAAEA,QAAQ,EAAEP,cAAZ,EAAP,CACD,CACF,CAJD,MAIO,IAAIM,KAAK,CAACC,QAAV,EAAoB,CACzB,OAAO,EAAEA,QAAQ,EAAEP,cAAZ,EAAP,CACD,CACD,OAAOM,KAAP,CACD,CAtGH,QAwGS+C,kBAxGT,GAwGE,4BAA0BC,SAA1B,EAAiDC,SAAjD,EAAwE,CACtE,IAAMC,aAAa,GAAGD,SAAS,CAAChD,QAAV,KAAuBP,cAA7C,CACA,IAAMyD,WAAW,GAAG,KAAKnD,KAAL,CAAWC,QAAX,KAAwBP,cAA5C,CACA,IAAM0D,SAAS,GAAGJ,SAAS,CAAC7C,MAAV,IAAoB,CAAC,KAAKD,KAAL,CAAWC,MAAlD,CAEA,IAAI,KAAKD,KAAL,CAAWC,MAAX,IAAqB+C,aAArB,IAAsCC,WAAtC,IAAqD,KAAKjD,KAAL,CAAWmD,MAApE,EAA4E,CAC1E,KAAKnD,KAAL,CAAWmD,MAAX,GACD,CACD,IAAID,SAAS,IAAI,CAACD,WAAd,IAA6B,KAAKjD,KAAL,CAAWoD,OAA5C,EAAqD,CACnD,KAAKpD,KAAL,CAAWoD,OAAX,GACD,CACD,IAAI,KAAKpD,KAAL,CAAWC,MAAf,EAAuB,CACrB,KAAKoD,mBAAL,GACD,CACF,CAtHH,QAwHSC,oBAxHT,GAwHE,gCAA8B,CAC5B,KAAKrB,2BAAL,GACA,KAAKnB,oBAAL,CAA0B,KAAKL,aAA/B,EACA,IAAI,KAAKN,iBAAT,EAA4B,CAC1B,KAAKA,iBAAL,CAAuBoD,MAAvB,GACA,KAAKpD,iBAAL,GAAyB,IAAzB,CACD,CACD,IAAI,KAAKL,KAAL,CAAWC,QAAX,IAAuB,KAAKC,KAAL,CAAWoD,OAAtC,EAA+C,CAC7C,KAAKpD,KAAL,CAAWoD,OAAX,GACD,CACF,CAlIH,QAoISI,MApIT,GAoIE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACtD,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACuD,UAAL,EAAP,CACD,CAJH,CADF,CAQD,CA7IH,QA+IUA,UA/IV,GA+IE,sBAAqB,uBACX1D,QADW,GACE,KAAKD,KADP,CACXC,QADW,mBAEmB,KAAKC,KAFxB,CAEXS,aAFW,eAEXA,aAFW,CAEIiD,UAFJ,eAEIA,UAFJ,CAInB,IAAIC,MAAiC,GAAG,IAAxC,CACA,IAAIrF,aAAa,CAACmC,aAAD,CAAjB,EAAkC,CAChC,KAAKC,mBAAL,CAAyBD,aAAzB,EACD,CAFD,MAEO,kBAAIlD,KAAK,CAACqG,cAAN,CAAqBnD,aAArB,CAAJ,EAAyC,CAC9CkD,MAAM,GAAGD,UAAU,gBAAG,kCAAOjD,aAAP,CAAH,GAAkCA,aAArD,CACD,CAFM,MAEA,CACLkD,MAAM,gBAAG,kCAAOlD,aAAP,CAAT,CACD,CAED,IAAMoD,aAAa,GACjBF,MAAM,iBAAIpG,KAAK,CAACqG,cAAN,CAAqBD,MAArB,CAAV,IAA0C1F,gBAAgB,CAAC0F,MAAD,CAA1D,gBACIpG,KAAK,CAACuG,YAAN,CAAmBH,MAAnB,EAA2B,EACzBI,GAAG,EAAE,aAACpD,QAAD,EAA6C,aAChD,MAAI,CAACD,mBAAL,CAAyBC,QAAzB,EACA,IAAMqD,WAAW,cAAIL,MAAJ,qBAAG,QAAsCI,GAA1D,CACAC,WAAW,IAAInF,YAAY,CAACmF,WAAD,EAAcrD,QAAd,CAA3B,CACD,CALwB,EAA3B,CADJ,GAQI,IATN,CAbmB,CAwBnB;AACA;AACA;AACA;AACA;AAEA,QAAMsD,gBAAgB,GAAG,CAAC,CAACJ,aAAF,IAAmBvF,aAAa,CAACmC,aAAD,CAAzD,CAEA,oBACE,oBAAC,eAAD,IACE,MAAM,EAAEoD,aAAa,IAAIF,MAD3B,EAEE,YAAY,EAAE,KAAKrD,WAFrB,EAGE,GAAG,EAAE2D,gBAAgB,GAAG,IAAH,GAAU,KAAKvD,mBAHtC,IAKGX,QAAQ,IAAI,KAAKmE,aAAL,CAAmBnE,QAAnB,CALf,CADF,CASD,CAxLH,QAqMUgB,iBArMV,GAqME,2BAA0BqB,OAA1B,EAA0D,CACxD,IAAIA,OAAO,IAAI9D,aAAa,CAAC8D,OAAD,CAA5B,EAAuC,CACrCA,OAAO,CAAC+B,gBAAR,CAAyB,YAAzB,EAAuC,KAAKnD,gBAA5C,EACAoB,OAAO,CAAC+B,gBAAR,CAAyB,YAAzB,EAAuC,KAAKhD,gBAA5C,EACAiB,OAAO,CAAC+B,gBAAR,CAAyB,OAAzB,EAAkC,KAAK9C,WAAvC,EACAe,OAAO,CAAC+B,gBAAR,CAAyB,SAAzB,EAAoC,KAAK5C,WAAzC,EACAa,OAAO,CAAC+B,gBAAR,CAAyB,UAAzB,EAAqC,KAAK1C,UAA1C,EACD,CACF,CA7MH,QA+MUX,oBA/MV,GA+ME,8BAA6BsB,OAA7B,EAA6D,CAC3D,IAAIA,OAAO,IAAI9D,aAAa,CAAC8D,OAAD,CAA5B,EAAuC,CACrCA,OAAO,CAACgC,mBAAR,CAA4B,YAA5B,EAA0C,KAAKpD,gBAA/C,EACAoB,OAAO,CAACgC,mBAAR,CAA4B,YAA5B,EAA0C,KAAKjD,gBAA/C,EACAiB,OAAO,CAACgC,mBAAR,CAA4B,OAA5B,EAAqC,KAAK/C,WAA1C,EACAe,OAAO,CAACgC,mBAAR,CAA4B,SAA5B,EAAuC,KAAK7C,WAA5C,EACAa,OAAO,CAACgC,mBAAR,CAA4B,UAA5B,EAAwC,KAAK3C,UAA7C,EACD,CACF,CAvNH,QA8PUyC,aA9PV,GA8PE,uBAAsBnE,QAAtB,EAA+C,sCACmD,KAAKC,KADxD,CACrCqE,eADqC,gBACrCA,eADqC,CACpBC,iBADoB,gBACpBA,iBADoB,CACDC,QADC,gBACDA,QADC,CACSC,SADT,gBACSA,SADT,CACoBC,WADpB,gBACoBA,WADpB,CACiCxE,MADjC,gBACiCA,MADjC,CACyC2B,KADzC,gBACyCA,KADzC,CAE7C,IAAM8C,QAAQ,GAAG,KAAKC,cAAL,EAAjB,CAF6C,4BAIvB3F,WAAW,CAAC4F,iBAAZ,CAA8B7E,QAAQ,CAACN,QAAvC,CAJuB,CAIrCoF,SAJqC,yBAIrCA,SAJqC,CAK7C,IAAMC,SAA8B,gBAAQ/E,QAAQ,CAACL,WAAjB,IAA8B6E,QAAQ,EAARA,QAA9B,GAApC,CAEA,IAAMQ,oBAAoB,GAAG7G,MAAM,IAAIC,MAAV,IAAoBC,QAAjD,CAEA,oBACE,oBAAC,UAAD,IACE,OAAO,EAAEe,kBADX,EAEE,MAAM,EAAE,CAACmF,iBAFX,EAGE,MAAIU,OAAO,CAAC/E,MAAM,IAAIyE,QAAX,CAHb,EAIE,YAAY,MAJd,EAKE,aAAa,MALf,EAME,KAAK,EAAE,CAACJ,iBANV,EAOE,IAAI,EAAE,CAACA,iBAPT,EAQE,QAAQ,EAAE,KAAKtC,aARjB,EASE,OAAO,EAAE,KAAKzB,gBAThB,IAWG,UAACT,KAAD,2CACC,oBAAC,aAAD,EAAmB,MAAI,CAACE,KAAxB,eACE,oBAAC,MAAD,IACE,UAAU,EAAE,MAAI,CAACmC,eADnB,EAEE,QAAQ,EAAE,OAFZ,EAGE,SAAS,EAAEzD,EAAE,qCACVO,MAAM,CAACgG,KAAP,CAAa,MAAI,CAAC/E,KAAlB,CADU,IACiB,IADjB,YAEVjB,MAAM,CAACiG,MAAP,CAAc,MAAI,CAAChF,KAAnB,CAFU,IAEkBsE,SAAS,IAAI,CAACO,oBAFhC,YAGV9F,MAAM,CAACkG,cAAP,CAAsB,MAAI,CAACjF,KAA3B,CAHU,IAG0BsE,SAAS,IAAIO,oBAHvC,YAIV9F,MAAM,CAACmG,gBAAP,EAJU,IAIkBX,WAJlB,cAKPH,iBAAiB,GACjB,EADiB,oBAGdrF,MAAM,uBAAqB4F,SAArB,CAAN,CAA+D,MAAI,CAAC3E,KAApE,CAHc,IAG+D,IAH/D,OAIdjB,MAAM,CAACoG,eAAP,EAJc,IAIavF,KAAK,KAAK,UAJvB,OAKdb,MAAM,CAACqG,qBAAP,EALc,IAKmBxF,KAAK,KAAK,SAL7B,OAMdb,MAAM,CAACsG,cAAP,EANc,IAMYzF,KAAK,KAAK,SANtB,OALV,EAHf,EAiBE,KAAK,EAAEgF,SAjBT,EAkBE,YAAY,EAAE,MAAI,CAAC9D,gBAlBrB,EAmBE,YAAY,EAAE,MAAI,CAACG,gBAnBrB,iBAqBE,6BAAK,SAAS,EAAElC,MAAM,CAACuG,OAAP,CAAe,MAAI,CAACtF,KAApB,CAAhB,EAA4C,YAAU,cAAtD,EAAsE,GAAG,EAAE,MAAI,CAACK,gBAAhF,iBACE,6BACE,SAAS,EAAEtB,MAAM,CAACwG,YAAP,CAAoB,MAAI,CAACvF,KAAzB,CADb,EAEE,KAAK,EAAE,EAAEmE,eAAe,EAAfA,eAAF,EAAmBzC,KAAK,EAAE,MAAI,CAACD,cAAL,CAAoBC,KAApB,CAA1B,EAFT,EAGE,YAAU,mBAHZ,IAKG8C,QALH,CADF,CArBF,EA8BG,MAAI,CAACgB,SAAL,CAAe3F,QAAQ,CAACN,QAAxB,CA9BH,CADF,CADD,EAXH,CADF,CAkDD,CAzTH,QAgUUkF,cAhUV,GAgUE,0BAAyB,CACvB,OAAO5G,UAAU,CAAC,KAAKiC,KAAL,CAAW0E,QAAZ,CAAV,GAAkC,KAAK1E,KAAL,CAAW0E,QAAX,EAAlC,GAA0D,KAAK1E,KAAL,CAAW0E,QAA5E,CACD,CAlUH,QAwUUgB,SAxUV,GAwUE,mBAAkBC,YAAlB,EAAyD,CACvD;AACJ;AACA;AACA;AACA,OACI,IAAMC,oBAAoB,GAAG,KAAK1F,KAAL,CAAW2F,gBAAX,KAAgC3G,0BAA7D,CACA,IAAM4G,SAAS,GAAG5H,MAAM,IAAI0H,oBAAV,GAAiC,qBAAjC,GAAyD,KAAK1F,KAAL,CAAW2F,gBAAtF,CAPuD,mBASM,KAAK7F,KATX,CAS/C+F,OAT+C,gBAS/CA,OAT+C,CAStCvB,SATsC,gBAStCA,SATsC,CAS3BH,eAT2B,gBAS3BA,eAT2B,CASV2B,WATU,gBASVA,WATU,CAUvD,IAAMvG,QAAQ,GAAGT,WAAW,CAAC4F,iBAAZ,CAA8Be,YAA9B,CAAjB,CAEA,OACE,KAAK3F,KAAL,CAAWiG,MAAX,iBACE,oBAAC,QAAD,IACE,YAAY,EAAE,KAAK5F,gBADrB,EAEE,aAAa,EAAEsF,YAFjB,EAGE,IAAI,EAAEI,OAAO,IAAIG,QAAQ,CAAC,KAAKhG,KAAL,CAAWiG,YAAZ,CAH3B,EAIE,MAAM,EAAE,KAAKC,YAAL,CAAkB3G,QAAQ,CAAC4G,KAA3B,CAJV,EAKE,WAAW,EAAE7B,SAAS,GAAG,CAAH,GAAO,CAL/B,EAME,eAAe,EAAEH,eAAe,IAAI,KAAKnE,KAAL,CAAWoG,eANjD,EAOE,WAAW,EAAEN,WAAW,IAAIF,SAP9B,GAFJ,CAaD,CAjWH,QA0WUzC,mBA1WV,GA0WE,+BAA8B,CAC5B,KAAKpB,2BAAL,GACA,KAAK7B,gBAAL,GAAwB1C,GAAG,CAAC,KAAK4E,cAAN,CAA3B,CACD,CA7WH,QA+WUL,2BA/WV,GA+WE,uCAAsC,CACpC,IAAI,KAAK7B,gBAAT,EAA2B,CACzB1C,GAAG,CAAC6I,MAAJ,CAAW,KAAKnG,gBAAhB,EACA,KAAKA,gBAAL,GAAwB,IAAxB,CACD,CACF,CApXH,QAmYUqC,cAnYV,GAmYE,wBAAuB+D,CAAvB,EAAmDC,CAAnD,EAA+E,CAC7E,IAAID,CAAC,KAAKC,CAAV,EAAa,CACX,OAAO,IAAP,CACD,CAED,IAAID,CAAC,IAAI,IAAL,IAAaC,CAAC,IAAI,IAAtB,EAA4B,CAC1B,OAAO,KAAP,CACD,CAED,IAAI,CAACvI,MAAD,IAAW,CAACC,MAAhB,EAAwB;AACtB;AACEqI,QAAAA,CAAC,CAAC9G,WAAF,CAAcE,IAAd,KAAuB6G,CAAC,CAAC/G,WAAF,CAAcE,IAArC;AACA4G,QAAAA,CAAC,CAAC9G,WAAF,CAAcC,GAAd,KAAsB8G,CAAC,CAAC/G,WAAF,CAAcC,GADpC;AAEA6G,QAAAA,CAAC,CAAC/G,QAAF,KAAegH,CAAC,CAAChH,QAHnB;;AAKD;;AAED;AACA;;AAEA;AACE+G,MAAAA,CAAC,CAAC/G,QAAF,KAAegH,CAAC,CAAChH,QAAjB;AACAiH,MAAAA,IAAI,CAACC,GAAL,CAASH,CAAC,CAAC9G,WAAF,CAAcC,GAAd,GAAoB8G,CAAC,CAAC/G,WAAF,CAAcC,GAA3C,KAAmD,CADnD;AAEA+G,MAAAA,IAAI,CAACC,GAAL,CAASH,CAAC,CAAC9G,WAAF,CAAcE,IAAd,GAAqB6G,CAAC,CAAC/G,WAAF,CAAcE,IAA5C,KAAqD,CAHvD;;AAKD,GA5ZH;;AA8ZU4C,EAAAA,WA9ZV,GA8ZE,qBAAoBD,YAApB,EAA+CxC,QAA/C,EAAmF;AACzB,SAAKC,KADoB,CACzE4G,SADyE,gBACzEA,SADyE,CAC9DC,gCAD8D,gBAC9DA,gCAD8D;AAEjF,QAAMpG,aAAa,GAAG,KAAKA,aAA3B;;AAEA9C,IAAAA,OAAO;AACL8C,IAAAA,aAAa,IAAInC,aAAa,CAACmC,aAAD,CADzB;AAEL,kEAFK,CAAP;;;AAKA,QAAI,EAAEA,aAAa,IAAInC,aAAa,CAACmC,aAAD,CAAhC,CAAJ,EAAsD;AACpD,aAAOV,QAAP;AACD;;AAED,QAAM+G,UAAU,GAAG9H,WAAW,CAAC+H,sBAAZ,CAAmCtG,aAAnC,CAAnB;AACA,QAAMuG,SAAS,GAAGhI,WAAW,CAAC+H,sBAAZ,CAAmCxE,YAAnC,CAAlB;;AAEA,QAAI9C,QAAJ;AACA,QAAIC,WAAJ;;AAEA,QAAIK,QAAQ,IAAIA,QAAQ,KAAKP,cAAzB,IAA2CO,QAAQ,CAACN,QAAxD,EAAkE;AAChEA,MAAAA,QAAQ,GAAGM,QAAQ,CAACN,QAApB;AACAC,MAAAA,WAAW,GAAG,KAAKuH,cAAL,CAAoBH,UAApB,EAAgCE,SAAhC,EAA2CvH,QAA3C,CAAd;;AAEA,UAAMyH,cAAc,GAAGlI,WAAW,CAACkI,cAAZ,CAA2BxH,WAA3B,EAAwCsH,SAAxC,CAAvB;AACA,UAAMG,gBAAgB,GAAG,CAACD,cAAD,IAAmBlI,WAAW,CAACoI,qBAAZ,CAAkC3H,QAAlC,EAA4CC,WAA5C,CAA5C;;AAEA;AACE;AACA;AACCmH,MAAAA,gCAAgC,KAAKK,cAAc,IAAIC,gBAAvB,CAAjC;AACA;AACA;AACCD,MAAAA,cAAc,IAAIzH,QAAQ,KAAKmH,SAAS,CAAC,CAAD,CAN3C;AAOE;AACA;AACA,eAAO,EAAElH,WAAW,EAAXA,WAAF,EAAeD,QAAQ,EAARA,QAAf,EAAP;AACD;AACF;;AAED,yDAAiBmH,SAAjB,wCAA4B,CAAvBnH,QAAuB;AAC1BC,MAAAA,WAAW,GAAG,KAAKuH,cAAL,CAAoBH,UAApB,EAAgCE,SAAhC,EAA2CvH,QAA3C,CAAd;AACA,UAAIT,WAAW,CAACkI,cAAZ,CAA2BxH,WAA3B,EAAwCsH,SAAxC,CAAJ,EAAwD;AACtD,eAAO,EAAEtH,WAAW,EAAXA,WAAF,EAAeD,QAAQ,EAARA,QAAf,EAAP;AACD;AACF;;AAEDA,IAAAA,QAAQ,GAAGmH,SAAS,CAAC,CAAD,CAApB;AACAlH,IAAAA,WAAW,GAAG,KAAKuH,cAAL,CAAoBH,UAApB,EAAgCE,SAAhC,EAA2CvH,QAA3C,CAAd;AACA,WAAO,EAAEC,WAAW,EAAXA,WAAF,EAAeD,QAAQ,EAARA,QAAf,EAAP;AACD,GA/cH;;AAidU4H,EAAAA,oBAjdV,GAidE,8BAA6BP,UAA7B,EAA+CrH,QAA/C,EAAyE;AACvE,QAAI,CAAC,KAAKO,KAAL,CAAWiG,MAAZ,IAAsB,gBAAgBqB,IAAhB,CAAqB7H,QAAQ,CAAC4G,KAA9B,CAA1B,EAAgE;AAC9D,aAAO,CAAP;AACD;;AAED,QAAMkB,UAAU,GAAG,aAAaD,IAAb,CAAkB7H,QAAQ,CAACoF,SAA3B,IAAwCiC,UAAU,CAAClF,KAAnD,GAA2DkF,UAAU,CAACU,MAAzF,CALuE;;AAO/DzB,IAAAA,OAP+D,GAOnD,KAAK/F,KAP8C,CAO/D+F,OAP+D;;AASvE,WAAOW,IAAI,CAACe,GAAL;AACL,KADK;AAEL,SAAKrB,YAAL,CAAkB3G,QAAQ,CAAC4G,KAA3B,KAAqCN,OAAO,IAAIG,QAAQ,CAAC,KAAKhG,KAAL,CAAWiG,YAAZ,CAAxD,IAAqFoB,UAAU,GAAG,CAF7F,CAAP;;AAID,GA9dH;;AAgeUN,EAAAA,cAheV,GAgeE,wBAAuBH,UAAvB,EAAyCE,SAAzC,EAA0DrB,YAA1D,EAAgF;AAC9D+B,IAAAA,eAD8D,GAC1C,KAAK1H,KADqC,CACtE2H,MADsE;AAE9E,QAAMA,MAAM;AACV3J,IAAAA,aAAa,CAAC0J,eAAD,CAAb,IAAkC,CAACE,KAAK,CAACF,eAAD,CAAxC;AACIA,IAAAA,eADJ;AAEIxB,IAAAA,QAAQ,CAAC,KAAKhG,KAAL,CAAW2H,WAAZ,CAAR,IAAoC,CAH1C;AAIA,QAAMpI,QAAQ,GAAGT,WAAW,CAAC4F,iBAAZ,CAA8Be,YAA9B,CAAjB;AACA,QAAMmC,WAAW,GAAG,KAAK9H,KAAL,CAAW8H,WAAX,GAAyB,KAAKT,oBAAL,CAA0BP,UAA1B,EAAsCrH,QAAtC,CAA7C;;AAEA,YAAQA,QAAQ,CAACoF,SAAjB;AACE,WAAK,KAAL;AACE,eAAO;AACLlF,UAAAA,GAAG,EAAEmH,UAAU,CAACnH,GAAX,GAAiBqH,SAAS,CAACQ,MAA3B,GAAoCG,MADpC;AAEL/H,UAAAA,IAAI,EAAE,KAAKmI,qBAAL,CAA2BjB,UAA3B,EAAuCE,SAAvC,EAAkDvH,QAAQ,CAAC4G,KAA3D,EAAkEyB,WAAlE,CAFD,EAAP;;AAIF,WAAK,QAAL;AACE,eAAO;AACLnI,UAAAA,GAAG,EAAEmH,UAAU,CAACnH,GAAX,GAAiBmH,UAAU,CAACU,MAA5B,GAAqCG,MADrC;AAEL/H,UAAAA,IAAI,EAAE,KAAKmI,qBAAL,CAA2BjB,UAA3B,EAAuCE,SAAvC,EAAkDvH,QAAQ,CAAC4G,KAA3D,EAAkEyB,WAAlE,CAFD,EAAP;;AAIF,WAAK,MAAL;AACE,eAAO;AACLnI,UAAAA,GAAG,EAAE,KAAKqI,mBAAL,CAAyBlB,UAAzB,EAAqCE,SAArC,EAAgDvH,QAAQ,CAAC4G,KAAzD,EAAgEyB,WAAhE,CADA;AAELlI,UAAAA,IAAI,EAAEkH,UAAU,CAAClH,IAAX,GAAkBoH,SAAS,CAACpF,KAA5B,GAAoC+F,MAFrC,EAAP;;AAIF,WAAK,OAAL;AACE,eAAO;AACLhI,UAAAA,GAAG,EAAE,KAAKqI,mBAAL,CAAyBlB,UAAzB,EAAqCE,SAArC,EAAgDvH,QAAQ,CAAC4G,KAAzD,EAAgEyB,WAAhE,CADA;AAELlI,UAAAA,IAAI,EAAEkH,UAAU,CAAClH,IAAX,GAAkBkH,UAAU,CAAClF,KAA7B,GAAqC+F,MAFtC,EAAP;;AAIF;AACE,cAAM,IAAIM,KAAJ,4BAAmCxI,QAAQ,CAACoF,SAA5C,OAAN,CAtBJ;;AAwBD,GAjgBH;;AAmgBUuB,EAAAA,YAngBV,GAmgBE,sBAAqBC,KAArB,EAAoC;AAC1B6B,IAAAA,SAD0B,GACZ,KAAKlI,KADO,CAC1BkI,SAD0B;;AAGlC,YAAQ7B,KAAR;AACE,WAAK,KAAL;AACA,WAAK,QAAL;AACE,eAAO6B,SAAS,IAAIhC,QAAQ,CAAC,KAAKhG,KAAL,CAAWiI,cAAZ,CAArB,IAAoDjC,QAAQ,CAAC,KAAKhG,KAAL,CAAWkI,eAAZ,CAAnE;AACF,WAAK,MAAL;AACA,WAAK,OAAL;AACE,eAAOF,SAAS,IAAIhC,QAAQ,CAAC,KAAKhG,KAAL,CAAWiI,cAAZ,CAArB,IAAoDjC,QAAQ,CAAC,KAAKhG,KAAL,CAAWmI,eAAZ,CAAnE;AACF,WAAK,QAAL;AACA,WAAK,QAAL;AACE,eAAO,CAAP;AACF;AACE,cAAM,IAAIJ,KAAJ,wBAA+B5B,KAA/B,OAAN,CAXJ;;AAaD,GAnhBH;;AAqhBU0B,EAAAA,qBArhBV,GAqhBE,+BAA8BjB,UAA9B,EAAgDE,SAAhD,EAAiEX,KAAjE,EAAgFyB,WAAhF,EAAqG;AACnG,YAAQzB,KAAR;AACE,WAAK,MAAL;AACE,eAAOS,UAAU,CAAClH,IAAX,GAAkBkI,WAAzB;AACF,WAAK,QAAL;AACE,eAAOhB,UAAU,CAAClH,IAAX,GAAkB,CAACoH,SAAS,CAACpF,KAAV,GAAkBkF,UAAU,CAAClF,KAA9B,IAAuC,CAAhE;AACF,WAAK,OAAL;AACE,eAAOkF,UAAU,CAAClH,IAAX,IAAmBoH,SAAS,CAACpF,KAAV,GAAkBkF,UAAU,CAAClF,KAAhD,IAAyDkG,WAAhE;AACF;AACE,cAAM,IAAIG,KAAJ,wBAA+B5B,KAA/B,OAAN,CARJ;;AAUD,GAhiBH;;AAkiBU2B,EAAAA,mBAliBV,GAkiBE,6BAA4BlB,UAA5B,EAA8CE,SAA9C,EAA+DX,KAA/D,EAA8EyB,WAA9E,EAAmG;AACjG,YAAQzB,KAAR;AACE,WAAK,KAAL;AACE,eAAOS,UAAU,CAACnH,GAAX,GAAiBmI,WAAxB;AACF,WAAK,QAAL;AACE,eAAOhB,UAAU,CAACnH,GAAX,GAAiB,CAACqH,SAAS,CAACQ,MAAV,GAAmBV,UAAU,CAACU,MAA/B,IAAyC,CAAjE;AACF,WAAK,QAAL;AACE,eAAOV,UAAU,CAACnH,GAAX,IAAkBqH,SAAS,CAACQ,MAAV,GAAmBV,UAAU,CAACU,MAAhD,IAA0DM,WAAjE;AACF;AACE,cAAM,IAAIG,KAAJ,wBAA+B5B,KAA/B,OAAN,CARJ;;AAUD,GA7iBH,gBAA2B9I,KAAK,CAAC+K,SAAjC,WACgBC,mBADhB,GACsC,OADtC,UAGgBC,SAHhB,GAG4B,EACxB;AACJ;AACA,KACI/H,aAAa,EAAEjD,SAAS,CAACiL,SAAV,CAAoB,CAAClK,uBAAuB,CAAC,oBAAMmK,WAAN,EAAD,CAAxB,EAA6ClL,SAAS,CAACmL,IAAvD,CAApB,EAAkFC,UAJzE,EAMxB;AACJ;AACA,KACIvE,eAAe,EAAE7G,SAAS,CAACqL,MATH,EAWxBnE,QAAQ,EAAElH,SAAS,CAACiL,SAAV,CAAoB,CAACjL,SAAS,CAACmL,IAAX,EAAiBnL,SAAS,CAACsL,IAA3B,CAApB,CAXc,EAaxB;AACJ;AACA,KACI7C,MAAM,EAAEzI,SAAS,CAACuL,IAhBM,EAkBxB;AACJ;AACA,KACIvE,SAAS,EAAEhH,SAAS,CAACuL,IArBG,EAuBxB;AACJ;AACA,KACIpB,MAAM,EAAEnK,SAAS,CAACwL,MA1BM,EA4BxB;AACJ;AACA,KACI/I,MAAM,EAAEzC,SAAS,CAACuL,IA/BM,EAiCxB;AACJ;AACA,KACIb,SAAS,EAAE1K,SAAS,CAACwL,MApCG,EAsCxB;AACJ;AACA;AACA;AACA,KACIjD,OAAO,EAAEvI,SAAS,CAACwL,MA3CK,EA6CxB;AACJ;AACA,KACIlB,WAAW,EAAEtK,SAAS,CAACwL,MAhDC,EAkDxB;AACJ;AACA;AACA,KACIpC,SAAS,EAAEpJ,SAAS,CAACyL,KAtDG,EAwDxB;AACJ;AACA,KACIxE,WAAW,EAAEjH,SAAS,CAACuL,IA3DC,EAH5B,UAiEgBG,YAjEhB,GAiE+B,EAC3BpB,WAAW,EAAE,CADc,EAE3B7B,MAAM,EAAE,KAFmB,EAG3BzB,SAAS,EAAE,KAHgB,EAI3BF,iBAAiB,EAAE9F,SAJQ,EAK3BkF,UAAU,EAAE,KALe,EAM3Be,WAAW,EAAE,KANc,EAO3B7C,KAAK,EAAE,MAPoB,EAjE/B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable, isRefableElement } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isHTMLElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { callChildRef } from '../../lib/callChildRef/callChildRef';\nimport { isInstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nexport const PopupPositions = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n] as const;\nexport const DefaultPosition = PopupPositions[0];\n\nexport type PopupPositionsType = typeof PopupPositions[number];\n\nconst DUMMY_LOCATION: PopupLocation = {\n position: DefaultPosition,\n coordinates: {\n top: -9999,\n left: -9999,\n },\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 extends CommonProps, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\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 positions: Readonly<PopupPositionsType[]>;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n ignoreHover: boolean;\n width: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPositionsType;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\n@rootNode\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => 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 * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<HTMLElement>;\n private setRootNode!: TSetRootNode;\n private refForTransition = React.createRef<HTMLDivElement>();\n\n public anchorElement: Nullable<HTMLElement> = null;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\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.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 this.removeEventListeners(this.anchorElement);\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 <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { location } = this.state;\n const { anchorElement, useWrapper } = this.props;\n\n let anchor: Nullable<React.ReactNode> = null;\n if (isHTMLElement(anchorElement)) {\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: (instance: Nullable<React.ReactInstance>) => {\n this.updateAnchorElement(instance);\n const originalRef = (anchor as React.RefAttributes<any>)?.ref;\n originalRef && callChildRef(originalRef, instance);\n },\n })\n : null;\n\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 || isHTMLElement(anchorElement);\n\n return (\n <RenderContainer\n anchor={anchorWithRef || anchor}\n containerRef={this.setRootNode}\n ref={canGetAnchorNode ? null : this.updateAnchorElement}\n >\n {location && this.renderContent(location)}\n </RenderContainer>\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 addEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.addEventListener('mouseenter', this.handleMouseEnter);\n element.addEventListener('mouseleave', this.handleMouseLeave);\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\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 return this.anchorElement ? (this.anchorElement.offsetWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private renderContent(location: PopupLocation) {\n const { backgroundColor, disableAnimations, maxWidth, hasShadow, ignoreHover, opened, width } = this.props;\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\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}>\n <ZIndex\n wrapperRef={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\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 <div className={styles.content(this.theme)} data-tid={'PopupContent'} ref={this.refForTransition}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={'PopupContentInner'}\n >\n {children}\n </div>\n </div>\n {this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\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 refPopupElement = (element: Nullable<HTMLElement>) => {\n this.lastPopupElement = element;\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\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, hasShadow, backgroundColor, borderColor } = this.props;\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n this.props.hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\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 = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\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 (x == null || y == null) {\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 getLocation(popupElement: HTMLElement, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isHTMLElement(anchorElement),\n 'Anchor element is not defined or not instance of HTMLElement',\n );\n\n if (!(anchorElement && isHTMLElement(anchorElement))) {\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 };\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 };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.props.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 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.props.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 '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.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || 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"]}
@@ -1,162 +1,161 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Nullable } from '../../typings/utility-types';
4
- import { FocusEventType, MouseEventType } from '../../typings/event-types';
5
- import { CommonProps } from '../CommonWrapper';
6
- export declare const PopupPositions: readonly ["top left", "top center", "top right", "right top", "right middle", "right bottom", "bottom right", "bottom center", "bottom left", "left bottom", "left middle", "left top"];
7
- export declare const DefaultPosition: "top left";
8
- export declare type PopupPositionsType = typeof PopupPositions[number];
9
- export interface PopupHandlerProps {
10
- onMouseEnter?: (event: MouseEventType) => void;
11
- onMouseLeave?: (event: MouseEventType) => void;
12
- onClick?: (event: MouseEventType) => void;
13
- onFocus?: (event: FocusEventType) => void;
14
- onBlur?: (event: FocusEventType) => void;
15
- onOpen?: () => void;
16
- onClose?: () => void;
17
- }
18
- export interface PopupProps extends CommonProps, PopupHandlerProps {
19
- anchorElement: React.ReactNode | HTMLElement;
20
- backgroundColor?: React.CSSProperties['backgroundColor'];
21
- borderColor?: React.CSSProperties['borderColor'];
22
- children: React.ReactNode | (() => React.ReactNode);
23
- hasPin: boolean;
24
- hasShadow: boolean;
25
- disableAnimations: boolean;
26
- margin?: number;
27
- maxWidth?: number | string;
28
- opened: boolean;
29
- pinOffset?: number;
30
- pinSize?: number;
31
- popupOffset: number;
32
- positions: Readonly<PopupPositionsType[]>;
33
- /**
34
- * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.
35
- *
36
- * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.
37
- */
38
- useWrapper: boolean;
39
- ignoreHover: boolean;
40
- width: React.CSSProperties['width'];
41
- /**
42
- * При очередном рендере пытаться сохранить первоначальную позицию попапа
43
- * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).
44
- *
45
- * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.
46
- * @see https://github.com/skbkontur/retail-ui/pull/1195
47
- */
48
- tryPreserveFirstRenderedPosition?: boolean;
49
- }
50
- interface PopupLocation {
51
- coordinates: {
52
- left: number;
53
- top: number;
54
- };
55
- position: PopupPositionsType;
56
- }
57
- export interface PopupState {
58
- location: Nullable<PopupLocation>;
59
- }
60
- export declare class Popup extends React.Component<PopupProps, PopupState> {
61
- static __KONTUR_REACT_UI__: string;
62
- static propTypes: {
63
- /**
64
- * Ссылка (ref) на элемент или React компонент, для которого рисуется попап
65
- */
66
- anchorElement: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
67
- /**
68
- * Фон попапа и пина
69
- */
70
- backgroundColor: PropTypes.Requireable<string>;
71
- children: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
72
- /**
73
- * Показывать ли пин
74
- */
75
- hasPin: PropTypes.Requireable<boolean>;
76
- /**
77
- * Применять ли box-shadow на попапе. При false отключает границу на пине
78
- */
79
- hasShadow: PropTypes.Requireable<boolean>;
80
- /**
81
- * Отступ попапа от элемента
82
- */
83
- margin: PropTypes.Requireable<number>;
84
- /**
85
- * Показан или скрыт попап
86
- */
87
- opened: PropTypes.Requireable<boolean>;
88
- /**
89
- * Смещение пина от края попапа. Край задаётся в пропе position вторым словом
90
- */
91
- pinOffset: PropTypes.Requireable<number>;
92
- /**
93
- * Сторона пина без учёта границы.
94
- * Пин представляет собой равносторонний треугольник, высота от попапа
95
- * до "носика" пина будет соответствовать формуле (size* √3)/2
96
- */
97
- pinSize: PropTypes.Requireable<number>;
98
- /**
99
- * смещение попапа относительно родительского элемента
100
- */
101
- popupOffset: PropTypes.Requireable<number>;
102
- /**
103
- * С какой стороны показывать попап и край попапа,
104
- * на котором будет отображаться пин
105
- */
106
- positions: PropTypes.Requireable<any[]>;
107
- /**
108
- * Игнорировать ли события hover/click
109
- */
110
- ignoreHover: PropTypes.Requireable<boolean>;
111
- };
112
- static defaultProps: {
113
- popupOffset: number;
114
- hasPin: boolean;
115
- hasShadow: boolean;
116
- disableAnimations: boolean;
117
- useWrapper: boolean;
118
- ignoreHover: boolean;
119
- width: string;
120
- };
121
- state: PopupState;
122
- private theme;
123
- private layoutEventsToken;
124
- private locationUpdateId;
125
- private lastPopupElement;
126
- private anchorElement;
127
- private setRootNode;
128
- private refForTransition;
129
- componentDidMount(): void;
130
- static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState): PopupState;
131
- componentDidUpdate(prevProps: PopupProps, prevState: PopupState): void;
132
- componentWillUnmount(): void;
133
- render(): JSX.Element;
134
- private renderMain;
135
- private renderContainerRef;
136
- private updateAnchorElement;
137
- private addEventListeners;
138
- private removeEventListeners;
139
- private handleMouseEnter;
140
- private handleMouseLeave;
141
- private handleClick;
142
- private handleFocus;
143
- private handleBlur;
144
- private calculateWidth;
145
- private renderContent;
146
- private resetLocation;
147
- private renderChildren;
148
- private refPopupElement;
149
- private renderPin;
150
- private handleLayoutEvent;
151
- private delayUpdateLocation;
152
- private cancelDelayedUpdateLocation;
153
- private updateLocation;
154
- private locationEquals;
155
- private getLocation;
156
- private getPinnedPopupOffset;
157
- private getCoordinates;
158
- private getPinOffset;
159
- private getHorizontalPosition;
160
- private getVerticalPosition;
161
- }
162
- export {};
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Nullable } from '../../typings/utility-types';
4
+ import { FocusEventType, MouseEventType } from '../../typings/event-types';
5
+ import { CommonProps } from '../CommonWrapper';
6
+ export declare const PopupPositions: readonly ["top left", "top center", "top right", "right top", "right middle", "right bottom", "bottom right", "bottom center", "bottom left", "left bottom", "left middle", "left top"];
7
+ export declare const DefaultPosition: "top left";
8
+ export declare type PopupPositionsType = typeof PopupPositions[number];
9
+ export interface PopupHandlerProps {
10
+ onMouseEnter?: (event: MouseEventType) => void;
11
+ onMouseLeave?: (event: MouseEventType) => void;
12
+ onClick?: (event: MouseEventType) => void;
13
+ onFocus?: (event: FocusEventType) => void;
14
+ onBlur?: (event: FocusEventType) => void;
15
+ onOpen?: () => void;
16
+ onClose?: () => void;
17
+ }
18
+ export interface PopupProps extends CommonProps, PopupHandlerProps {
19
+ anchorElement: React.ReactNode | HTMLElement;
20
+ backgroundColor?: React.CSSProperties['backgroundColor'];
21
+ borderColor?: React.CSSProperties['borderColor'];
22
+ children: React.ReactNode | (() => React.ReactNode);
23
+ hasPin: boolean;
24
+ hasShadow: boolean;
25
+ disableAnimations: boolean;
26
+ margin?: number;
27
+ maxWidth?: number | string;
28
+ opened: boolean;
29
+ pinOffset?: number;
30
+ pinSize?: number;
31
+ popupOffset: number;
32
+ positions: Readonly<PopupPositionsType[]>;
33
+ /**
34
+ * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.
35
+ *
36
+ * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.
37
+ */
38
+ useWrapper: boolean;
39
+ ignoreHover: boolean;
40
+ width: React.CSSProperties['width'];
41
+ /**
42
+ * При очередном рендере пытаться сохранить первоначальную позицию попапа
43
+ * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).
44
+ *
45
+ * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.
46
+ * @see https://github.com/skbkontur/retail-ui/pull/1195
47
+ */
48
+ tryPreserveFirstRenderedPosition?: boolean;
49
+ }
50
+ interface PopupLocation {
51
+ coordinates: {
52
+ left: number;
53
+ top: number;
54
+ };
55
+ position: PopupPositionsType;
56
+ }
57
+ export interface PopupState {
58
+ location: Nullable<PopupLocation>;
59
+ }
60
+ export declare class Popup extends React.Component<PopupProps, PopupState> {
61
+ static __KONTUR_REACT_UI__: string;
62
+ static propTypes: {
63
+ /**
64
+ * Ссылка (ref) на элемент или React компонент, для которого рисуется попап
65
+ */
66
+ anchorElement: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
67
+ /**
68
+ * Фон попапа и пина
69
+ */
70
+ backgroundColor: PropTypes.Requireable<string>;
71
+ children: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
72
+ /**
73
+ * Показывать ли пин
74
+ */
75
+ hasPin: PropTypes.Requireable<boolean>;
76
+ /**
77
+ * Применять ли box-shadow на попапе. При false отключает границу на пине
78
+ */
79
+ hasShadow: PropTypes.Requireable<boolean>;
80
+ /**
81
+ * Отступ попапа от элемента
82
+ */
83
+ margin: PropTypes.Requireable<number>;
84
+ /**
85
+ * Показан или скрыт попап
86
+ */
87
+ opened: PropTypes.Requireable<boolean>;
88
+ /**
89
+ * Смещение пина от края попапа. Край задаётся в пропе position вторым словом
90
+ */
91
+ pinOffset: PropTypes.Requireable<number>;
92
+ /**
93
+ * Сторона пина без учёта границы.
94
+ * Пин представляет собой равносторонний треугольник, высота от попапа
95
+ * до "носика" пина будет соответствовать формуле (size* √3)/2
96
+ */
97
+ pinSize: PropTypes.Requireable<number>;
98
+ /**
99
+ * смещение попапа относительно родительского элемента
100
+ */
101
+ popupOffset: PropTypes.Requireable<number>;
102
+ /**
103
+ * С какой стороны показывать попап и край попапа,
104
+ * на котором будет отображаться пин
105
+ */
106
+ positions: PropTypes.Requireable<any[]>;
107
+ /**
108
+ * Игнорировать ли события hover/click
109
+ */
110
+ ignoreHover: PropTypes.Requireable<boolean>;
111
+ };
112
+ static defaultProps: {
113
+ popupOffset: number;
114
+ hasPin: boolean;
115
+ hasShadow: boolean;
116
+ disableAnimations: boolean;
117
+ useWrapper: boolean;
118
+ ignoreHover: boolean;
119
+ width: string;
120
+ };
121
+ state: PopupState;
122
+ private theme;
123
+ private layoutEventsToken;
124
+ private locationUpdateId;
125
+ private lastPopupElement;
126
+ private setRootNode;
127
+ private refForTransition;
128
+ anchorElement: Nullable<HTMLElement>;
129
+ componentDidMount(): void;
130
+ static getDerivedStateFromProps(props: Readonly<PopupProps>, state: PopupState): PopupState;
131
+ componentDidUpdate(prevProps: PopupProps, prevState: PopupState): void;
132
+ componentWillUnmount(): void;
133
+ render(): JSX.Element;
134
+ private renderMain;
135
+ private updateAnchorElement;
136
+ private addEventListeners;
137
+ private removeEventListeners;
138
+ private handleMouseEnter;
139
+ private handleMouseLeave;
140
+ private handleClick;
141
+ private handleFocus;
142
+ private handleBlur;
143
+ private calculateWidth;
144
+ private renderContent;
145
+ private resetLocation;
146
+ private renderChildren;
147
+ private refPopupElement;
148
+ private renderPin;
149
+ private handleLayoutEvent;
150
+ private delayUpdateLocation;
151
+ private cancelDelayedUpdateLocation;
152
+ private updateLocation;
153
+ private locationEquals;
154
+ private getLocation;
155
+ private getPinnedPopupOffset;
156
+ private getCoordinates;
157
+ private getPinOffset;
158
+ private getHorizontalPosition;
159
+ private getVerticalPosition;
160
+ }
161
+ export {};
@@ -1,16 +1,16 @@
1
- import { Theme } from '../../lib/theming/Theme';
2
- export declare const styles: {
3
- popup(t: Theme): string;
4
- popupIgnoreHover(): string;
5
- content(t: Theme): string;
6
- contentInner(t: Theme): string;
7
- shadow(t: Theme): string;
8
- shadowFallback(t: Theme): string;
9
- transitionEnter(): string;
10
- 'transition-enter-top'(): string;
11
- 'transition-enter-bottom'(): string;
12
- 'transition-enter-left'(): string;
13
- 'transition-enter-right'(): string;
14
- transitionEnterActive(): string;
15
- transitionExit(): string;
16
- };
1
+ import { Theme } from '../../lib/theming/Theme';
2
+ export declare const styles: {
3
+ popup(t: Theme): string;
4
+ popupIgnoreHover(): string;
5
+ content(t: Theme): string;
6
+ contentInner(t: Theme): string;
7
+ shadow(t: Theme): string;
8
+ shadowFallback(t: Theme): string;
9
+ transitionEnter(): string;
10
+ 'transition-enter-top'(): string;
11
+ 'transition-enter-bottom'(): string;
12
+ 'transition-enter-left'(): string;
13
+ 'transition-enter-right'(): string;
14
+ transitionEnterActive(): string;
15
+ transitionExit(): string;
16
+ };
@@ -1,26 +1,26 @@
1
- import { PopupPositionsType } from './Popup';
2
- export interface Rect {
3
- top: number;
4
- left: number;
5
- width: number;
6
- height: number;
7
- }
8
- export interface Offset {
9
- top: number;
10
- left: number;
11
- }
12
- export interface PositionObject {
13
- direction: string;
14
- align: string;
15
- }
16
- declare function getPositionObject(position: string): PositionObject;
17
- declare function getElementAbsoluteRect(element: HTMLElement): Rect;
18
- declare function isAbsoluteRectFullyVisible(coordinates: Offset, popupRect: Rect): boolean;
19
- declare function canBecomeFullyVisible(positionName: PopupPositionsType, coordinates: Offset): boolean;
20
- export declare const PopupHelper: {
21
- getPositionObject: typeof getPositionObject;
22
- getElementAbsoluteRect: typeof getElementAbsoluteRect;
23
- isFullyVisible: typeof isAbsoluteRectFullyVisible;
24
- canBecomeFullyVisible: typeof canBecomeFullyVisible;
25
- };
26
- export {};
1
+ import { PopupPositionsType } from './Popup';
2
+ export interface Rect {
3
+ top: number;
4
+ left: number;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export interface Offset {
9
+ top: number;
10
+ left: number;
11
+ }
12
+ export interface PositionObject {
13
+ direction: string;
14
+ align: string;
15
+ }
16
+ declare function getPositionObject(position: string): PositionObject;
17
+ declare function getElementAbsoluteRect(element: HTMLElement): Rect;
18
+ declare function isAbsoluteRectFullyVisible(coordinates: Offset, popupRect: Rect): boolean;
19
+ declare function canBecomeFullyVisible(positionName: PopupPositionsType, coordinates: Offset): boolean;
20
+ export declare const PopupHelper: {
21
+ getPositionObject: typeof getPositionObject;
22
+ getElementAbsoluteRect: typeof getElementAbsoluteRect;
23
+ isFullyVisible: typeof isAbsoluteRectFullyVisible;
24
+ canBecomeFullyVisible: typeof canBecomeFullyVisible;
25
+ };
26
+ export {};