@blaze-cms/react-page-builder 0.124.0-alpha.9 → 0.124.1-alpha.2
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 +325 -0
- package/README.md +8 -0
- package/lib/BannerContext/index.js.map +1 -1
- package/lib/HOC/withInfiniteScroll.js.map +1 -1
- package/lib/HOC/withTitle.js.map +1 -1
- package/lib/PBContext/index.js.map +1 -1
- package/lib/application/query/index.js +8 -2
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/BackToTop/BackToTop.js.map +1 -1
- package/lib/components/Banner/AdSlotRender.js.map +1 -1
- package/lib/components/Banner/Banner.js.map +1 -1
- package/lib/components/Banner/BannerRender.js.map +1 -1
- package/lib/components/Banner/helpers.js.map +1 -1
- package/lib/components/Banner/index.js.map +1 -1
- package/lib/components/BlazeLink.js.map +1 -1
- package/lib/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/lib/components/Button.js +18 -5
- package/lib/components/Button.js.map +1 -1
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/Card/CardContainer.js +3 -7
- package/lib/components/Card/CardContainer.js.map +1 -1
- package/lib/components/Card/CardFactory.js +6 -3
- package/lib/components/Card/CardFactory.js.map +1 -1
- package/lib/components/Card/CardRender.js.map +1 -1
- package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
- package/lib/components/Card/helpers/filters-setup.js.map +1 -1
- package/lib/components/Card/helpers/get-dynamic-grid-classes.js.map +1 -1
- package/lib/components/Carousel/Carousel.js.map +1 -1
- package/lib/components/Carousel/CarouselImage/CarouselImage.js.map +1 -1
- package/lib/components/Carousel/CarouselRender/CarouselRender.js.map +1 -1
- package/lib/components/CarouselWrapper.js +2 -2
- package/lib/components/CarouselWrapper.js.map +1 -1
- package/lib/components/ClickWrapper.js.map +1 -1
- package/lib/components/Code/Code.js.map +1 -1
- package/lib/components/Code/ScriptTag.js.map +1 -1
- package/lib/components/Code/helpers/wrap-script-tags.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryFactory.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryRender.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummary.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummary.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummary.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummary.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummary.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/index.js.map +1 -1
- package/lib/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
- package/lib/components/DataSummary/helpers/build-props-to-display-with-content.js.map +1 -1
- package/lib/components/DataSummary/helpers/get-data-summary-query.js.map +1 -1
- package/lib/components/DataSummary/helpers/get-link-based-on-value.js.map +1 -1
- package/lib/components/DataSummary/helpers/get-prop-value.js.map +1 -1
- package/lib/components/DataSummary/helpers/get-value-from-array.js.map +1 -1
- package/lib/components/DataSummary/helpers/strip-summary-props-content.js.map +1 -1
- package/lib/components/EmailConfirm/EmailConfirm.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/NavButton.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/index.js.map +1 -1
- package/lib/components/Image/Image.js.map +1 -1
- package/lib/components/Image/ImageDetails.js.map +1 -1
- package/lib/components/Image/ImageFactory.js.map +1 -1
- package/lib/components/Image/ImageRender.js +5 -1
- package/lib/components/Image/ImageRender.js.map +1 -1
- package/lib/components/Image/Lightbox/Lightbox.js.map +1 -1
- package/lib/components/ItemList/ItemListButton/ItemListButton.js +161 -0
- package/lib/components/ItemList/ItemListButton/ItemListButton.js.map +1 -0
- package/lib/components/ItemList/ItemListButton/index.js +16 -0
- package/lib/components/ItemList/ItemListButton/index.js.map +1 -0
- package/lib/components/ItemList/ItemListCounter/ItemListCounter.js +83 -0
- package/lib/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -0
- package/lib/components/ItemList/ItemListCounter/index.js +16 -0
- package/lib/components/ItemList/ItemListCounter/index.js.map +1 -0
- package/lib/components/ItemList/ItemListNew/ItemListNew.js +87 -0
- package/lib/components/ItemList/ItemListNew/ItemListNew.js.map +1 -0
- package/lib/components/ItemList/ItemListNew/index.js +16 -0
- package/lib/components/ItemList/ItemListNew/index.js.map +1 -0
- package/lib/components/ItemList/constants.js +19 -0
- package/lib/components/ItemList/constants.js.map +1 -0
- package/lib/components/ItemList/helpers/get-item-list-data.js +17 -0
- package/lib/components/ItemList/helpers/get-item-list-data.js.map +1 -0
- package/lib/components/ItemList/helpers/get-item-list-id.js +23 -0
- package/lib/components/ItemList/helpers/get-item-list-id.js.map +1 -0
- package/lib/components/ItemList/helpers/get-item-list-ids.js +28 -0
- package/lib/components/ItemList/helpers/get-item-list-ids.js.map +1 -0
- package/lib/components/ItemList/helpers/index.js +50 -0
- package/lib/components/ItemList/helpers/index.js.map +1 -0
- package/lib/components/ItemList/helpers/set-item-list-id.js +22 -0
- package/lib/components/ItemList/helpers/set-item-list-id.js.map +1 -0
- package/lib/components/ItemList/helpers/set-param-and-redirect.js +51 -0
- package/lib/components/ItemList/helpers/set-param-and-redirect.js.map +1 -0
- package/lib/components/ItemList/hooks/index.js +18 -0
- package/lib/components/ItemList/hooks/index.js.map +1 -0
- package/lib/components/ItemList/hooks/use-item-list-id.js +45 -0
- package/lib/components/ItemList/hooks/use-item-list-id.js.map +1 -0
- package/lib/components/Layout/Layout.js.map +1 -1
- package/lib/components/Layout/helpers/check-if-row-has-columns.js.map +1 -1
- package/lib/components/LazyImage/LazyImage.js +5 -1
- package/lib/components/LazyImage/LazyImage.js.map +1 -1
- package/lib/components/LazyImage/index.js.map +1 -1
- package/lib/components/List/ListBuilder.js +12 -6
- package/lib/components/List/ListBuilder.js.map +1 -1
- package/lib/components/List/ListFactory.js +34 -7
- package/lib/components/List/ListFactory.js.map +1 -1
- package/lib/components/List/ListRender.js.map +1 -1
- package/lib/components/List/components/Cards/CardRenderWithInfiniteScroll.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRender.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRenderItem.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRenderWrapper.js.map +1 -1
- package/lib/components/List/components/Full/FullRender.js.map +1 -1
- package/lib/components/List/components/Full/FullRenderItem.js.map +1 -1
- package/lib/components/List/components/Full/FullRenderWithInfiniteScroll.js.map +1 -1
- package/lib/components/List/components/Header/ListHeader.js.map +1 -1
- package/lib/components/List/components/Pagination/Classic.js.map +1 -1
- package/lib/components/List/components/Pagination/ListPagination.js.map +1 -1
- package/lib/components/List/components/Pagination/LoadMore.js.map +1 -1
- package/lib/components/List/helpers/build-az-aggregations.js.map +1 -1
- package/lib/components/List/helpers/build-az-url.js.map +1 -1
- package/lib/components/List/helpers/build-pagination-items.js.map +1 -1
- package/lib/components/List/helpers/build-pagination-url.js.map +1 -1
- package/lib/components/List/helpers/has-required-item-list-details.js +29 -0
- package/lib/components/List/helpers/has-required-item-list-details.js.map +1 -0
- package/lib/components/List/helpers/index.js +8 -0
- package/lib/components/List/helpers/index.js.map +1 -1
- package/lib/components/Login/LoggedInMessage.js.map +1 -1
- package/lib/components/Login/Login.js.map +1 -1
- package/lib/components/Login/LoginForm.js.map +1 -1
- package/lib/components/Menu/Menu.js +41 -28
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/Menu/MenuContext.js +20 -0
- package/lib/components/Menu/MenuContext.js.map +1 -0
- package/lib/components/MenuItem/MenuItem.js +26 -7
- package/lib/components/MenuItem/MenuItem.js.map +1 -1
- package/lib/components/Modal/Modal.js.map +1 -1
- package/lib/components/PasswordReset/PasswordReset.js.map +1 -1
- package/lib/components/PasswordReset/helpers/validatePassword.js.map +1 -1
- package/lib/components/PasswordResetRequest/PasswordResetRequest.js.map +1 -1
- package/lib/components/SearchContent/SearchContent.js +183 -0
- package/lib/components/SearchContent/SearchContent.js.map +1 -0
- package/lib/components/SearchContent/SearchContentItems.js +51 -0
- package/lib/components/SearchContent/SearchContentItems.js.map +1 -0
- package/lib/components/SearchContent/SearchContentResults.js +45 -0
- package/lib/components/SearchContent/SearchContentResults.js.map +1 -0
- package/lib/components/SearchContent/SearchContentToggleIcon.js +42 -0
- package/lib/components/SearchContent/SearchContentToggleIcon.js.map +1 -0
- package/lib/components/SearchContent/index.js +2 -301
- package/lib/components/SearchContent/index.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/CloseMobileForm.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/MobileFormToolbar.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/ResetDesktopForm.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +18 -67
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +97 -22
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js +19 -9
- package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib/components/SearchFilter/components/Range.js +23 -6
- package/lib/components/SearchFilter/components/Range.js.map +1 -1
- package/lib/components/SearchFilter/components/Select.js +27 -11
- package/lib/components/SearchFilter/components/Select.js.map +1 -1
- package/lib/components/SearchFilter/components/TextSearch.js +1 -5
- package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-filters-query.js +110 -0
- package/lib/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
- package/lib/components/SearchFilter/helpers/build-query.js +1 -1
- package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js +15 -8
- package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
- package/lib/components/SearchFilter/helpers/calculate-min-max.js.map +1 -1
- package/lib/components/SearchFilter/helpers/check-if-range-updated.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-filter-value-from-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-initial-filter-values.js +16 -1
- package/lib/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-intersected-prop.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-range-value.js +4 -2
- package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-select-options.js.map +1 -1
- package/lib/components/SearchFilter/helpers/index.js +8 -0
- package/lib/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib/components/SearchFilter/helpers/parse-filter-value.js +3 -7
- package/lib/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
- package/lib/components/SearchFilterSort/SearchFilterSort.js.map +1 -1
- package/lib/components/SearchFilterSort/helpers/handle-sort-update.js.map +1 -1
- package/lib/components/SearchFilterSort/helpers/update-sort.js.map +1 -1
- package/lib/components/SocialFollow/SFItem.js.map +1 -1
- package/lib/components/SocialFollow/SocialFollow.js.map +1 -1
- package/lib/components/SocialFollow/SocialFollowRender.js.map +1 -1
- package/lib/components/SubMenu/SubMenu.js.map +1 -1
- package/lib/components/TextBlock/TextBlockRender.js.map +1 -1
- package/lib/components/TextBlock/index.js.map +1 -1
- package/lib/components/Video/Video.js.map +1 -1
- package/lib/components/Video/VideoModal.js.map +1 -1
- package/lib/components/Video/VideoRender.js.map +1 -1
- package/lib/components/Video/providers/Default.js.map +1 -1
- package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js.map +1 -1
- package/lib/components/Video/providers/YouTube/YouTubeProvider.js.map +1 -1
- package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
- package/lib/components/Video/providers/get-provider.js.map +1 -1
- package/lib/components/Wrapper.js.map +1 -1
- package/lib/components/index.js +16 -1
- package/lib/components/index.js.map +1 -1
- package/lib/constants/index.js +3 -1
- package/lib/constants/index.js.map +1 -1
- package/lib/helpers/build-inherited-filters.js.map +1 -1
- package/lib/helpers/build-raw-query-base.js.map +1 -1
- package/lib/helpers/build-raw-query.js.map +1 -1
- package/lib/helpers/build-search-values-checkbox-select.js.map +1 -1
- package/lib/helpers/check-props-to-use.js.map +1 -1
- package/lib/helpers/get-entities-with-banner.js.map +1 -1
- package/lib/helpers/get-entity-data.js.map +1 -1
- package/lib/helpers/get-entity-render-props.js.map +1 -1
- package/lib/helpers/get-filter-props.js.map +1 -1
- package/lib/helpers/get-generic-props.js.map +1 -1
- package/lib/helpers/get-generic-render-variables.js.map +1 -1
- package/lib/helpers/get-image-ids.js.map +1 -1
- package/lib/helpers/get-parsed-prop-values.js.map +1 -1
- package/lib/helpers/get-prop-values.js.map +1 -1
- package/lib/helpers/get-query-filters.js.map +1 -1
- package/lib/helpers/get-query-props.js.map +1 -1
- package/lib/helpers/get-updated-filter-by.js.map +1 -1
- package/lib/helpers/inject-banner.js.map +1 -1
- package/lib/helpers/inject-banners-to-entities.js.map +1 -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.map +1 -1
- package/lib/helpers/inject-multiple-banners/get-banners-for-nodes/helpers/group-node-entities.js.map +1 -1
- package/lib/helpers/inject-multiple-banners/inject-multiple-banners.js.map +1 -1
- package/lib/helpers/is-filter-entitys-id.js.map +1 -1
- package/lib/helpers/parse-TextBlock.js.map +1 -1
- package/lib/helpers/parse-props-to-display.js.map +1 -1
- package/lib/helpers/render-children.js.map +1 -1
- package/lib/helpers/sort-response-data.js.map +1 -1
- package/lib/hooks/helpers/RenderComponent.js.map +1 -1
- package/lib/hooks/helpers/append-gtm-classname.js +1 -0
- package/lib/hooks/helpers/append-gtm-classname.js.map +1 -1
- package/lib/hooks/helpers/buildPBComponents.js.map +1 -1
- package/lib/hooks/helpers/getComponent.js.map +1 -1
- package/lib/hooks/helpers/inject-element-banners.js.map +1 -1
- package/lib/hooks/helpers/inject-textblock-banners.js.map +1 -1
- package/lib/hooks/helpers/insert-banners.js.map +1 -1
- package/lib/hooks/helpers/update-targetings.js.map +1 -1
- package/lib/hooks/use-banner-insertion.js.map +1 -1
- package/lib/hooks/use-check-mobile-screen.js.map +1 -1
- package/lib/hooks/use-get-entity-schema.js.map +1 -1
- package/lib/hooks/use-get-entity-schemas-as-obj.js.map +1 -1
- package/lib/hooks/use-get-image-id-from-relation.js.map +1 -1
- package/lib/hooks/use-get-images.js.map +1 -1
- package/lib/hooks/use-get-single-entity-schema.js.map +1 -1
- package/lib/hooks/use-page-builder.js.map +1 -1
- package/lib/utils/get-class-modifiers.js.map +1 -1
- package/lib/utils/get-image-data.js.map +1 -1
- package/lib-es/application/query/index.js +45 -1
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/components/Button.js +18 -6
- package/lib-es/components/Button.js.map +1 -1
- package/lib-es/components/Card/CardContainer.js +3 -7
- package/lib-es/components/Card/CardContainer.js.map +1 -1
- package/lib-es/components/Card/CardFactory.js +7 -4
- package/lib-es/components/Card/CardFactory.js.map +1 -1
- package/lib-es/components/CarouselWrapper.js +2 -2
- package/lib-es/components/CarouselWrapper.js.map +1 -1
- package/lib-es/components/Image/ImageRender.js +4 -1
- package/lib-es/components/Image/ImageRender.js.map +1 -1
- package/lib-es/components/ItemList/ItemListButton/ItemListButton.js +111 -0
- package/lib-es/components/ItemList/ItemListButton/ItemListButton.js.map +1 -0
- package/lib-es/components/ItemList/ItemListButton/index.js +3 -0
- package/lib-es/components/ItemList/ItemListButton/index.js.map +1 -0
- package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js +60 -0
- package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -0
- package/lib-es/components/ItemList/ItemListCounter/index.js +3 -0
- package/lib-es/components/ItemList/ItemListCounter/index.js.map +1 -0
- package/lib-es/components/ItemList/ItemListNew/ItemListNew.js +64 -0
- package/lib-es/components/ItemList/ItemListNew/ItemListNew.js.map +1 -0
- package/lib-es/components/ItemList/ItemListNew/index.js +3 -0
- package/lib-es/components/ItemList/ItemListNew/index.js.map +1 -0
- package/lib-es/components/ItemList/constants.js +6 -0
- package/lib-es/components/ItemList/constants.js.map +1 -0
- package/lib-es/components/ItemList/helpers/get-item-list-data.js +7 -0
- package/lib-es/components/ItemList/helpers/get-item-list-data.js.map +1 -0
- package/lib-es/components/ItemList/helpers/get-item-list-id.js +11 -0
- package/lib-es/components/ItemList/helpers/get-item-list-id.js.map +1 -0
- package/lib-es/components/ItemList/helpers/get-item-list-ids.js +13 -0
- package/lib-es/components/ItemList/helpers/get-item-list-ids.js.map +1 -0
- package/lib-es/components/ItemList/helpers/index.js +6 -0
- package/lib-es/components/ItemList/helpers/index.js.map +1 -0
- package/lib-es/components/ItemList/helpers/set-item-list-id.js +10 -0
- package/lib-es/components/ItemList/helpers/set-item-list-id.js.map +1 -0
- package/lib-es/components/ItemList/helpers/set-param-and-redirect.js +20 -0
- package/lib-es/components/ItemList/helpers/set-param-and-redirect.js.map +1 -0
- package/lib-es/components/ItemList/hooks/index.js +2 -0
- package/lib-es/components/ItemList/hooks/index.js.map +1 -0
- package/lib-es/components/ItemList/hooks/use-item-list-id.js +26 -0
- package/lib-es/components/ItemList/hooks/use-item-list-id.js.map +1 -0
- package/lib-es/components/LazyImage/LazyImage.js +4 -1
- package/lib-es/components/LazyImage/LazyImage.js.map +1 -1
- package/lib-es/components/List/ListBuilder.js +12 -6
- package/lib-es/components/List/ListBuilder.js.map +1 -1
- package/lib-es/components/List/ListFactory.js +33 -9
- package/lib-es/components/List/ListFactory.js.map +1 -1
- package/lib-es/components/List/helpers/has-required-item-list-details.js +20 -0
- package/lib-es/components/List/helpers/has-required-item-list-details.js.map +1 -0
- package/lib-es/components/List/helpers/index.js +1 -0
- package/lib-es/components/List/helpers/index.js.map +1 -1
- package/lib-es/components/Menu/Menu.js +54 -46
- package/lib-es/components/Menu/Menu.js.map +1 -1
- package/lib-es/components/Menu/MenuContext.js +6 -0
- package/lib-es/components/Menu/MenuContext.js.map +1 -0
- package/lib-es/components/MenuItem/MenuItem.js +24 -9
- package/lib-es/components/MenuItem/MenuItem.js.map +1 -1
- package/lib-es/components/SearchContent/SearchContent.js +129 -0
- package/lib-es/components/SearchContent/SearchContent.js.map +1 -0
- package/lib-es/components/SearchContent/SearchContentItems.js +33 -0
- package/lib-es/components/SearchContent/SearchContentItems.js.map +1 -0
- package/lib-es/components/SearchContent/SearchContentResults.js +31 -0
- package/lib-es/components/SearchContent/SearchContentResults.js.map +1 -0
- package/lib-es/components/SearchContent/SearchContentToggleIcon.js +30 -0
- package/lib-es/components/SearchContent/SearchContentToggleIcon.js.map +1 -0
- package/lib-es/components/SearchContent/index.js +1 -205
- package/lib-es/components/SearchContent/index.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
- package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +12 -44
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +77 -15
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js +18 -9
- package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Range.js +19 -6
- package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Select.js +23 -8
- package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
- package/lib-es/components/SearchFilter/components/TextSearch.js +1 -5
- package/lib-es/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-filters-query.js +73 -0
- package/lib-es/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
- package/lib-es/components/SearchFilter/helpers/build-query.js +1 -1
- package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js +15 -9
- package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js +14 -1
- package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-range-value.js +2 -2
- package/lib-es/components/SearchFilter/helpers/get-range-value.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/index.js +2 -1
- package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/parse-filter-value.js +3 -3
- package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
- package/lib-es/components/index.js +10 -1
- package/lib-es/components/index.js.map +1 -1
- package/lib-es/constants/index.js +2 -1
- package/lib-es/constants/index.js.map +1 -1
- package/lib-es/helpers/build-raw-query.js.map +1 -1
- package/lib-es/hooks/helpers/append-gtm-classname.js +1 -0
- package/lib-es/hooks/helpers/append-gtm-classname.js.map +1 -1
- package/package.json +5 -4
- package/src/application/query/index.js +51 -1
- package/src/components/Button.js +27 -5
- package/src/components/Card/CardContainer.js +2 -6
- package/src/components/Card/CardFactory.js +5 -3
- package/src/components/CarouselWrapper.js +2 -2
- package/src/components/Image/ImageRender.js +3 -0
- package/src/components/ItemList/ItemListButton/ItemListButton.js +94 -0
- package/src/components/ItemList/ItemListButton/index.js +3 -0
- package/src/components/ItemList/ItemListCounter/ItemListCounter.js +52 -0
- package/src/components/ItemList/ItemListCounter/index.js +3 -0
- package/src/components/ItemList/ItemListNew/ItemListNew.js +51 -0
- package/src/components/ItemList/ItemListNew/index.js +3 -0
- package/src/components/ItemList/constants.js +5 -0
- package/src/components/ItemList/helpers/get-item-list-data.js +6 -0
- package/src/components/ItemList/helpers/get-item-list-id.js +11 -0
- package/src/components/ItemList/helpers/get-item-list-ids.js +10 -0
- package/src/components/ItemList/helpers/index.js +5 -0
- package/src/components/ItemList/helpers/set-item-list-id.js +9 -0
- package/src/components/ItemList/helpers/set-param-and-redirect.js +20 -0
- package/src/components/ItemList/hooks/index.js +1 -0
- package/src/components/ItemList/hooks/use-item-list-id.js +27 -0
- package/src/components/LazyImage/LazyImage.js +11 -1
- package/src/components/List/ListBuilder.js +10 -5
- package/src/components/List/ListFactory.js +48 -12
- package/src/components/List/helpers/has-required-item-list-details.js +14 -0
- package/src/components/List/helpers/index.js +1 -0
- package/src/components/Menu/Menu.js +61 -54
- package/src/components/Menu/MenuContext.js +5 -0
- package/src/components/MenuItem/MenuItem.js +39 -14
- package/src/components/SearchContent/SearchContent.js +136 -0
- package/src/components/SearchContent/SearchContentItems.js +28 -0
- package/src/components/SearchContent/SearchContentResults.js +27 -0
- package/src/components/SearchContent/SearchContentToggleIcon.js +27 -0
- package/src/components/SearchContent/index.js +1 -217
- package/src/components/SearchFilter/SearchFilter/FiltersList.js +30 -37
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +12 -26
- package/src/components/SearchFilter/SearchFilterContainer.js +72 -16
- package/src/components/SearchFilter/components/Checkbox.js +23 -8
- package/src/components/SearchFilter/components/Range.js +11 -5
- package/src/components/SearchFilter/components/Select.js +18 -11
- package/src/components/SearchFilter/components/TextSearch.js +1 -3
- package/src/components/SearchFilter/helpers/build-filters-query.js +60 -0
- package/src/components/SearchFilter/helpers/build-query.js +3 -1
- package/src/components/SearchFilter/helpers/build-raw-query-stringified.js +17 -11
- package/src/components/SearchFilter/helpers/get-initial-filter-values.js +15 -1
- package/src/components/SearchFilter/helpers/get-range-value.js +2 -2
- package/src/components/SearchFilter/helpers/index.js +3 -1
- package/src/components/SearchFilter/helpers/parse-filter-value.js +3 -3
- package/src/components/index.js +10 -1
- package/src/constants/index.js +2 -0
- package/src/helpers/build-raw-query.js +1 -0
- package/src/hooks/helpers/append-gtm-classname.js +3 -0
- package/tests/unit/src/components/Button.test.js +55 -1
- package/tests/unit/src/components/ItemList/ItemListButton.test.js +175 -0
- package/tests/unit/src/components/ItemList/ItemListCounter.test.js +65 -0
- package/tests/unit/src/components/ItemList/ItemListNew.test.js +164 -0
- package/tests/unit/src/components/ItemList/__snapshots__/ItemListButton.test.js.snap +107 -0
- package/tests/unit/src/components/ItemList/__snapshots__/ItemListCounter.test.js.snap +31 -0
- package/tests/unit/src/components/ItemList/__snapshots__/ItemListNew.test.js.snap +27 -0
- package/tests/unit/src/components/ItemList/helpers/get-item-list-data.test.js +28 -0
- package/tests/unit/src/components/ItemList/helpers/get-item-list-id.test.js +20 -0
- package/tests/unit/src/components/ItemList/helpers/get-item-list-ids.test.js +19 -0
- package/tests/unit/src/components/ItemList/helpers/set-item-list-id.test.js +13 -0
- package/tests/unit/src/components/ItemList/helpers/set-param-and-redirect.test.js +30 -0
- package/tests/unit/src/components/ItemList/hooks/use-item-list-id.test.js +32 -0
- package/tests/unit/src/components/List/helpers/has-required-item-list-details.test.js +30 -0
- package/tests/unit/src/components/Menu/Menu.test.js +9 -3
- package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +12 -11
- package/tests/unit/src/components/MenuItem/MenuItem.test.js +1 -1
- package/tests/unit/src/components/MenuItem/SubMenu.test.js +5 -1
- package/tests/unit/src/components/MenuItem/__snapshots__/MenuItem.test.js.snap +54 -10
- package/tests/unit/src/components/SearchContent/SearchContent.test.js +29 -0
- package/tests/unit/src/components/SearchContent/__snapshots__/SearchContent.test.js.snap +9 -0
- package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +3 -6
- package/tests/unit/src/components/SearchFilter/components/Range.test.js +24 -0
- package/tests/unit/src/components/SearchFilter/components/__snapshots__/Checkbox.test.js.snap +2 -0
- package/tests/unit/src/components/SearchFilter/components/__snapshots__/Range.test.js.snap +3 -3
- package/tests/unit/src/components/SearchFilter/components/__snapshots__/Select.test.js.snap +4 -0
- package/tests/unit/src/components/SearchFilter/helpers/build-query.test.js +2 -2
- package/tests/unit/src/components/SearchFilter/helpers/get-initial-filter-values.test.js +31 -11
- package/tests/unit/src/components/SearchFilter/helpers/parse-filter-value.test.js +1 -1
- package/tests/unit/src/components/__snapshots__/index.test.js.snap +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilter.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfterDesktop","groupAfterMobile","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","filterValues","dispatch","doSubmit","newQuery","handleSubmit","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfterDesktop,\n groupAfterMobile\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n const doSubmit = (newValues = filterValues) => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n dispatch({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n doSubmit();\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n data-testId=\"search-filter-mobile-toggler\"\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n data-testId=\"search-filter-desktop-toggler\"\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div className=\"filter__refine filter__refine--mobile-close\" data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchFilter.js","names":["SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","useState","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","doSubmit","newValues","newQuery","buildQuery","handleSubmit","debounce","useEffect","shouldSearch","type","formClass","classnames","getResponsiveFilterClassnames","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","getInitialFilterValues","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","isDeviceDesktop","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = (newValues = filterValues) => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(null, filters, {});\n setAppliedFilters({ newValues, type: 'reset' });\n doSubmit(newValues);\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n doSubmit();\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n data-testId=\"search-filter-mobile-toggler\"\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n data-testId=\"search-filter-desktop-toggler\"\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div className=\"filter__refine filter__refine--mobile-close\" data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n filterValues: PropTypes.object.isRequired,\n setAppliedFilters: PropTypes.func.isRequired\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/es.object.keys.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.symbol.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.array.filter.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.object.define-property.js");
|
|
16
|
+
|
|
3
17
|
require("core-js/modules/es.array.iterator.js");
|
|
4
18
|
|
|
5
19
|
require("core-js/modules/es.string.iterator.js");
|
|
@@ -8,10 +22,6 @@ require("core-js/modules/es.weak-map.js");
|
|
|
8
22
|
|
|
9
23
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
10
24
|
|
|
11
|
-
require("core-js/modules/es.object.define-property.js");
|
|
12
|
-
|
|
13
|
-
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
14
|
-
|
|
15
25
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
16
26
|
|
|
17
27
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
@@ -21,10 +31,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
21
31
|
});
|
|
22
32
|
exports["default"] = void 0;
|
|
23
33
|
|
|
24
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
25
|
-
|
|
26
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
-
|
|
28
34
|
require("core-js/modules/es.function.name.js");
|
|
29
35
|
|
|
30
36
|
require("core-js/modules/es.array.sort.js");
|
|
@@ -45,6 +51,12 @@ require("core-js/modules/es.date.now.js");
|
|
|
45
51
|
|
|
46
52
|
require("core-js/modules/es.date.to-string.js");
|
|
47
53
|
|
|
54
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
55
|
+
|
|
56
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
57
|
+
|
|
58
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
59
|
+
|
|
48
60
|
var _react = _interopRequireWildcard(require("react"));
|
|
49
61
|
|
|
50
62
|
var _router = require("next/router");
|
|
@@ -73,6 +85,37 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
73
85
|
|
|
74
86
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
75
87
|
|
|
88
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
89
|
+
|
|
90
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
91
|
+
|
|
92
|
+
var reducer = function reducer(state, action) {
|
|
93
|
+
var newValues = action.newValues,
|
|
94
|
+
type = action.type,
|
|
95
|
+
_action$shouldSearch = action.shouldSearch,
|
|
96
|
+
shouldSearch = _action$shouldSearch === void 0 ? true : _action$shouldSearch;
|
|
97
|
+
|
|
98
|
+
switch (type) {
|
|
99
|
+
case 'update':
|
|
100
|
+
return _objectSpread(_objectSpread(_objectSpread({}, state), newValues), {}, {
|
|
101
|
+
shouldSearch: shouldSearch
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
case 'resetSearch':
|
|
105
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
106
|
+
shouldSearch: false
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
case 'reset':
|
|
110
|
+
return _objectSpread(_objectSpread({}, newValues), {}, {
|
|
111
|
+
shouldSearch: false
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
default:
|
|
115
|
+
throw new Error();
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
76
119
|
var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
77
120
|
var entity = _ref.entity,
|
|
78
121
|
url = _ref.url,
|
|
@@ -80,8 +123,12 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
80
123
|
name = _ref.name,
|
|
81
124
|
isCollapsedOnResponsive = _ref.isCollapsedOnResponsive,
|
|
82
125
|
groupAfterMobile = _ref.groupAfterMobile,
|
|
83
|
-
groupAfterDesktop = _ref.groupAfterDesktop
|
|
126
|
+
groupAfterDesktop = _ref.groupAfterDesktop,
|
|
127
|
+
filterBy = _ref.filterBy,
|
|
128
|
+
filterByProperty = _ref.filterByProperty,
|
|
129
|
+
shouldAddFilters = _ref.shouldAddFilters;
|
|
84
130
|
var router = (0, _router.useRouter)();
|
|
131
|
+
var asPath = router.asPath;
|
|
85
132
|
var searchFilterRef = (0, _react.useRef)(null);
|
|
86
133
|
|
|
87
134
|
var _useState = (0, _react.useState)("filter-".concat(name)),
|
|
@@ -94,22 +141,34 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
94
141
|
displaySearchFilter = _useState4[0],
|
|
95
142
|
setDisplaySearchFilter = _useState4[1];
|
|
96
143
|
|
|
97
|
-
var
|
|
144
|
+
var _useState5 = (0, _react.useState)(asPath),
|
|
145
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
146
|
+
urlPath = _useState6[0],
|
|
147
|
+
setUrlPath = _useState6[1]; // used as asPath can take too long to update
|
|
98
148
|
|
|
99
|
-
|
|
149
|
+
|
|
150
|
+
var _parseUrl = (0, _queryString.parseUrl)(urlPath),
|
|
100
151
|
currentUrl = _parseUrl.url,
|
|
101
152
|
_parseUrl$query = _parseUrl.query,
|
|
102
153
|
sort = _parseUrl$query.sort,
|
|
103
154
|
sortby = _parseUrl$query.sortby,
|
|
104
155
|
query = _parseUrl.query;
|
|
105
156
|
|
|
157
|
+
var _useReducer = (0, _react.useReducer)(reducer, (0, _helpers.getInitialFilterValues)(null, filters, query)),
|
|
158
|
+
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
|
|
159
|
+
filterValues = _useReducer2[0],
|
|
160
|
+
dispatch = _useReducer2[1];
|
|
161
|
+
|
|
162
|
+
(0, _react.useEffect)(function () {
|
|
163
|
+
if (asPath) setUrlPath(asPath);
|
|
164
|
+
}, [asPath]);
|
|
165
|
+
var hasUrl = !!url;
|
|
106
166
|
var sortValues = sort && sortby ? (0, _queryString.stringify)({
|
|
107
167
|
sort: sort,
|
|
108
168
|
sortby: sortby
|
|
109
169
|
}) : '';
|
|
110
170
|
var baseQuery = sortValues ? "".concat(currentUrl, "?").concat(sortValues) : currentUrl;
|
|
111
171
|
var action = (0, _query.getSearchPublishedContent)(_constants.RAW_RESULTS);
|
|
112
|
-
var rawQueryStringified = '';
|
|
113
172
|
var checkboxSelectValues = [];
|
|
114
173
|
var rangeValues = [];
|
|
115
174
|
filters.forEach(function (_ref2) {
|
|
@@ -126,7 +185,8 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
126
185
|
var _getEntityData = (0, _helpers2.getEntityData)(entity),
|
|
127
186
|
docType = _getEntityData.docType;
|
|
128
187
|
|
|
129
|
-
|
|
188
|
+
var filtersQuery = shouldAddFilters ? (0, _helpers.buildFiltersQuery)(filterValues || query, filterBy, filterByProperty, rangeValues) : [];
|
|
189
|
+
var rawQueryStringified = (0, _helpers.buildRawQueryStringified)(checkboxSelectValues, rangeValues, docType, filtersQuery);
|
|
130
190
|
|
|
131
191
|
var _useQuery = (0, _client.useQuery)(action, {
|
|
132
192
|
variables: {
|
|
@@ -137,10 +197,8 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
137
197
|
skip: !rawQueryStringified
|
|
138
198
|
}),
|
|
139
199
|
data = _useQuery.data,
|
|
140
|
-
error = _useQuery.error
|
|
141
|
-
loading = _useQuery.loading;
|
|
200
|
+
error = _useQuery.error;
|
|
142
201
|
|
|
143
|
-
if (loading) return null;
|
|
144
202
|
if (error) return error.message;
|
|
145
203
|
if (!filters.length) return null;
|
|
146
204
|
|
|
@@ -150,15 +208,23 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
150
208
|
_ref3$searchPublished = _ref3$searchPublished === void 0 ? {} : _ref3$searchPublished;
|
|
151
209
|
var _ref3$searchPublished2 = _ref3$searchPublished.rawResults;
|
|
152
210
|
_ref3$searchPublished2 = _ref3$searchPublished2 === void 0 ? {} : _ref3$searchPublished2;
|
|
153
|
-
var
|
|
154
|
-
|
|
155
|
-
|
|
211
|
+
var filterData = _ref3$searchPublished2.aggregations;
|
|
212
|
+
|
|
213
|
+
if (filterValues.dataNotSet && filterData) {
|
|
214
|
+
var initialFilterValues = (0, _helpers.getInitialFilterValues)(filterData, filters, query);
|
|
215
|
+
dispatch({
|
|
216
|
+
newValues: initialFilterValues,
|
|
217
|
+
shouldSearch: false,
|
|
218
|
+
type: 'update'
|
|
219
|
+
});
|
|
220
|
+
}
|
|
156
221
|
|
|
157
222
|
var handleSearch = function handleSearch(newQuery) {
|
|
158
223
|
setDisplaySearchFilter(false);
|
|
159
224
|
|
|
160
225
|
if (!newQuery) {
|
|
161
226
|
scrollToFirstList();
|
|
227
|
+
setUrlPath(baseQuery);
|
|
162
228
|
return router.push('/Resolver', baseQuery, {
|
|
163
229
|
shallow: !hasUrl,
|
|
164
230
|
scroll: false
|
|
@@ -169,6 +235,7 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
169
235
|
|
|
170
236
|
var newUrl = (0, _helpers.buildNewQuery)(url, currentUrl, newQuery, sortValues);
|
|
171
237
|
scrollToFirstList();
|
|
238
|
+
setUrlPath(newUrl);
|
|
172
239
|
return router.push('/Resolver', newUrl, {
|
|
173
240
|
shallow: !hasUrl,
|
|
174
241
|
scroll: false
|
|
@@ -192,15 +259,17 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
192
259
|
}
|
|
193
260
|
};
|
|
194
261
|
|
|
262
|
+
if (!filterValues) return '';
|
|
195
263
|
return /*#__PURE__*/_react["default"].createElement(_SearchFilter["default"], {
|
|
196
264
|
key: key,
|
|
265
|
+
setAppliedFilters: dispatch,
|
|
197
266
|
searchFilterRef: searchFilterRef,
|
|
198
267
|
data: filterData,
|
|
199
268
|
filters: filters,
|
|
200
269
|
hasUrl: hasUrl,
|
|
201
270
|
entity: entity,
|
|
202
271
|
handleSearch: handleSearch,
|
|
203
|
-
|
|
272
|
+
filterValues: filterValues,
|
|
204
273
|
name: name,
|
|
205
274
|
isCollapsedOnResponsive: isCollapsedOnResponsive,
|
|
206
275
|
displaySearchFilter: displaySearchFilter,
|
|
@@ -217,7 +286,10 @@ SearchFilterContainer.propTypes = {
|
|
|
217
286
|
name: _propTypes["default"].string.isRequired,
|
|
218
287
|
isCollapsedOnResponsive: _propTypes["default"].bool,
|
|
219
288
|
groupAfterMobile: _propTypes["default"].number,
|
|
220
|
-
groupAfterDesktop: _propTypes["default"].number
|
|
289
|
+
groupAfterDesktop: _propTypes["default"].number,
|
|
290
|
+
filterBy: _propTypes["default"].array,
|
|
291
|
+
filterByProperty: _propTypes["default"].array,
|
|
292
|
+
shouldAddFilters: _propTypes["default"].bool
|
|
221
293
|
};
|
|
222
294
|
SearchFilterContainer.defaultProps = {
|
|
223
295
|
url: null,
|
|
@@ -225,7 +297,10 @@ SearchFilterContainer.defaultProps = {
|
|
|
225
297
|
entity: '',
|
|
226
298
|
isCollapsedOnResponsive: true,
|
|
227
299
|
groupAfterMobile: 0,
|
|
228
|
-
groupAfterDesktop: 0
|
|
300
|
+
groupAfterDesktop: 0,
|
|
301
|
+
filterBy: [],
|
|
302
|
+
filterByProperty: [],
|
|
303
|
+
shouldAddFilters: false
|
|
229
304
|
};
|
|
230
305
|
|
|
231
306
|
var _default = (0, _HOC.withTitle)(SearchFilterContainer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilterContainer.js","names":["SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","asPath","currentUrl","query","sort","sortby","sortValues","baseQuery","action","RAW_RESULTS","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","variables","limit","skip","data","error","loading","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport { buildNewQuery, buildRawQueryStringified, getInitialFilterValues } from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(router.asPath);\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchFilterContainer.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","useRouter","asPath","searchFilterRef","useRef","useState","key","setKey","displaySearchFilter","setDisplaySearchFilter","urlPath","setUrlPath","parseUrl","currentUrl","query","sort","sortby","useReducer","getInitialFilterValues","filterValues","dispatch","useEffect","hasUrl","sortValues","stringify","baseQuery","getSearchPublishedContent","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","getEntityData","docType","filtersQuery","buildFiltersQuery","rawQueryStringified","buildRawQueryStringified","useQuery","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","dataNotSet","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","buildNewQuery","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps","withTitle"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer, useEffect } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch: false };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [urlPath, setUrlPath] = useState(asPath); // used as asPath can take too long to update\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(urlPath);\n const [filterValues, dispatch] = useReducer(\n reducer,\n getInitialFilterValues(null, filters, query)\n );\n\n useEffect(\n () => {\n if (asPath) setUrlPath(asPath);\n },\n [asPath]\n );\n\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty, rangeValues)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (filterValues.dataNotSet && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n setUrlPath(baseQuery);\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n setUrlPath(newUrl);\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
|
|
@@ -29,6 +29,8 @@ require("core-js/modules/es.array.filter.js");
|
|
|
29
29
|
|
|
30
30
|
require("core-js/modules/es.object.to-string.js");
|
|
31
31
|
|
|
32
|
+
require("core-js/modules/es.array.concat.js");
|
|
33
|
+
|
|
32
34
|
require("core-js/modules/es.array.for-each.js");
|
|
33
35
|
|
|
34
36
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
@@ -67,13 +69,16 @@ var Checkbox = function Checkbox(_ref) {
|
|
|
67
69
|
updateFilterValues = _ref.updateFilterValues,
|
|
68
70
|
filterValues = _ref.filterValues,
|
|
69
71
|
label = _ref.label,
|
|
70
|
-
shouldSearch = _ref.shouldSearch
|
|
72
|
+
shouldSearch = _ref.shouldSearch,
|
|
73
|
+
displayFilterCount = _ref.displayFilterCount;
|
|
71
74
|
|
|
72
75
|
var _useState = (0, _react.useState)(null),
|
|
73
76
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
74
77
|
checkboxLimit = _useState2[0],
|
|
75
78
|
setCheckboxLimit = _useState2[1];
|
|
76
79
|
|
|
80
|
+
if (!data[prop]) return null;
|
|
81
|
+
|
|
77
82
|
var handleCheckboxOptions = function handleCheckboxOptions() {
|
|
78
83
|
if (checkboxLimit[prop] === _constants.LIMIT_MIN) {
|
|
79
84
|
setCheckboxLimit((0, _defineProperty2["default"])({}, prop, _constants.LIMIT_MAX));
|
|
@@ -97,16 +102,19 @@ var Checkbox = function Checkbox(_ref) {
|
|
|
97
102
|
|
|
98
103
|
var multiple = [];
|
|
99
104
|
var sortedValues = data[prop].buckets.map(function (_ref2) {
|
|
100
|
-
var key = _ref2.key
|
|
101
|
-
|
|
105
|
+
var key = _ref2.key,
|
|
106
|
+
count = _ref2.doc_count;
|
|
107
|
+
var optionLabel = displayFilterCount ? "".concat(key, " (").concat(count, ")") : key;
|
|
108
|
+
return [key, optionLabel, !count];
|
|
102
109
|
}).filter(Boolean).sort();
|
|
103
110
|
sortedValues.forEach(function (value, i) {
|
|
104
111
|
return i < checkboxLimit[prop] && multiple.push({
|
|
105
|
-
label: (0, _lodash["default"])(value),
|
|
106
|
-
value: value,
|
|
112
|
+
label: (0, _lodash["default"])(value[1]),
|
|
113
|
+
value: value[0],
|
|
107
114
|
name: prop,
|
|
108
|
-
checked: checkboxQueryParams.includes(value),
|
|
109
|
-
id: value
|
|
115
|
+
checked: checkboxQueryParams.includes(value[0]),
|
|
116
|
+
id: value[0],
|
|
117
|
+
disabled: value[2]
|
|
110
118
|
});
|
|
111
119
|
});
|
|
112
120
|
var shouldDisplayMore = !checkboxLimit || checkboxLimit[prop] === _constants.LIMIT_MIN;
|
|
@@ -141,11 +149,13 @@ Checkbox.propTypes = {
|
|
|
141
149
|
filterValues: _propTypes["default"].object.isRequired,
|
|
142
150
|
updateFilterValues: _propTypes["default"].func.isRequired,
|
|
143
151
|
shouldSearch: _propTypes["default"].bool,
|
|
144
|
-
label: _propTypes["default"].string
|
|
152
|
+
label: _propTypes["default"].string,
|
|
153
|
+
displayFilterCount: _propTypes["default"].bool
|
|
145
154
|
};
|
|
146
155
|
Checkbox.defaultProps = {
|
|
147
156
|
shouldSearch: false,
|
|
148
|
-
label: ''
|
|
157
|
+
label: '',
|
|
158
|
+
displayFilterCount: false
|
|
149
159
|
};
|
|
150
160
|
|
|
151
161
|
var _default = (0, _HOC.withTitle)(Checkbox);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","LIMIT_MIN","LIMIT_MAX","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","shouldDisplayMore","eData","newCheckboxValues","length","MORE","LESS","propTypes","PropTypes","object","isRequired","string","func","bool","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Checkbox.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport upperFirst from 'lodash.upperfirst';\nimport { Checkboxes } from '@blaze-react/checkboxes';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { withTitle } from '../../../HOC';\nimport { decodeValue } from '../helpers';\nimport { LIMIT_MIN, LIMIT_MAX, MORE, LESS } from '../constants';\n\nconst Checkbox = ({
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","displayFilterCount","useState","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","LIMIT_MIN","LIMIT_MAX","checkboxQueryParams","decodeValue","map","val","multiple","sortedValues","buckets","key","count","doc_count","optionLabel","filter","Boolean","sort","forEach","value","i","push","upperFirst","name","checked","includes","id","disabled","shouldDisplayMore","eData","newCheckboxValues","length","MORE","LESS","propTypes","PropTypes","object","isRequired","string","func","bool","defaultProps","withTitle"],"sources":["../../../../src/components/SearchFilter/components/Checkbox.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport upperFirst from 'lodash.upperfirst';\nimport { Checkboxes } from '@blaze-react/checkboxes';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { withTitle } from '../../../HOC';\nimport { decodeValue } from '../helpers';\nimport { LIMIT_MIN, LIMIT_MAX, MORE, LESS } from '../constants';\n\nconst Checkbox = ({\n data,\n prop,\n updateFilterValues,\n filterValues,\n label,\n shouldSearch,\n displayFilterCount\n}) => {\n const [checkboxLimit, setCheckboxLimit] = useState(null);\n if (!data[prop]) return null;\n\n const handleCheckboxOptions = () => {\n if (checkboxLimit[prop] === LIMIT_MIN) {\n setCheckboxLimit({ [prop]: LIMIT_MAX });\n } else {\n setCheckboxLimit({ [prop]: LIMIT_MIN });\n }\n };\n\n if (!checkboxLimit) {\n setCheckboxLimit({ [prop]: LIMIT_MIN });\n }\n\n if (!checkboxLimit) return null;\n\n let checkboxQueryParams = [];\n\n if (filterValues && filterValues[prop]) {\n checkboxQueryParams =\n typeof filterValues[prop] === 'string'\n ? [decodeValue(filterValues[prop])]\n : filterValues[prop].map(val => decodeValue(val));\n }\n const multiple = [];\n\n const sortedValues = data[prop].buckets\n .map(({ key, doc_count: count }) => {\n const optionLabel = displayFilterCount ? `${key} (${count})` : key;\n return [key, optionLabel, !count];\n })\n .filter(Boolean)\n .sort();\n\n sortedValues.forEach(\n (value, i) =>\n i < checkboxLimit[prop] &&\n multiple.push({\n label: upperFirst(value[1]),\n value: value[0],\n name: prop,\n checked: checkboxQueryParams.includes(value[0]),\n id: value[0],\n disabled: value[2]\n })\n );\n\n const shouldDisplayMore = !checkboxLimit || checkboxLimit[prop] === LIMIT_MIN;\n\n return (\n <>\n {label ? <p>{label}</p> : ''}\n <Checkboxes\n className=\"form-checkbox\"\n options={multiple}\n onChange={({ data: eData }) => {\n const newCheckboxValues = eData\n .filter(({ checked }) => checked)\n .map(({ value }) => value);\n updateFilterValues({ [prop]: newCheckboxValues }, shouldSearch);\n }}\n />\n {data[prop].buckets.length > LIMIT_MIN && (\n <div role=\"button\" className=\"see-more\" onClick={handleCheckboxOptions}>\n {shouldDisplayMore ? (\n <>\n <i>\n <FaChevronDown className=\"inline-icon\" />\n </i>\n {` See ${MORE}`}\n </>\n ) : (\n <>\n <i>\n <FaChevronUp className=\"inline-icon\" />\n </i>\n {` See ${LESS}`}\n </>\n )}\n </div>\n )}\n </>\n );\n};\n\nCheckbox.propTypes = {\n data: PropTypes.object.isRequired,\n prop: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n shouldSearch: PropTypes.bool,\n label: PropTypes.string,\n displayFilterCount: PropTypes.bool\n};\n\nCheckbox.defaultProps = {\n shouldSearch: false,\n label: '',\n displayFilterCount: false\n};\n\nexport default withTitle(Checkbox);\n"],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@ require("core-js/modules/es.object.to-string.js");
|
|
|
27
27
|
|
|
28
28
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
29
29
|
|
|
30
|
+
require("core-js/modules/es.array.concat.js");
|
|
31
|
+
|
|
30
32
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
33
|
|
|
32
34
|
var _react = _interopRequireDefault(require("react"));
|
|
@@ -60,6 +62,7 @@ var Range = function Range(_ref) {
|
|
|
60
62
|
label = _ref.label,
|
|
61
63
|
entity = _ref.entity,
|
|
62
64
|
propsToDisplay = _ref.propsToDisplay,
|
|
65
|
+
dataAggregations = _ref.dataAggregations,
|
|
63
66
|
updateFilterValues = _ref.updateFilterValues,
|
|
64
67
|
filterValues = _ref.filterValues,
|
|
65
68
|
shouldSearch = _ref.shouldSearch;
|
|
@@ -82,10 +85,23 @@ var Range = function Range(_ref) {
|
|
|
82
85
|
getEntitySchema = _useGetSingleEntitySc3 === void 0 ? {} : _useGetSingleEntitySc3,
|
|
83
86
|
loading = _useGetSingleEntitySc.loading;
|
|
84
87
|
if (loading || !rangeOption || !rangeValue) return '';
|
|
85
|
-
var options = (0, _helpers.getSelectOptions)(getEntitySchema, propsToDisplay);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
+
var options = (0, _helpers.getSelectOptions)(getEntitySchema, propsToDisplay); // get range from aggregations so it updates
|
|
89
|
+
|
|
90
|
+
var _calculateMinMax = (0, _helpers.calculateMinMax)(dataAggregations[rangeOption], rangeInterval),
|
|
91
|
+
min = _calculateMinMax.min,
|
|
92
|
+
max = _calculateMinMax.max;
|
|
93
|
+
|
|
88
94
|
var shouldShowRange = rangeOption && min !== max;
|
|
95
|
+
var minValue = rangeValue.minValue < min ? min : rangeValue.minValue;
|
|
96
|
+
var maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;
|
|
97
|
+
|
|
98
|
+
var valueToUse = _objectSpread(_objectSpread({}, rangeValue), {}, {
|
|
99
|
+
min: min,
|
|
100
|
+
max: max,
|
|
101
|
+
minValue: minValue,
|
|
102
|
+
maxValue: maxValue
|
|
103
|
+
});
|
|
104
|
+
|
|
89
105
|
var handleChange = (0, _lodash["default"])(function (option, value) {
|
|
90
106
|
updateFilterValues((0, _defineProperty2["default"])({}, option, _objectSpread(_objectSpread({}, value), {}, {
|
|
91
107
|
selectedOption: rangeOption
|
|
@@ -111,10 +127,10 @@ var Range = function Range(_ref) {
|
|
|
111
127
|
updateFilterValues(updatedOptions, false);
|
|
112
128
|
}
|
|
113
129
|
})), shouldShowRange && /*#__PURE__*/_react["default"].createElement(_rangeFilter["default"], {
|
|
114
|
-
key: rangeOption,
|
|
130
|
+
key: "".concat(rangeOption, "-").concat(minValue, "-").concat(maxValue),
|
|
115
131
|
name: rangeOption,
|
|
116
132
|
label: hasMultipleOptions ? '' : label,
|
|
117
|
-
value:
|
|
133
|
+
value: valueToUse,
|
|
118
134
|
id: rangeOption,
|
|
119
135
|
onChange: function onChange(_ref3) {
|
|
120
136
|
var value = _ref3.value;
|
|
@@ -130,7 +146,8 @@ Range.propTypes = {
|
|
|
130
146
|
updateFilterValues: _propTypes["default"].func.isRequired,
|
|
131
147
|
shouldSearch: _propTypes["default"].bool,
|
|
132
148
|
rangeInterval: _propTypes["default"].number,
|
|
133
|
-
label: _propTypes["default"].string
|
|
149
|
+
label: _propTypes["default"].string,
|
|
150
|
+
dataAggregations: _propTypes["default"].object.isRequired
|
|
134
151
|
};
|
|
135
152
|
Range.defaultProps = {
|
|
136
153
|
shouldSearch: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Range.js","names":["Range","rangeInterval","label","entity","propsToDisplay","updateFilterValues","filterValues","shouldSearch","router","debounceAmount","asPath","query","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","shouldShowRange","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","PropTypes","array","isRequired","string","object","func","bool","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport RangeFilter from '@blaze-react/range-filter';\nimport { useRouter } from 'next/router';\nimport Select from '@blaze-react/select';\nimport { parseUrl } from 'query-string';\nimport { useGetSingleEntitySchema } from '../../../hooks';\nimport { withTitle } from '../../../HOC';\nimport { getSelectOptions, getIntersectedProp, getRangeValue } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n updateFilterValues,\n filterValues,\n shouldSearch\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 100;\n const { query } = parseUrl(decodeValue(router.asPath));\n const hasMultipleOptions = propsToDisplay.length > 1;\n const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];\n const rangeOption =\n (filterValues[initialRangeOption] && filterValues[initialRangeOption].selectedOption) ||\n initialRangeOption;\n const rangeValue = filterValues[rangeOption];\n\n const { data: { getEntitySchema = {} } = {}, loading } = useGetSingleEntitySchema(\n entity,\n !hasMultipleOptions\n );\n\n if (loading || !rangeOption || !rangeValue) return '';\n\n const options = getSelectOptions(getEntitySchema, propsToDisplay);\n const { min, max } =
|
|
1
|
+
{"version":3,"file":"Range.js","names":["Range","rangeInterval","label","entity","propsToDisplay","dataAggregations","updateFilterValues","filterValues","shouldSearch","router","useRouter","debounceAmount","parseUrl","decodeValue","asPath","query","hasMultipleOptions","length","initialRangeOption","getIntersectedProp","rangeOption","selectedOption","rangeValue","useGetSingleEntitySchema","data","getEntitySchema","loading","options","getSelectOptions","calculateMinMax","min","max","shouldShowRange","minValue","maxValue","valueToUse","handleChange","debounce","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","getRangeValue","propTypes","PropTypes","array","isRequired","string","object","func","bool","number","defaultProps","withTitle"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport RangeFilter from '@blaze-react/range-filter';\nimport { useRouter } from 'next/router';\nimport Select from '@blaze-react/select';\nimport { parseUrl } from 'query-string';\nimport { useGetSingleEntitySchema } from '../../../hooks';\nimport { withTitle } from '../../../HOC';\nimport { getSelectOptions, getIntersectedProp, getRangeValue, calculateMinMax } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n dataAggregations,\n updateFilterValues,\n filterValues,\n shouldSearch\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 100;\n const { query } = parseUrl(decodeValue(router.asPath));\n const hasMultipleOptions = propsToDisplay.length > 1;\n const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];\n const rangeOption =\n (filterValues[initialRangeOption] && filterValues[initialRangeOption].selectedOption) ||\n initialRangeOption;\n const rangeValue = filterValues[rangeOption];\n\n const { data: { getEntitySchema = {} } = {}, loading } = useGetSingleEntitySchema(\n entity,\n !hasMultipleOptions\n );\n\n if (loading || !rangeOption || !rangeValue) return '';\n\n const options = getSelectOptions(getEntitySchema, propsToDisplay);\n // get range from aggregations so it updates\n const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);\n const shouldShowRange = rangeOption && min !== max;\n const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;\n const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;\n const valueToUse = { ...rangeValue, min, max, minValue, maxValue };\n\n const handleChange = debounce((option, value) => {\n updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, shouldSearch);\n }, debounceAmount);\n\n return (\n <>\n {hasMultipleOptions && (\n <>\n <label>{label}</label>\n <Select\n value={rangeOption}\n id={rangeOption}\n options={options}\n required\n onChange={({ value }) => {\n const updatedOptions = {};\n propsToDisplay.forEach(prop => {\n const { min: eMin, max: eMax } = filterValues[prop];\n const initValue = getRangeValue(null, rangeInterval, eMin, eMax);\n updatedOptions[prop] = { ...initValue, selectedOption: value };\n });\n\n updateFilterValues(updatedOptions, false);\n }}\n />\n </>\n )}\n {shouldShowRange && (\n <RangeFilter\n key={`${rangeOption}-${minValue}-${maxValue}`}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={valueToUse}\n id={rangeOption}\n onChange={({ value }) => {\n handleChange(rangeOption, value);\n }}\n />\n )}\n </>\n );\n};\n\nRange.propTypes = {\n propsToDisplay: PropTypes.array.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n shouldSearch: PropTypes.bool,\n rangeInterval: PropTypes.number,\n label: PropTypes.string,\n dataAggregations: PropTypes.object.isRequired\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":"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"}
|