@blaze-cms/react-page-builder 0.122.0-alpha.1 → 0.122.1-alpha.0

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 (25) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/lib/components/DataSummary/helpers/get-link-to-published-content.js +5 -2
  3. package/lib/components/DataSummary/helpers/get-link-to-published-content.js.map +1 -1
  4. package/lib/components/SearchFilter/SearchFilterContainer.js +1 -1
  5. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  6. package/lib/components/SearchFilter/helpers/parse-filter-value.js +8 -1
  7. package/lib/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  8. package/lib/helpers/get-filter-props.js +3 -1
  9. package/lib/helpers/get-filter-props.js.map +1 -1
  10. package/lib-es/components/DataSummary/helpers/get-link-to-published-content.js +3 -2
  11. package/lib-es/components/DataSummary/helpers/get-link-to-published-content.js.map +1 -1
  12. package/lib-es/components/SearchFilter/SearchFilterContainer.js +2 -2
  13. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  14. package/lib-es/components/SearchFilter/helpers/parse-filter-value.js +4 -1
  15. package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  16. package/lib-es/helpers/get-filter-props.js +2 -1
  17. package/lib-es/helpers/get-filter-props.js.map +1 -1
  18. package/package.json +2 -2
  19. package/src/components/DataSummary/helpers/get-link-to-published-content.js +4 -2
  20. package/src/components/SearchFilter/SearchFilterContainer.js +2 -8
  21. package/src/components/SearchFilter/helpers/parse-filter-value.js +6 -2
  22. package/src/helpers/get-filter-props.js +4 -1
  23. package/tests/helpers/mocks.js +6 -0
  24. package/tests/unit/src/components/DataSummary/helpers/get-link-to-published-content.test.js +18 -4
  25. package/tests/unit/src/helpers/get-filter-props.test.js +10 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,36 @@
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.122.1-alpha.0](https://github.com/thebyte9/blaze/compare/v0.122.0...v0.122.1-alpha.0) (2022-03-16)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * handle non array data types when adding link to data summary ([#3382](https://github.com/thebyte9/blaze/issues/3382)) ([dd3ae87](https://github.com/thebyte9/blaze/commit/dd3ae8738d2ccc53909954b46b3f06d2cda93484))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.122.0](https://github.com/thebyte9/blaze/compare/v0.122.0-alpha.2...v0.122.0) (2022-03-15)
18
+
19
+ **Note:** Version bump only for package @blaze-cms/react-page-builder
20
+
21
+
22
+
23
+
24
+
25
+ # [0.122.0-alpha.2](https://github.com/thebyte9/blaze/compare/v0.122.0-alpha.1...v0.122.0-alpha.2) (2022-03-14)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * added parsing of & on filters ([#3251](https://github.com/thebyte9/blaze/issues/3251)) ([9bf0cb5](https://github.com/thebyte9/blaze/commit/9bf0cb5e14e43aa556c2e216739efb0834ef1d6f))
31
+
32
+
33
+
34
+
35
+
6
36
  # [0.122.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.122.0-alpha.0...v0.122.0-alpha.1) (2022-03-10)
7
37
 
8
38
 
@@ -19,6 +19,8 @@ require("core-js/modules/es.regexp.exec.js");
19
19
 
20
20
  require("core-js/modules/es.string.split.js");
21
21
 
22
+ require("core-js/modules/es.array.is-array.js");
23
+
22
24
  var getLinkToPublishedContent = function getLinkToPublishedContent() {
23
25
  var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
24
26
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -28,8 +30,9 @@ var getLinkToPublishedContent = function getLinkToPublishedContent() {
28
30
  _key$split2 = (0, _slicedToArray2["default"])(_key$split, 1),
29
31
  baseKey = _key$split2[0];
30
32
 
31
- var content = props[baseKey] && props[baseKey][0];
32
- return content ? content.url : '';
33
+ if (!props[baseKey]) return '';
34
+ var content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];
35
+ return content && content.url ? content.url : '';
33
36
  }
34
37
 
35
38
  return '';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/DataSummary/helpers/get-link-to-published-content.js"],"names":["getLinkToPublishedContent","key","props","includes","split","baseKey","content","url"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,GAA0B;AAAA,MAAzBC,GAAyB,uEAAnB,EAAmB;AAAA,MAAfC,KAAe,uEAAP,EAAO;;AAC1D,MAAID,GAAG,CAACE,QAAJ,CAAa,WAAb,CAAJ,EAA+B;AAC7B,qBAAkBF,GAAG,CAACG,KAAJ,CAAU,GAAV,CAAlB;AAAA;AAAA,QAAOC,OAAP;;AACA,QAAMC,OAAO,GAAGJ,KAAK,CAACG,OAAD,CAAL,IAAkBH,KAAK,CAACG,OAAD,CAAL,CAAe,CAAf,CAAlC;AACA,WAAOC,OAAO,GAAGA,OAAO,CAACC,GAAX,GAAiB,EAA/B;AACD;;AACD,SAAO,EAAP;AACD,CAPD;;eASeP,yB","sourcesContent":["const getLinkToPublishedContent = (key = '', props = {}) => {\n if (key.includes('published')) {\n const [baseKey] = key.split('.');\n const content = props[baseKey] && props[baseKey][0];\n return content ? content.url : '';\n }\n return '';\n};\n\nexport default getLinkToPublishedContent;\n"],"file":"get-link-to-published-content.js"}
1
+ {"version":3,"sources":["../../../../src/components/DataSummary/helpers/get-link-to-published-content.js"],"names":["getLinkToPublishedContent","key","props","includes","split","baseKey","content","Array","isArray","url"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,GAA0B;AAAA,MAAzBC,GAAyB,uEAAnB,EAAmB;AAAA,MAAfC,KAAe,uEAAP,EAAO;;AAC1D,MAAID,GAAG,CAACE,QAAJ,CAAa,WAAb,CAAJ,EAA+B;AAC7B,qBAAkBF,GAAG,CAACG,KAAJ,CAAU,GAAV,CAAlB;AAAA;AAAA,QAAOC,OAAP;;AACA,QAAI,CAACH,KAAK,CAACG,OAAD,CAAV,EAAqB,OAAO,EAAP;AAErB,QAAMC,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAcN,KAAK,CAACG,OAAD,CAAnB,IAAgCH,KAAK,CAACG,OAAD,CAAL,CAAe,CAAf,CAAhC,GAAoDH,KAAK,CAACG,OAAD,CAAzE;AACA,WAAOC,OAAO,IAAIA,OAAO,CAACG,GAAnB,GAAyBH,OAAO,CAACG,GAAjC,GAAuC,EAA9C;AACD;;AACD,SAAO,EAAP;AACD,CATD;;eAWeT,yB","sourcesContent":["const getLinkToPublishedContent = (key = '', props = {}) => {\n if (key.includes('published')) {\n const [baseKey] = key.split('.');\n if (!props[baseKey]) return '';\n\n const content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];\n return content && content.url ? content.url : '';\n }\n return '';\n};\n\nexport default getLinkToPublishedContent;\n"],"file":"get-link-to-published-content.js"}
@@ -96,7 +96,7 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
96
96
 
97
97
  var hasUrl = !!url;
98
98
 
99
- var _parseUrl = (0, _queryString.parseUrl)((0, _helpers.decodeValue)(router.asPath)),
99
+ var _parseUrl = (0, _queryString.parseUrl)(router.asPath),
100
100
  currentUrl = _parseUrl.url,
101
101
  _parseUrl$query = _parseUrl.query,
102
102
  sort = _parseUrl$query.sort,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","asPath","currentUrl","query","sort","sortby","sortValues","baseQuery","action","RAW_RESULTS","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","variables","limit","skip","data","error","loading","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
1
+ {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","asPath","currentUrl","query","sort","sortby","sortValues","baseQuery","action","RAW_RESULTS","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","docType","variables","limit","skip","data","error","loading","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport { buildNewQuery, buildRawQueryStringified, getInitialFilterValues } from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(router.asPath);\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
@@ -13,6 +13,10 @@ require("core-js/modules/es.array.join.js");
13
13
 
14
14
  require("core-js/modules/es.array.map.js");
15
15
 
16
+ require("core-js/modules/es.regexp.exec.js");
17
+
18
+ require("core-js/modules/es.string.replace.js");
19
+
16
20
  var _constants = require("../constants");
17
21
 
18
22
  var parseFilterValue = function parseFilterValue(key, type, value) {
@@ -30,7 +34,10 @@ var parseFilterValue = function parseFilterValue(key, type, value) {
30
34
  }).join('&');
31
35
 
32
36
  case _constants.SELECT:
33
- return "".concat(key, "=").concat(value);
37
+ {
38
+ var parsedValue = value.replace(/&/g, '%26');
39
+ return "".concat(key, "=").concat(parsedValue);
40
+ }
34
41
 
35
42
  default:
36
43
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/parse-filter-value.js"],"names":["parseFilterValue","key","type","value","RANGE","minValue","min","maxValue","max","CHECKBOX","map","val","join","SELECT"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,EAAsB;AAC7C,MAAI,CAACA,KAAL,EAAY,OAAO,IAAP;;AACZ,UAAQD,IAAR;AACE,SAAKE,gBAAL;AACE,UAAID,KAAK,CAACE,QAAN,KAAmBF,KAAK,CAACG,GAAzB,IAAgCH,KAAK,CAACI,QAAN,KAAmBJ,KAAK,CAACK,GAA7D,EAAkE,OAAO,IAAP;AAClE,uBAAUP,GAAV,cAAiBE,KAAK,CAACE,QAAvB,cAAmCF,KAAK,CAACI,QAAzC;;AACF,SAAKE,mBAAL;AACE,UAAI,OAAON,KAAP,KAAiB,QAArB,EAA+B,iBAAUF,GAAV,cAAiBE,KAAjB;AAC/B,aAAOA,KAAK,CAACO,GAAN,CAAU,UAAAC,GAAG;AAAA,yBAAOV,GAAP,cAAcU,GAAd;AAAA,OAAb,EAAkCC,IAAlC,CAAuC,GAAvC,CAAP;;AACF,SAAKC,iBAAL;AACE,uBAAUZ,GAAV,cAAiBE,KAAjB;;AACF;AACE,aAAO,IAAP;AAVJ;AAYD,CAdD;;eAgBeH,gB","sourcesContent":["import { RANGE, CHECKBOX, SELECT } from '../constants';\n\nconst parseFilterValue = (key, type, value) => {\n if (!value) return null;\n switch (type) {\n case RANGE:\n if (value.minValue === value.min && value.maxValue === value.max) return null;\n return `${key}=${value.minValue}-${value.maxValue}`;\n case CHECKBOX:\n if (typeof value === 'string') return `${key}=${value}`;\n return value.map(val => `${key}=${val}`).join('&');\n case SELECT:\n return `${key}=${value}`;\n default:\n return null;\n }\n};\n\nexport default parseFilterValue;\n"],"file":"parse-filter-value.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/parse-filter-value.js"],"names":["parseFilterValue","key","type","value","RANGE","minValue","min","maxValue","max","CHECKBOX","map","val","join","SELECT","parsedValue","replace"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,EAAsB;AAC7C,MAAI,CAACA,KAAL,EAAY,OAAO,IAAP;;AAEZ,UAAQD,IAAR;AACE,SAAKE,gBAAL;AACE,UAAID,KAAK,CAACE,QAAN,KAAmBF,KAAK,CAACG,GAAzB,IAAgCH,KAAK,CAACI,QAAN,KAAmBJ,KAAK,CAACK,GAA7D,EAAkE,OAAO,IAAP;AAClE,uBAAUP,GAAV,cAAiBE,KAAK,CAACE,QAAvB,cAAmCF,KAAK,CAACI,QAAzC;;AACF,SAAKE,mBAAL;AACE,UAAI,OAAON,KAAP,KAAiB,QAArB,EAA+B,iBAAUF,GAAV,cAAiBE,KAAjB;AAC/B,aAAOA,KAAK,CAACO,GAAN,CAAU,UAAAC,GAAG;AAAA,yBAAOV,GAAP,cAAcU,GAAd;AAAA,OAAb,EAAkCC,IAAlC,CAAuC,GAAvC,CAAP;;AACF,SAAKC,iBAAL;AAAa;AACX,YAAMC,WAAW,GAAGX,KAAK,CAACY,OAAN,CAAc,IAAd,EAAoB,KAApB,CAApB;AACA,yBAAUd,GAAV,cAAiBa,WAAjB;AACD;;AAED;AACE,aAAO,IAAP;AAbJ;AAeD,CAlBD;;eAoBed,gB","sourcesContent":["import { RANGE, CHECKBOX, SELECT } from '../constants';\n\nconst parseFilterValue = (key, type, value) => {\n if (!value) return null;\n\n switch (type) {\n case RANGE:\n if (value.minValue === value.min && value.maxValue === value.max) return null;\n return `${key}=${value.minValue}-${value.maxValue}`;\n case CHECKBOX:\n if (typeof value === 'string') return `${key}=${value}`;\n return value.map(val => `${key}=${val}`).join('&');\n case SELECT: {\n const parsedValue = value.replace(/&/g, '%26');\n return `${key}=${parsedValue}`;\n }\n\n default:\n return null;\n }\n};\n\nexport default parseFilterValue;\n"],"file":"parse-filter-value.js"}
@@ -47,6 +47,8 @@ var getFilterProps = function getFilterProps(filter) {
47
47
  currentEntityRelations = _ref5$relations === void 0 ? [] : _ref5$relations,
48
48
  _ref5$properties = _ref5.properties,
49
49
  currentEntityProperties = _ref5$properties === void 0 ? {} : _ref5$properties,
50
+ _ref5$dynamicProperti = _ref5.dynamicProperties,
51
+ currentEntityDynamicProperties = _ref5$dynamicProperti === void 0 ? {} : _ref5$dynamicProperti,
50
52
  currentEntityId = _ref5.identifier;
51
53
 
52
54
  var _ref6 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
@@ -63,7 +65,7 @@ var getFilterProps = function getFilterProps(filter) {
63
65
  relationName = _filterName$split2[0],
64
66
  relationProp = _filterName$split2[1];
65
67
 
66
- var hasProperty = !!currentEntityProperties[filterName];
68
+ var hasProperty = !!(currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]);
67
69
  var relationEntityName = relationProp ? getFilterLocalKeys(relationName, currentEntityRelations) : null;
68
70
  var filterNameEntity = getRelationEntity(filterName, filterEntityRelations);
69
71
  var propertyEntityName = relationEntityName || filterNameEntity;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/get-filter-props.js"],"names":["getFilterLocalKeys","relationName","relations","find","localField","entityIdentifier","getRelationEntity","filterName","filterEntityRelations","foreignKey","getFilterProps","filter","currentEntityRelations","properties","currentEntityProperties","currentEntityId","identifier","filteryEntityId","split","relationProp","hasProperty","relationEntityName","filterNameEntity","propertyEntityName","entityName","isEntityItself","shouldCheckRelationNames","relationForeignKeys","shouldIgnoreFilter","length"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,YAAD,EAAeC,SAAf,EAA6B;AACtD,aACEA,SAAS,CAACC,IAAV,CAAe;AAAA,QAAGC,UAAH,SAAGA,UAAH;AAAA,WAAoBA,UAAU,KAAKH,YAAnC;AAAA,GAAf,KAAmE,EADrE;AAAA,MAAQI,gBAAR,QAAQA,gBAAR;;AAEA,SAAOA,gBAAP;AACD,CAJD;;AAMA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,UAAD,EAAaC,qBAAb,EAAuC;AAC/D,cACEA,qBAAqB,CAACL,IAAtB,CAA2B;AAAA,QAAGM,UAAH,SAAGA,UAAH;AAAA,WAAoBA,UAAU,KAAKF,UAAnC;AAAA,GAA3B,KAA6E,EAD/E;AAAA,MAAQF,gBAAR,SAAQA,gBAAR;;AAEA,SAAOA,gBAAP;AACD,CAJD;;AAMA,IAAMK,cAAc,GAAG,SAAjBA,cAAiB,CACrBC,MADqB,EAQlB;AAAA,kFAFC,EAED;AAAA,8BALDT,SAKC;AAAA,MALUU,sBAKV,gCALmC,EAKnC;AAAA,+BAJDC,UAIC;AAAA,MAJWC,uBAIX,iCAJqC,EAIrC;AAAA,MAHWC,eAGX,SAHDC,UAGC;;AAAA,kFADsE,EACtE;AAAA,8BADDd,SACC;AAAA,MADUM,qBACV,gCADkC,EAClC;AAAA,MADkDS,eAClD,SADsCD,UACtC;;AACH,sBAAqBL,MAAM,CAACO,KAAP,CAAa,GAAb,CAArB;AAAA;AAAA,MAAOX,UAAP;;AACA,0BAAqCA,UAAU,CAACW,KAAX,CAAiB,GAAjB,CAArC;AAAA;AAAA,MAAOjB,YAAP;AAAA,MAAqBkB,YAArB;;AACA,MAAMC,WAAW,GAAG,CAAC,CAACN,uBAAuB,CAACP,UAAD,CAA7C;AACA,MAAMc,kBAAkB,GAAGF,YAAY,GACnCnB,kBAAkB,CAACC,YAAD,EAAeW,sBAAf,CADiB,GAEnC,IAFJ;AAGA,MAAMU,gBAAgB,GAAGhB,iBAAiB,CAACC,UAAD,EAAaC,qBAAb,CAA1C;AAEA,MAAMe,kBAAkB,GAAGF,kBAAkB,IAAIC,gBAAjD;AACA,MAAME,UAAU,GAAGF,gBAAgB,GAAGL,eAAH,GAAqBI,kBAAxD;AACA,MAAMI,cAAc,GAAGV,eAAe,KAAKQ,kBAA3C;AACA,MAAMG,wBAAwB,GAAG,CAACN,WAAD,IAAgB,CAACC,kBAAlD;AACA,MAAMM,mBAAmB,GAAGD,wBAAwB,GAChD,uCAAsBH,kBAAtB,EAA0CX,sBAA1C,EAAkEE,uBAAlE,CADgD,GAEhD,EAFJ;AAGA,MAAMc,kBAAkB,GAAGF,wBAAwB,IAAI,CAACC,mBAAmB,CAACE,MAA5E;AAEA,SAAO;AACLtB,IAAAA,UAAU,EAAVA,UADK;AAELiB,IAAAA,UAAU,EAAVA,UAFK;AAGLvB,IAAAA,YAAY,EAAZA,YAHK;AAILkB,IAAAA,YAAY,EAAZA,YAJK;AAKLC,IAAAA,WAAW,EAAXA,WALK;AAMLC,IAAAA,kBAAkB,EAAlBA,kBANK;AAOLI,IAAAA,cAAc,EAAdA,cAPK;AAQLE,IAAAA,mBAAmB,EAAnBA,mBARK;AASLC,IAAAA,kBAAkB,EAAlBA;AATK,GAAP;AAWD,CArCD;;eAuCelB,c","sourcesContent":["import getFilterRelationKeys from './get-filter-relation-keys';\n\nconst getFilterLocalKeys = (relationName, relations) => {\n const { entityIdentifier } =\n relations.find(({ localField }) => localField === relationName) || {};\n return entityIdentifier;\n};\n\nconst getRelationEntity = (filterName, filterEntityRelations) => {\n const { entityIdentifier } =\n filterEntityRelations.find(({ foreignKey }) => foreignKey === filterName) || {};\n return entityIdentifier;\n};\n\nconst getFilterProps = (\n filter,\n {\n relations: currentEntityRelations = [],\n properties: currentEntityProperties = {},\n identifier: currentEntityId\n } = {},\n { relations: filterEntityRelations = [], identifier: filteryEntityId } = {}\n) => {\n const [filterName] = filter.split('/');\n const [relationName, relationProp] = filterName.split('.');\n const hasProperty = !!currentEntityProperties[filterName];\n const relationEntityName = relationProp\n ? getFilterLocalKeys(relationName, currentEntityRelations)\n : null;\n const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);\n\n const propertyEntityName = relationEntityName || filterNameEntity;\n const entityName = filterNameEntity ? filteryEntityId : relationEntityName;\n const isEntityItself = currentEntityId === propertyEntityName;\n const shouldCheckRelationNames = !hasProperty && !relationEntityName;\n const relationForeignKeys = shouldCheckRelationNames\n ? getFilterRelationKeys(propertyEntityName, currentEntityRelations, currentEntityProperties)\n : [];\n const shouldIgnoreFilter = shouldCheckRelationNames && !relationForeignKeys.length;\n\n return {\n filterName,\n entityName,\n relationName,\n relationProp,\n hasProperty,\n relationEntityName,\n isEntityItself,\n relationForeignKeys,\n shouldIgnoreFilter\n };\n};\n\nexport default getFilterProps;\n"],"file":"get-filter-props.js"}
1
+ {"version":3,"sources":["../../src/helpers/get-filter-props.js"],"names":["getFilterLocalKeys","relationName","relations","find","localField","entityIdentifier","getRelationEntity","filterName","filterEntityRelations","foreignKey","getFilterProps","filter","currentEntityRelations","properties","currentEntityProperties","dynamicProperties","currentEntityDynamicProperties","currentEntityId","identifier","filteryEntityId","split","relationProp","hasProperty","relationEntityName","filterNameEntity","propertyEntityName","entityName","isEntityItself","shouldCheckRelationNames","relationForeignKeys","shouldIgnoreFilter","length"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,YAAD,EAAeC,SAAf,EAA6B;AACtD,aACEA,SAAS,CAACC,IAAV,CAAe;AAAA,QAAGC,UAAH,SAAGA,UAAH;AAAA,WAAoBA,UAAU,KAAKH,YAAnC;AAAA,GAAf,KAAmE,EADrE;AAAA,MAAQI,gBAAR,QAAQA,gBAAR;;AAEA,SAAOA,gBAAP;AACD,CAJD;;AAMA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,UAAD,EAAaC,qBAAb,EAAuC;AAC/D,cACEA,qBAAqB,CAACL,IAAtB,CAA2B;AAAA,QAAGM,UAAH,SAAGA,UAAH;AAAA,WAAoBA,UAAU,KAAKF,UAAnC;AAAA,GAA3B,KAA6E,EAD/E;AAAA,MAAQF,gBAAR,SAAQA,gBAAR;;AAEA,SAAOA,gBAAP;AACD,CAJD;;AAMA,IAAMK,cAAc,GAAG,SAAjBA,cAAiB,CACrBC,MADqB,EASlB;AAAA,kFAFC,EAED;AAAA,8BANDT,SAMC;AAAA,MANUU,sBAMV,gCANmC,EAMnC;AAAA,+BALDC,UAKC;AAAA,MALWC,uBAKX,iCALqC,EAKrC;AAAA,oCAJDC,iBAIC;AAAA,MAJkBC,8BAIlB,sCAJmD,EAInD;AAAA,MAHWC,eAGX,SAHDC,UAGC;;AAAA,kFADsE,EACtE;AAAA,8BADDhB,SACC;AAAA,MADUM,qBACV,gCADkC,EAClC;AAAA,MADkDW,eAClD,SADsCD,UACtC;;AACH,sBAAqBP,MAAM,CAACS,KAAP,CAAa,GAAb,CAArB;AAAA;AAAA,MAAOb,UAAP;;AACA,0BAAqCA,UAAU,CAACa,KAAX,CAAiB,GAAjB,CAArC;AAAA;AAAA,MAAOnB,YAAP;AAAA,MAAqBoB,YAArB;;AACA,MAAMC,WAAW,GAAG,CAAC,EACnBR,uBAAuB,CAACP,UAAD,CAAvB,IAAuCS,8BAA8B,CAACT,UAAD,CADlD,CAArB;AAGA,MAAMgB,kBAAkB,GAAGF,YAAY,GACnCrB,kBAAkB,CAACC,YAAD,EAAeW,sBAAf,CADiB,GAEnC,IAFJ;AAGA,MAAMY,gBAAgB,GAAGlB,iBAAiB,CAACC,UAAD,EAAaC,qBAAb,CAA1C;AAEA,MAAMiB,kBAAkB,GAAGF,kBAAkB,IAAIC,gBAAjD;AACA,MAAME,UAAU,GAAGF,gBAAgB,GAAGL,eAAH,GAAqBI,kBAAxD;AACA,MAAMI,cAAc,GAAGV,eAAe,KAAKQ,kBAA3C;AACA,MAAMG,wBAAwB,GAAG,CAACN,WAAD,IAAgB,CAACC,kBAAlD;AACA,MAAMM,mBAAmB,GAAGD,wBAAwB,GAChD,uCAAsBH,kBAAtB,EAA0Cb,sBAA1C,EAAkEE,uBAAlE,CADgD,GAEhD,EAFJ;AAGA,MAAMgB,kBAAkB,GAAGF,wBAAwB,IAAI,CAACC,mBAAmB,CAACE,MAA5E;AAEA,SAAO;AACLxB,IAAAA,UAAU,EAAVA,UADK;AAELmB,IAAAA,UAAU,EAAVA,UAFK;AAGLzB,IAAAA,YAAY,EAAZA,YAHK;AAILoB,IAAAA,YAAY,EAAZA,YAJK;AAKLC,IAAAA,WAAW,EAAXA,WALK;AAMLC,IAAAA,kBAAkB,EAAlBA,kBANK;AAOLI,IAAAA,cAAc,EAAdA,cAPK;AAQLE,IAAAA,mBAAmB,EAAnBA,mBARK;AASLC,IAAAA,kBAAkB,EAAlBA;AATK,GAAP;AAWD,CAxCD;;eA0CepB,c","sourcesContent":["import getFilterRelationKeys from './get-filter-relation-keys';\n\nconst getFilterLocalKeys = (relationName, relations) => {\n const { entityIdentifier } =\n relations.find(({ localField }) => localField === relationName) || {};\n return entityIdentifier;\n};\n\nconst getRelationEntity = (filterName, filterEntityRelations) => {\n const { entityIdentifier } =\n filterEntityRelations.find(({ foreignKey }) => foreignKey === filterName) || {};\n return entityIdentifier;\n};\n\nconst getFilterProps = (\n filter,\n {\n relations: currentEntityRelations = [],\n properties: currentEntityProperties = {},\n dynamicProperties: currentEntityDynamicProperties = {},\n identifier: currentEntityId\n } = {},\n { relations: filterEntityRelations = [], identifier: filteryEntityId } = {}\n) => {\n const [filterName] = filter.split('/');\n const [relationName, relationProp] = filterName.split('.');\n const hasProperty = !!(\n currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]\n );\n const relationEntityName = relationProp\n ? getFilterLocalKeys(relationName, currentEntityRelations)\n : null;\n const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);\n\n const propertyEntityName = relationEntityName || filterNameEntity;\n const entityName = filterNameEntity ? filteryEntityId : relationEntityName;\n const isEntityItself = currentEntityId === propertyEntityName;\n const shouldCheckRelationNames = !hasProperty && !relationEntityName;\n const relationForeignKeys = shouldCheckRelationNames\n ? getFilterRelationKeys(propertyEntityName, currentEntityRelations, currentEntityProperties)\n : [];\n const shouldIgnoreFilter = shouldCheckRelationNames && !relationForeignKeys.length;\n\n return {\n filterName,\n entityName,\n relationName,\n relationProp,\n hasProperty,\n relationEntityName,\n isEntityItself,\n relationForeignKeys,\n shouldIgnoreFilter\n };\n};\n\nexport default getFilterProps;\n"],"file":"get-filter-props.js"}
@@ -1,8 +1,9 @@
1
1
  const getLinkToPublishedContent = (key = '', props = {}) => {
2
2
  if (key.includes('published')) {
3
3
  const [baseKey] = key.split('.');
4
- const content = props[baseKey] && props[baseKey][0];
5
- return content ? content.url : '';
4
+ if (!props[baseKey]) return '';
5
+ const content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];
6
+ return content && content.url ? content.url : '';
6
7
  }
7
8
 
8
9
  return '';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/DataSummary/helpers/get-link-to-published-content.js"],"names":["getLinkToPublishedContent","key","props","includes","baseKey","split","content","url"],"mappings":"AAAA,MAAMA,yBAAyB,GAAG,CAACC,GAAG,GAAG,EAAP,EAAWC,KAAK,GAAG,EAAnB,KAA0B;AAC1D,MAAID,GAAG,CAACE,QAAJ,CAAa,WAAb,CAAJ,EAA+B;AAC7B,UAAM,CAACC,OAAD,IAAYH,GAAG,CAACI,KAAJ,CAAU,GAAV,CAAlB;AACA,UAAMC,OAAO,GAAGJ,KAAK,CAACE,OAAD,CAAL,IAAkBF,KAAK,CAACE,OAAD,CAAL,CAAe,CAAf,CAAlC;AACA,WAAOE,OAAO,GAAGA,OAAO,CAACC,GAAX,GAAiB,EAA/B;AACD;;AACD,SAAO,EAAP;AACD,CAPD;;AASA,eAAeP,yBAAf","sourcesContent":["const getLinkToPublishedContent = (key = '', props = {}) => {\n if (key.includes('published')) {\n const [baseKey] = key.split('.');\n const content = props[baseKey] && props[baseKey][0];\n return content ? content.url : '';\n }\n return '';\n};\n\nexport default getLinkToPublishedContent;\n"],"file":"get-link-to-published-content.js"}
1
+ {"version":3,"sources":["../../../../src/components/DataSummary/helpers/get-link-to-published-content.js"],"names":["getLinkToPublishedContent","key","props","includes","baseKey","split","content","Array","isArray","url"],"mappings":"AAAA,MAAMA,yBAAyB,GAAG,CAACC,GAAG,GAAG,EAAP,EAAWC,KAAK,GAAG,EAAnB,KAA0B;AAC1D,MAAID,GAAG,CAACE,QAAJ,CAAa,WAAb,CAAJ,EAA+B;AAC7B,UAAM,CAACC,OAAD,IAAYH,GAAG,CAACI,KAAJ,CAAU,GAAV,CAAlB;AACA,QAAI,CAACH,KAAK,CAACE,OAAD,CAAV,EAAqB,OAAO,EAAP;AAErB,UAAME,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAcN,KAAK,CAACE,OAAD,CAAnB,IAAgCF,KAAK,CAACE,OAAD,CAAL,CAAe,CAAf,CAAhC,GAAoDF,KAAK,CAACE,OAAD,CAAzE;AACA,WAAOE,OAAO,IAAIA,OAAO,CAACG,GAAnB,GAAyBH,OAAO,CAACG,GAAjC,GAAuC,EAA9C;AACD;;AACD,SAAO,EAAP;AACD,CATD;;AAWA,eAAeT,yBAAf","sourcesContent":["const getLinkToPublishedContent = (key = '', props = {}) => {\n if (key.includes('published')) {\n const [baseKey] = key.split('.');\n if (!props[baseKey]) return '';\n\n const content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];\n return content && content.url ? content.url : '';\n }\n return '';\n};\n\nexport default getLinkToPublishedContent;\n"],"file":"get-link-to-published-content.js"}
@@ -6,7 +6,7 @@ import { parseUrl, stringify } from 'query-string';
6
6
  import SearchFilter from './SearchFilter';
7
7
  import { withTitle } from '../../HOC';
8
8
  import { getSearchPublishedContent } from '../../application/query';
9
- import { buildNewQuery, buildRawQueryStringified, getInitialFilterValues, decodeValue } from './helpers';
9
+ import { buildNewQuery, buildRawQueryStringified, getInitialFilterValues } from './helpers';
10
10
  import { getEntityData } from '../../helpers';
11
11
  import { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';
12
12
  import { SCROLL_OFFSET } from '../../constants';
@@ -32,7 +32,7 @@ const SearchFilterContainer = ({
32
32
  sortby
33
33
  },
34
34
  query
35
- } = parseUrl(decodeValue(router.asPath));
35
+ } = parseUrl(router.asPath);
36
36
  const sortValues = sort && sortby ? stringify({
37
37
  sort,
38
38
  sortby
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["React","useState","useRef","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","decodeValue","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","currentUrl","query","sort","sortby","asPath","sortValues","baseQuery","action","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","includes","push","docType","data","error","loading","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","list","document","getElementsByClassName","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","getBoundingClientRect","propTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
1
+ {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["React","useState","useRef","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","currentUrl","query","sort","sortby","asPath","sortValues","baseQuery","action","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","includes","push","docType","data","error","loading","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","list","document","getElementsByClassName","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","getBoundingClientRect","propTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,MAA1B,QAAwC,OAAxC;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,cAApC;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,SAASC,SAAT,QAA0B,WAA1B;AACA,SAASC,yBAAT,QAA0C,yBAA1C;AACA,SAASC,aAAT,EAAwBC,wBAAxB,EAAkDC,sBAAlD,QAAgF,WAAhF;AACA,SAASC,aAAT,QAA8B,eAA9B;AACA,SAASC,WAAT,EAAsBC,KAAtB,EAA6BC,eAA7B,QAAoD,aAApD;AACA,SAASC,aAAT,QAA8B,iBAA9B;;AAEA,MAAMC,qBAAqB,GAAG,CAAC;AAC7BC,EAAAA,MAD6B;AAE7BC,EAAAA,GAF6B;AAG7BC,EAAAA,OAH6B;AAI7BC,EAAAA,IAJ6B;AAK7BC,EAAAA,uBAL6B;AAM7BC,EAAAA,gBAN6B;AAO7BC,EAAAA;AAP6B,CAAD,KAQxB;AACJ,QAAMC,MAAM,GAAGxB,SAAS,EAAxB;AACA,QAAMyB,eAAe,GAAG1B,MAAM,CAAC,IAAD,CAA9B;AACA,QAAM,CAAC2B,GAAD,EAAMC,MAAN,IAAgB7B,QAAQ,CAAE,UAASsB,IAAK,EAAhB,CAA9B;AACA,QAAM,CAACQ,mBAAD,EAAsBC,sBAAtB,IAAgD/B,QAAQ,CAAC,KAAD,CAA9D;AACA,QAAMgC,MAAM,GAAG,CAAC,CAACZ,GAAjB;AACA,QAAM;AACJA,IAAAA,GAAG,EAAEa,UADD;AAEJC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAFH;AAGJF,IAAAA;AAHI,MAIF7B,QAAQ,CAACqB,MAAM,CAACW,MAAR,CAJZ;AAKA,QAAMC,UAAU,GAAGH,IAAI,IAAIC,MAAR,GAAiB9B,SAAS,CAAC;AAAE6B,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,CAA1B,GAA+C,EAAlE;AACA,QAAMG,SAAS,GAAGD,UAAU,GAAI,GAAEL,UAAW,IAAGK,UAAW,EAA/B,GAAmCL,UAA/D;AAEA,QAAMO,MAAM,GAAG/B,yBAAyB,CAACK,WAAD,CAAxC;AAEA,MAAI2B,mBAAmB,GAAG,EAA1B;AAEA,QAAMC,oBAAoB,GAAG,EAA7B;AACA,QAAMC,WAAW,GAAG,EAApB;AAEAtB,EAAAA,OAAO,CAACuB,OAAR,CAAgB,CAAC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,KAA8B;AAC5C,QAAI9B,eAAe,CAAC+B,QAAhB,CAAyBF,IAAzB,CAAJ,EAAoC;AAClCH,MAAAA,oBAAoB,CAACM,IAArB,CAA0BF,cAAc,CAAC,CAAD,CAAxC;AACD,KAFD,MAEO,IAAID,IAAI,KAAK9B,KAAb,EAAoB;AACzB4B,MAAAA,WAAW,CAACK,IAAZ,CAAiB,GAAGF,cAApB;AACD;AACF,GAND;AAQA,QAAM;AAAEG,IAAAA;AAAF,MAAcpC,aAAa,CAACM,MAAD,CAAjC;AAEAsB,EAAAA,mBAAmB,GAAG9B,wBAAwB,CAAC+B,oBAAD,EAAuBC,WAAvB,EAAoCM,OAApC,CAA9C;AAEA,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeC,IAAAA;AAAf,MAA2BjD,QAAQ,CAACqC,MAAD,EAAS;AAChDa,IAAAA,SAAS,EAAE;AAAEZ,MAAAA,mBAAF;AAAuBa,MAAAA,KAAK,EAAE;AAA9B,KADqC;AACF;AAC9CC,IAAAA,IAAI,EAAE,CAACd;AAFyC,GAAT,CAAzC;AAKA,MAAIW,OAAJ,EAAa,OAAO,IAAP;AACb,MAAID,KAAJ,EAAW,OAAOA,KAAK,CAACK,OAAb;AACX,MAAI,CAACnC,OAAO,CAACoC,MAAb,EAAqB,OAAO,IAAP;AAErB,QAAM;AAAEC,IAAAA,sBAAsB,EAAE;AAAEC,MAAAA,UAAU,EAAE;AAAEC,QAAAA,YAAY,EAAEC,UAAU,GAAG;AAA7B,UAAoC;AAAlD,QAAyD;AAAnF,MACJX,IAAI,IAAI,EADV;AAGA,QAAMY,mBAAmB,GAAGlD,sBAAsB,CAACiD,UAAD,EAAaxC,OAAb,EAAsBa,KAAtB,CAAlD;;AAEA,QAAM6B,YAAY,GAAGC,QAAQ,IAAI;AAC/BjC,IAAAA,sBAAsB,CAAC,KAAD,CAAtB;;AAEA,QAAI,CAACiC,QAAL,EAAe;AACbC,MAAAA,iBAAiB;AACjB,aAAOvC,MAAM,CAACsB,IAAP,CAAY,WAAZ,EAAyBT,SAAzB,EAAoC;AAAE2B,QAAAA,OAAO,EAAE,CAAClC,MAAZ;AAAoBmC,QAAAA,MAAM,EAAE;AAA5B,OAApC,EAAyEC,IAAzE,CAA8E,MAAM;AACzFvC,QAAAA,MAAM,CAAE,UAASP,IAAK,IAAG+C,IAAI,CAACC,GAAL,EAAW,EAA9B,CAAN,CADyF,CACjD;AACzC,OAFM,CAAP;AAGD;;AACD,UAAMC,MAAM,GAAG7D,aAAa,CAACU,GAAD,EAAMa,UAAN,EAAkB+B,QAAlB,EAA4B1B,UAA5B,CAA5B;AACA2B,IAAAA,iBAAiB;AACjB,WAAOvC,MAAM,CAACsB,IAAP,CAAY,WAAZ,EAAyBuB,MAAzB,EAAiC;AAAEL,MAAAA,OAAO,EAAE,CAAClC,MAAZ;AAAoBmC,MAAAA,MAAM,EAAE;AAA5B,KAAjC,CAAP;AACD,GAZD;;AAcA,QAAMF,iBAAiB,GAAG,MAAM;AAC9B,UAAM,CAACO,IAAD,IAASC,QAAQ,CAACC,sBAAT,CAAgC,UAAhC,CAAf;AACA,UAAMC,uBAAuB,GAAG,CAAC3C,MAAD,IAAWwC,IAA3C;;AAEA,QAAIG,uBAAJ,EAA6B;AAC3BC,MAAAA,MAAM,CAACC,QAAP,CAAgB;AACdC,QAAAA,IAAI,EAAE,CADQ;AAEdC,QAAAA,GAAG,EAAEH,MAAM,CAACI,WAAP,GAAqB/D,aAArB,GAAqCuD,IAAI,CAACS,qBAAL,GAA6BF;AAFzD,OAAhB;AAID,KALD,MAKO;AACLH,MAAAA,MAAM,CAACC,QAAP,CAAgB,CAAhB,EAAmB,CAAnB;AACD;AACF,GAZD;;AAcA,sBACE,oBAAC,YAAD;AACE,IAAA,GAAG,EAAEjD,GADP;AAEE,IAAA,eAAe,EAAED,eAFnB;AAGE,IAAA,IAAI,EAAEkC,UAHR;AAIE,IAAA,OAAO,EAAExC,OAJX;AAKE,IAAA,MAAM,EAAEW,MALV;AAME,IAAA,MAAM,EAAEb,MANV;AAOE,IAAA,YAAY,EAAE4C,YAPhB;AAQE,IAAA,mBAAmB,EAAED,mBARvB;AASE,IAAA,IAAI,EAAExC,IATR;AAUE,IAAA,uBAAuB,EAAEC,uBAV3B;AAWE,IAAA,mBAAmB,EAAEO,mBAXvB;AAYE,IAAA,sBAAsB,EAAEC,sBAZ1B;AAaE,IAAA,gBAAgB,EAAEP,gBAbpB;AAcE,IAAA,iBAAiB,EAAEC;AAdrB,IADF;AAkBD,CArGD;;AAuGAP,qBAAqB,CAACgE,SAAtB,GAAkC;AAChC/D,EAAAA,MAAM,EAAEf,SAAS,CAAC+E,MADc;AAEhC/D,EAAAA,GAAG,EAAEhB,SAAS,CAAC+E,MAFiB;AAGhC9D,EAAAA,OAAO,EAAEjB,SAAS,CAACgF,KAHa;AAIhC9D,EAAAA,IAAI,EAAElB,SAAS,CAAC+E,MAAV,CAAiBE,UAJS;AAKhC9D,EAAAA,uBAAuB,EAAEnB,SAAS,CAACkF,IALH;AAMhC9D,EAAAA,gBAAgB,EAAEpB,SAAS,CAACmF,MANI;AAOhC9D,EAAAA,iBAAiB,EAAErB,SAAS,CAACmF;AAPG,CAAlC;AAUArE,qBAAqB,CAACsE,YAAtB,GAAqC;AACnCpE,EAAAA,GAAG,EAAE,IAD8B;AAEnCC,EAAAA,OAAO,EAAE,EAF0B;AAGnCF,EAAAA,MAAM,EAAE,EAH2B;AAInCI,EAAAA,uBAAuB,EAAE,IAJU;AAKnCC,EAAAA,gBAAgB,EAAE,CALiB;AAMnCC,EAAAA,iBAAiB,EAAE;AANgB,CAArC;AASA,eAAejB,SAAS,CAACU,qBAAD,CAAxB","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport { buildNewQuery, buildRawQueryStringified, getInitialFilterValues } from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(router.asPath);\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
@@ -13,7 +13,10 @@ const parseFilterValue = (key, type, value) => {
13
13
  return value.map(val => `${key}=${val}`).join('&');
14
14
 
15
15
  case SELECT:
16
- return `${key}=${value}`;
16
+ {
17
+ const parsedValue = value.replace(/&/g, '%26');
18
+ return `${key}=${parsedValue}`;
19
+ }
17
20
 
18
21
  default:
19
22
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/parse-filter-value.js"],"names":["RANGE","CHECKBOX","SELECT","parseFilterValue","key","type","value","minValue","min","maxValue","max","map","val","join"],"mappings":"AAAA,SAASA,KAAT,EAAgBC,QAAhB,EAA0BC,MAA1B,QAAwC,cAAxC;;AAEA,MAAMC,gBAAgB,GAAG,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,KAAsB;AAC7C,MAAI,CAACA,KAAL,EAAY,OAAO,IAAP;;AACZ,UAAQD,IAAR;AACE,SAAKL,KAAL;AACE,UAAIM,KAAK,CAACC,QAAN,KAAmBD,KAAK,CAACE,GAAzB,IAAgCF,KAAK,CAACG,QAAN,KAAmBH,KAAK,CAACI,GAA7D,EAAkE,OAAO,IAAP;AAClE,aAAQ,GAAEN,GAAI,IAAGE,KAAK,CAACC,QAAS,IAAGD,KAAK,CAACG,QAAS,EAAlD;;AACF,SAAKR,QAAL;AACE,UAAI,OAAOK,KAAP,KAAiB,QAArB,EAA+B,OAAQ,GAAEF,GAAI,IAAGE,KAAM,EAAvB;AAC/B,aAAOA,KAAK,CAACK,GAAN,CAAUC,GAAG,IAAK,GAAER,GAAI,IAAGQ,GAAI,EAA/B,EAAkCC,IAAlC,CAAuC,GAAvC,CAAP;;AACF,SAAKX,MAAL;AACE,aAAQ,GAAEE,GAAI,IAAGE,KAAM,EAAvB;;AACF;AACE,aAAO,IAAP;AAVJ;AAYD,CAdD;;AAgBA,eAAeH,gBAAf","sourcesContent":["import { RANGE, CHECKBOX, SELECT } from '../constants';\n\nconst parseFilterValue = (key, type, value) => {\n if (!value) return null;\n switch (type) {\n case RANGE:\n if (value.minValue === value.min && value.maxValue === value.max) return null;\n return `${key}=${value.minValue}-${value.maxValue}`;\n case CHECKBOX:\n if (typeof value === 'string') return `${key}=${value}`;\n return value.map(val => `${key}=${val}`).join('&');\n case SELECT:\n return `${key}=${value}`;\n default:\n return null;\n }\n};\n\nexport default parseFilterValue;\n"],"file":"parse-filter-value.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/parse-filter-value.js"],"names":["RANGE","CHECKBOX","SELECT","parseFilterValue","key","type","value","minValue","min","maxValue","max","map","val","join","parsedValue","replace"],"mappings":"AAAA,SAASA,KAAT,EAAgBC,QAAhB,EAA0BC,MAA1B,QAAwC,cAAxC;;AAEA,MAAMC,gBAAgB,GAAG,CAACC,GAAD,EAAMC,IAAN,EAAYC,KAAZ,KAAsB;AAC7C,MAAI,CAACA,KAAL,EAAY,OAAO,IAAP;;AAEZ,UAAQD,IAAR;AACE,SAAKL,KAAL;AACE,UAAIM,KAAK,CAACC,QAAN,KAAmBD,KAAK,CAACE,GAAzB,IAAgCF,KAAK,CAACG,QAAN,KAAmBH,KAAK,CAACI,GAA7D,EAAkE,OAAO,IAAP;AAClE,aAAQ,GAAEN,GAAI,IAAGE,KAAK,CAACC,QAAS,IAAGD,KAAK,CAACG,QAAS,EAAlD;;AACF,SAAKR,QAAL;AACE,UAAI,OAAOK,KAAP,KAAiB,QAArB,EAA+B,OAAQ,GAAEF,GAAI,IAAGE,KAAM,EAAvB;AAC/B,aAAOA,KAAK,CAACK,GAAN,CAAUC,GAAG,IAAK,GAAER,GAAI,IAAGQ,GAAI,EAA/B,EAAkCC,IAAlC,CAAuC,GAAvC,CAAP;;AACF,SAAKX,MAAL;AAAa;AACX,cAAMY,WAAW,GAAGR,KAAK,CAACS,OAAN,CAAc,IAAd,EAAoB,KAApB,CAApB;AACA,eAAQ,GAAEX,GAAI,IAAGU,WAAY,EAA7B;AACD;;AAED;AACE,aAAO,IAAP;AAbJ;AAeD,CAlBD;;AAoBA,eAAeX,gBAAf","sourcesContent":["import { RANGE, CHECKBOX, SELECT } from '../constants';\n\nconst parseFilterValue = (key, type, value) => {\n if (!value) return null;\n\n switch (type) {\n case RANGE:\n if (value.minValue === value.min && value.maxValue === value.max) return null;\n return `${key}=${value.minValue}-${value.maxValue}`;\n case CHECKBOX:\n if (typeof value === 'string') return `${key}=${value}`;\n return value.map(val => `${key}=${val}`).join('&');\n case SELECT: {\n const parsedValue = value.replace(/&/g, '%26');\n return `${key}=${parsedValue}`;\n }\n\n default:\n return null;\n }\n};\n\nexport default parseFilterValue;\n"],"file":"parse-filter-value.js"}
@@ -21,6 +21,7 @@ const getRelationEntity = (filterName, filterEntityRelations) => {
21
21
  const getFilterProps = (filter, {
22
22
  relations: currentEntityRelations = [],
23
23
  properties: currentEntityProperties = {},
24
+ dynamicProperties: currentEntityDynamicProperties = {},
24
25
  identifier: currentEntityId
25
26
  } = {}, {
26
27
  relations: filterEntityRelations = [],
@@ -28,7 +29,7 @@ const getFilterProps = (filter, {
28
29
  } = {}) => {
29
30
  const [filterName] = filter.split('/');
30
31
  const [relationName, relationProp] = filterName.split('.');
31
- const hasProperty = !!currentEntityProperties[filterName];
32
+ const hasProperty = !!(currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]);
32
33
  const relationEntityName = relationProp ? getFilterLocalKeys(relationName, currentEntityRelations) : null;
33
34
  const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);
34
35
  const propertyEntityName = relationEntityName || filterNameEntity;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/get-filter-props.js"],"names":["getFilterRelationKeys","getFilterLocalKeys","relationName","relations","entityIdentifier","find","localField","getRelationEntity","filterName","filterEntityRelations","foreignKey","getFilterProps","filter","currentEntityRelations","properties","currentEntityProperties","identifier","currentEntityId","filteryEntityId","split","relationProp","hasProperty","relationEntityName","filterNameEntity","propertyEntityName","entityName","isEntityItself","shouldCheckRelationNames","relationForeignKeys","shouldIgnoreFilter","length"],"mappings":"AAAA,OAAOA,qBAAP,MAAkC,4BAAlC;;AAEA,MAAMC,kBAAkB,GAAG,CAACC,YAAD,EAAeC,SAAf,KAA6B;AACtD,QAAM;AAAEC,IAAAA;AAAF,MACJD,SAAS,CAACE,IAAV,CAAe,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKJ,YAAlD,KAAmE,EADrE;AAEA,SAAOE,gBAAP;AACD,CAJD;;AAMA,MAAMG,iBAAiB,GAAG,CAACC,UAAD,EAAaC,qBAAb,KAAuC;AAC/D,QAAM;AAAEL,IAAAA;AAAF,MACJK,qBAAqB,CAACJ,IAAtB,CAA2B,CAAC;AAAEK,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKF,UAA9D,KAA6E,EAD/E;AAEA,SAAOJ,gBAAP;AACD,CAJD;;AAMA,MAAMO,cAAc,GAAG,CACrBC,MADqB,EAErB;AACET,EAAAA,SAAS,EAAEU,sBAAsB,GAAG,EADtC;AAEEC,EAAAA,UAAU,EAAEC,uBAAuB,GAAG,EAFxC;AAGEC,EAAAA,UAAU,EAAEC;AAHd,IAII,EANiB,EAOrB;AAAEd,EAAAA,SAAS,EAAEM,qBAAqB,GAAG,EAArC;AAAyCO,EAAAA,UAAU,EAAEE;AAArD,IAAyE,EAPpD,KAQlB;AACH,QAAM,CAACV,UAAD,IAAeI,MAAM,CAACO,KAAP,CAAa,GAAb,CAArB;AACA,QAAM,CAACjB,YAAD,EAAekB,YAAf,IAA+BZ,UAAU,CAACW,KAAX,CAAiB,GAAjB,CAArC;AACA,QAAME,WAAW,GAAG,CAAC,CAACN,uBAAuB,CAACP,UAAD,CAA7C;AACA,QAAMc,kBAAkB,GAAGF,YAAY,GACnCnB,kBAAkB,CAACC,YAAD,EAAeW,sBAAf,CADiB,GAEnC,IAFJ;AAGA,QAAMU,gBAAgB,GAAGhB,iBAAiB,CAACC,UAAD,EAAaC,qBAAb,CAA1C;AAEA,QAAMe,kBAAkB,GAAGF,kBAAkB,IAAIC,gBAAjD;AACA,QAAME,UAAU,GAAGF,gBAAgB,GAAGL,eAAH,GAAqBI,kBAAxD;AACA,QAAMI,cAAc,GAAGT,eAAe,KAAKO,kBAA3C;AACA,QAAMG,wBAAwB,GAAG,CAACN,WAAD,IAAgB,CAACC,kBAAlD;AACA,QAAMM,mBAAmB,GAAGD,wBAAwB,GAChD3B,qBAAqB,CAACwB,kBAAD,EAAqBX,sBAArB,EAA6CE,uBAA7C,CAD2B,GAEhD,EAFJ;AAGA,QAAMc,kBAAkB,GAAGF,wBAAwB,IAAI,CAACC,mBAAmB,CAACE,MAA5E;AAEA,SAAO;AACLtB,IAAAA,UADK;AAELiB,IAAAA,UAFK;AAGLvB,IAAAA,YAHK;AAILkB,IAAAA,YAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA,kBANK;AAOLI,IAAAA,cAPK;AAQLE,IAAAA,mBARK;AASLC,IAAAA;AATK,GAAP;AAWD,CArCD;;AAuCA,eAAelB,cAAf","sourcesContent":["import getFilterRelationKeys from './get-filter-relation-keys';\n\nconst getFilterLocalKeys = (relationName, relations) => {\n const { entityIdentifier } =\n relations.find(({ localField }) => localField === relationName) || {};\n return entityIdentifier;\n};\n\nconst getRelationEntity = (filterName, filterEntityRelations) => {\n const { entityIdentifier } =\n filterEntityRelations.find(({ foreignKey }) => foreignKey === filterName) || {};\n return entityIdentifier;\n};\n\nconst getFilterProps = (\n filter,\n {\n relations: currentEntityRelations = [],\n properties: currentEntityProperties = {},\n identifier: currentEntityId\n } = {},\n { relations: filterEntityRelations = [], identifier: filteryEntityId } = {}\n) => {\n const [filterName] = filter.split('/');\n const [relationName, relationProp] = filterName.split('.');\n const hasProperty = !!currentEntityProperties[filterName];\n const relationEntityName = relationProp\n ? getFilterLocalKeys(relationName, currentEntityRelations)\n : null;\n const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);\n\n const propertyEntityName = relationEntityName || filterNameEntity;\n const entityName = filterNameEntity ? filteryEntityId : relationEntityName;\n const isEntityItself = currentEntityId === propertyEntityName;\n const shouldCheckRelationNames = !hasProperty && !relationEntityName;\n const relationForeignKeys = shouldCheckRelationNames\n ? getFilterRelationKeys(propertyEntityName, currentEntityRelations, currentEntityProperties)\n : [];\n const shouldIgnoreFilter = shouldCheckRelationNames && !relationForeignKeys.length;\n\n return {\n filterName,\n entityName,\n relationName,\n relationProp,\n hasProperty,\n relationEntityName,\n isEntityItself,\n relationForeignKeys,\n shouldIgnoreFilter\n };\n};\n\nexport default getFilterProps;\n"],"file":"get-filter-props.js"}
1
+ {"version":3,"sources":["../../src/helpers/get-filter-props.js"],"names":["getFilterRelationKeys","getFilterLocalKeys","relationName","relations","entityIdentifier","find","localField","getRelationEntity","filterName","filterEntityRelations","foreignKey","getFilterProps","filter","currentEntityRelations","properties","currentEntityProperties","dynamicProperties","currentEntityDynamicProperties","identifier","currentEntityId","filteryEntityId","split","relationProp","hasProperty","relationEntityName","filterNameEntity","propertyEntityName","entityName","isEntityItself","shouldCheckRelationNames","relationForeignKeys","shouldIgnoreFilter","length"],"mappings":"AAAA,OAAOA,qBAAP,MAAkC,4BAAlC;;AAEA,MAAMC,kBAAkB,GAAG,CAACC,YAAD,EAAeC,SAAf,KAA6B;AACtD,QAAM;AAAEC,IAAAA;AAAF,MACJD,SAAS,CAACE,IAAV,CAAe,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKJ,YAAlD,KAAmE,EADrE;AAEA,SAAOE,gBAAP;AACD,CAJD;;AAMA,MAAMG,iBAAiB,GAAG,CAACC,UAAD,EAAaC,qBAAb,KAAuC;AAC/D,QAAM;AAAEL,IAAAA;AAAF,MACJK,qBAAqB,CAACJ,IAAtB,CAA2B,CAAC;AAAEK,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKF,UAA9D,KAA6E,EAD/E;AAEA,SAAOJ,gBAAP;AACD,CAJD;;AAMA,MAAMO,cAAc,GAAG,CACrBC,MADqB,EAErB;AACET,EAAAA,SAAS,EAAEU,sBAAsB,GAAG,EADtC;AAEEC,EAAAA,UAAU,EAAEC,uBAAuB,GAAG,EAFxC;AAGEC,EAAAA,iBAAiB,EAAEC,8BAA8B,GAAG,EAHtD;AAIEC,EAAAA,UAAU,EAAEC;AAJd,IAKI,EAPiB,EAQrB;AAAEhB,EAAAA,SAAS,EAAEM,qBAAqB,GAAG,EAArC;AAAyCS,EAAAA,UAAU,EAAEE;AAArD,IAAyE,EARpD,KASlB;AACH,QAAM,CAACZ,UAAD,IAAeI,MAAM,CAACS,KAAP,CAAa,GAAb,CAArB;AACA,QAAM,CAACnB,YAAD,EAAeoB,YAAf,IAA+Bd,UAAU,CAACa,KAAX,CAAiB,GAAjB,CAArC;AACA,QAAME,WAAW,GAAG,CAAC,EACnBR,uBAAuB,CAACP,UAAD,CAAvB,IAAuCS,8BAA8B,CAACT,UAAD,CADlD,CAArB;AAGA,QAAMgB,kBAAkB,GAAGF,YAAY,GACnCrB,kBAAkB,CAACC,YAAD,EAAeW,sBAAf,CADiB,GAEnC,IAFJ;AAGA,QAAMY,gBAAgB,GAAGlB,iBAAiB,CAACC,UAAD,EAAaC,qBAAb,CAA1C;AAEA,QAAMiB,kBAAkB,GAAGF,kBAAkB,IAAIC,gBAAjD;AACA,QAAME,UAAU,GAAGF,gBAAgB,GAAGL,eAAH,GAAqBI,kBAAxD;AACA,QAAMI,cAAc,GAAGT,eAAe,KAAKO,kBAA3C;AACA,QAAMG,wBAAwB,GAAG,CAACN,WAAD,IAAgB,CAACC,kBAAlD;AACA,QAAMM,mBAAmB,GAAGD,wBAAwB,GAChD7B,qBAAqB,CAAC0B,kBAAD,EAAqBb,sBAArB,EAA6CE,uBAA7C,CAD2B,GAEhD,EAFJ;AAGA,QAAMgB,kBAAkB,GAAGF,wBAAwB,IAAI,CAACC,mBAAmB,CAACE,MAA5E;AAEA,SAAO;AACLxB,IAAAA,UADK;AAELmB,IAAAA,UAFK;AAGLzB,IAAAA,YAHK;AAILoB,IAAAA,YAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA,kBANK;AAOLI,IAAAA,cAPK;AAQLE,IAAAA,mBARK;AASLC,IAAAA;AATK,GAAP;AAWD,CAxCD;;AA0CA,eAAepB,cAAf","sourcesContent":["import getFilterRelationKeys from './get-filter-relation-keys';\n\nconst getFilterLocalKeys = (relationName, relations) => {\n const { entityIdentifier } =\n relations.find(({ localField }) => localField === relationName) || {};\n return entityIdentifier;\n};\n\nconst getRelationEntity = (filterName, filterEntityRelations) => {\n const { entityIdentifier } =\n filterEntityRelations.find(({ foreignKey }) => foreignKey === filterName) || {};\n return entityIdentifier;\n};\n\nconst getFilterProps = (\n filter,\n {\n relations: currentEntityRelations = [],\n properties: currentEntityProperties = {},\n dynamicProperties: currentEntityDynamicProperties = {},\n identifier: currentEntityId\n } = {},\n { relations: filterEntityRelations = [], identifier: filteryEntityId } = {}\n) => {\n const [filterName] = filter.split('/');\n const [relationName, relationProp] = filterName.split('.');\n const hasProperty = !!(\n currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]\n );\n const relationEntityName = relationProp\n ? getFilterLocalKeys(relationName, currentEntityRelations)\n : null;\n const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);\n\n const propertyEntityName = relationEntityName || filterNameEntity;\n const entityName = filterNameEntity ? filteryEntityId : relationEntityName;\n const isEntityItself = currentEntityId === propertyEntityName;\n const shouldCheckRelationNames = !hasProperty && !relationEntityName;\n const relationForeignKeys = shouldCheckRelationNames\n ? getFilterRelationKeys(propertyEntityName, currentEntityRelations, currentEntityProperties)\n : [];\n const shouldIgnoreFilter = shouldCheckRelationNames && !relationForeignKeys.length;\n\n return {\n filterName,\n entityName,\n relationName,\n relationProp,\n hasProperty,\n relationEntityName,\n isEntityItself,\n relationForeignKeys,\n shouldIgnoreFilter\n };\n};\n\nexport default getFilterProps;\n"],"file":"get-filter-props.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.122.0-alpha.1",
3
+ "version": "0.122.1-alpha.0",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -84,5 +84,5 @@
84
84
  "lib/*",
85
85
  "lib-es/*"
86
86
  ],
87
- "gitHead": "885768132bdafd32ae3be36656115d70c54664f6"
87
+ "gitHead": "4b3ac649b1bf68ec62963ef5c45a66159a199863"
88
88
  }
@@ -1,8 +1,10 @@
1
1
  const getLinkToPublishedContent = (key = '', props = {}) => {
2
2
  if (key.includes('published')) {
3
3
  const [baseKey] = key.split('.');
4
- const content = props[baseKey] && props[baseKey][0];
5
- return content ? content.url : '';
4
+ if (!props[baseKey]) return '';
5
+
6
+ const content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];
7
+ return content && content.url ? content.url : '';
6
8
  }
7
9
  return '';
8
10
  };
@@ -6,13 +6,7 @@ import { parseUrl, stringify } from 'query-string';
6
6
  import SearchFilter from './SearchFilter';
7
7
  import { withTitle } from '../../HOC';
8
8
  import { getSearchPublishedContent } from '../../application/query';
9
- import {
10
- buildNewQuery,
11
- buildRawQueryStringified,
12
- getInitialFilterValues,
13
- decodeValue
14
- } from './helpers';
15
-
9
+ import { buildNewQuery, buildRawQueryStringified, getInitialFilterValues } from './helpers';
16
10
  import { getEntityData } from '../../helpers';
17
11
  import { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';
18
12
  import { SCROLL_OFFSET } from '../../constants';
@@ -35,7 +29,7 @@ const SearchFilterContainer = ({
35
29
  url: currentUrl,
36
30
  query: { sort, sortby },
37
31
  query
38
- } = parseUrl(decodeValue(router.asPath));
32
+ } = parseUrl(router.asPath);
39
33
  const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';
40
34
  const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;
41
35
 
@@ -2,6 +2,7 @@ import { RANGE, CHECKBOX, SELECT } from '../constants';
2
2
 
3
3
  const parseFilterValue = (key, type, value) => {
4
4
  if (!value) return null;
5
+
5
6
  switch (type) {
6
7
  case RANGE:
7
8
  if (value.minValue === value.min && value.maxValue === value.max) return null;
@@ -9,8 +10,11 @@ const parseFilterValue = (key, type, value) => {
9
10
  case CHECKBOX:
10
11
  if (typeof value === 'string') return `${key}=${value}`;
11
12
  return value.map(val => `${key}=${val}`).join('&');
12
- case SELECT:
13
- return `${key}=${value}`;
13
+ case SELECT: {
14
+ const parsedValue = value.replace(/&/g, '%26');
15
+ return `${key}=${parsedValue}`;
16
+ }
17
+
14
18
  default:
15
19
  return null;
16
20
  }
@@ -17,13 +17,16 @@ const getFilterProps = (
17
17
  {
18
18
  relations: currentEntityRelations = [],
19
19
  properties: currentEntityProperties = {},
20
+ dynamicProperties: currentEntityDynamicProperties = {},
20
21
  identifier: currentEntityId
21
22
  } = {},
22
23
  { relations: filterEntityRelations = [], identifier: filteryEntityId } = {}
23
24
  ) => {
24
25
  const [filterName] = filter.split('/');
25
26
  const [relationName, relationProp] = filterName.split('.');
26
- const hasProperty = !!currentEntityProperties[filterName];
27
+ const hasProperty = !!(
28
+ currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]
29
+ );
27
30
  const relationEntityName = relationProp
28
31
  ? getFilterLocalKeys(relationName, currentEntityRelations)
29
32
  : null;
@@ -20,6 +20,12 @@ const GTM_CLASSNAME = 'gtm-classname';
20
20
 
21
21
  const MOCKED_SCHEMA_FOR_FILTERS = {
22
22
  identifier: 'page',
23
+ dynamicProperties: {
24
+ dynamicProp: {
25
+ type: 'string',
26
+ searchable: true
27
+ }
28
+ },
23
29
  relations: [
24
30
  {
25
31
  relationType: 'hasOne',
@@ -2,6 +2,8 @@ import '@testing-library/jest-dom/extend-expect';
2
2
  import { getLinkToPublishedContent } from '../../../../../../src/components/DataSummary/helpers';
3
3
 
4
4
  describe('get link to published content', () => {
5
+ const publishedKey = 'content.published';
6
+ const content = { url: 'url' };
5
7
  it('should be a function', () => {
6
8
  expect(typeof getLinkToPublishedContent).toEqual('function');
7
9
  });
@@ -17,14 +19,26 @@ describe('get link to published content', () => {
17
19
  });
18
20
 
19
21
  it('should return url if key does include "published" and there is related content published', () => {
20
- const props = { content: [{ url: 'url' }] };
21
- const result = getLinkToPublishedContent('content.published', props);
22
- expect(result).toEqual('url');
22
+ const props = { content: [content] };
23
+ const result = getLinkToPublishedContent(publishedKey, props);
24
+ expect(result).toEqual(content.url);
23
25
  });
24
26
 
25
27
  it('should return blank string if key does include "published" but there is no related content published', () => {
28
+ const props = { content: [] };
29
+ const result = getLinkToPublishedContent(publishedKey, props);
30
+ expect(result).toEqual('');
31
+ });
32
+
33
+ it('should return url if key does include "published" and content is not an array', () => {
34
+ const props = { content };
35
+ const result = getLinkToPublishedContent(publishedKey, props);
36
+ expect(result).toEqual(content.url);
37
+ });
38
+
39
+ it('should return blank string if key does include "published" but there is no url', () => {
26
40
  const props = { content: {} };
27
- const result = getLinkToPublishedContent('content.published', props);
41
+ const result = getLinkToPublishedContent(publishedKey, props);
28
42
  expect(result).toEqual('');
29
43
  });
30
44
  });
@@ -55,6 +55,16 @@ describe('getFilterProps function', () => {
55
55
  expect(!!relationProp.relationEntityName).toBe(true);
56
56
  });
57
57
 
58
+ it('should return relationEntityName key as true if relationName exists and matches in schema', () => {
59
+ const dyanmicPropFilter = getFilterProps(
60
+ 'dynamicProp',
61
+ MOCKED_SCHEMA_FOR_FILTERS,
62
+ MOCKED_SCHEMA_FOR_FILTERS
63
+ );
64
+ expect(dyanmicPropFilter).toHaveProperty('hasProperty', true);
65
+ expect(dyanmicPropFilter).toHaveProperty('shouldIgnoreFilter', false);
66
+ });
67
+
58
68
  // todo: add test case
59
69
  // it('should return relationForeignKeys array with values if it isnt a schema or relation prop', () => {
60
70
  // expect(withRelationKeys.relationForeignKeys).toBeDefined();