@gravity-ui/page-constructor 6.0.1-beta.0 → 6.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/blocks/Banner/Banner.js +2 -2
- package/build/cjs/blocks/Banner/Banner.js.map +1 -1
- package/build/cjs/blocks/Banner/schema.js +20 -8
- package/build/cjs/blocks/Banner/schema.js.map +1 -1
- package/build/cjs/blocks/CardLayout/CardLayout.js +3 -3
- package/build/cjs/blocks/CardLayout/CardLayout.js.map +1 -1
- package/build/cjs/blocks/CardLayout/schema.js +19 -4
- package/build/cjs/blocks/CardLayout/schema.js.map +1 -1
- package/build/cjs/blocks/Companies/Companies.js +1 -1
- package/build/cjs/blocks/Companies/Companies.js.map +1 -1
- package/build/cjs/blocks/Companies/schema.js +10 -4
- package/build/cjs/blocks/Companies/schema.js.map +1 -1
- package/build/cjs/blocks/ContentLayout/ContentLayout.js +1 -1
- package/build/cjs/blocks/ContentLayout/ContentLayout.js.map +1 -1
- package/build/cjs/blocks/ContentLayout/schema.js +7 -2
- package/build/cjs/blocks/ContentLayout/schema.js.map +1 -1
- package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +1 -1
- package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js.map +1 -1
- package/build/cjs/blocks/ExtendedFeatures/schema.js +7 -1
- package/build/cjs/blocks/ExtendedFeatures/schema.js.map +1 -1
- package/build/cjs/blocks/FilterBlock/schema.js +13 -3
- package/build/cjs/blocks/FilterBlock/schema.js.map +1 -1
- package/build/cjs/blocks/Form/Form.js +3 -4
- package/build/cjs/blocks/Form/Form.js.map +1 -1
- package/build/cjs/blocks/Form/schema.js +15 -7
- package/build/cjs/blocks/Form/schema.js.map +1 -1
- package/build/cjs/blocks/Header/Header.css +6 -0
- package/build/cjs/blocks/Header/Header.js +17 -8
- package/build/cjs/blocks/Header/Header.js.map +1 -1
- package/build/cjs/blocks/Header/schema.d.ts +6 -0
- package/build/cjs/blocks/Header/schema.js +12 -2
- package/build/cjs/blocks/Header/schema.js.map +1 -1
- package/build/cjs/blocks/HeaderSlider/HeaderSlider.js +2 -3
- package/build/cjs/blocks/HeaderSlider/HeaderSlider.js.map +1 -1
- package/build/cjs/blocks/HeaderSlider/schema.d.ts +3 -0
- package/build/cjs/blocks/HeaderSlider/schema.js +7 -3
- package/build/cjs/blocks/HeaderSlider/schema.js.map +1 -1
- package/build/cjs/blocks/Icons/Icons.js +2 -2
- package/build/cjs/blocks/Icons/Icons.js.map +1 -1
- package/build/cjs/blocks/Icons/schema.js +17 -6
- package/build/cjs/blocks/Icons/schema.js.map +1 -1
- package/build/cjs/blocks/Info/Info.js +8 -4
- package/build/cjs/blocks/Info/Info.js.map +1 -1
- package/build/cjs/blocks/Info/schema.js +15 -5
- package/build/cjs/blocks/Info/schema.js.map +1 -1
- package/build/cjs/blocks/Map/Map.js +2 -3
- package/build/cjs/blocks/Map/Map.js.map +1 -1
- package/build/cjs/blocks/Map/schema.js +4 -1
- package/build/cjs/blocks/Map/schema.js.map +1 -1
- 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.js +25 -10
- package/build/cjs/blocks/Media/schema.js.map +1 -1
- package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
- package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js.map +1 -1
- package/build/cjs/blocks/PromoFeaturesBlock/schema.js +8 -2
- package/build/cjs/blocks/PromoFeaturesBlock/schema.js.map +1 -1
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +1 -1
- package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
- package/build/cjs/blocks/Questions/schema.js +7 -3
- package/build/cjs/blocks/Questions/schema.js.map +1 -1
- package/build/cjs/blocks/Share/schema.js +7 -3
- package/build/cjs/blocks/Share/schema.js.map +1 -1
- package/build/cjs/blocks/Slider/Slider.js +18 -17
- package/build/cjs/blocks/Slider/Slider.js.map +1 -1
- package/build/cjs/blocks/Slider/schema.js +6 -1
- package/build/cjs/blocks/Slider/schema.js.map +1 -1
- package/build/cjs/blocks/Slider/utils.js +9 -6
- package/build/cjs/blocks/Slider/utils.js.map +1 -1
- package/build/cjs/blocks/SliderNew/Arrow/Arrow.js +1 -1
- package/build/cjs/blocks/SliderNew/Arrow/Arrow.js.map +1 -1
- package/build/cjs/blocks/SliderNew/Slider.d.ts +1 -1
- package/build/cjs/blocks/SliderNew/Slider.js +15 -4
- package/build/cjs/blocks/SliderNew/Slider.js.map +1 -1
- package/build/cjs/blocks/SliderNew/schema.js +6 -1
- package/build/cjs/blocks/SliderNew/schema.js.map +1 -1
- package/build/cjs/blocks/SliderNew/useSlider.js +1 -2
- package/build/cjs/blocks/SliderNew/useSlider.js.map +1 -1
- package/build/cjs/blocks/SliderNew/utils.js +8 -4
- package/build/cjs/blocks/SliderNew/utils.js.map +1 -1
- package/build/cjs/blocks/Table/Table.js +1 -1
- package/build/cjs/blocks/Table/Table.js.map +1 -1
- package/build/cjs/blocks/Table/schema.js +22 -10
- package/build/cjs/blocks/Table/schema.js.map +1 -1
- package/build/cjs/blocks/Tabs/Tabs.js +16 -18
- package/build/cjs/blocks/Tabs/Tabs.js.map +1 -1
- package/build/cjs/blocks/Tabs/schema.js +25 -10
- package/build/cjs/blocks/Tabs/schema.js.map +1 -1
- package/build/cjs/components/Author/Author.js +1 -1
- package/build/cjs/components/Author/Author.js.map +1 -1
- package/build/cjs/components/Author/schema.js +5 -1
- package/build/cjs/components/Author/schema.js.map +1 -1
- package/build/cjs/components/BackLink/BackLink.js +5 -2
- package/build/cjs/components/BackLink/BackLink.js.map +1 -1
- package/build/cjs/components/BackgroundImage/BackgroundImage.js +1 -1
- package/build/cjs/components/BackgroundImage/BackgroundImage.js.map +1 -1
- package/build/cjs/components/BackgroundMedia/BackgroundMedia.js +4 -4
- package/build/cjs/components/BackgroundMedia/BackgroundMedia.js.map +1 -1
- package/build/cjs/components/BalancedMasonry/BalancedMasonry.js +4 -4
- package/build/cjs/components/BalancedMasonry/BalancedMasonry.js.map +1 -1
- package/build/cjs/components/BrandFooter/BrandFooter.css +21 -17
- package/build/cjs/components/BrandFooter/BrandFooter.js +1 -1
- package/build/cjs/components/BrandFooter/BrandFooter.js.map +1 -1
- package/build/cjs/components/Button/Button.js +9 -6
- package/build/cjs/components/Button/Button.js.map +1 -1
- package/build/cjs/components/Button/utils.js +2 -2
- package/build/cjs/components/Button/utils.js.map +1 -1
- package/build/cjs/components/Buttons/Buttons.js +4 -1
- package/build/cjs/components/Buttons/Buttons.js.map +1 -1
- package/build/cjs/components/CardBase/CardBase.css +1 -0
- package/build/cjs/components/CardBase/CardBase.js +6 -2
- package/build/cjs/components/CardBase/CardBase.js.map +1 -1
- package/build/cjs/components/ContentList/ContentList.css +7 -7
- package/build/cjs/components/ContentList/ContentList.js +1 -1
- package/build/cjs/components/ContentList/ContentList.js.map +1 -1
- package/build/cjs/components/ContentList/ContentListItemIcon.js +1 -1
- package/build/cjs/components/ContentList/ContentListItemIcon.js.map +1 -1
- package/build/cjs/components/DefaultVideo/DefaultVideo.js +3 -4
- package/build/cjs/components/DefaultVideo/DefaultVideo.js.map +1 -1
- package/build/cjs/components/FileLink/FileLink.js +9 -2
- package/build/cjs/components/FileLink/FileLink.js.map +1 -1
- package/build/cjs/components/FullWidthBackground/FullWidthBackground.js +13 -18
- package/build/cjs/components/FullWidthBackground/FullWidthBackground.js.map +1 -1
- package/build/cjs/components/FullscreenImage/FullscreenImage.js +1 -1
- package/build/cjs/components/FullscreenImage/FullscreenImage.js.map +1 -1
- package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
- package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
- package/build/cjs/components/IconWrapper/IconWrapper.js +2 -2
- package/build/cjs/components/IconWrapper/IconWrapper.js.map +1 -1
- package/build/cjs/components/Image/schema.js +40 -12
- package/build/cjs/components/Image/schema.js.map +1 -1
- package/build/cjs/components/ImageBase/ImageBase.js +3 -4
- package/build/cjs/components/ImageBase/ImageBase.js.map +1 -1
- package/build/cjs/components/InnerForm/InnerForm.js +5 -5
- package/build/cjs/components/InnerForm/InnerForm.js.map +1 -1
- package/build/cjs/components/Link/Link.js +12 -3
- package/build/cjs/components/Link/Link.js.map +1 -1
- package/build/cjs/components/Links/Links.js +4 -1
- package/build/cjs/components/Links/Links.js.map +1 -1
- package/build/cjs/components/Map/GoogleMap.js +1 -1
- package/build/cjs/components/Map/GoogleMap.js.map +1 -1
- package/build/cjs/components/Map/Map.js +2 -2
- package/build/cjs/components/Map/Map.js.map +1 -1
- package/build/cjs/components/Map/YMap/YMap.js +6 -5
- package/build/cjs/components/Map/YMap/YMap.js.map +1 -1
- package/build/cjs/components/Map/YMap/YandexMap.js +2 -3
- package/build/cjs/components/Map/YMap/YandexMap.js.map +1 -1
- package/build/cjs/components/Map/YMap/YandexMapApiLoader.js +2 -1
- package/build/cjs/components/Map/YMap/YandexMapApiLoader.js.map +1 -1
- package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js +1 -1
- package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
- package/build/cjs/components/Media/Image/Image.js +4 -4
- package/build/cjs/components/Media/Image/Image.js.map +1 -1
- package/build/cjs/components/Media/Media.js +13 -5
- package/build/cjs/components/Media/Media.js.map +1 -1
- package/build/cjs/components/MediaBase/MediaBase.js +3 -3
- package/build/cjs/components/MediaBase/MediaBase.js.map +1 -1
- package/build/cjs/components/MediaBase/MediaBaseContent.js +1 -1
- package/build/cjs/components/MediaBase/MediaBaseContent.js.map +1 -1
- package/build/cjs/components/OutsideClick/OutsideClick.js +10 -13
- package/build/cjs/components/OutsideClick/OutsideClick.js.map +1 -1
- package/build/cjs/components/OverflowScroller/OverflowScroller.js +47 -50
- package/build/cjs/components/OverflowScroller/OverflowScroller.js.map +1 -1
- package/build/cjs/components/ReactPlayer/ReactPlayer.js +11 -13
- package/build/cjs/components/ReactPlayer/ReactPlayer.js.map +1 -1
- package/build/cjs/components/ReactPlayer/utils.js +1 -2
- package/build/cjs/components/ReactPlayer/utils.js.map +1 -1
- package/build/cjs/components/Title/Title.js +2 -2
- package/build/cjs/components/Title/Title.js.map +1 -1
- package/build/cjs/components/Title/TitleItem.css +8 -1
- package/build/cjs/components/Title/TitleItem.js +2 -1
- package/build/cjs/components/Title/TitleItem.js.map +1 -1
- package/build/cjs/components/VideoBlock/VideoBlock.js +6 -3
- package/build/cjs/components/VideoBlock/VideoBlock.js.map +1 -1
- package/build/cjs/components/YandexForm/YandexForm.js +3 -3
- package/build/cjs/components/YandexForm/YandexForm.js.map +1 -1
- package/build/cjs/components/YandexForm/schema.js +7 -3
- package/build/cjs/components/YandexForm/schema.js.map +1 -1
- package/build/cjs/containers/Loadable/Loadable.js +3 -3
- package/build/cjs/containers/Loadable/Loadable.js.map +1 -1
- package/build/cjs/containers/PageConstructor/PageConstructor.css +1 -0
- package/build/cjs/containers/PageConstructor/PageConstructor.d.ts +1 -1
- package/build/cjs/containers/PageConstructor/PageConstructor.js +15 -8
- package/build/cjs/containers/PageConstructor/PageConstructor.js.map +1 -1
- package/build/cjs/containers/PageConstructor/Provider.js +1 -1
- package/build/cjs/containers/PageConstructor/Provider.js.map +1 -1
- package/build/cjs/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +2 -2
- package/build/cjs/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js.map +1 -1
- package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +1 -1
- package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
- package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +2 -2
- package/build/cjs/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js.map +1 -1
- package/build/cjs/context/theme/withTheme.js +7 -9
- package/build/cjs/context/theme/withTheme.js.map +1 -1
- package/build/cjs/customization/BlockDecoration.js +3 -5
- package/build/cjs/customization/BlockDecoration.js.map +1 -1
- package/build/cjs/editor/components/AddBlock/AddBlock.js +7 -9
- package/build/cjs/editor/components/AddBlock/AddBlock.js.map +1 -1
- package/build/cjs/editor/components/BlockForm/BlockForm.js +11 -6
- package/build/cjs/editor/components/BlockForm/BlockForm.js.map +1 -1
- package/build/cjs/editor/components/CodeEditor/CodeEditor.js +1 -1
- package/build/cjs/editor/components/CodeEditor/CodeEditor.js.map +1 -1
- package/build/cjs/editor/components/ControlPanel/ControlPanel.css +1 -1
- package/build/cjs/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js +4 -4
- package/build/cjs/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js.map +1 -1
- package/build/cjs/editor/components/EditBlock/EditBlock.js +2 -2
- package/build/cjs/editor/components/EditBlock/EditBlock.js.map +1 -1
- package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.js +2 -5
- package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/build/cjs/editor/components/Layout/Layout.js +3 -3
- package/build/cjs/editor/components/Layout/Layout.js.map +1 -1
- package/build/cjs/editor/components/PageSettings/PageSettings.js +3 -3
- package/build/cjs/editor/components/PageSettings/PageSettings.js.map +1 -1
- package/build/cjs/editor/containers/Editor/Editor.js +1 -1
- package/build/cjs/editor/containers/Editor/Editor.js.map +1 -1
- package/build/cjs/editor/containers/Editor/hooks/useCode.js +2 -4
- package/build/cjs/editor/containers/Editor/hooks/useCode.js.map +1 -1
- package/build/cjs/editor/containers/Editor/hooks/useEditorState.js +10 -7
- package/build/cjs/editor/containers/Editor/hooks/useEditorState.js.map +1 -1
- package/build/cjs/editor/containers/Form/Form.js +5 -2
- package/build/cjs/editor/containers/Form/Form.js.map +1 -1
- package/build/cjs/editor/data/index.js +4 -1
- package/build/cjs/editor/data/index.js.map +1 -1
- package/build/cjs/editor/data/previews/default-preview.js +1 -1
- package/build/cjs/editor/data/previews/default-preview.js.map +1 -1
- package/build/cjs/editor/data/previews/header-block.js +1 -1
- package/build/cjs/editor/data/previews/header-block.js.map +1 -1
- package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +16 -14
- package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
- package/build/cjs/editor/dynamic-forms-custom/config.js +1 -1
- package/build/cjs/editor/dynamic-forms-custom/config.js.map +1 -1
- package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.js +10 -12
- package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.js.map +1 -1
- package/build/cjs/editor/dynamic-forms-custom/parser/index.js +150 -120
- package/build/cjs/editor/dynamic-forms-custom/parser/index.js.map +1 -1
- package/build/cjs/editor/dynamic-forms-custom/parser/views.js +2 -4
- package/build/cjs/editor/dynamic-forms-custom/parser/views.js.map +1 -1
- package/build/cjs/editor/icons/Tablet.js +1 -1
- package/build/cjs/editor/icons/Tablet.js.map +1 -1
- package/build/cjs/editor/store/main/index.js +7 -4
- package/build/cjs/editor/store/main/index.js.map +1 -1
- package/build/cjs/editor/store/main/reducer.js +17 -3
- package/build/cjs/editor/store/main/reducer.js.map +1 -1
- package/build/cjs/editor/store/main/utils.js +2 -2
- package/build/cjs/editor/store/main/utils.js.map +1 -1
- package/build/cjs/editor/store/settings/reducer.js +16 -4
- package/build/cjs/editor/store/settings/reducer.js.map +1 -1
- package/build/cjs/editor/utils/code.js +4 -2
- package/build/cjs/editor/utils/code.js.map +1 -1
- package/build/cjs/editor/utils/index.js +8 -2
- package/build/cjs/editor/utils/index.js.map +1 -1
- package/build/cjs/editor/utils/validation.js +1 -1
- package/build/cjs/editor/utils/validation.js.map +1 -1
- package/build/cjs/editor/widget/index.js +8 -8
- package/build/cjs/editor/widget/index.js.map +1 -1
- package/build/cjs/grid/Col/Col.js +1 -1
- package/build/cjs/grid/Col/Col.js.map +1 -1
- package/build/cjs/hooks/useAnalytics.js +4 -1
- package/build/cjs/hooks/useAnalytics.js.map +1 -1
- package/build/cjs/hooks/useFocus.js +1 -1
- package/build/cjs/hooks/useFocus.js.map +1 -1
- package/build/cjs/hooks/useHeightCalculator.js +1 -1
- package/build/cjs/hooks/useHeightCalculator.js.map +1 -1
- package/build/cjs/hooks/useWindowBreakpoint.js +1 -1
- package/build/cjs/hooks/useWindowBreakpoint.js.map +1 -1
- package/build/cjs/icons/BrandIconDark.js +1 -1
- package/build/cjs/icons/BrandIconDark.js.map +1 -1
- package/build/cjs/icons/BrandIconLight.js +1 -1
- package/build/cjs/icons/BrandIconLight.js.map +1 -1
- package/build/cjs/icons/BrandName.js +1 -1
- package/build/cjs/icons/BrandName.js.map +1 -1
- package/build/cjs/icons/Chevron.js +1 -1
- package/build/cjs/icons/Chevron.js.map +1 -1
- package/build/cjs/icons/Facebook.js +1 -1
- package/build/cjs/icons/Facebook.js.map +1 -1
- package/build/cjs/icons/Github.js +1 -1
- package/build/cjs/icons/Github.js.map +1 -1
- package/build/cjs/icons/Linkedin.js +1 -1
- package/build/cjs/icons/Linkedin.js.map +1 -1
- package/build/cjs/icons/NavigationArrow.js +1 -1
- package/build/cjs/icons/NavigationArrow.js.map +1 -1
- package/build/cjs/icons/NavigationChevron.js +1 -1
- package/build/cjs/icons/NavigationChevron.js.map +1 -1
- package/build/cjs/icons/Telegram.js +1 -1
- package/build/cjs/icons/Telegram.js.map +1 -1
- package/build/cjs/icons/Twitter.js +1 -1
- package/build/cjs/icons/Twitter.js.map +1 -1
- package/build/cjs/icons/Vk.js +1 -1
- package/build/cjs/icons/Vk.js.map +1 -1
- package/build/cjs/models/constructor-items/blocks.d.ts +2 -1
- package/build/cjs/models/constructor-items/blocks.js.map +1 -1
- package/build/cjs/models/constructor-items/common.d.ts +2 -2
- package/build/cjs/models/constructor-items/common.js.map +1 -1
- package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.js +1 -1
- package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
- package/build/cjs/navigation/components/Logo/Logo.js +4 -5
- package/build/cjs/navigation/components/Logo/Logo.js.map +1 -1
- package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.js +2 -3
- package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/NavigationItem.js +8 -6
- package/build/cjs/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/GithubButton/GithubButton.js +2 -3
- package/build/cjs/navigation/components/NavigationItem/components/GithubButton/GithubButton.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js +2 -3
- package/build/cjs/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +4 -4
- package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
- package/build/cjs/navigation/components/NavigationItem/hooks/useNavigationItemMap.js +1 -1
- package/build/cjs/navigation/components/NavigationItem/hooks/useNavigationItemMap.js.map +1 -1
- package/build/cjs/navigation/components/NavigationList/NavigationList.js +1 -4
- package/build/cjs/navigation/components/NavigationList/NavigationList.js.map +1 -1
- package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.js +2 -3
- package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
- package/build/cjs/navigation/components/SocialIcon/SocialIcon.js +1 -1
- package/build/cjs/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
- package/build/cjs/navigation/components/Standalone/index.js +1 -1
- package/build/cjs/navigation/components/Standalone/index.js.map +1 -1
- package/build/cjs/navigation/hooks/useActiveNavItem.d.ts +2 -2
- package/build/cjs/navigation/hooks/useActiveNavItem.js +1 -1
- package/build/cjs/navigation/hooks/useActiveNavItem.js.map +1 -1
- package/build/cjs/navigation/hooks/useShowBorder.js +1 -1
- package/build/cjs/navigation/hooks/useShowBorder.js.map +1 -1
- package/build/cjs/navigation/schema.js +20 -7
- package/build/cjs/navigation/schema.js.map +1 -1
- package/build/cjs/navigation/utils.d.ts +1 -1
- package/build/cjs/navigation/utils.js +1 -1
- package/build/cjs/navigation/utils.js.map +1 -1
- package/build/cjs/schema/constants.js +33 -2
- package/build/cjs/schema/constants.js.map +1 -1
- package/build/cjs/schema/index.js +23 -6
- package/build/cjs/schema/index.js.map +1 -1
- package/build/cjs/schema/validators/common.js +78 -32
- package/build/cjs/schema/validators/common.js.map +1 -1
- package/build/cjs/schema/validators/utils.js +9 -2
- package/build/cjs/schema/validators/utils.js.map +1 -1
- package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +1 -1
- package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
- package/build/cjs/sub-blocks/BackgroundCard/schema.js +24 -9
- package/build/cjs/sub-blocks/BackgroundCard/schema.js.map +1 -1
- package/build/cjs/sub-blocks/BannerCard/BannerCard.js +1 -1
- package/build/cjs/sub-blocks/BannerCard/BannerCard.js.map +1 -1
- package/build/cjs/sub-blocks/BasicCard/BasicCard.js +2 -2
- package/build/cjs/sub-blocks/BasicCard/BasicCard.js.map +1 -1
- package/build/cjs/sub-blocks/BasicCard/schema.js +18 -7
- package/build/cjs/sub-blocks/BasicCard/schema.js.map +1 -1
- package/build/cjs/sub-blocks/Content/Content.css +53 -6
- package/build/cjs/sub-blocks/Content/Content.js +3 -1
- package/build/cjs/sub-blocks/Content/Content.js.map +1 -1
- package/build/cjs/sub-blocks/Content/schema.js +10 -3
- package/build/cjs/sub-blocks/Content/schema.js.map +1 -1
- package/build/cjs/sub-blocks/Divider/schema.js +6 -2
- package/build/cjs/sub-blocks/Divider/schema.js.map +1 -1
- package/build/cjs/sub-blocks/HubspotForm/index.js +3 -3
- package/build/cjs/sub-blocks/HubspotForm/index.js.map +1 -1
- package/build/cjs/sub-blocks/HubspotForm/loadHubspotScript.js +1 -2
- package/build/cjs/sub-blocks/HubspotForm/loadHubspotScript.js.map +1 -1
- package/build/cjs/sub-blocks/HubspotForm/schema.js +11 -5
- package/build/cjs/sub-blocks/HubspotForm/schema.js.map +1 -1
- package/build/cjs/sub-blocks/ImageCard/ImageCard.css +2 -0
- package/build/cjs/sub-blocks/ImageCard/ImageCard.js +1 -1
- package/build/cjs/sub-blocks/ImageCard/ImageCard.js.map +1 -1
- package/build/cjs/sub-blocks/ImageCard/schema.js +18 -7
- package/build/cjs/sub-blocks/ImageCard/schema.js.map +1 -1
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +11 -9
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
- package/build/cjs/sub-blocks/LayoutItem/schema.js +20 -7
- package/build/cjs/sub-blocks/LayoutItem/schema.js.map +1 -1
- package/build/cjs/sub-blocks/LayoutItem/utils.js +4 -1
- package/build/cjs/sub-blocks/LayoutItem/utils.js.map +1 -1
- package/build/cjs/sub-blocks/MediaCard/MediaCard.js +1 -5
- package/build/cjs/sub-blocks/MediaCard/MediaCard.js.map +1 -1
- package/build/cjs/sub-blocks/MediaCard/schema.js +12 -3
- package/build/cjs/sub-blocks/MediaCard/schema.js.map +1 -1
- package/build/cjs/sub-blocks/PriceCard/PriceCard.js +3 -4
- package/build/cjs/sub-blocks/PriceCard/PriceCard.js.map +1 -1
- package/build/cjs/sub-blocks/PriceCard/schema.js +25 -11
- package/build/cjs/sub-blocks/PriceCard/schema.js.map +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js.map +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +2 -2
- package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js.map +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.js +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.js.map +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +1 -4
- package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js.map +1 -1
- package/build/cjs/sub-blocks/PriceDetailed/schema.js +44 -12
- package/build/cjs/sub-blocks/PriceDetailed/schema.js.map +1 -1
- package/build/cjs/sub-blocks/Quote/Quote.js +6 -3
- package/build/cjs/sub-blocks/Quote/Quote.js.map +1 -1
- package/build/cjs/sub-blocks/Quote/schema.js +21 -8
- package/build/cjs/sub-blocks/Quote/schema.js.map +1 -1
- package/build/cjs/text-transform/common.js +10 -7
- package/build/cjs/text-transform/common.js.map +1 -1
- package/build/cjs/text-transform/config.js +26 -19
- package/build/cjs/text-transform/config.js.map +1 -1
- package/build/cjs/text-transform/filter.js +4 -1
- package/build/cjs/text-transform/filter.js.map +1 -1
- package/build/cjs/text-transform/transformers.js +3 -3
- package/build/cjs/text-transform/transformers.js.map +1 -1
- package/build/cjs/text-transform/utils.js +8 -5
- package/build/cjs/text-transform/utils.js.map +1 -1
- package/build/cjs/utils/analytics.js +2 -3
- package/build/cjs/utils/analytics.js.map +1 -1
- package/build/cjs/utils/blocks.js +3 -2
- package/build/cjs/utils/blocks.js.map +1 -1
- package/build/cjs/utils/common.js +1 -2
- package/build/cjs/utils/common.js.map +1 -1
- package/build/cjs/utils/hubspot.js +6 -7
- package/build/cjs/utils/hubspot.js.map +1 -1
- package/build/cjs/utils/microdata.js +1 -1
- package/build/cjs/utils/microdata.js.map +1 -1
- package/build/cjs/utils/url.js +10 -5
- package/build/cjs/utils/url.js.map +1 -1
- package/build/esm/blocks/Banner/Banner.js +2 -3
- package/build/esm/blocks/Banner/Banner.js.map +1 -1
- package/build/esm/blocks/Banner/schema.js +20 -8
- package/build/esm/blocks/Banner/schema.js.map +1 -1
- package/build/esm/blocks/CardLayout/CardLayout.js +3 -4
- package/build/esm/blocks/CardLayout/CardLayout.js.map +1 -1
- package/build/esm/blocks/CardLayout/schema.js +19 -4
- package/build/esm/blocks/CardLayout/schema.js.map +1 -1
- package/build/esm/blocks/Companies/Companies.js +1 -1
- package/build/esm/blocks/Companies/Companies.js.map +1 -1
- package/build/esm/blocks/Companies/schema.js +10 -4
- package/build/esm/blocks/Companies/schema.js.map +1 -1
- package/build/esm/blocks/ContentLayout/ContentLayout.js +1 -1
- package/build/esm/blocks/ContentLayout/ContentLayout.js.map +1 -1
- package/build/esm/blocks/ContentLayout/schema.js +7 -2
- package/build/esm/blocks/ContentLayout/schema.js.map +1 -1
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +1 -1
- package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js.map +1 -1
- package/build/esm/blocks/ExtendedFeatures/schema.js +7 -1
- package/build/esm/blocks/ExtendedFeatures/schema.js.map +1 -1
- package/build/esm/blocks/FilterBlock/schema.js +13 -3
- package/build/esm/blocks/FilterBlock/schema.js.map +1 -1
- package/build/esm/blocks/Form/Form.js +3 -4
- package/build/esm/blocks/Form/Form.js.map +1 -1
- package/build/esm/blocks/Form/schema.js +15 -7
- package/build/esm/blocks/Form/schema.js.map +1 -1
- package/build/esm/blocks/Header/Header.css +6 -0
- package/build/esm/blocks/Header/Header.js +17 -8
- package/build/esm/blocks/Header/Header.js.map +1 -1
- package/build/esm/blocks/Header/schema.d.ts +6 -0
- package/build/esm/blocks/Header/schema.js +12 -2
- package/build/esm/blocks/Header/schema.js.map +1 -1
- package/build/esm/blocks/HeaderSlider/HeaderSlider.js +2 -4
- package/build/esm/blocks/HeaderSlider/HeaderSlider.js.map +1 -1
- package/build/esm/blocks/HeaderSlider/schema.d.ts +3 -0
- package/build/esm/blocks/HeaderSlider/schema.js +7 -3
- package/build/esm/blocks/HeaderSlider/schema.js.map +1 -1
- package/build/esm/blocks/Icons/Icons.js +2 -2
- package/build/esm/blocks/Icons/Icons.js.map +1 -1
- package/build/esm/blocks/Icons/schema.js +17 -6
- package/build/esm/blocks/Icons/schema.js.map +1 -1
- package/build/esm/blocks/Info/Info.js +8 -4
- package/build/esm/blocks/Info/Info.js.map +1 -1
- package/build/esm/blocks/Info/schema.js +15 -5
- package/build/esm/blocks/Info/schema.js.map +1 -1
- package/build/esm/blocks/Map/Map.js +2 -4
- package/build/esm/blocks/Map/Map.js.map +1 -1
- package/build/esm/blocks/Map/schema.js +4 -1
- package/build/esm/blocks/Map/schema.js.map +1 -1
- 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.js +25 -10
- package/build/esm/blocks/Media/schema.js.map +1 -1
- package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +1 -1
- package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js.map +1 -1
- package/build/esm/blocks/PromoFeaturesBlock/schema.js +8 -2
- package/build/esm/blocks/PromoFeaturesBlock/schema.js.map +1 -1
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +1 -1
- package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
- package/build/esm/blocks/Questions/schema.js +7 -3
- package/build/esm/blocks/Questions/schema.js.map +1 -1
- package/build/esm/blocks/Share/schema.js +7 -3
- package/build/esm/blocks/Share/schema.js.map +1 -1
- package/build/esm/blocks/Slider/Slider.js +18 -17
- package/build/esm/blocks/Slider/Slider.js.map +1 -1
- package/build/esm/blocks/Slider/schema.js +6 -1
- package/build/esm/blocks/Slider/schema.js.map +1 -1
- package/build/esm/blocks/Slider/utils.js +9 -6
- package/build/esm/blocks/Slider/utils.js.map +1 -1
- package/build/esm/blocks/SliderNew/Arrow/Arrow.js +1 -1
- package/build/esm/blocks/SliderNew/Arrow/Arrow.js.map +1 -1
- package/build/esm/blocks/SliderNew/Slider.d.ts +1 -1
- package/build/esm/blocks/SliderNew/Slider.js +15 -4
- package/build/esm/blocks/SliderNew/Slider.js.map +1 -1
- package/build/esm/blocks/SliderNew/schema.js +6 -1
- package/build/esm/blocks/SliderNew/schema.js.map +1 -1
- package/build/esm/blocks/SliderNew/useSlider.js +1 -3
- package/build/esm/blocks/SliderNew/useSlider.js.map +1 -1
- package/build/esm/blocks/SliderNew/utils.js +8 -4
- package/build/esm/blocks/SliderNew/utils.js.map +1 -1
- package/build/esm/blocks/Table/Table.js +1 -1
- package/build/esm/blocks/Table/Table.js.map +1 -1
- package/build/esm/blocks/Table/schema.js +22 -10
- package/build/esm/blocks/Table/schema.js.map +1 -1
- package/build/esm/blocks/Tabs/Tabs.js +16 -18
- package/build/esm/blocks/Tabs/Tabs.js.map +1 -1
- package/build/esm/blocks/Tabs/schema.js +25 -10
- package/build/esm/blocks/Tabs/schema.js.map +1 -1
- package/build/esm/components/Author/Author.js +1 -1
- package/build/esm/components/Author/Author.js.map +1 -1
- package/build/esm/components/Author/schema.js +5 -1
- package/build/esm/components/Author/schema.js.map +1 -1
- package/build/esm/components/BackLink/BackLink.js +5 -2
- package/build/esm/components/BackLink/BackLink.js.map +1 -1
- package/build/esm/components/BackgroundImage/BackgroundImage.js +1 -1
- package/build/esm/components/BackgroundImage/BackgroundImage.js.map +1 -1
- package/build/esm/components/BackgroundMedia/BackgroundMedia.js +4 -5
- package/build/esm/components/BackgroundMedia/BackgroundMedia.js.map +1 -1
- package/build/esm/components/BalancedMasonry/BalancedMasonry.js +4 -4
- package/build/esm/components/BalancedMasonry/BalancedMasonry.js.map +1 -1
- package/build/esm/components/BrandFooter/BrandFooter.css +21 -17
- package/build/esm/components/BrandFooter/BrandFooter.js +1 -1
- package/build/esm/components/BrandFooter/BrandFooter.js.map +1 -1
- package/build/esm/components/Button/Button.js +10 -8
- package/build/esm/components/Button/Button.js.map +1 -1
- package/build/esm/components/Button/utils.js +2 -2
- package/build/esm/components/Button/utils.js.map +1 -1
- package/build/esm/components/Buttons/Buttons.js +4 -1
- package/build/esm/components/Buttons/Buttons.js.map +1 -1
- package/build/esm/components/CardBase/CardBase.css +1 -0
- package/build/esm/components/CardBase/CardBase.js +6 -2
- package/build/esm/components/CardBase/CardBase.js.map +1 -1
- package/build/esm/components/ContentList/ContentList.css +7 -7
- package/build/esm/components/ContentList/ContentList.js +1 -1
- package/build/esm/components/ContentList/ContentList.js.map +1 -1
- package/build/esm/components/ContentList/ContentListItemIcon.js +1 -1
- package/build/esm/components/ContentList/ContentListItemIcon.js.map +1 -1
- package/build/esm/components/DefaultVideo/DefaultVideo.js +3 -4
- package/build/esm/components/DefaultVideo/DefaultVideo.js.map +1 -1
- package/build/esm/components/FileLink/FileLink.js +9 -2
- package/build/esm/components/FileLink/FileLink.js.map +1 -1
- package/build/esm/components/FullWidthBackground/FullWidthBackground.js +13 -18
- package/build/esm/components/FullWidthBackground/FullWidthBackground.js.map +1 -1
- package/build/esm/components/FullscreenImage/FullscreenImage.js +1 -1
- package/build/esm/components/FullscreenImage/FullscreenImage.js.map +1 -1
- package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -1
- package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js.map +1 -1
- package/build/esm/components/IconWrapper/IconWrapper.js +2 -2
- package/build/esm/components/IconWrapper/IconWrapper.js.map +1 -1
- package/build/esm/components/Image/schema.js +40 -12
- package/build/esm/components/Image/schema.js.map +1 -1
- package/build/esm/components/ImageBase/ImageBase.js +3 -5
- package/build/esm/components/ImageBase/ImageBase.js.map +1 -1
- package/build/esm/components/InnerForm/InnerForm.js +5 -6
- package/build/esm/components/InnerForm/InnerForm.js.map +1 -1
- package/build/esm/components/Link/Link.js +13 -4
- package/build/esm/components/Link/Link.js.map +1 -1
- package/build/esm/components/Links/Links.js +4 -1
- package/build/esm/components/Links/Links.js.map +1 -1
- package/build/esm/components/Map/GoogleMap.js +1 -1
- package/build/esm/components/Map/GoogleMap.js.map +1 -1
- package/build/esm/components/Map/Map.js +2 -2
- package/build/esm/components/Map/Map.js.map +1 -1
- package/build/esm/components/Map/YMap/YMap.js +6 -5
- package/build/esm/components/Map/YMap/YMap.js.map +1 -1
- package/build/esm/components/Map/YMap/YandexMap.js +2 -3
- package/build/esm/components/Map/YMap/YandexMap.js.map +1 -1
- package/build/esm/components/Map/YMap/YandexMapApiLoader.js +2 -1
- package/build/esm/components/Map/YMap/YandexMapApiLoader.js.map +1 -1
- package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js +1 -1
- package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
- package/build/esm/components/Media/Image/Image.js +4 -4
- package/build/esm/components/Media/Image/Image.js.map +1 -1
- package/build/esm/components/Media/Media.js +13 -5
- package/build/esm/components/Media/Media.js.map +1 -1
- package/build/esm/components/MediaBase/MediaBase.js +3 -4
- package/build/esm/components/MediaBase/MediaBase.js.map +1 -1
- package/build/esm/components/MediaBase/MediaBaseContent.js +1 -1
- package/build/esm/components/MediaBase/MediaBaseContent.js.map +1 -1
- package/build/esm/components/OutsideClick/OutsideClick.js +10 -13
- package/build/esm/components/OutsideClick/OutsideClick.js.map +1 -1
- package/build/esm/components/OverflowScroller/OverflowScroller.js +47 -50
- package/build/esm/components/OverflowScroller/OverflowScroller.js.map +1 -1
- package/build/esm/components/ReactPlayer/ReactPlayer.js +11 -13
- package/build/esm/components/ReactPlayer/ReactPlayer.js.map +1 -1
- package/build/esm/components/ReactPlayer/utils.js +1 -2
- package/build/esm/components/ReactPlayer/utils.js.map +1 -1
- package/build/esm/components/Title/Title.js +2 -3
- package/build/esm/components/Title/Title.js.map +1 -1
- package/build/esm/components/Title/TitleItem.css +8 -1
- package/build/esm/components/Title/TitleItem.js +2 -1
- package/build/esm/components/Title/TitleItem.js.map +1 -1
- package/build/esm/components/VideoBlock/VideoBlock.js +6 -3
- package/build/esm/components/VideoBlock/VideoBlock.js.map +1 -1
- package/build/esm/components/YandexForm/YandexForm.js +3 -3
- package/build/esm/components/YandexForm/YandexForm.js.map +1 -1
- package/build/esm/components/YandexForm/schema.js +7 -3
- package/build/esm/components/YandexForm/schema.js.map +1 -1
- package/build/esm/containers/Loadable/Loadable.js +3 -3
- package/build/esm/containers/Loadable/Loadable.js.map +1 -1
- package/build/esm/containers/PageConstructor/PageConstructor.css +1 -0
- package/build/esm/containers/PageConstructor/PageConstructor.d.ts +1 -1
- package/build/esm/containers/PageConstructor/PageConstructor.js +15 -9
- package/build/esm/containers/PageConstructor/PageConstructor.js.map +1 -1
- package/build/esm/containers/PageConstructor/Provider.js +1 -1
- package/build/esm/containers/PageConstructor/Provider.js.map +1 -1
- package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js +2 -2
- package/build/esm/containers/PageConstructor/components/ConstructorBlock/ConstructorBlock.js.map +1 -1
- package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js +1 -1
- package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
- package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js +2 -3
- package/build/esm/containers/PageConstructor/components/ConstructorItem/ConstructorItem.js.map +1 -1
- package/build/esm/context/theme/withTheme.js +7 -9
- package/build/esm/context/theme/withTheme.js.map +1 -1
- package/build/esm/customization/BlockDecoration.js +3 -6
- package/build/esm/customization/BlockDecoration.js.map +1 -1
- package/build/esm/editor/components/AddBlock/AddBlock.js +7 -9
- package/build/esm/editor/components/AddBlock/AddBlock.js.map +1 -1
- package/build/esm/editor/components/BlockForm/BlockForm.js +11 -7
- package/build/esm/editor/components/BlockForm/BlockForm.js.map +1 -1
- package/build/esm/editor/components/CodeEditor/CodeEditor.js +1 -1
- package/build/esm/editor/components/CodeEditor/CodeEditor.js.map +1 -1
- package/build/esm/editor/components/ControlPanel/ControlPanel.css +1 -1
- package/build/esm/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js +4 -5
- package/build/esm/editor/components/DeviceEmulation/DeviceEmulationMobile/DeviceEmulationMobile.js.map +1 -1
- package/build/esm/editor/components/EditBlock/EditBlock.js +2 -2
- package/build/esm/editor/components/EditBlock/EditBlock.js.map +1 -1
- package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.js +2 -5
- package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/build/esm/editor/components/Layout/Layout.js +3 -3
- package/build/esm/editor/components/Layout/Layout.js.map +1 -1
- package/build/esm/editor/components/PageSettings/PageSettings.js +3 -4
- package/build/esm/editor/components/PageSettings/PageSettings.js.map +1 -1
- package/build/esm/editor/containers/Editor/Editor.js +1 -1
- package/build/esm/editor/containers/Editor/Editor.js.map +1 -1
- package/build/esm/editor/containers/Editor/hooks/useCode.js +2 -4
- package/build/esm/editor/containers/Editor/hooks/useCode.js.map +1 -1
- package/build/esm/editor/containers/Editor/hooks/useEditorState.js +10 -8
- package/build/esm/editor/containers/Editor/hooks/useEditorState.js.map +1 -1
- package/build/esm/editor/containers/Form/Form.js +5 -2
- package/build/esm/editor/containers/Form/Form.js.map +1 -1
- package/build/esm/editor/data/index.js +4 -1
- package/build/esm/editor/data/index.js.map +1 -1
- package/build/esm/editor/data/previews/default-preview.js +1 -1
- package/build/esm/editor/data/previews/default-preview.js.map +1 -1
- package/build/esm/editor/data/previews/header-block.js +1 -1
- package/build/esm/editor/data/previews/header-block.js.map +1 -1
- package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +16 -14
- package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
- package/build/esm/editor/dynamic-forms-custom/config.js +1 -1
- package/build/esm/editor/dynamic-forms-custom/config.js.map +1 -1
- package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.js +10 -12
- package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.js.map +1 -1
- package/build/esm/editor/dynamic-forms-custom/parser/index.js +150 -120
- package/build/esm/editor/dynamic-forms-custom/parser/index.js.map +1 -1
- package/build/esm/editor/dynamic-forms-custom/parser/views.js +2 -4
- package/build/esm/editor/dynamic-forms-custom/parser/views.js.map +1 -1
- package/build/esm/editor/icons/Tablet.js +1 -1
- package/build/esm/editor/icons/Tablet.js.map +1 -1
- package/build/esm/editor/store/main/index.js +7 -5
- package/build/esm/editor/store/main/index.js.map +1 -1
- package/build/esm/editor/store/main/reducer.js +17 -3
- package/build/esm/editor/store/main/reducer.js.map +1 -1
- package/build/esm/editor/store/main/utils.js +2 -2
- package/build/esm/editor/store/main/utils.js.map +1 -1
- package/build/esm/editor/store/settings/reducer.js +16 -4
- package/build/esm/editor/store/settings/reducer.js.map +1 -1
- package/build/esm/editor/utils/code.js +4 -2
- package/build/esm/editor/utils/code.js.map +1 -1
- package/build/esm/editor/utils/index.js +8 -2
- package/build/esm/editor/utils/index.js.map +1 -1
- package/build/esm/editor/utils/validation.js +1 -1
- package/build/esm/editor/utils/validation.js.map +1 -1
- package/build/esm/editor/widget/index.js +8 -8
- package/build/esm/editor/widget/index.js.map +1 -1
- package/build/esm/grid/Col/Col.js +1 -2
- package/build/esm/grid/Col/Col.js.map +1 -1
- package/build/esm/hooks/useAnalytics.js +4 -1
- package/build/esm/hooks/useAnalytics.js.map +1 -1
- package/build/esm/hooks/useFocus.js +1 -1
- package/build/esm/hooks/useFocus.js.map +1 -1
- package/build/esm/hooks/useHeightCalculator.js +1 -1
- package/build/esm/hooks/useHeightCalculator.js.map +1 -1
- package/build/esm/hooks/useWindowBreakpoint.js +1 -1
- package/build/esm/hooks/useWindowBreakpoint.js.map +1 -1
- package/build/esm/icons/BrandIconDark.js +1 -1
- package/build/esm/icons/BrandIconDark.js.map +1 -1
- package/build/esm/icons/BrandIconLight.js +1 -1
- package/build/esm/icons/BrandIconLight.js.map +1 -1
- package/build/esm/icons/BrandName.js +1 -1
- package/build/esm/icons/BrandName.js.map +1 -1
- package/build/esm/icons/Chevron.js +1 -1
- package/build/esm/icons/Chevron.js.map +1 -1
- package/build/esm/icons/Facebook.js +1 -1
- package/build/esm/icons/Facebook.js.map +1 -1
- package/build/esm/icons/Github.js +1 -1
- package/build/esm/icons/Github.js.map +1 -1
- package/build/esm/icons/Linkedin.js +1 -1
- package/build/esm/icons/Linkedin.js.map +1 -1
- package/build/esm/icons/NavigationArrow.js +1 -1
- package/build/esm/icons/NavigationArrow.js.map +1 -1
- package/build/esm/icons/NavigationChevron.js +1 -1
- package/build/esm/icons/NavigationChevron.js.map +1 -1
- package/build/esm/icons/Telegram.js +1 -1
- package/build/esm/icons/Telegram.js.map +1 -1
- package/build/esm/icons/Twitter.js +1 -1
- package/build/esm/icons/Twitter.js.map +1 -1
- package/build/esm/icons/Vk.js +1 -1
- package/build/esm/icons/Vk.js.map +1 -1
- package/build/esm/models/constructor-items/blocks.d.ts +2 -1
- package/build/esm/models/constructor-items/blocks.js.map +1 -1
- package/build/esm/models/constructor-items/common.d.ts +2 -2
- package/build/esm/models/constructor-items/common.js.map +1 -1
- package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.js +1 -1
- package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
- package/build/esm/navigation/components/Logo/Logo.js +4 -6
- package/build/esm/navigation/components/Logo/Logo.js.map +1 -1
- package/build/esm/navigation/components/MobileNavigation/MobileNavigation.js +2 -4
- package/build/esm/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/NavigationItem.js +8 -7
- package/build/esm/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js +1 -1
- package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/GithubButton/GithubButton.js +2 -3
- package/build/esm/navigation/components/NavigationItem/components/GithubButton/GithubButton.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js +1 -1
- package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js +2 -4
- package/build/esm/navigation/components/NavigationItem/components/NavigationDropdown/NavigationDropdown.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +4 -5
- package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
- package/build/esm/navigation/components/NavigationItem/hooks/useNavigationItemMap.js +1 -1
- package/build/esm/navigation/components/NavigationItem/hooks/useNavigationItemMap.js.map +1 -1
- package/build/esm/navigation/components/NavigationList/NavigationList.js +1 -5
- package/build/esm/navigation/components/NavigationList/NavigationList.js.map +1 -1
- package/build/esm/navigation/components/NavigationListItem/NavigationListItem.js +2 -4
- package/build/esm/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
- package/build/esm/navigation/components/SocialIcon/SocialIcon.js +1 -1
- package/build/esm/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
- package/build/esm/navigation/components/Standalone/index.js +1 -1
- package/build/esm/navigation/components/Standalone/index.js.map +1 -1
- package/build/esm/navigation/hooks/useActiveNavItem.d.ts +2 -2
- package/build/esm/navigation/hooks/useActiveNavItem.js +1 -1
- package/build/esm/navigation/hooks/useActiveNavItem.js.map +1 -1
- package/build/esm/navigation/hooks/useShowBorder.js +1 -1
- package/build/esm/navigation/hooks/useShowBorder.js.map +1 -1
- package/build/esm/navigation/schema.js +20 -7
- package/build/esm/navigation/schema.js.map +1 -1
- package/build/esm/navigation/utils.d.ts +1 -1
- package/build/esm/navigation/utils.js +1 -1
- package/build/esm/navigation/utils.js.map +1 -1
- package/build/esm/schema/constants.js +33 -2
- package/build/esm/schema/constants.js.map +1 -1
- package/build/esm/schema/index.js +23 -6
- package/build/esm/schema/index.js.map +1 -1
- package/build/esm/schema/validators/common.js +78 -32
- package/build/esm/schema/validators/common.js.map +1 -1
- package/build/esm/schema/validators/utils.js +9 -2
- package/build/esm/schema/validators/utils.js.map +1 -1
- package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +1 -1
- package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
- package/build/esm/sub-blocks/BackgroundCard/schema.js +24 -9
- package/build/esm/sub-blocks/BackgroundCard/schema.js.map +1 -1
- package/build/esm/sub-blocks/BannerCard/BannerCard.js +1 -1
- package/build/esm/sub-blocks/BannerCard/BannerCard.js.map +1 -1
- package/build/esm/sub-blocks/BasicCard/BasicCard.js +2 -3
- package/build/esm/sub-blocks/BasicCard/BasicCard.js.map +1 -1
- package/build/esm/sub-blocks/BasicCard/schema.js +18 -7
- package/build/esm/sub-blocks/BasicCard/schema.js.map +1 -1
- package/build/esm/sub-blocks/Content/Content.css +53 -6
- package/build/esm/sub-blocks/Content/Content.js +3 -1
- package/build/esm/sub-blocks/Content/Content.js.map +1 -1
- package/build/esm/sub-blocks/Content/schema.js +10 -3
- package/build/esm/sub-blocks/Content/schema.js.map +1 -1
- package/build/esm/sub-blocks/Divider/schema.js +6 -2
- package/build/esm/sub-blocks/Divider/schema.js.map +1 -1
- package/build/esm/sub-blocks/HubspotForm/index.js +3 -3
- package/build/esm/sub-blocks/HubspotForm/index.js.map +1 -1
- package/build/esm/sub-blocks/HubspotForm/loadHubspotScript.js +1 -2
- package/build/esm/sub-blocks/HubspotForm/loadHubspotScript.js.map +1 -1
- package/build/esm/sub-blocks/HubspotForm/schema.js +11 -5
- package/build/esm/sub-blocks/HubspotForm/schema.js.map +1 -1
- package/build/esm/sub-blocks/ImageCard/ImageCard.css +2 -0
- package/build/esm/sub-blocks/ImageCard/ImageCard.js +1 -1
- package/build/esm/sub-blocks/ImageCard/ImageCard.js.map +1 -1
- package/build/esm/sub-blocks/ImageCard/schema.js +18 -7
- package/build/esm/sub-blocks/ImageCard/schema.js.map +1 -1
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +11 -10
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
- package/build/esm/sub-blocks/LayoutItem/schema.js +20 -7
- package/build/esm/sub-blocks/LayoutItem/schema.js.map +1 -1
- package/build/esm/sub-blocks/LayoutItem/utils.js +4 -1
- package/build/esm/sub-blocks/LayoutItem/utils.js.map +1 -1
- package/build/esm/sub-blocks/MediaCard/MediaCard.js +1 -5
- package/build/esm/sub-blocks/MediaCard/MediaCard.js.map +1 -1
- package/build/esm/sub-blocks/MediaCard/schema.js +12 -3
- package/build/esm/sub-blocks/MediaCard/schema.js.map +1 -1
- package/build/esm/sub-blocks/PriceCard/PriceCard.js +2 -2
- package/build/esm/sub-blocks/PriceCard/PriceCard.js.map +1 -1
- package/build/esm/sub-blocks/PriceCard/schema.js +25 -11
- package/build/esm/sub-blocks/PriceCard/schema.js.map +1 -1
- package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
- package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js.map +1 -1
- package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +2 -2
- package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js.map +1 -1
- package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.js +1 -1
- package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.js.map +1 -1
- package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +1 -5
- package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js.map +1 -1
- package/build/esm/sub-blocks/PriceDetailed/schema.js +44 -12
- package/build/esm/sub-blocks/PriceDetailed/schema.js.map +1 -1
- package/build/esm/sub-blocks/Quote/Quote.js +6 -3
- package/build/esm/sub-blocks/Quote/Quote.js.map +1 -1
- package/build/esm/sub-blocks/Quote/schema.js +21 -8
- package/build/esm/sub-blocks/Quote/schema.js.map +1 -1
- package/build/esm/text-transform/common.js +10 -7
- package/build/esm/text-transform/common.js.map +1 -1
- package/build/esm/text-transform/config.js +26 -19
- package/build/esm/text-transform/config.js.map +1 -1
- package/build/esm/text-transform/filter.js +4 -1
- package/build/esm/text-transform/filter.js.map +1 -1
- package/build/esm/text-transform/transformers.js +3 -3
- package/build/esm/text-transform/transformers.js.map +1 -1
- package/build/esm/text-transform/utils.js +8 -6
- package/build/esm/text-transform/utils.js.map +1 -1
- package/build/esm/utils/analytics.js +2 -3
- package/build/esm/utils/analytics.js.map +1 -1
- package/build/esm/utils/blocks.js +3 -2
- package/build/esm/utils/blocks.js.map +1 -1
- package/build/esm/utils/common.js +1 -2
- package/build/esm/utils/common.js.map +1 -1
- package/build/esm/utils/hubspot.js +6 -7
- package/build/esm/utils/hubspot.js.map +1 -1
- package/build/esm/utils/microdata.js +1 -1
- package/build/esm/utils/microdata.js.map +1 -1
- package/build/esm/utils/url.js +10 -5
- package/build/esm/utils/url.js.map +1 -1
- package/package.json +16 -11
- package/schema/index.js +1 -1
- package/server/models/constructor-items/blocks.d.ts +2 -1
- package/server/models/constructor-items/common.d.ts +2 -2
- package/server/utils/blocks.js +1 -0
- package/styles/root.scss +1 -0
- package/widget/2957.index.js +1 -1
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Controller, GroupIndent, SpecTypes, transformArrOut, } from '@gravity-ui/dynamic-forms';
|
|
4
4
|
import Ajv from 'ajv';
|
|
5
|
-
import isEmpty from
|
|
5
|
+
import isEmpty from "lodash/isEmpty.js";
|
|
6
6
|
import { block } from "../../../../utils/index.js";
|
|
7
7
|
import { getSpecTypeDefaultValue, useOneOf } from "../../hooks/useOneOf.js";
|
|
8
8
|
import './OneOfCustom.css';
|
|
@@ -14,7 +14,7 @@ const ajv = new Ajv({
|
|
|
14
14
|
strictTypes: false,
|
|
15
15
|
strictRequired: false,
|
|
16
16
|
});
|
|
17
|
-
const getOneOfCustomSpecDefaultType = (spec) =>
|
|
17
|
+
const getOneOfCustomSpecDefaultType = (spec) => spec.viewSpec?.order?.[0] || Object.keys(spec.properties || {})[0];
|
|
18
18
|
// dynamic-forms pass {} as default value for required properties of all types
|
|
19
19
|
// this function replaces {} with default value accordingly to selected OneOf option spec type
|
|
20
20
|
const getControllerDefautValue = (value, valueSpecType) => {
|
|
@@ -39,29 +39,31 @@ const getControllerDefautValue = (value, valueSpecType) => {
|
|
|
39
39
|
* @returns {React.FC<ObjectIndependentInputProps>}
|
|
40
40
|
*/
|
|
41
41
|
export const OneOfCustom = (props) => {
|
|
42
|
-
var _a;
|
|
43
42
|
const { spec, input, name } = props;
|
|
44
43
|
const { properties } = spec;
|
|
45
44
|
//getting oneOf option type from initial value
|
|
46
|
-
const valueType = React.useMemo(() =>
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}))) ||
|
|
53
|
-
getOneOfCustomSpecDefaultType(spec);
|
|
54
|
-
},
|
|
45
|
+
const valueType = React.useMemo(() => (properties &&
|
|
46
|
+
Object.keys(properties)?.find((key) => {
|
|
47
|
+
const fieldSchema = (properties?.[key]).__schema;
|
|
48
|
+
return fieldSchema && ajv.validate(fieldSchema, transformArrOut(input.value));
|
|
49
|
+
})) ||
|
|
50
|
+
getOneOfCustomSpecDefaultType(spec),
|
|
55
51
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
52
|
[]);
|
|
57
53
|
const { oneOfValue, specProperties, toggler } = useOneOf({
|
|
58
|
-
props:
|
|
54
|
+
props: {
|
|
55
|
+
...props,
|
|
56
|
+
input: {
|
|
57
|
+
...input,
|
|
58
|
+
value: valueType ? { [valueType]: input.value } : input.value,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
59
61
|
});
|
|
60
62
|
const parentOnChange = React.useCallback((_childName, childValue, childErrors) => {
|
|
61
63
|
input.onChange(childValue, childErrors);
|
|
62
64
|
}, [input]);
|
|
63
65
|
const parentOnUnmount = React.useCallback((childName) => input.onChange((currentValue) => currentValue, { [childName]: false }), [input]);
|
|
64
|
-
const valueSpecType =
|
|
66
|
+
const valueSpecType = specProperties[oneOfValue]?.type || SpecTypes.Object;
|
|
65
67
|
return (_jsxs("div", { className: b(), children: [_jsx("div", { children: toggler }), specProperties[oneOfValue] && (_jsx(GroupIndent, { children: _jsx(Controller, { value: getControllerDefautValue(input.value, valueSpecType), name: name, spec: specProperties[oneOfValue], parentOnChange: parentOnChange, parentOnUnmount: parentOnUnmount }, `${name}.${oneOfValue}`) }))] }));
|
|
66
68
|
};
|
|
67
69
|
//# sourceMappingURL=OneOfCustom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OneOfCustom.js","sourceRoot":"../../../../../../src","sources":["editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACH,UAAU,EAGV,WAAW,EAGX,SAAS,EAET,eAAe,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,
|
|
1
|
+
{"version":3,"file":"OneOfCustom.js","sourceRoot":"../../../../../../src","sources":["editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {\n Controller,\n FieldObjectValue,\n FieldValue,\n GroupIndent,\n ObjectIndependentInputProps,\n ObjectSpec,\n SpecTypes,\n ValidateError,\n transformArrOut,\n} from '@gravity-ui/dynamic-forms';\nimport Ajv from 'ajv';\nimport isEmpty from 'lodash/isEmpty';\n\nimport {block} from '../../../../utils';\nimport {getSpecTypeDefaultValue, useOneOf} from '../../hooks/useOneOf';\nimport {SpecCustomProps} from '../../parser/types';\n\nimport './OneOfCustom.scss';\n\nconst b = block('one-of-custom');\n\nconst ajv = new Ajv({\n $data: true,\n strict: false,\n strictSchema: false,\n strictTypes: false,\n strictRequired: false,\n});\n\nconst getOneOfCustomSpecDefaultType = (spec: ObjectSpec) =>\n spec.viewSpec?.order?.[0] || Object.keys(spec.properties || {})[0];\n\n// dynamic-forms pass {} as default value for required properties of all types\n// this function replaces {} with default value accordingly to selected OneOf option spec type\nconst getControllerDefautValue = (value: FieldValue, valueSpecType?: SpecTypes) => {\n const isDefaultValue = typeof value === 'object' && isEmpty(value);\n const defaultValue = valueSpecType ? getSpecTypeDefaultValue(valueSpecType) : undefined;\n\n return isDefaultValue ? (defaultValue as FieldValue) : value;\n};\n\n/**\n * Customization of @gravity-ui/dynamic-forms OneOf component\n *\n * Main differences from original component:\n *\n * 1. Custom component can detect initial data type by it's json schema passed it __schema property of spec and\n * shows according input\n *\n * 2. Custom component doesn't create additional nested level of data for each OneOf option and doesn't wraps data value, e.g.\n *\n * custom component: {propertyName: propertyValue}\n * original component: {propertyName: {option1: {value: propertyValue}}}\n *\n * @param {ObjectIndependentInputProps} props - props of original OneOf component\n * @returns {React.FC<ObjectIndependentInputProps>}\n */\nexport const OneOfCustom: React.FC<ObjectIndependentInputProps> = (props) => {\n const {spec, input, name} = props;\n const {properties} = spec;\n\n //getting oneOf option type from initial value\n const valueType = React.useMemo(\n () =>\n (properties &&\n Object.keys(properties)?.find((key) => {\n const fieldSchema = (properties?.[key] as SpecCustomProps).__schema;\n\n return fieldSchema && ajv.validate(fieldSchema, transformArrOut(input.value));\n })) ||\n getOneOfCustomSpecDefaultType(spec),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const {oneOfValue, specProperties, toggler} = useOneOf({\n props: {\n ...props,\n input: {\n ...input,\n value: valueType ? {[valueType]: input.value} : input.value,\n },\n },\n });\n\n const parentOnChange = React.useCallback(\n (\n _childName: string,\n childValue: FieldValue,\n childErrors?: Record<string, ValidateError>,\n ) => {\n input.onChange(childValue as FieldObjectValue, childErrors);\n },\n [input],\n );\n\n const parentOnUnmount = React.useCallback(\n (childName: string) => input.onChange((currentValue) => currentValue, {[childName]: false}),\n [input],\n );\n\n const valueSpecType = specProperties[oneOfValue]?.type || SpecTypes.Object;\n\n return (\n <div className={b()}>\n <div>{toggler}</div>\n {specProperties[oneOfValue] && (\n <GroupIndent>\n <Controller\n value={getControllerDefautValue(input.value, valueSpecType)}\n name={name}\n spec={specProperties[oneOfValue]}\n parentOnChange={parentOnChange}\n parentOnUnmount={parentOnUnmount}\n key={`${name}.${oneOfValue}`}\n />\n </GroupIndent>\n )}\n </div>\n );\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { dynamicConfig as libConfig } from '@gravity-ui/dynamic-forms';
|
|
2
|
-
import cloneDeep from
|
|
2
|
+
import cloneDeep from "lodash/cloneDeep.js";
|
|
3
3
|
import { OneOfCustom } from "./components/OneOfCustom/OneOfCustom.js";
|
|
4
4
|
const getDynamicConfig = () => {
|
|
5
5
|
const dynamicConfig = cloneDeep(libConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"../../../../src","sources":["editor/dynamic-forms-custom/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACxF,OAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"../../../../src","sources":["editor/dynamic-forms-custom/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,aAAa,IAAI,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACxF,OAAO,SAAS,4BAAyB;AAEzC,OAAO,EAAC,WAAW,EAAC,gDAA6C;AAEjE,MAAM,gBAAgB,GAAG,GAAG,EAAE;IAC1B,MAAM,aAAa,GAAsB,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9D,aAAa;IACb,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;IAE1F,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC","sourcesContent":["import {DynamicFormConfig, dynamicConfig as libConfig} from '@gravity-ui/dynamic-forms';\nimport cloneDeep from 'lodash/cloneDeep';\n\nimport {OneOfCustom} from './components/OneOfCustom/OneOfCustom';\n\nconst getDynamicConfig = () => {\n const dynamicConfig: DynamicFormConfig = cloneDeep(libConfig);\n\n // @ts-ignore\n dynamicConfig.object.inputs['oneof_custom'] = {Component: OneOfCustom, independent: true};\n\n return dynamicConfig;\n};\n\nexport const dynamicConfig = getDynamicConfig();\n"]}
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { SpecTypes, } from '@gravity-ui/dynamic-forms';
|
|
4
4
|
import { SegmentedRadioGroup, Select } from '@gravity-ui/uikit';
|
|
5
|
-
import isObjectLike from
|
|
6
|
-
import some from
|
|
5
|
+
import isObjectLike from "lodash/isObjectLike.js";
|
|
6
|
+
import some from "lodash/some.js";
|
|
7
7
|
const MAX_TAB_TITLE_LENGTH = 20;
|
|
8
8
|
export const getSpecTypeDefaultValue = (type) => {
|
|
9
9
|
switch (type) {
|
|
@@ -32,18 +32,16 @@ export const useOneOf = ({ props, onTogglerChange }) => {
|
|
|
32
32
|
return (valueKeys || order || Object.keys(specProperties))[0];
|
|
33
33
|
});
|
|
34
34
|
const onOneOfChange = React.useCallback(([newValue]) => {
|
|
35
|
-
var _a;
|
|
36
35
|
if (newValue !== oneOfValue) {
|
|
37
|
-
const specType =
|
|
36
|
+
const specType = specProperties[newValue]?.type || SpecTypes.Object;
|
|
38
37
|
input.onChange(getSpecTypeDefaultValue(specType));
|
|
39
38
|
setOneOfValue(newValue);
|
|
40
|
-
onTogglerChange
|
|
39
|
+
onTogglerChange?.(newValue);
|
|
41
40
|
}
|
|
42
41
|
}, [setOneOfValue, input, oneOfValue, specProperties, onTogglerChange]);
|
|
43
42
|
const options = React.useMemo(() => (order || Object.keys(specProperties)).map((value) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
((_b = specProperties[value]) === null || _b === void 0 ? void 0 : _b.viewSpec.layoutTitle) ||
|
|
43
|
+
const title = spec.description?.[value] ||
|
|
44
|
+
specProperties[value]?.viewSpec.layoutTitle ||
|
|
47
45
|
value ||
|
|
48
46
|
'';
|
|
49
47
|
return {
|
|
@@ -53,17 +51,17 @@ export const useOneOf = ({ props, onTogglerChange }) => {
|
|
|
53
51
|
};
|
|
54
52
|
}), [spec.description, order, specProperties]);
|
|
55
53
|
const togglerInput = React.useMemo(() => {
|
|
56
|
-
if (
|
|
57
|
-
(
|
|
54
|
+
if (oneOfParams?.toggler !== 'radio' &&
|
|
55
|
+
(oneOfParams?.toggler === 'select' ||
|
|
58
56
|
options.length > 3 ||
|
|
59
57
|
some(options, ({ title }) => title.length > MAX_TAB_TITLE_LENGTH))) {
|
|
60
58
|
return (_jsx(Select, { width: "max", value: [oneOfValue], onUpdate: onOneOfChange, options: options, disabled: disabled, filterable: options.length > 7, qa: name }));
|
|
61
59
|
}
|
|
62
60
|
return (_jsx(SegmentedRadioGroup, { value: oneOfValue, onChange: (event) => onOneOfChange([event.target.value]), disabled: disabled, qa: name, children: options.map(({ value, title }) => (_jsx(SegmentedRadioGroup.Option, { value: value, children: title }, value))) }));
|
|
63
|
-
}, [options, oneOfValue, onOneOfChange, name, oneOfParams
|
|
61
|
+
}, [options, oneOfValue, onOneOfChange, name, oneOfParams?.toggler, disabled]);
|
|
64
62
|
const toggler = React.useMemo(() => {
|
|
65
63
|
if (Layout) {
|
|
66
|
-
return _jsx(Layout,
|
|
64
|
+
return _jsx(Layout, { ...props, children: togglerInput });
|
|
67
65
|
}
|
|
68
66
|
return togglerInput;
|
|
69
67
|
}, [Layout, togglerInput, props]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOneOf.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/hooks/useOneOf.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAIH,SAAS,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAC,mBAAmB,EAAE,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC9D,OAAO,YAAY
|
|
1
|
+
{"version":3,"file":"useOneOf.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/hooks/useOneOf.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {\n FieldObjectValue,\n ObjectIndependentInputProps,\n Spec,\n SpecTypes,\n} from '@gravity-ui/dynamic-forms';\nimport {SegmentedRadioGroup, Select} from '@gravity-ui/uikit';\nimport isObjectLike from 'lodash/isObjectLike';\nimport some from 'lodash/some';\n\nconst MAX_TAB_TITLE_LENGTH = 20;\n\nexport interface UseOneOfParams {\n props: ObjectIndependentInputProps;\n onTogglerChange?: (value: string) => void;\n}\n\nexport const getSpecTypeDefaultValue = (type: SpecTypes) => {\n switch (type) {\n case SpecTypes.Array:\n return [];\n case SpecTypes.Boolean:\n case SpecTypes.Number:\n case SpecTypes.String:\n return undefined;\n default:\n return {};\n }\n};\n\nexport const useOneOf = ({props, onTogglerChange}: UseOneOfParams) => {\n const {name, input, spec, Layout} = props;\n const {order, disabled, oneOfParams} = spec.viewSpec;\n\n const specProperties = React.useMemo(\n () => (isObjectLike(spec.properties) ? (spec.properties as Record<string, Spec>) : {}),\n [spec.properties],\n );\n\n const [oneOfValue, setOneOfValue] = React.useState(() => {\n let valueKeys: string[] | undefined;\n\n if (isObjectLike(input.value)) {\n const keys = Object.keys(input.value);\n\n if (keys.length) {\n valueKeys = keys;\n }\n }\n\n return (valueKeys || order || Object.keys(specProperties))[0];\n });\n\n const onOneOfChange = React.useCallback(\n ([newValue]: string[]) => {\n if (newValue !== oneOfValue) {\n const specType = specProperties[newValue]?.type || SpecTypes.Object;\n input.onChange(getSpecTypeDefaultValue(specType) as FieldObjectValue);\n setOneOfValue(newValue);\n onTogglerChange?.(newValue);\n }\n },\n [setOneOfValue, input, oneOfValue, specProperties, onTogglerChange],\n );\n\n const options = React.useMemo(\n () =>\n (order || Object.keys(specProperties)).map((value) => {\n const title =\n spec.description?.[value] ||\n specProperties[value]?.viewSpec.layoutTitle ||\n value ||\n '';\n\n return {\n value,\n title,\n content: title,\n };\n }),\n [spec.description, order, specProperties],\n );\n\n const togglerInput = React.useMemo(() => {\n if (\n oneOfParams?.toggler !== 'radio' &&\n (oneOfParams?.toggler === 'select' ||\n options.length > 3 ||\n some(options, ({title}) => title.length > MAX_TAB_TITLE_LENGTH))\n ) {\n return (\n <Select\n width=\"max\"\n value={[oneOfValue]}\n onUpdate={onOneOfChange}\n options={options}\n disabled={disabled}\n filterable={options.length > 7}\n qa={name}\n />\n );\n }\n\n return (\n <SegmentedRadioGroup\n value={oneOfValue}\n onChange={(event) => onOneOfChange([event.target.value])}\n disabled={disabled}\n qa={name}\n >\n {options.map(({value, title}) => (\n <SegmentedRadioGroup.Option key={value} value={value}>\n {title}\n </SegmentedRadioGroup.Option>\n ))}\n </SegmentedRadioGroup>\n );\n }, [options, oneOfValue, onOneOfChange, name, oneOfParams?.toggler, disabled]);\n\n const toggler = React.useMemo(() => {\n if (Layout) {\n return <Layout {...props}>{togglerInput}</Layout>;\n }\n\n return togglerInput;\n }, [Layout, togglerInput, props]);\n\n return {oneOfValue, specProperties, toggler, togglerInput};\n};\n"]}
|
|
@@ -1,123 +1,11 @@
|
|
|
1
|
-
import { __rest } from "tslib";
|
|
2
1
|
/* eslint-disable no-param-reassign */
|
|
3
2
|
/* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */
|
|
4
3
|
import { SpecTypes } from '@gravity-ui/dynamic-forms';
|
|
5
4
|
import { ParserType, detectParserType } from "./detect.js";
|
|
6
5
|
import { getArrayViewSpec, getObjectViewSpec, getOneOfViewSpec, getPrimitiveViewSpec } from "./views.js";
|
|
7
6
|
class FormSpecParser {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this.definitions = {};
|
|
11
|
-
this.getChildrenSpec = (data) => {
|
|
12
|
-
var _a, _b, _c;
|
|
13
|
-
const childrenType = (_c = (_b = (_a = data.items) === null || _a === void 0 ? void 0 : _a.$ref) === null || _b === void 0 ? void 0 : _b.split('/')) === null || _c === void 0 ? void 0 : _c.pop();
|
|
14
|
-
return this.definitions[childrenType];
|
|
15
|
-
};
|
|
16
|
-
this.getRequiredProperties = (data) => Array.isArray(data.required) ? data.required : [];
|
|
17
|
-
this.childrenParser = ({ data, name, required }) => {
|
|
18
|
-
const childSpec = this.getChildrenSpec(data);
|
|
19
|
-
const properties = childSpec &&
|
|
20
|
-
Object.entries(childSpec).reduce((parsedChildSpecProperties, [childName, childSchema]) => {
|
|
21
|
-
const childRequiredProperties = this.getRequiredProperties(childSchema);
|
|
22
|
-
const childProperies = childSchema.properties &&
|
|
23
|
-
Object.entries(childSchema.properties).reduce((parsedChildProperties, [childPropertyName, childPropertyData]) => {
|
|
24
|
-
parsedChildProperties[childPropertyName] = this.parseSchemaProperty({
|
|
25
|
-
data: childPropertyData,
|
|
26
|
-
name: childPropertyName,
|
|
27
|
-
required: childRequiredProperties.includes(childPropertyName),
|
|
28
|
-
});
|
|
29
|
-
return parsedChildProperties;
|
|
30
|
-
}, {});
|
|
31
|
-
const childJsonSchema = Object.assign(Object.assign({}, childSchema), { properties: Object.assign(Object.assign({}, childSchema.properties), { type: {
|
|
32
|
-
type: SpecTypes.String,
|
|
33
|
-
enum: [childName],
|
|
34
|
-
} }) });
|
|
35
|
-
parsedChildSpecProperties[childName] = {
|
|
36
|
-
type: SpecTypes.Array,
|
|
37
|
-
items: Object.assign(Object.assign({}, childSchema), { type: SpecTypes.Object, properties: Object.assign(Object.assign({}, childProperies), { type: {
|
|
38
|
-
type: SpecTypes.String,
|
|
39
|
-
defaultValue: childName,
|
|
40
|
-
viewSpec: {
|
|
41
|
-
type: 'hidden',
|
|
42
|
-
},
|
|
43
|
-
} }), viewSpec: childProperies &&
|
|
44
|
-
getObjectViewSpec({
|
|
45
|
-
properties: childProperies,
|
|
46
|
-
layoutTitle: childName,
|
|
47
|
-
}), __schema: childJsonSchema }),
|
|
48
|
-
required: false,
|
|
49
|
-
viewSpec: getArrayViewSpec({ layoutTitle: childName }),
|
|
50
|
-
__schema: {
|
|
51
|
-
type: SpecTypes.Array,
|
|
52
|
-
items: childJsonSchema,
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
return parsedChildSpecProperties;
|
|
56
|
-
}, {});
|
|
57
|
-
return {
|
|
58
|
-
type: SpecTypes.Object,
|
|
59
|
-
properties,
|
|
60
|
-
viewSpec: {
|
|
61
|
-
type: 'oneof_custom',
|
|
62
|
-
layout: 'row',
|
|
63
|
-
layoutTitle: name,
|
|
64
|
-
oneOfParams: {
|
|
65
|
-
toggler: 'select',
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
required,
|
|
69
|
-
};
|
|
70
|
-
};
|
|
71
|
-
this.oneOfParser = ({ data, name, required }) => {
|
|
72
|
-
const requiredProperties = this.getRequiredProperties(data);
|
|
73
|
-
const properties = data.oneOf &&
|
|
74
|
-
data.oneOf.reduce((result, propertyData, index) => {
|
|
75
|
-
const propertyName = (propertyData === null || propertyData === void 0 ? void 0 : propertyData.optionName)
|
|
76
|
-
? propertyData === null || propertyData === void 0 ? void 0 : propertyData.optionName
|
|
77
|
-
: `${name}_${index}`;
|
|
78
|
-
result[propertyName] = this.parseSchemaProperty({
|
|
79
|
-
data: propertyData,
|
|
80
|
-
name: propertyName,
|
|
81
|
-
required: requiredProperties.includes(propertyName),
|
|
82
|
-
});
|
|
83
|
-
return result;
|
|
84
|
-
}, {});
|
|
85
|
-
return {
|
|
86
|
-
type: SpecTypes.Object,
|
|
87
|
-
properties,
|
|
88
|
-
required,
|
|
89
|
-
viewSpec: getOneOfViewSpec({ layoutTitle: name }),
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
this.arrayParser = ({ data, name }) => {
|
|
93
|
-
const items = data.items && this.parseSchemaProperty({ data: data.items, name });
|
|
94
|
-
return Object.assign(Object.assign({}, data), { type: SpecTypes.Array, items, viewSpec: getArrayViewSpec({ layoutTitle: name }) });
|
|
95
|
-
};
|
|
96
|
-
this.objectParser = ({ data, name, required }) => {
|
|
97
|
-
const requiredProperties = this.getRequiredProperties(data);
|
|
98
|
-
const properties = data.properties &&
|
|
99
|
-
Object.entries(data.properties).reduce((result, [propertyName, propertyData]) => {
|
|
100
|
-
result[propertyName] = this.parseSchemaProperty({
|
|
101
|
-
data: propertyData,
|
|
102
|
-
name: propertyName,
|
|
103
|
-
required: requiredProperties.includes(propertyName),
|
|
104
|
-
});
|
|
105
|
-
return result;
|
|
106
|
-
}, {});
|
|
107
|
-
return Object.assign(Object.assign({}, data), { type: SpecTypes.Object, properties, viewSpec: getObjectViewSpec({ properties, layoutTitle: name }), required });
|
|
108
|
-
};
|
|
109
|
-
this.primitiveParser = ({ data, name, required }) => {
|
|
110
|
-
return Object.assign(Object.assign({}, data), { type: data.type, required, defaultValue: data.default, viewSpec: getPrimitiveViewSpec({ layoutTitle: name, data }), validator: 'base' });
|
|
111
|
-
};
|
|
112
|
-
//eslint-disable-next-line @typescript-eslint/member-ordering
|
|
113
|
-
this.schemaParserMap = {
|
|
114
|
-
[ParserType.Object]: this.objectParser,
|
|
115
|
-
[ParserType.Array]: this.arrayParser,
|
|
116
|
-
[ParserType.Primitive]: this.primitiveParser,
|
|
117
|
-
[ParserType.OneOf]: this.oneOfParser,
|
|
118
|
-
[ParserType.Children]: this.childrenParser,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
7
|
+
schema = {};
|
|
8
|
+
definitions = {};
|
|
121
9
|
/**
|
|
122
10
|
* Transforms page-constructor json schema into dynamic-forms specs for each block
|
|
123
11
|
*
|
|
@@ -128,28 +16,170 @@ class FormSpecParser {
|
|
|
128
16
|
this.init(schema);
|
|
129
17
|
return this.getFormSpec();
|
|
130
18
|
}
|
|
19
|
+
getChildrenSpec = (data) => {
|
|
20
|
+
const childrenType = data.items?.$ref?.split('/')?.pop();
|
|
21
|
+
return this.definitions[childrenType];
|
|
22
|
+
};
|
|
23
|
+
getRequiredProperties = (data) => Array.isArray(data.required) ? data.required : [];
|
|
24
|
+
childrenParser = ({ data, name, required }) => {
|
|
25
|
+
const childSpec = this.getChildrenSpec(data);
|
|
26
|
+
const properties = childSpec &&
|
|
27
|
+
Object.entries(childSpec).reduce((parsedChildSpecProperties, [childName, childSchema]) => {
|
|
28
|
+
const childRequiredProperties = this.getRequiredProperties(childSchema);
|
|
29
|
+
const childProperies = childSchema.properties &&
|
|
30
|
+
Object.entries(childSchema.properties).reduce((parsedChildProperties, [childPropertyName, childPropertyData]) => {
|
|
31
|
+
parsedChildProperties[childPropertyName] = this.parseSchemaProperty({
|
|
32
|
+
data: childPropertyData,
|
|
33
|
+
name: childPropertyName,
|
|
34
|
+
required: childRequiredProperties.includes(childPropertyName),
|
|
35
|
+
});
|
|
36
|
+
return parsedChildProperties;
|
|
37
|
+
}, {});
|
|
38
|
+
const childJsonSchema = {
|
|
39
|
+
...childSchema,
|
|
40
|
+
properties: {
|
|
41
|
+
...childSchema.properties,
|
|
42
|
+
type: {
|
|
43
|
+
type: SpecTypes.String,
|
|
44
|
+
enum: [childName],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
parsedChildSpecProperties[childName] = {
|
|
49
|
+
type: SpecTypes.Array,
|
|
50
|
+
items: {
|
|
51
|
+
...childSchema,
|
|
52
|
+
type: SpecTypes.Object,
|
|
53
|
+
properties: {
|
|
54
|
+
...childProperies,
|
|
55
|
+
type: {
|
|
56
|
+
type: SpecTypes.String,
|
|
57
|
+
defaultValue: childName,
|
|
58
|
+
viewSpec: {
|
|
59
|
+
type: 'hidden',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
viewSpec: childProperies &&
|
|
64
|
+
getObjectViewSpec({
|
|
65
|
+
properties: childProperies,
|
|
66
|
+
layoutTitle: childName,
|
|
67
|
+
}),
|
|
68
|
+
__schema: childJsonSchema,
|
|
69
|
+
},
|
|
70
|
+
required: false,
|
|
71
|
+
viewSpec: getArrayViewSpec({ layoutTitle: childName }),
|
|
72
|
+
__schema: {
|
|
73
|
+
type: SpecTypes.Array,
|
|
74
|
+
items: childJsonSchema,
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
return parsedChildSpecProperties;
|
|
78
|
+
}, {});
|
|
79
|
+
return {
|
|
80
|
+
type: SpecTypes.Object,
|
|
81
|
+
properties,
|
|
82
|
+
viewSpec: {
|
|
83
|
+
type: 'oneof_custom',
|
|
84
|
+
layout: 'row',
|
|
85
|
+
layoutTitle: name,
|
|
86
|
+
oneOfParams: {
|
|
87
|
+
toggler: 'select',
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
required,
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
oneOfParser = ({ data, name, required }) => {
|
|
94
|
+
const requiredProperties = this.getRequiredProperties(data);
|
|
95
|
+
const properties = data.oneOf &&
|
|
96
|
+
data.oneOf.reduce((result, propertyData, index) => {
|
|
97
|
+
const propertyName = propertyData?.optionName
|
|
98
|
+
? propertyData?.optionName
|
|
99
|
+
: `${name}_${index}`;
|
|
100
|
+
result[propertyName] = this.parseSchemaProperty({
|
|
101
|
+
data: propertyData,
|
|
102
|
+
name: propertyName,
|
|
103
|
+
required: requiredProperties.includes(propertyName),
|
|
104
|
+
});
|
|
105
|
+
return result;
|
|
106
|
+
}, {});
|
|
107
|
+
return {
|
|
108
|
+
type: SpecTypes.Object,
|
|
109
|
+
properties,
|
|
110
|
+
required,
|
|
111
|
+
viewSpec: getOneOfViewSpec({ layoutTitle: name }),
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
arrayParser = ({ data, name }) => {
|
|
115
|
+
const items = data.items && this.parseSchemaProperty({ data: data.items, name });
|
|
116
|
+
return {
|
|
117
|
+
...data,
|
|
118
|
+
type: SpecTypes.Array,
|
|
119
|
+
items,
|
|
120
|
+
viewSpec: getArrayViewSpec({ layoutTitle: name }),
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
objectParser = ({ data, name, required }) => {
|
|
124
|
+
const requiredProperties = this.getRequiredProperties(data);
|
|
125
|
+
const properties = data.properties &&
|
|
126
|
+
Object.entries(data.properties).reduce((result, [propertyName, propertyData]) => {
|
|
127
|
+
result[propertyName] = this.parseSchemaProperty({
|
|
128
|
+
data: propertyData,
|
|
129
|
+
name: propertyName,
|
|
130
|
+
required: requiredProperties.includes(propertyName),
|
|
131
|
+
});
|
|
132
|
+
return result;
|
|
133
|
+
}, {});
|
|
134
|
+
return {
|
|
135
|
+
...data,
|
|
136
|
+
type: SpecTypes.Object,
|
|
137
|
+
properties,
|
|
138
|
+
viewSpec: getObjectViewSpec({ properties, layoutTitle: name }),
|
|
139
|
+
required,
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
primitiveParser = ({ data, name, required }) => {
|
|
143
|
+
return {
|
|
144
|
+
...data,
|
|
145
|
+
type: data.type,
|
|
146
|
+
required,
|
|
147
|
+
defaultValue: data.default,
|
|
148
|
+
viewSpec: getPrimitiveViewSpec({ layoutTitle: name, data }),
|
|
149
|
+
validator: 'base',
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
//eslint-disable-next-line @typescript-eslint/member-ordering
|
|
153
|
+
schemaParserMap = {
|
|
154
|
+
[ParserType.Object]: this.objectParser,
|
|
155
|
+
[ParserType.Array]: this.arrayParser,
|
|
156
|
+
[ParserType.Primitive]: this.primitiveParser,
|
|
157
|
+
[ParserType.OneOf]: this.oneOfParser,
|
|
158
|
+
[ParserType.Children]: this.childrenParser,
|
|
159
|
+
};
|
|
131
160
|
parseSchemaProperty({ data, name, required }) {
|
|
132
161
|
const parserType = detectParserType(data);
|
|
133
162
|
const parser = this.schemaParserMap[parserType];
|
|
134
|
-
return
|
|
163
|
+
return {
|
|
164
|
+
...parser({ data, name, required }),
|
|
135
165
|
//save json schema from constructor to compare with incoming intial data inside oneOf form fields
|
|
136
|
-
__schema: data
|
|
166
|
+
__schema: data,
|
|
167
|
+
};
|
|
137
168
|
}
|
|
138
169
|
getBlocksSpec() {
|
|
139
170
|
const blocks = this.definitions.children;
|
|
140
171
|
return Object.entries(blocks).reduce((result, [blockName, blockData]) => {
|
|
141
172
|
result[blockName] = this.parseSchemaProperty({
|
|
142
173
|
name: blockName,
|
|
143
|
-
data:
|
|
174
|
+
data: { ...blockData },
|
|
144
175
|
required: true,
|
|
145
176
|
});
|
|
146
177
|
return result;
|
|
147
178
|
}, {});
|
|
148
179
|
}
|
|
149
180
|
getPageSpec() {
|
|
150
|
-
var _a;
|
|
151
181
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
152
|
-
const
|
|
182
|
+
const { blocks, ...pageSchema } = this.schema?.properties || {};
|
|
153
183
|
const requiredProperties = this.getRequiredProperties(this.schema);
|
|
154
184
|
const properties = Object.entries(pageSchema).reduce((result, [propertyName, propertyData]) => {
|
|
155
185
|
result[propertyName] = this.parseSchemaProperty({
|
|
@@ -176,7 +206,7 @@ class FormSpecParser {
|
|
|
176
206
|
this.schema = schema;
|
|
177
207
|
if (schema.definitions) {
|
|
178
208
|
this.definitions = Object.entries(schema.definitions).reduce((result, [childType, childSpec]) => {
|
|
179
|
-
result[childType] = childSpec
|
|
209
|
+
result[childType] = childSpec?.selectCases;
|
|
180
210
|
return result;
|
|
181
211
|
}, {});
|
|
182
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/parser/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */\nimport {ArraySpec, ObjectSpec, SpecTypes} from '@gravity-ui/dynamic-forms';\n\nimport {Schema, SchemaDefinitions} from '../../../schema';\n\nimport {ParserType, detectParserType} from './detect';\nimport {\n BlocksSpec,\n CustomSpec,\n FormSpecs,\n PageSpec,\n SchemaParser,\n SchemaParserParams,\n Spec,\n} from './types';\nimport {getArrayViewSpec, getObjectViewSpec, getOneOfViewSpec, getPrimitiveViewSpec} from './views';\n\nclass FormSpecParser {\n private schema: Schema = {};\n private definitions: SchemaDefinitions = {};\n\n /**\n * Transforms page-constructor json schema into dynamic-forms specs for each block\n *\n * @param schema {Schema} - page-constructor json schema\n * @returns {FormSpecs} - object containig dynamic-forms specs for each constructor block\n */\n parse(schema: Schema) {\n this.init(schema);\n\n return this.getFormSpec();\n }\n\n private getChildrenSpec = (data: Schema) => {\n const childrenType = (data.items as Schema)?.$ref?.split('/')?.pop();\n\n return this.definitions[childrenType as keyof typeof this.definitions];\n };\n\n private getRequiredProperties = (data: Schema) =>\n Array.isArray(data.required) ? data.required : [];\n\n private childrenParser: SchemaParser = ({data, name, required}) => {\n const childSpec = this.getChildrenSpec(data);\n\n const properties =\n childSpec &&\n Object.entries(childSpec).reduce(\n (parsedChildSpecProperties, [childName, childSchema]: [string, Schema]) => {\n const childRequiredProperties = this.getRequiredProperties(childSchema);\n const childProperies =\n childSchema.properties &&\n Object.entries(childSchema.properties).reduce(\n (parsedChildProperties, [childPropertyName, childPropertyData]) => {\n parsedChildProperties[childPropertyName] = this.parseSchemaProperty(\n {\n data: childPropertyData,\n name: childPropertyName,\n required:\n childRequiredProperties.includes(childPropertyName),\n },\n );\n\n return parsedChildProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n const childJsonSchema = {\n ...childSchema,\n properties: {\n ...childSchema.properties,\n type: {\n type: SpecTypes.String,\n enum: [childName],\n },\n },\n };\n\n parsedChildSpecProperties[childName] = {\n type: SpecTypes.Array,\n items: {\n ...childSchema,\n type: SpecTypes.Object,\n properties: {\n ...childProperies,\n type: {\n type: SpecTypes.String,\n defaultValue: childName,\n viewSpec: {\n type: 'hidden',\n },\n },\n },\n viewSpec:\n childProperies &&\n getObjectViewSpec({\n properties: childProperies,\n layoutTitle: childName,\n }),\n __schema: childJsonSchema,\n } as ObjectSpec,\n required: false,\n viewSpec: getArrayViewSpec({layoutTitle: childName}),\n __schema: {\n type: SpecTypes.Array,\n items: childJsonSchema,\n },\n } as ArraySpec;\n\n return parsedChildSpecProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: {\n type: 'oneof_custom',\n layout: 'row',\n layoutTitle: name,\n oneOfParams: {\n toggler: 'select',\n },\n },\n required,\n } as CustomSpec;\n };\n\n private oneOfParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.oneOf &&\n data.oneOf.reduce(\n (result: Record<string, Spec>, propertyData, index) => {\n const propertyName = propertyData?.optionName\n ? propertyData?.optionName\n : `${name}_${index}`;\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n return result;\n },\n {} as Record<string, ObjectSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n required,\n viewSpec: getOneOfViewSpec({layoutTitle: name}),\n } as ObjectSpec;\n };\n\n private arrayParser: SchemaParser = ({data, name}): Spec => {\n const items = data.items && this.parseSchemaProperty({data: data.items, name});\n\n return {\n ...data,\n type: SpecTypes.Array,\n items,\n viewSpec: getArrayViewSpec({layoutTitle: name}),\n } as ArraySpec;\n };\n\n private objectParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.properties &&\n Object.entries(data.properties).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, Spec>,\n );\n\n return {\n ...data,\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layoutTitle: name}),\n required,\n } as ObjectSpec;\n };\n\n private primitiveParser: SchemaParser = ({data, name, required}): Spec => {\n return {\n ...data,\n type: data.type as SpecTypes,\n required,\n defaultValue: data.default,\n viewSpec: getPrimitiveViewSpec({layoutTitle: name, data}),\n validator: 'base',\n } as Spec;\n };\n\n //eslint-disable-next-line @typescript-eslint/member-ordering\n private schemaParserMap = {\n [ParserType.Object]: this.objectParser,\n [ParserType.Array]: this.arrayParser,\n [ParserType.Primitive]: this.primitiveParser,\n [ParserType.OneOf]: this.oneOfParser,\n [ParserType.Children]: this.childrenParser,\n };\n\n private parseSchemaProperty({data, name, required}: SchemaParserParams): CustomSpec {\n const parserType = detectParserType(data);\n const parser = this.schemaParserMap[parserType];\n\n return {\n ...parser({data, name, required}),\n //save json schema from constructor to compare with incoming intial data inside oneOf form fields\n __schema: data,\n };\n }\n\n private getBlocksSpec() {\n const blocks = this.definitions.children;\n\n return Object.entries(blocks).reduce((result, [blockName, blockData]) => {\n result[blockName] = this.parseSchemaProperty({\n name: blockName,\n data: {...blockData},\n required: true,\n });\n\n return result;\n }, {} as BlocksSpec);\n }\n\n private getPageSpec() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {blocks, ...pageSchema} = this.schema?.properties || {};\n const requiredProperties = this.getRequiredProperties(this.schema);\n\n const properties = Object.entries(pageSchema).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n name: propertyName,\n data: propertyData,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layout: 'section'}),\n required: true,\n } as PageSpec;\n }\n\n private getFormSpec() {\n return {\n blocks: this.getBlocksSpec(),\n page: this.getPageSpec(),\n } as FormSpecs;\n }\n\n private init(schema: Schema) {\n this.schema = schema;\n\n if (schema.definitions) {\n this.definitions = Object.entries(schema.definitions).reduce(\n (result, [childType, childSpec]) => {\n result[childType] = childSpec?.selectCases;\n\n return result;\n },\n {} as SchemaDefinitions,\n );\n }\n }\n}\n\nexport default new FormSpecParser();\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["editor/dynamic-forms-custom/parser/index.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */\nimport {ArraySpec, ObjectSpec, SpecTypes} from '@gravity-ui/dynamic-forms';\n\nimport {Schema, SchemaDefinitions} from '../../../schema';\n\nimport {ParserType, detectParserType} from './detect';\nimport {\n BlocksSpec,\n CustomSpec,\n FormSpecs,\n PageSpec,\n SchemaParser,\n SchemaParserParams,\n Spec,\n} from './types';\nimport {getArrayViewSpec, getObjectViewSpec, getOneOfViewSpec, getPrimitiveViewSpec} from './views';\n\nclass FormSpecParser {\n private schema: Schema = {};\n private definitions: SchemaDefinitions = {};\n\n /**\n * Transforms page-constructor json schema into dynamic-forms specs for each block\n *\n * @param schema {Schema} - page-constructor json schema\n * @returns {FormSpecs} - object containig dynamic-forms specs for each constructor block\n */\n parse(schema: Schema) {\n this.init(schema);\n\n return this.getFormSpec();\n }\n\n private getChildrenSpec = (data: Schema) => {\n const childrenType = (data.items as Schema)?.$ref?.split('/')?.pop();\n\n return this.definitions[childrenType as keyof typeof this.definitions];\n };\n\n private getRequiredProperties = (data: Schema) =>\n Array.isArray(data.required) ? data.required : [];\n\n private childrenParser: SchemaParser = ({data, name, required}) => {\n const childSpec = this.getChildrenSpec(data);\n\n const properties =\n childSpec &&\n Object.entries(childSpec).reduce(\n (parsedChildSpecProperties, [childName, childSchema]: [string, Schema]) => {\n const childRequiredProperties = this.getRequiredProperties(childSchema);\n const childProperies =\n childSchema.properties &&\n Object.entries(childSchema.properties).reduce(\n (parsedChildProperties, [childPropertyName, childPropertyData]) => {\n parsedChildProperties[childPropertyName] = this.parseSchemaProperty(\n {\n data: childPropertyData,\n name: childPropertyName,\n required:\n childRequiredProperties.includes(childPropertyName),\n },\n );\n\n return parsedChildProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n const childJsonSchema = {\n ...childSchema,\n properties: {\n ...childSchema.properties,\n type: {\n type: SpecTypes.String,\n enum: [childName],\n },\n },\n };\n\n parsedChildSpecProperties[childName] = {\n type: SpecTypes.Array,\n items: {\n ...childSchema,\n type: SpecTypes.Object,\n properties: {\n ...childProperies,\n type: {\n type: SpecTypes.String,\n defaultValue: childName,\n viewSpec: {\n type: 'hidden',\n },\n },\n },\n viewSpec:\n childProperies &&\n getObjectViewSpec({\n properties: childProperies,\n layoutTitle: childName,\n }),\n __schema: childJsonSchema,\n } as ObjectSpec,\n required: false,\n viewSpec: getArrayViewSpec({layoutTitle: childName}),\n __schema: {\n type: SpecTypes.Array,\n items: childJsonSchema,\n },\n } as ArraySpec;\n\n return parsedChildSpecProperties;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: {\n type: 'oneof_custom',\n layout: 'row',\n layoutTitle: name,\n oneOfParams: {\n toggler: 'select',\n },\n },\n required,\n } as CustomSpec;\n };\n\n private oneOfParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.oneOf &&\n data.oneOf.reduce(\n (result: Record<string, Spec>, propertyData, index) => {\n const propertyName = propertyData?.optionName\n ? propertyData?.optionName\n : `${name}_${index}`;\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n return result;\n },\n {} as Record<string, ObjectSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n required,\n viewSpec: getOneOfViewSpec({layoutTitle: name}),\n } as ObjectSpec;\n };\n\n private arrayParser: SchemaParser = ({data, name}): Spec => {\n const items = data.items && this.parseSchemaProperty({data: data.items, name});\n\n return {\n ...data,\n type: SpecTypes.Array,\n items,\n viewSpec: getArrayViewSpec({layoutTitle: name}),\n } as ArraySpec;\n };\n\n private objectParser: SchemaParser = ({data, name, required}): Spec => {\n const requiredProperties = this.getRequiredProperties(data);\n const properties =\n data.properties &&\n Object.entries(data.properties).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n data: propertyData,\n name: propertyName,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, Spec>,\n );\n\n return {\n ...data,\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layoutTitle: name}),\n required,\n } as ObjectSpec;\n };\n\n private primitiveParser: SchemaParser = ({data, name, required}): Spec => {\n return {\n ...data,\n type: data.type as SpecTypes,\n required,\n defaultValue: data.default,\n viewSpec: getPrimitiveViewSpec({layoutTitle: name, data}),\n validator: 'base',\n } as Spec;\n };\n\n //eslint-disable-next-line @typescript-eslint/member-ordering\n private schemaParserMap = {\n [ParserType.Object]: this.objectParser,\n [ParserType.Array]: this.arrayParser,\n [ParserType.Primitive]: this.primitiveParser,\n [ParserType.OneOf]: this.oneOfParser,\n [ParserType.Children]: this.childrenParser,\n };\n\n private parseSchemaProperty({data, name, required}: SchemaParserParams): CustomSpec {\n const parserType = detectParserType(data);\n const parser = this.schemaParserMap[parserType];\n\n return {\n ...parser({data, name, required}),\n //save json schema from constructor to compare with incoming intial data inside oneOf form fields\n __schema: data,\n };\n }\n\n private getBlocksSpec() {\n const blocks = this.definitions.children;\n\n return Object.entries(blocks).reduce((result, [blockName, blockData]) => {\n result[blockName] = this.parseSchemaProperty({\n name: blockName,\n data: {...blockData},\n required: true,\n });\n\n return result;\n }, {} as BlocksSpec);\n }\n\n private getPageSpec() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {blocks, ...pageSchema} = this.schema?.properties || {};\n const requiredProperties = this.getRequiredProperties(this.schema);\n\n const properties = Object.entries(pageSchema).reduce(\n (result, [propertyName, propertyData]) => {\n result[propertyName] = this.parseSchemaProperty({\n name: propertyName,\n data: propertyData,\n required: requiredProperties.includes(propertyName),\n });\n\n return result;\n },\n {} as Record<string, CustomSpec>,\n );\n\n return {\n type: SpecTypes.Object,\n properties,\n viewSpec: getObjectViewSpec({properties, layout: 'section'}),\n required: true,\n } as PageSpec;\n }\n\n private getFormSpec() {\n return {\n blocks: this.getBlocksSpec(),\n page: this.getPageSpec(),\n } as FormSpecs;\n }\n\n private init(schema: Schema) {\n this.schema = schema;\n\n if (schema.definitions) {\n this.definitions = Object.entries(schema.definitions).reduce(\n (result, [childType, childSpec]) => {\n result[childType] = childSpec?.selectCases;\n\n return result;\n },\n {} as SchemaDefinitions,\n );\n }\n }\n}\n\nexport default new FormSpecParser();\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __rest } from "tslib";
|
|
2
1
|
export const getOneOfViewSpec = ({ layoutTitle }) => {
|
|
3
2
|
return {
|
|
4
3
|
type: 'oneof_custom',
|
|
@@ -25,9 +24,8 @@ export const getArrayViewSpec = ({ layoutTitle }) => ({
|
|
|
25
24
|
layoutOpen: true,
|
|
26
25
|
itemLabel: 'Add Item',
|
|
27
26
|
});
|
|
28
|
-
export const getPrimitiveViewSpec = (
|
|
29
|
-
|
|
30
|
-
let type = (data === null || data === void 0 ? void 0 : data.inputType) || 'base';
|
|
27
|
+
export const getPrimitiveViewSpec = ({ layoutTitle, ...data }) => {
|
|
28
|
+
let type = data?.inputType || 'base';
|
|
31
29
|
if (data && 'enum' in data && data.enum) {
|
|
32
30
|
type = 'select';
|
|
33
31
|
}
|