@blaze-cms/react-page-builder 0.146.0-core-styles.60 → 0.146.0-core-styles.61
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 +2 -1
- package/lib/BannerContext/index.js.map +1 -1
- package/lib/HOC/withInfiniteScroll.js +3 -2
- package/lib/HOC/withInfiniteScroll.js.map +1 -1
- package/lib/HOC/withTitle.js +2 -1
- package/lib/HOC/withTitle.js.map +1 -1
- package/lib/application/query/index.js +8 -9
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/BackToTop/BackToTop.js +2 -1
- package/lib/components/BackToTop/BackToTop.js.map +1 -1
- package/lib/components/Banner/AdSlotRender.js +3 -2
- package/lib/components/Banner/AdSlotRender.js.map +1 -1
- package/lib/components/Banner/Banner.js +3 -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 +3 -2
- package/lib/components/Banner/index.js.map +1 -1
- package/lib/components/BlazeLink.js +2 -1
- package/lib/components/BlazeLink.js.map +1 -1
- package/lib/components/Breadcrumb/Breadcrumb.js +3 -2
- package/lib/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/components/Button.js +59 -12
- package/lib/components/Button.js.map +1 -1
- package/lib/components/Card/Card.js +2 -1
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/Card/CardsContainer.js +3 -2
- package/lib/components/Card/CardsContainer.js.map +1 -1
- package/lib/components/Card/CardsRender.js +2 -1
- package/lib/components/Card/CardsRender.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 +2 -1
- package/lib/components/CarouselWrapper/DefaultCarousel.js.map +1 -1
- package/lib/components/ClickWrapper.js +2 -1
- package/lib/components/ClickWrapper.js.map +1 -1
- package/lib/components/Code/Code.js +2 -1
- package/lib/components/Code/Code.js.map +1 -1
- package/lib/components/Code/ScriptTag.js +2 -1
- package/lib/components/Code/ScriptTag.js.map +1 -1
- package/lib/components/ContentGroup/ContentGroupTabs.js +3 -2
- package/lib/components/ContentGroup/ContentGroupTabs.js.map +1 -1
- 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/DataSummary/DataSummaryFactory.js +2 -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 +3 -2
- package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js +3 -2
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js +3 -2
- package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js +3 -2
- package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js +3 -2
- package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/index.js +7 -6
- package/lib/components/DataSummary/DataSummaryTypes/index.js.map +1 -1
- package/lib/components/EmailConfirm/EmailConfirm.js +2 -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 +3 -2
- package/lib/components/ErrorMessage/index.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/GlobalLightbox.js +2 -1
- package/lib/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/index.js +3 -2
- package/lib/components/Image/GlobalLightbox/index.js.map +1 -1
- package/lib/components/Image/Image.js +2 -1
- package/lib/components/Image/Image.js.map +1 -1
- package/lib/components/Image/ImageFactory.js +3 -2
- package/lib/components/Image/ImageFactory.js.map +1 -1
- package/lib/components/Image/Lightbox/Lightbox.js +2 -1
- package/lib/components/Image/Lightbox/Lightbox.js.map +1 -1
- package/lib/components/ItemList/ItemListButton/ItemListButton.js +2 -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 +3 -2
- package/lib/components/Layout/LayoutFactory.js.map +1 -1
- package/lib/components/Layout/LayoutWithStickyTimer.js +2 -1
- package/lib/components/Layout/LayoutWithStickyTimer.js.map +1 -1
- package/lib/components/LazyImage/index.js +3 -2
- package/lib/components/LazyImage/index.js.map +1 -1
- package/lib/components/List/ListFactory.js +2 -1
- package/lib/components/List/ListFactory.js.map +1 -1
- package/lib/components/List/ListRender.js +2 -1
- package/lib/components/List/ListRender.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRender.js +2 -1
- package/lib/components/List/components/Cards/CardsRender.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRenderWrapper.js +3 -2
- package/lib/components/List/components/Cards/CardsRenderWrapper.js.map +1 -1
- package/lib/components/List/components/Full/FullRender.js +3 -2
- package/lib/components/List/components/Full/FullRender.js.map +1 -1
- package/lib/components/List/components/Full/FullRenderItem.js +3 -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 +2 -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 +3 -2
- package/lib/components/Loading/index.js.map +1 -1
- package/lib/components/Menu/Menu.js +2 -1
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/MenuItem/MenuItemRender.js +2 -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 +3 -2
- package/lib/components/ModalAdapter/index.js.map +1 -1
- package/lib/components/SearchContent/SearchContent.js +2 -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 +3 -2
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +2 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +3 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js +2 -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 +2 -1
- package/lib/components/Video/VideoModal.js.map +1 -1
- package/lib/components/Video/VideoRender.js +2 -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 +2 -1
- package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js.map +1 -1
- package/lib/components/Video/providers/Vimeo/VimeoProvider.js +3 -2
- package/lib/components/Video/providers/Vimeo/VimeoProvider.js.map +1 -1
- package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js +2 -1
- package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
- package/lib/components/Video/providers/get-provider.js +7 -6
- package/lib/components/Video/providers/get-provider.js.map +1 -1
- package/lib/components/index.js +32 -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-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/is-filter-entitys-id.js +1 -0
- package/lib/helpers/is-filter-entitys-id.js.map +1 -1
- package/lib/helpers/parse-TextBlock.js +2 -1
- package/lib/helpers/parse-TextBlock.js.map +1 -1
- package/lib/helpers/parse-props-to-display.js +2 -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/RenderComponent.js +1 -0
- package/lib/hooks/helpers/RenderComponent.js.map +1 -1
- package/lib/hooks/helpers/StoreImages.js +63 -42
- package/lib/hooks/helpers/StoreImages.js.map +1 -1
- package/lib/hooks/helpers/check-collisions.js +1 -0
- package/lib/hooks/helpers/check-collisions.js.map +1 -1
- package/lib/hooks/helpers/get-lightbox-images.js +8 -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-page-builder.js +1 -1
- package/lib/hooks/use-page-builder.js.map +1 -1
- package/lib/hooks/use-portal.js +2 -1
- package/lib/hooks/use-portal.js.map +1 -1
- package/lib/utils/get-class-modifiers.js +1 -0
- package/lib/utils/get-class-modifiers.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 +3 -2
- package/lib/variants/Infographic/index.js.map +1 -1
- package/lib/variants/LiveBlogList/LiveBlogList.js +47 -49
- package/lib/variants/LiveBlogList/LiveBlogList.js.map +1 -1
- package/lib/variants/LiveBlogList/index.js +3 -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 +3 -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 +3 -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 +3 -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/Button.js +12 -7
- package/lib-es/components/Button.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/ContentGroupTabs.js.map +1 -1
- package/lib-es/components/ContentGroup/helpers/get-active-tab.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/ListFactory.js +1 -1
- package/lib-es/components/List/ListFactory.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.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 +44 -30
- 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-sync-event-hook.js.map +1 -1
- package/lib-es/hooks/use-get-image-id-from-relation.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 +41 -51
- 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/Button.js +13 -9
- package/src/components/List/ListFactory.js +1 -1
- package/src/hooks/helpers/StoreImages.js +33 -31
- package/src/variants/LiveBlogList/LiveBlogList.js +51 -47
- package/tests/unit/src/variants/LiveBlogList/LiveBlogList.test.js +121 -0
- package/tests/unit/src/variants/LiveBlogList/constants.js +10 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveBlogList.js","names":["React","useRef","useState","useEffect","dayjs","relativeTime","Button","FaPlus","FaMinus","BsPinAngleFill","extend","
|
|
1
|
+
{"version":3,"file":"LiveBlogList.js","names":["React","useRef","useState","useEffect","dayjs","relativeTime","Button","FaPlus","FaMinus","BsPinAngleFill","extend","COLLAPSE_HEIGHT","LiveBlogList","children","date","published","featured","alternativeHeadline","isExpanded","setIsExpanded","shouldShowButton","setShouldShowButton","displayedDate","displayedTime","setDisplayedDate","usedDate","contentRef","el","current","check","scrollHeight","ResizeObserver","ro","observe","disconnect","days","diff","lessThanAYear","newDate","fromNow","format","toggleExpanded","value","isCollapsed","showHeader","createElement","className","Fragment","ref","onClick","type"],"sources":["../../../src/variants/LiveBlogList/LiveBlogList.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport dayjs from 'dayjs';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport Button from '@blaze-react/button';\nimport { FaPlus, FaMinus } from 'react-icons/fa';\nimport { BsPinAngleFill } from 'react-icons/bs';\n\ndayjs.extend(relativeTime);\n\nconst COLLAPSE_HEIGHT = 380;\n\nconst LiveBlogList = ({ children, date, published, featured, alternativeHeadline }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const [shouldShowButton, setShouldShowButton] = useState(false);\n const [{ displayedDate, displayedTime }, setDisplayedDate] = useState({\n displayedDate: ' ',\n displayedTime: ''\n });\n const usedDate = date;\n const contentRef = useRef(null);\n\n useEffect(\n () => {\n const el = contentRef.current;\n if (!el) return;\n\n const check = () => setShouldShowButton(el.scrollHeight > COLLAPSE_HEIGHT);\n\n if (typeof ResizeObserver !== 'undefined') {\n check();\n const ro = new ResizeObserver(check);\n ro.observe(el);\n return () => ro.disconnect();\n }\n check();\n },\n [children]\n );\n\n useEffect(\n () => {\n if (!usedDate) return;\n const days = dayjs().diff(dayjs(usedDate), 'day');\n const lessThanAYear = days < 365;\n\n let newDate;\n if (days < 1) newDate = dayjs(usedDate).fromNow();\n else if (lessThanAYear) newDate = dayjs(usedDate).format('DD MMM');\n else newDate = dayjs(usedDate).format('DD MMM YYYY');\n\n setDisplayedDate({\n displayedDate: newDate,\n displayedTime: lessThanAYear ? dayjs(usedDate).format('HH:mm') : null\n });\n },\n [usedDate]\n );\n\n const toggleExpanded = () => setIsExpanded(value => !value);\n const isCollapsed = !isExpanded;\n const showHeader = usedDate || alternativeHeadline || featured;\n\n return (\n <div className={`live-blog-container${featured ? ' live-blog-container--featured' : ''}`}>\n {showHeader && (\n <div className=\"live-blog-date\">\n {featured && <BsPinAngleFill />}\n {usedDate && (\n <>\n <span className=\"live-blog-date--date\">{displayedDate}</span>\n {displayedTime && <span className=\"live-blog-date--time\">{displayedTime}</span>}\n </>\n )}\n {alternativeHeadline && (\n <span className=\"live-blog-date--headline\">{alternativeHeadline}</span>\n )}\n </div>\n )}\n\n <div\n ref={contentRef}\n className={`live-blog-content ${\n isCollapsed\n ? 'live-blog-content--collapsed collapsed'\n : 'live-blog-content--opened opened'\n }`}>\n {children}\n </div>\n\n {shouldShowButton && (\n <div className=\"live-blog-button-wrapper\">\n <Button\n aria-label={isExpanded ? 'Show Less' : 'Show More'}\n className=\"live-blog-toggle\"\n onClick={toggleExpanded}\n type=\"button\">\n {isExpanded ? (\n <>\n <FaMinus className=\"toggle-icon\" /> Show Less\n </>\n ) : (\n <>\n <FaPlus className=\"toggle-icon\" /> Show More\n </>\n )}\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default LiveBlogList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
import dynamic from 'next/dynamic';
|
|
5
5
|
const liveBlogList = {
|
|
6
|
-
VariantComponent: dynamic(() => import(/* webpackChunkName: "blazePbliveBlogList" */'./LiveBlogList')),
|
|
6
|
+
VariantComponent: dynamic(() => import( /* webpackChunkName: "blazePbliveBlogList" */'./LiveBlogList')),
|
|
7
7
|
getSettings: componentSettings => _objectSpread(_objectSpread({}, componentSettings), {}, {
|
|
8
8
|
modifier: 'liveBlogList'
|
|
9
9
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dynamic","liveBlogList","VariantComponent","getSettings","componentSettings","_objectSpread","modifier"],"sources":["../../../src/variants/LiveBlogList/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst liveBlogList = {\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbliveBlogList\" */ './LiveBlogList')\n ),\n getSettings: componentSettings => ({\n ...componentSettings,\n modifier: 'liveBlogList'\n })\n};\n\nexport default liveBlogList;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,YAAY,GAAG;EACnBC,gBAAgB,EAAEF,OAAO,CAAC,MACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","names":["dynamic","liveBlogList","VariantComponent","getSettings","componentSettings","_objectSpread","modifier"],"sources":["../../../src/variants/LiveBlogList/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst liveBlogList = {\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbliveBlogList\" */ './LiveBlogList')\n ),\n getSettings: componentSettings => ({\n ...componentSettings,\n modifier: 'liveBlogList'\n })\n};\n\nexport default liveBlogList;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,YAAY,GAAG;EACnBC,gBAAgB,EAAEF,OAAO,CAAC,MACxB,MAAM,EAAC,6CAA8C,gBAAgB,CACvE,CAAC;EACDG,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,CAAAA,aAAA,KACzBD,iBAAiB;IACpBE,QAAQ,EAAE;EAAc;AAE5B,CAAC;AAED,eAAeL,YAAY","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LongformGalleryImage.js","names":["React","PropTypes","Head","useInView","ResponsiveImage","IN_VIEW_CONFIG","LongformGalleryImage","_ref","id","url","caption","altText","priority","className","numberOfImages","handleImageOnClick","props","_objectWithoutProperties","_excluded","isIntersecting","outerRef","shouldRender","HeadComponent","sizeKey","createElement","ref","role","onClick","_extends","src","alt","propTypes","string","isRequired","number","bool","func"],"sources":["../../../src/variants/LongformGallery/LongformGalleryImage.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Head from 'next/head';\nimport { useInView } from '@blaze-react/utils/lib/customHooks';\nimport { ResponsiveImage } from '@blaze-cms/image-cdn-react';\nimport { IN_VIEW_CONFIG } from './constants';\n\nconst LongformGalleryImage = ({\n id,\n url,\n caption,\n altText,\n priority,\n className,\n numberOfImages,\n handleImageOnClick,\n ...props\n}) => {\n const [isIntersecting, outerRef] = useInView(IN_VIEW_CONFIG);\n const shouldRender = priority || isIntersecting;\n const HeadComponent = priority ? Head : null;\n const sizeKey = `carousel:longform:${numberOfImages}`;\n\n return (\n <div ref={outerRef} className={`${className}`}>\n <div\n role=\"button\"\n className=\"longform-gallery__images__image__container\"\n data-testid=\"longform-gallery__images__image__container\"\n onClick={() => handleImageOnClick(id)}>\n {shouldRender && (\n <ResponsiveImage\n sizeKey={sizeKey}\n role=\"button\"\n src={url}\n alt={altText}\n priority={priority}\n HeadComponent={HeadComponent}\n {...props}\n />\n )}\n </div>\n {!!caption && (\n <div\n className=\"longform-gallery__images__image__details\"\n data-testid=\"longform-gallery__images__image__details\">\n <div className=\"longform-gallery__images__image__details__caption\">{caption}</div>\n </div>\n )}\n </div>\n );\n};\n\nLongformGalleryImage.propTypes = {\n id: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n caption: PropTypes.string.isRequired,\n numberOfImages: PropTypes.number.isRequired,\n altText: PropTypes.string.isRequired,\n priority: PropTypes.bool.isRequired,\n className: PropTypes.string.isRequired,\n handleImageOnClick: PropTypes.func.isRequired\n};\n\nexport default LongformGalleryImage;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,WAAW;AAC5B,SAASC,SAAS,QAAQ,oCAAoC;AAC9D,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SAASC,cAAc,QAAQ,aAAa;AAE5C,MAAMC,oBAAoB,GAAGC,IAAA,IAUvB;EAAA,IAVwB;MAC5BC,EAAE;MACFC,GAAG;MACHC,OAAO;MACPC,OAAO;MACPC,QAAQ;MACRC,SAAS;MACTC,cAAc;MACdC;IAEF,CAAC,GAAAR,IAAA;IADIS,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,SAAA;EAER,MAAM,CAACC,cAAc,EAAEC,QAAQ,CAAC,GAAGjB,SAAS,CAACE,cAAc,CAAC;EAC5D,MAAMgB,YAAY,GAAGT,QAAQ,IAAIO,cAAc;EAC/C,MAAMG,aAAa,GAAGV,QAAQ,GAAGV,IAAI,GAAG,IAAI;EAC5C,MAAMqB,OAAO,
|
|
1
|
+
{"version":3,"file":"LongformGalleryImage.js","names":["React","PropTypes","Head","useInView","ResponsiveImage","IN_VIEW_CONFIG","LongformGalleryImage","_ref","id","url","caption","altText","priority","className","numberOfImages","handleImageOnClick","props","_objectWithoutProperties","_excluded","isIntersecting","outerRef","shouldRender","HeadComponent","sizeKey","createElement","ref","role","onClick","_extends","src","alt","propTypes","string","isRequired","number","bool","func"],"sources":["../../../src/variants/LongformGallery/LongformGalleryImage.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Head from 'next/head';\nimport { useInView } from '@blaze-react/utils/lib/customHooks';\nimport { ResponsiveImage } from '@blaze-cms/image-cdn-react';\nimport { IN_VIEW_CONFIG } from './constants';\n\nconst LongformGalleryImage = ({\n id,\n url,\n caption,\n altText,\n priority,\n className,\n numberOfImages,\n handleImageOnClick,\n ...props\n}) => {\n const [isIntersecting, outerRef] = useInView(IN_VIEW_CONFIG);\n const shouldRender = priority || isIntersecting;\n const HeadComponent = priority ? Head : null;\n const sizeKey = `carousel:longform:${numberOfImages}`;\n\n return (\n <div ref={outerRef} className={`${className}`}>\n <div\n role=\"button\"\n className=\"longform-gallery__images__image__container\"\n data-testid=\"longform-gallery__images__image__container\"\n onClick={() => handleImageOnClick(id)}>\n {shouldRender && (\n <ResponsiveImage\n sizeKey={sizeKey}\n role=\"button\"\n src={url}\n alt={altText}\n priority={priority}\n HeadComponent={HeadComponent}\n {...props}\n />\n )}\n </div>\n {!!caption && (\n <div\n className=\"longform-gallery__images__image__details\"\n data-testid=\"longform-gallery__images__image__details\">\n <div className=\"longform-gallery__images__image__details__caption\">{caption}</div>\n </div>\n )}\n </div>\n );\n};\n\nLongformGalleryImage.propTypes = {\n id: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n caption: PropTypes.string.isRequired,\n numberOfImages: PropTypes.number.isRequired,\n altText: PropTypes.string.isRequired,\n priority: PropTypes.bool.isRequired,\n className: PropTypes.string.isRequired,\n handleImageOnClick: PropTypes.func.isRequired\n};\n\nexport default LongformGalleryImage;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,WAAW;AAC5B,SAASC,SAAS,QAAQ,oCAAoC;AAC9D,SAASC,eAAe,QAAQ,4BAA4B;AAC5D,SAASC,cAAc,QAAQ,aAAa;AAE5C,MAAMC,oBAAoB,GAAGC,IAAA,IAUvB;EAAA,IAVwB;MAC5BC,EAAE;MACFC,GAAG;MACHC,OAAO;MACPC,OAAO;MACPC,QAAQ;MACRC,SAAS;MACTC,cAAc;MACdC;IAEF,CAAC,GAAAR,IAAA;IADIS,KAAK,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,SAAA;EAER,MAAM,CAACC,cAAc,EAAEC,QAAQ,CAAC,GAAGjB,SAAS,CAACE,cAAc,CAAC;EAC5D,MAAMgB,YAAY,GAAGT,QAAQ,IAAIO,cAAc;EAC/C,MAAMG,aAAa,GAAGV,QAAQ,GAAGV,IAAI,GAAG,IAAI;EAC5C,MAAMqB,OAAO,GAAI,qBAAoBT,cAAe,EAAC;EAErD,oBACEd,KAAA,CAAAwB,aAAA;IAAKC,GAAG,EAAEL,QAAS;IAACP,SAAS,EAAG,GAAEA,SAAU;EAAE,gBAC5Cb,KAAA,CAAAwB,aAAA;IACEE,IAAI,EAAC,QAAQ;IACbb,SAAS,EAAC,4CAA4C;IACtD,eAAY,4CAA4C;IACxDc,OAAO,EAAEA,CAAA,KAAMZ,kBAAkB,CAACP,EAAE;EAAE,GACrCa,YAAY,iBACXrB,KAAA,CAAAwB,aAAA,CAACpB,eAAe,EAAAwB,QAAA;IACdL,OAAO,EAAEA,OAAQ;IACjBG,IAAI,EAAC,QAAQ;IACbG,GAAG,EAAEpB,GAAI;IACTqB,GAAG,EAAEnB,OAAQ;IACbC,QAAQ,EAAEA,QAAS;IACnBU,aAAa,EAAEA;EAAc,GACzBN,KAAK,CACV,CAEA,CAAC,EACL,CAAC,CAACN,OAAO,iBACRV,KAAA,CAAAwB,aAAA;IACEX,SAAS,EAAC,0CAA0C;IACpD,eAAY;EAA0C,gBACtDb,KAAA,CAAAwB,aAAA;IAAKX,SAAS,EAAC;EAAmD,GAAEH,OAAa,CAC9E,CAEJ,CAAC;AAEV,CAAC;AAEDJ,oBAAoB,CAACyB,SAAS,GAAG;EAC/BvB,EAAE,EAAEP,SAAS,CAAC+B,MAAM,CAACC,UAAU;EAC/BxB,GAAG,EAAER,SAAS,CAAC+B,MAAM,CAACC,UAAU;EAChCvB,OAAO,EAAET,SAAS,CAAC+B,MAAM,CAACC,UAAU;EACpCnB,cAAc,EAAEb,SAAS,CAACiC,MAAM,CAACD,UAAU;EAC3CtB,OAAO,EAAEV,SAAS,CAAC+B,MAAM,CAACC,UAAU;EACpCrB,QAAQ,EAAEX,SAAS,CAACkC,IAAI,CAACF,UAAU;EACnCpB,SAAS,EAAEZ,SAAS,CAAC+B,MAAM,CAACC,UAAU;EACtClB,kBAAkB,EAAEd,SAAS,CAACmC,IAAI,CAACH;AACrC,CAAC;AAED,eAAe3B,oBAAoB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["gql","GET_IMAGES_QUERY","PROPS_TO_CHECK","IN_VIEW_CONFIG","once","offset","bottomOffset"],"sources":["../../../src/variants/LongformGallery/constants.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst GET_IMAGES_QUERY = gql`\n query getImages($where: JSON!) {\n getImages: getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst PROPS_TO_CHECK = ['altText', 'caption', 'hrefUrl', 'credits'];\n\nconst IN_VIEW_CONFIG = {\n once: true,\n offset: '200px',\n bottomOffset: '-200px'\n};\n\nexport { GET_IMAGES_QUERY, IN_VIEW_CONFIG, PROPS_TO_CHECK };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,gBAAgB,GAAGD,
|
|
1
|
+
{"version":3,"file":"constants.js","names":["gql","GET_IMAGES_QUERY","PROPS_TO_CHECK","IN_VIEW_CONFIG","once","offset","bottomOffset"],"sources":["../../../src/variants/LongformGallery/constants.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst GET_IMAGES_QUERY = gql`\n query getImages($where: JSON!) {\n getImages: getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst PROPS_TO_CHECK = ['altText', 'caption', 'hrefUrl', 'credits'];\n\nconst IN_VIEW_CONFIG = {\n once: true,\n offset: '200px',\n bottomOffset: '-200px'\n};\n\nexport { GET_IMAGES_QUERY, IN_VIEW_CONFIG, PROPS_TO_CHECK };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,gBAAgB,GAAGD,GAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,MAAME,cAAc,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAEnE,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,OAAO;EACfC,YAAY,EAAE;AAChB,CAAC;AAED,SAASL,gBAAgB,EAAEE,cAAc,EAAED,cAAc","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
3
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
4
|
import dynamic from 'next/dynamic';
|
|
5
5
|
const LongformGallery = {
|
|
6
|
-
VariantComponent: dynamic(() => import(/* webpackChunkName: "blazePbVariantLongformGallery" */'./LongformGallery')),
|
|
6
|
+
VariantComponent: dynamic(() => import( /* webpackChunkName: "blazePbVariantLongformGallery" */'./LongformGallery')),
|
|
7
7
|
getSettings: componentSettings => _objectSpread(_objectSpread({}, componentSettings), {}, {
|
|
8
8
|
modifier: 'longformGallery'
|
|
9
9
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dynamic","LongformGallery","VariantComponent","getSettings","componentSettings","_objectSpread","modifier"],"sources":["../../../src/variants/LongformGallery/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst LongformGallery = {\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbVariantLongformGallery\" */ './LongformGallery')\n ),\n getSettings: componentSettings => ({\n ...componentSettings,\n modifier: 'longformGallery'\n })\n};\n\nexport default LongformGallery;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,eAAe,GAAG;EACtBC,gBAAgB,EAAEF,OAAO,CAAC,MACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","names":["dynamic","LongformGallery","VariantComponent","getSettings","componentSettings","_objectSpread","modifier"],"sources":["../../../src/variants/LongformGallery/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst LongformGallery = {\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbVariantLongformGallery\" */ './LongformGallery')\n ),\n getSettings: componentSettings => ({\n ...componentSettings,\n modifier: 'longformGallery'\n })\n};\n\nexport default LongformGallery;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,eAAe,GAAG;EACtBC,gBAAgB,EAAEF,OAAO,CAAC,MACxB,MAAM,EAAC,uDAAwD,mBAAmB,CACpF,CAAC;EACDG,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,CAAAA,aAAA,KACzBD,iBAAiB;IACpBE,QAAQ,EAAE;EAAiB;AAE/B,CAAC;AAED,eAAeL,eAAe","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
import dynamic from 'next/dynamic';
|
|
5
5
|
const SlideSummary = {
|
|
6
6
|
getSettings: componentSettings => _objectSpread({}, componentSettings),
|
|
7
|
-
VariantComponent: dynamic(() => import(/* webpackChunkName: "blazePbVariantSlideSummary" */'./SlideSummary'))
|
|
7
|
+
VariantComponent: dynamic(() => import( /* webpackChunkName: "blazePbVariantSlideSummary" */'./SlideSummary'))
|
|
8
8
|
};
|
|
9
9
|
export default SlideSummary;
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dynamic","SlideSummary","getSettings","componentSettings","_objectSpread","VariantComponent"],"sources":["../../../src/variants/SlideSummary/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst SlideSummary = {\n getSettings: componentSettings => ({\n ...componentSettings\n }),\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbVariantSlideSummary\" */ './SlideSummary')\n )\n};\nexport default SlideSummary;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,YAAY,GAAG;EACnBC,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,KACzBD,iBAAiB,CACpB;EACFE,gBAAgB,EAAEL,OAAO,CAAC,MACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","names":["dynamic","SlideSummary","getSettings","componentSettings","_objectSpread","VariantComponent"],"sources":["../../../src/variants/SlideSummary/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst SlideSummary = {\n getSettings: componentSettings => ({\n ...componentSettings\n }),\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbVariantSlideSummary\" */ './SlideSummary')\n )\n};\nexport default SlideSummary;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,YAAY,GAAG;EACnBC,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,KACzBD,iBAAiB,CACpB;EACFE,gBAAgB,EAAEL,OAAO,CAAC,MACxB,MAAM,EAAC,oDAAqD,gBAAgB,CAC9E;AACF,CAAC;AACD,eAAeC,YAAY","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
import dynamic from 'next/dynamic';
|
|
5
5
|
const ThumbnailCarousel = {
|
|
6
6
|
getSettings: componentSettings => _objectSpread({}, componentSettings),
|
|
7
|
-
VariantComponent: dynamic(() => import(/* webpackChunkName: "blazePbVariantThumbnailCarousel" */'./ThumbnailCarousel'))
|
|
7
|
+
VariantComponent: dynamic(() => import( /* webpackChunkName: "blazePbVariantThumbnailCarousel" */'./ThumbnailCarousel'))
|
|
8
8
|
};
|
|
9
9
|
export default ThumbnailCarousel;
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dynamic","ThumbnailCarousel","getSettings","componentSettings","_objectSpread","VariantComponent"],"sources":["../../../src/variants/ThumbnailCarousel/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst ThumbnailCarousel = {\n getSettings: componentSettings => ({\n ...componentSettings\n }),\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbVariantThumbnailCarousel\" */ './ThumbnailCarousel')\n )\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,iBAAiB,GAAG;EACxBC,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,KACzBD,iBAAiB,CACpB;EACFE,gBAAgB,EAAEL,OAAO,CAAC,MACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","names":["dynamic","ThumbnailCarousel","getSettings","componentSettings","_objectSpread","VariantComponent"],"sources":["../../../src/variants/ThumbnailCarousel/index.js"],"sourcesContent":["import dynamic from 'next/dynamic';\n\nconst ThumbnailCarousel = {\n getSettings: componentSettings => ({\n ...componentSettings\n }),\n VariantComponent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbVariantThumbnailCarousel\" */ './ThumbnailCarousel')\n )\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";;;AAAA,OAAOA,OAAO,MAAM,cAAc;AAElC,MAAMC,iBAAiB,GAAG;EACxBC,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,KACzBD,iBAAiB,CACpB;EACFE,gBAAgB,EAAEL,OAAO,CAAC,MACxB,MAAM,EAAC,yDAA0D,qBAAqB,CACxF;AACF,CAAC;AAED,eAAeC,iBAAiB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.146.0-core-styles.
|
|
3
|
+
"version": "0.146.0-core-styles.61",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@blaze-cms/core-errors-ui": "0.145.1-core-styles.0",
|
|
33
33
|
"@blaze-cms/image-cdn-react": "0.3.0-alpha.7",
|
|
34
34
|
"@blaze-cms/nextjs-components": "0.146.0-core-styles.42",
|
|
35
|
-
"@blaze-cms/plugin-search-ui": "0.146.0-core-styles.
|
|
35
|
+
"@blaze-cms/plugin-search-ui": "0.146.0-core-styles.61",
|
|
36
36
|
"@blaze-cms/setup-ui": "0.145.1-core-styles.0",
|
|
37
37
|
"@blaze-cms/utils": "0.146.0-core-styles.52",
|
|
38
38
|
"@blaze-cms/utils-handlebars": "0.146.0-core-styles.42",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"lib/*",
|
|
92
92
|
"lib-es/*"
|
|
93
93
|
],
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "8fa30efb2aec60464da5156e9670c0adc44e6384"
|
|
95
95
|
}
|
package/src/components/Button.js
CHANGED
|
@@ -57,19 +57,23 @@ const Button = props => {
|
|
|
57
57
|
return !!(url || hasChildren(children));
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
const logout = () => {
|
|
61
|
-
handleLogout(client);
|
|
62
|
-
if (hasChildren(children)) return setShowChildren(true);
|
|
60
|
+
const logout = async () => {
|
|
61
|
+
await handleLogout(client);
|
|
63
62
|
|
|
64
|
-
if (
|
|
63
|
+
if (hasChildren(children)) {
|
|
64
|
+
setShowChildren(true);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
if (!urlToUse) {
|
|
69
|
+
return router.reload();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
window.location.href = urlToUse;
|
|
69
73
|
};
|
|
70
74
|
|
|
71
|
-
const handleClick = () => {
|
|
72
|
-
if (isLogoutButton) logout();
|
|
75
|
+
const handleClick = async () => {
|
|
76
|
+
if (isLogoutButton) await logout();
|
|
73
77
|
if (!url && !isLogoutButton) setShowChildren(!showChildren);
|
|
74
78
|
};
|
|
75
79
|
|
|
@@ -1,48 +1,50 @@
|
|
|
1
1
|
class StoreImages {
|
|
2
|
-
|
|
3
|
-
this.images = [];
|
|
4
|
-
this.id = null;
|
|
5
|
-
this.toggleModal = () => {};
|
|
6
|
-
this.setSelectedImage = () => {};
|
|
7
|
-
}
|
|
2
|
+
#images = [];
|
|
8
3
|
|
|
9
|
-
|
|
10
|
-
this.images = [];
|
|
11
|
-
}
|
|
4
|
+
#pageBuilderID = null;
|
|
12
5
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
.map((item, index, final) => final.indexOf(item) === index && index)
|
|
17
|
-
.filter(item => images[item])
|
|
18
|
-
.map(item => images[item]);
|
|
6
|
+
#handlers = {
|
|
7
|
+
toggleModal: () => {},
|
|
8
|
+
onSelect: () => {}
|
|
19
9
|
};
|
|
20
10
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.setSelectedImage(index);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
11
|
+
get images() {
|
|
12
|
+
return [...this.#images];
|
|
13
|
+
}
|
|
27
14
|
|
|
28
|
-
|
|
29
|
-
this
|
|
30
|
-
|
|
31
|
-
};
|
|
15
|
+
resetImages() {
|
|
16
|
+
this.#images = [];
|
|
17
|
+
}
|
|
32
18
|
|
|
33
|
-
|
|
34
|
-
if (
|
|
19
|
+
setHandlers({ toggleModal, setSelectedImage }) {
|
|
20
|
+
if (typeof toggleModal === 'function') this.#handlers.toggleModal = toggleModal;
|
|
21
|
+
if (typeof setSelectedImage === 'function') this.#handlers.onSelect = setSelectedImage;
|
|
22
|
+
}
|
|
35
23
|
|
|
36
|
-
|
|
24
|
+
addImages(newImages, { pageBuilderID } = {}, handlers = {}) {
|
|
25
|
+
if (!Array.isArray(newImages) || newImages.length === 0) {
|
|
26
|
+
return this.images;
|
|
27
|
+
}
|
|
37
28
|
|
|
38
|
-
if (pageBuilderID !== this
|
|
29
|
+
if (pageBuilderID != null && pageBuilderID !== this.#pageBuilderID) {
|
|
39
30
|
this.resetImages();
|
|
40
|
-
this
|
|
31
|
+
this.#pageBuilderID = pageBuilderID;
|
|
41
32
|
}
|
|
42
33
|
|
|
43
|
-
this
|
|
34
|
+
const merged = this.#images.concat(newImages);
|
|
35
|
+
this.#images = Array.from(new Map(merged.map(img => [img.imageId, img])).values());
|
|
44
36
|
|
|
37
|
+
this.setHandlers(handlers);
|
|
45
38
|
return this.images;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
toggleModal = () => {
|
|
42
|
+
this.#handlers.toggleModal();
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
handleSelectedImage = imageId => {
|
|
46
|
+
const idx = this.#images.findIndex(img => img.imageId === imageId);
|
|
47
|
+
if (idx !== -1) this.#handlers.onSelect(idx);
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -7,89 +7,93 @@ import { BsPinAngleFill } from 'react-icons/bs';
|
|
|
7
7
|
|
|
8
8
|
dayjs.extend(relativeTime);
|
|
9
9
|
|
|
10
|
-
const
|
|
11
|
-
|
|
10
|
+
const COLLAPSE_HEIGHT = 380;
|
|
11
|
+
|
|
12
|
+
const LiveBlogList = ({ children, date, published, featured, alternativeHeadline }) => {
|
|
12
13
|
const [isExpanded, setIsExpanded] = useState(false);
|
|
13
14
|
const [shouldShowButton, setShouldShowButton] = useState(false);
|
|
14
15
|
const [{ displayedDate, displayedTime }, setDisplayedDate] = useState({
|
|
15
16
|
displayedDate: ' ',
|
|
16
|
-
|
|
17
|
+
displayedTime: ''
|
|
17
18
|
});
|
|
18
|
-
const usedDate = date
|
|
19
|
-
|
|
19
|
+
const usedDate = date;
|
|
20
20
|
const contentRef = useRef(null);
|
|
21
21
|
|
|
22
22
|
useEffect(
|
|
23
23
|
() => {
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
const contentHeight = contentRef.current.scrollHeight;
|
|
27
|
-
if (contentHeight > 380) {
|
|
28
|
-
setShouldShowButton(true);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}, 500); // delay to wait for content load
|
|
32
|
-
// todo: change to use mutation observer
|
|
24
|
+
const el = contentRef.current;
|
|
25
|
+
if (!el) return;
|
|
33
26
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
const check = () => setShouldShowButton(el.scrollHeight > COLLAPSE_HEIGHT);
|
|
28
|
+
|
|
29
|
+
if (typeof ResizeObserver !== 'undefined') {
|
|
30
|
+
check();
|
|
31
|
+
const ro = new ResizeObserver(check);
|
|
32
|
+
ro.observe(el);
|
|
33
|
+
return () => ro.disconnect();
|
|
34
|
+
}
|
|
35
|
+
check();
|
|
37
36
|
},
|
|
38
37
|
[children]
|
|
39
38
|
);
|
|
40
39
|
|
|
41
40
|
useEffect(
|
|
42
41
|
() => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
displayedTime: dayjs(usedDate).format('HH:mm')
|
|
57
|
-
});
|
|
58
|
-
}
|
|
42
|
+
if (!usedDate) return;
|
|
43
|
+
const days = dayjs().diff(dayjs(usedDate), 'day');
|
|
44
|
+
const lessThanAYear = days < 365;
|
|
45
|
+
|
|
46
|
+
let newDate;
|
|
47
|
+
if (days < 1) newDate = dayjs(usedDate).fromNow();
|
|
48
|
+
else if (lessThanAYear) newDate = dayjs(usedDate).format('DD MMM');
|
|
49
|
+
else newDate = dayjs(usedDate).format('DD MMM YYYY');
|
|
50
|
+
|
|
51
|
+
setDisplayedDate({
|
|
52
|
+
displayedDate: newDate,
|
|
53
|
+
displayedTime: lessThanAYear ? dayjs(usedDate).format('HH:mm') : null
|
|
54
|
+
});
|
|
59
55
|
},
|
|
60
|
-
[
|
|
56
|
+
[usedDate]
|
|
61
57
|
);
|
|
62
58
|
|
|
63
|
-
const toggleExpanded = () =>
|
|
64
|
-
setIsExpanded(!isExpanded);
|
|
65
|
-
};
|
|
66
|
-
|
|
59
|
+
const toggleExpanded = () => setIsExpanded(value => !value);
|
|
67
60
|
const isCollapsed = !isExpanded;
|
|
68
|
-
const
|
|
69
|
-
const modifier = featured ? ` ${baseClass}--featured` : '';
|
|
70
|
-
const className = `${baseClass}${modifier}`;
|
|
61
|
+
const showHeader = usedDate || alternativeHeadline || featured;
|
|
71
62
|
|
|
72
63
|
return (
|
|
73
|
-
<div className={
|
|
74
|
-
{
|
|
64
|
+
<div className={`live-blog-container${featured ? ' live-blog-container--featured' : ''}`}>
|
|
65
|
+
{showHeader && (
|
|
75
66
|
<div className="live-blog-date">
|
|
76
67
|
{featured && <BsPinAngleFill />}
|
|
77
|
-
|
|
78
|
-
|
|
68
|
+
{usedDate && (
|
|
69
|
+
<>
|
|
70
|
+
<span className="live-blog-date--date">{displayedDate}</span>
|
|
71
|
+
{displayedTime && <span className="live-blog-date--time">{displayedTime}</span>}
|
|
72
|
+
</>
|
|
73
|
+
)}
|
|
74
|
+
{alternativeHeadline && (
|
|
75
|
+
<span className="live-blog-date--headline">{alternativeHeadline}</span>
|
|
76
|
+
)}
|
|
79
77
|
</div>
|
|
80
78
|
)}
|
|
81
79
|
|
|
82
80
|
<div
|
|
83
81
|
ref={contentRef}
|
|
84
82
|
className={`live-blog-content ${
|
|
85
|
-
isCollapsed
|
|
83
|
+
isCollapsed
|
|
84
|
+
? 'live-blog-content--collapsed collapsed'
|
|
85
|
+
: 'live-blog-content--opened opened'
|
|
86
86
|
}`}>
|
|
87
87
|
{children}
|
|
88
88
|
</div>
|
|
89
89
|
|
|
90
90
|
{shouldShowButton && (
|
|
91
91
|
<div className="live-blog-button-wrapper">
|
|
92
|
-
<Button
|
|
92
|
+
<Button
|
|
93
|
+
aria-label={isExpanded ? 'Show Less' : 'Show More'}
|
|
94
|
+
className="live-blog-toggle"
|
|
95
|
+
onClick={toggleExpanded}
|
|
96
|
+
type="button">
|
|
93
97
|
{isExpanded ? (
|
|
94
98
|
<>
|
|
95
99
|
<FaMinus className="toggle-icon" /> Show Less
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jest-environment jsdom
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { render, screen, fireEvent, waitFor } from '@testing-library/react';
|
|
6
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
7
|
+
import dayjs from 'dayjs';
|
|
8
|
+
import LiveBlogList from '../../../../../src/variants/LiveBlogList/LiveBlogList';
|
|
9
|
+
import { LONG_TEXT, SHORT_TEXT } from './constants';
|
|
10
|
+
|
|
11
|
+
describe('LiveBlogList', () => {
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
jest.restoreAllMocks();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('short content: uses date and hides toggle button', async () => {
|
|
17
|
+
jest.spyOn(HTMLElement.prototype, 'scrollHeight', 'get').mockReturnValue(200);
|
|
18
|
+
const dateProps = { date: '2025-04-15T11:26:03.863Z' };
|
|
19
|
+
|
|
20
|
+
const { container } = render(
|
|
21
|
+
<LiveBlogList {...dateProps}>
|
|
22
|
+
<h2>Short item</h2>
|
|
23
|
+
<p>{SHORT_TEXT}</p>
|
|
24
|
+
</LiveBlogList>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
const contentElement = container.querySelector('.live-blog-content');
|
|
28
|
+
expect(contentElement).toBeInTheDocument();
|
|
29
|
+
expect(container.querySelector('.live-blog-toggle')).not.toBeInTheDocument();
|
|
30
|
+
const displayedDate = container.querySelector('.live-blog-date');
|
|
31
|
+
|
|
32
|
+
expect(displayedDate).toBeInTheDocument();
|
|
33
|
+
expect(displayedDate.textContent).not.toBe('');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('long content: shows toggle button and lets you expand and collapse', async () => {
|
|
37
|
+
jest.spyOn(HTMLElement.prototype, 'scrollHeight', 'get').mockReturnValue(500);
|
|
38
|
+
const dateProps = { date: '2025-04-15T15:51:59.303Z' };
|
|
39
|
+
|
|
40
|
+
const { container } = render(
|
|
41
|
+
<LiveBlogList {...dateProps}>
|
|
42
|
+
<h3>The day so far</h3>
|
|
43
|
+
<div>{LONG_TEXT}</div>
|
|
44
|
+
</LiveBlogList>
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const toggleButton = await screen.findByRole('button', { name: /show more/i });
|
|
48
|
+
expect(toggleButton).toBeInTheDocument();
|
|
49
|
+
const contentElement = container.querySelector('.live-blog-content');
|
|
50
|
+
expect(contentElement).toHaveClass('collapsed');
|
|
51
|
+
|
|
52
|
+
fireEvent.click(toggleButton);
|
|
53
|
+
await waitFor(() => {
|
|
54
|
+
expect(contentElement).not.toHaveClass('collapsed');
|
|
55
|
+
expect(toggleButton.textContent).toMatch(/show less/i);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
fireEvent.click(toggleButton);
|
|
59
|
+
await waitFor(() => {
|
|
60
|
+
expect(contentElement).toHaveClass('collapsed');
|
|
61
|
+
expect(toggleButton.textContent).toMatch(/show more/i);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
const displayedDate = container.querySelector('.live-blog-date');
|
|
65
|
+
expect(displayedDate).toBeInTheDocument();
|
|
66
|
+
expect(displayedDate.textContent).not.toBe('');
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('if date less than 1 day ago, shows relative time', () => {
|
|
70
|
+
const recentDate = '2025-04-15T15:52:00.000Z';
|
|
71
|
+
jest.useFakeTimers('modern');
|
|
72
|
+
jest.setSystemTime(new Date('2025-04-16T10:00:00.000Z'));
|
|
73
|
+
|
|
74
|
+
const { container } = render(
|
|
75
|
+
<LiveBlogList date={recentDate}>
|
|
76
|
+
<p>Less than 1 day old content</p>
|
|
77
|
+
</LiveBlogList>
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const dateElement = container.querySelector('.live-blog-date');
|
|
81
|
+
expect(dateElement).toBeInTheDocument();
|
|
82
|
+
expect(dateElement.textContent).toMatch(/ago/i);
|
|
83
|
+
jest.useRealTimers();
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('if older than a day but within a year, shows date in DD MMM format', () => {
|
|
87
|
+
const fewDaysOld = '2025-04-09T00:00:00.000Z';
|
|
88
|
+
jest.useFakeTimers('modern');
|
|
89
|
+
jest.setSystemTime(new Date('2025-04-16T10:00:00.000Z'));
|
|
90
|
+
|
|
91
|
+
const { container } = render(
|
|
92
|
+
<LiveBlogList date={fewDaysOld}>
|
|
93
|
+
<p>Older than 1 day but less than a year</p>
|
|
94
|
+
</LiveBlogList>
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
const dateElement = container.querySelector('.live-blog-date--date');
|
|
98
|
+
expect(dateElement).toBeInTheDocument();
|
|
99
|
+
const expectedDate = dayjs(fewDaysOld).format('DD MMM');
|
|
100
|
+
expect(dateElement.textContent).toBe(expectedDate);
|
|
101
|
+
jest.useRealTimers();
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it('if older than a year, shows date in DD MMM YYYY format', () => {
|
|
105
|
+
const oldDate = '2023-03-15T00:00:00.000Z';
|
|
106
|
+
jest.useFakeTimers('modern');
|
|
107
|
+
jest.setSystemTime(new Date('2025-04-16T10:00:00.000Z'));
|
|
108
|
+
|
|
109
|
+
const { container } = render(
|
|
110
|
+
<LiveBlogList date={oldDate}>
|
|
111
|
+
<p>More than 1 year old content</p>
|
|
112
|
+
</LiveBlogList>
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
const dateElement = container.querySelector('.live-blog-date');
|
|
116
|
+
expect(dateElement).toBeInTheDocument();
|
|
117
|
+
const expectedDate = dayjs(oldDate).format('DD MMM YYYY');
|
|
118
|
+
expect(dateElement.textContent).toBe(expectedDate);
|
|
119
|
+
jest.useRealTimers();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const LONG_TEXT = `
|
|
2
|
+
In case you’re just joining us, here’s a recap of the latest news and global market moves since the European market open. (You can see the earlier round-up here)
|
|
3
|
+
Europe’s main indexes started on a surprisingly positive note at the start of trading, as markets seemed to recover some ground from the tariff sell-off, even as it became clear that Trump had applied 145% tariffs on Chinese goods
|
|
4
|
+
Mining giants, supported in part by growing appetite for safe haven assets like gold, were leading the FTSE 100 – including Fresnillo, Glencore, and Anglo American
|
|
5
|
+
There was also some optimism emanating from the UK GDP figures, which showed the economy expanding by more than expected in February at 0.5%
|
|
6
|
+
`;
|
|
7
|
+
|
|
8
|
+
const SHORT_TEXT = `Winners of the 2022 World Superyacht Awards have been revealed. From the newly crowned Motor Yacht of the Year to the prestigious Voyagers Award, find out which yachts...`;
|
|
9
|
+
|
|
10
|
+
export { LONG_TEXT, SHORT_TEXT };
|