@sberbusiness/triplex-next 1.44.0 → 1.45.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 (576) hide show
  1. package/chunks/{AlertProcessSpoiler-BKFq5HKa.js → AlertProcessSpoiler-54gQMEAr.js} +16 -16
  2. package/chunks/{AlertProcessSpoiler-BKFq5HKa.js.map → AlertProcessSpoiler-54gQMEAr.js.map} +1 -1
  3. package/chunks/{CalendarViewItem-IqO8CpCn.js → CalendarViewItem-cQjxsIMh.js} +20 -20
  4. package/chunks/{CalendarViewItem-IqO8CpCn.js.map → CalendarViewItem-cQjxsIMh.js.map} +1 -1
  5. package/chunks/Card.module-CNOChUdZ.js +32 -0
  6. package/chunks/Card.module-CNOChUdZ.js.map +1 -0
  7. package/chunks/Carousel.module-BpVAzSjh.js +34 -0
  8. package/chunks/Carousel.module-BpVAzSjh.js.map +1 -0
  9. package/chunks/CheckboxTreeExtended.module-BqOLLHuh.js +24 -0
  10. package/chunks/CheckboxTreeExtended.module-BqOLLHuh.js.map +1 -0
  11. package/chunks/{Chip-BpCsNJTt.js → Chip-CWaqKk62.js} +16 -16
  12. package/chunks/{Chip-BpCsNJTt.js.map → Chip-CWaqKk62.js.map} +1 -1
  13. package/chunks/Confirm.module-Dw5sV0a8.js +24 -0
  14. package/chunks/Confirm.module-Dw5sV0a8.js.map +1 -0
  15. package/chunks/{DropdownListItem-DOjFvzKN.js → DropdownListItem-kMroiHoh.js} +10 -10
  16. package/chunks/{DropdownListItem-DOjFvzKN.js.map → DropdownListItem-kMroiHoh.js.map} +1 -1
  17. package/chunks/DropdownMobile.module-ljfYoQZP.js +40 -0
  18. package/chunks/DropdownMobile.module-ljfYoQZP.js.map +1 -0
  19. package/chunks/Footer.module-DgSEqR3M.js +12 -0
  20. package/chunks/Footer.module-DgSEqR3M.js.map +1 -0
  21. package/chunks/{HeaderLayoutSidebar.module-IW43j7gL.js → HeaderLayoutSidebar.module-k_1rIXs0.js} +4 -4
  22. package/chunks/HeaderLayoutSidebar.module-k_1rIXs0.js.map +1 -0
  23. package/chunks/HeaderTabs.module-Dm__bdlz.js +12 -0
  24. package/chunks/HeaderTabs.module-Dm__bdlz.js.map +1 -0
  25. package/chunks/{HeaderTitle.module-G4qS0aG1.js → HeaderTitle.module-BbIcVzwx.js} +4 -4
  26. package/chunks/HeaderTitle.module-BbIcVzwx.js.map +1 -0
  27. package/chunks/ImageGalleryExtendedMain.module--816bwiO.js +28 -0
  28. package/chunks/ImageGalleryExtendedMain.module--816bwiO.js.map +1 -0
  29. package/chunks/{ImageGalleryExtendedThumb-ZBgC8mAZ.js → ImageGalleryExtendedThumb-DlJrbeiX.js} +5 -5
  30. package/chunks/{ImageGalleryExtendedThumb-ZBgC8mAZ.js.map → ImageGalleryExtendedThumb-DlJrbeiX.js.map} +1 -1
  31. package/chunks/IslandAccordion.module-4rzQ8p9D.js +44 -0
  32. package/chunks/IslandAccordion.module-4rzQ8p9D.js.map +1 -0
  33. package/chunks/IslandWidgetFooter.module-Dxb05X44.js +18 -0
  34. package/chunks/IslandWidgetFooter.module-Dxb05X44.js.map +1 -0
  35. package/chunks/IslandWidgetHeader.module-K8SbMdcg.js +28 -0
  36. package/chunks/IslandWidgetHeader.module-K8SbMdcg.js.map +1 -0
  37. package/chunks/{LightBoxContent-DmLo1lK3.js → LightBoxContent-DDevHCAQ.js} +16 -16
  38. package/chunks/{LightBoxContent-DmLo1lK3.js.map → LightBoxContent-DDevHCAQ.js.map} +1 -1
  39. package/chunks/LightBoxControls.module-DsLaGx4X.js +26 -0
  40. package/chunks/LightBoxControls.module-DsLaGx4X.js.map +1 -0
  41. package/chunks/{LightBoxSideOverlayClose.module-Dznuf6b3.js → LightBoxSideOverlayClose.module-B_RmH_Zj.js} +4 -4
  42. package/chunks/LightBoxSideOverlayClose.module-B_RmH_Zj.js.map +1 -0
  43. package/chunks/{ListItemControlsButton-BFkW7b6S.js → ListItemControlsButton-BGHyQIXE.js} +9 -9
  44. package/chunks/{ListItemControlsButton-BFkW7b6S.js.map → ListItemControlsButton-BGHyQIXE.js.map} +1 -1
  45. package/chunks/ListItemTail.module-CwDNx9W5.js +18 -0
  46. package/chunks/ListItemTail.module-CwDNx9W5.js.map +1 -0
  47. package/chunks/ListMasterFooter.module-D7b9ZUqR.js +14 -0
  48. package/chunks/ListMasterFooter.module-D7b9ZUqR.js.map +1 -0
  49. package/chunks/ModalWindow.module-urBVReGQ.js +28 -0
  50. package/chunks/ModalWindow.module-urBVReGQ.js.map +1 -0
  51. package/chunks/Notification.module-BgjNhU2P.js +34 -0
  52. package/chunks/Notification.module-BgjNhU2P.js.map +1 -0
  53. package/chunks/Overlay.module-DlzZBVdp.js +30 -0
  54. package/chunks/Overlay.module-DlzZBVdp.js.map +1 -0
  55. package/chunks/Page.module-CEeCuq1n.js +15 -0
  56. package/chunks/Page.module-CEeCuq1n.js.map +1 -0
  57. package/chunks/SMSField.module-CGuPONeF.js +30 -0
  58. package/chunks/SMSField.module-CGuPONeF.js.map +1 -0
  59. package/chunks/SliderExtendedMarks.module-SGdABaf_.js +24 -0
  60. package/chunks/SliderExtendedMarks.module-SGdABaf_.js.map +1 -0
  61. package/chunks/{SliderExtendedRail-CBpr9S0R.js → SliderExtendedRail-VEYm3CWM.js} +5 -5
  62. package/chunks/{SliderExtendedRail-CBpr9S0R.js.map → SliderExtendedRail-VEYm3CWM.js.map} +1 -1
  63. package/chunks/StatusTracker.module-oLJmSAgs.js +44 -0
  64. package/chunks/StatusTracker.module-oLJmSAgs.js.map +1 -0
  65. package/chunks/{StepperStepArrowBorder-0FWauWM_.js → StepperStepArrowBorder-B8OziF77.js} +16 -16
  66. package/chunks/{StepperStepArrowBorder-0FWauWM_.js.map → StepperStepArrowBorder-B8OziF77.js.map} +1 -1
  67. package/chunks/{SuggestFieldMobileDropdownHint-BfrLhHXK.js → SuggestFieldMobileDropdownHint-CEHlClB5.js} +3 -3
  68. package/chunks/{SuggestFieldMobileDropdownHint-BfrLhHXK.js.map → SuggestFieldMobileDropdownHint-CEHlClB5.js.map} +1 -1
  69. package/chunks/TableFooter.module-DOL7cRaV.js +22 -0
  70. package/chunks/TableFooter.module-DOL7cRaV.js.map +1 -0
  71. package/chunks/TabsExtended.module-DveIh7_v.js +26 -0
  72. package/chunks/TabsExtended.module-DveIh7_v.js.map +1 -0
  73. package/chunks/TabsLine.module-CFuF3nRE.js +36 -0
  74. package/chunks/TabsLine.module-CFuF3nRE.js.map +1 -0
  75. package/chunks/TooltipDesktop.module-Bay9M-y1.js +32 -0
  76. package/chunks/TooltipDesktop.module-Bay9M-y1.js.map +1 -0
  77. package/chunks/TreeView.module-B1mjvRWg.js +12 -0
  78. package/chunks/TreeView.module-B1mjvRWg.js.map +1 -0
  79. package/chunks/{UploadZoneInput-CBw00-1a.js → UploadZoneInput-DW4bcKms.js} +5 -5
  80. package/chunks/{UploadZoneInput-CBw00-1a.js.map → UploadZoneInput-DW4bcKms.js.map} +1 -1
  81. package/chunks/{constants-zAYZ7mgb.js → constants-C-g_SxPw.js} +27 -27
  82. package/chunks/{constants-zAYZ7mgb.js.map → constants-C-g_SxPw.js.map} +1 -1
  83. package/chunks/{utils-BL5AUOKS.js → utils-CRgskx0c.js} +27 -27
  84. package/chunks/{utils-BL5AUOKS.js.map → utils-CRgskx0c.js.map} +1 -1
  85. package/chunks/{utils-CTCsYynd.js → utils-DogucNlz.js} +11 -11
  86. package/chunks/{utils-CTCsYynd.js.map → utils-DogucNlz.js.map} +1 -1
  87. package/chunks/{utils-W5dHMPw5.js → utils-oLO5Fak1.js} +9 -9
  88. package/chunks/utils-oLO5Fak1.js.map +1 -0
  89. package/chunks/{utils-C8wwfWT9.js → utils-vSmFPvz4.js} +10 -10
  90. package/chunks/{utils-C8wwfWT9.js.map → utils-vSmFPvz4.js.map} +1 -1
  91. package/components/Alert/AlertContext/AlertContext.js +7 -7
  92. package/components/Alert/AlertProcess/AlertProcess.js +2 -2
  93. package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +1 -1
  94. package/components/Amount/Amount.js +2 -2
  95. package/components/AmountField/AmountField.js +89 -48
  96. package/components/AmountField/AmountField.js.map +1 -1
  97. package/components/Avatar/Avatar.js +13 -13
  98. package/components/Badge/Badge.js +4 -4
  99. package/components/Badge/BadgeDot.js +4 -4
  100. package/components/Badge/components/BadgeContent.js +6 -6
  101. package/components/Badge/components/BadgePostfix.js +1 -1
  102. package/components/Badge/components/BadgePrefix.js +1 -1
  103. package/components/Body/Body.js +3 -3
  104. package/components/Button/Button.js +20 -20
  105. package/components/Button/ButtonBase.js +1 -1
  106. package/components/Button/ButtonDropdown.js +8 -8
  107. package/components/Button/ButtonDropdownExtended.js +72 -56
  108. package/components/Button/ButtonDropdownExtended.js.map +1 -1
  109. package/components/Button/ButtonIcon.js +3 -3
  110. package/components/Calendar/Calendar.js +4 -4
  111. package/components/Calendar/components/CalendarControls.js +1 -1
  112. package/components/Calendar/components/CalendarFooter.js +1 -1
  113. package/components/Calendar/components/CalendarViewDays.js +1 -1
  114. package/components/Calendar/components/CalendarViewItem.js +1 -1
  115. package/components/Calendar/components/CalendarViewMonths.js +1 -1
  116. package/components/Calendar/components/CalendarViewYears.js +1 -1
  117. package/components/Card/CardAction.js +5 -5
  118. package/components/Card/CardStatic.js +2 -2
  119. package/components/Card/components/CardContent/CardContent.js +1 -1
  120. package/components/Card/components/CardContent/components/CardContentBody.js +1 -1
  121. package/components/Card/components/CardContent/components/CardContentFooter.js +1 -1
  122. package/components/Card/components/CardContent/components/CardContentHeader.js +1 -1
  123. package/components/Card/components/CardMedia.js +1 -1
  124. package/components/Card/utils.js +1 -1
  125. package/components/Carousel/Carousel.js +1 -1
  126. package/components/Carousel/Carousel.js.map +1 -1
  127. package/components/Carousel/CarouselButton.js +1 -1
  128. package/components/Carousel/CarouselIndicators.js +1 -1
  129. package/components/Carousel/CarouselItem.js +1 -1
  130. package/components/Carousel/CarouselTrack.js +1 -1
  131. package/components/Carousel/CarouselViewport.js +1 -1
  132. package/components/CarouselExtended/CarouselExtended.js +1 -1
  133. package/components/Checkbox/Checkbox.js +10 -10
  134. package/components/Checkbox/CheckboxXGroup.js +8 -8
  135. package/components/Checkbox/CheckboxYGroup.js +1 -1
  136. package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +1 -1
  137. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
  138. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +1 -1
  139. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +1 -1
  140. package/components/Chip/Chip.js +1 -1
  141. package/components/Chip/ChipClearButton.js +1 -1
  142. package/components/Chip/ChipDatePicker/ChipDatePicker.js +1 -1
  143. package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
  144. package/components/Chip/ChipDropdownArrow.js +2 -2
  145. package/components/Chip/ChipIcon.js +1 -1
  146. package/components/Chip/ChipMultiselect.js +1 -1
  147. package/components/Chip/ChipOptions.js +2 -2
  148. package/components/Chip/ChipSelect/ChipSelect.js +1 -1
  149. package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
  150. package/components/Chip/ChipSort.js +1 -1
  151. package/components/Chip/ChipSuggest/ChipSuggest.js +1 -1
  152. package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +1 -1
  153. package/components/Chip/ChipSuggest/ChipSuggestTarget.js +1 -1
  154. package/components/Chip/ChipSuggest/desktop/ChipSuggestDesktopDropdownField.js +1 -1
  155. package/components/Chip/index.js +1 -1
  156. package/components/ChipGroup/ChipGroup.js +7 -7
  157. package/components/Col/Col.js +132 -132
  158. package/components/CollapsibleTree/CollapsibleTree.js +1 -1
  159. package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +1 -1
  160. package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +1 -1
  161. package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +4 -4
  162. package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +1 -1
  163. package/components/Confirm/Confirm.js +1 -1
  164. package/components/Confirm/components/ConfirmCloseButton.js +1 -1
  165. package/components/Confirm/components/ConfirmContent.js +1 -1
  166. package/components/Confirm/components/ConfirmContentTitle.js +1 -1
  167. package/components/Confirm/components/ConfirmControls.js +1 -1
  168. package/components/DateField/DateFieldTarget.js +5 -6
  169. package/components/DateField/DateFieldTarget.js.map +1 -1
  170. package/components/DatePickerExtended/DatePickerExtended.js +2 -2
  171. package/components/DatePickerExtended/DatePickerExtendedDropdown.js +1 -1
  172. package/components/DateRange/DateRange.js +3 -3
  173. package/components/DesignTokens/DesignTokenUtils.js +1 -1
  174. package/components/DesignTokens/components/ImageGallery.js +0 -6
  175. package/components/DesignTokens/components/ImageGallery.js.map +1 -1
  176. package/components/Divider/Divider.js +17 -17
  177. package/components/DocumentNumberEdit/DocumentNumberEdit.js +3 -3
  178. package/components/Dropdown/desktop/DropdownDesktop.js +6 -6
  179. package/components/Dropdown/desktop/DropdownList.js +1 -1
  180. package/components/Dropdown/desktop/DropdownListItem.js +1 -1
  181. package/components/Dropdown/desktop/index.js +1 -1
  182. package/components/Dropdown/index.js +1 -1
  183. package/components/Dropdown/mobile/DropdownMobile.js +2 -2
  184. package/components/Dropdown/mobile/DropdownMobileBody.js +1 -1
  185. package/components/Dropdown/mobile/DropdownMobileClose.js +1 -1
  186. package/components/Dropdown/mobile/DropdownMobileFooter.js +1 -1
  187. package/components/Dropdown/mobile/DropdownMobileHeader.js +1 -1
  188. package/components/Dropdown/mobile/DropdownMobileInner.js +1 -1
  189. package/components/Dropdown/mobile/DropdownMobileInput.js +1 -1
  190. package/components/Dropdown/mobile/DropdownMobileList.js +1 -1
  191. package/components/Dropdown/mobile/DropdownMobileListItem.js +1 -1
  192. package/components/Dropdown/mobile/DropdownMobileLoader.js +1 -1
  193. package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +1 -1
  194. package/components/Ellipsis/Ellipsis.js +3 -3
  195. package/components/EmptyView/EmptyView.js +6 -10
  196. package/components/EmptyView/EmptyView.js.map +1 -1
  197. package/components/ExpandAnimation/ExpandAnimation.js +1 -1
  198. package/components/Footer/Footer.js +1 -1
  199. package/components/Footer/components/FooterDescription.js +1 -1
  200. package/components/Footer/components/FooterDescriptionContent.js +1 -1
  201. package/components/Footer/components/FooterDescriptionControls.js +1 -1
  202. package/components/FormField/FormField.js +11 -11
  203. package/components/FormField/components/FormFieldClear.js +1 -1
  204. package/components/FormField/components/FormFieldCounter.js +1 -1
  205. package/components/FormField/components/FormFieldDescription.js +2 -2
  206. package/components/FormField/components/FormFieldInput.js +6 -6
  207. package/components/FormField/components/FormFieldInput.js.map +1 -1
  208. package/components/FormField/components/FormFieldLabel.js +7 -7
  209. package/components/FormField/components/FormFieldMaskedInput.js +29 -24
  210. package/components/FormField/components/FormFieldMaskedInput.js.map +1 -1
  211. package/components/FormField/components/FormFieldPostfix.js +1 -1
  212. package/components/FormField/components/FormFieldPrefix.js +1 -1
  213. package/components/FormField/components/FormFieldTarget.js +8 -8
  214. package/components/FormField/components/FormFieldTextarea.js +4 -4
  215. package/components/FormGroup/FormGroup.js +1 -1
  216. package/components/FormGroup/FormGroup.js.map +1 -1
  217. package/components/Gap/Gap.js +8 -8
  218. package/components/Header/Header.js +1 -1
  219. package/components/Header/Header.js.map +1 -1
  220. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +1 -1
  221. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js.map +1 -1
  222. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +1 -1
  223. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js.map +1 -1
  224. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +1 -1
  225. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js.map +1 -1
  226. package/components/Header/components/HeaderSubheader/HeaderSubheader.js +3 -3
  227. package/components/Header/components/HeaderSubheader/HeaderSubheader.js.map +1 -1
  228. package/components/Header/components/HeaderTabs/HeaderTabs.js +1 -1
  229. package/components/Header/components/HeaderTabs/HeaderTabs.js.map +1 -1
  230. package/components/Header/components/HeaderTabs/HeaderTabsContent.js +2 -4
  231. package/components/Header/components/HeaderTabs/HeaderTabsContent.js.map +1 -1
  232. package/components/Header/components/HeaderTabs/HeaderTabsControls.js +1 -1
  233. package/components/Header/components/HeaderTabs/HeaderTabsControls.js.map +1 -1
  234. package/components/Header/components/HeaderTitle/HeaderTitle.js +1 -1
  235. package/components/Header/components/HeaderTitle/HeaderTitle.js.map +1 -1
  236. package/components/Header/components/HeaderTitle/HeaderTitleContent.js +10 -12
  237. package/components/Header/components/HeaderTitle/HeaderTitleContent.js.map +1 -1
  238. package/components/Header/components/HeaderTitle/HeaderTitleControls.js +1 -1
  239. package/components/Header/components/HeaderTitle/HeaderTitleControls.js.map +1 -1
  240. package/components/HelpBox/HelpBox.js +1 -1
  241. package/components/IconWrapper/IconWrapper.js +2 -2
  242. package/components/ImageGallery/ImageGallery.js +1 -1
  243. package/components/ImageGalleryExtended/ImageGalleryExtended.js +2 -2
  244. package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +1 -1
  245. package/components/ImageGalleryExtended/components/ImageGalleryExtendedDots.js +3 -3
  246. package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +1 -1
  247. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +1 -1
  248. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +1 -1
  249. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +1 -1
  250. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +1 -1
  251. package/components/ImageGalleryExtended/components/index.js +1 -1
  252. package/components/ImageGalleryExtended/index.js +1 -1
  253. package/components/Island/Island.js +1 -1
  254. package/components/Island/components/IslandBody.js +1 -1
  255. package/components/Island/components/IslandFooter.js +1 -1
  256. package/components/Island/components/IslandHeader.js +1 -1
  257. package/components/Island/utils.js +1 -1
  258. package/components/IslandAccordion/IslandAccordion.js +2 -2
  259. package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
  260. package/components/IslandAccordion/components/IslandAccordionFooter.js +1 -1
  261. package/components/IslandAccordion/components/IslandAccordionItem.js +2 -2
  262. package/components/IslandWidget/IslandWidget.js +3 -3
  263. package/components/IslandWidget/components/IslandWidgetBody.js +4 -4
  264. package/components/IslandWidget/components/IslandWidgetExtraFooter.js +1 -1
  265. package/components/IslandWidget/components/IslandWidgetFooter.js +1 -1
  266. package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
  267. package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
  268. package/components/IslandWidget/components/IslandWidgetHeader.js +1 -1
  269. package/components/IslandWidget/components/IslandWidgetHeaderContent.js +1 -1
  270. package/components/IslandWidget/components/IslandWidgetHeaderControls.js +1 -1
  271. package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +25 -13
  272. package/components/IslandWidget/components/IslandWidgetHeaderDescription.js.map +1 -1
  273. package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +1 -1
  274. package/components/IslandWidget/components/IslandWidgetWrapper.js +1 -1
  275. package/components/LightBox/LightBox.js +5 -5
  276. package/components/LightBox/LightBoxContent.js +1 -1
  277. package/components/LightBox/LightBoxControls/LightBoxArrow.js +1 -1
  278. package/components/LightBox/LightBoxControls/LightBoxClose.js +1 -1
  279. package/components/LightBox/LightBoxControls/LightBoxControls.js +1 -1
  280. package/components/LightBox/LightBoxControls/LightBoxNext.js +1 -1
  281. package/components/LightBox/LightBoxControls/LightBoxPrev.js +1 -1
  282. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +12 -12
  283. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +1 -1
  284. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +1 -1
  285. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
  286. package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +3 -3
  287. package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +3 -3
  288. package/components/Link/Link.js +38 -40
  289. package/components/Link/Link.js.map +1 -1
  290. package/components/List/List.js +3 -3
  291. package/components/List/components/ListActionItem.js +1 -1
  292. package/components/List/components/ListEmptyState.js +1 -1
  293. package/components/List/components/ListItem.js +1 -1
  294. package/components/List/components/ListItemContent.js +4 -4
  295. package/components/List/components/ListItemControls.js +1 -1
  296. package/components/List/components/ListItemControlsButton.js +1 -1
  297. package/components/List/components/ListItemControlsButtonDropdown.js +1 -1
  298. package/components/List/components/ListItemLoading.js +1 -1
  299. package/components/List/components/ListItemSelectable.js +6 -6
  300. package/components/List/components/ListItemTailLeft.js +1 -1
  301. package/components/List/components/ListItemTailRight.js +1 -1
  302. package/components/List/components/ListSortableItem.js +2 -2
  303. package/components/List/components/ListSortableItemControls.js +1 -1
  304. package/components/List/components/ListSortableItemTarget.js +4 -4
  305. package/components/List/components/ListTableItem.js +3 -3
  306. package/components/List/index.js +1 -1
  307. package/components/ListMaster/ListMaster.js +1 -1
  308. package/components/ListMaster/components/ListMasterBody.js +1 -1
  309. package/components/ListMaster/components/ListMasterChipGroup.js +1 -1
  310. package/components/ListMaster/components/ListMasterFooter.js +1 -1
  311. package/components/ListMaster/components/ListMasterFooterControls.js +1 -1
  312. package/components/ListMaster/components/ListMasterFooterDescription.js +1 -1
  313. package/components/ListMaster/components/ListMasterHeader.js +2 -2
  314. package/components/ListMaster/components/SelectionControls.js +2 -2
  315. package/components/Loader/LoaderMiddle/LoaderMiddle.js +8 -8
  316. package/components/Loader/LoaderSmall/LoaderSmall.js +10 -10
  317. package/components/LoaderScreen/LoaderScreen.js +5 -5
  318. package/components/Marker/Marker.js +3 -2
  319. package/components/Marker/Marker.js.map +1 -1
  320. package/components/Marker/enums.js.map +1 -1
  321. package/components/Marker/utils.js +2 -2
  322. package/components/MarkerStatus/MarkerStatus.js +20 -14
  323. package/components/MarkerStatus/MarkerStatus.js.map +1 -1
  324. package/components/{TextField → MaskedField}/MaskedField.js +1 -1
  325. package/components/MaskedField/MaskedField.js.map +1 -0
  326. package/components/MaskedField/index.js +5 -0
  327. package/components/MaskedField/index.js.map +1 -0
  328. package/components/ModalWindow/ModalWindow.js +1 -1
  329. package/components/ModalWindow/components/ModalWindowBody.js +1 -1
  330. package/components/ModalWindow/components/ModalWindowClose.js +1 -1
  331. package/components/ModalWindow/components/ModalWindowContent.js +1 -1
  332. package/components/ModalWindow/components/ModalWindowHeader.js +1 -1
  333. package/components/ModalWindow/components/ModalWindowViewManager.js +1 -1
  334. package/components/MonthYearField/MonthYearFieldTarget.js +4 -5
  335. package/components/MonthYearField/MonthYearFieldTarget.js.map +1 -1
  336. package/components/MonthYearRange/MonthYearRange.js +3 -3
  337. package/components/MultiselectField/MultiselectField.js +10 -6
  338. package/components/MultiselectField/MultiselectField.js.map +1 -1
  339. package/components/MultiselectField/MultiselectFieldContext.js.map +1 -1
  340. package/components/MultiselectField/components/MultiselectFieldDropdown.js +5 -5
  341. package/components/MultiselectField/components/MultiselectFieldDropdown.js.map +1 -1
  342. package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +5 -5
  343. package/components/MultiselectField/components/MultiselectFieldDropdownContent.js.map +1 -1
  344. package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +1 -1
  345. package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js.map +1 -1
  346. package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +1 -1
  347. package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js.map +1 -1
  348. package/components/Notification/Notification.js +2 -2
  349. package/components/Notification/NotificationGrouped.js +1 -1
  350. package/components/Notification/components/NotificationBody.js +1 -1
  351. package/components/Notification/components/NotificationBodyList.js +1 -1
  352. package/components/Notification/components/NotificationClose.js +1 -1
  353. package/components/Notification/components/NotificationFooter.js +1 -1
  354. package/components/Notification/components/NotificationGroupedFooter.js +1 -1
  355. package/components/Notification/components/NotificationHeader.js +1 -1
  356. package/components/Notification/components/NotificationIcon.js +1 -1
  357. package/components/Notification/components/NotificationTime.js +1 -1
  358. package/components/OrderedList/OrderedList.js +2 -2
  359. package/components/OrderedList/OrderedListItem.js +2 -2
  360. package/components/Overlay/Overlay.js +1 -1
  361. package/components/Overlay/OverlayMask.js +1 -1
  362. package/components/Overlay/OverlayPanel.js +1 -1
  363. package/components/Page/Page.js +1 -1
  364. package/components/Page/components/BodyPage.js +7 -7
  365. package/components/Page/components/FooterPage.js +1 -1
  366. package/components/Page/components/HeaderPage.js +1 -1
  367. package/components/Pagination/components/PaginationExtended.js +2 -2
  368. package/components/Pagination/components/PaginationNavigationButton.js +2 -2
  369. package/components/Pagination/components/PaginationNavigationExtended.js +1 -1
  370. package/components/Pagination/components/PaginationPageButton.js +2 -2
  371. package/components/Pagination/components/PaginationPageEllipsis.js +1 -1
  372. package/components/Pagination/components/PaginationSelect.js +17 -8
  373. package/components/Pagination/components/PaginationSelect.js.map +1 -1
  374. package/components/Radio/Radio.js +9 -9
  375. package/components/Radio/RadioXGroup.js +8 -8
  376. package/components/Radio/RadioYGroup.js +1 -1
  377. package/components/Row/Row.js +4 -4
  378. package/components/SMSField/SMSField.js +25 -5
  379. package/components/SMSField/SMSField.js.map +1 -1
  380. package/components/SMSField/SMSFieldContext.js +13 -2
  381. package/components/SMSField/SMSFieldContext.js.map +1 -1
  382. package/components/SMSField/components/RefreshIcon.js +1 -1
  383. package/components/SMSField/components/SMSFieldInput.js +38 -24
  384. package/components/SMSField/components/SMSFieldInput.js.map +1 -1
  385. package/components/SMSField/components/SMSFieldRefresh.js +20 -7
  386. package/components/SMSField/components/SMSFieldRefresh.js.map +1 -1
  387. package/components/SMSField/components/SMSFieldSubmit.js +16 -10
  388. package/components/SMSField/components/SMSFieldSubmit.js.map +1 -1
  389. package/components/SegmentedControl/SegmentedControl.js +9 -9
  390. package/components/SegmentedControl/SegmentedControlSegment.js +3 -3
  391. package/components/SelectExtendedField/SelectExtendedField.js +1 -1
  392. package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js +1 -1
  393. package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js +1 -1
  394. package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js +7 -7
  395. package/components/SelectField/SelectField.js +12 -19
  396. package/components/SelectField/SelectField.js.map +1 -1
  397. package/components/Skeleton/Skeleton.js +5 -5
  398. package/components/SliderExtended/SliderExtended.js +2 -2
  399. package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +5 -5
  400. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +1 -1
  401. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +1 -1
  402. package/components/SliderExtended/components/SliderExtendedRail.js +1 -1
  403. package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +4 -4
  404. package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +6 -6
  405. package/components/SmallInput/SmallInput.js +5 -2
  406. package/components/SmallInput/SmallInput.js.map +1 -1
  407. package/components/Spoiler/Spoiler.js +10 -10
  408. package/components/StatusTracker/StatusTracker.js +2 -2
  409. package/components/StatusTracker/components/StatusTrackerAlert.js +1 -1
  410. package/components/StatusTracker/components/StatusTrackerBody.js +1 -1
  411. package/components/StatusTracker/components/StatusTrackerButton.js +1 -1
  412. package/components/StatusTracker/components/StatusTrackerDescription.js +1 -1
  413. package/components/StatusTracker/components/StatusTrackerFooter.js +1 -1
  414. package/components/StatusTracker/components/StatusTrackerHeader.js +1 -1
  415. package/components/StatusTracker/components/StatusTrackerMedia.js +1 -1
  416. package/components/StatusTracker/components/StatusTrackerStatus.js +1 -1
  417. package/components/StatusTracker/components/StatusTrackerStatusGroup.js +1 -1
  418. package/components/StatusTracker/components/StatusTrackerSum.js +1 -1
  419. package/components/StatusTracker/components/StatusTrackerTitle.js +1 -1
  420. package/components/Step/Step.js +10 -10
  421. package/components/Stepper/Stepper.js +8 -8
  422. package/components/Stepper/StepperExtended.js +1 -1
  423. package/components/Stepper/StepperStep.js +2 -2
  424. package/components/Stepper/StepperStepArrowBorder.js +1 -1
  425. package/components/Suggest/Suggest.js +6 -4
  426. package/components/Suggest/Suggest.js.map +1 -1
  427. package/components/Suggest/SuggestContext.js.map +1 -1
  428. package/components/Suggest/SuggestMobileDropdownContent.js +6 -7
  429. package/components/Suggest/SuggestMobileDropdownContent.js.map +1 -1
  430. package/components/Suggest/useSuggest.js +4 -4
  431. package/components/Suggest/useSuggest.js.map +1 -1
  432. package/components/SuggestField/SuggestField.js +1 -1
  433. package/components/SuggestField/desktop/SuggestFieldDesktop.js +1 -2
  434. package/components/SuggestField/desktop/SuggestFieldDesktop.js.map +1 -1
  435. package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js +1 -1
  436. package/components/SuggestField/index.js +1 -1
  437. package/components/SuggestField/mobile/SuggestFieldMobile.js +1 -1
  438. package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js +2 -2
  439. package/components/SuggestField/mobile/SuggestFieldMobileDropdownHint.js +1 -1
  440. package/components/SuggestField/mobile/index.js +1 -1
  441. package/components/SwipeableArea/SwipeableArea.js +73 -116
  442. package/components/SwipeableArea/SwipeableArea.js.map +1 -1
  443. package/components/SwipeableArea/utils.js +72 -0
  444. package/components/SwipeableArea/utils.js.map +1 -0
  445. package/components/Table/ChipPanel.js +8 -3
  446. package/components/Table/ChipPanel.js.map +1 -1
  447. package/components/Table/ChipPanelLinks.js +15 -11
  448. package/components/Table/ChipPanelLinks.js.map +1 -1
  449. package/components/Table/FilterPanel.js +13 -9
  450. package/components/Table/FilterPanel.js.map +1 -1
  451. package/components/Table/MasterTable.js +30 -31
  452. package/components/Table/MasterTable.js.map +1 -1
  453. package/components/Table/NoColumns.js +10 -7
  454. package/components/Table/NoColumns.js.map +1 -1
  455. package/components/Table/PaginationPanel.js +13 -9
  456. package/components/Table/PaginationPanel.js.map +1 -1
  457. package/components/Table/TableBasic/TableBasic.js +1 -1
  458. package/components/Table/TableBasic/components/TableBasicBody.js +1 -1
  459. package/components/Table/TableBasic/components/TableBasicHeader.js +1 -1
  460. package/components/Table/TableBasic/components/TableBasicRow.js +1 -1
  461. package/components/Table/TableBasicSettings/TableBasicSettings.js +51 -46
  462. package/components/Table/TableBasicSettings/TableBasicSettings.js.map +1 -1
  463. package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +2 -2
  464. package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +1 -1
  465. package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +1 -1
  466. package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +1 -1
  467. package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +1 -1
  468. package/components/Table/TableFooter/TableFooter.js +12 -7
  469. package/components/Table/TableFooter/TableFooter.js.map +1 -1
  470. package/components/Table/TableFooter/components/TableFooterSummary.js +1 -1
  471. package/components/Table/TableFooter/components/TableFooterSummaryAmount.js +1 -1
  472. package/components/Table/TableFooter/components/TableFooterSummarySelectAllButton.js +1 -1
  473. package/components/Table/TableFooter/components/TableFooterSummarySelectedCount.js +1 -1
  474. package/components/Table/utils.js +1 -1
  475. package/components/Tabs/Tabs.js +8 -8
  476. package/components/TabsExtended/TabsExtended.js +2 -2
  477. package/components/TabsExtended/components/TabsExtendedContent.js +1 -1
  478. package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +1 -1
  479. package/components/TabsExtended/components/TabsExtendedTab.js +1 -1
  480. package/components/TabsExtended/components/TabsExtendedTabButton.js +1 -1
  481. package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +1 -1
  482. package/components/TabsExtended/utils.js +1 -1
  483. package/components/TabsLine/TabsLine.js +1 -1
  484. package/components/TabsLine/components/TabsLineDesktop.js +1 -1
  485. package/components/TabsLine/components/TabsLineDropdown.js +2 -2
  486. package/components/TabsLine/components/TabsLineItem.js +1 -1
  487. package/components/TabsLine/components/TabsLineMobile.js +2 -2
  488. package/components/Tag/Tag.js +5 -5
  489. package/components/TagColor/TagColor.js +10 -10
  490. package/components/TagGroup/TagGroup.js +4 -4
  491. package/components/TextField/TextField.js.map +1 -1
  492. package/components/TextField/index.js +0 -2
  493. package/components/TextField/index.js.map +1 -1
  494. package/components/Tooltip/components/common/TooltipBody.js +1 -1
  495. package/components/Tooltip/components/common/TooltipLink.js +4 -4
  496. package/components/Tooltip/components/common/TooltipXButton.js +1 -1
  497. package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +1 -1
  498. package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +1 -1
  499. package/components/Tooltip/components/mobile/TooltipMobile.js +4 -4
  500. package/components/TopOverlay/TopOverlay.js +6 -6
  501. package/components/TreeView/TreeView.js +1 -1
  502. package/components/TreeView/components/TreeViewGroup.js +1 -1
  503. package/components/TreeView/components/TreeViewNode.js +1 -1
  504. package/components/Typography/Caption.js +7 -7
  505. package/components/Typography/CodeText.js +2 -2
  506. package/components/Typography/Text.js +9 -9
  507. package/components/Typography/Title.js +9 -9
  508. package/components/Typography/constants.js +1 -1
  509. package/components/UnorderedListExtended/UnorderedListExtended.js +2 -2
  510. package/components/UnorderedListExtended/UnorderedListExtendedItem.js +2 -2
  511. package/components/UnorderedListExtended/UnorderedListExtendedItemMarker.js +3 -3
  512. package/components/UploadZone/UploadZone.js +2 -2
  513. package/components/UploadZone/components/UploadZoneInput.js +1 -1
  514. package/components/UploadZone/index.js +1 -1
  515. package/components/index.js +7 -7
  516. package/index.d.ts +220 -68
  517. package/index.js +7 -7
  518. package/package.json +5 -1
  519. package/styles/triplex-next.css +3092 -3043
  520. package/chunks/Card.module-DvHL4Oak.js +0 -32
  521. package/chunks/Card.module-DvHL4Oak.js.map +0 -1
  522. package/chunks/Carousel.module-B1uqtX8a.js +0 -34
  523. package/chunks/Carousel.module-B1uqtX8a.js.map +0 -1
  524. package/chunks/CheckboxTreeExtended.module-nKSCkiBt.js +0 -24
  525. package/chunks/CheckboxTreeExtended.module-nKSCkiBt.js.map +0 -1
  526. package/chunks/Confirm.module-BhW4bMM_.js +0 -24
  527. package/chunks/Confirm.module-BhW4bMM_.js.map +0 -1
  528. package/chunks/DropdownMobile.module-DZDL8Gw8.js +0 -40
  529. package/chunks/DropdownMobile.module-DZDL8Gw8.js.map +0 -1
  530. package/chunks/Footer.module-DUG9712L.js +0 -12
  531. package/chunks/Footer.module-DUG9712L.js.map +0 -1
  532. package/chunks/HeaderLayoutSidebar.module-IW43j7gL.js.map +0 -1
  533. package/chunks/HeaderTabs.module-DfEbH7Kd.js +0 -12
  534. package/chunks/HeaderTabs.module-DfEbH7Kd.js.map +0 -1
  535. package/chunks/HeaderTitle.module-G4qS0aG1.js.map +0 -1
  536. package/chunks/ImageGalleryExtendedMain.module-Bj1ndZgo.js +0 -28
  537. package/chunks/ImageGalleryExtendedMain.module-Bj1ndZgo.js.map +0 -1
  538. package/chunks/IslandAccordion.module-BFj1LZrN.js +0 -44
  539. package/chunks/IslandAccordion.module-BFj1LZrN.js.map +0 -1
  540. package/chunks/IslandWidgetFooter.module-DVKw7F37.js +0 -18
  541. package/chunks/IslandWidgetFooter.module-DVKw7F37.js.map +0 -1
  542. package/chunks/IslandWidgetHeader.module-DHAKalQf.js +0 -28
  543. package/chunks/IslandWidgetHeader.module-DHAKalQf.js.map +0 -1
  544. package/chunks/LightBoxControls.module-BfIgufzK.js +0 -26
  545. package/chunks/LightBoxControls.module-BfIgufzK.js.map +0 -1
  546. package/chunks/LightBoxSideOverlayClose.module-Dznuf6b3.js.map +0 -1
  547. package/chunks/ListItemTail.module-DjYk6epy.js +0 -18
  548. package/chunks/ListItemTail.module-DjYk6epy.js.map +0 -1
  549. package/chunks/ListMasterFooter.module-B5viguka.js +0 -14
  550. package/chunks/ListMasterFooter.module-B5viguka.js.map +0 -1
  551. package/chunks/ModalWindow.module-C0p5ZVLh.js +0 -28
  552. package/chunks/ModalWindow.module-C0p5ZVLh.js.map +0 -1
  553. package/chunks/Notification.module-DuwX9b1Z.js +0 -34
  554. package/chunks/Notification.module-DuwX9b1Z.js.map +0 -1
  555. package/chunks/Overlay.module-Cuh6SDnR.js +0 -30
  556. package/chunks/Overlay.module-Cuh6SDnR.js.map +0 -1
  557. package/chunks/Page.module-Bso9TRUt.js +0 -15
  558. package/chunks/Page.module-Bso9TRUt.js.map +0 -1
  559. package/chunks/SMSField.module-DHnJVbUI.js +0 -26
  560. package/chunks/SMSField.module-DHnJVbUI.js.map +0 -1
  561. package/chunks/SliderExtendedMarks.module-CuyZnXA3.js +0 -24
  562. package/chunks/SliderExtendedMarks.module-CuyZnXA3.js.map +0 -1
  563. package/chunks/StatusTracker.module-CXFyhzFa.js +0 -44
  564. package/chunks/StatusTracker.module-CXFyhzFa.js.map +0 -1
  565. package/chunks/TableFooter.module-DRlxkZoa.js +0 -22
  566. package/chunks/TableFooter.module-DRlxkZoa.js.map +0 -1
  567. package/chunks/TabsExtended.module-DJH-YNzW.js +0 -26
  568. package/chunks/TabsExtended.module-DJH-YNzW.js.map +0 -1
  569. package/chunks/TabsLine.module-_HQwnwAW.js +0 -36
  570. package/chunks/TabsLine.module-_HQwnwAW.js.map +0 -1
  571. package/chunks/TooltipDesktop.module-B54hNcxs.js +0 -32
  572. package/chunks/TooltipDesktop.module-B54hNcxs.js.map +0 -1
  573. package/chunks/TreeView.module-CmItPF1_.js +0 -12
  574. package/chunks/TreeView.module-CmItPF1_.js.map +0 -1
  575. package/chunks/utils-W5dHMPw5.js.map +0 -1
  576. package/components/TextField/MaskedField.js.map +0 -1
@@ -1,13 +1,14 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import React__default, { useState, useRef, useEffect, useImperativeHandle } from "react";
2
+ import React__default, { useState, useRef, useCallback, useEffect, useImperativeHandle } from "react";
3
3
  import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
4
- const swipeableArea = "swipeableArea__fa06667d";
5
- const content = "content__820df18c";
6
- const disableScroll = "disableScroll__0d13c35a";
7
- const disablePointerEvents = "disablePointerEvents__74ba3cc7";
8
- const swipeAnimationFinish = "swipeAnimationFinish__b5e93f06";
9
- const leftContent = "leftContent__030533ab";
10
- const rightContent = "rightContent__b27fbbab";
4
+ import { getElementWidth, getSwipeableAreaOpacity, resolveSwipeEnd, ESwipeDirection, resolveSwipeMove } from "./utils.js";
5
+ const swipeableArea = "swipeableArea__77057fad";
6
+ const content = "content__759e208c";
7
+ const disableScroll = "disableScroll__a2f903c6";
8
+ const disablePointerEvents = "disablePointerEvents__1bc3ba10";
9
+ const swipeAnimationFinish = "swipeAnimationFinish__5eba24ab";
10
+ const leftContent = "leftContent__c7a99259";
11
+ const rightContent = "rightContent__74990911";
11
12
  const styles = {
12
13
  swipeableArea,
13
14
  content,
@@ -17,7 +18,6 @@ const styles = {
17
18
  leftContent,
18
19
  rightContent
19
20
  };
20
- const SWIPE_MIN_DISTANCE = 24;
21
21
  const SWIPE_ANIMATION_CLASSNAME = styles.swipeAnimationFinish;
22
22
  const DISABLE_SCROLL_CLASSNAME = styles.disableScroll;
23
23
  const DISABLE_POINTER_EVENTS_CLASSNAME = styles.disablePointerEvents;
@@ -32,44 +32,27 @@ const SwipeableArea = React__default.forwardRef(
32
32
  const contentTranslateXOnStartRef = useRef(0);
33
33
  const startCoordinates = useRef(START_COORDINATES_INITIAL);
34
34
  const containerRef = useRef(null);
35
+ const hasLeftSwipeableArea = leftSwipeableArea !== void 0;
36
+ const hasRightSwipeableArea = rightSwipeableArea !== void 0;
35
37
  const handleSwipe = () => {
36
38
  setAnimating(true);
37
- const deltaContentTranslateX = contentTranslateXOnStartRef.current - contentTranslateX;
38
- if (contentTranslateXOnStartRef.current === 0) {
39
- if (deltaContentTranslateX > 0) {
40
- if (deltaContentTranslateX > SWIPE_MIN_DISTANCE) {
41
- setContentTranslateX(-rightSwipeableAreaRef.current.getBoundingClientRect().width);
42
- onSwipeLeft == null ? void 0 : onSwipeLeft();
43
- } else {
44
- setContentTranslateX(0);
45
- }
46
- } else {
47
- if (Math.abs(deltaContentTranslateX) > SWIPE_MIN_DISTANCE) {
48
- setContentTranslateX(leftSwipeableAreaRef.current.getBoundingClientRect().width);
49
- onSwipeRight == null ? void 0 : onSwipeRight();
50
- } else {
51
- setContentTranslateX(0);
52
- }
53
- }
54
- } else if (contentTranslateXOnStartRef.current > 0) {
55
- if (deltaContentTranslateX > 0) {
56
- setContentTranslateX(
57
- deltaContentTranslateX > SWIPE_MIN_DISTANCE ? 0 : leftSwipeableAreaRef.current.getBoundingClientRect().width
58
- );
59
- }
60
- } else if (contentTranslateXOnStartRef.current < 0) {
61
- if (deltaContentTranslateX < 0) {
62
- setContentTranslateX(
63
- Math.abs(deltaContentTranslateX) > SWIPE_MIN_DISTANCE ? 0 : -rightSwipeableAreaRef.current.getBoundingClientRect().width
64
- );
65
- }
39
+ const { translateX, direction } = resolveSwipeEnd({
40
+ translateX: contentTranslateX,
41
+ translateXOnStart: contentTranslateXOnStartRef.current,
42
+ leftAreaWidth: getElementWidth(leftSwipeableAreaRef.current),
43
+ rightAreaWidth: getElementWidth(rightSwipeableAreaRef.current)
44
+ });
45
+ setContentTranslateX(translateX);
46
+ if (direction === ESwipeDirection.LEFT) {
47
+ onSwipeLeft == null ? void 0 : onSwipeLeft();
48
+ } else if (direction === ESwipeDirection.RIGHT) {
49
+ onSwipeRight == null ? void 0 : onSwipeRight();
66
50
  }
67
51
  };
68
- const handleDocumentTouchEnd = () => {
52
+ const handleDocumentTouchEnd = useCallback(() => {
69
53
  startCoordinates.current = START_COORDINATES_INITIAL;
70
54
  setDragType(void 0);
71
- document.removeEventListener("touchend", handleDocumentTouchEnd);
72
- };
55
+ }, []);
73
56
  useEffect(() => {
74
57
  if (!dragType && contentTranslateX !== contentTranslateXOnStartRef.current) {
75
58
  handleSwipe();
@@ -78,68 +61,38 @@ const SwipeableArea = React__default.forwardRef(
78
61
  const handleTouchStart = (event) => {
79
62
  startCoordinates.current = { clientX: event.touches[0].clientX, clientY: event.touches[0].clientY };
80
63
  contentTranslateXOnStartRef.current = contentTranslateX;
81
- document.addEventListener("touchend", handleDocumentTouchEnd);
64
+ document.addEventListener("touchend", handleDocumentTouchEnd, { once: true });
82
65
  };
83
66
  const handleTouchMove = (event) => {
84
- if (event.touches.length != 1) {
67
+ if (event.touches.length !== 1) {
85
68
  return;
86
69
  }
87
70
  const deltaX = event.touches[0].clientX - startCoordinates.current.clientX;
88
71
  const deltaY = event.touches[0].clientY - startCoordinates.current.clientY;
89
72
  if (!dragType) {
90
- if (Math.abs(deltaY) > Math.abs(deltaX)) {
91
- setDragType(
92
- "vertical"
93
- /* vertical */
94
- );
95
- } else {
96
- setDragType(
97
- "horizontal"
98
- /* horizontal */
99
- );
100
- }
73
+ setDragType(
74
+ Math.abs(deltaY) > Math.abs(deltaX) ? "vertical" : "horizontal"
75
+ /* horizontal */
76
+ );
101
77
  return;
102
78
  }
103
79
  if (dragType === "vertical") {
104
80
  return;
105
81
  }
106
- const contentTranslateXNext = contentTranslateXOnStartRef.current + deltaX;
107
- if (contentTranslateXOnStartRef.current === 0) {
108
- if (deltaX > 0 && leftSwipeableArea) {
109
- setContentTranslateX(
110
- Math.min(contentTranslateXNext, leftSwipeableAreaRef.current.getBoundingClientRect().width)
111
- );
112
- } else if (deltaX < 0 && rightSwipeableArea) {
113
- setContentTranslateX(
114
- Math.max(contentTranslateXNext, -rightSwipeableAreaRef.current.getBoundingClientRect().width)
115
- );
116
- }
117
- } else if (contentTranslateXOnStartRef.current > 0) {
118
- if (deltaX < 0) {
119
- setContentTranslateX(Math.max(0, contentTranslateXNext));
120
- }
121
- } else if (contentTranslateXOnStartRef.current < 0) {
122
- if (deltaX > 0) {
123
- setContentTranslateX(Math.min(0, contentTranslateXNext));
124
- }
125
- }
82
+ setContentTranslateX(
83
+ resolveSwipeMove({
84
+ translateX: contentTranslateX,
85
+ translateXOnStart: contentTranslateXOnStartRef.current,
86
+ deltaX,
87
+ leftAreaWidth: hasLeftSwipeableArea ? getElementWidth(leftSwipeableAreaRef.current) : null,
88
+ rightAreaWidth: hasRightSwipeableArea ? getElementWidth(rightSwipeableAreaRef.current) : null
89
+ })
90
+ );
126
91
  };
127
92
  const handleTransitionEnd = () => setAnimating(false);
128
- const getOpacityRightContent = () => {
129
- if (rightSwipeableAreaRef.current) {
130
- return Math.abs(contentTranslateX) / rightSwipeableAreaRef.current.getBoundingClientRect().width;
131
- }
132
- return 1;
133
- };
134
- const getOpacityLeftContent = () => {
135
- if (leftSwipeableAreaRef.current) {
136
- return Math.abs(contentTranslateX) / leftSwipeableAreaRef.current.getBoundingClientRect().width;
137
- }
138
- return 1;
139
- };
140
93
  useEffect(() => {
141
94
  const handleDocumentTouchStart = (event) => {
142
- if (event.touches.length != 1) {
95
+ if (event.touches.length !== 1) {
143
96
  return;
144
97
  }
145
98
  if (containerRef.current && !containerRef.current.contains(event.target)) {
@@ -149,68 +102,72 @@ const SwipeableArea = React__default.forwardRef(
149
102
  }
150
103
  };
151
104
  document.addEventListener("touchstart", handleDocumentTouchStart);
152
- return () => document.removeEventListener("touchstart", handleDocumentTouchStart);
153
- }, []);
154
- const openLeftSwipeableArea = () => {
155
- if (leftSwipeableAreaRef.current) {
156
- setAnimating(true);
157
- setContentTranslateX(leftSwipeableAreaRef.current.getBoundingClientRect().width);
158
- }
159
- };
160
- const openRightSwipeableArea = () => {
161
- if (rightSwipeableAreaRef.current) {
162
- setAnimating(true);
163
- setContentTranslateX(-rightSwipeableAreaRef.current.getBoundingClientRect().width);
164
- }
165
- };
166
- const closeSwipeableArea = () => {
167
- if (rightSwipeableAreaRef.current || leftSwipeableAreaRef.current) {
168
- setAnimating(true);
169
- setContentTranslateX(0);
170
- }
171
- };
105
+ return () => {
106
+ document.removeEventListener("touchstart", handleDocumentTouchStart);
107
+ document.removeEventListener("touchend", handleDocumentTouchEnd);
108
+ };
109
+ }, [handleDocumentTouchEnd]);
172
110
  useImperativeHandle(
173
111
  ref,
174
112
  () => ({
175
113
  closeSwipe: () => {
176
- closeSwipeableArea();
114
+ if (leftSwipeableAreaRef.current || rightSwipeableAreaRef.current) {
115
+ setAnimating(true);
116
+ setContentTranslateX(0);
117
+ }
177
118
  },
178
119
  swipeLeft: () => {
179
- openRightSwipeableArea();
120
+ if (rightSwipeableAreaRef.current) {
121
+ setAnimating(true);
122
+ setContentTranslateX(-getElementWidth(rightSwipeableAreaRef.current));
123
+ }
180
124
  },
181
125
  swipeRight: () => {
182
- openLeftSwipeableArea();
126
+ if (leftSwipeableAreaRef.current) {
127
+ setAnimating(true);
128
+ setContentTranslateX(getElementWidth(leftSwipeableAreaRef.current));
129
+ }
183
130
  }
184
131
  }),
185
- [closeSwipeableArea, openRightSwipeableArea, openLeftSwipeableArea]
132
+ []
186
133
  );
187
134
  return /* @__PURE__ */ jsxs(
188
135
  "div",
189
136
  {
190
137
  className: clsx(styles.swipeableArea, className),
191
138
  ...rest,
192
- "data-tx": "1.44.0",
139
+ "data-tx": "1.45.0",
193
140
  ref: containerRef,
194
141
  children: [
195
- typeof leftSwipeableArea !== "undefined" ? /* @__PURE__ */ jsx(
142
+ hasLeftSwipeableArea ? /* @__PURE__ */ jsx(
196
143
  "div",
197
144
  {
198
145
  className: clsx(styles.leftContent, {
199
146
  [SWIPE_ANIMATION_CLASSNAME]: animating
200
147
  }),
201
148
  ref: leftSwipeableAreaRef,
202
- style: { opacity: getOpacityLeftContent() },
149
+ style: {
150
+ opacity: getSwipeableAreaOpacity(
151
+ contentTranslateX,
152
+ getElementWidth(leftSwipeableAreaRef.current)
153
+ )
154
+ },
203
155
  children: leftSwipeableArea
204
156
  }
205
157
  ) : null,
206
- typeof rightSwipeableArea !== "undefined" ? /* @__PURE__ */ jsx(
158
+ hasRightSwipeableArea ? /* @__PURE__ */ jsx(
207
159
  "div",
208
160
  {
209
161
  className: clsx(styles.rightContent, {
210
162
  [SWIPE_ANIMATION_CLASSNAME]: animating
211
163
  }),
212
164
  ref: rightSwipeableAreaRef,
213
- style: { opacity: getOpacityRightContent() },
165
+ style: {
166
+ opacity: getSwipeableAreaOpacity(
167
+ contentTranslateX,
168
+ getElementWidth(rightSwipeableAreaRef.current)
169
+ )
170
+ },
214
171
  children: rightSwipeableArea
215
172
  }
216
173
  ) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"SwipeableArea.js","sources":["../../../src/components/SwipeableArea/SwipeableArea.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport styles from \"./styles/SwipeableArea.module.less\";\n\nexport interface ISwipeableAreaProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Контент карточки. */\n children: React.ReactNode;\n /** Появляющийся контент при свайпе вправо. */\n leftSwipeableArea?: React.ReactNode;\n /** Появляющийся контент при свайпе влево. */\n rightSwipeableArea?: React.ReactNode;\n /** Колбэк завершённого свайпа влево (открытие rightSwipeableArea). Срабатывает только если дельта превысила порог. */\n onSwipeLeft?: () => void;\n /** Колбэк завершённого свайпа вправо (открытие leftSwipeableArea). Срабатывает только если дельта превысила порог. */\n onSwipeRight?: () => void;\n}\n\n// Минимальная ширина свайпа в px, при котором откроется боковая панель.\nconst SWIPE_MIN_DISTANCE = 24;\n// Css-класс, задающий завершение анимации движения свайпа и изменение opacity leftSwipeableArea и rightSwipeableArea.\nconst SWIPE_ANIMATION_CLASSNAME = styles.swipeAnimationFinish;\n// Css-класс, предотвращающий скролл при свайпе.\nconst DISABLE_SCROLL_CLASSNAME = styles.disableScroll;\n// Css-класс, предотвращающий нажатие на элементы карточки при свайпе.\nconst DISABLE_POINTER_EVENTS_CLASSNAME = styles.disablePointerEvents;\n// Изначальное значение startCoordinates.\nconst START_COORDINATES_INITIAL = { clientX: 0, clientY: 0 };\n\n// Направление перемещения пальца.\nenum EDragType {\n horizontal = \"horizontal\",\n vertical = \"vertical\",\n}\n\nexport interface ISwipeableAreaRef {\n /** Закрывает leftSwipeableAreaRef или rightSwipeableArea. */\n closeSwipe: () => void;\n /** Открывает rightSwipeableArea. */\n swipeLeft: () => void;\n /** Открывает leftSwipeableAreaRef. */\n swipeRight: () => void;\n}\n\n/**\n * Контейнер с реализацией свайпа.\n * При свайпе влево открывается rightSwipeableArea.\n * При свайпе вправо открывается leftSwipeableArea.\n */\nexport const SwipeableArea = React.forwardRef<ISwipeableAreaRef, ISwipeableAreaProps>(\n ({ children, className, leftSwipeableArea, rightSwipeableArea, onSwipeLeft, onSwipeRight, ...rest }, ref) => {\n // Происходит анимация завершения свайпа.\n const [animating, setAnimating] = useState(false);\n // Направление перемещения пальца, вертикальное - скролл, горизонтальное - свайп.\n const [dragType, setDragType] = useState<EDragType>();\n // Координата перемещения контента карточки.\n const [contentTranslateX, setContentTranslateX] = useState(0);\n const leftSwipeableAreaRef = useRef<HTMLDivElement>(null);\n const rightSwipeableAreaRef = useRef<HTMLDivElement>(null);\n // Координата X карточки на старте перемещения.\n const contentTranslateXOnStartRef = useRef(0);\n // Координата пальца при старте свайпа.\n const startCoordinates = useRef(START_COORDINATES_INITIAL);\n // Ссылка на контейнер.\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n /**\n * Обработчик свайпа, срабатывает при отпускании пальца.\n */\n const handleSwipe = () => {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n\n const deltaContentTranslateX = contentTranslateXOnStartRef.current - contentTranslateX;\n\n // Свайп отктырия левой или правой области.\n if (contentTranslateXOnStartRef.current === 0) {\n // Свайп влево.\n if (deltaContentTranslateX > 0) {\n // Если сдвиг слишком короткий - возврат на прежнее положение, или открытие левого контента.\n if (deltaContentTranslateX > SWIPE_MIN_DISTANCE) {\n setContentTranslateX(-rightSwipeableAreaRef.current!.getBoundingClientRect().width);\n onSwipeLeft?.();\n } else {\n setContentTranslateX(0);\n }\n } else {\n // Свайп вправо.\n if (Math.abs(deltaContentTranslateX) > SWIPE_MIN_DISTANCE) {\n setContentTranslateX(leftSwipeableAreaRef.current!.getBoundingClientRect().width);\n onSwipeRight?.();\n } else {\n setContentTranslateX(0);\n }\n }\n } else if (contentTranslateXOnStartRef.current > 0) {\n // Свайп закрытия левой области.\n // Свайп влево.\n if (deltaContentTranslateX > 0) {\n setContentTranslateX(\n deltaContentTranslateX > SWIPE_MIN_DISTANCE\n ? 0\n : leftSwipeableAreaRef.current!.getBoundingClientRect().width,\n );\n }\n } else if (contentTranslateXOnStartRef.current < 0) {\n // Свайп закрытия правой области.\n // Свайп вправо.\n if (deltaContentTranslateX < 0) {\n setContentTranslateX(\n Math.abs(deltaContentTranslateX) > SWIPE_MIN_DISTANCE\n ? 0\n : -rightSwipeableAreaRef.current!.getBoundingClientRect().width,\n );\n }\n }\n };\n\n const handleDocumentTouchEnd = () => {\n startCoordinates.current = START_COORDINATES_INITIAL;\n\n setDragType(undefined);\n\n document.removeEventListener(\"touchend\", handleDocumentTouchEnd);\n };\n\n useEffect(() => {\n // contentTranslateX !== contentTranslateXOnStartRef.current - был свайп, а не скролл.\n if (!dragType && contentTranslateX !== contentTranslateXOnStartRef.current) {\n handleSwipe();\n }\n // Другие зависимости добавлять не нужно.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dragType]);\n\n const handleTouchStart = (event: React.TouchEvent) => {\n startCoordinates.current = { clientX: event.touches[0].clientX, clientY: event.touches[0].clientY };\n contentTranslateXOnStartRef.current = contentTranslateX;\n document.addEventListener(\"touchend\", handleDocumentTouchEnd);\n };\n\n const handleTouchMove = (event: React.TouchEvent) => {\n if (event.touches.length != 1) {\n return;\n }\n\n // Величина изменения перемещения пальца.\n const deltaX = event.touches[0].clientX - startCoordinates.current.clientX;\n const deltaY = event.touches[0].clientY - startCoordinates.current.clientY;\n\n if (!dragType) {\n // Это скролл, а не свайп.\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n setDragType(EDragType.vertical);\n } else {\n setDragType(EDragType.horizontal);\n }\n\n return;\n }\n\n if (dragType === EDragType.vertical) {\n // Это скролл, а не свайп, движение пальца не обрабатывается.\n return;\n }\n\n // Координата X контента карточки.\n const contentTranslateXNext = contentTranslateXOnStartRef.current + deltaX;\n\n // Свайп открытия левой или правой области.\n if (contentTranslateXOnStartRef.current === 0) {\n // Свайп вправо и есть контент слева.\n if (deltaX > 0 && leftSwipeableArea) {\n setContentTranslateX(\n Math.min(contentTranslateXNext, leftSwipeableAreaRef.current!.getBoundingClientRect().width),\n );\n } else if (deltaX < 0 && rightSwipeableArea) {\n // Свайп влево и есть контент справа.\n setContentTranslateX(\n Math.max(contentTranslateXNext, -rightSwipeableAreaRef.current!.getBoundingClientRect().width),\n );\n }\n } else if (contentTranslateXOnStartRef.current > 0) {\n // Свайп закрытия левой области.\n if (deltaX < 0) {\n setContentTranslateX(Math.max(0, contentTranslateXNext));\n }\n } else if (contentTranslateXOnStartRef.current < 0) {\n // Свайп закрытия правой области.\n if (deltaX > 0) {\n setContentTranslateX(Math.min(0, contentTranslateXNext));\n }\n }\n };\n\n const handleTransitionEnd = () => setAnimating(false);\n\n const getOpacityRightContent = (): number => {\n if (rightSwipeableAreaRef.current) {\n return Math.abs(contentTranslateX) / rightSwipeableAreaRef.current.getBoundingClientRect().width;\n }\n\n return 1;\n };\n\n const getOpacityLeftContent = (): number => {\n if (leftSwipeableAreaRef.current) {\n return Math.abs(contentTranslateX) / leftSwipeableAreaRef.current.getBoundingClientRect().width;\n }\n\n return 1;\n };\n\n // Обработчик тапа за пределами элемента(outside).\n useEffect(() => {\n const handleDocumentTouchStart = (event: TouchEvent) => {\n if (event.touches.length != 1) {\n return;\n }\n\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(0);\n setDragType(undefined);\n }\n };\n\n document.addEventListener(\"touchstart\", handleDocumentTouchStart);\n\n return () => document.removeEventListener(\"touchstart\", handleDocumentTouchStart);\n }, []);\n\n // Открывает leftSwipeableAreaRef.\n const openLeftSwipeableArea = () => {\n if (leftSwipeableAreaRef.current) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(leftSwipeableAreaRef.current.getBoundingClientRect().width);\n }\n };\n\n // Открывает rightSwipeableArea.\n const openRightSwipeableArea = () => {\n if (rightSwipeableAreaRef.current) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(-rightSwipeableAreaRef.current.getBoundingClientRect().width);\n }\n };\n\n // Закрывает leftSwipeableAreaRef или rightSwipeableArea.\n const closeSwipeableArea = () => {\n if (rightSwipeableAreaRef.current || leftSwipeableAreaRef.current) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(0);\n }\n };\n\n useImperativeHandle(\n ref,\n () => ({\n closeSwipe: () => {\n closeSwipeableArea();\n },\n swipeLeft: () => {\n openRightSwipeableArea();\n },\n swipeRight: () => {\n openLeftSwipeableArea();\n },\n }),\n [closeSwipeableArea, openRightSwipeableArea, openLeftSwipeableArea],\n );\n\n return (\n <div\n className={clsx(styles.swipeableArea, className)}\n {...rest}\n data-tx={process.env.npm_package_version}\n ref={containerRef}\n >\n {typeof leftSwipeableArea !== \"undefined\" ? (\n <div\n className={clsx(styles.leftContent, {\n [SWIPE_ANIMATION_CLASSNAME]: animating,\n })}\n ref={leftSwipeableAreaRef}\n /* Плавное появление контента при свайпе. */\n style={{ opacity: getOpacityLeftContent() }}\n >\n {leftSwipeableArea}\n </div>\n ) : null}\n\n {typeof rightSwipeableArea !== \"undefined\" ? (\n <div\n className={clsx(styles.rightContent, {\n [SWIPE_ANIMATION_CLASSNAME]: animating,\n })}\n ref={rightSwipeableAreaRef}\n /* Плавное появление контента при свайпе. */\n style={{ opacity: getOpacityRightContent() }}\n >\n {rightSwipeableArea}\n </div>\n ) : null}\n\n <div\n className={clsx(styles.content, {\n [DISABLE_POINTER_EVENTS_CLASSNAME]: contentTranslateX !== 0,\n [DISABLE_SCROLL_CLASSNAME]: dragType === EDragType.horizontal,\n [SWIPE_ANIMATION_CLASSNAME]: animating,\n })}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n style={{\n transform: `translateX(${contentTranslateX}px)`,\n }}\n onTransitionEnd={handleTransitionEnd}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nSwipeableArea.displayName = \"SwipeableArea\";\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"SwipeableArea.js","sources":["../../../src/components/SwipeableArea/SwipeableArea.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { ESwipeDirection, getElementWidth, getSwipeableAreaOpacity, resolveSwipeEnd, resolveSwipeMove } from \"./utils\";\nimport styles from \"./styles/SwipeableArea.module.less\";\n\nexport interface ISwipeableAreaProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Контент карточки. */\n children: React.ReactNode;\n /** Появляющийся контент при свайпе вправо. */\n leftSwipeableArea?: React.ReactNode;\n /** Появляющийся контент при свайпе влево. */\n rightSwipeableArea?: React.ReactNode;\n /** Колбэк завершённого свайпа влево (открытие rightSwipeableArea). Срабатывает только если дельта превысила порог. */\n onSwipeLeft?: () => void;\n /** Колбэк завершённого свайпа вправо (открытие leftSwipeableArea). Срабатывает только если дельта превысила порог. */\n onSwipeRight?: () => void;\n}\n\n// Css-класс, задающий завершение анимации движения свайпа и изменение opacity leftSwipeableArea и rightSwipeableArea.\nconst SWIPE_ANIMATION_CLASSNAME = styles.swipeAnimationFinish;\n// Css-класс, предотвращающий скролл при свайпе.\nconst DISABLE_SCROLL_CLASSNAME = styles.disableScroll;\n// Css-класс, предотвращающий нажатие на элементы карточки при свайпе.\nconst DISABLE_POINTER_EVENTS_CLASSNAME = styles.disablePointerEvents;\n// Изначальное значение startCoordinates.\nconst START_COORDINATES_INITIAL = { clientX: 0, clientY: 0 };\n\n// Направление перемещения пальца.\nenum EDragType {\n horizontal = \"horizontal\",\n vertical = \"vertical\",\n}\n\nexport interface ISwipeableAreaRef {\n /** Закрывает leftSwipeableArea или rightSwipeableArea. */\n closeSwipe: () => void;\n /** Открывает rightSwipeableArea. */\n swipeLeft: () => void;\n /** Открывает leftSwipeableArea. */\n swipeRight: () => void;\n}\n\n/**\n * Контейнер с реализацией свайпа.\n * При свайпе влево открывается rightSwipeableArea.\n * При свайпе вправо открывается leftSwipeableArea.\n */\nexport const SwipeableArea = React.forwardRef<ISwipeableAreaRef, ISwipeableAreaProps>(\n ({ children, className, leftSwipeableArea, rightSwipeableArea, onSwipeLeft, onSwipeRight, ...rest }, ref) => {\n // Происходит анимация завершения свайпа.\n const [animating, setAnimating] = useState(false);\n // Направление перемещения пальца, вертикальное - скролл, горизонтальное - свайп.\n const [dragType, setDragType] = useState<EDragType>();\n // Координата перемещения контента карточки.\n const [contentTranslateX, setContentTranslateX] = useState(0);\n const leftSwipeableAreaRef = useRef<HTMLDivElement>(null);\n const rightSwipeableAreaRef = useRef<HTMLDivElement>(null);\n // Координата X карточки на старте перемещения.\n const contentTranslateXOnStartRef = useRef(0);\n // Координата пальца при старте свайпа.\n const startCoordinates = useRef(START_COORDINATES_INITIAL);\n // Ссылка на контейнер.\n const containerRef = useRef<HTMLDivElement | null>(null);\n const hasLeftSwipeableArea = leftSwipeableArea !== undefined;\n const hasRightSwipeableArea = rightSwipeableArea !== undefined;\n\n /**\n * Обработчик свайпа, срабатывает при отпускании пальца.\n */\n const handleSwipe = () => {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n\n const { translateX, direction } = resolveSwipeEnd({\n translateX: contentTranslateX,\n translateXOnStart: contentTranslateXOnStartRef.current,\n leftAreaWidth: getElementWidth(leftSwipeableAreaRef.current),\n rightAreaWidth: getElementWidth(rightSwipeableAreaRef.current),\n });\n\n setContentTranslateX(translateX);\n\n if (direction === ESwipeDirection.LEFT) {\n onSwipeLeft?.();\n } else if (direction === ESwipeDirection.RIGHT) {\n onSwipeRight?.();\n }\n };\n\n // Обработчик отпускания пальца. Слушатель вешается на документ, чтобы поймать отпускание за пределами карточки.\n const handleDocumentTouchEnd = useCallback(() => {\n startCoordinates.current = START_COORDINATES_INITIAL;\n\n setDragType(undefined);\n }, []);\n\n useEffect(() => {\n // contentTranslateX !== contentTranslateXOnStartRef.current - был свайп, а не скролл.\n if (!dragType && contentTranslateX !== contentTranslateXOnStartRef.current) {\n handleSwipe();\n }\n // Другие зависимости добавлять не нужно.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [dragType]);\n\n const handleTouchStart = (event: React.TouchEvent) => {\n startCoordinates.current = { clientX: event.touches[0].clientX, clientY: event.touches[0].clientY };\n contentTranslateXOnStartRef.current = contentTranslateX;\n // once - слушатель снимается сам после отпускания пальца.\n document.addEventListener(\"touchend\", handleDocumentTouchEnd, { once: true });\n };\n\n const handleTouchMove = (event: React.TouchEvent) => {\n if (event.touches.length !== 1) {\n return;\n }\n\n // Величина изменения перемещения пальца.\n const deltaX = event.touches[0].clientX - startCoordinates.current.clientX;\n const deltaY = event.touches[0].clientY - startCoordinates.current.clientY;\n\n if (!dragType) {\n // Вертикальное перемещение пальца - скролл, горизонтальное - свайп.\n setDragType(Math.abs(deltaY) > Math.abs(deltaX) ? EDragType.vertical : EDragType.horizontal);\n\n return;\n }\n\n if (dragType === EDragType.vertical) {\n // Это скролл, а не свайп, движение пальца не обрабатывается.\n return;\n }\n\n setContentTranslateX(\n resolveSwipeMove({\n translateX: contentTranslateX,\n translateXOnStart: contentTranslateXOnStartRef.current,\n deltaX,\n leftAreaWidth: hasLeftSwipeableArea ? getElementWidth(leftSwipeableAreaRef.current) : null,\n rightAreaWidth: hasRightSwipeableArea ? getElementWidth(rightSwipeableAreaRef.current) : null,\n }),\n );\n };\n\n const handleTransitionEnd = () => setAnimating(false);\n\n // Обработчик тапа за пределами элемента(outside).\n useEffect(() => {\n const handleDocumentTouchStart = (event: TouchEvent) => {\n if (event.touches.length !== 1) {\n return;\n }\n\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(0);\n setDragType(undefined);\n }\n };\n\n document.addEventListener(\"touchstart\", handleDocumentTouchStart);\n\n return () => {\n document.removeEventListener(\"touchstart\", handleDocumentTouchStart);\n // Слушатель остаётся висеть, если компонент размонтирован между началом и концом свайпа.\n document.removeEventListener(\"touchend\", handleDocumentTouchEnd);\n };\n }, [handleDocumentTouchEnd]);\n\n useImperativeHandle(\n ref,\n () => ({\n closeSwipe: () => {\n if (leftSwipeableAreaRef.current || rightSwipeableAreaRef.current) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(0);\n }\n },\n swipeLeft: () => {\n if (rightSwipeableAreaRef.current) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(-getElementWidth(rightSwipeableAreaRef.current));\n }\n },\n swipeRight: () => {\n if (leftSwipeableAreaRef.current) {\n // Установка анимации завершения свайпа.\n setAnimating(true);\n setContentTranslateX(getElementWidth(leftSwipeableAreaRef.current));\n }\n },\n }),\n [],\n );\n\n return (\n <div\n className={clsx(styles.swipeableArea, className)}\n {...rest}\n data-tx={process.env.npm_package_version}\n ref={containerRef}\n >\n {hasLeftSwipeableArea ? (\n <div\n className={clsx(styles.leftContent, {\n [SWIPE_ANIMATION_CLASSNAME]: animating,\n })}\n ref={leftSwipeableAreaRef}\n /* Плавное появление контента при свайпе. */\n style={{\n opacity: getSwipeableAreaOpacity(\n contentTranslateX,\n getElementWidth(leftSwipeableAreaRef.current),\n ),\n }}\n >\n {leftSwipeableArea}\n </div>\n ) : null}\n\n {hasRightSwipeableArea ? (\n <div\n className={clsx(styles.rightContent, {\n [SWIPE_ANIMATION_CLASSNAME]: animating,\n })}\n ref={rightSwipeableAreaRef}\n /* Плавное появление контента при свайпе. */\n style={{\n opacity: getSwipeableAreaOpacity(\n contentTranslateX,\n getElementWidth(rightSwipeableAreaRef.current),\n ),\n }}\n >\n {rightSwipeableArea}\n </div>\n ) : null}\n\n <div\n className={clsx(styles.content, {\n [DISABLE_POINTER_EVENTS_CLASSNAME]: contentTranslateX !== 0,\n [DISABLE_SCROLL_CLASSNAME]: dragType === EDragType.horizontal,\n [SWIPE_ANIMATION_CLASSNAME]: animating,\n })}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n style={{\n transform: `translateX(${contentTranslateX}px)`,\n }}\n onTransitionEnd={handleTransitionEnd}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nSwipeableArea.displayName = \"SwipeableArea\";\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ const SWIPE_MIN_DISTANCE = 24;
2
+ var ESwipeDirection = /* @__PURE__ */ ((ESwipeDirection2) => {
3
+ ESwipeDirection2["LEFT"] = "left";
4
+ ESwipeDirection2["RIGHT"] = "right";
5
+ return ESwipeDirection2;
6
+ })(ESwipeDirection || {});
7
+ const getElementWidth = (element) => element ? element.getBoundingClientRect().width : 0;
8
+ const resolveSwipeMove = ({
9
+ translateX,
10
+ translateXOnStart,
11
+ deltaX,
12
+ leftAreaWidth,
13
+ rightAreaWidth
14
+ }) => {
15
+ const translateXNext = translateXOnStart + deltaX;
16
+ if (translateXOnStart === 0) {
17
+ if (deltaX > 0 && leftAreaWidth !== null) {
18
+ return Math.min(translateXNext, leftAreaWidth);
19
+ }
20
+ if (deltaX < 0 && rightAreaWidth !== null) {
21
+ return Math.max(translateXNext, -rightAreaWidth);
22
+ }
23
+ return translateX;
24
+ }
25
+ if (translateXOnStart > 0) {
26
+ return deltaX < 0 ? Math.max(0, translateXNext) : translateX;
27
+ }
28
+ return deltaX > 0 ? Math.min(0, translateXNext) : translateX;
29
+ };
30
+ const resolveSwipeEnd = ({
31
+ translateX,
32
+ translateXOnStart,
33
+ leftAreaWidth,
34
+ rightAreaWidth
35
+ }) => {
36
+ const deltaTranslateX = translateXOnStart - translateX;
37
+ const passedMinDistance = Math.abs(deltaTranslateX) > SWIPE_MIN_DISTANCE;
38
+ if (translateXOnStart === 0) {
39
+ if (!passedMinDistance) {
40
+ return { translateX: 0, direction: null };
41
+ }
42
+ return deltaTranslateX > 0 ? {
43
+ translateX: -rightAreaWidth,
44
+ direction: "left"
45
+ /* LEFT */
46
+ } : {
47
+ translateX: leftAreaWidth,
48
+ direction: "right"
49
+ /* RIGHT */
50
+ };
51
+ }
52
+ if (translateXOnStart > 0) {
53
+ if (deltaTranslateX <= 0) {
54
+ return { translateX, direction: null };
55
+ }
56
+ return { translateX: passedMinDistance ? 0 : leftAreaWidth, direction: null };
57
+ }
58
+ if (deltaTranslateX >= 0) {
59
+ return { translateX, direction: null };
60
+ }
61
+ return { translateX: passedMinDistance ? 0 : -rightAreaWidth, direction: null };
62
+ };
63
+ const getSwipeableAreaOpacity = (translateX, areaWidth) => areaWidth > 0 ? Math.abs(translateX) / areaWidth : 1;
64
+ export {
65
+ ESwipeDirection,
66
+ SWIPE_MIN_DISTANCE,
67
+ getElementWidth,
68
+ getSwipeableAreaOpacity,
69
+ resolveSwipeEnd,
70
+ resolveSwipeMove
71
+ };
72
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../src/components/SwipeableArea/utils.ts"],"sourcesContent":["/** Минимальная длина свайпа в px, при которой боковая область открывается или закрывается. */\nexport const SWIPE_MIN_DISTANCE = 24;\n\n/** Направление завершённого свайпа. */\nexport enum ESwipeDirection {\n LEFT = \"left\",\n RIGHT = \"right\",\n}\n\n/** Ширина элемента. Если элемента нет — 0. */\nexport const getElementWidth = (element: HTMLElement | null): number =>\n element ? element.getBoundingClientRect().width : 0;\n\n/** Параметры расчёта координаты контента при перемещении пальца. */\nexport interface IResolveSwipeMoveParams {\n /** Текущая координата контента. */\n translateX: number;\n /** Координата контента на старте свайпа. */\n translateXOnStart: number;\n /** Смещение пальца по оси X относительно старта свайпа. */\n deltaX: number;\n /** Ширина левой области. null, если левой области нет. */\n leftAreaWidth: number | null;\n /** Ширина правой области. null, если правой области нет. */\n rightAreaWidth: number | null;\n}\n\n/**\n * Возвращает координату контента при перемещении пальца.\n * Перемещение ограничено шириной открываемой области. Если двигать некуда, координата не меняется.\n */\nexport const resolveSwipeMove = ({\n translateX,\n translateXOnStart,\n deltaX,\n leftAreaWidth,\n rightAreaWidth,\n}: IResolveSwipeMoveParams): number => {\n // Координата контента без учёта ограничений.\n const translateXNext = translateXOnStart + deltaX;\n\n // Свайп открытия левой или правой области.\n if (translateXOnStart === 0) {\n // Свайп вправо, и есть контент слева.\n if (deltaX > 0 && leftAreaWidth !== null) {\n return Math.min(translateXNext, leftAreaWidth);\n }\n\n // Свайп влево, и есть контент справа.\n if (deltaX < 0 && rightAreaWidth !== null) {\n return Math.max(translateXNext, -rightAreaWidth);\n }\n\n return translateX;\n }\n\n // Свайп закрытия левой области — контент двигается только влево, до исходного положения.\n if (translateXOnStart > 0) {\n return deltaX < 0 ? Math.max(0, translateXNext) : translateX;\n }\n\n // Свайп закрытия правой области — контент двигается только вправо, до исходного положения.\n return deltaX > 0 ? Math.min(0, translateXNext) : translateX;\n};\n\n/** Параметры расчёта координаты контента при отпускании пальца. */\nexport interface IResolveSwipeEndParams {\n /** Текущая координата контента. */\n translateX: number;\n /** Координата контента на старте свайпа. */\n translateXOnStart: number;\n /** Ширина левой области. */\n leftAreaWidth: number;\n /** Ширина правой области. */\n rightAreaWidth: number;\n}\n\n/** Результат расчёта завершённого свайпа. */\nexport interface IResolveSwipeEndResult {\n /** Итоговая координата контента. */\n translateX: number;\n /** Направление свайпа, открывшего боковую область. null, если область не открылась. */\n direction: ESwipeDirection | null;\n}\n\n/**\n * Возвращает итоговую координату контента при отпускании пальца и направление открывшего свайпа.\n * Область открывается или закрывается, только если длина свайпа превысила SWIPE_MIN_DISTANCE,\n * иначе контент возвращается в положение, которое занимал на старте свайпа.\n *\n * Предусловие: ширина области, в сторону которой шёл свайп, больше нуля. Отсутствующая область\n * отсеивается раньше — resolveSwipeMove не даёт сдвинуть контент в её сторону, поэтому до\n * отпускания пальца дело не доходит.\n */\nexport const resolveSwipeEnd = ({\n translateX,\n translateXOnStart,\n leftAreaWidth,\n rightAreaWidth,\n}: IResolveSwipeEndParams): IResolveSwipeEndResult => {\n // Длина свайпа: положительная — свайп влево, отрицательная — свайп вправо.\n const deltaTranslateX = translateXOnStart - translateX;\n const passedMinDistance = Math.abs(deltaTranslateX) > SWIPE_MIN_DISTANCE;\n\n // Свайп открытия левой или правой области.\n if (translateXOnStart === 0) {\n if (!passedMinDistance) {\n return { translateX: 0, direction: null };\n }\n\n return deltaTranslateX > 0\n ? { translateX: -rightAreaWidth, direction: ESwipeDirection.LEFT }\n : { translateX: leftAreaWidth, direction: ESwipeDirection.RIGHT };\n }\n\n // Свайп закрытия левой области — закрывает только движение влево.\n if (translateXOnStart > 0) {\n if (deltaTranslateX <= 0) {\n return { translateX, direction: null };\n }\n\n return { translateX: passedMinDistance ? 0 : leftAreaWidth, direction: null };\n }\n\n // Свайп закрытия правой области — закрывает только движение вправо.\n if (deltaTranslateX >= 0) {\n return { translateX, direction: null };\n }\n\n return { translateX: passedMinDistance ? 0 : -rightAreaWidth, direction: null };\n};\n\n/**\n * Возвращает прозрачность боковой области — она пропорциональна тому, насколько область открыта.\n * Если ширина области равна нулю (элемент ещё не смонтирован либо область скрыта), возвращается 1,\n * как в состоянии покоя, когда область целиком закрыта контентом.\n */\nexport const getSwipeableAreaOpacity = (translateX: number, areaWidth: number): number =>\n areaWidth > 0 ? Math.abs(translateX) / areaWidth : 1;\n"],"names":["ESwipeDirection"],"mappings":"AACO,MAAM,qBAAqB;AAG3B,IAAK,oCAAAA,qBAAL;AACHA,mBAAA,MAAA,IAAO;AACPA,mBAAA,OAAA,IAAQ;AAFA,SAAAA;AAAA,GAAA,mBAAA,CAAA,CAAA;AAML,MAAM,kBAAkB,CAAC,YAC5B,UAAU,QAAQ,sBAAA,EAAwB,QAAQ;AAoB/C,MAAM,mBAAmB,CAAC;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAAuC;AAEnC,QAAM,iBAAiB,oBAAoB;AAG3C,MAAI,sBAAsB,GAAG;AAEzB,QAAI,SAAS,KAAK,kBAAkB,MAAM;AACtC,aAAO,KAAK,IAAI,gBAAgB,aAAa;AAAA,IACjD;AAGA,QAAI,SAAS,KAAK,mBAAmB,MAAM;AACvC,aAAO,KAAK,IAAI,gBAAgB,CAAC,cAAc;AAAA,IACnD;AAEA,WAAO;AAAA,EACX;AAGA,MAAI,oBAAoB,GAAG;AACvB,WAAO,SAAS,IAAI,KAAK,IAAI,GAAG,cAAc,IAAI;AAAA,EACtD;AAGA,SAAO,SAAS,IAAI,KAAK,IAAI,GAAG,cAAc,IAAI;AACtD;AA+BO,MAAM,kBAAkB,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAAsD;AAElD,QAAM,kBAAkB,oBAAoB;AAC5C,QAAM,oBAAoB,KAAK,IAAI,eAAe,IAAI;AAGtD,MAAI,sBAAsB,GAAG;AACzB,QAAI,CAAC,mBAAmB;AACpB,aAAO,EAAE,YAAY,GAAG,WAAW,KAAA;AAAA,IACvC;AAEA,WAAO,kBAAkB,IACnB;AAAA,MAAE,YAAY,CAAC;AAAA,MAAgB,WAAW;AAAA;AAAA,IAAA,IAC1C;AAAA,MAAE,YAAY;AAAA,MAAe,WAAW;AAAA;AAAA,IAAA;AAAA,EAClD;AAGA,MAAI,oBAAoB,GAAG;AACvB,QAAI,mBAAmB,GAAG;AACtB,aAAO,EAAE,YAAY,WAAW,KAAA;AAAA,IACpC;AAEA,WAAO,EAAE,YAAY,oBAAoB,IAAI,eAAe,WAAW,KAAA;AAAA,EAC3E;AAGA,MAAI,mBAAmB,GAAG;AACtB,WAAO,EAAE,YAAY,WAAW,KAAA;AAAA,EACpC;AAEA,SAAO,EAAE,YAAY,oBAAoB,IAAI,CAAC,gBAAgB,WAAW,KAAA;AAC7E;AAOO,MAAM,0BAA0B,CAAC,YAAoB,cACxD,YAAY,IAAI,KAAK,IAAI,UAAU,IAAI,YAAY;"}
@@ -1,12 +1,17 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
+ import React__default from "react";
2
3
  import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
3
4
  import { ChipPanelLinks } from "./ChipPanelLinks.js";
4
- const chipPanel = "chipPanel__70dfe145";
5
+ const chipPanel = "chipPanel__6a8eff0c";
5
6
  const styles = {
6
7
  chipPanel
7
8
  };
8
- const ChipPanel = ({ children, className, ...htmlDivAttributes }) => /* @__PURE__ */ jsx("div", { className: clsx(styles.chipPanel, className), ...htmlDivAttributes, children });
9
- ChipPanel.Links = ChipPanelLinks;
9
+ const ChipPanel = Object.assign(
10
+ React__default.forwardRef(({ children, className, ...htmlDivAttributes }, ref) => /* @__PURE__ */ jsx("div", { className: clsx(styles.chipPanel, className), ...htmlDivAttributes, ref, children })),
11
+ {
12
+ Links: ChipPanelLinks
13
+ }
14
+ );
10
15
  ChipPanel.displayName = "ChipPanel";
11
16
  export {
12
17
  ChipPanel
@@ -1 +1 @@
1
- {"version":3,"file":"ChipPanel.js","sources":["../../../src/components/Table/ChipPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport styles from \"./styles/ChipPanel.module.less\";\nimport { ChipPanelLinks } from \"@sberbusiness/triplex-next/components/Table/ChipPanelLinks\";\nimport { IChipPanelProps } from \"@sberbusiness/triplex-next/components/Table/TableBasic/types\";\n\n/** Внутренние составляющие панели табличных фильтров. */\nexport interface IChipPanelComposition extends React.FC<IChipPanelProps> {\n Links: typeof ChipPanelLinks;\n}\n\n/** Компонент ChipPanel. */\nexport const ChipPanel: IChipPanelComposition = ({ children, className, ...htmlDivAttributes }) => (\n <div className={clsx(styles.chipPanel, className)} {...htmlDivAttributes}>\n {children}\n </div>\n);\n\nChipPanel.Links = ChipPanelLinks;\nChipPanel.displayName = \"ChipPanel\";\n"],"names":[],"mappings":";;;;;;;AAYO,MAAM,YAAmC,CAAC,EAAE,UAAU,WAAW,GAAG,wBACvE,oBAAC,OAAA,EAAI,WAAW,KAAK,OAAO,WAAW,SAAS,GAAI,GAAG,mBAClD,SAAA,CACL;AAGJ,UAAU,QAAQ;AAClB,UAAU,cAAc;"}
1
+ {"version":3,"file":"ChipPanel.js","sources":["../../../src/components/Table/ChipPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport styles from \"./styles/ChipPanel.module.less\";\nimport { ChipPanelLinks } from \"@sberbusiness/triplex-next/components/Table/ChipPanelLinks\";\nimport { IChipPanelProps } from \"@sberbusiness/triplex-next/components/Table/TableBasic/types\";\n\n/**\n * Внутренние составляющие панели табличных фильтров.\n *\n * Явная аннотация снимает проверку лишних свойств у Object.assign, поэтому при добавлении\n * или удалении статики этот интерфейс нужно править синхронно: иначе новая статика окажется\n * в рантайме, но не попадёт в публичный тип, и TypeScript промолчит.\n */\nexport interface IChipPanelComposition extends React.ForwardRefExoticComponent<\n IChipPanelProps & React.RefAttributes<HTMLDivElement>\n> {\n /** Блок со ссылками-действиями панели. */\n Links: typeof ChipPanelLinks;\n}\n\n/** Компонент ChipPanel. */\nexport const ChipPanel: IChipPanelComposition = Object.assign(\n React.forwardRef<HTMLDivElement, IChipPanelProps>(({ children, className, ...htmlDivAttributes }, ref) => (\n <div className={clsx(styles.chipPanel, className)} {...htmlDivAttributes} ref={ref}>\n {children}\n </div>\n )),\n {\n Links: ChipPanelLinks,\n },\n);\n\nChipPanel.displayName = \"ChipPanel\";\n"],"names":["React"],"mappings":";;;;;;;;AAqBO,MAAM,YAAmC,OAAO;AAAA,EACnDA,eAAM,WAA4C,CAAC,EAAE,UAAU,WAAW,GAAG,kBAAA,GAAqB,QAC9F,oBAAC,SAAI,WAAW,KAAK,OAAO,WAAW,SAAS,GAAI,GAAG,mBAAmB,KACrE,SAAA,CACL,CACH;AAAA,EACD;AAAA,IACI,OAAO;AAAA,EAAA;AAEf;AAEA,UAAU,cAAc;"}
@@ -1,21 +1,25 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
+ import React__default from "react";
2
3
  import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
3
4
  import { Text } from "../Typography/Text.js";
4
5
  import { EFontWeightText, ETextSize } from "../Typography/enums.js";
5
- const chipPanelLinks = "chipPanelLinks__fa039882";
6
+ const chipPanelLinks = "chipPanelLinks__d0a47b17";
6
7
  const styles = {
7
8
  chipPanelLinks
8
9
  };
9
- const ChipPanelLinks = ({ children, className, ...htmlDivAttributes }) => /* @__PURE__ */ jsx(
10
- Text,
11
- {
12
- tag: "div",
13
- size: ETextSize.B3,
14
- weight: EFontWeightText.SEMIBOLD,
15
- className: clsx(className, styles.chipPanelLinks),
16
- ...htmlDivAttributes,
17
- children
18
- }
10
+ const ChipPanelLinks = React__default.forwardRef(
11
+ ({ children, className, ...htmlDivAttributes }, ref) => /* @__PURE__ */ jsx(
12
+ Text,
13
+ {
14
+ tag: "div",
15
+ size: ETextSize.B3,
16
+ weight: EFontWeightText.SEMIBOLD,
17
+ className: clsx(className, styles.chipPanelLinks),
18
+ ...htmlDivAttributes,
19
+ ref,
20
+ children
21
+ }
22
+ )
19
23
  );
20
24
  ChipPanelLinks.displayName = "ChipPanelLinks";
21
25
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"ChipPanelLinks.js","sources":["../../../src/components/Table/ChipPanelLinks.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport styles from \"./styles/ChipPanelLinks.module.less\";\nimport { IChipPanelLinksProps } from \"@sberbusiness/triplex-next/components/Table/TableBasic/types\";\nimport { Text } from \"@sberbusiness/triplex-next/components/Typography/Text\";\nimport { EFontWeightText, ETextSize } from \"@sberbusiness/triplex-next/components/Typography/enums\";\n\n/** Компонент ChipPanelLinks. */\nexport const ChipPanelLinks: React.FC<IChipPanelLinksProps> = ({ children, className, ...htmlDivAttributes }) => (\n <Text\n tag=\"div\"\n size={ETextSize.B3}\n weight={EFontWeightText.SEMIBOLD}\n className={clsx(className, styles.chipPanelLinks)}\n {...htmlDivAttributes}\n >\n {children}\n </Text>\n);\n\nChipPanelLinks.displayName = \"ChipPanelLinks\";\n"],"names":[],"mappings":";;;;;;;;AAQO,MAAM,iBAAiD,CAAC,EAAE,UAAU,WAAW,GAAG,wBACrF;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,KAAI;AAAA,IACJ,MAAM,UAAU;AAAA,IAChB,QAAQ,gBAAgB;AAAA,IACxB,WAAW,KAAK,WAAW,OAAO,cAAc;AAAA,IAC/C,GAAG;AAAA,IAEH;AAAA,EAAA;AACL;AAGJ,eAAe,cAAc;"}
1
+ {"version":3,"file":"ChipPanelLinks.js","sources":["../../../src/components/Table/ChipPanelLinks.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport styles from \"./styles/ChipPanelLinks.module.less\";\nimport { IChipPanelLinksProps } from \"@sberbusiness/triplex-next/components/Table/TableBasic/types\";\nimport { Text } from \"@sberbusiness/triplex-next/components/Typography/Text\";\nimport { EFontWeightText, ETextSize } from \"@sberbusiness/triplex-next/components/Typography/enums\";\n\n/** Компонент ChipPanelLinks. */\nexport const ChipPanelLinks = React.forwardRef<HTMLDivElement, IChipPanelLinksProps>(\n ({ children, className, ...htmlDivAttributes }, ref) => (\n <Text\n tag=\"div\"\n size={ETextSize.B3}\n weight={EFontWeightText.SEMIBOLD}\n className={clsx(className, styles.chipPanelLinks)}\n {...htmlDivAttributes}\n ref={ref}\n >\n {children}\n </Text>\n ),\n);\n\nChipPanelLinks.displayName = \"ChipPanelLinks\";\n"],"names":["React"],"mappings":";;;;;;;;;AAQO,MAAM,iBAAiBA,eAAM;AAAA,EAChC,CAAC,EAAE,UAAU,WAAW,GAAG,kBAAA,GAAqB,QAC5C;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,KAAI;AAAA,MACJ,MAAM,UAAU;AAAA,MAChB,QAAQ,gBAAgB;AAAA,MACxB,WAAW,KAAK,WAAW,OAAO,cAAc;AAAA,MAC/C,GAAG;AAAA,MACJ;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGb;AAEA,eAAe,cAAc;"}
@@ -1,17 +1,21 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
+ import React__default from "react";
2
3
  import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
3
- const filterPanel = "filterPanel__7155c739";
4
+ const filterPanel = "filterPanel__8cd437e9";
4
5
  const styles = {
5
6
  filterPanel
6
7
  };
7
- const FilterPanel = ({ children, className, ...htmlDivAttributes }) => /* @__PURE__ */ jsx(
8
- "div",
9
- {
10
- className: clsx(styles.filterPanel, className),
11
- ...htmlDivAttributes,
12
- "data-tx": "1.44.0",
13
- children
14
- }
8
+ const FilterPanel = React__default.forwardRef(
9
+ ({ children, className, ...htmlDivAttributes }, ref) => /* @__PURE__ */ jsx(
10
+ "div",
11
+ {
12
+ className: clsx(styles.filterPanel, className),
13
+ ...htmlDivAttributes,
14
+ "data-tx": "1.45.0",
15
+ ref,
16
+ children
17
+ }
18
+ )
15
19
  );
16
20
  FilterPanel.displayName = "FilterPanel";
17
21
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterPanel.js","sources":["../../../src/components/Table/FilterPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport styles from \"./styles/FilterPanel.module.less\";\nimport { IFilterPanelProps } from \"@sberbusiness/triplex-next/components/Table/TableBasic/types\";\n\n/** Компонент панели под элементы фильтрации данных для таблицы. */\nexport const FilterPanel: React.FC<IFilterPanelProps> = ({ children, className, ...htmlDivAttributes }) => (\n <div\n className={clsx(styles.filterPanel, className)}\n {...htmlDivAttributes}\n data-tx={process.env.npm_package_version}\n >\n {children}\n </div>\n);\n\nFilterPanel.displayName = \"FilterPanel\";\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,cAA2C,CAAC,EAAE,UAAU,WAAW,GAAG,wBAC/E;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,WAAW,KAAK,OAAO,aAAa,SAAS;AAAA,IAC5C,GAAG;AAAA,IACJ,WAAS;AAAA,IAER;AAAA,EAAA;AACL;AAGJ,YAAY,cAAc;"}
1
+ {"version":3,"file":"FilterPanel.js","sources":["../../../src/components/Table/FilterPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport styles from \"./styles/FilterPanel.module.less\";\nimport { IFilterPanelProps } from \"@sberbusiness/triplex-next/components/Table/TableBasic/types\";\n\n/** Компонент панели под элементы фильтрации данных для таблицы. */\nexport const FilterPanel = React.forwardRef<HTMLDivElement, IFilterPanelProps>(\n ({ children, className, ...htmlDivAttributes }, ref) => (\n <div\n className={clsx(styles.filterPanel, className)}\n {...htmlDivAttributes}\n data-tx={process.env.npm_package_version}\n ref={ref}\n >\n {children}\n </div>\n ),\n);\n\nFilterPanel.displayName = \"FilterPanel\";\n"],"names":["React"],"mappings":";;;;;;;AAMO,MAAM,cAAcA,eAAM;AAAA,EAC7B,CAAC,EAAE,UAAU,WAAW,GAAG,kBAAA,GAAqB,QAC5C;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW,KAAK,OAAO,aAAa,SAAS;AAAA,MAC5C,GAAG;AAAA,MACJ,WAAS;AAAA,MACT;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGb;AAEA,YAAY,cAAc;"}