@blaze-cms/react-page-builder 0.146.0-node18-core-styles-tooltips.58 → 0.146.0-node18-core-styles-tooltips.60
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/CHANGELOG.md +11 -0
- package/lib/BannerContext/index.js +1 -1
- package/lib/BannerContext/index.js.map +1 -1
- package/lib/HOC/withInfiniteScroll.js +2 -2
- package/lib/HOC/withInfiniteScroll.js.map +1 -1
- package/lib/HOC/withTitle.js +1 -1
- package/lib/HOC/withTitle.js.map +1 -1
- package/lib/application/query/index.js +0 -1
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/BackToTop/BackToTop.js +1 -1
- package/lib/components/BackToTop/BackToTop.js.map +1 -1
- package/lib/components/Banner/AdSlotRender.js +2 -2
- package/lib/components/Banner/AdSlotRender.js.map +1 -1
- package/lib/components/Banner/Banner.js +2 -2
- package/lib/components/Banner/Banner.js.map +1 -1
- package/lib/components/Banner/helpers.js +3 -3
- package/lib/components/Banner/helpers.js.map +1 -1
- package/lib/components/Banner/index.js +2 -2
- package/lib/components/Banner/index.js.map +1 -1
- package/lib/components/BlazeLink.js +1 -1
- package/lib/components/BlazeLink.js.map +1 -1
- package/lib/components/Breadcrumb/Breadcrumb.js +2 -2
- package/lib/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/components/Button.js +3 -3
- package/lib/components/Button.js.map +1 -1
- package/lib/components/Card/Card.js +1 -1
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/Card/CardsContainer.js +2 -2
- package/lib/components/Card/CardsContainer.js.map +1 -1
- package/lib/components/Card/CardsRender.js +1 -1
- package/lib/components/Card/CardsRender.js.map +1 -1
- package/lib/components/Carousel/Carousel.js +1 -1
- package/lib/components/Carousel/Carousel.js.map +1 -1
- package/lib/components/Carousel/CarouselRender/CarouselRender.js +0 -1
- package/lib/components/Carousel/CarouselRender/CarouselRender.js.map +1 -1
- package/lib/components/CarouselWrapper/DefaultCarousel.js +1 -1
- package/lib/components/CarouselWrapper/DefaultCarousel.js.map +1 -1
- package/lib/components/ClickWrapper.js +1 -1
- package/lib/components/ClickWrapper.js.map +1 -1
- package/lib/components/Code/Code.js +1 -1
- package/lib/components/Code/Code.js.map +1 -1
- package/lib/components/Code/ScriptTag.js +1 -1
- package/lib/components/Code/ScriptTag.js.map +1 -1
- package/lib/components/ContentGroup/ContentGroup.js +40 -8
- package/lib/components/ContentGroup/ContentGroup.js.map +1 -1
- package/lib/components/ContentGroup/ContentGroupAccordion.js +1 -1
- package/lib/components/ContentGroup/ContentGroupAccordion.js.map +1 -1
- package/lib/components/ContentGroup/ContentGroupDataFetcher.js +94 -0
- package/lib/components/ContentGroup/ContentGroupDataFetcher.js.map +1 -0
- package/lib/components/ContentGroup/ContentGroupTabs.js +2 -2
- package/lib/components/ContentGroup/ContentGroupTabs.js.map +1 -1
- package/lib/components/ContentGroup/helpers/build-data-sections.js +67 -0
- package/lib/components/ContentGroup/helpers/build-data-sections.js.map +1 -0
- package/lib/components/ContentGroup/helpers/get-sections-data.js +0 -1
- package/lib/components/ContentGroup/helpers/get-sections-data.js.map +1 -1
- package/lib/components/ContentGroup/helpers/index.js +7 -0
- package/lib/components/ContentGroup/helpers/index.js.map +1 -1
- package/lib/components/ContentGroupSection/ContentGroupSection.js +3 -2
- package/lib/components/ContentGroupSection/ContentGroupSection.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryFactory.js +1 -1
- package/lib/components/DataSummary/DataSummaryFactory.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryRender.js +0 -1
- package/lib/components/DataSummary/DataSummaryRender.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js +2 -2
- package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js +2 -2
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js +2 -2
- package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js +2 -2
- package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js +2 -2
- package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/index.js +6 -6
- package/lib/components/DataSummary/DataSummaryTypes/index.js.map +1 -1
- package/lib/components/EmailConfirm/EmailConfirm.js +1 -1
- package/lib/components/EmailConfirm/EmailConfirm.js.map +1 -1
- package/lib/components/ErrorMessage/ErrorMessage.js.map +1 -1
- package/lib/components/ErrorMessage/index.js +2 -2
- package/lib/components/ErrorMessage/index.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/GlobalLightbox.js +1 -1
- package/lib/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/index.js +2 -2
- package/lib/components/Image/GlobalLightbox/index.js.map +1 -1
- package/lib/components/Image/Image.js +1 -1
- package/lib/components/Image/Image.js.map +1 -1
- package/lib/components/Image/ImageFactory.js +2 -2
- package/lib/components/Image/ImageFactory.js.map +1 -1
- package/lib/components/Image/Lightbox/Lightbox.js +1 -1
- package/lib/components/Image/Lightbox/Lightbox.js.map +1 -1
- package/lib/components/ItemList/ItemListButton/ItemListButton.js +1 -1
- package/lib/components/ItemList/ItemListButton/ItemListButton.js.map +1 -1
- package/lib/components/ItemList/helpers/get-item-list-ids.js +0 -1
- package/lib/components/ItemList/helpers/get-item-list-ids.js.map +1 -1
- package/lib/components/ItemList/helpers/set-param-and-redirect.js +0 -1
- package/lib/components/ItemList/helpers/set-param-and-redirect.js.map +1 -1
- package/lib/components/Layout/LayoutFactory.js +2 -2
- package/lib/components/Layout/LayoutFactory.js.map +1 -1
- package/lib/components/Layout/LayoutWithStickyTimer.js +1 -1
- package/lib/components/Layout/LayoutWithStickyTimer.js.map +1 -1
- package/lib/components/LazyImage/index.js +2 -2
- package/lib/components/LazyImage/index.js.map +1 -1
- package/lib/components/List/ListFactory.js +1 -1
- package/lib/components/List/ListFactory.js.map +1 -1
- package/lib/components/List/ListRender.js +1 -1
- package/lib/components/List/ListRender.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRender.js +1 -1
- package/lib/components/List/components/Cards/CardsRender.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRenderWrapper.js +2 -2
- package/lib/components/List/components/Cards/CardsRenderWrapper.js.map +1 -1
- package/lib/components/List/components/Full/FullRender.js +2 -2
- package/lib/components/List/components/Full/FullRender.js.map +1 -1
- package/lib/components/List/components/Full/FullRenderItem.js +2 -2
- package/lib/components/List/components/Full/FullRenderItem.js.map +1 -1
- package/lib/components/List/components/Header/ListHeader.js +0 -1
- package/lib/components/List/components/Header/ListHeader.js.map +1 -1
- package/lib/components/List/components/Pagination/ListPagination.js +1 -1
- package/lib/components/List/components/Pagination/ListPagination.js.map +1 -1
- package/lib/components/List/components/helpers/check-if-should-render-banner.js +1 -0
- package/lib/components/List/components/helpers/check-if-should-render-banner.js.map +1 -1
- package/lib/components/List/components/helpers/check-if-should-render-gtm.js +1 -0
- package/lib/components/List/components/helpers/check-if-should-render-gtm.js.map +1 -1
- package/lib/components/List/helpers/build-query-booster.js +1 -2
- package/lib/components/List/helpers/build-query-booster.js.map +1 -1
- package/lib/components/Loading/index.js +2 -2
- package/lib/components/Loading/index.js.map +1 -1
- package/lib/components/Menu/Menu.js +1 -1
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/MenuItem/MenuItemRender.js +1 -1
- package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
- package/lib/components/Modal/Modal.js.map +1 -1
- package/lib/components/ModalAdapter/ModalAdapter.js +1 -1
- package/lib/components/ModalAdapter/ModalAdapter.js.map +1 -1
- package/lib/components/ModalAdapter/index.js +2 -2
- package/lib/components/ModalAdapter/index.js.map +1 -1
- package/lib/components/SearchContent/SearchContent.js +1 -1
- package/lib/components/SearchContent/SearchContent.js.map +1 -1
- package/lib/components/SearchContent/SearchContentItems.js +0 -1
- package/lib/components/SearchContent/SearchContentItems.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js +2 -2
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +2 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib/components/SearchFilter/components/Range.js.map +1 -1
- package/lib/components/SearchFilter/components/Select.js.map +1 -1
- package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-filter-value-from-query.js +0 -1
- package/lib/components/SearchFilter/helpers/get-filter-value-from-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-select-options.js +0 -1
- package/lib/components/SearchFilter/helpers/get-select-options.js.map +1 -1
- package/lib/components/SearchFilter/helpers/parse-filter-value.js +0 -1
- package/lib/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
- package/lib/components/SearchFilterSort/SearchFilterSort.js +0 -1
- package/lib/components/SearchFilterSort/SearchFilterSort.js.map +1 -1
- package/lib/components/SocialFollow/SocialFollowRender.js +0 -1
- package/lib/components/SocialFollow/SocialFollowRender.js.map +1 -1
- package/lib/components/Video/VideoModal.js +1 -1
- package/lib/components/Video/VideoModal.js.map +1 -1
- package/lib/components/Video/VideoRender.js +1 -1
- package/lib/components/Video/VideoRender.js.map +1 -1
- package/lib/components/Video/providers/JWPlayer/JWPlayerController.js +2 -1
- package/lib/components/Video/providers/JWPlayer/JWPlayerController.js.map +1 -1
- package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js +1 -1
- package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js.map +1 -1
- package/lib/components/Video/providers/Vimeo/VimeoProvider.js +2 -2
- package/lib/components/Video/providers/Vimeo/VimeoProvider.js.map +1 -1
- package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js +1 -1
- package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
- package/lib/components/Video/providers/get-provider.js +6 -6
- package/lib/components/Video/providers/get-provider.js.map +1 -1
- package/lib/components/index.js +31 -31
- package/lib/components/index.js.map +1 -1
- package/lib/helpers/build-query-fields.js +0 -1
- package/lib/helpers/build-query-fields.js.map +1 -1
- package/lib/helpers/build-raw-query-stringified.js +0 -1
- package/lib/helpers/build-raw-query-stringified.js.map +1 -1
- package/lib/helpers/check-props-to-use.js +0 -1
- package/lib/helpers/check-props-to-use.js.map +1 -1
- package/lib/helpers/get-component-id.js +7 -1
- package/lib/helpers/get-component-id.js.map +1 -1
- package/lib/helpers/get-entities-with-banner.js +1 -1
- package/lib/helpers/get-generic-render-variables.js +0 -1
- package/lib/helpers/get-generic-render-variables.js.map +1 -1
- package/lib/helpers/get-wrapped-value-with-link.js +0 -1
- package/lib/helpers/get-wrapped-value-with-link.js.map +1 -1
- package/lib/helpers/inject-multiple-banners/get-banners-for-entities/get-banners-for-entities.js +0 -1
- package/lib/helpers/inject-multiple-banners/get-banners-for-entities/get-banners-for-entities.js.map +1 -1
- package/lib/helpers/inject-multiple-banners/get-banners-for-nodes/get-banners-for-nodes.js +1 -1
- package/lib/helpers/parse-TextBlock.js +1 -1
- package/lib/helpers/parse-TextBlock.js.map +1 -1
- package/lib/helpers/parse-props-to-display.js +1 -1
- package/lib/helpers/parse-props-to-display.js.map +1 -1
- package/lib/helpers/process-data-summary-value.js +3 -2
- package/lib/helpers/process-data-summary-value.js.map +1 -1
- package/lib/helpers/remove-unwanted-characters.js +1 -1
- package/lib/helpers/render-children.js +3 -3
- package/lib/helpers/render-children.js.map +1 -1
- package/lib/hooks/helpers/StoreImages.js +4 -3
- package/lib/hooks/helpers/StoreImages.js.map +1 -1
- package/lib/hooks/helpers/get-lightbox-images.js +7 -7
- package/lib/hooks/helpers/get-lightbox-images.js.map +1 -1
- package/lib/hooks/helpers/inject-textblock-banners.js +1 -1
- package/lib/hooks/helpers/inject-textblock-banners.js.map +1 -1
- package/lib/hooks/use-app-event-hook.js +1 -2
- package/lib/hooks/use-app-event-hook.js.map +1 -1
- package/lib/hooks/use-page-builder.js +1 -1
- package/lib/hooks/use-page-builder.js.map +1 -1
- package/lib/hooks/use-portal.js +1 -1
- package/lib/hooks/use-portal.js.map +1 -1
- package/lib/system-components/EditorMode/BlazeLogo.js +1 -1
- package/lib/system-components/EditorMode/BlazeLogo.js.map +1 -1
- package/lib/system-components/EditorMode/PbWrapper.js +2 -2
- package/lib/system-components/EditorMode/PbWrapper.js.map +1 -1
- package/lib/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js +3 -3
- package/lib/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js.map +1 -1
- package/lib/system-components/index.js +1 -1
- package/lib/system-components/index.js.map +1 -1
- package/lib/utils/get-props-to-display-modifiers.js +0 -1
- package/lib/utils/get-props-to-display-modifiers.js.map +1 -1
- package/lib/variants/FloatingSideButton/index.js.map +1 -1
- package/lib/variants/HeroImage/index.js.map +1 -1
- package/lib/variants/Infographic/index.js +2 -2
- package/lib/variants/Infographic/index.js.map +1 -1
- package/lib/variants/LiveBlogList/LiveBlogList.js +1 -1
- package/lib/variants/LiveBlogList/LiveBlogList.js.map +1 -1
- package/lib/variants/LiveBlogList/index.js +2 -2
- package/lib/variants/LiveBlogList/index.js.map +1 -1
- package/lib/variants/LongformGallery/LongformGallery.js +0 -1
- package/lib/variants/LongformGallery/LongformGallery.js.map +1 -1
- package/lib/variants/LongformGallery/LongformGalleryImage.js.map +1 -1
- package/lib/variants/LongformGallery/index.js +2 -2
- package/lib/variants/LongformGallery/index.js.map +1 -1
- package/lib/variants/LongformRow/index.js.map +1 -1
- package/lib/variants/ParallaxImageTextRight/index.js.map +1 -1
- package/lib/variants/SlideSummary/index.js +2 -2
- package/lib/variants/SlideSummary/index.js.map +1 -1
- package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js +0 -1
- package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js.map +1 -1
- package/lib/variants/ThumbnailCarousel/index.js +2 -2
- package/lib/variants/ThumbnailCarousel/index.js.map +1 -1
- package/lib-es/HOC/recreateOnNavigation.js.map +1 -1
- package/lib-es/HOC/withTitle.js.map +1 -1
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/components/Banner/AdSlotRender.js.map +1 -1
- package/lib-es/components/Banner/Banner.js.map +1 -1
- package/lib-es/components/Banner/BannerRender.js.map +1 -1
- package/lib-es/components/Banner/helpers.js.map +1 -1
- package/lib-es/components/Banner/index.js +1 -1
- package/lib-es/components/Banner/index.js.map +1 -1
- package/lib-es/components/Card/Card.js.map +1 -1
- package/lib-es/components/Card/CardsFactory.js.map +1 -1
- package/lib-es/components/Card/helpers/get-dynamic-grid-classes.js.map +1 -1
- package/lib-es/components/CarouselWrapper/DefaultCarousel.js.map +1 -1
- package/lib-es/components/CarouselWrapper/SmoothScrollCarousel.js.map +1 -1
- package/lib-es/components/ContentGroup/ContentGroup.js +41 -9
- package/lib-es/components/ContentGroup/ContentGroup.js.map +1 -1
- package/lib-es/components/ContentGroup/ContentGroupAccordion.js.map +1 -1
- package/lib-es/components/ContentGroup/ContentGroupDataFetcher.js +88 -0
- package/lib-es/components/ContentGroup/ContentGroupDataFetcher.js.map +1 -0
- package/lib-es/components/ContentGroup/ContentGroupTabs.js.map +1 -1
- package/lib-es/components/ContentGroup/helpers/build-data-sections.js +38 -0
- package/lib-es/components/ContentGroup/helpers/build-data-sections.js.map +1 -0
- package/lib-es/components/ContentGroup/helpers/get-active-tab.js.map +1 -1
- package/lib-es/components/ContentGroup/helpers/index.js +2 -1
- package/lib-es/components/ContentGroup/helpers/index.js.map +1 -1
- package/lib-es/components/ContentGroupSection/ContentGroupSection.js +3 -2
- package/lib-es/components/ContentGroupSection/ContentGroupSection.js.map +1 -1
- package/lib-es/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummary.js.map +1 -1
- package/lib-es/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.map +1 -1
- package/lib-es/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.map +1 -1
- package/lib-es/components/DataSummary/DataSummaryTypes/index.js +5 -5
- package/lib-es/components/DataSummary/DataSummaryTypes/index.js.map +1 -1
- package/lib-es/components/DataSummary/helpers/get-link-based-on-value.js.map +1 -1
- package/lib-es/components/DataSummary/helpers/get-prop-value.js.map +1 -1
- package/lib-es/components/DataSummary/helpers/get-value-from-array.js.map +1 -1
- package/lib-es/components/EmailConfirm/EmailConfirm.js.map +1 -1
- package/lib-es/components/EmailConfirm/mutation.js.map +1 -1
- package/lib-es/components/ErrorMessage/index.js +1 -1
- package/lib-es/components/ErrorMessage/index.js.map +1 -1
- package/lib-es/components/Iframe/Iframe.js.map +1 -1
- package/lib-es/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
- package/lib-es/components/Image/GlobalLightbox/NavButton.js.map +1 -1
- package/lib-es/components/Image/GlobalLightbox/index.js +1 -1
- package/lib-es/components/Image/GlobalLightbox/index.js.map +1 -1
- package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -1
- package/lib-es/components/ItemList/ItemListNew/ItemListNew.js.map +1 -1
- package/lib-es/components/ItemList/helpers/get-item-list-id.js.map +1 -1
- package/lib-es/components/ItemList/helpers/set-item-list-id.js.map +1 -1
- package/lib-es/components/Layout/Layout.js.map +1 -1
- package/lib-es/components/Layout/LayoutFactory.js +1 -1
- package/lib-es/components/Layout/LayoutFactory.js.map +1 -1
- package/lib-es/components/Layout/helpers/get-styles-to-update.js.map +1 -1
- package/lib-es/components/LazyImage/index.js +1 -1
- package/lib-es/components/LazyImage/index.js.map +1 -1
- package/lib-es/components/List/components/Header/ListHeader.js.map +1 -1
- package/lib-es/components/List/components/Pagination/Classic.js.map +1 -1
- package/lib-es/components/List/helpers/build-az-url.js.map +1 -1
- package/lib-es/components/List/helpers/build-pagination-items.js.map +1 -1
- package/lib-es/components/List/helpers/build-pagination-url.js.map +1 -1
- package/lib-es/components/List/helpers/get-az-query-filter.js.map +1 -1
- package/lib-es/components/List/helpers/get-list-query.js.map +1 -1
- package/lib-es/components/Loading/Loading.js.map +1 -1
- package/lib-es/components/Loading/index.js +1 -1
- package/lib-es/components/Loading/index.js.map +1 -1
- package/lib-es/components/Menu/Menu.js.map +1 -1
- package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
- package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -1
- package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js.map +1 -1
- package/lib-es/components/ModalAdapter/ModalAdapter.js +1 -1
- package/lib-es/components/ModalAdapter/ModalAdapter.js.map +1 -1
- package/lib-es/components/ModalAdapter/index.js +1 -1
- package/lib-es/components/ModalAdapter/index.js.map +1 -1
- package/lib-es/components/SearchContent/SearchContent.js.map +1 -1
- package/lib-es/components/SearchContent/SearchContentResults.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
- package/lib-es/components/SearchFilter/constants.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-list-name-query.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-new-url.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-url-query.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-updated-filter-by.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
- package/lib-es/components/SearchFilterSort/SearchFilterSort.js.map +1 -1
- package/lib-es/components/SearchFilterSort/helpers/handle-sort-update.js.map +1 -1
- package/lib-es/components/SearchFilterSort/helpers/update-sort.js.map +1 -1
- package/lib-es/components/SocialFollow/SFItem.js.map +1 -1
- package/lib-es/components/Video/Video.js.map +1 -1
- package/lib-es/components/Video/providers/Vimeo/VimeoProvider.js.map +1 -1
- package/lib-es/components/Video/providers/Vimeo/helpers/add-extra-params-to-url.js.map +1 -1
- package/lib-es/components/Video/providers/YouTube/YouTubeProvider.js.map +1 -1
- package/lib-es/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
- package/lib-es/components/Video/providers/YouTube/helpers/index.js.map +1 -1
- package/lib-es/components/Video/providers/get-provider.js +5 -5
- package/lib-es/components/Video/providers/get-provider.js.map +1 -1
- package/lib-es/components/Wrapper.js.map +1 -1
- package/lib-es/components/index.js +30 -30
- package/lib-es/components/index.js.map +1 -1
- package/lib-es/constants/componentsDefaultValues.js.map +1 -1
- package/lib-es/constants/index.js.map +1 -1
- package/lib-es/helpers/build-az-filter.js.map +1 -1
- package/lib-es/helpers/build-filters-query.js.map +1 -1
- package/lib-es/helpers/build-inherited-filters.js.map +1 -1
- package/lib-es/helpers/build-props-query.js.map +1 -1
- package/lib-es/helpers/build-query-fields.js.map +1 -1
- package/lib-es/helpers/build-query-key.js.map +1 -1
- package/lib-es/helpers/build-raw-query-base.js.map +1 -1
- package/lib-es/helpers/build-raw-query-stringified.js.map +1 -1
- package/lib-es/helpers/build-search-values-checkbox-select.js.map +1 -1
- package/lib-es/helpers/build-sort-values.js.map +1 -1
- package/lib-es/helpers/get-component-id.js +9 -3
- package/lib-es/helpers/get-component-id.js.map +1 -1
- package/lib-es/helpers/get-display-count-data.js.map +1 -1
- package/lib-es/helpers/get-entity-data.js.map +1 -1
- package/lib-es/helpers/get-extra-az-bits.js.map +1 -1
- package/lib-es/helpers/get-inherited-filters.js.map +1 -1
- package/lib-es/helpers/get-modifiers.js.map +1 -1
- package/lib-es/helpers/get-pagination-index.js.map +1 -1
- package/lib-es/helpers/get-query-props.js.map +1 -1
- package/lib-es/helpers/get-sort-by-field-name.js.map +1 -1
- package/lib-es/helpers/inject-multiple-banners/get-banners-for-nodes/get-banners-for-nodes.js.map +1 -1
- package/lib-es/helpers/is-filter-entitys-id.js.map +1 -1
- package/lib-es/helpers/process-data-summary-value.js +1 -1
- package/lib-es/hooks/helpers/StoreImages.js +2 -2
- package/lib-es/hooks/helpers/StoreImages.js.map +1 -1
- package/lib-es/hooks/helpers/append-gtm-classname.js.map +1 -1
- package/lib-es/hooks/helpers/buildPBComponents.js.map +1 -1
- package/lib-es/hooks/helpers/inject-textblock-banners.js +1 -1
- package/lib-es/hooks/helpers/inject-textblock-banners.js.map +1 -1
- package/lib-es/hooks/helpers/insert-banners.js.map +1 -1
- package/lib-es/hooks/helpers/update-targetings.js.map +1 -1
- package/lib-es/hooks/use-app-event-hook.js.map +1 -1
- package/lib-es/hooks/use-app-sync-event-hook.js.map +1 -1
- package/lib-es/hooks/use-get-image-id-from-relation.js.map +1 -1
- package/lib-es/system-components/EditorMode/PbWrapper.js +1 -1
- package/lib-es/system-components/EditorMode/PbWrapper.js.map +1 -1
- package/lib-es/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js.map +1 -1
- package/lib-es/utils/component-map.js.map +1 -1
- package/lib-es/utils/get-class-modifiers.js.map +1 -1
- package/lib-es/utils/variant-handler.js.map +1 -1
- package/lib-es/variants/Infographic/index.js +1 -1
- package/lib-es/variants/Infographic/index.js.map +1 -1
- package/lib-es/variants/Infographic/useInfographic.js.map +1 -1
- package/lib-es/variants/LiveBlogList/LiveBlogList.js.map +1 -1
- package/lib-es/variants/LiveBlogList/index.js +1 -1
- package/lib-es/variants/LiveBlogList/index.js.map +1 -1
- package/lib-es/variants/LongformGallery/LongformGalleryImage.js.map +1 -1
- package/lib-es/variants/LongformGallery/constants.js.map +1 -1
- package/lib-es/variants/LongformGallery/index.js +1 -1
- package/lib-es/variants/LongformGallery/index.js.map +1 -1
- package/lib-es/variants/SlideSummary/index.js +1 -1
- package/lib-es/variants/SlideSummary/index.js.map +1 -1
- package/lib-es/variants/ThumbnailCarousel/index.js +1 -1
- package/lib-es/variants/ThumbnailCarousel/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/ContentGroup/ContentGroup.js +54 -8
- package/src/components/ContentGroup/ContentGroupDataFetcher.js +74 -0
- package/src/components/ContentGroup/helpers/build-data-sections.js +35 -0
- package/src/components/ContentGroup/helpers/index.js +2 -1
- package/src/components/ContentGroupSection/ContentGroupSection.js +2 -2
- package/src/helpers/get-component-id.js +7 -4
- package/tests/unit/src/components/ContentGroup/ContentGroup.test.js +195 -40
- package/tests/unit/src/components/ContentGroup/helpers/build-data-sections.test.js +115 -0
- package/tests/unit/src/helpers/get-component-id.test.js +64 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import cssesc from 'cssesc';
|
|
2
2
|
import { COMPONENT_ID_PREFIX } from '../constants';
|
|
3
3
|
|
|
4
|
-
const getComponentId = componentName =>
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const getComponentId = (componentName, noPrefix = false, toLowerCase = false) => {
|
|
5
|
+
let id = `${noPrefix ? '' : COMPONENT_ID_PREFIX}${componentName.replace(/\s+/g, '-')}`;
|
|
6
|
+
if (toLowerCase) {
|
|
7
|
+
id = id.toLowerCase();
|
|
8
|
+
}
|
|
9
|
+
return cssesc(id, { isIdentifier: true });
|
|
10
|
+
};
|
|
8
11
|
|
|
9
12
|
export default getComponentId;
|
|
@@ -7,9 +7,62 @@ import ContentGroup from '../../../../../src/components/ContentGroup/ContentGrou
|
|
|
7
7
|
|
|
8
8
|
jest.mock('../../../../../src/components/ContentGroup/ContentGroupTabs', () => ({
|
|
9
9
|
__esModule: true,
|
|
10
|
-
default: ({ contentType }) =>
|
|
10
|
+
default: ({ contentType, sectionsData = [] }) => (
|
|
11
|
+
<div data-testid="content-group-tabs" data-content-type={contentType}>
|
|
12
|
+
{sectionsData.map(([name, label]) => (
|
|
13
|
+
<span key={name} data-section-name={name}>
|
|
14
|
+
{label}
|
|
15
|
+
</span>
|
|
16
|
+
))}
|
|
17
|
+
</div>
|
|
18
|
+
)
|
|
11
19
|
}));
|
|
12
20
|
|
|
21
|
+
jest.mock('../../../../../src/components/ContentGroup/ContentGroupAccordion', () => ({
|
|
22
|
+
__esModule: true,
|
|
23
|
+
default: ({ contentType, sectionsData = [] }) => (
|
|
24
|
+
<div data-testid="content-group-accordion" data-content-type={contentType}>
|
|
25
|
+
{sectionsData.map(([name, label]) => (
|
|
26
|
+
<span key={name} data-section-name={name}>
|
|
27
|
+
{label}
|
|
28
|
+
</span>
|
|
29
|
+
))}
|
|
30
|
+
</div>
|
|
31
|
+
)
|
|
32
|
+
}));
|
|
33
|
+
|
|
34
|
+
jest.mock('../../../../../src/components/ContentGroup/ContentGroupDataFetcher', () => ({
|
|
35
|
+
__esModule: true,
|
|
36
|
+
default: ({ dataProperty, contentType }) => (
|
|
37
|
+
<div
|
|
38
|
+
data-testid="content-group-data-fetcher"
|
|
39
|
+
data-property={dataProperty}
|
|
40
|
+
data-content-type={contentType}
|
|
41
|
+
/>
|
|
42
|
+
)
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
jest.mock('../../../../../src/components/ContentGroup/helpers', () => {
|
|
46
|
+
const actual = jest.requireActual('../../../../../src/components/ContentGroup/helpers');
|
|
47
|
+
return {
|
|
48
|
+
...actual,
|
|
49
|
+
buildDataSections: jest.fn(items =>
|
|
50
|
+
items.reduce(
|
|
51
|
+
(acc, item) => {
|
|
52
|
+
if (!item || !item.label || !item.text) return acc;
|
|
53
|
+
const name = item.label.toLowerCase().replace(/\s+/g, '-');
|
|
54
|
+
acc.groupSections.push(<div key={name}>{item.text}</div>);
|
|
55
|
+
acc.sectionsData.push([name, item.label]);
|
|
56
|
+
return acc;
|
|
57
|
+
},
|
|
58
|
+
{ groupSections: [], sectionsData: [] }
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const testId1 = 'content-group-tabs';
|
|
65
|
+
const testId2 = 'content-group-data-fetcher';
|
|
13
66
|
const TestChild = ({ children }) => <div>{children}</div>;
|
|
14
67
|
const buildChildren = (sectionsCount = 2) => (
|
|
15
68
|
<div>
|
|
@@ -20,6 +73,11 @@ const buildChildren = (sectionsCount = 2) => (
|
|
|
20
73
|
</div>
|
|
21
74
|
);
|
|
22
75
|
|
|
76
|
+
const simpleDataFixture = [
|
|
77
|
+
{ label: 'Tab One', text: 'Content for tab one' },
|
|
78
|
+
{ label: 'Tab Two', text: 'Content for tab two' }
|
|
79
|
+
];
|
|
80
|
+
|
|
23
81
|
describe('ContentGroup component', () => {
|
|
24
82
|
it('matches snapshots for tab and sidepanel', () => {
|
|
25
83
|
const { asFragment: tabContentGroup } = render(ContentGroup, {
|
|
@@ -33,57 +91,154 @@ describe('ContentGroup component', () => {
|
|
|
33
91
|
expect(sidepanelContentGroup()).toMatchSnapshot();
|
|
34
92
|
});
|
|
35
93
|
|
|
36
|
-
it('
|
|
37
|
-
const { container } = render(ContentGroup, {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
94
|
+
it('returns empty string for an invalid contentType', () => {
|
|
95
|
+
const { container } = render(ContentGroup, { contentType: 'unknown' });
|
|
96
|
+
expect(container.firstChild).toBeNull();
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
describe('simpleData prop', () => {
|
|
100
|
+
it('renders ContentGroupTabs when simpleData is provided', () => {
|
|
101
|
+
const { getByTestId } = render(ContentGroup, {
|
|
102
|
+
contentType: 'tab',
|
|
103
|
+
simpleData: simpleDataFixture
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
expect(getByTestId(testId1)).toBeTruthy();
|
|
41
107
|
});
|
|
42
108
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
109
|
+
it('renders ContentGroupAccordion when contentType is accordion and simpleData is provided', () => {
|
|
110
|
+
const { getByTestId } = render(ContentGroup, {
|
|
111
|
+
contentType: 'accordion',
|
|
112
|
+
simpleData: simpleDataFixture
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
expect(getByTestId('content-group-accordion')).toBeTruthy();
|
|
116
|
+
});
|
|
46
117
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
children: buildChildren()
|
|
118
|
+
it('passes sectionsData derived from simpleData to the group component', () => {
|
|
119
|
+
const { getByTestId } = render(ContentGroup, {
|
|
120
|
+
contentType: 'tab',
|
|
121
|
+
simpleData: simpleDataFixture
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
const tabs = getByTestId(testId1);
|
|
125
|
+
expect(tabs.querySelector('[data-section-name="tab-one"]')).toBeTruthy();
|
|
126
|
+
expect(tabs.querySelector('[data-section-name="tab-two"]')).toBeTruthy();
|
|
57
127
|
});
|
|
58
128
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
129
|
+
it('renders nothing when simpleData is an empty array', () => {
|
|
130
|
+
const { container } = render(ContentGroup, {
|
|
131
|
+
contentType: 'tab',
|
|
132
|
+
simpleData: []
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
expect(container.firstChild).toBeNull();
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('renders nothing when all simpleData items are invalid', () => {
|
|
139
|
+
const { container } = render(ContentGroup, {
|
|
140
|
+
contentType: 'tab',
|
|
141
|
+
simpleData: [{ label: 'no text' }, { text: 'no label' }]
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
expect(container.firstChild).toBeNull();
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
it('prefers simpleData over dataProperty when both are provided', () => {
|
|
148
|
+
const { getByTestId, queryByTestId } = render(ContentGroup, {
|
|
149
|
+
contentType: 'tab',
|
|
150
|
+
simpleData: simpleDataFixture,
|
|
151
|
+
dataProperty: 'someProperty'
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
expect(getByTestId(testId1)).toBeTruthy();
|
|
155
|
+
expect(queryByTestId(testId2)).toBeNull();
|
|
156
|
+
});
|
|
62
157
|
});
|
|
63
158
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
159
|
+
describe('dataProperty prop', () => {
|
|
160
|
+
it('renders ContentGroupDataFetcher when dataProperty is a string and no simpleData', () => {
|
|
161
|
+
const { getByTestId } = render(ContentGroup, {
|
|
162
|
+
contentType: 'tab',
|
|
163
|
+
dataProperty: 'myDataProp'
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
expect(getByTestId(testId2)).toBeTruthy();
|
|
71
167
|
});
|
|
72
168
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
169
|
+
it('passes the first element when dataProperty is an array', () => {
|
|
170
|
+
const { getByTestId } = render(ContentGroup, {
|
|
171
|
+
contentType: 'tab',
|
|
172
|
+
dataProperty: ['myDataProp', 'ignored']
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const fetcher = getByTestId(testId2);
|
|
176
|
+
expect(fetcher.getAttribute('data-property')).toBe('myDataProp');
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
it('passes contentType to ContentGroupDataFetcher', () => {
|
|
180
|
+
const { getByTestId } = render(ContentGroup, {
|
|
181
|
+
contentType: 'accordion',
|
|
182
|
+
dataProperty: 'myDataProp'
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
expect(getByTestId(testId2).getAttribute('data-content-type')).toBe('accordion');
|
|
186
|
+
});
|
|
76
187
|
});
|
|
77
188
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
189
|
+
describe('FAQ / structured data', () => {
|
|
190
|
+
it('wraps output in FAQPage schema when isFaqContent is true', () => {
|
|
191
|
+
const { container } = render(ContentGroup, {
|
|
192
|
+
contentType: 'tab',
|
|
193
|
+
isFaqContent: true,
|
|
194
|
+
children: buildChildren()
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
const faqWrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
|
|
198
|
+
expect(faqWrapper).toBeTruthy();
|
|
84
199
|
});
|
|
85
200
|
|
|
86
|
-
|
|
87
|
-
|
|
201
|
+
it('spreads customHtmlProps onto the wrapper element', () => {
|
|
202
|
+
const customHtmlProps = [
|
|
203
|
+
{ name: 'data-testid', value: 'content-group-wrapper' },
|
|
204
|
+
{ name: 'aria-label', value: 'My group' }
|
|
205
|
+
];
|
|
206
|
+
const { container } = render(ContentGroup, {
|
|
207
|
+
contentType: 'tab',
|
|
208
|
+
isFaqContent: true,
|
|
209
|
+
customHtmlProps,
|
|
210
|
+
children: buildChildren()
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
const wrapper = container.querySelector('div[data-testid="content-group-wrapper"]');
|
|
214
|
+
expect(wrapper).toBeTruthy();
|
|
215
|
+
expect(wrapper.getAttribute('aria-label')).toBe('My group');
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
it('excludes customHtmlProps entries with value "null" from the wrapper', () => {
|
|
219
|
+
const customHtmlProps = [{ name: 'data-skip', value: 'null' }];
|
|
220
|
+
const { container } = render(ContentGroup, {
|
|
221
|
+
contentType: 'tab',
|
|
222
|
+
isFaqContent: true,
|
|
223
|
+
customHtmlProps,
|
|
224
|
+
children: buildChildren()
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
const wrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
|
|
228
|
+
expect(wrapper).toBeTruthy();
|
|
229
|
+
expect(wrapper.getAttribute('data-skip')).toBeNull();
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
it('renders correctly with an empty customHtmlProps array', () => {
|
|
233
|
+
const { container } = render(ContentGroup, {
|
|
234
|
+
contentType: 'tab',
|
|
235
|
+
isFaqContent: true,
|
|
236
|
+
customHtmlProps: [],
|
|
237
|
+
children: buildChildren()
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
const faqWrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
|
|
241
|
+
expect(faqWrapper).toBeTruthy();
|
|
242
|
+
});
|
|
88
243
|
});
|
|
89
244
|
});
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import buildDataSections from '../../../../../../src/components/ContentGroup/helpers/build-data-sections';
|
|
2
|
+
|
|
3
|
+
jest.mock(
|
|
4
|
+
'next/dynamic',
|
|
5
|
+
() => component =>
|
|
6
|
+
// Return a simple placeholder component for testing
|
|
7
|
+
function DynamicComponent(props) {
|
|
8
|
+
return <div {...props} />;
|
|
9
|
+
}
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
jest.mock(
|
|
13
|
+
'../../../../../../src/helpers/get-component-id',
|
|
14
|
+
() => name => name.toLowerCase().replace(/\s+/g, '-')
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
describe('buildDataSections helper', () => {
|
|
18
|
+
it('should return empty arrays when items is empty', () => {
|
|
19
|
+
const result = buildDataSections([]);
|
|
20
|
+
|
|
21
|
+
expect(result).toEqual({ groupSections: [], sectionsData: [] });
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it('should return empty arrays when called with no arguments', () => {
|
|
25
|
+
const result = buildDataSections();
|
|
26
|
+
|
|
27
|
+
expect(result).toEqual({ groupSections: [], sectionsData: [] });
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('should skip items that are null or undefined', () => {
|
|
31
|
+
const result = buildDataSections([null, undefined]);
|
|
32
|
+
|
|
33
|
+
expect(result).toEqual({ groupSections: [], sectionsData: [] });
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should skip items missing a label', () => {
|
|
37
|
+
const result = buildDataSections([{ text: 'Some text' }]);
|
|
38
|
+
|
|
39
|
+
expect(result).toEqual({ groupSections: [], sectionsData: [] });
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should skip items missing text', () => {
|
|
43
|
+
const result = buildDataSections([{ label: 'Some label' }]);
|
|
44
|
+
|
|
45
|
+
expect(result).toEqual({ groupSections: [], sectionsData: [] });
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('should build sectionsData entries as [sectionName, label] tuples', () => {
|
|
49
|
+
const items = [
|
|
50
|
+
{ label: 'Section One', text: 'Content one' },
|
|
51
|
+
{ label: 'Section Two', text: 'Content two' }
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const { sectionsData } = buildDataSections(items);
|
|
55
|
+
|
|
56
|
+
expect(sectionsData).toHaveLength(2);
|
|
57
|
+
expect(sectionsData[0][1]).toBe('Section One');
|
|
58
|
+
expect(sectionsData[1][1]).toBe('Section Two');
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('should build a groupSections entry for each valid item', () => {
|
|
62
|
+
const items = [
|
|
63
|
+
{ label: 'Tab A', text: 'Text A' },
|
|
64
|
+
{ label: 'Tab B', text: 'Text B' },
|
|
65
|
+
{ label: 'Tab C', text: 'Text C' }
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
const { groupSections, sectionsData } = buildDataSections(items);
|
|
69
|
+
|
|
70
|
+
expect(groupSections).toHaveLength(3);
|
|
71
|
+
expect(sectionsData).toHaveLength(3);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('should mix valid and invalid items, only including valid ones', () => {
|
|
75
|
+
const items = [
|
|
76
|
+
{ label: 'Good', text: 'Content' },
|
|
77
|
+
null,
|
|
78
|
+
{ label: 'Also Good', text: 'More content' },
|
|
79
|
+
{ label: 'Missing text' },
|
|
80
|
+
{ text: 'Missing label' }
|
|
81
|
+
];
|
|
82
|
+
|
|
83
|
+
const { groupSections, sectionsData } = buildDataSections(items);
|
|
84
|
+
|
|
85
|
+
expect(groupSections).toHaveLength(2);
|
|
86
|
+
expect(sectionsData).toHaveLength(2);
|
|
87
|
+
expect(sectionsData[0][1]).toBe('Good');
|
|
88
|
+
expect(sectionsData[1][1]).toBe('Also Good');
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('should derive sectionName from the label via getComponentId', () => {
|
|
92
|
+
const items = [{ label: 'My Section', text: 'Content' }];
|
|
93
|
+
|
|
94
|
+
const { sectionsData } = buildDataSections(items);
|
|
95
|
+
|
|
96
|
+
// getComponentId is mocked to: name.toLowerCase().replace(/\s+/g, '-')
|
|
97
|
+
expect(sectionsData[0][0]).toBe('my-section');
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it('should keep sectionName and label in sync within sectionsData', () => {
|
|
101
|
+
const items = [
|
|
102
|
+
{ label: 'First Item', text: 'Text one' },
|
|
103
|
+
{ label: 'Second Item', text: 'Text two' }
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
const { sectionsData } = buildDataSections(items);
|
|
107
|
+
|
|
108
|
+
sectionsData.forEach(([sectionName, label]) => {
|
|
109
|
+
expect(typeof sectionName).toBe('string');
|
|
110
|
+
expect(typeof label).toBe('string');
|
|
111
|
+
expect(sectionName.length).toBeGreaterThan(0);
|
|
112
|
+
expect(label.length).toBeGreaterThan(0);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
@@ -7,6 +7,7 @@ jest.mock('cssesc');
|
|
|
7
7
|
describe('Get component Id', () => {
|
|
8
8
|
beforeEach(() => {
|
|
9
9
|
cssesc.mockClear();
|
|
10
|
+
cssesc.mockImplementation(str => str);
|
|
10
11
|
});
|
|
11
12
|
|
|
12
13
|
it('should call cssesc with correct arguments', () => {
|
|
@@ -33,4 +34,67 @@ describe('Get component Id', () => {
|
|
|
33
34
|
const result = getComponentId('Test');
|
|
34
35
|
expect(typeof result).toBe('string');
|
|
35
36
|
});
|
|
37
|
+
|
|
38
|
+
it('should replace spaces with dashes in the component name', () => {
|
|
39
|
+
const componentName = 'My Component Name';
|
|
40
|
+
getComponentId(componentName);
|
|
41
|
+
|
|
42
|
+
expect(cssesc).toHaveBeenCalledWith(`${COMPONENT_ID_PREFIX}My-Component-Name`, {
|
|
43
|
+
isIdentifier: true
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
describe('noPrefix parameter', () => {
|
|
48
|
+
it('should include the prefix by default (noPrefix = false)', () => {
|
|
49
|
+
getComponentId('MyComponent');
|
|
50
|
+
|
|
51
|
+
const calledWith = cssesc.mock.calls[0][0];
|
|
52
|
+
expect(calledWith.startsWith(COMPONENT_ID_PREFIX)).toBe(true);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('should omit the prefix when noPrefix is true', () => {
|
|
56
|
+
getComponentId('MyComponent', true);
|
|
57
|
+
|
|
58
|
+
const calledWith = cssesc.mock.calls[0][0];
|
|
59
|
+
expect(calledWith.startsWith(COMPONENT_ID_PREFIX)).toBe(false);
|
|
60
|
+
expect(calledWith).toBe('MyComponent');
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('should include the prefix when noPrefix is explicitly false', () => {
|
|
64
|
+
getComponentId('MyComponent', false);
|
|
65
|
+
|
|
66
|
+
expect(cssesc).toHaveBeenCalledWith(`${COMPONENT_ID_PREFIX}MyComponent`, {
|
|
67
|
+
isIdentifier: true
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe('toLowerCase parameter', () => {
|
|
73
|
+
it('should not lowercase by default (toLowerCase = false)', () => {
|
|
74
|
+
getComponentId('MyComponent');
|
|
75
|
+
|
|
76
|
+
const calledWith = cssesc.mock.calls[0][0];
|
|
77
|
+
expect(calledWith).toBe(`${COMPONENT_ID_PREFIX}MyComponent`);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it('should lowercase the id when toLowerCase is true', () => {
|
|
81
|
+
getComponentId('MyComponent', false, true);
|
|
82
|
+
|
|
83
|
+
expect(cssesc).toHaveBeenCalledWith(`${COMPONENT_ID_PREFIX}mycomponent`, {
|
|
84
|
+
isIdentifier: true
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('should lowercase when both noPrefix and toLowerCase are true', () => {
|
|
89
|
+
getComponentId('MyComponent', true, true);
|
|
90
|
+
|
|
91
|
+
expect(cssesc).toHaveBeenCalledWith('mycomponent', { isIdentifier: true });
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
it('should lowercase spaces-replaced-with-dashes when toLowerCase is true', () => {
|
|
95
|
+
getComponentId('My Section Label', true, true);
|
|
96
|
+
|
|
97
|
+
expect(cssesc).toHaveBeenCalledWith('my-section-label', { isIdentifier: true });
|
|
98
|
+
});
|
|
99
|
+
});
|
|
36
100
|
});
|