@blaze-cms/react-page-builder 0.124.0 → 0.124.1-alpha.3

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +2 -1
  3. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  4. package/lib/components/SearchFilter/SearchFilterContainer.js +22 -5
  5. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  6. package/lib/components/SearchFilter/components/Range.js +24 -8
  7. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  8. package/lib/components/SearchFilter/helpers/build-filters-query.js +46 -5
  9. package/lib/components/SearchFilter/helpers/build-filters-query.js.map +1 -1
  10. package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js +16 -10
  11. package/lib/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
  12. package/lib/components/SearchFilter/helpers/get-initial-filter-values.js +6 -6
  13. package/lib/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
  14. package/lib/components/SearchFilter/helpers/get-range-value.js +4 -2
  15. package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  16. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +2 -1
  17. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  18. package/lib-es/components/SearchFilter/SearchFilterContainer.js +17 -4
  19. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  20. package/lib-es/components/SearchFilter/components/Range.js +20 -8
  21. package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
  22. package/lib-es/components/SearchFilter/helpers/build-filters-query.js +43 -5
  23. package/lib-es/components/SearchFilter/helpers/build-filters-query.js.map +1 -1
  24. package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js +15 -10
  25. package/lib-es/components/SearchFilter/helpers/build-raw-query-stringified.js.map +1 -1
  26. package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js +5 -4
  27. package/lib-es/components/SearchFilter/helpers/get-initial-filter-values.js.map +1 -1
  28. package/lib-es/components/SearchFilter/helpers/get-range-value.js +2 -2
  29. package/lib-es/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  30. package/package.json +2 -2
  31. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +2 -1
  32. package/src/components/SearchFilter/SearchFilterContainer.js +21 -4
  33. package/src/components/SearchFilter/components/Range.js +19 -16
  34. package/src/components/SearchFilter/helpers/build-filters-query.js +26 -5
  35. package/src/components/SearchFilter/helpers/build-raw-query-stringified.js +17 -12
  36. package/src/components/SearchFilter/helpers/get-initial-filter-values.js +5 -2
  37. package/src/components/SearchFilter/helpers/get-range-value.js +2 -2
  38. package/tests/unit/src/components/SearchFilter/components/Range.test.js +24 -0
  39. package/tests/unit/src/components/SearchFilter/components/__snapshots__/Range.test.js.snap +3 -3
  40. package/tests/unit/src/components/SearchFilter/helpers/get-initial-filter-values.test.js +8 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,39 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.124.1-alpha.3](https://github.com/thebyte9/blaze/compare/v0.124.1-alpha.2...v0.124.1-alpha.3) (2022-08-25)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * search filter handles range values, show range filter even when min/max are the same ([#3568](https://github.com/thebyte9/blaze/issues/3568)) ([0c7e561](https://github.com/thebyte9/blaze/commit/0c7e561bd4bbd8fff9968dfa373cfa66ffc7a8ae))
12
+
13
+
14
+
15
+
16
+
17
+ ## [0.124.1-alpha.2](https://github.com/thebyte9/blaze/compare/v0.124.1-alpha.1...v0.124.1-alpha.2) (2022-08-23)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * resolve reset filters not updating filter options ([#3563](https://github.com/thebyte9/blaze/issues/3563)) ([b230507](https://github.com/thebyte9/blaze/commit/b230507476b811f0a4d141b8e20956738c53d2fc))
23
+
24
+
25
+
26
+
27
+
28
+ ## [0.124.1-alpha.1](https://github.com/thebyte9/blaze/compare/v0.124.1-alpha.0...v0.124.1-alpha.1) (2022-08-19)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * search filter component handling range values properly ([#3559](https://github.com/thebyte9/blaze/issues/3559)) ([8a261b4](https://github.com/thebyte9/blaze/commit/8a261b4b4ac472290654761e068621317f5a242f))
34
+
35
+
36
+
37
+
38
+
6
39
  # [0.124.0](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.43...v0.124.0) (2022-08-08)
7
40
 
8
41
  **Note:** Version bump only for package @blaze-cms/react-page-builder
@@ -112,11 +112,12 @@ var SearchFilter = function SearchFilter(_ref) {
112
112
  var formId = "filter-".concat(name, "-form");
113
113
 
114
114
  var handleReset = function handleReset() {
115
- var newValues = (0, _helpers.getInitialFilterValues)(data, filters, {});
115
+ var newValues = (0, _helpers.getInitialFilterValues)(null, filters, {});
116
116
  setAppliedFilters({
117
117
  newValues: newValues,
118
118
  type: 'reset'
119
119
  });
120
+ doSubmit(newValues);
120
121
  };
121
122
 
122
123
  var updateFilterValues = function updateFilterValues(newValues, shouldSubmit) {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFilter.js","names":["SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","doSubmit","newValues","newQuery","handleSubmit","shouldSearch","type","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = (newValues = filterValues) => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n setAppliedFilters({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n doSubmit();\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n data-testId=\"search-filter-mobile-toggler\"\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n data-testId=\"search-filter-desktop-toggler\"\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div className=\"filter__refine filter__refine--mobile-close\" data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n filterValues: PropTypes.object.isRequired,\n setAppliedFilters: PropTypes.func.isRequired\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
1
+ {"version":3,"file":"SearchFilter.js","names":["SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","doSubmit","newValues","newQuery","handleSubmit","shouldSearch","type","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = (newValues = filterValues) => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(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,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.object.keys.js");
4
-
5
3
  require("core-js/modules/es.symbol.js");
6
4
 
7
5
  require("core-js/modules/es.array.filter.js");
@@ -47,6 +45,8 @@ require("core-js/modules/es.array.includes.js");
47
45
 
48
46
  require("core-js/modules/es.string.includes.js");
49
47
 
48
+ require("core-js/modules/es.object.keys.js");
49
+
50
50
  require("core-js/modules/es.date.now.js");
51
51
 
52
52
  require("core-js/modules/es.date.to-string.js");
@@ -108,7 +108,7 @@ var reducer = function reducer(state, action) {
108
108
 
109
109
  case 'reset':
110
110
  return _objectSpread(_objectSpread({}, newValues), {}, {
111
- shouldSearch: shouldSearch
111
+ shouldSearch: false
112
112
  });
113
113
 
114
114
  default:
@@ -141,7 +141,13 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
141
141
  displaySearchFilter = _useState4[0],
142
142
  setDisplaySearchFilter = _useState4[1];
143
143
 
144
- var _parseUrl = (0, _queryString.parseUrl)(asPath),
144
+ var _useState5 = (0, _react.useState)(asPath),
145
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
146
+ urlPath = _useState6[0],
147
+ setUrlPath = _useState6[1]; // used as asPath can take too long to update
148
+
149
+
150
+ var _parseUrl = (0, _queryString.parseUrl)(urlPath),
145
151
  currentUrl = _parseUrl.url,
146
152
  _parseUrl$query = _parseUrl.query,
147
153
  sort = _parseUrl$query.sort,
@@ -153,6 +159,9 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
153
159
  filterValues = _useReducer2[0],
154
160
  dispatch = _useReducer2[1];
155
161
 
162
+ (0, _react.useEffect)(function () {
163
+ if (asPath) setUrlPath(asPath);
164
+ }, [asPath]);
156
165
  var hasUrl = !!url;
157
166
  var sortValues = sort && sortby ? (0, _queryString.stringify)({
158
167
  sort: sort,
@@ -176,7 +185,13 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
176
185
  var _getEntityData = (0, _helpers2.getEntityData)(entity),
177
186
  docType = _getEntityData.docType;
178
187
 
179
- var filtersQuery = shouldAddFilters ? (0, _helpers.buildFiltersQuery)(filterValues || query, filterBy, filterByProperty) : [];
188
+ var filtersQuery = shouldAddFilters ? (0, _helpers.buildFiltersQuery)({
189
+ query: filterValues,
190
+ filterBy: filterBy,
191
+ filterByProperty: filterByProperty,
192
+ rangeValues: rangeValues,
193
+ queryKeys: Object.keys(query)
194
+ }) : [];
180
195
  var rawQueryStringified = (0, _helpers.buildRawQueryStringified)(checkboxSelectValues, rangeValues, docType, filtersQuery);
181
196
 
182
197
  var _useQuery = (0, _client.useQuery)(action, {
@@ -215,6 +230,7 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
215
230
 
216
231
  if (!newQuery) {
217
232
  scrollToFirstList();
233
+ setUrlPath(baseQuery);
218
234
  return router.push('/Resolver', baseQuery, {
219
235
  shallow: !hasUrl,
220
236
  scroll: false
@@ -225,6 +241,7 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
225
241
 
226
242
  var newUrl = (0, _helpers.buildNewQuery)(url, currentUrl, newQuery, sortValues);
227
243
  scrollToFirstList();
244
+ setUrlPath(newUrl);
228
245
  return router.push('/Resolver', newUrl, {
229
246
  shallow: !hasUrl,
230
247
  scroll: false
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFilterContainer.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","asPath","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","currentUrl","query","sort","sortby","filterValues","dispatch","hasUrl","sortValues","baseQuery","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","filtersQuery","rawQueryStringified","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","dataNotSet","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const [filterValues, dispatch] = useReducer(\n reducer,\n getInitialFilterValues(null, filters, query)\n );\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (filterValues.dataNotSet && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
1
+ {"version":3,"file":"SearchFilterContainer.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","asPath","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","urlPath","setUrlPath","currentUrl","query","sort","sortby","filterValues","dispatch","hasUrl","sortValues","baseQuery","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","filtersQuery","queryKeys","Object","keys","rawQueryStringified","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","dataNotSet","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer, useEffect } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch: false };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [urlPath, setUrlPath] = useState(asPath); // used as asPath can take too long to update\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(urlPath);\n const [filterValues, dispatch] = useReducer(\n reducer,\n getInitialFilterValues(null, filters, query)\n );\n\n useEffect(\n () => {\n if (asPath) setUrlPath(asPath);\n },\n [asPath]\n );\n\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n const filtersQuery = shouldAddFilters\n ? buildFiltersQuery({\n query: filterValues,\n filterBy,\n filterByProperty,\n rangeValues,\n queryKeys: Object.keys(query)\n })\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (filterValues.dataNotSet && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n setUrlPath(baseQuery);\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n setUrlPath(newUrl);\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,KAAD,EAAQC,MAAR,EAAmB;EACjC,IAAQC,SAAR,GAAiDD,MAAjD,CAAQC,SAAR;EAAA,IAAmBC,IAAnB,GAAiDF,MAAjD,CAAmBE,IAAnB;EAAA,2BAAiDF,MAAjD,CAAyBG,YAAzB;EAAA,IAAyBA,YAAzB,qCAAwC,IAAxC;;EAEA,QAAQD,IAAR;IACE,KAAK,QAAL;MACE,qDAAYH,KAAZ,GAAsBE,SAAtB;QAAiCE,YAAY,EAAZA;MAAjC;;IACF,KAAK,aAAL;MACE,uCAAYJ,KAAZ;QAAmBI,YAAY,EAAE;MAAjC;;IACF,KAAK,OAAL;MACE,uCAAYF,SAAZ;QAAuBE,YAAY,EAAE;MAArC;;IACF;MACE,MAAM,IAAIC,KAAJ,EAAN;EARJ;AAUD,CAbD;;AAeA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,OAWxB;EAAA,IAVJC,MAUI,QAVJA,MAUI;EAAA,IATJC,GASI,QATJA,GASI;EAAA,IARJC,OAQI,QARJA,OAQI;EAAA,IAPJC,IAOI,QAPJA,IAOI;EAAA,IANJC,uBAMI,QANJA,uBAMI;EAAA,IALJC,gBAKI,QALJA,gBAKI;EAAA,IAJJC,iBAII,QAJJA,iBAII;EAAA,IAHJC,QAGI,QAHJA,QAGI;EAAA,IAFJC,gBAEI,QAFJA,gBAEI;EAAA,IADJC,gBACI,QADJA,gBACI;EACJ,IAAMC,MAAM,GAAG,wBAAf;EACA,IAAQC,MAAR,GAAmBD,MAAnB,CAAQC,MAAR;EACA,IAAMC,eAAe,GAAG,mBAAO,IAAP,CAAxB;;EACA,gBAAsB,sCAAmBT,IAAnB,EAAtB;EAAA;EAAA,IAAOU,GAAP;EAAA,IAAYC,MAAZ;;EACA,iBAAsD,qBAAS,KAAT,CAAtD;EAAA;EAAA,IAAOC,mBAAP;EAAA,IAA4BC,sBAA5B;;EACA,iBAA8B,qBAASL,MAAT,CAA9B;EAAA;EAAA,IAAOM,OAAP;EAAA,IAAgBC,UAAhB,iBANI,CAM4C;;;EAChD,gBAII,2BAASD,OAAT,CAJJ;EAAA,IACOE,UADP,aACElB,GADF;EAAA,gCAEEmB,KAFF;EAAA,IAEWC,IAFX,mBAEWA,IAFX;EAAA,IAEiBC,MAFjB,mBAEiBA,MAFjB;EAAA,IAGEF,KAHF,aAGEA,KAHF;;EAKA,kBAAiC,uBAC/B5B,OAD+B,EAE/B,qCAAuB,IAAvB,EAA6BU,OAA7B,EAAsCkB,KAAtC,CAF+B,CAAjC;EAAA;EAAA,IAAOG,YAAP;EAAA,IAAqBC,QAArB;;EAKA,sBACE,YAAM;IACJ,IAAIb,MAAJ,EAAYO,UAAU,CAACP,MAAD,CAAV;EACb,CAHH,EAIE,CAACA,MAAD,CAJF;EAOA,IAAMc,MAAM,GAAG,CAAC,CAACxB,GAAjB;EAEA,IAAMyB,UAAU,GAAGL,IAAI,IAAIC,MAAR,GAAiB,4BAAU;IAAED,IAAI,EAAJA,IAAF;IAAQC,MAAM,EAANA;EAAR,CAAV,CAAjB,GAA+C,EAAlE;EACA,IAAMK,SAAS,GAAGD,UAAU,aAAMP,UAAN,cAAoBO,UAApB,IAAmCP,UAA/D;EAEA,IAAMzB,MAAM,GAAG,sCAA0BkC,sBAA1B,CAAf;EACA,IAAMC,oBAAoB,GAAG,EAA7B;EACA,IAAMC,WAAW,GAAG,EAApB;EAEA5B,OAAO,CAAC6B,OAAR,CAAgB,iBAA8B;IAAA,IAA3BnC,IAA2B,SAA3BA,IAA2B;IAAA,IAArBoC,cAAqB,SAArBA,cAAqB;;IAC5C,IAAIC,2BAAgBC,QAAhB,CAAyBtC,IAAzB,CAAJ,EAAoC;MAClCiC,oBAAoB,CAACM,IAArB,CAA0BH,cAAc,CAAC,CAAD,CAAxC;IACD,CAFD,MAEO,IAAIpC,IAAI,KAAKwC,gBAAb,EAAoB;MACzBN,WAAW,CAACK,IAAZ,OAAAL,WAAW,sCAASE,cAAT,EAAX;IACD;EACF,CAND;;EAQA,qBAAoB,6BAAchC,MAAd,CAApB;EAAA,IAAQqC,OAAR,kBAAQA,OAAR;;EAEA,IAAMC,YAAY,GAAG7B,gBAAgB,GACjC,gCAAkB;IAChBW,KAAK,EAAEG,YADS;IAEhBhB,QAAQ,EAARA,QAFgB;IAGhBC,gBAAgB,EAAhBA,gBAHgB;IAIhBsB,WAAW,EAAXA,WAJgB;IAKhBS,SAAS,EAAEC,MAAM,CAACC,IAAP,CAAYrB,KAAZ;EALK,CAAlB,CADiC,GAQjC,EARJ;EAUA,IAAMsB,mBAAmB,GAAG,uCAC1Bb,oBAD0B,EAE1BC,WAF0B,EAG1BO,OAH0B,EAI1BC,YAJ0B,CAA5B;;EAOA,gBAAwB,sBAAS5C,MAAT,EAAiB;IACvCiD,SAAS,EAAE;MAAED,mBAAmB,EAAnBA,mBAAF;MAAuBE,KAAK,EAAE;IAA9B,CAD4B;IACO;IAC9CC,IAAI,EAAE,CAACH;EAFgC,CAAjB,CAAxB;EAAA,IAAQI,IAAR,aAAQA,IAAR;EAAA,IAAcC,KAAd,aAAcA,KAAd;;EAKA,IAAIA,KAAJ,EAAW,OAAOA,KAAK,CAACC,OAAb;EACX,IAAI,CAAC9C,OAAO,CAAC+C,MAAb,EAAqB,OAAO,IAAP;;EAErB,YACEH,IAAI,IAAI,EADV;EAAA,kCAAQI,sBAAR;;EAAA,2DAAoF,EAApF;EAAA,mDAAkCC,UAAlC;EAAA,6DAA6E,EAA7E;EAAA,IAA8DC,UAA9D,0BAAgDC,YAAhD;;EAGA,IAAI9B,YAAY,CAAC+B,UAAb,IAA2BF,UAA/B,EAA2C;IACzC,IAAMG,mBAAmB,GAAG,qCAAuBH,UAAvB,EAAmClD,OAAnC,EAA4CkB,KAA5C,CAA5B;IACAI,QAAQ,CAAC;MAAE7B,SAAS,EAAE4D,mBAAb;MAAkC1D,YAAY,EAAE,KAAhD;MAAuDD,IAAI,EAAE;IAA7D,CAAD,CAAR;EACD;;EAED,IAAM4D,YAAY,GAAG,SAAfA,YAAe,CAAAC,QAAQ,EAAI;IAC/BzC,sBAAsB,CAAC,KAAD,CAAtB;;IAEA,IAAI,CAACyC,QAAL,EAAe;MACbC,iBAAiB;MACjBxC,UAAU,CAACS,SAAD,CAAV;MACA,OAAOjB,MAAM,CAACyB,IAAP,CAAY,WAAZ,EAAyBR,SAAzB,EAAoC;QAAEgC,OAAO,EAAE,CAAClC,MAAZ;QAAoBmC,MAAM,EAAE;MAA5B,CAApC,EAAyEC,IAAzE,CAA8E,YAAM;QACzF/C,MAAM,kBAAWX,IAAX,cAAmB2D,IAAI,CAACC,GAAL,EAAnB,EAAN,CADyF,CACjD;MACzC,CAFM,CAAP;IAGD;;IACD,IAAMC,MAAM,GAAG,4BAAc/D,GAAd,EAAmBkB,UAAnB,EAA+BsC,QAA/B,EAAyC/B,UAAzC,CAAf;IACAgC,iBAAiB;IACjBxC,UAAU,CAAC8C,MAAD,CAAV;IACA,OAAOtD,MAAM,CAACyB,IAAP,CAAY,WAAZ,EAAyB6B,MAAzB,EAAiC;MAAEL,OAAO,EAAE,CAAClC,MAAZ;MAAoBmC,MAAM,EAAE;IAA5B,CAAjC,CAAP;EACD,CAdD;;EAgBA,IAAMF,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;IAC9B,4BAAeO,QAAQ,CAACC,sBAAT,CAAgC,UAAhC,CAAf;IAAA;IAAA,IAAOC,IAAP;;IACA,IAAMC,uBAAuB,GAAG,CAAC3C,MAAD,IAAW0C,IAA3C;;IAEA,IAAIC,uBAAJ,EAA6B;MAC3BC,MAAM,CAACC,QAAP,CAAgB;QACdC,IAAI,EAAE,CADQ;QAEdC,GAAG,EAAEH,MAAM,CAACI,WAAP,GAAqBC,yBAArB,GAAqCP,IAAI,CAACQ,qBAAL,GAA6BH;MAFzD,CAAhB;IAID,CALD,MAKO;MACLH,MAAM,CAACC,QAAP,CAAgB,CAAhB,EAAmB,CAAnB;IACD;EACF,CAZD;;EAaA,IAAI,CAAC/C,YAAL,EAAmB,OAAO,EAAP;EAEnB,oBACE,gCAAC,wBAAD;IACE,GAAG,EAAEV,GADP;IAEE,iBAAiB,EAAEW,QAFrB;IAGE,eAAe,EAAEZ,eAHnB;IAIE,IAAI,EAAEwC,UAJR;IAKE,OAAO,EAAElD,OALX;IAME,MAAM,EAAEuB,MANV;IAOE,MAAM,EAAEzB,MAPV;IAQE,YAAY,EAAEwD,YARhB;IASE,YAAY,EAAEjC,YAThB;IAUE,IAAI,EAAEpB,IAVR;IAWE,uBAAuB,EAAEC,uBAX3B;IAYE,mBAAmB,EAAEW,mBAZvB;IAaE,sBAAsB,EAAEC,sBAb1B;IAcE,gBAAgB,EAAEX,gBAdpB;IAeE,iBAAiB,EAAEC;EAfrB,EADF;AAmBD,CAzID;;AA2IAP,qBAAqB,CAAC6E,SAAtB,GAAkC;EAChC5E,MAAM,EAAE6E,sBAAUC,MADc;EAEhC7E,GAAG,EAAE4E,sBAAUC,MAFiB;EAGhC5E,OAAO,EAAE2E,sBAAUE,KAHa;EAIhC5E,IAAI,EAAE0E,sBAAUC,MAAV,CAAiBE,UAJS;EAKhC5E,uBAAuB,EAAEyE,sBAAUI,IALH;EAMhC5E,gBAAgB,EAAEwE,sBAAUK,MANI;EAOhC5E,iBAAiB,EAAEuE,sBAAUK,MAPG;EAQhC3E,QAAQ,EAAEsE,sBAAUE,KARY;EAShCvE,gBAAgB,EAAEqE,sBAAUE,KATI;EAUhCtE,gBAAgB,EAAEoE,sBAAUI;AAVI,CAAlC;AAaAlF,qBAAqB,CAACoF,YAAtB,GAAqC;EACnClF,GAAG,EAAE,IAD8B;EAEnCC,OAAO,EAAE,EAF0B;EAGnCF,MAAM,EAAE,EAH2B;EAInCI,uBAAuB,EAAE,IAJU;EAKnCC,gBAAgB,EAAE,CALiB;EAMnCC,iBAAiB,EAAE,CANgB;EAOnCC,QAAQ,EAAE,EAPyB;EAQnCC,gBAAgB,EAAE,EARiB;EASnCC,gBAAgB,EAAE;AATiB,CAArC;;eAYe,oBAAUV,qBAAV,C"}
@@ -27,6 +27,8 @@ require("core-js/modules/es.object.to-string.js");
27
27
 
28
28
  require("core-js/modules/web.dom-collections.for-each.js");
29
29
 
30
+ require("core-js/modules/es.array.concat.js");
31
+
30
32
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
31
33
 
32
34
  var _react = _interopRequireDefault(require("react"));
@@ -60,6 +62,7 @@ var Range = function Range(_ref) {
60
62
  label = _ref.label,
61
63
  entity = _ref.entity,
62
64
  propsToDisplay = _ref.propsToDisplay,
65
+ dataAggregations = _ref.dataAggregations,
63
66
  updateFilterValues = _ref.updateFilterValues,
64
67
  filterValues = _ref.filterValues,
65
68
  shouldSearch = _ref.shouldSearch;
@@ -82,10 +85,22 @@ var Range = function Range(_ref) {
82
85
  getEntitySchema = _useGetSingleEntitySc3 === void 0 ? {} : _useGetSingleEntitySc3,
83
86
  loading = _useGetSingleEntitySc.loading;
84
87
  if (loading || !rangeOption || !rangeValue) return '';
85
- var options = (0, _helpers.getSelectOptions)(getEntitySchema, propsToDisplay);
86
- var min = rangeValue.min,
87
- max = rangeValue.max;
88
- var shouldShowRange = rangeOption && min !== max;
88
+ var options = (0, _helpers.getSelectOptions)(getEntitySchema, propsToDisplay); // get range from aggregations so it updates
89
+
90
+ var _calculateMinMax = (0, _helpers.calculateMinMax)(dataAggregations[rangeOption], rangeInterval),
91
+ min = _calculateMinMax.min,
92
+ max = _calculateMinMax.max;
93
+
94
+ var minValue = rangeValue.minValue < min ? min : rangeValue.minValue;
95
+ var maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;
96
+
97
+ var valueToUse = _objectSpread(_objectSpread({}, rangeValue), {}, {
98
+ min: min,
99
+ max: max,
100
+ minValue: minValue,
101
+ maxValue: maxValue
102
+ });
103
+
89
104
  var handleChange = (0, _lodash["default"])(function (option, value) {
90
105
  updateFilterValues((0, _defineProperty2["default"])({}, option, _objectSpread(_objectSpread({}, value), {}, {
91
106
  selectedOption: rangeOption
@@ -110,11 +125,11 @@ var Range = function Range(_ref) {
110
125
  });
111
126
  updateFilterValues(updatedOptions, false);
112
127
  }
113
- })), shouldShowRange && /*#__PURE__*/_react["default"].createElement(_rangeFilter["default"], {
114
- key: rangeOption,
128
+ })), /*#__PURE__*/_react["default"].createElement(_rangeFilter["default"], {
129
+ key: "".concat(rangeOption, "-").concat(minValue, "-").concat(maxValue),
115
130
  name: rangeOption,
116
131
  label: hasMultipleOptions ? '' : label,
117
- value: rangeValue,
132
+ value: valueToUse,
118
133
  id: rangeOption,
119
134
  onChange: function onChange(_ref3) {
120
135
  var value = _ref3.value;
@@ -130,7 +145,8 @@ Range.propTypes = {
130
145
  updateFilterValues: _propTypes["default"].func.isRequired,
131
146
  shouldSearch: _propTypes["default"].bool,
132
147
  rangeInterval: _propTypes["default"].number,
133
- label: _propTypes["default"].string
148
+ label: _propTypes["default"].string,
149
+ dataAggregations: _propTypes["default"].object.isRequired
134
150
  };
135
151
  Range.defaultProps = {
136
152
  shouldSearch: false,
@@ -1 +1 @@
1
- {"version":3,"file":"Range.js","names":["Range","rangeInterval","label","entity","propsToDisplay","updateFilterValues","filterValues","shouldSearch","router","debounceAmount","asPath","query","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","shouldShowRange","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","PropTypes","array","isRequired","string","object","func","bool","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport RangeFilter from '@blaze-react/range-filter';\nimport { useRouter } from 'next/router';\nimport Select from '@blaze-react/select';\nimport { parseUrl } from 'query-string';\nimport { useGetSingleEntitySchema } from '../../../hooks';\nimport { withTitle } from '../../../HOC';\nimport { getSelectOptions, getIntersectedProp, getRangeValue } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n updateFilterValues,\n filterValues,\n shouldSearch\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 100;\n const { query } = parseUrl(decodeValue(router.asPath));\n const hasMultipleOptions = propsToDisplay.length > 1;\n const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];\n const rangeOption =\n (filterValues[initialRangeOption] && filterValues[initialRangeOption].selectedOption) ||\n initialRangeOption;\n const rangeValue = filterValues[rangeOption];\n\n const { data: { getEntitySchema = {} } = {}, loading } = useGetSingleEntitySchema(\n entity,\n !hasMultipleOptions\n );\n\n if (loading || !rangeOption || !rangeValue) return '';\n\n const options = getSelectOptions(getEntitySchema, propsToDisplay);\n const { min, max } = rangeValue;\n const shouldShowRange = rangeOption && min !== max;\n\n const handleChange = debounce((option, value) => {\n updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, shouldSearch);\n }, debounceAmount);\n\n return (\n <>\n {hasMultipleOptions && (\n <>\n <label>{label}</label>\n <Select\n value={rangeOption}\n id={rangeOption}\n options={options}\n required\n onChange={({ value }) => {\n const updatedOptions = {};\n propsToDisplay.forEach(prop => {\n const { min: eMin, max: eMax } = filterValues[prop];\n const initValue = getRangeValue(null, rangeInterval, eMin, eMax);\n updatedOptions[prop] = { ...initValue, selectedOption: value };\n });\n\n updateFilterValues(updatedOptions, false);\n }}\n />\n </>\n )}\n {shouldShowRange && (\n <RangeFilter\n key={rangeOption}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={rangeValue}\n id={rangeOption}\n onChange={({ value }) => {\n handleChange(rangeOption, value);\n }}\n />\n )}\n </>\n );\n};\n\nRange.propTypes = {\n propsToDisplay: PropTypes.array.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n shouldSearch: PropTypes.bool,\n rangeInterval: PropTypes.number,\n label: PropTypes.string\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Range.js","names":["Range","rangeInterval","label","entity","propsToDisplay","dataAggregations","updateFilterValues","filterValues","shouldSearch","router","debounceAmount","asPath","query","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","minValue","maxValue","valueToUse","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","PropTypes","array","isRequired","string","object","func","bool","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport RangeFilter from '@blaze-react/range-filter';\nimport { useRouter } from 'next/router';\nimport Select from '@blaze-react/select';\nimport { parseUrl } from 'query-string';\nimport { useGetSingleEntitySchema } from '../../../hooks';\nimport { withTitle } from '../../../HOC';\nimport { getSelectOptions, getIntersectedProp, getRangeValue, calculateMinMax } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n dataAggregations,\n updateFilterValues,\n filterValues,\n shouldSearch\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 100;\n const { query } = parseUrl(decodeValue(router.asPath));\n const hasMultipleOptions = propsToDisplay.length > 1;\n const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];\n const rangeOption =\n (filterValues[initialRangeOption] && filterValues[initialRangeOption].selectedOption) ||\n initialRangeOption;\n const rangeValue = filterValues[rangeOption];\n\n const { data: { getEntitySchema = {} } = {}, loading } = useGetSingleEntitySchema(\n entity,\n !hasMultipleOptions\n );\n\n if (loading || !rangeOption || !rangeValue) return '';\n\n const options = getSelectOptions(getEntitySchema, propsToDisplay);\n // get range from aggregations so it updates\n const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);\n const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;\n const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;\n const valueToUse = { ...rangeValue, min, max, minValue, maxValue };\n\n const handleChange = debounce((option, value) => {\n updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, shouldSearch);\n }, debounceAmount);\n\n return (\n <>\n {hasMultipleOptions && (\n <>\n <label>{label}</label>\n <Select\n value={rangeOption}\n id={rangeOption}\n options={options}\n required\n onChange={({ value }) => {\n const updatedOptions = {};\n propsToDisplay.forEach(prop => {\n const { min: eMin, max: eMax } = filterValues[prop];\n const initValue = getRangeValue(null, rangeInterval, eMin, eMax);\n updatedOptions[prop] = { ...initValue, selectedOption: value };\n });\n\n updateFilterValues(updatedOptions, false);\n }}\n />\n </>\n )}\n <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 dataAggregations: PropTypes.object.isRequired\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":"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"}
@@ -13,6 +13,8 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
 
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
 
16
+ require("core-js/modules/es.number.constructor.js");
17
+
16
18
  require("core-js/modules/es.array.is-array.js");
17
19
 
18
20
  require("core-js/modules/es.array.for-each.js");
@@ -23,13 +25,40 @@ require("core-js/modules/web.dom-collections.for-each.js");
23
25
 
24
26
  require("core-js/modules/es.object.keys.js");
25
27
 
28
+ require("core-js/modules/es.array.includes.js");
29
+
30
+ require("core-js/modules/es.string.includes.js");
31
+
26
32
  require("core-js/modules/es.regexp.exec.js");
27
33
 
28
34
  require("core-js/modules/es.string.split.js");
29
35
 
30
36
  require("core-js/modules/es.array.index-of.js");
31
37
 
32
- var builFilterObject = function builFilterObject(key, value, filters) {
38
+ var QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];
39
+
40
+ var builFilterObject = function builFilterObject(_ref) {
41
+ var queryKey = _ref.queryKey,
42
+ value = _ref.value,
43
+ filters = _ref.filters,
44
+ isRange = _ref.isRange,
45
+ isInQuery = _ref.isInQuery;
46
+
47
+ if (isRange) {
48
+ // don't add to query if value matches range values
49
+ if (isInQuery || value.min !== value.minValue && value.max !== value.maxValue) {
50
+ filters.push({
51
+ range: (0, _defineProperty2["default"])({}, queryKey, {
52
+ gte: Number(value.minValue),
53
+ lte: Number(value.maxValue)
54
+ })
55
+ });
56
+ }
57
+
58
+ return;
59
+ }
60
+
61
+ var key = isRange ? queryKey : "".concat(queryKey, ".keyword");
33
62
  var isArray = Array.isArray(value);
34
63
 
35
64
  if (!isArray) {
@@ -47,14 +76,26 @@ var builFilterObject = function builFilterObject(key, value, filters) {
47
76
  });
48
77
  };
49
78
 
50
- var buildFiltersQuery = function buildFiltersQuery(query, filterBy, filterByProperty) {
79
+ var buildFiltersQuery = function buildFiltersQuery(_ref2) {
80
+ var query = _ref2.query,
81
+ filterBy = _ref2.filterBy,
82
+ filterByProperty = _ref2.filterByProperty,
83
+ rangeValues = _ref2.rangeValues,
84
+ queryKeys = _ref2.queryKeys;
51
85
  var mustFilters = [];
52
86
  Object.keys(query).forEach(function (queryKey) {
53
- if (queryKey === 'search_term' || queryKey === 'shouldSearch') return;
87
+ if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;
54
88
  if (!queryKey || !query[queryKey]) return;
55
89
  var queryValue = query[queryKey];
56
- var queryKeyword = "".concat(queryKey, ".keyword");
57
- builFilterObject(queryKeyword, queryValue, mustFilters);
90
+ var isRange = rangeValues.includes(queryKey);
91
+ var isInQuery = queryKeys.includes(queryKey);
92
+ builFilterObject({
93
+ queryKey: queryKey,
94
+ value: queryValue,
95
+ filters: mustFilters,
96
+ isRange: isRange,
97
+ isInQuery: isInQuery
98
+ });
58
99
  });
59
100
 
60
101
  if (filterByProperty && filterByProperty.length) {
@@ -1 +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","split","filterByPropKey","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,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAMC,KAAN,EAAaC,OAAb,EAAyB;EAChD,IAAMC,OAAO,GAAGC,KAAK,CAACD,OAAN,CAAcF,KAAd,CAAhB;;EACA,IAAI,CAACE,OAAL,EAAc;IACZ,IAAME,eAAe,GAAG;MAAEC,KAAK,uCAAKN,GAAL,EAAWC,KAAX;IAAP,CAAxB;IACAC,OAAO,CAACK,IAAR,CAAaF,eAAb;IACA;EACD;;EAEDJ,KAAK,CAACO,OAAN,CAAc,UAAAC,WAAW,EAAI;IAC3BP,OAAO,CAACK,IAAR,CAAa;MAAED,KAAK,uCAAKN,GAAL,EAAWS,WAAX;IAAP,CAAb;EACD,CAFD;AAGD,CAXD;;AAYA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,QAAR,EAAkBC,gBAAlB,EAAuC;EAC/D,IAAMC,WAAW,GAAG,EAApB;EACAC,MAAM,CAACC,IAAP,CAAYL,KAAZ,EAAmBH,OAAnB,CAA2B,UAAAS,QAAQ,EAAI;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,IAAMC,UAAU,GAAGP,KAAK,CAACM,QAAD,CAAxB;IACA,IAAME,YAAY,aAAMF,QAAN,aAAlB;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,CAAyB,UAAAa,kBAAkB,EAAI;MAC7C,4BAA0BA,kBAAkB,CAACC,KAAnB,CAAyB,GAAzB,CAA1B;MAAA;MAAA,IAAOC,eAAP;;MACAX,QAAQ,CAACJ,OAAT,CAAiB,UAAAgB,cAAc,EAAI;QACjC,IAAIA,cAAc,CAACC,OAAf,CAAuBF,eAAvB,MAA4C,CAAC,CAAjD,EAAoD;;QACpD,4BAA2BC,cAAc,CAACF,KAAf,CAAqB,GAArB,CAA3B;QAAA;QAAA,IAASI,cAAT;;QACA,IAAMC,eAAe,aAAMJ,eAAN,aAArB;QACA,IAAI,CAACG,cAAL,EAAqB;QACrBZ,WAAW,CAACP,IAAZ,CAAiB;UAAED,KAAK,uCAAKqB,eAAL,EAAuBD,cAAvB;QAAP,CAAjB;MACD,CAND;IAOD,CATD,CADF;EAWD;;EAED,OAAOZ,WAAP;AACD,CAzBD;;eA2BeJ,iB"}
1
+ {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","queryKey","value","filters","isRange","isInQuery","min","minValue","max","maxValue","push","range","gte","Number","lte","key","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","query","filterBy","filterByProperty","rangeValues","queryKeys","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","split","filterByPropKey","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../../../src/components/SearchFilter/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.minValue),\n lte: Number(value.maxValue)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\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, rangeValues, queryKeys }) => {\n const mustFilters = [];\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n const isInQuery = queryKeys.includes(queryKey);\n builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });\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":"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"}
@@ -17,7 +17,8 @@ require("core-js/modules/es.array.concat.js");
17
17
 
18
18
  var _constants = require("../constants");
19
19
 
20
- var buildRawQueryStringified = function buildRawQueryStringified(checkboxSelectValues, rangeValues, entity, mustFilters) {
20
+ var buildRawQueryStringified = function buildRawQueryStringified(checkboxSelectValues, rangeValues, entity) {
21
+ var mustFilters = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
21
22
  if (!checkboxSelectValues.length && !rangeValues.length) return '';
22
23
  var aggs = {};
23
24
  checkboxSelectValues.forEach(function (fieldName) {
@@ -35,21 +36,26 @@ var buildRawQueryStringified = function buildRawQueryStringified(checkboxSelectV
35
36
  }
36
37
  };
37
38
  });
39
+ var boolFilter = {
40
+ should: [{
41
+ match: {
42
+ docType: entity
43
+ }
44
+ }],
45
+ minimum_should_match: 1
46
+ };
47
+
48
+ if (mustFilters.length) {
49
+ boolFilter.must = mustFilters;
50
+ }
51
+
38
52
  return JSON.stringify({
39
53
  aggs: aggs,
40
54
  size: 0,
41
55
  query: {
42
56
  bool: {
43
57
  filter: {
44
- bool: {
45
- should: [{
46
- match: {
47
- docType: entity
48
- }
49
- }],
50
- must: mustFilters,
51
- minimum_should_match: 1
52
- }
58
+ bool: boolFilter
53
59
  }
54
60
  }
55
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-raw-query-stringified.js","names":["buildRawQueryStringified","checkboxSelectValues","rangeValues","entity","mustFilters","length","aggs","forEach","fieldName","terms","field","KEYWORD","size","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;;AAEA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,oBAAD,EAAuBC,WAAvB,EAAoCC,MAApC,EAA4CC,WAA5C,EAA4D;EAC3F,IAAI,CAACH,oBAAoB,CAACI,MAAtB,IAAgC,CAACH,WAAW,CAACG,MAAjD,EAAyD,OAAO,EAAP;EAEzD,IAAMC,IAAI,GAAG,EAAb;EAEAL,oBAAoB,CAACM,OAArB,CAA6B,UAAAC,SAAS,EAAI;IACxCF,IAAI,CAACE,SAAD,CAAJ,GAAkB;MAChBC,KAAK,EAAE;QACLC,KAAK,YAAKF,SAAL,cAAkBG,kBAAlB,CADA;QAELC,IAAI,EAAEC;MAFD;IADS,CAAlB;EAMD,CAPD;EASAX,WAAW,CAACK,OAAZ,CAAoB,UAAAC,SAAS,EAAI;IAC/BF,IAAI,CAACE,SAAD,CAAJ,GAAkB;MAChBM,KAAK,EAAE;QACLJ,KAAK,EAAEF;MADF;IADS,CAAlB;EAKD,CAND;EAQA,OAAOO,IAAI,CAACC,SAAL,CAAe;IACpBV,IAAI,EAAJA,IADoB;IAEpBM,IAAI,EAAE,CAFc;IAGpBK,KAAK,EAAE;MACLC,IAAI,EAAE;QACJC,MAAM,EAAE;UACND,IAAI,EAAE;YACJE,MAAM,EAAE,CACN;cACEC,KAAK,EAAE;gBACLC,OAAO,EAAEnB;cADJ;YADT,CADM,CADJ;YAQJoB,IAAI,EAAEnB,WARF;YASJoB,oBAAoB,EAAE;UATlB;QADA;MADJ;IADD;EAHa,CAAf,CAAP;AAqBD,CA3CD;;eA6CexB,wB"}
1
+ {"version":3,"file":"build-raw-query-stringified.js","names":["buildRawQueryStringified","checkboxSelectValues","rangeValues","entity","mustFilters","length","aggs","forEach","fieldName","terms","field","KEYWORD","size","SIZE","stats","boolFilter","should","match","docType","minimum_should_match","must","JSON","stringify","query","bool","filter"],"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 const boolFilter = {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n };\n\n if (mustFilters.length) {\n boolFilter.must = mustFilters;\n }\n\n return JSON.stringify({\n aggs,\n size: 0,\n query: {\n bool: {\n filter: {\n bool: boolFilter\n }\n }\n }\n });\n};\n\nexport default buildRawQueryStringified;\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,oBAAD,EAAuBC,WAAvB,EAAoCC,MAApC,EAAiE;EAAA,IAArBC,WAAqB,uEAAP,EAAO;EAChG,IAAI,CAACH,oBAAoB,CAACI,MAAtB,IAAgC,CAACH,WAAW,CAACG,MAAjD,EAAyD,OAAO,EAAP;EAEzD,IAAMC,IAAI,GAAG,EAAb;EAEAL,oBAAoB,CAACM,OAArB,CAA6B,UAAAC,SAAS,EAAI;IACxCF,IAAI,CAACE,SAAD,CAAJ,GAAkB;MAChBC,KAAK,EAAE;QACLC,KAAK,YAAKF,SAAL,cAAkBG,kBAAlB,CADA;QAELC,IAAI,EAAEC;MAFD;IADS,CAAlB;EAMD,CAPD;EASAX,WAAW,CAACK,OAAZ,CAAoB,UAAAC,SAAS,EAAI;IAC/BF,IAAI,CAACE,SAAD,CAAJ,GAAkB;MAChBM,KAAK,EAAE;QACLJ,KAAK,EAAEF;MADF;IADS,CAAlB;EAKD,CAND;EAQA,IAAMO,UAAU,GAAG;IACjBC,MAAM,EAAE,CACN;MACEC,KAAK,EAAE;QACLC,OAAO,EAAEf;MADJ;IADT,CADM,CADS;IAQjBgB,oBAAoB,EAAE;EARL,CAAnB;;EAWA,IAAIf,WAAW,CAACC,MAAhB,EAAwB;IACtBU,UAAU,CAACK,IAAX,GAAkBhB,WAAlB;EACD;;EAED,OAAOiB,IAAI,CAACC,SAAL,CAAe;IACpBhB,IAAI,EAAJA,IADoB;IAEpBM,IAAI,EAAE,CAFc;IAGpBW,KAAK,EAAE;MACLC,IAAI,EAAE;QACJC,MAAM,EAAE;UACND,IAAI,EAAET;QADA;MADJ;IADD;EAHa,CAAf,CAAP;AAWD,CAhDD;;eAkDef,wB"}
@@ -30,19 +30,19 @@ var getInitialFilterValues = function getInitialFilterValues(filterData, filters
30
30
  filterValues[_constants.SEARCH_TERM] = query[_constants.SEARCH_TERM] || '';
31
31
 
32
32
  if (!filterData) {
33
- filters.forEach(function (_ref) {
34
- var _ref$propsToDisplay = (0, _slicedToArray2["default"])(_ref.propsToDisplay, 1),
35
- key = _ref$propsToDisplay[0];
33
+ filters.forEach(function (filterProps) {
34
+ var _filterProps$propsToD = (0, _slicedToArray2["default"])(filterProps.propsToDisplay, 1),
35
+ key = _filterProps$propsToD[0];
36
36
 
37
- filterValues[key] = null;
37
+ filterValues[key] = query[key] ? (0, _getFilterValueFromQuery["default"])(key, filterProps, {}, query) : null;
38
38
  });
39
39
  filterValues.dataNotSet = true;
40
40
  return filterValues;
41
41
  }
42
42
 
43
43
  Object.keys(filterData).forEach(function (key) {
44
- var filterProps = filters.find(function (_ref2) {
45
- var propsToDisplay = _ref2.propsToDisplay;
44
+ var filterProps = filters.find(function (_ref) {
45
+ var propsToDisplay = _ref.propsToDisplay;
46
46
  return propsToDisplay.find(function (prop) {
47
47
  return key === prop;
48
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-initial-filter-values.js","names":["getInitialFilterValues","filterData","filters","query","filterValues","SEARCH_TERM","forEach","propsToDisplay","key","dataNotSet","Object","keys","filterProps","find","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 filterValues[SEARCH_TERM] = query[SEARCH_TERM] || '';\n\n if (!filterData) {\n filters.forEach(({ propsToDisplay: [key] }) => {\n filterValues[key] = null;\n });\n filterValues.dataNotSet = true;\n return filterValues;\n }\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\n filterValues.dataNotSet = false;\n\n return filterValues;\n};\n\nexport default getInitialFilterValues;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,UAAD,EAAaC,OAAb,EAAsBC,KAAtB,EAAgC;EAC7D,IAAMC,YAAY,GAAG,EAArB;EACAA,YAAY,CAACC,sBAAD,CAAZ,GAA4BF,KAAK,CAACE,sBAAD,CAAL,IAAsB,EAAlD;;EAEA,IAAI,CAACJ,UAAL,EAAiB;IACfC,OAAO,CAACI,OAAR,CAAgB,gBAA+B;MAAA,+DAA5BC,cAA4B;MAAA,IAAXC,GAAW;;MAC7CJ,YAAY,CAACI,GAAD,CAAZ,GAAoB,IAApB;IACD,CAFD;IAGAJ,YAAY,CAACK,UAAb,GAA0B,IAA1B;IACA,OAAOL,YAAP;EACD;;EAEDM,MAAM,CAACC,IAAP,CAAYV,UAAZ,EAAwBK,OAAxB,CAAgC,UAAAE,GAAG,EAAI;IACrC,IAAMI,WAAW,GACfV,OAAO,CAACW,IAAR,CAAa;MAAA,IAAGN,cAAH,SAAGA,cAAH;MAAA,OAAwBA,cAAc,CAACM,IAAf,CAAoB,UAAAC,IAAI;QAAA,OAAIN,GAAG,KAAKM,IAAZ;MAAA,CAAxB,CAAxB;IAAA,CAAb,KAAmF,EADrF;IAEAV,YAAY,CAACI,GAAD,CAAZ,GAAoB,yCAAwBA,GAAxB,EAA6BI,WAA7B,EAA0CX,UAAU,CAACO,GAAD,CAApD,EAA2DL,KAA3D,CAApB;EACD,CAJD;EAMAC,YAAY,CAACK,UAAb,GAA0B,KAA1B;EAEA,OAAOL,YAAP;AACD,CArBD;;eAuBeJ,sB"}
1
+ {"version":3,"file":"get-initial-filter-values.js","names":["getInitialFilterValues","filterData","filters","query","filterValues","SEARCH_TERM","forEach","filterProps","propsToDisplay","key","dataNotSet","Object","keys","find","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 filterValues[SEARCH_TERM] = query[SEARCH_TERM] || '';\n\n if (!filterData) {\n filters.forEach(filterProps => {\n const {\n propsToDisplay: [key]\n } = filterProps;\n filterValues[key] = query[key] ? getFilterValueFromQuery(key, filterProps, {}, query) : null;\n });\n filterValues.dataNotSet = true;\n return filterValues;\n }\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\n filterValues.dataNotSet = false;\n\n return filterValues;\n};\n\nexport default getInitialFilterValues;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,UAAD,EAAaC,OAAb,EAAsBC,KAAtB,EAAgC;EAC7D,IAAMC,YAAY,GAAG,EAArB;EACAA,YAAY,CAACC,sBAAD,CAAZ,GAA4BF,KAAK,CAACE,sBAAD,CAAL,IAAsB,EAAlD;;EAEA,IAAI,CAACJ,UAAL,EAAiB;IACfC,OAAO,CAACI,OAAR,CAAgB,UAAAC,WAAW,EAAI;MAC7B,4DAEIA,WAFJ,CACEC,cADF;MAAA,IACmBC,GADnB;;MAGAL,YAAY,CAACK,GAAD,CAAZ,GAAoBN,KAAK,CAACM,GAAD,CAAL,GAAa,yCAAwBA,GAAxB,EAA6BF,WAA7B,EAA0C,EAA1C,EAA8CJ,KAA9C,CAAb,GAAoE,IAAxF;IACD,CALD;IAMAC,YAAY,CAACM,UAAb,GAA0B,IAA1B;IACA,OAAON,YAAP;EACD;;EAEDO,MAAM,CAACC,IAAP,CAAYX,UAAZ,EAAwBK,OAAxB,CAAgC,UAAAG,GAAG,EAAI;IACrC,IAAMF,WAAW,GACfL,OAAO,CAACW,IAAR,CAAa;MAAA,IAAGL,cAAH,QAAGA,cAAH;MAAA,OAAwBA,cAAc,CAACK,IAAf,CAAoB,UAAAC,IAAI;QAAA,OAAIL,GAAG,KAAKK,IAAZ;MAAA,CAAxB,CAAxB;IAAA,CAAb,KAAmF,EADrF;IAEAV,YAAY,CAACK,GAAD,CAAZ,GAAoB,yCAAwBA,GAAxB,EAA6BF,WAA7B,EAA0CN,UAAU,CAACQ,GAAD,CAApD,EAA2DN,KAA3D,CAApB;EACD,CAJD;EAMAC,YAAY,CAACM,UAAb,GAA0B,KAA1B;EAEA,OAAON,YAAP;AACD,CAxBD;;eA0BeJ,sB"}
@@ -17,6 +17,8 @@ require("core-js/modules/es.string.split.js");
17
17
 
18
18
  require("core-js/modules/es.number.constructor.js");
19
19
 
20
+ require("core-js/modules/es.number.is-nan.js");
21
+
20
22
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
23
 
22
24
  var _calculateMinMax2 = _interopRequireDefault(require("./calculate-min-max"));
@@ -38,8 +40,8 @@ var getRangeValue = function getRangeValue(rawQueryProp, rangeInterval, _min, _m
38
40
  var updatedMinValue = Number(queryParamMin);
39
41
  var updatedMaxValue = Number(queryParamMax);
40
42
  return {
41
- min: min,
42
- max: max,
43
+ min: Number.isNaN(min) ? updatedMinValue : min,
44
+ max: Number.isNaN(max) ? updatedMaxValue : max,
43
45
  step: rangeInterval,
44
46
  maxValue: updatedMaxValue,
45
47
  minValue: updatedMinValue