@gravity-ui/page-constructor 8.0.0-beta.2 → 8.1.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.
- package/README.md +39 -2
- package/build/cjs/_vendor/swiper-modules.js +1309 -0
- package/build/cjs/_vendor/swiper-modules.js.map +7 -0
- package/build/cjs/_vendor/swiper-react.js +4651 -0
- package/build/cjs/_vendor/swiper-react.js.map +7 -0
- package/build/cjs/_vendor/swiper.js +3822 -0
- package/build/cjs/_vendor/swiper.js.map +7 -0
- package/build/cjs/blocks/CardLayout/CardLayout.css +6 -0
- package/build/cjs/blocks/CardLayout/CardLayout.d.ts +1 -1
- package/build/cjs/blocks/CardLayout/CardLayout.js +2 -2
- package/build/cjs/blocks/CardLayout/CardLayout.js.map +1 -1
- package/build/cjs/blocks/Companies/schema.d.ts +1 -0
- package/build/cjs/blocks/Companies/schema.js +2 -1
- package/build/cjs/blocks/Companies/schema.js.map +1 -1
- package/build/cjs/blocks/ContentLayout/ContentLayout.js +4 -2
- package/build/cjs/blocks/ContentLayout/ContentLayout.js.map +1 -1
- package/build/cjs/blocks/ContentLayout/schema.d.ts +11 -0
- package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.css +5 -5
- package/build/cjs/blocks/FilterBlock/FilterBlock.d.ts +1 -2
- package/build/cjs/blocks/FilterBlock/FilterBlock.js.map +1 -1
- package/build/cjs/blocks/FoldableList/schema.d.ts +11 -0
- package/build/cjs/blocks/Form/Form.css +5 -2
- package/build/cjs/blocks/Form/Form.d.ts +2 -3
- package/build/cjs/blocks/Form/Form.js +14 -11
- package/build/cjs/blocks/Form/Form.js.map +1 -1
- package/build/cjs/blocks/Form/schema.d.ts +12 -4
- package/build/cjs/blocks/Form/schema.js +1 -4
- package/build/cjs/blocks/Form/schema.js.map +1 -1
- package/build/cjs/blocks/Form/utils.d.ts +3 -0
- package/build/cjs/blocks/Form/utils.js +20 -0
- package/build/cjs/blocks/Form/utils.js.map +1 -0
- package/build/cjs/blocks/Header/Header.css +13 -0
- package/build/cjs/blocks/Header/Header.d.ts +7 -1
- package/build/cjs/blocks/Header/Header.js +11 -18
- package/build/cjs/blocks/Header/Header.js.map +1 -1
- package/build/cjs/blocks/Header/schema.d.ts +77 -0
- package/build/cjs/blocks/Header/schema.js +13 -1
- package/build/cjs/blocks/Header/schema.js.map +1 -1
- package/build/cjs/blocks/HeaderSlider/schema.d.ts +29 -0
- package/build/cjs/blocks/Info/schema.d.ts +22 -0
- package/build/cjs/blocks/Map/Map.js.map +1 -1
- package/build/cjs/blocks/Map/schema.d.ts +101 -0
- package/build/cjs/blocks/Media/Media.js +1 -1
- package/build/cjs/blocks/Media/Media.js.map +1 -1
- package/build/cjs/blocks/Media/schema.d.ts +22 -0
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +3 -4
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
- package/build/cjs/blocks/Questions/Questions.js +32 -7
- package/build/cjs/blocks/Questions/Questions.js.map +1 -1
- package/build/cjs/blocks/Questions/schema.d.ts +11 -0
- package/build/cjs/blocks/Share/Share.js +1 -3
- package/build/cjs/blocks/Share/Share.js.map +1 -1
- package/build/cjs/blocks/Slider/Slider.css +62 -1
- package/build/cjs/blocks/Slider/Slider.d.ts +6 -4
- package/build/cjs/blocks/Slider/Slider.js +7 -7
- package/build/cjs/blocks/Slider/Slider.js.map +1 -1
- package/build/cjs/blocks/Slider/useSlider.d.ts +1 -2
- package/build/cjs/blocks/Slider/useSlider.js +3 -7
- package/build/cjs/blocks/Slider/useSlider.js.map +1 -1
- package/build/cjs/blocks/Slider/useSliderPagination.d.ts +1 -1
- package/build/cjs/blocks/Slider/useSliderPagination.js.map +1 -1
- package/build/cjs/blocks/Slider/utils.d.ts +1 -1
- package/build/cjs/blocks/Slider/utils.js.map +1 -1
- package/build/cjs/blocks/Table/Table.js +16 -3
- package/build/cjs/blocks/Table/Table.js.map +1 -1
- package/build/cjs/blocks/Tabs/TabContent/TabContent.js +12 -12
- package/build/cjs/blocks/Tabs/TabContent/TabContent.js.map +1 -1
- package/build/cjs/blocks/Tabs/Tabs.js +1 -1
- package/build/cjs/blocks/Tabs/Tabs.js.map +1 -1
- package/build/cjs/blocks/Tabs/schema.d.ts +11 -0
- package/build/cjs/components/Button/Button.css +2 -7
- package/build/cjs/components/Button/Button.js +29 -4
- package/build/cjs/components/Button/Button.js.map +1 -1
- package/build/cjs/components/ButtonTabs/ButtonTabs.d.ts +1 -1
- package/build/cjs/components/ButtonTabs/ButtonTabs.js.map +1 -1
- package/build/cjs/components/Buttons/Buttons.css +3 -0
- package/build/cjs/components/Buttons/Buttons.d.ts +1 -2
- package/build/cjs/components/Buttons/Buttons.js +1 -1
- package/build/cjs/components/Buttons/Buttons.js.map +1 -1
- package/build/cjs/components/CardBase/CardBase.css +15 -0
- package/build/cjs/components/CardBase/CardBase.d.ts +3 -5
- package/build/cjs/components/CardBase/CardBase.js.map +1 -1
- package/build/cjs/components/ContentIcon/ContentIcon.d.ts +8 -0
- package/build/cjs/components/ContentIcon/ContentIcon.js +22 -0
- package/build/cjs/components/ContentIcon/ContentIcon.js.map +1 -0
- package/build/cjs/components/ContentLabels/ContentLabels.css +53 -0
- package/build/cjs/components/ContentLabels/ContentLabels.d.ts +3 -0
- package/build/cjs/components/ContentLabels/ContentLabels.js +16 -0
- package/build/cjs/components/ContentLabels/ContentLabels.js.map +1 -0
- package/build/cjs/components/ContentList/ContentList.js +3 -3
- package/build/cjs/components/ContentList/ContentList.js.map +1 -1
- package/build/cjs/components/DefaultVideo/DefaultVideo.js +23 -2
- package/build/cjs/components/DefaultVideo/DefaultVideo.js.map +1 -1
- package/build/cjs/components/FullscreenMedia/FullscreenMedia.css +3 -1
- package/build/cjs/components/Icon/Icon.css +10 -0
- package/build/cjs/components/Icon/Icon.d.ts +9 -0
- package/build/cjs/components/Icon/Icon.js +24 -0
- package/build/cjs/components/Icon/Icon.js.map +1 -0
- package/build/cjs/components/IconWrapper/IconWrapper.css +16 -1
- package/build/cjs/components/IconWrapper/IconWrapper.js +10 -6
- package/build/cjs/components/IconWrapper/IconWrapper.js.map +1 -1
- package/build/cjs/components/InnerForm/InnerForm.d.ts +1 -2
- package/build/cjs/components/InnerForm/InnerForm.js.map +1 -1
- package/build/cjs/components/Link/Link.d.ts +2 -2
- package/build/cjs/components/Link/Link.js +2 -2
- package/build/cjs/components/Link/Link.js.map +1 -1
- package/build/cjs/components/Links/Links.d.ts +1 -1
- package/build/cjs/components/Links/Links.js +1 -1
- package/build/cjs/components/Links/Links.js.map +1 -1
- package/build/cjs/components/Map/GoogleMap.d.ts +1 -2
- package/build/cjs/components/Map/GoogleMap.js +19 -3
- package/build/cjs/components/Map/GoogleMap.js.map +1 -1
- package/build/cjs/components/Map/YMap/YMap.d.ts +4 -4
- package/build/cjs/components/Map/YMap/YMap.js +46 -15
- package/build/cjs/components/Map/YMap/YMap.js.map +1 -1
- package/build/cjs/components/Map/YMap/YandexMap.d.ts +1 -2
- package/build/cjs/components/Map/YMap/YandexMap.js +73 -7
- package/build/cjs/components/Map/YMap/YandexMap.js.map +1 -1
- package/build/cjs/components/Map/YMap/utils.d.ts +8 -0
- package/build/cjs/components/Map/YMap/utils.js +96 -0
- package/build/cjs/components/Map/YMap/utils.js.map +1 -0
- package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.d.ts +1 -2
- package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
- package/build/cjs/components/Media/Video/Video.js +2 -13
- package/build/cjs/components/Media/Video/Video.js.map +1 -1
- package/build/cjs/components/MediaBase/MediaBase.d.ts +1 -3
- package/build/cjs/components/MediaBase/MediaBase.js.map +1 -1
- package/build/cjs/components/ReactPlayer/ReactPlayer.d.ts +1 -2
- package/build/cjs/components/ReactPlayer/ReactPlayer.js +19 -13
- package/build/cjs/components/ReactPlayer/ReactPlayer.js.map +1 -1
- package/build/cjs/components/Title/Title.d.ts +3 -2
- package/build/cjs/components/Title/Title.js +2 -2
- package/build/cjs/components/Title/Title.js.map +1 -1
- package/build/cjs/components/UnpublishedLabel/UnpublishedLabel.js.map +1 -1
- package/build/cjs/components/YandexForm/YandexForm.js +1 -1
- package/build/cjs/components/YandexForm/YandexForm.js.map +1 -1
- package/build/cjs/components/index.d.ts +2 -0
- package/build/cjs/components/index.js +5 -1
- package/build/cjs/components/index.js.map +1 -1
- package/build/cjs/constructor-items.d.ts +7 -7
- package/build/cjs/containers/PageConstructor/PageConstructor.css +0 -1
- package/build/cjs/containers/PageConstructor/Provider.js +2 -0
- package/build/cjs/containers/PageConstructor/Provider.js.map +1 -1
- package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.d.ts +1 -2
- package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
- package/build/cjs/context/locationContext/locationContext.d.ts +1 -1
- package/build/cjs/context/locationContext/locationContext.js.map +1 -1
- package/build/cjs/context/mapsContext/mapsProvider.d.ts +1 -1
- package/build/cjs/context/mapsContext/mapsProvider.js.map +1 -1
- package/build/cjs/context/windowWidthContext/WindowWidthContext.d.ts +4 -0
- package/build/cjs/context/windowWidthContext/WindowWidthContext.js +28 -0
- package/build/cjs/context/windowWidthContext/WindowWidthContext.js.map +1 -0
- package/build/cjs/context/windowWidthContext/index.d.ts +1 -0
- package/build/cjs/context/windowWidthContext/index.js +5 -0
- package/build/cjs/context/windowWidthContext/index.js.map +1 -0
- package/build/cjs/editor/components/AddBlock/AddBlock.d.ts +1 -2
- package/build/cjs/editor/components/AddBlock/AddBlock.js.map +1 -1
- package/build/cjs/editor/components/Layout/Layout.d.ts +2 -6
- package/build/cjs/editor/components/Layout/Layout.js.map +1 -1
- package/build/cjs/editor/data/previews/default-preview.d.ts +1 -1
- package/build/cjs/editor/data/previews/default-preview.js.map +1 -1
- package/build/cjs/editor/data/previews/header-block.d.ts +1 -1
- package/build/cjs/editor/data/previews/header-block.js.map +1 -1
- package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +2 -3
- package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +1 -1
- package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
- package/build/cjs/editor/icons/Tablet.d.ts +1 -1
- package/build/cjs/editor/icons/Tablet.js.map +1 -1
- package/build/cjs/grid/Grid/Grid.js.map +1 -1
- package/build/cjs/grid/Row/Row.d.ts +1 -1
- package/build/cjs/grid/Row/Row.js.map +1 -1
- package/build/cjs/hooks/useDeviceValue.d.ts +2 -0
- package/build/cjs/hooks/useDeviceValue.js +33 -0
- package/build/cjs/hooks/useDeviceValue.js.map +1 -0
- package/build/cjs/icons/BrandIconDark.d.ts +1 -1
- package/build/cjs/icons/BrandIconDark.js.map +1 -1
- package/build/cjs/icons/BrandIconLight.d.ts +1 -1
- package/build/cjs/icons/BrandIconLight.js.map +1 -1
- package/build/cjs/icons/BrandName.d.ts +1 -1
- package/build/cjs/icons/BrandName.js.map +1 -1
- package/build/cjs/icons/Chevron.d.ts +1 -1
- package/build/cjs/icons/Chevron.js.map +1 -1
- package/build/cjs/icons/Facebook.d.ts +1 -1
- package/build/cjs/icons/Facebook.js.map +1 -1
- package/build/cjs/icons/Github.d.ts +1 -1
- package/build/cjs/icons/Github.js.map +1 -1
- package/build/cjs/icons/Linkedin.d.ts +1 -1
- package/build/cjs/icons/Linkedin.js.map +1 -1
- package/build/cjs/icons/NavigationArrow.d.ts +1 -1
- package/build/cjs/icons/NavigationArrow.js.map +1 -1
- package/build/cjs/icons/NavigationChevron.d.ts +1 -1
- package/build/cjs/icons/NavigationChevron.js.map +1 -1
- package/build/cjs/icons/Telegram.d.ts +1 -1
- package/build/cjs/icons/Telegram.js.map +1 -1
- package/build/cjs/icons/Twitter.d.ts +1 -1
- package/build/cjs/icons/Twitter.js.map +1 -1
- package/build/cjs/icons/Vk.d.ts +1 -1
- package/build/cjs/icons/Vk.js.map +1 -1
- package/build/cjs/internal-typings/global.d.ts +4 -2
- package/build/cjs/models/constructor-items/blocks.d.ts +42 -17
- package/build/cjs/models/constructor-items/blocks.js.map +1 -1
- package/build/cjs/models/constructor-items/common.d.ts +42 -4
- package/build/cjs/models/constructor-items/common.js.map +1 -1
- package/build/cjs/models/constructor-items/sub-blocks.d.ts +17 -6
- package/build/cjs/models/constructor-items/sub-blocks.js.map +1 -1
- package/build/cjs/models/navigation.d.ts +2 -1
- package/build/cjs/models/navigation.js.map +1 -1
- package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.d.ts +1 -2
- package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
- package/build/cjs/navigation/components/Logo/Logo.d.ts +1 -2
- package/build/cjs/navigation/components/Logo/Logo.js.map +1 -1
- package/build/cjs/navigation/components/MobileMenuButton/MobileMenuButton.d.ts +1 -2
- package/build/cjs/navigation/components/MobileMenuButton/MobileMenuButton.js.map +1 -1
- package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.d.ts +1 -2
- package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
- package/build/cjs/navigation/components/Navigation/Navigation.d.ts +2 -1
- package/build/cjs/navigation/components/Navigation/Navigation.js +5 -2
- package/build/cjs/navigation/components/Navigation/Navigation.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/NavigationItem.d.ts +1 -2
- package/build/cjs/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.d.ts +1 -2
- package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.d.ts +1 -2
- package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.d.ts +1 -2
- package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +12 -3
- package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/hooks/useNavigationItemMap.d.ts +3 -4
- package/build/cjs/navigation/components/NavigationList/NavigationList.d.ts +1 -2
- package/build/cjs/navigation/components/NavigationList/NavigationList.js.map +1 -1
- package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.d.ts +1 -2
- package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
- package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.d.ts +1 -2
- package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.js +1 -1
- package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.js.map +1 -1
- package/build/cjs/navigation/components/SocialIcon/SocialIcon.d.ts +1 -2
- package/build/cjs/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
- package/build/cjs/navigation/containers/Layout/Layout.d.ts +1 -1
- package/build/cjs/navigation/containers/Layout/Layout.js.map +1 -1
- package/build/cjs/navigation/hooks/useActiveNavItem.d.ts +8 -7
- package/build/cjs/navigation/utils.d.ts +4 -3
- package/build/cjs/node_modules/swiper/modules/a11y.css +9 -0
- package/build/cjs/node_modules/swiper/modules/autoplay.css +0 -0
- package/build/cjs/node_modules/swiper/modules/index.js +1309 -0
- package/build/cjs/node_modules/swiper/modules/pagination.css +181 -0
- package/build/cjs/node_modules/swiper/package.json +14 -0
- package/build/cjs/node_modules/swiper/swiper-react.d.ts +497 -0
- package/build/cjs/node_modules/swiper/swiper-react.js +4651 -0
- package/build/cjs/node_modules/swiper/swiper.css +229 -0
- package/build/cjs/node_modules/swiper/swiper.d.ts +5 -0
- package/build/cjs/node_modules/swiper/swiper.js +3822 -0
- package/build/cjs/node_modules/swiper/types/index.d.ts +6 -0
- package/build/cjs/node_modules/swiper/types/modules/index.d.ts +53 -0
- package/build/cjs/schema/constants.d.ts +62 -0
- package/build/cjs/schema/validators/common.d.ts +156 -1
- package/build/cjs/schema/validators/common.js +74 -1
- package/build/cjs/schema/validators/common.js.map +1 -1
- package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +2 -2
- package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
- package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +16 -0
- package/build/cjs/sub-blocks/BackgroundCard/schema.js +1 -0
- package/build/cjs/sub-blocks/BackgroundCard/schema.js.map +1 -1
- package/build/cjs/sub-blocks/BasicCard/BasicCard.js +15 -2
- package/build/cjs/sub-blocks/BasicCard/BasicCard.js.map +1 -1
- package/build/cjs/sub-blocks/BasicCard/schema.d.ts +38 -0
- package/build/cjs/sub-blocks/BasicCard/schema.js +7 -0
- package/build/cjs/sub-blocks/BasicCard/schema.js.map +1 -1
- package/build/cjs/sub-blocks/Content/Content.css +16 -2
- package/build/cjs/sub-blocks/Content/Content.js +12 -3
- package/build/cjs/sub-blocks/Content/Content.js.map +1 -1
- package/build/cjs/sub-blocks/Content/schema.d.ts +134 -1
- package/build/cjs/sub-blocks/Content/schema.js +23 -2
- package/build/cjs/sub-blocks/Content/schema.js.map +1 -1
- package/build/cjs/sub-blocks/ImageCard/schema.d.ts +11 -0
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +2 -2
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
- package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +11 -0
- package/build/cjs/text-transform/common.d.ts +2 -1
- package/build/cjs/text-transform/common.js +2 -2
- package/build/cjs/text-transform/common.js.map +1 -1
- package/build/cjs/text-transform/config.js +16 -11
- package/build/cjs/text-transform/config.js.map +1 -1
- package/build/cjs/utils/breakpoint.d.ts +7 -0
- package/build/cjs/utils/breakpoint.js +12 -0
- package/build/cjs/utils/breakpoint.js.map +1 -0
- package/build/cjs/utils/icons.d.ts +3 -0
- package/build/cjs/utils/icons.js +16 -0
- package/build/cjs/utils/icons.js.map +1 -0
- package/build/cjs/utils/index.d.ts +2 -0
- package/build/cjs/utils/index.js +2 -0
- package/build/cjs/utils/index.js.map +1 -1
- package/build/esm/blocks/CardLayout/CardLayout.css +6 -0
- package/build/esm/blocks/CardLayout/CardLayout.d.ts +1 -1
- package/build/esm/blocks/CardLayout/CardLayout.js +3 -3
- package/build/esm/blocks/CardLayout/CardLayout.js.map +1 -1
- package/build/esm/blocks/Companies/schema.d.ts +1 -0
- package/build/esm/blocks/Companies/schema.js +2 -1
- package/build/esm/blocks/Companies/schema.js.map +1 -1
- package/build/esm/blocks/ContentLayout/ContentLayout.js +4 -2
- package/build/esm/blocks/ContentLayout/ContentLayout.js.map +1 -1
- package/build/esm/blocks/ContentLayout/schema.d.ts +11 -0
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.css +5 -5
- package/build/esm/blocks/FilterBlock/FilterBlock.d.ts +1 -2
- package/build/esm/blocks/FilterBlock/FilterBlock.js.map +1 -1
- package/build/esm/blocks/FoldableList/schema.d.ts +11 -0
- package/build/esm/blocks/Form/Form.css +5 -2
- package/build/esm/blocks/Form/Form.d.ts +2 -3
- package/build/esm/blocks/Form/Form.js +14 -11
- package/build/esm/blocks/Form/Form.js.map +1 -1
- package/build/esm/blocks/Form/schema.d.ts +12 -4
- package/build/esm/blocks/Form/schema.js +1 -4
- package/build/esm/blocks/Form/schema.js.map +1 -1
- package/build/esm/blocks/Form/utils.d.ts +3 -0
- package/build/esm/blocks/Form/utils.js +16 -0
- package/build/esm/blocks/Form/utils.js.map +1 -0
- package/build/esm/blocks/Header/Header.css +13 -0
- package/build/esm/blocks/Header/Header.d.ts +7 -1
- package/build/esm/blocks/Header/Header.js +11 -18
- package/build/esm/blocks/Header/Header.js.map +1 -1
- package/build/esm/blocks/Header/schema.d.ts +77 -0
- package/build/esm/blocks/Header/schema.js +12 -0
- package/build/esm/blocks/Header/schema.js.map +1 -1
- package/build/esm/blocks/HeaderSlider/schema.d.ts +29 -0
- package/build/esm/blocks/Info/schema.d.ts +22 -0
- package/build/esm/blocks/Map/Map.js.map +1 -1
- package/build/esm/blocks/Map/schema.d.ts +101 -0
- package/build/esm/blocks/Media/Media.js +1 -1
- package/build/esm/blocks/Media/Media.js.map +1 -1
- package/build/esm/blocks/Media/schema.d.ts +22 -0
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +3 -4
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
- package/build/esm/blocks/Questions/Questions.js +32 -7
- package/build/esm/blocks/Questions/Questions.js.map +1 -1
- package/build/esm/blocks/Questions/schema.d.ts +11 -0
- package/build/esm/blocks/Share/Share.js +1 -3
- package/build/esm/blocks/Share/Share.js.map +1 -1
- package/build/esm/blocks/Slider/Slider.css +62 -1
- package/build/esm/blocks/Slider/Slider.d.ts +6 -4
- package/build/esm/blocks/Slider/Slider.js +7 -7
- package/build/esm/blocks/Slider/Slider.js.map +1 -1
- package/build/esm/blocks/Slider/useSlider.d.ts +2 -3
- package/build/esm/blocks/Slider/useSlider.js +3 -7
- package/build/esm/blocks/Slider/useSlider.js.map +1 -1
- package/build/esm/blocks/Slider/useSliderPagination.d.ts +1 -1
- package/build/esm/blocks/Slider/useSliderPagination.js.map +1 -1
- package/build/esm/blocks/Slider/utils.d.ts +1 -1
- package/build/esm/blocks/Slider/utils.js.map +1 -1
- package/build/esm/blocks/Table/Table.js +15 -3
- package/build/esm/blocks/Table/Table.js.map +1 -1
- package/build/esm/blocks/Tabs/TabContent/TabContent.js +7 -7
- package/build/esm/blocks/Tabs/TabContent/TabContent.js.map +1 -1
- package/build/esm/blocks/Tabs/Tabs.js +2 -2
- package/build/esm/blocks/Tabs/Tabs.js.map +1 -1
- package/build/esm/blocks/Tabs/schema.d.ts +11 -0
- package/build/esm/components/Button/Button.css +2 -7
- package/build/esm/components/Button/Button.js +29 -4
- package/build/esm/components/Button/Button.js.map +1 -1
- package/build/esm/components/ButtonTabs/ButtonTabs.d.ts +1 -1
- package/build/esm/components/ButtonTabs/ButtonTabs.js.map +1 -1
- package/build/esm/components/Buttons/Buttons.css +3 -0
- package/build/esm/components/Buttons/Buttons.d.ts +1 -2
- package/build/esm/components/Buttons/Buttons.js +1 -1
- package/build/esm/components/Buttons/Buttons.js.map +1 -1
- package/build/esm/components/CardBase/CardBase.css +15 -0
- package/build/esm/components/CardBase/CardBase.d.ts +3 -5
- package/build/esm/components/CardBase/CardBase.js.map +1 -1
- package/build/esm/components/ContentIcon/ContentIcon.d.ts +8 -0
- package/build/esm/components/ContentIcon/ContentIcon.js +19 -0
- package/build/esm/components/ContentIcon/ContentIcon.js.map +1 -0
- package/build/esm/components/ContentLabels/ContentLabels.css +53 -0
- package/build/esm/components/ContentLabels/ContentLabels.d.ts +4 -0
- package/build/esm/components/ContentLabels/ContentLabels.js +14 -0
- package/build/esm/components/ContentLabels/ContentLabels.js.map +1 -0
- package/build/esm/components/ContentList/ContentList.js +3 -3
- package/build/esm/components/ContentList/ContentList.js.map +1 -1
- package/build/esm/components/DefaultVideo/DefaultVideo.js +23 -2
- package/build/esm/components/DefaultVideo/DefaultVideo.js.map +1 -1
- package/build/esm/components/FullscreenMedia/FullscreenMedia.css +3 -1
- package/build/esm/components/Icon/Icon.css +10 -0
- package/build/esm/components/Icon/Icon.d.ts +10 -0
- package/build/esm/components/Icon/Icon.js +22 -0
- package/build/esm/components/Icon/Icon.js.map +1 -0
- package/build/esm/components/IconWrapper/IconWrapper.css +16 -1
- package/build/esm/components/IconWrapper/IconWrapper.js +10 -6
- package/build/esm/components/IconWrapper/IconWrapper.js.map +1 -1
- package/build/esm/components/InnerForm/InnerForm.d.ts +1 -2
- package/build/esm/components/InnerForm/InnerForm.js.map +1 -1
- package/build/esm/components/Link/Link.d.ts +2 -2
- package/build/esm/components/Link/Link.js +2 -2
- package/build/esm/components/Link/Link.js.map +1 -1
- package/build/esm/components/Links/Links.d.ts +1 -1
- package/build/esm/components/Links/Links.js +1 -1
- package/build/esm/components/Links/Links.js.map +1 -1
- package/build/esm/components/Map/GoogleMap.d.ts +1 -2
- package/build/esm/components/Map/GoogleMap.js +19 -3
- package/build/esm/components/Map/GoogleMap.js.map +1 -1
- package/build/esm/components/Map/YMap/YMap.d.ts +4 -4
- package/build/esm/components/Map/YMap/YMap.js +46 -15
- package/build/esm/components/Map/YMap/YMap.js.map +1 -1
- package/build/esm/components/Map/YMap/YandexMap.d.ts +1 -2
- package/build/esm/components/Map/YMap/YandexMap.js +73 -7
- package/build/esm/components/Map/YMap/YandexMap.js.map +1 -1
- package/build/esm/components/Map/YMap/utils.d.ts +8 -0
- package/build/esm/components/Map/YMap/utils.js +90 -0
- package/build/esm/components/Map/YMap/utils.js.map +1 -0
- package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.d.ts +1 -2
- package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
- package/build/esm/components/Media/Video/Video.js +2 -13
- package/build/esm/components/Media/Video/Video.js.map +1 -1
- package/build/esm/components/MediaBase/MediaBase.d.ts +1 -3
- package/build/esm/components/MediaBase/MediaBase.js.map +1 -1
- package/build/esm/components/ReactPlayer/ReactPlayer.d.ts +1 -2
- package/build/esm/components/ReactPlayer/ReactPlayer.js +19 -13
- package/build/esm/components/ReactPlayer/ReactPlayer.js.map +1 -1
- package/build/esm/components/Title/Title.d.ts +3 -2
- package/build/esm/components/Title/Title.js +2 -2
- package/build/esm/components/Title/Title.js.map +1 -1
- package/build/esm/components/UnpublishedLabel/UnpublishedLabel.js.map +1 -1
- package/build/esm/components/YandexForm/YandexForm.js +1 -1
- package/build/esm/components/YandexForm/YandexForm.js.map +1 -1
- package/build/esm/components/index.d.ts +2 -0
- package/build/esm/components/index.js +2 -0
- package/build/esm/components/index.js.map +1 -1
- package/build/esm/constructor-items.d.ts +7 -7
- package/build/esm/containers/PageConstructor/PageConstructor.css +0 -1
- package/build/esm/containers/PageConstructor/Provider.js +2 -0
- package/build/esm/containers/PageConstructor/Provider.js.map +1 -1
- package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.d.ts +1 -2
- package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
- package/build/esm/context/locationContext/locationContext.d.ts +1 -1
- package/build/esm/context/locationContext/locationContext.js.map +1 -1
- package/build/esm/context/mapsContext/mapsProvider.d.ts +1 -1
- package/build/esm/context/mapsContext/mapsProvider.js.map +1 -1
- package/build/esm/context/windowWidthContext/WindowWidthContext.d.ts +4 -0
- package/build/esm/context/windowWidthContext/WindowWidthContext.js +22 -0
- package/build/esm/context/windowWidthContext/WindowWidthContext.js.map +1 -0
- package/build/esm/context/windowWidthContext/index.d.ts +1 -0
- package/build/esm/context/windowWidthContext/index.js +2 -0
- package/build/esm/context/windowWidthContext/index.js.map +1 -0
- package/build/esm/editor/components/AddBlock/AddBlock.d.ts +1 -2
- package/build/esm/editor/components/AddBlock/AddBlock.js.map +1 -1
- package/build/esm/editor/components/Layout/Layout.d.ts +2 -6
- package/build/esm/editor/components/Layout/Layout.js.map +1 -1
- package/build/esm/editor/data/previews/default-preview.d.ts +1 -1
- package/build/esm/editor/data/previews/default-preview.js.map +1 -1
- package/build/esm/editor/data/previews/header-block.d.ts +1 -1
- package/build/esm/editor/data/previews/header-block.js.map +1 -1
- package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +2 -3
- package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +1 -1
- package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
- package/build/esm/editor/icons/Tablet.d.ts +1 -1
- package/build/esm/editor/icons/Tablet.js.map +1 -1
- package/build/esm/grid/Grid/Grid.d.ts +1 -1
- package/build/esm/grid/Grid/Grid.js +1 -1
- package/build/esm/grid/Grid/Grid.js.map +1 -1
- package/build/esm/grid/Row/Row.d.ts +1 -1
- package/build/esm/grid/Row/Row.js.map +1 -1
- package/build/esm/hooks/useDeviceValue.d.ts +2 -0
- package/build/esm/hooks/useDeviceValue.js +29 -0
- package/build/esm/hooks/useDeviceValue.js.map +1 -0
- package/build/esm/icons/BrandIconDark.d.ts +1 -1
- package/build/esm/icons/BrandIconDark.js.map +1 -1
- package/build/esm/icons/BrandIconLight.d.ts +1 -1
- package/build/esm/icons/BrandIconLight.js.map +1 -1
- package/build/esm/icons/BrandName.d.ts +1 -1
- package/build/esm/icons/BrandName.js.map +1 -1
- package/build/esm/icons/Chevron.d.ts +1 -1
- package/build/esm/icons/Chevron.js.map +1 -1
- package/build/esm/icons/Facebook.d.ts +1 -1
- package/build/esm/icons/Facebook.js.map +1 -1
- package/build/esm/icons/Github.d.ts +1 -1
- package/build/esm/icons/Github.js.map +1 -1
- package/build/esm/icons/Linkedin.d.ts +1 -1
- package/build/esm/icons/Linkedin.js.map +1 -1
- package/build/esm/icons/NavigationArrow.d.ts +1 -1
- package/build/esm/icons/NavigationArrow.js.map +1 -1
- package/build/esm/icons/NavigationChevron.d.ts +1 -1
- package/build/esm/icons/NavigationChevron.js.map +1 -1
- package/build/esm/icons/Telegram.d.ts +1 -1
- package/build/esm/icons/Telegram.js.map +1 -1
- package/build/esm/icons/Twitter.d.ts +1 -1
- package/build/esm/icons/Twitter.js.map +1 -1
- package/build/esm/icons/Vk.d.ts +1 -1
- package/build/esm/icons/Vk.js.map +1 -1
- package/build/esm/internal-typings/global.d.ts +4 -2
- package/build/esm/models/constructor-items/blocks.d.ts +42 -17
- package/build/esm/models/constructor-items/blocks.js.map +1 -1
- package/build/esm/models/constructor-items/common.d.ts +42 -4
- package/build/esm/models/constructor-items/common.js.map +1 -1
- package/build/esm/models/constructor-items/sub-blocks.d.ts +17 -6
- package/build/esm/models/constructor-items/sub-blocks.js.map +1 -1
- package/build/esm/models/navigation.d.ts +2 -1
- package/build/esm/models/navigation.js.map +1 -1
- package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.d.ts +1 -2
- package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
- package/build/esm/navigation/components/Logo/Logo.d.ts +1 -2
- package/build/esm/navigation/components/Logo/Logo.js.map +1 -1
- package/build/esm/navigation/components/MobileMenuButton/MobileMenuButton.d.ts +1 -2
- package/build/esm/navigation/components/MobileMenuButton/MobileMenuButton.js.map +1 -1
- package/build/esm/navigation/components/MobileNavigation/MobileNavigation.d.ts +1 -2
- package/build/esm/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
- package/build/esm/navigation/components/Navigation/Navigation.d.ts +2 -1
- package/build/esm/navigation/components/Navigation/Navigation.js +5 -2
- package/build/esm/navigation/components/Navigation/Navigation.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/NavigationItem.d.ts +1 -2
- package/build/esm/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.d.ts +1 -2
- package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.d.ts +1 -2
- package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.d.ts +1 -2
- package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +12 -3
- package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/hooks/useNavigationItemMap.d.ts +3 -4
- package/build/esm/navigation/components/NavigationList/NavigationList.d.ts +1 -2
- package/build/esm/navigation/components/NavigationList/NavigationList.js.map +1 -1
- package/build/esm/navigation/components/NavigationListItem/NavigationListItem.d.ts +1 -2
- package/build/esm/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
- package/build/esm/navigation/components/NavigationPopup/NavigationPopup.d.ts +1 -2
- package/build/esm/navigation/components/NavigationPopup/NavigationPopup.js +1 -1
- package/build/esm/navigation/components/NavigationPopup/NavigationPopup.js.map +1 -1
- package/build/esm/navigation/components/SocialIcon/SocialIcon.d.ts +1 -2
- package/build/esm/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
- package/build/esm/navigation/containers/Layout/Layout.d.ts +1 -1
- package/build/esm/navigation/containers/Layout/Layout.js.map +1 -1
- package/build/esm/navigation/hooks/useActiveNavItem.d.ts +8 -7
- package/build/esm/navigation/utils.d.ts +4 -3
- package/build/esm/schema/constants.d.ts +62 -0
- package/build/esm/schema/validators/common.d.ts +156 -1
- package/build/esm/schema/validators/common.js +73 -2
- package/build/esm/schema/validators/common.js.map +1 -1
- package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +2 -2
- package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
- package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +16 -0
- package/build/esm/sub-blocks/BackgroundCard/schema.js +2 -1
- package/build/esm/sub-blocks/BackgroundCard/schema.js.map +1 -1
- package/build/esm/sub-blocks/BasicCard/BasicCard.js +15 -2
- package/build/esm/sub-blocks/BasicCard/BasicCard.js.map +1 -1
- package/build/esm/sub-blocks/BasicCard/schema.d.ts +38 -0
- package/build/esm/sub-blocks/BasicCard/schema.js +8 -1
- package/build/esm/sub-blocks/BasicCard/schema.js.map +1 -1
- package/build/esm/sub-blocks/Content/Content.css +16 -2
- package/build/esm/sub-blocks/Content/Content.js +11 -3
- package/build/esm/sub-blocks/Content/Content.js.map +1 -1
- package/build/esm/sub-blocks/Content/schema.d.ts +134 -1
- package/build/esm/sub-blocks/Content/schema.js +23 -2
- package/build/esm/sub-blocks/Content/schema.js.map +1 -1
- package/build/esm/sub-blocks/ImageCard/schema.d.ts +11 -0
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +2 -2
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
- package/build/esm/sub-blocks/LayoutItem/schema.d.ts +11 -0
- package/build/esm/text-transform/common.d.ts +2 -1
- package/build/esm/text-transform/common.js +2 -2
- package/build/esm/text-transform/common.js.map +1 -1
- package/build/esm/text-transform/config.js +16 -11
- package/build/esm/text-transform/config.js.map +1 -1
- package/build/esm/utils/breakpoint.d.ts +7 -0
- package/build/esm/utils/breakpoint.js +9 -0
- package/build/esm/utils/breakpoint.js.map +1 -0
- package/build/esm/utils/icons.d.ts +3 -0
- package/build/esm/utils/icons.js +11 -0
- package/build/esm/utils/icons.js.map +1 -0
- package/build/esm/utils/index.d.ts +2 -0
- package/build/esm/utils/index.js +2 -0
- package/build/esm/utils/index.js.map +1 -1
- package/package.json +7 -5
- package/schema/index.js +1 -1
- package/server/models/constructor-items/blocks.d.ts +42 -17
- package/server/models/constructor-items/common.d.ts +42 -4
- package/server/models/constructor-items/sub-blocks.d.ts +17 -6
- package/server/models/navigation.d.ts +2 -1
- package/server/text-transform/common.d.ts +2 -1
- package/server/text-transform/common.js +2 -2
- package/server/text-transform/config.js +16 -11
- package/server/utils/breakpoint.d.ts +7 -0
- package/server/utils/breakpoint.js +11 -0
- package/server/utils/icons.d.ts +3 -0
- package/server/utils/icons.js +47 -0
- package/server/utils/index.d.ts +2 -0
- package/server/utils/index.js +2 -0
- package/styles/mixins.scss +20 -0
- package/styles/root.scss +0 -1
- package/styles/storybook/index.scss +1 -0
- package/build/cjs/blocks/Questions/models.d.ts +0 -11
- package/build/cjs/blocks/Questions/models.js +0 -15
- package/build/cjs/blocks/Questions/models.js.map +0 -1
- package/build/cjs/components/ContentList/ContentListItemIcon.d.ts +0 -7
- package/build/cjs/components/ContentList/ContentListItemIcon.js +0 -23
- package/build/cjs/components/ContentList/ContentListItemIcon.js.map +0 -1
- package/build/esm/blocks/Questions/models.d.ts +0 -11
- package/build/esm/blocks/Questions/models.js +0 -12
- package/build/esm/blocks/Questions/models.js.map +0 -1
- package/build/esm/components/ContentList/ContentListItemIcon.d.ts +0 -7
- package/build/esm/components/ContentList/ContentListItemIcon.js +0 -20
- package/build/esm/components/ContentList/ContentListItemIcon.js.map +0 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import 'swiper/css';
|
|
4
|
+
import 'swiper/css/a11y';
|
|
5
|
+
import 'swiper/css/pagination';
|
|
6
|
+
import { A11y, Autoplay, Pagination } from 'swiper/modules';
|
|
7
|
+
import { Swiper as SwiperReact, SwiperSlide } from 'swiper/react';
|
|
5
8
|
import Anchor from "../../components/Anchor/Anchor.js";
|
|
6
9
|
import AnimateBlock from "../../components/AnimateBlock/AnimateBlock.js";
|
|
7
10
|
import Title from "../../components/Title/Title.js";
|
|
@@ -12,12 +15,9 @@ import { i18n } from "./i18n/index.js";
|
|
|
12
15
|
import { useSlider } from "./useSlider.js";
|
|
13
16
|
import { useSliderPagination } from "./useSliderPagination.js";
|
|
14
17
|
import './Slider.css';
|
|
15
|
-
import 'swiper/swiper-bundle.css';
|
|
16
18
|
const b = block('SliderBlock');
|
|
17
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
18
|
-
Swiper.use([Autoplay, A11y, Pagination]);
|
|
19
19
|
export const SliderBlock = ({ animated, title, description, type, anchorId, arrows = true, adaptive, autoplay: autoplayMs, dots = true, initialSlide = 0, className, dotsClassName, disclaimer, children, blockClassName, arrowSize, slidesToShow, onSlideChange, onSlideChangeTransitionStart, onSlideChangeTransitionEnd, onActiveIndexChange, onBreakpoint, }) => {
|
|
20
|
-
const { autoplay, isLocked, childrenCount, breakpoints, onSwiper,
|
|
20
|
+
const { autoplay, isLocked, childrenCount, breakpoints, onSwiper, onPrev, onNext, setIsLocked } = useSlider({
|
|
21
21
|
slidesToShow,
|
|
22
22
|
children,
|
|
23
23
|
type,
|
|
@@ -40,7 +40,7 @@ export const SliderBlock = ({ animated, title, description, type, anchorId, arro
|
|
|
40
40
|
arrows,
|
|
41
41
|
'without-dots': !dots || isLocked,
|
|
42
42
|
type,
|
|
43
|
-
}, blockClassName), children: [anchorId && _jsx(Anchor, { id: anchorId }), _jsx(Title, { title: title, subtitle: description, className: b('header', { 'no-description': !description }) }), _jsxs(AnimateBlock, { className: b('animate-slides'), animate: animated, children: [_jsx(SwiperReact, { className: b('slider', className), onSwiper: onSwiper, speed: 1000, autoplay: autoplay, autoHeight: adaptive, initialSlide: initialSlide, noSwiping: false, breakpoints: breakpoints, onSlideChange: onSlideChange, onSlideChangeTransitionStart: onSlideChangeTransitionStart, onSlideChangeTransitionEnd: onSlideChangeTransitionEnd, onActiveIndexChange: onActiveIndexChange, onBreakpoint: onBreakpoint, onLock: () => setIsLocked(true), onUnlock: () => setIsLocked(false),
|
|
43
|
+
}, blockClassName), children: [anchorId && _jsx(Anchor, { id: anchorId }), _jsx(Title, { title: title, subtitle: description, className: b('header', { 'no-description': !description }) }), _jsxs(AnimateBlock, { className: b('animate-slides'), animate: animated, children: [_jsx(SwiperReact, { modules: [Autoplay, A11y, Pagination], className: b('slider', className), onSwiper: onSwiper, speed: 1000, autoplay: autoplay, autoHeight: adaptive, initialSlide: initialSlide, noSwiping: false, breakpoints: breakpoints, onSlideChange: onSlideChange, onSlideChangeTransitionStart: onSlideChangeTransitionStart, onSlideChangeTransitionEnd: onSlideChangeTransitionEnd, onActiveIndexChange: onActiveIndexChange, onBreakpoint: onBreakpoint, onLock: () => setIsLocked(true), onUnlock: () => setIsLocked(false), watchOverflow: true, watchSlidesProgress: true, touchStartPreventDefault: false, touchAngle: 45, threshold: 10, longSwipes: true, longSwipesRatio: 0.5, resistance: true, resistanceRatio: 0.5, a11y: {
|
|
44
44
|
slideLabelMessage: '',
|
|
45
45
|
paginationBulletMessage: i18n('dot-label', { index: '{{index}}' }),
|
|
46
46
|
}, ...paginationProps, children: React.Children.map(children, (elem, index) => (_jsx(SwiperSlide, { className: b('slide'), children: ({ isVisible }) => (_jsx("div", { className: b('slide-item'), "aria-hidden": !isA11yControlHidden && !isVisible, children: elem })) }, index))) }), arrows && !isLocked && (_jsx(React.Fragment, { children: _jsxs("div", { "aria-hidden": isA11yControlHidden, children: [_jsx(Arrow, { className: b('arrow', { prev: true }), type: "left", transparent: type === SliderType.HeaderCard, onClick: onPrev, size: arrowSize, extraProps: { tabIndex: controlTabIndex } }), _jsx(Arrow, { className: b('arrow', { next: true }), type: "right", transparent: type === SliderType.HeaderCard, onClick: onNext, size: arrowSize, extraProps: { tabIndex: controlTabIndex } })] }) })), _jsx("div", { className: b('footer'), children: disclaimer ? (_jsx("div", { className: b('disclaimer', { size: disclaimer?.size || 'm' }), children: disclaimer?.text })) : null })] })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport Swiper, {A11y, Autoplay, Pagination} from 'swiper';\nimport {Swiper as SwiperReact, SwiperSlide} from 'swiper/react';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport Title from '../../components/Title/Title';\nimport {ClassNameProps, Refable, SliderProps as SliderParams, SliderType} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {useSlider} from './useSlider';\nimport {useSliderPagination} from './useSliderPagination';\n\nimport './Slider.scss';\nimport 'swiper/swiper-bundle.css';\n\nexport type {Swiper, SwiperOptions} from 'swiper';\n\nconst b = block('SliderBlock');\n\nexport interface SliderProps\n extends Omit<SliderParams, 'children'>,\n Partial<\n Pick<\n SwiperReact,\n | 'onSlideChange'\n | 'onSlideChangeTransitionStart'\n | 'onSlideChangeTransitionEnd'\n | 'onActiveIndexChange'\n | 'onBreakpoint'\n >\n >,\n Refable<HTMLDivElement>,\n ClassNameProps {\n type?: string;\n anchorId?: string;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialSlide?: number;\n}\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nSwiper.use([Autoplay, A11y, Pagination]);\n\nexport const SliderBlock = ({\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplayMs,\n dots = true,\n initialSlide = 0,\n className,\n dotsClassName,\n disclaimer,\n children,\n blockClassName,\n arrowSize,\n slidesToShow,\n onSlideChange,\n onSlideChangeTransitionStart,\n onSlideChangeTransitionEnd,\n onActiveIndexChange,\n onBreakpoint,\n}: React.PropsWithChildren<SliderProps>) => {\n const {\n autoplay,\n isLocked,\n childrenCount,\n breakpoints,\n onSwiper,\n onImagesReady,\n onPrev,\n onNext,\n setIsLocked,\n } = useSlider({\n slidesToShow,\n children,\n type,\n autoplayMs,\n });\n\n const isA11yControlHidden = Boolean(autoplay);\n const controlTabIndex = isA11yControlHidden ? -1 : 0;\n\n const paginationProps = useSliderPagination({\n enabled: dots,\n isA11yControlHidden,\n controlTabIndex,\n bulletClass: b('dot', dotsClassName),\n bulletActiveClass: b('dot_active'),\n paginationLabel: i18n('pagination-label'),\n });\n\n return (\n <div\n className={b(\n {\n 'one-slide': childrenCount === 1,\n 'only-arrows':\n (!title || (typeof title !== 'string' && !title?.text)) &&\n !description &&\n arrows,\n 'without-dots': !dots || isLocked,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n <SwiperReact\n className={b('slider', className)}\n onSwiper={onSwiper}\n speed={1000}\n autoplay={autoplay}\n autoHeight={adaptive}\n initialSlide={initialSlide}\n noSwiping={false}\n breakpoints={breakpoints}\n onSlideChange={onSlideChange}\n onSlideChangeTransitionStart={onSlideChangeTransitionStart}\n onSlideChangeTransitionEnd={onSlideChangeTransitionEnd}\n onActiveIndexChange={onActiveIndexChange}\n onBreakpoint={onBreakpoint}\n onLock={() => setIsLocked(true)}\n onUnlock={() => setIsLocked(false)}\n onImagesReady={onImagesReady}\n watchSlidesVisibility\n watchOverflow\n a11y={{\n slideLabelMessage: '',\n paginationBulletMessage: i18n('dot-label', {index: '{{index}}'}),\n }}\n {...paginationProps}\n >\n {React.Children.map(children, (elem, index) => (\n <SwiperSlide className={b('slide')} key={index}>\n {({isVisible}) => (\n <div\n className={b('slide-item')}\n aria-hidden={!isA11yControlHidden && !isVisible}\n >\n {elem}\n </div>\n )}\n </SwiperSlide>\n ))}\n </SwiperReact>\n {arrows && !isLocked && (\n <React.Fragment>\n <div aria-hidden={isA11yControlHidden}>\n <Arrow\n className={b('arrow', {prev: true})}\n type=\"left\"\n transparent={type === SliderType.HeaderCard}\n onClick={onPrev}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n <Arrow\n className={b('arrow', {next: true})}\n type=\"right\"\n transparent={type === SliderType.HeaderCard}\n onClick={onNext}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n </div>\n </React.Fragment>\n )}\n <div className={b('footer')}>\n {disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer?.size || 'm'})}>\n {disclaimer?.text}\n </div>\n ) : null}\n </div>\n </AnimateBlock>\n </div>\n );\n};\n\nexport default SliderBlock;\n"]}
|
|
1
|
+
{"version":3,"file":"Slider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/Slider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,YAAY,CAAC;AACpB,OAAO,iBAAiB,CAAC;AACzB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,MAAM,IAAI,WAAW,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAEhE,OAAO,MAAM,0CAAuC;AACpD,OAAO,YAAY,sDAAmD;AACtE,OAAO,KAAK,wCAAqC;AACjD,OAAO,EAAuD,UAAU,EAAC,8BAAqB;AAC9F,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAElC,OAAO,KAAK,yBAAsB;AAClC,OAAO,EAAC,IAAI,EAAC,wBAAe;AAC5B,OAAO,EAAC,SAAS,EAAC,uBAAoB;AACtC,OAAO,EAAC,mBAAmB,EAAC,iCAA8B;AAE1D,OAAO,cAAc,CAAC;AAItB,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAwB/B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EACxB,QAAQ,EACR,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,MAAM,GAAG,IAAI,EACb,QAAQ,EACR,QAAQ,EAAE,UAAU,EACpB,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,CAAC,EAChB,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,EACb,4BAA4B,EAC5B,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,GACuB,EAAE,EAAE;IACvC,MAAM,EAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAC,GACzF,SAAS,CAAC;QACN,YAAY;QACZ,QAAQ;QACR,IAAI;QACJ,UAAU;KACb,CAAC,CAAC;IAEP,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,eAAe,GAAG,mBAAmB,CAAC;QACxC,OAAO,EAAE,IAAI;QACb,mBAAmB;QACnB,eAAe;QACf,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC;QACpC,iBAAiB,EAAE,CAAC,CAAC,YAAY,CAAC;QAClC,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO,CACH,eACI,SAAS,EAAE,CAAC,CACR;YACI,WAAW,EAAE,aAAa,KAAK,CAAC;YAChC,aAAa,EACT,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvD,CAAC,WAAW;gBACZ,MAAM;YACV,cAAc,EAAE,CAAC,IAAI,IAAI,QAAQ;YACjC,IAAI;SACP,EACD,cAAc,CACjB,aAEA,QAAQ,IAAI,KAAC,MAAM,IAAC,EAAE,EAAE,QAAQ,GAAI,EACrC,KAAC,KAAK,IACF,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,gBAAgB,EAAE,CAAC,WAAW,EAAC,CAAC,GAC1D,EACF,MAAC,YAAY,IAAC,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,QAAQ,aAC3D,KAAC,WAAW,IACR,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,EACrC,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EACjC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,QAAQ,EACpB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,4BAA4B,EAAE,4BAA4B,EAC1D,0BAA0B,EAAE,0BAA0B,EACtD,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAClC,aAAa,QACb,mBAAmB,QACnB,wBAAwB,EAAE,KAAK,EAC/B,UAAU,EAAE,EAAE,EACd,SAAS,EAAE,EAAE,EACb,UAAU,EAAE,IAAI,EAChB,eAAe,EAAE,GAAG,EACpB,UAAU,EAAE,IAAI,EAChB,eAAe,EAAE,GAAG,EACpB,IAAI,EAAE;4BACF,iBAAiB,EAAE,EAAE;4BACrB,uBAAuB,EAAE,IAAI,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC;yBACnE,KACG,eAAe,YAElB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3C,KAAC,WAAW,IAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAC7B,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE,CAAC,CACd,cACI,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,iBACb,CAAC,mBAAmB,IAAI,CAAC,SAAS,YAE9C,IAAI,GACH,CACT,IARoC,KAAK,CAShC,CACjB,CAAC,GACQ,EACb,MAAM,IAAI,CAAC,QAAQ,IAAI,CACpB,KAAC,KAAK,CAAC,QAAQ,cACX,8BAAkB,mBAAmB,aACjC,KAAC,KAAK,IACF,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EACnC,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,IAAI,KAAK,UAAU,CAAC,UAAU,EAC3C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,EAAC,QAAQ,EAAE,eAAe,EAAC,GACzC,EACF,KAAC,KAAK,IACF,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,EACnC,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,IAAI,KAAK,UAAU,CAAC,UAAU,EAC3C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,EAAC,QAAQ,EAAE,eAAe,EAAC,GACzC,IACA,GACO,CACpB,EACD,cAAK,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,YACtB,UAAU,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,IAAI,GAAG,EAAC,CAAC,YAC3D,UAAU,EAAE,IAAI,GACf,CACT,CAAC,CAAC,CAAC,IAAI,GACN,IACK,IACb,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import * as React from 'react';\n\nimport 'swiper/css';\nimport 'swiper/css/a11y';\nimport 'swiper/css/pagination';\nimport {A11y, Autoplay, Pagination} from 'swiper/modules';\nimport {Swiper as SwiperReact, SwiperSlide} from 'swiper/react';\n\nimport Anchor from '../../components/Anchor/Anchor';\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport Title from '../../components/Title/Title';\nimport {ClassNameProps, Refable, SliderProps as SliderParams, SliderType} from '../../models';\nimport {block} from '../../utils';\n\nimport Arrow from './Arrow/Arrow';\nimport {i18n} from './i18n';\nimport {useSlider} from './useSlider';\nimport {useSliderPagination} from './useSliderPagination';\n\nimport './Slider.scss';\n\nexport type {Swiper, SwiperOptions} from 'swiper/types';\n\nconst b = block('SliderBlock');\n\nexport interface SliderProps\n extends Omit<SliderParams, 'children'>,\n Partial<\n Pick<\n React.ComponentProps<typeof SwiperReact>,\n | 'onSlideChange'\n | 'onSlideChangeTransitionStart'\n | 'onSlideChangeTransitionEnd'\n | 'onActiveIndexChange'\n | 'onBreakpoint'\n >\n >,\n Refable<HTMLDivElement>,\n ClassNameProps {\n type?: string;\n anchorId?: string;\n dotsClassName?: string;\n blockClassName?: string;\n arrowSize?: number;\n initialSlide?: number;\n}\n\nexport const SliderBlock = ({\n animated,\n title,\n description,\n type,\n anchorId,\n arrows = true,\n adaptive,\n autoplay: autoplayMs,\n dots = true,\n initialSlide = 0,\n className,\n dotsClassName,\n disclaimer,\n children,\n blockClassName,\n arrowSize,\n slidesToShow,\n onSlideChange,\n onSlideChangeTransitionStart,\n onSlideChangeTransitionEnd,\n onActiveIndexChange,\n onBreakpoint,\n}: React.PropsWithChildren<SliderProps>) => {\n const {autoplay, isLocked, childrenCount, breakpoints, onSwiper, onPrev, onNext, setIsLocked} =\n useSlider({\n slidesToShow,\n children,\n type,\n autoplayMs,\n });\n\n const isA11yControlHidden = Boolean(autoplay);\n const controlTabIndex = isA11yControlHidden ? -1 : 0;\n\n const paginationProps = useSliderPagination({\n enabled: dots,\n isA11yControlHidden,\n controlTabIndex,\n bulletClass: b('dot', dotsClassName),\n bulletActiveClass: b('dot_active'),\n paginationLabel: i18n('pagination-label'),\n });\n\n return (\n <div\n className={b(\n {\n 'one-slide': childrenCount === 1,\n 'only-arrows':\n (!title || (typeof title !== 'string' && !title?.text)) &&\n !description &&\n arrows,\n 'without-dots': !dots || isLocked,\n type,\n },\n blockClassName,\n )}\n >\n {anchorId && <Anchor id={anchorId} />}\n <Title\n title={title}\n subtitle={description}\n className={b('header', {'no-description': !description})}\n />\n <AnimateBlock className={b('animate-slides')} animate={animated}>\n <SwiperReact\n modules={[Autoplay, A11y, Pagination]}\n className={b('slider', className)}\n onSwiper={onSwiper}\n speed={1000}\n autoplay={autoplay}\n autoHeight={adaptive}\n initialSlide={initialSlide}\n noSwiping={false}\n breakpoints={breakpoints}\n onSlideChange={onSlideChange}\n onSlideChangeTransitionStart={onSlideChangeTransitionStart}\n onSlideChangeTransitionEnd={onSlideChangeTransitionEnd}\n onActiveIndexChange={onActiveIndexChange}\n onBreakpoint={onBreakpoint}\n onLock={() => setIsLocked(true)}\n onUnlock={() => setIsLocked(false)}\n watchOverflow\n watchSlidesProgress\n touchStartPreventDefault={false}\n touchAngle={45}\n threshold={10}\n longSwipes={true}\n longSwipesRatio={0.5}\n resistance={true}\n resistanceRatio={0.5}\n a11y={{\n slideLabelMessage: '',\n paginationBulletMessage: i18n('dot-label', {index: '{{index}}'}),\n }}\n {...paginationProps}\n >\n {React.Children.map(children, (elem, index) => (\n <SwiperSlide className={b('slide')} key={index}>\n {({isVisible}) => (\n <div\n className={b('slide-item')}\n aria-hidden={!isA11yControlHidden && !isVisible}\n >\n {elem}\n </div>\n )}\n </SwiperSlide>\n ))}\n </SwiperReact>\n {arrows && !isLocked && (\n <React.Fragment>\n <div aria-hidden={isA11yControlHidden}>\n <Arrow\n className={b('arrow', {prev: true})}\n type=\"left\"\n transparent={type === SliderType.HeaderCard}\n onClick={onPrev}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n <Arrow\n className={b('arrow', {next: true})}\n type=\"right\"\n transparent={type === SliderType.HeaderCard}\n onClick={onNext}\n size={arrowSize}\n extraProps={{tabIndex: controlTabIndex}}\n />\n </div>\n </React.Fragment>\n )}\n <div className={b('footer')}>\n {disclaimer ? (\n <div className={b('disclaimer', {size: disclaimer?.size || 'm'})}>\n {disclaimer?.text}\n </div>\n ) : null}\n </div>\n </AnimateBlock>\n </div>\n );\n};\n\nexport default SliderBlock;\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type { Swiper } from 'swiper
|
|
2
|
+
import type { Swiper } from 'swiper';
|
|
3
3
|
import { SlidesToShow } from "../../models/index.js";
|
|
4
4
|
type UseSliderProps = React.PropsWithChildren<{
|
|
5
5
|
autoplayMs?: number;
|
|
@@ -11,8 +11,7 @@ export declare const useSlider: ({ children, autoplayMs, type, ...props }: UseSl
|
|
|
11
11
|
onSwiper: React.Dispatch<React.SetStateAction<Swiper | undefined>>;
|
|
12
12
|
onNext: () => void;
|
|
13
13
|
onPrev: () => void;
|
|
14
|
-
|
|
15
|
-
breakpoints: Record<number, import("swiper").SwiperOptions>;
|
|
14
|
+
breakpoints: Record<number, import("swiper/types").SwiperOptions>;
|
|
16
15
|
childrenCount: number;
|
|
17
16
|
isLocked: boolean;
|
|
18
17
|
setIsLocked: React.Dispatch<React.SetStateAction<boolean>>;
|
|
@@ -34,18 +34,15 @@ export const useSlider = ({ children, autoplayMs, type, ...props }) => {
|
|
|
34
34
|
}
|
|
35
35
|
slider.slidePrev();
|
|
36
36
|
};
|
|
37
|
-
const handleImagesReady = React.useCallback((localSlider) => {
|
|
38
|
-
setTimeout(() => localSlider.update(), 100);
|
|
39
|
-
}, []);
|
|
40
37
|
React.useEffect(() => {
|
|
41
|
-
if (!slider) {
|
|
38
|
+
if (!slider || !slider.autoplay) {
|
|
42
39
|
return;
|
|
43
40
|
}
|
|
44
41
|
if (autoplayEnabled) {
|
|
45
|
-
slider
|
|
42
|
+
slider?.autoplay?.start();
|
|
46
43
|
}
|
|
47
44
|
else {
|
|
48
|
-
slider
|
|
45
|
+
slider?.autoplay?.stop();
|
|
49
46
|
}
|
|
50
47
|
}, [slider, autoplayEnabled]);
|
|
51
48
|
return {
|
|
@@ -53,7 +50,6 @@ export const useSlider = ({ children, autoplayMs, type, ...props }) => {
|
|
|
53
50
|
onSwiper: setSlider,
|
|
54
51
|
onNext: handleNext,
|
|
55
52
|
onPrev: handlePrev,
|
|
56
|
-
onImagesReady: handleImagesReady,
|
|
57
53
|
breakpoints,
|
|
58
54
|
childrenCount,
|
|
59
55
|
isLocked,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSlider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/useSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,UAAU,EAAe,8BAAqB;AAEtD,OAAO,EAAC,yBAAyB,EAAE,WAAW,EAAC,mBAAgB;AAQ/D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,EAAiB,EAAE,EAAE;IAChF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACrD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAErD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,eAAe,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,yBAAyB,CAAC;YAC7B,aAAa,EAAE,aAAa;YAC5B,YAAY;YACZ,gBAAgB,EAAE,OAAO,CACrB,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAkB,CAAC,CACjE;SACJ,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAExC,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO;QACX,CAAC;QAED,MAAM,CAAC,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO;QACX,CAAC;QAED,MAAM,CAAC,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"useSlider.js","sourceRoot":"../../../../src","sources":["blocks/Slider/useSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,UAAU,EAAe,8BAAqB;AAEtD,OAAO,EAAC,yBAAyB,EAAE,WAAW,EAAC,mBAAgB;AAQ/D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,KAAK,EAAiB,EAAE,EAAE;IAChF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACrD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAErD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,eAAe,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,OAAO,yBAAyB,CAAC;YAC7B,aAAa,EAAE,aAAa;YAC5B,YAAY;YACZ,gBAAgB,EAAE,OAAO,CACrB,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAkB,CAAC,CACjE;SACJ,CAAC,CAAC;IACP,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAExC,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,OAAO;QACX,CAAC;QAED,MAAM,CAAC,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO;QACX,CAAC;QAED,MAAM,CAAC,SAAS,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YAClB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7B,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAE9B,OAAO;QACH,MAAM;QACN,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,UAAU;QAClB,WAAW;QACX,aAAa;QACb,QAAQ;QACR,WAAW;QACX,QAAQ,EAAE,eAAe,IAAI;YACzB,KAAK,EAAE,UAAU;YACjB,oBAAoB,EAAE,KAAK;SAC9B;KACJ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport type {Swiper} from 'swiper';\n\nimport {SliderType, SlidesToShow} from '../../models';\n\nimport {getSliderResponsiveParams, useMemoized} from './utils';\n\ntype UseSliderProps = React.PropsWithChildren<{\n autoplayMs?: number;\n type?: string;\n slidesToShow?: SlidesToShow;\n}>;\n\nexport const useSlider = ({children, autoplayMs, type, ...props}: UseSliderProps) => {\n const [slider, setSlider] = React.useState<Swiper>();\n const [isLocked, setIsLocked] = React.useState(false);\n const slidesToShow = useMemoized(props.slidesToShow);\n\n const childrenCount = React.Children.count(children);\n\n const autoplayEnabled = autoplayMs !== undefined && autoplayMs > 0;\n\n const breakpoints = React.useMemo(() => {\n return getSliderResponsiveParams({\n contentLength: childrenCount,\n slidesToShow,\n mobileFullscreen: Boolean(\n type && Object.values(SliderType).includes(type as SliderType),\n ),\n });\n }, [slidesToShow, type, childrenCount]);\n\n const handleNext = () => {\n if (!slider) {\n return;\n }\n\n if (slider.isEnd) {\n slider.slideTo(0);\n return;\n }\n\n slider.slideNext();\n };\n\n const handlePrev = () => {\n if (!slider) {\n return;\n }\n\n if (slider.isBeginning) {\n slider.slideTo(childrenCount - 1);\n return;\n }\n\n slider.slidePrev();\n };\n\n React.useEffect(() => {\n if (!slider || !slider.autoplay) {\n return;\n }\n\n if (autoplayEnabled) {\n slider?.autoplay?.start();\n } else {\n slider?.autoplay?.stop();\n }\n }, [slider, autoplayEnabled]);\n\n return {\n slider,\n onSwiper: setSlider,\n onNext: handleNext,\n onPrev: handlePrev,\n breakpoints,\n childrenCount,\n isLocked,\n setIsLocked,\n autoplay: autoplayEnabled && {\n delay: autoplayMs,\n disableOnInteraction: false,\n },\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSliderPagination.js","sourceRoot":"../../../../src","sources":["blocks/Slider/useSliderPagination.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,mBAAgB;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAOnC,EAAsE,EAAE;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,EAAC,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAC,GACzF,KAAK,CAAC;IAEV,OAAO;QACH,UAAU,EAAE;YACR,SAAS,EAAE,IAAI;YACf,WAAW;YACX,iBAAiB;SACpB;QACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAExC,oBAAoB,CAAC,UAAU,EAAE;gBAC7B,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,mBAAmB;gBAClC,YAAY,EAAE,eAAe;aAChC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;YAE/D,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;gBAE9D,oBAAoB,CAAC,MAAM,EAAE;oBACzB,IAAI,EAAE,eAAe;oBACrB,aAAa,EAAE,mBAAmB;oBAClC,cAAc,EAAE,QAAQ;oBACxB,QAAQ,EAAE,eAAe;iBAC5B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useSliderPagination.js","sourceRoot":"../../../../src","sources":["blocks/Slider/useSliderPagination.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,mBAAgB;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAOnC,EAAsE,EAAE;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,EAAC,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAC,GACzF,KAAK,CAAC;IAEV,OAAO;QACH,UAAU,EAAE;YACR,SAAS,EAAE,IAAI;YACf,WAAW;YACX,iBAAiB;SACpB;QACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAExC,oBAAoB,CAAC,UAAU,EAAE;gBAC7B,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,mBAAmB;gBAClC,YAAY,EAAE,eAAe;aAChC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;YAE/D,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;gBAE9D,oBAAoB,CAAC,MAAM,EAAE;oBACzB,IAAI,EAAE,eAAe;oBACrB,aAAa,EAAE,mBAAmB;oBAClC,cAAc,EAAE,QAAQ;oBACxB,QAAQ,EAAE,eAAe;iBAC5B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type {SwiperProps} from 'swiper/react';\n\nimport {setElementAtrributes} from './utils';\n\nexport const useSliderPagination = (props: {\n enabled: boolean;\n isA11yControlHidden: boolean;\n controlTabIndex: number;\n bulletClass: string;\n bulletActiveClass: string;\n paginationLabel: string;\n}): Pick<SwiperProps, 'pagination' | 'onPaginationUpdate'> | undefined => {\n if (!props.enabled) {\n return undefined;\n }\n\n const {isA11yControlHidden, controlTabIndex, bulletClass, bulletActiveClass, paginationLabel} =\n props;\n\n return {\n pagination: {\n clickable: true,\n bulletClass,\n bulletActiveClass,\n },\n onPaginationUpdate: (slider) => {\n const pagination = slider.pagination.el;\n\n setElementAtrributes(pagination, {\n role: 'menu',\n 'aria-hidden': isA11yControlHidden,\n 'aria-label': paginationLabel,\n });\n\n const bullets = pagination.querySelectorAll(`.${bulletClass}`);\n\n bullets.forEach((bullet) => {\n const isActive = bullet.classList.contains(bulletActiveClass);\n\n setElementAtrributes(bullet, {\n role: 'menuitemradio',\n 'aria-hidden': isA11yControlHidden,\n 'aria-checked': isActive,\n tabindex: controlTabIndex,\n });\n });\n },\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"../../../../src","sources":["blocks/Slider/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,OAAO,0BAAuB;AACrC,OAAO,MAAM,yBAAsB;AAGnC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,OAAO,EAAC,qBAAqB,EAAuC,oBAAiB;AAErF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACrC,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,IAAI;CACnC,CAAC;AAQF,MAAM,UAAU,yBAAyB,CAAC,EACtC,aAAa,EACb,YAAY,EACZ,gBAAgB,GACI;IACpB,IAAI,MAAM,CAAC;IAEX,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAClD,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,YAAY,EAAC,CAAC,EACnE,EAA4B,CAC/B,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,YAAY,IAAI,yBAAyB,CAAC;IACvD,CAAC;IAED,MAAM,SAAS,GAAG;QACd,GAAG,yBAAyB;QAC5B,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,EAAE,EAAE,CAAC,gBAAgB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAChF,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7B,6CAA6C;QAC7C,GAAG,CAAC,WAAW,CAAC,cAAuC,CAAC,GAAG,CAAC,CAAC,GAAG;YAC5D,aAAa,EAAE,KAAK;SACvB,CAAC;QACF,OAAO,GAAG,CAAC;IACf,CAAC,EACD,EAAmC,CACtC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAK,EAAE;IAC1C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,gBAAgB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CACpF,CAAC;IACN,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAE,UAAmC,EAAE,EAAE,CAC1F,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CACtD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACjD,CAAC","sourcesContent":["import * as React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pickBy from 'lodash/pickBy';\nimport type {SwiperOptions} from 'swiper/types
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"../../../../src","sources":["blocks/Slider/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,OAAO,0BAAuB;AACrC,OAAO,MAAM,yBAAsB;AAGnC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,OAAO,EAAC,qBAAqB,EAAuC,oBAAiB;AAErF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACrC,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,IAAI;CACnC,CAAC;AAQF,MAAM,UAAU,yBAAyB,CAAC,EACtC,aAAa,EACb,YAAY,EACZ,gBAAgB,GACI;IACpB,IAAI,MAAM,CAAC;IAEX,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAClD,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,YAAY,EAAC,CAAC,EACnE,EAA4B,CAC/B,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,YAAY,IAAI,yBAAyB,CAAC;IACvD,CAAC;IAED,MAAM,SAAS,GAAG;QACd,GAAG,yBAAyB;QAC5B,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,EAAE,EAAE,CAAC,gBAAgB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAChF,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE;QAC7B,6CAA6C;QAC7C,GAAG,CAAC,WAAW,CAAC,cAAuC,CAAC,GAAG,CAAC,CAAC,GAAG;YAC5D,aAAa,EAAE,KAAK;SACvB,CAAC;QACF,OAAO,GAAG,CAAC;IACf,CAAC,EACD,EAAmC,CACtC,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,KAAQ,EAAK,EAAE;IAC1C,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,gBAAgB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CACpF,CAAC;IACN,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAE,UAAmC,EAAE,EAAE,CAC1F,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CACtD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CACjD,CAAC","sourcesContent":["import * as React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport pickBy from 'lodash/pickBy';\nimport type {SwiperOptions} from 'swiper/types';\n\nimport {BREAKPOINTS} from '../../constants';\n\nimport {SliderBreakpointNames, SliderBreakpointParams, SlidesToShow} from './models';\n\nexport const DEFAULT_SLIDE_BREAKPOINTS = {\n [SliderBreakpointNames.Lg]: 3,\n [SliderBreakpointNames.Md]: 2,\n [SliderBreakpointNames.Sm]: 2,\n [SliderBreakpointNames.Xs]: 1.15,\n};\n\nexport interface GetSlidesToShowParams {\n contentLength: number;\n slidesToShow?: SlidesToShow;\n mobileFullscreen?: boolean;\n}\n\nexport function getSliderResponsiveParams({\n contentLength,\n slidesToShow,\n mobileFullscreen,\n}: GetSlidesToShowParams) {\n let result;\n\n if (typeof slidesToShow === 'number') {\n result = Object.keys(DEFAULT_SLIDE_BREAKPOINTS).reduce(\n (acc, breakpointName) => ({...acc, [breakpointName]: slidesToShow}),\n {} as SliderBreakpointParams,\n );\n } else {\n result = slidesToShow || DEFAULT_SLIDE_BREAKPOINTS;\n }\n\n const showCount = {\n ...DEFAULT_SLIDE_BREAKPOINTS,\n ...pickBy(result, (value) => !isNaN(value)),\n xs: !mobileFullscreen && contentLength > 1 ? DEFAULT_SLIDE_BREAKPOINTS.xs : 1,\n };\n\n return Object.entries(showCount).reduce(\n (res, [breakpointName, value]) => {\n // eslint-disable-next-line no-param-reassign\n res[BREAKPOINTS[breakpointName as SliderBreakpointNames] + 1] = {\n slidesPerView: value,\n };\n return res;\n },\n {} as Record<number, SwiperOptions>,\n );\n}\n\nexport const useMemoized = <T>(value: T): T => {\n const [memoizedValue, setMemoizedValue] = React.useState(value);\n\n React.useEffect(() => {\n setMemoizedValue((memoized) =>\n value && typeof value === 'object' && isEqual(memoized, value) ? memoized : value,\n );\n }, [value]);\n\n return memoizedValue;\n};\n\nexport const setElementAtrributes = (element: Element, attributes: Record<string, unknown>) =>\n Object.entries(attributes).forEach(([attribute, value]) =>\n element.setAttribute(attribute, String(value)),\n );\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
2
3
|
import { Table, YFMWrapper } from "../../components/index.js";
|
|
3
4
|
import { Col, Grid, GridColumnSize, Row } from "../../grid/index.js";
|
|
4
5
|
import { block } from "../../utils/index.js";
|
|
@@ -6,9 +7,20 @@ import './Table.css';
|
|
|
6
7
|
const b = block('table-block');
|
|
7
8
|
export const TableBlock = (props) => {
|
|
8
9
|
const { title, table } = props;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const tableMicrodataScript = React.useMemo(() => {
|
|
11
|
+
const json = JSON.stringify({
|
|
12
|
+
'@context': 'https://schema.org',
|
|
13
|
+
'@type': 'Table',
|
|
14
|
+
name: title,
|
|
15
|
+
description: table.caption,
|
|
16
|
+
accessMode: 'textual',
|
|
17
|
+
accessibilityFeature: 'tableOfContents',
|
|
18
|
+
});
|
|
19
|
+
return _jsx("script", { type: "application/ld+json", dangerouslySetInnerHTML: { __html: json } });
|
|
20
|
+
}, [title, table.caption]);
|
|
21
|
+
return (_jsxs("div", { className: b(), children: [tableMicrodataScript, _jsx(Grid, { className: b('content'), children: _jsxs(Row, { className: b('row'), children: [_jsx(Col, { sizes: { [GridColumnSize.Md]: 4, [GridColumnSize.All]: 12 }, children: _jsx(YFMWrapper, { tagName: "h2", contentClassName: b('title'), content: title, modifiers: {
|
|
22
|
+
constructor: true,
|
|
23
|
+
} }) }), _jsx(Col, { sizes: { [GridColumnSize.Md]: 8, [GridColumnSize.All]: 12 }, children: _jsx(Table, { className: b('table'), ...table }) })] }) })] }));
|
|
12
24
|
};
|
|
13
25
|
export default TableBlock;
|
|
14
26
|
//# sourceMappingURL=Table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"../../../../src","sources":["blocks/Table/Table.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,KAAK,EAAE,UAAU,EAAC,kCAAyB;AACnD,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAC,4BAAmB;AAE1D,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAElC,OAAO,aAAa,CAAC;AAErB,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;IACjD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,KAAK,CAAC;IAE7B,OAAO,CACH,
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"../../../../src","sources":["blocks/Table/Table.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,KAAK,EAAE,UAAU,EAAC,kCAAyB;AACnD,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAC,4BAAmB;AAE1D,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAElC,OAAO,aAAa,CAAC;AAErB,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;IACjD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,KAAK,CAAC;IAE7B,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YACxB,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,KAAK,CAAC,OAAO;YAC1B,UAAU,EAAE,SAAS;YACrB,oBAAoB,EAAE,iBAAiB;SAC1C,CAAC,CAAC;QACH,OAAO,iBAAQ,IAAI,EAAC,qBAAqB,EAAC,uBAAuB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,GAAI,CAAC;IAC1F,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE3B,OAAO,CACH,eAAK,SAAS,EAAE,CAAC,EAAE,aACd,oBAAoB,EACrB,KAAC,IAAI,IAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YACzB,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,aACpB,KAAC,GAAG,IAAC,KAAK,EAAE,EAAC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAC,YAC1D,KAAC,UAAU,IACP,OAAO,EAAC,IAAI,EACZ,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,EAC5B,OAAO,EAAE,KAAK,EACd,SAAS,EAAE;oCACP,WAAW,EAAE,IAAI;iCACpB,GACH,GACA,EACN,KAAC,GAAG,IAAC,KAAK,EAAE,EAAC,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAC,YAC1D,KAAC,KAAK,IAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,KAAM,KAAK,GAAI,GACzC,IACJ,GACH,IACL,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {Table, YFMWrapper} from '../../components';\nimport {Col, Grid, GridColumnSize, Row} from '../../grid';\nimport {TableBlockProps} from '../../models';\nimport {block} from '../../utils';\n\nimport './Table.scss';\n\nconst b = block('table-block');\n\nexport const TableBlock = (props: TableBlockProps) => {\n const {title, table} = props;\n\n const tableMicrodataScript = React.useMemo(() => {\n const json = JSON.stringify({\n '@context': 'https://schema.org',\n '@type': 'Table',\n name: title,\n description: table.caption,\n accessMode: 'textual',\n accessibilityFeature: 'tableOfContents',\n });\n return <script type=\"application/ld+json\" dangerouslySetInnerHTML={{__html: json}} />;\n }, [title, table.caption]);\n\n return (\n <div className={b()}>\n {tableMicrodataScript}\n <Grid className={b('content')}>\n <Row className={b('row')}>\n <Col sizes={{[GridColumnSize.Md]: 4, [GridColumnSize.All]: 12}}>\n <YFMWrapper\n tagName=\"h2\"\n contentClassName={b('title')}\n content={title}\n modifiers={{\n constructor: true,\n }}\n />\n </Col>\n <Col sizes={{[GridColumnSize.Md]: 8, [GridColumnSize.All]: 12}}>\n <Table className={b('table')} {...table} />\n </Col>\n </Row>\n </Grid>\n </div>\n );\n};\n\nexport default TableBlock;\n"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { createElement as _createElement } from "react";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import * as React from 'react';
|
|
4
|
+
import { useUniqId } from '@gravity-ui/uikit';
|
|
5
|
+
import { FullscreenImage, YFMWrapper } from "../../../components/index.js";
|
|
6
|
+
import { getMediaImage } from "../../../components/Media/Image/utils.js";
|
|
7
|
+
import Media from "../../../components/Media/Media.js";
|
|
8
|
+
import { getHeight } from "../../../components/VideoBlock/VideoBlock.js";
|
|
4
9
|
import { ProjectSettingsContext } from "../../../context/projectSettingsContext/index.js";
|
|
5
|
-
import { block, getThemedValue } from "../../../utils/index.js";
|
|
6
10
|
import { useTheme } from "../../../context/theme/index.js";
|
|
7
|
-
import { getHeight } from "../../../components/VideoBlock/VideoBlock.js";
|
|
8
|
-
import { getMediaImage } from "../../../components/Media/Image/utils.js";
|
|
9
|
-
import TabsTextContent from "../TabsTextContent/TabsTextContent.js";
|
|
10
11
|
import { Col, GridColumnOrderClasses, Row } from "../../../grid/index.js";
|
|
11
|
-
import
|
|
12
|
+
import { block, getThemedValue } from "../../../utils/index.js";
|
|
12
13
|
import { mergeVideoMicrodata } from "../../../utils/microdata.js";
|
|
13
|
-
import
|
|
14
|
-
import { useUniqId } from '@gravity-ui/uikit';
|
|
14
|
+
import TabsTextContent from "../TabsTextContent/TabsTextContent.js";
|
|
15
15
|
import './TabContent.css';
|
|
16
16
|
const b = block('tab-content');
|
|
17
17
|
export const TabContent = ({ tabData, isActive, isReverse, contentSize, centered, play, getTabElementId, getTabContentElementId, }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabContent.js","sourceRoot":"../../../../../src","sources":["blocks/Tabs/TabContent/TabContent.tsx"],"names":[],"mappings":";;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"TabContent.js","sourceRoot":"../../../../../src","sources":["blocks/Tabs/TabContent/TabContent.tsx"],"names":[],"mappings":";;AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,qCAA4B;AAChE,OAAO,EAAC,aAAa,EAAC,iDAA8C;AACpE,OAAO,KAAK,2CAAwC;AACpD,OAAO,EAAC,SAAS,EAAC,qDAAkD;AACpE,OAAO,EAAC,sBAAsB,EAAC,yDAAgD;AAC/E,OAAO,EAAC,QAAQ,EAAC,wCAA+B;AAChD,OAAO,EAAC,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAC,+BAAsB;AAE/D,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,gCAAuB;AACrD,OAAO,EAAC,mBAAmB,EAAC,oCAAiC;AAC7D,OAAO,eAAe,8CAA2C;AAEjE,OAAO,kBAAkB,CAAC;AAE1B,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAa/B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,eAAe,EACf,sBAAsB,GACR,EAAE,EAAE;IAClB,MAAM,EAAC,OAAO,EAAC,GAAG,OAAO,CAAC;IAE1B,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,EAAC,qBAAqB,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,iBAAiB,EAAE,OAAO,EAAE,WAAW,CAAC;IAC3D,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,KAAK,CAAC,QAAQ,CACtD,iBAAiB,EAAE,OAAO,EAAE,YAAY,CAC3C,CAAC;IAEF,MAAM,YAAY,GAAG,qBAAqB,IAAI,QAAQ,CAAC;IAEvD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACzD,MAAM,gBAAgB,GAAG,UAAU,IAAI,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC;IAE3E,0FAA0F;IAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,gBAAgB,GAAG,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;QAEnE,IAAI,OAAO,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAC5B,kBAAkB,EAAE,SAAS;aAChC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9C,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,IAAI,cAAc,KAAK,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;YAC9D,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAChE,CAAC;IACL,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,iBAAiB,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElC,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAE1C,MAAM,WAAW,GAAG,QAAQ,IAAI,CAC5B,KAAC,eAAe,IACZ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,IAAI,SAAS,EACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GACpB,CACL,CAAC;IAEF,MAAM,YAAY,GAAG,SAAS,IAAI,CAC9B,MAAC,GAAG,IACA,KAAK,EAAE,EAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAC,EACvB,MAAM,EAAE;YACJ,GAAG,EAAE,sBAAsB,CAAC,IAAI;YAChC,EAAE,EAAE,sBAAsB,CAAC,KAAK;SACnC,EACD,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,aAExC,OAAO,CAAC,KAAK,IAAI,CACd,cAAK,KAAK,EAAE,EAAC,SAAS,EAAE,gBAAgB,IAAI,cAAc,EAAC,YACvD,cAAK,GAAG,EAAE,iBAAiB,YACvB,eAAC,KAAK,OACE,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;4BAC1D,IAAI,EAAE,OAAO,CAAC,OAAO;4BACrB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;yBAC7D,CAAC,EACF,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,MAAM,EAAC,CAAC,EAC/B,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,gBAAgB,IAAI,SAAS,EACrC,WAAW,EAAE,iBAAiB,GAChC,GACA,GACJ,CACT,EACA,UAAU,IAAI,CACX,KAAC,KAAK,CAAC,QAAQ,cACX,KAAC,eAAe,OAAK,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,MAAM,EAAC,CAAC,GAAI,GAC5D,CACpB,EACA,OAAO,CAAC,OAAO,IAAI,CAChB,cAAK,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,YACvC,KAAC,UAAU,IACP,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,EAC9B,EAAE,EAAE,SAAS,GACf,GACA,CACT,IACC,CACT,CAAC;IAEF,OAAO,CACH,MAAC,GAAG,IAEA,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAC,CAAC,EAC5D,EAAE,EAAE,sBAAsB,EAAE,CAAC,OAAO,CAAC,EACrC,IAAI,EAAC,UAAU,EACf,SAAS,EAAE;YACP,iBAAiB,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC;SAChD,aAEA,YAAY,EACZ,WAAW,KATP,OAAO,CAUV,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {useUniqId} from '@gravity-ui/uikit';\n\nimport {FullscreenImage, YFMWrapper} from '../../../components';\nimport {getMediaImage} from '../../../components/Media/Image/utils';\nimport Media from '../../../components/Media/Media';\nimport {getHeight} from '../../../components/VideoBlock/VideoBlock';\nimport {ProjectSettingsContext} from '../../../context/projectSettingsContext';\nimport {useTheme} from '../../../context/theme';\nimport {Col, GridColumnOrderClasses, Row} from '../../../grid';\nimport {ContentSize, TabsBlockItem} from '../../../models';\nimport {block, getThemedValue} from '../../../utils';\nimport {mergeVideoMicrodata} from '../../../utils/microdata';\nimport TabsTextContent from '../TabsTextContent/TabsTextContent';\n\nimport './TabContent.scss';\n\nconst b = block('tab-content');\n\nexport interface TabContentProps {\n tabData: TabsBlockItem;\n isActive: boolean;\n isReverse: boolean;\n contentSize: ContentSize;\n centered?: boolean;\n play: boolean;\n getTabElementId?: (tabId: string) => string;\n getTabContentElementId?: (tabId: string) => string;\n}\n\nexport const TabContent = ({\n tabData,\n isActive,\n isReverse,\n contentSize,\n centered,\n play,\n getTabElementId,\n getTabContentElementId,\n}: TabContentProps) => {\n const {tabName} = tabData;\n\n const mediaContainerRef = React.useRef<HTMLDivElement>(null);\n const theme = useTheme();\n const {renderInvisibleBlocks} = React.useContext(ProjectSettingsContext);\n\n const captionId = useUniqId();\n\n const mediaWidth = mediaContainerRef?.current?.offsetWidth;\n const [minImageHeight, setMinImageHeight] = React.useState(\n mediaContainerRef?.current?.offsetHeight,\n );\n\n const shouldRender = renderInvisibleBlocks || isActive;\n\n const themedImage = getThemedValue(tabData.image, theme);\n const themedMedia = getThemedValue(tabData.media, theme);\n\n const hasNoImage = !themedMedia?.image && !tabData.image;\n const mediaVideoHeight = hasNoImage && mediaWidth && getHeight(mediaWidth);\n\n // TODO remove property support activeTabData?.image. Use only activeTabData?.media?.image\n const imageProps = React.useMemo(() => {\n const imagePropsResult = themedImage && getMediaImage(themedImage);\n\n if (tabData.caption && imagePropsResult) {\n Object.assign(imagePropsResult, {\n 'aria-describedby': captionId,\n });\n }\n\n return imagePropsResult;\n }, [captionId, tabData.caption, themedImage]);\n\n const handleImageHeight = React.useCallback(() => {\n if (minImageHeight !== mediaContainerRef?.current?.offsetHeight) {\n setMinImageHeight(mediaContainerRef?.current?.offsetHeight);\n }\n }, [minImageHeight]);\n\n React.useEffect(() => {\n handleImageHeight();\n }, [isActive, handleImageHeight]);\n\n if (!shouldRender) {\n return null;\n }\n\n const showMedia = isActive && Boolean(tabData.media || imageProps);\n const showText = Boolean(tabData.text);\n const border = tabData.border || 'shadow';\n\n const textContent = showText && (\n <TabsTextContent\n showMedia={showMedia}\n data={tabData}\n imageProps={imageProps || undefined}\n isReverse={isReverse}\n contentSize={contentSize}\n centered={centered}\n />\n );\n\n const mediaContent = showMedia && (\n <Col\n sizes={{all: 12, md: 8}}\n orders={{\n all: GridColumnOrderClasses.Last,\n md: GridColumnOrderClasses.First,\n }}\n className={b('col', {centered: centered})}\n >\n {tabData.media && (\n <div style={{minHeight: mediaVideoHeight || minImageHeight}}>\n <div ref={mediaContainerRef}>\n <Media\n {...mergeVideoMicrodata(getThemedValue(tabData.media, theme), {\n name: tabData.tabName,\n description: tabData.caption ? tabData.caption : undefined,\n })}\n key={tabName}\n className={b('media', {border})}\n playVideo={play}\n height={mediaVideoHeight || undefined}\n onImageLoad={handleImageHeight}\n />\n </div>\n </div>\n )}\n {imageProps && (\n <React.Fragment>\n <FullscreenImage {...imageProps} imageClassName={b('image', {border})} />\n </React.Fragment>\n )}\n {tabData.caption && (\n <div className={b('caption')} id={captionId}>\n <YFMWrapper\n content={tabData.caption}\n modifiers={{constructor: true}}\n id={captionId}\n />\n </div>\n )}\n </Col>\n );\n\n return (\n <Row\n key={tabName}\n className={b('row', {reverse: isReverse, hidden: !isActive})}\n id={getTabContentElementId?.(tabName)}\n role=\"tabpanel\"\n ariaProps={{\n 'aria-labelledby': getTabElementId?.(tabName),\n }}\n >\n {mediaContent}\n {textContent}\n </Row>\n );\n};\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { getUniqId } from '@gravity-ui/uikit';
|
|
3
4
|
import AnimateBlock from "../../components/AnimateBlock/AnimateBlock.js";
|
|
4
5
|
import ButtonTabs from "../../components/ButtonTabs/ButtonTabs.js";
|
|
5
6
|
import Title from "../../components/Title/Title.js";
|
|
6
7
|
import { Col, GridJustifyContent, Row } from "../../grid/index.js";
|
|
7
8
|
import { block } from "../../utils/index.js";
|
|
8
|
-
import './Tabs.css';
|
|
9
9
|
import { TabContent } from "./TabContent/TabContent.js";
|
|
10
|
-
import
|
|
10
|
+
import './Tabs.css';
|
|
11
11
|
const b = block('tabs-block');
|
|
12
12
|
export const TabsBlock = ({ items, title, description, animated, tabsColSizes, centered, direction = 'media-content', contentSize = 's', }) => {
|
|
13
13
|
const [activeTab, setActiveTab] = React.useState(items[0].tabName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sourceRoot":"../../../../src","sources":["blocks/Tabs/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,YAAY,sDAAmD;AACtE,OAAO,UAAiC,kDAA+C;AACvF,OAAO,KAAK,wCAAqC;AACjD,OAAO,EAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAC,4BAAmB;AAExD,OAAO,EAAC,KAAK,EAAC,6BAAoB;
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"../../../../src","sources":["blocks/Tabs/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAE5C,OAAO,YAAY,sDAAmD;AACtE,OAAO,UAAiC,kDAA+C;AACvF,OAAO,KAAK,wCAAqC;AACjD,OAAO,EAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAC,4BAAmB;AAExD,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAElC,OAAO,EAAC,UAAU,EAAC,mCAAgC;AAEnD,OAAO,YAAY,CAAC;AAEpB,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AAE9B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EACtB,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,SAAS,GAAG,eAAe,EAC3B,WAAW,GAAG,GAAG,GACJ,EAAE,EAAE;IACjB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAClF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAEvD,MAAM,IAAI,GAA0B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,SAAS,GAAG,SAAS,KAAK,eAAe,CAAC;IAEhD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CACxB,GAAG,EAAE,CACD,KAAK,CAAC,MAAM,CACR,CAAC,GAAG,EAAE,EAAC,OAAO,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAC,CAAC,EAChE,EAA4B,CAC/B,EACL,CAAC,KAAK,CAAC,CACV,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9D,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;IAE7E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,KAAoB,EAAE,CAA0D,EAAE,EAAE;QACjF,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC;YAC3B,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,SAAS;SACnB,CAAC,CAAC;IACP,CAAC,EACD,EAAE,CACL,CAAC;IAEF,OAAO,CACH,MAAC,YAAY,IAAC,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,aAC1E,KAAC,KAAK,IACF,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,GAC7C,EACF,KAAC,GAAG,IAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YACjE,KAAC,GAAG,IAAC,KAAK,EAAE,YAAY,YACpB,KAAC,UAAU,IACP,KAAK,EAAE,IAAI,EACX,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,EAC1C,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB,GAChD,GACA,GACJ,EACL,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnB,MAAM,EAAC,OAAO,EAAC,GAAG,OAAO,CAAC;gBAE1B,OAAO,CACH,KAAC,UAAU,IAEP,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,KAAK,SAAS,EAC/B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB,IARzC,OAAO,CASd,CACL,CAAC;YACN,CAAC,CAAC,IACS,CAClB,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {getUniqId} from '@gravity-ui/uikit';\n\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport ButtonTabs, {ButtonTabsItemProps} from '../../components/ButtonTabs/ButtonTabs';\nimport Title from '../../components/Title/Title';\nimport {Col, GridJustifyContent, Row} from '../../grid';\nimport {TabsBlockProps} from '../../models';\nimport {block} from '../../utils';\n\nimport {TabContent} from './TabContent/TabContent';\n\nimport './Tabs.scss';\n\nconst b = block('tabs-block');\n\nexport const TabsBlock = ({\n items,\n title,\n description,\n animated,\n tabsColSizes,\n centered,\n direction = 'media-content',\n contentSize = 's',\n}: TabsBlockProps) => {\n const [activeTab, setActiveTab] = React.useState<string | null>(items[0].tabName);\n const [play, setPlay] = React.useState<boolean>(false);\n\n const tabs: ButtonTabsItemProps[] = items.map(({tabName}) => ({title: tabName, id: tabName}));\n const isReverse = direction === 'content-media';\n\n const tabIds = React.useMemo(\n () =>\n items.reduce(\n (acc, {tabName}) => Object.assign(acc, {[tabName]: getUniqId()}),\n {} as Record<string, string>,\n ),\n [items],\n );\n\n const getTabElementId = (tabId: string) => `${tabIds[tabId]}`;\n const getTabContentElementId = (tabId: string) => `${tabIds[tabId]}-content`;\n\n const onSelectTab = React.useCallback(\n (tabId: string | null, e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n setActiveTab(tabId);\n e.currentTarget.scrollIntoView({\n inline: 'center',\n behavior: 'smooth',\n block: 'nearest',\n });\n },\n [],\n );\n\n return (\n <AnimateBlock className={b()} onScroll={() => setPlay(true)} animate={animated}>\n <Title\n title={title}\n subtitle={description}\n className={b('title', {centered: centered})}\n />\n <Row justifyContent={centered ? GridJustifyContent.Center : undefined}>\n <Col sizes={tabsColSizes}>\n <ButtonTabs\n items={tabs}\n onSelectTab={onSelectTab}\n activeTab={activeTab}\n className={b('tabs', {centered: centered})}\n getTabElementId={getTabElementId}\n getTabContentElementId={getTabContentElementId}\n />\n </Col>\n </Row>\n {items.map((tabData) => {\n const {tabName} = tabData;\n\n return (\n <TabContent\n key={tabName}\n tabData={tabData}\n isActive={tabName === activeTab}\n isReverse={isReverse}\n contentSize={contentSize}\n centered={centered}\n play={play}\n getTabElementId={getTabElementId}\n getTabContentElementId={getTabContentElementId}\n />\n );\n })}\n </AnimateBlock>\n );\n};\n\nexport default TabsBlock;\n"]}
|
|
@@ -571,6 +571,17 @@ export declare const tabsItem: {
|
|
|
571
571
|
};
|
|
572
572
|
};
|
|
573
573
|
} | undefined;
|
|
574
|
+
labels?: {
|
|
575
|
+
type: string;
|
|
576
|
+
items: {
|
|
577
|
+
type: string;
|
|
578
|
+
properties: {
|
|
579
|
+
when: {
|
|
580
|
+
type: string;
|
|
581
|
+
};
|
|
582
|
+
};
|
|
583
|
+
};
|
|
584
|
+
} | undefined;
|
|
574
585
|
controlPosition?: {
|
|
575
586
|
type: string;
|
|
576
587
|
enum: string[];
|
|
@@ -6,13 +6,8 @@ unpredictable css rules order in build */
|
|
|
6
6
|
.pc-button-block__content {
|
|
7
7
|
display: flex;
|
|
8
8
|
align-items: center;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
width: 18px;
|
|
12
|
-
height: 18px;
|
|
13
|
-
}
|
|
14
|
-
.pc-button-block__image + .pc-button-block__text, .pc-button-block__text + .pc-button-block__image {
|
|
15
|
-
margin-left: var(--btn-image-margin);
|
|
9
|
+
justify-content: center;
|
|
10
|
+
gap: var(--g-spacing-2);
|
|
16
11
|
}
|
|
17
12
|
.pc-button-block_theme_github.pc-button-block_theme_github.pc-button-block_theme_github.pc-button-block_theme_github {
|
|
18
13
|
--g-button-background-color: var(--pc-monochrome-button-background-color);
|
|
@@ -7,9 +7,11 @@ import { useAnalytics } from "../../hooks/index.js";
|
|
|
7
7
|
import { Github } from "../../icons/index.js";
|
|
8
8
|
import { DefaultEventNames } from "../../models/index.js";
|
|
9
9
|
import { block, setUrlTld } from "../../utils/index.js";
|
|
10
|
+
import { getGravityIcon } from "../../utils/icons.js";
|
|
10
11
|
import { i18n } from "./i18n/index.js";
|
|
11
12
|
import { ICON_QA, toCommonSize, toCommonView } from "./utils.js";
|
|
12
13
|
import './Button.css';
|
|
14
|
+
const DEFAULT_IMG_SIZE = 16;
|
|
13
15
|
const b = block('button-block');
|
|
14
16
|
// eslint-disable-next-line complexity
|
|
15
17
|
const Button = (props) => {
|
|
@@ -25,10 +27,18 @@ const Button = (props) => {
|
|
|
25
27
|
}, [handleAnalytics, analyticsEvents, onClickOrigin]);
|
|
26
28
|
const buttonModifiers = { size, theme, width };
|
|
27
29
|
const buttonImg = img instanceof Object
|
|
28
|
-
? {
|
|
30
|
+
? {
|
|
31
|
+
url: img.url,
|
|
32
|
+
iconData: img.iconData,
|
|
33
|
+
iconSize: img.iconSize,
|
|
34
|
+
className: img.className,
|
|
35
|
+
position: img.position || defaultImgPosition,
|
|
36
|
+
alt: img.alt,
|
|
37
|
+
}
|
|
29
38
|
: { url: img, position: defaultImgPosition };
|
|
39
|
+
const { position, iconData, iconSize, className: iconClassName, url: imgUrl, alt } = buttonImg;
|
|
30
40
|
const buttonClass = img
|
|
31
|
-
? b({ position
|
|
41
|
+
? b({ position, ...buttonModifiers }, className)
|
|
32
42
|
: b({ ...buttonModifiers }, className);
|
|
33
43
|
const buttonProps = {
|
|
34
44
|
...rest,
|
|
@@ -40,13 +50,28 @@ const Button = (props) => {
|
|
|
40
50
|
return _jsx(StoreBadge, { className: buttonClass, platform: platform, href: url });
|
|
41
51
|
}
|
|
42
52
|
let icon;
|
|
43
|
-
let image
|
|
53
|
+
let image;
|
|
54
|
+
if (img && iconData) {
|
|
55
|
+
let finalIconData = iconData;
|
|
56
|
+
if (typeof iconData === 'string') {
|
|
57
|
+
const gravityIcon = getGravityIcon(iconData);
|
|
58
|
+
if (gravityIcon) {
|
|
59
|
+
finalIconData = gravityIcon;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const finalIconClassName = iconClassName ? b('icon', iconClassName) : b('icon');
|
|
63
|
+
icon = (_jsx(Icon, { className: finalIconClassName, data: finalIconData, size: iconSize, qa: ICON_QA }));
|
|
64
|
+
}
|
|
65
|
+
else if (img && imgUrl) {
|
|
66
|
+
image = (_jsx("img", { className: b('image'), width: iconSize || DEFAULT_IMG_SIZE, height: iconSize || DEFAULT_IMG_SIZE, src: imgUrl, alt: alt || i18n('image-alt') }));
|
|
67
|
+
}
|
|
68
|
+
// Special handling for github theme (for backwards compatibility)
|
|
44
69
|
if (theme === 'github') {
|
|
45
70
|
icon = _jsx(Icon, { className: b('icon'), data: Github, size: 24, qa: ICON_QA });
|
|
46
71
|
image = undefined;
|
|
47
72
|
}
|
|
48
73
|
const buttonTheme = theme === 'scale' ? 'accent' : theme;
|
|
49
|
-
return (_jsxs(CommonButton, { className: buttonClass, view: toCommonView(buttonTheme), size: toCommonSize(size), title: urlTitle, width: width, ...buttonProps, children: [icon &&
|
|
74
|
+
return (_jsxs(CommonButton, { className: buttonClass, view: toCommonView(buttonTheme), size: toCommonSize(size), title: urlTitle, width: width, ...buttonProps, children: [icon && position === 'left' ? icon : null, _jsxs("span", { className: b('content'), children: [image && position === 'left' ? image : null, _jsx("span", { className: b('text'), children: text }), image && position === 'right' ? image : null] }), icon && position === 'right' ? icon : null] }));
|
|
50
75
|
};
|
|
51
76
|
export default Button;
|
|
52
77
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,EACH,MAAM,IAAI,YAAY,EACtB,IAAI,EACJ,QAAQ,GAEX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,aAAa,EAAC,qDAAkD;AACxE,OAAO,EAAC,YAAY,EAAC,6BAAoB;AACzC,OAAO,EAAC,MAAM,EAAC,6BAAoB;AACnC,OAAO,EAA8B,iBAAiB,EAAU,8BAAqB;AACrF,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,6BAAoB;
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {StoreBadge} from '@gravity-ui/components';\nimport {\n Button as CommonButton,\n Icon,\n Platform,\n ButtonProps as UIKitButtonProps,\n} from '@gravity-ui/uikit';\n\nimport {LocaleContext} from '../../context/localeContext/localeContext';\nimport {useAnalytics} from '../../hooks';\nimport {Github} from '../../icons';\nimport {ButtonProps as ButtonParams, DefaultEventNames, QAProps} from '../../models';\nimport {block, setUrlTld} from '../../utils';\nimport {getGravityIcon} from '../../utils/icons';\n\nimport {i18n} from './i18n';\nimport {ICON_QA, OldButtonSize, OldButtonTheme, toCommonSize, toCommonView} from './utils';\n\nimport './Button.scss';\n\nconst DEFAULT_IMG_SIZE = 16;\n\nexport interface ButtonProps extends Omit<ButtonParams, 'url'>, QAProps {\n className?: string;\n id?: string;\n url?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nconst b = block('button-block');\n\n// eslint-disable-next-line complexity\nconst Button = (props: ButtonProps) => {\n const {tld} = React.useContext(LocaleContext);\n const {\n className,\n analyticsEvents,\n size = 'l',\n theme = 'normal',\n url,\n urlTitle,\n img,\n onClick: onClickOrigin,\n text,\n width,\n ...rest\n } = props;\n const defaultImgPosition = 'left';\n const handleAnalytics = useAnalytics(DefaultEventNames.Button, url);\n const onClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n handleAnalytics(analyticsEvents);\n\n if (onClickOrigin) {\n onClickOrigin(e);\n }\n },\n [handleAnalytics, analyticsEvents, onClickOrigin],\n );\n\n const buttonModifiers = {size, theme, width};\n\n const buttonImg =\n img instanceof Object\n ? {\n url: img.url,\n iconData: img.iconData,\n iconSize: img.iconSize,\n className: img.className,\n position: img.position || defaultImgPosition,\n alt: img.alt,\n }\n : {url: img, position: defaultImgPosition};\n\n const {position, iconData, iconSize, className: iconClassName, url: imgUrl, alt} = buttonImg;\n\n const buttonClass = img\n ? b({position, ...buttonModifiers}, className)\n : b({...buttonModifiers}, className);\n\n const buttonProps = {\n ...rest,\n href: url ? setUrlTld(url, tld) : undefined,\n onClick,\n };\n\n if (theme === 'app-store' || theme === 'google-play') {\n const platform = theme === 'app-store' ? Platform.IOS : Platform.ANDROID;\n\n return <StoreBadge className={buttonClass} platform={platform} href={url as string} />;\n }\n\n let icon;\n let image;\n\n if (img && iconData) {\n let finalIconData = iconData;\n\n if (typeof iconData === 'string') {\n const gravityIcon = getGravityIcon(iconData);\n if (gravityIcon) {\n finalIconData = gravityIcon;\n }\n }\n\n const finalIconClassName = iconClassName ? b('icon', iconClassName) : b('icon');\n icon = (\n <Icon\n className={finalIconClassName}\n data={finalIconData}\n size={iconSize}\n qa={ICON_QA}\n />\n );\n } else if (img && imgUrl) {\n image = (\n <img\n className={b('image')}\n width={iconSize || DEFAULT_IMG_SIZE}\n height={iconSize || DEFAULT_IMG_SIZE}\n src={imgUrl}\n alt={alt || i18n('image-alt')}\n />\n );\n }\n\n // Special handling for github theme (for backwards compatibility)\n if (theme === 'github') {\n icon = <Icon className={b('icon')} data={Github} size={24} qa={ICON_QA} />;\n image = undefined;\n }\n\n const buttonTheme = theme === 'scale' ? 'accent' : theme;\n\n return (\n <CommonButton\n className={buttonClass}\n view={toCommonView(buttonTheme as OldButtonTheme)}\n size={toCommonSize(size as OldButtonSize)}\n title={urlTitle}\n width={width}\n {...(buttonProps as UIKitButtonProps)}\n >\n {icon && position === 'left' ? icon : null}\n <span className={b('content')}>\n {image && position === 'left' ? image : null}\n <span className={b('text')}>{text}</span>\n {image && position === 'right' ? image : null}\n </span>\n {icon && position === 'right' ? icon : null}\n </CommonButton>\n );\n};\n\nexport default Button;\n"]}
|
|
@@ -15,5 +15,5 @@ export interface ButtonTabsProps extends QAProps {
|
|
|
15
15
|
getTabElementId?: (tabId: string) => string;
|
|
16
16
|
getTabContentElementId?: (tabId: string) => string;
|
|
17
17
|
}
|
|
18
|
-
declare const ButtonTabs:
|
|
18
|
+
declare const ButtonTabs: ({ className, items, activeTab, onSelectTab, tabSize, qa, getTabElementId, getTabContentElementId, }: ButtonTabsProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
19
|
export default ButtonTabs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonTabs.js","sourceRoot":"../../../../src","sources":["components/ButtonTabs/ButtonTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAClC,OAAO,EAAC,MAAM,EAAC,oBAAiB;AAEhC,OAAO,kBAAkB,CAAC;AAE1B,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAqB/B,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"ButtonTabs.js","sourceRoot":"../../../../src","sources":["components/ButtonTabs/ButtonTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAC,KAAK,EAAC,6BAAoB;AAClC,OAAO,EAAC,MAAM,EAAC,oBAAiB;AAEhC,OAAO,kBAAkB,CAAC;AAE1B,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;AAqB/B,MAAM,UAAU,GAAG,CAAC,EAChB,SAAS,EACT,KAAK,EACL,SAAS,EACT,WAAW,EACX,OAAO,GAAG,GAAG,EACb,EAAE,EACF,eAAe,EACf,sBAAsB,GACR,EAAE,EAAE;IAClB,MAAM,WAAW,GAAkB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,KAAoB,EAAE,EAAE,CAAC,CAAC,CAA0D,EAAE,EAAE;QACrF,IAAI,WAAW,EAAE,CAAC;YACd,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC,EACD,CAAC,WAAW,CAAC,CAChB,CAAC;IAEF,OAAO,CACH,cAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,aAAU,EAAE,YACzD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,EAAE,KAAK,WAAW,CAAC;YAEpC,OAAO,CACH,KAAC,MAAM,IACH,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,EAExC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAC/B,UAAU,EAAE;oBACR,IAAI,EAAE,KAAK;oBACX,eAAe,EAAE,QAAQ;oBACzB,eAAe,EAAE,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;iBACtD,IARI,KAAK,CASZ,CACL,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {ButtonProps, QAProps} from '../../models';\nimport {block} from '../../utils';\nimport {Button} from '../index';\n\nimport './ButtonTabs.scss';\n\nconst b = block('button-tabs');\n\nexport interface ButtonTabsItemProps\n extends Omit<ButtonProps, 'url' | 'primary' | 'target' | 'text'> {\n id: string | null;\n title: string;\n}\n\nexport interface ButtonTabsProps extends QAProps {\n className?: string;\n items: ButtonTabsItemProps[];\n activeTab?: string | null;\n onSelectTab?: (\n tabId: string | null,\n e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n ) => void;\n tabSize?: ButtonSize;\n getTabElementId?: (tabId: string) => string;\n getTabContentElementId?: (tabId: string) => string;\n}\n\nconst ButtonTabs = ({\n className,\n items,\n activeTab,\n onSelectTab,\n tabSize = 'l',\n qa,\n getTabElementId,\n getTabContentElementId,\n}: ButtonTabsProps) => {\n const activeTabId: string | null = React.useMemo(() => {\n if (activeTab) {\n return activeTab;\n }\n\n return items[0].id;\n }, [activeTab, items]);\n\n const handleClick = React.useCallback(\n (tabId: string | null) => (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n if (onSelectTab) {\n onSelectTab(tabId, e);\n }\n },\n [onSelectTab],\n );\n\n return (\n <div className={b(null, className)} role=\"tablist\" data-qa={qa}>\n {items.map(({id, title}) => {\n const isActive = id === activeTabId;\n\n return (\n <Button\n text={title}\n className={b('item', {active: isActive})}\n key={title}\n size={tabSize}\n onClick={handleClick(id)}\n id={getTabElementId?.(id ?? '')}\n extraProps={{\n role: 'tab',\n 'aria-selected': isActive,\n 'aria-controls': getTabContentElementId?.(id ?? ''),\n }}\n />\n );\n })}\n </div>\n );\n};\n\nexport default ButtonTabs;\n"]}
|