@blaze-cms/react-page-builder 0.113.0 → 0.114.0-alpha.2
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 +68 -0
- package/README.md +5 -8
- package/lib/components/Card/CardRender.js +61 -17
- package/lib/components/Card/CardRender.js.map +1 -1
- package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
- package/lib/components/DataSummary/helpers/build-loop-props-content.js +1 -1
- package/lib/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
- package/lib/components/List/ListBuilder.js +11 -6
- package/lib/components/List/ListBuilder.js.map +1 -1
- package/lib/components/List/ListFactory.js +20 -7
- package/lib/components/List/ListFactory.js.map +1 -1
- package/lib/components/List/helpers/get-sort-props.js +46 -0
- package/lib/components/List/helpers/get-sort-props.js.map +1 -0
- package/lib/components/List/helpers/index.js +8 -0
- package/lib/components/List/helpers/index.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +57 -20
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +8 -4
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js +5 -2
- package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib/components/SearchFilter/components/Range.js +7 -3
- package/lib/components/SearchFilter/components/Range.js.map +1 -1
- package/lib/components/SearchFilter/components/Select.js +5 -2
- package/lib/components/SearchFilter/components/Select.js.map +1 -1
- package/lib/components/SearchFilter/constants.js +13 -1
- package/lib/components/SearchFilter/constants.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-query.js +6 -5
- package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-range-value.js +6 -4
- package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
- package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js +29 -0
- package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
- package/lib/components/SearchFilter/helpers/index.js +8 -0
- package/lib/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib/components/SearchFilter/helpers/is-device-desktop.js +1 -1
- package/lib/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
- package/lib/helpers/get-generic-render-variables.js +32 -22
- package/lib/helpers/get-generic-render-variables.js.map +1 -1
- package/lib-es/components/Card/CardRender.js +32 -5
- package/lib-es/components/Card/CardRender.js.map +1 -1
- package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
- package/lib-es/components/DataSummary/helpers/build-loop-props-content.js +1 -1
- package/lib-es/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
- package/lib-es/components/List/ListBuilder.js +11 -6
- package/lib-es/components/List/ListBuilder.js.map +1 -1
- package/lib-es/components/List/ListFactory.js +20 -8
- package/lib-es/components/List/ListFactory.js.map +1 -1
- package/lib-es/components/List/helpers/get-sort-props.js +26 -0
- package/lib-es/components/List/helpers/get-sort-props.js.map +1 -0
- package/lib-es/components/List/helpers/index.js +1 -0
- package/lib-es/components/List/helpers/index.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
- package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +51 -21
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +8 -4
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js +5 -2
- package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Range.js +7 -3
- package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Select.js +5 -2
- package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
- package/lib-es/components/SearchFilter/constants.js +12 -1
- package/lib-es/components/SearchFilter/constants.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-query.js +5 -4
- package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-range-value.js +1 -1
- package/lib-es/components/SearchFilter/helpers/get-range-value.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js +20 -0
- package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
- package/lib-es/components/SearchFilter/helpers/index.js +2 -1
- package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/is-device-desktop.js +1 -1
- package/lib-es/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
- package/lib-es/helpers/get-generic-render-variables.js +22 -15
- package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Card/CardRender.js +24 -6
- package/src/components/Card/helpers/filter-query-setup.js +1 -0
- package/src/components/DataSummary/helpers/build-loop-props-content.js +1 -6
- package/src/components/List/ListBuilder.js +11 -6
- package/src/components/List/ListFactory.js +18 -8
- package/src/components/List/helpers/get-sort-props.js +17 -0
- package/src/components/List/helpers/index.js +1 -0
- package/src/components/SearchFilter/SearchFilter/FiltersList.js +15 -2
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +75 -25
- package/src/components/SearchFilter/SearchFilterContainer.js +8 -4
- package/src/components/SearchFilter/components/Checkbox.js +4 -2
- package/src/components/SearchFilter/components/Range.js +7 -3
- package/src/components/SearchFilter/components/Select.js +4 -2
- package/src/components/SearchFilter/constants.js +14 -1
- package/src/components/SearchFilter/helpers/build-query.js +5 -4
- package/src/components/SearchFilter/helpers/get-range-value.js +3 -1
- package/src/components/SearchFilter/helpers/get-responsive-filter-classnames.js +22 -0
- package/src/components/SearchFilter/helpers/index.js +2 -0
- package/src/components/SearchFilter/helpers/is-device-desktop.js +2 -1
- package/src/helpers/get-generic-render-variables.js +22 -12
- package/tests/unit/src/components/DataSummary/helpers/build-loop-props-content.test.js +24 -0
- package/tests/unit/src/components/List/helpers/get-sort-props.test.js +58 -0
- package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +29 -3
- package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +304 -6
- package/tests/unit/src/helpers/build-raw-query.test.js +2 -1
- package/tests/unit/src/helpers/get-generic-render-variables.test.js +5 -11
- package/lib/helpers/check-sort-by.js +0 -16
- package/lib/helpers/check-sort-by.js.map +0 -1
- package/lib-es/helpers/check-sort-by.js +0 -4
- package/lib-es/helpers/check-sort-by.js.map +0 -1
- package/src/helpers/check-sort-by.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DataSummary/helpers/build-loop-props-content.js"],"names":["upperFirst","flatten","getLinkToPublishedContent","getLoopPropsLimit","getPropValue","getLoopValue","value","keyField","separateValues","propsToDisplay","loopProps","data","regularValues","loopValues","forEach","options","propertiesToDisplay","prop","isArrayValue","Array","isArray","isLoopableProp","includes","buildLoopPropsContent","limit","loopPropsWithContent","loopLimit","i","propsArray","map","label","modifier","key","loopValue","propValue","linkToPublishedContent","filter","Boolean","push"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,mBAAvB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,yBAAP,MAAsC,iCAAtC;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,YAAP,MAAyB,kBAAzB;;AAEA,MAAMC,YAAY,GAAGC,KAAK,IAAI;AAC5B,QAAM;AAAEC,IAAAA;AAAF,MAAeD,KAArB;AACA,SAAOA,KAAK,CAACC,QAAD,CAAZ;AACD,CAHD;;AAKA,MAAMC,cAAc,GAAG,CAACC,cAAD,EAAiBC,SAAjB,EAA4BC,IAA5B,KAAqC;AAC1D,QAAMC,aAAa,GAAG,EAAtB;AACA,QAAMC,UAAU,GAAG,EAAnB;AAEAJ,EAAAA,cAAc,CAACK,OAAf,CAAuBC,OAAO,IAAI;AAChC,UAAM;AAAEC,MAAAA;AAAF,QAA0BD,OAAhC;AACAC,IAAAA,mBAAmB,CAACF,OAApB,CAA4BG,IAAI,IAAI;AAClC,YAAMX,KAAK,GAAGF,YAAY,CAACa,IAAD,EAAON,IAAP,EAAaI,OAAb,CAA1B;AACA,YAAMG,YAAY,GAAGC,KAAK,CAACC,OAAN,CAAcd,KAAd,CAArB;AACA,UAAI,CAACA,KAAL,EAAY;AACZ,YAAMe,cAAc,GAAGX,SAAS,CAACY,QAAV,CAAmBL,IAAnB,KAA4BC,YAAnD;;AAEA,UAAIG,cAAJ,EAAoB;AAClBR,QAAAA,UAAU,CAACI,IAAD,CAAV,GAAmBX,KAAnB;AACD,OAFD,MAEO;AACLM,QAAAA,aAAa,CAACK,IAAD,CAAb,GAAsBX,KAAtB;AACD;AACF,KAXD;AAYD,GAdD;AAeA,SAAO,CAACM,aAAD,EAAgBC,UAAhB,CAAP;AACD,CApBD;;AAsBA,MAAMU,qBAAqB,GAAG,CAACb,SAAS,GAAG,EAAb,EAAiBD,cAAc,GAAG,EAAlC,EAAsCe,KAAK,GAAG,CAA9C,EAAiDb,IAAI,GAAG,EAAxD,KAA+D;AAC3F,QAAMc,oBAAoB,GAAG,EAA7B;AACA,QAAM,CAACb,aAAD,EAAgBC,UAAhB,IAA8BL,cAAc,CAACC,cAAD,EAAiBC,SAAjB,EAA4BC,IAA5B,CAAlD;AAEA,QAAMe,SAAS,GAAGvB,iBAAiB,CAACU,UAAD,EAAaW,KAAb,CAAnC;;AAEA,OAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,SAApB,EAA+BC,CAAC,IAAI,CAApC,EAAuC;AACrC,UAAMC,UAAU,GAAG3B,OAAO,CACxBQ,cAAc,CAACoB,GAAf,CAAmBd,OAAO,IAAI;AAC5B,YAAM;AAAEC,QAAAA,mBAAF;AAAuBc,QAAAA,KAAvB;AAA8BC,QAAAA,QAAQ,GAAG;AAAzC,UAAgDhB,OAAtD;AAEA,aAAOC,mBAAmB,CAACa,GAApB,CAAwBG,GAAG,IAAI;AACpC,cAAMC,SAAS,GAAGpB,UAAU,CAACmB,GAAD,CAA5B;AACA,cAAME,SAAS,GAAGD,SAAS,GAAG5B,YAAY,CAAC4B,SAAS,CAACN,CAAD,CAAV,CAAf,GAAgCf,aAAa,CAACoB,GAAD,CAAxE;AACA,YAAI,CAACE,SAAL,EAAgB,OAAO,IAAP;AAChB,cAAMC,sBAAsB,GAAGjC,yBAAyB,CAAC8B,GAAD,EAAMrB,IAAN,CAAxD;AACA,eAAO,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DataSummary/helpers/build-loop-props-content.js"],"names":["upperFirst","flatten","getLinkToPublishedContent","getLoopPropsLimit","getPropValue","getLoopValue","value","keyField","separateValues","propsToDisplay","loopProps","data","regularValues","loopValues","forEach","options","propertiesToDisplay","prop","isArrayValue","Array","isArray","isLoopableProp","includes","buildLoopPropsContent","limit","loopPropsWithContent","loopLimit","i","propsArray","map","label","modifier","key","loopValue","propValue","linkToPublishedContent","filter","Boolean","push"],"mappings":"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","sourcesContent":["import upperFirst from 'lodash.upperfirst';\nimport flatten from 'lodash.flatten';\nimport getLinkToPublishedContent from './get-link-to-published-content';\nimport getLoopPropsLimit from './get-loop-props-limit';\nimport getPropValue from './get-prop-value';\n\nconst getLoopValue = value => {\n const { keyField } = value;\n return value[keyField];\n};\n\nconst separateValues = (propsToDisplay, loopProps, data) => {\n const regularValues = {};\n const loopValues = {};\n\n propsToDisplay.forEach(options => {\n const { propertiesToDisplay } = options;\n propertiesToDisplay.forEach(prop => {\n const value = getPropValue(prop, data, options);\n const isArrayValue = Array.isArray(value);\n if (!value) return;\n const isLoopableProp = loopProps.includes(prop) && isArrayValue;\n\n if (isLoopableProp) {\n loopValues[prop] = value;\n } else {\n regularValues[prop] = value;\n }\n });\n });\n return [regularValues, loopValues];\n};\n\nconst buildLoopPropsContent = (loopProps = [], propsToDisplay = [], limit = 0, data = {}) => {\n const loopPropsWithContent = [];\n const [regularValues, loopValues] = separateValues(propsToDisplay, loopProps, data);\n\n const loopLimit = getLoopPropsLimit(loopValues, limit);\n\n for (let i = 0; i < loopLimit; i += 1) {\n const propsArray = flatten(\n propsToDisplay.map(options => {\n const { propertiesToDisplay, label, modifier = '' } = options;\n\n return propertiesToDisplay.map(key => {\n const loopValue = loopValues[key];\n const propValue = loopValue ? getLoopValue(loopValue[i]) : regularValues[key];\n if (!propValue) return null;\n const linkToPublishedContent = getLinkToPublishedContent(key, data);\n return [upperFirst(label), propValue, linkToPublishedContent, modifier];\n });\n })\n ).filter(Boolean);\n loopPropsWithContent.push(propsArray);\n }\n\n return flatten(loopPropsWithContent);\n};\n\nexport default buildLoopPropsContent;\n"],"file":"build-loop-props-content.js"}
|
|
@@ -45,14 +45,15 @@ const ListBuilder = props => {
|
|
|
45
45
|
filterEntitySchema,
|
|
46
46
|
requiredSchema,
|
|
47
47
|
searchValues,
|
|
48
|
-
azFilter
|
|
48
|
+
azFilter,
|
|
49
|
+
sortProperties
|
|
49
50
|
} = props;
|
|
50
51
|
const isInfinite = paginationType === INFINITE;
|
|
51
52
|
const listComponent = getListComponent(isCard, paginationType);
|
|
52
53
|
const propsToDisplayValues = checkPropsToUse(propsToDisplay);
|
|
53
54
|
const entityFields = buildPropsQuery(entitySchema, propsToDisplayValues, props) || '';
|
|
54
55
|
const limitToUse = limit || itemsToDisplay.length;
|
|
55
|
-
const shouldApplyDefaultSort = !
|
|
56
|
+
const shouldApplyDefaultSort = !sortProperties || !sortProperties.length;
|
|
56
57
|
const itemsPerPageToUse = getItemsPerPageToUse(itemsPerPage, limitToUse);
|
|
57
58
|
const initialOffset = getCurrentOffset(offset, itemsPerPageToUse, paginationIndex, limitToUse);
|
|
58
59
|
const {
|
|
@@ -83,7 +84,8 @@ const ListBuilder = props => {
|
|
|
83
84
|
limit: itemsPerPageToUse,
|
|
84
85
|
offset: initialOffset,
|
|
85
86
|
sort,
|
|
86
|
-
sortby
|
|
87
|
+
sortby,
|
|
88
|
+
sortProperties
|
|
87
89
|
}), stringProps, JSON.stringify(azRawQuery), isTextSearchFilterApplied);
|
|
88
90
|
const azAction = getSearchPublishedContent(RAW_RESULTS);
|
|
89
91
|
const {
|
|
@@ -112,7 +114,8 @@ const ListBuilder = props => {
|
|
|
112
114
|
limit: itemsPerPageToUse,
|
|
113
115
|
offset: initialOffset,
|
|
114
116
|
sort,
|
|
115
|
-
sortby
|
|
117
|
+
sortby,
|
|
118
|
+
sortProperties
|
|
116
119
|
}), stringProps, JSON.stringify(rawQuery), isTextSearchFilterApplied);
|
|
117
120
|
return /*#__PURE__*/React.createElement(ListRender, _extends({
|
|
118
121
|
variables: variables,
|
|
@@ -155,7 +158,8 @@ ListBuilder.propTypes = {
|
|
|
155
158
|
operator: PropTypes.string.isRequired,
|
|
156
159
|
filterOperator: PropTypes.string.isRequired,
|
|
157
160
|
paginationType: PropTypes.string,
|
|
158
|
-
azFilter: PropTypes.string
|
|
161
|
+
azFilter: PropTypes.string,
|
|
162
|
+
sortProperties: PropTypes.array
|
|
159
163
|
};
|
|
160
164
|
ListBuilder.defaultProps = {
|
|
161
165
|
entityData: {},
|
|
@@ -165,7 +169,8 @@ ListBuilder.defaultProps = {
|
|
|
165
169
|
offset: 0,
|
|
166
170
|
paginationType: 'infinite',
|
|
167
171
|
inheritedFilters: [],
|
|
168
|
-
azFilter: ''
|
|
172
|
+
azFilter: '',
|
|
173
|
+
sortProperties: []
|
|
169
174
|
};
|
|
170
175
|
export default ListBuilder;
|
|
171
176
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/List/ListBuilder.js"],"names":["React","PropTypes","useQuery","getStringTypeProps","CardRenderWithInfiniteScroll","CardsRender","FullRender","FullRenderWithInfiniteScroll","ListRender","getSearchPublishedContent","buildRawQuery","buildQueryFields","buildSetFilters","getGenericRenderVariables","getEntityData","getCurrentOffset","getUpdatedFilterBy","checkPropsToUse","buildPropsQuery","sortAggs","getItemsPerPageToUse","buildAzAggregations","SEARCH_PUBLISHED_CONTENT","INFINITE","CLASSIC","RAW_RESULTS","ListBuilder","props","entitySchema","isCard","isAZ","inheritedFilters","paginationType","entity","isTextSearchFilterApplied","parent","itemId","itemsPerPage","itemsToDisplay","limit","propsToDisplay","offset","entityData","sortby","sort","paginationIndex","omitWrappers","operator","filterOperator","currentSchema","filterEntitySchema","requiredSchema","searchValues","azFilter","isInfinite","listComponent","getListComponent","propsToDisplayValues","entityFields","limitToUse","length","shouldApplyDefaultSort","itemsPerPageToUse","initialOffset","entityType","docType","fields","action","actionKey","updatedFilterBy","filterValues","filterBy","relations","stringProps","Object","values","azRawQuery","shouldReturnAggs","azVariables","JSON","stringify","azAction","data","error","loading","variables","skip","message","listAggregations","updatedAggregations","rawQuery","propTypes","string","isRequired","object","bool","number","array","defaultProps","isNotClassic"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/react-hooks';\nimport { getStringTypeProps } from '@blaze-cms/utils';\nimport {\n CardRenderWithInfiniteScroll,\n CardsRender,\n FullRender,\n FullRenderWithInfiniteScroll\n} from './components';\nimport ListRender from './ListRender';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildRawQuery,\n buildQueryFields,\n buildSetFilters,\n getGenericRenderVariables,\n getEntityData,\n getCurrentOffset,\n getUpdatedFilterBy,\n checkPropsToUse,\n buildPropsQuery\n} from '../../helpers';\nimport { sortAggs, getItemsPerPageToUse, buildAzAggregations } from './helpers';\nimport { SEARCH_PUBLISHED_CONTENT, INFINITE, CLASSIC } from '../../constants';\nimport { RAW_RESULTS } from './constants';\n\nconst ListBuilder = props => {\n const {\n entitySchema,\n isCard,\n isAZ,\n inheritedFilters,\n paginationType,\n entity,\n isTextSearchFilterApplied,\n parent: { itemId },\n itemsPerPage,\n itemsToDisplay,\n limit,\n propsToDisplay,\n offset,\n entityData,\n sortby,\n sort,\n paginationIndex,\n omitWrappers,\n operator,\n filterOperator,\n currentSchema,\n filterEntitySchema,\n requiredSchema,\n searchValues,\n azFilter\n } = props;\n const isInfinite = paginationType === INFINITE;\n const listComponent = getListComponent(isCard, paginationType);\n const propsToDisplayValues = checkPropsToUse(propsToDisplay);\n const entityFields = buildPropsQuery(entitySchema, propsToDisplayValues, props) || '';\n const limitToUse = limit || itemsToDisplay.length;\n const shouldApplyDefaultSort = !sortby || !sortby.length;\n const itemsPerPageToUse = getItemsPerPageToUse(itemsPerPage, limitToUse);\n const initialOffset = getCurrentOffset(offset, itemsPerPageToUse, paginationIndex, limitToUse);\n const { entityType, docType } = getEntityData(entity);\n const fields = buildQueryFields(entityFields, entityType, !isCard);\n const action = getSearchPublishedContent(fields);\n const actionKey = SEARCH_PUBLISHED_CONTENT;\n const updatedFilterBy = getUpdatedFilterBy(\n inheritedFilters,\n entityData,\n currentSchema,\n filterEntitySchema,\n itemId,\n props\n );\n\n const filterValues =\n updatedFilterBy && updatedFilterBy.length\n ? buildSetFilters({ ...props, filterBy: updatedFilterBy })\n : buildSetFilters({ ...props });\n\n const { relations = [] } = filterEntitySchema;\n const stringProps = getStringTypeProps(entity, relations, Object.values(requiredSchema));\n\n const azRawQuery = buildRawQuery(\n docType,\n operator,\n searchValues,\n {\n filterValues,\n filterOperator,\n relations,\n stringProps\n },\n itemId,\n itemsToDisplay,\n shouldApplyDefaultSort,\n { shouldReturnAggs: true, isAZ }\n );\n\n const azVariables = getGenericRenderVariables(\n relations,\n {\n ...props,\n limit: itemsPerPageToUse,\n offset: initialOffset,\n sort,\n sortby\n },\n stringProps,\n JSON.stringify(azRawQuery),\n isTextSearchFilterApplied\n );\n\n const azAction = getSearchPublishedContent(RAW_RESULTS);\n const { data, error, loading } = useQuery(azAction, {\n variables: azVariables,\n skip: !isAZ\n });\n if (loading) return '';\n if (error) return error.message;\n\n const listAggregations = isAZ ? sortAggs(data) : [];\n const updatedAggregations = buildAzAggregations(listAggregations);\n\n const rawQuery = buildRawQuery(\n docType,\n operator,\n searchValues,\n {\n filterValues,\n filterOperator,\n relations,\n stringProps,\n azFilter\n },\n itemId,\n itemsToDisplay,\n shouldApplyDefaultSort,\n { shouldReturnAggs: false, isAZ }\n );\n\n const variables = getGenericRenderVariables(\n relations,\n {\n ...props,\n limit: itemsPerPageToUse,\n offset: initialOffset,\n sort,\n sortby\n },\n stringProps,\n JSON.stringify(rawQuery),\n isTextSearchFilterApplied\n );\n\n return (\n <ListRender\n variables={variables}\n isInfinite={isInfinite}\n initialOffset={initialOffset}\n actionKey={actionKey}\n limitToUse={limitToUse}\n itemsPerPageToUse={itemsPerPageToUse}\n action={action}\n omitWrappers={omitWrappers}\n listComponent={listComponent}\n listAggregations={updatedAggregations}\n isAZ={isAZ}\n azFilter={azFilter}\n {...props}\n />\n );\n};\n\nListBuilder.propTypes = {\n entity: PropTypes.string.isRequired,\n entitySchema: PropTypes.object.isRequired,\n isCard: PropTypes.bool.isRequired,\n isAZ: PropTypes.bool.isRequired,\n isTextSearchFilterApplied: PropTypes.bool.isRequired,\n parent: PropTypes.object.isRequired,\n itemsPerPage: PropTypes.number.isRequired,\n paginationIndex: PropTypes.number.isRequired,\n propsToDisplay: PropTypes.array.isRequired,\n currentSchema: PropTypes.object.isRequired,\n filterEntitySchema: PropTypes.object.isRequired,\n requiredSchema: PropTypes.object.isRequired,\n searchValues: PropTypes.object.isRequired,\n inheritedFilters: PropTypes.array,\n entityData: PropTypes.object,\n itemsToDisplay: PropTypes.array,\n limit: PropTypes.number,\n omitWrappers: PropTypes.bool,\n offset: PropTypes.number,\n sortby: PropTypes.array.isRequired,\n sort: PropTypes.string.isRequired,\n operator: PropTypes.string.isRequired,\n filterOperator: PropTypes.string.isRequired,\n paginationType: PropTypes.string,\n azFilter: PropTypes.string\n};\n\nListBuilder.defaultProps = {\n entityData: {},\n itemsToDisplay: [],\n limit: 0,\n omitWrappers: false,\n offset: 0,\n paginationType: 'infinite',\n inheritedFilters: [],\n azFilter: ''\n};\n\nexport default ListBuilder;\nfunction getListComponent(isCard, paginationType) {\n const isNotClassic = paginationType !== CLASSIC;\n\n if (isCard) return isNotClassic ? CardRenderWithInfiniteScroll : CardsRender;\n\n return isNotClassic ? FullRenderWithInfiniteScroll : FullRender;\n}\n"],"file":"ListBuilder.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/List/ListBuilder.js"],"names":["React","PropTypes","useQuery","getStringTypeProps","CardRenderWithInfiniteScroll","CardsRender","FullRender","FullRenderWithInfiniteScroll","ListRender","getSearchPublishedContent","buildRawQuery","buildQueryFields","buildSetFilters","getGenericRenderVariables","getEntityData","getCurrentOffset","getUpdatedFilterBy","checkPropsToUse","buildPropsQuery","sortAggs","getItemsPerPageToUse","buildAzAggregations","SEARCH_PUBLISHED_CONTENT","INFINITE","CLASSIC","RAW_RESULTS","ListBuilder","props","entitySchema","isCard","isAZ","inheritedFilters","paginationType","entity","isTextSearchFilterApplied","parent","itemId","itemsPerPage","itemsToDisplay","limit","propsToDisplay","offset","entityData","sortby","sort","paginationIndex","omitWrappers","operator","filterOperator","currentSchema","filterEntitySchema","requiredSchema","searchValues","azFilter","sortProperties","isInfinite","listComponent","getListComponent","propsToDisplayValues","entityFields","limitToUse","length","shouldApplyDefaultSort","itemsPerPageToUse","initialOffset","entityType","docType","fields","action","actionKey","updatedFilterBy","filterValues","filterBy","relations","stringProps","Object","values","azRawQuery","shouldReturnAggs","azVariables","JSON","stringify","azAction","data","error","loading","variables","skip","message","listAggregations","updatedAggregations","rawQuery","propTypes","string","isRequired","object","bool","number","array","defaultProps","isNotClassic"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/react-hooks';\nimport { getStringTypeProps } from '@blaze-cms/utils';\nimport {\n CardRenderWithInfiniteScroll,\n CardsRender,\n FullRender,\n FullRenderWithInfiniteScroll\n} from './components';\nimport ListRender from './ListRender';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildRawQuery,\n buildQueryFields,\n buildSetFilters,\n getGenericRenderVariables,\n getEntityData,\n getCurrentOffset,\n getUpdatedFilterBy,\n checkPropsToUse,\n buildPropsQuery\n} from '../../helpers';\nimport { sortAggs, getItemsPerPageToUse, buildAzAggregations } from './helpers';\nimport { SEARCH_PUBLISHED_CONTENT, INFINITE, CLASSIC } from '../../constants';\nimport { RAW_RESULTS } from './constants';\n\nconst ListBuilder = props => {\n const {\n entitySchema,\n isCard,\n isAZ,\n inheritedFilters,\n paginationType,\n entity,\n isTextSearchFilterApplied,\n parent: { itemId },\n itemsPerPage,\n itemsToDisplay,\n limit,\n propsToDisplay,\n offset,\n entityData,\n sortby,\n sort,\n paginationIndex,\n omitWrappers,\n operator,\n filterOperator,\n currentSchema,\n filterEntitySchema,\n requiredSchema,\n searchValues,\n azFilter,\n sortProperties\n } = props;\n const isInfinite = paginationType === INFINITE;\n const listComponent = getListComponent(isCard, paginationType);\n const propsToDisplayValues = checkPropsToUse(propsToDisplay);\n const entityFields = buildPropsQuery(entitySchema, propsToDisplayValues, props) || '';\n const limitToUse = limit || itemsToDisplay.length;\n const shouldApplyDefaultSort = !sortProperties || !sortProperties.length;\n const itemsPerPageToUse = getItemsPerPageToUse(itemsPerPage, limitToUse);\n const initialOffset = getCurrentOffset(offset, itemsPerPageToUse, paginationIndex, limitToUse);\n const { entityType, docType } = getEntityData(entity);\n const fields = buildQueryFields(entityFields, entityType, !isCard);\n const action = getSearchPublishedContent(fields);\n const actionKey = SEARCH_PUBLISHED_CONTENT;\n const updatedFilterBy = getUpdatedFilterBy(\n inheritedFilters,\n entityData,\n currentSchema,\n filterEntitySchema,\n itemId,\n props\n );\n\n const filterValues =\n updatedFilterBy && updatedFilterBy.length\n ? buildSetFilters({ ...props, filterBy: updatedFilterBy })\n : buildSetFilters({ ...props });\n\n const { relations = [] } = filterEntitySchema;\n const stringProps = getStringTypeProps(entity, relations, Object.values(requiredSchema));\n\n const azRawQuery = buildRawQuery(\n docType,\n operator,\n searchValues,\n {\n filterValues,\n filterOperator,\n relations,\n stringProps\n },\n itemId,\n itemsToDisplay,\n shouldApplyDefaultSort,\n { shouldReturnAggs: true, isAZ }\n );\n\n const azVariables = getGenericRenderVariables(\n relations,\n {\n ...props,\n limit: itemsPerPageToUse,\n offset: initialOffset,\n sort,\n sortby,\n sortProperties\n },\n stringProps,\n JSON.stringify(azRawQuery),\n isTextSearchFilterApplied\n );\n\n const azAction = getSearchPublishedContent(RAW_RESULTS);\n const { data, error, loading } = useQuery(azAction, {\n variables: azVariables,\n skip: !isAZ\n });\n if (loading) return '';\n if (error) return error.message;\n\n const listAggregations = isAZ ? sortAggs(data) : [];\n const updatedAggregations = buildAzAggregations(listAggregations);\n\n const rawQuery = buildRawQuery(\n docType,\n operator,\n searchValues,\n {\n filterValues,\n filterOperator,\n relations,\n stringProps,\n azFilter\n },\n itemId,\n itemsToDisplay,\n shouldApplyDefaultSort,\n { shouldReturnAggs: false, isAZ }\n );\n\n const variables = getGenericRenderVariables(\n relations,\n {\n ...props,\n limit: itemsPerPageToUse,\n offset: initialOffset,\n sort,\n sortby,\n sortProperties\n },\n stringProps,\n JSON.stringify(rawQuery),\n isTextSearchFilterApplied\n );\n\n return (\n <ListRender\n variables={variables}\n isInfinite={isInfinite}\n initialOffset={initialOffset}\n actionKey={actionKey}\n limitToUse={limitToUse}\n itemsPerPageToUse={itemsPerPageToUse}\n action={action}\n omitWrappers={omitWrappers}\n listComponent={listComponent}\n listAggregations={updatedAggregations}\n isAZ={isAZ}\n azFilter={azFilter}\n {...props}\n />\n );\n};\n\nListBuilder.propTypes = {\n entity: PropTypes.string.isRequired,\n entitySchema: PropTypes.object.isRequired,\n isCard: PropTypes.bool.isRequired,\n isAZ: PropTypes.bool.isRequired,\n isTextSearchFilterApplied: PropTypes.bool.isRequired,\n parent: PropTypes.object.isRequired,\n itemsPerPage: PropTypes.number.isRequired,\n paginationIndex: PropTypes.number.isRequired,\n propsToDisplay: PropTypes.array.isRequired,\n currentSchema: PropTypes.object.isRequired,\n filterEntitySchema: PropTypes.object.isRequired,\n requiredSchema: PropTypes.object.isRequired,\n searchValues: PropTypes.object.isRequired,\n inheritedFilters: PropTypes.array,\n entityData: PropTypes.object,\n itemsToDisplay: PropTypes.array,\n limit: PropTypes.number,\n omitWrappers: PropTypes.bool,\n offset: PropTypes.number,\n sortby: PropTypes.array.isRequired,\n sort: PropTypes.string.isRequired,\n operator: PropTypes.string.isRequired,\n filterOperator: PropTypes.string.isRequired,\n paginationType: PropTypes.string,\n azFilter: PropTypes.string,\n sortProperties: PropTypes.array\n};\n\nListBuilder.defaultProps = {\n entityData: {},\n itemsToDisplay: [],\n limit: 0,\n omitWrappers: false,\n offset: 0,\n paginationType: 'infinite',\n inheritedFilters: [],\n azFilter: '',\n sortProperties: []\n};\n\nexport default ListBuilder;\nfunction getListComponent(isCard, paginationType) {\n const isNotClassic = paginationType !== CLASSIC;\n\n if (isCard) return isNotClassic ? CardRenderWithInfiniteScroll : CardsRender;\n\n return isNotClassic ? FullRenderWithInfiniteScroll : FullRender;\n}\n"],"file":"ListBuilder.js"}
|
|
@@ -13,7 +13,7 @@ import { MainContext } from '@blaze-cms/nextjs-components';
|
|
|
13
13
|
import { getSingleEntitySchema, generateSingleItemQuery } from '../../application/query';
|
|
14
14
|
import ListBuilder from './ListBuilder';
|
|
15
15
|
import { AZ_LIST_TYPE } from './constants';
|
|
16
|
-
import { getAzQueryFilter } from './helpers';
|
|
16
|
+
import { getAzQueryFilter, getSortProps } from './helpers';
|
|
17
17
|
import { getGenericProps, getRequiredSchemas, checkForError, getUnpublishedEntityName, getPaginationIndex, getSearchFilterType, getElasticsearchOperator, buildSearchValuesText, getQueryFilters, getInheritedFilters, getQueryProps } from '../../helpers';
|
|
18
18
|
import { useGetEntitySchemasAsObj } from '../../hooks';
|
|
19
19
|
import { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';
|
|
@@ -30,7 +30,8 @@ const ListFactory = props => {
|
|
|
30
30
|
sortby: defaultSortBy,
|
|
31
31
|
sort: defaultSort,
|
|
32
32
|
searchFilter,
|
|
33
|
-
operator: filterOperator
|
|
33
|
+
operator: filterOperator,
|
|
34
|
+
sortProperties
|
|
34
35
|
} = props;
|
|
35
36
|
const {
|
|
36
37
|
isPreview
|
|
@@ -48,8 +49,16 @@ const ListFactory = props => {
|
|
|
48
49
|
sortby: querySortBy
|
|
49
50
|
} = {}
|
|
50
51
|
} = parseUrl(parsedQuery);
|
|
51
|
-
const
|
|
52
|
-
|
|
52
|
+
const {
|
|
53
|
+
sortbyFilters,
|
|
54
|
+
updatedSortProperties
|
|
55
|
+
} = getSortProps({
|
|
56
|
+
querySort,
|
|
57
|
+
sortProperties,
|
|
58
|
+
defaultSort,
|
|
59
|
+
querySortBy,
|
|
60
|
+
defaultSortBy
|
|
61
|
+
});
|
|
53
62
|
const {
|
|
54
63
|
itemEntity,
|
|
55
64
|
itemId
|
|
@@ -79,7 +88,7 @@ const ListFactory = props => {
|
|
|
79
88
|
data: requiredSchema = {},
|
|
80
89
|
loading: requiredSchemaLoading,
|
|
81
90
|
error: requiredSchemaError
|
|
82
|
-
} = useGetEntitySchemasAsObj(getRequiredSchemas([...filterByProperty, ...
|
|
91
|
+
} = useGetEntitySchemasAsObj(getRequiredSchemas([...filterByProperty, ...sortbyFilters], filterEntitySchema), schemasLoading);
|
|
83
92
|
const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);
|
|
84
93
|
const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);
|
|
85
94
|
const {
|
|
@@ -131,8 +140,9 @@ const ListFactory = props => {
|
|
|
131
140
|
isAZ,
|
|
132
141
|
router,
|
|
133
142
|
entitySchema,
|
|
134
|
-
sort,
|
|
135
|
-
sortby,
|
|
143
|
+
sort: null,
|
|
144
|
+
sortby: null,
|
|
145
|
+
sortProperties: updatedSortProperties,
|
|
136
146
|
azFilter,
|
|
137
147
|
searchValues,
|
|
138
148
|
filterEntitySchema,
|
|
@@ -161,7 +171,8 @@ ListFactory.propTypes = {
|
|
|
161
171
|
name: PropTypes.string,
|
|
162
172
|
sortby: PropTypes.array,
|
|
163
173
|
sort: PropTypes.string,
|
|
164
|
-
searchFilter: PropTypes.object
|
|
174
|
+
searchFilter: PropTypes.object,
|
|
175
|
+
sortProperties: PropTypes.array
|
|
165
176
|
};
|
|
166
177
|
ListFactory.defaultProps = {
|
|
167
178
|
filterBy: [],
|
|
@@ -169,6 +180,7 @@ ListFactory.defaultProps = {
|
|
|
169
180
|
omitWrappers: false,
|
|
170
181
|
name: '',
|
|
171
182
|
sortby: [],
|
|
183
|
+
sortProperties: [],
|
|
172
184
|
sort: '',
|
|
173
185
|
operator: AND,
|
|
174
186
|
searchFilter: {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/List/ListFactory.js"],"names":["React","useContext","useQuery","parseUrl","PropTypes","useRouter","MainContext","getSingleEntitySchema","generateSingleItemQuery","ListBuilder","AZ_LIST_TYPE","getAzQueryFilter","getGenericProps","getRequiredSchemas","checkForError","getUnpublishedEntityName","getPaginationIndex","getSearchFilterType","getElasticsearchOperator","buildSearchValuesText","getQueryFilters","getInheritedFilters","getQueryProps","useGetEntitySchemasAsObj","AND_OPERATOR","TEXT_SEARCH","ID","AND","FULL","ListFactory","props","entity","parent","name","filterByProperty","filterBy","omitWrappers","type","sortby","defaultSortBy","sort","defaultSort","searchFilter","operator","filterOperator","isPreview","router","asPath","parsedQuery","replace","query","url","querySort","querySortBy","itemEntity","itemId","itemEntityUpdated","paginationIndex","azFilter","data","entitySchema","error","schemaError","loading","schemaLoading","variables","id","mainSchemas","schemasLoading","schemasError","currentSchema","filterEntitySchema","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","queryProps","actions","getAction","get","getPublished","entityData","itemQueryError","itemQueryLoading","skip","length","errorsToCheck","hasErr","errMsg","isCard","isAZ","genericProps","textFilter","shouldApplyTextFilter","propsToDisplay","valuesText","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","object","isRequired","string","array","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { getSingleEntitySchema, generateSingleItemQuery } from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport { getAzQueryFilter } from './helpers';\nimport {\n getGenericProps,\n getRequiredSchemas,\n checkForError,\n getUnpublishedEntityName,\n getPaginationIndex,\n getSearchFilterType,\n getElasticsearchOperator,\n buildSearchValuesText,\n getQueryFilters,\n getInheritedFilters,\n getQueryProps\n} from '../../helpers';\nimport { useGetEntitySchemasAsObj } from '../../hooks';\nimport { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';\n\nconst ListFactory = props => {\n const {\n entity,\n parent,\n name,\n filterByProperty,\n filterBy,\n omitWrappers,\n type,\n sortby: defaultSortBy,\n sort: defaultSort,\n searchFilter,\n operator: filterOperator\n } = props;\n\n const { isPreview } = useContext(MainContext);\n const router = useRouter();\n const { asPath } = router;\n const parsedQuery = asPath.replace(/%5D/g, ']').replace(/%5B/g, '[');\n const { query, url, query: { sort: querySort, sortby: querySortBy } = {} } = parseUrl(\n parsedQuery\n );\n const sort = querySort || defaultSort;\n const sortby = querySortBy ? [querySortBy] : defaultSortBy || [];\n const { itemEntity, itemId } = parent;\n const itemEntityUpdated = getUnpublishedEntityName(itemEntity);\n const paginationIndex = getPaginationIndex(query, name);\n const azFilter = getAzQueryFilter(query, name);\n\n const { data: entitySchema, error: schemaError, loading: schemaLoading } = useQuery(\n getSingleEntitySchema,\n {\n variables: { id: entity }\n }\n );\n const {\n data: mainSchemas = {},\n loading: schemasLoading,\n error: schemasError\n } = useGetEntitySchemasAsObj([itemEntityUpdated, entity]);\n\n const {\n [itemEntityUpdated]: currentSchema = {},\n [entity]: filterEntitySchema = {}\n } = mainSchemas;\n\n const {\n data: requiredSchema = {},\n loading: requiredSchemaLoading,\n error: requiredSchemaError\n } = useGetEntitySchemasAsObj(\n getRequiredSchemas([...filterByProperty, ...sortby], filterEntitySchema),\n schemasLoading\n );\n const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);\n const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);\n const { actions = {} } = currentSchema || {};\n const getAction = isPreview ? actions.get : actions.getPublished;\n\n const {\n data: { entityData = {} } = {},\n error: itemQueryError,\n loading: itemQueryLoading\n } = useQuery(generateSingleItemQuery(getAction, queryProps), {\n variables: { id: itemId },\n skip: schemasLoading || (!inheritedFilters.length && queryProps === ID)\n });\n const errorsToCheck = [schemaError, schemasError, requiredSchemaError, itemQueryError];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (requiredSchemaLoading || schemasLoading || schemaLoading || itemQueryLoading) return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const isCard = type !== FULL;\n const isAZ = type === AZ_LIST_TYPE;\n const genericProps = getGenericProps(props);\n const [textFilter] = getSearchFilterType(searchFilter, TEXT_SEARCH);\n const shouldApplyTextFilter = textFilter && textFilter.propsToDisplay.length;\n const operator = shouldApplyTextFilter ? getElasticsearchOperator(textFilter) : AND_OPERATOR;\n const valuesText = shouldApplyTextFilter ? buildSearchValuesText(textFilter, query) : [];\n const { valuesAnd, valuesOr } = getQueryFilters(searchFilter, query);\n const isTextSearchFilterApplied = !!(\n query.search_term &&\n searchFilter &&\n getSearchFilterType(searchFilter, TEXT_SEARCH).length\n );\n\n const searchValues = {\n searchValuesText: valuesText,\n searchValuesCheckboxSelectRange: valuesAnd,\n searchValuesCheckboxOr: valuesOr\n };\n const listProps = {\n ...props,\n ...genericProps,\n query,\n url,\n isCard,\n isAZ,\n router,\n entitySchema,\n sort,\n sortby,\n azFilter,\n searchValues,\n filterEntitySchema,\n requiredSchema,\n currentSchema,\n omitWrappers,\n operator,\n isTextSearchFilterApplied,\n paginationIndex,\n entityData,\n inheritedFilters,\n filterOperator\n };\n\n return <ListBuilder {...listProps} />;\n};\n\nListFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n entity: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n omitWrappers: PropTypes.bool,\n operator: PropTypes.string,\n name: PropTypes.string,\n sortby: PropTypes.array,\n sort: PropTypes.string,\n searchFilter: PropTypes.object\n};\n\nListFactory.defaultProps = {\n filterBy: [],\n filterByProperty: [],\n omitWrappers: false,\n name: '',\n sortby: [],\n sort: '',\n operator: AND,\n searchFilter: {}\n};\n\nexport default ListFactory;\n"],"file":"ListFactory.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/List/ListFactory.js"],"names":["React","useContext","useQuery","parseUrl","PropTypes","useRouter","MainContext","getSingleEntitySchema","generateSingleItemQuery","ListBuilder","AZ_LIST_TYPE","getAzQueryFilter","getSortProps","getGenericProps","getRequiredSchemas","checkForError","getUnpublishedEntityName","getPaginationIndex","getSearchFilterType","getElasticsearchOperator","buildSearchValuesText","getQueryFilters","getInheritedFilters","getQueryProps","useGetEntitySchemasAsObj","AND_OPERATOR","TEXT_SEARCH","ID","AND","FULL","ListFactory","props","entity","parent","name","filterByProperty","filterBy","omitWrappers","type","sortby","defaultSortBy","sort","defaultSort","searchFilter","operator","filterOperator","sortProperties","isPreview","router","asPath","parsedQuery","replace","query","url","querySort","querySortBy","sortbyFilters","updatedSortProperties","itemEntity","itemId","itemEntityUpdated","paginationIndex","azFilter","data","entitySchema","error","schemaError","loading","schemaLoading","variables","id","mainSchemas","schemasLoading","schemasError","currentSchema","filterEntitySchema","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","queryProps","actions","getAction","get","getPublished","entityData","itemQueryError","itemQueryLoading","skip","length","errorsToCheck","hasErr","errMsg","isCard","isAZ","genericProps","textFilter","shouldApplyTextFilter","propsToDisplay","valuesText","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","object","isRequired","string","array","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { getSingleEntitySchema, generateSingleItemQuery } from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport { getAzQueryFilter, getSortProps } from './helpers';\nimport {\n getGenericProps,\n getRequiredSchemas,\n checkForError,\n getUnpublishedEntityName,\n getPaginationIndex,\n getSearchFilterType,\n getElasticsearchOperator,\n buildSearchValuesText,\n getQueryFilters,\n getInheritedFilters,\n getQueryProps\n} from '../../helpers';\nimport { useGetEntitySchemasAsObj } from '../../hooks';\nimport { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';\n\nconst ListFactory = props => {\n const {\n entity,\n parent,\n name,\n filterByProperty,\n filterBy,\n omitWrappers,\n type,\n sortby: defaultSortBy,\n sort: defaultSort,\n searchFilter,\n operator: filterOperator,\n sortProperties\n } = props;\n\n const { isPreview } = useContext(MainContext);\n const router = useRouter();\n const { asPath } = router;\n const parsedQuery = asPath.replace(/%5D/g, ']').replace(/%5B/g, '[');\n const { query, url, query: { sort: querySort, sortby: querySortBy } = {} } = parseUrl(\n parsedQuery\n );\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy\n });\n\n const { itemEntity, itemId } = parent;\n const itemEntityUpdated = getUnpublishedEntityName(itemEntity);\n const paginationIndex = getPaginationIndex(query, name);\n const azFilter = getAzQueryFilter(query, name);\n\n const { data: entitySchema, error: schemaError, loading: schemaLoading } = useQuery(\n getSingleEntitySchema,\n {\n variables: { id: entity }\n }\n );\n const {\n data: mainSchemas = {},\n loading: schemasLoading,\n error: schemasError\n } = useGetEntitySchemasAsObj([itemEntityUpdated, entity]);\n\n const {\n [itemEntityUpdated]: currentSchema = {},\n [entity]: filterEntitySchema = {}\n } = mainSchemas;\n\n const {\n data: requiredSchema = {},\n loading: requiredSchemaLoading,\n error: requiredSchemaError\n } = useGetEntitySchemasAsObj(\n getRequiredSchemas([...filterByProperty, ...sortbyFilters], filterEntitySchema),\n schemasLoading\n );\n const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);\n const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);\n const { actions = {} } = currentSchema || {};\n const getAction = isPreview ? actions.get : actions.getPublished;\n\n const {\n data: { entityData = {} } = {},\n error: itemQueryError,\n loading: itemQueryLoading\n } = useQuery(generateSingleItemQuery(getAction, queryProps), {\n variables: { id: itemId },\n skip: schemasLoading || (!inheritedFilters.length && queryProps === ID)\n });\n const errorsToCheck = [schemaError, schemasError, requiredSchemaError, itemQueryError];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (requiredSchemaLoading || schemasLoading || schemaLoading || itemQueryLoading) return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const isCard = type !== FULL;\n const isAZ = type === AZ_LIST_TYPE;\n const genericProps = getGenericProps(props);\n const [textFilter] = getSearchFilterType(searchFilter, TEXT_SEARCH);\n const shouldApplyTextFilter = textFilter && textFilter.propsToDisplay.length;\n const operator = shouldApplyTextFilter ? getElasticsearchOperator(textFilter) : AND_OPERATOR;\n const valuesText = shouldApplyTextFilter ? buildSearchValuesText(textFilter, query) : [];\n const { valuesAnd, valuesOr } = getQueryFilters(searchFilter, query);\n const isTextSearchFilterApplied = !!(\n query.search_term &&\n searchFilter &&\n getSearchFilterType(searchFilter, TEXT_SEARCH).length\n );\n\n const searchValues = {\n searchValuesText: valuesText,\n searchValuesCheckboxSelectRange: valuesAnd,\n searchValuesCheckboxOr: valuesOr\n };\n const listProps = {\n ...props,\n ...genericProps,\n query,\n url,\n isCard,\n isAZ,\n router,\n entitySchema,\n sort: null,\n sortby: null,\n sortProperties: updatedSortProperties,\n azFilter,\n searchValues,\n filterEntitySchema,\n requiredSchema,\n currentSchema,\n omitWrappers,\n operator,\n isTextSearchFilterApplied,\n paginationIndex,\n entityData,\n inheritedFilters,\n filterOperator\n };\n\n return <ListBuilder {...listProps} />;\n};\n\nListFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n entity: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n omitWrappers: PropTypes.bool,\n operator: PropTypes.string,\n name: PropTypes.string,\n sortby: PropTypes.array,\n sort: PropTypes.string,\n searchFilter: PropTypes.object,\n sortProperties: PropTypes.array\n};\n\nListFactory.defaultProps = {\n filterBy: [],\n filterByProperty: [],\n omitWrappers: false,\n name: '',\n sortby: [],\n sortProperties: [],\n sort: '',\n operator: AND,\n searchFilter: {}\n};\n\nexport default ListFactory;\n"],"file":"ListFactory.js"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const getSortProps = ({
|
|
2
|
+
querySort,
|
|
3
|
+
sortProperties,
|
|
4
|
+
defaultSort,
|
|
5
|
+
querySortBy,
|
|
6
|
+
defaultSortBy
|
|
7
|
+
}) => {
|
|
8
|
+
const sort = querySort || (sortProperties.length ? null : defaultSort);
|
|
9
|
+
let sortby = null;
|
|
10
|
+
if (querySortBy) sortby = [querySortBy];else if (!sortProperties.length) sortby = defaultSortBy;
|
|
11
|
+
const updatedSortProperties = [...sortProperties];
|
|
12
|
+
if (sort) updatedSortProperties.unshift({
|
|
13
|
+
sort,
|
|
14
|
+
propsToDisplay: sortby
|
|
15
|
+
});
|
|
16
|
+
const sortbyFilters = updatedSortProperties.map(({
|
|
17
|
+
propsToDisplay: filterProps
|
|
18
|
+
}) => filterProps).filter(Boolean).flat();
|
|
19
|
+
return {
|
|
20
|
+
sortbyFilters,
|
|
21
|
+
updatedSortProperties
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export default getSortProps;
|
|
26
|
+
//# sourceMappingURL=get-sort-props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/List/helpers/get-sort-props.js"],"names":["getSortProps","querySort","sortProperties","defaultSort","querySortBy","defaultSortBy","sort","length","sortby","updatedSortProperties","unshift","propsToDisplay","sortbyFilters","map","filterProps","filter","Boolean","flat"],"mappings":"AAAA,MAAMA,YAAY,GAAG,CAAC;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,cAAb;AAA6BC,EAAAA,WAA7B;AAA0CC,EAAAA,WAA1C;AAAuDC,EAAAA;AAAvD,CAAD,KAA4E;AAC/F,QAAMC,IAAI,GAAGL,SAAS,KAAKC,cAAc,CAACK,MAAf,GAAwB,IAAxB,GAA+BJ,WAApC,CAAtB;AACA,MAAIK,MAAM,GAAG,IAAb;AACA,MAAIJ,WAAJ,EAAiBI,MAAM,GAAG,CAACJ,WAAD,CAAT,CAAjB,KACK,IAAI,CAACF,cAAc,CAACK,MAApB,EAA4BC,MAAM,GAAGH,aAAT;AAEjC,QAAMI,qBAAqB,GAAG,CAAC,GAAGP,cAAJ,CAA9B;AACA,MAAII,IAAJ,EAAUG,qBAAqB,CAACC,OAAtB,CAA8B;AAAEJ,IAAAA,IAAF;AAAQK,IAAAA,cAAc,EAAEH;AAAxB,GAA9B;AAEV,QAAMI,aAAa,GAAGH,qBAAqB,CACxCI,GADmB,CACf,CAAC;AAAEF,IAAAA,cAAc,EAAEG;AAAlB,GAAD,KAAqCA,WADtB,EAEnBC,MAFmB,CAEZC,OAFY,EAGnBC,IAHmB,EAAtB;AAIA,SAAO;AAAEL,IAAAA,aAAF;AAAiBH,IAAAA;AAAjB,GAAP;AACD,CAdD;;AAgBA,eAAeT,YAAf","sourcesContent":["const getSortProps = ({ querySort, sortProperties, defaultSort, querySortBy, defaultSortBy }) => {\n const sort = querySort || (sortProperties.length ? null : defaultSort);\n let sortby = null;\n if (querySortBy) sortby = [querySortBy];\n else if (!sortProperties.length) sortby = defaultSortBy;\n\n const updatedSortProperties = [...sortProperties];\n if (sort) updatedSortProperties.unshift({ sort, propsToDisplay: sortby });\n\n const sortbyFilters = updatedSortProperties\n .map(({ propsToDisplay: filterProps }) => filterProps)\n .filter(Boolean)\n .flat();\n return { sortbyFilters, updatedSortProperties };\n};\n\nexport default getSortProps;\n"],"file":"get-sort-props.js"}
|
|
@@ -4,4 +4,5 @@ export { default as buildAzAggregations } from './build-az-aggregations';
|
|
|
4
4
|
export { default as buildAzUrl } from './build-az-url';
|
|
5
5
|
export { default as sortAggs } from './sort-aggs';
|
|
6
6
|
export { default as getItemsPerPageToUse } from './get-items-per-page-to-use';
|
|
7
|
+
export { default as getSortProps } from './get-sort-props';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/List/helpers/index.js"],"names":["default","buildPaginationItems","getAzQueryFilter","buildAzAggregations","buildAzUrl","sortAggs","getItemsPerPageToUse"],"mappings":"AAAA,SAASA,OAAO,IAAIC,oBAApB,QAAgD,0BAAhD;AACA,SAASD,OAAO,IAAIE,gBAApB,QAA4C,uBAA5C;AACA,SAASF,OAAO,IAAIG,mBAApB,QAA+C,yBAA/C;AACA,SAASH,OAAO,IAAII,UAApB,QAAsC,gBAAtC;AACA,SAASJ,OAAO,IAAIK,QAApB,QAAoC,aAApC;AACA,SAASL,OAAO,IAAIM,oBAApB,QAAgD,6BAAhD","sourcesContent":["export { default as buildPaginationItems } from './build-pagination-items';\nexport { default as getAzQueryFilter } from './get-az-query-filter';\nexport { default as buildAzAggregations } from './build-az-aggregations';\nexport { default as buildAzUrl } from './build-az-url';\nexport { default as sortAggs } from './sort-aggs';\nexport { default as getItemsPerPageToUse } from './get-items-per-page-to-use';\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/List/helpers/index.js"],"names":["default","buildPaginationItems","getAzQueryFilter","buildAzAggregations","buildAzUrl","sortAggs","getItemsPerPageToUse","getSortProps"],"mappings":"AAAA,SAASA,OAAO,IAAIC,oBAApB,QAAgD,0BAAhD;AACA,SAASD,OAAO,IAAIE,gBAApB,QAA4C,uBAA5C;AACA,SAASF,OAAO,IAAIG,mBAApB,QAA+C,yBAA/C;AACA,SAASH,OAAO,IAAII,UAApB,QAAsC,gBAAtC;AACA,SAASJ,OAAO,IAAIK,QAApB,QAAoC,aAApC;AACA,SAASL,OAAO,IAAIM,oBAApB,QAAgD,6BAAhD;AACA,SAASN,OAAO,IAAIO,YAApB,QAAwC,kBAAxC","sourcesContent":["export { default as buildPaginationItems } from './build-pagination-items';\nexport { default as getAzQueryFilter } from './get-az-query-filter';\nexport { default as buildAzAggregations } from './build-az-aggregations';\nexport { default as buildAzUrl } from './build-az-url';\nexport { default as sortAggs } from './sort-aggs';\nexport { default as getItemsPerPageToUse } from './get-items-per-page-to-use';\nexport { default as getSortProps } from './get-sort-props';\n"],"file":"index.js"}
|
|
@@ -10,7 +10,8 @@ const FiltersList = ({
|
|
|
10
10
|
hasUrl,
|
|
11
11
|
entity,
|
|
12
12
|
filterValues,
|
|
13
|
-
updateFilterValues
|
|
13
|
+
updateFilterValues,
|
|
14
|
+
shouldSearch
|
|
14
15
|
}) => {
|
|
15
16
|
const {
|
|
16
17
|
itemId
|
|
@@ -54,7 +55,8 @@ const FiltersList = ({
|
|
|
54
55
|
elementTitle: elementTitle,
|
|
55
56
|
hasUrl: hasUrl,
|
|
56
57
|
filterValues: filterValues,
|
|
57
|
-
updateFilterValues: updateFilterValues
|
|
58
|
+
updateFilterValues: updateFilterValues,
|
|
59
|
+
shouldSearch: shouldSearch
|
|
58
60
|
}));
|
|
59
61
|
|
|
60
62
|
case SELECT:
|
|
@@ -68,7 +70,8 @@ const FiltersList = ({
|
|
|
68
70
|
elementTitle: elementTitle,
|
|
69
71
|
hasUrl: hasUrl,
|
|
70
72
|
filterValues: filterValues,
|
|
71
|
-
updateFilterValues: updateFilterValues
|
|
73
|
+
updateFilterValues: updateFilterValues,
|
|
74
|
+
shouldSearch: shouldSearch
|
|
72
75
|
}));
|
|
73
76
|
|
|
74
77
|
case RANGE:
|
|
@@ -83,7 +86,8 @@ const FiltersList = ({
|
|
|
83
86
|
elementTitle: elementTitle,
|
|
84
87
|
entity: entity,
|
|
85
88
|
filterValues: filterValues,
|
|
86
|
-
updateFilterValues: updateFilterValues
|
|
89
|
+
updateFilterValues: updateFilterValues,
|
|
90
|
+
shouldSearch: shouldSearch
|
|
87
91
|
}));
|
|
88
92
|
|
|
89
93
|
default:
|
|
@@ -98,9 +102,11 @@ FiltersList.propTypes = {
|
|
|
98
102
|
filterValues: PropTypes.object.isRequired,
|
|
99
103
|
updateFilterValues: PropTypes.func.isRequired,
|
|
100
104
|
data: PropTypes.object,
|
|
101
|
-
filters: PropTypes.array
|
|
105
|
+
filters: PropTypes.array,
|
|
106
|
+
shouldSearch: PropTypes.bool
|
|
102
107
|
};
|
|
103
108
|
FiltersList.defaultProps = {
|
|
109
|
+
shouldSearch: false,
|
|
104
110
|
data: {},
|
|
105
111
|
filters: []
|
|
106
112
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"names":["React","useContext","PropTypes","MainContext","TextSearch","Checkbox","SelectFilter","Range","CHECKBOX","SELECT","TEXT_SEARCH","RANGE","SEARCH_TERM","FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","itemId","map","type","label","propsToDisplay","rangeInterval","elementTitle","index","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","results","shouldDisplayFilter","buckets","propTypes","bool","isRequired","string","object","func","array","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,WAAT,QAA4B,8BAA5B;AACA,SAASC,UAAT,EAAqBC,QAArB,EAA+BC,YAA/B,EAA6CC,KAA7C,QAA0D,eAA1D;AACA,SAASC,QAAT,EAAmBC,MAAnB,EAA2BC,WAA3B,EAAwCC,KAAxC,EAA+CC,WAA/C,QAAkE,cAAlE;;AAEA,MAAMC,WAAW,GAAG,CAAC;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"names":["React","useContext","PropTypes","MainContext","TextSearch","Checkbox","SelectFilter","Range","CHECKBOX","SELECT","TEXT_SEARCH","RANGE","SEARCH_TERM","FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","shouldSearch","itemId","map","type","label","propsToDisplay","rangeInterval","elementTitle","index","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","results","shouldDisplayFilter","buckets","propTypes","bool","isRequired","string","object","func","array","defaultProps"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { TextSearch, Checkbox, SelectFilter, Range } from '../components';\nimport { CHECKBOX, SELECT, TEXT_SEARCH, RANGE, SEARCH_TERM } from '../constants';\n\nconst FiltersList = ({\n data,\n filters,\n hasUrl,\n entity,\n filterValues,\n updateFilterValues,\n shouldSearch\n}) => {\n const { itemId } = useContext(MainContext);\n\n return filters.map(({ type, label, propsToDisplay, rangeInterval, elementTitle }, index) => {\n if (!propsToDisplay && !propsToDisplay.length) return null;\n\n const dynamicKey = [itemId, index].join('-');\n const isDataAvailable = !!data && Object.keys(data).length;\n const dataAggregations = isDataAvailable ? data : null;\n const areAggregationsAvailable = isDataAvailable && !!dataAggregations;\n const results = areAggregationsAvailable && dataAggregations[propsToDisplay[0]];\n const shouldDisplayFilter = results && results.buckets && results.buckets.length;\n\n switch (type) {\n case TEXT_SEARCH:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--search\">\n <TextSearch\n label={label}\n elementTitle={elementTitle}\n searchValue={filterValues[SEARCH_TERM]}\n updateFilterValues={updateFilterValues}\n filterValues={filterValues}\n />\n </div>\n );\n case CHECKBOX:\n return (\n !!shouldDisplayFilter && (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--checkboxes\">\n <Checkbox\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n case SELECT:\n return (\n !!shouldDisplayFilter && (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--selects\">\n <SelectFilter\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n case RANGE:\n return (\n !!areAggregationsAvailable && (\n <div key={dynamicKey} className=\"range-slider__wrapper\">\n <Range\n dataAggregations={dataAggregations}\n propsToDisplay={propsToDisplay}\n rangeInterval={rangeInterval}\n label={label}\n elementTitle={elementTitle}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n default:\n return null;\n }\n });\n};\n\nFiltersList.propTypes = {\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n data: PropTypes.object,\n filters: PropTypes.array,\n shouldSearch: PropTypes.bool\n};\n\nFiltersList.defaultProps = {\n shouldSearch: false,\n data: {},\n filters: []\n};\n\nexport default FiltersList;\n"],"file":"FiltersList.js"}
|
|
@@ -9,11 +9,11 @@ import PropTypes from 'prop-types';
|
|
|
9
9
|
import classnames from 'classnames';
|
|
10
10
|
import debounce from 'lodash.debounce';
|
|
11
11
|
import FiltersList from './FiltersList';
|
|
12
|
-
import { isDeviceDesktop, buildQuery, getInitialFilterValues } from '../helpers';
|
|
12
|
+
import { isDeviceDesktop, buildQuery, getInitialFilterValues, getResponsiveFilterClassnames } from '../helpers';
|
|
13
13
|
import CloseMobileForm from './CloseMobileForm';
|
|
14
14
|
import ResetDesktopForm from './ResetDesktopForm';
|
|
15
15
|
import MobileFormToolbar from './MobileFormToolbar';
|
|
16
|
-
import { SEARCH, REFINE } from '../constants';
|
|
16
|
+
import { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';
|
|
17
17
|
|
|
18
18
|
const reducer = (state, action) => {
|
|
19
19
|
const {
|
|
@@ -55,11 +55,13 @@ const SearchFilter = ({
|
|
|
55
55
|
displaySearchFilter,
|
|
56
56
|
setDisplaySearchFilter,
|
|
57
57
|
initialFilterValues,
|
|
58
|
-
|
|
58
|
+
groupAfterDesktop,
|
|
59
|
+
groupAfterMobile
|
|
59
60
|
}) => {
|
|
60
61
|
const [isDesktop, setIsDesktop] = useState(true);
|
|
61
62
|
const [pageWidth, setPageWidth] = useState(null);
|
|
62
|
-
const [
|
|
63
|
+
const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);
|
|
64
|
+
const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);
|
|
63
65
|
const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);
|
|
64
66
|
const handleSubmit = debounce(newValues => {
|
|
65
67
|
const newQuery = buildQuery(newValues, filters);
|
|
@@ -105,12 +107,12 @@ const SearchFilter = ({
|
|
|
105
107
|
const formClass = classnames({
|
|
106
108
|
'filter__form filter__form--mobile': isMobileFormDisplayed
|
|
107
109
|
});
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
});
|
|
110
|
+
const {
|
|
111
|
+
moreFiltersMobileWrapperClass,
|
|
112
|
+
moreFiltersMobileTogglerClass,
|
|
113
|
+
moreFiltersDesktopWrapperClass,
|
|
114
|
+
moreFiltersDesktopTogglerClass
|
|
115
|
+
} = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);
|
|
114
116
|
const formId = `filter-${name}-form`;
|
|
115
117
|
|
|
116
118
|
const handleReset = () => {
|
|
@@ -129,6 +131,7 @@ const SearchFilter = ({
|
|
|
129
131
|
});
|
|
130
132
|
};
|
|
131
133
|
|
|
134
|
+
const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);
|
|
132
135
|
return /*#__PURE__*/React.createElement(React.Fragment, null, isDesktopFormDisplayed || isMobileFormDisplayed ? /*#__PURE__*/React.createElement("form", {
|
|
133
136
|
ref: searchFilterRef,
|
|
134
137
|
className: formClass,
|
|
@@ -147,37 +150,63 @@ const SearchFilter = ({
|
|
|
147
150
|
handleReset: handleReset
|
|
148
151
|
}), /*#__PURE__*/React.createElement("div", {
|
|
149
152
|
className: "filter__wrapper filter__wrapper--search-refine"
|
|
150
|
-
}, !
|
|
153
|
+
}, !shouldGroup && /*#__PURE__*/React.createElement(FiltersList, {
|
|
154
|
+
shouldSearch: true,
|
|
151
155
|
data: data,
|
|
152
156
|
filters: filters,
|
|
153
157
|
hasUrl: hasUrl,
|
|
154
158
|
entity: entity,
|
|
155
159
|
filterValues: filterValues,
|
|
156
160
|
updateFilterValues: updateFilterValues
|
|
157
|
-
}),
|
|
161
|
+
}), shouldGroup && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FiltersList, {
|
|
162
|
+
shouldSearch: true,
|
|
158
163
|
data: data,
|
|
159
|
-
filters: filters.slice(0,
|
|
164
|
+
filters: filters.slice(0, groupAfterMobile),
|
|
160
165
|
hasUrl: hasUrl,
|
|
161
166
|
entity: entity,
|
|
162
167
|
filterValues: filterValues,
|
|
163
168
|
updateFilterValues: updateFilterValues
|
|
164
|
-
}), /*#__PURE__*/React.createElement("button", {
|
|
165
|
-
className:
|
|
169
|
+
}), !!groupAfterMobile && /*#__PURE__*/React.createElement("button", {
|
|
170
|
+
className: moreFiltersMobileTogglerClass,
|
|
166
171
|
type: "button",
|
|
167
|
-
onClick: () =>
|
|
172
|
+
onClick: () => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)
|
|
173
|
+
}, "Filters"), /*#__PURE__*/React.createElement("div", {
|
|
174
|
+
className: moreFiltersMobileWrapperClass
|
|
175
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
176
|
+
className: MORE_FILTERS_CLASSES.MOBILE_CONTENT
|
|
177
|
+
}, /*#__PURE__*/React.createElement(FiltersList, {
|
|
178
|
+
shouldSearch: isDeviceDesktop(),
|
|
179
|
+
data: data,
|
|
180
|
+
filters: filters.slice(groupAfterMobile, groupAfterDesktop ? groupAfterDesktop - 1 : 0),
|
|
181
|
+
hasUrl: hasUrl,
|
|
182
|
+
entity: entity,
|
|
183
|
+
filterValues: filterValues,
|
|
184
|
+
updateFilterValues: updateFilterValues
|
|
185
|
+
}), !!groupAfterDesktop && /*#__PURE__*/React.createElement("button", {
|
|
186
|
+
className: moreFiltersDesktopTogglerClass,
|
|
187
|
+
type: "button",
|
|
188
|
+
onClick: () => setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)
|
|
168
189
|
}, "More filters"), /*#__PURE__*/React.createElement("div", {
|
|
169
|
-
className:
|
|
190
|
+
className: moreFiltersDesktopWrapperClass
|
|
170
191
|
}, /*#__PURE__*/React.createElement("div", {
|
|
171
|
-
className:
|
|
192
|
+
className: MORE_FILTERS_CLASSES.DESKTOP_CONTENT
|
|
172
193
|
}, /*#__PURE__*/React.createElement(FiltersList, {
|
|
194
|
+
shouldSearch: false,
|
|
173
195
|
data: data,
|
|
174
|
-
filters: filters.slice(
|
|
196
|
+
filters: filters.slice(groupAfterDesktop),
|
|
175
197
|
hasUrl: hasUrl,
|
|
176
198
|
entity: entity,
|
|
177
199
|
filterValues: filterValues,
|
|
178
200
|
updateFilterValues: updateFilterValues
|
|
179
201
|
})), /*#__PURE__*/React.createElement("div", {
|
|
180
|
-
className:
|
|
202
|
+
className: MORE_FILTERS_CLASSES.DESKTOP_BUTTONS
|
|
203
|
+
}, /*#__PURE__*/React.createElement(ResetDesktopForm, {
|
|
204
|
+
handleReset: handleReset
|
|
205
|
+
}), /*#__PURE__*/React.createElement("button", {
|
|
206
|
+
className: "button button--full-width",
|
|
207
|
+
type: "submit"
|
|
208
|
+
}, SEARCH)))), /*#__PURE__*/React.createElement("div", {
|
|
209
|
+
className: MORE_FILTERS_CLASSES.MOBILE_BUTTONS
|
|
181
210
|
}, /*#__PURE__*/React.createElement(ResetDesktopForm, {
|
|
182
211
|
handleReset: handleReset
|
|
183
212
|
}), /*#__PURE__*/React.createElement("button", {
|
|
@@ -209,7 +238,8 @@ SearchFilter.propTypes = {
|
|
|
209
238
|
displaySearchFilter: PropTypes.bool.isRequired,
|
|
210
239
|
setDisplaySearchFilter: PropTypes.func.isRequired,
|
|
211
240
|
isCollapsedOnResponsive: PropTypes.bool.isRequired,
|
|
212
|
-
|
|
241
|
+
groupAfterDesktop: PropTypes.number.isRequired,
|
|
242
|
+
groupAfterMobile: PropTypes.number.isRequired,
|
|
213
243
|
initialFilterValues: PropTypes.object.isRequired
|
|
214
244
|
};
|
|
215
245
|
export default SearchFilter;
|