@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.
Files changed (48) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/components/BlazeLink.js +1 -0
  3. package/lib/components/BlazeLink.js.map +1 -1
  4. package/lib/components/Card/Card.js +1 -1
  5. package/lib/components/Card/Card.js.map +1 -1
  6. package/lib/components/Card/CardContainer.js +6 -2
  7. package/lib/components/Card/CardContainer.js.map +1 -1
  8. package/lib/components/Card/CardRender.js +27 -12
  9. package/lib/components/Card/CardRender.js.map +1 -1
  10. package/lib/components/Card/helpers/filter-query-setup.js +7 -3
  11. package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
  12. package/lib/components/Card/helpers/filters-setup.js +5 -16
  13. package/lib/components/Card/helpers/filters-setup.js.map +1 -1
  14. package/lib/components/List/ListBuilder.js +3 -3
  15. package/lib/components/List/ListBuilder.js.map +1 -1
  16. package/lib/helpers/get-entity-data.js +27 -5
  17. package/lib/helpers/get-entity-data.js.map +1 -1
  18. package/lib/helpers/get-generic-render-variables.js +29 -7
  19. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  20. package/lib-es/components/BlazeLink.js +1 -0
  21. package/lib-es/components/BlazeLink.js.map +1 -1
  22. package/lib-es/components/Card/Card.js +1 -1
  23. package/lib-es/components/Card/Card.js.map +1 -1
  24. package/lib-es/components/Card/CardContainer.js +6 -2
  25. package/lib-es/components/Card/CardContainer.js.map +1 -1
  26. package/lib-es/components/Card/CardRender.js +19 -10
  27. package/lib-es/components/Card/CardRender.js.map +1 -1
  28. package/lib-es/components/Card/helpers/filter-query-setup.js +7 -3
  29. package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
  30. package/lib-es/components/Card/helpers/filters-setup.js +2 -7
  31. package/lib-es/components/Card/helpers/filters-setup.js.map +1 -1
  32. package/lib-es/components/List/ListBuilder.js +3 -3
  33. package/lib-es/components/List/ListBuilder.js.map +1 -1
  34. package/lib-es/helpers/get-entity-data.js +23 -5
  35. package/lib-es/helpers/get-entity-data.js.map +1 -1
  36. package/lib-es/helpers/get-generic-render-variables.js +28 -7
  37. package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/components/BlazeLink.js +1 -0
  40. package/src/components/Card/Card.js +3 -5
  41. package/src/components/Card/CardContainer.js +6 -2
  42. package/src/components/Card/CardRender.js +15 -9
  43. package/src/components/Card/helpers/filter-query-setup.js +9 -3
  44. package/src/components/Card/helpers/filters-setup.js +2 -5
  45. package/src/components/List/ListBuilder.js +3 -3
  46. package/src/helpers/get-entity-data.js +12 -4
  47. package/src/helpers/get-generic-render-variables.js +30 -6
  48. 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 docType = `published_${entity}`;
6
- const entityType = `Published${upperFirst(camelcase(entity))}`;
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,GAAGC,MAAM,IAAI;AAC9B,QAAMC,OAAO,GAAI,aAAYD,MAAO,EAApC;AACA,QAAME,UAAU,GAAI,YAAWL,UAAU,CAACC,SAAS,CAACE,MAAD,CAAV,CAAoB,EAA7D;AAEA,SAAO;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAP;AACD,CALD;;AAOA,eAAeH,aAAf","sourcesContent":["import upperFirst from 'lodash.upperfirst';\nimport camelcase from 'lodash.camelcase';\n\nconst getEntityData = entity => {\n const docType = `published_${entity}`;\n const entityType = `Published${upperFirst(camelcase(entity))}`;\n\n return { docType, entityType };\n};\n\nexport default getEntityData;\n"],"file":"get-entity-data.js"}
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 = [], rawQueryStringified = '', isTextSearchFilterApplied = false) => {
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: Number(limit || DEFAULT_LIMIT),
54
- offset: Number(offset || DEFAULT_OFFSET)
55
- }, sort), raw);
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","rawQueryStringified","isTextSearchFilterApplied","limit","offset","raw","Number"],"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;AACzC,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,CAbD;;AAcA,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,mBAAmB,GAAG,EAJU,EAKhCC,yBAAyB,GAAG,KALI,KAM7B;AACH,QAAM;AAAEC,IAAAA,KAAK,GAAGxB,aAAV;AAAyByB,IAAAA;AAAzB,MAAoCR,WAA1C;AACA,QAAMV,IAAI,GAAGS,cAAc,CAACZ,SAAD,EAAYa,WAAZ,EAAyBZ,WAAzB,EAAsCkB,yBAAtC,CAA3B;AACA,QAAMG,GAAG,GAAGJ,mBAAmB,GAAG;AAAEA,IAAAA;AAAF,GAAH,GAA6B,EAA5D;AAEA;AACEE,IAAAA,KAAK,EAAEG,MAAM,CAACH,KAAK,IAAIxB,aAAV,CADf;AAEEyB,IAAAA,MAAM,EAAEE,MAAM,CAACF,MAAM,IAAIxB,cAAX;AAFhB,KAGKM,IAHL,GAIKmB,GAJL;AAMD,CAjBD;;AAmBA,eAAeL,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 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 rawQueryStringified = '',\n isTextSearchFilterApplied = false\n) => {\n const { limit = DEFAULT_LIMIT, offset } = filterProps;\n const sort = getCorrectSort(relations, filterProps, stringProps, isTextSearchFilterApplied);\n const raw = rawQueryStringified ? { rawQueryStringified } : {};\n\n return {\n limit: Number(limit || DEFAULT_LIMIT),\n offset: Number(offset || DEFAULT_OFFSET),\n ...sort,\n ...raw\n };\n};\n\nexport default getGenericRenderVariables;\n"],"file":"get-generic-render-variables.js"}
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.119.1",
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": "304de40876cd01eac0bdfeca3d020a1004b1a8fd"
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
- <BlazeLink title={linkTitle} gtmId={gtmId} href={url} scroll>
98
- {headline}
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 { isPreview } = useContext(MainContext);
59
- const { entityType, docType } = getEntityData(entity);
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
- getEntitySchemas: Object.values(mainSchemas),
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
- JSON.stringify(rawQuery)
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
- getEntitySchemas,
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
- JSON.stringify(azRawQuery),
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
- JSON.stringify(rawQuery),
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 docType = `published_${entity}`;
6
- const entityType = `Published${upperFirst(camelcase(entity))}`;
4
+ const getEntityData = (entity, schema) => {
5
+ const publishedDocType = `published_${entity}`;
6
+ const publishedEntityType = `Published${upperFirst(camelcase(entity))}`;
7
7
 
8
- return { docType, entityType };
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
- rawQueryStringified = '',
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: Number(limit || DEFAULT_LIMIT),
44
- offset: Number(offset || DEFAULT_OFFSET),
65
+ limit: limitToUse,
66
+ offset: offsetToUse,
45
67
  ...sort,
46
- ...raw
68
+ rawQueryStringified: JSON.stringify({
69
+ query: rawQuery
70
+ })
47
71
  };
48
72
  };
49
73
 
@@ -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>