@vkontakte/vkui 5.5.4 → 5.6.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 (1179) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
  4. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  7. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  8. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
  9. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  10. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  11. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  12. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  13. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  14. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  15. package/dist/cjs/components/AppRoot/AppRoot.js +6 -5
  16. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  17. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  18. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  19. package/dist/cjs/components/AppRoot/ScrollContext.js +5 -3
  20. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  21. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  22. package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
  23. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  24. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  25. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  26. package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
  27. package/dist/cjs/components/Avatar/helpers.js.map +1 -1
  28. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  29. package/dist/cjs/components/Banner/Banner.d.ts +5 -1
  30. package/dist/cjs/components/Banner/Banner.js +4 -3
  31. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  32. package/dist/cjs/components/BaseGallery/BaseGallery.js +15 -9
  33. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  34. package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
  35. package/dist/cjs/components/Button/Button.d.ts +2 -1
  36. package/dist/cjs/components/Button/Button.js +5 -3
  37. package/dist/cjs/components/Button/Button.js.map +1 -1
  38. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  39. package/dist/cjs/components/Calendar/Calendar.js +2 -1
  40. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  41. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -2
  42. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  43. package/dist/cjs/components/CalendarDays/CalendarDays.js +6 -5
  44. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  45. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  46. package/dist/cjs/components/CalendarRange/CalendarRange.js +16 -8
  47. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  48. package/dist/cjs/components/CalendarTime/CalendarTime.js +4 -2
  49. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  50. package/dist/cjs/components/Card/Card.js.map +1 -1
  51. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  52. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  53. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  54. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  55. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  56. package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
  57. package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
  58. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  59. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  60. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  61. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  62. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +10 -4
  63. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  64. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  65. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +20 -9
  66. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  67. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  68. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  69. package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  70. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  71. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  72. package/dist/cjs/components/CustomScrollView/CustomScrollView.js +2 -1
  73. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  74. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  75. package/dist/cjs/components/CustomSelect/CustomSelect.js +15 -8
  76. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  77. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  78. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
  79. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  80. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  81. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  82. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  83. package/dist/cjs/components/DatePicker/DatePicker.js +8 -5
  84. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  85. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +11 -7
  86. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  87. package/dist/cjs/components/Div/Div.js.map +1 -1
  88. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  89. package/dist/cjs/components/Epic/Epic.d.ts +1 -0
  90. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  91. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  92. package/dist/cjs/components/File/File.js.map +1 -1
  93. package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -1
  94. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  95. package/dist/cjs/components/FocusTrap/FocusTrap.js +4 -3
  96. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  97. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  98. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  99. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  100. package/dist/cjs/components/FormItem/FormItem.js +2 -1
  101. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  102. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  103. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  104. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  105. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  106. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  107. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  108. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  109. package/dist/cjs/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  110. package/dist/cjs/components/Group/Group.d.ts +8 -8
  111. package/dist/cjs/components/Group/Group.js +1 -1
  112. package/dist/cjs/components/Group/Group.js.map +1 -1
  113. package/dist/cjs/components/Header/Header.js.map +1 -1
  114. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  115. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  116. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js +56 -0
  117. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  118. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +2 -2
  119. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  120. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  121. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  122. package/dist/cjs/components/Image/Image.js.map +1 -1
  123. package/dist/cjs/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  124. package/dist/cjs/components/ImageBase/ImageBase.js +4 -2
  125. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  126. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  127. package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  128. package/dist/cjs/components/ImageBase/context.js.map +1 -1
  129. package/dist/cjs/components/ImageBase/helpers.js.map +1 -1
  130. package/dist/cjs/components/ImageBase/validators.js +3 -4
  131. package/dist/cjs/components/ImageBase/validators.js.map +1 -1
  132. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  133. package/dist/cjs/components/Input/Input.js.map +1 -1
  134. package/dist/cjs/components/InputLike/InputLike.js +6 -4
  135. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  136. package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
  137. package/dist/cjs/components/Link/Link.js.map +1 -1
  138. package/dist/cjs/components/List/List.js.map +1 -1
  139. package/dist/cjs/components/List/ListContext.js.map +1 -1
  140. package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
  141. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  142. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  143. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -8
  144. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  145. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  146. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  147. package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -1
  148. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  149. package/dist/cjs/components/ModalRoot/ModalRoot.js +21 -15
  150. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  151. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  152. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  153. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +12 -6
  154. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  155. package/dist/cjs/components/ModalRoot/types.d.ts +4 -2
  156. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  157. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  158. package/dist/cjs/components/ModalRoot/useModalRootContext.js.map +1 -1
  159. package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
  160. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  161. package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  162. package/dist/cjs/components/Pagination/Pagination.js +2 -1
  163. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  164. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  165. package/dist/cjs/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  166. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  167. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  168. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  169. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  170. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  171. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  172. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  173. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  174. package/dist/cjs/components/PanelSpinner/PanelSpinner.js.map +1 -1
  175. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  176. package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
  177. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  178. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  179. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  180. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  181. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
  182. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  183. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  184. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -1
  185. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  186. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  187. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  188. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  189. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  190. package/dist/cjs/components/Removable/Removable.js +2 -2
  191. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  192. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  193. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  194. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  195. package/dist/cjs/components/Root/Root.d.ts +1 -0
  196. package/dist/cjs/components/Root/Root.js.map +1 -1
  197. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  198. package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
  199. package/dist/cjs/components/Search/Search.js +2 -2
  200. package/dist/cjs/components/Search/Search.js.map +1 -1
  201. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  202. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  203. package/dist/cjs/components/Select/Select.js.map +1 -1
  204. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  205. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  206. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  207. package/dist/cjs/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  208. package/dist/cjs/components/SimpleCell/Chevron/Chevron.js +27 -0
  209. package/dist/cjs/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  210. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +6 -2
  211. package/dist/cjs/components/SimpleCell/SimpleCell.js +16 -5
  212. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  213. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  214. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  215. package/dist/cjs/components/Slider/helpers.js.map +1 -1
  216. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  217. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  218. package/dist/cjs/components/Spinner/Spinner.d.ts +2 -1
  219. package/dist/cjs/components/Spinner/Spinner.js +19 -4
  220. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  221. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  222. package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -1
  223. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  224. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  225. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  226. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  227. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  228. package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
  229. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  230. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  231. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  232. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  233. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  234. package/dist/cjs/components/Textarea/Textarea.js +2 -1
  235. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  236. package/dist/cjs/components/Tooltip/Tooltip.js +4 -2
  237. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  238. package/dist/cjs/components/Tooltip/TooltipContainer.js.map +1 -1
  239. package/dist/cjs/components/Touch/Touch.js +1 -1
  240. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  241. package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
  242. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  243. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  244. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  245. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  246. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  247. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  248. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  249. package/dist/cjs/components/Typography/Typography.js.map +1 -1
  250. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  251. package/dist/cjs/components/View/View.d.ts +1 -0
  252. package/dist/cjs/components/View/View.js +16 -8
  253. package/dist/cjs/components/View/View.js.map +1 -1
  254. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  255. package/dist/cjs/components/View/utils.js +2 -2
  256. package/dist/cjs/components/View/utils.js.map +1 -1
  257. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  258. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  259. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  260. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  261. package/dist/cjs/helpers/appearance.js.map +1 -1
  262. package/dist/cjs/helpers/generateVKUITokensClassName.js.map +1 -1
  263. package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
  264. package/dist/cjs/helpers/math.js.map +1 -1
  265. package/dist/cjs/helpers/range.js.map +1 -1
  266. package/dist/cjs/hoc/withContext.js.map +1 -1
  267. package/dist/cjs/hoc/withInsets.js.map +1 -1
  268. package/dist/cjs/hoc/withPlatform.js.map +1 -1
  269. package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
  270. package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  271. package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  272. package/dist/cjs/hooks/useAdaptivityConditionalRender/index.js.map +1 -1
  273. package/dist/cjs/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  274. package/dist/cjs/hooks/useAdaptivityHasHover.js.map +1 -1
  275. package/dist/cjs/hooks/useAdaptivityHasPointer.js.map +1 -1
  276. package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  277. package/dist/cjs/hooks/useAppearance.js.map +1 -1
  278. package/dist/cjs/hooks/useAutoDetectAppearance.js +2 -1
  279. package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
  280. package/dist/cjs/hooks/useBooleanState.js.map +1 -1
  281. package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
  282. package/dist/cjs/hooks/useCalendar.js +6 -3
  283. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  284. package/dist/cjs/hooks/useChipsInput.js +2 -1
  285. package/dist/cjs/hooks/useChipsInput.js.map +1 -1
  286. package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
  287. package/dist/cjs/hooks/useDateInput.js +5 -3
  288. package/dist/cjs/hooks/useDateInput.js.map +1 -1
  289. package/dist/cjs/hooks/useEffectDev.js.map +1 -1
  290. package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
  291. package/dist/cjs/hooks/useEventListener.js.map +1 -1
  292. package/dist/cjs/hooks/useExternRef.js.map +1 -1
  293. package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
  294. package/dist/cjs/hooks/useFocusWithin.js.map +1 -1
  295. package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
  296. package/dist/cjs/hooks/useId.js.map +1 -1
  297. package/dist/cjs/hooks/useInsets.js.map +1 -1
  298. package/dist/cjs/hooks/useIsClient.js.map +1 -1
  299. package/dist/cjs/hooks/useKeyboard.js +4 -4
  300. package/dist/cjs/hooks/useKeyboard.js.map +1 -1
  301. package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
  302. package/dist/cjs/hooks/useMediaQueries.js.map +1 -1
  303. package/dist/cjs/hooks/useObjectMemo.js.map +1 -1
  304. package/dist/cjs/hooks/useOrientationChange.js +1 -1
  305. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  306. package/dist/cjs/hooks/usePagination.js.map +1 -1
  307. package/dist/cjs/hooks/usePatchChildrenRef.js +2 -1
  308. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
  309. package/dist/cjs/hooks/usePlatform.js.map +1 -1
  310. package/dist/cjs/hooks/usePrevious.js.map +1 -1
  311. package/dist/cjs/hooks/useTimeout.js +2 -1
  312. package/dist/cjs/hooks/useTimeout.js.map +1 -1
  313. package/dist/cjs/hooks/useTodayDate.js.map +1 -1
  314. package/dist/cjs/hooks/useWaitTransitionFinish.js +4 -2
  315. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  316. package/dist/cjs/index.d.ts +3 -1
  317. package/dist/cjs/index.js +4 -0
  318. package/dist/cjs/index.js.map +1 -1
  319. package/dist/cjs/lib/SSR.js.map +1 -1
  320. package/dist/cjs/lib/accessibility.js.map +1 -1
  321. package/dist/cjs/lib/adaptivity/constants.js.map +1 -1
  322. package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
  323. package/dist/cjs/lib/animate.js.map +1 -1
  324. package/dist/cjs/lib/browser.js.map +1 -1
  325. package/dist/cjs/lib/calendar.js.map +1 -1
  326. package/dist/cjs/lib/callMultiple.js.map +1 -1
  327. package/dist/cjs/lib/date.js.map +1 -1
  328. package/dist/cjs/lib/dom.js.map +1 -1
  329. package/dist/cjs/lib/floating/adapters.js.map +1 -1
  330. package/dist/cjs/lib/floating/functions.js.map +1 -1
  331. package/dist/cjs/lib/floating/index.js.map +1 -1
  332. package/dist/cjs/lib/fx.js.map +1 -1
  333. package/dist/cjs/lib/getNavId.js.map +1 -1
  334. package/dist/cjs/lib/isRefObject.js.map +1 -1
  335. package/dist/cjs/lib/matchMedia.js.map +1 -1
  336. package/dist/cjs/lib/offset.js +6 -5
  337. package/dist/cjs/lib/offset.js.map +1 -1
  338. package/dist/cjs/lib/platform.js.map +1 -1
  339. package/dist/cjs/lib/polyfills.js.map +1 -1
  340. package/dist/cjs/lib/removeObjectKeys.js.map +1 -1
  341. package/dist/cjs/lib/select.js +2 -2
  342. package/dist/cjs/lib/select.js.map +1 -1
  343. package/dist/cjs/lib/styles.js.map +1 -1
  344. package/dist/cjs/lib/supportEvents.js.map +1 -1
  345. package/dist/cjs/lib/taptic.js.map +1 -1
  346. package/dist/cjs/lib/testing.js.map +1 -1
  347. package/dist/cjs/lib/tokensClassProvider.js.map +1 -1
  348. package/dist/cjs/lib/touch.js.map +1 -1
  349. package/dist/cjs/lib/useIsomorphicLayoutEffect.js.map +1 -1
  350. package/dist/cjs/lib/utils.js.map +1 -1
  351. package/dist/cjs/lib/warnOnce.js.map +1 -1
  352. package/dist/cjs/shared/breakpoints.js.map +1 -1
  353. package/dist/components/Accordion/Accordion.js.map +1 -1
  354. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  355. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  356. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  357. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
  358. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  359. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  360. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  361. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  362. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  363. package/dist/components/Alert/Alert.js.map +1 -1
  364. package/dist/components/AppRoot/AppRoot.js +6 -5
  365. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  366. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  367. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  368. package/dist/components/AppRoot/ScrollContext.js +5 -3
  369. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  370. package/dist/components/Avatar/Avatar.js.map +1 -1
  371. package/dist/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  372. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  373. package/dist/components/Avatar/helpers.js.map +1 -1
  374. package/dist/components/Banner/Banner.d.ts +5 -1
  375. package/dist/components/Banner/Banner.js +4 -3
  376. package/dist/components/Banner/Banner.js.map +1 -1
  377. package/dist/components/BaseGallery/BaseGallery.js +15 -9
  378. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  379. package/dist/components/BaseGallery/helpers.js.map +1 -1
  380. package/dist/components/Button/Button.d.ts +2 -1
  381. package/dist/components/Button/Button.js +5 -3
  382. package/dist/components/Button/Button.js.map +1 -1
  383. package/dist/components/Calendar/Calendar.js +2 -1
  384. package/dist/components/Calendar/Calendar.js.map +1 -1
  385. package/dist/components/CalendarDay/CalendarDay.js +4 -2
  386. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  387. package/dist/components/CalendarDays/CalendarDays.js +6 -5
  388. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  389. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  390. package/dist/components/CalendarRange/CalendarRange.js +16 -8
  391. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  392. package/dist/components/CalendarTime/CalendarTime.js +4 -2
  393. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  394. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  395. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  396. package/dist/components/Cell/Cell.js.map +1 -1
  397. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  398. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  399. package/dist/components/Cell/useDraggable.js.map +1 -1
  400. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  401. package/dist/components/Chip/Chip.js.map +1 -1
  402. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  403. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  404. package/dist/components/ChipsInputBase/ChipsInputBase.js +10 -4
  405. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  406. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  407. package/dist/components/ChipsSelect/ChipsSelect.js +20 -9
  408. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  409. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  410. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  411. package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  412. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  413. package/dist/components/Counter/Counter.js.map +1 -1
  414. package/dist/components/CustomScrollView/CustomScrollView.js +2 -1
  415. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  416. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  417. package/dist/components/CustomSelect/CustomSelect.js +15 -8
  418. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  419. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
  420. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  421. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  422. package/dist/components/DateInput/DateInput.js +4 -2
  423. package/dist/components/DateInput/DateInput.js.map +1 -1
  424. package/dist/components/DatePicker/DatePicker.js +8 -5
  425. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  426. package/dist/components/DateRangeInput/DateRangeInput.js +11 -7
  427. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  428. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  429. package/dist/components/Epic/Epic.d.ts +1 -0
  430. package/dist/components/Epic/Epic.js.map +1 -1
  431. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  432. package/dist/components/File/File.js.map +1 -1
  433. package/dist/components/FixedLayout/FixedLayout.js +2 -1
  434. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  435. package/dist/components/FocusTrap/FocusTrap.js +4 -3
  436. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  437. package/dist/components/FormField/FormField.js.map +1 -1
  438. package/dist/components/FormItem/FormItem.js +2 -1
  439. package/dist/components/FormItem/FormItem.js.map +1 -1
  440. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  441. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  442. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  443. package/dist/components/Gallery/Gallery.js.map +1 -1
  444. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  445. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  446. package/dist/components/Group/Group.d.ts +8 -8
  447. package/dist/components/Group/Group.js +1 -1
  448. package/dist/components/Group/Group.js.map +1 -1
  449. package/dist/components/Header/Header.js.map +1 -1
  450. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  451. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js +45 -0
  452. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  453. package/dist/components/HorizontalScroll/HorizontalScroll.js +2 -2
  454. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  455. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  456. package/dist/components/IconButton/IconButton.js.map +1 -1
  457. package/dist/components/Image/Image.js.map +1 -1
  458. package/dist/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  459. package/dist/components/ImageBase/ImageBase.js +4 -2
  460. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  461. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  462. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  463. package/dist/components/ImageBase/context.js.map +1 -1
  464. package/dist/components/ImageBase/helpers.js.map +1 -1
  465. package/dist/components/ImageBase/validators.js +3 -4
  466. package/dist/components/ImageBase/validators.js.map +1 -1
  467. package/dist/components/Input/Input.js.map +1 -1
  468. package/dist/components/InputLike/InputLike.js +6 -4
  469. package/dist/components/InputLike/InputLike.js.map +1 -1
  470. package/dist/components/Link/Link.js.map +1 -1
  471. package/dist/components/List/List.js.map +1 -1
  472. package/dist/components/List/ListContext.js.map +1 -1
  473. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  474. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  475. package/dist/components/ModalCardBase/ModalCardBase.js +9 -8
  476. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  477. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  478. package/dist/components/ModalPage/ModalPageContext.js.map +1 -1
  479. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  480. package/dist/components/ModalRoot/ModalRoot.js +21 -15
  481. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  482. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  483. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  484. package/dist/components/ModalRoot/ModalRootDesktop.js +12 -6
  485. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  486. package/dist/components/ModalRoot/types.d.ts +4 -2
  487. package/dist/components/ModalRoot/types.js.map +1 -1
  488. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  489. package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
  490. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  491. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  492. package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  493. package/dist/components/Pagination/Pagination.js +2 -1
  494. package/dist/components/Pagination/Pagination.js.map +1 -1
  495. package/dist/components/Panel/Panel.js.map +1 -1
  496. package/dist/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  497. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  498. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  499. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  500. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  501. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  502. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  503. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  504. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  505. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  506. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  507. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  508. package/dist/components/Popover/Popover.js.map +1 -1
  509. package/dist/components/Popper/Popper.js.map +1 -1
  510. package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
  511. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  512. package/dist/components/PullToRefresh/PullToRefresh.js +2 -1
  513. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  514. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  515. package/dist/components/Radio/Radio.js.map +1 -1
  516. package/dist/components/Removable/Removable.js +2 -2
  517. package/dist/components/Removable/Removable.js.map +1 -1
  518. package/dist/components/RichCell/RichCell.js.map +1 -1
  519. package/dist/components/Root/Root.d.ts +1 -0
  520. package/dist/components/Root/Root.js.map +1 -1
  521. package/dist/components/Search/Search.js +2 -2
  522. package/dist/components/Search/Search.js.map +1 -1
  523. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  524. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  525. package/dist/components/Select/Select.js.map +1 -1
  526. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  527. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  528. package/dist/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  529. package/dist/components/SimpleCell/Chevron/Chevron.js +16 -0
  530. package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  531. package/dist/components/SimpleCell/SimpleCell.d.ts +6 -2
  532. package/dist/components/SimpleCell/SimpleCell.js +16 -5
  533. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  534. package/dist/components/Slider/Slider.js.map +1 -1
  535. package/dist/components/Slider/helpers.js.map +1 -1
  536. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  537. package/dist/components/Spinner/Spinner.d.ts +2 -1
  538. package/dist/components/Spinner/Spinner.js +19 -4
  539. package/dist/components/Spinner/Spinner.js.map +1 -1
  540. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  541. package/dist/components/SplitCol/SplitColContext.js.map +1 -1
  542. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  543. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  544. package/dist/components/Switch/Switch.js.map +1 -1
  545. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  546. package/dist/components/TabbarItem/TabbarItem.js +1 -1
  547. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  548. package/dist/components/Tabs/Tabs.js.map +1 -1
  549. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  550. package/dist/components/Tappable/Tappable.js.map +1 -1
  551. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  552. package/dist/components/Textarea/Textarea.js +2 -1
  553. package/dist/components/Textarea/Textarea.js.map +1 -1
  554. package/dist/components/Tooltip/Tooltip.js +4 -2
  555. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  556. package/dist/components/Tooltip/TooltipContainer.js.map +1 -1
  557. package/dist/components/Touch/Touch.js +1 -1
  558. package/dist/components/Touch/Touch.js.map +1 -1
  559. package/dist/components/Touch/TouchContext.js.map +1 -1
  560. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  561. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  562. package/dist/components/Typography/Text/Text.js.map +1 -1
  563. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  564. package/dist/components/View/View.d.ts +1 -0
  565. package/dist/components/View/View.js +16 -8
  566. package/dist/components/View/View.js.map +1 -1
  567. package/dist/components/View/ViewInfinite.js.map +1 -1
  568. package/dist/components/View/utils.js +2 -2
  569. package/dist/components/View/utils.js.map +1 -1
  570. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  571. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  572. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  573. package/dist/components.css +10 -9
  574. package/dist/components.css.map +1 -1
  575. package/dist/components.js.tmp +3108 -2238
  576. package/dist/cssm/components/Accordion/Accordion.js +1 -1
  577. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  578. package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
  579. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  580. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
  581. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  582. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  583. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +3 -3
  584. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  585. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -3
  586. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  587. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +3 -3
  588. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  589. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +2 -2
  590. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  591. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  592. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +3 -3
  593. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  594. package/dist/cssm/components/Alert/Alert.js +6 -6
  595. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  596. package/dist/cssm/components/AppRoot/AppRoot.js +3 -3
  597. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  598. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  599. package/dist/cssm/components/AppRoot/AppRootPortal.js +2 -2
  600. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  601. package/dist/cssm/components/AppRoot/ScrollContext.js +5 -5
  602. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  603. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +1 -1
  604. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  605. package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
  606. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  607. package/dist/cssm/components/Avatar/Avatar.js +1 -1
  608. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  609. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js +2 -2
  610. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  611. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +2 -2
  612. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  613. package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
  614. package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
  615. package/dist/cssm/components/Avatar/helpers.js.map +1 -1
  616. package/dist/cssm/components/Badge/Badge.js +1 -1
  617. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  618. package/dist/cssm/components/Banner/Banner.d.ts +5 -1
  619. package/dist/cssm/components/Banner/Banner.js +2 -2
  620. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  621. package/dist/cssm/components/Banner/Banner.module.css +6 -1
  622. package/dist/cssm/components/BaseGallery/BaseGallery.js +3 -3
  623. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  624. package/dist/cssm/components/BaseGallery/helpers.js +4 -4
  625. package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
  626. package/dist/cssm/components/Button/Button.d.ts +2 -1
  627. package/dist/cssm/components/Button/Button.js +4 -3
  628. package/dist/cssm/components/Button/Button.js.map +1 -1
  629. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -1
  630. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  631. package/dist/cssm/components/Calendar/Calendar.js +2 -2
  632. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  633. package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
  634. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  635. package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
  636. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  637. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +7 -7
  638. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  639. package/dist/cssm/components/CalendarRange/CalendarRange.js +2 -2
  640. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  641. package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
  642. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  643. package/dist/cssm/components/Card/Card.js +1 -1
  644. package/dist/cssm/components/Card/Card.js.map +1 -1
  645. package/dist/cssm/components/CardGrid/CardGrid.js +2 -2
  646. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  647. package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
  648. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  649. package/dist/cssm/components/Cell/Cell.js +3 -3
  650. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  651. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +1 -1
  652. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  653. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +1 -1
  654. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  655. package/dist/cssm/components/Cell/useDraggable.js +1 -1
  656. package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
  657. package/dist/cssm/components/CellButton/CellButton.js +1 -1
  658. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  659. package/dist/cssm/components/Checkbox/Checkbox.js +3 -3
  660. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  661. package/dist/cssm/components/Chip/Chip.js +2 -2
  662. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  663. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
  664. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  665. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  666. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +9 -5
  667. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  668. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  669. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +13 -5
  670. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  671. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +2 -2
  672. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  673. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  674. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +1 -1
  675. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  676. package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
  677. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  678. package/dist/cssm/components/Counter/Counter.js +1 -1
  679. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  680. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +3 -3
  681. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  682. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +1 -1
  683. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  684. package/dist/cssm/components/CustomSelect/CustomSelect.js +4 -4
  685. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  686. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js +1 -1
  687. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  688. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -2
  689. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  690. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -2
  691. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  692. package/dist/cssm/components/DateInput/DateInput.js +3 -3
  693. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  694. package/dist/cssm/components/DatePicker/DatePicker.js +8 -8
  695. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  696. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -3
  697. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  698. package/dist/cssm/components/Div/Div.js +1 -1
  699. package/dist/cssm/components/Div/Div.js.map +1 -1
  700. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +2 -2
  701. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  702. package/dist/cssm/components/Epic/Epic.d.ts +1 -0
  703. package/dist/cssm/components/Epic/Epic.js +1 -1
  704. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  705. package/dist/cssm/components/Epic/ScrollSaver.js +2 -2
  706. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  707. package/dist/cssm/components/File/File.js +1 -1
  708. package/dist/cssm/components/File/File.js.map +1 -1
  709. package/dist/cssm/components/FixedLayout/FixedLayout.js +3 -3
  710. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  711. package/dist/cssm/components/FocusTrap/FocusTrap.js +4 -4
  712. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  713. package/dist/cssm/components/FocusVisible/FocusVisible.js +1 -1
  714. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  715. package/dist/cssm/components/Footer/Footer.js +1 -1
  716. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  717. package/dist/cssm/components/FormField/FormField.js +2 -2
  718. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  719. package/dist/cssm/components/FormItem/FormItem.js +2 -2
  720. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  721. package/dist/cssm/components/FormLayout/FormLayout.js +1 -1
  722. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  723. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -2
  724. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  725. package/dist/cssm/components/FormStatus/FormStatus.js +1 -1
  726. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  727. package/dist/cssm/components/Gallery/Gallery.js +1 -1
  728. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  729. package/dist/cssm/components/Gradient/Gradient.js +1 -1
  730. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  731. package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
  732. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  733. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js +2 -2
  734. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  735. package/dist/cssm/components/Group/Group.d.ts +8 -8
  736. package/dist/cssm/components/Group/Group.js +4 -4
  737. package/dist/cssm/components/Group/Group.js.map +1 -1
  738. package/dist/cssm/components/Group/Group.module.css +2 -0
  739. package/dist/cssm/components/Header/Header.js +2 -2
  740. package/dist/cssm/components/Header/Header.js.map +1 -1
  741. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -3
  742. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  743. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +0 -5
  744. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  745. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js +35 -0
  746. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  747. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.module.css +47 -0
  748. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +2 -2
  749. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  750. package/dist/cssm/components/HoverPopper/HoverPopper.js +1 -1
  751. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  752. package/dist/cssm/components/IconButton/IconButton.js +2 -2
  753. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  754. package/dist/cssm/components/Image/Image.js +1 -1
  755. package/dist/cssm/components/Image/Image.js.map +1 -1
  756. package/dist/cssm/components/Image/ImageBadge/ImageBadge.js +2 -2
  757. package/dist/cssm/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  758. package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
  759. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  760. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +2 -2
  761. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  762. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +2 -2
  763. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  764. package/dist/cssm/components/ImageBase/context.js.map +1 -1
  765. package/dist/cssm/components/ImageBase/helpers.js.map +1 -1
  766. package/dist/cssm/components/ImageBase/validators.js +3 -4
  767. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  768. package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
  769. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  770. package/dist/cssm/components/Input/Input.js +2 -2
  771. package/dist/cssm/components/Input/Input.js.map +1 -1
  772. package/dist/cssm/components/InputLike/InputLike.js +1 -1
  773. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  774. package/dist/cssm/components/InputLike/InputLikeDivider.js +1 -1
  775. package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
  776. package/dist/cssm/components/Link/Link.js +1 -1
  777. package/dist/cssm/components/Link/Link.js.map +1 -1
  778. package/dist/cssm/components/List/List.js +1 -1
  779. package/dist/cssm/components/List/List.js.map +1 -1
  780. package/dist/cssm/components/List/ListContext.js.map +1 -1
  781. package/dist/cssm/components/LocaleProvider/LocaleProvider.js +1 -1
  782. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  783. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
  784. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  785. package/dist/cssm/components/ModalCard/ModalCard.js +3 -3
  786. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  787. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +11 -10
  788. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  789. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +4 -5
  790. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
  791. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  792. package/dist/cssm/components/ModalPage/ModalPage.js +4 -4
  793. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  794. package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -1
  795. package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -1
  796. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  797. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  798. package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -12
  799. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  800. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +1 -1
  801. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  802. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  803. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +7 -7
  804. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  805. package/dist/cssm/components/ModalRoot/types.d.ts +4 -2
  806. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  807. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  808. package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
  809. package/dist/cssm/components/ModalRoot/withModalRootContext.js +1 -1
  810. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  811. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
  812. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  813. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +1 -1
  814. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  815. package/dist/cssm/components/Pagination/Pagination.js +2 -2
  816. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  817. package/dist/cssm/components/Panel/Panel.js +2 -2
  818. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  819. package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js +1 -1
  820. package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  821. package/dist/cssm/components/PanelHeader/PanelHeader.js +9 -9
  822. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  823. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -2
  824. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  825. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
  826. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  827. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  828. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  829. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +2 -2
  830. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  831. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  832. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  833. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  834. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  835. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  836. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  837. package/dist/cssm/components/PanelSpinner/PanelSpinner.js +1 -1
  838. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  839. package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
  840. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  841. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  842. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  843. package/dist/cssm/components/PopoutRoot/PopoutRoot.js +5 -5
  844. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  845. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -2
  846. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  847. package/dist/cssm/components/Popover/Popover.js +3 -3
  848. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  849. package/dist/cssm/components/Popper/Popper.js +3 -3
  850. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  851. package/dist/cssm/components/PopperArrow/PopperArrow.js +1 -1
  852. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
  853. package/dist/cssm/components/Progress/Progress.js +1 -1
  854. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  855. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
  856. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  857. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +6 -6
  858. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  859. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +1 -1
  860. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  861. package/dist/cssm/components/Radio/Radio.js +2 -2
  862. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  863. package/dist/cssm/components/RadioGroup/RadioGroup.js +1 -1
  864. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  865. package/dist/cssm/components/RangeSlider/RangeSlider.js +2 -2
  866. package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
  867. package/dist/cssm/components/Removable/Removable.js +4 -4
  868. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  869. package/dist/cssm/components/RichCell/RichCell.js +2 -2
  870. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  871. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +1 -1
  872. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  873. package/dist/cssm/components/RichTooltip/RichTooltip.js +1 -1
  874. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  875. package/dist/cssm/components/Root/Root.d.ts +1 -0
  876. package/dist/cssm/components/Root/Root.js +5 -5
  877. package/dist/cssm/components/Root/Root.js.map +1 -1
  878. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -1
  879. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  880. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +3 -3
  881. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  882. package/dist/cssm/components/Search/Search.js +3 -3
  883. package/dist/cssm/components/Search/Search.js.map +1 -1
  884. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +3 -3
  885. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  886. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +3 -3
  887. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  888. package/dist/cssm/components/Select/Select.js +3 -3
  889. package/dist/cssm/components/Select/Select.js.map +1 -1
  890. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
  891. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  892. package/dist/cssm/components/SelectTypography/SelectTypography.js +2 -2
  893. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  894. package/dist/cssm/components/Separator/Separator.js +1 -1
  895. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  896. package/dist/cssm/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  897. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js +12 -0
  898. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  899. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +6 -2
  900. package/dist/cssm/components/SimpleCell/SimpleCell.js +15 -5
  901. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  902. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +5 -6
  903. package/dist/cssm/components/Slider/Slider.js +7 -7
  904. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  905. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +2 -2
  906. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  907. package/dist/cssm/components/Slider/helpers.js.map +1 -1
  908. package/dist/cssm/components/Snackbar/Snackbar.js +4 -4
  909. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  910. package/dist/cssm/components/Spacing/Spacing.js +1 -1
  911. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  912. package/dist/cssm/components/Spinner/Spinner.d.ts +2 -1
  913. package/dist/cssm/components/Spinner/Spinner.js +19 -5
  914. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  915. package/dist/cssm/components/Spinner/Spinner.module.css +0 -19
  916. package/dist/cssm/components/SplitCol/SplitCol.js +3 -3
  917. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  918. package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
  919. package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
  920. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  921. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
  922. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  923. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -3
  924. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  925. package/dist/cssm/components/Switch/Switch.js +3 -3
  926. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  927. package/dist/cssm/components/Tabbar/Tabbar.js +1 -1
  928. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  929. package/dist/cssm/components/TabbarItem/TabbarItem.js +2 -2
  930. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  931. package/dist/cssm/components/Tabs/Tabs.js +2 -2
  932. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  933. package/dist/cssm/components/TabsItem/TabsItem.js +3 -3
  934. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  935. package/dist/cssm/components/Tappable/Tappable.js +10 -10
  936. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  937. package/dist/cssm/components/Tappable/Tappable.module.css +2 -0
  938. package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
  939. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  940. package/dist/cssm/components/Textarea/Textarea.js +2 -2
  941. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  942. package/dist/cssm/components/Tooltip/Tooltip.js +5 -5
  943. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  944. package/dist/cssm/components/Tooltip/TooltipContainer.js +1 -1
  945. package/dist/cssm/components/Tooltip/TooltipContainer.js.map +1 -1
  946. package/dist/cssm/components/Touch/Touch.js +4 -4
  947. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  948. package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
  949. package/dist/cssm/components/Typography/Caption/Caption.js +1 -1
  950. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  951. package/dist/cssm/components/Typography/Footnote/Footnote.js +1 -1
  952. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  953. package/dist/cssm/components/Typography/Headline/Headline.js +2 -2
  954. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  955. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +1 -1
  956. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  957. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -2
  958. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  959. package/dist/cssm/components/Typography/Text/Text.js +2 -2
  960. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  961. package/dist/cssm/components/Typography/Title/Title.js +1 -1
  962. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  963. package/dist/cssm/components/Typography/Typography.js +1 -1
  964. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  965. package/dist/cssm/components/UsersStack/UsersStack.js +2 -2
  966. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  967. package/dist/cssm/components/View/View.d.ts +1 -0
  968. package/dist/cssm/components/View/View.js +3 -3
  969. package/dist/cssm/components/View/View.js.map +1 -1
  970. package/dist/cssm/components/View/ViewInfinite.js +2 -2
  971. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  972. package/dist/cssm/components/View/utils.js.map +1 -1
  973. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  974. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  975. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -1
  976. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  977. package/dist/cssm/components/WriteBar/WriteBar.js +1 -1
  978. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  979. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
  980. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  981. package/dist/cssm/helpers/appearance.js +1 -1
  982. package/dist/cssm/helpers/appearance.js.map +1 -1
  983. package/dist/cssm/helpers/generateVKUITokensClassName.js.map +1 -1
  984. package/dist/cssm/helpers/math.js.map +1 -1
  985. package/dist/cssm/helpers/range.js.map +1 -1
  986. package/dist/cssm/hoc/withContext.js.map +1 -1
  987. package/dist/cssm/hoc/withPlatform.js +1 -1
  988. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  989. package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
  990. package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  991. package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  992. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +1 -1
  993. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  994. package/dist/cssm/hooks/useAdaptivityHasHover.js +1 -1
  995. package/dist/cssm/hooks/useAdaptivityHasHover.js.map +1 -1
  996. package/dist/cssm/hooks/useAdaptivityHasPointer.js +1 -1
  997. package/dist/cssm/hooks/useAdaptivityHasPointer.js.map +1 -1
  998. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +1 -1
  999. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1000. package/dist/cssm/hooks/useAppearance.js +1 -1
  1001. package/dist/cssm/hooks/useAppearance.js.map +1 -1
  1002. package/dist/cssm/hooks/useAutoDetectAppearance.js +2 -2
  1003. package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
  1004. package/dist/cssm/hooks/useBooleanState.js.map +1 -1
  1005. package/dist/cssm/hooks/useBridgeAdaptivity.js +2 -2
  1006. package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
  1007. package/dist/cssm/hooks/useCalendar.js +1 -1
  1008. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  1009. package/dist/cssm/hooks/useChipsInput.js +1 -1
  1010. package/dist/cssm/hooks/useChipsInput.js.map +1 -1
  1011. package/dist/cssm/hooks/useChipsSelect.js +2 -2
  1012. package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
  1013. package/dist/cssm/hooks/useDateInput.js +4 -4
  1014. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  1015. package/dist/cssm/hooks/useEffectDev.js.map +1 -1
  1016. package/dist/cssm/hooks/useEnsuredControl.js +2 -2
  1017. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  1018. package/dist/cssm/hooks/useEventListener.js.map +1 -1
  1019. package/dist/cssm/hooks/useExternRef.js.map +1 -1
  1020. package/dist/cssm/hooks/useFocusVisible.js +1 -1
  1021. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  1022. package/dist/cssm/hooks/useFocusWithin.js +1 -1
  1023. package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
  1024. package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
  1025. package/dist/cssm/hooks/useId.js.map +1 -1
  1026. package/dist/cssm/hooks/useInsets.js +2 -2
  1027. package/dist/cssm/hooks/useInsets.js.map +1 -1
  1028. package/dist/cssm/hooks/useIsClient.js.map +1 -1
  1029. package/dist/cssm/hooks/useKeyboard.js +2 -2
  1030. package/dist/cssm/hooks/useKeyboard.js.map +1 -1
  1031. package/dist/cssm/hooks/useKeyboardInputTracker.js +1 -1
  1032. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  1033. package/dist/cssm/hooks/useMediaQueries.js +1 -1
  1034. package/dist/cssm/hooks/useMediaQueries.js.map +1 -1
  1035. package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
  1036. package/dist/cssm/hooks/useOrientationChange.js +1 -1
  1037. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  1038. package/dist/cssm/hooks/usePagination.js +1 -1
  1039. package/dist/cssm/hooks/usePagination.js.map +1 -1
  1040. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
  1041. package/dist/cssm/hooks/usePlatform.js +1 -1
  1042. package/dist/cssm/hooks/usePlatform.js.map +1 -1
  1043. package/dist/cssm/hooks/usePrevious.js.map +1 -1
  1044. package/dist/cssm/hooks/useTimeout.js +1 -1
  1045. package/dist/cssm/hooks/useTimeout.js.map +1 -1
  1046. package/dist/cssm/hooks/useTodayDate.js +1 -1
  1047. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  1048. package/dist/cssm/hooks/useWaitTransitionFinish.js +1 -1
  1049. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  1050. package/dist/cssm/index.d.ts +3 -1
  1051. package/dist/cssm/index.js +1 -0
  1052. package/dist/cssm/index.js.map +1 -1
  1053. package/dist/cssm/lib/SSR.js +1 -1
  1054. package/dist/cssm/lib/SSR.js.map +1 -1
  1055. package/dist/cssm/lib/accessibility.js +2 -2
  1056. package/dist/cssm/lib/accessibility.js.map +1 -1
  1057. package/dist/cssm/lib/adaptivity/constants.js.map +1 -1
  1058. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  1059. package/dist/cssm/lib/animate.js +1 -1
  1060. package/dist/cssm/lib/animate.js.map +1 -1
  1061. package/dist/cssm/lib/browser.js +1 -1
  1062. package/dist/cssm/lib/browser.js.map +1 -1
  1063. package/dist/cssm/lib/calendar.js.map +1 -1
  1064. package/dist/cssm/lib/callMultiple.js.map +1 -1
  1065. package/dist/cssm/lib/date.js.map +1 -1
  1066. package/dist/cssm/lib/dom.js.map +1 -1
  1067. package/dist/cssm/lib/floating/adapters.js +1 -1
  1068. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  1069. package/dist/cssm/lib/floating/functions.js.map +1 -1
  1070. package/dist/cssm/lib/fx.js.map +1 -1
  1071. package/dist/cssm/lib/getNavId.js.map +1 -1
  1072. package/dist/cssm/lib/isRefObject.js.map +1 -1
  1073. package/dist/cssm/lib/matchMedia.js.map +1 -1
  1074. package/dist/cssm/lib/platform.js.map +1 -1
  1075. package/dist/cssm/lib/removeObjectKeys.js.map +1 -1
  1076. package/dist/cssm/lib/select.js.map +1 -1
  1077. package/dist/cssm/lib/styles.js.map +1 -1
  1078. package/dist/cssm/lib/supportEvents.js.map +1 -1
  1079. package/dist/cssm/lib/taptic.js.map +1 -1
  1080. package/dist/cssm/lib/testing.js.map +1 -1
  1081. package/dist/cssm/lib/tokensClassProvider.js +1 -1
  1082. package/dist/cssm/lib/tokensClassProvider.js.map +1 -1
  1083. package/dist/cssm/lib/touch.js.map +1 -1
  1084. package/dist/cssm/lib/useIsomorphicLayoutEffect.js.map +1 -1
  1085. package/dist/cssm/lib/utils.js.map +1 -1
  1086. package/dist/cssm/lib/warnOnce.js.map +1 -1
  1087. package/dist/cssm/shared/breakpoints.js.map +1 -1
  1088. package/dist/cssm/styles/constants.css +3 -0
  1089. package/dist/cssm/styles/customMedias.generated.css +23 -0
  1090. package/dist/cssm/styles/themes.css +3 -3
  1091. package/dist/helpers/appearance.js.map +1 -1
  1092. package/dist/helpers/generateVKUITokensClassName.js.map +1 -1
  1093. package/dist/helpers/math.js.map +1 -1
  1094. package/dist/helpers/range.js.map +1 -1
  1095. package/dist/hoc/withContext.js.map +1 -1
  1096. package/dist/hooks/useAdaptivity.js.map +1 -1
  1097. package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  1098. package/dist/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  1099. package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  1100. package/dist/hooks/useAdaptivityHasHover.js.map +1 -1
  1101. package/dist/hooks/useAdaptivityHasPointer.js.map +1 -1
  1102. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1103. package/dist/hooks/useAutoDetectAppearance.js +2 -1
  1104. package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
  1105. package/dist/hooks/useBooleanState.js.map +1 -1
  1106. package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
  1107. package/dist/hooks/useCalendar.js +6 -3
  1108. package/dist/hooks/useCalendar.js.map +1 -1
  1109. package/dist/hooks/useChipsInput.js +2 -1
  1110. package/dist/hooks/useChipsInput.js.map +1 -1
  1111. package/dist/hooks/useChipsSelect.js.map +1 -1
  1112. package/dist/hooks/useDateInput.js +5 -3
  1113. package/dist/hooks/useDateInput.js.map +1 -1
  1114. package/dist/hooks/useEffectDev.js.map +1 -1
  1115. package/dist/hooks/useEnsuredControl.js.map +1 -1
  1116. package/dist/hooks/useEventListener.js.map +1 -1
  1117. package/dist/hooks/useExternRef.js.map +1 -1
  1118. package/dist/hooks/useFocusVisible.js.map +1 -1
  1119. package/dist/hooks/useFocusWithin.js.map +1 -1
  1120. package/dist/hooks/useGlobalEventListener.js.map +1 -1
  1121. package/dist/hooks/useId.js.map +1 -1
  1122. package/dist/hooks/useInsets.js.map +1 -1
  1123. package/dist/hooks/useIsClient.js.map +1 -1
  1124. package/dist/hooks/useKeyboard.js +4 -4
  1125. package/dist/hooks/useKeyboard.js.map +1 -1
  1126. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  1127. package/dist/hooks/useMediaQueries.js.map +1 -1
  1128. package/dist/hooks/useObjectMemo.js.map +1 -1
  1129. package/dist/hooks/useOrientationChange.js +1 -1
  1130. package/dist/hooks/useOrientationChange.js.map +1 -1
  1131. package/dist/hooks/usePagination.js.map +1 -1
  1132. package/dist/hooks/usePatchChildrenRef.js +2 -1
  1133. package/dist/hooks/usePatchChildrenRef.js.map +1 -1
  1134. package/dist/hooks/usePrevious.js.map +1 -1
  1135. package/dist/hooks/useTimeout.js +2 -1
  1136. package/dist/hooks/useTimeout.js.map +1 -1
  1137. package/dist/hooks/useTodayDate.js.map +1 -1
  1138. package/dist/hooks/useWaitTransitionFinish.js +4 -2
  1139. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  1140. package/dist/index.d.ts +3 -1
  1141. package/dist/index.js +1 -0
  1142. package/dist/index.js.map +1 -1
  1143. package/dist/lib/SSR.js.map +1 -1
  1144. package/dist/lib/accessibility.js.map +1 -1
  1145. package/dist/lib/adaptivity/constants.js.map +1 -1
  1146. package/dist/lib/adaptivity/functions.js.map +1 -1
  1147. package/dist/lib/animate.js.map +1 -1
  1148. package/dist/lib/browser.js.map +1 -1
  1149. package/dist/lib/calendar.js.map +1 -1
  1150. package/dist/lib/callMultiple.js.map +1 -1
  1151. package/dist/lib/date.js.map +1 -1
  1152. package/dist/lib/dom.js.map +1 -1
  1153. package/dist/lib/floating/adapters.js.map +1 -1
  1154. package/dist/lib/floating/functions.js.map +1 -1
  1155. package/dist/lib/fx.js.map +1 -1
  1156. package/dist/lib/getNavId.js.map +1 -1
  1157. package/dist/lib/isRefObject.js.map +1 -1
  1158. package/dist/lib/matchMedia.js.map +1 -1
  1159. package/dist/lib/offset.js +6 -5
  1160. package/dist/lib/offset.js.map +1 -1
  1161. package/dist/lib/platform.js.map +1 -1
  1162. package/dist/lib/polyfills.js.map +1 -1
  1163. package/dist/lib/removeObjectKeys.js.map +1 -1
  1164. package/dist/lib/select.js +2 -2
  1165. package/dist/lib/select.js.map +1 -1
  1166. package/dist/lib/styles.js.map +1 -1
  1167. package/dist/lib/supportEvents.js.map +1 -1
  1168. package/dist/lib/taptic.js.map +1 -1
  1169. package/dist/lib/testing.js.map +1 -1
  1170. package/dist/lib/tokensClassProvider.js.map +1 -1
  1171. package/dist/lib/touch.js.map +1 -1
  1172. package/dist/lib/useIsomorphicLayoutEffect.js.map +1 -1
  1173. package/dist/lib/utils.js.map +1 -1
  1174. package/dist/lib/warnOnce.js.map +1 -1
  1175. package/dist/shared/breakpoints.js.map +1 -1
  1176. package/dist/vkui.css +11 -10
  1177. package/dist/vkui.css.map +1 -1
  1178. package/dist/vkui.js.tmp +3108 -2238
  1179. package/package.json +8 -8
@@ -59,6 +59,7 @@ var View = function(_param) {
59
59
  "children",
60
60
  "className"
61
61
  ]);
62
+ var _configProvider, _splitCol;
62
63
  var scrolls = _react.useRef(scrollsCache[(0, _getNavId.getNavId)({
63
64
  nav: nav,
64
65
  id: restProps.id
@@ -107,7 +108,7 @@ var View = function(_param) {
107
108
  var panelId = (0, _getNavId.getNavId)(panel.props, warn);
108
109
  return panelId !== undefined && visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
109
110
  });
110
- var disableAnimation = (configProvider === null || configProvider === void 0 ? void 0 : configProvider.transitionMotionEnabled) === false || !(splitCol === null || splitCol === void 0 ? void 0 : splitCol.animate) || platform === _platform.Platform.VKCOM;
111
+ var disableAnimation = ((_configProvider = configProvider) === null || _configProvider === void 0 ? void 0 : _configProvider.transitionMotionEnabled) === false || !((_splitCol = splitCol) === null || _splitCol === void 0 ? void 0 : _splitCol.animate) || platform === _platform.Platform.VKCOM;
111
112
  var pickPanel = function(id) {
112
113
  if (id === null) {
113
114
  return null;
@@ -127,7 +128,8 @@ var View = function(_param) {
127
128
  setAnimated(false);
128
129
  setIsBack(undefined);
129
130
  afterTransition.current = function() {
130
- scroll === null || scroll === void 0 ? void 0 : scroll.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);
131
+ var _scroll;
132
+ (_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);
131
133
  onTransition && onTransition({
132
134
  isBack: isBackTransition,
133
135
  from: prevPanel,
@@ -178,8 +180,9 @@ var View = function(_param) {
178
180
  onSwipeBackCancelProp
179
181
  ]);
180
182
  var swipingBackTransitionEndHandler = _react.useCallback(function(e) {
183
+ var _e, _e1;
181
184
  // indexOf because of vendor prefixes in old browsers
182
- if (!e || (e === null || e === void 0 ? void 0 : e.propertyName.includes("transform")) && (e === null || e === void 0 ? void 0 : e.target) === pickPanel(swipeBackNextPanel)) {
185
+ if (!e || ((_e = e) === null || _e === void 0 ? void 0 : _e.propertyName.includes("transform")) && ((_e1 = e) === null || _e1 === void 0 ? void 0 : _e1.target) === pickPanel(swipeBackNextPanel)) {
183
186
  switch(swipeBackResult){
184
187
  case SwipeBackResults.fail:
185
188
  onSwipeBackCancel();
@@ -195,10 +198,11 @@ var View = function(_param) {
195
198
  swipeBackResult
196
199
  ]);
197
200
  var onMoveX = function(event) {
201
+ var _configProvider;
198
202
  if (platform !== _platform.Platform.IOS || swipeBackPrevented || (0, _utils.swipeBackExcluded)(event) || disableAnimation) {
199
203
  return;
200
204
  }
201
- if (!(configProvider === null || configProvider === void 0 ? void 0 : configProvider.isWebView)) {
205
+ if (!((_configProvider = configProvider) === null || _configProvider === void 0 ? void 0 : _configProvider.isWebView)) {
202
206
  if ((event.startX <= SWIPE_BACK_AREA || event.startX >= window.innerWidth - SWIPE_BACK_AREA) && !browserSwipe) {
203
207
  setBrowserSwipe(true);
204
208
  }
@@ -217,9 +221,10 @@ var View = function(_param) {
217
221
  }
218
222
  }
219
223
  if (activePanel !== null) {
224
+ var _scroll;
220
225
  // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.
221
226
  (0, _dom.blurActiveElement)(document);
222
- scrolls.current[activePanel] = scroll === null || scroll === void 0 ? void 0 : scroll.getScroll().y;
227
+ scrolls.current[activePanel] = (_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.getScroll().y;
223
228
  }
224
229
  setSwipingBack(true);
225
230
  setSwipeBackStartX(event.startX);
@@ -299,13 +304,14 @@ var View = function(_param) {
299
304
  _react.useEffect(function() {
300
305
  // Нужен переход
301
306
  if (prevActivePanel && prevActivePanel !== activePanelProp && !prevSwipingBack && !prevBrowserSwipe) {
307
+ var _scroll;
302
308
  var firstLayerId = _react.Children.toArray(children).map(function(panel) {
303
309
  return (0, _getNavId.getNavId)(panel.props, warn);
304
310
  }).find(function(id) {
305
311
  return id === prevActivePanel || id === activePanelProp;
306
312
  });
307
313
  var isBackTransition = firstLayerId === activePanelProp;
308
- scrolls.current[prevActivePanel] = scroll === null || scroll === void 0 ? void 0 : scroll.getScroll().y;
314
+ scrolls.current[prevActivePanel] = (_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.getScroll().y;
309
315
  if (disableAnimation) {
310
316
  flushTransition(prevActivePanel, isBackTransition);
311
317
  } else {
@@ -344,7 +350,8 @@ var View = function(_param) {
344
350
  ]);
345
351
  afterTransition.current = function() {
346
352
  if (nextPanel !== null) {
347
- scroll === null || scroll === void 0 ? void 0 : scroll.scrollTo(0, scrolls.current[nextPanel]);
353
+ var _scroll;
354
+ (_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.scrollTo(0, scrolls.current[nextPanel]);
348
355
  }
349
356
  prevOnTransition && prevOnTransition({
350
357
  isBack: true,
@@ -359,7 +366,8 @@ var View = function(_param) {
359
366
  }
360
367
  // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)
361
368
  if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {
362
- scroll === null || scroll === void 0 ? void 0 : scroll.scrollTo(0, scrolls.current[activePanel]);
369
+ var _scroll1;
370
+ (_scroll1 = scroll) === null || _scroll1 === void 0 ? void 0 : _scroll1.scrollTo(0, scrolls.current[activePanel]);
363
371
  }
364
372
  // Закончился Safari свайп
365
373
  if (prevActivePanel !== activePanelProp && browserSwipe) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst SWIPE_BACK_AREA = 70;\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps extends React.HTMLAttributes<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps) => {\n const scrolls = React.useRef(scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {});\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(activePanelProp);\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackPrevented, setSwipeBackPrevented] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n },\n );\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false ||\n !splitCol?.animate ||\n platform === Platform.VKCOM;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll],\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['vkui-animation-view-prev-back'],\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel],\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes('transform') && e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult],\n );\n\n const onMoveX = (event: TouchEvent): void => {\n if (\n platform !== Platform.IOS ||\n swipeBackPrevented ||\n swipeBackExcluded(event) ||\n disableAnimation\n ) {\n return;\n }\n\n if (!configProvider?.isWebView) {\n if (\n (event.startX <= SWIPE_BACK_AREA || event.startX >= window!.innerWidth - SWIPE_BACK_AREA) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n return;\n }\n\n if (!onSwipeBack || (animated && event.startX <= SWIPE_BACK_AREA)) {\n return;\n }\n\n if (!swipingBack && event.startX <= SWIPE_BACK_AREA && history && history.length > 1) {\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n setSwipeBackPrevented(true);\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n let swipeBackShift = 0;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n swipeBackShift = window!.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n };\n\n const onEnd = React.useCallback(\n (event: TouchEvent): void => {\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackStartX + swipeBackShift > window!.innerWidth / 2) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n if (swipeBackPrevented) {\n setSwipeBackPrevented(false);\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n swipeBackPrevented,\n window,\n ],\n );\n\n const calcPanelSwipeStyles = (panelId: string | undefined): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n let prevPanelShadow = (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n};\n"],"names":["scrollsCache","View","SWIPE_BACK_AREA","SwipeBackResults","fail","success","warn","warnOnce","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","scrolls","React","useRef","getNavId","id","afterTransition","noop","useEffect","current","panelNodes","useDOM","window","document","scroll","useScroll","configProvider","useConfigProvider","splitCol","useSplitCol","platform","usePlatform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackPrevented","setSwipeBackPrevented","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","usePrevious","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","Platform","VKCOM","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","useIsomorphicLayoutEffect","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","useWaitTransitionFinish","animationFinishTimeout","useTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","onMoveX","event","swipeBackExcluded","isWebView","startX","innerWidth","length","payload","blurActiveElement","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","canUseDOM","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","animationEvent","supported","set","Touch","Component","classNames","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","NavTransitionProvider","entering"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst SWIPE_BACK_AREA = 70;\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps extends React.HTMLAttributes<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce('View');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps) => {\n const scrolls = React.useRef(scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {});\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(activePanelProp);\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackPrevented, setSwipeBackPrevented] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n },\n );\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false ||\n !splitCol?.animate ||\n platform === Platform.VKCOM;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll],\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['vkui-animation-view-prev-back'],\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel],\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes('transform') && e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult],\n );\n\n const onMoveX = (event: TouchEvent): void => {\n if (\n platform !== Platform.IOS ||\n swipeBackPrevented ||\n swipeBackExcluded(event) ||\n disableAnimation\n ) {\n return;\n }\n\n if (!configProvider?.isWebView) {\n if (\n (event.startX <= SWIPE_BACK_AREA || event.startX >= window!.innerWidth - SWIPE_BACK_AREA) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n return;\n }\n\n if (!onSwipeBack || (animated && event.startX <= SWIPE_BACK_AREA)) {\n return;\n }\n\n if (!swipingBack && event.startX <= SWIPE_BACK_AREA && history && history.length > 1) {\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n setSwipeBackPrevented(true);\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n let swipeBackShift = 0;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n swipeBackShift = window!.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n };\n\n const onEnd = React.useCallback(\n (event: TouchEvent): void => {\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackStartX + swipeBackShift > window!.innerWidth / 2) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n if (swipeBackPrevented) {\n setSwipeBackPrevented(false);\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n swipeBackPrevented,\n window,\n ],\n );\n\n const calcPanelSwipeStyles = (panelId: string | undefined): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n let prevPanelShadow = (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n};\n"],"names":["scrollsCache","View","SWIPE_BACK_AREA","SwipeBackResults","fail","success","warn","warnOnce","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","configProvider","splitCol","scrolls","React","useRef","getNavId","id","afterTransition","noop","useEffect","current","panelNodes","useDOM","window","document","scroll","useScroll","useConfigProvider","useSplitCol","platform","usePlatform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackPrevented","setSwipeBackPrevented","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","usePrevious","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","Platform","VKCOM","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","useIsomorphicLayoutEffect","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","useWaitTransitionFinish","animationFinishTimeout","useTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","onMoveX","event","swipeBackExcluded","isWebView","startX","innerWidth","length","payload","blurActiveElement","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","canUseDOM","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","animationEvent","supported","set","Touch","Component","classNames","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","NavTransitionProvider","entering"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { canUseDOM, DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent, transitionEvent } from '../../lib/supportEvents';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext, SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackPrevented: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n private static readonly SWIPE_BACK_AREA = 70;\n\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipeBackPrevented: false,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === Platform.VKCOM\n );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['vkui-animation-view-prev-back'],\n ].includes(e.animationName)) &&\n this.state.prevPanel !== null\n ) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (event: TouchEvent): void => {\n if (\n !this.window ||\n this.props.platform !== Platform.IOS ||\n this.state.swipeBackPrevented ||\n swipeBackExcluded(event) ||\n this.shouldDisableTransitionMotion()\n ) {\n return;\n }\n\n if (!this.props.configProvider?.isWebView) {\n if (\n (event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA ||\n event.startX >= this.window.innerWidth - ViewInfiniteComponent.SWIPE_BACK_AREA) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n return;\n }\n\n if (\n !this.props.onSwipeBack ||\n (this.state.animated && event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA)\n ) {\n return;\n }\n\n if (\n !this.state.swipingBack &&\n event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA &&\n this.props.history &&\n this.props.history.length > 1\n ) {\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.setState({ swipeBackPrevented: true });\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > this.window.innerWidth - this.state.swipeBackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n };\n\n onEnd = (event: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipeBackStartX + this.state.swipeBackShift > this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n if (this.state.swipeBackPrevented) {\n this.setState({ swipeBackPrevented: false });\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles['View--animated'],\n !disableAnimation && this.state.swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (this.panelNodes[panelId] = el)}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n }\n}\n\nexport const ViewInfinite = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["ViewInfinite","warn","warnOnce","SwipeBackResults","fail","success","scrollsCache","React","ViewInfiniteComponent","props","scrolls","getNavId","transitionFinishTimeout","undefined","animationFinishTimeout","panelNodes","transitionEndHandler","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","swipingBackTransitionEndHandler","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","onSwipeBackCancel","onSwipeBackSuccess","onMoveX","event","window","platform","Platform","IOS","swipeBackPrevented","swipeBackExcluded","shouldDisableTransitionMotion","configProvider","isWebView","startX","SWIPE_BACK_AREA","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","onSwipeBackStart","payload","activePanel","blurActiveElement","prevScrolls","scroll","getScroll","y","swipeBackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","onEnd","speed","duration","visiblePanels","nextPanel","document","panels","Children","toArray","children","componentWillUnmount","id","clearTimeout","componentDidUpdate","prevProps","prevState","isBackCheck","from","to","firstLayerId","map","panel","find","animationEvent","supported","setTimeout","ANDROID","VKCOM","scrollPosition","prevPanelScrolls","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","transitionMotionEnabled","splitCol","animate","elem","eventHandler","transitionEvent","name","removeEventListener","addEventListener","activeElement","blur","calcPanelSwipeStyles","panelId","canUseDOM","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","render","_1","nav","className","restProps","filter","sort","isPrevPanel","isNextPanel","disableAnimation","Touch","Component","classNames","div","compensateScroll","isTransitionTarget","scrollList","onAnimationEnd","ref","el","style","key","marginTop","NavTransitionProvider","entering","defaultProps","withContext","withPlatform","withDOM","SplitColContext","ConfigProviderContext","ScrollContext"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { canUseDOM, DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent, transitionEvent } from '../../lib/supportEvents';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext, SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackPrevented: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n private static readonly SWIPE_BACK_AREA = 70;\n\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipeBackPrevented: false,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === Platform.VKCOM\n );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['vkui-animation-view-prev-back'],\n ].includes(e.animationName)) &&\n this.state.prevPanel !== null\n ) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (event: TouchEvent): void => {\n if (\n !this.window ||\n this.props.platform !== Platform.IOS ||\n this.state.swipeBackPrevented ||\n swipeBackExcluded(event) ||\n this.shouldDisableTransitionMotion()\n ) {\n return;\n }\n\n if (!this.props.configProvider?.isWebView) {\n if (\n (event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA ||\n event.startX >= this.window.innerWidth - ViewInfiniteComponent.SWIPE_BACK_AREA) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n return;\n }\n\n if (\n !this.props.onSwipeBack ||\n (this.state.animated && event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA)\n ) {\n return;\n }\n\n if (\n !this.state.swipingBack &&\n event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA &&\n this.props.history &&\n this.props.history.length > 1\n ) {\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.setState({ swipeBackPrevented: true });\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > this.window.innerWidth - this.state.swipeBackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n };\n\n onEnd = (event: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipeBackStartX + this.state.swipeBackShift > this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n if (this.state.swipeBackPrevented) {\n this.setState({ swipeBackPrevented: false });\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles['View--animated'],\n !disableAnimation && this.state.swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (this.panelNodes[panelId] = el)}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n }\n}\n\nexport const ViewInfinite = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["ViewInfinite","warn","warnOnce","SwipeBackResults","fail","success","scrollsCache","React","ViewInfiniteComponent","props","scrolls","getNavId","transitionFinishTimeout","undefined","animationFinishTimeout","panelNodes","transitionEndHandler","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","swipingBackTransitionEndHandler","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","onSwipeBackCancel","onSwipeBackSuccess","onMoveX","event","window","platform","Platform","IOS","swipeBackPrevented","swipeBackExcluded","shouldDisableTransitionMotion","configProvider","isWebView","startX","SWIPE_BACK_AREA","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","onSwipeBackStart","payload","activePanel","blurActiveElement","prevScrolls","scroll","getScroll","y","swipeBackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","onEnd","speed","duration","visiblePanels","nextPanel","document","panels","Children","toArray","children","componentWillUnmount","id","clearTimeout","componentDidUpdate","prevProps","prevState","isBackCheck","from","to","firstLayerId","map","panel","find","animationEvent","supported","setTimeout","ANDROID","VKCOM","scrollPosition","prevPanelScrolls","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","transitionMotionEnabled","splitCol","animate","elem","eventHandler","transitionEvent","name","removeEventListener","addEventListener","activeElement","blur","calcPanelSwipeStyles","panelId","canUseDOM","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","render","_1","nav","className","restProps","filter","sort","isPrevPanel","isNextPanel","disableAnimation","Touch","Component","classNames","div","compensateScroll","isTransitionTarget","scrollList","onAnimationEnd","ref","el","style","key","marginTop","NavTransitionProvider","entering","defaultProps","withContext","withPlatform","withDOM","SplitColContext","ConfigProviderContext","ScrollContext"],"mappings":";;;;+BAyqBaA;;;eAAAA;;;;;;;;;;;;;;+DAzqBU;oBACI;2BACC;4BACC;mBACgB;wBACR;wBACZ;6BACuB;wBACvB;6BAE6B;qCAI/C;oCAC+B;+BACgB;qBACpB;qBACA;AAGlC,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;IAEtB;UAAKC,gBAAgB;IAAhBA,iBAAAA,iBACHC,UAAO,KAAPA;IADGD,iBAAAA,iBAEHE,aAAAA,KAAAA;GAFGF,qBAAAA;AAeL,IAAIG,eAA6B,CAAC;IA0DEC;AAApC,IAAA,AAAMC,sCAykBH,AAzkBH;;gBAAMA;iCAAAA;aAAAA,sBAMQC,KAAwB;kCANhCD;;kCAOIC;QA2BR,sDAAQC,WAAUJ,YAAY,CAACK,IAAAA,kBAAQ,EAAC,MAAKF,KAAK,EAAER,MAAgB,IAAI,CAAC;QACzE,sDAAQW,2BAAqEC;QAC7E,sDAAQC,0BAAoED;QAc5EE,sDAAAA,cAAsD,CAAC;QAoOvDC,sDAAAA,wBAAuB,SAACC;YACtB,IACE,AAAC,CAAA,CAACA,KACA;;;;;aAKC,CAACC,QAAQ,CAACD,EAAEE,aAAa,CAAA,KAC5B,MAAKC,KAAK,CAACC,SAAS,KAAK,MACzB;gBACA,MAAKC,eAAe,CAAC,MAAKF,KAAK,CAACC,SAAS,EAAEE,QAAQ,MAAKH,KAAK,CAACI,MAAM;YACtE;QACF;QAEAC,sDAAAA,mCAAkC,SAACR;YACjC,qDAAqD;YACrD,IACE,CAACA,KACAA,EAAES,YAAY,CAACR,QAAQ,CAAC,gBACvBD,EAAEU,MAAM,KAAK,MAAKC,SAAS,CAAC,MAAKR,KAAK,CAACS,kBAAkB,GAC3D;gBACA,OAAQ,MAAKT,KAAK,CAACU,eAAe;oBAChC,KAAK3B,iBAAiBC,IAAI;wBACxB,MAAK2B,iBAAiB;wBACtB;oBACF,KAAK5B,iBAAiBE,OAAO;wBAC3B,MAAK2B,kBAAkB;gBAC3B;YACF;QACF;QAkBAC,sDAAAA,WAAU,SAACC;gBAWJ;YAVL,IACE,CAAC,MAAKC,MAAM,IACZ,MAAK1B,KAAK,CAAC2B,QAAQ,KAAKC,kBAAQ,CAACC,GAAG,IACpC,MAAKlB,KAAK,CAACmB,kBAAkB,IAC7BC,IAAAA,wBAAiB,EAACN,UAClB,MAAKO,6BAA6B,IAClC;gBACA;YACF;YAEA,IAAI,GAAC,6BAAA,MAAKhC,KAAK,CAACiC,cAAc,cAAzB,iDAAA,2BAA2BC,SAAS,GAAE;gBACzC,IACE,AAACT,CAAAA,MAAMU,MAAM,IAAIpC,AAnVnBA,sBAmVyCqC,eAAe,IACpDX,MAAMU,MAAM,IAAI,MAAKT,MAAM,CAACW,UAAU,GAAGtC,AApV7CA,sBAoVmEqC,eAAe,AAAD,KAC/E,CAAC,MAAKzB,KAAK,CAAC2B,YAAY,EACxB;oBACA,MAAKC,QAAQ,CAAC;wBAAED,cAAc;oBAAK;gBACrC;gBAEA;YACF;YAEA,IACE,CAAC,MAAKtC,KAAK,CAACwC,WAAW,IACtB,MAAK7B,KAAK,CAAC8B,QAAQ,IAAIhB,MAAMU,MAAM,IAAIpC,AA/VxCA,sBA+V8DqC,eAAe,EAC7E;gBACA;YACF;YAEA,IACE,CAAC,MAAKzB,KAAK,CAAC+B,WAAW,IACvBjB,MAAMU,MAAM,IAAIpC,AAtWhBA,sBAsWsCqC,eAAe,IACrD,MAAKpC,KAAK,CAAC2C,OAAO,IAClB,MAAK3C,KAAK,CAAC2C,OAAO,CAACC,MAAM,GAAG,GAC5B;gBACA,IAAI,MAAK5C,KAAK,CAAC6C,gBAAgB,EAAE;oBAC/B,IAAMC,UAAU,MAAK9C,KAAK,CAAC6C,gBAAgB,CAAC,MAAKlC,KAAK,CAACoC,WAAW;oBAClE,IAAID,YAAY,WAAW;wBACzB,MAAKP,QAAQ,CAAC;4BAAET,oBAAoB;wBAAK;wBACzC;oBACF;gBACF;gBAEA,IAAI,MAAKnB,KAAK,CAACoC,WAAW,KAAK,MAAM;wBAMU;oBAL7C,+EAA+E;oBAC/E,MAAKC,iBAAiB;oBACtB,IAAMC,cAAc,MAAKhD,OAAO,CAAC,MAAKU,KAAK,CAACoC,WAAW,CAAC,IAAI,EAAE;oBAC9D,MAAK9C,OAAO,GAAG,4CACV,MAAKA,OAAO,GACf,uBAAC,MAAKU,KAAK,CAACoC,WAAW,EAAG,AAAC,uBAAGE,oBAAJ;yBAAiB,qBAAA,MAAKjD,KAAK,CAACkD,MAAM,cAAjB,yCAAA,mBAAmBC,SAAS,GAAGC,CAAC;qBAAC;gBAEhF;gBAEA,MAAKb,QAAQ,CAAC;oBACZG,aAAa;oBACbW,iBAAiB5B,MAAMU,MAAM;oBAC7BmB,oBAAoB,MAAK3C,KAAK,CAACoC,WAAW;oBAC1C3B,oBAAoB,MAAKpB,KAAK,CAAC2C,OAAO,CAACY,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;gBACrD;YACF;YAEA,IAAI,MAAK5C,KAAK,CAAC+B,WAAW,EAAE;gBAC1B,IAAIc;gBACJ,IAAI/B,MAAMgC,MAAM,GAAG,GAAG;oBACpBD,iBAAiB;gBACnB,OAAO,IAAI/B,MAAMgC,MAAM,GAAG,MAAK/B,MAAM,CAACW,UAAU,GAAG,MAAK1B,KAAK,CAAC0C,eAAe,EAAE;oBAC7EG,iBAAiB,MAAK9B,MAAM,CAACW,UAAU;gBACzC,OAAO;oBACLmB,iBAAiB/B,MAAMgC,MAAM;gBAC/B;gBACA,MAAKlB,QAAQ,CAAC;oBAAEiB,gBAAAA;gBAAe;YACjC;QACF;QAEAE,sDAAAA,SAAQ,SAACjC;YACP,IAAI,MAAKd,KAAK,CAAC+B,WAAW,IAAI,MAAKhB,MAAM,EAAE;gBACzC,IAAMiC,QAAQ,AAAC,MAAKhD,KAAK,CAAC6C,cAAc,GAAG/B,MAAMmC,QAAQ,GAAI;gBAC7D,IAAI,MAAKjD,KAAK,CAAC6C,cAAc,KAAK,GAAG;oBACnC,MAAKlC,iBAAiB;gBACxB,OAAO,IAAI,MAAKX,KAAK,CAAC6C,cAAc,IAAI,MAAK9B,MAAM,CAACW,UAAU,EAAE;oBAC9D,MAAKd,kBAAkB;gBACzB,OAAO,IACLoC,QAAQ,OACR,MAAKhD,KAAK,CAAC0C,eAAe,GAAG,MAAK1C,KAAK,CAAC6C,cAAc,GAAG,MAAK9B,MAAM,CAACW,UAAU,GAAG,GAClF;oBACA,MAAKE,QAAQ,CAAC;wBAAElB,iBAAiB3B,iBAAiBE,OAAO;oBAAC;gBAC5D,OAAO;oBACL,MAAK2C,QAAQ,CAAC;wBAAElB,iBAAiB3B,iBAAiBC,IAAI;oBAAC;gBACzD;YACF;YACA,IAAI,MAAKgB,KAAK,CAACmB,kBAAkB,EAAE;gBACjC,MAAKS,QAAQ,CAAC;oBAAET,oBAAoB;gBAAM;YAC5C;QACF;QA3ZE,MAAKnB,KAAK,GAAG;YACX8B,UAAU;YAEVoB,eAAe;gBAAC7D,MAAM+C,WAAW;aAAC;YAClCA,aAAa/C,MAAM+C,WAAW;YAC9BhC,QAAQX;YACRQ,WAAW;YACXkD,WAAW;YAEXpB,aAAa;YACbZ,oBAAoB;YACpBuB,iBAAiB;YACjBG,gBAAgB;YAChBpC,oBAAoB;YACpBkC,oBAAoB;YACpBjC,iBAAiB;YAEjBiB,cAAc;QAChB;;;oBA3BEvC;;YAsCAgE,KAAAA;iBAAJ;gBACE,OAAO,IAAI,CAAC/D,KAAK,CAAC+D,QAAQ;YAC5B;;;YAEIrC,KAAAA;iBAAJ;gBACE,OAAO,IAAI,CAAC1B,KAAK,CAAC0B,MAAM;YAC1B;;;YAEIsC,KAAAA;iBAAJ;gBACE,OAAOlE,OAAMmE,QAAQ,CAACC,OAAO,CAAC,IAAI,CAAClE,KAAK,CAACmE,QAAQ;YACnD;;;YAIAC,KAAAA;mBAAAA,SAAAA;gBACE,IAAMC,KAAKnE,IAAAA,kBAAQ,EAAC,IAAI,CAACF,KAAK;gBAC9B,IAAIqE,IAAI;oBACNxE,YAAY,CAACwE,GAAG,GAAG,IAAI,CAACpE,OAAO;gBACjC;gBACA,IAAI,IAAI,CAACI,sBAAsB,EAAE;oBAC/BiE,aAAa,IAAI,CAACjE,sBAAsB;gBAC1C;YACF;;;YAEAkE,KAAAA;mBAAAA,SAAAA,mBAAmBC,SAA4B,EAAEC,SAA4B;;gBAC3E,gBAAgB;gBAChB,IACED,UAAUzB,WAAW,KAAK,IAAI,CAAC/C,KAAK,CAAC+C,WAAW,IAChD,CAAC0B,UAAU/B,WAAW,IACtB,CAAC+B,UAAUnC,YAAY,EACvB;wBAoB4C;oBAnB5C,IAAIvB,SAAS;oBAEb,IAAI,IAAI,CAACf,KAAK,CAAC0E,WAAW,EAAE;wBAC1B3D,SAAS,IAAI,CAACf,KAAK,CAAC0E,WAAW,CAAC;4BAC9BC,MAAMH,UAAUzB,WAAW;4BAC3B6B,IAAI,IAAI,CAAC5E,KAAK,CAAC+C,WAAW;wBAC5B;oBACF,OAAO;wBACL,IAAM8B,eAAe,IAAI,CAACb,MAAM,CAC7Bc,GAAG,CAAC,SAACC;mCAAU7E,IAAAA,kBAAQ,EAAC6E,MAAM/E,KAAK,EAAER;2BACrCwF,IAAI,CAAC,SAACX;mCAAOA,OAAOG,UAAUzB,WAAW,IAAIsB,OAAO,MAAKrE,KAAK,CAAC+C,WAAW;;wBAC7EhC,SAAS8D,iBAAiB,IAAI,CAAC7E,KAAK,CAAC+C,WAAW;oBAClD;oBAEA,IAAI,CAACC,iBAAiB;oBAEtB,IAAMC,cAAc,IAAI,CAAChD,OAAO,CAACuE,UAAUzB,WAAW,CAAC,IAAI,EAAE;oBAC7D,IAAM9C,UAAU,4CACX,IAAI,CAACA,OAAO,GACf,uBAACuE,UAAUzB,WAAW,EAAG,AAAC,uBAAGE,oBAAJ;yBAAiB,qBAAA,IAAI,CAACjD,KAAK,CAACkD,MAAM,cAAjB,yCAAA,mBAAmBC,SAAS,GAAGC,CAAC;qBAAC;oBAE7E,IAAI,CAACnD,OAAO,GAAGA;oBAEf,IAAI,IAAI,CAAC+B,6BAA6B,IAAI;wBACxC,IAAI,CAACnB,eAAe,CAAC2D,UAAUzB,WAAW,EAAEhC;oBAC9C,OAAO;wBACL,IAAI,CAACwB,QAAQ,CAAC;4BACZsB,eAAe;gCAACW,UAAUzB,WAAW;gCAAE,IAAI,CAAC/C,KAAK,CAAC+C,WAAW;6BAAC;4BAC9DnC,WAAW4D,UAAUzB,WAAW;4BAChCe,WAAW,IAAI,CAAC9D,KAAK,CAAC+C,WAAW;4BACjCA,aAAa;4BACbN,UAAU;4BACV1B,QAAAA;wBACF;wBAEA,2BAA2B;wBAC3B,IAAI,CAACkE,6BAAc,CAACC,SAAS,EAAE;4BAC7B,IAAI,IAAI,CAAC7E,sBAAsB,EAAE;gCAC/BiE,aAAa,IAAI,CAACjE,sBAAsB;4BAC1C;4BACA,IAAI,CAACA,sBAAsB,GAAG8E,WAC5B,IAAI,CAAC5E,oBAAoB,EACzB,IAAI,CAACP,KAAK,CAAC2B,QAAQ,KAAKC,kBAAQ,CAACwD,OAAO,IAAI,IAAI,CAACpF,KAAK,CAAC2B,QAAQ,KAAKC,kBAAQ,CAACyD,KAAK,GAC9E,MACA;wBAER;oBACF;gBACF;gBAEA,oCAAoC;gBACpC,IAAIb,UAAUzB,WAAW,KAAK,IAAI,CAAC/C,KAAK,CAAC+C,WAAW,IAAI0B,UAAU/B,WAAW,EAAE;oBAC7E,IAAMoB,YAAY,IAAI,CAACnD,KAAK,CAACS,kBAAkB;oBAC/C,IAAMR,YAAY,IAAI,CAACD,KAAK,CAAC2C,kBAAkB;oBAC/C,IAAIgC,iBAAqClF;oBAEzC,IAAI,CAACH,OAAO,GAAG,qBACV,IAAI,CAACA,OAAO;oBAGjB,IAAIW,cAAc,MAAM;wBACtB,IAAM2E,mBAAmB,AAAC,uBAAI,IAAI,CAACtF,OAAO,CAACW,UAAU,IAAI,EAAE,EAAG2C,KAAK,CAAC,GAAG,CAAC;wBACxE,IAAI,CAACtD,OAAO,CAACW,UAAU,GAAG2E;oBAC5B;oBACA,IAAIzB,cAAc,MAAM;wBACtB,IAAM0B,kBAAmB,uBAAI,IAAI,CAACvF,OAAO,CAAC6D,UAAU,IAAI,EAAE;wBAC1DwB,iBAAiBE,gBAAgBC,GAAG;wBACpC,IAAI,CAACxF,OAAO,CAAC6D,UAAU,GAAG0B;oBAC5B;oBAEA,IAAI,CAACjD,QAAQ,CACX;wBACEe,oBAAoB;wBACpBlC,oBAAoB;wBACpBsB,aAAa;wBACbrB,iBAAiB;wBACjBgC,iBAAiB;wBACjBG,gBAAgB;wBAChBT,aAAae;wBACbD,eAAe;4BAACC;yBAAU;oBAC5B,GACA;4BACE;yBAAA,qBAAA,MAAK9D,KAAK,CAACkD,MAAM,cAAjB,yCAAA,mBAAmBwC,QAAQ,CAAC,GAAGJ;wBAC/Bd,UAAUmB,YAAY,IACpBnB,UAAUmB,YAAY,CAAC;4BACrB5E,QAAQ;4BACR4D,MAAM/D;4BACNgE,IAAId;wBACN;oBACJ;gBAEJ;gBAEA,6CAA6C;gBAC7C,IAAI,CAACW,UAAUpD,eAAe,IAAI,IAAI,CAACV,KAAK,CAACU,eAAe,EAAE;oBAC5D,IAAI,CAACuE,oBAAoB,CACvB,IAAI,CAACzE,SAAS,CAAC,IAAI,CAACR,KAAK,CAACS,kBAAkB,GAC5C,IAAI,CAACJ,+BAA+B;gBAExC;gBAEA,+EAA+E;gBAC/E,IACEyD,UAAUpD,eAAe,KAAK3B,iBAAiBC,IAAI,IACnD,CAAC,IAAI,CAACgB,KAAK,CAACU,eAAe,IAC3B,IAAI,CAACV,KAAK,CAACoC,WAAW,KAAK,MAC3B;wBAQA;oBAPA,IAAMyC,mBAAmB,uBAAI,IAAI,CAACvF,OAAO,CAAC,IAAI,CAACU,KAAK,CAACoC,WAAW,CAAC,IAAI,EAAE;oBACvE,IAAMuC,kBAAiBE,iBAAgBC,GAAG;oBAC1C,IAAI,CAACxF,OAAO,GAAG,4CACV,IAAI,CAACA,OAAO,GACf,uBAAC,IAAI,CAACU,KAAK,CAACoC,WAAW,EAAGyC;qBAG5B,sBAAA,IAAI,CAACxF,KAAK,CAACkD,MAAM,cAAjB,0CAAA,oBAAmBwC,QAAQ,CAAC,GAAGJ;gBACjC;gBAEA,0BAA0B;gBAC1B,IAAId,UAAUzB,WAAW,KAAK,IAAI,CAAC/C,KAAK,CAAC+C,WAAW,IAAI,IAAI,CAACpC,KAAK,CAAC2B,YAAY,EAAE;oBAC/E,IAAI,CAACC,QAAQ,CAAC;wBACZD,cAAc;wBACdwB,WAAW;wBACXlD,WAAW;wBACX6B,UAAU;wBACVoB,eAAe;4BAAC,IAAI,CAAC7D,KAAK,CAAC+C,WAAW;yBAAC;wBACvCA,aAAa,IAAI,CAAC/C,KAAK,CAAC+C,WAAW;oBACrC;gBACF;YACF;;;YAEAf,KAAAA;mBAAAA,SAAAA;oBAEI,4BACC;gBAFH,OACE,EAAA,6BAAA,IAAI,CAAChC,KAAK,CAACiC,cAAc,cAAzB,iDAAA,2BAA2B4D,uBAAuB,MAAK,SACvD,GAAC,uBAAA,IAAI,CAAC7F,KAAK,CAAC8F,QAAQ,cAAnB,2CAAA,qBAAqBC,OAAO,KAC7B,IAAI,CAAC/F,KAAK,CAAC2B,QAAQ,KAAKC,kBAAQ,CAACyD,KAAK;YAE1C;;;YAEAO,KAAAA;mBAAAA,SAAAA,qBACEI,IAAoC,EACpCC,YAAoC;gBAEpC,IAAIC,8BAAe,CAAChB,SAAS,IAAIgB,8BAAe,CAACC,IAAI,IAAIH,MAAM;oBAC7DA,KAAKI,mBAAmB,CACtBF,8BAAe,CAACC,IAAI,EACpBF;oBAEFD,KAAKK,gBAAgB,CACnBH,8BAAe,CAACC,IAAI,EACpBF;gBAEJ,OAAO;oBACL,IAAI,IAAI,CAAC9F,uBAAuB,EAAE;wBAChCmE,aAAa,IAAI,CAACnE,uBAAuB;oBAC3C;oBAEA,IAAI,CAACA,uBAAuB,GAAGgF,WAC7Bc,cACA,IAAI,CAACjG,KAAK,CAAC2B,QAAQ,KAAKC,kBAAQ,CAACwD,OAAO,IAAI,IAAI,CAACpF,KAAK,CAAC2B,QAAQ,KAAKC,kBAAQ,CAACyD,KAAK,GAC9E,MACA;gBAER;YACF;;;YAEArC,KAAAA;mBAAAA,SAAAA;oBAC4C;gBAA1C,IAAI,OAAO,IAAI,CAACtB,MAAM,KAAK,iBAAe,iBAAA,IAAI,CAACqC,QAAQ,cAAb,qCAAA,eAAeuC,aAAa,GAAE;oBACrE,IAAI,CAACvC,QAAQ,CAACuC,aAAa,CAAiBC,IAAI;gBACnD;YACF;;;YAEApF,KAAAA;mBAAAA,SAAAA,UAAUkD,EAAiB;gBACzB,IAAIA,OAAO,MAAM;oBACf,OAAOjE;gBACT;gBACA,OAAO,IAAI,CAACE,UAAU,CAAC+D,GAAG;YAC5B;;;YAEAxD,KAAAA;mBAAAA,SAAAA,gBAAgBD,SAAiB,EAAEG,MAAe;;gBAChD,IAAMgC,cAAc,IAAI,CAAC/C,KAAK,CAAC+C,WAAW;gBAE1C,IAAMwC,mBAAmB,AAAC,uBAAI,IAAI,CAACtF,OAAO,CAACW,UAAU,IAAI,EAAE,EAAG2C,KAAK,CAAC,GAAG,CAAC;gBACxE,IAAMiC,kBAAmB,uBAAI,IAAI,CAACvF,OAAO,CAAC8C,YAAY,IAAI,EAAE;gBAC5D,IAAMuC,iBAAiBvE,SAASyE,gBAAgBC,GAAG,KAAK;gBACxD,IAAI1E,QAAQ;;oBACV,IAAI,CAACd,OAAO,GAAG,4CACV,IAAI,CAACA,OAAO,eACf,yBAACW,WAAY2E,mBACb,yBAACxC,aAAcyC;gBAEnB;gBAEA,IAAI,CAACjD,QAAQ,CACX;oBACE3B,WAAW;oBACXkD,WAAW;oBACXD,eAAe;wBAACd;qBAAY;oBAC5BA,aAAaA;oBACbN,UAAU;oBACV1B,QAAQX;gBACV,GACA;wBACE;qBAAA,qBAAA,MAAKJ,KAAK,CAACkD,MAAM,cAAjB,yCAAA,mBAAmBwC,QAAQ,CAAC,GAAG3E,SAASuE,iBAAiB;oBACzD,MAAKtF,KAAK,CAAC2F,YAAY,IACrB,MAAK3F,KAAK,CAAC2F,YAAY,CAAC;wBAAE5E,QAAAA;wBAAQ4D,MAAM/D;wBAAWgE,IAAI7B;oBAAY;gBACvE;YAEJ;;;YAkCAxB,KAAAA;mBAAAA,SAAAA;gBACE,IAAI,CAACvB,KAAK,CAACwC,WAAW,IAAI,IAAI,CAACxC,KAAK,CAACwC,WAAW;YAClD;;;YAEAlB,KAAAA;mBAAAA,SAAAA;gBACE,IAAI,CAACtB,KAAK,CAACsB,iBAAiB,IAAI,IAAI,CAACtB,KAAK,CAACsB,iBAAiB;gBAC5D,IAAI,CAACiB,QAAQ,CAAC;oBACZe,oBAAoB;oBACpBlC,oBAAoB;oBACpBsB,aAAa;oBACbrB,iBAAiB;oBACjBgC,iBAAiB;oBACjBG,gBAAgB;gBAClB;YACF;;;YAkGAgD,KAAAA;mBAAAA,SAAAA,qBAAqBC,OAA2B;gBAC9C,IAAI,CAACC,cAAS,IAAI,CAAC,IAAI,CAAChF,MAAM,EAAE;oBAC9B,OAAO,CAAC;gBACV;gBAEA,IAAMiF,SAASF,YAAY,IAAI,CAAC9F,KAAK,CAAC2C,kBAAkB;gBACxD,IAAMsD,SAASH,YAAY,IAAI,CAAC9F,KAAK,CAACS,kBAAkB;gBAExD,IAAI,AAAC,CAACuF,UAAU,CAACC,UAAW,IAAI,CAACjG,KAAK,CAACU,eAAe,EAAE;oBACtD,OAAO,CAAC;gBACV;gBAEA,IAAIwF,qBAAqB,AAAC,GAA4B,OAA1B,IAAI,CAAClG,KAAK,CAAC6C,cAAc,EAAC;gBACtD,IAAIsD,qBAAqB,AAAC,GAEzB,OADC,CAAC,KAAK,AAAC,IAAI,CAACnG,KAAK,CAAC6C,cAAc,GAAG,MAAO,IAAI,CAAC9B,MAAM,CAACW,UAAU,GAAG,GACpE;gBACD,IAAI0E,kBACF,AAAC,MAAO,CAAA,IAAI,CAACrF,MAAM,CAACW,UAAU,GAAG,IAAI,CAAC1B,KAAK,CAAC6C,cAAc,AAAD,IAAM,IAAI,CAAC9B,MAAM,CAACW,UAAU;gBAEvF,IAAI,IAAI,CAAC1B,KAAK,CAACU,eAAe,EAAE;oBAC9B,OAAOsF,SAAS;wBAAEK,WAAW,AAAC,6BAA4C,OAAhBD,iBAAgB;oBAAG,IAAI,CAAC;gBACpF;gBAEA,IAAIH,QAAQ;oBACV,OAAO;wBACLK,WAAW,AAAC,eAAiC,OAAnBH,oBAAmB;wBAC7CI,iBAAiB,AAAC,eAAiC,OAAnBJ,oBAAmB;oBACrD;gBACF;gBACA,IAAIH,QAAQ;oBACV,OAAO;wBACLM,WAAW,AAAC,eAAiC,OAAnBJ,oBAAmB;wBAC7CK,iBAAiB,AAAC,eAAiC,OAAnBL,oBAAmB;wBACnDG,WAAW,AAAC,6BAA4C,OAAhBD,iBAAgB;oBAC1D;gBACF;gBAEA,OAAO,CAAC;YACV;;;YAEAI,KAAAA;mBAAAA,SAAAA;;gBACE,IAkBI,cAAA,IAAI,CAACnH,KAAK,EAjBZ2B,WAiBE,YAjBFA,UACAoB,AAAaqE,KAgBX,YAhBFrE,aACA+C,WAeE,YAfFA,UACA7D,iBAcE,YAdFA,gBACAU,UAaE,YAbFA,SACA0B,KAYE,YAZFA,IACAgD,MAWE,YAXFA,KACA1B,eAUE,YAVFA,cACAnD,cASE,YATFA,aACAK,mBAQE,YARFA,kBACAvB,oBAOE,YAPFA,mBACAI,SAME,YANFA,QACAqC,WAKE,YALFA,UACAb,SAIE,YAJFA,QACAwB,cAGE,YAHFA,aACA4C,YAEE,YAFFA,WACGC,yCACD;oBAjBF5F;oBACAoB;oBACA+C;oBACA7D;oBACAU;oBACA0B;oBACAgD;oBACA1B;oBACAnD;oBACAK;oBACAvB;oBACAI;oBACAqC;oBACAb;oBACAwB;oBACA4C;;gBAGF,IAUI,cAAA,IAAI,CAAC3G,KAAK,EATZC,YASE,YATFA,WACAkD,YAQE,YARFA,WACAf,cAOE,YAPFA,aACAhC,SAME,YANFA,QACA0B,WAKE,YALFA,UACAa,qBAIE,YAJFA,oBACAlC,qBAGE,YAHFA,oBACAC,kBAEE,YAFFA,iBACAqB,cACE,YADFA;gBAGF,IAAMsB,SAAS,IAAI,CAACA,MAAM,CACvBwD,MAAM,CAAC,SAACzC;oBACP,IAAM0B,UAAUvG,IAAAA,kBAAQ,EAAC6E,MAAM/E,KAAK,EAAER;oBAEtC,OACE,AAACiH,YAAYrG,aAAa,MAAKO,KAAK,CAACkD,aAAa,CAACpD,QAAQ,CAACgG,YAC5DA,YAAYnD,sBACZmD,YAAYrF;gBAEhB,GACCqG,IAAI,CAAC,SAAC1C;oBACL,IAAM0B,UAAUvG,IAAAA,kBAAQ,EAAC6E,MAAM/E,KAAK,EAAER;oBACtC,IAAMkI,cAAcjB,YAAY7F,aAAa6F,YAAYnD;oBACzD,IAAMqE,cAAclB,YAAY3C,aAAa2C,YAAYrF;oBAEzD,IAAIuG,aAAa;wBACf,OAAOjF,eAAe,MAAK/B,KAAK,CAACI,MAAM,GAAG,CAAC,IAAI;oBACjD;oBAEA,IAAI2G,aAAa;wBACf,OAAOhF,eAAe,MAAK/B,KAAK,CAACI,MAAM,GAAG,IAAI,CAAC;oBACjD;oBAEA,OAAO;gBACT;gBAEF,IAAM6G,mBAAmB,IAAI,CAAC5F,6BAA6B;gBAE3D,qBACE,qBAAC6F,YAAK;oBACJC,WAAU;mBACNP;oBACJD,WAAWS,IAAAA,gBAAU,cAEnBpG,aAAaC,kBAAQ,CAACC,GAAG,IAAIkG,IAAAA,gBAAU,mBAAsB,0BAC7D,CAACH,oBAAoB,IAAI,CAACjH,KAAK,CAAC8B,QAAQ,0BACxC,CAACmF,oBAAoB,IAAI,CAACjH,KAAK,CAAC+B,WAAW,8BAC3CkF,2CACAN;oBAEF9F,SAAS,IAAI,CAACA,OAAO;oBACrBkC,OAAO,IAAI,CAACA,KAAK;kCAEjB,qBAACsE;oBAAIV,SAAS;mBACXtD,OAAOc,GAAG,CAAC,SAACC;oBACX,IAAM0B,UAAUvG,IAAAA,kBAAQ,EAAC6E,MAAM/E,KAAK,EAAER;oBACtC,IAAMmH,SAASF,YAAY7F,aAAa6F,YAAYnD;oBACpD,IAAM2E,mBACJtB,UAAUF,YAAYrF,sBAAuBqF,YAAY3C,aAAa/C;oBACxE,IAAMmH,qBAAqBzF,YAAYgE,YAAa1F,CAAAA,SAASH,YAAYkD,SAAQ;oBACjF,IAAMqE,aAAa,AAAC1B,WAAW,MAAKxG,OAAO,CAACwG,QAAQ,IAAK,EAAE;oBAC3D,IAAMvD,SAASiF,UAAU,CAACA,WAAWvF,MAAM,GAAG,EAAE,IAAI;oBAEpD,qBACE,qBAACoF;wBACCV,WAAWS,IAAAA,gBAAU,qBAEnBtB,YAAY1D,0CACZ0D,YAAY7F,sCACZ6F,YAAY3C,sCACZ2C,YAAYnD,0DACZmD,YAAYrF,0DACZC,oBAAoB3B,iBAAiBE,OAAO,2CAE5CyB,oBAAoB3B,iBAAiBC,IAAI;wBAG3CyI,gBAAgBF,qBAAqB,MAAK3H,oBAAoB,GAAGH;wBACjEiI,KAAK,SAACC;mCAAO7B,YAAYrG,aAAc,CAAA,MAAKE,UAAU,CAACmG,QAAQ,GAAG6B,EAAC;;wBACnEC,OAAO,MAAK/B,oBAAoB,CAACC;wBACjC+B,KAAK/B;qCAEL,qBAACuB;wBACCV,SAAS;wBACTiB,OAAO;4BAAEE,WAAWR,mBAAmB,CAAC/E,SAAS9C;wBAAU;qCAE3D,qBAACsI,2CAAqB;wBACpBC,UAAUlC,YAAY3C,aAAa2C,YAAYrF;uBAE9C2D;gBAKX;YAIR;;;WAtkBIhF;EAA8BD,mBAAAA,OAAMgI,SAAS;AAIjD,mBAJI/H,uBAIoBqC,mBAAkB;AA0B1C,mBA9BIrC,uBA8BG6I,gBAA2C;IAChDjG,SAAS,EAAE;AACb;AAyiBK,IAAMpD,eAAesJ,IAAAA,wBAAW,EACrCA,IAAAA,wBAAW,EACTA,IAAAA,wBAAW,EACTC,IAAAA,0BAAY,EAACC,IAAAA,YAAO,EAAoBhJ,yBACxCiJ,gCAAe,EACf,aAEFC,4CAAqB,EACrB,mBAEFC,4BAAa,EACb"}
@@ -10,10 +10,10 @@ Object.defineProperty(exports, "swipeBackExcluded", {
10
10
  });
11
11
  var swipeBackExcludedSelector = "input, textarea, [data-vkui-swipe-back=false]";
12
12
  function swipeBackExcluded(e) {
13
- var _target_closest;
13
+ var _target_closest, _target;
14
14
  var target = e.originalEvent.target;
15
15
  // eslint-disable-next-line no-restricted-properties
16
- return Boolean(target === null || target === void 0 ? void 0 : (_target_closest = target.closest) === null || _target_closest === void 0 ? void 0 : _target_closest.call(target, swipeBackExcludedSelector));
16
+ return Boolean((_target = target) === null || _target === void 0 ? void 0 : (_target_closest = _target.closest) === null || _target_closest === void 0 ? void 0 : _target_closest.call(_target, swipeBackExcludedSelector));
17
17
  }
18
18
 
19
19
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/View/utils.ts"],"sourcesContent":["import { TouchEvent } from '../Touch/Touch';\n\nconst swipeBackExcludedSelector = 'input, textarea, [data-vkui-swipe-back=false]';\n\nexport function swipeBackExcluded(e: TouchEvent) {\n const target = e.originalEvent.target as HTMLElement;\n // eslint-disable-next-line no-restricted-properties\n return Boolean(target?.closest?.(swipeBackExcludedSelector));\n}\n"],"names":["swipeBackExcluded","swipeBackExcludedSelector","e","target","originalEvent","Boolean","closest"],"mappings":";;;;+BAIgBA;;;eAAAA;;;AAFhB,IAAMC,4BAA4B;AAE3B,SAASD,kBAAkBE,CAAa;QAG9BC;IAFf,IAAMA,SAASD,EAAEE,cAAcD;IAC/B,oDAAoD;IACpD,OAAOE,QAAQF,mBAAAA,oBAAAA,KAAAA,IAAAA,CAAAA,kBAAAA,OAAQG,qBAARH,6BAAAA,KAAAA,IAAAA,gBAAAA,KAAAA,QAAkBF;AACnC"}
1
+ {"version":3,"sources":["../../../../src/components/View/utils.ts"],"sourcesContent":["import { TouchEvent } from '../Touch/Touch';\n\nconst swipeBackExcludedSelector = 'input, textarea, [data-vkui-swipe-back=false]';\n\nexport function swipeBackExcluded(e: TouchEvent) {\n const target = e.originalEvent.target as HTMLElement;\n // eslint-disable-next-line no-restricted-properties\n return Boolean(target?.closest?.(swipeBackExcludedSelector));\n}\n"],"names":["swipeBackExcluded","swipeBackExcludedSelector","e","target","originalEvent","Boolean","closest"],"mappings":";;;;+BAIgBA;;;eAAAA;;;AAFhB,IAAMC,4BAA4B;AAE3B,SAASD,kBAAkBE,CAAa;QAG9BC,iBAAAA;IAFf,IAAMA,SAASD,EAAEE,aAAa,CAACD,MAAM;IACrC,oDAAoD;IACpD,OAAOE,SAAQF,UAAAA,oBAAAA,+BAAAA,kBAAAA,QAAQG,OAAO,cAAfH,sCAAAA,qBAAAA,SAAkBF;AACnC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VisuallyHidden/VisuallyHidden.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRootRef } from '../../types';\nimport styles from './VisuallyHidden.module.css';\n\ninterface VisuallyHiddenProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {}\n\n/**\n * Компонент-обертка. Позволяет скрыть контент визуально, но оставить его\n * доступным для ассистивных технологий. По умолчанию — `span`.\n *\n * @since v5.4.0\n * @see https://vkcom.github.io/VKUI/#/VisuallyHidden\n */\nexport const VisuallyHidden = ({\n Component = 'span',\n getRootRef,\n className,\n ...restProps\n}: VisuallyHiddenProps) => {\n return (\n <Component\n {...restProps}\n className={classNames(styles['VisuallyHidden'], className)}\n ref={getRootRef}\n />\n );\n};\n"],"names":["VisuallyHidden","Component","getRootRef","className","restProps","classNames","ref"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;+DAjBU;oBACI;AAgBpB,IAAMA,iBAAiB;kCAC5BC,WAAAA,0CAAY,2BACZC,oBAAAA,YACAC,mBAAAA,WACGC;QAHHH;QACAC;QACAC;;IAGA,qBACE,qBAACF,uDACKG;QACJD,WAAWE,IAAAA,wCAAqCF;QAChDG,KAAKJ;;AAGX"}
1
+ {"version":3,"sources":["../../../../src/components/VisuallyHidden/VisuallyHidden.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasComponent, HasRootRef } from '../../types';\nimport styles from './VisuallyHidden.module.css';\n\ninterface VisuallyHiddenProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {}\n\n/**\n * Компонент-обертка. Позволяет скрыть контент визуально, но оставить его\n * доступным для ассистивных технологий. По умолчанию — `span`.\n *\n * @since v5.4.0\n * @see https://vkcom.github.io/VKUI/#/VisuallyHidden\n */\nexport const VisuallyHidden = ({\n Component = 'span',\n getRootRef,\n className,\n ...restProps\n}: VisuallyHiddenProps) => {\n return (\n <Component\n {...restProps}\n className={classNames(styles['VisuallyHidden'], className)}\n ref={getRootRef}\n />\n );\n};\n"],"names":["VisuallyHidden","Component","getRootRef","className","restProps","classNames","ref"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;+DAjBU;oBACI;AAgBpB,IAAMA,iBAAiB;kCAC5BC,WAAAA,0CAAY,2BACZC,oBAAAA,YACAC,mBAAAA,WACGC;QAHHH;QACAC;QACAC;;IAGA,qBACE,qBAACF,uDACKG;QACJD,WAAWE,IAAAA,gBAAU,wBAA2BF;QAChDG,KAAKJ;;AAGX"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef } from '../../types';\nimport styles from './VisuallyHiddenInput.module.css';\n\nconst warn = warnOnce('VisuallyHiddenInput');\nexport interface VisuallyHiddenInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n/**\n * @deprecated v5.4.0\n *\n * Компонент устарел и будет удален в v6. Используйте\n * `<VisuallyHidden Component=\"input\" />`\n */\nexport const VisuallyHiddenInput = ({\n getRef,\n className,\n ...restProps\n}: VisuallyHiddenInputProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте https://vkcom.github.io/VKUI/#/VisuallyHidden',\n );\n }\n\n return (\n <input\n {...restProps}\n className={classNames(styles['VisuallyHiddenInput'], className)}\n ref={getRef}\n />\n );\n};\n"],"names":["VisuallyHiddenInput","warn","warnOnce","getRef","className","restProps","process","env","NODE_ENV","input","classNames","ref"],"mappings":";;;;+BAgBaA;;;eAAAA;;;;;;;+DAhBU;oBACI;wBACF;AAIzB,IAAMC,OAAOC,IAAAA,oBAAS;AAUf,IAAMF,sBAAsB;QACjCG,gBAAAA,QACAC,mBAAAA,WACGC;QAFHF;QACAC;;IAGA,IAAIE,QAAQC,IAAIC,aAAa,eAAe;QAC1CP,KACE;IAEJ;IAEA,qBACE,qBAACQ,qDACKJ;QACJD,WAAWM,IAAAA,6CAA0CN;QACrDO,KAAKR;;AAGX"}
1
+ {"version":3,"sources":["../../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef } from '../../types';\nimport styles from './VisuallyHiddenInput.module.css';\n\nconst warn = warnOnce('VisuallyHiddenInput');\nexport interface VisuallyHiddenInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n/**\n * @deprecated v5.4.0\n *\n * Компонент устарел и будет удален в v6. Используйте\n * `<VisuallyHidden Component=\"input\" />`\n */\nexport const VisuallyHiddenInput = ({\n getRef,\n className,\n ...restProps\n}: VisuallyHiddenInputProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте https://vkcom.github.io/VKUI/#/VisuallyHidden',\n );\n }\n\n return (\n <input\n {...restProps}\n className={classNames(styles['VisuallyHiddenInput'], className)}\n ref={getRef}\n />\n );\n};\n"],"names":["VisuallyHiddenInput","warn","warnOnce","getRef","className","restProps","process","env","NODE_ENV","input","classNames","ref"],"mappings":";;;;+BAgBaA;;;eAAAA;;;;;;;+DAhBU;oBACI;wBACF;AAIzB,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AAUf,IAAMF,sBAAsB;QACjCG,gBAAAA,QACAC,mBAAAA,WACGC;QAFHF;QACAC;;IAGA,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CP,KACE;IAEJ;IAEA,qBACE,qBAACQ,qDACKJ;QACJD,WAAWM,IAAAA,gBAAU,6BAAgCN;QACrDO,KAAKR;;AAGX"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Title } from '../Typography/Title/Title';\nimport { TypographyProps } from '../Typography/Typography';\nimport styles from './WriteBar.module.css';\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n /**\n * Добавляет тень вокруг поля ввода\n */\n shadow?: boolean;\n\n children?: never;\n}\n\nconst WriteBarTypography = (props: TypographyProps) => {\n const platform = usePlatform();\n\n if (platform === Platform.IOS) {\n return <Title {...props} level=\"3\" weight=\"3\" />;\n }\n\n return <Headline {...props} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar = ({\n className,\n style,\n before,\n inlineAfter,\n after,\n getRootRef,\n getRef,\n onHeightChange,\n shadow = false,\n defaultValue,\n ...restProps\n}: WriteBarProps) => {\n const platform = usePlatform();\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n ...restProps,\n });\n\n const textareaRef = useExternRef(getRef);\n const currentScrollHeight = React.useRef<number>();\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n if (textareaEl.offsetParent) {\n textareaEl.style.height = '';\n textareaEl.style.height = `${textareaEl.scrollHeight}px`;\n\n if (textareaEl.scrollHeight !== currentScrollHeight.current && onHeightChange) {\n onHeightChange();\n currentScrollHeight.current = textareaEl.scrollHeight;\n }\n }\n }, [onHeightChange, textareaRef]);\n\n React.useEffect(resize, [resize, value, platform]);\n\n return (\n <div\n ref={getRootRef}\n className={classNames(\n styles['WriteBar'],\n platform === Platform.IOS && styles['WriteBar--ios'],\n shadow && styles['WriteBar--shadow'],\n className,\n )}\n style={style}\n >\n <div className={styles['WriteBar__form']}>\n {hasReactNode(before) && <div className={styles['WriteBar__before']}>{before}</div>}\n\n <div className={styles['WriteBar__formIn']}>\n <WriteBarTypography\n {...restProps}\n Component=\"textarea\"\n className={styles['WriteBar__textarea']}\n onChange={onChange}\n getRootRef={textareaRef}\n value={value}\n />\n {hasReactNode(inlineAfter) && (\n <div className={styles['WriteBar__inlineAfter']}>{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div className={styles['WriteBar__after']}>{after}</div>}\n </div>\n </div>\n );\n};\n"],"names":["WriteBar","WriteBarTypography","props","platform","usePlatform","Platform","IOS","Title","level","weight","Headline","className","style","before","inlineAfter","after","getRootRef","getRef","onHeightChange","shadow","defaultValue","restProps","useEnsuredControl","value","onChange","textareaRef","useExternRef","currentScrollHeight","React","useRef","resize","useCallback","textareaEl","current","offsetParent","height","scrollHeight","useEffect","div","ref","classNames","hasReactNode","Component"],"mappings":";;;;+BAqDaA;;;eAAAA;;;;;;;;+DArDU;oBACkB;iCACP;4BACL;2BACD;wBACH;wBAEA;qBACH;AAgCtB,IAAMC,qBAAqB,SAACC;IAC1B,IAAMC,WAAWC,IAAAA;IAEjB,IAAID,aAAaE,mBAASC,KAAK;QAC7B,qBAAO,qBAACC,0DAAUL;YAAOM,OAAM;YAAIC,QAAO;;IAC5C;IAEA,qBAAO,qBAACC,oBAAaR;AACvB;AAKO,IAAMF,WAAW;QACtBW,mBAAAA,WACAC,eAAAA,OACAC,gBAAAA,QACAC,qBAAAA,aACAC,eAAAA,OACAC,oBAAAA,YACAC,gBAAAA,QACAC,wBAAAA,uCACAC,QAAAA,oCAAS,uBACTC,sBAAAA,cACGC;QAVHV;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAMjB,WAAWC,IAAAA;IAEjB,IAA0BkB,yCAAAA,IAAAA,sCAAkB;QAC1CF,cAAAA;OACGC,iBAFEE,QAAmBD,wBAAZE,WAAYF;IAK1B,IAAMG,cAAcC,IAAAA,4BAAaT;IACjC,IAAMU,sBAAsBC,OAAMC;IAElC,IAAMC,SAASF,OAAMG,YAAY;QAC/B,IAAMC,aAAaP,YAAYQ;QAC/B,IAAI,CAACD,YAAY;YACf;QACF;QAEA,IAAIA,WAAWE,cAAc;YAC3BF,WAAWpB,MAAMuB,SAAS;YAC1BH,WAAWpB,MAAMuB,SAAS,AAAC,GAA0B,OAAxBH,WAAWI,cAAa;YAErD,IAAIJ,WAAWI,iBAAiBT,oBAAoBM,WAAWf,gBAAgB;gBAC7EA;gBACAS,oBAAoBM,UAAUD,WAAWI;YAC3C;QACF;IACF,GAAG;QAAClB;QAAgBO;KAAY;IAEhCG,OAAMS,UAAUP,QAAQ;QAACA;QAAQP;QAAOpB;KAAS;IAEjD,qBACE,qBAACmC;QACCC,KAAKvB;QACLL,WAAW6B,IAAAA,kCAETrC,aAAaE,mBAASC,4BACtBa,kCACAR;QAEFC,OAAOA;qBAEP,qBAAC0B;QAAI3B,SAAS;OACX8B,IAAAA,oBAAa5B,yBAAW,qBAACyB;QAAI3B,SAAS;OAA+BE,uBAEtE,qBAACyB;QAAI3B,SAAS;qBACZ,qBAACV,gEACKoB;QACJqB,WAAU;QACV/B,SAAS;QACTa,UAAUA;QACVR,YAAYS;QACZF,OAAOA;SAERkB,IAAAA,oBAAa3B,8BACZ,qBAACwB;QAAI3B,SAAS;OAAoCG,eAIrD2B,IAAAA,oBAAa1B,wBAAU,qBAACuB;QAAI3B,SAAS;OAA8BI;AAI5E"}
1
+ {"version":3,"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Title } from '../Typography/Title/Title';\nimport { TypographyProps } from '../Typography/Typography';\nimport styles from './WriteBar.module.css';\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n /**\n * Добавляет тень вокруг поля ввода\n */\n shadow?: boolean;\n\n children?: never;\n}\n\nconst WriteBarTypography = (props: TypographyProps) => {\n const platform = usePlatform();\n\n if (platform === Platform.IOS) {\n return <Title {...props} level=\"3\" weight=\"3\" />;\n }\n\n return <Headline {...props} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar = ({\n className,\n style,\n before,\n inlineAfter,\n after,\n getRootRef,\n getRef,\n onHeightChange,\n shadow = false,\n defaultValue,\n ...restProps\n}: WriteBarProps) => {\n const platform = usePlatform();\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n ...restProps,\n });\n\n const textareaRef = useExternRef(getRef);\n const currentScrollHeight = React.useRef<number>();\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n if (textareaEl.offsetParent) {\n textareaEl.style.height = '';\n textareaEl.style.height = `${textareaEl.scrollHeight}px`;\n\n if (textareaEl.scrollHeight !== currentScrollHeight.current && onHeightChange) {\n onHeightChange();\n currentScrollHeight.current = textareaEl.scrollHeight;\n }\n }\n }, [onHeightChange, textareaRef]);\n\n React.useEffect(resize, [resize, value, platform]);\n\n return (\n <div\n ref={getRootRef}\n className={classNames(\n styles['WriteBar'],\n platform === Platform.IOS && styles['WriteBar--ios'],\n shadow && styles['WriteBar--shadow'],\n className,\n )}\n style={style}\n >\n <div className={styles['WriteBar__form']}>\n {hasReactNode(before) && <div className={styles['WriteBar__before']}>{before}</div>}\n\n <div className={styles['WriteBar__formIn']}>\n <WriteBarTypography\n {...restProps}\n Component=\"textarea\"\n className={styles['WriteBar__textarea']}\n onChange={onChange}\n getRootRef={textareaRef}\n value={value}\n />\n {hasReactNode(inlineAfter) && (\n <div className={styles['WriteBar__inlineAfter']}>{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div className={styles['WriteBar__after']}>{after}</div>}\n </div>\n </div>\n );\n};\n"],"names":["WriteBar","WriteBarTypography","props","platform","usePlatform","Platform","IOS","Title","level","weight","Headline","className","style","before","inlineAfter","after","getRootRef","getRef","onHeightChange","shadow","defaultValue","restProps","useEnsuredControl","value","onChange","textareaRef","useExternRef","currentScrollHeight","React","useRef","resize","useCallback","textareaEl","current","offsetParent","height","scrollHeight","useEffect","div","ref","classNames","hasReactNode","Component"],"mappings":";;;;+BAqDaA;;;eAAAA;;;;;;;;+DArDU;oBACkB;iCACP;4BACL;2BACD;wBACH;wBAEA;qBACH;AAgCtB,IAAMC,qBAAqB,SAACC;IAC1B,IAAMC,WAAWC,IAAAA,wBAAW;IAE5B,IAAID,aAAaE,kBAAQ,CAACC,GAAG,EAAE;QAC7B,qBAAO,qBAACC,YAAK,8CAAKL;YAAOM,OAAM;YAAIC,QAAO;;IAC5C;IAEA,qBAAO,qBAACC,kBAAQ,EAAKR;AACvB;AAKO,IAAMF,WAAW;QACtBW,mBAAAA,WACAC,eAAAA,OACAC,gBAAAA,QACAC,qBAAAA,aACAC,eAAAA,OACAC,oBAAAA,YACAC,gBAAAA,QACAC,wBAAAA,uCACAC,QAAAA,oCAAS,uBACTC,sBAAAA,cACGC;QAVHV;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAMjB,WAAWC,IAAAA,wBAAW;IAE5B,IAA0BkB,yCAAAA,IAAAA,oCAAiB,EAAC;QAC1CF,cAAAA;OACGC,iBAFEE,QAAmBD,wBAAZE,WAAYF;IAK1B,IAAMG,cAAcC,IAAAA,0BAAY,EAACT;IACjC,IAAMU,sBAAsBC,OAAMC,MAAM;IAExC,IAAMC,SAASF,OAAMG,WAAW,CAAC;QAC/B,IAAMC,aAAaP,YAAYQ,OAAO;QACtC,IAAI,CAACD,YAAY;YACf;QACF;QAEA,IAAIA,WAAWE,YAAY,EAAE;YAC3BF,WAAWpB,KAAK,CAACuB,MAAM,GAAG;YAC1BH,WAAWpB,KAAK,CAACuB,MAAM,GAAG,AAAC,GAA0B,OAAxBH,WAAWI,YAAY,EAAC;YAErD,IAAIJ,WAAWI,YAAY,KAAKT,oBAAoBM,OAAO,IAAIf,gBAAgB;gBAC7EA;gBACAS,oBAAoBM,OAAO,GAAGD,WAAWI,YAAY;YACvD;QACF;IACF,GAAG;QAAClB;QAAgBO;KAAY;IAEhCG,OAAMS,SAAS,CAACP,QAAQ;QAACA;QAAQP;QAAOpB;KAAS;IAEjD,qBACE,qBAACmC;QACCC,KAAKvB;QACLL,WAAW6B,IAAAA,gBAAU,kBAEnBrC,aAAaE,kBAAQ,CAACC,GAAG,yBACzBa,kCACAR;QAEFC,OAAOA;qBAEP,qBAAC0B;QAAI3B,SAAS;OACX8B,IAAAA,kBAAY,EAAC5B,yBAAW,qBAACyB;QAAI3B,SAAS;OAA+BE,uBAEtE,qBAACyB;QAAI3B,SAAS;qBACZ,qBAACV,gEACKoB;QACJqB,WAAU;QACV/B,SAAS;QACTa,UAAUA;QACVR,YAAYS;QACZF,OAAOA;SAERkB,IAAAA,kBAAY,EAAC3B,8BACZ,qBAACwB;QAAI3B,SAAS;OAAoCG,eAIrD2B,IAAAA,kBAAY,EAAC1B,wBAAU,qBAACuB;QAAI3B,SAAS;OAA8BI;AAI5E"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon24Attach,\n Icon24CheckCircleOutline,\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon28Send,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { AdaptiveIconRenderer } from '../AdaptiveIconRenderer/AdaptiveIconRenderer';\nimport { Counter } from '../Counter/Counter';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './WriteBarIcon.module.css';\n\nexport interface WriteBarIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируется.\n *\n * - `attach` – иконка прикрепления.\n * - `send` – иконка отправки.\n * - `done` – иконка отправки в режиме редактирования.\n */\n mode?: 'attach' | 'send' | 'done';\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number;\n}\n\nconst warn = warnOnce('WriteBarIcon');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBarIcon\n */\nexport const WriteBarIcon = ({\n mode,\n children,\n count,\n className,\n ...restProps\n}: WriteBarIconProps) => {\n const platform = usePlatform();\n let modeLabel: string | undefined = undefined;\n\n let predefinedIcons;\n switch (mode) {\n case 'attach':\n predefinedIcons = {\n IconCompact: platform === Platform.IOS ? Icon28AddCircleOutline : Icon24Attach,\n IconRegular: platform === Platform.IOS ? Icon28AddCircleOutline : Icon28AttachOutline,\n };\n modeLabel = 'Прикрепить файл';\n break;\n\n case 'send':\n predefinedIcons = {\n IconCompact: platform === Platform.IOS ? Icon48WritebarSend : Icon24Send,\n IconRegular: platform === Platform.IOS ? Icon48WritebarSend : Icon28Send,\n };\n modeLabel = 'Отправить';\n break;\n\n case 'done':\n predefinedIcons = {\n IconCompact: platform === Platform.IOS ? Icon48WritebarDone : Icon24CheckCircleOutline,\n IconRegular: platform === Platform.IOS ? Icon48WritebarDone : Icon28CheckCircleOutline,\n };\n modeLabel = 'Готово';\n break;\n\n default:\n break;\n }\n\n if (process.env.NODE_ENV === 'development') {\n const isAccessible = !modeLabel && (!restProps['aria-label'] || restProps['aria-labelledby']);\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y['button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n aria-label={modeLabel}\n {...restProps}\n Component=\"button\"\n hasHover={false}\n activeMode={styles['WriteBarIcon__active']}\n className={classNames(\n styles['WriteBarIcon'],\n platform === Platform.IOS && styles['WriteBarIcon--ios'],\n mode === 'send' && styles['WriteBarIcon--mode-send'],\n mode === 'done' && styles['WriteBarIcon--mode-done'],\n className,\n )}\n >\n <span className={styles['WriteBarIcon__in']}>\n {predefinedIcons ? <AdaptiveIconRenderer {...predefinedIcons} /> : children}\n </span>\n {hasReactNode(count) && (\n <Counter className={styles['WriteBarIcon__counter']} size=\"s\">\n {count}\n </Counter>\n )}\n </Tappable>\n );\n};\n"],"names":["WriteBarIcon","warn","warnOnce","mode","children","count","className","restProps","platform","usePlatform","modeLabel","undefined","predefinedIcons","IconCompact","Platform","IOS","Icon28AddCircleOutline","Icon24Attach","IconRegular","Icon28AttachOutline","Icon48WritebarSend","Icon24Send","Icon28Send","Icon48WritebarDone","Icon24CheckCircleOutline","Icon28CheckCircleOutline","process","env","NODE_ENV","isAccessible","COMMON_WARNINGS","a11y","Tappable","aria-label","Component","hasHover","activeMode","classNames","span","AdaptiveIconRenderer","hasReactNode","Counter","size"],"mappings":";;;;+BA0CaA;;;eAAAA;;;;;;;+DA1CU;qBAWhB;oBACkC;2BACb;wBACH;wBACiB;oCACL;uBACb;wBACC;AAmBzB,IAAMC,OAAOC,IAAAA,oBAAS;AAKf,IAAMF,eAAe;QAC1BG,cAAAA,MACAC,kBAAAA,UACAC,eAAAA,OACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWC,IAAAA;IACjB,IAAIC,YAAgCC;IAEpC,IAAIC;IACJ,OAAQT;QACN,KAAK;YACHS,kBAAkB;gBAChBC,aAAaL,aAAaM,mBAASC,MAAMC,gCAAyBC;gBAClEC,aAAaV,aAAaM,mBAASC,MAAMC,gCAAyBG;YACpE;YACAT,YAAY;YACZ;QAEF,KAAK;YACHE,kBAAkB;gBAChBC,aAAaL,aAAaM,mBAASC,MAAMK,4BAAqBC;gBAC9DH,aAAaV,aAAaM,mBAASC,MAAMK,4BAAqBE;YAChE;YACAZ,YAAY;YACZ;QAEF,KAAK;YACHE,kBAAkB;gBAChBC,aAAaL,aAAaM,mBAASC,MAAMQ,4BAAqBC;gBAC9DN,aAAaV,aAAaM,mBAASC,MAAMQ,4BAAqBE;YAChE;YACAf,YAAY;YACZ;QAEF;YACE;IACJ;IAEA,IAAIgB,QAAQC,IAAIC,aAAa,eAAe;QAC1C,IAAMC,eAAe,CAACnB,aAAc,CAAA,CAACH,SAAS,CAAC,aAAa,IAAIA,SAAS,CAAC,kBAAkB,AAAD;QAE3F,IAAI,CAACsB,cAAc;YACjB5B,KAAK6B,0BAAgBC,IAAI,CAAC,cAAc,EAAE;QAC5C;IACF;IAEA,qBACE,qBAACC;QACCC,cAAYvB;OACRH;QACJ2B,WAAU;QACVC,UAAU;QACVC,UAAU;QACV9B,WAAW+B,IAAAA,sCAET7B,aAAaM,mBAASC,gCACtBZ,SAAS,yCACTA,SAAS,yCACTG;sBAGF,qBAACgC;QAAKhC,SAAS;OACZM,gCAAkB,qBAAC2B,4CAAyB3B,mBAAsBR,WAEpEoC,IAAAA,oBAAanC,wBACZ,qBAACoC;QAAQnC,SAAS;QAAmCoC,MAAK;OACvDrC;AAKX"}
1
+ {"version":3,"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Icon24Attach,\n Icon24CheckCircleOutline,\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon28Send,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { AdaptiveIconRenderer } from '../AdaptiveIconRenderer/AdaptiveIconRenderer';\nimport { Counter } from '../Counter/Counter';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './WriteBarIcon.module.css';\n\nexport interface WriteBarIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируется.\n *\n * - `attach` – иконка прикрепления.\n * - `send` – иконка отправки.\n * - `done` – иконка отправки в режиме редактирования.\n */\n mode?: 'attach' | 'send' | 'done';\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number;\n}\n\nconst warn = warnOnce('WriteBarIcon');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBarIcon\n */\nexport const WriteBarIcon = ({\n mode,\n children,\n count,\n className,\n ...restProps\n}: WriteBarIconProps) => {\n const platform = usePlatform();\n let modeLabel: string | undefined = undefined;\n\n let predefinedIcons;\n switch (mode) {\n case 'attach':\n predefinedIcons = {\n IconCompact: platform === Platform.IOS ? Icon28AddCircleOutline : Icon24Attach,\n IconRegular: platform === Platform.IOS ? Icon28AddCircleOutline : Icon28AttachOutline,\n };\n modeLabel = 'Прикрепить файл';\n break;\n\n case 'send':\n predefinedIcons = {\n IconCompact: platform === Platform.IOS ? Icon48WritebarSend : Icon24Send,\n IconRegular: platform === Platform.IOS ? Icon48WritebarSend : Icon28Send,\n };\n modeLabel = 'Отправить';\n break;\n\n case 'done':\n predefinedIcons = {\n IconCompact: platform === Platform.IOS ? Icon48WritebarDone : Icon24CheckCircleOutline,\n IconRegular: platform === Platform.IOS ? Icon48WritebarDone : Icon28CheckCircleOutline,\n };\n modeLabel = 'Готово';\n break;\n\n default:\n break;\n }\n\n if (process.env.NODE_ENV === 'development') {\n const isAccessible = !modeLabel && (!restProps['aria-label'] || restProps['aria-labelledby']);\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y['button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n aria-label={modeLabel}\n {...restProps}\n Component=\"button\"\n hasHover={false}\n activeMode={styles['WriteBarIcon__active']}\n className={classNames(\n styles['WriteBarIcon'],\n platform === Platform.IOS && styles['WriteBarIcon--ios'],\n mode === 'send' && styles['WriteBarIcon--mode-send'],\n mode === 'done' && styles['WriteBarIcon--mode-done'],\n className,\n )}\n >\n <span className={styles['WriteBarIcon__in']}>\n {predefinedIcons ? <AdaptiveIconRenderer {...predefinedIcons} /> : children}\n </span>\n {hasReactNode(count) && (\n <Counter className={styles['WriteBarIcon__counter']} size=\"s\">\n {count}\n </Counter>\n )}\n </Tappable>\n );\n};\n"],"names":["WriteBarIcon","warn","warnOnce","mode","children","count","className","restProps","platform","usePlatform","modeLabel","undefined","predefinedIcons","IconCompact","Platform","IOS","Icon28AddCircleOutline","Icon24Attach","IconRegular","Icon28AttachOutline","Icon48WritebarSend","Icon24Send","Icon28Send","Icon48WritebarDone","Icon24CheckCircleOutline","Icon28CheckCircleOutline","process","env","NODE_ENV","isAccessible","COMMON_WARNINGS","a11y","Tappable","aria-label","Component","hasHover","activeMode","classNames","span","AdaptiveIconRenderer","hasReactNode","Counter","size"],"mappings":";;;;+BA0CaA;;;eAAAA;;;;;;;+DA1CU;qBAWhB;oBACkC;2BACb;wBACH;wBACiB;oCACL;uBACb;wBACC;AAmBzB,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AAKf,IAAMF,eAAe;QAC1BG,cAAAA,MACAC,kBAAAA,UACAC,eAAAA,OACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWC,IAAAA,wBAAW;IAC5B,IAAIC,YAAgCC;IAEpC,IAAIC;IACJ,OAAQT;QACN,KAAK;YACHS,kBAAkB;gBAChBC,aAAaL,aAAaM,kBAAQ,CAACC,GAAG,GAAGC,6BAAsB,GAAGC,mBAAY;gBAC9EC,aAAaV,aAAaM,kBAAQ,CAACC,GAAG,GAAGC,6BAAsB,GAAGG,0BAAmB;YACvF;YACAT,YAAY;YACZ;QAEF,KAAK;YACHE,kBAAkB;gBAChBC,aAAaL,aAAaM,kBAAQ,CAACC,GAAG,GAAGK,yBAAkB,GAAGC,iBAAU;gBACxEH,aAAaV,aAAaM,kBAAQ,CAACC,GAAG,GAAGK,yBAAkB,GAAGE,iBAAU;YAC1E;YACAZ,YAAY;YACZ;QAEF,KAAK;YACHE,kBAAkB;gBAChBC,aAAaL,aAAaM,kBAAQ,CAACC,GAAG,GAAGQ,yBAAkB,GAAGC,+BAAwB;gBACtFN,aAAaV,aAAaM,kBAAQ,CAACC,GAAG,GAAGQ,yBAAkB,GAAGE,+BAAwB;YACxF;YACAf,YAAY;YACZ;QAEF;YACE;IACJ;IAEA,IAAIgB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,IAAMC,eAAe,CAACnB,aAAc,CAAA,CAACH,SAAS,CAAC,aAAa,IAAIA,SAAS,CAAC,kBAAkB,AAAD;QAE3F,IAAI,CAACsB,cAAc;YACjB5B,KAAK6B,yBAAe,CAACC,IAAI,CAAC,cAAc,EAAE;QAC5C;IACF;IAEA,qBACE,qBAACC,kBAAQ;QACPC,cAAYvB;OACRH;QACJ2B,WAAU;QACVC,UAAU;QACVC,UAAU;QACV9B,WAAW+B,IAAAA,gBAAU,sBAEnB7B,aAAaM,kBAAQ,CAACC,GAAG,6BACzBZ,SAAS,yCACTA,SAAS,yCACTG;sBAGF,qBAACgC;QAAKhC,SAAS;OACZM,gCAAkB,qBAAC2B,0CAAoB,EAAK3B,mBAAsBR,WAEpEoC,IAAAA,kBAAY,EAACnC,wBACZ,qBAACoC,gBAAO;QAACnC,SAAS;QAAmCoC,MAAK;OACvDrC;AAKX"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/appearance.ts"],"sourcesContent":["import { AppearanceSchemeType, AppearanceType } from '@vkontakte/vk-bridge';\n\nexport enum Scheme {\n BRIGHT_LIGHT = 'bright_light',\n SPACE_GRAY = 'space_gray',\n VKCOM_LIGHT = 'vkcom_light',\n VKCOM_DARK = 'vkcom_dark',\n}\n\nexport type AppearanceScheme = AppearanceSchemeType | Scheme.VKCOM_DARK | Scheme.VKCOM_LIGHT;\n\nexport enum Appearance {\n DARK = 'dark',\n LIGHT = 'light',\n}\n\nexport const deriveAppearance = (scheme: AppearanceScheme | undefined): AppearanceType =>\n scheme === Scheme.SPACE_GRAY || scheme === Scheme.VKCOM_DARK ? 'dark' : 'light';\n\nexport interface VKBridgeConfigData {\n appearance?: AppearanceType;\n scheme: AppearanceScheme;\n}\n\nexport function resolveAppearance(data: VKBridgeConfigData): AppearanceType | null {\n const { scheme, appearance } = data;\n\n // appearance пока приходит только на IOS и ANDROID\n if (appearance) {\n return appearance;\n }\n\n // Проверяем scheme если appearance не пришел\n return deriveAppearance(scheme);\n}\n"],"names":["deriveAppearance","resolveAppearance","Scheme","BRIGHT_LIGHT","SPACE_GRAY","VKCOM_LIGHT","VKCOM_DARK","Appearance","DARK","LIGHT","scheme","data","appearance"],"mappings":";;;;;;;;;;;;;;;;;IAgBaA,gBAAgB;eAAhBA;;IAQGC,iBAAiB;eAAjBA;;;IAtBT;UAAKC,MAAM;IAANA,OACVC,kBAAe;IADLD,OAEVE,gBAAa;IAFHF,OAGVG,iBAAc;IAHJH,OAIVI,gBAAa;GAJHJ,WAAAA;IASL;UAAKK,UAAU;IAAVA,WACVC,UAAO;IADGD,WAEVE,WAAQ;GAFEF,eAAAA;AAKL,IAAMP,mBAAmB,SAACU;WAC/BA,WAAWR,OAAOE,cAAcM,WAAWR,OAAOI,aAAa,SAAS;;AAOnE,SAASL,kBAAkBU,IAAwB;IACxD,IAAQD,SAAuBC,KAAvBD,QAAQE,aAAeD,KAAfC;IAEhB,mDAAmD;IACnD,IAAIA,YAAY;QACd,OAAOA;IACT;IAEA,6CAA6C;IAC7C,OAAOZ,iBAAiBU;AAC1B"}
1
+ {"version":3,"sources":["../../../src/helpers/appearance.ts"],"sourcesContent":["import { AppearanceSchemeType, AppearanceType } from '@vkontakte/vk-bridge';\n\nexport enum Scheme {\n BRIGHT_LIGHT = 'bright_light',\n SPACE_GRAY = 'space_gray',\n VKCOM_LIGHT = 'vkcom_light',\n VKCOM_DARK = 'vkcom_dark',\n}\n\nexport type AppearanceScheme = AppearanceSchemeType | Scheme.VKCOM_DARK | Scheme.VKCOM_LIGHT;\n\nexport enum Appearance {\n DARK = 'dark',\n LIGHT = 'light',\n}\n\nexport const deriveAppearance = (scheme: AppearanceScheme | undefined): AppearanceType =>\n scheme === Scheme.SPACE_GRAY || scheme === Scheme.VKCOM_DARK ? 'dark' : 'light';\n\nexport interface VKBridgeConfigData {\n appearance?: AppearanceType;\n scheme: AppearanceScheme;\n}\n\nexport function resolveAppearance(data: VKBridgeConfigData): AppearanceType | null {\n const { scheme, appearance } = data;\n\n // appearance пока приходит только на IOS и ANDROID\n if (appearance) {\n return appearance;\n }\n\n // Проверяем scheme если appearance не пришел\n return deriveAppearance(scheme);\n}\n"],"names":["deriveAppearance","resolveAppearance","Scheme","BRIGHT_LIGHT","SPACE_GRAY","VKCOM_LIGHT","VKCOM_DARK","Appearance","DARK","LIGHT","scheme","data","appearance"],"mappings":";;;;;;;;;;;;;;;;;IAgBaA,gBAAgB;eAAhBA;;IAQGC,iBAAiB;eAAjBA;;;IAtBT;UAAKC,MAAM;IAANA,OACVC,kBAAe;IADLD,OAEVE,gBAAa;IAFHF,OAGVG,iBAAc;IAHJH,OAIVI,gBAAa;GAJHJ,WAAAA;IASL;UAAKK,UAAU;IAAVA,WACVC,UAAO;IADGD,WAEVE,WAAQ;GAFEF,eAAAA;AAKL,IAAMP,mBAAmB,SAACU;WAC/BA,WAAWR,OAAOE,UAAU,IAAIM,WAAWR,OAAOI,UAAU,GAAG,SAAS;;AAOnE,SAASL,kBAAkBU,IAAwB;IACxD,IAAQD,SAAuBC,KAAvBD,QAAQE,aAAeD,KAAfC;IAEhB,mDAAmD;IACnD,IAAIA,YAAY;QACd,OAAOA;IACT;IAEA,6CAA6C;IAC7C,OAAOZ,iBAAiBU;AAC1B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/generateVKUITokensClassName.ts"],"sourcesContent":["import { Platform } from '../lib/platform';\n\nexport const generateVKUITokensClassName = (platform: string, appearance: string): string => {\n let tokensPlatform;\n switch (platform) {\n case Platform.ANDROID:\n tokensPlatform = 'vkBase';\n break;\n case Platform.IOS:\n tokensPlatform = 'vkIOS';\n break;\n case Platform.VKCOM:\n tokensPlatform = 'vkCom';\n break;\n default:\n tokensPlatform = platform;\n }\n\n return `vkui--${tokensPlatform}--${appearance}`;\n};\n"],"names":["generateVKUITokensClassName","platform","appearance","tokensPlatform","Platform","ANDROID","IOS","VKCOM"],"mappings":";;;;+BAEaA;;;eAAAA;;;wBAFY;AAElB,IAAMA,8BAA8B,SAACC,UAAkBC;IAC5D,IAAIC;IACJ,OAAQF;QACN,KAAKG,mBAASC;YACZF,iBAAiB;YACjB;QACF,KAAKC,mBAASE;YACZH,iBAAiB;YACjB;QACF,KAAKC,mBAASG;YACZJ,iBAAiB;YACjB;QACF;YACEA,iBAAiBF;IACrB;IAEA,OAAO,AAAC,SAA2BC,OAAnBC,gBAAe,MAAe,OAAXD;AACrC"}
1
+ {"version":3,"sources":["../../../src/helpers/generateVKUITokensClassName.ts"],"sourcesContent":["import { Platform } from '../lib/platform';\n\nexport const generateVKUITokensClassName = (platform: string, appearance: string): string => {\n let tokensPlatform;\n switch (platform) {\n case Platform.ANDROID:\n tokensPlatform = 'vkBase';\n break;\n case Platform.IOS:\n tokensPlatform = 'vkIOS';\n break;\n case Platform.VKCOM:\n tokensPlatform = 'vkCom';\n break;\n default:\n tokensPlatform = platform;\n }\n\n return `vkui--${tokensPlatform}--${appearance}`;\n};\n"],"names":["generateVKUITokensClassName","platform","appearance","tokensPlatform","Platform","ANDROID","IOS","VKCOM"],"mappings":";;;;+BAEaA;;;eAAAA;;;wBAFY;AAElB,IAAMA,8BAA8B,SAACC,UAAkBC;IAC5D,IAAIC;IACJ,OAAQF;QACN,KAAKG,kBAAQ,CAACC,OAAO;YACnBF,iBAAiB;YACjB;QACF,KAAKC,kBAAQ,CAACE,GAAG;YACfH,iBAAiB;YACjB;QACF,KAAKC,kBAAQ,CAACG,KAAK;YACjBJ,iBAAiB;YACjB;QACF;YACEA,iBAAiBF;IACrB;IAEA,OAAO,AAAC,SAA2BC,OAAnBC,gBAAe,MAAe,OAAXD;AACrC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/getPlatformClassName.ts"],"sourcesContent":["// TODO [>=6]: удалить этот хеллпер\nimport { platform, PlatformType } from '../lib/platform';\n\n/**\n * Подставляйте соответствующий селектор самостоятельно.\n *\n * @deprecated\n *\n */\nexport function getPlatformClassName(base: string, osname?: PlatformType): string;\n/**\n * Подставляйте соответствующий селектор самостоятельно.\n *\n * @deprecated\n */\nexport function getPlatformClassName<Styles extends Record<string, string>>(\n base: keyof Styles,\n osname?: PlatformType,\n styles?: Styles,\n): string | undefined;\nexport function getPlatformClassName<Styles extends Record<string, string>>(\n base: keyof Styles,\n osname: PlatformType = platform(),\n /**\n * Note: ввиду того, что Typescript не поддерживает `typescript-plugin-css-modules` во время компиляции,\n * не удалось покрыть дженерик типом параметр `styles`. Поэтому может вернуться undefined.\n */\n styles?: Styles,\n): string | undefined {\n const platformClassName = `${String(base)}--${osname}`;\n return styles ? styles[platformClassName] : platformClassName;\n}\n"],"names":["getPlatformClassName","base","osname","platform","styles","platformClassName","String"],"mappings":"AAAA,mCAAmC;;;;;+BAoBnBA;;;eAAAA;;;wBAnBuB;AAmBhC,SAASA,qBACdC,IAAkB;QAClBC,SAAAA,iEAAuBC,IAAAA,uBACvB;;;GAGC,GACDC;IAEA,IAAMC,oBAAoB,AAAC,GAAmBH,OAAjBI,OAAOL,OAAM,MAAW,OAAPC;IAC9C,OAAOE,SAASA,MAAM,CAACC,kBAAkB,GAAGA;AAC9C"}
1
+ {"version":3,"sources":["../../../src/helpers/getPlatformClassName.ts"],"sourcesContent":["// TODO [>=6]: удалить этот хеллпер\nimport { platform, PlatformType } from '../lib/platform';\n\n/**\n * Подставляйте соответствующий селектор самостоятельно.\n *\n * @deprecated\n *\n */\nexport function getPlatformClassName(base: string, osname?: PlatformType): string;\n/**\n * Подставляйте соответствующий селектор самостоятельно.\n *\n * @deprecated\n */\nexport function getPlatformClassName<Styles extends Record<string, string>>(\n base: keyof Styles,\n osname?: PlatformType,\n styles?: Styles,\n): string | undefined;\nexport function getPlatformClassName<Styles extends Record<string, string>>(\n base: keyof Styles,\n osname: PlatformType = platform(),\n /**\n * Note: ввиду того, что Typescript не поддерживает `typescript-plugin-css-modules` во время компиляции,\n * не удалось покрыть дженерик типом параметр `styles`. Поэтому может вернуться undefined.\n */\n styles?: Styles,\n): string | undefined {\n const platformClassName = `${String(base)}--${osname}`;\n return styles ? styles[platformClassName] : platformClassName;\n}\n"],"names":["getPlatformClassName","base","osname","platform","styles","platformClassName","String"],"mappings":"AAAA,mCAAmC;;;;;+BAoBnBA;;;eAAAA;;;wBAnBuB;AAmBhC,SAASA,qBACdC,IAAkB;QAClBC,SAAAA,iEAAuBC,IAAAA,kBAAQ,KAC/B;;;GAGC,GACDC;IAEA,IAAMC,oBAAoB,AAAC,GAAmBH,OAAjBI,OAAOL,OAAM,MAAW,OAAPC;IAC9C,OAAOE,SAASA,MAAM,CAACC,kBAAkB,GAAGA;AAC9C"}