@sberbusiness/triplex-next 0.39.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/chunks/{AlertProcessSpoiler-DRoHuVl6.js → AlertProcessSpoiler-BtnKN4rB.js} +17 -17
  2. package/chunks/{AlertProcessSpoiler-DRoHuVl6.js.map → AlertProcessSpoiler-BtnKN4rB.js.map} +1 -1
  3. package/chunks/{CalendarViewItem-AChLlz4N.js → CalendarViewItem-RCL-JeQJ.js} +31 -29
  4. package/chunks/CalendarViewItem-RCL-JeQJ.js.map +1 -0
  5. package/chunks/Card.module-CoOqpkwS.js +32 -0
  6. package/chunks/Card.module-CoOqpkwS.js.map +1 -0
  7. package/chunks/Carousel.module-DvV8MD7r.js +30 -0
  8. package/chunks/Carousel.module-DvV8MD7r.js.map +1 -0
  9. package/chunks/CheckboxTreeExtended.module-Clecba-z.js +24 -0
  10. package/chunks/CheckboxTreeExtended.module-Clecba-z.js.map +1 -0
  11. package/chunks/{Chip-DGvjOx0y.js → Chip-Cp08qRYJ.js} +28 -28
  12. package/chunks/Chip-Cp08qRYJ.js.map +1 -0
  13. package/chunks/Confirm.module-DM72PYpZ.js +24 -0
  14. package/chunks/Confirm.module-DM72PYpZ.js.map +1 -0
  15. package/chunks/{DropdownListItem-COR0eOzM.js → DropdownListItem-BVmaxhUL.js} +21 -23
  16. package/chunks/DropdownListItem-BVmaxhUL.js.map +1 -0
  17. package/chunks/DropdownMobile.module-CZWR3s0W.js +40 -0
  18. package/chunks/DropdownMobile.module-CZWR3s0W.js.map +1 -0
  19. package/chunks/Footer.module-BVlnkdmW.js +12 -0
  20. package/chunks/Footer.module-BVlnkdmW.js.map +1 -0
  21. package/chunks/{HeaderLayoutSidebar.module-o5cCUCGl.js → HeaderLayoutSidebar.module-BucgINex.js} +4 -4
  22. package/chunks/HeaderLayoutSidebar.module-BucgINex.js.map +1 -0
  23. package/chunks/HeaderTabs.module-C_a4JHKH.js +12 -0
  24. package/chunks/HeaderTabs.module-C_a4JHKH.js.map +1 -0
  25. package/chunks/{HeaderTitle.module-CUVjwVW7.js → HeaderTitle.module-CcCkeiqR.js} +4 -4
  26. package/chunks/HeaderTitle.module-CcCkeiqR.js.map +1 -0
  27. package/chunks/ImageGalleryExtendedMain.module-rFvyNDtg.js +28 -0
  28. package/chunks/ImageGalleryExtendedMain.module-rFvyNDtg.js.map +1 -0
  29. package/chunks/{ImageGalleryExtendedThumb-B7xjP3UP.js → ImageGalleryExtendedThumb-DHoiTDGV.js} +6 -6
  30. package/chunks/{ImageGalleryExtendedThumb-B7xjP3UP.js.map → ImageGalleryExtendedThumb-DHoiTDGV.js.map} +1 -1
  31. package/chunks/IslandAccordion.module-Bpxl1nou.js +44 -0
  32. package/chunks/IslandAccordion.module-Bpxl1nou.js.map +1 -0
  33. package/chunks/IslandWidgetFooter.module-Gq4r6MKf.js +12 -0
  34. package/chunks/IslandWidgetFooter.module-Gq4r6MKf.js.map +1 -0
  35. package/chunks/IslandWidgetHeader.module-60ngN9Fp.js +20 -0
  36. package/chunks/IslandWidgetHeader.module-60ngN9Fp.js.map +1 -0
  37. package/chunks/{LightBoxContent-blTzF5vv.js → LightBoxContent-faIO64ku.js} +15 -15
  38. package/chunks/{LightBoxContent-blTzF5vv.js.map → LightBoxContent-faIO64ku.js.map} +1 -1
  39. package/chunks/LightBoxControls.module-zALKUa-L.js +26 -0
  40. package/chunks/LightBoxControls.module-zALKUa-L.js.map +1 -0
  41. package/chunks/{LightBoxSideOverlayClose.module-BVuB53vM.js → LightBoxSideOverlayClose.module-BJOafmhE.js} +4 -4
  42. package/chunks/LightBoxSideOverlayClose.module-BJOafmhE.js.map +1 -0
  43. package/chunks/{ListItemControlsButton-DulKpjwV.js → ListItemControlsButton-Cgn5z-4-.js} +10 -10
  44. package/chunks/{ListItemControlsButton-DulKpjwV.js.map → ListItemControlsButton-Cgn5z-4-.js.map} +1 -1
  45. package/chunks/ListItemTail.module-SH-k_8bE.js +18 -0
  46. package/chunks/ListItemTail.module-SH-k_8bE.js.map +1 -0
  47. package/chunks/ListMasterFooter.module-B7KHgt78.js +14 -0
  48. package/chunks/ListMasterFooter.module-B7KHgt78.js.map +1 -0
  49. package/chunks/ModalWindow.module-g4fzzLBJ.js +28 -0
  50. package/chunks/ModalWindow.module-g4fzzLBJ.js.map +1 -0
  51. package/chunks/Notification.module-GuNThi0F.js +34 -0
  52. package/chunks/Notification.module-GuNThi0F.js.map +1 -0
  53. package/chunks/Overlay.module-Bz905CUE.js +30 -0
  54. package/chunks/Overlay.module-Bz905CUE.js.map +1 -0
  55. package/chunks/Page.module-Cew9zu6t.js +15 -0
  56. package/chunks/Page.module-Cew9zu6t.js.map +1 -0
  57. package/chunks/SMSField.module-DF_16zDO.js +26 -0
  58. package/chunks/SMSField.module-DF_16zDO.js.map +1 -0
  59. package/chunks/SliderExtendedMarks.module-DuovwuEN.js +24 -0
  60. package/chunks/SliderExtendedMarks.module-DuovwuEN.js.map +1 -0
  61. package/chunks/{SliderExtendedRail-kRXLpNwt.js → SliderExtendedRail-52OucNYf.js} +6 -6
  62. package/chunks/{SliderExtendedRail-kRXLpNwt.js.map → SliderExtendedRail-52OucNYf.js.map} +1 -1
  63. package/chunks/StatusTracker.module-BeFh9DCu.js +44 -0
  64. package/chunks/StatusTracker.module-BeFh9DCu.js.map +1 -0
  65. package/chunks/{StepperStepArrowBorder-CsES9yvO.js → StepperStepArrowBorder-0d-ly-A8.js} +16 -16
  66. package/chunks/{StepperStepArrowBorder-CsES9yvO.js.map → StepperStepArrowBorder-0d-ly-A8.js.map} +1 -1
  67. package/chunks/{SuggestFieldMobileDropdownHint-YOB5F8TH.js → SuggestFieldMobileDropdownHint-CPo1oKCp.js} +3 -3
  68. package/chunks/{SuggestFieldMobileDropdownHint-YOB5F8TH.js.map → SuggestFieldMobileDropdownHint-CPo1oKCp.js.map} +1 -1
  69. package/chunks/TableFooter.module-CceBkCov.js +22 -0
  70. package/chunks/TableFooter.module-CceBkCov.js.map +1 -0
  71. package/chunks/TabsExtended.module-BV1A2Ngf.js +26 -0
  72. package/chunks/TabsExtended.module-BV1A2Ngf.js.map +1 -0
  73. package/chunks/TabsLine.module-CpjGY1fI.js +36 -0
  74. package/chunks/TabsLine.module-CpjGY1fI.js.map +1 -0
  75. package/chunks/TooltipDesktop.module-D22gy-42.js +32 -0
  76. package/chunks/TooltipDesktop.module-D22gy-42.js.map +1 -0
  77. package/chunks/TreeView.module-uRhEW69Z.js +12 -0
  78. package/chunks/TreeView.module-uRhEW69Z.js.map +1 -0
  79. package/chunks/{UploadZoneInput-Dc9Z6NrZ.js → UploadZoneInput-CkHsnEn0.js} +6 -6
  80. package/chunks/{UploadZoneInput-Dc9Z6NrZ.js.map → UploadZoneInput-CkHsnEn0.js.map} +1 -1
  81. package/chunks/{constants-b3mFJcdx.js → constants-CroH6kNa.js} +27 -27
  82. package/chunks/{constants-b3mFJcdx.js.map → constants-CroH6kNa.js.map} +1 -1
  83. package/chunks/{utils-BXgC_I8P.js → utils-B4HVj8oI.js} +8 -8
  84. package/chunks/utils-B4HVj8oI.js.map +1 -0
  85. package/chunks/{utils-DdrwqT9t.js → utils-CVWtdPuN.js} +6 -6
  86. package/chunks/{utils-DdrwqT9t.js.map → utils-CVWtdPuN.js.map} +1 -1
  87. package/chunks/{utils-Bv8Gz_QY.js → utils-DI2WUTKf.js} +27 -27
  88. package/chunks/{utils-Bv8Gz_QY.js.map → utils-DI2WUTKf.js.map} +1 -1
  89. package/chunks/{utils-B1pi9Ckc.js → utils-f5ZO_GR2.js} +11 -11
  90. package/chunks/{utils-B1pi9Ckc.js.map → utils-f5ZO_GR2.js.map} +1 -1
  91. package/chunks/vendor-BtZO8a0z.js +17814 -0
  92. package/chunks/vendor-BtZO8a0z.js.map +1 -0
  93. package/components/AbstractTree/AbstractTreeNode.js +1 -1
  94. package/components/AccordionBase/protected/AccordionBase.js +1 -1
  95. package/components/Alert/AlertContext/AlertContext.js +8 -8
  96. package/components/Alert/AlertProcess/AlertProcess.js +3 -3
  97. package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +2 -2
  98. package/components/Amount/Amount.js +3 -3
  99. package/components/Avatar/Avatar.js +14 -14
  100. package/components/Badge/Badge.js +5 -5
  101. package/components/Badge/BadgeDot.js +5 -5
  102. package/components/Badge/components/BadgeContent.js +7 -7
  103. package/components/Badge/components/BadgePostfix.js +2 -2
  104. package/components/Badge/components/BadgePrefix.js +2 -2
  105. package/components/Body/Body.js +4 -4
  106. package/components/Button/Button.js +21 -21
  107. package/components/Button/ButtonBase.js +1 -1
  108. package/components/Button/ButtonDropdown.js +9 -9
  109. package/components/Button/ButtonDropdownExtended.js +18 -22
  110. package/components/Button/ButtonDropdownExtended.js.map +1 -1
  111. package/components/Button/ButtonIcon.js +4 -4
  112. package/components/Button/ButtonIcon.js.map +1 -1
  113. package/components/Calendar/Calendar.js +17 -17
  114. package/components/Calendar/Calendar.js.map +1 -1
  115. package/components/Calendar/CalendarContext.js.map +1 -1
  116. package/components/Calendar/CalendarViewContext.js.map +1 -1
  117. package/components/Calendar/components/CalendarControls.js +12 -32
  118. package/components/Calendar/components/CalendarControls.js.map +1 -1
  119. package/components/Calendar/components/CalendarFooter.js +3 -2
  120. package/components/Calendar/components/CalendarFooter.js.map +1 -1
  121. package/components/Calendar/components/CalendarView.js +1 -0
  122. package/components/Calendar/components/CalendarView.js.map +1 -1
  123. package/components/Calendar/components/CalendarViewDays.js +32 -56
  124. package/components/Calendar/components/CalendarViewDays.js.map +1 -1
  125. package/components/Calendar/components/CalendarViewItem.js +2 -2
  126. package/components/Calendar/components/CalendarViewMonths.js +30 -52
  127. package/components/Calendar/components/CalendarViewMonths.js.map +1 -1
  128. package/components/Calendar/components/CalendarViewYears.js +34 -55
  129. package/components/Calendar/components/CalendarViewYears.js.map +1 -1
  130. package/components/Calendar/utils.js +43 -10
  131. package/components/Calendar/utils.js.map +1 -1
  132. package/components/Card/CardAction.js +6 -6
  133. package/components/Card/CardStatic.js +3 -3
  134. package/components/Card/components/CardContent/CardContent.js +2 -2
  135. package/components/Card/components/CardContent/components/CardContentBody.js +2 -2
  136. package/components/Card/components/CardContent/components/CardContentFooter.js +2 -2
  137. package/components/Card/components/CardContent/components/CardContentHeader.js +2 -2
  138. package/components/Card/components/CardMedia.js +2 -2
  139. package/components/Card/enums.js +1 -0
  140. package/components/Card/enums.js.map +1 -1
  141. package/components/Card/utils.js +2 -1
  142. package/components/Card/utils.js.map +1 -1
  143. package/components/Carousel/Carousel.js +2 -2
  144. package/components/Carousel/CarouselButton.js +2 -2
  145. package/components/Carousel/CarouselIndicators.js +2 -2
  146. package/components/Carousel/CarouselItem.js +2 -2
  147. package/components/Carousel/CarouselTrack.js +2 -2
  148. package/components/Carousel/CarouselViewport.js +2 -2
  149. package/components/CarouselExtended/CarouselExtended.js +2 -2
  150. package/components/Checkbox/Checkbox.js +11 -11
  151. package/components/Checkbox/CheckboxXGroup.js +9 -9
  152. package/components/Checkbox/CheckboxYGroup.js +2 -2
  153. package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +2 -2
  154. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
  155. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +2 -2
  156. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +2 -2
  157. package/components/Chip/Chip.js +2 -2
  158. package/components/Chip/ChipClearButton.js +2 -2
  159. package/components/Chip/ChipDatePicker/ChipDatePicker.js +1 -1
  160. package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
  161. package/components/Chip/ChipDropdownArrow.js +3 -3
  162. package/components/Chip/ChipIcon.js +1 -1
  163. package/components/Chip/ChipMultiselect.js +2 -2
  164. package/components/Chip/ChipOptions.js +2 -2
  165. package/components/Chip/ChipSelect/ChipSelect.js +2 -2
  166. package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
  167. package/components/Chip/ChipSort.js +2 -2
  168. package/components/Chip/ChipSuggest/ChipSuggest.js +2 -2
  169. package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +2 -2
  170. package/components/Chip/ChipSuggest/ChipSuggestTarget.js +1 -1
  171. package/components/Chip/ChipSuggest/desktop/ChipSuggestDesktopDropdownField.js +1 -1
  172. package/components/Chip/index.js +1 -1
  173. package/components/ChipGroup/ChipGroup.js +8 -8
  174. package/components/Col/Col.js +133 -133
  175. package/components/CollapsibleTree/CollapsibleTree.js +2 -2
  176. package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +2 -2
  177. package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +2 -2
  178. package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +5 -5
  179. package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +2 -2
  180. package/components/Confirm/Confirm.js +2 -2
  181. package/components/Confirm/components/ConfirmCloseButton.js +2 -2
  182. package/components/Confirm/components/ConfirmContent.js +2 -2
  183. package/components/Confirm/components/ConfirmContentTitle.js +2 -2
  184. package/components/Confirm/components/ConfirmControls.js +2 -2
  185. package/components/DateField/utils.js +2 -2
  186. package/components/DateField/utils.js.map +1 -1
  187. package/components/DatePickerExtended/DatePickerExtended.js +2 -2
  188. package/components/DatePickerExtended/DatePickerExtendedDropdown.js +2 -2
  189. package/components/DateRange/DateRange.js +4 -4
  190. package/components/DesignTokens/DesignTokenUtils.js +26 -21
  191. package/components/DesignTokens/DesignTokenUtils.js.map +1 -1
  192. package/components/DesignTokens/components/Calendar.js +2 -2
  193. package/components/DesignTokens/components/Calendar.js.map +1 -1
  194. package/components/DesignTokens/components/StatusTracker.js +8 -2
  195. package/components/DesignTokens/components/StatusTracker.js.map +1 -1
  196. package/components/Divider/Divider.js +18 -18
  197. package/components/DocumentNumberEdit/DocumentNumberEdit.js +4 -4
  198. package/components/Dropdown/Dropdown.js +14 -7
  199. package/components/Dropdown/Dropdown.js.map +1 -1
  200. package/components/Dropdown/desktop/DropdownDesktop.js +21 -25
  201. package/components/Dropdown/desktop/DropdownDesktop.js.map +1 -1
  202. package/components/Dropdown/desktop/DropdownList.js +38 -73
  203. package/components/Dropdown/desktop/DropdownList.js.map +1 -1
  204. package/components/Dropdown/desktop/DropdownListItem.js +2 -2
  205. package/components/Dropdown/desktop/index.js +1 -1
  206. package/components/Dropdown/desktop/utils.js +34 -0
  207. package/components/Dropdown/desktop/utils.js.map +1 -0
  208. package/components/Dropdown/index.js +1 -1
  209. package/components/Dropdown/mobile/DropdownMobile.js +2 -2
  210. package/components/Dropdown/mobile/DropdownMobileBody.js +2 -2
  211. package/components/Dropdown/mobile/DropdownMobileClose.js +2 -2
  212. package/components/Dropdown/mobile/DropdownMobileFooter.js +2 -2
  213. package/components/Dropdown/mobile/DropdownMobileHeader.js +2 -2
  214. package/components/Dropdown/mobile/DropdownMobileInner.js +6 -4
  215. package/components/Dropdown/mobile/DropdownMobileInner.js.map +1 -1
  216. package/components/Dropdown/mobile/DropdownMobileInput.js +2 -2
  217. package/components/Dropdown/mobile/DropdownMobileList.js +3 -3
  218. package/components/Dropdown/mobile/DropdownMobileList.js.map +1 -1
  219. package/components/Dropdown/mobile/DropdownMobileListItem.js +2 -2
  220. package/components/Dropdown/mobile/DropdownMobileListItem.js.map +1 -1
  221. package/components/Dropdown/mobile/DropdownMobileLoader.js +2 -2
  222. package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +2 -2
  223. package/components/Ellipsis/Ellipsis.js +4 -4
  224. package/components/EmptyView/EmptyView.js +5 -5
  225. package/components/ExpandAnimation/ExpandAnimation.js +2 -2
  226. package/components/FocusTrapExtended/FocusTrapExtended.js +21 -9
  227. package/components/FocusTrapExtended/FocusTrapExtended.js.map +1 -1
  228. package/components/Footer/Footer.js +1 -1
  229. package/components/Footer/components/FooterDescription.js +2 -2
  230. package/components/Footer/components/FooterDescriptionContent.js +2 -2
  231. package/components/Footer/components/FooterDescriptionControls.js +2 -2
  232. package/components/FormField/FormField.js +21 -21
  233. package/components/FormField/FormField.js.map +1 -1
  234. package/components/FormField/FormFieldContext.js.map +1 -1
  235. package/components/FormField/FormFieldDescriptionContext.js.map +1 -1
  236. package/components/FormField/components/FormFieldClear.js +2 -2
  237. package/components/FormField/components/FormFieldClear.js.map +1 -1
  238. package/components/FormField/components/FormFieldCounter.js +5 -4
  239. package/components/FormField/components/FormFieldCounter.js.map +1 -1
  240. package/components/FormField/components/FormFieldDescription.js +14 -6
  241. package/components/FormField/components/FormFieldDescription.js.map +1 -1
  242. package/components/FormField/components/FormFieldInput.js +8 -9
  243. package/components/FormField/components/FormFieldInput.js.map +1 -1
  244. package/components/FormField/components/FormFieldLabel.js +11 -12
  245. package/components/FormField/components/FormFieldLabel.js.map +1 -1
  246. package/components/FormField/components/FormFieldMaskedInput.js +7 -7
  247. package/components/FormField/components/FormFieldPostfix.js +6 -30
  248. package/components/FormField/components/FormFieldPostfix.js.map +1 -1
  249. package/components/FormField/components/FormFieldPrefix.js +6 -30
  250. package/components/FormField/components/FormFieldPrefix.js.map +1 -1
  251. package/components/FormField/components/FormFieldTarget.js +9 -9
  252. package/components/FormField/components/FormFieldTextarea.js +5 -5
  253. package/components/FormField/components/useFormFieldAffixWidth.js +33 -0
  254. package/components/FormField/components/useFormFieldAffixWidth.js.map +1 -0
  255. package/components/FormField/components/utils.js +9 -1
  256. package/components/FormField/components/utils.js.map +1 -1
  257. package/components/FormField/consts.js.map +1 -1
  258. package/components/FormField/enums.js.map +1 -1
  259. package/components/FormField/index.js +2 -3
  260. package/components/Gap/Gap.js +9 -9
  261. package/components/Header/Header.js +1 -1
  262. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +2 -2
  263. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +2 -2
  264. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +2 -2
  265. package/components/Header/components/HeaderSubheader/HeaderSubheader.js +3 -3
  266. package/components/Header/components/HeaderTabs/HeaderTabs.js +2 -2
  267. package/components/Header/components/HeaderTabs/HeaderTabsContent.js +2 -2
  268. package/components/Header/components/HeaderTabs/HeaderTabsControls.js +2 -2
  269. package/components/Header/components/HeaderTitle/HeaderTitle.js +2 -2
  270. package/components/Header/components/HeaderTitle/HeaderTitleContent.js +2 -2
  271. package/components/Header/components/HeaderTitle/HeaderTitleControls.js +2 -2
  272. package/components/HelpBox/HelpBox.js +2 -2
  273. package/components/IconWrapper/IconWrapper.js +8 -8
  274. package/components/IconWrapper/IconWrapper.js.map +1 -1
  275. package/components/ImageGallery/ImageGallery.js +1 -1
  276. package/components/ImageGalleryExtended/ImageGalleryExtended.js +3 -3
  277. package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +2 -2
  278. package/components/ImageGalleryExtended/components/ImageGalleryExtendedDots.js +4 -4
  279. package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +2 -2
  280. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +2 -2
  281. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +2 -2
  282. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +2 -2
  283. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +2 -2
  284. package/components/ImageGalleryExtended/components/index.js +1 -1
  285. package/components/ImageGalleryExtended/index.js +1 -1
  286. package/components/Island/Island.js +4 -4
  287. package/components/Island/Island.js.map +1 -1
  288. package/components/Island/components/IslandBody.js +3 -2
  289. package/components/Island/components/IslandBody.js.map +1 -1
  290. package/components/Island/components/IslandFooter.js +8 -5
  291. package/components/Island/components/IslandFooter.js.map +1 -1
  292. package/components/Island/components/IslandHeader.js +8 -5
  293. package/components/Island/components/IslandHeader.js.map +1 -1
  294. package/components/Island/enums.js.map +1 -1
  295. package/components/Island/utils.js +1 -1
  296. package/components/IslandAccordion/IslandAccordion.js +3 -3
  297. package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
  298. package/components/IslandAccordion/components/IslandAccordionFooter.js +2 -2
  299. package/components/IslandAccordion/components/IslandAccordionItem.js +3 -3
  300. package/components/IslandWidget/IslandWidget.js +5 -5
  301. package/components/IslandWidget/components/IslandWidgetBody.js +2 -2
  302. package/components/IslandWidget/components/IslandWidgetExtraFooter.js +2 -2
  303. package/components/IslandWidget/components/IslandWidgetFooter.js +2 -2
  304. package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
  305. package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
  306. package/components/IslandWidget/components/IslandWidgetHeader.js +2 -2
  307. package/components/IslandWidget/components/IslandWidgetHeaderContent.js +2 -2
  308. package/components/IslandWidget/components/IslandWidgetHeaderControls.js +2 -2
  309. package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +2 -2
  310. package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +2 -2
  311. package/components/IslandWidget/components/IslandWidgetWrapper.js +2 -2
  312. package/components/KeyDownListener/ComposedKeyDownListener.js +7 -8
  313. package/components/KeyDownListener/ComposedKeyDownListener.js.map +1 -1
  314. package/components/KeyDownListener/KeyDownListener.js +3 -4
  315. package/components/KeyDownListener/KeyDownListener.js.map +1 -1
  316. package/components/LightBox/LightBox.js +6 -6
  317. package/components/LightBox/LightBoxContent.js +2 -2
  318. package/components/LightBox/LightBoxControls/LightBoxArrow.js +2 -2
  319. package/components/LightBox/LightBoxControls/LightBoxClose.js +2 -2
  320. package/components/LightBox/LightBoxControls/LightBoxControls.js +2 -2
  321. package/components/LightBox/LightBoxControls/LightBoxNext.js +2 -2
  322. package/components/LightBox/LightBoxControls/LightBoxPrev.js +2 -2
  323. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +13 -14
  324. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js.map +1 -1
  325. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +2 -2
  326. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +2 -2
  327. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
  328. package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +4 -4
  329. package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +4 -4
  330. package/components/LightBox/LightBoxViewManager/LightBoxViewManager.js +1 -1
  331. package/components/Link/Link.js +6 -6
  332. package/components/List/List.js +4 -4
  333. package/components/List/ListSortable.js +1 -1
  334. package/components/List/components/ListActionItem.js +2 -2
  335. package/components/List/components/ListEmptyState.js +2 -2
  336. package/components/List/components/ListItem.js +1 -1
  337. package/components/List/components/ListItemContent.js +5 -5
  338. package/components/List/components/ListItemControls.js +2 -2
  339. package/components/List/components/ListItemControlsButton.js +2 -2
  340. package/components/List/components/ListItemControlsButtonDropdown.js +2 -2
  341. package/components/List/components/ListItemLoading.js +2 -2
  342. package/components/List/components/ListItemSelectable.js +7 -7
  343. package/components/List/components/ListItemTailLeft.js +2 -2
  344. package/components/List/components/ListItemTailRight.js +2 -2
  345. package/components/List/components/ListSortableItem.js +3 -3
  346. package/components/List/components/ListSortableItemControls.js +2 -2
  347. package/components/List/components/ListSortableItemTarget.js +5 -5
  348. package/components/List/components/ListTableItem.js +4 -4
  349. package/components/List/index.js +1 -1
  350. package/components/ListMaster/ListMaster.js +1 -1
  351. package/components/ListMaster/components/ListMasterBody.js +1 -1
  352. package/components/ListMaster/components/ListMasterChipGroup.js +2 -2
  353. package/components/ListMaster/components/ListMasterFooter.js +2 -2
  354. package/components/ListMaster/components/ListMasterFooterControls.js +2 -2
  355. package/components/ListMaster/components/ListMasterFooterDescription.js +2 -2
  356. package/components/ListMaster/components/ListMasterHeader.js +3 -3
  357. package/components/ListMaster/components/SelectionControls.js +3 -3
  358. package/components/Loader/LoaderMiddle/LoaderMiddle.js +11 -11
  359. package/components/Loader/LoaderMiddle/LoaderMiddle.js.map +1 -1
  360. package/components/Loader/LoaderSmall/LoaderSmall.js +11 -11
  361. package/components/LoaderScreen/LoaderScreen.js +13 -12
  362. package/components/LoaderScreen/LoaderScreen.js.map +1 -1
  363. package/components/Marker/Marker.js +2 -2
  364. package/components/Marker/utils.js +1 -1
  365. package/components/MarkerStatus/MarkerStatus.js +8 -8
  366. package/components/ModalWindow/ModalWindow.js +2 -2
  367. package/components/ModalWindow/components/ModalWindowBody.js +2 -2
  368. package/components/ModalWindow/components/ModalWindowClose.js +1 -1
  369. package/components/ModalWindow/components/ModalWindowContent.js +2 -2
  370. package/components/ModalWindow/components/ModalWindowHeader.js +2 -2
  371. package/components/ModalWindow/components/ModalWindowViewManager.js +2 -2
  372. package/components/MonthYearField/utils.js +2 -1
  373. package/components/MonthYearField/utils.js.map +1 -1
  374. package/components/MonthYearRange/MonthYearRange.js +4 -4
  375. package/components/MultiselectField/components/MultiselectFieldDropdown.js +2 -2
  376. package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +6 -6
  377. package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +2 -2
  378. package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +2 -2
  379. package/components/Notification/Notification.js +3 -3
  380. package/components/Notification/NotificationGrouped.js +1 -1
  381. package/components/Notification/components/NotificationBody.js +1 -1
  382. package/components/Notification/components/NotificationBodyList.js +2 -2
  383. package/components/Notification/components/NotificationClose.js +1 -1
  384. package/components/Notification/components/NotificationFooter.js +1 -1
  385. package/components/Notification/components/NotificationGroupedFooter.js +2 -2
  386. package/components/Notification/components/NotificationHeader.js +1 -1
  387. package/components/Notification/components/NotificationIcon.js +1 -1
  388. package/components/Notification/components/NotificationTime.js +1 -1
  389. package/components/OrderedList/OrderedList.js +3 -3
  390. package/components/OrderedList/OrderedListItem.js +3 -3
  391. package/components/Overlay/Overlay.js +2 -2
  392. package/components/Overlay/OverlayMask.js +2 -2
  393. package/components/Overlay/OverlayPanel.js +2 -2
  394. package/components/Page/Page.js +2 -2
  395. package/components/Page/components/BodyPage.js +4 -4
  396. package/components/Page/components/FooterPage.js +2 -2
  397. package/components/Page/components/HeaderPage.js +2 -2
  398. package/components/Pagination/components/PaginationExtended.js +3 -3
  399. package/components/Pagination/components/PaginationNavigation.js +1 -1
  400. package/components/Pagination/components/PaginationNavigation.js.map +1 -1
  401. package/components/Pagination/components/PaginationNavigationButton.js +2 -2
  402. package/components/Pagination/components/PaginationNavigationExtended.js +2 -2
  403. package/components/Pagination/components/PaginationPageButton.js +3 -3
  404. package/components/Pagination/components/PaginationPageEllipsis.js +2 -2
  405. package/components/Pagination/components/PaginationSelect.js +3 -3
  406. package/components/Pagination/{utils/paginationUtils.js → utils.js} +2 -2
  407. package/components/Pagination/utils.js.map +1 -0
  408. package/components/Portal/Portal.js.map +1 -1
  409. package/components/Radio/Radio.js +10 -10
  410. package/components/Radio/RadioXGroup.js +9 -9
  411. package/components/Radio/RadioYGroup.js +2 -2
  412. package/components/Row/Row.js +5 -5
  413. package/components/SMSField/SMSField.js +3 -3
  414. package/components/SMSField/components/RefreshIcon.js +2 -2
  415. package/components/SMSField/components/SMSFieldInput.js +2 -2
  416. package/components/SMSField/components/SMSFieldRefresh.js +2 -2
  417. package/components/SMSField/components/SMSFieldSubmit.js +2 -2
  418. package/components/SMSField/components/SMSFieldTooltip.js +1 -1
  419. package/components/SegmentedControl/SegmentedControl.js +10 -10
  420. package/components/SegmentedControl/SegmentedControlSegment.js +4 -4
  421. package/components/SelectExtendedField/SelectExtendedField.js +3 -2
  422. package/components/SelectExtendedField/SelectExtendedField.js.map +1 -1
  423. package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js +1 -1
  424. package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js +1 -1
  425. package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js +8 -8
  426. package/components/SelectField/SelectField.js +2 -2
  427. package/components/Skeleton/Skeleton.js +5 -5
  428. package/components/SliderExtended/SliderExtended.js +3 -3
  429. package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +7 -6
  430. package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js.map +1 -1
  431. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +2 -2
  432. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +2 -2
  433. package/components/SliderExtended/components/SliderExtendedRail.js +2 -2
  434. package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +5 -5
  435. package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +8 -7
  436. package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js.map +1 -1
  437. package/components/SmallInput/SmallInput.js +2 -2
  438. package/components/Spoiler/Spoiler.js +11 -11
  439. package/components/StatusTracker/StatusTracker.js +8 -7
  440. package/components/StatusTracker/StatusTracker.js.map +1 -1
  441. package/components/StatusTracker/components/StatusTrackerAlert.js +2 -2
  442. package/components/StatusTracker/components/StatusTrackerBody.js +2 -2
  443. package/components/StatusTracker/components/StatusTrackerButton.js +2 -2
  444. package/components/StatusTracker/components/StatusTrackerDescription.js +2 -2
  445. package/components/StatusTracker/components/StatusTrackerFooter.js +2 -2
  446. package/components/StatusTracker/components/StatusTrackerHeader.js +2 -2
  447. package/components/StatusTracker/components/StatusTrackerMedia.js +2 -2
  448. package/components/StatusTracker/components/StatusTrackerStatus.js +2 -2
  449. package/components/StatusTracker/components/StatusTrackerStatusGroup.js +2 -2
  450. package/components/StatusTracker/components/StatusTrackerSum.js +2 -2
  451. package/components/StatusTracker/components/StatusTrackerTitle.js +2 -2
  452. package/components/Step/Step.js +11 -11
  453. package/components/Stepper/Stepper.js +9 -9
  454. package/components/Stepper/StepperExtended.js +2 -2
  455. package/components/Stepper/StepperStep.js +3 -3
  456. package/components/Stepper/StepperStepArrowBorder.js +1 -1
  457. package/components/Suggest/SuggestMobileDropdownContent.js +3 -3
  458. package/components/Suggest/useSuggest.js +1 -1
  459. package/components/SuggestField/SuggestField.js +1 -1
  460. package/components/SuggestField/desktop/SuggestFieldDesktop.js +2 -2
  461. package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js +1 -1
  462. package/components/SuggestField/index.js +1 -1
  463. package/components/SuggestField/mobile/SuggestFieldMobile.js +1 -1
  464. package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js +2 -2
  465. package/components/SuggestField/mobile/SuggestFieldMobileDropdownHint.js +1 -1
  466. package/components/SuggestField/mobile/index.js +1 -1
  467. package/components/SwipeableArea/SwipeableArea.js +9 -9
  468. package/components/Table/ChipPanel.js +2 -2
  469. package/components/Table/ChipPanelLinks.js +2 -2
  470. package/components/Table/FilterPanel.js +3 -3
  471. package/components/Table/MasterTable.js +3 -3
  472. package/components/Table/NoColumns.js +3 -3
  473. package/components/Table/PaginationPanel.js +3 -3
  474. package/components/Table/TableBasic/TableBasic.js +2 -2
  475. package/components/Table/TableBasic/components/TableBasicBody.js +2 -2
  476. package/components/Table/TableBasic/components/TableBasicHeader.js +2 -2
  477. package/components/Table/TableBasic/components/TableBasicRow.js +2 -2
  478. package/components/Table/TableBasicSettings/TableBasicSettings.js +3 -3
  479. package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +3 -3
  480. package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +2 -2
  481. package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +2 -2
  482. package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +2 -2
  483. package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +2 -2
  484. package/components/Table/TableFooter/TableFooter.js +2 -2
  485. package/components/Table/TableFooter/components/TableFooterSummary.js +1 -1
  486. package/components/Table/TableFooter/components/TableFooterSummaryAmount.js +1 -1
  487. package/components/Table/TableFooter/components/TableFooterSummarySelectAllButton.js +1 -1
  488. package/components/Table/TableFooter/components/TableFooterSummarySelectedCount.js +1 -1
  489. package/components/Table/utils.js +1 -1
  490. package/components/Tabs/Tabs.js +6 -6
  491. package/components/TabsExtended/TabsExtended.js +3 -3
  492. package/components/TabsExtended/components/TabsExtendedContent.js +2 -2
  493. package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +2 -2
  494. package/components/TabsExtended/components/TabsExtendedTab.js +2 -2
  495. package/components/TabsExtended/components/TabsExtendedTabButton.js +2 -2
  496. package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +2 -2
  497. package/components/TabsExtended/utils.js +1 -1
  498. package/components/TabsLine/TabsLine.js +2 -2
  499. package/components/TabsLine/components/TabsLineDesktop.js +2 -2
  500. package/components/TabsLine/components/TabsLineDropdown.js +3 -3
  501. package/components/TabsLine/components/TabsLineItem.js +2 -2
  502. package/components/TabsLine/components/TabsLineMobile.js +2 -2
  503. package/components/Tag/Tag.js +6 -6
  504. package/components/TagColor/TagColor.js +11 -11
  505. package/components/TagGroup/TagGroup.js +5 -5
  506. package/components/ThemeProvider/ETriplexNextTheme.js.map +1 -1
  507. package/components/ThemeProvider/ThemeProvider.js +6 -4
  508. package/components/ThemeProvider/ThemeProvider.js.map +1 -1
  509. package/components/ThemeProvider/ThemeProviderContext.js.map +1 -1
  510. package/components/ThemeProvider/components/ThemeProviderView.js +7 -10
  511. package/components/ThemeProvider/components/ThemeProviderView.js.map +1 -1
  512. package/components/ThemeProvider/useToken.js.map +1 -1
  513. package/components/Tooltip/Tooltip.js +49 -52
  514. package/components/Tooltip/Tooltip.js.map +1 -1
  515. package/components/Tooltip/TootlipContext.js.map +1 -1
  516. package/components/Tooltip/components/common/TooltipBody.js +2 -2
  517. package/components/Tooltip/components/common/TooltipLink.js +8 -19
  518. package/components/Tooltip/components/common/TooltipLink.js.map +1 -1
  519. package/components/Tooltip/components/common/TooltipTarget.js.map +1 -1
  520. package/components/Tooltip/components/common/TooltipXButton.js +1 -1
  521. package/components/Tooltip/components/desktop/TooltipDesktop.js +24 -12
  522. package/components/Tooltip/components/desktop/TooltipDesktop.js.map +1 -1
  523. package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +26 -25
  524. package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js.map +1 -1
  525. package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +9 -18
  526. package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js.map +1 -1
  527. package/components/Tooltip/components/mobile/TooltipMobile.js +11 -7
  528. package/components/Tooltip/components/mobile/TooltipMobile.js.map +1 -1
  529. package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js +2 -2
  530. package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js.map +1 -1
  531. package/components/Tooltip/enums.js.map +1 -1
  532. package/components/Tooltip/utils/Positioning.js +18 -17
  533. package/components/Tooltip/utils/Positioning.js.map +1 -1
  534. package/components/Tooltip/utils/useTooltipTheme.js +40 -12
  535. package/components/Tooltip/utils/useTooltipTheme.js.map +1 -1
  536. package/components/TopOverlay/TopOverlay.js +7 -7
  537. package/components/TreeView/TreeView.js +2 -2
  538. package/components/TreeView/components/TreeViewGroup.js +1 -1
  539. package/components/TreeView/components/TreeViewNode.js +2 -2
  540. package/components/Typography/Caption.js +8 -8
  541. package/components/Typography/CodeText.js +3 -3
  542. package/components/Typography/Text.js +10 -10
  543. package/components/Typography/Title.js +11 -11
  544. package/components/Typography/Title.js.map +1 -1
  545. package/components/Typography/constants.js +1 -1
  546. package/components/UnorderedList/UnorderedList.js +3 -3
  547. package/components/UnorderedList/UnorderedListItem.js +3 -3
  548. package/components/UploadZone/UploadZone.js +3 -3
  549. package/components/UploadZone/components/UploadZoneInput.js +2 -2
  550. package/components/UploadZone/index.js +1 -1
  551. package/components/WindowResizeListener/WindowResizeListener.js +1 -1
  552. package/components/index.js +7 -8
  553. package/consts/DateConst.js.map +1 -1
  554. package/index.d.ts +254 -110
  555. package/index.js +7 -8
  556. package/package.json +1 -1
  557. package/styles/triplex-next.css +2949 -2939
  558. package/utils/amountUtils.js +1 -1
  559. package/chunks/CalendarViewItem-AChLlz4N.js.map +0 -1
  560. package/chunks/Card.module-CZ1_wRdI.js +0 -30
  561. package/chunks/Card.module-CZ1_wRdI.js.map +0 -1
  562. package/chunks/Carousel.module-COe08s01.js +0 -30
  563. package/chunks/Carousel.module-COe08s01.js.map +0 -1
  564. package/chunks/CheckboxTreeExtended.module-CsB5Xz5K.js +0 -24
  565. package/chunks/CheckboxTreeExtended.module-CsB5Xz5K.js.map +0 -1
  566. package/chunks/Chip-DGvjOx0y.js.map +0 -1
  567. package/chunks/Confirm.module-CEJR1txO.js +0 -24
  568. package/chunks/Confirm.module-CEJR1txO.js.map +0 -1
  569. package/chunks/DropdownListItem-COR0eOzM.js.map +0 -1
  570. package/chunks/DropdownMobile.module-DUiUSr13.js +0 -40
  571. package/chunks/DropdownMobile.module-DUiUSr13.js.map +0 -1
  572. package/chunks/Footer.module-DUTwBl0x.js +0 -12
  573. package/chunks/Footer.module-DUTwBl0x.js.map +0 -1
  574. package/chunks/HeaderLayoutSidebar.module-o5cCUCGl.js.map +0 -1
  575. package/chunks/HeaderTabs.module-Ch5Mbe7q.js +0 -12
  576. package/chunks/HeaderTabs.module-Ch5Mbe7q.js.map +0 -1
  577. package/chunks/HeaderTitle.module-CUVjwVW7.js.map +0 -1
  578. package/chunks/ImageGalleryExtendedMain.module-BMoLBevi.js +0 -28
  579. package/chunks/ImageGalleryExtendedMain.module-BMoLBevi.js.map +0 -1
  580. package/chunks/IslandAccordion.module-YxGUkwAy.js +0 -44
  581. package/chunks/IslandAccordion.module-YxGUkwAy.js.map +0 -1
  582. package/chunks/IslandWidgetFooter.module-Bk3x1llO.js +0 -12
  583. package/chunks/IslandWidgetFooter.module-Bk3x1llO.js.map +0 -1
  584. package/chunks/IslandWidgetHeader.module-BcrHca9Y.js +0 -20
  585. package/chunks/IslandWidgetHeader.module-BcrHca9Y.js.map +0 -1
  586. package/chunks/LightBoxControls.module-DisqspyG.js +0 -26
  587. package/chunks/LightBoxControls.module-DisqspyG.js.map +0 -1
  588. package/chunks/LightBoxSideOverlayClose.module-BVuB53vM.js.map +0 -1
  589. package/chunks/ListItemTail.module-B24d99yc.js +0 -18
  590. package/chunks/ListItemTail.module-B24d99yc.js.map +0 -1
  591. package/chunks/ListMasterFooter.module-XwfScyft.js +0 -14
  592. package/chunks/ListMasterFooter.module-XwfScyft.js.map +0 -1
  593. package/chunks/ModalWindow.module-CAccCwuD.js +0 -28
  594. package/chunks/ModalWindow.module-CAccCwuD.js.map +0 -1
  595. package/chunks/Notification.module-yXlyaoAB.js +0 -34
  596. package/chunks/Notification.module-yXlyaoAB.js.map +0 -1
  597. package/chunks/Overlay.module-gnmqM0Mg.js +0 -30
  598. package/chunks/Overlay.module-gnmqM0Mg.js.map +0 -1
  599. package/chunks/Page.module-CyuFcFEq.js +0 -15
  600. package/chunks/Page.module-CyuFcFEq.js.map +0 -1
  601. package/chunks/SMSField.module-By9uV96A.js +0 -26
  602. package/chunks/SMSField.module-By9uV96A.js.map +0 -1
  603. package/chunks/SliderExtendedMarks.module-DwGOsapl.js +0 -24
  604. package/chunks/SliderExtendedMarks.module-DwGOsapl.js.map +0 -1
  605. package/chunks/StatusTracker.module-DSfmXNxw.js +0 -42
  606. package/chunks/StatusTracker.module-DSfmXNxw.js.map +0 -1
  607. package/chunks/TableFooter.module-DM5tgc_b.js +0 -22
  608. package/chunks/TableFooter.module-DM5tgc_b.js.map +0 -1
  609. package/chunks/TabsExtended.module-91rJFYMk.js +0 -26
  610. package/chunks/TabsExtended.module-91rJFYMk.js.map +0 -1
  611. package/chunks/TabsLine.module-DAe_P2wh.js +0 -36
  612. package/chunks/TabsLine.module-DAe_P2wh.js.map +0 -1
  613. package/chunks/TooltipDesktop.module-BW_tN5pN.js +0 -32
  614. package/chunks/TooltipDesktop.module-BW_tN5pN.js.map +0 -1
  615. package/chunks/TreeView.module-BheprFto.js +0 -12
  616. package/chunks/TreeView.module-BheprFto.js.map +0 -1
  617. package/chunks/utils-BXgC_I8P.js.map +0 -1
  618. package/chunks/vendor-DKrjZZwJ.js +0 -36109
  619. package/chunks/vendor-DKrjZZwJ.js.map +0 -1
  620. package/components/Carousel/__tests__/utils.js +0 -92
  621. package/components/Carousel/__tests__/utils.js.map +0 -1
  622. package/components/Pagination/utils/paginationUtils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipTarget.js","sources":["../../../../../src/components/Tooltip/components/common/TooltipTarget.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { ITooltipTargetProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Целевой элемент компонента Tooltip. */\nexport const TooltipTarget: React.FC<ITooltipTargetProps> = ({ children }) => {\n const { toggleType, tooltipOpen, targetHoveredRef, setTooltipOpen } = useContext(TooltipContext);\n const child = React.Children.only(children);\n\n /** Обработчик нажатия клавиши. */\n const handleKeyDown = (onKeyDown?: React.KeyboardEventHandler) => (event: React.KeyboardEvent) => {\n const key = event.code || event.keyCode;\n\n if (isKey(key, \"TAB\")) {\n if (tooltipOpen) {\n setTooltipOpen(false);\n }\n }\n onKeyDown?.(event);\n };\n\n /** Обработчик клика. */\n const handleClick = (onClick?: React.MouseEventHandler) => (event: React.MouseEvent) => {\n if (\n toggleType === \"click\" ||\n (toggleType === \"hover\" && !targetHoveredRef.current && event.currentTarget.contains(event.target as Node))\n ) {\n setTooltipOpen(!tooltipOpen);\n }\n onClick?.(event);\n };\n\n if (React.isValidElement<React.HTMLAttributes<Element>>(child)) {\n return React.cloneElement(child, {\n onClick: handleClick(child.props.onClick),\n onKeyDown: handleKeyDown(child.props.onKeyDown),\n });\n }\n\n return child;\n};\n"],"names":[],"mappings":";;;AAMO,MAAM,gBAA+C,CAAC,EAAE,eAAe;AAC1E,QAAM,EAAE,YAAY,aAAa,kBAAkB,eAAA,IAAmB,WAAW,cAAc;AAC/F,QAAM,QAAQ,MAAM,SAAS,KAAK,QAAQ;AAG1C,QAAM,gBAAgB,CAAC,cAA2C,CAAC,UAA+B;AAC9F,UAAM,MAAM,MAAM,QAAQ,MAAM;AAEhC,QAAI,MAAM,KAAK,KAAK,GAAG;AACnB,UAAI,aAAa;AACb,uBAAe,KAAK;AAAA,MACxB;AAAA,IACJ;AACA,2CAAY;AAAA,EAChB;AAGA,QAAM,cAAc,CAAC,YAAsC,CAAC,UAA4B;AACpF,QACI,eAAe,WACd,eAAe,WAAW,CAAC,iBAAiB,WAAW,MAAM,cAAc,SAAS,MAAM,MAAc,GAC3G;AACE,qBAAe,CAAC,WAAW;AAAA,IAC/B;AACA,uCAAU;AAAA,EACd;AAEA,MAAI,MAAM,eAA8C,KAAK,GAAG;AAC5D,WAAO,MAAM,aAAa,OAAO;AAAA,MAC7B,SAAS,YAAY,MAAM,MAAM,OAAO;AAAA,MACxC,WAAW,cAAc,MAAM,MAAM,SAAS;AAAA,IAAA,CACjD;AAAA,EACL;AAEA,SAAO;AACX;"}
1
+ {"version":3,"file":"TooltipTarget.js","sources":["../../../../../src/components/Tooltip/components/common/TooltipTarget.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { ITooltipTargetProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/**\n * Целевой элемент компонента Tooltip.\n * Не рендерит собственную разметку: клонирует единственный дочерний элемент,\n * добавляя ему обработчики открытия подсказки. Собственные onClick/onKeyDown ребёнка сохраняются.\n */\nexport const TooltipTarget: React.FC<ITooltipTargetProps> = ({ children }) => {\n const { toggleType, tooltipOpen, targetHoveredRef, setTooltipOpen } = useContext(TooltipContext);\n const child = React.Children.only(children);\n\n /** Обработчик нажатия клавиши. */\n const handleKeyDown = (onKeyDown?: React.KeyboardEventHandler) => (event: React.KeyboardEvent) => {\n const key = event.code || event.keyCode;\n\n if (isKey(key, \"TAB\")) {\n if (tooltipOpen) {\n setTooltipOpen(false);\n }\n }\n onKeyDown?.(event);\n };\n\n /** Обработчик клика. */\n const handleClick = (onClick?: React.MouseEventHandler) => (event: React.MouseEvent) => {\n if (\n toggleType === \"click\" ||\n (toggleType === \"hover\" && !targetHoveredRef.current && event.currentTarget.contains(event.target as Node))\n ) {\n setTooltipOpen(!tooltipOpen);\n }\n onClick?.(event);\n };\n\n if (React.isValidElement<React.HTMLAttributes<Element>>(child)) {\n return React.cloneElement(child, {\n onClick: handleClick(child.props.onClick),\n onKeyDown: handleKeyDown(child.props.onKeyDown),\n });\n }\n\n return child;\n};\n"],"names":[],"mappings":";;;AAUO,MAAM,gBAA+C,CAAC,EAAE,eAAe;AAC1E,QAAM,EAAE,YAAY,aAAa,kBAAkB,eAAA,IAAmB,WAAW,cAAc;AAC/F,QAAM,QAAQ,MAAM,SAAS,KAAK,QAAQ;AAG1C,QAAM,gBAAgB,CAAC,cAA2C,CAAC,UAA+B;AAC9F,UAAM,MAAM,MAAM,QAAQ,MAAM;AAEhC,QAAI,MAAM,KAAK,KAAK,GAAG;AACnB,UAAI,aAAa;AACb,uBAAe,KAAK;AAAA,MACxB;AAAA,IACJ;AACA,2CAAY;AAAA,EAChB;AAGA,QAAM,cAAc,CAAC,YAAsC,CAAC,UAA4B;AACpF,QACI,eAAe,WACd,eAAe,WAAW,CAAC,iBAAiB,WAAW,MAAM,cAAc,SAAS,MAAM,MAAc,GAC3G;AACE,qBAAe,CAAC,WAAW;AAAA,IAC/B;AACA,uCAAU;AAAA,EACd;AAEA,MAAI,MAAM,eAA8C,KAAK,GAAG;AAC5D,WAAO,MAAM,aAAa,OAAO;AAAA,MAC7B,SAAS,YAAY,MAAM,MAAM,OAAO;AAAA,MACxC,WAAW,cAAc,MAAM,MAAM,SAAS;AAAA,IAAA,CACjD;AAAA,EACL;AAEA,SAAO;AACX;"}
@@ -3,7 +3,7 @@ import { useContext } from "react";
3
3
  import { CrossStrokeSrvIcon16 } from "@sberbusiness/icons-next";
4
4
  import { TooltipContext } from "../../TootlipContext.js";
5
5
  import { ButtonIcon } from "../../../Button/ButtonIcon.js";
6
- import { s as styles } from "../../../../chunks/TooltipDesktop.module-BW_tN5pN.js";
6
+ import { s as styles } from "../../../../chunks/TooltipDesktop.module-D22gy-42.js";
7
7
  const TooltipXButton = ({ onClick, ...rest }) => {
8
8
  const { setTooltipOpen } = useContext(TooltipContext);
9
9
  const handleClick = (event) => {
@@ -6,11 +6,13 @@ import React from "react";
6
6
  import { TooltipDesktopBase } from "./components/TooltipDesktopBase.js";
7
7
  import { TooltipContext } from "../../TootlipContext.js";
8
8
  import { isKey } from "../../../../utils/keyboard.js";
9
+ const HOVER_CLOSE_DELAY_MS = 500;
9
10
  class TooltipDesktop extends React.Component {
10
11
  constructor() {
11
12
  super(...arguments);
12
13
  __publicField(this, "tooltip", null);
13
14
  __publicField(this, "timeout");
15
+ /** Сохранение ноды подсказки и подписка её на события наведения. */
14
16
  __publicField(this, "setTooltipRef", (node) => {
15
17
  const { toggleType } = this.props;
16
18
  if (node && toggleType === "hover") {
@@ -18,7 +20,7 @@ class TooltipDesktop extends React.Component {
18
20
  }
19
21
  this.tooltip = node;
20
22
  });
21
- // Закрываем Tooltip при клике за его пределами.
23
+ /** Закрытие подсказки при действии мышью за её пределами. */
22
24
  __publicField(this, "closeIfOuterAction", (event) => {
23
25
  const { targetRef } = this.props;
24
26
  const { setTooltipOpen } = this.context;
@@ -30,21 +32,24 @@ class TooltipDesktop extends React.Component {
30
32
  }
31
33
  }
32
34
  });
33
- // Закрываем Tooltip по нажатию Esc
35
+ /** Закрытие подсказки по нажатию Escape. */
34
36
  __publicField(this, "closeIfEscapeKey", (event) => {
35
37
  const key = event.code || event.keyCode;
36
38
  if (isKey(key, "ESCAPE")) {
37
39
  this.context.setTooltipOpen(false);
38
40
  }
39
41
  });
42
+ /** Подписка элемента на события наведения. */
40
43
  __publicField(this, "addHoverListeners", (element) => {
41
44
  element.addEventListener("mouseenter", this.handleMouseEnter);
42
45
  element.addEventListener("mouseleave", this.handleMouseLeave);
43
46
  });
47
+ /** Отписка элемента от событий наведения. */
44
48
  __publicField(this, "removeHoverListeners", (element) => {
45
49
  element.removeEventListener("mouseenter", this.handleMouseEnter);
46
50
  element.removeEventListener("mouseleave", this.handleMouseLeave);
47
51
  });
52
+ /** Обработчик наведения курсора на целевой элемент или на саму подсказку. */
48
53
  __publicField(this, "handleMouseEnter", () => {
49
54
  const { tooltipOpen, targetHoveredRef, setTooltipOpen } = this.context;
50
55
  if (!tooltipOpen) {
@@ -53,11 +58,12 @@ class TooltipDesktop extends React.Component {
53
58
  }
54
59
  clearTimeout(this.timeout);
55
60
  });
61
+ /** Обработчик ухода курсора: подсказка закрывается с задержкой, чтобы курсор успел дойти до неё. */
56
62
  __publicField(this, "handleMouseLeave", () => {
57
63
  const { setTooltipOpen } = this.context;
58
64
  this.timeout = window.setTimeout(() => {
59
65
  setTooltipOpen(false);
60
- }, 500);
66
+ }, HOVER_CLOSE_DELAY_MS);
61
67
  });
62
68
  }
63
69
  render() {
@@ -65,9 +71,9 @@ class TooltipDesktop extends React.Component {
65
71
  return /* @__PURE__ */ jsx(TooltipDesktopBase, { ...rest, setTooltipRef: this.setTooltipRef });
66
72
  }
67
73
  componentDidMount() {
68
- const { toggleType, targetRef } = this.props;
69
- if (this.props.isOpen) {
70
- document.addEventListener("click", this.closeIfOuterAction);
74
+ const { toggleType, targetRef, isOpen } = this.props;
75
+ if (isOpen) {
76
+ document.addEventListener("mousedown", this.closeIfOuterAction);
71
77
  document.addEventListener("keydown", this.closeIfEscapeKey);
72
78
  }
73
79
  if (targetRef.current && toggleType === "hover") {
@@ -85,15 +91,16 @@ class TooltipDesktop extends React.Component {
85
91
  if (isClosed) {
86
92
  document.removeEventListener("mousedown", this.closeIfOuterAction);
87
93
  document.removeEventListener("keydown", this.closeIfEscapeKey);
88
- if (this.props.toggleType === "hover") {
94
+ if (this.props.toggleType === "hover" && this.tooltip) {
89
95
  this.removeHoverListeners(this.tooltip);
90
96
  }
91
97
  }
92
- if (targetRef.current && prevProps.toggleType != this.props.toggleType) {
98
+ if (prevProps.toggleType !== this.props.toggleType) {
99
+ const elements = [targetRef.current, this.tooltip];
93
100
  if (this.props.toggleType === "hover") {
94
- this.addHoverListeners(targetRef.current);
101
+ elements.forEach((element) => element && this.addHoverListeners(element));
95
102
  } else if (prevProps.toggleType === "hover") {
96
- this.removeHoverListeners(targetRef.current);
103
+ elements.forEach((element) => element && this.removeHoverListeners(element));
97
104
  }
98
105
  }
99
106
  }
@@ -101,8 +108,13 @@ class TooltipDesktop extends React.Component {
101
108
  const { toggleType, targetRef } = this.props;
102
109
  document.removeEventListener("mousedown", this.closeIfOuterAction);
103
110
  document.removeEventListener("keydown", this.closeIfEscapeKey);
104
- if (targetRef.current && toggleType === "hover") {
105
- this.removeHoverListeners(targetRef.current);
111
+ if (toggleType === "hover") {
112
+ if (targetRef.current) {
113
+ this.removeHoverListeners(targetRef.current);
114
+ }
115
+ if (this.tooltip) {
116
+ this.removeHoverListeners(this.tooltip);
117
+ }
106
118
  }
107
119
  clearTimeout(this.timeout);
108
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipDesktop.js","sources":["../../../../../src/components/Tooltip/components/desktop/TooltipDesktop.tsx"],"sourcesContent":["import React from \"react\";\nimport { TooltipDesktopBase } from \"@sberbusiness/triplex-next/components/Tooltip/components/desktop/components/TooltipDesktopBase\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { ITooltipDesktopProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Десктоп версия компонента Tooltip. */\nexport class TooltipDesktop extends React.Component<ITooltipDesktopProps> {\n public static displayName = \"TooltipDesktop\";\n public static contextType = TooltipContext;\n\n declare context: React.ContextType<typeof TooltipContext>;\n\n private tooltip: Element | null = null;\n private timeout?: number;\n\n public render(): JSX.Element {\n const { children, toggleType, ...rest } = this.props;\n\n return <TooltipDesktopBase {...rest} setTooltipRef={this.setTooltipRef} />;\n }\n\n public componentDidMount(): void {\n const { toggleType, targetRef } = this.props;\n\n // Если Tooltip открывается по клику, то должен уметь закрываться по клику вне и по Esc.\n if (this.props.isOpen) {\n document.addEventListener(\"click\", this.closeIfOuterAction);\n document.addEventListener(\"keydown\", this.closeIfEscapeKey);\n }\n\n if (targetRef.current && toggleType === \"hover\") {\n this.addHoverListeners(targetRef.current);\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<ITooltipDesktopProps>): void {\n const { targetRef } = this.props;\n const isOpen = !prevProps.isOpen && this.props.isOpen;\n const isClosed = prevProps.isOpen && !this.props.isOpen;\n\n // Tooltip открылся.\n if (isOpen) {\n document.addEventListener(\"mousedown\", this.closeIfOuterAction);\n document.addEventListener(\"keydown\", this.closeIfEscapeKey);\n }\n\n // Tooltip закрылся.\n if (isClosed) {\n document.removeEventListener(\"mousedown\", this.closeIfOuterAction);\n document.removeEventListener(\"keydown\", this.closeIfEscapeKey);\n\n if (this.props.toggleType === \"hover\") {\n this.removeHoverListeners(this.tooltip!);\n }\n }\n\n if (targetRef.current && prevProps.toggleType != this.props.toggleType) {\n if (this.props.toggleType === \"hover\") {\n this.addHoverListeners(targetRef.current);\n } else if (prevProps.toggleType === \"hover\") {\n this.removeHoverListeners(targetRef.current);\n }\n }\n }\n\n public componentWillUnmount(): void {\n const { toggleType, targetRef } = this.props;\n\n document.removeEventListener(\"mousedown\", this.closeIfOuterAction);\n document.removeEventListener(\"keydown\", this.closeIfEscapeKey);\n\n if (targetRef.current && toggleType === \"hover\") {\n this.removeHoverListeners(targetRef.current);\n }\n\n clearTimeout(this.timeout);\n }\n\n private setTooltipRef = (node: HTMLDivElement | null) => {\n const { toggleType } = this.props;\n\n if (node && toggleType === \"hover\") {\n this.addHoverListeners(node);\n }\n\n this.tooltip = node;\n };\n\n // Закрываем Tooltip при клике за его пределами.\n private closeIfOuterAction = (event: Event) => {\n const { targetRef } = this.props;\n const { setTooltipOpen } = this.context;\n\n if (targetRef.current && this.tooltip) {\n const outOfTarget = !targetRef.current.contains(event.target as Node);\n const outOfTooltip = !this.tooltip.contains(event.target as Node);\n\n if (outOfTarget && outOfTooltip) {\n setTooltipOpen(false);\n }\n }\n };\n\n // Закрываем Tooltip по нажатию Esc\n private closeIfEscapeKey = (event: KeyboardEvent) => {\n const key = event.code || event.keyCode;\n\n if (isKey(key, \"ESCAPE\")) {\n this.context.setTooltipOpen(false);\n }\n };\n\n private addHoverListeners = (element: Element) => {\n element.addEventListener(\"mouseenter\", this.handleMouseEnter);\n element.addEventListener(\"mouseleave\", this.handleMouseLeave);\n };\n\n private removeHoverListeners = (element: Element) => {\n element.removeEventListener(\"mouseenter\", this.handleMouseEnter);\n element.removeEventListener(\"mouseleave\", this.handleMouseLeave);\n };\n\n private handleMouseEnter = () => {\n const { tooltipOpen, targetHoveredRef, setTooltipOpen } = this.context;\n\n if (!tooltipOpen) {\n setTooltipOpen(true);\n targetHoveredRef.current = true;\n }\n clearTimeout(this.timeout);\n };\n\n private handleMouseLeave = () => {\n const { setTooltipOpen } = this.context;\n\n this.timeout = window.setTimeout(() => {\n setTooltipOpen(false);\n }, 500);\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TooltipDesktop.js","sources":["../../../../../src/components/Tooltip/components/desktop/TooltipDesktop.tsx"],"sourcesContent":["import React from \"react\";\nimport { TooltipDesktopBase } from \"@sberbusiness/triplex-next/components/Tooltip/components/desktop/components/TooltipDesktopBase\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { ITooltipDesktopProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Задержка закрытия подсказки после ухода курсора, мс. */\nconst HOVER_CLOSE_DELAY_MS = 500;\n\n/**\n * Десктоп версия компонента Tooltip.\n * Отвечает за подписки на события документа и целевого элемента: закрытие по клику вне,\n * по Escape и открытие/закрытие по наведению.\n */\nexport class TooltipDesktop extends React.Component<ITooltipDesktopProps> {\n public static displayName = \"TooltipDesktop\";\n public static contextType = TooltipContext;\n\n declare context: React.ContextType<typeof TooltipContext>;\n\n private tooltip: Element | null = null;\n private timeout?: number;\n\n public render(): JSX.Element {\n // children и toggleType не должны попадать в DOM — исключаются из rest.\n const { children, toggleType, ...rest } = this.props;\n\n return <TooltipDesktopBase {...rest} setTooltipRef={this.setTooltipRef} />;\n }\n\n public componentDidMount(): void {\n const { toggleType, targetRef, isOpen } = this.props;\n\n // Если Tooltip открывается по клику, то должен уметь закрываться по клику вне и по Esc.\n if (isOpen) {\n document.addEventListener(\"mousedown\", this.closeIfOuterAction);\n document.addEventListener(\"keydown\", this.closeIfEscapeKey);\n }\n\n if (targetRef.current && toggleType === \"hover\") {\n this.addHoverListeners(targetRef.current);\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<ITooltipDesktopProps>): void {\n const { targetRef } = this.props;\n const isOpen = !prevProps.isOpen && this.props.isOpen;\n const isClosed = prevProps.isOpen && !this.props.isOpen;\n\n // Tooltip открылся.\n if (isOpen) {\n document.addEventListener(\"mousedown\", this.closeIfOuterAction);\n document.addEventListener(\"keydown\", this.closeIfEscapeKey);\n }\n\n // Tooltip закрылся.\n if (isClosed) {\n document.removeEventListener(\"mousedown\", this.closeIfOuterAction);\n document.removeEventListener(\"keydown\", this.closeIfEscapeKey);\n\n if (this.props.toggleType === \"hover\" && this.tooltip) {\n this.removeHoverListeners(this.tooltip);\n }\n }\n\n // Смена toggleType на лету: обработчики нужно синхронизировать и на целевом элементе,\n // и на самой подсказке — на неё их вешает setTooltipRef, который повторно не вызывается.\n if (prevProps.toggleType !== this.props.toggleType) {\n const elements = [targetRef.current, this.tooltip];\n\n if (this.props.toggleType === \"hover\") {\n elements.forEach((element) => element && this.addHoverListeners(element));\n } else if (prevProps.toggleType === \"hover\") {\n elements.forEach((element) => element && this.removeHoverListeners(element));\n }\n }\n }\n\n public componentWillUnmount(): void {\n const { toggleType, targetRef } = this.props;\n\n document.removeEventListener(\"mousedown\", this.closeIfOuterAction);\n document.removeEventListener(\"keydown\", this.closeIfEscapeKey);\n\n if (toggleType === \"hover\") {\n if (targetRef.current) {\n this.removeHoverListeners(targetRef.current);\n }\n\n // На саму подсказку обработчики вешает setTooltipRef — снимаем их симметрично,\n // иначе при размонтировании открытой подсказки они остаются на ноде.\n if (this.tooltip) {\n this.removeHoverListeners(this.tooltip);\n }\n }\n\n clearTimeout(this.timeout);\n }\n\n /** Сохранение ноды подсказки и подписка её на события наведения. */\n private setTooltipRef = (node: HTMLDivElement | null) => {\n const { toggleType } = this.props;\n\n if (node && toggleType === \"hover\") {\n this.addHoverListeners(node);\n }\n\n this.tooltip = node;\n };\n\n /** Закрытие подсказки при действии мышью за её пределами. */\n private closeIfOuterAction = (event: Event) => {\n const { targetRef } = this.props;\n const { setTooltipOpen } = this.context;\n\n if (targetRef.current && this.tooltip) {\n const outOfTarget = !targetRef.current.contains(event.target as Node);\n const outOfTooltip = !this.tooltip.contains(event.target as Node);\n\n if (outOfTarget && outOfTooltip) {\n setTooltipOpen(false);\n }\n }\n };\n\n /** Закрытие подсказки по нажатию Escape. */\n private closeIfEscapeKey = (event: KeyboardEvent) => {\n const key = event.code || event.keyCode;\n\n if (isKey(key, \"ESCAPE\")) {\n this.context.setTooltipOpen(false);\n }\n };\n\n /** Подписка элемента на события наведения. */\n private addHoverListeners = (element: Element) => {\n element.addEventListener(\"mouseenter\", this.handleMouseEnter);\n element.addEventListener(\"mouseleave\", this.handleMouseLeave);\n };\n\n /** Отписка элемента от событий наведения. */\n private removeHoverListeners = (element: Element) => {\n element.removeEventListener(\"mouseenter\", this.handleMouseEnter);\n element.removeEventListener(\"mouseleave\", this.handleMouseLeave);\n };\n\n /** Обработчик наведения курсора на целевой элемент или на саму подсказку. */\n private handleMouseEnter = () => {\n const { tooltipOpen, targetHoveredRef, setTooltipOpen } = this.context;\n\n if (!tooltipOpen) {\n setTooltipOpen(true);\n targetHoveredRef.current = true;\n }\n clearTimeout(this.timeout);\n };\n\n /** Обработчик ухода курсора: подсказка закрывается с задержкой, чтобы курсор успел дойти до неё. */\n private handleMouseLeave = () => {\n const { setTooltipOpen } = this.context;\n\n this.timeout = window.setTimeout(() => {\n setTooltipOpen(false);\n }, HOVER_CLOSE_DELAY_MS);\n };\n}\n"],"names":[],"mappings":"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"}
@@ -3,20 +3,20 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
5
5
  import React from "react";
6
- import { i as isEqual, c as clsx } from "../../../../../chunks/vendor-DKrjZZwJ.js";
6
+ import { i as isEqual, c as clsx } from "../../../../../chunks/vendor-BtZO8a0z.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-BW_tN5pN.js";
12
+ import { s as styles } from "../../../../../chunks/TooltipDesktop.module-D22gy-42.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.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.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.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.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.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.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.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.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.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.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.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.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":[],"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,2BAA2B,MAAM,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,mCAAU,MAAM,UAAA;AAChB,kCAAS,MAAM,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":[],"mappings":"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"}
@@ -1,26 +1,17 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
3
  import { ETooltipDirection } from "../../../enums.js";
4
- import { c as clsx } from "../../../../../chunks/vendor-DKrjZZwJ.js";
5
- import { s as styles } from "../../../../../chunks/TooltipDesktop.module-BW_tN5pN.js";
4
+ import { c as clsx } from "../../../../../chunks/vendor-BtZO8a0z.js";
5
+ import { s as styles } from "../../../../../chunks/TooltipDesktop.module-D22gy-42.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.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":[],"mappings":";;;;;AAcO,MAAM,oBAAoB,MAAM,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":[],"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,oBAAoB,MAAM,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;"}