@blaze-cms/react-page-builder 0.119.1 → 0.120.0-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 +11 -0
- package/lib/components/BlazeLink.js +1 -0
- package/lib/components/BlazeLink.js.map +1 -1
- package/lib/components/Card/Card.js +1 -1
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/Card/CardContainer.js +6 -2
- package/lib/components/Card/CardContainer.js.map +1 -1
- package/lib/components/Card/CardRender.js +27 -12
- package/lib/components/Card/CardRender.js.map +1 -1
- package/lib/components/Card/helpers/filter-query-setup.js +7 -3
- package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
- package/lib/components/Card/helpers/filters-setup.js +5 -16
- package/lib/components/Card/helpers/filters-setup.js.map +1 -1
- package/lib/components/List/ListBuilder.js +3 -3
- package/lib/components/List/ListBuilder.js.map +1 -1
- package/lib/helpers/get-entity-data.js +27 -5
- package/lib/helpers/get-entity-data.js.map +1 -1
- package/lib/helpers/get-generic-render-variables.js +29 -7
- package/lib/helpers/get-generic-render-variables.js.map +1 -1
- package/lib-es/components/BlazeLink.js +1 -0
- package/lib-es/components/BlazeLink.js.map +1 -1
- package/lib-es/components/Card/Card.js +1 -1
- package/lib-es/components/Card/Card.js.map +1 -1
- package/lib-es/components/Card/CardContainer.js +6 -2
- package/lib-es/components/Card/CardContainer.js.map +1 -1
- package/lib-es/components/Card/CardRender.js +19 -10
- package/lib-es/components/Card/CardRender.js.map +1 -1
- package/lib-es/components/Card/helpers/filter-query-setup.js +7 -3
- package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
- package/lib-es/components/Card/helpers/filters-setup.js +2 -7
- package/lib-es/components/Card/helpers/filters-setup.js.map +1 -1
- package/lib-es/components/List/ListBuilder.js +3 -3
- package/lib-es/components/List/ListBuilder.js.map +1 -1
- package/lib-es/helpers/get-entity-data.js +23 -5
- package/lib-es/helpers/get-entity-data.js.map +1 -1
- package/lib-es/helpers/get-generic-render-variables.js +28 -7
- package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
- package/package.json +2 -2
- package/src/components/BlazeLink.js +1 -0
- package/src/components/Card/Card.js +3 -5
- package/src/components/Card/CardContainer.js +6 -2
- package/src/components/Card/CardRender.js +15 -9
- package/src/components/Card/helpers/filter-query-setup.js +9 -3
- package/src/components/Card/helpers/filters-setup.js +2 -5
- package/src/components/List/ListBuilder.js +3 -3
- package/src/helpers/get-entity-data.js +12 -4
- package/src/helpers/get-generic-render-variables.js +30 -6
- package/tests/unit/src/components/List/components/Cards/__snapshots__/CardsRender.test.js.snap +18 -6
|
@@ -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","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/client';\nimport { getStringTypeProps } from '@blaze-cms/utils/src/helpers';\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"}
|
|
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","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/client';\nimport { getStringTypeProps } from '@blaze-cms/utils/src/helpers';\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, requiredSchema);\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 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 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"}
|
|
@@ -1,12 +1,30 @@
|
|
|
1
1
|
import upperFirst from 'lodash.upperfirst';
|
|
2
2
|
import camelcase from 'lodash.camelcase';
|
|
3
3
|
|
|
4
|
-
const getEntityData = entity => {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
4
|
+
const getEntityData = (entity, schema) => {
|
|
5
|
+
const publishedDocType = `published_${entity}`;
|
|
6
|
+
const publishedEntityType = `Published${upperFirst(camelcase(entity))}`;
|
|
7
|
+
|
|
8
|
+
if (schema) {
|
|
9
|
+
const {
|
|
10
|
+
interfaces,
|
|
11
|
+
[entity]: {
|
|
12
|
+
interfaces: nestedInterfaces
|
|
13
|
+
} = {}
|
|
14
|
+
} = schema || {};
|
|
15
|
+
const interfacesToCheck = interfaces || nestedInterfaces;
|
|
16
|
+
|
|
17
|
+
if (interfacesToCheck && !interfacesToCheck.includes('publish/publishable')) {
|
|
18
|
+
return {
|
|
19
|
+
docType: entity,
|
|
20
|
+
entityType: upperFirst(camelcase(entity))
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
7
25
|
return {
|
|
8
|
-
docType,
|
|
9
|
-
entityType
|
|
26
|
+
docType: publishedDocType,
|
|
27
|
+
entityType: publishedEntityType
|
|
10
28
|
};
|
|
11
29
|
};
|
|
12
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/get-entity-data.js"],"names":["upperFirst","camelcase","getEntityData","entity","docType","entityType"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,mBAAvB;AACA,OAAOC,SAAP,MAAsB,kBAAtB;;AAEA,MAAMC,aAAa,
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/get-entity-data.js"],"names":["upperFirst","camelcase","getEntityData","entity","schema","publishedDocType","publishedEntityType","interfaces","nestedInterfaces","interfacesToCheck","includes","docType","entityType"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,mBAAvB;AACA,OAAOC,SAAP,MAAsB,kBAAtB;;AAEA,MAAMC,aAAa,GAAG,CAACC,MAAD,EAASC,MAAT,KAAoB;AACxC,QAAMC,gBAAgB,GAAI,aAAYF,MAAO,EAA7C;AACA,QAAMG,mBAAmB,GAAI,YAAWN,UAAU,CAACC,SAAS,CAACE,MAAD,CAAV,CAAoB,EAAtE;;AAEA,MAAIC,MAAJ,EAAY;AACV,UAAM;AAAEG,MAAAA,UAAF;AAAc,OAACJ,MAAD,GAAU;AAAEI,QAAAA,UAAU,EAAEC;AAAd,UAAmC;AAA3D,QAAkEJ,MAAM,IAAI,EAAlF;AACA,UAAMK,iBAAiB,GAAGF,UAAU,IAAIC,gBAAxC;;AACA,QAAIC,iBAAiB,IAAI,CAACA,iBAAiB,CAACC,QAAlB,CAA2B,qBAA3B,CAA1B,EAA6E;AAC3E,aAAO;AAAEC,QAAAA,OAAO,EAAER,MAAX;AAAmBS,QAAAA,UAAU,EAAEZ,UAAU,CAACC,SAAS,CAACE,MAAD,CAAV;AAAzC,OAAP;AACD;AACF;;AAED,SAAO;AAAEQ,IAAAA,OAAO,EAAEN,gBAAX;AAA6BO,IAAAA,UAAU,EAAEN;AAAzC,GAAP;AACD,CAbD;;AAeA,eAAeJ,aAAf","sourcesContent":["import upperFirst from 'lodash.upperfirst';\nimport camelcase from 'lodash.camelcase';\n\nconst getEntityData = (entity, schema) => {\n const publishedDocType = `published_${entity}`;\n const publishedEntityType = `Published${upperFirst(camelcase(entity))}`;\n\n if (schema) {\n const { interfaces, [entity]: { interfaces: nestedInterfaces } = {} } = schema || {};\n const interfacesToCheck = interfaces || nestedInterfaces;\n if (interfacesToCheck && !interfacesToCheck.includes('publish/publishable')) {\n return { docType: entity, entityType: upperFirst(camelcase(entity)) };\n }\n }\n\n return { docType: publishedDocType, entityType: publishedEntityType };\n};\n\nexport default getEntityData;\n"],"file":"get-entity-data.js"}
|
|
@@ -40,19 +40,40 @@ const getCorrectSort = (relations, filterProps, stringProps, isTextSearchApplied
|
|
|
40
40
|
}, ...sortProperties], relations, stringProps);
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
const getGenericRenderVariables = (relations, filterProps = {}, stringProps = [],
|
|
43
|
+
const getGenericRenderVariables = (relations, filterProps = {}, stringProps = [], rawQuery = {}, isTextSearchFilterApplied = false, useRandomSort = false) => {
|
|
44
44
|
const {
|
|
45
45
|
limit = DEFAULT_LIMIT,
|
|
46
46
|
offset
|
|
47
47
|
} = filterProps;
|
|
48
|
+
const limitToUse = Number(limit || DEFAULT_LIMIT);
|
|
49
|
+
const offsetToUse = Number(offset || DEFAULT_OFFSET);
|
|
50
|
+
|
|
51
|
+
if (useRandomSort) {
|
|
52
|
+
const rawQueryStringified = JSON.stringify({
|
|
53
|
+
query: {
|
|
54
|
+
function_score: {
|
|
55
|
+
query: rawQuery,
|
|
56
|
+
random_score: {},
|
|
57
|
+
boost_mode: 'replace'
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return {
|
|
62
|
+
limit: limitToUse,
|
|
63
|
+
offset: offsetToUse,
|
|
64
|
+
rawQueryStringified
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
48
68
|
const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);
|
|
49
|
-
const raw = rawQueryStringified ? {
|
|
50
|
-
rawQueryStringified
|
|
51
|
-
} : {};
|
|
52
69
|
return _objectSpread(_objectSpread({
|
|
53
|
-
limit:
|
|
54
|
-
offset:
|
|
55
|
-
}, sort),
|
|
70
|
+
limit: limitToUse,
|
|
71
|
+
offset: offsetToUse
|
|
72
|
+
}, sort), {}, {
|
|
73
|
+
rawQueryStringified: JSON.stringify({
|
|
74
|
+
query: rawQuery
|
|
75
|
+
})
|
|
76
|
+
});
|
|
56
77
|
};
|
|
57
78
|
|
|
58
79
|
export default getGenericRenderVariables;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/get-generic-render-variables.js"],"names":["getSortbyFieldName","DEFAULT_LIMIT","DEFAULT_OFFSET","buildSortValues","sortFilters","relations","stringProps","length","sort","sortValues","map","propsToDisplay","sortFieldName","toLowerCase","filter","Boolean","join","getCorrectSort","filterProps","isTextSearchApplied","sortby","sortProperties","getGenericRenderVariables","
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/get-generic-render-variables.js"],"names":["getSortbyFieldName","DEFAULT_LIMIT","DEFAULT_OFFSET","buildSortValues","sortFilters","relations","stringProps","length","sort","sortValues","map","propsToDisplay","sortFieldName","toLowerCase","filter","Boolean","join","getCorrectSort","filterProps","isTextSearchApplied","sortby","sortProperties","getGenericRenderVariables","rawQuery","isTextSearchFilterApplied","useRandomSort","limit","offset","limitToUse","Number","offsetToUse","rawQueryStringified","JSON","stringify","query","function_score","random_score","boost_mode"],"mappings":";;;;;;AAAA,OAAOA,kBAAP,MAA+B,0BAA/B;AACA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,cAA9C;;AAEA,MAAMC,eAAe,GAAG,CAACC,WAAD,EAAcC,SAAd,EAAyBC,WAAzB,KAAyC;AAC/D,MAAI,CAACF,WAAD,IAAgB,CAACA,WAAW,CAACG,MAAjC,EAAyC,OAAO;AAAEC,IAAAA,IAAI,EAAE;AAAR,GAAP;AAEzC,QAAMC,UAAU,GAAGL,WAAW,CAC3BM,GADgB,CACZ,CAAC;AAAEF,IAAAA,IAAF;AAAQG,IAAAA;AAAR,GAAD,KAA8B;AACjC,QAAI,CAACH,IAAL,EAAW,OAAO,IAAP;AAEX,UAAMI,aAAa,GAAGZ,kBAAkB,CAACK,SAAD,EAAYM,cAAZ,EAA4BL,WAA5B,CAAxC;AACA,WAAOM,aAAa,GAAI,GAAEA,aAAc,IAAGJ,IAAI,CAACK,WAAL,EAAmB,EAA1C,GAA8C,IAAlE;AACD,GANgB,EAOhBC,MAPgB,CAOTC,OAPS,EAQhBC,IARgB,CAQX,GARW,CAAnB;AAUA,SAAO;AAAER,IAAAA,IAAI,EAAEC;AAAR,GAAP;AACD,CAdD;;AAeA,MAAMQ,cAAc,GAAG,CAACZ,SAAD,EAAYa,WAAZ,EAAyBZ,WAAzB,EAAsCa,mBAAtC,KAA8D;AACnF,MAAIA,mBAAJ,EAAyB;AACvB,WAAO,EAAP;AACD;;AACD,QAAM;AAAEX,IAAAA,IAAF;AAAQY,IAAAA,MAAR;AAAgBC,IAAAA,cAAc,GAAG;AAAjC,MAAwCH,WAA9C;AAEA,SAAOf,eAAe,CACpB,CAAC;AAAEK,IAAAA,IAAF;AAAQG,IAAAA,cAAc,EAAES;AAAxB,GAAD,EAAmC,GAAGC,cAAtC,CADoB,EAEpBhB,SAFoB,EAGpBC,WAHoB,CAAtB;AAKD,CAXD;;AAaA,MAAMgB,yBAAyB,GAAG,CAChCjB,SADgC,EAEhCa,WAAW,GAAG,EAFkB,EAGhCZ,WAAW,GAAG,EAHkB,EAIhCiB,QAAQ,GAAG,EAJqB,EAKhCC,yBAAyB,GAAG,KALI,EAMhCC,aAAa,GAAG,KANgB,KAO7B;AACH,QAAM;AAAEC,IAAAA,KAAK,GAAGzB,aAAV;AAAyB0B,IAAAA;AAAzB,MAAoCT,WAA1C;AACA,QAAMU,UAAU,GAAGC,MAAM,CAACH,KAAK,IAAIzB,aAAV,CAAzB;AACA,QAAM6B,WAAW,GAAGD,MAAM,CAACF,MAAM,IAAIzB,cAAX,CAA1B;;AAEA,MAAIuB,aAAJ,EAAmB;AACjB,UAAMM,mBAAmB,GAAGC,IAAI,CAACC,SAAL,CAAe;AACzCC,MAAAA,KAAK,EAAE;AACLC,QAAAA,cAAc,EAAE;AACdD,UAAAA,KAAK,EAAEX,QADO;AAEda,UAAAA,YAAY,EAAE,EAFA;AAGdC,UAAAA,UAAU,EAAE;AAHE;AADX;AADkC,KAAf,CAA5B;AAUA,WAAO;AACLX,MAAAA,KAAK,EAAEE,UADF;AAELD,MAAAA,MAAM,EAAEG,WAFH;AAGLC,MAAAA;AAHK,KAAP;AAKD;;AAED,QAAMvB,IAAI,GAAGS,cAAc,CAACZ,SAAD,EAAYa,WAAZ,EAAyBZ,WAAzB,EAAsCkB,yBAAtC,CAA3B;AAEA;AACEE,IAAAA,KAAK,EAAEE,UADT;AAEED,IAAAA,MAAM,EAAEG;AAFV,KAGKtB,IAHL;AAIEuB,IAAAA,mBAAmB,EAAEC,IAAI,CAACC,SAAL,CAAe;AAClCC,MAAAA,KAAK,EAAEX;AAD2B,KAAf;AAJvB;AAQD,CAxCD;;AA0CA,eAAeD,yBAAf","sourcesContent":["import getSortbyFieldName from './get-sort-by-field-name';\nimport { DEFAULT_LIMIT, DEFAULT_OFFSET } from '../constants';\n\nconst buildSortValues = (sortFilters, relations, stringProps) => {\n if (!sortFilters || !sortFilters.length) return { sort: [] };\n\n const sortValues = sortFilters\n .map(({ sort, propsToDisplay }) => {\n if (!sort) return null;\n\n const sortFieldName = getSortbyFieldName(relations, propsToDisplay, stringProps);\n return sortFieldName ? `${sortFieldName}:${sort.toLowerCase()}` : null;\n })\n .filter(Boolean)\n .join(',');\n\n return { sort: sortValues };\n};\nconst getCorrectSort = (relations, filterProps, stringProps, isTextSearchApplied) => {\n if (isTextSearchApplied) {\n return {};\n }\n const { sort, sortby, sortProperties = [] } = filterProps;\n\n return buildSortValues(\n [{ sort, propsToDisplay: sortby }, ...sortProperties],\n relations,\n stringProps\n );\n};\n\nconst getGenericRenderVariables = (\n relations,\n filterProps = {},\n stringProps = [],\n rawQuery = {},\n isTextSearchFilterApplied = false,\n useRandomSort = false\n) => {\n const { limit = DEFAULT_LIMIT, offset } = filterProps;\n const limitToUse = Number(limit || DEFAULT_LIMIT);\n const offsetToUse = Number(offset || DEFAULT_OFFSET);\n\n if (useRandomSort) {\n const rawQueryStringified = JSON.stringify({\n query: {\n function_score: {\n query: rawQuery,\n random_score: {},\n boost_mode: 'replace'\n }\n }\n });\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n rawQueryStringified\n };\n }\n\n const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);\n\n return {\n limit: limitToUse,\n offset: offsetToUse,\n ...sort,\n rawQueryStringified: JSON.stringify({\n query: rawQuery\n })\n };\n};\n\nexport default getGenericRenderVariables;\n"],"file":"get-generic-render-variables.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.120.0-alpha.0",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"lib/*",
|
|
84
84
|
"lib-es/*"
|
|
85
85
|
],
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "6b9b463e7e962837dc30ebd6565a715aa3c5e8ab"
|
|
87
87
|
}
|
|
@@ -7,6 +7,7 @@ const BlazeLink = ({ children, className, name, href, as, shallow, scroll, gtmId
|
|
|
7
7
|
const { hasGTM } = useContext(MainContext);
|
|
8
8
|
const gtmProps = hasGTM && !!gtmId ? { gtmId } : {};
|
|
9
9
|
const linkExtraProps = buildLinkExtraProps({ className, name, as, ...gtmProps });
|
|
10
|
+
if (!href) return children;
|
|
10
11
|
|
|
11
12
|
return (
|
|
12
13
|
<Link href={href} shallow={shallow} scroll={scroll} onClick={onClick} {...linkExtraProps}>
|
|
@@ -93,11 +93,9 @@ const Card = ({
|
|
|
93
93
|
))}
|
|
94
94
|
{displayTitle && (
|
|
95
95
|
<h2 className={getModifiers('card__title', modifiers)}>
|
|
96
|
-
{url
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
</BlazeLink>
|
|
100
|
-
)}
|
|
96
|
+
<BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>
|
|
97
|
+
{headline}
|
|
98
|
+
</BlazeLink>
|
|
101
99
|
</h2>
|
|
102
100
|
)}
|
|
103
101
|
{!!propsToDisplay.length && (
|
|
@@ -109,7 +109,9 @@ CardContainer.propTypes = {
|
|
|
109
109
|
itemsPerRow: PropTypes.number,
|
|
110
110
|
enableCarousel: PropTypes.bool,
|
|
111
111
|
bannerModifier: PropTypes.string,
|
|
112
|
-
priorityLimit: PropTypes.number
|
|
112
|
+
priorityLimit: PropTypes.number,
|
|
113
|
+
enableAutoScroll: PropTypes.bool,
|
|
114
|
+
autoScrollTimer: PropTypes.number
|
|
113
115
|
};
|
|
114
116
|
|
|
115
117
|
CardContainer.defaultProps = {
|
|
@@ -127,7 +129,9 @@ CardContainer.defaultProps = {
|
|
|
127
129
|
itemsPerRow: 1,
|
|
128
130
|
enableCarousel: false,
|
|
129
131
|
bannerModifier: '',
|
|
130
|
-
priorityLimit: 0
|
|
132
|
+
priorityLimit: 0,
|
|
133
|
+
enableAutoScroll: false,
|
|
134
|
+
autoScrollTimer: 0
|
|
131
135
|
};
|
|
132
136
|
|
|
133
137
|
export default withTitle(CardContainer);
|
|
@@ -22,6 +22,7 @@ import { filtersSetup, filterQuerySetup, shouldSkipSingleQuery, shouldReturn } f
|
|
|
22
22
|
const CardContainer = dynamic(() => import('./CardContainer'));
|
|
23
23
|
|
|
24
24
|
const CardRender = ({ entity, entityFields, itemsToDisplay, children, ...otherProps }) => {
|
|
25
|
+
const { isPreview } = useContext(MainContext);
|
|
25
26
|
const {
|
|
26
27
|
parent: { itemId, itemEntity },
|
|
27
28
|
filterBy = [],
|
|
@@ -29,7 +30,8 @@ const CardRender = ({ entity, entityFields, itemsToDisplay, children, ...otherPr
|
|
|
29
30
|
sortby,
|
|
30
31
|
sort,
|
|
31
32
|
sortProperties = [],
|
|
32
|
-
operator: filterOperator = AND
|
|
33
|
+
operator: filterOperator = AND,
|
|
34
|
+
useRandomSort
|
|
33
35
|
} = otherProps;
|
|
34
36
|
|
|
35
37
|
const updatedSortProperties = [...sortProperties];
|
|
@@ -55,14 +57,15 @@ const CardRender = ({ entity, entityFields, itemsToDisplay, children, ...otherPr
|
|
|
55
57
|
entity
|
|
56
58
|
]);
|
|
57
59
|
|
|
58
|
-
const
|
|
59
|
-
const {
|
|
60
|
+
const schemas = Object.values(mainSchemas);
|
|
61
|
+
const currentSchema = schemas.find(({ identifier }) => identifier === itemEntityUpdated) || {};
|
|
62
|
+
const filterEntitySchema = schemas.find(({ id }) => entity === id) || {};
|
|
63
|
+
const { entityType, docType } = getEntityData(entity, filterEntitySchema);
|
|
64
|
+
|
|
60
65
|
const {
|
|
61
66
|
getAction,
|
|
62
67
|
queryProps,
|
|
63
68
|
inheritedFilters,
|
|
64
|
-
currentSchema,
|
|
65
|
-
filterEntitySchema,
|
|
66
69
|
entitySameAsCurrentItemEntity,
|
|
67
70
|
action,
|
|
68
71
|
filterEntityRelations
|
|
@@ -72,7 +75,8 @@ const CardRender = ({ entity, entityFields, itemsToDisplay, children, ...otherPr
|
|
|
72
75
|
filterBy,
|
|
73
76
|
filterByProperty,
|
|
74
77
|
entity,
|
|
75
|
-
|
|
78
|
+
currentSchema,
|
|
79
|
+
filterEntitySchema,
|
|
76
80
|
isPreview,
|
|
77
81
|
itemEntityUpdated
|
|
78
82
|
});
|
|
@@ -111,12 +115,15 @@ const CardRender = ({ entity, entityFields, itemsToDisplay, children, ...otherPr
|
|
|
111
115
|
filterOperator,
|
|
112
116
|
filterEntityRelations,
|
|
113
117
|
itemsToDisplay,
|
|
114
|
-
entitySameAsCurrentItemEntity
|
|
118
|
+
entitySameAsCurrentItemEntity,
|
|
119
|
+
useRandomSort
|
|
115
120
|
});
|
|
116
121
|
const { data, error: cardsError, loading: cardsLoading } = useQuery(action, {
|
|
117
122
|
variables,
|
|
123
|
+
fetchPolicy: useRandomSort ? 'cache-and-network' : 'cache-first',
|
|
118
124
|
skip: shouldReturn(!updatedFilterBy, _loading, _load, schemaLoading, _error, _err, schemaError)
|
|
119
125
|
});
|
|
126
|
+
|
|
120
127
|
const imageIds = itemsToDisplay.map(({ imageId }) => imageId).filter(Boolean);
|
|
121
128
|
const { data: imagesData, loading: imagesLoading } = useGetImages(imageIds, true);
|
|
122
129
|
const isLoading = shouldReturn(_loading, _load, schemaLoading, cardsLoading, imagesLoading);
|
|
@@ -126,11 +133,10 @@ const CardRender = ({ entity, entityFields, itemsToDisplay, children, ...otherPr
|
|
|
126
133
|
if (isLoading) return '';
|
|
127
134
|
if (hasError) return null;
|
|
128
135
|
if (cardsError) return cardsError.message;
|
|
129
|
-
|
|
130
136
|
let { results: cardData } = data[SEARCH_PUBLISHED_CONTENT];
|
|
131
137
|
if (!cardData || !cardData.length) return null;
|
|
132
138
|
cardData = entitySameAsCurrentItemEntity ? removeExtraItems(cardData, limit, itemId) : cardData;
|
|
133
|
-
const orderedData = sortResponseData(cardData, itemsToDisplay);
|
|
139
|
+
const orderedData = useRandomSort ? cardData : sortResponseData(cardData, itemsToDisplay);
|
|
134
140
|
const { regularChildren, gtmChildren } = splitChildren(children, cardData, entity, {
|
|
135
141
|
name: variableProps.name
|
|
136
142
|
});
|
|
@@ -11,7 +11,9 @@ const filterQuerySetup = ({
|
|
|
11
11
|
filterOperator,
|
|
12
12
|
filterEntityRelations,
|
|
13
13
|
itemsToDisplay,
|
|
14
|
-
entitySameAsCurrentItemEntity
|
|
14
|
+
entitySameAsCurrentItemEntity,
|
|
15
|
+
entitySchema,
|
|
16
|
+
useRandomSort
|
|
15
17
|
}) => {
|
|
16
18
|
const stringProps = getStringTypeProps(entity, filterEntityRelations, getEntitySchemas);
|
|
17
19
|
const filterValues =
|
|
@@ -27,7 +29,9 @@ const filterQuerySetup = ({
|
|
|
27
29
|
relations: filterEntityRelations,
|
|
28
30
|
stringProps,
|
|
29
31
|
itemsToDisplay,
|
|
30
|
-
addListFiltersToQuery: true
|
|
32
|
+
addListFiltersToQuery: true,
|
|
33
|
+
entity,
|
|
34
|
+
entitySchema
|
|
31
35
|
})
|
|
32
36
|
};
|
|
33
37
|
|
|
@@ -39,7 +43,9 @@ const filterQuerySetup = ({
|
|
|
39
43
|
filterEntityRelations,
|
|
40
44
|
{ ...variableProps, limit: requestLimit },
|
|
41
45
|
stringProps,
|
|
42
|
-
|
|
46
|
+
rawQuery,
|
|
47
|
+
false,
|
|
48
|
+
useRandomSort
|
|
43
49
|
);
|
|
44
50
|
|
|
45
51
|
return { variables, limit };
|
|
@@ -7,18 +7,15 @@ const filtersSetup = ({
|
|
|
7
7
|
filterBy,
|
|
8
8
|
filterByProperty,
|
|
9
9
|
entity,
|
|
10
|
-
|
|
10
|
+
currentSchema,
|
|
11
|
+
filterEntitySchema,
|
|
11
12
|
isPreview,
|
|
12
13
|
itemEntityUpdated
|
|
13
14
|
}) => {
|
|
14
15
|
const fields = buildQueryFields(entityFields, entityType);
|
|
15
16
|
const action = getSearchPublishedContent(fields);
|
|
16
17
|
const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);
|
|
17
|
-
|
|
18
18
|
const entitySameAsCurrentItemEntity = itemEntityUpdated === entity;
|
|
19
|
-
const currentSchema =
|
|
20
|
-
getEntitySchemas.find(({ identifier }) => identifier === itemEntityUpdated) || {};
|
|
21
|
-
const filterEntitySchema = getEntitySchemas.find(({ id }) => entity === id) || {};
|
|
22
19
|
const { relations: filterEntityRelations = [] } = filterEntitySchema;
|
|
23
20
|
const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);
|
|
24
21
|
const { actions = {} } = currentSchema || {};
|
|
@@ -62,7 +62,7 @@ const ListBuilder = props => {
|
|
|
62
62
|
const shouldApplyDefaultSort = !sortProperties || !sortProperties.length;
|
|
63
63
|
const itemsPerPageToUse = getItemsPerPageToUse(itemsPerPage, limitToUse);
|
|
64
64
|
const initialOffset = getCurrentOffset(offset, itemsPerPageToUse, paginationIndex, limitToUse);
|
|
65
|
-
const { entityType, docType } = getEntityData(entity);
|
|
65
|
+
const { entityType, docType } = getEntityData(entity, requiredSchema);
|
|
66
66
|
const fields = buildQueryFields(entityFields, entityType, !isCard);
|
|
67
67
|
const action = getSearchPublishedContent(fields);
|
|
68
68
|
const actionKey = SEARCH_PUBLISHED_CONTENT;
|
|
@@ -110,7 +110,7 @@ const ListBuilder = props => {
|
|
|
110
110
|
sortProperties
|
|
111
111
|
},
|
|
112
112
|
stringProps,
|
|
113
|
-
|
|
113
|
+
azRawQuery,
|
|
114
114
|
isTextSearchFilterApplied
|
|
115
115
|
);
|
|
116
116
|
|
|
@@ -153,7 +153,7 @@ const ListBuilder = props => {
|
|
|
153
153
|
sortProperties
|
|
154
154
|
},
|
|
155
155
|
stringProps,
|
|
156
|
-
|
|
156
|
+
rawQuery,
|
|
157
157
|
isTextSearchFilterApplied
|
|
158
158
|
);
|
|
159
159
|
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import upperFirst from 'lodash.upperfirst';
|
|
2
2
|
import camelcase from 'lodash.camelcase';
|
|
3
3
|
|
|
4
|
-
const getEntityData = entity => {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
4
|
+
const getEntityData = (entity, schema) => {
|
|
5
|
+
const publishedDocType = `published_${entity}`;
|
|
6
|
+
const publishedEntityType = `Published${upperFirst(camelcase(entity))}`;
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
if (schema) {
|
|
9
|
+
const { interfaces, [entity]: { interfaces: nestedInterfaces } = {} } = schema || {};
|
|
10
|
+
const interfacesToCheck = interfaces || nestedInterfaces;
|
|
11
|
+
if (interfacesToCheck && !interfacesToCheck.includes('publish/publishable')) {
|
|
12
|
+
return { docType: entity, entityType: upperFirst(camelcase(entity)) };
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return { docType: publishedDocType, entityType: publishedEntityType };
|
|
9
17
|
};
|
|
10
18
|
|
|
11
19
|
export default getEntityData;
|
|
@@ -3,6 +3,7 @@ import { DEFAULT_LIMIT, DEFAULT_OFFSET } from '../constants';
|
|
|
3
3
|
|
|
4
4
|
const buildSortValues = (sortFilters, relations, stringProps) => {
|
|
5
5
|
if (!sortFilters || !sortFilters.length) return { sort: [] };
|
|
6
|
+
|
|
6
7
|
const sortValues = sortFilters
|
|
7
8
|
.map(({ sort, propsToDisplay }) => {
|
|
8
9
|
if (!sort) return null;
|
|
@@ -32,18 +33,41 @@ const getGenericRenderVariables = (
|
|
|
32
33
|
relations,
|
|
33
34
|
filterProps = {},
|
|
34
35
|
stringProps = [],
|
|
35
|
-
|
|
36
|
-
isTextSearchFilterApplied = false
|
|
36
|
+
rawQuery = {},
|
|
37
|
+
isTextSearchFilterApplied = false,
|
|
38
|
+
useRandomSort = false
|
|
37
39
|
) => {
|
|
38
40
|
const { limit = DEFAULT_LIMIT, offset } = filterProps;
|
|
41
|
+
const limitToUse = Number(limit || DEFAULT_LIMIT);
|
|
42
|
+
const offsetToUse = Number(offset || DEFAULT_OFFSET);
|
|
43
|
+
|
|
44
|
+
if (useRandomSort) {
|
|
45
|
+
const rawQueryStringified = JSON.stringify({
|
|
46
|
+
query: {
|
|
47
|
+
function_score: {
|
|
48
|
+
query: rawQuery,
|
|
49
|
+
random_score: {},
|
|
50
|
+
boost_mode: 'replace'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
limit: limitToUse,
|
|
57
|
+
offset: offsetToUse,
|
|
58
|
+
rawQueryStringified
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
39
62
|
const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);
|
|
40
|
-
const raw = rawQueryStringified ? { rawQueryStringified } : {};
|
|
41
63
|
|
|
42
64
|
return {
|
|
43
|
-
limit:
|
|
44
|
-
offset:
|
|
65
|
+
limit: limitToUse,
|
|
66
|
+
offset: offsetToUse,
|
|
45
67
|
...sort,
|
|
46
|
-
|
|
68
|
+
rawQueryStringified: JSON.stringify({
|
|
69
|
+
query: rawQuery
|
|
70
|
+
})
|
|
47
71
|
};
|
|
48
72
|
};
|
|
49
73
|
|
package/tests/unit/src/components/List/components/Cards/__snapshots__/CardsRender.test.js.snap
CHANGED
|
@@ -27,7 +27,9 @@ exports[`CardsRender component should render based on listData received 1`] = `
|
|
|
27
27
|
>
|
|
28
28
|
<h2
|
|
29
29
|
class="card__title card__title--portrait"
|
|
30
|
-
|
|
30
|
+
>
|
|
31
|
+
item 1
|
|
32
|
+
</h2>
|
|
31
33
|
</div>
|
|
32
34
|
</div>
|
|
33
35
|
</div>
|
|
@@ -46,7 +48,9 @@ exports[`CardsRender component should render based on listData received 1`] = `
|
|
|
46
48
|
>
|
|
47
49
|
<h2
|
|
48
50
|
class="card__title card__title--portrait"
|
|
49
|
-
|
|
51
|
+
>
|
|
52
|
+
item 1
|
|
53
|
+
</h2>
|
|
50
54
|
</div>
|
|
51
55
|
</div>
|
|
52
56
|
</div>
|
|
@@ -65,7 +69,9 @@ exports[`CardsRender component should render based on listData received 1`] = `
|
|
|
65
69
|
>
|
|
66
70
|
<h2
|
|
67
71
|
class="card__title card__title--portrait"
|
|
68
|
-
|
|
72
|
+
>
|
|
73
|
+
item 1
|
|
74
|
+
</h2>
|
|
69
75
|
</div>
|
|
70
76
|
</div>
|
|
71
77
|
</div>
|
|
@@ -96,7 +102,9 @@ exports[`CardsRender component should render without wrapper, when requested 1`]
|
|
|
96
102
|
>
|
|
97
103
|
<h2
|
|
98
104
|
class="card__title card__title--portrait"
|
|
99
|
-
|
|
105
|
+
>
|
|
106
|
+
item 1
|
|
107
|
+
</h2>
|
|
100
108
|
</div>
|
|
101
109
|
</div>
|
|
102
110
|
</div>
|
|
@@ -115,7 +123,9 @@ exports[`CardsRender component should render without wrapper, when requested 1`]
|
|
|
115
123
|
>
|
|
116
124
|
<h2
|
|
117
125
|
class="card__title card__title--portrait"
|
|
118
|
-
|
|
126
|
+
>
|
|
127
|
+
item 1
|
|
128
|
+
</h2>
|
|
119
129
|
</div>
|
|
120
130
|
</div>
|
|
121
131
|
</div>
|
|
@@ -134,7 +144,9 @@ exports[`CardsRender component should render without wrapper, when requested 1`]
|
|
|
134
144
|
>
|
|
135
145
|
<h2
|
|
136
146
|
class="card__title card__title--portrait"
|
|
137
|
-
|
|
147
|
+
>
|
|
148
|
+
item 1
|
|
149
|
+
</h2>
|
|
138
150
|
</div>
|
|
139
151
|
</div>
|
|
140
152
|
</div>
|