@blaze-cms/react-page-builder 0.124.0-alpha.25 → 0.124.0-alpha.29
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 +32 -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.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.map +1 -1
- 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/ItemListButton/ItemListButton.js.map +1 -1
- package/lib/components/ItemListCounter/ItemListCounter.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/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 +3 -1
- package/lib/components/Menu/Menu.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 +15 -7
- package/lib/components/SearchContent/SearchContent.js.map +1 -1
- package/lib/components/SearchContent/SearchContentItems.js +5 -2
- package/lib/components/SearchContent/SearchContentItems.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/CloseMobileForm.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/MobileFormToolbar.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/ResetDesktopForm.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +16 -44
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +86 -21
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js +17 -9
- 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 +27 -11
- package/lib/components/SearchFilter/components/Select.js.map +1 -1
- package/lib/components/SearchFilter/components/TextSearch.js +1 -5
- package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-filters-query.js +87 -0
- package/lib/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
- package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
- package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
- package/lib/components/SearchFilter/helpers/calculate-min-max.js.map +1 -1
- package/lib/components/SearchFilter/helpers/check-if-range-updated.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-filter-value-from-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-initial-filter-values.js.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/index.js +8 -0
- package/lib/components/SearchFilter/helpers/index.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-item-list-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/Menu/Menu.js +3 -1
- package/lib-es/components/Menu/Menu.js.map +1 -1
- package/lib-es/components/SearchContent/SearchContent.js +9 -5
- package/lib-es/components/SearchContent/SearchContent.js.map +1 -1
- package/lib-es/components/SearchContent/SearchContentItems.js +4 -2
- package/lib-es/components/SearchContent/SearchContentItems.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +2 -4
- package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +13 -38
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +69 -14
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js +17 -9
- package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Select.js +23 -8
- package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
- package/lib-es/components/SearchFilter/components/TextSearch.js +1 -5
- package/lib-es/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-filters-query.js +54 -0
- package/lib-es/components/SearchFilter/helpers/build-filters-query.js.map +1 -0
- package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
- package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/index.js +2 -1
- package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
- package/package.json +3 -2
- package/src/components/Menu/Menu.js +5 -2
- package/src/components/SearchContent/SearchContent.js +9 -5
- package/src/components/SearchContent/SearchContentItems.js +7 -1
- package/src/components/SearchFilter/SearchFilter/FiltersList.js +30 -37
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +11 -25
- package/src/components/SearchFilter/SearchFilterContainer.js +56 -15
- package/src/components/SearchFilter/components/Checkbox.js +22 -8
- package/src/components/SearchFilter/components/Select.js +18 -11
- package/src/components/SearchFilter/components/TextSearch.js +1 -3
- package/src/components/SearchFilter/helpers/build-filters-query.js +40 -0
- package/src/components/SearchFilter/helpers/build-raw-query-stringified.js +2 -1
- package/src/components/SearchFilter/helpers/get-initial-filter-values.js +1 -0
- package/src/components/SearchFilter/helpers/index.js +3 -1
- package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +12 -11
- package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +3 -6
- package/tests/unit/src/components/SearchFilter/__snapshots__/SearchFilterContainer.test.js.snap +1 -7
- package/tests/unit/src/components/SearchFilter/components/__snapshots__/Checkbox.test.js.snap +2 -0
- package/tests/unit/src/components/SearchFilter/components/__snapshots__/Select.test.js.snap +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":["React","useState","PropTypes","upperFirst","Checkboxes","FaChevronDown","FaChevronUp","withTitle","decodeValue","LIMIT_MIN","LIMIT_MAX","MORE","LESS","Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","shouldDisplayMore","eData","newCheckboxValues","length","propTypes","object","isRequired","string","func","bool","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Checkbox.js"],"sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport upperFirst from 'lodash.upperfirst';\nimport { Checkboxes } from '@blaze-react/checkboxes';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { withTitle } from '../../../HOC';\nimport { decodeValue } from '../helpers';\nimport { LIMIT_MIN, LIMIT_MAX, MORE, LESS } from '../constants';\n\nconst Checkbox = ({
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":["React","useState","PropTypes","upperFirst","Checkboxes","FaChevronDown","FaChevronUp","withTitle","decodeValue","LIMIT_MIN","LIMIT_MAX","MORE","LESS","Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","displayFilterCount","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","doc_count","count","optionLabel","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","disabled","shouldDisplayMore","eData","newCheckboxValues","length","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\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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"}
|
|
@@ -11,11 +11,22 @@ const SelectFilter = ({
|
|
|
11
11
|
updateFilterValues,
|
|
12
12
|
filterValues,
|
|
13
13
|
shouldSearch,
|
|
14
|
-
displayLabelAsPlaceholder
|
|
14
|
+
displayLabelAsPlaceholder,
|
|
15
|
+
displayFilterCount
|
|
15
16
|
}) => {
|
|
16
17
|
const filterValue = filterValues[prop] || '';
|
|
17
|
-
const
|
|
18
|
-
const
|
|
18
|
+
const disabledOptions = [];
|
|
19
|
+
const {
|
|
20
|
+
buckets = []
|
|
21
|
+
} = data[prop] || {};
|
|
22
|
+
const options = buckets.map(({
|
|
23
|
+
key,
|
|
24
|
+
doc_count: count
|
|
25
|
+
}) => {
|
|
26
|
+
if (!count) disabledOptions.push(key);
|
|
27
|
+
const optionLabel = displayFilterCount ? `${key} (${count})` : key;
|
|
28
|
+
return [key, optionLabel];
|
|
29
|
+
}).filter(Boolean).sort();
|
|
19
30
|
const labelText = label || prop;
|
|
20
31
|
let labelToUse = labelText;
|
|
21
32
|
let defaultTextValue = DEFAULT_OPTION;
|
|
@@ -30,7 +41,7 @@ const SelectFilter = ({
|
|
|
30
41
|
value: filterValue,
|
|
31
42
|
id: prop,
|
|
32
43
|
"data-testid": `filter-${prop}`,
|
|
33
|
-
options:
|
|
44
|
+
options: options,
|
|
34
45
|
defaultTextValue: defaultTextValue,
|
|
35
46
|
onChange: ({
|
|
36
47
|
value
|
|
@@ -40,23 +51,27 @@ const SelectFilter = ({
|
|
|
40
51
|
updateFilterValues({
|
|
41
52
|
[prop]: valueToUse
|
|
42
53
|
}, shouldSearch);
|
|
43
|
-
}
|
|
54
|
+
},
|
|
55
|
+
disabled: disabledOptions
|
|
44
56
|
});
|
|
45
57
|
};
|
|
46
58
|
|
|
47
59
|
SelectFilter.propTypes = {
|
|
48
60
|
data: PropTypes.object.isRequired,
|
|
49
61
|
prop: PropTypes.string.isRequired,
|
|
50
|
-
filterValues: PropTypes.object
|
|
62
|
+
filterValues: PropTypes.object,
|
|
51
63
|
updateFilterValues: PropTypes.func.isRequired,
|
|
52
64
|
shouldSearch: PropTypes.bool,
|
|
53
65
|
label: PropTypes.string,
|
|
54
|
-
displayLabelAsPlaceholder: PropTypes.bool
|
|
66
|
+
displayLabelAsPlaceholder: PropTypes.bool,
|
|
67
|
+
displayFilterCount: PropTypes.bool
|
|
55
68
|
};
|
|
56
69
|
SelectFilter.defaultProps = {
|
|
70
|
+
filterValues: {},
|
|
57
71
|
shouldSearch: false,
|
|
58
72
|
label: '',
|
|
59
|
-
displayLabelAsPlaceholder: false
|
|
73
|
+
displayLabelAsPlaceholder: false,
|
|
74
|
+
displayFilterCount: false
|
|
60
75
|
};
|
|
61
76
|
export default withTitle(SelectFilter);
|
|
62
77
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["React","PropTypes","Select","withTitle","DEFAULT_OPTION","SelectFilter","data","label","prop","updateFilterValues","filterValues","shouldSearch","displayLabelAsPlaceholder","filterValue","
|
|
1
|
+
{"version":3,"file":"Select.js","names":["React","PropTypes","Select","withTitle","DEFAULT_OPTION","SelectFilter","data","label","prop","updateFilterValues","filterValues","shouldSearch","displayLabelAsPlaceholder","displayFilterCount","filterValue","disabledOptions","buckets","options","map","key","doc_count","count","push","optionLabel","filter","Boolean","sort","labelText","labelToUse","defaultTextValue","value","valueToUse","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,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,MAAP,MAAmB,qBAAnB;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,cAAT,QAA+B,cAA/B;;AAEA,MAAMC,YAAY,GAAG,CAAC;EACpBC,IADoB;EAEpBC,KAFoB;EAGpBC,IAHoB;EAIpBC,kBAJoB;EAKpBC,YALoB;EAMpBC,YANoB;EAOpBC,yBAPoB;EAQpBC;AARoB,CAAD,KASf;EACJ,MAAMC,WAAW,GAAGJ,YAAY,CAACF,IAAD,CAAZ,IAAsB,EAA1C;EACA,MAAMO,eAAe,GAAG,EAAxB;EACA,MAAM;IAAEC,OAAO,GAAG;EAAZ,IAAmBV,IAAI,CAACE,IAAD,CAAJ,IAAc,EAAvC;EACA,MAAMS,OAAO,GAAGD,OAAO,CACpBE,GADa,CACT,CAAC;IAAEC,GAAF;IAAOC,SAAS,EAAEC;EAAlB,CAAD,KAA+B;IAClC,IAAI,CAACA,KAAL,EAAYN,eAAe,CAACO,IAAhB,CAAqBH,GAArB;IACZ,MAAMI,WAAW,GAAGV,kBAAkB,GAAI,GAAEM,GAAI,KAAIE,KAAM,GAApB,GAAyBF,GAA/D;IACA,OAAO,CAACA,GAAD,EAAMI,WAAN,CAAP;EACD,CALa,EAMbC,MANa,CAMNC,OANM,EAObC,IAPa,EAAhB;EASA,MAAMC,SAAS,GAAGpB,KAAK,IAAIC,IAA3B;EACA,IAAIoB,UAAU,GAAGD,SAAjB;EACA,IAAIE,gBAAgB,GAAGzB,cAAvB;;EACA,IAAIQ,yBAAJ,EAA+B;IAC7BiB,gBAAgB,GAAGD,UAAnB;IACAA,UAAU,GAAG,IAAb;EACD;;EAED,oBACE,oBAAC,MAAD;IACE,KAAK,EAAEA,UADT;IAEE,KAAK,EAAEd,WAFT;IAGE,EAAE,EAAEN,IAHN;IAIE,eAAc,UAASA,IAAK,EAJ9B;IAKE,OAAO,EAAES,OALX;IAME,gBAAgB,EAAEY,gBANpB;IAOE,QAAQ,EAAE,CAAC;MAAEC;IAAF,CAAD,KAAe;MACvB,IAAIC,UAAU,GAAGD,KAAjB;MACA,IAAIA,KAAK,KAAKD,gBAAd,EAAgCE,UAAU,GAAG,EAAb;MAChCtB,kBAAkB,CAAC;QAAE,CAACD,IAAD,GAAQuB;MAAV,CAAD,EAAyBpB,YAAzB,CAAlB;IACD,CAXH;IAYE,QAAQ,EAAEI;EAZZ,EADF;AAgBD,CA9CD;;AAgDAV,YAAY,CAAC2B,SAAb,GAAyB;EACvB1B,IAAI,EAAEL,SAAS,CAACgC,MAAV,CAAiBC,UADA;EAEvB1B,IAAI,EAAEP,SAAS,CAACkC,MAAV,CAAiBD,UAFA;EAGvBxB,YAAY,EAAET,SAAS,CAACgC,MAHD;EAIvBxB,kBAAkB,EAAER,SAAS,CAACmC,IAAV,CAAeF,UAJZ;EAKvBvB,YAAY,EAAEV,SAAS,CAACoC,IALD;EAMvB9B,KAAK,EAAEN,SAAS,CAACkC,MANM;EAOvBvB,yBAAyB,EAAEX,SAAS,CAACoC,IAPd;EAQvBxB,kBAAkB,EAAEZ,SAAS,CAACoC;AARP,CAAzB;AAWAhC,YAAY,CAACiC,YAAb,GAA4B;EAC1B5B,YAAY,EAAE,EADY;EAE1BC,YAAY,EAAE,KAFY;EAG1BJ,KAAK,EAAE,EAHmB;EAI1BK,yBAAyB,EAAE,KAJD;EAK1BC,kBAAkB,EAAE;AALM,CAA5B;AAQA,eAAeV,SAAS,CAACE,YAAD,CAAxB"}
|
|
@@ -8,9 +8,7 @@ import { SEARCH_TERM } from '../constants';
|
|
|
8
8
|
const TextSearch = ({
|
|
9
9
|
label,
|
|
10
10
|
searchValue,
|
|
11
|
-
updateFilterValues
|
|
12
|
-
handleSubmit,
|
|
13
|
-
filterValues
|
|
11
|
+
updateFilterValues
|
|
14
12
|
}) => /*#__PURE__*/React.createElement("div", {
|
|
15
13
|
className: "search"
|
|
16
14
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -40,10 +38,8 @@ const TextSearch = ({
|
|
|
40
38
|
}, /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(MdSearch, null)))));
|
|
41
39
|
|
|
42
40
|
TextSearch.propTypes = {
|
|
43
|
-
filterValues: PropTypes.object.isRequired,
|
|
44
41
|
searchValue: PropTypes.string.isRequired,
|
|
45
42
|
updateFilterValues: PropTypes.func.isRequired,
|
|
46
|
-
handleSubmit: PropTypes.func.isRequired,
|
|
47
43
|
label: PropTypes.string
|
|
48
44
|
};
|
|
49
45
|
TextSearch.defaultProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextSearch.js","names":["React","PropTypes","Input","MdSearch","withTitle","SEARCH_TERM","TextSearch","label","searchValue","updateFilterValues","
|
|
1
|
+
{"version":3,"file":"TextSearch.js","names":["React","PropTypes","Input","MdSearch","withTitle","SEARCH_TERM","TextSearch","label","searchValue","updateFilterValues","value","eValue","e","preventDefault","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,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,oBAAlB;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,WAAT,QAA4B,cAA5B;;AAEA,MAAMC,UAAU,GAAG,CAAC;EAAEC,KAAF;EAASC,WAAT;EAAsBC;AAAtB,CAAD,kBACjB;EAAK,SAAS,EAAC;AAAf,gBACE;EAAK,SAAS,EAAC;AAAf,gBACE;EAAK,SAAS,EAAC;AAAf,gBACE,oBAAC,KAAD;EACE,EAAE,EAAEJ,WADN;EAEE,KAAK,EAAEG,WAFT;EAGE,WAAW,EAAED,KAAK,IAAI,QAHxB;EAIE,QAAQ,EAAE,CAAC;IAAEG,KAAK,EAAEC;EAAT,CAAD,KAAuB;IAC/BF,kBAAkB,CAAC;MAAE,CAACJ,WAAD,GAAeM;IAAjB,CAAD,EAA4B,KAA5B,CAAlB;EACD;AANH,EADF,CADF,eAWE;EACE,IAAI,EAAC,QADP;EAEE,SAAS,EAAC,iCAFZ;EAGE,OAAO,EAAEC,CAAC,IAAI;IACZA,CAAC,CAACC,cAAF;IACAJ,kBAAkB,CAAC;MAAE,CAACJ,WAAD,GAAeG;IAAjB,CAAD,EAAiC,IAAjC,CAAlB;EACD;AANH,gBAOE,4CACE,oBAAC,QAAD,OADF,CAPF,CAXF,CADF,CADF;;AA4BAF,UAAU,CAACQ,SAAX,GAAuB;EACrBN,WAAW,EAAEP,SAAS,CAACc,MAAV,CAAiBC,UADT;EAErBP,kBAAkB,EAAER,SAAS,CAACgB,IAAV,CAAeD,UAFd;EAGrBT,KAAK,EAAEN,SAAS,CAACc;AAHI,CAAvB;AAMAT,UAAU,CAACY,YAAX,GAA0B;EACxBX,KAAK,EAAE;AADiB,CAA1B;AAIA,eAAeH,SAAS,CAACE,UAAD,CAAxB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
const builFilterObject = (key, value, filters) => {
|
|
2
|
+
const isArray = Array.isArray(value);
|
|
3
|
+
|
|
4
|
+
if (!isArray) {
|
|
5
|
+
const singleFilterObj = {
|
|
6
|
+
match: {
|
|
7
|
+
[key]: value
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
filters.push(singleFilterObj);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
value.forEach(filterValue => {
|
|
15
|
+
filters.push({
|
|
16
|
+
match: {
|
|
17
|
+
[key]: filterValue
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const buildFiltersQuery = (query, filterBy, filterByProperty) => {
|
|
24
|
+
const mustFilters = [];
|
|
25
|
+
Object.keys(query).forEach(queryKey => {
|
|
26
|
+
if (queryKey === 'search_term' || queryKey === 'shouldSearch') return;
|
|
27
|
+
if (!queryKey || !query[queryKey]) return;
|
|
28
|
+
const queryValue = query[queryKey];
|
|
29
|
+
const queryKeyword = `${queryKey}.keyword`;
|
|
30
|
+
builFilterObject(queryKeyword, queryValue, mustFilters);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
if (filterByProperty && filterByProperty.length) {
|
|
34
|
+
filterByProperty && filterByProperty.forEach(filterByPropOption => {
|
|
35
|
+
const [filterByPropKey] = filterByPropOption.split('/');
|
|
36
|
+
filterBy.forEach(filterByOption => {
|
|
37
|
+
if (filterByOption.indexOf(filterByPropKey) === -1) return;
|
|
38
|
+
const [, filteryByValue] = filterByOption.split('/');
|
|
39
|
+
const filterByKeyword = `${filterByPropKey}.keyword`;
|
|
40
|
+
if (!filteryByValue) return;
|
|
41
|
+
mustFilters.push({
|
|
42
|
+
match: {
|
|
43
|
+
[filterByKeyword]: filteryByValue
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return mustFilters;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default buildFiltersQuery;
|
|
54
|
+
//# sourceMappingURL=build-filters-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-filters-query.js","names":["builFilterObject","key","value","filters","isArray","Array","singleFilterObj","match","push","forEach","filterValue","buildFiltersQuery","query","filterBy","filterByProperty","mustFilters","Object","keys","queryKey","queryValue","queryKeyword","length","filterByPropOption","filterByPropKey","split","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../../../src/components/SearchFilter/helpers/build-filters-query.js"],"sourcesContent":["const builFilterObject = (key, value, filters) => {\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\nconst buildFiltersQuery = (query, filterBy, filterByProperty) => {\n const mustFilters = [];\n Object.keys(query).forEach(queryKey => {\n if (queryKey === 'search_term' || queryKey === 'shouldSearch') return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n const queryKeyword = `${queryKey}.keyword`;\n builFilterObject(queryKeyword, queryValue, mustFilters);\n });\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty &&\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG,CAACC,GAAD,EAAMC,KAAN,EAAaC,OAAb,KAAyB;EAChD,MAAMC,OAAO,GAAGC,KAAK,CAACD,OAAN,CAAcF,KAAd,CAAhB;;EACA,IAAI,CAACE,OAAL,EAAc;IACZ,MAAME,eAAe,GAAG;MAAEC,KAAK,EAAE;QAAE,CAACN,GAAD,GAAOC;MAAT;IAAT,CAAxB;IACAC,OAAO,CAACK,IAAR,CAAaF,eAAb;IACA;EACD;;EAEDJ,KAAK,CAACO,OAAN,CAAcC,WAAW,IAAI;IAC3BP,OAAO,CAACK,IAAR,CAAa;MAAED,KAAK,EAAE;QAAE,CAACN,GAAD,GAAOS;MAAT;IAAT,CAAb;EACD,CAFD;AAGD,CAXD;;AAYA,MAAMC,iBAAiB,GAAG,CAACC,KAAD,EAAQC,QAAR,EAAkBC,gBAAlB,KAAuC;EAC/D,MAAMC,WAAW,GAAG,EAApB;EACAC,MAAM,CAACC,IAAP,CAAYL,KAAZ,EAAmBH,OAAnB,CAA2BS,QAAQ,IAAI;IACrC,IAAIA,QAAQ,KAAK,aAAb,IAA8BA,QAAQ,KAAK,cAA/C,EAA+D;IAC/D,IAAI,CAACA,QAAD,IAAa,CAACN,KAAK,CAACM,QAAD,CAAvB,EAAmC;IACnC,MAAMC,UAAU,GAAGP,KAAK,CAACM,QAAD,CAAxB;IACA,MAAME,YAAY,GAAI,GAAEF,QAAS,UAAjC;IACAlB,gBAAgB,CAACoB,YAAD,EAAeD,UAAf,EAA2BJ,WAA3B,CAAhB;EACD,CAND;;EAQA,IAAID,gBAAgB,IAAIA,gBAAgB,CAACO,MAAzC,EAAiD;IAC/CP,gBAAgB,IACdA,gBAAgB,CAACL,OAAjB,CAAyBa,kBAAkB,IAAI;MAC7C,MAAM,CAACC,eAAD,IAAoBD,kBAAkB,CAACE,KAAnB,CAAyB,GAAzB,CAA1B;MACAX,QAAQ,CAACJ,OAAT,CAAiBgB,cAAc,IAAI;QACjC,IAAIA,cAAc,CAACC,OAAf,CAAuBH,eAAvB,MAA4C,CAAC,CAAjD,EAAoD;QACpD,MAAM,GAAGI,cAAH,IAAqBF,cAAc,CAACD,KAAf,CAAqB,GAArB,CAA3B;QACA,MAAMI,eAAe,GAAI,GAAEL,eAAgB,UAA3C;QACA,IAAI,CAACI,cAAL,EAAqB;QACrBZ,WAAW,CAACP,IAAZ,CAAiB;UAAED,KAAK,EAAE;YAAE,CAACqB,eAAD,GAAmBD;UAArB;QAAT,CAAjB;MACD,CAND;IAOD,CATD,CADF;EAWD;;EAED,OAAOZ,WAAP;AACD,CAzBD;;AA2BA,eAAeJ,iBAAf"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { KEYWORD, SIZE } from '../constants';
|
|
2
2
|
|
|
3
|
-
const buildRawQueryStringified = (checkboxSelectValues, rangeValues, entity) => {
|
|
3
|
+
const buildRawQueryStringified = (checkboxSelectValues, rangeValues, entity, mustFilters) => {
|
|
4
4
|
if (!checkboxSelectValues.length && !rangeValues.length) return '';
|
|
5
5
|
const aggs = {};
|
|
6
6
|
checkboxSelectValues.forEach(fieldName => {
|
|
@@ -30,6 +30,7 @@ const buildRawQueryStringified = (checkboxSelectValues, rangeValues, entity) =>
|
|
|
30
30
|
docType: entity
|
|
31
31
|
}
|
|
32
32
|
}],
|
|
33
|
+
must: mustFilters,
|
|
33
34
|
minimum_should_match: 1
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-raw-query-stringified.js","names":["KEYWORD","SIZE","buildRawQueryStringified","checkboxSelectValues","rangeValues","entity","length","aggs","forEach","fieldName","terms","field","size","stats","JSON","stringify","query","bool","filter","should","match","docType","minimum_should_match"],"sources":["../../../../src/components/SearchFilter/helpers/build-raw-query-stringified.js"],"sourcesContent":["import { KEYWORD, SIZE } from '../constants';\n\nconst buildRawQueryStringified = (checkboxSelectValues, rangeValues, entity) => {\n if (!checkboxSelectValues.length && !rangeValues.length) return '';\n\n const aggs = {};\n\n checkboxSelectValues.forEach(fieldName => {\n aggs[fieldName] = {\n terms: {\n field: `${fieldName}.${KEYWORD}`,\n size: SIZE\n }\n };\n });\n\n rangeValues.forEach(fieldName => {\n aggs[fieldName] = {\n stats: {\n field: fieldName\n }\n };\n });\n\n return JSON.stringify({\n aggs,\n size: 0,\n query: {\n bool: {\n filter: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n }\n }\n });\n};\n\nexport default buildRawQueryStringified;\n"],"mappings":"AAAA,SAASA,OAAT,EAAkBC,IAAlB,QAA8B,cAA9B;;AAEA,MAAMC,wBAAwB,GAAG,CAACC,oBAAD,EAAuBC,WAAvB,EAAoCC,MAApC,
|
|
1
|
+
{"version":3,"file":"build-raw-query-stringified.js","names":["KEYWORD","SIZE","buildRawQueryStringified","checkboxSelectValues","rangeValues","entity","mustFilters","length","aggs","forEach","fieldName","terms","field","size","stats","JSON","stringify","query","bool","filter","should","match","docType","must","minimum_should_match"],"sources":["../../../../src/components/SearchFilter/helpers/build-raw-query-stringified.js"],"sourcesContent":["import { KEYWORD, SIZE } from '../constants';\n\nconst buildRawQueryStringified = (checkboxSelectValues, rangeValues, entity, mustFilters) => {\n if (!checkboxSelectValues.length && !rangeValues.length) return '';\n\n const aggs = {};\n\n checkboxSelectValues.forEach(fieldName => {\n aggs[fieldName] = {\n terms: {\n field: `${fieldName}.${KEYWORD}`,\n size: SIZE\n }\n };\n });\n\n rangeValues.forEach(fieldName => {\n aggs[fieldName] = {\n stats: {\n field: fieldName\n }\n };\n });\n\n return JSON.stringify({\n aggs,\n size: 0,\n query: {\n bool: {\n filter: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n must: mustFilters,\n minimum_should_match: 1\n }\n }\n }\n }\n });\n};\n\nexport default buildRawQueryStringified;\n"],"mappings":"AAAA,SAASA,OAAT,EAAkBC,IAAlB,QAA8B,cAA9B;;AAEA,MAAMC,wBAAwB,GAAG,CAACC,oBAAD,EAAuBC,WAAvB,EAAoCC,MAApC,EAA4CC,WAA5C,KAA4D;EAC3F,IAAI,CAACH,oBAAoB,CAACI,MAAtB,IAAgC,CAACH,WAAW,CAACG,MAAjD,EAAyD,OAAO,EAAP;EAEzD,MAAMC,IAAI,GAAG,EAAb;EAEAL,oBAAoB,CAACM,OAArB,CAA6BC,SAAS,IAAI;IACxCF,IAAI,CAACE,SAAD,CAAJ,GAAkB;MAChBC,KAAK,EAAE;QACLC,KAAK,EAAG,GAAEF,SAAU,IAAGV,OAAQ,EAD1B;QAELa,IAAI,EAAEZ;MAFD;IADS,CAAlB;EAMD,CAPD;EASAG,WAAW,CAACK,OAAZ,CAAoBC,SAAS,IAAI;IAC/BF,IAAI,CAACE,SAAD,CAAJ,GAAkB;MAChBI,KAAK,EAAE;QACLF,KAAK,EAAEF;MADF;IADS,CAAlB;EAKD,CAND;EAQA,OAAOK,IAAI,CAACC,SAAL,CAAe;IACpBR,IADoB;IAEpBK,IAAI,EAAE,CAFc;IAGpBI,KAAK,EAAE;MACLC,IAAI,EAAE;QACJC,MAAM,EAAE;UACND,IAAI,EAAE;YACJE,MAAM,EAAE,CACN;cACEC,KAAK,EAAE;gBACLC,OAAO,EAAEjB;cADJ;YADT,CADM,CADJ;YAQJkB,IAAI,EAAEjB,WARF;YASJkB,oBAAoB,EAAE;UATlB;QADA;MADJ;IADD;EAHa,CAAf,CAAP;AAqBD,CA3CD;;AA6CA,eAAetB,wBAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-initial-filter-values.js","names":["SEARCH_TERM","getFilterValueFromQuery","getInitialFilterValues","filterData","filters","query","filterValues","Object","keys","forEach","key","filterProps","find","propsToDisplay","prop"],"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 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,SAASA,WAAT,QAA4B,cAA5B;AACA,OAAOC,uBAAP,MAAoC,+BAApC;;AAEA,MAAMC,sBAAsB,GAAG,CAACC,UAAD,EAAaC,OAAb,EAAsBC,KAAtB,KAAgC;EAC7D,MAAMC,YAAY,GAAG,EAArB;
|
|
1
|
+
{"version":3,"file":"get-initial-filter-values.js","names":["SEARCH_TERM","getFilterValueFromQuery","getInitialFilterValues","filterData","filters","query","filterValues","Object","keys","forEach","key","filterProps","find","propsToDisplay","prop"],"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,SAASA,WAAT,QAA4B,cAA5B;AACA,OAAOC,uBAAP,MAAoC,+BAApC;;AAEA,MAAMC,sBAAsB,GAAG,CAACC,UAAD,EAAaC,OAAb,EAAsBC,KAAtB,KAAgC;EAC7D,MAAMC,YAAY,GAAG,EAArB;EAEAC,MAAM,CAACC,IAAP,CAAYL,UAAZ,EAAwBM,OAAxB,CAAgCC,GAAG,IAAI;IACrC,MAAMC,WAAW,GACfP,OAAO,CAACQ,IAAR,CAAa,CAAC;MAAEC;IAAF,CAAD,KAAwBA,cAAc,CAACD,IAAf,CAAoBE,IAAI,IAAIJ,GAAG,KAAKI,IAApC,CAArC,KAAmF,EADrF;IAEAR,YAAY,CAACI,GAAD,CAAZ,GAAoBT,uBAAuB,CAACS,GAAD,EAAMC,WAAN,EAAmBR,UAAU,CAACO,GAAD,CAA7B,EAAoCL,KAApC,CAA3C;EACD,CAJD;EAKAC,YAAY,CAACN,WAAD,CAAZ,GAA4BK,KAAK,CAACL,WAAD,CAAL,IAAsB,EAAlD;EAEA,OAAOM,YAAP;AACD,CAXD;;AAaA,eAAeJ,sBAAf"}
|
|
@@ -13,5 +13,6 @@ import isDeviceDesktop from './is-device-desktop';
|
|
|
13
13
|
import getInitialFilterValues from './get-initial-filter-values';
|
|
14
14
|
import getFilterValueFromQuery from './get-filter-value-from-query';
|
|
15
15
|
import buildQuery from './build-query';
|
|
16
|
-
|
|
16
|
+
import buildFiltersQuery from './build-filters-query';
|
|
17
|
+
export { buildQuery, buildNewQuery, buildRawQueryStringified, decodeValue, encodeValue, checkIfRangeUpdated, getResponsiveFilterClassnames, getDisplayValue, calculateStep, calculateMinMax, getIntersectedProp, getRangeValue, getSelectOptions, isDeviceDesktop, getInitialFilterValues, getFilterValueFromQuery, buildFiltersQuery };
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["buildNewQuery","buildRawQueryStringified","decodeValue","encodeValue","checkIfRangeUpdated","getResponsiveFilterClassnames","getDisplayValue","calculateStep","calculateMinMax","getIntersectedProp","getRangeValue","getSelectOptions","isDeviceDesktop","getInitialFilterValues","getFilterValueFromQuery","buildQuery"],"sources":["../../../../src/components/SearchFilter/helpers/index.js"],"sourcesContent":["import buildNewQuery from './build-new-query';\nimport buildRawQueryStringified from './build-raw-query-stringified';\nimport { decodeValue, encodeValue } from './decode-encode';\nimport checkIfRangeUpdated from './check-if-range-updated';\nimport getResponsiveFilterClassnames from './get-responsive-filter-classnames';\nimport getDisplayValue from './get-display-value';\nimport calculateStep from './calculate-step';\nimport calculateMinMax from './calculate-min-max';\nimport getIntersectedProp from './get-intersected-prop';\nimport getRangeValue from './get-range-value';\nimport getSelectOptions from './get-select-options';\nimport isDeviceDesktop from './is-device-desktop';\nimport getInitialFilterValues from './get-initial-filter-values';\nimport getFilterValueFromQuery from './get-filter-value-from-query';\nimport buildQuery from './build-query';\n\nexport {\n buildQuery,\n buildNewQuery,\n buildRawQueryStringified,\n decodeValue,\n encodeValue,\n checkIfRangeUpdated,\n getResponsiveFilterClassnames,\n getDisplayValue,\n calculateStep,\n calculateMinMax,\n getIntersectedProp,\n getRangeValue,\n getSelectOptions,\n isDeviceDesktop,\n getInitialFilterValues,\n getFilterValueFromQuery\n};\n"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,mBAA1B;AACA,OAAOC,wBAAP,MAAqC,+BAArC;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,iBAAzC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,OAAOC,6BAAP,MAA0C,oCAA1C;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,OAAOC,UAAP,MAAuB,eAAvB;AAEA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["buildNewQuery","buildRawQueryStringified","decodeValue","encodeValue","checkIfRangeUpdated","getResponsiveFilterClassnames","getDisplayValue","calculateStep","calculateMinMax","getIntersectedProp","getRangeValue","getSelectOptions","isDeviceDesktop","getInitialFilterValues","getFilterValueFromQuery","buildQuery","buildFiltersQuery"],"sources":["../../../../src/components/SearchFilter/helpers/index.js"],"sourcesContent":["import buildNewQuery from './build-new-query';\nimport buildRawQueryStringified from './build-raw-query-stringified';\nimport { decodeValue, encodeValue } from './decode-encode';\nimport checkIfRangeUpdated from './check-if-range-updated';\nimport getResponsiveFilterClassnames from './get-responsive-filter-classnames';\nimport getDisplayValue from './get-display-value';\nimport calculateStep from './calculate-step';\nimport calculateMinMax from './calculate-min-max';\nimport getIntersectedProp from './get-intersected-prop';\nimport getRangeValue from './get-range-value';\nimport getSelectOptions from './get-select-options';\nimport isDeviceDesktop from './is-device-desktop';\nimport getInitialFilterValues from './get-initial-filter-values';\nimport getFilterValueFromQuery from './get-filter-value-from-query';\nimport buildQuery from './build-query';\nimport buildFiltersQuery from './build-filters-query';\n\nexport {\n buildQuery,\n buildNewQuery,\n buildRawQueryStringified,\n decodeValue,\n encodeValue,\n checkIfRangeUpdated,\n getResponsiveFilterClassnames,\n getDisplayValue,\n calculateStep,\n calculateMinMax,\n getIntersectedProp,\n getRangeValue,\n getSelectOptions,\n isDeviceDesktop,\n getInitialFilterValues,\n getFilterValueFromQuery,\n buildFiltersQuery\n};\n"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,mBAA1B;AACA,OAAOC,wBAAP,MAAqC,+BAArC;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,iBAAzC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,OAAOC,6BAAP,MAA0C,oCAA1C;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,OAAOC,iBAAP,MAA8B,uBAA9B;AAEA,SACED,UADF,EAEEf,aAFF,EAGEC,wBAHF,EAIEC,WAJF,EAKEC,WALF,EAMEC,mBANF,EAOEC,6BAPF,EAQEC,eARF,EASEC,aATF,EAUEC,eAVF,EAWEC,kBAXF,EAYEC,aAZF,EAaEC,gBAbF,EAcEC,eAdF,EAeEC,sBAfF,EAgBEC,uBAhBF,EAiBEE,iBAjBF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.124.0-alpha.
|
|
3
|
+
"version": "0.124.0-alpha.29",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"@blaze-cms/core-errors": "^0.118.0",
|
|
32
32
|
"@blaze-cms/image-cdn-react": "^0.2.0",
|
|
33
33
|
"@blaze-cms/nextjs-components": "^0.124.0-alpha.2",
|
|
34
|
+
"@blaze-cms/plugin-search-ui": "^0.121.0",
|
|
34
35
|
"@blaze-cms/setup-ui": "^0.92.0",
|
|
35
36
|
"@blaze-cms/utils": "^0.118.0",
|
|
36
37
|
"@blaze-react/breadcrumb": "0.8.0-alpha.60",
|
|
@@ -84,5 +85,5 @@
|
|
|
84
85
|
"lib/*",
|
|
85
86
|
"lib-es/*"
|
|
86
87
|
],
|
|
87
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "e9800fa33022ed743c9548a1e0df2ca73ee3d262"
|
|
88
89
|
}
|
|
@@ -28,8 +28,11 @@ const Menu = ({
|
|
|
28
28
|
const [showMobileMenu, setShowMobileMenu] = useState(false);
|
|
29
29
|
|
|
30
30
|
const shouldDisplayCollapsed = collapse && isMobile;
|
|
31
|
+
|
|
31
32
|
const mobileButtonClass = shouldDisplayCollapsed && isMobile ? mobileButtonModifier : HIDDEN;
|
|
33
|
+
|
|
32
34
|
const shouldDisplayChildren = shouldDisplayCollapsed ? showMobileMenu : true;
|
|
35
|
+
|
|
33
36
|
const childrenDesktopModifier =
|
|
34
37
|
shouldDisplayChildren && !isMobile ? modifier : `${modifier} ${HIDDEN}`;
|
|
35
38
|
|
|
@@ -39,7 +42,7 @@ const Menu = ({
|
|
|
39
42
|
const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';
|
|
40
43
|
|
|
41
44
|
return (
|
|
42
|
-
|
|
45
|
+
<div className="menu--wrapper">
|
|
43
46
|
{collapse && (
|
|
44
47
|
<div className="menu--mobile-wrapper">
|
|
45
48
|
<div
|
|
@@ -89,7 +92,7 @@ const Menu = ({
|
|
|
89
92
|
)}
|
|
90
93
|
</ul>
|
|
91
94
|
</div>
|
|
92
|
-
|
|
95
|
+
</div>
|
|
93
96
|
);
|
|
94
97
|
};
|
|
95
98
|
|
|
@@ -12,7 +12,8 @@ const SearchContent = ({
|
|
|
12
12
|
searchInputWrapperDesktop,
|
|
13
13
|
collapsible,
|
|
14
14
|
isMobile,
|
|
15
|
-
placeholder
|
|
15
|
+
placeholder,
|
|
16
|
+
modifier
|
|
16
17
|
}) => {
|
|
17
18
|
const [collapsed, setCollapsed] = useState(false);
|
|
18
19
|
const router = useRouter();
|
|
@@ -45,8 +46,9 @@ const SearchContent = ({
|
|
|
45
46
|
setSearchTerm('');
|
|
46
47
|
};
|
|
47
48
|
|
|
49
|
+
const className = ['search-content', modifier, responsiveClasses].filter(Boolean).join(' ');
|
|
48
50
|
return collapsed ? (
|
|
49
|
-
<div className={
|
|
51
|
+
<div className={className}>
|
|
50
52
|
<div className="search-content--collapse__wrapper">
|
|
51
53
|
<label className="search-content--collapse__label">
|
|
52
54
|
<span className="search-content--collapse__icon_wrapper">
|
|
@@ -70,7 +72,7 @@ const SearchContent = ({
|
|
|
70
72
|
</div>
|
|
71
73
|
) : (
|
|
72
74
|
<>
|
|
73
|
-
<div className={
|
|
75
|
+
<div className={className}>
|
|
74
76
|
<div className="search-content--expanded__wrapper">
|
|
75
77
|
<label className="search-content--expanded__label">
|
|
76
78
|
<span className="search-content--expanded__icon_wrapper">
|
|
@@ -105,7 +107,8 @@ SearchContent.propTypes = {
|
|
|
105
107
|
placeholder: PropTypes.string,
|
|
106
108
|
isMobile: PropTypes.bool,
|
|
107
109
|
collapsible: PropTypes.bool,
|
|
108
|
-
entities: PropTypes.array.isRequired
|
|
110
|
+
entities: PropTypes.array.isRequired,
|
|
111
|
+
modifier: PropTypes.string
|
|
109
112
|
};
|
|
110
113
|
|
|
111
114
|
SearchContent.defaultProps = {
|
|
@@ -114,7 +117,8 @@ SearchContent.defaultProps = {
|
|
|
114
117
|
searchInputWrapperDesktop: '',
|
|
115
118
|
placeholder: '',
|
|
116
119
|
isMobile: false,
|
|
117
|
-
collapsible: false
|
|
120
|
+
collapsible: false,
|
|
121
|
+
modifier: ''
|
|
118
122
|
};
|
|
119
123
|
|
|
120
124
|
export default SearchContent;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import BlazeLink from '../BlazeLink';
|
|
3
|
+
import LazyImage from '../LazyImage';
|
|
3
4
|
|
|
4
5
|
const SearchContentItems = ({ results = [], onClick }) =>
|
|
5
6
|
results.map(item => {
|
|
@@ -11,7 +12,12 @@ const SearchContentItems = ({ results = [], onClick }) =>
|
|
|
11
12
|
<BlazeLink href={url} onClick={onClick} key={id}>
|
|
12
13
|
<div className="search-content--results__wrapper">
|
|
13
14
|
{image?.url ? (
|
|
14
|
-
<
|
|
15
|
+
<LazyImage
|
|
16
|
+
src={image.url}
|
|
17
|
+
alt={name}
|
|
18
|
+
className="search-content--results__image"
|
|
19
|
+
sizeKey="search-result"
|
|
20
|
+
/>
|
|
15
21
|
) : null}
|
|
16
22
|
<span className="search-content--results__title">{name}</span>
|
|
17
23
|
</div>
|
|
@@ -17,13 +17,10 @@ const FiltersList = ({
|
|
|
17
17
|
|
|
18
18
|
return filters.map(({ type, label, propsToDisplay, elementTitle, ...otherProps }, index) => {
|
|
19
19
|
if (!propsToDisplay && !propsToDisplay.length) return null;
|
|
20
|
-
|
|
21
20
|
const dynamicKey = [itemId, index].join('-');
|
|
22
21
|
const isDataAvailable = !!data && Object.keys(data).length;
|
|
23
22
|
const dataAggregations = isDataAvailable ? data : null;
|
|
24
23
|
const areAggregationsAvailable = isDataAvailable && !!dataAggregations;
|
|
25
|
-
const results = areAggregationsAvailable && dataAggregations[propsToDisplay[0]];
|
|
26
|
-
const shouldDisplayFilter = results && results.buckets && results.buckets.length;
|
|
27
24
|
|
|
28
25
|
switch (type) {
|
|
29
26
|
case TEXT_SEARCH:
|
|
@@ -43,43 +40,39 @@ const FiltersList = ({
|
|
|
43
40
|
);
|
|
44
41
|
case CHECKBOX:
|
|
45
42
|
return (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
</div>
|
|
62
|
-
)
|
|
43
|
+
<div
|
|
44
|
+
key={dynamicKey}
|
|
45
|
+
className="filter__section filter__section--search-refine filter__section--checkboxes">
|
|
46
|
+
<Checkbox
|
|
47
|
+
{...otherProps}
|
|
48
|
+
data={data}
|
|
49
|
+
prop={propsToDisplay[0]}
|
|
50
|
+
label={label}
|
|
51
|
+
elementTitle={elementTitle}
|
|
52
|
+
hasUrl={hasUrl}
|
|
53
|
+
filterValues={filterValues}
|
|
54
|
+
updateFilterValues={updateFilterValues}
|
|
55
|
+
shouldSearch={shouldSearch}
|
|
56
|
+
/>
|
|
57
|
+
</div>
|
|
63
58
|
);
|
|
64
59
|
case SELECT:
|
|
65
60
|
return (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
</div>
|
|
82
|
-
)
|
|
61
|
+
<div
|
|
62
|
+
key={dynamicKey}
|
|
63
|
+
className="filter__section filter__section--search-refine filter__section--selects">
|
|
64
|
+
<SelectFilter
|
|
65
|
+
{...otherProps}
|
|
66
|
+
data={data}
|
|
67
|
+
prop={propsToDisplay[0]}
|
|
68
|
+
label={label}
|
|
69
|
+
elementTitle={elementTitle}
|
|
70
|
+
hasUrl={hasUrl}
|
|
71
|
+
filterValues={filterValues}
|
|
72
|
+
updateFilterValues={updateFilterValues}
|
|
73
|
+
shouldSearch={shouldSearch}
|
|
74
|
+
/>
|
|
75
|
+
</div>
|
|
83
76
|
);
|
|
84
77
|
case RANGE:
|
|
85
78
|
return (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
@@ -14,21 +14,6 @@ import ResetDesktopForm from './ResetDesktopForm';
|
|
|
14
14
|
import MobileFormToolbar from './MobileFormToolbar';
|
|
15
15
|
import { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';
|
|
16
16
|
|
|
17
|
-
const reducer = (state, action) => {
|
|
18
|
-
const { newValues, type, shouldSearch = true } = action;
|
|
19
|
-
|
|
20
|
-
switch (type) {
|
|
21
|
-
case 'update':
|
|
22
|
-
return { ...state, ...newValues, shouldSearch };
|
|
23
|
-
case 'resetSearch':
|
|
24
|
-
return { ...state, shouldSearch: false };
|
|
25
|
-
case 'reset':
|
|
26
|
-
return { ...newValues, shouldSearch };
|
|
27
|
-
default:
|
|
28
|
-
throw new Error();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
17
|
const SearchFilter = ({
|
|
33
18
|
searchFilterRef,
|
|
34
19
|
data,
|
|
@@ -40,13 +25,13 @@ const SearchFilter = ({
|
|
|
40
25
|
isCollapsedOnResponsive,
|
|
41
26
|
displaySearchFilter,
|
|
42
27
|
setDisplaySearchFilter,
|
|
43
|
-
initialFilterValues,
|
|
44
28
|
groupAfterDesktop,
|
|
45
|
-
groupAfterMobile
|
|
29
|
+
groupAfterMobile,
|
|
30
|
+
filterValues,
|
|
31
|
+
setAppliedFilters
|
|
46
32
|
}) => {
|
|
47
33
|
const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);
|
|
48
34
|
const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);
|
|
49
|
-
const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);
|
|
50
35
|
|
|
51
36
|
const doSubmit = (newValues = filterValues) => {
|
|
52
37
|
const newQuery = buildQuery(newValues, filters);
|
|
@@ -63,10 +48,10 @@ const SearchFilter = ({
|
|
|
63
48
|
() => {
|
|
64
49
|
if (filterValues.shouldSearch) {
|
|
65
50
|
handleSubmit(filterValues);
|
|
66
|
-
|
|
51
|
+
setAppliedFilters({ type: 'resetSearch' });
|
|
67
52
|
}
|
|
68
53
|
},
|
|
69
|
-
[filterValues, handleSubmit]
|
|
54
|
+
[filterValues, handleSubmit, setAppliedFilters]
|
|
70
55
|
);
|
|
71
56
|
|
|
72
57
|
const formClass = classnames('filter__form filter__form--initial', {
|
|
@@ -85,12 +70,12 @@ const SearchFilter = ({
|
|
|
85
70
|
|
|
86
71
|
const handleReset = () => {
|
|
87
72
|
const newValues = getInitialFilterValues(data, filters, {});
|
|
88
|
-
|
|
89
|
-
dispatch({ newValues, type: 'reset' });
|
|
73
|
+
setAppliedFilters({ newValues, type: 'reset' });
|
|
90
74
|
};
|
|
91
75
|
|
|
92
76
|
const updateFilterValues = (newValues, shouldSubmit) => {
|
|
93
|
-
|
|
77
|
+
const newAppliedFilters = { ...filterValues, ...newValues };
|
|
78
|
+
setAppliedFilters({ newValues: newAppliedFilters, shouldSearch: shouldSubmit, type: 'update' });
|
|
94
79
|
};
|
|
95
80
|
|
|
96
81
|
const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);
|
|
@@ -248,7 +233,8 @@ SearchFilter.propTypes = {
|
|
|
248
233
|
isCollapsedOnResponsive: PropTypes.bool.isRequired,
|
|
249
234
|
groupAfterDesktop: PropTypes.number.isRequired,
|
|
250
235
|
groupAfterMobile: PropTypes.number.isRequired,
|
|
251
|
-
|
|
236
|
+
filterValues: PropTypes.object.isRequired,
|
|
237
|
+
setAppliedFilters: PropTypes.func.isRequired
|
|
252
238
|
};
|
|
253
239
|
|
|
254
240
|
export default SearchFilter;
|