@sberbusiness/triplex-next 1.40.0 → 1.41.1

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 (599) hide show
  1. package/chunks/{AlertProcessSpoiler-BNrk1vyk.js → AlertProcessSpoiler-Dnwmfds3.js} +16 -16
  2. package/chunks/{AlertProcessSpoiler-BNrk1vyk.js.map → AlertProcessSpoiler-Dnwmfds3.js.map} +1 -1
  3. package/chunks/{CalendarViewItem-knPscTce.js → CalendarViewItem-CeA4XADM.js} +30 -28
  4. package/chunks/CalendarViewItem-CeA4XADM.js.map +1 -0
  5. package/chunks/Card.module-CnX8TfnM.js +32 -0
  6. package/chunks/Card.module-CnX8TfnM.js.map +1 -0
  7. package/chunks/Carousel.module-By3qExUV.js +30 -0
  8. package/chunks/Carousel.module-By3qExUV.js.map +1 -0
  9. package/chunks/CheckboxTreeExtended.module-9l5Ifhk7.js +24 -0
  10. package/chunks/CheckboxTreeExtended.module-9l5Ifhk7.js.map +1 -0
  11. package/chunks/{Chip-CI8ALCUS.js → Chip-B5RNQL8v.js} +27 -27
  12. package/chunks/Chip-B5RNQL8v.js.map +1 -0
  13. package/chunks/Confirm.module-Cpg9tBFI.js +24 -0
  14. package/chunks/Confirm.module-Cpg9tBFI.js.map +1 -0
  15. package/chunks/{DropdownListItem-BqOoPFSx.js → DropdownListItem-BVgGltGX.js} +10 -10
  16. package/chunks/{DropdownListItem-BqOoPFSx.js.map → DropdownListItem-BVgGltGX.js.map} +1 -1
  17. package/chunks/DropdownMobile.module-DRF4HXhL.js +40 -0
  18. package/chunks/DropdownMobile.module-DRF4HXhL.js.map +1 -0
  19. package/chunks/Footer.module-C3ICz5DE.js +12 -0
  20. package/chunks/Footer.module-C3ICz5DE.js.map +1 -0
  21. package/chunks/{HeaderLayoutSidebar.module-MnhSBdiv.js → HeaderLayoutSidebar.module-CfWoWqQ1.js} +4 -4
  22. package/chunks/HeaderLayoutSidebar.module-CfWoWqQ1.js.map +1 -0
  23. package/chunks/HeaderTabs.module-CQ5eAWqH.js +12 -0
  24. package/chunks/HeaderTabs.module-CQ5eAWqH.js.map +1 -0
  25. package/chunks/{HeaderTitle.module-BGOYMt6r.js → HeaderTitle.module-DeWO1h-Y.js} +4 -4
  26. package/chunks/HeaderTitle.module-DeWO1h-Y.js.map +1 -0
  27. package/chunks/ImageGalleryExtendedMain.module-Ci9TjdxN.js +28 -0
  28. package/chunks/ImageGalleryExtendedMain.module-Ci9TjdxN.js.map +1 -0
  29. package/chunks/{ImageGalleryExtendedThumb-D6RAJpt8.js → ImageGalleryExtendedThumb-BWOvPHBA.js} +5 -5
  30. package/chunks/{ImageGalleryExtendedThumb-D6RAJpt8.js.map → ImageGalleryExtendedThumb-BWOvPHBA.js.map} +1 -1
  31. package/chunks/IslandAccordion.module-DDGI83_h.js +44 -0
  32. package/chunks/IslandAccordion.module-DDGI83_h.js.map +1 -0
  33. package/chunks/IslandWidgetFooter.module-DPeifuz4.js +12 -0
  34. package/chunks/IslandWidgetFooter.module-DPeifuz4.js.map +1 -0
  35. package/chunks/IslandWidgetHeader.module-6il25_jE.js +20 -0
  36. package/chunks/IslandWidgetHeader.module-6il25_jE.js.map +1 -0
  37. package/chunks/{LightBoxContent-d_LBU_ZW.js → LightBoxContent-CfT1YJ33.js} +14 -14
  38. package/chunks/{LightBoxContent-d_LBU_ZW.js.map → LightBoxContent-CfT1YJ33.js.map} +1 -1
  39. package/chunks/LightBoxControls.module-Cs64xjct.js +26 -0
  40. package/chunks/LightBoxControls.module-Cs64xjct.js.map +1 -0
  41. package/chunks/{LightBoxSideOverlayClose.module-eTdxNvSz.js → LightBoxSideOverlayClose.module-sV6yxJQT.js} +4 -4
  42. package/chunks/LightBoxSideOverlayClose.module-sV6yxJQT.js.map +1 -0
  43. package/chunks/{ListItemControlsButton-D2ONoqII.js → ListItemControlsButton-Cs8N-_FI.js} +9 -9
  44. package/chunks/{ListItemControlsButton-D2ONoqII.js.map → ListItemControlsButton-Cs8N-_FI.js.map} +1 -1
  45. package/chunks/ListItemTail.module-Cv3Fx6WM.js +18 -0
  46. package/chunks/ListItemTail.module-Cv3Fx6WM.js.map +1 -0
  47. package/chunks/ListMasterFooter.module-DcmWf5IP.js +14 -0
  48. package/chunks/ListMasterFooter.module-DcmWf5IP.js.map +1 -0
  49. package/chunks/ModalWindow.module-BsRM6pWm.js +28 -0
  50. package/chunks/ModalWindow.module-BsRM6pWm.js.map +1 -0
  51. package/chunks/Notification.module-Diy7bSw7.js +34 -0
  52. package/chunks/Notification.module-Diy7bSw7.js.map +1 -0
  53. package/chunks/Overlay.module-Bc3D2mQ-.js +30 -0
  54. package/chunks/Overlay.module-Bc3D2mQ-.js.map +1 -0
  55. package/chunks/Page.module-CqkiljCk.js +15 -0
  56. package/chunks/Page.module-CqkiljCk.js.map +1 -0
  57. package/chunks/SMSField.module-BY_XV_HG.js +26 -0
  58. package/chunks/SMSField.module-BY_XV_HG.js.map +1 -0
  59. package/chunks/SliderExtendedMarks.module-DXI6Xg6v.js +24 -0
  60. package/chunks/SliderExtendedMarks.module-DXI6Xg6v.js.map +1 -0
  61. package/chunks/{SliderExtendedRail-CVEwe6OK.js → SliderExtendedRail-D7gQetwK.js} +5 -5
  62. package/chunks/{SliderExtendedRail-CVEwe6OK.js.map → SliderExtendedRail-D7gQetwK.js.map} +1 -1
  63. package/chunks/StatusTracker.module-DYVyu4Qv.js +44 -0
  64. package/chunks/StatusTracker.module-DYVyu4Qv.js.map +1 -0
  65. package/chunks/{StepperStepArrowBorder-BO_ItxMh.js → StepperStepArrowBorder-CY-4Rorx.js} +16 -16
  66. package/chunks/{StepperStepArrowBorder-BO_ItxMh.js.map → StepperStepArrowBorder-CY-4Rorx.js.map} +1 -1
  67. package/chunks/{SuggestFieldMobileDropdownHint-DyfJuyUe.js → SuggestFieldMobileDropdownHint-B4k9UKDH.js} +3 -3
  68. package/chunks/{SuggestFieldMobileDropdownHint-DyfJuyUe.js.map → SuggestFieldMobileDropdownHint-B4k9UKDH.js.map} +1 -1
  69. package/chunks/TableFooter.module-C1BtmpbW.js +22 -0
  70. package/chunks/TableFooter.module-C1BtmpbW.js.map +1 -0
  71. package/chunks/TabsExtended.module-BVBDZGtj.js +26 -0
  72. package/chunks/TabsExtended.module-BVBDZGtj.js.map +1 -0
  73. package/chunks/TabsLine.module-DXgk6eNb.js +36 -0
  74. package/chunks/TabsLine.module-DXgk6eNb.js.map +1 -0
  75. package/chunks/TooltipDesktop.module-BKIRlstC.js +32 -0
  76. package/chunks/TooltipDesktop.module-BKIRlstC.js.map +1 -0
  77. package/chunks/TreeView.module-BZWQB1ox.js +12 -0
  78. package/chunks/TreeView.module-BZWQB1ox.js.map +1 -0
  79. package/chunks/{UploadZoneInput-BHUONqVR.js → UploadZoneInput-BdhIPJdP.js} +5 -5
  80. package/chunks/{UploadZoneInput-BHUONqVR.js.map → UploadZoneInput-BdhIPJdP.js.map} +1 -1
  81. package/chunks/{constants-C-WrqYH6.js → constants-Cn8ZrJM2.js} +27 -27
  82. package/chunks/{constants-C-WrqYH6.js.map → constants-Cn8ZrJM2.js.map} +1 -1
  83. package/chunks/{utils-BHxrQbA6.js → utils-Cr7DslJx.js} +8 -8
  84. package/chunks/utils-Cr7DslJx.js.map +1 -0
  85. package/chunks/{utils-D4UOxU49.js → utils-Dhu3zNqv.js} +27 -27
  86. package/chunks/{utils-D4UOxU49.js.map → utils-Dhu3zNqv.js.map} +1 -1
  87. package/chunks/{utils-BaakoACO.js → utils-Fg8ptXcX.js} +6 -6
  88. package/chunks/{utils-BaakoACO.js.map → utils-Fg8ptXcX.js.map} +1 -1
  89. package/chunks/{utils-g0xZYVuS.js → utils-QF2QqBDT.js} +11 -11
  90. package/chunks/{utils-g0xZYVuS.js.map → utils-QF2QqBDT.js.map} +1 -1
  91. package/components/Alert/AlertContext/AlertContext.js +7 -7
  92. package/components/Alert/AlertProcess/AlertProcess.js +2 -2
  93. package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +1 -1
  94. package/components/Amount/Amount.js +2 -2
  95. package/components/Avatar/Avatar.js +13 -13
  96. package/components/Badge/Badge.js +4 -4
  97. package/components/Badge/BadgeDot.js +4 -4
  98. package/components/Badge/components/BadgeContent.js +6 -6
  99. package/components/Badge/components/BadgePostfix.js +1 -1
  100. package/components/Badge/components/BadgePrefix.js +1 -1
  101. package/components/Body/Body.js +3 -3
  102. package/components/Button/Button.js +20 -20
  103. package/components/Button/ButtonBase.js +1 -1
  104. package/components/Button/ButtonDropdown.js +8 -8
  105. package/components/Button/ButtonDropdownExtended.js +2 -2
  106. package/components/Button/ButtonIcon.js +3 -3
  107. package/components/Calendar/Calendar.js +16 -16
  108. package/components/Calendar/Calendar.js.map +1 -1
  109. package/components/Calendar/CalendarContext.js.map +1 -1
  110. package/components/Calendar/CalendarViewContext.js.map +1 -1
  111. package/components/Calendar/components/CalendarControls.js +12 -32
  112. package/components/Calendar/components/CalendarControls.js.map +1 -1
  113. package/components/Calendar/components/CalendarFooter.js +3 -2
  114. package/components/Calendar/components/CalendarFooter.js.map +1 -1
  115. package/components/Calendar/components/CalendarView.js +1 -0
  116. package/components/Calendar/components/CalendarView.js.map +1 -1
  117. package/components/Calendar/components/CalendarViewDays.js +31 -55
  118. package/components/Calendar/components/CalendarViewDays.js.map +1 -1
  119. package/components/Calendar/components/CalendarViewItem.js +1 -1
  120. package/components/Calendar/components/CalendarViewMonths.js +30 -52
  121. package/components/Calendar/components/CalendarViewMonths.js.map +1 -1
  122. package/components/Calendar/components/CalendarViewYears.js +34 -55
  123. package/components/Calendar/components/CalendarViewYears.js.map +1 -1
  124. package/components/Calendar/utils.js +43 -10
  125. package/components/Calendar/utils.js.map +1 -1
  126. package/components/Card/CardAction.js +5 -5
  127. package/components/Card/CardStatic.js +2 -2
  128. package/components/Card/components/CardContent/CardContent.js +1 -1
  129. package/components/Card/components/CardContent/components/CardContentBody.js +1 -1
  130. package/components/Card/components/CardContent/components/CardContentFooter.js +1 -1
  131. package/components/Card/components/CardContent/components/CardContentHeader.js +1 -1
  132. package/components/Card/components/CardMedia.js +1 -1
  133. package/components/Card/enums.js +1 -0
  134. package/components/Card/enums.js.map +1 -1
  135. package/components/Card/utils.js +2 -1
  136. package/components/Card/utils.js.map +1 -1
  137. package/components/Carousel/Carousel.js +1 -1
  138. package/components/Carousel/CarouselButton.js +1 -1
  139. package/components/Carousel/CarouselIndicators.js +1 -1
  140. package/components/Carousel/CarouselItem.js +1 -1
  141. package/components/Carousel/CarouselTrack.js +1 -1
  142. package/components/Carousel/CarouselViewport.js +1 -1
  143. package/components/CarouselExtended/CarouselExtended.js +1 -1
  144. package/components/Checkbox/Checkbox.js +10 -10
  145. package/components/Checkbox/CheckboxXGroup.js +8 -8
  146. package/components/Checkbox/CheckboxYGroup.js +1 -1
  147. package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +1 -1
  148. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
  149. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +1 -1
  150. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +1 -1
  151. package/components/Chip/Chip.js +1 -1
  152. package/components/Chip/ChipClearButton.js +1 -1
  153. package/components/Chip/ChipDatePicker/ChipDatePicker.js +1 -1
  154. package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
  155. package/components/Chip/ChipDropdownArrow.js +2 -2
  156. package/components/Chip/ChipIcon.js +1 -1
  157. package/components/Chip/ChipMultiselect.js +1 -1
  158. package/components/Chip/ChipOptions.js +2 -2
  159. package/components/Chip/ChipSelect/ChipSelect.js +1 -1
  160. package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
  161. package/components/Chip/ChipSort.js +1 -1
  162. package/components/Chip/ChipSuggest/ChipSuggest.js +1 -1
  163. package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +1 -1
  164. package/components/Chip/ChipSuggest/ChipSuggestTarget.js +1 -1
  165. package/components/Chip/ChipSuggest/desktop/ChipSuggestDesktopDropdownField.js +1 -1
  166. package/components/Chip/index.js +1 -1
  167. package/components/ChipGroup/ChipGroup.js +7 -7
  168. package/components/Col/Col.js +132 -132
  169. package/components/CollapsibleTree/CollapsibleTree.js +1 -1
  170. package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +1 -1
  171. package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +1 -1
  172. package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +4 -4
  173. package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +1 -1
  174. package/components/Confirm/Confirm.js +1 -1
  175. package/components/Confirm/components/ConfirmCloseButton.js +1 -1
  176. package/components/Confirm/components/ConfirmContent.js +1 -1
  177. package/components/Confirm/components/ConfirmContentTitle.js +1 -1
  178. package/components/Confirm/components/ConfirmControls.js +1 -1
  179. package/components/DateField/utils.js +2 -2
  180. package/components/DateField/utils.js.map +1 -1
  181. package/components/DatePickerExtended/DatePickerExtended.js +2 -2
  182. package/components/DatePickerExtended/DatePickerExtendedDropdown.js +1 -1
  183. package/components/DateRange/DateRange.js +3 -3
  184. package/components/DesignTokens/DesignTokenUtils.js +25 -20
  185. package/components/DesignTokens/DesignTokenUtils.js.map +1 -1
  186. package/components/DesignTokens/components/Calendar.js +2 -2
  187. package/components/DesignTokens/components/Calendar.js.map +1 -1
  188. package/components/DesignTokens/components/StatusTracker.js +8 -2
  189. package/components/DesignTokens/components/StatusTracker.js.map +1 -1
  190. package/components/Divider/Divider.js +17 -17
  191. package/components/DocumentNumberEdit/DocumentNumberEdit.js +3 -3
  192. package/components/Dropdown/desktop/DropdownDesktop.js +6 -6
  193. package/components/Dropdown/desktop/DropdownList.js +1 -1
  194. package/components/Dropdown/desktop/DropdownListItem.js +1 -1
  195. package/components/Dropdown/desktop/index.js +1 -1
  196. package/components/Dropdown/index.js +1 -1
  197. package/components/Dropdown/mobile/DropdownMobile.js +2 -2
  198. package/components/Dropdown/mobile/DropdownMobileBody.js +1 -1
  199. package/components/Dropdown/mobile/DropdownMobileClose.js +1 -1
  200. package/components/Dropdown/mobile/DropdownMobileFooter.js +1 -1
  201. package/components/Dropdown/mobile/DropdownMobileHeader.js +1 -1
  202. package/components/Dropdown/mobile/DropdownMobileInner.js +1 -1
  203. package/components/Dropdown/mobile/DropdownMobileInput.js +1 -1
  204. package/components/Dropdown/mobile/DropdownMobileList.js +1 -1
  205. package/components/Dropdown/mobile/DropdownMobileListItem.js +1 -1
  206. package/components/Dropdown/mobile/DropdownMobileLoader.js +1 -1
  207. package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +1 -1
  208. package/components/Ellipsis/Ellipsis.js +3 -3
  209. package/components/EmptyView/EmptyView.js +4 -4
  210. package/components/ExpandAnimation/ExpandAnimation.js +1 -1
  211. package/components/FocusTrapExtended/FocusTrapExtended.js +20 -8
  212. package/components/FocusTrapExtended/FocusTrapExtended.js.map +1 -1
  213. package/components/Footer/Footer.js +1 -1
  214. package/components/Footer/components/FooterDescription.js +1 -1
  215. package/components/Footer/components/FooterDescriptionContent.js +1 -1
  216. package/components/Footer/components/FooterDescriptionControls.js +1 -1
  217. package/components/FormField/FormField.js +20 -20
  218. package/components/FormField/FormField.js.map +1 -1
  219. package/components/FormField/FormFieldContext.js.map +1 -1
  220. package/components/FormField/FormFieldDescriptionContext.js.map +1 -1
  221. package/components/FormField/components/FormFieldClear.js +1 -1
  222. package/components/FormField/components/FormFieldClear.js.map +1 -1
  223. package/components/FormField/components/FormFieldCounter.js +5 -4
  224. package/components/FormField/components/FormFieldCounter.js.map +1 -1
  225. package/components/FormField/components/FormFieldDescription.js +13 -5
  226. package/components/FormField/components/FormFieldDescription.js.map +1 -1
  227. package/components/FormField/components/FormFieldInput.js +7 -8
  228. package/components/FormField/components/FormFieldInput.js.map +1 -1
  229. package/components/FormField/components/FormFieldLabel.js +10 -11
  230. package/components/FormField/components/FormFieldLabel.js.map +1 -1
  231. package/components/FormField/components/FormFieldMaskedInput.js +6 -6
  232. package/components/FormField/components/FormFieldPostfix.js +5 -29
  233. package/components/FormField/components/FormFieldPostfix.js.map +1 -1
  234. package/components/FormField/components/FormFieldPrefix.js +5 -29
  235. package/components/FormField/components/FormFieldPrefix.js.map +1 -1
  236. package/components/FormField/components/FormFieldTarget.js +8 -8
  237. package/components/FormField/components/FormFieldTextarea.js +4 -4
  238. package/components/FormField/components/useFormFieldAffixWidth.js +33 -0
  239. package/components/FormField/components/useFormFieldAffixWidth.js.map +1 -0
  240. package/components/FormField/components/utils.js +9 -1
  241. package/components/FormField/components/utils.js.map +1 -1
  242. package/components/FormField/consts.js.map +1 -1
  243. package/components/FormField/enums.js.map +1 -1
  244. package/components/FormField/index.js +2 -3
  245. package/components/Gap/Gap.js +8 -8
  246. package/components/Header/Header.js +1 -1
  247. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +1 -1
  248. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +1 -1
  249. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +1 -1
  250. package/components/Header/components/HeaderSubheader/HeaderSubheader.js +2 -2
  251. package/components/Header/components/HeaderTabs/HeaderTabs.js +1 -1
  252. package/components/Header/components/HeaderTabs/HeaderTabsContent.js +1 -1
  253. package/components/Header/components/HeaderTabs/HeaderTabsControls.js +1 -1
  254. package/components/Header/components/HeaderTitle/HeaderTitle.js +1 -1
  255. package/components/Header/components/HeaderTitle/HeaderTitleContent.js +1 -1
  256. package/components/Header/components/HeaderTitle/HeaderTitleControls.js +1 -1
  257. package/components/HelpBox/HelpBox.js +1 -1
  258. package/components/IconWrapper/IconWrapper.js +7 -7
  259. package/components/IconWrapper/IconWrapper.js.map +1 -1
  260. package/components/ImageGallery/ImageGallery.js +1 -1
  261. package/components/ImageGalleryExtended/ImageGalleryExtended.js +2 -2
  262. package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +1 -1
  263. package/components/ImageGalleryExtended/components/ImageGalleryExtendedDots.js +3 -3
  264. package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +1 -1
  265. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +1 -1
  266. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +1 -1
  267. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +1 -1
  268. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +1 -1
  269. package/components/ImageGalleryExtended/components/index.js +1 -1
  270. package/components/ImageGalleryExtended/index.js +1 -1
  271. package/components/Island/Island.js +3 -3
  272. package/components/Island/Island.js.map +1 -1
  273. package/components/Island/components/IslandBody.js +2 -1
  274. package/components/Island/components/IslandBody.js.map +1 -1
  275. package/components/Island/components/IslandFooter.js +7 -4
  276. package/components/Island/components/IslandFooter.js.map +1 -1
  277. package/components/Island/components/IslandHeader.js +7 -4
  278. package/components/Island/components/IslandHeader.js.map +1 -1
  279. package/components/Island/enums.js.map +1 -1
  280. package/components/Island/utils.js +1 -1
  281. package/components/IslandAccordion/IslandAccordion.js +2 -2
  282. package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
  283. package/components/IslandAccordion/components/IslandAccordionFooter.js +1 -1
  284. package/components/IslandAccordion/components/IslandAccordionItem.js +2 -2
  285. package/components/IslandWidget/IslandWidget.js +4 -4
  286. package/components/IslandWidget/components/IslandWidgetBody.js +1 -1
  287. package/components/IslandWidget/components/IslandWidgetExtraFooter.js +1 -1
  288. package/components/IslandWidget/components/IslandWidgetFooter.js +1 -1
  289. package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
  290. package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
  291. package/components/IslandWidget/components/IslandWidgetHeader.js +1 -1
  292. package/components/IslandWidget/components/IslandWidgetHeaderContent.js +1 -1
  293. package/components/IslandWidget/components/IslandWidgetHeaderControls.js +1 -1
  294. package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +1 -1
  295. package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +1 -1
  296. package/components/IslandWidget/components/IslandWidgetWrapper.js +1 -1
  297. package/components/KeyDownListener/ComposedKeyDownListener.js +7 -8
  298. package/components/KeyDownListener/ComposedKeyDownListener.js.map +1 -1
  299. package/components/KeyDownListener/KeyDownListener.js +3 -4
  300. package/components/KeyDownListener/KeyDownListener.js.map +1 -1
  301. package/components/LightBox/LightBox.js +5 -5
  302. package/components/LightBox/LightBoxContent.js +1 -1
  303. package/components/LightBox/LightBoxControls/LightBoxArrow.js +1 -1
  304. package/components/LightBox/LightBoxControls/LightBoxClose.js +1 -1
  305. package/components/LightBox/LightBoxControls/LightBoxControls.js +1 -1
  306. package/components/LightBox/LightBoxControls/LightBoxNext.js +1 -1
  307. package/components/LightBox/LightBoxControls/LightBoxPrev.js +1 -1
  308. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +12 -13
  309. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js.map +1 -1
  310. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +1 -1
  311. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +1 -1
  312. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
  313. package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +3 -3
  314. package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +3 -3
  315. package/components/Link/Link.js +5 -5
  316. package/components/List/List.js +3 -3
  317. package/components/List/components/ListActionItem.js +1 -1
  318. package/components/List/components/ListEmptyState.js +1 -1
  319. package/components/List/components/ListItem.js +1 -1
  320. package/components/List/components/ListItemContent.js +4 -4
  321. package/components/List/components/ListItemControls.js +1 -1
  322. package/components/List/components/ListItemControlsButton.js +1 -1
  323. package/components/List/components/ListItemControlsButtonDropdown.js +1 -1
  324. package/components/List/components/ListItemLoading.js +1 -1
  325. package/components/List/components/ListItemSelectable.js +6 -6
  326. package/components/List/components/ListItemTailLeft.js +1 -1
  327. package/components/List/components/ListItemTailRight.js +1 -1
  328. package/components/List/components/ListSortableItem.js +2 -2
  329. package/components/List/components/ListSortableItemControls.js +1 -1
  330. package/components/List/components/ListSortableItemTarget.js +4 -4
  331. package/components/List/components/ListTableItem.js +3 -3
  332. package/components/List/index.js +1 -1
  333. package/components/ListMaster/ListMaster.js +1 -1
  334. package/components/ListMaster/components/ListMasterBody.js +1 -1
  335. package/components/ListMaster/components/ListMasterChipGroup.js +1 -1
  336. package/components/ListMaster/components/ListMasterFooter.js +1 -1
  337. package/components/ListMaster/components/ListMasterFooterControls.js +1 -1
  338. package/components/ListMaster/components/ListMasterFooterDescription.js +1 -1
  339. package/components/ListMaster/components/ListMasterHeader.js +2 -2
  340. package/components/ListMaster/components/SelectionControls.js +2 -2
  341. package/components/Loader/LoaderMiddle/LoaderMiddle.js +10 -10
  342. package/components/Loader/LoaderMiddle/LoaderMiddle.js.map +1 -1
  343. package/components/Loader/LoaderSmall/LoaderSmall.js +10 -10
  344. package/components/LoaderScreen/LoaderScreen.js +13 -12
  345. package/components/LoaderScreen/LoaderScreen.js.map +1 -1
  346. package/components/Marker/Marker.js +1 -1
  347. package/components/Marker/utils.js +1 -1
  348. package/components/MarkerStatus/MarkerStatus.js +7 -7
  349. package/components/ModalWindow/ModalWindow.js +1 -1
  350. package/components/ModalWindow/components/ModalWindowBody.js +1 -1
  351. package/components/ModalWindow/components/ModalWindowClose.js +1 -1
  352. package/components/ModalWindow/components/ModalWindowContent.js +1 -1
  353. package/components/ModalWindow/components/ModalWindowHeader.js +1 -1
  354. package/components/ModalWindow/components/ModalWindowViewManager.js +1 -1
  355. package/components/MonthYearField/utils.js +2 -1
  356. package/components/MonthYearField/utils.js.map +1 -1
  357. package/components/MonthYearRange/MonthYearRange.js +3 -3
  358. package/components/MultiselectField/components/MultiselectFieldDropdown.js +1 -1
  359. package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +5 -5
  360. package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +1 -1
  361. package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +1 -1
  362. package/components/Notification/Notification.js +2 -2
  363. package/components/Notification/NotificationGrouped.js +1 -1
  364. package/components/Notification/components/NotificationBody.js +1 -1
  365. package/components/Notification/components/NotificationBodyList.js +1 -1
  366. package/components/Notification/components/NotificationClose.js +1 -1
  367. package/components/Notification/components/NotificationFooter.js +1 -1
  368. package/components/Notification/components/NotificationGroupedFooter.js +1 -1
  369. package/components/Notification/components/NotificationHeader.js +1 -1
  370. package/components/Notification/components/NotificationIcon.js +1 -1
  371. package/components/Notification/components/NotificationTime.js +1 -1
  372. package/components/OrderedList/OrderedList.js +2 -2
  373. package/components/OrderedList/OrderedListItem.js +2 -2
  374. package/components/Overlay/Overlay.js +1 -1
  375. package/components/Overlay/OverlayMask.js +1 -1
  376. package/components/Overlay/OverlayPanel.js +1 -1
  377. package/components/Page/Page.js +1 -1
  378. package/components/Page/components/BodyPage.js +3 -3
  379. package/components/Page/components/FooterPage.js +1 -1
  380. package/components/Page/components/FooterPage.js.map +1 -1
  381. package/components/Page/components/HeaderPage.js +1 -1
  382. package/components/Page/components/HeaderPage.js.map +1 -1
  383. package/components/Pagination/components/PaginationExtended.js +2 -2
  384. package/components/Pagination/components/PaginationNavigation.js +1 -1
  385. package/components/Pagination/components/PaginationNavigation.js.map +1 -1
  386. package/components/Pagination/components/PaginationNavigationButton.js +2 -2
  387. package/components/Pagination/components/PaginationNavigationExtended.js +1 -1
  388. package/components/Pagination/components/PaginationPageButton.js +2 -2
  389. package/components/Pagination/components/PaginationPageEllipsis.js +1 -1
  390. package/components/Pagination/components/PaginationSelect.js +2 -2
  391. package/components/Pagination/{utils/paginationUtils.js → utils.js} +2 -2
  392. package/components/Pagination/utils.js.map +1 -0
  393. package/components/Radio/Radio.js +9 -9
  394. package/components/Radio/RadioXGroup.js +8 -8
  395. package/components/Radio/RadioYGroup.js +1 -1
  396. package/components/Row/Row.js +4 -4
  397. package/components/SMSField/SMSField.js +2 -2
  398. package/components/SMSField/components/RefreshIcon.js +1 -1
  399. package/components/SMSField/components/SMSFieldInput.js +1 -1
  400. package/components/SMSField/components/SMSFieldRefresh.js +1 -1
  401. package/components/SMSField/components/SMSFieldSubmit.js +1 -1
  402. package/components/SegmentedControl/SegmentedControl.js +9 -9
  403. package/components/SegmentedControl/SegmentedControlSegment.js +3 -3
  404. package/components/SelectExtendedField/SelectExtendedField.js +41 -46
  405. package/components/SelectExtendedField/SelectExtendedField.js.map +1 -1
  406. package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js +2 -1
  407. package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js.map +1 -1
  408. package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js +18 -38
  409. package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js.map +1 -1
  410. package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js +47 -65
  411. package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js.map +1 -1
  412. package/components/SelectField/SelectField.js +1 -1
  413. package/components/Skeleton/Skeleton.js +4 -4
  414. package/components/SliderExtended/SliderExtended.js +2 -2
  415. package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +6 -5
  416. package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js.map +1 -1
  417. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +1 -1
  418. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +1 -1
  419. package/components/SliderExtended/components/SliderExtendedRail.js +1 -1
  420. package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +4 -4
  421. package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +7 -6
  422. package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js.map +1 -1
  423. package/components/SmallInput/SmallInput.js +1 -1
  424. package/components/Spoiler/Spoiler.js +10 -10
  425. package/components/StatusTracker/StatusTracker.js +7 -6
  426. package/components/StatusTracker/StatusTracker.js.map +1 -1
  427. package/components/StatusTracker/components/StatusTrackerAlert.js +1 -1
  428. package/components/StatusTracker/components/StatusTrackerBody.js +1 -1
  429. package/components/StatusTracker/components/StatusTrackerButton.js +1 -1
  430. package/components/StatusTracker/components/StatusTrackerDescription.js +1 -1
  431. package/components/StatusTracker/components/StatusTrackerFooter.js +1 -1
  432. package/components/StatusTracker/components/StatusTrackerHeader.js +1 -1
  433. package/components/StatusTracker/components/StatusTrackerMedia.js +1 -1
  434. package/components/StatusTracker/components/StatusTrackerStatus.js +1 -1
  435. package/components/StatusTracker/components/StatusTrackerStatusGroup.js +1 -1
  436. package/components/StatusTracker/components/StatusTrackerSum.js +1 -1
  437. package/components/StatusTracker/components/StatusTrackerTitle.js +1 -1
  438. package/components/Step/Step.js +10 -10
  439. package/components/Stepper/Stepper.js +8 -8
  440. package/components/Stepper/StepperExtended.js +1 -1
  441. package/components/Stepper/StepperStep.js +2 -2
  442. package/components/Stepper/StepperStepArrowBorder.js +1 -1
  443. package/components/Suggest/SuggestMobileDropdownContent.js +3 -3
  444. package/components/SuggestField/SuggestField.js +1 -1
  445. package/components/SuggestField/desktop/SuggestFieldDesktop.js +1 -1
  446. package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js +1 -1
  447. package/components/SuggestField/index.js +1 -1
  448. package/components/SuggestField/mobile/SuggestFieldMobile.js +1 -1
  449. package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js +2 -2
  450. package/components/SuggestField/mobile/SuggestFieldMobileDropdownHint.js +1 -1
  451. package/components/SuggestField/mobile/index.js +1 -1
  452. package/components/SwipeableArea/SwipeableArea.js +8 -8
  453. package/components/Table/ChipPanel.js +1 -1
  454. package/components/Table/ChipPanelLinks.js +1 -1
  455. package/components/Table/FilterPanel.js +2 -2
  456. package/components/Table/MasterTable.js +2 -2
  457. package/components/Table/NoColumns.js +2 -2
  458. package/components/Table/PaginationPanel.js +2 -2
  459. package/components/Table/TableBasic/TableBasic.js +1 -1
  460. package/components/Table/TableBasic/components/TableBasicBody.js +1 -1
  461. package/components/Table/TableBasic/components/TableBasicHeader.js +1 -1
  462. package/components/Table/TableBasic/components/TableBasicRow.js +1 -1
  463. package/components/Table/TableBasicSettings/TableBasicSettings.js +2 -2
  464. package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +2 -2
  465. package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +1 -1
  466. package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +1 -1
  467. package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +1 -1
  468. package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +1 -1
  469. package/components/Table/TableFooter/TableFooter.js +1 -1
  470. package/components/Table/TableFooter/components/TableFooterSummary.js +1 -1
  471. package/components/Table/TableFooter/components/TableFooterSummaryAmount.js +1 -1
  472. package/components/Table/TableFooter/components/TableFooterSummarySelectAllButton.js +1 -1
  473. package/components/Table/TableFooter/components/TableFooterSummarySelectedCount.js +1 -1
  474. package/components/Table/utils.js +1 -1
  475. package/components/Tabs/Tabs.js +5 -5
  476. package/components/TabsExtended/TabsExtended.js +2 -2
  477. package/components/TabsExtended/components/TabsExtendedContent.js +1 -1
  478. package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +1 -1
  479. package/components/TabsExtended/components/TabsExtendedTab.js +1 -1
  480. package/components/TabsExtended/components/TabsExtendedTabButton.js +1 -1
  481. package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +1 -1
  482. package/components/TabsExtended/utils.js +1 -1
  483. package/components/TabsLine/TabsLine.js +1 -1
  484. package/components/TabsLine/components/TabsLineDesktop.js +1 -1
  485. package/components/TabsLine/components/TabsLineDropdown.js +2 -2
  486. package/components/TabsLine/components/TabsLineItem.js +1 -1
  487. package/components/TabsLine/components/TabsLineMobile.js +2 -2
  488. package/components/Tag/Tag.js +5 -5
  489. package/components/TagColor/TagColor.js +10 -10
  490. package/components/TagGroup/TagGroup.js +4 -4
  491. package/components/ThemeProvider/ETriplexNextTheme.js.map +1 -1
  492. package/components/ThemeProvider/ThemeProvider.js +5 -3
  493. package/components/ThemeProvider/ThemeProvider.js.map +1 -1
  494. package/components/ThemeProvider/ThemeProviderContext.js.map +1 -1
  495. package/components/ThemeProvider/components/ThemeProviderView.js +6 -9
  496. package/components/ThemeProvider/components/ThemeProviderView.js.map +1 -1
  497. package/components/ThemeProvider/useToken.js.map +1 -1
  498. package/components/Tooltip/Tooltip.js +49 -52
  499. package/components/Tooltip/Tooltip.js.map +1 -1
  500. package/components/Tooltip/TootlipContext.js.map +1 -1
  501. package/components/Tooltip/components/common/TooltipBody.js +1 -1
  502. package/components/Tooltip/components/common/TooltipLink.js +7 -18
  503. package/components/Tooltip/components/common/TooltipLink.js.map +1 -1
  504. package/components/Tooltip/components/common/TooltipTarget.js.map +1 -1
  505. package/components/Tooltip/components/common/TooltipXButton.js +1 -1
  506. package/components/Tooltip/components/desktop/TooltipDesktop.js +24 -12
  507. package/components/Tooltip/components/desktop/TooltipDesktop.js.map +1 -1
  508. package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +25 -24
  509. package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js.map +1 -1
  510. package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +8 -17
  511. package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js.map +1 -1
  512. package/components/Tooltip/components/mobile/TooltipMobile.js +10 -6
  513. package/components/Tooltip/components/mobile/TooltipMobile.js.map +1 -1
  514. package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js +2 -2
  515. package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js.map +1 -1
  516. package/components/Tooltip/enums.js.map +1 -1
  517. package/components/Tooltip/utils/Positioning.js +18 -17
  518. package/components/Tooltip/utils/Positioning.js.map +1 -1
  519. package/components/Tooltip/utils/useTooltipTheme.js +40 -12
  520. package/components/Tooltip/utils/useTooltipTheme.js.map +1 -1
  521. package/components/TopOverlay/TopOverlay.js +6 -6
  522. package/components/TreeView/TreeView.js +1 -1
  523. package/components/TreeView/components/TreeViewGroup.js +1 -1
  524. package/components/TreeView/components/TreeViewNode.js +1 -1
  525. package/components/Typography/Caption.js +7 -7
  526. package/components/Typography/CodeText.js +2 -2
  527. package/components/Typography/Text.js +9 -9
  528. package/components/Typography/Title.js +9 -9
  529. package/components/Typography/constants.js +1 -1
  530. package/components/UnorderedList/UnorderedList.js +2 -2
  531. package/components/UnorderedList/UnorderedListItem.js +2 -2
  532. package/components/UploadZone/UploadZone.js +2 -2
  533. package/components/UploadZone/components/UploadZoneInput.js +1 -1
  534. package/components/UploadZone/index.js +1 -1
  535. package/components/index.js +7 -8
  536. package/consts/DateConst.js.map +1 -1
  537. package/index.d.ts +255 -107
  538. package/index.js +7 -8
  539. package/package.json +1 -1
  540. package/styles/triplex-next.css +2962 -2951
  541. package/chunks/CalendarViewItem-knPscTce.js.map +0 -1
  542. package/chunks/Card.module-Dd2_zoXF.js +0 -30
  543. package/chunks/Card.module-Dd2_zoXF.js.map +0 -1
  544. package/chunks/Carousel.module-LNo8o3qn.js +0 -30
  545. package/chunks/Carousel.module-LNo8o3qn.js.map +0 -1
  546. package/chunks/CheckboxTreeExtended.module-CKUO50mv.js +0 -24
  547. package/chunks/CheckboxTreeExtended.module-CKUO50mv.js.map +0 -1
  548. package/chunks/Chip-CI8ALCUS.js.map +0 -1
  549. package/chunks/Confirm.module-BtnLGqBz.js +0 -24
  550. package/chunks/Confirm.module-BtnLGqBz.js.map +0 -1
  551. package/chunks/DropdownMobile.module-xbkYiPM1.js +0 -40
  552. package/chunks/DropdownMobile.module-xbkYiPM1.js.map +0 -1
  553. package/chunks/Footer.module-CYELL0O7.js +0 -12
  554. package/chunks/Footer.module-CYELL0O7.js.map +0 -1
  555. package/chunks/HeaderLayoutSidebar.module-MnhSBdiv.js.map +0 -1
  556. package/chunks/HeaderTabs.module-D9u9xuSn.js +0 -12
  557. package/chunks/HeaderTabs.module-D9u9xuSn.js.map +0 -1
  558. package/chunks/HeaderTitle.module-BGOYMt6r.js.map +0 -1
  559. package/chunks/ImageGalleryExtendedMain.module-CQNClbso.js +0 -28
  560. package/chunks/ImageGalleryExtendedMain.module-CQNClbso.js.map +0 -1
  561. package/chunks/IslandAccordion.module-nyPnHohH.js +0 -44
  562. package/chunks/IslandAccordion.module-nyPnHohH.js.map +0 -1
  563. package/chunks/IslandWidgetFooter.module-CNyLawMh.js +0 -12
  564. package/chunks/IslandWidgetFooter.module-CNyLawMh.js.map +0 -1
  565. package/chunks/IslandWidgetHeader.module-ChE5SXll.js +0 -20
  566. package/chunks/IslandWidgetHeader.module-ChE5SXll.js.map +0 -1
  567. package/chunks/LightBoxControls.module-Buvm7RbG.js +0 -26
  568. package/chunks/LightBoxControls.module-Buvm7RbG.js.map +0 -1
  569. package/chunks/LightBoxSideOverlayClose.module-eTdxNvSz.js.map +0 -1
  570. package/chunks/ListItemTail.module-BhSOptJB.js +0 -18
  571. package/chunks/ListItemTail.module-BhSOptJB.js.map +0 -1
  572. package/chunks/ListMasterFooter.module-DrlO_YrT.js +0 -14
  573. package/chunks/ListMasterFooter.module-DrlO_YrT.js.map +0 -1
  574. package/chunks/ModalWindow.module-DrJpRuNK.js +0 -28
  575. package/chunks/ModalWindow.module-DrJpRuNK.js.map +0 -1
  576. package/chunks/Notification.module-tEh-vvv0.js +0 -34
  577. package/chunks/Notification.module-tEh-vvv0.js.map +0 -1
  578. package/chunks/Overlay.module-CPNLKKsF.js +0 -30
  579. package/chunks/Overlay.module-CPNLKKsF.js.map +0 -1
  580. package/chunks/Page.module-Dru0rPA5.js +0 -15
  581. package/chunks/Page.module-Dru0rPA5.js.map +0 -1
  582. package/chunks/SMSField.module-CjGkO6u6.js +0 -26
  583. package/chunks/SMSField.module-CjGkO6u6.js.map +0 -1
  584. package/chunks/SliderExtendedMarks.module-CAeqmSQq.js +0 -24
  585. package/chunks/SliderExtendedMarks.module-CAeqmSQq.js.map +0 -1
  586. package/chunks/StatusTracker.module-BD5zJfbg.js +0 -42
  587. package/chunks/StatusTracker.module-BD5zJfbg.js.map +0 -1
  588. package/chunks/TableFooter.module-DhudGmzN.js +0 -22
  589. package/chunks/TableFooter.module-DhudGmzN.js.map +0 -1
  590. package/chunks/TabsExtended.module-DNjJIne-.js +0 -26
  591. package/chunks/TabsExtended.module-DNjJIne-.js.map +0 -1
  592. package/chunks/TabsLine.module-CbVAypRw.js +0 -36
  593. package/chunks/TabsLine.module-CbVAypRw.js.map +0 -1
  594. package/chunks/TooltipDesktop.module-DBiY8cJJ.js +0 -32
  595. package/chunks/TooltipDesktop.module-DBiY8cJJ.js.map +0 -1
  596. package/chunks/TreeView.module-GA-NyzjK.js +0 -12
  597. package/chunks/TreeView.module-GA-NyzjK.js.map +0 -1
  598. package/chunks/utils-BHxrQbA6.js.map +0 -1
  599. package/components/Pagination/utils/paginationUtils.js.map +0 -1
@@ -6,17 +6,17 @@ import React__default from "react";
6
6
  import { i as isEqual, c as clsx } from "../../../../../chunks/vendor-CtuAQuEN.js";
7
7
  import { TooltipContext } from "../../../TootlipContext.js";
8
8
  import { Portal } from "../../../../Portal/Portal.js";
9
- import { ETooltipPreferPlace, ETooltipDirection, ETooltipAlign, ETooltipFlowTypes, ETooltipSizeParameter, ETooltipTypeName, ETooltipEndCoordinates, ETooltipStartCoordinates, ETooltipAxesType, ETooltipSize } from "../../../enums.js";
9
+ import { ETooltipFlowTypes, ETooltipPreferPlace, ETooltipDirection, ETooltipAlign, ETooltipSizeParameter, ETooltipTypeName, ETooltipEndCoordinates, ETooltipStartCoordinates, ETooltipAxesType, ETooltipSize } from "../../../enums.js";
10
10
  import { TooltipDesktopTip } from "./TooltipDesktopTip.js";
11
11
  import { pickZone, axes, calcRelPos, centerOfBoundsFromBounds, calcBounds, equalCoords } from "../../../utils/Positioning.js";
12
- import { s as styles } from "../../../../../chunks/TooltipDesktop.module-DBiY8cJJ.js";
12
+ import { s as styles } from "../../../../../chunks/TooltipDesktop.module-BKIRlstC.js";
13
13
  const flowToTipTranslations = {
14
- column: "translateX",
15
- row: "translateY"
14
+ [ETooltipFlowTypes.COLUMN]: "translateX",
15
+ [ETooltipFlowTypes.ROW]: "translateY"
16
16
  };
17
17
  const flowToTooltipTranslations = {
18
- column: "translateY",
19
- row: "translateX"
18
+ [ETooltipFlowTypes.COLUMN]: "translateY",
19
+ [ETooltipFlowTypes.ROW]: "translateX"
20
20
  };
21
21
  const DIRECTIONS = {
22
22
  [ETooltipPreferPlace.ABOVE]: ETooltipDirection.DOWN,
@@ -79,18 +79,18 @@ class TooltipDesktopBase extends React__default.Component {
79
79
  // нужно рендерить тултип или нет, признак анимационно зависимого рендериннга открыт/закрыт ли tooltip
80
80
  standing: ETooltipPreferPlace.ABOVE
81
81
  });
82
- // Открыть поповер
82
+ /** Открыть подсказку. */
83
83
  __publicField(this, "prepareOpen", () => {
84
84
  if (this.state.exiting) {
85
85
  this.animateExitStop();
86
86
  }
87
87
  this.setState({ isOpen: true, needRenderTooltip: true });
88
88
  });
89
- // Закрыть поповер
89
+ /** Закрыть подсказку. */
90
90
  __publicField(this, "close", () => {
91
91
  this.setState({ isOpen: false });
92
92
  });
93
- // Метод начала отслеживания поповера и анимация его появления
93
+ /** Начало отслеживания подсказки и анимация её появления. */
94
94
  __publicField(this, "enter", () => {
95
95
  this.trackTooltip();
96
96
  this.animateEnter();
@@ -98,11 +98,12 @@ class TooltipDesktopBase extends React__default.Component {
98
98
  this.props.onShow(this.tooltipNode);
99
99
  }
100
100
  });
101
- // Метод окончания отслеживания поповера и анимация его исчезновения
101
+ /** Окончание отслеживания подсказки и анимация её исчезновения. */
102
102
  __publicField(this, "exit", () => {
103
103
  this.animateExit();
104
104
  this.untrackTooltip();
105
105
  });
106
+ /** Сохранение ноды подсказки и ссылок на её тело и стрелочку. */
106
107
  __publicField(this, "setTooltipNode", (node) => {
107
108
  const { setTooltipRef } = this.props;
108
109
  if (node) {
@@ -112,7 +113,7 @@ class TooltipDesktopBase extends React__default.Component {
112
113
  this.tooltipNode = node;
113
114
  setTooltipRef == null ? void 0 : setTooltipRef(this.tooltipNode);
114
115
  });
115
- // Рендер поповера
116
+ /** Расчёт и применение положения подсказки и её стрелочки. */
116
117
  __publicField(this, "resolveTooltipLayout", () => {
117
118
  if (!this.tooltipNode) {
118
119
  return;
@@ -140,7 +141,7 @@ class TooltipDesktopBase extends React__default.Component {
140
141
  pos[axis.main.start] += OFFSET * zone.order;
141
142
  let dockingEdgeBufferLength = 0;
142
143
  if (this.bodyEl) {
143
- dockingEdgeBufferLength = Math.round(+getComputedStyle(this.bodyEl).borderRadius.slice(0, -2)) || 0;
144
+ dockingEdgeBufferLength = Math.round(parseFloat(getComputedStyle(this.bodyEl).borderRadius)) || 0;
144
145
  }
145
146
  const frameBuffer = TIP_HEIGHT + OFFSET;
146
147
  const hangingBufferLength = dockingEdgeBufferLength * 2 + TIP_HEIGHT * 2 + frameBuffer;
@@ -186,7 +187,7 @@ class TooltipDesktopBase extends React__default.Component {
186
187
  this.tipEl.style.borderWidth = `${TIP_HEIGHT}px`;
187
188
  }
188
189
  });
189
- // Метод проверки изменения границ обернутого элемента.
190
+ /** Проверка изменения границ целевого элемента. Возвращает true, если границы изменились. */
190
191
  __publicField(this, "setAndCheckResizeTargetBounds", () => {
191
192
  const { targetRef } = this.props;
192
193
  if (!targetRef.current) {
@@ -199,20 +200,20 @@ class TooltipDesktopBase extends React__default.Component {
199
200
  this.targetBounds = newTargetBounds;
200
201
  return true;
201
202
  });
202
- // Метод проверки необходимости перерисовки лейаута
203
+ /** Перерасчёт положения, если границы целевого элемента изменились. */
203
204
  __publicField(this, "checkTargetReposition", () => {
204
205
  if (this.setAndCheckResizeTargetBounds()) {
205
206
  this.resolveTooltipLayout();
206
207
  }
207
208
  });
208
- // Метод измерения размеров тела тултипа (без стрелочки)
209
+ /** Измерение размеров тела подсказки (без стрелочки). */
209
210
  __publicField(this, "setTooltipBodySize", () => {
210
211
  if (!this.bodyEl) {
211
212
  return;
212
213
  }
213
214
  this.tooltipBodySize = { w: this.bodyEl.offsetWidth, h: this.bodyEl.offsetHeight };
214
215
  });
215
- // Очистка таймеров анимации исчезновения
216
+ /** Очистка таймеров анимации исчезновения. */
216
217
  __publicField(this, "animateExitStop", () => {
217
218
  if (this.exitingAnimationTimer1) {
218
219
  window.clearTimeout(this.exitingAnimationTimer1);
@@ -222,7 +223,7 @@ class TooltipDesktopBase extends React__default.Component {
222
223
  }
223
224
  this.setState({ exiting: false });
224
225
  });
225
- // Анимация исчезновения
226
+ /** Анимация исчезновения. */
226
227
  __publicField(this, "animateExit", () => {
227
228
  this.setState({ exiting: true });
228
229
  this.exitingAnimationTimer2 = window.setTimeout(() => {
@@ -238,7 +239,7 @@ class TooltipDesktopBase extends React__default.Component {
238
239
  this.setState({ exiting: false, needRenderTooltip: false });
239
240
  }, ENTER_EXIT_TRANSITION_DURATION_MS);
240
241
  });
241
- // Анимация появления
242
+ /** Анимация появления. */
242
243
  __publicField(this, "animateEnter", () => {
243
244
  if (!this.tooltipNode) {
244
245
  return;
@@ -255,7 +256,7 @@ class TooltipDesktopBase extends React__default.Component {
255
256
  this.tooltipNode.style.opacity = "1";
256
257
  this.tooltipNode.style.transform = "translateY(0)";
257
258
  });
258
- // Отслеживание поповера
259
+ /** Начало отслеживания положения подсказки: опрос границ, подписка на scroll и resize. */
259
260
  __publicField(this, "trackTooltip", () => {
260
261
  if (!this.tooltipNode) {
261
262
  return;
@@ -269,7 +270,7 @@ class TooltipDesktopBase extends React__default.Component {
269
270
  this.setAndCheckResizeTargetBounds();
270
271
  this.resolveTooltipLayout();
271
272
  });
272
- // Отписка от отслеживания поповера
273
+ /** Отписка от отслеживания положения подсказки. */
273
274
  __publicField(this, "untrackTooltip", () => {
274
275
  if (!this.tooltipNode) {
275
276
  return;
@@ -281,17 +282,17 @@ class TooltipDesktopBase extends React__default.Component {
281
282
  window.removeEventListener("resize", this.onWindowResize);
282
283
  this.hasTracked = false;
283
284
  });
284
- // Перерисовка при скролле "рамки"
285
+ /** Перерасчёт положения при скролле окна. */
285
286
  __publicField(this, "onWindowScroll", () => {
286
287
  this.setAndCheckResizeTargetBounds();
287
288
  this.resolveTooltipLayout();
288
289
  });
289
- // Перерисовка при изменении размеров "рамки"
290
+ /** Перерасчёт положения при изменении размеров окна. */
290
291
  __publicField(this, "onWindowResize", () => {
291
292
  this.windowBounds = calcBounds(window);
292
293
  this.resolveTooltipLayout();
293
294
  });
294
- // Отрисовка самого Tooltip
295
+ /** Разметка подсказки: тело, ссылка, кнопка закрытия и стрелочка. */
295
296
  __publicField(this, "tooltipRender", () => {
296
297
  const {
297
298
  className,
@@ -372,7 +373,7 @@ class TooltipDesktopBase extends React__default.Component {
372
373
  }
373
374
  }
374
375
  }
375
- __publicField(TooltipDesktopBase, "displayName", "TooltipBase");
376
+ __publicField(TooltipDesktopBase, "displayName", "TooltipDesktopBase");
376
377
  __publicField(TooltipDesktopBase, "contextType", TooltipContext);
377
378
  export {
378
379
  TooltipDesktopBase
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipDesktopBase.js","sources":["../../../../../../src/components/Tooltip/components/desktop/components/TooltipDesktopBase.tsx"],"sourcesContent":["import React from \"react\";\nimport isEqual from \"lodash-es/isEqual\";\nimport clsx from \"clsx\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { Portal } from \"@sberbusiness/triplex-next/components/Portal/Portal\";\nimport {\n ETooltipAlign,\n ETooltipAxesType,\n ETooltipDirection,\n ETooltipEndCoordinates,\n ETooltipFlowTypes,\n ETooltipPreferPlace,\n ETooltipSize,\n ETooltipSizeParameter,\n ETooltipStartCoordinates,\n ETooltipTypeName,\n} from \"@sberbusiness/triplex-next/components/Tooltip/enums\";\nimport { TooltipDesktopTip } from \"@sberbusiness/triplex-next/components/Tooltip/components/desktop/components/TooltipDesktopTip\";\nimport {\n ITooltipBounds,\n ITooltipDesktopProps,\n ITooltipDomainSize,\n ITooltipSize,\n} from \"@sberbusiness/triplex-next/components/Tooltip/types\";\nimport {\n axes,\n calcBounds,\n calcRelPos,\n centerOfBoundsFromBounds,\n equalCoords,\n pickZone,\n} from \"@sberbusiness/triplex-next/components/Tooltip/utils/Positioning\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipDesktop.module.less\";\n\n// Маппер flow в translate для Tip (стрелочка)\nconst flowToTipTranslations: { [key: string]: string } = {\n column: \"translateX\",\n row: \"translateY\",\n};\n\n// Маппер flow в translate для самого Tooltip\nconst flowToTooltipTranslations: { [key: string]: string } = {\n column: \"translateY\",\n row: \"translateX\",\n};\n\n// Маппер EPreferPlace в EDirection для Tip (стрелочка)\nconst DIRECTIONS = {\n [ETooltipPreferPlace.ABOVE]: ETooltipDirection.DOWN,\n [ETooltipPreferPlace.BELOW]: ETooltipDirection.UP,\n [ETooltipPreferPlace.LEFT]: ETooltipDirection.RIGHT,\n [ETooltipPreferPlace.RIGHT]: ETooltipDirection.LEFT,\n};\n\n// Интервал опроса в ms необходимости обновления layout\nconst REFRESH_INTERVAL_MS = 200;\n// Время анимаций появления и исчезновения Tooltip'а\nconst ENTER_EXIT_TRANSITION_DURATION_MS = 500;\n// Отступ Tooltip от элемента, px\nconst OFFSET = 2;\n// Высота Tip (стрелочки), px\nconst TIP_HEIGHT = 8;\n// Уголок бегает по периметру максимально на 16 px от края\nconst MAX_FROM_EDGE_FOR_TIP = 16;\n\n/** Свойства компонента TooltipDesktopBase. */\nexport interface ITooltipDesktopBaseProps extends Omit<ITooltipDesktopProps, \"forwardedRef\"> {\n /** Получение ноды Tooltip. */\n setTooltipRef?: (node: HTMLDivElement | null) => void;\n}\n\n/** Состояния компонента TooltipDesktopBase. */\ninterface ITooltipDesktopBaseState {\n /** Для отслеживания того что анимация при закрытии тултипа в прогрессе. */\n exiting: boolean;\n /** Положение Tooltip'a. */\n standing: ETooltipPreferPlace;\n /** Открыт/закрыт ли tooltip. */\n isOpen: boolean;\n /** Нужно рендерить тултип или нет, признак анимационно зависимого рендериннга открыт/закрыт ли tooltip. */\n needRenderTooltip: boolean;\n}\n\n/** Базовый компонент \"Тултипа\". */\nexport class TooltipDesktopBase extends React.Component<ITooltipDesktopBaseProps, ITooltipDesktopBaseState> {\n public static displayName = \"TooltipBase\";\n public static contextType = TooltipContext;\n\n declare context: React.ContextType<typeof TooltipContext>;\n\n private zone: ITooltipDomainSize = {\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.COLUMN,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.ABOVE,\n [ETooltipTypeName.SIDE]: ETooltipAlign.CENTER,\n cutOff: 0,\n order: 0,\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n private tooltipBodySize: ITooltipSize = {\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n private targetBounds: ITooltipBounds = {\n [ETooltipStartCoordinates.X]: 0,\n [ETooltipEndCoordinates.X]: 0,\n [ETooltipStartCoordinates.Y]: 0,\n [ETooltipEndCoordinates.Y]: 0,\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n private windowBounds: ITooltipBounds = {\n [ETooltipStartCoordinates.X]: 0,\n [ETooltipEndCoordinates.X]: 0,\n [ETooltipStartCoordinates.Y]: 0,\n [ETooltipEndCoordinates.Y]: 0,\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n\n private bodyRef = React.createRef<HTMLDivElement>();\n private tipRef = React.createRef<HTMLDivElement>();\n\n private tipEl: HTMLElement | null = null;\n private bodyEl: HTMLElement | null = null;\n private tooltipNode: HTMLDivElement | null = null;\n private hasTracked = false;\n private exitingAnimationTimer1: number | null = null;\n private exitingAnimationTimer2: number | null = null;\n private checkLayoutInterval: number | null = null;\n\n public state: ITooltipDesktopBaseState = {\n exiting: false, // для отслеживания того что анимация при закрытии тултипа в прогрессе.\n isOpen: this.props.isOpen, // для отслеживания открыт/закрыт ли tooltip.\n needRenderTooltip: this.props.isOpen, // нужно рендерить тултип или нет, признак анимационно зависимого рендериннга открыт/закрыт ли tooltip\n standing: ETooltipPreferPlace.ABOVE,\n };\n\n public render() {\n const { renderContainer } = this.props;\n const { needRenderTooltip } = this.state;\n const { elements } = this.context;\n\n return (\n <>\n {elements.target}\n {needRenderTooltip && (\n <Portal container={renderContainer ?? document.body}>{this.tooltipRender()}</Portal>\n )}\n </>\n );\n }\n\n public componentDidMount(): void {\n if (this.props.isOpen) {\n this.enter();\n }\n }\n\n public componentDidUpdate(prevProps: ITooltipDesktopBaseProps, prevState: ITooltipDesktopBaseState): void {\n const props = this.props;\n const state = this.state;\n\n const willOpen = !prevProps.isOpen && props.isOpen;\n const willClose = prevProps.isOpen && !props.isOpen;\n\n if (willOpen) {\n this.prepareOpen();\n return;\n } else if (willClose) {\n this.close();\n return;\n }\n\n const didOpen = !prevState.isOpen && state.isOpen;\n const didClose = prevState.isOpen && !state.isOpen;\n\n if (didOpen) {\n this.enter();\n return;\n } else if (didClose) {\n this.exit();\n return;\n }\n\n if (state.isOpen && !isEqual(prevProps.children, props.children)) {\n this.setTooltipBodySize();\n this.setAndCheckResizeTargetBounds();\n this.resolveTooltipLayout();\n }\n }\n\n public componentWillUnmount(): void {\n /* If the Tooltip is unmounted while animating,\n clear the animation so no setState occurred. */\n this.animateExitStop();\n\n if (this.hasTracked) {\n this.untrackTooltip();\n }\n }\n\n // Открыть поповер\n private prepareOpen = () => {\n if (this.state.exiting) {\n this.animateExitStop();\n }\n this.setState({ isOpen: true, needRenderTooltip: true });\n };\n\n // Закрыть поповер\n private close = () => {\n this.setState({ isOpen: false });\n };\n\n // Метод начала отслеживания поповера и анимация его появления\n private enter = () => {\n this.trackTooltip();\n this.animateEnter();\n if (this.props.onShow && this.tooltipNode) {\n this.props.onShow(this.tooltipNode);\n }\n };\n\n // Метод окончания отслеживания поповера и анимация его исчезновения\n private exit = () => {\n this.animateExit();\n this.untrackTooltip();\n };\n\n private setTooltipNode = (node: HTMLDivElement) => {\n const { setTooltipRef } = this.props;\n\n if (node) {\n // Получение ссылок на тело подсказки и стрелочку.\n this.bodyEl = this.bodyRef.current;\n this.tipEl = this.tipRef.current;\n }\n\n this.tooltipNode = node;\n\n setTooltipRef?.(this.tooltipNode);\n };\n\n // Рендер поповера\n private resolveTooltipLayout = () => {\n if (!this.tooltipNode) {\n return;\n }\n\n const { alignTip } = this.props;\n\n // Поиск оптимальной зоны для позиционирования. Измеряет размер каждой зоны и использует наибольшую.\n // В качестве размера тултипа берется размер тела тултипа плюс высота стрелочки с обеих сторон.\n const zone = pickZone(\n this.props.preferPlace,\n this.windowBounds,\n this.targetBounds,\n TIP_HEIGHT,\n MAX_FROM_EDGE_FOR_TIP,\n {\n h: this.tooltipBodySize.h + TIP_HEIGHT,\n w: this.tooltipBodySize.w + TIP_HEIGHT,\n },\n );\n\n this.zone = zone;\n\n this.setState({\n standing: zone.standing,\n });\n\n const axis = axes[zone.flow];\n\n // Для расчета позиции тултипа, размер тултипа вычисляется в зависимости от зоны где он будет располагаться,\n // если тултип в сверху или снизу то высота стрелочки прибавляется к высоте тултипа\n const tooltipSize = { ...this.tooltipBodySize };\n tooltipSize[zone.flow === ETooltipFlowTypes.ROW ? ETooltipSizeParameter.W : ETooltipSizeParameter.H] +=\n TIP_HEIGHT;\n\n /* При позиционировании на вспомогательной оси нельзя превышать границы. Для достижения этого: Сначала\n позиционируется вспомогательной оси относительно центра вспомогательной оси обернутого элемента, затем\n смещение на необходимую величину, чтобы выйти за границы.\n */\n const pos = calcRelPos(zone, this.targetBounds, tooltipSize);\n\n // Смещение позволяет разработчику контролировать дистанцию между Tip (стрелочкой) и обернутым элементом.\n pos[axis.main.start] += OFFSET * zone.order;\n\n let dockingEdgeBufferLength = 0;\n if (this.bodyEl) {\n dockingEdgeBufferLength = Math.round(+getComputedStyle(this.bodyEl).borderRadius.slice(0, -2)) || 0;\n }\n /*\n * Ограничение позиционирование обертки внутри элемента рамки. Попытка не попасть в визуально допустимый\n * буфер элемента рамки. Буфер рассчитывается в зависимости от размера Tip (стрелочка) и его OFFSET (отступ).\n */\n const frameBuffer = TIP_HEIGHT + OFFSET;\n const hangingBufferLength = dockingEdgeBufferLength * 2 + TIP_HEIGHT * 2 + frameBuffer;\n const frameCrossStart = this.windowBounds[axis.cross.start];\n const frameCrossEnd = this.windowBounds[axis.cross.end];\n const frameCrossLength = this.windowBounds[axis.cross.size];\n const frameCrossInnerLength = frameCrossLength - frameBuffer * 2;\n const frameCrossInnerStart = frameCrossStart + frameBuffer;\n const frameCrossInnerEnd = frameCrossEnd - frameBuffer;\n const tooltipCrossStart = pos[axis.cross.start];\n const tooltipCrossEnd = pos[axis.cross.end];\n\n if (alignTip === ETooltipAlign.START) {\n pos[axis.cross.start] =\n this.targetBounds[axis.cross.end] -\n MAX_FROM_EDGE_FOR_TIP -\n TIP_HEIGHT -\n this.targetBounds[axis.cross.size] / 2;\n } else if (alignTip === ETooltipAlign.END) {\n pos[axis.cross.start] =\n this.targetBounds[axis.cross.start] -\n tooltipSize[axis.cross.size] +\n MAX_FROM_EDGE_FOR_TIP +\n TIP_HEIGHT +\n this.targetBounds[axis.cross.size] / 2;\n } else if (pos.crossLength > frameCrossLength) {\n /*\n * Если Tooltip не влезает в frameCrossLength тогда просто позиционируем его в `frameCrossStart`.\n * CrossLength тултипа будет принудительно forced to overflow into the `Frame` .\n */\n pos[axis.cross.start] = 0;\n\n // Если tooltipCrossStart выходит за некое пороговое значение targetCrossLength, тогда ограничить его tooltipCrossStart\n } else if (this.targetBounds[axis.cross.end] < hangingBufferLength) {\n pos[axis.cross.start] = this.targetBounds[axis.cross.end] - hangingBufferLength;\n\n /*\n * Проверка, что начало вспомогательной оси в пределах обернутого элемента и его рамок, имеет ли смысл\n * пытаться вместить Tooltip туда\n */\n } else if (this.targetBounds[axis.cross.start] > frameCrossInnerEnd) {\n pos[axis.cross.start] = this.targetBounds[axis.cross.start] - tooltipSize[axis.cross.size];\n\n /* Если tooltipCrossStart не влазит внутрь рамок (honouring buffers) тогда просто центруем поповер в\n оставшейся frameCrossLength.\n */\n } else if (pos.crossLength > frameCrossInnerLength) {\n pos[axis.cross.start] = (frameCrossLength - pos.crossLength) / 2;\n } else if (tooltipCrossStart < frameCrossInnerStart) {\n pos[axis.cross.start] = frameCrossInnerStart;\n } else if (tooltipCrossEnd > frameCrossInnerEnd) {\n pos[axis.cross.start] = pos[axis.cross.start] - (pos[axis.cross.end] - frameCrossInnerEnd);\n }\n /**\n * Применение стилей flow и order. Это может повлиять на последующие измерения высоты и ширины контейнера.\n * Когда Tip (стрелочка) меняет ориентацию из-за изменений `row`/`column`, будет затронуты ширина и высота.\n * Мониторинг лейаута перехватит эти изменения и сам пересчитает лейаут.\n */\n this.tooltipNode.style.flexFlow = zone.flow;\n if (this.bodyEl) {\n this.bodyEl.style.order = zone.order.toString();\n }\n\n // Применение абсолютного позиционирования\n this.tooltipNode.style.top = `${pos.y}px`;\n this.tooltipNode.style.left = `${pos.x}px`;\n\n // Расчёт позиционирования Tip (стрелочки)\n let tipCrossPos =\n centerOfBoundsFromBounds(zone.flow, ETooltipAxesType.CROSS, this.targetBounds, pos) - TIP_HEIGHT;\n\n if (tipCrossPos < MAX_FROM_EDGE_FOR_TIP) {\n tipCrossPos = MAX_FROM_EDGE_FOR_TIP;\n } else if (tipCrossPos > pos.crossLength - MAX_FROM_EDGE_FOR_TIP - TIP_HEIGHT * 2) {\n tipCrossPos = pos.crossLength - MAX_FROM_EDGE_FOR_TIP - TIP_HEIGHT * 2;\n }\n\n if (this.tipEl) {\n this.tipEl.style.transform = `${flowToTipTranslations[zone.flow]}(${tipCrossPos}px)`;\n this.tipEl.style.borderWidth = `${TIP_HEIGHT}px`;\n }\n };\n\n // Метод проверки изменения границ обернутого элемента.\n private setAndCheckResizeTargetBounds = () => {\n const { targetRef } = this.props;\n\n if (!targetRef.current) {\n return false;\n }\n\n const newTargetBounds = calcBounds(targetRef.current);\n if (this.targetBounds && equalCoords(this.targetBounds, newTargetBounds)) {\n return false;\n }\n\n this.targetBounds = newTargetBounds;\n return true;\n };\n\n // Метод проверки необходимости перерисовки лейаута\n private checkTargetReposition = () => {\n if (this.setAndCheckResizeTargetBounds()) {\n this.resolveTooltipLayout();\n }\n };\n\n // Метод измерения размеров тела тултипа (без стрелочки)\n private setTooltipBodySize = () => {\n if (!this.bodyEl) {\n return;\n }\n\n this.tooltipBodySize = { w: this.bodyEl.offsetWidth, h: this.bodyEl.offsetHeight };\n };\n\n // Очистка таймеров анимации исчезновения\n private animateExitStop = () => {\n if (this.exitingAnimationTimer1) {\n window.clearTimeout(this.exitingAnimationTimer1);\n }\n if (this.exitingAnimationTimer2) {\n window.clearTimeout(this.exitingAnimationTimer2);\n }\n this.setState({ exiting: false });\n };\n\n // Анимация исчезновения\n private animateExit = () => {\n this.setState({ exiting: true });\n this.exitingAnimationTimer2 = window.setTimeout(() => {\n window.setTimeout(() => {\n if (!this.tooltipNode) {\n return;\n }\n this.tooltipNode.style.transform = `${flowToTooltipTranslations[this.zone.flow]}(${\n this.zone.order * 50\n }px)`;\n this.tooltipNode.style.opacity = \"0\";\n }, 0);\n }, 0);\n\n this.exitingAnimationTimer1 = window.setTimeout(() => {\n this.setState({ exiting: false, needRenderTooltip: false });\n }, ENTER_EXIT_TRANSITION_DURATION_MS);\n };\n\n // Анимация появления\n private animateEnter = () => {\n if (!this.tooltipNode) {\n return;\n }\n\n // Подготовка стилей появления, чтобы можно было анимировать.\n this.tooltipNode.style.transform = `${flowToTooltipTranslations[this.zone.flow]}(${this.zone.order * 50}px)`;\n this.tooltipNode.style.opacity = \"0\";\n\n /* Hack: http://stackoverflow.com/questions/3485365/how-can-i-force-webkit-to-redraw-repaint-to-propagate-style-changes */\n // После инициализации лейаута применяем анимации transition.\n // Без этой строчки не всегда применяются стили добавленные в style, из-за чего иногда тултип появляется резко подергиваясь\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.tooltipNode.offsetHeight;\n\n if (this.tipEl) {\n this.tipEl.style.transition = \"transform 150ms ease-in\";\n }\n this.tooltipNode.style.transitionProperty = \"opacity, transform\";\n this.tooltipNode.style.transitionDuration = \"500ms\";\n this.tooltipNode.style.transitionTimingFunction = \"cubic-bezier(0.230, 1.000, 0.320, 1.000)\";\n this.tooltipNode.style.opacity = \"1\";\n this.tooltipNode.style.transform = \"translateY(0)\";\n };\n\n // Отслеживание поповера\n private trackTooltip = () => {\n if (!this.tooltipNode) {\n return;\n }\n this.hasTracked = true;\n\n // Установка опроса для проверки изменилось ли положение. Другого способа узнать этого без опроса\n this.checkLayoutInterval = window.setInterval(this.checkTargetReposition, REFRESH_INTERVAL_MS);\n\n /*\n Наблюдение за изменением границ на всех уровнях, при необходимости - перерасчет. Привязка лэйаут монитора\n должна быть сделана сразу, т.к. перерасчет может вызывать рекурсивно изменение в границах. Поэтому если мы\n сделали одноразовый force-layout перед наблюдением, наши расчеты окончательной позиции могут быть неверными.\n */\n\n window.addEventListener(\"scroll\", this.onWindowScroll);\n window.addEventListener(\"resize\", this.onWindowResize);\n\n // Запуск лейаута при первой прогрузке\n this.windowBounds = calcBounds(window); // запомнили размер окна\n this.setTooltipBodySize(); // заполнили размер тултипа\n this.setAndCheckResizeTargetBounds();\n this.resolveTooltipLayout();\n };\n\n // Отписка от отслеживания поповера\n private untrackTooltip = () => {\n if (!this.tooltipNode) {\n return;\n }\n if (this.checkLayoutInterval) {\n window.clearInterval(this.checkLayoutInterval);\n }\n window.removeEventListener(\"scroll\", this.onWindowScroll);\n window.removeEventListener(\"resize\", this.onWindowResize);\n this.hasTracked = false;\n };\n\n // Перерисовка при скролле \"рамки\"\n private onWindowScroll = () => {\n this.setAndCheckResizeTargetBounds();\n this.resolveTooltipLayout();\n };\n\n // Перерисовка при изменении размеров \"рамки\"\n private onWindowResize = () => {\n this.windowBounds = calcBounds(window);\n this.resolveTooltipLayout();\n };\n\n // Отрисовка самого Tooltip\n private tooltipRender: () => React.ReactElement = () => {\n const {\n className,\n size,\n preferPlace,\n alignTip,\n isOpen,\n renderContainer,\n onShow,\n setTooltipRef,\n onKeyDown,\n targetRef,\n ...rest\n } = this.props;\n const { elements } = this.context;\n\n const sizeClass = size === ETooltipSize.SM ? styles.tooltipSM : styles.tooltipLG;\n const classNames = clsx(\n styles.tooltipDesktop,\n sizeClass,\n { [styles.closable]: !!elements.closeButton },\n className,\n );\n\n return (\n <div className={styles.tooltipOverlay}>\n <div className={classNames} {...rest} ref={this.setTooltipNode}>\n <div className={styles.tooltipDesktopContent} ref={this.bodyRef}>\n {elements.body}\n {elements.link}\n {elements.closeButton}\n </div>\n <TooltipDesktopTip direction={DIRECTIONS[this.state.standing]} ref={this.tipRef} />\n </div>\n </div>\n );\n };\n}\n"],"names":["React"],"mappings":";;;;;;;;;;;;AAmCA,MAAM,wBAAmD;AAAA,EACrD,QAAQ;AAAA,EACR,KAAK;AACT;AAGA,MAAM,4BAAuD;AAAA,EACzD,QAAQ;AAAA,EACR,KAAK;AACT;AAGA,MAAM,aAAa;AAAA,EACf,CAAC,oBAAoB,KAAK,GAAG,kBAAkB;AAAA,EAC/C,CAAC,oBAAoB,KAAK,GAAG,kBAAkB;AAAA,EAC/C,CAAC,oBAAoB,IAAI,GAAG,kBAAkB;AAAA,EAC9C,CAAC,oBAAoB,KAAK,GAAG,kBAAkB;AACnD;AAGA,MAAM,sBAAsB;AAE5B,MAAM,oCAAoC;AAE1C,MAAM,SAAS;AAEf,MAAM,aAAa;AAEnB,MAAM,wBAAwB;AAqBvB,MAAM,2BAA2BA,eAAM,UAA8D;AAAA,EAArG;AAAA;AAMK,gCAA2B;AAAA,MAC/B,CAAC,iBAAiB,IAAI,GAAG,kBAAkB;AAAA,MAC3C,CAAC,iBAAiB,QAAQ,GAAG,oBAAoB;AAAA,MACjD,CAAC,iBAAiB,IAAI,GAAG,cAAc;AAAA,MACvC,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,CAAC,sBAAsB,CAAC,GAAG;AAAA,MAC3B,CAAC,sBAAsB,CAAC,GAAG;AAAA,IAAA;AAEvB,2CAAgC;AAAA,MACpC,CAAC,sBAAsB,CAAC,GAAG;AAAA,MAC3B,CAAC,sBAAsB,CAAC,GAAG;AAAA,IAAA;AAEvB,wCAA+B;AAAA,MACnC,CAAC,yBAAyB,CAAC,GAAG;AAAA,MAC9B,CAAC,uBAAuB,CAAC,GAAG;AAAA,MAC5B,CAAC,yBAAyB,CAAC,GAAG;AAAA,MAC9B,CAAC,uBAAuB,CAAC,GAAG;AAAA,MAC5B,CAAC,sBAAsB,CAAC,GAAG;AAAA,MAC3B,CAAC,sBAAsB,CAAC,GAAG;AAAA,IAAA;AAEvB,wCAA+B;AAAA,MACnC,CAAC,yBAAyB,CAAC,GAAG;AAAA,MAC9B,CAAC,uBAAuB,CAAC,GAAG;AAAA,MAC5B,CAAC,yBAAyB,CAAC,GAAG;AAAA,MAC9B,CAAC,uBAAuB,CAAC,GAAG;AAAA,MAC5B,CAAC,sBAAsB,CAAC,GAAG;AAAA,MAC3B,CAAC,sBAAsB,CAAC,GAAG;AAAA,IAAA;AAGvB,mCAAUA,eAAM,UAAA;AAChB,kCAASA,eAAM,UAAA;AAEf,iCAA4B;AAC5B,kCAA6B;AAC7B,uCAAqC;AACrC,sCAAa;AACb,kDAAwC;AACxC,kDAAwC;AACxC,+CAAqC;AAEtC,iCAAkC;AAAA,MACrC,SAAS;AAAA;AAAA,MACT,QAAQ,KAAK,MAAM;AAAA;AAAA,MACnB,mBAAmB,KAAK,MAAM;AAAA;AAAA,MAC9B,UAAU,oBAAoB;AAAA,IAAA;AAoE1B;AAAA,uCAAc,MAAM;AACxB,UAAI,KAAK,MAAM,SAAS;AACpB,aAAK,gBAAA;AAAA,MACT;AACA,WAAK,SAAS,EAAE,QAAQ,MAAM,mBAAmB,MAAM;AAAA,IAC3D;AAGQ;AAAA,iCAAQ,MAAM;AAClB,WAAK,SAAS,EAAE,QAAQ,MAAA,CAAO;AAAA,IACnC;AAGQ;AAAA,iCAAQ,MAAM;AAClB,WAAK,aAAA;AACL,WAAK,aAAA;AACL,UAAI,KAAK,MAAM,UAAU,KAAK,aAAa;AACvC,aAAK,MAAM,OAAO,KAAK,WAAW;AAAA,MACtC;AAAA,IACJ;AAGQ;AAAA,gCAAO,MAAM;AACjB,WAAK,YAAA;AACL,WAAK,eAAA;AAAA,IACT;AAEQ,0CAAiB,CAAC,SAAyB;AAC/C,YAAM,EAAE,kBAAkB,KAAK;AAE/B,UAAI,MAAM;AAEN,aAAK,SAAS,KAAK,QAAQ;AAC3B,aAAK,QAAQ,KAAK,OAAO;AAAA,MAC7B;AAEA,WAAK,cAAc;AAEnB,qDAAgB,KAAK;AAAA,IACzB;AAGQ;AAAA,gDAAuB,MAAM;AACjC,UAAI,CAAC,KAAK,aAAa;AACnB;AAAA,MACJ;AAEA,YAAM,EAAE,aAAa,KAAK;AAI1B,YAAM,OAAO;AAAA,QACT,KAAK,MAAM;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,UACI,GAAG,KAAK,gBAAgB,IAAI;AAAA,UAC5B,GAAG,KAAK,gBAAgB,IAAI;AAAA,QAAA;AAAA,MAChC;AAGJ,WAAK,OAAO;AAEZ,WAAK,SAAS;AAAA,QACV,UAAU,KAAK;AAAA,MAAA,CAClB;AAED,YAAM,OAAO,KAAK,KAAK,IAAI;AAI3B,YAAM,cAAc,EAAE,GAAG,KAAK,gBAAA;AAC9B,kBAAY,KAAK,SAAS,kBAAkB,MAAM,sBAAsB,IAAI,sBAAsB,CAAC,KAC/F;AAMJ,YAAM,MAAM,WAAW,MAAM,KAAK,cAAc,WAAW;AAG3D,UAAI,KAAK,KAAK,KAAK,KAAK,SAAS,KAAK;AAEtC,UAAI,0BAA0B;AAC9B,UAAI,KAAK,QAAQ;AACb,kCAA0B,KAAK,MAAM,CAAC,iBAAiB,KAAK,MAAM,EAAE,aAAa,MAAM,GAAG,EAAE,CAAC,KAAK;AAAA,MACtG;AAKA,YAAM,cAAc,aAAa;AACjC,YAAM,sBAAsB,0BAA0B,IAAI,aAAa,IAAI;AAC3E,YAAM,kBAAkB,KAAK,aAAa,KAAK,MAAM,KAAK;AAC1D,YAAM,gBAAgB,KAAK,aAAa,KAAK,MAAM,GAAG;AACtD,YAAM,mBAAmB,KAAK,aAAa,KAAK,MAAM,IAAI;AAC1D,YAAM,wBAAwB,mBAAmB,cAAc;AAC/D,YAAM,uBAAuB,kBAAkB;AAC/C,YAAM,qBAAqB,gBAAgB;AAC3C,YAAM,oBAAoB,IAAI,KAAK,MAAM,KAAK;AAC9C,YAAM,kBAAkB,IAAI,KAAK,MAAM,GAAG;AAE1C,UAAI,aAAa,cAAc,OAAO;AAClC,YAAI,KAAK,MAAM,KAAK,IAChB,KAAK,aAAa,KAAK,MAAM,GAAG,IAChC,wBACA,aACA,KAAK,aAAa,KAAK,MAAM,IAAI,IAAI;AAAA,MAC7C,WAAW,aAAa,cAAc,KAAK;AACvC,YAAI,KAAK,MAAM,KAAK,IAChB,KAAK,aAAa,KAAK,MAAM,KAAK,IAClC,YAAY,KAAK,MAAM,IAAI,IAC3B,wBACA,aACA,KAAK,aAAa,KAAK,MAAM,IAAI,IAAI;AAAA,MAC7C,WAAW,IAAI,cAAc,kBAAkB;AAK3C,YAAI,KAAK,MAAM,KAAK,IAAI;AAAA,MAG5B,WAAW,KAAK,aAAa,KAAK,MAAM,GAAG,IAAI,qBAAqB;AAChE,YAAI,KAAK,MAAM,KAAK,IAAI,KAAK,aAAa,KAAK,MAAM,GAAG,IAAI;AAAA,MAMhE,WAAW,KAAK,aAAa,KAAK,MAAM,KAAK,IAAI,oBAAoB;AACjE,YAAI,KAAK,MAAM,KAAK,IAAI,KAAK,aAAa,KAAK,MAAM,KAAK,IAAI,YAAY,KAAK,MAAM,IAAI;AAAA,MAK7F,WAAW,IAAI,cAAc,uBAAuB;AAChD,YAAI,KAAK,MAAM,KAAK,KAAK,mBAAmB,IAAI,eAAe;AAAA,MACnE,WAAW,oBAAoB,sBAAsB;AACjD,YAAI,KAAK,MAAM,KAAK,IAAI;AAAA,MAC5B,WAAW,kBAAkB,oBAAoB;AAC7C,YAAI,KAAK,MAAM,KAAK,IAAI,IAAI,KAAK,MAAM,KAAK,KAAK,IAAI,KAAK,MAAM,GAAG,IAAI;AAAA,MAC3E;AAMA,WAAK,YAAY,MAAM,WAAW,KAAK;AACvC,UAAI,KAAK,QAAQ;AACb,aAAK,OAAO,MAAM,QAAQ,KAAK,MAAM,SAAA;AAAA,MACzC;AAGA,WAAK,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC;AACrC,WAAK,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC;AAGtC,UAAI,cACA,yBAAyB,KAAK,MAAM,iBAAiB,OAAO,KAAK,cAAc,GAAG,IAAI;AAE1F,UAAI,cAAc,uBAAuB;AACrC,sBAAc;AAAA,MAClB,WAAW,cAAc,IAAI,cAAc,wBAAwB,aAAa,GAAG;AAC/E,sBAAc,IAAI,cAAc,wBAAwB,aAAa;AAAA,MACzE;AAEA,UAAI,KAAK,OAAO;AACZ,aAAK,MAAM,MAAM,YAAY,GAAG,sBAAsB,KAAK,IAAI,CAAC,IAAI,WAAW;AAC/E,aAAK,MAAM,MAAM,cAAc,GAAG,UAAU;AAAA,MAChD;AAAA,IACJ;AAGQ;AAAA,yDAAgC,MAAM;AAC1C,YAAM,EAAE,cAAc,KAAK;AAE3B,UAAI,CAAC,UAAU,SAAS;AACpB,eAAO;AAAA,MACX;AAEA,YAAM,kBAAkB,WAAW,UAAU,OAAO;AACpD,UAAI,KAAK,gBAAgB,YAAY,KAAK,cAAc,eAAe,GAAG;AACtE,eAAO;AAAA,MACX;AAEA,WAAK,eAAe;AACpB,aAAO;AAAA,IACX;AAGQ;AAAA,iDAAwB,MAAM;AAClC,UAAI,KAAK,iCAAiC;AACtC,aAAK,qBAAA;AAAA,MACT;AAAA,IACJ;AAGQ;AAAA,8CAAqB,MAAM;AAC/B,UAAI,CAAC,KAAK,QAAQ;AACd;AAAA,MACJ;AAEA,WAAK,kBAAkB,EAAE,GAAG,KAAK,OAAO,aAAa,GAAG,KAAK,OAAO,aAAA;AAAA,IACxE;AAGQ;AAAA,2CAAkB,MAAM;AAC5B,UAAI,KAAK,wBAAwB;AAC7B,eAAO,aAAa,KAAK,sBAAsB;AAAA,MACnD;AACA,UAAI,KAAK,wBAAwB;AAC7B,eAAO,aAAa,KAAK,sBAAsB;AAAA,MACnD;AACA,WAAK,SAAS,EAAE,SAAS,MAAA,CAAO;AAAA,IACpC;AAGQ;AAAA,uCAAc,MAAM;AACxB,WAAK,SAAS,EAAE,SAAS,KAAA,CAAM;AAC/B,WAAK,yBAAyB,OAAO,WAAW,MAAM;AAClD,eAAO,WAAW,MAAM;AACpB,cAAI,CAAC,KAAK,aAAa;AACnB;AAAA,UACJ;AACA,eAAK,YAAY,MAAM,YAAY,GAAG,0BAA0B,KAAK,KAAK,IAAI,CAAC,IAC3E,KAAK,KAAK,QAAQ,EACtB;AACA,eAAK,YAAY,MAAM,UAAU;AAAA,QACrC,GAAG,CAAC;AAAA,MACR,GAAG,CAAC;AAEJ,WAAK,yBAAyB,OAAO,WAAW,MAAM;AAClD,aAAK,SAAS,EAAE,SAAS,OAAO,mBAAmB,OAAO;AAAA,MAC9D,GAAG,iCAAiC;AAAA,IACxC;AAGQ;AAAA,wCAAe,MAAM;AACzB,UAAI,CAAC,KAAK,aAAa;AACnB;AAAA,MACJ;AAGA,WAAK,YAAY,MAAM,YAAY,GAAG,0BAA0B,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,QAAQ,EAAE;AACvG,WAAK,YAAY,MAAM,UAAU;AAMjC,WAAK,YAAY;AAEjB,UAAI,KAAK,OAAO;AACZ,aAAK,MAAM,MAAM,aAAa;AAAA,MAClC;AACA,WAAK,YAAY,MAAM,qBAAqB;AAC5C,WAAK,YAAY,MAAM,qBAAqB;AAC5C,WAAK,YAAY,MAAM,2BAA2B;AAClD,WAAK,YAAY,MAAM,UAAU;AACjC,WAAK,YAAY,MAAM,YAAY;AAAA,IACvC;AAGQ;AAAA,wCAAe,MAAM;AACzB,UAAI,CAAC,KAAK,aAAa;AACnB;AAAA,MACJ;AACA,WAAK,aAAa;AAGlB,WAAK,sBAAsB,OAAO,YAAY,KAAK,uBAAuB,mBAAmB;AAQ7F,aAAO,iBAAiB,UAAU,KAAK,cAAc;AACrD,aAAO,iBAAiB,UAAU,KAAK,cAAc;AAGrD,WAAK,eAAe,WAAW,MAAM;AACrC,WAAK,mBAAA;AACL,WAAK,8BAAA;AACL,WAAK,qBAAA;AAAA,IACT;AAGQ;AAAA,0CAAiB,MAAM;AAC3B,UAAI,CAAC,KAAK,aAAa;AACnB;AAAA,MACJ;AACA,UAAI,KAAK,qBAAqB;AAC1B,eAAO,cAAc,KAAK,mBAAmB;AAAA,MACjD;AACA,aAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,WAAK,aAAa;AAAA,IACtB;AAGQ;AAAA,0CAAiB,MAAM;AAC3B,WAAK,8BAAA;AACL,WAAK,qBAAA;AAAA,IACT;AAGQ;AAAA,0CAAiB,MAAM;AAC3B,WAAK,eAAe,WAAW,MAAM;AACrC,WAAK,qBAAA;AAAA,IACT;AAGQ;AAAA,yCAA0C,MAAM;AACpD,YAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACH,KAAK;AACT,YAAM,EAAE,aAAa,KAAK;AAE1B,YAAM,YAAY,SAAS,aAAa,KAAK,OAAO,YAAY,OAAO;AACvE,YAAM,aAAa;AAAA,QACf,OAAO;AAAA,QACP;AAAA,QACA,EAAE,CAAC,OAAO,QAAQ,GAAG,CAAC,CAAC,SAAS,YAAA;AAAA,QAChC;AAAA,MAAA;AAGJ,aACI,oBAAC,OAAA,EAAI,WAAW,OAAO,gBACnB,UAAA,qBAAC,OAAA,EAAI,WAAW,YAAa,GAAG,MAAM,KAAK,KAAK,gBAC5C,UAAA;AAAA,QAAA,qBAAC,SAAI,WAAW,OAAO,uBAAuB,KAAK,KAAK,SACnD,UAAA;AAAA,UAAA,SAAS;AAAA,UACT,SAAS;AAAA,UACT,SAAS;AAAA,QAAA,GACd;AAAA,QACA,oBAAC,mBAAA,EAAkB,WAAW,WAAW,KAAK,MAAM,QAAQ,GAAG,KAAK,KAAK,OAAA,CAAQ;AAAA,MAAA,EAAA,CACrF,EAAA,CACJ;AAAA,IAER;AAAA;AAAA,EAnaO,SAAS;AACZ,UAAM,EAAE,oBAAoB,KAAK;AACjC,UAAM,EAAE,sBAAsB,KAAK;AACnC,UAAM,EAAE,aAAa,KAAK;AAE1B,WACI,qBAAA,UAAA,EACK,UAAA;AAAA,MAAA,SAAS;AAAA,MACT,yCACI,QAAA,EAAO,WAAW,mBAAmB,SAAS,MAAO,UAAA,KAAK,cAAA,EAAc,CAAE;AAAA,IAAA,GAEnF;AAAA,EAER;AAAA,EAEO,oBAA0B;AAC7B,QAAI,KAAK,MAAM,QAAQ;AACnB,WAAK,MAAA;AAAA,IACT;AAAA,EACJ;AAAA,EAEO,mBAAmB,WAAqC,WAA2C;AACtG,UAAM,QAAQ,KAAK;AACnB,UAAM,QAAQ,KAAK;AAEnB,UAAM,WAAW,CAAC,UAAU,UAAU,MAAM;AAC5C,UAAM,YAAY,UAAU,UAAU,CAAC,MAAM;AAE7C,QAAI,UAAU;AACV,WAAK,YAAA;AACL;AAAA,IACJ,WAAW,WAAW;AAClB,WAAK,MAAA;AACL;AAAA,IACJ;AAEA,UAAM,UAAU,CAAC,UAAU,UAAU,MAAM;AAC3C,UAAM,WAAW,UAAU,UAAU,CAAC,MAAM;AAE5C,QAAI,SAAS;AACT,WAAK,MAAA;AACL;AAAA,IACJ,WAAW,UAAU;AACjB,WAAK,KAAA;AACL;AAAA,IACJ;AAEA,QAAI,MAAM,UAAU,CAAC,QAAQ,UAAU,UAAU,MAAM,QAAQ,GAAG;AAC9D,WAAK,mBAAA;AACL,WAAK,8BAAA;AACL,WAAK,qBAAA;AAAA,IACT;AAAA,EACJ;AAAA,EAEO,uBAA6B;AAGhC,SAAK,gBAAA;AAEL,QAAI,KAAK,YAAY;AACjB,WAAK,eAAA;AAAA,IACT;AAAA,EACJ;AAsWJ;AAzdI,cADS,oBACK,eAAc;AAC5B,cAFS,oBAEK,eAAc;"}
1
+ {"version":3,"file":"TooltipDesktopBase.js","sources":["../../../../../../src/components/Tooltip/components/desktop/components/TooltipDesktopBase.tsx"],"sourcesContent":["import React from \"react\";\nimport isEqual from \"lodash-es/isEqual\";\nimport clsx from \"clsx\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { Portal } from \"@sberbusiness/triplex-next/components/Portal/Portal\";\nimport {\n ETooltipAlign,\n ETooltipAxesType,\n ETooltipDirection,\n ETooltipEndCoordinates,\n ETooltipFlowTypes,\n ETooltipPreferPlace,\n ETooltipSize,\n ETooltipSizeParameter,\n ETooltipStartCoordinates,\n ETooltipTypeName,\n} from \"@sberbusiness/triplex-next/components/Tooltip/enums\";\nimport { TooltipDesktopTip } from \"@sberbusiness/triplex-next/components/Tooltip/components/desktop/components/TooltipDesktopTip\";\nimport {\n ITooltipBounds,\n ITooltipDesktopProps,\n ITooltipDomainSize,\n ITooltipSize,\n} from \"@sberbusiness/triplex-next/components/Tooltip/types\";\nimport {\n axes,\n calcBounds,\n calcRelPos,\n centerOfBoundsFromBounds,\n equalCoords,\n pickZone,\n} from \"@sberbusiness/triplex-next/components/Tooltip/utils/Positioning\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipDesktop.module.less\";\n\n// Маппер flow в translate для Tip (стрелочка)\nconst flowToTipTranslations: Record<ETooltipFlowTypes, string> = {\n [ETooltipFlowTypes.COLUMN]: \"translateX\",\n [ETooltipFlowTypes.ROW]: \"translateY\",\n};\n\n// Маппер flow в translate для самого Tooltip\nconst flowToTooltipTranslations: Record<ETooltipFlowTypes, string> = {\n [ETooltipFlowTypes.COLUMN]: \"translateY\",\n [ETooltipFlowTypes.ROW]: \"translateX\",\n};\n\n// Маппер EPreferPlace в EDirection для Tip (стрелочка)\nconst DIRECTIONS: Record<ETooltipPreferPlace, ETooltipDirection> = {\n [ETooltipPreferPlace.ABOVE]: ETooltipDirection.DOWN,\n [ETooltipPreferPlace.BELOW]: ETooltipDirection.UP,\n [ETooltipPreferPlace.LEFT]: ETooltipDirection.RIGHT,\n [ETooltipPreferPlace.RIGHT]: ETooltipDirection.LEFT,\n};\n\n// Интервал опроса в ms необходимости обновления layout\nconst REFRESH_INTERVAL_MS = 200;\n// Время анимаций появления и исчезновения Tooltip'а\nconst ENTER_EXIT_TRANSITION_DURATION_MS = 500;\n// Отступ Tooltip от элемента, px\nconst OFFSET = 2;\n// Высота Tip (стрелочки), px\nconst TIP_HEIGHT = 8;\n// Уголок бегает по периметру максимально на 16 px от края\nconst MAX_FROM_EDGE_FOR_TIP = 16;\n\n/** Свойства компонента TooltipDesktopBase. */\nexport interface ITooltipDesktopBaseProps extends ITooltipDesktopProps {\n /** Получение ноды Tooltip. */\n setTooltipRef?: (node: HTMLDivElement | null) => void;\n}\n\n/** Состояния компонента TooltipDesktopBase. */\ninterface ITooltipDesktopBaseState {\n /** Для отслеживания того что анимация при закрытии тултипа в прогрессе. */\n exiting: boolean;\n /** Положение Tooltip'a. */\n standing: ETooltipPreferPlace;\n /** Открыт/закрыт ли tooltip. */\n isOpen: boolean;\n /** Нужно рендерить тултип или нет, признак анимационно зависимого рендериннга открыт/закрыт ли tooltip. */\n needRenderTooltip: boolean;\n}\n\n/**\n * Базовый компонент \"Тултипа\".\n * Рендерит подсказку в Portal, вычисляет её положение относительно целевого элемента\n * и проигрывает анимации появления и исчезновения.\n */\nexport class TooltipDesktopBase extends React.Component<ITooltipDesktopBaseProps, ITooltipDesktopBaseState> {\n public static displayName = \"TooltipDesktopBase\";\n public static contextType = TooltipContext;\n\n declare context: React.ContextType<typeof TooltipContext>;\n\n private zone: ITooltipDomainSize = {\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.COLUMN,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.ABOVE,\n [ETooltipTypeName.SIDE]: ETooltipAlign.CENTER,\n cutOff: 0,\n order: 0,\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n private tooltipBodySize: ITooltipSize = {\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n private targetBounds: ITooltipBounds = {\n [ETooltipStartCoordinates.X]: 0,\n [ETooltipEndCoordinates.X]: 0,\n [ETooltipStartCoordinates.Y]: 0,\n [ETooltipEndCoordinates.Y]: 0,\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n private windowBounds: ITooltipBounds = {\n [ETooltipStartCoordinates.X]: 0,\n [ETooltipEndCoordinates.X]: 0,\n [ETooltipStartCoordinates.Y]: 0,\n [ETooltipEndCoordinates.Y]: 0,\n [ETooltipSizeParameter.H]: 0,\n [ETooltipSizeParameter.W]: 0,\n };\n\n private bodyRef = React.createRef<HTMLDivElement>();\n private tipRef = React.createRef<HTMLDivElement>();\n\n private tipEl: HTMLElement | null = null;\n private bodyEl: HTMLElement | null = null;\n private tooltipNode: HTMLDivElement | null = null;\n private hasTracked = false;\n private exitingAnimationTimer1: number | null = null;\n private exitingAnimationTimer2: number | null = null;\n private checkLayoutInterval: number | null = null;\n\n public state: ITooltipDesktopBaseState = {\n exiting: false, // для отслеживания того что анимация при закрытии тултипа в прогрессе.\n isOpen: this.props.isOpen, // для отслеживания открыт/закрыт ли tooltip.\n needRenderTooltip: this.props.isOpen, // нужно рендерить тултип или нет, признак анимационно зависимого рендериннга открыт/закрыт ли tooltip\n standing: ETooltipPreferPlace.ABOVE,\n };\n\n public render() {\n const { renderContainer } = this.props;\n const { needRenderTooltip } = this.state;\n const { elements } = this.context;\n\n return (\n <>\n {elements.target}\n {needRenderTooltip && (\n <Portal container={renderContainer ?? document.body}>{this.tooltipRender()}</Portal>\n )}\n </>\n );\n }\n\n public componentDidMount(): void {\n if (this.props.isOpen) {\n this.enter();\n }\n }\n\n public componentDidUpdate(prevProps: ITooltipDesktopBaseProps, prevState: ITooltipDesktopBaseState): void {\n const props = this.props;\n const state = this.state;\n\n const willOpen = !prevProps.isOpen && props.isOpen;\n const willClose = prevProps.isOpen && !props.isOpen;\n\n if (willOpen) {\n this.prepareOpen();\n return;\n } else if (willClose) {\n this.close();\n return;\n }\n\n const didOpen = !prevState.isOpen && state.isOpen;\n const didClose = prevState.isOpen && !state.isOpen;\n\n if (didOpen) {\n this.enter();\n return;\n } else if (didClose) {\n this.exit();\n return;\n }\n\n if (state.isOpen && !isEqual(prevProps.children, props.children)) {\n this.setTooltipBodySize();\n this.setAndCheckResizeTargetBounds();\n this.resolveTooltipLayout();\n }\n }\n\n public componentWillUnmount(): void {\n /* If the Tooltip is unmounted while animating,\n clear the animation so no setState occurred. */\n this.animateExitStop();\n\n if (this.hasTracked) {\n this.untrackTooltip();\n }\n }\n\n /** Открыть подсказку. */\n private prepareOpen = () => {\n if (this.state.exiting) {\n this.animateExitStop();\n }\n this.setState({ isOpen: true, needRenderTooltip: true });\n };\n\n /** Закрыть подсказку. */\n private close = () => {\n this.setState({ isOpen: false });\n };\n\n /** Начало отслеживания подсказки и анимация её появления. */\n private enter = () => {\n this.trackTooltip();\n this.animateEnter();\n if (this.props.onShow && this.tooltipNode) {\n this.props.onShow(this.tooltipNode);\n }\n };\n\n /** Окончание отслеживания подсказки и анимация её исчезновения. */\n private exit = () => {\n this.animateExit();\n this.untrackTooltip();\n };\n\n /** Сохранение ноды подсказки и ссылок на её тело и стрелочку. */\n private setTooltipNode = (node: HTMLDivElement | null) => {\n const { setTooltipRef } = this.props;\n\n if (node) {\n // Получение ссылок на тело подсказки и стрелочку.\n this.bodyEl = this.bodyRef.current;\n this.tipEl = this.tipRef.current;\n }\n\n this.tooltipNode = node;\n\n setTooltipRef?.(this.tooltipNode);\n };\n\n /** Расчёт и применение положения подсказки и её стрелочки. */\n private resolveTooltipLayout = () => {\n if (!this.tooltipNode) {\n return;\n }\n\n const { alignTip } = this.props;\n\n // Поиск оптимальной зоны для позиционирования. Измеряет размер каждой зоны и использует наибольшую.\n // В качестве размера тултипа берется размер тела тултипа плюс высота стрелочки с обеих сторон.\n const zone = pickZone(\n this.props.preferPlace,\n this.windowBounds,\n this.targetBounds,\n TIP_HEIGHT,\n MAX_FROM_EDGE_FOR_TIP,\n {\n h: this.tooltipBodySize.h + TIP_HEIGHT,\n w: this.tooltipBodySize.w + TIP_HEIGHT,\n },\n );\n\n this.zone = zone;\n\n this.setState({\n standing: zone.standing,\n });\n\n const axis = axes[zone.flow];\n\n // Для расчета позиции тултипа, размер тултипа вычисляется в зависимости от зоны где он будет располагаться,\n // если тултип в сверху или снизу то высота стрелочки прибавляется к высоте тултипа\n const tooltipSize = { ...this.tooltipBodySize };\n tooltipSize[zone.flow === ETooltipFlowTypes.ROW ? ETooltipSizeParameter.W : ETooltipSizeParameter.H] +=\n TIP_HEIGHT;\n\n /* При позиционировании на вспомогательной оси нельзя превышать границы. Для достижения этого: Сначала\n позиционируется вспомогательной оси относительно центра вспомогательной оси обернутого элемента, затем\n смещение на необходимую величину, чтобы выйти за границы.\n */\n const pos = calcRelPos(zone, this.targetBounds, tooltipSize);\n\n // Смещение позволяет разработчику контролировать дистанцию между Tip (стрелочкой) и обернутым элементом.\n pos[axis.main.start] += OFFSET * zone.order;\n\n let dockingEdgeBufferLength = 0;\n if (this.bodyEl) {\n dockingEdgeBufferLength = Math.round(parseFloat(getComputedStyle(this.bodyEl).borderRadius)) || 0;\n }\n /*\n * Ограничение позиционирование обертки внутри элемента рамки. Попытка не попасть в визуально допустимый\n * буфер элемента рамки. Буфер рассчитывается в зависимости от размера Tip (стрелочка) и его OFFSET (отступ).\n */\n const frameBuffer = TIP_HEIGHT + OFFSET;\n const hangingBufferLength = dockingEdgeBufferLength * 2 + TIP_HEIGHT * 2 + frameBuffer;\n const frameCrossStart = this.windowBounds[axis.cross.start];\n const frameCrossEnd = this.windowBounds[axis.cross.end];\n const frameCrossLength = this.windowBounds[axis.cross.size];\n const frameCrossInnerLength = frameCrossLength - frameBuffer * 2;\n const frameCrossInnerStart = frameCrossStart + frameBuffer;\n const frameCrossInnerEnd = frameCrossEnd - frameBuffer;\n const tooltipCrossStart = pos[axis.cross.start];\n const tooltipCrossEnd = pos[axis.cross.end];\n\n if (alignTip === ETooltipAlign.START) {\n pos[axis.cross.start] =\n this.targetBounds[axis.cross.end] -\n MAX_FROM_EDGE_FOR_TIP -\n TIP_HEIGHT -\n this.targetBounds[axis.cross.size] / 2;\n } else if (alignTip === ETooltipAlign.END) {\n pos[axis.cross.start] =\n this.targetBounds[axis.cross.start] -\n tooltipSize[axis.cross.size] +\n MAX_FROM_EDGE_FOR_TIP +\n TIP_HEIGHT +\n this.targetBounds[axis.cross.size] / 2;\n } else if (pos.crossLength > frameCrossLength) {\n /*\n * Если Tooltip не влезает в frameCrossLength тогда просто позиционируем его в `frameCrossStart`.\n * CrossLength тултипа будет принудительно forced to overflow into the `Frame` .\n */\n pos[axis.cross.start] = 0;\n\n // Если tooltipCrossStart выходит за некое пороговое значение targetCrossLength, тогда ограничить его tooltipCrossStart\n } else if (this.targetBounds[axis.cross.end] < hangingBufferLength) {\n pos[axis.cross.start] = this.targetBounds[axis.cross.end] - hangingBufferLength;\n\n /*\n * Проверка, что начало вспомогательной оси в пределах обернутого элемента и его рамок, имеет ли смысл\n * пытаться вместить Tooltip туда\n */\n } else if (this.targetBounds[axis.cross.start] > frameCrossInnerEnd) {\n pos[axis.cross.start] = this.targetBounds[axis.cross.start] - tooltipSize[axis.cross.size];\n\n /* Если tooltipCrossStart не влазит внутрь рамок (honouring buffers) тогда просто центруем поповер в\n оставшейся frameCrossLength.\n */\n } else if (pos.crossLength > frameCrossInnerLength) {\n pos[axis.cross.start] = (frameCrossLength - pos.crossLength) / 2;\n } else if (tooltipCrossStart < frameCrossInnerStart) {\n pos[axis.cross.start] = frameCrossInnerStart;\n } else if (tooltipCrossEnd > frameCrossInnerEnd) {\n pos[axis.cross.start] = pos[axis.cross.start] - (pos[axis.cross.end] - frameCrossInnerEnd);\n }\n /**\n * Применение стилей flow и order. Это может повлиять на последующие измерения высоты и ширины контейнера.\n * Когда Tip (стрелочка) меняет ориентацию из-за изменений `row`/`column`, будет затронуты ширина и высота.\n * Мониторинг лейаута перехватит эти изменения и сам пересчитает лейаут.\n */\n this.tooltipNode.style.flexFlow = zone.flow;\n if (this.bodyEl) {\n this.bodyEl.style.order = zone.order.toString();\n }\n\n // Применение абсолютного позиционирования\n this.tooltipNode.style.top = `${pos.y}px`;\n this.tooltipNode.style.left = `${pos.x}px`;\n\n // Расчёт позиционирования Tip (стрелочки)\n let tipCrossPos =\n centerOfBoundsFromBounds(zone.flow, ETooltipAxesType.CROSS, this.targetBounds, pos) - TIP_HEIGHT;\n\n if (tipCrossPos < MAX_FROM_EDGE_FOR_TIP) {\n tipCrossPos = MAX_FROM_EDGE_FOR_TIP;\n } else if (tipCrossPos > pos.crossLength - MAX_FROM_EDGE_FOR_TIP - TIP_HEIGHT * 2) {\n tipCrossPos = pos.crossLength - MAX_FROM_EDGE_FOR_TIP - TIP_HEIGHT * 2;\n }\n\n if (this.tipEl) {\n this.tipEl.style.transform = `${flowToTipTranslations[zone.flow]}(${tipCrossPos}px)`;\n this.tipEl.style.borderWidth = `${TIP_HEIGHT}px`;\n }\n };\n\n /** Проверка изменения границ целевого элемента. Возвращает true, если границы изменились. */\n private setAndCheckResizeTargetBounds = () => {\n const { targetRef } = this.props;\n\n if (!targetRef.current) {\n return false;\n }\n\n const newTargetBounds = calcBounds(targetRef.current);\n if (this.targetBounds && equalCoords(this.targetBounds, newTargetBounds)) {\n return false;\n }\n\n this.targetBounds = newTargetBounds;\n return true;\n };\n\n /** Перерасчёт положения, если границы целевого элемента изменились. */\n private checkTargetReposition = () => {\n if (this.setAndCheckResizeTargetBounds()) {\n this.resolveTooltipLayout();\n }\n };\n\n /** Измерение размеров тела подсказки (без стрелочки). */\n private setTooltipBodySize = () => {\n if (!this.bodyEl) {\n return;\n }\n\n this.tooltipBodySize = { w: this.bodyEl.offsetWidth, h: this.bodyEl.offsetHeight };\n };\n\n /** Очистка таймеров анимации исчезновения. */\n private animateExitStop = () => {\n if (this.exitingAnimationTimer1) {\n window.clearTimeout(this.exitingAnimationTimer1);\n }\n if (this.exitingAnimationTimer2) {\n window.clearTimeout(this.exitingAnimationTimer2);\n }\n this.setState({ exiting: false });\n };\n\n /** Анимация исчезновения. */\n private animateExit = () => {\n this.setState({ exiting: true });\n this.exitingAnimationTimer2 = window.setTimeout(() => {\n window.setTimeout(() => {\n if (!this.tooltipNode) {\n return;\n }\n this.tooltipNode.style.transform = `${flowToTooltipTranslations[this.zone.flow]}(${\n this.zone.order * 50\n }px)`;\n this.tooltipNode.style.opacity = \"0\";\n }, 0);\n }, 0);\n\n this.exitingAnimationTimer1 = window.setTimeout(() => {\n this.setState({ exiting: false, needRenderTooltip: false });\n }, ENTER_EXIT_TRANSITION_DURATION_MS);\n };\n\n /** Анимация появления. */\n private animateEnter = () => {\n if (!this.tooltipNode) {\n return;\n }\n\n // Подготовка стилей появления, чтобы можно было анимировать.\n this.tooltipNode.style.transform = `${flowToTooltipTranslations[this.zone.flow]}(${this.zone.order * 50}px)`;\n this.tooltipNode.style.opacity = \"0\";\n\n /* Hack: http://stackoverflow.com/questions/3485365/how-can-i-force-webkit-to-redraw-repaint-to-propagate-style-changes */\n // После инициализации лейаута применяем анимации transition.\n // Без этой строчки не всегда применяются стили добавленные в style, из-за чего иногда тултип появляется резко подергиваясь\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.tooltipNode.offsetHeight;\n\n if (this.tipEl) {\n this.tipEl.style.transition = \"transform 150ms ease-in\";\n }\n this.tooltipNode.style.transitionProperty = \"opacity, transform\";\n this.tooltipNode.style.transitionDuration = \"500ms\";\n this.tooltipNode.style.transitionTimingFunction = \"cubic-bezier(0.230, 1.000, 0.320, 1.000)\";\n this.tooltipNode.style.opacity = \"1\";\n this.tooltipNode.style.transform = \"translateY(0)\";\n };\n\n /** Начало отслеживания положения подсказки: опрос границ, подписка на scroll и resize. */\n private trackTooltip = () => {\n if (!this.tooltipNode) {\n return;\n }\n this.hasTracked = true;\n\n // Установка опроса для проверки изменилось ли положение. Другого способа узнать этого без опроса\n this.checkLayoutInterval = window.setInterval(this.checkTargetReposition, REFRESH_INTERVAL_MS);\n\n /*\n Наблюдение за изменением границ на всех уровнях, при необходимости - перерасчет. Привязка лэйаут монитора\n должна быть сделана сразу, т.к. перерасчет может вызывать рекурсивно изменение в границах. Поэтому если мы\n сделали одноразовый force-layout перед наблюдением, наши расчеты окончательной позиции могут быть неверными.\n */\n\n window.addEventListener(\"scroll\", this.onWindowScroll);\n window.addEventListener(\"resize\", this.onWindowResize);\n\n // Запуск лейаута при первой прогрузке\n this.windowBounds = calcBounds(window); // запомнили размер окна\n this.setTooltipBodySize(); // заполнили размер тултипа\n this.setAndCheckResizeTargetBounds();\n this.resolveTooltipLayout();\n };\n\n /** Отписка от отслеживания положения подсказки. */\n private untrackTooltip = () => {\n if (!this.tooltipNode) {\n return;\n }\n if (this.checkLayoutInterval) {\n window.clearInterval(this.checkLayoutInterval);\n }\n window.removeEventListener(\"scroll\", this.onWindowScroll);\n window.removeEventListener(\"resize\", this.onWindowResize);\n this.hasTracked = false;\n };\n\n /** Перерасчёт положения при скролле окна. */\n private onWindowScroll = () => {\n this.setAndCheckResizeTargetBounds();\n this.resolveTooltipLayout();\n };\n\n /** Перерасчёт положения при изменении размеров окна. */\n private onWindowResize = () => {\n this.windowBounds = calcBounds(window);\n this.resolveTooltipLayout();\n };\n\n /** Разметка подсказки: тело, ссылка, кнопка закрытия и стрелочка. */\n private tooltipRender = (): React.ReactElement => {\n const {\n className,\n size,\n preferPlace,\n alignTip,\n isOpen,\n renderContainer,\n onShow,\n setTooltipRef,\n onKeyDown,\n targetRef,\n ...rest\n } = this.props;\n const { elements } = this.context;\n\n const sizeClass = size === ETooltipSize.SM ? styles.tooltipSM : styles.tooltipLG;\n const classNames = clsx(\n styles.tooltipDesktop,\n sizeClass,\n { [styles.closable]: !!elements.closeButton },\n className,\n );\n\n return (\n <div className={styles.tooltipOverlay}>\n <div className={classNames} {...rest} ref={this.setTooltipNode}>\n <div className={styles.tooltipDesktopContent} ref={this.bodyRef}>\n {elements.body}\n {elements.link}\n {elements.closeButton}\n </div>\n <TooltipDesktopTip direction={DIRECTIONS[this.state.standing]} ref={this.tipRef} />\n </div>\n </div>\n );\n };\n}\n"],"names":["React"],"mappings":"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"}
@@ -2,25 +2,16 @@ import { jsx } from "react/jsx-runtime";
2
2
  import React__default from "react";
3
3
  import { ETooltipDirection } from "../../../enums.js";
4
4
  import { c as clsx } from "../../../../../chunks/vendor-CtuAQuEN.js";
5
- import { s as styles } from "../../../../../chunks/TooltipDesktop.module-DBiY8cJJ.js";
5
+ import { s as styles } from "../../../../../chunks/TooltipDesktop.module-BKIRlstC.js";
6
+ const DIRECTION_CLASS_NAMES = {
7
+ [ETooltipDirection.UP]: styles.up,
8
+ [ETooltipDirection.DOWN]: styles.down,
9
+ [ETooltipDirection.LEFT]: styles.left,
10
+ [ETooltipDirection.RIGHT]: styles.right
11
+ };
6
12
  const TooltipDesktopTip = React__default.forwardRef((props, ref) => {
7
13
  const { direction } = props;
8
- let directionClass;
9
- switch (direction) {
10
- case ETooltipDirection.UP:
11
- directionClass = styles.up;
12
- break;
13
- case ETooltipDirection.DOWN:
14
- directionClass = styles.down;
15
- break;
16
- case ETooltipDirection.LEFT:
17
- directionClass = styles.left;
18
- break;
19
- case ETooltipDirection.RIGHT:
20
- directionClass = styles.right;
21
- break;
22
- }
23
- return /* @__PURE__ */ jsx("div", { className: clsx(styles.tooltipDesktopTip, directionClass), ref });
14
+ return /* @__PURE__ */ jsx("div", { className: clsx(styles.tooltipDesktopTip, DIRECTION_CLASS_NAMES[direction]), ref });
24
15
  });
25
16
  TooltipDesktopTip.displayName = "TooltipDesktopTip";
26
17
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipDesktopTip.js","sources":["../../../../../../src/components/Tooltip/components/desktop/components/TooltipDesktopTip.tsx"],"sourcesContent":["import React from \"react\";\nimport { ETooltipDirection } from \"@sberbusiness/triplex-next/components/Tooltip/enums\";\nimport clsx from \"clsx\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipDesktop.module.less\";\n\n/** Свойства компонента TooltipDesktopTip. */\ninterface ITooltipDesktopTipProps {\n /** Направление, на которое смотрит указатель \"стрелочки\" (треугольника). */\n direction: ETooltipDirection;\n /** Дочерние элементы. */\n children?: never;\n}\n\n/** Компонент \"стрелочка\" (треугольник) Tooltip'а. */\nexport const TooltipDesktopTip = React.forwardRef<HTMLDivElement, ITooltipDesktopTipProps>((props, ref) => {\n const { direction } = props;\n\n let directionClass;\n\n switch (direction) {\n case ETooltipDirection.UP:\n directionClass = styles.up;\n break;\n case ETooltipDirection.DOWN:\n directionClass = styles.down;\n break;\n case ETooltipDirection.LEFT:\n directionClass = styles.left;\n break;\n case ETooltipDirection.RIGHT:\n directionClass = styles.right;\n break;\n }\n\n return <div className={clsx(styles.tooltipDesktopTip, directionClass)} ref={ref} />;\n});\n\nTooltipDesktopTip.displayName = \"TooltipDesktopTip\";\n"],"names":["React"],"mappings":";;;;;AAcO,MAAM,oBAAoBA,eAAM,WAAoD,CAAC,OAAO,QAAQ;AACvG,QAAM,EAAE,cAAc;AAEtB,MAAI;AAEJ,UAAQ,WAAA;AAAA,IACJ,KAAK,kBAAkB;AACnB,uBAAiB,OAAO;AACxB;AAAA,IACJ,KAAK,kBAAkB;AACnB,uBAAiB,OAAO;AACxB;AAAA,IACJ,KAAK,kBAAkB;AACnB,uBAAiB,OAAO;AACxB;AAAA,IACJ,KAAK,kBAAkB;AACnB,uBAAiB,OAAO;AACxB;AAAA,EAAA;AAGR,SAAO,oBAAC,SAAI,WAAW,KAAK,OAAO,mBAAmB,cAAc,GAAG,KAAU;AACrF,CAAC;AAED,kBAAkB,cAAc;"}
1
+ {"version":3,"file":"TooltipDesktopTip.js","sources":["../../../../../../src/components/Tooltip/components/desktop/components/TooltipDesktopTip.tsx"],"sourcesContent":["import React from \"react\";\nimport { ETooltipDirection } from \"@sberbusiness/triplex-next/components/Tooltip/enums\";\nimport clsx from \"clsx\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipDesktop.module.less\";\n\n/** Класс модификатора для каждого направления указателя. */\nconst DIRECTION_CLASS_NAMES: Record<ETooltipDirection, string> = {\n [ETooltipDirection.UP]: styles.up,\n [ETooltipDirection.DOWN]: styles.down,\n [ETooltipDirection.LEFT]: styles.left,\n [ETooltipDirection.RIGHT]: styles.right,\n};\n\n/** Свойства компонента TooltipDesktopTip. */\ninterface ITooltipDesktopTipProps {\n /** Направление, на которое смотрит указатель \"стрелочки\" (треугольника). */\n direction: ETooltipDirection;\n /** Дочерние элементы. */\n children?: never;\n}\n\n/** Компонент \"стрелочка\" (треугольник) Tooltip'а. */\nexport const TooltipDesktopTip = React.forwardRef<HTMLDivElement, ITooltipDesktopTipProps>((props, ref) => {\n const { direction } = props;\n\n return <div className={clsx(styles.tooltipDesktopTip, DIRECTION_CLASS_NAMES[direction])} ref={ref} />;\n});\n\nTooltipDesktopTip.displayName = \"TooltipDesktopTip\";\n"],"names":["React"],"mappings":";;;;;AAMA,MAAM,wBAA2D;AAAA,EAC7D,CAAC,kBAAkB,EAAE,GAAG,OAAO;AAAA,EAC/B,CAAC,kBAAkB,IAAI,GAAG,OAAO;AAAA,EACjC,CAAC,kBAAkB,IAAI,GAAG,OAAO;AAAA,EACjC,CAAC,kBAAkB,KAAK,GAAG,OAAO;AACtC;AAWO,MAAM,oBAAoBA,eAAM,WAAoD,CAAC,OAAO,QAAQ;AACvG,QAAM,EAAE,cAAc;AAEtB,SAAO,oBAAC,OAAA,EAAI,WAAW,KAAK,OAAO,mBAAmB,sBAAsB,SAAS,CAAC,GAAG,IAAA,CAAU;AACvG,CAAC;AAED,kBAAkB,cAAc;"}
@@ -6,10 +6,10 @@ import { DropdownMobile } from "../../../Dropdown/mobile/DropdownMobile.js";
6
6
  import { DropdownMobileBody } from "../../../Dropdown/mobile/DropdownMobileBody.js";
7
7
  import { TooltipMobileCloseButton } from "./components/TooltipMobileCloseButton.js";
8
8
  import { c as clsx } from "../../../../chunks/vendor-CtuAQuEN.js";
9
- const tooltipMobile = "tooltipMobile__13e4962a";
10
- const tooltipMobileContent = "tooltipMobileContent__fa5cff0e";
11
- const headerless = "headerless__11c0386f";
12
- const closeButton = "closeButton__248e9027";
9
+ const tooltipMobile = "tooltipMobile__0bd6f18d";
10
+ const tooltipMobileContent = "tooltipMobileContent__bfd02a86";
11
+ const headerless = "headerless__efabda76";
12
+ const closeButton = "closeButton__7f7bb806";
13
13
  const styles = {
14
14
  tooltipMobile,
15
15
  tooltipMobileContent,
@@ -17,11 +17,15 @@ const styles = {
17
17
  closeButton
18
18
  };
19
19
  const TooltipMobile = ({
20
+ // children, renderContainer, targetRef, disableAdaptiveMode, size и alignTip не нужны мобильной
21
+ // версии и не должны попадать в DOM — исключаются из rest, который спредится на DropdownMobile.
20
22
  children,
21
- className,
22
23
  renderContainer,
23
24
  targetRef,
24
25
  disableAdaptiveMode,
26
+ size,
27
+ alignTip,
28
+ className,
25
29
  isOpen,
26
30
  onShow,
27
31
  ...rest
@@ -30,7 +34,7 @@ const TooltipMobile = ({
30
34
  const tooltipRef = useRef(null);
31
35
  const classNames = clsx(styles.tooltipMobile, { [styles.headerless]: elements.mobileHeader === null }, className);
32
36
  useEffect(() => {
33
- if (isOpen) {
37
+ if (isOpen && tooltipRef.current) {
34
38
  onShow == null ? void 0 : onShow(tooltipRef.current);
35
39
  }
36
40
  }, [isOpen]);
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipMobile.js","sources":["../../../../../src/components/Tooltip/components/mobile/TooltipMobile.tsx"],"sourcesContent":["import React, { useEffect, useContext, useRef } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { Portal } from \"@sberbusiness/triplex-next/components/Portal/Portal\";\nimport { DropdownMobile } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobile\";\nimport { DropdownMobileBody } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileBody\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport clsx from \"clsx\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipMobile.module.less\";\nimport { ITooltipProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Свойства компонента TooltipMobile. */\nexport interface ITooltipMobileProps extends Omit<ITooltipProps, \"preferPlace\" | \"toggle\"> {\n /** Признак открыт ли TooltipMobile. */\n isOpen: boolean;\n /** Дочерние элементы. */\n children?: never;\n}\n\n/** Мобильная версия Tooltip. */\nexport const TooltipMobile: React.FC<ITooltipMobileProps> = ({\n children,\n className,\n renderContainer,\n targetRef,\n disableAdaptiveMode,\n isOpen,\n onShow,\n ...rest\n}) => {\n const { elements, setTooltipOpen } = useContext(TooltipContext);\n const tooltipRef = useRef<HTMLDivElement | null>(null);\n const classNames = clsx(styles.tooltipMobile, { [styles.headerless]: elements.mobileHeader === null }, className);\n\n useEffect(() => {\n if (isOpen) {\n onShow?.(tooltipRef.current!);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n /** Рендер кнопки закрытия. */\n const renderCloseButton = () => {\n return (\n <div className={styles.closeButton}>\n <TooltipMobileCloseButton {...elements.closeButton?.props} />\n </div>\n );\n };\n\n return (\n <>\n {elements.target}\n <Portal container={document.body}>\n <DropdownMobile\n className={classNames}\n tabIndex={-1}\n opened={isOpen}\n setOpened={setTooltipOpen}\n {...rest}\n ref={tooltipRef}\n >\n {elements.mobileHeader}\n <DropdownMobileBody className={styles.tooltipMobileContent}>\n {elements.body}\n {elements.link}\n {elements.mobileHeader === null && renderCloseButton()}\n </DropdownMobileBody>\n </DropdownMobile>\n </Portal>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAmBO,MAAM,gBAA+C,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAM;AACF,QAAM,EAAE,UAAU,mBAAmB,WAAW,cAAc;AAC9D,QAAM,aAAa,OAA8B,IAAI;AACrD,QAAM,aAAa,KAAK,OAAO,eAAe,EAAE,CAAC,OAAO,UAAU,GAAG,SAAS,iBAAiB,KAAA,GAAQ,SAAS;AAEhH,YAAU,MAAM;AACZ,QAAI,QAAQ;AACR,uCAAS,WAAW;AAAA,IACxB;AAAA,EAEJ,GAAG,CAAC,MAAM,CAAC;AAGX,QAAM,oBAAoB,MAAM;;AAC5B,WACI,oBAAC,OAAA,EAAI,WAAW,OAAO,aACnB,UAAA,oBAAC,0BAAA,EAA0B,IAAG,cAAS,gBAAT,mBAAsB,MAAA,CAAO,EAAA,CAC/D;AAAA,EAER;AAEA,SACI,qBAAA,UAAA,EACK,UAAA;AAAA,IAAA,SAAS;AAAA,IACV,oBAAC,QAAA,EAAO,WAAW,SAAS,MACxB,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW;AAAA,QACX,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACV,GAAG;AAAA,QACJ,KAAK;AAAA,QAEJ,UAAA;AAAA,UAAA,SAAS;AAAA,UACV,qBAAC,oBAAA,EAAmB,WAAW,OAAO,sBACjC,UAAA;AAAA,YAAA,SAAS;AAAA,YACT,SAAS;AAAA,YACT,SAAS,iBAAiB,QAAQ,kBAAA;AAAA,UAAkB,EAAA,CACzD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EACJ,CACJ;AAAA,EAAA,GACJ;AAER;"}
1
+ {"version":3,"file":"TooltipMobile.js","sources":["../../../../../src/components/Tooltip/components/mobile/TooltipMobile.tsx"],"sourcesContent":["import React, { useEffect, useContext, useRef } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { Portal } from \"@sberbusiness/triplex-next/components/Portal/Portal\";\nimport { DropdownMobile } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobile\";\nimport { DropdownMobileBody } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileBody\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport clsx from \"clsx\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipMobile.module.less\";\nimport { ITooltipProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Свойства компонента TooltipMobile. */\nexport interface ITooltipMobileProps extends Omit<ITooltipProps, \"preferPlace\" | \"toggle\"> {\n /** Признак открыт ли TooltipMobile. */\n isOpen: boolean;\n /** Дочерние элементы. */\n children?: never;\n}\n\n/**\n * Мобильная версия Tooltip.\n * Рендерится в document.body поверх страницы как нижний оверлей (DropdownMobile).\n */\nexport const TooltipMobile: React.FC<ITooltipMobileProps> = ({\n // children, renderContainer, targetRef, disableAdaptiveMode, size и alignTip не нужны мобильной\n // версии и не должны попадать в DOM — исключаются из rest, который спредится на DropdownMobile.\n children,\n renderContainer,\n targetRef,\n disableAdaptiveMode,\n size,\n alignTip,\n className,\n isOpen,\n onShow,\n ...rest\n}) => {\n const { elements, setTooltipOpen } = useContext(TooltipContext);\n const tooltipRef = useRef<HTMLDivElement | null>(null);\n const classNames = clsx(styles.tooltipMobile, { [styles.headerless]: elements.mobileHeader === null }, className);\n\n useEffect(() => {\n if (isOpen && tooltipRef.current) {\n onShow?.(tooltipRef.current);\n }\n // onShow намеренно вне зависимостей: колбэк вызывается только на открытие подсказки,\n // иначе нестабильная inline-функция вызывала бы его на каждый рендер.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n /** Рендер кнопки закрытия. */\n const renderCloseButton = () => {\n return (\n <div className={styles.closeButton}>\n <TooltipMobileCloseButton {...elements.closeButton?.props} />\n </div>\n );\n };\n\n return (\n <>\n {elements.target}\n <Portal container={document.body}>\n <DropdownMobile\n className={classNames}\n tabIndex={-1}\n opened={isOpen}\n setOpened={setTooltipOpen}\n {...rest}\n ref={tooltipRef}\n >\n {elements.mobileHeader}\n <DropdownMobileBody className={styles.tooltipMobileContent}>\n {elements.body}\n {elements.link}\n {elements.mobileHeader === null && renderCloseButton()}\n </DropdownMobileBody>\n </DropdownMobile>\n </Portal>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAsBO,MAAM,gBAA+C,CAAC;AAAA;AAAA;AAAA,EAGzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAM;AACF,QAAM,EAAE,UAAU,mBAAmB,WAAW,cAAc;AAC9D,QAAM,aAAa,OAA8B,IAAI;AACrD,QAAM,aAAa,KAAK,OAAO,eAAe,EAAE,CAAC,OAAO,UAAU,GAAG,SAAS,iBAAiB,KAAA,GAAQ,SAAS;AAEhH,YAAU,MAAM;AACZ,QAAI,UAAU,WAAW,SAAS;AAC9B,uCAAS,WAAW;AAAA,IACxB;AAAA,EAIJ,GAAG,CAAC,MAAM,CAAC;AAGX,QAAM,oBAAoB,MAAM;;AAC5B,WACI,oBAAC,OAAA,EAAI,WAAW,OAAO,aACnB,UAAA,oBAAC,0BAAA,EAA0B,IAAG,cAAS,gBAAT,mBAAsB,MAAA,CAAO,EAAA,CAC/D;AAAA,EAER;AAEA,SACI,qBAAA,UAAA,EACK,UAAA;AAAA,IAAA,SAAS;AAAA,IACV,oBAAC,QAAA,EAAO,WAAW,SAAS,MACxB,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW;AAAA,QACX,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACV,GAAG;AAAA,QACJ,KAAK;AAAA,QAEJ,UAAA;AAAA,UAAA,SAAS;AAAA,UACV,qBAAC,oBAAA,EAAmB,WAAW,OAAO,sBACjC,UAAA;AAAA,YAAA,SAAS;AAAA,YACT,SAAS;AAAA,YACT,SAAS,iBAAiB,QAAQ,kBAAA;AAAA,UAAkB,EAAA,CACzD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EACJ,CACJ;AAAA,EAAA,GACJ;AAER;"}
@@ -8,8 +8,8 @@ import { EFontType, ETextSize } from "../../../../Typography/enums.js";
8
8
  const TooltipMobileHeader = ({ children, ...rest }) => {
9
9
  var _a;
10
10
  const { elements } = useContext(TooltipContext);
11
- const renderCloseButton = /* @__PURE__ */ jsx(TooltipMobileCloseButton, { ...(_a = elements.closeButton) == null ? void 0 : _a.props });
12
- return /* @__PURE__ */ jsx(DropdownMobileHeader, { controlButtons: renderCloseButton, ...rest, children: /* @__PURE__ */ jsx(Text, { size: ETextSize.B3, type: EFontType.PRIMARY, tag: "div", children }) });
11
+ const closeButton = /* @__PURE__ */ jsx(TooltipMobileCloseButton, { ...(_a = elements.closeButton) == null ? void 0 : _a.props });
12
+ return /* @__PURE__ */ jsx(DropdownMobileHeader, { controlButtons: closeButton, ...rest, children: /* @__PURE__ */ jsx(Text, { size: ETextSize.B3, type: EFontType.PRIMARY, tag: "div", children }) });
13
13
  };
14
14
  export {
15
15
  TooltipMobileHeader
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipMobileHeader.js","sources":["../../../../../../src/components/Tooltip/components/mobile/components/TooltipMobileHeader.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { DropdownMobileHeader } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileHeader\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport { Text } from \"@sberbusiness/triplex-next/components/Typography/Text\";\nimport { EFontType, ETextSize } from \"@sberbusiness/triplex-next/components/Typography/enums\";\nimport { ITooltipMobileHeaderProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Заголовок компонента TooltipMobile. */\nexport const TooltipMobileHeader: React.FC<ITooltipMobileHeaderProps> = ({ children, ...rest }) => {\n const { elements } = useContext(TooltipContext);\n\n /** Рендер кнопки закрытия DropdownMobile. */\n const renderCloseButton = <TooltipMobileCloseButton {...elements.closeButton?.props} />;\n\n return (\n <DropdownMobileHeader controlButtons={renderCloseButton} {...rest}>\n <Text size={ETextSize.B3} type={EFontType.PRIMARY} tag=\"div\">\n {children}\n </Text>\n </DropdownMobileHeader>\n );\n};\n"],"names":[],"mappings":";;;;;;;AASO,MAAM,sBAA2D,CAAC,EAAE,UAAU,GAAG,WAAW;;AAC/F,QAAM,EAAE,SAAA,IAAa,WAAW,cAAc;AAG9C,QAAM,oBAAoB,oBAAC,0BAAA,EAA0B,IAAG,cAAS,gBAAT,mBAAsB,OAAO;AAErF,6BACK,sBAAA,EAAqB,gBAAgB,mBAAoB,GAAG,MACzD,UAAA,oBAAC,MAAA,EAAK,MAAM,UAAU,IAAI,MAAM,UAAU,SAAS,KAAI,OAClD,UACL,GACJ;AAER;"}
1
+ {"version":3,"file":"TooltipMobileHeader.js","sources":["../../../../../../src/components/Tooltip/components/mobile/components/TooltipMobileHeader.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { DropdownMobileHeader } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileHeader\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport { Text } from \"@sberbusiness/triplex-next/components/Typography/Text\";\nimport { EFontType, ETextSize } from \"@sberbusiness/triplex-next/components/Typography/enums\";\nimport { ITooltipMobileHeaderProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/**\n * Заголовок компонента TooltipMobile.\n * Кнопку закрытия подставляет сам, наследуя props переданного в Tooltip TooltipXButton.\n */\nexport const TooltipMobileHeader: React.FC<ITooltipMobileHeaderProps> = ({ children, ...rest }) => {\n const { elements } = useContext(TooltipContext);\n\n /** Кнопка закрытия мобильной версии подсказки. */\n const closeButton = <TooltipMobileCloseButton {...elements.closeButton?.props} />;\n\n return (\n <DropdownMobileHeader controlButtons={closeButton} {...rest}>\n <Text size={ETextSize.B3} type={EFontType.PRIMARY} tag=\"div\">\n {children}\n </Text>\n </DropdownMobileHeader>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAYO,MAAM,sBAA2D,CAAC,EAAE,UAAU,GAAG,WAAW;;AAC/F,QAAM,EAAE,SAAA,IAAa,WAAW,cAAc;AAG9C,QAAM,cAAc,oBAAC,0BAAA,EAA0B,IAAG,cAAS,gBAAT,mBAAsB,OAAO;AAE/E,6BACK,sBAAA,EAAqB,gBAAgB,aAAc,GAAG,MACnD,UAAA,oBAAC,MAAA,EAAK,MAAM,UAAU,IAAI,MAAM,UAAU,SAAS,KAAI,OAClD,UACL,GACJ;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sources":["../../../src/components/Tooltip/enums.ts"],"sourcesContent":["/**\n * Параметры размера.\n *\n * H Высота.\n * W Ширина.\n */\nexport enum ETooltipSizeParameter {\n H = \"h\",\n W = \"w\",\n}\n\n/**\n * Начало координат (первые координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipStartCoordinates {\n X = \"x\",\n Y = \"y\",\n}\n\n/**\n * Конец координат (конечные координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipEndCoordinates {\n X = \"x2\",\n Y = \"y2\",\n}\n\n/**\n * Enum типов осей.\n *\n * MAIN Главная ось.\n * CROSS Вспомогательная, поперечная, перекрестная.\n */\nexport enum ETooltipAxesType {\n MAIN = \"main\",\n CROSS = \"cross\",\n}\n\n/**\n * Enum типов расположения элементов (flow) для flex.\n *\n * COLUMN Столбец.\n * ROW Ряд.\n */\nexport enum ETooltipFlowTypes {\n COLUMN = \"column\",\n ROW = \"row\",\n}\n\n/**\n * Enum типов настроек позиционирования.\n *\n * SIDE Сторона ддля типа.\n * STANDING Положение поповера относительно элемента (но это не точно).\n * FLOW Расположение элементов.\n */\nexport enum ETooltipTypeName {\n SIDE = \"side\",\n STANDING = \"standing\",\n FLOW = \"flow\",\n}\n\n/**\n * Предпочитаемое место для поповера.\n *\n * ABOVE Сверху.\n * BELOW Снизу.\n * RIGHT Справа.\n * LEFT Слева.\n */\nexport enum ETooltipPreferPlace {\n ABOVE = \"above\",\n BELOW = \"below\",\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\n/**\n * Выравнивание для позиционирования (вроде как для треугольничка).\n *\n * END В конце.\n * CENTER По центру\n * START В начале.\n */\nexport enum ETooltipAlign {\n END = \"end\",\n CENTER = \"center\",\n START = \"start\",\n}\n\n/**\n * Направление указателя поповера.\n *\n * UP Сверху.\n * DOWN Снизу.\n * RIGHT Справа.\n * LEFT Слева.\n */\nexport enum ETooltipDirection {\n UP = \"up\",\n DOWN = \"down\",\n LEFT = \"left\",\n RIGHT = \"right\",\n}\n\nexport enum ETooltipSize {\n SM = \"sm\",\n LG = \"lg\",\n}\n"],"names":["ETooltipSizeParameter","ETooltipStartCoordinates","ETooltipEndCoordinates","ETooltipAxesType","ETooltipFlowTypes","ETooltipTypeName","ETooltipPreferPlace","ETooltipAlign","ETooltipDirection","ETooltipSize"],"mappings":"AAMO,IAAK,0CAAAA,2BAAL;AACHA,yBAAA,GAAA,IAAI;AACJA,yBAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;AAWL,IAAK,6CAAAC,8BAAL;AACHA,4BAAA,GAAA,IAAI;AACJA,4BAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,4BAAA,CAAA,CAAA;AAWL,IAAK,2CAAAC,4BAAL;AACHA,0BAAA,GAAA,IAAI;AACJA,0BAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,0BAAA,CAAA,CAAA;AAWL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,MAAA,IAAO;AACPA,oBAAA,OAAA,IAAQ;AAFA,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAWL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,QAAA,IAAS;AACTA,qBAAA,KAAA,IAAM;AAFE,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAYL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,MAAA,IAAO;AACPA,oBAAA,UAAA,IAAW;AACXA,oBAAA,MAAA,IAAO;AAHC,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAcL,IAAK,wCAAAC,yBAAL;AACHA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,MAAA,IAAO;AAJC,SAAAA;AAAA,GAAA,uBAAA,CAAA,CAAA;AAcL,IAAK,kCAAAC,mBAAL;AACHA,iBAAA,KAAA,IAAM;AACNA,iBAAA,QAAA,IAAS;AACTA,iBAAA,OAAA,IAAQ;AAHA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAcL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,IAAA,IAAK;AACLA,qBAAA,MAAA,IAAO;AACPA,qBAAA,MAAA,IAAO;AACPA,qBAAA,OAAA,IAAQ;AAJA,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAOL,IAAK,iCAAAC,kBAAL;AACHA,gBAAA,IAAA,IAAK;AACLA,gBAAA,IAAA,IAAK;AAFG,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;"}
1
+ {"version":3,"file":"enums.js","sources":["../../../src/components/Tooltip/enums.ts"],"sourcesContent":["/**\n * Параметры размера.\n *\n * H Высота.\n * W Ширина.\n */\nexport enum ETooltipSizeParameter {\n H = \"h\",\n W = \"w\",\n}\n\n/**\n * Начало координат (первые координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipStartCoordinates {\n X = \"x\",\n Y = \"y\",\n}\n\n/**\n * Конец координат (конечные координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipEndCoordinates {\n X = \"x2\",\n Y = \"y2\",\n}\n\n/**\n * Enum типов осей.\n *\n * MAIN Главная ось.\n * CROSS Вспомогательная, поперечная, перекрестная.\n */\nexport enum ETooltipAxesType {\n MAIN = \"main\",\n CROSS = \"cross\",\n}\n\n/**\n * Enum типов расположения элементов (flow) для flex.\n *\n * COLUMN Столбец.\n * ROW Ряд.\n */\nexport enum ETooltipFlowTypes {\n COLUMN = \"column\",\n ROW = \"row\",\n}\n\n/**\n * Enum типов настроек позиционирования.\n *\n * SIDE Выравнивание подсказки вдоль основной оси зоны.\n * STANDING Положение подсказки относительно целевого элемента.\n * FLOW Расположение элементов (направление flex).\n */\nexport enum ETooltipTypeName {\n SIDE = \"side\",\n STANDING = \"standing\",\n FLOW = \"flow\",\n}\n\n/**\n * Предпочитаемое место для поповера.\n *\n * ABOVE Сверху.\n * BELOW Снизу.\n * RIGHT Справа.\n * LEFT Слева.\n */\nexport enum ETooltipPreferPlace {\n ABOVE = \"above\",\n BELOW = \"below\",\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\n/**\n * Выравнивание указателя (стрелочки) подсказки относительно целевого элемента.\n *\n * END В конце.\n * CENTER По центру.\n * START В начале.\n */\nexport enum ETooltipAlign {\n END = \"end\",\n CENTER = \"center\",\n START = \"start\",\n}\n\n/**\n * Направление указателя поповера.\n *\n * UP Сверху.\n * DOWN Снизу.\n * RIGHT Справа.\n * LEFT Слева.\n */\nexport enum ETooltipDirection {\n UP = \"up\",\n DOWN = \"down\",\n LEFT = \"left\",\n RIGHT = \"right\",\n}\n\n/**\n * Размер подсказки (ширина тела в десктопной версии).\n *\n * SM Узкая подсказка, 192px.\n * LG Широкая подсказка, 384px.\n */\nexport enum ETooltipSize {\n SM = \"sm\",\n LG = \"lg\",\n}\n"],"names":["ETooltipSizeParameter","ETooltipStartCoordinates","ETooltipEndCoordinates","ETooltipAxesType","ETooltipFlowTypes","ETooltipTypeName","ETooltipPreferPlace","ETooltipAlign","ETooltipDirection","ETooltipSize"],"mappings":"AAMO,IAAK,0CAAAA,2BAAL;AACHA,yBAAA,GAAA,IAAI;AACJA,yBAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;AAWL,IAAK,6CAAAC,8BAAL;AACHA,4BAAA,GAAA,IAAI;AACJA,4BAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,4BAAA,CAAA,CAAA;AAWL,IAAK,2CAAAC,4BAAL;AACHA,0BAAA,GAAA,IAAI;AACJA,0BAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,0BAAA,CAAA,CAAA;AAWL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,MAAA,IAAO;AACPA,oBAAA,OAAA,IAAQ;AAFA,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAWL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,QAAA,IAAS;AACTA,qBAAA,KAAA,IAAM;AAFE,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAYL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,MAAA,IAAO;AACPA,oBAAA,UAAA,IAAW;AACXA,oBAAA,MAAA,IAAO;AAHC,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAcL,IAAK,wCAAAC,yBAAL;AACHA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,MAAA,IAAO;AAJC,SAAAA;AAAA,GAAA,uBAAA,CAAA,CAAA;AAcL,IAAK,kCAAAC,mBAAL;AACHA,iBAAA,KAAA,IAAM;AACNA,iBAAA,QAAA,IAAS;AACTA,iBAAA,OAAA,IAAQ;AAHA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAcL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,IAAA,IAAK;AACLA,qBAAA,MAAA,IAAO;AACPA,qBAAA,MAAA,IAAO;AACPA,qBAAA,OAAA,IAAQ;AAJA,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAaL,IAAK,iCAAAC,kBAAL;AACHA,gBAAA,IAAA,IAAK;AACLA,gBAAA,IAAA,IAAK;AAFG,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;"}
@@ -36,17 +36,14 @@ const place = (flow, axis, align, bounds, size) => {
36
36
  const axisProps = axes[flow][axis];
37
37
  if (align === ETooltipAlign.CENTER) {
38
38
  return centerOfBounds(flow, axis, bounds) - centerOfSize(flow, axis, size);
39
- } else {
40
- if (align === ETooltipAlign.END) {
41
- return bounds[axisProps.end];
42
- } else {
43
- if (align === ETooltipAlign.START) {
44
- return bounds[axisProps.start] - size[axisProps.size];
45
- } else {
46
- return 0;
47
- }
48
- }
49
39
  }
40
+ if (align === ETooltipAlign.END) {
41
+ return bounds[axisProps.end];
42
+ }
43
+ if (align === ETooltipAlign.START) {
44
+ return bounds[axisProps.start] - size[axisProps.size];
45
+ }
46
+ return 0;
50
47
  };
51
48
  const calcBounds = (el) => {
52
49
  if (el === window) {
@@ -139,15 +136,19 @@ const calcRelPos = (zone, targetBounds, tooltipSize) => {
139
136
  const mainSize = tooltipSize[main.size];
140
137
  const crossStart = place(zone.flow, ETooltipAxesType.CROSS, crossAlign, targetBounds, tooltipSize);
141
138
  const crossSize = tooltipSize[cross.size];
142
- const result = {
143
- [cross.start]: crossStart,
139
+ const position = {
140
+ [ETooltipStartCoordinates.X]: 0,
141
+ [ETooltipEndCoordinates.X]: 0,
142
+ [ETooltipStartCoordinates.Y]: 0,
143
+ [ETooltipEndCoordinates.Y]: 0,
144
144
  crossLength: crossSize,
145
- [cross.end]: crossStart + crossSize,
146
- [main.start]: mainStart,
147
- mainLength: mainSize,
148
- [main.end]: mainStart + mainSize
145
+ mainLength: mainSize
149
146
  };
150
- return result;
147
+ position[cross.start] = crossStart;
148
+ position[cross.end] = crossStart + crossSize;
149
+ position[main.start] = mainStart;
150
+ position[main.end] = mainStart + mainSize;
151
+ return position;
151
152
  };
152
153
  export {
153
154
  axes,