@blaze-cms/react-page-builder 0.124.0-alpha.39 → 0.124.0-alpha.42
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 +27 -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.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.map +1 -1
- 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 +2 -2
- 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.map +1 -1
- package/lib/components/Image/Lightbox/Lightbox.js.map +1 -1
- package/lib/components/ItemList/ItemListButton/ItemListButton.js.map +1 -1
- package/lib/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -1
- package/lib/components/ItemList/ItemListNew/ItemListNew.js.map +1 -1
- package/lib/components/ItemList/helpers/get-item-list-ids.js.map +1 -1
- package/lib/components/ItemList/hooks/use-item-list-id.js.map +1 -1
- 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.map +1 -1
- package/lib/components/LazyImage/index.js.map +1 -1
- package/lib/components/List/ListBuilder.js.map +1 -1
- 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.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.map +1 -1
- package/lib/components/Menu/MenuContext.js.map +1 -1
- 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.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/CloseMobileForm.js.map +1 -1
- 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.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib/components/SearchFilter/components/Range.js.map +1 -1
- package/lib/components/SearchFilter/components/Select.js.map +1 -1
- package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-query.js +1 -1
- package/lib/components/SearchFilter/helpers/build-query.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.map +1 -1
- package/lib/components/SearchFilter/helpers/get-intersected-prop.js.map +1 -1
- 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/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.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/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/components/Button.js +18 -6
- package/lib-es/components/Button.js.map +1 -1
- package/lib-es/components/Carousel/CarouselRender/CarouselRender.js +2 -2
- package/lib-es/components/Carousel/CarouselRender/CarouselRender.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/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/parse-filter-value.js +3 -3
- package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Button.js +27 -5
- package/src/components/Carousel/CarouselRender/CarouselRender.js +2 -2
- package/src/components/CarouselWrapper.js +2 -2
- package/src/components/SearchFilter/helpers/build-query.js +3 -1
- package/src/components/SearchFilter/helpers/parse-filter-value.js +3 -3
- package/tests/unit/src/components/Button.test.js +55 -1
- package/tests/unit/src/components/Carousel/__snapshots__/Carousel.test.js.snap +2 -2
- package/tests/unit/src/components/SearchFilter/helpers/build-query.test.js +2 -2
- package/tests/unit/src/components/SearchFilter/helpers/parse-filter-value.test.js +1 -1
|
@@ -1 +1 @@
|
|
|
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(data, filters, {});\n setAppliedFilters({ newValues, type: 'reset' });\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
|
+
{"version":3,"file":"SearchFilter.js","names":["SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","doSubmit","newValues","newQuery","handleSubmit","shouldSearch","type","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 } 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(data, filters, {});\n setAppliedFilters({ newValues, type: 'reset' });\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 +1 @@
|
|
|
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","parseUrl","currentUrl","query","sort","sortby","useReducer","filterValues","dispatch","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","initialFilterValues","getInitialFilterValues","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 } 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 };\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 {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const [filterValues, dispatch] = useReducer(reducer, query);\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)\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 && 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 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 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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"}
|
|
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","asPath","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","currentUrl","query","sort","sortby","filterValues","dispatch","hasUrl","sortValues","baseQuery","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","filtersQuery","rawQueryStringified","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","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, useReducer } 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 };\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 {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const [filterValues, dispatch] = useReducer(reducer, query);\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)\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 && 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 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 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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","displayFilterCount","
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","displayFilterCount","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","LIMIT_MIN","LIMIT_MAX","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","count","doc_count","optionLabel","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","disabled","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 = ({\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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Range.js","names":["Range","rangeInterval","label","entity","propsToDisplay","updateFilterValues","filterValues","shouldSearch","router","
|
|
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 } = rangeValue;\n const shouldShowRange = rangeOption && min !== max;\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}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={rangeValue}\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};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,KAAK,GAAG,SAARA,KAAQ,OAQR;EAAA,IAPJC,aAOI,QAPJA,aAOI;EAAA,IANJC,KAMI,QANJA,KAMI;EAAA,IALJC,MAKI,QALJA,MAKI;EAAA,IAJJC,cAII,QAJJA,cAII;EAAA,IAHJC,kBAGI,QAHJA,kBAGI;EAAA,IAFJC,YAEI,QAFJA,YAEI;EAAA,IADJC,YACI,QADJA,YACI;EACJ,IAAMC,MAAM,GAAG,wBAAf;EACA,IAAMC,cAAc,GAAGF,YAAY,GAAG,IAAH,GAAU,GAA7C;;EACA,gBAAkB,2BAAS,+BAAYC,MAAM,CAACE,MAAnB,CAAT,CAAlB;EAAA,IAAQC,KAAR,aAAQA,KAAR;;EACA,IAAMC,kBAAkB,GAAGR,cAAc,CAACS,MAAf,GAAwB,CAAnD;EACA,IAAMC,kBAAkB,GAAG,iCAAmBH,KAAnB,EAA0BP,cAA1B,KAA6CA,cAAc,CAAC,CAAD,CAAtF;EACA,IAAMW,WAAW,GACdT,YAAY,CAACQ,kBAAD,CAAZ,IAAoCR,YAAY,CAACQ,kBAAD,CAAZ,CAAiCE,cAAtE,IACAF,kBAFF;EAGA,IAAMG,UAAU,GAAGX,YAAY,CAACS,WAAD,CAA/B;;EAEA,4BAAyD,qCACvDZ,MADuD,EAEvD,CAACS,kBAFsD,CAAzD;EAAA,mDAAQM,IAAR;;EAAA,6DAAyC,EAAzC;EAAA,oDAAgBC,eAAhB;EAAA,IAAgBA,eAAhB,uCAAkC,EAAlC;EAAA,IAA6CC,OAA7C,yBAA6CA,OAA7C;EAKA,IAAIA,OAAO,IAAI,CAACL,WAAZ,IAA2B,CAACE,UAAhC,EAA4C,OAAO,EAAP;EAE5C,IAAMI,OAAO,GAAG,+BAAiBF,eAAjB,EAAkCf,cAAlC,CAAhB;EACA,IAAQkB,GAAR,GAAqBL,UAArB,CAAQK,GAAR;EAAA,IAAaC,GAAb,GAAqBN,UAArB,CAAaM,GAAb;EACA,IAAMC,eAAe,GAAGT,WAAW,IAAIO,GAAG,KAAKC,GAA/C;EAEA,IAAME,YAAY,GAAG,wBAAS,UAACC,MAAD,EAASC,KAAT,EAAmB;IAC/CtB,kBAAkB,sCAAIqB,MAAJ,kCAAkBC,KAAlB;MAAyBX,cAAc,EAAED;IAAzC,KAA0DR,YAA1D,CAAlB;EACD,CAFoB,EAElBE,cAFkB,CAArB;EAIA,oBACE,kEACGG,kBAAkB,iBACjB,+EACE,+CAAQV,KAAR,CADF,eAEE,gCAAC,kBAAD;IACE,KAAK,EAAEa,WADT;IAEE,EAAE,EAAEA,WAFN;IAGE,OAAO,EAAEM,OAHX;IAIE,QAAQ,MAJV;IAKE,QAAQ,EAAE,yBAAe;MAAA,IAAZM,KAAY,SAAZA,KAAY;MACvB,IAAMC,cAAc,GAAG,EAAvB;MACAxB,cAAc,CAACyB,OAAf,CAAuB,UAAAC,IAAI,EAAI;QAC7B,yBAAiCxB,YAAY,CAACwB,IAAD,CAA7C;QAAA,IAAaC,IAAb,sBAAQT,GAAR;QAAA,IAAwBU,IAAxB,sBAAmBT,GAAnB;QACA,IAAMU,SAAS,GAAG,4BAAc,IAAd,EAAoBhC,aAApB,EAAmC8B,IAAnC,EAAyCC,IAAzC,CAAlB;QACAJ,cAAc,CAACE,IAAD,CAAd,mCAA4BG,SAA5B;UAAuCjB,cAAc,EAAEW;QAAvD;MACD,CAJD;MAMAtB,kBAAkB,CAACuB,cAAD,EAAiB,KAAjB,CAAlB;IACD;EAdH,EAFF,CAFJ,EAsBGJ,eAAe,iBACd,gCAAC,uBAAD;IACE,GAAG,EAAET,WADP;IAEE,IAAI,EAAEA,WAFR;IAGE,KAAK,EAAEH,kBAAkB,GAAG,EAAH,GAAQV,KAHnC;IAIE,KAAK,EAAEe,UAJT;IAKE,EAAE,EAAEF,WALN;IAME,QAAQ,EAAE,yBAAe;MAAA,IAAZY,KAAY,SAAZA,KAAY;MACvBF,YAAY,CAACV,WAAD,EAAcY,KAAd,CAAZ;IACD;EARH,EAvBJ,CADF;AAqCD,CAvED;;AAyEA3B,KAAK,CAACkC,SAAN,GAAkB;EAChB9B,cAAc,EAAE+B,sBAAUC,KAAV,CAAgBC,UADhB;EAEhBlC,MAAM,EAAEgC,sBAAUG,MAAV,CAAiBD,UAFT;EAGhB/B,YAAY,EAAE6B,sBAAUI,MAAV,CAAiBF,UAHf;EAIhBhC,kBAAkB,EAAE8B,sBAAUK,IAAV,CAAeH,UAJnB;EAKhB9B,YAAY,EAAE4B,sBAAUM,IALR;EAMhBxC,aAAa,EAAEkC,sBAAUO,MANT;EAOhBxC,KAAK,EAAEiC,sBAAUG;AAPD,CAAlB;AAUAtC,KAAK,CAAC2C,YAAN,GAAqB;EACnBpC,YAAY,EAAE,KADK;EAEnBN,aAAa,EAAE,CAFI;EAGnBC,KAAK,EAAE;AAHY,CAArB;;eAMe,oBAAUF,KAAV,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["SelectFilter","data","label","prop","updateFilterValues","filterValues","shouldSearch","displayLabelAsPlaceholder","displayFilterCount","filterValue","disabledOptions","buckets","options","map","key","count","doc_count","push","optionLabel","filter","Boolean","sort","labelText","labelToUse","defaultTextValue","DEFAULT_OPTION","value","valueToUse","propTypes","PropTypes","object","isRequired","string","func","bool","defaultProps"
|
|
1
|
+
{"version":3,"file":"Select.js","names":["SelectFilter","data","label","prop","updateFilterValues","filterValues","shouldSearch","displayLabelAsPlaceholder","displayFilterCount","filterValue","disabledOptions","buckets","options","map","key","count","doc_count","push","optionLabel","filter","Boolean","sort","labelText","labelToUse","defaultTextValue","DEFAULT_OPTION","value","valueToUse","propTypes","PropTypes","object","isRequired","string","func","bool","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Select.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Select from '@blaze-react/select';\nimport { withTitle } from '../../../HOC';\nimport { DEFAULT_OPTION } from '../constants';\n\nconst SelectFilter = ({\n data,\n label,\n prop,\n updateFilterValues,\n filterValues,\n shouldSearch,\n displayLabelAsPlaceholder,\n displayFilterCount\n}) => {\n const filterValue = filterValues[prop] || '';\n const disabledOptions = [];\n const { buckets = [] } = data[prop] || {};\n const options = buckets\n .map(({ key, doc_count: count }) => {\n if (!count) disabledOptions.push(key);\n const optionLabel = displayFilterCount ? `${key} (${count})` : key;\n return [key, optionLabel];\n })\n .filter(Boolean)\n .sort();\n\n const labelText = label || prop;\n let labelToUse = labelText;\n let defaultTextValue = DEFAULT_OPTION;\n if (displayLabelAsPlaceholder) {\n defaultTextValue = labelToUse;\n labelToUse = null;\n }\n\n return (\n <Select\n label={labelToUse}\n value={filterValue}\n id={prop}\n data-testid={`filter-${prop}`}\n options={options}\n defaultTextValue={defaultTextValue}\n onChange={({ value }) => {\n let valueToUse = value;\n if (value === defaultTextValue) valueToUse = '';\n updateFilterValues({ [prop]: valueToUse }, shouldSearch);\n }}\n disabled={disabledOptions}\n />\n );\n};\n\nSelectFilter.propTypes = {\n data: PropTypes.object.isRequired,\n prop: PropTypes.string.isRequired,\n filterValues: PropTypes.object,\n updateFilterValues: PropTypes.func.isRequired,\n shouldSearch: PropTypes.bool,\n label: PropTypes.string,\n displayLabelAsPlaceholder: PropTypes.bool,\n displayFilterCount: PropTypes.bool\n};\n\nSelectFilter.defaultProps = {\n filterValues: {},\n shouldSearch: false,\n label: '',\n displayLabelAsPlaceholder: false,\n displayFilterCount: false\n};\n\nexport default withTitle(SelectFilter);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OASf;EAAA,IARJC,IAQI,QARJA,IAQI;EAAA,IAPJC,KAOI,QAPJA,KAOI;EAAA,IANJC,IAMI,QANJA,IAMI;EAAA,IALJC,kBAKI,QALJA,kBAKI;EAAA,IAJJC,YAII,QAJJA,YAII;EAAA,IAHJC,YAGI,QAHJA,YAGI;EAAA,IAFJC,yBAEI,QAFJA,yBAEI;EAAA,IADJC,kBACI,QADJA,kBACI;EACJ,IAAMC,WAAW,GAAGJ,YAAY,CAACF,IAAD,CAAZ,IAAsB,EAA1C;EACA,IAAMO,eAAe,GAAG,EAAxB;;EACA,YAAyBT,IAAI,CAACE,IAAD,CAAJ,IAAc,EAAvC;EAAA,0BAAQQ,OAAR;EAAA,IAAQA,OAAR,8BAAkB,EAAlB;;EACA,IAAMC,OAAO,GAAGD,OAAO,CACpBE,GADa,CACT,iBAA+B;IAAA,IAA5BC,GAA4B,SAA5BA,GAA4B;IAAA,IAAZC,KAAY,SAAvBC,SAAuB;IAClC,IAAI,CAACD,KAAL,EAAYL,eAAe,CAACO,IAAhB,CAAqBH,GAArB;IACZ,IAAMI,WAAW,GAAGV,kBAAkB,aAAMM,GAAN,eAAcC,KAAd,SAAyBD,GAA/D;IACA,OAAO,CAACA,GAAD,EAAMI,WAAN,CAAP;EACD,CALa,EAMbC,MANa,CAMNC,OANM,EAObC,IAPa,EAAhB;EASA,IAAMC,SAAS,GAAGpB,KAAK,IAAIC,IAA3B;EACA,IAAIoB,UAAU,GAAGD,SAAjB;EACA,IAAIE,gBAAgB,GAAGC,yBAAvB;;EACA,IAAIlB,yBAAJ,EAA+B;IAC7BiB,gBAAgB,GAAGD,UAAnB;IACAA,UAAU,GAAG,IAAb;EACD;;EAED,oBACE,gCAAC,kBAAD;IACE,KAAK,EAAEA,UADT;IAEE,KAAK,EAAEd,WAFT;IAGE,EAAE,EAAEN,IAHN;IAIE,gCAAuBA,IAAvB,CAJF;IAKE,OAAO,EAAES,OALX;IAME,gBAAgB,EAAEY,gBANpB;IAOE,QAAQ,EAAE,yBAAe;MAAA,IAAZE,KAAY,SAAZA,KAAY;MACvB,IAAIC,UAAU,GAAGD,KAAjB;MACA,IAAIA,KAAK,KAAKF,gBAAd,EAAgCG,UAAU,GAAG,EAAb;MAChCvB,kBAAkB,sCAAID,IAAJ,EAAWwB,UAAX,GAAyBrB,YAAzB,CAAlB;IACD,CAXH;IAYE,QAAQ,EAAEI;EAZZ,EADF;AAgBD,CA9CD;;AAgDAV,YAAY,CAAC4B,SAAb,GAAyB;EACvB3B,IAAI,EAAE4B,sBAAUC,MAAV,CAAiBC,UADA;EAEvB5B,IAAI,EAAE0B,sBAAUG,MAAV,CAAiBD,UAFA;EAGvB1B,YAAY,EAAEwB,sBAAUC,MAHD;EAIvB1B,kBAAkB,EAAEyB,sBAAUI,IAAV,CAAeF,UAJZ;EAKvBzB,YAAY,EAAEuB,sBAAUK,IALD;EAMvBhC,KAAK,EAAE2B,sBAAUG,MANM;EAOvBzB,yBAAyB,EAAEsB,sBAAUK,IAPd;EAQvB1B,kBAAkB,EAAEqB,sBAAUK;AARP,CAAzB;AAWAlC,YAAY,CAACmC,YAAb,GAA4B;EAC1B9B,YAAY,EAAE,EADY;EAE1BC,YAAY,EAAE,KAFY;EAG1BJ,KAAK,EAAE,EAHmB;EAI1BK,yBAAyB,EAAE,KAJD;EAK1BC,kBAAkB,EAAE;AALM,CAA5B;;eAQe,oBAAUR,YAAV,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextSearch.js","names":["TextSearch","label","searchValue","updateFilterValues","SEARCH_TERM","eValue","value","e","preventDefault","propTypes","PropTypes","string","isRequired","func","defaultProps"
|
|
1
|
+
{"version":3,"file":"TextSearch.js","names":["TextSearch","label","searchValue","updateFilterValues","SEARCH_TERM","eValue","value","e","preventDefault","propTypes","PropTypes","string","isRequired","func","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/TextSearch.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Input from '@blaze-react/input';\nimport { MdSearch } from 'react-icons/md';\nimport { withTitle } from '../../../HOC';\nimport { SEARCH_TERM } from '../constants';\n\nconst TextSearch = ({ label, searchValue, updateFilterValues }) => (\n <div className=\"search\">\n <div className=\"search__wrapper\">\n <div className=\"form-field form-field--input form-field--search\">\n <Input\n id={SEARCH_TERM}\n value={searchValue}\n placeholder={label || 'Search'}\n onChange={({ value: eValue }) => {\n updateFilterValues({ [SEARCH_TERM]: eValue }, false);\n }}\n />\n </div>\n <button\n type=\"button\"\n className=\"icon-button icon-button--search\"\n onClick={e => {\n e.preventDefault();\n updateFilterValues({ [SEARCH_TERM]: searchValue }, true);\n }}>\n <i>\n <MdSearch />\n </i>\n </button>\n </div>\n </div>\n);\n\nTextSearch.propTypes = {\n searchValue: PropTypes.string.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n label: PropTypes.string\n};\n\nTextSearch.defaultProps = {\n label: ''\n};\n\nexport default withTitle(TextSearch);\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa;EAAA,IAAGC,KAAH,QAAGA,KAAH;EAAA,IAAUC,WAAV,QAAUA,WAAV;EAAA,IAAuBC,kBAAvB,QAAuBA,kBAAvB;EAAA,oBACjB;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,iBAAD;IACE,EAAE,EAAEC,sBADN;IAEE,KAAK,EAAEF,WAFT;IAGE,WAAW,EAAED,KAAK,IAAI,QAHxB;IAIE,QAAQ,EAAE,yBAAuB;MAAA,IAAbI,MAAa,SAApBC,KAAoB;MAC/BH,kBAAkB,sCAAIC,sBAAJ,EAAkBC,MAAlB,GAA4B,KAA5B,CAAlB;IACD;EANH,EADF,CADF,eAWE;IACE,IAAI,EAAC,QADP;IAEE,SAAS,EAAC,iCAFZ;IAGE,OAAO,EAAE,iBAAAE,CAAC,EAAI;MACZA,CAAC,CAACC,cAAF;MACAL,kBAAkB,sCAAIC,sBAAJ,EAAkBF,WAAlB,GAAiC,IAAjC,CAAlB;IACD;EANH,gBAOE,wDACE,gCAAC,YAAD,OADF,CAPF,CAXF,CADF,CADiB;AAAA,CAAnB;;AA4BAF,UAAU,CAACS,SAAX,GAAuB;EACrBP,WAAW,EAAEQ,sBAAUC,MAAV,CAAiBC,UADT;EAErBT,kBAAkB,EAAEO,sBAAUG,IAAV,CAAeD,UAFd;EAGrBX,KAAK,EAAES,sBAAUC;AAHI,CAAvB;AAMAX,UAAU,CAACc,YAAX,GAA0B;EACxBb,KAAK,EAAE;AADiB,CAA1B;;eAIe,oBAAUD,UAAV,C"}
|
|
@@ -27,7 +27,7 @@ var _parseFilterValue = _interopRequireDefault(require("./parse-filter-value"));
|
|
|
27
27
|
|
|
28
28
|
var buildQuery = function buildQuery(filterValues, filters) {
|
|
29
29
|
var newQuery = [];
|
|
30
|
-
var searchValue = filterValues[_constants.SEARCH_TERM];
|
|
30
|
+
var searchValue = filterValues[_constants.SEARCH_TERM] ? encodeURIComponent(filterValues[_constants.SEARCH_TERM]) : '';
|
|
31
31
|
if (searchValue) newQuery.push("".concat(_constants.SEARCH_TERM, "=").concat(searchValue));
|
|
32
32
|
filters.forEach(function (_ref) {
|
|
33
33
|
var propsToDisplay = _ref.propsToDisplay,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-query.js","names":["buildQuery","filterValues","filters","newQuery","searchValue","SEARCH_TERM","push","forEach","propsToDisplay","type","TEXT_SEARCH","prop","value","parsedValue","
|
|
1
|
+
{"version":3,"file":"build-query.js","names":["buildQuery","filterValues","filters","newQuery","searchValue","SEARCH_TERM","encodeURIComponent","push","forEach","propsToDisplay","type","TEXT_SEARCH","prop","value","parsedValue","includes","join"],"sources":["../../../../src/components/SearchFilter/helpers/build-query.js"],"sourcesContent":["import { SEARCH_TERM, TEXT_SEARCH } from '../constants';\nimport parseFilterValue from './parse-filter-value';\n\nconst buildQuery = (filterValues, filters) => {\n const newQuery = [];\n const searchValue = filterValues[SEARCH_TERM]\n ? encodeURIComponent(filterValues[SEARCH_TERM])\n : '';\n if (searchValue) newQuery.push(`${SEARCH_TERM}=${searchValue}`);\n\n filters.forEach(({ propsToDisplay, type }) => {\n if (type === TEXT_SEARCH) return;\n\n propsToDisplay.forEach(prop => {\n const value = filterValues[prop];\n const parsedValue = parseFilterValue(prop, type, value);\n if (parsedValue && !newQuery.includes(parsedValue)) {\n newQuery.push(parsedValue);\n }\n });\n });\n\n return newQuery.join('&');\n};\n\nexport default buildQuery;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,YAAD,EAAeC,OAAf,EAA2B;EAC5C,IAAMC,QAAQ,GAAG,EAAjB;EACA,IAAMC,WAAW,GAAGH,YAAY,CAACI,sBAAD,CAAZ,GAChBC,kBAAkB,CAACL,YAAY,CAACI,sBAAD,CAAb,CADF,GAEhB,EAFJ;EAGA,IAAID,WAAJ,EAAiBD,QAAQ,CAACI,IAAT,WAAiBF,sBAAjB,cAAgCD,WAAhC;EAEjBF,OAAO,CAACM,OAAR,CAAgB,gBAA8B;IAAA,IAA3BC,cAA2B,QAA3BA,cAA2B;IAAA,IAAXC,IAAW,QAAXA,IAAW;IAC5C,IAAIA,IAAI,KAAKC,sBAAb,EAA0B;IAE1BF,cAAc,CAACD,OAAf,CAAuB,UAAAI,IAAI,EAAI;MAC7B,IAAMC,KAAK,GAAGZ,YAAY,CAACW,IAAD,CAA1B;MACA,IAAME,WAAW,GAAG,kCAAiBF,IAAjB,EAAuBF,IAAvB,EAA6BG,KAA7B,CAApB;;MACA,IAAIC,WAAW,IAAI,CAACX,QAAQ,CAACY,QAAT,CAAkBD,WAAlB,CAApB,EAAoD;QAClDX,QAAQ,CAACI,IAAT,CAAcO,WAAd;MACD;IACF,CAND;EAOD,CAVD;EAYA,OAAOX,QAAQ,CAACa,IAAT,CAAc,GAAd,CAAP;AACD,CApBD;;eAsBehB,U"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculate-min-max.js","names":["calculateMinMax","filterAggregations","rangeInterval","min","max","Math","floor","Number","ceil","step"
|
|
1
|
+
{"version":3,"file":"calculate-min-max.js","names":["calculateMinMax","filterAggregations","rangeInterval","min","max","Math","floor","Number","ceil","step"],"sources":["../../../../src/components/SearchFilter/helpers/calculate-min-max.js"],"sourcesContent":["import calculateStep from './calculate-step';\n\nconst calculateMinMax = (filterAggregations, rangeInterval) => {\n let { min, max } = filterAggregations;\n min = Math.floor(Number(min));\n max = Math.ceil(Number(max));\n min -= min % rangeInterval;\n const step = calculateStep(max, rangeInterval);\n max += step;\n return { min, max };\n};\n\nexport default calculateMinMax;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,kBAAD,EAAqBC,aAArB,EAAuC;EAC7D,IAAMC,GAAN,GAAmBF,kBAAnB,CAAME,GAAN;EAAA,IAAWC,GAAX,GAAmBH,kBAAnB,CAAWG,GAAX;EACAD,GAAG,GAAGE,IAAI,CAACC,KAAL,CAAWC,MAAM,CAACJ,GAAD,CAAjB,CAAN;EACAC,GAAG,GAAGC,IAAI,CAACG,IAAL,CAAUD,MAAM,CAACH,GAAD,CAAhB,CAAN;EACAD,GAAG,IAAIA,GAAG,GAAGD,aAAb;EACA,IAAMO,IAAI,GAAG,+BAAcL,GAAd,EAAmBF,aAAnB,CAAb;EACAE,GAAG,IAAIK,IAAP;EACA,OAAO;IAAEN,GAAG,EAAHA,GAAF;IAAOC,GAAG,EAAHA;EAAP,CAAP;AACD,CARD;;eAUeJ,e"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-if-range-updated.js","names":["checkIfRangeUpdated","value","min","max","minValue","maxValue"
|
|
1
|
+
{"version":3,"file":"check-if-range-updated.js","names":["checkIfRangeUpdated","value","min","max","minValue","maxValue"],"sources":["../../../../src/components/SearchFilter/helpers/check-if-range-updated.js"],"sourcesContent":["import { isBrowser } from '../../../helpers';\n\nconst checkIfRangeUpdated = (value, min, max) => {\n const { minValue, maxValue } = value;\n return isBrowser() && (minValue !== min || maxValue !== max);\n};\n\nexport default checkIfRangeUpdated;\n"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAQC,GAAR,EAAaC,GAAb,EAAqB;EAC/C,IAAQC,QAAR,GAA+BH,KAA/B,CAAQG,QAAR;EAAA,IAAkBC,QAAlB,GAA+BJ,KAA/B,CAAkBI,QAAlB;EACA,OAAO,8BAAgBD,QAAQ,KAAKF,GAAb,IAAoBG,QAAQ,KAAKF,GAAjD,CAAP;AACD,CAHD;;eAKeH,mB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-filter-value-from-query.js","names":["getFilterValueFromQuery","key","filterProps","filterData","query","min","max","rangeInterval","type","queryValue","RANGE","
|
|
1
|
+
{"version":3,"file":"get-filter-value-from-query.js","names":["getFilterValueFromQuery","key","filterProps","filterData","query","min","max","rangeInterval","type","queryValue","RANGE","CHECKBOX","map","val","SELECT"],"sources":["../../../../src/components/SearchFilter/helpers/get-filter-value-from-query.js"],"sourcesContent":["import { RANGE, CHECKBOX, SELECT } from '../constants';\nimport getRangeValue from './get-range-value';\nimport { decodeValue } from './decode-encode';\n\nconst getFilterValueFromQuery = (key, filterProps, filterData, query) => {\n const { min, max } = filterData;\n const { rangeInterval, type } = filterProps;\n const queryValue = query[key];\n if (!queryValue && type !== RANGE) return null;\n\n switch (type) {\n case RANGE:\n return getRangeValue(queryValue, rangeInterval, min, max);\n case CHECKBOX:\n return typeof queryValue === 'string'\n ? [decodeValue(queryValue)]\n : queryValue.map(val => decodeValue(val));\n case SELECT:\n return decodeValue(queryValue);\n\n default:\n return null;\n }\n};\n\nexport default getFilterValueFromQuery;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,GAAD,EAAMC,WAAN,EAAmBC,UAAnB,EAA+BC,KAA/B,EAAyC;EACvE,IAAQC,GAAR,GAAqBF,UAArB,CAAQE,GAAR;EAAA,IAAaC,GAAb,GAAqBH,UAArB,CAAaG,GAAb;EACA,IAAQC,aAAR,GAAgCL,WAAhC,CAAQK,aAAR;EAAA,IAAuBC,IAAvB,GAAgCN,WAAhC,CAAuBM,IAAvB;EACA,IAAMC,UAAU,GAAGL,KAAK,CAACH,GAAD,CAAxB;EACA,IAAI,CAACQ,UAAD,IAAeD,IAAI,KAAKE,gBAA5B,EAAmC,OAAO,IAAP;;EAEnC,QAAQF,IAAR;IACE,KAAKE,gBAAL;MACE,OAAO,+BAAcD,UAAd,EAA0BF,aAA1B,EAAyCF,GAAzC,EAA8CC,GAA9C,CAAP;;IACF,KAAKK,mBAAL;MACE,OAAO,OAAOF,UAAP,KAAsB,QAAtB,GACH,CAAC,+BAAYA,UAAZ,CAAD,CADG,GAEHA,UAAU,CAACG,GAAX,CAAe,UAAAC,GAAG;QAAA,OAAI,+BAAYA,GAAZ,CAAJ;MAAA,CAAlB,CAFJ;;IAGF,KAAKC,iBAAL;MACE,OAAO,+BAAYL,UAAZ,CAAP;;IAEF;MACE,OAAO,IAAP;EAXJ;AAaD,CAnBD;;eAqBeT,uB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-initial-filter-values.js","names":["getInitialFilterValues","filterData","filters","query","filterValues","Object","keys","forEach","key","filterProps","find","propsToDisplay","prop","
|
|
1
|
+
{"version":3,"file":"get-initial-filter-values.js","names":["getInitialFilterValues","filterData","filters","query","filterValues","Object","keys","forEach","key","filterProps","find","propsToDisplay","prop","SEARCH_TERM"],"sources":["../../../../src/components/SearchFilter/helpers/get-initial-filter-values.js"],"sourcesContent":["import { SEARCH_TERM } from '../constants';\nimport getFilterValueFromQuery from './get-filter-value-from-query';\n\nconst getInitialFilterValues = (filterData, filters, query) => {\n const filterValues = {};\n\n Object.keys(filterData).forEach(key => {\n const filterProps =\n filters.find(({ propsToDisplay }) => propsToDisplay.find(prop => key === prop)) || {};\n filterValues[key] = getFilterValueFromQuery(key, filterProps, filterData[key], query);\n });\n filterValues[SEARCH_TERM] = query[SEARCH_TERM] || '';\n\n return filterValues;\n};\n\nexport default getInitialFilterValues;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,UAAD,EAAaC,OAAb,EAAsBC,KAAtB,EAAgC;EAC7D,IAAMC,YAAY,GAAG,EAArB;EAEAC,MAAM,CAACC,IAAP,CAAYL,UAAZ,EAAwBM,OAAxB,CAAgC,UAAAC,GAAG,EAAI;IACrC,IAAMC,WAAW,GACfP,OAAO,CAACQ,IAAR,CAAa;MAAA,IAAGC,cAAH,QAAGA,cAAH;MAAA,OAAwBA,cAAc,CAACD,IAAf,CAAoB,UAAAE,IAAI;QAAA,OAAIJ,GAAG,KAAKI,IAAZ;MAAA,CAAxB,CAAxB;IAAA,CAAb,KAAmF,EADrF;IAEAR,YAAY,CAACI,GAAD,CAAZ,GAAoB,yCAAwBA,GAAxB,EAA6BC,WAA7B,EAA0CR,UAAU,CAACO,GAAD,CAApD,EAA2DL,KAA3D,CAApB;EACD,CAJD;EAKAC,YAAY,CAACS,sBAAD,CAAZ,GAA4BV,KAAK,CAACU,sBAAD,CAAL,IAAsB,EAAlD;EAEA,OAAOT,YAAP;AACD,CAXD;;eAaeJ,sB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-intersected-prop.js","names":["getIntersectedProp","rangeQueryValues","propsToDisplay","
|
|
1
|
+
{"version":3,"file":"get-intersected-prop.js","names":["getIntersectedProp","rangeQueryValues","propsToDisplay","Object","keys"],"sources":["../../../../src/components/SearchFilter/helpers/get-intersected-prop.js"],"sourcesContent":["import intersection from 'lodash.intersection';\n\nconst getIntersectedProp = (rangeQueryValues, propsToDisplay) =>\n intersection(Object.keys(rangeQueryValues), propsToDisplay)[0];\n\nexport default getIntersectedProp;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,gBAAD,EAAmBC,cAAnB;EAAA,OACzB,wBAAaC,MAAM,CAACC,IAAP,CAAYH,gBAAZ,CAAb,EAA4CC,cAA5C,EAA4D,CAA5D,CADyB;AAAA,CAA3B;;eAGeF,kB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-range-value.js","names":["getRangeValue","rawQueryProp","rangeInterval","_min","_max","
|
|
1
|
+
{"version":3,"file":"get-range-value.js","names":["getRangeValue","rawQueryProp","rangeInterval","_min","_max","min","max","Array","isArray","split","queryParamMin","queryParamMax","updatedMinValue","Number","updatedMaxValue","step","maxValue","minValue"],"sources":["../../../../src/components/SearchFilter/helpers/get-range-value.js"],"sourcesContent":["import calculateMinMax from './calculate-min-max';\n\nconst getRangeValue = (rawQueryProp, rangeInterval, _min, _max) => {\n const { min, max } = calculateMinMax({ min: _min, max: _max }, rangeInterval);\n\n if (rawQueryProp) {\n const [queryParamMin, queryParamMax] = Array.isArray(rawQueryProp)\n ? rawQueryProp[0].split('-')\n : rawQueryProp.split('-');\n const updatedMinValue = Number(queryParamMin);\n const updatedMaxValue = Number(queryParamMax);\n\n return {\n min,\n max,\n step: rangeInterval,\n maxValue: updatedMaxValue,\n minValue: updatedMinValue\n };\n }\n\n return {\n max,\n min,\n step: rangeInterval,\n maxValue: max,\n minValue: min\n };\n};\n\nexport default getRangeValue;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,YAAD,EAAeC,aAAf,EAA8BC,IAA9B,EAAoCC,IAApC,EAA6C;EACjE,uBAAqB,kCAAgB;IAAEC,GAAG,EAAEF,IAAP;IAAaG,GAAG,EAAEF;EAAlB,CAAhB,EAA0CF,aAA1C,CAArB;EAAA,IAAQG,GAAR,oBAAQA,GAAR;EAAA,IAAaC,GAAb,oBAAaA,GAAb;;EAEA,IAAIL,YAAJ,EAAkB;IAChB,WAAuCM,KAAK,CAACC,OAAN,CAAcP,YAAd,IACnCA,YAAY,CAAC,CAAD,CAAZ,CAAgBQ,KAAhB,CAAsB,GAAtB,CADmC,GAEnCR,YAAY,CAACQ,KAAb,CAAmB,GAAnB,CAFJ;IAAA;IAAA,IAAOC,aAAP;IAAA,IAAsBC,aAAtB;;IAGA,IAAMC,eAAe,GAAGC,MAAM,CAACH,aAAD,CAA9B;IACA,IAAMI,eAAe,GAAGD,MAAM,CAACF,aAAD,CAA9B;IAEA,OAAO;MACLN,GAAG,EAAHA,GADK;MAELC,GAAG,EAAHA,GAFK;MAGLS,IAAI,EAAEb,aAHD;MAILc,QAAQ,EAAEF,eAJL;MAKLG,QAAQ,EAAEL;IALL,CAAP;EAOD;;EAED,OAAO;IACLN,GAAG,EAAHA,GADK;IAELD,GAAG,EAAHA,GAFK;IAGLU,IAAI,EAAEb,aAHD;IAILc,QAAQ,EAAEV,GAJL;IAKLW,QAAQ,EAAEZ;EALL,CAAP;AAOD,CA1BD;;eA4BeL,a"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-responsive-filter-classnames.js","names":["getResponsiveFilterClassnames","moreFiltersDesktopCollapsed","moreFiltersMobileCollapsed","moreFiltersMobileWrapperClass","
|
|
1
|
+
{"version":3,"file":"get-responsive-filter-classnames.js","names":["getResponsiveFilterClassnames","moreFiltersDesktopCollapsed","moreFiltersMobileCollapsed","moreFiltersMobileWrapperClass","MORE_FILTERS_CLASSES","MOBILE_WRAPPER","moreFiltersMobileTogglerClass","MOBILE_TOGGLER","moreFiltersDesktopWrapperClass","DESKTOP_WRAPPER","moreFiltersDesktopTogglerClass","DESKTOP_TOGGLER"],"sources":["../../../../src/components/SearchFilter/helpers/get-responsive-filter-classnames.js"],"sourcesContent":["import classnames from 'classnames';\nimport { MORE_FILTERS_CLASSES } from '../constants';\n\nconst getResponsiveFilterClassnames = (\n moreFiltersDesktopCollapsed,\n moreFiltersMobileCollapsed\n) => ({\n moreFiltersMobileWrapperClass: classnames(MORE_FILTERS_CLASSES.MOBILE_WRAPPER, {\n [`${MORE_FILTERS_CLASSES.MOBILE_WRAPPER}--open`]: !moreFiltersMobileCollapsed\n }),\n moreFiltersMobileTogglerClass: classnames(MORE_FILTERS_CLASSES.MOBILE_TOGGLER, {\n [`${MORE_FILTERS_CLASSES.MOBILE_TOGGLER}--open`]: !moreFiltersMobileCollapsed\n }),\n moreFiltersDesktopWrapperClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_WRAPPER, {\n [`${MORE_FILTERS_CLASSES.DESKTOP_WRAPPER}--open`]: !moreFiltersDesktopCollapsed\n }),\n moreFiltersDesktopTogglerClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_TOGGLER, {\n [`${MORE_FILTERS_CLASSES.DESKTOP_TOGGLER}--open`]: !moreFiltersDesktopCollapsed\n })\n});\n\nexport default getResponsiveFilterClassnames;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,6BAA6B,GAAG,SAAhCA,6BAAgC,CACpCC,2BADoC,EAEpCC,0BAFoC;EAAA,OAGhC;IACJC,6BAA6B,EAAE,6BAAWC,gCAAqBC,cAAhC,iDACzBD,gCAAqBC,cADI,aACqB,CAACH,0BADtB,EAD3B;IAIJI,6BAA6B,EAAE,6BAAWF,gCAAqBG,cAAhC,iDACzBH,gCAAqBG,cADI,aACqB,CAACL,0BADtB,EAJ3B;IAOJM,8BAA8B,EAAE,6BAAWJ,gCAAqBK,eAAhC,iDAC1BL,gCAAqBK,eADK,aACqB,CAACR,2BADtB,EAP5B;IAUJS,8BAA8B,EAAE,6BAAWN,gCAAqBO,eAAhC,iDAC1BP,gCAAqBO,eADK,aACqB,CAACV,2BADtB;EAV5B,CAHgC;AAAA,CAAtC;;eAkBeD,6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-select-options.js","names":["getSelectOptions","entitySchema","propsToDisplay","length","properties","dynamicProperties","map","propToDisplay","displayValue"
|
|
1
|
+
{"version":3,"file":"get-select-options.js","names":["getSelectOptions","entitySchema","propsToDisplay","length","properties","dynamicProperties","map","propToDisplay","displayValue"],"sources":["../../../../src/components/SearchFilter/helpers/get-select-options.js"],"sourcesContent":["import getDisplayValue from './get-display-value';\n\nconst getSelectOptions = (entitySchema, propsToDisplay) => {\n if (!propsToDisplay || !propsToDisplay.length) return [];\n\n const { properties = {}, dynamicProperties = {} } = entitySchema;\n\n return propsToDisplay.map(propToDisplay => {\n const displayValue =\n getDisplayValue(propToDisplay, properties) ||\n getDisplayValue(propToDisplay, dynamicProperties) ||\n propToDisplay;\n\n return [propToDisplay, displayValue];\n });\n};\n\nexport default getSelectOptions;\n"],"mappings":";;;;;;;;;;;;;AAAA;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,YAAD,EAAeC,cAAf,EAAkC;EACzD,IAAI,CAACA,cAAD,IAAmB,CAACA,cAAc,CAACC,MAAvC,EAA+C,OAAO,EAAP;EAE/C,4BAAoDF,YAApD,CAAQG,UAAR;EAAA,IAAQA,UAAR,sCAAqB,EAArB;EAAA,4BAAoDH,YAApD,CAAyBI,iBAAzB;EAAA,IAAyBA,iBAAzB,sCAA6C,EAA7C;EAEA,OAAOH,cAAc,CAACI,GAAf,CAAmB,UAAAC,aAAa,EAAI;IACzC,IAAMC,YAAY,GAChB,iCAAgBD,aAAhB,EAA+BH,UAA/B,KACA,iCAAgBG,aAAhB,EAA+BF,iBAA/B,CADA,IAEAE,aAHF;IAKA,OAAO,CAACA,aAAD,EAAgBC,YAAhB,CAAP;EACD,CAPM,CAAP;AAQD,CAbD;;eAeeR,gB"}
|
|
@@ -13,10 +13,6 @@ require("core-js/modules/es.array.join.js");
|
|
|
13
13
|
|
|
14
14
|
require("core-js/modules/es.array.map.js");
|
|
15
15
|
|
|
16
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
17
|
-
|
|
18
|
-
require("core-js/modules/es.string.replace.js");
|
|
19
|
-
|
|
20
16
|
var _constants = require("../constants");
|
|
21
17
|
|
|
22
18
|
var parseFilterValue = function parseFilterValue(key, type, value) {
|
|
@@ -28,14 +24,14 @@ var parseFilterValue = function parseFilterValue(key, type, value) {
|
|
|
28
24
|
return "".concat(key, "=").concat(value.minValue, "-").concat(value.maxValue);
|
|
29
25
|
|
|
30
26
|
case _constants.CHECKBOX:
|
|
31
|
-
if (typeof value === 'string') return "".concat(key, "=").concat(value);
|
|
27
|
+
if (typeof value === 'string') return "".concat(key, "=").concat(encodeURIComponent(value));
|
|
32
28
|
return value.map(function (val) {
|
|
33
|
-
return "".concat(key, "=").concat(val);
|
|
29
|
+
return "".concat(key, "=").concat(encodeURIComponent(val));
|
|
34
30
|
}).join('&');
|
|
35
31
|
|
|
36
32
|
case _constants.SELECT:
|
|
37
33
|
{
|
|
38
|
-
var parsedValue = value
|
|
34
|
+
var parsedValue = encodeURIComponent(value);
|
|
39
35
|
return "".concat(key, "=").concat(parsedValue);
|
|
40
36
|
}
|
|
41
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-filter-value.js","names":["parseFilterValue","key","type","value","RANGE","minValue","min","maxValue","max","CHECKBOX","map","val","join","SELECT","parsedValue"
|
|
1
|
+
{"version":3,"file":"parse-filter-value.js","names":["parseFilterValue","key","type","value","RANGE","minValue","min","maxValue","max","CHECKBOX","encodeURIComponent","map","val","join","SELECT","parsedValue"],"sources":["../../../../src/components/SearchFilter/helpers/parse-filter-value.js"],"sourcesContent":["import { RANGE, CHECKBOX, SELECT } from '../constants';\n\nconst parseFilterValue = (key, type, value) => {\n if (!value) return null;\n\n switch (type) {\n case RANGE:\n if (value.minValue === value.min && value.maxValue === value.max) return null;\n return `${key}=${value.minValue}-${value.maxValue}`;\n case CHECKBOX:\n if (typeof value === 'string') return `${key}=${encodeURIComponent(value)}`;\n return value.map(val => `${key}=${encodeURIComponent(val)}`).join('&');\n case SELECT: {\n const parsedValue = encodeURIComponent(value);\n return `${key}=${parsedValue}`;\n }\n\n default:\n return null;\n }\n};\n\nexport default parseFilterValue;\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,EAAsB;EAC7C,IAAI,CAACA,KAAL,EAAY,OAAO,IAAP;;EAEZ,QAAQD,IAAR;IACE,KAAKE,gBAAL;MACE,IAAID,KAAK,CAACE,QAAN,KAAmBF,KAAK,CAACG,GAAzB,IAAgCH,KAAK,CAACI,QAAN,KAAmBJ,KAAK,CAACK,GAA7D,EAAkE,OAAO,IAAP;MAClE,iBAAUP,GAAV,cAAiBE,KAAK,CAACE,QAAvB,cAAmCF,KAAK,CAACI,QAAzC;;IACF,KAAKE,mBAAL;MACE,IAAI,OAAON,KAAP,KAAiB,QAArB,EAA+B,iBAAUF,GAAV,cAAiBS,kBAAkB,CAACP,KAAD,CAAnC;MAC/B,OAAOA,KAAK,CAACQ,GAAN,CAAU,UAAAC,GAAG;QAAA,iBAAOX,GAAP,cAAcS,kBAAkB,CAACE,GAAD,CAAhC;MAAA,CAAb,EAAsDC,IAAtD,CAA2D,GAA3D,CAAP;;IACF,KAAKC,iBAAL;MAAa;QACX,IAAMC,WAAW,GAAGL,kBAAkB,CAACP,KAAD,CAAtC;QACA,iBAAUF,GAAV,cAAiBc,WAAjB;MACD;;IAED;MACE,OAAO,IAAP;EAbJ;AAeD,CAlBD;;eAoBef,gB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilterSort.js","names":["SearchFilterSort","router","filters","elementLabel","selectLabel","id","asPath","
|
|
1
|
+
{"version":3,"file":"SearchFilterSort.js","names":["SearchFilterSort","router","filters","elementLabel","selectLabel","id","asPath","url","query","sort","sortby","selectedValue","defaultTextValue","DEFAULT_SORT","options","map","optionLabel","label","propsToDisplay","sortValue","setSortValue","value","propTypes","PropTypes","object","isRequired","array","string","defaultProps"],"sources":["../../../src/components/SearchFilterSort/SearchFilterSort.js"],"sourcesContent":["import React from 'react';\nimport Select from '@blaze-react/select';\nimport { withRouter } from 'next/router';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { DEFAULT_SORT } from './constants';\nimport { handleSortUpdate } from './helpers';\nimport { withTitle } from '../../HOC';\n\nconst SearchFilterSort = ({ router, filters, elementLabel, selectLabel, id }) => {\n const { asPath } = router;\n const { url, query, query: { sort, sortby } = {} } = parseUrl(asPath);\n const selectedValue = `${sortby}:${sort}` || '';\n const defaultTextValue = selectLabel || DEFAULT_SORT;\n const options = filters.map(({ label: optionLabel, propsToDisplay, sort: sortValue }) => [\n `${propsToDisplay[0]}:${sortValue}`,\n optionLabel\n ]);\n\n const setSortValue = ({ value }) => handleSortUpdate(router, value, query, url, selectLabel);\n\n return (\n <div className=\"sort-by\">\n <Select\n label={elementLabel}\n defaultTextValue={defaultTextValue}\n value={selectedValue}\n id={id}\n options={options}\n onChange={setSortValue}\n />\n </div>\n );\n};\n\nSearchFilterSort.propTypes = {\n router: PropTypes.object.isRequired,\n filters: PropTypes.array,\n elementLabel: PropTypes.string,\n selectLabel: PropTypes.string,\n id: PropTypes.string\n};\n\nSearchFilterSort.defaultProps = {\n filters: [],\n elementLabel: '',\n selectLabel: '',\n id: ''\n};\n\nexport default withRouter(withTitle(SearchFilterSort));\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAwD;EAAA,IAArDC,MAAqD,QAArDA,MAAqD;EAAA,IAA7CC,OAA6C,QAA7CA,OAA6C;EAAA,IAApCC,YAAoC,QAApCA,YAAoC;EAAA,IAAtBC,WAAsB,QAAtBA,WAAsB;EAAA,IAATC,EAAS,QAATA,EAAS;EAC/E,IAAQC,MAAR,GAAmBL,MAAnB,CAAQK,MAAR;;EACA,gBAAqD,2BAASA,MAAT,CAArD;EAAA,IAAQC,GAAR,aAAQA,GAAR;EAAA,IAAaC,KAAb,aAAaA,KAAb;EAAA,gCAAoBA,KAApB;;EAAA,+CAA8C,EAA9C;EAAA,IAA6BC,IAA7B,mBAA6BA,IAA7B;EAAA,IAAmCC,MAAnC,mBAAmCA,MAAnC;EACA,IAAMC,aAAa,GAAG,UAAGD,MAAH,cAAaD,IAAb,KAAuB,EAA7C;EACA,IAAMG,gBAAgB,GAAGR,WAAW,IAAIS,uBAAxC;EACA,IAAMC,OAAO,GAAGZ,OAAO,CAACa,GAAR,CAAY;IAAA,IAAUC,WAAV,SAAGC,KAAH;IAAA,IAAuBC,cAAvB,SAAuBA,cAAvB;IAAA,IAA6CC,SAA7C,SAAuCV,IAAvC;IAAA,OAA6D,WACpFS,cAAc,CAAC,CAAD,CADsE,cAC/DC,SAD+D,GAEvFH,WAFuF,CAA7D;EAAA,CAAZ,CAAhB;;EAKA,IAAMI,YAAY,GAAG,SAAfA,YAAe;IAAA,IAAGC,KAAH,SAAGA,KAAH;IAAA,OAAe,+BAAiBpB,MAAjB,EAAyBoB,KAAzB,EAAgCb,KAAhC,EAAuCD,GAAvC,EAA4CH,WAA5C,CAAf;EAAA,CAArB;;EAEA,oBACE;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,kBAAD;IACE,KAAK,EAAED,YADT;IAEE,gBAAgB,EAAES,gBAFpB;IAGE,KAAK,EAAED,aAHT;IAIE,EAAE,EAAEN,EAJN;IAKE,OAAO,EAAES,OALX;IAME,QAAQ,EAAEM;EANZ,EADF,CADF;AAYD,CAxBD;;AA0BApB,gBAAgB,CAACsB,SAAjB,GAA6B;EAC3BrB,MAAM,EAAEsB,sBAAUC,MAAV,CAAiBC,UADE;EAE3BvB,OAAO,EAAEqB,sBAAUG,KAFQ;EAG3BvB,YAAY,EAAEoB,sBAAUI,MAHG;EAI3BvB,WAAW,EAAEmB,sBAAUI,MAJI;EAK3BtB,EAAE,EAAEkB,sBAAUI;AALa,CAA7B;AAQA3B,gBAAgB,CAAC4B,YAAjB,GAAgC;EAC9B1B,OAAO,EAAE,EADqB;EAE9BC,YAAY,EAAE,EAFgB;EAG9BC,WAAW,EAAE,EAHiB;EAI9BC,EAAE,EAAE;AAJ0B,CAAhC;;eAOe,wBAAW,oBAAUL,gBAAV,CAAX,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-sort-update.js","names":["handleSortUpdate","router","value","query","url","selectLabel","queryWithoutSort","routerOptions","shallow","scroll","Object","keys","forEach","key","indexOf","PAGINATION_QUERY","SORTBY","SORT","DEFAULT_SORT","stringifiedQuery","
|
|
1
|
+
{"version":3,"file":"handle-sort-update.js","names":["handleSortUpdate","router","value","query","url","selectLabel","queryWithoutSort","routerOptions","shallow","scroll","Object","keys","forEach","key","indexOf","PAGINATION_QUERY","SORTBY","SORT","DEFAULT_SORT","stringifiedQuery","push","updatedSortUrl"],"sources":["../../../../src/components/SearchFilterSort/helpers/handle-sort-update.js"],"sourcesContent":["import { stringify } from 'query-string';\nimport { DEFAULT_SORT, SORT, SORTBY, PAGINATION_QUERY } from '../constants';\nimport updateSort from './update-sort';\n\nconst handleSortUpdate = (router, value, query, url, selectLabel) => {\n const queryWithoutSort = {};\n const routerOptions = { shallow: true, scroll: false };\n Object.keys(query).forEach(key => {\n if (key.indexOf(PAGINATION_QUERY) !== -1) return;\n if (key !== SORTBY && key !== SORT) queryWithoutSort[key] = query[key];\n });\n if (value === DEFAULT_SORT || value === selectLabel) {\n const stringifiedQuery = stringify(queryWithoutSort);\n\n return stringifiedQuery\n ? router.push(`/Resolver`, `${url}?${stringifiedQuery}`, routerOptions)\n : router.push(`/Resolver`, url, routerOptions);\n }\n const updatedSortUrl = updateSort(value, queryWithoutSort, url);\n return router.push('/Resolver', updatedSortUrl, routerOptions);\n};\n\nexport default handleSortUpdate;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,MAAD,EAASC,KAAT,EAAgBC,KAAhB,EAAuBC,GAAvB,EAA4BC,WAA5B,EAA4C;EACnE,IAAMC,gBAAgB,GAAG,EAAzB;EACA,IAAMC,aAAa,GAAG;IAAEC,OAAO,EAAE,IAAX;IAAiBC,MAAM,EAAE;EAAzB,CAAtB;EACAC,MAAM,CAACC,IAAP,CAAYR,KAAZ,EAAmBS,OAAnB,CAA2B,UAAAC,GAAG,EAAI;IAChC,IAAIA,GAAG,CAACC,OAAJ,CAAYC,2BAAZ,MAAkC,CAAC,CAAvC,EAA0C;IAC1C,IAAIF,GAAG,KAAKG,iBAAR,IAAkBH,GAAG,KAAKI,eAA9B,EAAoCX,gBAAgB,CAACO,GAAD,CAAhB,GAAwBV,KAAK,CAACU,GAAD,CAA7B;EACrC,CAHD;;EAIA,IAAIX,KAAK,KAAKgB,uBAAV,IAA0BhB,KAAK,KAAKG,WAAxC,EAAqD;IACnD,IAAMc,gBAAgB,GAAG,4BAAUb,gBAAV,CAAzB;IAEA,OAAOa,gBAAgB,GACnBlB,MAAM,CAACmB,IAAP,wBAA4BhB,GAA5B,cAAmCe,gBAAnC,GAAuDZ,aAAvD,CADmB,GAEnBN,MAAM,CAACmB,IAAP,cAAyBhB,GAAzB,EAA8BG,aAA9B,CAFJ;EAGD;;EACD,IAAMc,cAAc,GAAG,4BAAWnB,KAAX,EAAkBI,gBAAlB,EAAoCF,GAApC,CAAvB;EACA,OAAOH,MAAM,CAACmB,IAAP,CAAY,WAAZ,EAAyBC,cAAzB,EAAyCd,aAAzC,CAAP;AACD,CAhBD;;eAkBeP,gB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-sort.js","names":["updateSort","value","query","url","split","newSortBy","newSort","updatedQuery","sortby","sort","parsedQuery"
|
|
1
|
+
{"version":3,"file":"update-sort.js","names":["updateSort","value","query","url","split","newSortBy","newSort","updatedQuery","sortby","sort","parsedQuery"],"sources":["../../../../src/components/SearchFilterSort/helpers/update-sort.js"],"sourcesContent":["import { stringify } from 'query-string';\n\nconst updateSort = (value, query, url) => {\n const [newSortBy, newSort] = value.split(':');\n const updatedQuery = { ...query, sortby: newSortBy, sort: newSort };\n const parsedQuery = stringify(updatedQuery);\n return `${url}?${parsedQuery}`;\n};\n\nexport default updateSort;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD,EAAQC,KAAR,EAAeC,GAAf,EAAuB;EACxC,mBAA6BF,KAAK,CAACG,KAAN,CAAY,GAAZ,CAA7B;EAAA;EAAA,IAAOC,SAAP;EAAA,IAAkBC,OAAlB;;EACA,IAAMC,YAAY,mCAAQL,KAAR;IAAeM,MAAM,EAAEH,SAAvB;IAAkCI,IAAI,EAAEH;EAAxC,EAAlB;;EACA,IAAMI,WAAW,GAAG,4BAAUH,YAAV,CAApB;EACA,iBAAUJ,GAAV,cAAiBO,WAAjB;AACD,CALD;;eAOeV,U"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SFItem.js","names":["SFItem","url","id","SOCIAL_NETWORKS","name","className","Icon","spanClassName","BASE_CLASS_NAME_FOLLOW","propTypes","PropTypes","string","isRequired"],"sources":["../../../src/components/SocialFollow/SFItem.js"],"sourcesContent":["/* eslint-disable react/jsx-no-target-blank */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { SOCIAL_NETWORKS, BASE_CLASS_NAME_FOLLOW } from './sf.config';\n\nconst SFItem = ({ url, id }) => {\n const { name, className, Icon, spanClassName } = SOCIAL_NETWORKS[id];\n\n return (\n <li className={BASE_CLASS_NAME_FOLLOW}>\n <a title={name} href={url} className={className} rel=\"noopener nofollow\" target=\"_blank\">\n <i>\n <Icon />\n </i>\n <span className={`social__network ${spanClassName}`}>{name}</span>\n </a>\n </li>\n );\n};\n\nSFItem.propTypes = {\n url: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired\n};\n\nexport default SFItem;\n"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AACA;;AAHA;AAKA,IAAMA,MAAM,GAAG,SAATA,MAAS,OAAiB;EAAA,IAAdC,GAAc,QAAdA,GAAc;EAAA,IAATC,EAAS,QAATA,EAAS;EAC9B,0BAAiDC,
|
|
1
|
+
{"version":3,"file":"SFItem.js","names":["SFItem","url","id","SOCIAL_NETWORKS","name","className","Icon","spanClassName","BASE_CLASS_NAME_FOLLOW","propTypes","PropTypes","string","isRequired"],"sources":["../../../src/components/SocialFollow/SFItem.js"],"sourcesContent":["/* eslint-disable react/jsx-no-target-blank */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { SOCIAL_NETWORKS, BASE_CLASS_NAME_FOLLOW } from './sf.config';\n\nconst SFItem = ({ url, id }) => {\n const { name, className, Icon, spanClassName } = SOCIAL_NETWORKS[id];\n\n return (\n <li className={BASE_CLASS_NAME_FOLLOW}>\n <a title={name} href={url} className={className} rel=\"noopener nofollow\" target=\"_blank\">\n <i>\n <Icon />\n </i>\n <span className={`social__network ${spanClassName}`}>{name}</span>\n </a>\n </li>\n );\n};\n\nSFItem.propTypes = {\n url: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired\n};\n\nexport default SFItem;\n"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;AACA;;AAHA;AAKA,IAAMA,MAAM,GAAG,SAATA,MAAS,OAAiB;EAAA,IAAdC,GAAc,QAAdA,GAAc;EAAA,IAATC,EAAS,QAATA,EAAS;EAC9B,0BAAiDC,oBAAgBD,EAAhB,CAAjD;EAAA,IAAQE,IAAR,uBAAQA,IAAR;EAAA,IAAcC,SAAd,uBAAcA,SAAd;EAAA,IAAyBC,IAAzB,uBAAyBA,IAAzB;EAAA,IAA+BC,aAA/B,uBAA+BA,aAA/B;EAEA,oBACE;IAAI,SAAS,EAAEC;EAAf,gBACE;IAAG,KAAK,EAAEJ,IAAV;IAAgB,IAAI,EAAEH,GAAtB;IAA2B,SAAS,EAAEI,SAAtC;IAAiD,GAAG,EAAC,mBAArD;IAAyE,MAAM,EAAC;EAAhF,gBACE,wDACE,gCAAC,IAAD,OADF,CADF,eAIE;IAAM,SAAS,4BAAqBE,aAArB;EAAf,GAAsDH,IAAtD,CAJF,CADF,CADF;AAUD,CAbD;;AAeAJ,MAAM,CAACS,SAAP,GAAmB;EACjBR,GAAG,EAAES,sBAAUC,MAAV,CAAiBC,UADL;EAEjBV,EAAE,EAAEQ,sBAAUC,MAAV,CAAiBC;AAFJ,CAAnB;eAKeZ,M"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialFollow.js","names":["SocialFollow","orientation","otherProps","socialNetworks","socialNetKeys","Object","keys","isPortrait","PORTRAIT","length","divClassName","
|
|
1
|
+
{"version":3,"file":"SocialFollow.js","names":["SocialFollow","orientation","otherProps","socialNetworks","socialNetKeys","Object","keys","isPortrait","PORTRAIT","length","divClassName","propTypes","PropTypes","string","defaultProps","LANDSCAPE"],"sources":["../../../src/components/SocialFollow/SocialFollow.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport SocialFollowRender from './SocialFollowRender';\nimport { PORTRAIT, LANDSCAPE } from './sf.config';\n\nconst SocialFollow = ({ orientation, ...otherProps }) => {\n const { socialNetworks = {} } = otherProps;\n const socialNetKeys = Object.keys(socialNetworks);\n const isPortrait = orientation === PORTRAIT;\n if (!socialNetKeys.length) return null;\n\n const divClassName = classnames({\n 'social social--follow social--vertical': isPortrait,\n 'social social--follow': !isPortrait\n });\n\n return (\n <div className={divClassName}>\n <SocialFollowRender isPortrait={isPortrait} socialNetKeys={socialNetKeys} {...otherProps} />\n </div>\n );\n};\n\nSocialFollow.propTypes = {\n orientation: PropTypes.string\n};\n\nSocialFollow.defaultProps = {\n orientation: LANDSCAPE\n};\n\nexport default SocialFollow;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAAoC;EAAA,IAAjCC,WAAiC,QAAjCA,WAAiC;EAAA,IAAjBC,UAAiB;EACvD,4BAAgCA,UAAhC,CAAQC,cAAR;EAAA,IAAQA,cAAR,sCAAyB,EAAzB;EACA,IAAMC,aAAa,GAAGC,MAAM,CAACC,IAAP,CAAYH,cAAZ,CAAtB;EACA,IAAMI,UAAU,GAAGN,WAAW,KAAKO,YAAnC;EACA,IAAI,CAACJ,aAAa,CAACK,MAAnB,EAA2B,OAAO,IAAP;EAE3B,IAAMC,YAAY,GAAG,4BAAW;IAC9B,0CAA0CH,UADZ;IAE9B,yBAAyB,CAACA;EAFI,CAAX,CAArB;EAKA,oBACE;IAAK,SAAS,EAAEG;EAAhB,gBACE,gCAAC,8BAAD;IAAoB,UAAU,EAAEH,UAAhC;IAA4C,aAAa,EAAEH;EAA3D,GAA8EF,UAA9E,EADF,CADF;AAKD,CAhBD;;AAkBAF,YAAY,CAACW,SAAb,GAAyB;EACvBV,WAAW,EAAEW,sBAAUC;AADA,CAAzB;AAIAb,YAAY,CAACc,YAAb,GAA4B;EAC1Bb,WAAW,EAAEc;AADa,CAA5B;eAIef,Y"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialFollowRender.js","names":["SocialFollowRender","isPortrait","socialNetKeys","socialNetworks","ulClassName","
|
|
1
|
+
{"version":3,"file":"SocialFollowRender.js","names":["SocialFollowRender","isPortrait","socialNetKeys","socialNetworks","ulClassName","map","socialNetKey","supportedNetwork","SOCIAL_NETWORKS","propTypes","PropTypes","bool","isRequired","array","object"],"sources":["../../../src/components/SocialFollow/SocialFollowRender.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { withTitle } from '../../HOC';\nimport SFItem from './SFItem';\nimport { SOCIAL_NETWORKS } from './sf.config';\n\nconst SocialFollowRender = ({ isPortrait, socialNetKeys, socialNetworks }) => {\n const ulClassName = classnames({\n 'social__list social__list--follow': !isPortrait,\n 'social__list social__list--follow social__list--vertical': isPortrait\n });\n return (\n <ul className={ulClassName}>\n {socialNetKeys.map(socialNetKey => {\n const supportedNetwork = SOCIAL_NETWORKS[socialNetKey];\n return (\n supportedNetwork &&\n socialNetworks[socialNetKey] && (\n <SFItem key={socialNetKey} id={socialNetKey} url={socialNetworks[socialNetKey]} />\n )\n );\n })}\n </ul>\n );\n};\n\nSocialFollowRender.propTypes = {\n isPortrait: PropTypes.bool.isRequired,\n socialNetKeys: PropTypes.array.isRequired,\n socialNetworks: PropTypes.object.isRequired\n};\n\nexport default withTitle(SocialFollowRender);\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,OAAmD;EAAA,IAAhDC,UAAgD,QAAhDA,UAAgD;EAAA,IAApCC,aAAoC,QAApCA,aAAoC;EAAA,IAArBC,cAAqB,QAArBA,cAAqB;EAC5E,IAAMC,WAAW,GAAG,4BAAW;IAC7B,qCAAqC,CAACH,UADT;IAE7B,4DAA4DA;EAF/B,CAAX,CAApB;EAIA,oBACE;IAAI,SAAS,EAAEG;EAAf,GACGF,aAAa,CAACG,GAAd,CAAkB,UAAAC,YAAY,EAAI;IACjC,IAAMC,gBAAgB,GAAGC,oBAAgBF,YAAhB,CAAzB;IACA,OACEC,gBAAgB,IAChBJ,cAAc,CAACG,YAAD,CADd,iBAEE,gCAAC,kBAAD;MAAQ,GAAG,EAAEA,YAAb;MAA2B,EAAE,EAAEA,YAA/B;MAA6C,GAAG,EAAEH,cAAc,CAACG,YAAD;IAAhE,EAHJ;EAMD,CARA,CADH,CADF;AAaD,CAlBD;;AAoBAN,kBAAkB,CAACS,SAAnB,GAA+B;EAC7BR,UAAU,EAAES,sBAAUC,IAAV,CAAeC,UADE;EAE7BV,aAAa,EAAEQ,sBAAUG,KAAV,CAAgBD,UAFF;EAG7BT,cAAc,EAAEO,sBAAUI,MAAV,CAAiBF;AAHJ,CAA/B;;eAMe,oBAAUZ,kBAAV,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubMenu.js","names":["SubMenu","children","modifier","hasValidChildren","
|
|
1
|
+
{"version":3,"file":"SubMenu.js","names":["SubMenu","children","modifier","hasValidChildren","propTypes","PropTypes","string","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/SubMenu/SubMenu.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { hasChildren } from '../../helpers';\n\nconst SubMenu = ({ children, modifier }) => {\n const hasValidChildren = hasChildren(children);\n if (!hasValidChildren) return null;\n return <ul className={modifier}>{children}</ul>;\n};\n\nSubMenu.propTypes = {\n modifier: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nSubMenu.defaultProps = {\n modifier: '',\n children: null\n};\n\nexport default SubMenu;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAA4B;EAAA,IAAzBC,QAAyB,QAAzBA,QAAyB;EAAA,IAAfC,QAAe,QAAfA,QAAe;EAC1C,IAAMC,gBAAgB,GAAG,0BAAYF,QAAZ,CAAzB;EACA,IAAI,CAACE,gBAAL,EAAuB,OAAO,IAAP;EACvB,oBAAO;IAAI,SAAS,EAAED;EAAf,GAA0BD,QAA1B,CAAP;AACD,CAJD;;AAMAD,OAAO,CAACI,SAAR,GAAoB;EAClBF,QAAQ,EAAEG,sBAAUC,MADF;EAElBL,QAAQ,EAAEI,sBAAUE,SAAV,CAAoB,CAACF,sBAAUG,OAAV,CAAkBH,sBAAUI,IAA5B,CAAD,EAAoCJ,sBAAUI,IAA9C,CAApB;AAFQ,CAApB;AAKAT,OAAO,CAACU,YAAR,GAAuB;EACrBR,QAAQ,EAAE,EADW;EAErBD,QAAQ,EAAE;AAFW,CAAvB;eAKeD,O"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextBlockRender.js","names":["TextBlockRender","parsedTextBlock","name","updatedBlock","
|
|
1
|
+
{"version":3,"file":"TextBlockRender.js","names":["TextBlockRender","parsedTextBlock","name","updatedBlock","propTypes","PropTypes","oneOfType","array","object","isRequired","string"],"sources":["../../../src/components/TextBlock/TextBlockRender.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withTitle } from '../../HOC';\nimport { useBannerInsertion } from '../../hooks';\n\nconst TextBlockRender = ({ parsedTextBlock, name }) => {\n const updatedBlock = useBannerInsertion({ name, parsedTextBlock });\n return <> {updatedBlock} </>;\n};\n\nTextBlockRender.propTypes = {\n parsedTextBlock: PropTypes.oneOfType([PropTypes.array, PropTypes.object]).isRequired,\n name: PropTypes.string.isRequired\n};\n\nexport default withTitle(TextBlockRender);\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,OAA+B;EAAA,IAA5BC,eAA4B,QAA5BA,eAA4B;EAAA,IAAXC,IAAW,QAAXA,IAAW;EACrD,IAAMC,YAAY,GAAG,+BAAmB;IAAED,IAAI,EAAJA,IAAF;IAAQD,eAAe,EAAfA;EAAR,CAAnB,CAArB;EACA,oBAAO,uEAAIE,YAAJ,MAAP;AACD,CAHD;;AAKAH,eAAe,CAACI,SAAhB,GAA4B;EAC1BH,eAAe,EAAEI,sBAAUC,SAAV,CAAoB,CAACD,sBAAUE,KAAX,EAAkBF,sBAAUG,MAA5B,CAApB,EAAyDC,UADhD;EAE1BP,IAAI,EAAEG,sBAAUK,MAAV,CAAiBD;AAFG,CAA5B;;eAKe,oBAAUT,eAAV,C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["TextBlock","html","modifier","variableProps","parsedTextBlock","
|
|
1
|
+
{"version":3,"file":"index.js","names":["TextBlock","html","modifier","variableProps","parsedTextBlock","LinkWrapper","BlazeLink","modifiers","className","process","env","BLAZE_PB_TEXTBLOCK_WRAPPER_ENABLE","textRender","propTypes","PropTypes","string","gtmClassName","elementTitle","defaultProps"],"sources":["../../../src/components/TextBlock/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { parseTextBlock } from '../../helpers';\nimport Wrapper from '../Wrapper';\nimport TextBlockRender from './TextBlockRender';\nimport BlazeLink from '../BlazeLink';\n\nimport getClassModifiers from '../../utils/get-class-modifiers';\n\nconst TextBlock = ({ html, modifier, ...variableProps }) => {\n if (!html) return null;\n\n const parsedTextBlock = parseTextBlock({ html, LinkWrapper: BlazeLink });\n const modifiers = getClassModifiers('textBlock', { modifier, ...variableProps });\n\n // todo: the BLAZE_PB_TEXTBLOCK_WRAPPER_ENABLE flag is depreciated. Remove when appropriate\n const className = process.env.BLAZE_PB_TEXTBLOCK_WRAPPER_ENABLE === 'true' ? 'page-content' : '';\n\n const textRender = <TextBlockRender parsedTextBlock={parsedTextBlock} {...variableProps} />;\n if (!className && !modifiers) return textRender;\n\n return (\n <Wrapper className={className} modifiers={modifiers}>\n {textRender}\n </Wrapper>\n );\n};\n\nTextBlock.propTypes = {\n html: PropTypes.string,\n modifier: PropTypes.string,\n gtmClassName: PropTypes.string,\n elementTitle: PropTypes.string\n};\n\nTextBlock.defaultProps = {\n modifier: '',\n gtmClassName: '',\n elementTitle: '',\n html: ''\n};\n\nexport default TextBlock;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAA0C;EAAA,IAAvCC,IAAuC,QAAvCA,IAAuC;EAAA,IAAjCC,QAAiC,QAAjCA,QAAiC;EAAA,IAApBC,aAAoB;EAC1D,IAAI,CAACF,IAAL,EAAW,OAAO,IAAP;EAEX,IAAMG,eAAe,GAAG,6BAAe;IAAEH,IAAI,EAAJA,IAAF;IAAQI,WAAW,EAAEC;EAArB,CAAf,CAAxB;EACA,IAAMC,SAAS,GAAG,mCAAkB,WAAlB;IAAiCL,QAAQ,EAARA;EAAjC,GAA8CC,aAA9C,EAAlB,CAJ0D,CAM1D;;EACA,IAAMK,SAAS,GAAGC,OAAO,CAACC,GAAR,CAAYC,iCAAZ,KAAkD,MAAlD,GAA2D,cAA3D,GAA4E,EAA9F;;EAEA,IAAMC,UAAU,gBAAG,gCAAC,2BAAD;IAAiB,eAAe,EAAER;EAAlC,GAAuDD,aAAvD,EAAnB;;EACA,IAAI,CAACK,SAAD,IAAc,CAACD,SAAnB,EAA8B,OAAOK,UAAP;EAE9B,oBACE,gCAAC,mBAAD;IAAS,SAAS,EAAEJ,SAApB;IAA+B,SAAS,EAAED;EAA1C,GACGK,UADH,CADF;AAKD,CAjBD;;AAmBAZ,SAAS,CAACa,SAAV,GAAsB;EACpBZ,IAAI,EAAEa,sBAAUC,MADI;EAEpBb,QAAQ,EAAEY,sBAAUC,MAFA;EAGpBC,YAAY,EAAEF,sBAAUC,MAHJ;EAIpBE,YAAY,EAAEH,sBAAUC;AAJJ,CAAtB;AAOAf,SAAS,CAACkB,YAAV,GAAyB;EACvBhB,QAAQ,EAAE,EADa;EAEvBc,YAAY,EAAE,EAFS;EAGvBC,YAAY,EAAE,EAHS;EAIvBhB,IAAI,EAAE;AAJiB,CAAzB;eAOeD,S"}
|