@blaze-cms/react-page-builder 0.124.0-alpha.33 → 0.124.0-alpha.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/components/ItemList/ItemListNew/ItemListNew.js +14 -2
  3. package/lib/components/ItemList/ItemListNew/ItemListNew.js.map +1 -1
  4. package/lib/components/List/ListFactory.js +6 -4
  5. package/lib/components/List/ListFactory.js.map +1 -1
  6. package/lib/components/List/helpers/has-required-item-list-details.js +29 -0
  7. package/lib/components/List/helpers/has-required-item-list-details.js.map +1 -0
  8. package/lib/components/List/helpers/index.js +8 -0
  9. package/lib/components/List/helpers/index.js.map +1 -1
  10. package/lib-es/components/ItemList/ItemListNew/ItemListNew.js +10 -2
  11. package/lib-es/components/ItemList/ItemListNew/ItemListNew.js.map +1 -1
  12. package/lib-es/components/List/ListFactory.js +8 -7
  13. package/lib-es/components/List/ListFactory.js.map +1 -1
  14. package/lib-es/components/List/helpers/has-required-item-list-details.js +20 -0
  15. package/lib-es/components/List/helpers/has-required-item-list-details.js.map +1 -0
  16. package/lib-es/components/List/helpers/index.js +1 -0
  17. package/lib-es/components/List/helpers/index.js.map +1 -1
  18. package/package.json +2 -2
  19. package/src/components/ItemList/ItemListNew/ItemListNew.js +7 -3
  20. package/src/components/List/ListFactory.js +4 -5
  21. package/src/components/List/helpers/has-required-item-list-details.js +14 -0
  22. package/src/components/List/helpers/index.js +1 -0
  23. package/tests/unit/src/components/ItemList/ItemListNew.test.js +37 -1
  24. package/tests/unit/src/components/ItemList/__snapshots__/ItemListNew.test.js.snap +11 -0
  25. package/tests/unit/src/components/List/helpers/has-required-item-list-details.test.js +30 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.124.0-alpha.34](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.33...v0.124.0-alpha.34) (2022-06-24)
7
+
8
+
9
+ ### Features
10
+
11
+ * show clear list button when list in query string ([#3518](https://github.com/thebyte9/blaze/issues/3518)) ([0066907](https://github.com/thebyte9/blaze/commit/00669078ef9177300fcf388f9a01bfd874d20eca))
12
+
13
+
14
+
15
+
16
+
6
17
  # [0.124.0-alpha.33](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.32...v0.124.0-alpha.33) (2022-06-21)
7
18
 
8
19
 
@@ -19,28 +19,40 @@ var _client = require("@apollo/client");
19
19
 
20
20
  var _button = _interopRequireDefault(require("@blaze-react/button"));
21
21
 
22
+ var _queryString = require("query-string");
23
+
22
24
  var _query = require("../../../application/query");
23
25
 
24
26
  var _hooks = require("../hooks");
25
27
 
26
28
  var _helpers = require("../helpers");
27
29
 
30
+ var _constants = require("../constants");
31
+
28
32
  var ItemListNew = function ItemListNew(_ref) {
29
33
  var listName = _ref.listName,
30
34
  modifier = _ref.modifier,
31
35
  text = _ref.text;
32
36
  var router = (0, _router.useRouter)();
33
37
 
38
+ var _parseUrl = (0, _queryString.parseUrl)(router.asPath),
39
+ _parseUrl$query = _parseUrl.query;
40
+
41
+ _parseUrl$query = _parseUrl$query === void 0 ? {} : _parseUrl$query;
42
+ var listItemId = _parseUrl$query[_constants.LIST_ITEM_QUERY_PARAM];
43
+
34
44
  var _useItemListId = (0, _hooks.useItemListId)({
35
45
  listName: listName
36
46
  }),
37
47
  listId = _useItemListId.listId;
38
48
 
49
+ var listIdToUse = listItemId || listId;
50
+
39
51
  var _useQuery = (0, _client.useQuery)(_query.getItemList, {
40
52
  variables: {
41
- id: listId
53
+ id: listIdToUse
42
54
  },
43
- skip: !listId
55
+ skip: !listIdToUse
44
56
  }),
45
57
  data = _useQuery.data,
46
58
  error = _useQuery.error,
@@ -1 +1 @@
1
- {"version":3,"file":"ItemListNew.js","names":["ItemListNew","listName","modifier","text","router","useRouter","useItemListId","listId","useQuery","getItemList","variables","id","skip","data","error","loading","message","listItems","getItemListData","length","handleClick","setItemListId","setParamAndRedirect","propTypes","PropTypes","string","isRequired","defaultProps"],"sources":["../../../../src/components/ItemList/ItemListNew/ItemListNew.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport BlazeButton from '@blaze-react/button';\nimport { getItemList } from '../../../application/query';\nimport { useItemListId } from '../hooks';\nimport { getItemListData, setItemListId, setParamAndRedirect } from '../helpers';\n\nconst ItemListNew = ({ listName, modifier, text }) => {\n const router = useRouter();\n const { listId } = useItemListId({ listName });\n\n const { data, error, loading } = useQuery(getItemList, {\n variables: { id: listId },\n skip: !listId\n });\n\n if (loading) return '';\n if (error) return error.message;\n\n const listItems = getItemListData(data);\n if (!listItems.length) return '';\n\n const handleClick = () => {\n setItemListId(listName, '');\n setParamAndRedirect(router);\n };\n\n return (\n <BlazeButton className={`item-list-new ${modifier}`} onClick={handleClick}>\n {text}\n </BlazeButton>\n );\n};\n\nItemListNew.propTypes = {\n listName: PropTypes.string.isRequired,\n modifier: PropTypes.string,\n text: PropTypes.string.isRequired\n};\n\nItemListNew.defaultProps = {\n modifier: ''\n};\n\nexport default ItemListNew;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAAkC;EAAA,IAA/BC,QAA+B,QAA/BA,QAA+B;EAAA,IAArBC,QAAqB,QAArBA,QAAqB;EAAA,IAAXC,IAAW,QAAXA,IAAW;EACpD,IAAMC,MAAM,GAAG,IAAAC,iBAAA,GAAf;;EACA,qBAAmB,IAAAC,oBAAA,EAAc;IAAEL,QAAQ,EAARA;EAAF,CAAd,CAAnB;EAAA,IAAQM,MAAR,kBAAQA,MAAR;;EAEA,gBAAiC,IAAAC,gBAAA,EAASC,kBAAT,EAAsB;IACrDC,SAAS,EAAE;MAAEC,EAAE,EAAEJ;IAAN,CAD0C;IAErDK,IAAI,EAAE,CAACL;EAF8C,CAAtB,CAAjC;EAAA,IAAQM,IAAR,aAAQA,IAAR;EAAA,IAAcC,KAAd,aAAcA,KAAd;EAAA,IAAqBC,OAArB,aAAqBA,OAArB;;EAKA,IAAIA,OAAJ,EAAa,OAAO,EAAP;EACb,IAAID,KAAJ,EAAW,OAAOA,KAAK,CAACE,OAAb;EAEX,IAAMC,SAAS,GAAG,IAAAC,wBAAA,EAAgBL,IAAhB,CAAlB;EACA,IAAI,CAACI,SAAS,CAACE,MAAf,EAAuB,OAAO,EAAP;;EAEvB,IAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;IACxB,IAAAC,sBAAA,EAAcpB,QAAd,EAAwB,EAAxB;IACA,IAAAqB,4BAAA,EAAoBlB,MAApB;EACD,CAHD;;EAKA,oBACE,gCAAC,kBAAD;IAAa,SAAS,0BAAmBF,QAAnB,CAAtB;IAAqD,OAAO,EAAEkB;EAA9D,GACGjB,IADH,CADF;AAKD,CAzBD;;AA2BAH,WAAW,CAACuB,SAAZ,GAAwB;EACtBtB,QAAQ,EAAEuB,qBAAA,CAAUC,MAAV,CAAiBC,UADL;EAEtBxB,QAAQ,EAAEsB,qBAAA,CAAUC,MAFE;EAGtBtB,IAAI,EAAEqB,qBAAA,CAAUC,MAAV,CAAiBC;AAHD,CAAxB;AAMA1B,WAAW,CAAC2B,YAAZ,GAA2B;EACzBzB,QAAQ,EAAE;AADe,CAA3B;eAIeF,W"}
1
+ {"version":3,"file":"ItemListNew.js","names":["ItemListNew","listName","modifier","text","router","useRouter","parseUrl","asPath","query","listItemId","LIST_ITEM_QUERY_PARAM","useItemListId","listId","listIdToUse","useQuery","getItemList","variables","id","skip","data","error","loading","message","listItems","getItemListData","length","handleClick","setItemListId","setParamAndRedirect","propTypes","PropTypes","string","isRequired","defaultProps"],"sources":["../../../../src/components/ItemList/ItemListNew/ItemListNew.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport BlazeButton from '@blaze-react/button';\nimport { parseUrl } from 'query-string';\nimport { getItemList } from '../../../application/query';\nimport { useItemListId } from '../hooks';\nimport { getItemListData, setItemListId, setParamAndRedirect } from '../helpers';\nimport { LIST_ITEM_QUERY_PARAM } from '../constants';\n\nconst ItemListNew = ({ listName, modifier, text }) => {\n const router = useRouter();\n const { query: { [LIST_ITEM_QUERY_PARAM]: listItemId } = {} } = parseUrl(router.asPath);\n\n const { listId } = useItemListId({ listName });\n const listIdToUse = listItemId || listId;\n const { data, error, loading } = useQuery(getItemList, {\n variables: { id: listIdToUse },\n skip: !listIdToUse\n });\n\n if (loading) return '';\n if (error) return error.message;\n\n const listItems = getItemListData(data);\n if (!listItems.length) return '';\n\n const handleClick = () => {\n setItemListId(listName, '');\n setParamAndRedirect(router);\n };\n\n return (\n <BlazeButton className={`item-list-new ${modifier}`} onClick={handleClick}>\n {text}\n </BlazeButton>\n );\n};\n\nItemListNew.propTypes = {\n listName: PropTypes.string.isRequired,\n modifier: PropTypes.string,\n text: PropTypes.string.isRequired\n};\n\nItemListNew.defaultProps = {\n modifier: ''\n};\n\nexport default ItemListNew;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAAkC;EAAA,IAA/BC,QAA+B,QAA/BA,QAA+B;EAAA,IAArBC,QAAqB,QAArBA,QAAqB;EAAA,IAAXC,IAAW,QAAXA,IAAW;EACpD,IAAMC,MAAM,GAAG,IAAAC,iBAAA,GAAf;;EACA,gBAAgE,IAAAC,qBAAA,EAASF,MAAM,CAACG,MAAhB,CAAhE;EAAA,gCAAQC,KAAR;;EAAA,+CAAyD,EAAzD;EAAA,IAA0CC,UAA1C,mBAAkBC,gCAAlB;;EAEA,qBAAmB,IAAAC,oBAAA,EAAc;IAAEV,QAAQ,EAARA;EAAF,CAAd,CAAnB;EAAA,IAAQW,MAAR,kBAAQA,MAAR;;EACA,IAAMC,WAAW,GAAGJ,UAAU,IAAIG,MAAlC;;EACA,gBAAiC,IAAAE,gBAAA,EAASC,kBAAT,EAAsB;IACrDC,SAAS,EAAE;MAAEC,EAAE,EAAEJ;IAAN,CAD0C;IAErDK,IAAI,EAAE,CAACL;EAF8C,CAAtB,CAAjC;EAAA,IAAQM,IAAR,aAAQA,IAAR;EAAA,IAAcC,KAAd,aAAcA,KAAd;EAAA,IAAqBC,OAArB,aAAqBA,OAArB;;EAKA,IAAIA,OAAJ,EAAa,OAAO,EAAP;EACb,IAAID,KAAJ,EAAW,OAAOA,KAAK,CAACE,OAAb;EAEX,IAAMC,SAAS,GAAG,IAAAC,wBAAA,EAAgBL,IAAhB,CAAlB;EACA,IAAI,CAACI,SAAS,CAACE,MAAf,EAAuB,OAAO,EAAP;;EAEvB,IAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;IACxB,IAAAC,sBAAA,EAAc1B,QAAd,EAAwB,EAAxB;IACA,IAAA2B,4BAAA,EAAoBxB,MAApB;EACD,CAHD;;EAKA,oBACE,gCAAC,kBAAD;IAAa,SAAS,0BAAmBF,QAAnB,CAAtB;IAAqD,OAAO,EAAEwB;EAA9D,GACGvB,IADH,CADF;AAKD,CA3BD;;AA6BAH,WAAW,CAAC6B,SAAZ,GAAwB;EACtB5B,QAAQ,EAAE6B,qBAAA,CAAUC,MAAV,CAAiBC,UADL;EAEtB9B,QAAQ,EAAE4B,qBAAA,CAAUC,MAFE;EAGtB5B,IAAI,EAAE2B,qBAAA,CAAUC,MAAV,CAAiBC;AAHD,CAAxB;AAMAhC,WAAW,CAACiC,YAAZ,GAA2B;EACzB/B,QAAQ,EAAE;AADe,CAA3B;eAIeF,W"}
@@ -198,10 +198,12 @@ var ListFactory = function ListFactory(props) {
198
198
  itemListError = _useQuery3.error,
199
199
  itemListLoading = _useQuery3.loading;
200
200
 
201
- if (!queryItemListId && itemListId) {
202
- (0, _helpers3.setParamAndRedirect)(router, itemListId);
203
- }
204
-
201
+ if (!(0, _helpers.hasRequiredItemListDetails)({
202
+ itemListName: itemListName,
203
+ router: router,
204
+ itemListId: itemListId,
205
+ queryItemListId: queryItemListId
206
+ })) return '';
205
207
  var errorsToCheck = [schemaError, schemasError, requiredSchemaError, itemQueryError, itemListError];
206
208
 
207
209
  var _checkForError = (0, _helpers2.checkForError)(errorsToCheck),
@@ -1 +1 @@
1
- {"version":3,"file":"ListFactory.js","names":["ListFactory","props","entity","parent","name","filterByProperty","filterBy","omitWrappers","type","defaultSortBy","sortby","defaultSort","sort","searchFilter","filterOperator","operator","sortProperties","itemListName","useContext","MainContext","isPreview","router","useRouter","asPath","parsedQuery","replace","parseUrl","query","url","querySort","querySortBy","queryItemListId","itemListId","getSortProps","sortbyFilters","updatedSortProperties","getItemListId","itemEntity","itemId","itemEntityUpdated","getUnpublishedEntityName","paginationIndex","getPaginationIndex","azFilter","getAzQueryFilter","useQuery","getSingleEntitySchema","variables","id","entitySchema","data","schemaError","error","schemaLoading","loading","useGetEntitySchemasAsObj","mainSchemas","schemasLoading","schemasError","currentSchema","filterEntitySchema","getRequiredSchemas","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","getInheritedFilters","queryProps","getQueryProps","actions","getAction","get","getPublished","generateSingleItemQuery","skip","length","ID","entityData","itemQueryError","itemQueryLoading","getItemList","itemListData","itemListError","itemListLoading","setParamAndRedirect","errorsToCheck","checkForError","hasErr","errMsg","itemListIds","getItemListIds","isCard","FULL","isAZ","AZ_LIST_TYPE","genericProps","getGenericProps","getSearchFilterType","TEXT_SEARCH","textFilter","shouldApplyTextFilter","propsToDisplay","getElasticsearchOperator","AND_OPERATOR","valuesText","buildSearchValuesText","getQueryFilters","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","PropTypes","object","isRequired","string","array","bool","defaultProps","AND"],"sources":["../../../src/components/List/ListFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport {\n getSingleEntitySchema,\n generateSingleItemQuery,\n getItemList\n} 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 { getItemListId, getItemListIds, setParamAndRedirect } from '../ItemList/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 itemListName\n } = props;\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 {\n query,\n url,\n query: { sort: querySort, sortby: querySortBy, itemListId: queryItemListId } = {}\n } = parseUrl(parsedQuery);\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy\n });\n\n const itemListId = getItemListId(itemListName, queryItemListId);\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\n const { data: itemListData = {}, error: itemListError, loading: itemListLoading } = useQuery(\n getItemList,\n {\n variables: { id: itemListId },\n skip: !itemListId\n }\n );\n if (!queryItemListId && itemListId) {\n setParamAndRedirect(router, itemListId);\n }\n\n const errorsToCheck = [\n schemaError,\n schemasError,\n requiredSchemaError,\n itemQueryError,\n itemListError\n ];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (\n requiredSchemaLoading ||\n schemasLoading ||\n schemaLoading ||\n itemQueryLoading ||\n itemListLoading\n )\n return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const itemListIds = getItemListIds(itemListData);\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 itemListIds\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 itemListName: PropTypes.string\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 itemListName: ''\n};\n\nexport default ListFactory;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ListFactory.js","names":["ListFactory","props","entity","parent","name","filterByProperty","filterBy","omitWrappers","type","defaultSortBy","sortby","defaultSort","sort","searchFilter","filterOperator","operator","sortProperties","itemListName","useContext","MainContext","isPreview","router","useRouter","asPath","parsedQuery","replace","parseUrl","query","url","querySort","querySortBy","queryItemListId","itemListId","getSortProps","sortbyFilters","updatedSortProperties","getItemListId","itemEntity","itemId","itemEntityUpdated","getUnpublishedEntityName","paginationIndex","getPaginationIndex","azFilter","getAzQueryFilter","useQuery","getSingleEntitySchema","variables","id","entitySchema","data","schemaError","error","schemaLoading","loading","useGetEntitySchemasAsObj","mainSchemas","schemasLoading","schemasError","currentSchema","filterEntitySchema","getRequiredSchemas","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","getInheritedFilters","queryProps","getQueryProps","actions","getAction","get","getPublished","generateSingleItemQuery","skip","length","ID","entityData","itemQueryError","itemQueryLoading","getItemList","itemListData","itemListError","itemListLoading","hasRequiredItemListDetails","errorsToCheck","checkForError","hasErr","errMsg","itemListIds","getItemListIds","isCard","FULL","isAZ","AZ_LIST_TYPE","genericProps","getGenericProps","getSearchFilterType","TEXT_SEARCH","textFilter","shouldApplyTextFilter","propsToDisplay","getElasticsearchOperator","AND_OPERATOR","valuesText","buildSearchValuesText","getQueryFilters","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","PropTypes","object","isRequired","string","array","bool","defaultProps","AND"],"sources":["../../../src/components/List/ListFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport {\n getSingleEntitySchema,\n generateSingleItemQuery,\n getItemList\n} from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport { getAzQueryFilter, getSortProps, hasRequiredItemListDetails } 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 { getItemListId, getItemListIds } from '../ItemList/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 itemListName\n } = props;\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 {\n query,\n url,\n query: { sort: querySort, sortby: querySortBy, itemListId: queryItemListId } = {}\n } = parseUrl(parsedQuery);\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy\n });\n\n const itemListId = getItemListId(itemListName, queryItemListId);\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\n const { data: itemListData = {}, error: itemListError, loading: itemListLoading } = useQuery(\n getItemList,\n {\n variables: { id: itemListId },\n skip: !itemListId\n }\n );\n\n if (!hasRequiredItemListDetails({ itemListName, router, itemListId, queryItemListId })) return '';\n\n const errorsToCheck = [\n schemaError,\n schemasError,\n requiredSchemaError,\n itemQueryError,\n itemListError\n ];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (\n requiredSchemaLoading ||\n schemasLoading ||\n schemaLoading ||\n itemQueryLoading ||\n itemListLoading\n )\n return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const itemListIds = getItemListIds(itemListData);\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 itemListIds\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 itemListName: PropTypes.string\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 itemListName: ''\n};\n\nexport default ListFactory;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAaA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAAAC,KAAK,EAAI;EAC3B,IACEC,MADF,GAcID,KAdJ,CACEC,MADF;EAAA,IAEEC,MAFF,GAcIF,KAdJ,CAEEE,MAFF;EAAA,IAGEC,IAHF,GAcIH,KAdJ,CAGEG,IAHF;EAAA,IAIEC,gBAJF,GAcIJ,KAdJ,CAIEI,gBAJF;EAAA,IAKEC,QALF,GAcIL,KAdJ,CAKEK,QALF;EAAA,IAMEC,YANF,GAcIN,KAdJ,CAMEM,YANF;EAAA,IAOEC,IAPF,GAcIP,KAdJ,CAOEO,IAPF;EAAA,IAQUC,aARV,GAcIR,KAdJ,CAQES,MARF;EAAA,IASQC,WATR,GAcIV,KAdJ,CASEW,IATF;EAAA,IAUEC,YAVF,GAcIZ,KAdJ,CAUEY,YAVF;EAAA,IAWYC,cAXZ,GAcIb,KAdJ,CAWEc,QAXF;EAAA,IAYEC,cAZF,GAcIf,KAdJ,CAYEe,cAZF;EAAA,IAaEC,YAbF,GAcIhB,KAdJ,CAaEgB,YAbF;;EAeA,kBAAsB,IAAAC,iBAAA,EAAWC,6BAAX,CAAtB;EAAA,IAAQC,SAAR,eAAQA,SAAR;;EACA,IAAMC,MAAM,GAAG,IAAAC,iBAAA,GAAf;EACA,IAAQC,MAAR,GAAmBF,MAAnB,CAAQE,MAAR;EACA,IAAMC,WAAW,GAAGD,MAAM,CAACE,OAAP,CAAe,MAAf,EAAuB,GAAvB,EAA4BA,OAA5B,CAAoC,MAApC,EAA4C,GAA5C,CAApB;;EACA,gBAII,IAAAC,qBAAA,EAASF,WAAT,CAJJ;EAAA,IACEG,KADF,aACEA,KADF;EAAA,IAEEC,GAFF,aAEEA,GAFF;EAAA,gCAGED,KAHF;;EAAA,+CAGiF,EAHjF;EAAA,IAGiBE,SAHjB,mBAGWjB,IAHX;EAAA,IAGoCkB,WAHpC,mBAG4BpB,MAH5B;EAAA,IAG6DqB,eAH7D,mBAGiDC,UAHjD;;EAKA,oBAAiD,IAAAC,qBAAA,EAAa;IAC5DJ,SAAS,EAATA,SAD4D;IAE5Db,cAAc,EAAdA,cAF4D;IAG5DL,WAAW,EAAXA,WAH4D;IAI5DmB,WAAW,EAAXA,WAJ4D;IAK5DrB,aAAa,EAAbA;EAL4D,CAAb,CAAjD;EAAA,IAAQyB,aAAR,iBAAQA,aAAR;EAAA,IAAuBC,qBAAvB,iBAAuBA,qBAAvB;;EAQA,IAAMH,UAAU,GAAG,IAAAI,uBAAA,EAAcnB,YAAd,EAA4Bc,eAA5B,CAAnB;EACA,IAAQM,UAAR,GAA+BlC,MAA/B,CAAQkC,UAAR;EAAA,IAAoBC,MAApB,GAA+BnC,MAA/B,CAAoBmC,MAApB;EACA,IAAMC,iBAAiB,GAAG,IAAAC,kCAAA,EAAyBH,UAAzB,CAA1B;EACA,IAAMI,eAAe,GAAG,IAAAC,4BAAA,EAAmBf,KAAnB,EAA0BvB,IAA1B,CAAxB;EACA,IAAMuC,QAAQ,GAAG,IAAAC,yBAAA,EAAiBjB,KAAjB,EAAwBvB,IAAxB,CAAjB;;EAEA,gBAA2E,IAAAyC,gBAAA,EACzEC,4BADyE,EAEzE;IACEC,SAAS,EAAE;MAAEC,EAAE,EAAE9C;IAAN;EADb,CAFyE,CAA3E;EAAA,IAAc+C,YAAd,aAAQC,IAAR;EAAA,IAAmCC,WAAnC,aAA4BC,KAA5B;EAAA,IAAyDC,aAAzD,aAAgDC,OAAhD;;EAMA,4BAII,IAAAC,+BAAA,EAAyB,CAAChB,iBAAD,EAAoBrC,MAApB,CAAzB,CAJJ;EAAA,mDACEgD,IADF;EAAA,IACQM,WADR,uCACsB,EADtB;EAAA,IAEWC,cAFX,yBAEEH,OAFF;EAAA,IAGSI,YAHT,yBAGEN,KAHF;;EAMA,4BAGII,WAHJ,CACGjB,iBADH;EAAA,IACuBoB,aADvB,sCACuC,EADvC;EAAA,0BAGIH,WAHJ,CAEGtD,MAFH;EAAA,IAEY0D,kBAFZ,oCAEiC,EAFjC;;EAKA,6BAII,IAAAL,+BAAA,EACF,IAAAM,4BAAA,gDAAuBxD,gBAAvB,uCAA4C6B,aAA5C,IAA4D0B,kBAA5D,CADE,EAEFH,cAFE,CAJJ;EAAA,oDACEP,IADF;EAAA,IACQY,cADR,uCACyB,EADzB;EAAA,IAEWC,qBAFX,0BAEET,OAFF;EAAA,IAGSU,mBAHT,0BAGEZ,KAHF;;EAQA,IAAMa,gBAAgB,GAAG,IAAAC,6BAAA,EAAoB5D,QAApB,EAA8BD,gBAA9B,CAAzB;EACA,IAAM8D,UAAU,GAAG,IAAAC,uBAAA,EAAcH,gBAAd,EAAgCN,aAAhC,EAA+CC,kBAA/C,CAAnB;;EACA,WAAyBD,aAAa,IAAI,EAA1C;EAAA,wBAAQU,OAAR;EAAA,IAAQA,OAAR,6BAAkB,EAAlB;;EACA,IAAMC,SAAS,GAAGlD,SAAS,GAAGiD,OAAO,CAACE,GAAX,GAAiBF,OAAO,CAACG,YAApD;;EAEA,iBAII,IAAA3B,gBAAA,EAAS,IAAA4B,8BAAA,EAAwBH,SAAxB,EAAmCH,UAAnC,CAAT,EAAyD;IAC3DpB,SAAS,EAAE;MAAEC,EAAE,EAAEV;IAAN,CADgD;IAE3DoC,IAAI,EAAEjB,cAAc,IAAK,CAACQ,gBAAgB,CAACU,MAAlB,IAA4BR,UAAU,KAAKS;EAFT,CAAzD,CAJJ;EAAA,iCACE1B,IADF;;EAAA,+CAC8B,EAD9B;EAAA,4CACU2B,UADV;EAAA,IACUA,UADV,sCACuB,EADvB;EAAA,IAESC,cAFT,cAEE1B,KAFF;EAAA,IAGW2B,gBAHX,cAGEzB,OAHF;;EASA,iBAAoF,IAAAT,gBAAA,EAClFmC,kBADkF,EAElF;IACEjC,SAAS,EAAE;MAAEC,EAAE,EAAEhB;IAAN,CADb;IAEE0C,IAAI,EAAE,CAAC1C;EAFT,CAFkF,CAApF;EAAA,iCAAQkB,IAAR;EAAA,IAAc+B,YAAd,gCAA6B,EAA7B;EAAA,IAAwCC,aAAxC,cAAiC9B,KAAjC;EAAA,IAAgE+B,eAAhE,cAAuD7B,OAAvD;;EAQA,IAAI,CAAC,IAAA8B,mCAAA,EAA2B;IAAEnE,YAAY,EAAZA,YAAF;IAAgBI,MAAM,EAANA,MAAhB;IAAwBW,UAAU,EAAVA,UAAxB;IAAoCD,eAAe,EAAfA;EAApC,CAA3B,CAAL,EAAwF,OAAO,EAAP;EAExF,IAAMsD,aAAa,GAAG,CACpBlC,WADoB,EAEpBO,YAFoB,EAGpBM,mBAHoB,EAIpBc,cAJoB,EAKpBI,aALoB,CAAtB;;EAOA,qBAA2B,IAAAI,uBAAA,EAAcD,aAAd,CAA3B;EAAA,IAAQE,MAAR,kBAAQA,MAAR;EAAA,IAAgBC,MAAhB,kBAAgBA,MAAhB;;EAEA,IACEzB,qBAAqB,IACrBN,cADA,IAEAJ,aAFA,IAGA0B,gBAHA,IAIAI,eALF,EAOE,OAAO,EAAP;EACF,IAAII,MAAJ,EAAY,OAAOC,MAAP;EACZ,IAAI,CAACvC,YAAL,EAAmB,OAAO,IAAP;EAEnB,IAAMwC,WAAW,GAAG,IAAAC,wBAAA,EAAeT,YAAf,CAApB;EACA,IAAMU,MAAM,GAAGnF,IAAI,KAAKoF,gBAAxB;EACA,IAAMC,IAAI,GAAGrF,IAAI,KAAKsF,uBAAtB;EACA,IAAMC,YAAY,GAAG,IAAAC,yBAAA,EAAgB/F,KAAhB,CAArB;;EACA,2BAAqB,IAAAgG,6BAAA,EAAoBpF,YAApB,EAAkCqF,uBAAlC,CAArB;EAAA;EAAA,IAAOC,UAAP;;EACA,IAAMC,qBAAqB,GAAGD,UAAU,IAAIA,UAAU,CAACE,cAAX,CAA0B1B,MAAtE;EACA,IAAM5D,QAAQ,GAAGqF,qBAAqB,GAAG,IAAAE,kCAAA,EAAyBH,UAAzB,CAAH,GAA0CI,wBAAhF;EACA,IAAMC,UAAU,GAAGJ,qBAAqB,GAAG,IAAAK,+BAAA,EAAsBN,UAAtB,EAAkCxE,KAAlC,CAAH,GAA8C,EAAtF;;EACA,uBAAgC,IAAA+E,yBAAA,EAAgB7F,YAAhB,EAA8Bc,KAA9B,CAAhC;EAAA,IAAQgF,SAAR,oBAAQA,SAAR;EAAA,IAAmBC,QAAnB,oBAAmBA,QAAnB;;EACA,IAAMC,yBAAyB,GAAG,CAAC,EACjClF,KAAK,CAACmF,WAAN,IACAjG,YADA,IAEA,IAAAoF,6BAAA,EAAoBpF,YAApB,EAAkCqF,uBAAlC,EAA+CvB,MAHd,CAAnC;EAMA,IAAMoC,YAAY,GAAG;IACnBC,gBAAgB,EAAER,UADC;IAEnBS,+BAA+B,EAAEN,SAFd;IAGnBO,sBAAsB,EAAEN;EAHL,CAArB;;EAKA,IAAMO,SAAS,iDACVlH,KADU,GAEV8F,YAFU;IAGbpE,KAAK,EAALA,KAHa;IAIbC,GAAG,EAAHA,GAJa;IAKb+D,MAAM,EAANA,MALa;IAMbE,IAAI,EAAJA,IANa;IAObxE,MAAM,EAANA,MAPa;IAQb4B,YAAY,EAAZA,YARa;IASbrC,IAAI,EAAE,IATO;IAUbF,MAAM,EAAE,IAVK;IAWbM,cAAc,EAAEmB,qBAXH;IAYbQ,QAAQ,EAARA,QAZa;IAaboE,YAAY,EAAZA,YAba;IAcbnD,kBAAkB,EAAlBA,kBAda;IAebE,cAAc,EAAdA,cAfa;IAgBbH,aAAa,EAAbA,aAhBa;IAiBbpD,YAAY,EAAZA,YAjBa;IAkBbQ,QAAQ,EAARA,QAlBa;IAmBb8F,yBAAyB,EAAzBA,yBAnBa;IAoBbpE,eAAe,EAAfA,eApBa;IAqBboC,UAAU,EAAVA,UArBa;IAsBbZ,gBAAgB,EAAhBA,gBAtBa;IAuBbnD,cAAc,EAAdA,cAvBa;IAwBb2E,WAAW,EAAXA;EAxBa,EAAf;;EA2BA,oBAAO,gCAAC,uBAAD,EAAiB0B,SAAjB,CAAP;AACD,CA5JD;;AA8JAnH,WAAW,CAACoH,SAAZ,GAAwB;EACtBjH,MAAM,EAAEkH,qBAAA,CAAUC,MAAV,CAAiBC,UADH;EAEtBrH,MAAM,EAAEmH,qBAAA,CAAUG,MAAV,CAAiBD,UAFH;EAGtB/G,IAAI,EAAE6G,qBAAA,CAAUG,MAAV,CAAiBD,UAHD;EAItBjH,QAAQ,EAAE+G,qBAAA,CAAUI,KAJE;EAKtBpH,gBAAgB,EAAEgH,qBAAA,CAAUI,KALN;EAMtBlH,YAAY,EAAE8G,qBAAA,CAAUK,IANF;EAOtB3G,QAAQ,EAAEsG,qBAAA,CAAUG,MAPE;EAQtBpH,IAAI,EAAEiH,qBAAA,CAAUG,MARM;EAStB9G,MAAM,EAAE2G,qBAAA,CAAUI,KATI;EAUtB7G,IAAI,EAAEyG,qBAAA,CAAUG,MAVM;EAWtB3G,YAAY,EAAEwG,qBAAA,CAAUC,MAXF;EAYtBtG,cAAc,EAAEqG,qBAAA,CAAUI,KAZJ;EAatBxG,YAAY,EAAEoG,qBAAA,CAAUG;AAbF,CAAxB;AAgBAxH,WAAW,CAAC2H,YAAZ,GAA2B;EACzBrH,QAAQ,EAAE,EADe;EAEzBD,gBAAgB,EAAE,EAFO;EAGzBE,YAAY,EAAE,KAHW;EAIzBH,IAAI,EAAE,EAJmB;EAKzBM,MAAM,EAAE,EALiB;EAMzBM,cAAc,EAAE,EANS;EAOzBJ,IAAI,EAAE,EAPmB;EAQzBG,QAAQ,EAAE6G,eARe;EASzB/G,YAAY,EAAE,EATW;EAUzBI,YAAY,EAAE;AAVW,CAA3B;eAaejB,W"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _helpers = require("../../ItemList/helpers");
11
+
12
+ var hasRequiredItemListDetails = function hasRequiredItemListDetails(_ref) {
13
+ var itemListName = _ref.itemListName,
14
+ router = _ref.router,
15
+ itemListId = _ref.itemListId,
16
+ queryItemListId = _ref.queryItemListId;
17
+ if (!itemListName) return true;
18
+
19
+ if (!queryItemListId && itemListId) {
20
+ (0, _helpers.setParamAndRedirect)(router, itemListId);
21
+ return false;
22
+ }
23
+
24
+ return !!queryItemListId;
25
+ };
26
+
27
+ var _default = hasRequiredItemListDetails;
28
+ exports["default"] = _default;
29
+ //# sourceMappingURL=has-required-item-list-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-required-item-list-details.js","names":["hasRequiredItemListDetails","itemListName","router","itemListId","queryItemListId","setParamAndRedirect"],"sources":["../../../../src/components/List/helpers/has-required-item-list-details.js"],"sourcesContent":["import { setParamAndRedirect } from '../../ItemList/helpers';\n\nconst hasRequiredItemListDetails = ({ itemListName, router, itemListId, queryItemListId }) => {\n if (!itemListName) return true;\n\n if (!queryItemListId && itemListId) {\n setParamAndRedirect(router, itemListId);\n return false;\n }\n\n return !!queryItemListId;\n};\n\nexport default hasRequiredItemListDetails;\n"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,0BAA0B,GAAG,SAA7BA,0BAA6B,OAA2D;EAAA,IAAxDC,YAAwD,QAAxDA,YAAwD;EAAA,IAA1CC,MAA0C,QAA1CA,MAA0C;EAAA,IAAlCC,UAAkC,QAAlCA,UAAkC;EAAA,IAAtBC,eAAsB,QAAtBA,eAAsB;EAC5F,IAAI,CAACH,YAAL,EAAmB,OAAO,IAAP;;EAEnB,IAAI,CAACG,eAAD,IAAoBD,UAAxB,EAAoC;IAClC,IAAAE,4BAAA,EAAoBH,MAApB,EAA4BC,UAA5B;IACA,OAAO,KAAP;EACD;;EAED,OAAO,CAAC,CAACC,eAAT;AACD,CATD;;eAWeJ,0B"}
@@ -43,6 +43,12 @@ Object.defineProperty(exports, "getSortProps", {
43
43
  return _getSortProps["default"];
44
44
  }
45
45
  });
46
+ Object.defineProperty(exports, "hasRequiredItemListDetails", {
47
+ enumerable: true,
48
+ get: function get() {
49
+ return _hasRequiredItemListDetails["default"];
50
+ }
51
+ });
46
52
  Object.defineProperty(exports, "sortAggs", {
47
53
  enumerable: true,
48
54
  get: function get() {
@@ -63,4 +69,6 @@ var _sortAggs = _interopRequireDefault(require("./sort-aggs"));
63
69
  var _getItemsPerPageToUse = _interopRequireDefault(require("./get-items-per-page-to-use"));
64
70
 
65
71
  var _getSortProps = _interopRequireDefault(require("./get-sort-props"));
72
+
73
+ var _hasRequiredItemListDetails = _interopRequireDefault(require("./has-required-item-list-details"));
66
74
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/List/helpers/index.js"],"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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/List/helpers/index.js"],"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';\nexport { default as hasRequiredItemListDetails } from './has-required-item-list-details';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA"}
@@ -3,9 +3,11 @@ import PropTypes from 'prop-types';
3
3
  import { useRouter } from 'next/router';
4
4
  import { useQuery } from '@apollo/client';
5
5
  import BlazeButton from '@blaze-react/button';
6
+ import { parseUrl } from 'query-string';
6
7
  import { getItemList } from '../../../application/query';
7
8
  import { useItemListId } from '../hooks';
8
9
  import { getItemListData, setItemListId, setParamAndRedirect } from '../helpers';
10
+ import { LIST_ITEM_QUERY_PARAM } from '../constants';
9
11
 
10
12
  const ItemListNew = ({
11
13
  listName,
@@ -13,20 +15,26 @@ const ItemListNew = ({
13
15
  text
14
16
  }) => {
15
17
  const router = useRouter();
18
+ const {
19
+ query: {
20
+ [LIST_ITEM_QUERY_PARAM]: listItemId
21
+ } = {}
22
+ } = parseUrl(router.asPath);
16
23
  const {
17
24
  listId
18
25
  } = useItemListId({
19
26
  listName
20
27
  });
28
+ const listIdToUse = listItemId || listId;
21
29
  const {
22
30
  data,
23
31
  error,
24
32
  loading
25
33
  } = useQuery(getItemList, {
26
34
  variables: {
27
- id: listId
35
+ id: listIdToUse
28
36
  },
29
- skip: !listId
37
+ skip: !listIdToUse
30
38
  });
31
39
  if (loading) return '';
32
40
  if (error) return error.message;
@@ -1 +1 @@
1
- {"version":3,"file":"ItemListNew.js","names":["React","PropTypes","useRouter","useQuery","BlazeButton","getItemList","useItemListId","getItemListData","setItemListId","setParamAndRedirect","ItemListNew","listName","modifier","text","router","listId","data","error","loading","variables","id","skip","message","listItems","length","handleClick","propTypes","string","isRequired","defaultProps"],"sources":["../../../../src/components/ItemList/ItemListNew/ItemListNew.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport BlazeButton from '@blaze-react/button';\nimport { getItemList } from '../../../application/query';\nimport { useItemListId } from '../hooks';\nimport { getItemListData, setItemListId, setParamAndRedirect } from '../helpers';\n\nconst ItemListNew = ({ listName, modifier, text }) => {\n const router = useRouter();\n const { listId } = useItemListId({ listName });\n\n const { data, error, loading } = useQuery(getItemList, {\n variables: { id: listId },\n skip: !listId\n });\n\n if (loading) return '';\n if (error) return error.message;\n\n const listItems = getItemListData(data);\n if (!listItems.length) return '';\n\n const handleClick = () => {\n setItemListId(listName, '');\n setParamAndRedirect(router);\n };\n\n return (\n <BlazeButton className={`item-list-new ${modifier}`} onClick={handleClick}>\n {text}\n </BlazeButton>\n );\n};\n\nItemListNew.propTypes = {\n listName: PropTypes.string.isRequired,\n modifier: PropTypes.string,\n text: PropTypes.string.isRequired\n};\n\nItemListNew.defaultProps = {\n modifier: ''\n};\n\nexport default ItemListNew;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,OAAOC,WAAP,MAAwB,qBAAxB;AACA,SAASC,WAAT,QAA4B,4BAA5B;AACA,SAASC,aAAT,QAA8B,UAA9B;AACA,SAASC,eAAT,EAA0BC,aAA1B,EAAyCC,mBAAzC,QAAoE,YAApE;;AAEA,MAAMC,WAAW,GAAG,CAAC;EAAEC,QAAF;EAAYC,QAAZ;EAAsBC;AAAtB,CAAD,KAAkC;EACpD,MAAMC,MAAM,GAAGZ,SAAS,EAAxB;EACA,MAAM;IAAEa;EAAF,IAAaT,aAAa,CAAC;IAAEK;EAAF,CAAD,CAAhC;EAEA,MAAM;IAAEK,IAAF;IAAQC,KAAR;IAAeC;EAAf,IAA2Bf,QAAQ,CAACE,WAAD,EAAc;IACrDc,SAAS,EAAE;MAAEC,EAAE,EAAEL;IAAN,CAD0C;IAErDM,IAAI,EAAE,CAACN;EAF8C,CAAd,CAAzC;EAKA,IAAIG,OAAJ,EAAa,OAAO,EAAP;EACb,IAAID,KAAJ,EAAW,OAAOA,KAAK,CAACK,OAAb;EAEX,MAAMC,SAAS,GAAGhB,eAAe,CAACS,IAAD,CAAjC;EACA,IAAI,CAACO,SAAS,CAACC,MAAf,EAAuB,OAAO,EAAP;;EAEvB,MAAMC,WAAW,GAAG,MAAM;IACxBjB,aAAa,CAACG,QAAD,EAAW,EAAX,CAAb;IACAF,mBAAmB,CAACK,MAAD,CAAnB;EACD,CAHD;;EAKA,oBACE,oBAAC,WAAD;IAAa,SAAS,EAAG,iBAAgBF,QAAS,EAAlD;IAAqD,OAAO,EAAEa;EAA9D,GACGZ,IADH,CADF;AAKD,CAzBD;;AA2BAH,WAAW,CAACgB,SAAZ,GAAwB;EACtBf,QAAQ,EAAEV,SAAS,CAAC0B,MAAV,CAAiBC,UADL;EAEtBhB,QAAQ,EAAEX,SAAS,CAAC0B,MAFE;EAGtBd,IAAI,EAAEZ,SAAS,CAAC0B,MAAV,CAAiBC;AAHD,CAAxB;AAMAlB,WAAW,CAACmB,YAAZ,GAA2B;EACzBjB,QAAQ,EAAE;AADe,CAA3B;AAIA,eAAeF,WAAf"}
1
+ {"version":3,"file":"ItemListNew.js","names":["React","PropTypes","useRouter","useQuery","BlazeButton","parseUrl","getItemList","useItemListId","getItemListData","setItemListId","setParamAndRedirect","LIST_ITEM_QUERY_PARAM","ItemListNew","listName","modifier","text","router","query","listItemId","asPath","listId","listIdToUse","data","error","loading","variables","id","skip","message","listItems","length","handleClick","propTypes","string","isRequired","defaultProps"],"sources":["../../../../src/components/ItemList/ItemListNew/ItemListNew.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport BlazeButton from '@blaze-react/button';\nimport { parseUrl } from 'query-string';\nimport { getItemList } from '../../../application/query';\nimport { useItemListId } from '../hooks';\nimport { getItemListData, setItemListId, setParamAndRedirect } from '../helpers';\nimport { LIST_ITEM_QUERY_PARAM } from '../constants';\n\nconst ItemListNew = ({ listName, modifier, text }) => {\n const router = useRouter();\n const { query: { [LIST_ITEM_QUERY_PARAM]: listItemId } = {} } = parseUrl(router.asPath);\n\n const { listId } = useItemListId({ listName });\n const listIdToUse = listItemId || listId;\n const { data, error, loading } = useQuery(getItemList, {\n variables: { id: listIdToUse },\n skip: !listIdToUse\n });\n\n if (loading) return '';\n if (error) return error.message;\n\n const listItems = getItemListData(data);\n if (!listItems.length) return '';\n\n const handleClick = () => {\n setItemListId(listName, '');\n setParamAndRedirect(router);\n };\n\n return (\n <BlazeButton className={`item-list-new ${modifier}`} onClick={handleClick}>\n {text}\n </BlazeButton>\n );\n};\n\nItemListNew.propTypes = {\n listName: PropTypes.string.isRequired,\n modifier: PropTypes.string,\n text: PropTypes.string.isRequired\n};\n\nItemListNew.defaultProps = {\n modifier: ''\n};\n\nexport default ItemListNew;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,OAAOC,WAAP,MAAwB,qBAAxB;AACA,SAASC,QAAT,QAAyB,cAAzB;AACA,SAASC,WAAT,QAA4B,4BAA5B;AACA,SAASC,aAAT,QAA8B,UAA9B;AACA,SAASC,eAAT,EAA0BC,aAA1B,EAAyCC,mBAAzC,QAAoE,YAApE;AACA,SAASC,qBAAT,QAAsC,cAAtC;;AAEA,MAAMC,WAAW,GAAG,CAAC;EAAEC,QAAF;EAAYC,QAAZ;EAAsBC;AAAtB,CAAD,KAAkC;EACpD,MAAMC,MAAM,GAAGd,SAAS,EAAxB;EACA,MAAM;IAAEe,KAAK,EAAE;MAAE,CAACN,qBAAD,GAAyBO;IAA3B,IAA0C;EAAnD,IAA0Db,QAAQ,CAACW,MAAM,CAACG,MAAR,CAAxE;EAEA,MAAM;IAAEC;EAAF,IAAab,aAAa,CAAC;IAAEM;EAAF,CAAD,CAAhC;EACA,MAAMQ,WAAW,GAAGH,UAAU,IAAIE,MAAlC;EACA,MAAM;IAAEE,IAAF;IAAQC,KAAR;IAAeC;EAAf,IAA2BrB,QAAQ,CAACG,WAAD,EAAc;IACrDmB,SAAS,EAAE;MAAEC,EAAE,EAAEL;IAAN,CAD0C;IAErDM,IAAI,EAAE,CAACN;EAF8C,CAAd,CAAzC;EAKA,IAAIG,OAAJ,EAAa,OAAO,EAAP;EACb,IAAID,KAAJ,EAAW,OAAOA,KAAK,CAACK,OAAb;EAEX,MAAMC,SAAS,GAAGrB,eAAe,CAACc,IAAD,CAAjC;EACA,IAAI,CAACO,SAAS,CAACC,MAAf,EAAuB,OAAO,EAAP;;EAEvB,MAAMC,WAAW,GAAG,MAAM;IACxBtB,aAAa,CAACI,QAAD,EAAW,EAAX,CAAb;IACAH,mBAAmB,CAACM,MAAD,CAAnB;EACD,CAHD;;EAKA,oBACE,oBAAC,WAAD;IAAa,SAAS,EAAG,iBAAgBF,QAAS,EAAlD;IAAqD,OAAO,EAAEiB;EAA9D,GACGhB,IADH,CADF;AAKD,CA3BD;;AA6BAH,WAAW,CAACoB,SAAZ,GAAwB;EACtBnB,QAAQ,EAAEZ,SAAS,CAACgC,MAAV,CAAiBC,UADL;EAEtBpB,QAAQ,EAAEb,SAAS,CAACgC,MAFE;EAGtBlB,IAAI,EAAEd,SAAS,CAACgC,MAAV,CAAiBC;AAHD,CAAxB;AAMAtB,WAAW,CAACuB,YAAZ,GAA2B;EACzBrB,QAAQ,EAAE;AADe,CAA3B;AAIA,eAAeF,WAAf"}
@@ -13,9 +13,9 @@ import { MainContext } from '@blaze-cms/nextjs-components';
13
13
  import { getSingleEntitySchema, generateSingleItemQuery, getItemList } from '../../application/query';
14
14
  import ListBuilder from './ListBuilder';
15
15
  import { AZ_LIST_TYPE } from './constants';
16
- import { getAzQueryFilter, getSortProps } from './helpers';
16
+ import { getAzQueryFilter, getSortProps, hasRequiredItemListDetails } from './helpers';
17
17
  import { getGenericProps, getRequiredSchemas, checkForError, getUnpublishedEntityName, getPaginationIndex, getSearchFilterType, getElasticsearchOperator, buildSearchValuesText, getQueryFilters, getInheritedFilters, getQueryProps } from '../../helpers';
18
- import { getItemListId, getItemListIds, setParamAndRedirect } from '../ItemList/helpers';
18
+ import { getItemListId, getItemListIds } from '../ItemList/helpers';
19
19
  import { useGetEntitySchemasAsObj } from '../../hooks';
20
20
  import { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';
21
21
 
@@ -121,11 +121,12 @@ const ListFactory = props => {
121
121
  },
122
122
  skip: !itemListId
123
123
  });
124
-
125
- if (!queryItemListId && itemListId) {
126
- setParamAndRedirect(router, itemListId);
127
- }
128
-
124
+ if (!hasRequiredItemListDetails({
125
+ itemListName,
126
+ router,
127
+ itemListId,
128
+ queryItemListId
129
+ })) return '';
129
130
  const errorsToCheck = [schemaError, schemasError, requiredSchemaError, itemQueryError, itemListError];
130
131
  const {
131
132
  hasErr,
@@ -1 +1 @@
1
- {"version":3,"file":"ListFactory.js","names":["React","useContext","useQuery","parseUrl","PropTypes","useRouter","MainContext","getSingleEntitySchema","generateSingleItemQuery","getItemList","ListBuilder","AZ_LIST_TYPE","getAzQueryFilter","getSortProps","getGenericProps","getRequiredSchemas","checkForError","getUnpublishedEntityName","getPaginationIndex","getSearchFilterType","getElasticsearchOperator","buildSearchValuesText","getQueryFilters","getInheritedFilters","getQueryProps","getItemListId","getItemListIds","setParamAndRedirect","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","itemListName","isPreview","router","asPath","parsedQuery","replace","query","url","querySort","querySortBy","itemListId","queryItemListId","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","itemListData","itemListError","itemListLoading","errorsToCheck","hasErr","errMsg","itemListIds","isCard","isAZ","genericProps","textFilter","shouldApplyTextFilter","propsToDisplay","valuesText","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","object","isRequired","string","array","bool","defaultProps"],"sources":["../../../src/components/List/ListFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport {\n getSingleEntitySchema,\n generateSingleItemQuery,\n getItemList\n} 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 { getItemListId, getItemListIds, setParamAndRedirect } from '../ItemList/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 itemListName\n } = props;\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 {\n query,\n url,\n query: { sort: querySort, sortby: querySortBy, itemListId: queryItemListId } = {}\n } = parseUrl(parsedQuery);\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy\n });\n\n const itemListId = getItemListId(itemListName, queryItemListId);\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\n const { data: itemListData = {}, error: itemListError, loading: itemListLoading } = useQuery(\n getItemList,\n {\n variables: { id: itemListId },\n skip: !itemListId\n }\n );\n if (!queryItemListId && itemListId) {\n setParamAndRedirect(router, itemListId);\n }\n\n const errorsToCheck = [\n schemaError,\n schemasError,\n requiredSchemaError,\n itemQueryError,\n itemListError\n ];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (\n requiredSchemaLoading ||\n schemasLoading ||\n schemaLoading ||\n itemQueryLoading ||\n itemListLoading\n )\n return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const itemListIds = getItemListIds(itemListData);\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 itemListIds\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 itemListName: PropTypes.string\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 itemListName: ''\n};\n\nexport default ListFactory;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAASC,QAAT,QAAyB,cAAzB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,WAAT,QAA4B,8BAA5B;AACA,SACEC,qBADF,EAEEC,uBAFF,EAGEC,WAHF,QAIO,yBAJP;AAKA,OAAOC,WAAP,MAAwB,eAAxB;AACA,SAASC,YAAT,QAA6B,aAA7B;AACA,SAASC,gBAAT,EAA2BC,YAA3B,QAA+C,WAA/C;AACA,SACEC,eADF,EAEEC,kBAFF,EAGEC,aAHF,EAIEC,wBAJF,EAKEC,kBALF,EAMEC,mBANF,EAOEC,wBAPF,EAQEC,qBARF,EASEC,eATF,EAUEC,mBAVF,EAWEC,aAXF,QAYO,eAZP;AAaA,SAASC,aAAT,EAAwBC,cAAxB,EAAwCC,mBAAxC,QAAmE,qBAAnE;AACA,SAASC,wBAAT,QAAyC,aAAzC;AACA,SAASC,YAAT,EAAuBC,WAAvB,EAAoCC,EAApC,EAAwCC,GAAxC,EAA6CC,IAA7C,QAAyD,iBAAzD;;AAEA,MAAMC,WAAW,GAAGC,KAAK,IAAI;EAC3B,MAAM;IACJC,MADI;IAEJC,MAFI;IAGJC,IAHI;IAIJC,gBAJI;IAKJC,QALI;IAMJC,YANI;IAOJC,IAPI;IAQJC,MAAM,EAAEC,aARJ;IASJC,IAAI,EAAEC,WATF;IAUJC,YAVI;IAWJC,QAAQ,EAAEC,cAXN;IAYJC,cAZI;IAaJC;EAbI,IAcFhB,KAdJ;EAeA,MAAM;IAAEiB;EAAF,IAAgBnD,UAAU,CAACK,WAAD,CAAhC;EACA,MAAM+C,MAAM,GAAGhD,SAAS,EAAxB;EACA,MAAM;IAAEiD;EAAF,IAAaD,MAAnB;EACA,MAAME,WAAW,GAAGD,MAAM,CAACE,OAAP,CAAe,MAAf,EAAuB,GAAvB,EAA4BA,OAA5B,CAAoC,MAApC,EAA4C,GAA5C,CAApB;EACA,MAAM;IACJC,KADI;IAEJC,GAFI;IAGJD,KAAK,EAAE;MAAEZ,IAAI,EAAEc,SAAR;MAAmBhB,MAAM,EAAEiB,WAA3B;MAAwCC,UAAU,EAAEC;IAApD,IAAwE;EAH3E,IAIF3D,QAAQ,CAACoD,WAAD,CAJZ;EAKA,MAAM;IAAEQ,aAAF;IAAiBC;EAAjB,IAA2CnD,YAAY,CAAC;IAC5D8C,SAD4D;IAE5DT,cAF4D;IAG5DJ,WAH4D;IAI5Dc,WAJ4D;IAK5DhB;EAL4D,CAAD,CAA7D;EAQA,MAAMiB,UAAU,GAAGpC,aAAa,CAAC0B,YAAD,EAAeW,eAAf,CAAhC;EACA,MAAM;IAAEG,UAAF;IAAcC;EAAd,IAAyB7B,MAA/B;EACA,MAAM8B,iBAAiB,GAAGlD,wBAAwB,CAACgD,UAAD,CAAlD;EACA,MAAMG,eAAe,GAAGlD,kBAAkB,CAACuC,KAAD,EAAQnB,IAAR,CAA1C;EACA,MAAM+B,QAAQ,GAAGzD,gBAAgB,CAAC6C,KAAD,EAAQnB,IAAR,CAAjC;EAEA,MAAM;IAAEgC,IAAI,EAAEC,YAAR;IAAsBC,KAAK,EAAEC,WAA7B;IAA0CC,OAAO,EAAEC;EAAnD,IAAqEzE,QAAQ,CACjFK,qBADiF,EAEjF;IACEqE,SAAS,EAAE;MAAEC,EAAE,EAAEzC;IAAN;EADb,CAFiF,CAAnF;EAMA,MAAM;IACJkC,IAAI,EAAEQ,WAAW,GAAG,EADhB;IAEJJ,OAAO,EAAEK,cAFL;IAGJP,KAAK,EAAEQ;EAHH,IAIFpD,wBAAwB,CAAC,CAACuC,iBAAD,EAAoB/B,MAApB,CAAD,CAJ5B;EAMA,MAAM;IACJ,CAAC+B,iBAAD,GAAqBc,aAAa,GAAG,EADjC;IAEJ,CAAC7C,MAAD,GAAU8C,kBAAkB,GAAG;EAF3B,IAGFJ,WAHJ;EAKA,MAAM;IACJR,IAAI,EAAEa,cAAc,GAAG,EADnB;IAEJT,OAAO,EAAEU,qBAFL;IAGJZ,KAAK,EAAEa;EAHH,IAIFzD,wBAAwB,CAC1Bb,kBAAkB,CAAC,CAAC,GAAGwB,gBAAJ,EAAsB,GAAGwB,aAAzB,CAAD,EAA0CmB,kBAA1C,CADQ,EAE1BH,cAF0B,CAJ5B;EAQA,MAAMO,gBAAgB,GAAG/D,mBAAmB,CAACiB,QAAD,EAAWD,gBAAX,CAA5C;EACA,MAAMgD,UAAU,GAAG/D,aAAa,CAAC8D,gBAAD,EAAmBL,aAAnB,EAAkCC,kBAAlC,CAAhC;EACA,MAAM;IAAEM,OAAO,GAAG;EAAZ,IAAmBP,aAAa,IAAI,EAA1C;EACA,MAAMQ,SAAS,GAAGrC,SAAS,GAAGoC,OAAO,CAACE,GAAX,GAAiBF,OAAO,CAACG,YAApD;EAEA,MAAM;IACJrB,IAAI,EAAE;MAAEsB,UAAU,GAAG;IAAf,IAAsB,EADxB;IAEJpB,KAAK,EAAEqB,cAFH;IAGJnB,OAAO,EAAEoB;EAHL,IAIF5F,QAAQ,CAACM,uBAAuB,CAACiF,SAAD,EAAYF,UAAZ,CAAxB,EAAiD;IAC3DX,SAAS,EAAE;MAAEC,EAAE,EAAEX;IAAN,CADgD;IAE3D6B,IAAI,EAAEhB,cAAc,IAAK,CAACO,gBAAgB,CAACU,MAAlB,IAA4BT,UAAU,KAAKxD;EAFT,CAAjD,CAJZ;EASA,MAAM;IAAEuC,IAAI,EAAE2B,YAAY,GAAG,EAAvB;IAA2BzB,KAAK,EAAE0B,aAAlC;IAAiDxB,OAAO,EAAEyB;EAA1D,IAA8EjG,QAAQ,CAC1FO,WAD0F,EAE1F;IACEmE,SAAS,EAAE;MAAEC,EAAE,EAAEhB;IAAN,CADb;IAEEkC,IAAI,EAAE,CAAClC;EAFT,CAF0F,CAA5F;;EAOA,IAAI,CAACC,eAAD,IAAoBD,UAAxB,EAAoC;IAClClC,mBAAmB,CAAC0B,MAAD,EAASQ,UAAT,CAAnB;EACD;;EAED,MAAMuC,aAAa,GAAG,CACpB3B,WADoB,EAEpBO,YAFoB,EAGpBK,mBAHoB,EAIpBQ,cAJoB,EAKpBK,aALoB,CAAtB;EAOA,MAAM;IAAEG,MAAF;IAAUC;EAAV,IAAqBtF,aAAa,CAACoF,aAAD,CAAxC;EAEA,IACEhB,qBAAqB,IACrBL,cADA,IAEAJ,aAFA,IAGAmB,gBAHA,IAIAK,eALF,EAOE,OAAO,EAAP;EACF,IAAIE,MAAJ,EAAY,OAAOC,MAAP;EACZ,IAAI,CAAC/B,YAAL,EAAmB,OAAO,IAAP;EAEnB,MAAMgC,WAAW,GAAG7E,cAAc,CAACuE,YAAD,CAAlC;EACA,MAAMO,MAAM,GAAG9D,IAAI,KAAKT,IAAxB;EACA,MAAMwE,IAAI,GAAG/D,IAAI,KAAK/B,YAAtB;EACA,MAAM+F,YAAY,GAAG5F,eAAe,CAACqB,KAAD,CAApC;EACA,MAAM,CAACwE,UAAD,IAAexF,mBAAmB,CAAC4B,YAAD,EAAejB,WAAf,CAAxC;EACA,MAAM8E,qBAAqB,GAAGD,UAAU,IAAIA,UAAU,CAACE,cAAX,CAA0Bb,MAAtE;EACA,MAAMhD,QAAQ,GAAG4D,qBAAqB,GAAGxF,wBAAwB,CAACuF,UAAD,CAA3B,GAA0C9E,YAAhF;EACA,MAAMiF,UAAU,GAAGF,qBAAqB,GAAGvF,qBAAqB,CAACsF,UAAD,EAAalD,KAAb,CAAxB,GAA8C,EAAtF;EACA,MAAM;IAAEsD,SAAF;IAAaC;EAAb,IAA0B1F,eAAe,CAACyB,YAAD,EAAeU,KAAf,CAA/C;EACA,MAAMwD,yBAAyB,GAAG,CAAC,EACjCxD,KAAK,CAACyD,WAAN,IACAnE,YADA,IAEA5B,mBAAmB,CAAC4B,YAAD,EAAejB,WAAf,CAAnB,CAA+CkE,MAHd,CAAnC;EAMA,MAAMmB,YAAY,GAAG;IACnBC,gBAAgB,EAAEN,UADC;IAEnBO,+BAA+B,EAAEN,SAFd;IAGnBO,sBAAsB,EAAEN;EAHL,CAArB;;EAKA,MAAMO,SAAS,iDACVpF,KADU,GAEVuE,YAFU;IAGbjD,KAHa;IAIbC,GAJa;IAKb8C,MALa;IAMbC,IANa;IAObpD,MAPa;IAQbkB,YARa;IASb1B,IAAI,EAAE,IATO;IAUbF,MAAM,EAAE,IAVK;IAWbO,cAAc,EAAEc,qBAXH;IAYbK,QAZa;IAab8C,YAba;IAcbjC,kBAda;IAebC,cAfa;IAgBbF,aAhBa;IAiBbxC,YAjBa;IAkBbO,QAlBa;IAmBbiE,yBAnBa;IAoBb7C,eApBa;IAqBbwB,UArBa;IAsBbN,gBAtBa;IAuBbrC,cAvBa;IAwBbsD;EAxBa,EAAf;;EA2BA,oBAAO,oBAAC,WAAD,EAAiBgB,SAAjB,CAAP;AACD,CA7JD;;AA+JArF,WAAW,CAACsF,SAAZ,GAAwB;EACtBnF,MAAM,EAAEjC,SAAS,CAACqH,MAAV,CAAiBC,UADH;EAEtBtF,MAAM,EAAEhC,SAAS,CAACuH,MAAV,CAAiBD,UAFH;EAGtBhF,IAAI,EAAEtC,SAAS,CAACuH,MAAV,CAAiBD,UAHD;EAItBlF,QAAQ,EAAEpC,SAAS,CAACwH,KAJE;EAKtBrF,gBAAgB,EAAEnC,SAAS,CAACwH,KALN;EAMtBnF,YAAY,EAAErC,SAAS,CAACyH,IANF;EAOtB7E,QAAQ,EAAE5C,SAAS,CAACuH,MAPE;EAQtBrF,IAAI,EAAElC,SAAS,CAACuH,MARM;EAStBhF,MAAM,EAAEvC,SAAS,CAACwH,KATI;EAUtB/E,IAAI,EAAEzC,SAAS,CAACuH,MAVM;EAWtB5E,YAAY,EAAE3C,SAAS,CAACqH,MAXF;EAYtBvE,cAAc,EAAE9C,SAAS,CAACwH,KAZJ;EAatBzE,YAAY,EAAE/C,SAAS,CAACuH;AAbF,CAAxB;AAgBAzF,WAAW,CAAC4F,YAAZ,GAA2B;EACzBtF,QAAQ,EAAE,EADe;EAEzBD,gBAAgB,EAAE,EAFO;EAGzBE,YAAY,EAAE,KAHW;EAIzBH,IAAI,EAAE,EAJmB;EAKzBK,MAAM,EAAE,EALiB;EAMzBO,cAAc,EAAE,EANS;EAOzBL,IAAI,EAAE,EAPmB;EAQzBG,QAAQ,EAAEhB,GARe;EASzBe,YAAY,EAAE,EATW;EAUzBI,YAAY,EAAE;AAVW,CAA3B;AAaA,eAAejB,WAAf"}
1
+ {"version":3,"file":"ListFactory.js","names":["React","useContext","useQuery","parseUrl","PropTypes","useRouter","MainContext","getSingleEntitySchema","generateSingleItemQuery","getItemList","ListBuilder","AZ_LIST_TYPE","getAzQueryFilter","getSortProps","hasRequiredItemListDetails","getGenericProps","getRequiredSchemas","checkForError","getUnpublishedEntityName","getPaginationIndex","getSearchFilterType","getElasticsearchOperator","buildSearchValuesText","getQueryFilters","getInheritedFilters","getQueryProps","getItemListId","getItemListIds","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","itemListName","isPreview","router","asPath","parsedQuery","replace","query","url","querySort","querySortBy","itemListId","queryItemListId","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","itemListData","itemListError","itemListLoading","errorsToCheck","hasErr","errMsg","itemListIds","isCard","isAZ","genericProps","textFilter","shouldApplyTextFilter","propsToDisplay","valuesText","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","object","isRequired","string","array","bool","defaultProps"],"sources":["../../../src/components/List/ListFactory.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport {\n getSingleEntitySchema,\n generateSingleItemQuery,\n getItemList\n} from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport { getAzQueryFilter, getSortProps, hasRequiredItemListDetails } 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 { getItemListId, getItemListIds } from '../ItemList/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 itemListName\n } = props;\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 {\n query,\n url,\n query: { sort: querySort, sortby: querySortBy, itemListId: queryItemListId } = {}\n } = parseUrl(parsedQuery);\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy\n });\n\n const itemListId = getItemListId(itemListName, queryItemListId);\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\n const { data: itemListData = {}, error: itemListError, loading: itemListLoading } = useQuery(\n getItemList,\n {\n variables: { id: itemListId },\n skip: !itemListId\n }\n );\n\n if (!hasRequiredItemListDetails({ itemListName, router, itemListId, queryItemListId })) return '';\n\n const errorsToCheck = [\n schemaError,\n schemasError,\n requiredSchemaError,\n itemQueryError,\n itemListError\n ];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (\n requiredSchemaLoading ||\n schemasLoading ||\n schemaLoading ||\n itemQueryLoading ||\n itemListLoading\n )\n return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const itemListIds = getItemListIds(itemListData);\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 itemListIds\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 itemListName: PropTypes.string\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 itemListName: ''\n};\n\nexport default ListFactory;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAASC,QAAT,QAAyB,cAAzB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,WAAT,QAA4B,8BAA5B;AACA,SACEC,qBADF,EAEEC,uBAFF,EAGEC,WAHF,QAIO,yBAJP;AAKA,OAAOC,WAAP,MAAwB,eAAxB;AACA,SAASC,YAAT,QAA6B,aAA7B;AACA,SAASC,gBAAT,EAA2BC,YAA3B,EAAyCC,0BAAzC,QAA2E,WAA3E;AACA,SACEC,eADF,EAEEC,kBAFF,EAGEC,aAHF,EAIEC,wBAJF,EAKEC,kBALF,EAMEC,mBANF,EAOEC,wBAPF,EAQEC,qBARF,EASEC,eATF,EAUEC,mBAVF,EAWEC,aAXF,QAYO,eAZP;AAaA,SAASC,aAAT,EAAwBC,cAAxB,QAA8C,qBAA9C;AACA,SAASC,wBAAT,QAAyC,aAAzC;AACA,SAASC,YAAT,EAAuBC,WAAvB,EAAoCC,EAApC,EAAwCC,GAAxC,EAA6CC,IAA7C,QAAyD,iBAAzD;;AAEA,MAAMC,WAAW,GAAGC,KAAK,IAAI;EAC3B,MAAM;IACJC,MADI;IAEJC,MAFI;IAGJC,IAHI;IAIJC,gBAJI;IAKJC,QALI;IAMJC,YANI;IAOJC,IAPI;IAQJC,MAAM,EAAEC,aARJ;IASJC,IAAI,EAAEC,WATF;IAUJC,YAVI;IAWJC,QAAQ,EAAEC,cAXN;IAYJC,cAZI;IAaJC;EAbI,IAcFhB,KAdJ;EAeA,MAAM;IAAEiB;EAAF,IAAgBnD,UAAU,CAACK,WAAD,CAAhC;EACA,MAAM+C,MAAM,GAAGhD,SAAS,EAAxB;EACA,MAAM;IAAEiD;EAAF,IAAaD,MAAnB;EACA,MAAME,WAAW,GAAGD,MAAM,CAACE,OAAP,CAAe,MAAf,EAAuB,GAAvB,EAA4BA,OAA5B,CAAoC,MAApC,EAA4C,GAA5C,CAApB;EACA,MAAM;IACJC,KADI;IAEJC,GAFI;IAGJD,KAAK,EAAE;MAAEZ,IAAI,EAAEc,SAAR;MAAmBhB,MAAM,EAAEiB,WAA3B;MAAwCC,UAAU,EAAEC;IAApD,IAAwE;EAH3E,IAIF3D,QAAQ,CAACoD,WAAD,CAJZ;EAKA,MAAM;IAAEQ,aAAF;IAAiBC;EAAjB,IAA2CnD,YAAY,CAAC;IAC5D8C,SAD4D;IAE5DT,cAF4D;IAG5DJ,WAH4D;IAI5Dc,WAJ4D;IAK5DhB;EAL4D,CAAD,CAA7D;EAQA,MAAMiB,UAAU,GAAGnC,aAAa,CAACyB,YAAD,EAAeW,eAAf,CAAhC;EACA,MAAM;IAAEG,UAAF;IAAcC;EAAd,IAAyB7B,MAA/B;EACA,MAAM8B,iBAAiB,GAAGjD,wBAAwB,CAAC+C,UAAD,CAAlD;EACA,MAAMG,eAAe,GAAGjD,kBAAkB,CAACsC,KAAD,EAAQnB,IAAR,CAA1C;EACA,MAAM+B,QAAQ,GAAGzD,gBAAgB,CAAC6C,KAAD,EAAQnB,IAAR,CAAjC;EAEA,MAAM;IAAEgC,IAAI,EAAEC,YAAR;IAAsBC,KAAK,EAAEC,WAA7B;IAA0CC,OAAO,EAAEC;EAAnD,IAAqEzE,QAAQ,CACjFK,qBADiF,EAEjF;IACEqE,SAAS,EAAE;MAAEC,EAAE,EAAEzC;IAAN;EADb,CAFiF,CAAnF;EAMA,MAAM;IACJkC,IAAI,EAAEQ,WAAW,GAAG,EADhB;IAEJJ,OAAO,EAAEK,cAFL;IAGJP,KAAK,EAAEQ;EAHH,IAIFpD,wBAAwB,CAAC,CAACuC,iBAAD,EAAoB/B,MAApB,CAAD,CAJ5B;EAMA,MAAM;IACJ,CAAC+B,iBAAD,GAAqBc,aAAa,GAAG,EADjC;IAEJ,CAAC7C,MAAD,GAAU8C,kBAAkB,GAAG;EAF3B,IAGFJ,WAHJ;EAKA,MAAM;IACJR,IAAI,EAAEa,cAAc,GAAG,EADnB;IAEJT,OAAO,EAAEU,qBAFL;IAGJZ,KAAK,EAAEa;EAHH,IAIFzD,wBAAwB,CAC1BZ,kBAAkB,CAAC,CAAC,GAAGuB,gBAAJ,EAAsB,GAAGwB,aAAzB,CAAD,EAA0CmB,kBAA1C,CADQ,EAE1BH,cAF0B,CAJ5B;EAQA,MAAMO,gBAAgB,GAAG9D,mBAAmB,CAACgB,QAAD,EAAWD,gBAAX,CAA5C;EACA,MAAMgD,UAAU,GAAG9D,aAAa,CAAC6D,gBAAD,EAAmBL,aAAnB,EAAkCC,kBAAlC,CAAhC;EACA,MAAM;IAAEM,OAAO,GAAG;EAAZ,IAAmBP,aAAa,IAAI,EAA1C;EACA,MAAMQ,SAAS,GAAGrC,SAAS,GAAGoC,OAAO,CAACE,GAAX,GAAiBF,OAAO,CAACG,YAApD;EAEA,MAAM;IACJrB,IAAI,EAAE;MAAEsB,UAAU,GAAG;IAAf,IAAsB,EADxB;IAEJpB,KAAK,EAAEqB,cAFH;IAGJnB,OAAO,EAAEoB;EAHL,IAIF5F,QAAQ,CAACM,uBAAuB,CAACiF,SAAD,EAAYF,UAAZ,CAAxB,EAAiD;IAC3DX,SAAS,EAAE;MAAEC,EAAE,EAAEX;IAAN,CADgD;IAE3D6B,IAAI,EAAEhB,cAAc,IAAK,CAACO,gBAAgB,CAACU,MAAlB,IAA4BT,UAAU,KAAKxD;EAFT,CAAjD,CAJZ;EASA,MAAM;IAAEuC,IAAI,EAAE2B,YAAY,GAAG,EAAvB;IAA2BzB,KAAK,EAAE0B,aAAlC;IAAiDxB,OAAO,EAAEyB;EAA1D,IAA8EjG,QAAQ,CAC1FO,WAD0F,EAE1F;IACEmE,SAAS,EAAE;MAAEC,EAAE,EAAEhB;IAAN,CADb;IAEEkC,IAAI,EAAE,CAAClC;EAFT,CAF0F,CAA5F;EAQA,IAAI,CAAC/C,0BAA0B,CAAC;IAAEqC,YAAF;IAAgBE,MAAhB;IAAwBQ,UAAxB;IAAoCC;EAApC,CAAD,CAA/B,EAAwF,OAAO,EAAP;EAExF,MAAMsC,aAAa,GAAG,CACpB3B,WADoB,EAEpBO,YAFoB,EAGpBK,mBAHoB,EAIpBQ,cAJoB,EAKpBK,aALoB,CAAtB;EAOA,MAAM;IAAEG,MAAF;IAAUC;EAAV,IAAqBrF,aAAa,CAACmF,aAAD,CAAxC;EAEA,IACEhB,qBAAqB,IACrBL,cADA,IAEAJ,aAFA,IAGAmB,gBAHA,IAIAK,eALF,EAOE,OAAO,EAAP;EACF,IAAIE,MAAJ,EAAY,OAAOC,MAAP;EACZ,IAAI,CAAC/B,YAAL,EAAmB,OAAO,IAAP;EAEnB,MAAMgC,WAAW,GAAG5E,cAAc,CAACsE,YAAD,CAAlC;EACA,MAAMO,MAAM,GAAG9D,IAAI,KAAKT,IAAxB;EACA,MAAMwE,IAAI,GAAG/D,IAAI,KAAK/B,YAAtB;EACA,MAAM+F,YAAY,GAAG3F,eAAe,CAACoB,KAAD,CAApC;EACA,MAAM,CAACwE,UAAD,IAAevF,mBAAmB,CAAC2B,YAAD,EAAejB,WAAf,CAAxC;EACA,MAAM8E,qBAAqB,GAAGD,UAAU,IAAIA,UAAU,CAACE,cAAX,CAA0Bb,MAAtE;EACA,MAAMhD,QAAQ,GAAG4D,qBAAqB,GAAGvF,wBAAwB,CAACsF,UAAD,CAA3B,GAA0C9E,YAAhF;EACA,MAAMiF,UAAU,GAAGF,qBAAqB,GAAGtF,qBAAqB,CAACqF,UAAD,EAAalD,KAAb,CAAxB,GAA8C,EAAtF;EACA,MAAM;IAAEsD,SAAF;IAAaC;EAAb,IAA0BzF,eAAe,CAACwB,YAAD,EAAeU,KAAf,CAA/C;EACA,MAAMwD,yBAAyB,GAAG,CAAC,EACjCxD,KAAK,CAACyD,WAAN,IACAnE,YADA,IAEA3B,mBAAmB,CAAC2B,YAAD,EAAejB,WAAf,CAAnB,CAA+CkE,MAHd,CAAnC;EAMA,MAAMmB,YAAY,GAAG;IACnBC,gBAAgB,EAAEN,UADC;IAEnBO,+BAA+B,EAAEN,SAFd;IAGnBO,sBAAsB,EAAEN;EAHL,CAArB;;EAKA,MAAMO,SAAS,iDACVpF,KADU,GAEVuE,YAFU;IAGbjD,KAHa;IAIbC,GAJa;IAKb8C,MALa;IAMbC,IANa;IAObpD,MAPa;IAQbkB,YARa;IASb1B,IAAI,EAAE,IATO;IAUbF,MAAM,EAAE,IAVK;IAWbO,cAAc,EAAEc,qBAXH;IAYbK,QAZa;IAab8C,YAba;IAcbjC,kBAda;IAebC,cAfa;IAgBbF,aAhBa;IAiBbxC,YAjBa;IAkBbO,QAlBa;IAmBbiE,yBAnBa;IAoBb7C,eApBa;IAqBbwB,UArBa;IAsBbN,gBAtBa;IAuBbrC,cAvBa;IAwBbsD;EAxBa,EAAf;;EA2BA,oBAAO,oBAAC,WAAD,EAAiBgB,SAAjB,CAAP;AACD,CA5JD;;AA8JArF,WAAW,CAACsF,SAAZ,GAAwB;EACtBnF,MAAM,EAAEjC,SAAS,CAACqH,MAAV,CAAiBC,UADH;EAEtBtF,MAAM,EAAEhC,SAAS,CAACuH,MAAV,CAAiBD,UAFH;EAGtBhF,IAAI,EAAEtC,SAAS,CAACuH,MAAV,CAAiBD,UAHD;EAItBlF,QAAQ,EAAEpC,SAAS,CAACwH,KAJE;EAKtBrF,gBAAgB,EAAEnC,SAAS,CAACwH,KALN;EAMtBnF,YAAY,EAAErC,SAAS,CAACyH,IANF;EAOtB7E,QAAQ,EAAE5C,SAAS,CAACuH,MAPE;EAQtBrF,IAAI,EAAElC,SAAS,CAACuH,MARM;EAStBhF,MAAM,EAAEvC,SAAS,CAACwH,KATI;EAUtB/E,IAAI,EAAEzC,SAAS,CAACuH,MAVM;EAWtB5E,YAAY,EAAE3C,SAAS,CAACqH,MAXF;EAYtBvE,cAAc,EAAE9C,SAAS,CAACwH,KAZJ;EAatBzE,YAAY,EAAE/C,SAAS,CAACuH;AAbF,CAAxB;AAgBAzF,WAAW,CAAC4F,YAAZ,GAA2B;EACzBtF,QAAQ,EAAE,EADe;EAEzBD,gBAAgB,EAAE,EAFO;EAGzBE,YAAY,EAAE,KAHW;EAIzBH,IAAI,EAAE,EAJmB;EAKzBK,MAAM,EAAE,EALiB;EAMzBO,cAAc,EAAE,EANS;EAOzBL,IAAI,EAAE,EAPmB;EAQzBG,QAAQ,EAAEhB,GARe;EASzBe,YAAY,EAAE,EATW;EAUzBI,YAAY,EAAE;AAVW,CAA3B;AAaA,eAAejB,WAAf"}
@@ -0,0 +1,20 @@
1
+ import { setParamAndRedirect } from '../../ItemList/helpers';
2
+
3
+ const hasRequiredItemListDetails = ({
4
+ itemListName,
5
+ router,
6
+ itemListId,
7
+ queryItemListId
8
+ }) => {
9
+ if (!itemListName) return true;
10
+
11
+ if (!queryItemListId && itemListId) {
12
+ setParamAndRedirect(router, itemListId);
13
+ return false;
14
+ }
15
+
16
+ return !!queryItemListId;
17
+ };
18
+
19
+ export default hasRequiredItemListDetails;
20
+ //# sourceMappingURL=has-required-item-list-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-required-item-list-details.js","names":["setParamAndRedirect","hasRequiredItemListDetails","itemListName","router","itemListId","queryItemListId"],"sources":["../../../../src/components/List/helpers/has-required-item-list-details.js"],"sourcesContent":["import { setParamAndRedirect } from '../../ItemList/helpers';\n\nconst hasRequiredItemListDetails = ({ itemListName, router, itemListId, queryItemListId }) => {\n if (!itemListName) return true;\n\n if (!queryItemListId && itemListId) {\n setParamAndRedirect(router, itemListId);\n return false;\n }\n\n return !!queryItemListId;\n};\n\nexport default hasRequiredItemListDetails;\n"],"mappings":"AAAA,SAASA,mBAAT,QAAoC,wBAApC;;AAEA,MAAMC,0BAA0B,GAAG,CAAC;EAAEC,YAAF;EAAgBC,MAAhB;EAAwBC,UAAxB;EAAoCC;AAApC,CAAD,KAA2D;EAC5F,IAAI,CAACH,YAAL,EAAmB,OAAO,IAAP;;EAEnB,IAAI,CAACG,eAAD,IAAoBD,UAAxB,EAAoC;IAClCJ,mBAAmB,CAACG,MAAD,EAASC,UAAT,CAAnB;IACA,OAAO,KAAP;EACD;;EAED,OAAO,CAAC,CAACC,eAAT;AACD,CATD;;AAWA,eAAeJ,0BAAf"}
@@ -5,4 +5,5 @@ 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
7
  export { default as getSortProps } from './get-sort-props';
8
+ export { default as hasRequiredItemListDetails } from './has-required-item-list-details';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","buildPaginationItems","getAzQueryFilter","buildAzAggregations","buildAzUrl","sortAggs","getItemsPerPageToUse","getSortProps"],"sources":["../../../../src/components/List/helpers/index.js"],"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"],"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"}
1
+ {"version":3,"file":"index.js","names":["default","buildPaginationItems","getAzQueryFilter","buildAzAggregations","buildAzUrl","sortAggs","getItemsPerPageToUse","getSortProps","hasRequiredItemListDetails"],"sources":["../../../../src/components/List/helpers/index.js"],"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';\nexport { default as hasRequiredItemListDetails } from './has-required-item-list-details';\n"],"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;AACA,SAASP,OAAO,IAAIQ,0BAApB,QAAsD,kCAAtD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.124.0-alpha.33",
3
+ "version": "0.124.0-alpha.34",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -85,5 +85,5 @@
85
85
  "lib/*",
86
86
  "lib-es/*"
87
87
  ],
88
- "gitHead": "c0f480d7a6c302bd9f4e13eff024cb6da4286e2f"
88
+ "gitHead": "a4f72388709e1c0f77565e5cbce6d8ed8b553d17"
89
89
  }
@@ -3,17 +3,21 @@ import PropTypes from 'prop-types';
3
3
  import { useRouter } from 'next/router';
4
4
  import { useQuery } from '@apollo/client';
5
5
  import BlazeButton from '@blaze-react/button';
6
+ import { parseUrl } from 'query-string';
6
7
  import { getItemList } from '../../../application/query';
7
8
  import { useItemListId } from '../hooks';
8
9
  import { getItemListData, setItemListId, setParamAndRedirect } from '../helpers';
10
+ import { LIST_ITEM_QUERY_PARAM } from '../constants';
9
11
 
10
12
  const ItemListNew = ({ listName, modifier, text }) => {
11
13
  const router = useRouter();
12
- const { listId } = useItemListId({ listName });
14
+ const { query: { [LIST_ITEM_QUERY_PARAM]: listItemId } = {} } = parseUrl(router.asPath);
13
15
 
16
+ const { listId } = useItemListId({ listName });
17
+ const listIdToUse = listItemId || listId;
14
18
  const { data, error, loading } = useQuery(getItemList, {
15
- variables: { id: listId },
16
- skip: !listId
19
+ variables: { id: listIdToUse },
20
+ skip: !listIdToUse
17
21
  });
18
22
 
19
23
  if (loading) return '';
@@ -11,7 +11,7 @@ import {
11
11
  } from '../../application/query';
12
12
  import ListBuilder from './ListBuilder';
13
13
  import { AZ_LIST_TYPE } from './constants';
14
- import { getAzQueryFilter, getSortProps } from './helpers';
14
+ import { getAzQueryFilter, getSortProps, hasRequiredItemListDetails } from './helpers';
15
15
  import {
16
16
  getGenericProps,
17
17
  getRequiredSchemas,
@@ -25,7 +25,7 @@ import {
25
25
  getInheritedFilters,
26
26
  getQueryProps
27
27
  } from '../../helpers';
28
- import { getItemListId, getItemListIds, setParamAndRedirect } from '../ItemList/helpers';
28
+ import { getItemListId, getItemListIds } from '../ItemList/helpers';
29
29
  import { useGetEntitySchemasAsObj } from '../../hooks';
30
30
  import { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';
31
31
 
@@ -114,9 +114,8 @@ const ListFactory = props => {
114
114
  skip: !itemListId
115
115
  }
116
116
  );
117
- if (!queryItemListId && itemListId) {
118
- setParamAndRedirect(router, itemListId);
119
- }
117
+
118
+ if (!hasRequiredItemListDetails({ itemListName, router, itemListId, queryItemListId })) return '';
120
119
 
121
120
  const errorsToCheck = [
122
121
  schemaError,
@@ -0,0 +1,14 @@
1
+ import { setParamAndRedirect } from '../../ItemList/helpers';
2
+
3
+ const hasRequiredItemListDetails = ({ itemListName, router, itemListId, queryItemListId }) => {
4
+ if (!itemListName) return true;
5
+
6
+ if (!queryItemListId && itemListId) {
7
+ setParamAndRedirect(router, itemListId);
8
+ return false;
9
+ }
10
+
11
+ return !!queryItemListId;
12
+ };
13
+
14
+ export default hasRequiredItemListDetails;
@@ -5,3 +5,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
7
  export { default as getSortProps } from './get-sort-props';
8
+ export { default as hasRequiredItemListDetails } from './has-required-item-list-details';
@@ -2,13 +2,19 @@ import React from 'react';
2
2
  import '@testing-library/jest-dom/extend-expect';
3
3
  import { render, waitFor, fireEvent } from '@testing-library/react';
4
4
  import { MockedProvider } from '@apollo/client/testing';
5
-
5
+ import { useRouter } from 'next/router';
6
6
  import ItemListNew from '../../../../../src/components/ItemList/ItemListNew';
7
7
  import { getItemList } from '../../../../../src/application/query';
8
8
  import userItemListId from '../../../../../src/components/ItemList/hooks/use-item-list-id';
9
9
  import getItemListData from '../../../../../src/components/ItemList/helpers/get-item-list-data';
10
10
  import setItemListId from '../../../../../src/components/ItemList/helpers/set-item-list-id';
11
11
  import setParamAndRedirect from '../../../../../src/components/ItemList/helpers/set-param-and-redirect';
12
+ import { LIST_ITEM_QUERY_PARAM } from '../../../../../src/components/ItemList/constants';
13
+
14
+ jest.mock('next/router', () => {
15
+ const useRouterMock = jest.fn(() => ({ asPath: '/test' }));
16
+ return { useRouter: useRouterMock };
17
+ });
12
18
 
13
19
  jest.mock('../../../../../src/components/ItemList/hooks/use-item-list-id', () =>
14
20
  jest.fn(() => ({ listId: 'LIST ID' }))
@@ -33,6 +39,8 @@ jest.mock('../../../../../src/components/ItemList/helpers/get-item-list-data', (
33
39
  const listId = 'LIST ID';
34
40
  const missingListId = 'MISSING';
35
41
  const emptyListId = 'EMPTY';
42
+ const queryListId = 'QUERY-LIST-ID';
43
+ const queryListItem = { itemId: 'ID FROM QUERY', itemEntity: 'ENTITY' };
36
44
  const mocks = [
37
45
  {
38
46
  request: {
@@ -66,6 +74,17 @@ const mocks = [
66
74
  getItemList: { id: emptyListId, listItems: [] }
67
75
  }
68
76
  }
77
+ },
78
+ {
79
+ request: {
80
+ query: getItemList,
81
+ variables: { id: queryListId }
82
+ },
83
+ result: {
84
+ data: {
85
+ getItemList: { id: queryListId, listItems: [queryListItem] }
86
+ }
87
+ }
69
88
  }
70
89
  ];
71
90
 
@@ -102,6 +121,23 @@ describe('ItemListNew component', () => {
102
121
  expect(asFragment()).toMatchSnapshot();
103
122
  });
104
123
 
124
+ it('should render using listId from query', async () => {
125
+ userItemListId.mockReturnValue({ listId });
126
+ const queryStringPath = { asPath: `/test?${LIST_ITEM_QUERY_PARAM}=${queryListId}` };
127
+ useRouter.mockReturnValueOnce(queryStringPath).mockReturnValueOnce(queryStringPath);
128
+ const { asFragment } = render(
129
+ <MockedProvider mocks={mocks}>
130
+ <ItemListNew {...props} listName={queryListId} />
131
+ </MockedProvider>
132
+ );
133
+
134
+ await waitFor(() => expect(getItemListData).toHaveBeenCalled());
135
+ expect(getItemListData).toHaveBeenCalledWith({
136
+ getItemList: { id: queryListId, listItems: [queryListItem] }
137
+ });
138
+ expect(asFragment()).toMatchSnapshot();
139
+ });
140
+
105
141
  it('should not render if list has not items', async () => {
106
142
  userItemListId.mockReturnValue({ listId: emptyListId });
107
143
  const { asFragment } = render(
@@ -14,3 +14,14 @@ exports[`ItemListNew component should match snapshot and render without throwing
14
14
  exports[`ItemListNew component should not render if list has not items 1`] = `<DocumentFragment />`;
15
15
 
16
16
  exports[`ItemListNew component should not render if list not found 1`] = `<DocumentFragment />`;
17
+
18
+ exports[`ItemListNew component should render using listId from query 1`] = `
19
+ <DocumentFragment>
20
+ <button
21
+ class="item-list-new button"
22
+ type="button"
23
+ >
24
+ Clear list
25
+ </button>
26
+ </DocumentFragment>
27
+ `;
@@ -0,0 +1,30 @@
1
+ import hasRequiredItemListDetails from '../../../../../../src/components/List/helpers/has-required-item-list-details';
2
+ import setParamAndRedirect from '../../../../../../src/components/ItemList/helpers/set-param-and-redirect';
3
+
4
+ jest.mock('../../../../../../src/components/ItemList/helpers/set-param-and-redirect', () =>
5
+ jest.fn()
6
+ );
7
+
8
+ describe('hasRequiredItemListDetails helper function', () => {
9
+ const itemListId = 'localstorage id';
10
+ const router = {};
11
+ const itemListName = 'LIST NAME';
12
+ const queryItemListId = 'query id';
13
+
14
+ it('should return true if no itemListName', () => {
15
+ expect(hasRequiredItemListDetails({})).toEqual(true);
16
+ });
17
+
18
+ it('should call setParamAndRedirect if queryItemListId not set and itemListId is', () => {
19
+ expect(hasRequiredItemListDetails({ itemListName, itemListId, router })).toEqual(false);
20
+ expect(setParamAndRedirect).toHaveBeenCalledWith(router, itemListId);
21
+ });
22
+
23
+ it('should return false if no queryItemListId and itemListId', () => {
24
+ expect(hasRequiredItemListDetails({ itemListName })).toEqual(false);
25
+ });
26
+
27
+ it('should return true queryItemListId is set', () => {
28
+ expect(hasRequiredItemListDetails({ itemListName, queryItemListId })).toEqual(true);
29
+ });
30
+ });