@blaze-cms/react-page-builder 0.128.0-admin-updates.3 → 0.128.0-admin-updates.7
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 +24 -0
- package/lib/components/Card/Card.js +1 -1
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/Card/CardsContainer.js +53 -24
- package/lib/components/Card/CardsContainer.js.map +1 -1
- package/lib/components/Card/CardsRender.js +2 -2
- package/lib/components/Card/CardsRender.js.map +1 -1
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js +3 -1
- package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.map +1 -1
- package/lib/components/Image/Image.js +1 -1
- package/lib/components/Image/Image.js.map +1 -1
- package/lib/components/List/components/Full/FullRender.js.map +1 -1
- package/lib/components/List/components/helpers/check-if-should-render-banner.js +27 -5
- package/lib/components/List/components/helpers/check-if-should-render-banner.js.map +1 -1
- package/lib/components/List/components/helpers/index.js +8 -2
- package/lib/components/List/components/helpers/index.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js +6 -1
- package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib/components/SearchFilter/components/Range.js +9 -5
- package/lib/components/SearchFilter/components/Range.js.map +1 -1
- package/lib/components/SearchFilter/components/Select.js +9 -5
- package/lib/components/SearchFilter/components/Select.js.map +1 -1
- package/lib/components/SearchFilter/components/TextSearch.js +9 -5
- package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib-es/components/Card/Card.js +1 -1
- package/lib-es/components/Card/Card.js.map +1 -1
- package/lib-es/components/Card/CardsContainer.js +59 -35
- package/lib-es/components/Card/CardsContainer.js.map +1 -1
- package/lib-es/components/Card/CardsRender.js +1 -1
- package/lib-es/components/Card/CardsRender.js.map +1 -1
- package/lib-es/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js +3 -1
- package/lib-es/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.map +1 -1
- package/lib-es/components/Image/Image.js +1 -1
- package/lib-es/components/Image/Image.js.map +1 -1
- package/lib-es/components/List/components/Full/FullRender.js.map +1 -1
- package/lib-es/components/List/components/helpers/check-if-should-render-banner.js +29 -3
- package/lib-es/components/List/components/helpers/check-if-should-render-banner.js.map +1 -1
- package/lib-es/components/List/components/helpers/index.js +3 -2
- package/lib-es/components/List/components/helpers/index.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js +6 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Range.js +9 -5
- package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Select.js +9 -5
- package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
- package/lib-es/components/SearchFilter/components/TextSearch.js +9 -5
- package/lib-es/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Card/Card.js +2 -2
- package/src/components/Card/CardsContainer.js +54 -35
- package/src/components/Card/CardsRender.js +9 -7
- package/src/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js +1 -1
- package/src/components/Image/Image.js +1 -1
- package/src/components/List/components/Full/FullRender.js +0 -1
- package/src/components/List/components/helpers/check-if-should-render-banner.js +24 -3
- package/src/components/List/components/helpers/index.js +4 -2
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +0 -1
- package/src/components/SearchFilter/components/Checkbox.js +4 -0
- package/src/components/SearchFilter/components/Range.js +7 -4
- package/src/components/SearchFilter/components/Select.js +23 -17
- package/src/components/SearchFilter/components/TextSearch.js +30 -26
- package/tests/unit/src/components/Card/__snapshots__/Card.test.js.snap +10 -10
- package/tests/unit/src/components/Card/__snapshots__/CardContainer.test.js.snap +8 -8
- package/tests/unit/src/components/DataSummary/DataSummaryTypes/__snapshots__/ItemDetailsSummary.test.js.snap +24 -4
- package/tests/unit/src/components/List/components/Cards/__snapshots__/CardsRender.test.js.snap +12 -12
- package/tests/unit/src/components/List/components/helpers/check-if-should-render-banner.test.js +59 -28
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
const
|
|
2
|
-
if (!banner) return false;
|
|
1
|
+
const legacyCheckIfShouldRenderBanner = (elementIndex, banner) => {
|
|
3
2
|
const {
|
|
4
3
|
interval,
|
|
5
4
|
repeat,
|
|
@@ -12,5 +11,32 @@ const checkIfShouldRenderBanner = (elementIndex, banner) => {
|
|
|
12
11
|
if (repeat && repeatMatch) return true;
|
|
13
12
|
return false;
|
|
14
13
|
};
|
|
15
|
-
|
|
14
|
+
const checkNewBannerSettings = banner => {
|
|
15
|
+
if (!banner) return false;
|
|
16
|
+
const {
|
|
17
|
+
repeatEvery,
|
|
18
|
+
startingPoint,
|
|
19
|
+
maxRepetitions
|
|
20
|
+
} = banner;
|
|
21
|
+
return repeatEvery > 0 || startingPoint > 0 || maxRepetitions > 0;
|
|
22
|
+
};
|
|
23
|
+
const checkIfShouldRenderBanner = (elementIndex, banner) => {
|
|
24
|
+
if (!banner) return false;
|
|
25
|
+
if (!checkNewBannerSettings(banner)) return legacyCheckIfShouldRenderBanner(elementIndex, banner);
|
|
26
|
+
const {
|
|
27
|
+
repeatEvery,
|
|
28
|
+
startingPoint,
|
|
29
|
+
maxRepetitions
|
|
30
|
+
} = banner;
|
|
31
|
+
const position = elementIndex + 1;
|
|
32
|
+
if (position < startingPoint) return false;
|
|
33
|
+
if (position === startingPoint) return true;
|
|
34
|
+
const positionDifference = position - startingPoint;
|
|
35
|
+
if (positionDifference < repeatEvery) return false;
|
|
36
|
+
const timesRepeated = positionDifference / repeatEvery;
|
|
37
|
+
const repeatMatch = Number.isInteger(timesRepeated);
|
|
38
|
+
if (!repeatMatch) return false;
|
|
39
|
+
return timesRepeated < maxRepetitions;
|
|
40
|
+
};
|
|
41
|
+
export { checkIfShouldRenderBanner, checkNewBannerSettings };
|
|
16
42
|
//# sourceMappingURL=check-if-should-render-banner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-if-should-render-banner.js","names":["
|
|
1
|
+
{"version":3,"file":"check-if-should-render-banner.js","names":["legacyCheckIfShouldRenderBanner","elementIndex","banner","interval","repeat","hasBanner","position","repeatMatch","Number","isInteger","checkNewBannerSettings","repeatEvery","startingPoint","maxRepetitions","checkIfShouldRenderBanner","positionDifference","timesRepeated"],"sources":["../../../../../src/components/List/components/helpers/check-if-should-render-banner.js"],"sourcesContent":["const legacyCheckIfShouldRenderBanner = (elementIndex, banner) => {\n const { interval, repeat, hasBanner } = banner;\n if (!hasBanner || !interval) return false;\n const position = elementIndex + 1;\n if (position === interval) return true;\n const repeatMatch = Number.isInteger(position / interval);\n if (repeat && repeatMatch) return true;\n return false;\n};\nconst checkNewBannerSettings = banner => {\n if (!banner) return false;\n\n const { repeatEvery, startingPoint, maxRepetitions } = banner;\n return repeatEvery > 0 || startingPoint > 0 || maxRepetitions > 0;\n};\n\nconst checkIfShouldRenderBanner = (elementIndex, banner) => {\n if (!banner) return false;\n if (!checkNewBannerSettings(banner)) return legacyCheckIfShouldRenderBanner(elementIndex, banner);\n\n const { repeatEvery, startingPoint, maxRepetitions } = banner;\n const position = elementIndex + 1;\n if (position < startingPoint) return false;\n if (position === startingPoint) return true;\n const positionDifference = position - startingPoint;\n if (positionDifference < repeatEvery) return false;\n const timesRepeated = positionDifference / repeatEvery;\n const repeatMatch = Number.isInteger(timesRepeated);\n if (!repeatMatch) return false;\n return timesRepeated < maxRepetitions;\n};\n\nexport { checkIfShouldRenderBanner, checkNewBannerSettings };\n"],"mappings":"AAAA,MAAMA,+BAA+B,GAAGA,CAACC,YAAY,EAAEC,MAAM,KAAK;EAChE,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAAU,CAAC,GAAGH,MAAM;EAC9C,IAAI,CAACG,SAAS,IAAI,CAACF,QAAQ,EAAE,OAAO,KAAK;EACzC,MAAMG,QAAQ,GAAGL,YAAY,GAAG,CAAC;EACjC,IAAIK,QAAQ,KAAKH,QAAQ,EAAE,OAAO,IAAI;EACtC,MAAMI,WAAW,GAAGC,MAAM,CAACC,SAAS,CAACH,QAAQ,GAAGH,QAAQ,CAAC;EACzD,IAAIC,MAAM,IAAIG,WAAW,EAAE,OAAO,IAAI;EACtC,OAAO,KAAK;AACd,CAAC;AACD,MAAMG,sBAAsB,GAAGR,MAAM,IAAI;EACvC,IAAI,CAACA,MAAM,EAAE,OAAO,KAAK;EAEzB,MAAM;IAAES,WAAW;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGX,MAAM;EAC7D,OAAOS,WAAW,GAAG,CAAC,IAAIC,aAAa,GAAG,CAAC,IAAIC,cAAc,GAAG,CAAC;AACnE,CAAC;AAED,MAAMC,yBAAyB,GAAGA,CAACb,YAAY,EAAEC,MAAM,KAAK;EAC1D,IAAI,CAACA,MAAM,EAAE,OAAO,KAAK;EACzB,IAAI,CAACQ,sBAAsB,CAACR,MAAM,CAAC,EAAE,OAAOF,+BAA+B,CAACC,YAAY,EAAEC,MAAM,CAAC;EAEjG,MAAM;IAAES,WAAW;IAAEC,aAAa;IAAEC;EAAe,CAAC,GAAGX,MAAM;EAC7D,MAAMI,QAAQ,GAAGL,YAAY,GAAG,CAAC;EACjC,IAAIK,QAAQ,GAAGM,aAAa,EAAE,OAAO,KAAK;EAC1C,IAAIN,QAAQ,KAAKM,aAAa,EAAE,OAAO,IAAI;EAC3C,MAAMG,kBAAkB,GAAGT,QAAQ,GAAGM,aAAa;EACnD,IAAIG,kBAAkB,GAAGJ,WAAW,EAAE,OAAO,KAAK;EAClD,MAAMK,aAAa,GAAGD,kBAAkB,GAAGJ,WAAW;EACtD,MAAMJ,WAAW,GAAGC,MAAM,CAACC,SAAS,CAACO,aAAa,CAAC;EACnD,IAAI,CAACT,WAAW,EAAE,OAAO,KAAK;EAC9B,OAAOS,aAAa,GAAGH,cAAc;AACvC,CAAC;AAED,SAASC,yBAAyB,EAAEJ,sBAAsB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { checkIfShouldRenderBanner, checkNewBannerSettings } from './check-if-should-render-banner';
|
|
2
|
+
import checkIfShouldRenderGtm from './check-if-should-render-gtm';
|
|
3
|
+
export { checkIfShouldRenderBanner, checkNewBannerSettings, checkIfShouldRenderGtm };
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["checkIfShouldRenderBanner","checkNewBannerSettings","checkIfShouldRenderGtm"],"sources":["../../../../../src/components/List/components/helpers/index.js"],"sourcesContent":["import { checkIfShouldRenderBanner, checkNewBannerSettings } from './check-if-should-render-banner';\nimport checkIfShouldRenderGtm from './check-if-should-render-gtm';\n\nexport { checkIfShouldRenderBanner, checkNewBannerSettings, checkIfShouldRenderGtm };\n"],"mappings":"AAAA,SAASA,yBAAyB,EAAEC,sBAAsB,QAAQ,iCAAiC;AACnG,OAAOC,sBAAsB,MAAM,8BAA8B;AAEjE,SAASF,yBAAyB,EAAEC,sBAAsB,EAAEC,sBAAsB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilter.js","names":["React","useState","useEffect","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","buildQuery","getInitialFilterValues","getResponsiveFilterClassnames","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","MORE_FILTERS_CLASSES","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","createElement","Fragment","ref","className","id","onSubmit","e","preventDefault","handleClose","slice","onClick","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","MOBILE_BUTTONS","role","propTypes","object","isRequired","array","bool","string","func","number"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = (newValues = filterValues) => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(null, filters, {});\n setAppliedFilters({ newValues, type: 'reset' });\n doSubmit(newValues);\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n doSubmit();\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n data-testId=\"search-filter-mobile-toggler\"\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n data-testId=\"search-filter-desktop-toggler\"\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div className=\"filter__refine filter__refine--mobile-close\" data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n filterValues: PropTypes.object.isRequired,\n setAppliedFilters: PropTypes.func.isRequired\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchFilter.js","names":["React","useState","useEffect","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","buildQuery","getInitialFilterValues","getResponsiveFilterClassnames","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","MORE_FILTERS_CLASSES","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","createElement","Fragment","ref","className","id","onSubmit","e","preventDefault","handleClose","slice","onClick","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","MOBILE_BUTTONS","role","propTypes","object","isRequired","array","bool","string","func","number"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = (newValues = filterValues) => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(null, filters, {});\n setAppliedFilters({ newValues, type: 'reset' });\n doSubmit(newValues);\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n 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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"}
|
|
@@ -12,6 +12,7 @@ const Checkbox = ({
|
|
|
12
12
|
updateFilterValues,
|
|
13
13
|
filterValues,
|
|
14
14
|
label,
|
|
15
|
+
elementTitle,
|
|
15
16
|
shouldSearch,
|
|
16
17
|
displayFilterCount
|
|
17
18
|
}) => {
|
|
@@ -55,7 +56,9 @@ const Checkbox = ({
|
|
|
55
56
|
disabled: value[2]
|
|
56
57
|
}));
|
|
57
58
|
const shouldDisplayMore = !checkboxLimit || checkboxLimit[prop] === LIMIT_MIN;
|
|
58
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null,
|
|
59
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, elementTitle && /*#__PURE__*/React.createElement("div", {
|
|
60
|
+
className: "heading heading--section"
|
|
61
|
+
}, elementTitle), label ? /*#__PURE__*/React.createElement("p", null, label) : '', /*#__PURE__*/React.createElement(Checkboxes, {
|
|
59
62
|
className: "form-checkbox",
|
|
60
63
|
options: multiple,
|
|
61
64
|
onChange: ({
|
|
@@ -87,11 +90,13 @@ Checkbox.propTypes = {
|
|
|
87
90
|
updateFilterValues: PropTypes.func.isRequired,
|
|
88
91
|
shouldSearch: PropTypes.bool,
|
|
89
92
|
label: PropTypes.string,
|
|
93
|
+
elementTitle: PropTypes.string,
|
|
90
94
|
displayFilterCount: PropTypes.bool
|
|
91
95
|
};
|
|
92
96
|
Checkbox.defaultProps = {
|
|
93
97
|
shouldSearch: false,
|
|
94
98
|
label: '',
|
|
99
|
+
elementTitle: '',
|
|
95
100
|
displayFilterCount: false
|
|
96
101
|
};
|
|
97
102
|
export default withTitle(Checkbox);
|
|
@@ -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","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","createElement","Fragment","className","options","onChange","eData","newCheckboxValues","length","role","onClick","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":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,mBAAmB;AAC1C,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,aAAa,EAAEC,WAAW,QAAQ,gBAAgB;AAC3D,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,WAAW,QAAQ,YAAY;AACxC,SAASC,SAAS,EAAEC,SAAS,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAE/D,MAAMC,QAAQ,GAAGA,CAAC;EAChBC,IAAI;EACJC,IAAI;EACJC,kBAAkB;EAClBC,YAAY;EACZC,KAAK;EACLC,YAAY;EACZC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,
|
|
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","elementTitle","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","createElement","Fragment","className","options","onChange","eData","newCheckboxValues","length","role","onClick","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 elementTitle,\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 {elementTitle && <div className=\"heading heading--section\">{elementTitle}</div>}\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 elementTitle: PropTypes.string,\n displayFilterCount: PropTypes.bool\n};\n\nCheckbox.defaultProps = {\n shouldSearch: false,\n label: '',\n elementTitle: '',\n displayFilterCount: false\n};\n\nexport default withTitle(Checkbox);\n"],"mappings":"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"}
|
|
@@ -9,7 +9,6 @@ import { useRouter } from 'next/router';
|
|
|
9
9
|
import Select from '@blaze-react/select';
|
|
10
10
|
import { parseUrl } from 'query-string';
|
|
11
11
|
import { useGetSingleEntitySchema } from '../../../hooks';
|
|
12
|
-
import { withTitle } from '../../../HOC';
|
|
13
12
|
import { getSelectOptions, getIntersectedProp, getRangeValue, calculateMinMax } from '../helpers';
|
|
14
13
|
import { decodeValue } from '../helpers/decode-encode';
|
|
15
14
|
const Range = ({
|
|
@@ -20,7 +19,8 @@ const Range = ({
|
|
|
20
19
|
dataAggregations,
|
|
21
20
|
updateFilterValues,
|
|
22
21
|
filterValues,
|
|
23
|
-
shouldSearch
|
|
22
|
+
shouldSearch,
|
|
23
|
+
elementTitle
|
|
24
24
|
}) => {
|
|
25
25
|
const router = useRouter();
|
|
26
26
|
const debounceAmount = shouldSearch ? 1200 : 400;
|
|
@@ -59,7 +59,9 @@ const Range = ({
|
|
|
59
59
|
})
|
|
60
60
|
}, shouldSearch);
|
|
61
61
|
}, debounceAmount);
|
|
62
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null,
|
|
62
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, elementTitle && /*#__PURE__*/React.createElement("div", {
|
|
63
|
+
className: "heading heading--section"
|
|
64
|
+
}, elementTitle), hasMultipleOptions && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("label", null, label), /*#__PURE__*/React.createElement(Select, {
|
|
63
65
|
value: rangeOption,
|
|
64
66
|
id: rangeOption,
|
|
65
67
|
options: options,
|
|
@@ -101,12 +103,14 @@ Range.propTypes = {
|
|
|
101
103
|
shouldSearch: PropTypes.bool,
|
|
102
104
|
rangeInterval: PropTypes.number,
|
|
103
105
|
label: PropTypes.string,
|
|
106
|
+
elementTitle: PropTypes.string,
|
|
104
107
|
dataAggregations: PropTypes.object.isRequired
|
|
105
108
|
};
|
|
106
109
|
Range.defaultProps = {
|
|
107
110
|
shouldSearch: false,
|
|
108
111
|
rangeInterval: 1,
|
|
109
|
-
label: ''
|
|
112
|
+
label: '',
|
|
113
|
+
elementTitle: ''
|
|
110
114
|
};
|
|
111
|
-
export default
|
|
115
|
+
export default Range;
|
|
112
116
|
//# sourceMappingURL=Range.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Range.js","names":["React","PropTypes","debounce","RangeFilter","useRouter","Select","parseUrl","useGetSingleEntitySchema","
|
|
1
|
+
{"version":3,"file":"Range.js","names":["React","PropTypes","debounce","RangeFilter","useRouter","Select","parseUrl","useGetSingleEntitySchema","getSelectOptions","getIntersectedProp","getRangeValue","calculateMinMax","decodeValue","Range","rangeInterval","label","entity","propsToDisplay","dataAggregations","updateFilterValues","filterValues","shouldSearch","elementTitle","router","debounceAmount","query","asPath","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","minValue","maxValue","valueToUse","_objectSpread","handleChange","option","value","createElement","Fragment","className","id","required","onChange","updatedOptions","forEach","prop","eMin","eMax","initValue","key","name","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 { getSelectOptions, getIntersectedProp, getRangeValue, calculateMinMax } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n dataAggregations,\n updateFilterValues,\n filterValues,\n shouldSearch,\n elementTitle\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 400;\n const { query } = parseUrl(decodeValue(router.asPath));\n const hasMultipleOptions = propsToDisplay.length > 1;\n const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];\n const rangeOption =\n (filterValues[initialRangeOption] && filterValues[initialRangeOption].selectedOption) ||\n initialRangeOption;\n const rangeValue = filterValues[rangeOption];\n\n const { data: { getEntitySchema = {} } = {}, loading } = useGetSingleEntitySchema(\n entity,\n !hasMultipleOptions\n );\n\n if (loading || !rangeOption || !rangeValue) return '';\n\n const options = getSelectOptions(getEntitySchema, propsToDisplay);\n // get range from aggregations so it updates\n const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);\n const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;\n const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;\n const valueToUse = { ...rangeValue, min, max, minValue, maxValue };\n\n const handleChange = debounce((option, value) => {\n updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, shouldSearch);\n }, debounceAmount);\n\n return (\n <>\n {elementTitle && <div className=\"heading heading--section\">{elementTitle}</div>}\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 <RangeFilter\n key={`${rangeOption}-${minValue}-${maxValue}`}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={valueToUse}\n id={rangeOption}\n onChange={({ value }) => {\n handleChange(rangeOption, value);\n }}\n />\n </>\n );\n};\n\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 elementTitle: PropTypes.string,\n dataAggregations: PropTypes.object.isRequired\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: '',\n elementTitle: ''\n};\n\nexport default Range;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Select from '@blaze-react/select';
|
|
4
|
-
import { withTitle } from '../../../HOC';
|
|
5
4
|
import { DEFAULT_OPTION } from '../constants';
|
|
6
5
|
const SelectFilter = ({
|
|
7
6
|
data,
|
|
@@ -11,7 +10,8 @@ const SelectFilter = ({
|
|
|
11
10
|
filterValues,
|
|
12
11
|
shouldSearch,
|
|
13
12
|
displayLabelAsPlaceholder,
|
|
14
|
-
displayFilterCount
|
|
13
|
+
displayFilterCount,
|
|
14
|
+
elementTitle
|
|
15
15
|
}) => {
|
|
16
16
|
const filterValue = filterValues[prop] || '';
|
|
17
17
|
const disabledOptions = [];
|
|
@@ -33,7 +33,9 @@ const SelectFilter = ({
|
|
|
33
33
|
defaultTextValue = labelToUse;
|
|
34
34
|
labelToUse = null;
|
|
35
35
|
}
|
|
36
|
-
return /*#__PURE__*/React.createElement(
|
|
36
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, elementTitle && /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: "heading heading--section"
|
|
38
|
+
}, elementTitle), /*#__PURE__*/React.createElement(Select, {
|
|
37
39
|
label: labelToUse,
|
|
38
40
|
value: filterValue,
|
|
39
41
|
id: prop,
|
|
@@ -50,7 +52,7 @@ const SelectFilter = ({
|
|
|
50
52
|
}, shouldSearch);
|
|
51
53
|
},
|
|
52
54
|
disabled: disabledOptions
|
|
53
|
-
});
|
|
55
|
+
}));
|
|
54
56
|
};
|
|
55
57
|
SelectFilter.propTypes = {
|
|
56
58
|
data: PropTypes.object.isRequired,
|
|
@@ -59,6 +61,7 @@ SelectFilter.propTypes = {
|
|
|
59
61
|
updateFilterValues: PropTypes.func.isRequired,
|
|
60
62
|
shouldSearch: PropTypes.bool,
|
|
61
63
|
label: PropTypes.string,
|
|
64
|
+
elementTitle: PropTypes.string,
|
|
62
65
|
displayLabelAsPlaceholder: PropTypes.bool,
|
|
63
66
|
displayFilterCount: PropTypes.bool
|
|
64
67
|
};
|
|
@@ -66,8 +69,9 @@ SelectFilter.defaultProps = {
|
|
|
66
69
|
filterValues: {},
|
|
67
70
|
shouldSearch: false,
|
|
68
71
|
label: '',
|
|
72
|
+
elementTitle: '',
|
|
69
73
|
displayLabelAsPlaceholder: false,
|
|
70
74
|
displayFilterCount: false
|
|
71
75
|
};
|
|
72
|
-
export default
|
|
76
|
+
export default SelectFilter;
|
|
73
77
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["React","PropTypes","Select","
|
|
1
|
+
{"version":3,"file":"Select.js","names":["React","PropTypes","Select","DEFAULT_OPTION","SelectFilter","data","label","prop","updateFilterValues","filterValues","shouldSearch","displayLabelAsPlaceholder","displayFilterCount","elementTitle","filterValue","disabledOptions","buckets","options","map","key","doc_count","count","push","optionLabel","filter","Boolean","sort","labelText","labelToUse","defaultTextValue","createElement","Fragment","className","value","id","onChange","valueToUse","disabled","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 { DEFAULT_OPTION } from '../constants';\n\nconst SelectFilter = ({\n data,\n label,\n prop,\n updateFilterValues,\n filterValues,\n shouldSearch,\n displayLabelAsPlaceholder,\n displayFilterCount,\n elementTitle\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 <>\n {elementTitle && <div className=\"heading heading--section\">{elementTitle}</div>}\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};\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 elementTitle: PropTypes.string,\n\n displayLabelAsPlaceholder: PropTypes.bool,\n displayFilterCount: PropTypes.bool\n};\n\nSelectFilter.defaultProps = {\n filterValues: {},\n shouldSearch: false,\n label: '',\n elementTitle: '',\n displayLabelAsPlaceholder: false,\n displayFilterCount: false\n};\n\nexport default SelectFilter;\n"],"mappings":"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"}
|
|
@@ -2,13 +2,15 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import Input from '@blaze-react/input';
|
|
4
4
|
import { MdSearch } from 'react-icons/md';
|
|
5
|
-
import { withTitle } from '../../../HOC';
|
|
6
5
|
import { SEARCH_TERM } from '../constants';
|
|
7
6
|
const TextSearch = ({
|
|
8
7
|
label,
|
|
9
8
|
searchValue,
|
|
10
|
-
updateFilterValues
|
|
11
|
-
|
|
9
|
+
updateFilterValues,
|
|
10
|
+
elementTitle
|
|
11
|
+
}) => /*#__PURE__*/React.createElement(React.Fragment, null, elementTitle && /*#__PURE__*/React.createElement("div", {
|
|
12
|
+
className: "heading heading--section"
|
|
13
|
+
}, elementTitle), /*#__PURE__*/React.createElement("div", {
|
|
12
14
|
className: "search"
|
|
13
15
|
}, /*#__PURE__*/React.createElement("div", {
|
|
14
16
|
className: "search__wrapper"
|
|
@@ -34,14 +36,16 @@ const TextSearch = ({
|
|
|
34
36
|
[SEARCH_TERM]: searchValue
|
|
35
37
|
}, true);
|
|
36
38
|
}
|
|
37
|
-
}, /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(MdSearch, null)))));
|
|
39
|
+
}, /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(MdSearch, null))))));
|
|
38
40
|
TextSearch.propTypes = {
|
|
39
41
|
searchValue: PropTypes.string.isRequired,
|
|
40
42
|
updateFilterValues: PropTypes.func.isRequired,
|
|
43
|
+
elementTitle: PropTypes.string,
|
|
41
44
|
label: PropTypes.string
|
|
42
45
|
};
|
|
43
46
|
TextSearch.defaultProps = {
|
|
47
|
+
elementTitle: '',
|
|
44
48
|
label: ''
|
|
45
49
|
};
|
|
46
|
-
export default
|
|
50
|
+
export default TextSearch;
|
|
47
51
|
//# sourceMappingURL=TextSearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextSearch.js","names":["React","PropTypes","Input","MdSearch","
|
|
1
|
+
{"version":3,"file":"TextSearch.js","names":["React","PropTypes","Input","MdSearch","SEARCH_TERM","TextSearch","label","searchValue","updateFilterValues","elementTitle","createElement","Fragment","className","id","value","placeholder","onChange","eValue","type","onClick","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 { SEARCH_TERM } from '../constants';\n\nconst TextSearch = ({ label, searchValue, updateFilterValues, elementTitle }) => (\n <>\n {elementTitle && <div className=\"heading heading--section\">{elementTitle}</div>}\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);\n\nTextSearch.propTypes = {\n searchValue: PropTypes.string.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n elementTitle: PropTypes.string,\n label: PropTypes.string\n};\n\nTextSearch.defaultProps = {\n elementTitle: '',\n label: ''\n};\n\nexport default TextSearch;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,KAAK,MAAM,oBAAoB;AACtC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,WAAW,QAAQ,cAAc;AAE1C,MAAMC,UAAU,GAAGA,CAAC;EAAEC,KAAK;EAAEC,WAAW;EAAEC,kBAAkB;EAAEC;AAAa,CAAC,kBAC1ET,KAAA,CAAAU,aAAA,CAAAV,KAAA,CAAAW,QAAA,QACGF,YAAY,iBAAIT,KAAA,CAAAU,aAAA;EAAKE,SAAS,EAAC;AAA0B,GAAEH,YAAY,CAAO,eAC/ET,KAAA,CAAAU,aAAA;EAAKE,SAAS,EAAC;AAAQ,gBACrBZ,KAAA,CAAAU,aAAA;EAAKE,SAAS,EAAC;AAAiB,gBAC9BZ,KAAA,CAAAU,aAAA;EAAKE,SAAS,EAAC;AAAiD,gBAC9DZ,KAAA,CAAAU,aAAA,CAACR,KAAK;EACJW,EAAE,EAAET,WAAY;EAChBU,KAAK,EAAEP,WAAY;EACnBQ,WAAW,EAAET,KAAK,IAAI,QAAS;EAC/BU,QAAQ,EAAEA,CAAC;IAAEF,KAAK,EAAEG;EAAO,CAAC,KAAK;IAC/BT,kBAAkB,CAAC;MAAE,CAACJ,WAAW,GAAGa;IAAO,CAAC,EAAE,KAAK,CAAC;EACtD;AAAE,EACF,CACE,eACNjB,KAAA,CAAAU,aAAA;EACEQ,IAAI,EAAC,QAAQ;EACbN,SAAS,EAAC,iCAAiC;EAC3CO,OAAO,EAAEC,CAAC,IAAI;IACZA,CAAC,CAACC,cAAc,EAAE;IAClBb,kBAAkB,CAAC;MAAE,CAACJ,WAAW,GAAGG;IAAY,CAAC,EAAE,IAAI,CAAC;EAC1D;AAAE,gBACFP,KAAA,CAAAU,aAAA,yBACEV,KAAA,CAAAU,aAAA,CAACP,QAAQ,OAAG,CACV,CACG,CACL,CACF,CAET;AAEDE,UAAU,CAACiB,SAAS,GAAG;EACrBf,WAAW,EAAEN,SAAS,CAACsB,MAAM,CAACC,UAAU;EACxChB,kBAAkB,EAAEP,SAAS,CAACwB,IAAI,CAACD,UAAU;EAC7Cf,YAAY,EAAER,SAAS,CAACsB,MAAM;EAC9BjB,KAAK,EAAEL,SAAS,CAACsB;AACnB,CAAC;AAEDlB,UAAU,CAACqB,YAAY,GAAG;EACxBjB,YAAY,EAAE,EAAE;EAChBH,KAAK,EAAE;AACT,CAAC;AAED,eAAeD,UAAU"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.128.0-admin-updates.
|
|
3
|
+
"version": "0.128.0-admin-updates.7",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"lib/*",
|
|
89
89
|
"lib-es/*"
|
|
90
90
|
],
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "418fb3bbd70ac223ae151a921af20083f94b0c69"
|
|
92
92
|
}
|
|
@@ -134,11 +134,11 @@ const Card = ({
|
|
|
134
134
|
<div className="badge badge--label">{label}</div>
|
|
135
135
|
))}
|
|
136
136
|
{displayTitle && (
|
|
137
|
-
<
|
|
137
|
+
<div className={titleWrapperModifier}>
|
|
138
138
|
<BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>
|
|
139
139
|
{headline}
|
|
140
140
|
</BlazeLink>
|
|
141
|
-
</
|
|
141
|
+
</div>
|
|
142
142
|
)}
|
|
143
143
|
{!!parsedPropsToDisplay.length && (
|
|
144
144
|
<div className={getModifiers('card__details', modifiers)}>
|