@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.
- package/CHANGELOG.md +30 -0
- package/lib/components/DataSummary/helpers/get-link-to-published-content.js +5 -2
- package/lib/components/DataSummary/helpers/get-link-to-published-content.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/helpers/parse-filter-value.js +8 -1
- package/lib/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
- package/lib/helpers/get-filter-props.js +3 -1
- package/lib/helpers/get-filter-props.js.map +1 -1
- package/lib-es/components/DataSummary/helpers/get-link-to-published-content.js +3 -2
- package/lib-es/components/DataSummary/helpers/get-link-to-published-content.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +2 -2
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/parse-filter-value.js +4 -1
- package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
- package/lib-es/helpers/get-filter-props.js +2 -1
- package/lib-es/helpers/get-filter-props.js.map +1 -1
- package/package.json +2 -2
- package/src/components/DataSummary/helpers/get-link-to-published-content.js +4 -2
- package/src/components/SearchFilter/SearchFilterContainer.js +2 -8
- package/src/components/SearchFilter/helpers/parse-filter-value.js +6 -2
- package/src/helpers/get-filter-props.js +4 -1
- package/tests/helpers/mocks.js +6 -0
- package/tests/unit/src/components/DataSummary/helpers/get-link-to-published-content.test.js +18 -4
- 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
|
-
|
|
32
|
-
|
|
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":"
|
|
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)(
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;
|
|
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
|
-
|
|
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":"
|
|
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,
|
|
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
|
-
|
|
5
|
-
|
|
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,
|
|
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
|
|
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(
|
|
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":"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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,7 +13,10 @@ const parseFilterValue = (key, type, value) => {
|
|
|
13
13
|
return value.map(val => `${key}=${val}`).join('&');
|
|
14
14
|
|
|
15
15
|
case SELECT:
|
|
16
|
-
|
|
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;;
|
|
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;
|
|
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.
|
|
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": "
|
|
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
|
-
|
|
5
|
-
|
|
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(
|
|
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
|
-
|
|
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 = !!
|
|
27
|
+
const hasProperty = !!(
|
|
28
|
+
currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]
|
|
29
|
+
);
|
|
27
30
|
const relationEntityName = relationProp
|
|
28
31
|
? getFilterLocalKeys(relationName, currentEntityRelations)
|
|
29
32
|
: null;
|
package/tests/helpers/mocks.js
CHANGED
|
@@ -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: [
|
|
21
|
-
const result = getLinkToPublishedContent(
|
|
22
|
-
expect(result).toEqual(
|
|
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(
|
|
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();
|