@blaze-cms/react-page-builder 0.124.0-alpha.13 → 0.124.0-alpha.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/lib/application/query/index.js +8 -2
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/Card/CardFactory.js +6 -3
- package/lib/components/Card/CardFactory.js.map +1 -1
- package/lib/components/ItemListButton/ItemListButton.js +171 -0
- package/lib/components/ItemListButton/ItemListButton.js.map +1 -0
- package/lib/components/ItemListButton/index.js +16 -0
- package/lib/components/ItemListButton/index.js.map +1 -0
- package/lib/components/ItemListCounter/ItemListCounter.js +114 -0
- package/lib/components/ItemListCounter/ItemListCounter.js.map +1 -0
- package/lib/components/ItemListCounter/index.js +16 -0
- package/lib/components/ItemListCounter/index.js.map +1 -0
- package/lib/components/List/ListBuilder.js +12 -6
- package/lib/components/List/ListBuilder.js.map +1 -1
- package/lib/components/List/ListFactory.js +32 -7
- package/lib/components/List/ListFactory.js.map +1 -1
- package/lib/components/index.js +10 -0
- package/lib/components/index.js.map +1 -1
- package/lib/constants/index.js +4 -2
- package/lib/constants/index.js.map +1 -1
- package/lib/helpers/build-raw-query.js.map +1 -1
- package/lib/helpers/get-item-list-data.js +17 -0
- package/lib/helpers/get-item-list-data.js.map +1 -0
- package/lib/helpers/get-item-list-id.js +23 -0
- package/lib/helpers/get-item-list-id.js.map +1 -0
- package/lib/helpers/get-item-list-ids.js +28 -0
- package/lib/helpers/get-item-list-ids.js.map +1 -0
- package/lib/helpers/index.js +24 -0
- package/lib/helpers/index.js.map +1 -1
- package/lib-es/application/query/index.js +44 -1
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/components/Card/CardFactory.js +7 -4
- package/lib-es/components/Card/CardFactory.js.map +1 -1
- package/lib-es/components/ItemListButton/ItemListButton.js +118 -0
- package/lib-es/components/ItemListButton/ItemListButton.js.map +1 -0
- package/lib-es/components/ItemListButton/index.js +3 -0
- package/lib-es/components/ItemListButton/index.js.map +1 -0
- package/lib-es/components/ItemListCounter/ItemListCounter.js +67 -0
- package/lib-es/components/ItemListCounter/ItemListCounter.js.map +1 -0
- package/lib-es/components/ItemListCounter/index.js +3 -0
- package/lib-es/components/ItemListCounter/index.js.map +1 -0
- package/lib-es/components/List/ListBuilder.js +12 -6
- package/lib-es/components/List/ListBuilder.js.map +1 -1
- package/lib-es/components/List/ListFactory.js +33 -9
- package/lib-es/components/List/ListFactory.js.map +1 -1
- package/lib-es/components/index.js +6 -0
- package/lib-es/components/index.js.map +1 -1
- package/lib-es/constants/index.js +2 -1
- package/lib-es/constants/index.js.map +1 -1
- package/lib-es/helpers/build-raw-query.js.map +1 -1
- package/lib-es/helpers/get-item-list-data.js +7 -0
- package/lib-es/helpers/get-item-list-data.js.map +1 -0
- package/lib-es/helpers/get-item-list-id.js +11 -0
- package/lib-es/helpers/get-item-list-id.js.map +1 -0
- package/lib-es/helpers/get-item-list-ids.js +13 -0
- package/lib-es/helpers/get-item-list-ids.js.map +1 -0
- package/lib-es/helpers/index.js +3 -0
- package/lib-es/helpers/index.js.map +1 -1
- package/package.json +2 -2
- package/src/application/query/index.js +50 -1
- package/src/components/Card/CardFactory.js +5 -3
- package/src/components/ItemListButton/ItemListButton.js +107 -0
- package/src/components/ItemListButton/index.js +3 -0
- package/src/components/ItemListCounter/ItemListCounter.js +68 -0
- package/src/components/ItemListCounter/index.js +3 -0
- package/src/components/List/ListBuilder.js +10 -5
- package/src/components/List/ListFactory.js +50 -12
- package/src/components/index.js +6 -0
- package/src/constants/index.js +4 -1
- package/src/helpers/build-raw-query.js +1 -0
- package/src/helpers/get-item-list-data.js +6 -0
- package/src/helpers/get-item-list-id.js +11 -0
- package/src/helpers/get-item-list-ids.js +10 -0
- package/src/helpers/index.js +3 -0
- package/tests/unit/src/components/__snapshots__/index.test.js.snap +8 -0
- package/tests/unit/src/helpers/get-item-list-data.test.js +28 -0
- package/tests/unit/src/helpers/get-item-list-id.test.js +20 -0
- package/tests/unit/src/helpers/get-item-list-ids.test.js +19 -0
|
@@ -165,5 +165,48 @@ const getPublishedContent = entity => `
|
|
|
165
165
|
}
|
|
166
166
|
`;
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
const getItemList = gql`
|
|
169
|
+
query getItemList($id: String!) {
|
|
170
|
+
getItemList(id: $id) {
|
|
171
|
+
listItems {
|
|
172
|
+
itemId
|
|
173
|
+
itemEntity
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
`;
|
|
178
|
+
const addItemsToList = gql`
|
|
179
|
+
mutation addItemsToList(
|
|
180
|
+
$name: String!
|
|
181
|
+
$id: String
|
|
182
|
+
$listItems: [AddItemsToListInputListItemsItem]!
|
|
183
|
+
) {
|
|
184
|
+
addItemsToList(input: { name: $name, id: $id, listItems: $listItems }) {
|
|
185
|
+
result {
|
|
186
|
+
id
|
|
187
|
+
listItems {
|
|
188
|
+
itemId
|
|
189
|
+
itemEntity
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
`;
|
|
195
|
+
const removeItemsFromList = gql`
|
|
196
|
+
mutation removeItemsFromList(
|
|
197
|
+
$listId: String!
|
|
198
|
+
$listItems: [RemoveItemsFromListInputListItemsItem]!
|
|
199
|
+
) {
|
|
200
|
+
removeItemsFromList(input: { id: $listId, listItems: $listItems }) {
|
|
201
|
+
result {
|
|
202
|
+
id
|
|
203
|
+
listItems {
|
|
204
|
+
itemId
|
|
205
|
+
itemEntity
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
`;
|
|
211
|
+
export { getEntitySchema, getSingleEntitySchema, getAction, getFiles, getFileById, generateMultiItemQuery, generateSingleItemQuery, getPublishedContent, getSearchPublishedContent, getCount, getMultipleSchema, getUser, getRecordParents, getItemList, addItemsToList, removeItemsFromList };
|
|
169
212
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n image {\n url\n __typename\n }\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,gBAAgB,GAAGC,SAAS,IAAIV,GAAI;AAC1C;AACA,mBAAmBU,SAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAZA;;AAcA,MAAMC,iBAAiB,GAAGC,WAAW,IAAI;EACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcb,kBAAmB;AACjC,QAJsB,EAMjBc,IANiB,CAMX,IANW,CAApB;EAOA,OAAOhB,GAAI;AACb;AACA,QAAQa,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGjB,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMkB,WAAW,GAAGlB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMmB,QAAQ,GAAGC,MAAM,IAAIpB,GAAI;AAC/B,MAAMoB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcrB,UAAU,CAACmB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACtD;AACA,MAAMoB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACvD;AACA,kBAAkBoB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;EACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;EACA,OAAOtB,GAAI;AACb,MAAM0B,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,MAAMC,mBAAmB,GAAGC,MAAM,IAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBA,MAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CA9BA;;AAgCA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity","getItemList","addItemsToList","removeItemsFromList"],"sources":["../../../src/application/query/index.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n image {\n url\n __typename\n }\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nconst getItemList = gql`\n query getItemList($id: String!) {\n getItemList(id: $id) {\n listItems {\n itemId\n itemEntity\n }\n }\n }\n`;\n\nconst addItemsToList = gql`\n mutation addItemsToList(\n $name: String!\n $id: String\n $listItems: [AddItemsToListInputListItemsItem]!\n ) {\n addItemsToList(input: { name: $name, id: $id, listItems: $listItems }) {\n result {\n id\n listItems {\n itemId\n itemEntity\n }\n }\n }\n }\n`;\n\nconst removeItemsFromList = gql`\n mutation removeItemsFromList(\n $listId: String!\n $listItems: [RemoveItemsFromListInputListItemsItem]!\n ) {\n removeItemsFromList(input: { id: $listId, listItems: $listItems }) {\n result {\n id\n listItems {\n itemId\n itemEntity\n }\n }\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents,\n getItemList,\n addItemsToList,\n removeItemsFromList\n};\n"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,gBAAgB,GAAGC,SAAS,IAAIV,GAAI;AAC1C;AACA,mBAAmBU,SAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAZA;;AAcA,MAAMC,iBAAiB,GAAGC,WAAW,IAAI;EACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcb,kBAAmB;AACjC,QAJsB,EAMjBc,IANiB,CAMX,IANW,CAApB;EAOA,OAAOhB,GAAI;AACb;AACA,QAAQa,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGjB,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMkB,WAAW,GAAGlB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMmB,QAAQ,GAAGC,MAAM,IAAIpB,GAAI;AAC/B,MAAMoB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcrB,UAAU,CAACmB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACtD;AACA,MAAMoB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACvD;AACA,kBAAkBoB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;EACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;EACA,OAAOtB,GAAI;AACb,MAAM0B,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,MAAMC,mBAAmB,GAAGC,MAAM,IAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBA,MAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CA9BA;;AAgCA,MAAMC,WAAW,GAAG7B,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;AAWA,MAAM8B,cAAc,GAAG9B,GAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAhBA;AAkBA,MAAM+B,mBAAmB,GAAG/B,GAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAfA;AAiBA,SACEO,eADF,EAEEC,qBAFF,EAGEiB,SAHF,EAIER,QAJF,EAKEC,WALF,EAMEK,sBANF,EAOEC,uBAPF,EAQEG,mBARF,EASExB,yBATF,EAUEgB,QAVF,EAWER,iBAXF,EAYEN,OAZF,EAaEI,gBAbF,EAcEoB,WAdF,EAeEC,cAfF,EAgBEC,mBAhBF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
const _excluded = ["entity", "propsToDisplay", "itemsToDisplay"],
|
|
3
|
+
const _excluded = ["entity", "propsToDisplay", "itemsToDisplay", "itemListName"],
|
|
4
4
|
_excluded2 = ["gridModifier"];
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { useQuery } from '@apollo/client';
|
|
@@ -14,7 +14,8 @@ const CardFactory = _ref => {
|
|
|
14
14
|
let {
|
|
15
15
|
entity,
|
|
16
16
|
propsToDisplay,
|
|
17
|
-
itemsToDisplay
|
|
17
|
+
itemsToDisplay,
|
|
18
|
+
itemListName
|
|
18
19
|
} = _ref,
|
|
19
20
|
cardProps = _objectWithoutProperties(_ref, _excluded);
|
|
20
21
|
|
|
@@ -53,11 +54,13 @@ const CardFactory = _ref => {
|
|
|
53
54
|
CardFactory.propTypes = {
|
|
54
55
|
entity: PropTypes.string.isRequired,
|
|
55
56
|
propsToDisplay: PropTypes.array,
|
|
56
|
-
itemsToDisplay: PropTypes.array
|
|
57
|
+
itemsToDisplay: PropTypes.array,
|
|
58
|
+
itemListName: PropTypes.string
|
|
57
59
|
};
|
|
58
60
|
CardFactory.defaultProps = {
|
|
59
61
|
propsToDisplay: [],
|
|
60
|
-
itemsToDisplay: []
|
|
62
|
+
itemsToDisplay: [],
|
|
63
|
+
itemListName: ''
|
|
61
64
|
};
|
|
62
65
|
export default CardFactory;
|
|
63
66
|
//# sourceMappingURL=CardFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardFactory.js","names":["React","useQuery","PropTypes","getSingleEntitySchema","CardRender","buildPropsQuery","getGenericProps","checkPropsToUse","WITH_BANNER","CardFactory","entity","propsToDisplay","itemsToDisplay","cardProps","data","error","loading","variables","id","message","propsToDisplayValues","extraProps","gridModifier","cardRenderProps","extraModifierForBanner","banner","propTypes","string","isRequired","array","defaultProps"],"sources":["../../../src/components/Card/CardFactory.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { getSingleEntitySchema } from '../../application/query';\nimport CardRender from './CardRender';\nimport { buildPropsQuery, getGenericProps, checkPropsToUse } from '../../helpers';\nimport { WITH_BANNER } from '../../constants';\n\nconst CardFactory = ({ entity, propsToDisplay, itemsToDisplay, ...cardProps }) => {\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity }\n });\n\n if (loading) return '';\n if (error) return error.message;\n if (!data) return null;\n\n const propsToDisplayValues = checkPropsToUse(propsToDisplay);\n const extraProps = buildPropsQuery(data, propsToDisplayValues, cardProps) || '';\n const { gridModifier, ...cardRenderProps } = getGenericProps(cardProps);\n const extraModifierForBanner = cardRenderProps.banner ? WITH_BANNER : '';\n\n return (\n <CardRender\n gridModifier={`${gridModifier}${extraModifierForBanner}`}\n bannerModifier={extraModifierForBanner}\n entity={entity}\n itemsToDisplay={itemsToDisplay}\n propsToDisplay={propsToDisplay}\n entityFields={extraProps}\n {...cardRenderProps}\n />\n );\n};\n\nCardFactory.propTypes = {\n entity: PropTypes.string.isRequired,\n propsToDisplay: PropTypes.array,\n itemsToDisplay: PropTypes.array\n};\n\nCardFactory.defaultProps = {\n propsToDisplay: [],\n itemsToDisplay: []\n};\n\nexport default CardFactory;\n"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,qBAAT,QAAsC,yBAAtC;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,SAASC,eAAT,EAA0BC,eAA1B,EAA2CC,eAA3C,QAAkE,eAAlE;AACA,SAASC,WAAT,QAA4B,iBAA5B;;AAEA,MAAMC,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"CardFactory.js","names":["React","useQuery","PropTypes","getSingleEntitySchema","CardRender","buildPropsQuery","getGenericProps","checkPropsToUse","WITH_BANNER","CardFactory","entity","propsToDisplay","itemsToDisplay","itemListName","cardProps","data","error","loading","variables","id","message","propsToDisplayValues","extraProps","gridModifier","cardRenderProps","extraModifierForBanner","banner","propTypes","string","isRequired","array","defaultProps"],"sources":["../../../src/components/Card/CardFactory.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { getSingleEntitySchema } from '../../application/query';\nimport CardRender from './CardRender';\nimport { buildPropsQuery, getGenericProps, checkPropsToUse } from '../../helpers';\nimport { WITH_BANNER } from '../../constants';\n\nconst CardFactory = ({ entity, propsToDisplay, itemsToDisplay, itemListName, ...cardProps }) => {\n const { data, error, loading } = useQuery(getSingleEntitySchema, {\n variables: { id: entity }\n });\n\n if (loading) return '';\n if (error) return error.message;\n if (!data) return null;\n\n const propsToDisplayValues = checkPropsToUse(propsToDisplay);\n const extraProps = buildPropsQuery(data, propsToDisplayValues, cardProps) || '';\n const { gridModifier, ...cardRenderProps } = getGenericProps(cardProps);\n const extraModifierForBanner = cardRenderProps.banner ? WITH_BANNER : '';\n\n return (\n <CardRender\n gridModifier={`${gridModifier}${extraModifierForBanner}`}\n bannerModifier={extraModifierForBanner}\n entity={entity}\n itemsToDisplay={itemsToDisplay}\n propsToDisplay={propsToDisplay}\n entityFields={extraProps}\n {...cardRenderProps}\n />\n );\n};\n\nCardFactory.propTypes = {\n entity: PropTypes.string.isRequired,\n propsToDisplay: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n itemListName: PropTypes.string\n};\n\nCardFactory.defaultProps = {\n propsToDisplay: [],\n itemsToDisplay: [],\n itemListName: ''\n};\n\nexport default CardFactory;\n"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,qBAAT,QAAsC,yBAAtC;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,SAASC,eAAT,EAA0BC,eAA1B,EAA2CC,eAA3C,QAAkE,eAAlE;AACA,SAASC,WAAT,QAA4B,iBAA5B;;AAEA,MAAMC,WAAW,GAAG,QAA4E;EAAA,IAA3E;IAAEC,MAAF;IAAUC,cAAV;IAA0BC,cAA1B;IAA0CC;EAA1C,CAA2E;EAAA,IAAhBC,SAAgB;;EAC9F,MAAM;IAAEC,IAAF;IAAQC,KAAR;IAAeC;EAAf,IAA2BhB,QAAQ,CAACE,qBAAD,EAAwB;IAC/De,SAAS,EAAE;MAAEC,EAAE,EAAET;IAAN;EADoD,CAAxB,CAAzC;EAIA,IAAIO,OAAJ,EAAa,OAAO,EAAP;EACb,IAAID,KAAJ,EAAW,OAAOA,KAAK,CAACI,OAAb;EACX,IAAI,CAACL,IAAL,EAAW,OAAO,IAAP;EAEX,MAAMM,oBAAoB,GAAGd,eAAe,CAACI,cAAD,CAA5C;EACA,MAAMW,UAAU,GAAGjB,eAAe,CAACU,IAAD,EAAOM,oBAAP,EAA6BP,SAA7B,CAAf,IAA0D,EAA7E;;EACA,yBAA6CR,eAAe,CAACQ,SAAD,CAA5D;EAAA,MAAM;IAAES;EAAF,CAAN;EAAA,MAAyBC,eAAzB;;EACA,MAAMC,sBAAsB,GAAGD,eAAe,CAACE,MAAhB,GAAyBlB,WAAzB,GAAuC,EAAtE;EAEA,oBACE,oBAAC,UAAD;IACE,YAAY,EAAG,GAAEe,YAAa,GAAEE,sBAAuB,EADzD;IAEE,cAAc,EAAEA,sBAFlB;IAGE,MAAM,EAAEf,MAHV;IAIE,cAAc,EAAEE,cAJlB;IAKE,cAAc,EAAED,cALlB;IAME,YAAY,EAAEW;EANhB,GAOME,eAPN,EADF;AAWD,CAzBD;;AA2BAf,WAAW,CAACkB,SAAZ,GAAwB;EACtBjB,MAAM,EAAER,SAAS,CAAC0B,MAAV,CAAiBC,UADH;EAEtBlB,cAAc,EAAET,SAAS,CAAC4B,KAFJ;EAGtBlB,cAAc,EAAEV,SAAS,CAAC4B,KAHJ;EAItBjB,YAAY,EAAEX,SAAS,CAAC0B;AAJF,CAAxB;AAOAnB,WAAW,CAACsB,YAAZ,GAA2B;EACzBpB,cAAc,EAAE,EADS;EAEzBC,cAAc,EAAE,EAFS;EAGzBC,YAAY,EAAE;AAHW,CAA3B;AAMA,eAAeJ,WAAf"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { BsBookmarkStarFill, BsBookmarkCheckFill, BsBookmarkStar, BsBookmarkXFill } from 'react-icons/bs';
|
|
4
|
+
import { useQuery, useMutation } from '@apollo/client';
|
|
5
|
+
import { getItemList, addItemsToList, removeItemsFromList } from '../../application/query';
|
|
6
|
+
import { getItemListData, getItemListId } from '../../helpers';
|
|
7
|
+
import { LIST_ITEM_LOCAL_KEY } from '../../constants';
|
|
8
|
+
|
|
9
|
+
const ItemListButton = ({
|
|
10
|
+
listName,
|
|
11
|
+
parent,
|
|
12
|
+
modifier
|
|
13
|
+
}) => {
|
|
14
|
+
const {
|
|
15
|
+
itemId,
|
|
16
|
+
itemEntity
|
|
17
|
+
} = parent;
|
|
18
|
+
const idFromStorage = getItemListId(listName);
|
|
19
|
+
const [listId, setListId] = useState(idFromStorage);
|
|
20
|
+
const [isHover, setIsHover] = useState(false);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
const storageEventHandler = () => {
|
|
23
|
+
const newId = getItemListId(listName);
|
|
24
|
+
setListId(newId);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
window.addEventListener('storage', storageEventHandler);
|
|
28
|
+
return () => {
|
|
29
|
+
window.removeEventListener('storage', storageEventHandler);
|
|
30
|
+
};
|
|
31
|
+
}, [listName]);
|
|
32
|
+
|
|
33
|
+
const getIcon = () => {
|
|
34
|
+
if (isInList) return isHover ? BsBookmarkXFill : BsBookmarkCheckFill;
|
|
35
|
+
return isHover ? BsBookmarkStarFill : BsBookmarkStar;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const {
|
|
39
|
+
data,
|
|
40
|
+
error,
|
|
41
|
+
loading
|
|
42
|
+
} = useQuery(getItemList, {
|
|
43
|
+
variables: {
|
|
44
|
+
id: listId
|
|
45
|
+
},
|
|
46
|
+
skip: !listId
|
|
47
|
+
});
|
|
48
|
+
const [addListItem] = useMutation(addItemsToList, {
|
|
49
|
+
onCompleted: ({
|
|
50
|
+
addItemsToList: listAddResult
|
|
51
|
+
}) => {
|
|
52
|
+
const {
|
|
53
|
+
result: {
|
|
54
|
+
id
|
|
55
|
+
}
|
|
56
|
+
} = listAddResult;
|
|
57
|
+
|
|
58
|
+
if (!listId) {
|
|
59
|
+
const localListName = `${LIST_ITEM_LOCAL_KEY}${listName}`;
|
|
60
|
+
localStorage.setItem(localListName, id);
|
|
61
|
+
window.dispatchEvent(new Event('storage'));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const [removeListItem] = useMutation(removeItemsFromList);
|
|
66
|
+
|
|
67
|
+
const clickHandler = () => {
|
|
68
|
+
setIsHover(false);
|
|
69
|
+
isInList ? removeListItem({
|
|
70
|
+
variables: {
|
|
71
|
+
listId,
|
|
72
|
+
listItems: [{
|
|
73
|
+
itemId,
|
|
74
|
+
itemEntity
|
|
75
|
+
}]
|
|
76
|
+
},
|
|
77
|
+
skip: !listId
|
|
78
|
+
}) : addListItem({
|
|
79
|
+
variables: {
|
|
80
|
+
name: listName,
|
|
81
|
+
id: listId,
|
|
82
|
+
listItems: [{
|
|
83
|
+
itemId,
|
|
84
|
+
itemEntity
|
|
85
|
+
}]
|
|
86
|
+
},
|
|
87
|
+
skip: !listId
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
if (loading) return '';
|
|
92
|
+
if (error) return error.message;
|
|
93
|
+
const listItems = getItemListData(data);
|
|
94
|
+
const isInList = !!listItems.find(({
|
|
95
|
+
itemId: idToCheck
|
|
96
|
+
}) => idToCheck === itemId);
|
|
97
|
+
const Icon = getIcon();
|
|
98
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
99
|
+
className: `item-list-button ${modifier}`,
|
|
100
|
+
role: "button",
|
|
101
|
+
onClick: clickHandler,
|
|
102
|
+
onMouseEnter: () => setIsHover(true),
|
|
103
|
+
onMouseLeave: () => setIsHover(false)
|
|
104
|
+
}, /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(Icon, null)));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
ItemListButton.propTypes = {
|
|
108
|
+
parent: PropTypes.object,
|
|
109
|
+
listName: PropTypes.string,
|
|
110
|
+
modifier: PropTypes.string
|
|
111
|
+
};
|
|
112
|
+
ItemListButton.defaultProps = {
|
|
113
|
+
parent: {},
|
|
114
|
+
listName: '',
|
|
115
|
+
modifier: ''
|
|
116
|
+
};
|
|
117
|
+
export default ItemListButton;
|
|
118
|
+
//# sourceMappingURL=ItemListButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemListButton.js","names":["React","useState","useEffect","PropTypes","BsBookmarkStarFill","BsBookmarkCheckFill","BsBookmarkStar","BsBookmarkXFill","useQuery","useMutation","getItemList","addItemsToList","removeItemsFromList","getItemListData","getItemListId","LIST_ITEM_LOCAL_KEY","ItemListButton","listName","parent","modifier","itemId","itemEntity","idFromStorage","listId","setListId","isHover","setIsHover","storageEventHandler","newId","window","addEventListener","removeEventListener","getIcon","isInList","data","error","loading","variables","id","skip","addListItem","onCompleted","listAddResult","result","localListName","localStorage","setItem","dispatchEvent","Event","removeListItem","clickHandler","listItems","name","message","find","idToCheck","Icon","propTypes","object","string","defaultProps"],"sources":["../../../src/components/ItemListButton/ItemListButton.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n BsBookmarkStarFill,\n BsBookmarkCheckFill,\n BsBookmarkStar,\n BsBookmarkXFill\n} from 'react-icons/bs';\nimport { useQuery, useMutation } from '@apollo/client';\nimport { getItemList, addItemsToList, removeItemsFromList } from '../../application/query';\nimport { getItemListData, getItemListId } from '../../helpers';\nimport { LIST_ITEM_LOCAL_KEY } from '../../constants';\n\nconst ItemListButton = ({ listName, parent, modifier }) => {\n const { itemId, itemEntity } = parent;\n const idFromStorage = getItemListId(listName);\n const [listId, setListId] = useState(idFromStorage);\n const [isHover, setIsHover] = useState(false);\n\n useEffect(\n () => {\n const storageEventHandler = () => {\n const newId = getItemListId(listName);\n setListId(newId);\n };\n\n window.addEventListener('storage', storageEventHandler);\n\n return () => {\n window.removeEventListener('storage', storageEventHandler);\n };\n },\n [listName]\n );\n const getIcon = () => {\n if (isInList) return isHover ? BsBookmarkXFill : BsBookmarkCheckFill;\n return isHover ? BsBookmarkStarFill : BsBookmarkStar;\n };\n\n const { data, error, loading } = useQuery(getItemList, {\n variables: { id: listId },\n skip: !listId\n });\n\n const [addListItem] = useMutation(addItemsToList, {\n onCompleted: ({ addItemsToList: listAddResult }) => {\n const {\n result: { id }\n } = listAddResult;\n\n if (!listId) {\n const localListName = `${LIST_ITEM_LOCAL_KEY}${listName}`;\n localStorage.setItem(localListName, id);\n window.dispatchEvent(new Event('storage'));\n }\n }\n });\n\n const [removeListItem] = useMutation(removeItemsFromList);\n\n const clickHandler = () => {\n setIsHover(false);\n isInList\n ? removeListItem({\n variables: { listId, listItems: [{ itemId, itemEntity }] },\n skip: !listId\n })\n : addListItem({\n variables: { name: listName, id: listId, listItems: [{ itemId, itemEntity }] },\n skip: !listId\n });\n };\n\n if (loading) return '';\n if (error) return error.message;\n\n const listItems = getItemListData(data);\n const isInList = !!listItems.find(({ itemId: idToCheck }) => idToCheck === itemId);\n const Icon = getIcon();\n\n return (\n <div\n className={`item-list-button ${modifier}`}\n role=\"button\"\n onClick={clickHandler}\n onMouseEnter={() => setIsHover(true)}\n onMouseLeave={() => setIsHover(false)}>\n <i>\n <Icon />\n </i>\n </div>\n );\n};\n\nItemListButton.propTypes = {\n parent: PropTypes.object,\n listName: PropTypes.string,\n modifier: PropTypes.string\n};\n\nItemListButton.defaultProps = {\n parent: {},\n listName: '',\n modifier: ''\n};\n\nexport default ItemListButton;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ItemListButton"],"sources":["../../../src/components/ItemListButton/index.js"],"sourcesContent":["import ItemListButton from './ItemListButton';\n\nexport default ItemListButton;\n"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,kBAA3B;AAEA,eAAeA,cAAf"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { useRouter } from 'next/router';
|
|
4
|
+
import { useQuery } from '@apollo/client';
|
|
5
|
+
import { BsBookmarkStarFill, BsBookmarkStar } from 'react-icons/bs';
|
|
6
|
+
import { getItemList } from '../../application/query';
|
|
7
|
+
import { getItemListData, getItemListId } from '../../helpers';
|
|
8
|
+
|
|
9
|
+
const ItemListCounter = ({
|
|
10
|
+
listName,
|
|
11
|
+
modifier,
|
|
12
|
+
url
|
|
13
|
+
}) => {
|
|
14
|
+
const router = useRouter();
|
|
15
|
+
const idFromStorage = getItemListId(listName);
|
|
16
|
+
const [listId, setListId] = useState(idFromStorage);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
const storageEventHandler = () => {
|
|
19
|
+
const newId = getItemListId(listName);
|
|
20
|
+
setListId(newId);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
window.addEventListener('storage', storageEventHandler);
|
|
24
|
+
return () => {
|
|
25
|
+
window.removeEventListener('storage', storageEventHandler);
|
|
26
|
+
};
|
|
27
|
+
}, [listName]);
|
|
28
|
+
const {
|
|
29
|
+
data,
|
|
30
|
+
error,
|
|
31
|
+
loading
|
|
32
|
+
} = useQuery(getItemList, {
|
|
33
|
+
variables: {
|
|
34
|
+
id: listId
|
|
35
|
+
},
|
|
36
|
+
skip: !listId
|
|
37
|
+
});
|
|
38
|
+
if (loading) return '';
|
|
39
|
+
if (error) return error.message;
|
|
40
|
+
const listItems = getItemListData(data);
|
|
41
|
+
const listLength = listItems.length;
|
|
42
|
+
const CounterIcon = listLength ? BsBookmarkStarFill : BsBookmarkStar;
|
|
43
|
+
|
|
44
|
+
const handleClick = () => router.push('/Resolver', `${url}?itemListId=${listId}`);
|
|
45
|
+
|
|
46
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
role: "button",
|
|
48
|
+
type: "button",
|
|
49
|
+
className: `item-list-counter ${modifier}`,
|
|
50
|
+
onClick: handleClick
|
|
51
|
+
}, /*#__PURE__*/React.createElement(CounterIcon, null), /*#__PURE__*/React.createElement("span", {
|
|
52
|
+
className: "item-list-counter__badge"
|
|
53
|
+
}, listLength));
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
ItemListCounter.propTypes = {
|
|
57
|
+
url: PropTypes.string,
|
|
58
|
+
listName: PropTypes.string,
|
|
59
|
+
modifier: PropTypes.string
|
|
60
|
+
};
|
|
61
|
+
ItemListCounter.defaultProps = {
|
|
62
|
+
url: '',
|
|
63
|
+
listName: '',
|
|
64
|
+
modifier: ''
|
|
65
|
+
};
|
|
66
|
+
export default ItemListCounter;
|
|
67
|
+
//# sourceMappingURL=ItemListCounter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemListCounter.js","names":["React","useState","useEffect","PropTypes","useRouter","useQuery","BsBookmarkStarFill","BsBookmarkStar","getItemList","getItemListData","getItemListId","ItemListCounter","listName","modifier","url","router","idFromStorage","listId","setListId","storageEventHandler","newId","window","addEventListener","removeEventListener","data","error","loading","variables","id","skip","message","listItems","listLength","length","CounterIcon","handleClick","push","propTypes","string","defaultProps"],"sources":["../../../src/components/ItemListCounter/ItemListCounter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\nimport { BsBookmarkStarFill, BsBookmarkStar } from 'react-icons/bs';\nimport { getItemList } from '../../application/query';\nimport { getItemListData, getItemListId } from '../../helpers';\n\nconst ItemListCounter = ({ listName, modifier, url }) => {\n const router = useRouter();\n const idFromStorage = getItemListId(listName);\n const [listId, setListId] = useState(idFromStorage);\n\n useEffect(\n () => {\n const storageEventHandler = () => {\n const newId = getItemListId(listName);\n setListId(newId);\n };\n\n window.addEventListener('storage', storageEventHandler);\n\n return () => {\n window.removeEventListener('storage', storageEventHandler);\n };\n },\n [listName]\n );\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 const listLength = listItems.length;\n const CounterIcon = listLength ? BsBookmarkStarFill : BsBookmarkStar;\n\n const handleClick = () => router.push('/Resolver', `${url}?itemListId=${listId}`);\n\n return (\n <div\n role=\"button\"\n type=\"button\"\n className={`item-list-counter ${modifier}`}\n onClick={handleClick}>\n <CounterIcon />\n <span className=\"item-list-counter__badge\">{listLength}</span>\n </div>\n );\n};\n\nItemListCounter.propTypes = {\n url: PropTypes.string,\n listName: PropTypes.string,\n modifier: PropTypes.string\n};\n\nItemListCounter.defaultProps = {\n url: '',\n listName: '',\n modifier: ''\n};\n\nexport default ItemListCounter;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,QAA2C,OAA3C;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,QAAT,QAAyB,gBAAzB;AACA,SAASC,kBAAT,EAA6BC,cAA7B,QAAmD,gBAAnD;AACA,SAASC,WAAT,QAA4B,yBAA5B;AACA,SAASC,eAAT,EAA0BC,aAA1B,QAA+C,eAA/C;;AAEA,MAAMC,eAAe,GAAG,CAAC;EAAEC,QAAF;EAAYC,QAAZ;EAAsBC;AAAtB,CAAD,KAAiC;EACvD,MAAMC,MAAM,GAAGX,SAAS,EAAxB;EACA,MAAMY,aAAa,GAAGN,aAAa,CAACE,QAAD,CAAnC;EACA,MAAM,CAACK,MAAD,EAASC,SAAT,IAAsBjB,QAAQ,CAACe,aAAD,CAApC;EAEAd,SAAS,CACP,MAAM;IACJ,MAAMiB,mBAAmB,GAAG,MAAM;MAChC,MAAMC,KAAK,GAAGV,aAAa,CAACE,QAAD,CAA3B;MACAM,SAAS,CAACE,KAAD,CAAT;IACD,CAHD;;IAKAC,MAAM,CAACC,gBAAP,CAAwB,SAAxB,EAAmCH,mBAAnC;IAEA,OAAO,MAAM;MACXE,MAAM,CAACE,mBAAP,CAA2B,SAA3B,EAAsCJ,mBAAtC;IACD,CAFD;EAGD,CAZM,EAaP,CAACP,QAAD,CAbO,CAAT;EAgBA,MAAM;IAAEY,IAAF;IAAQC,KAAR;IAAeC;EAAf,IAA2BrB,QAAQ,CAACG,WAAD,EAAc;IACrDmB,SAAS,EAAE;MAAEC,EAAE,EAAEX;IAAN,CAD0C;IAErDY,IAAI,EAAE,CAACZ;EAF8C,CAAd,CAAzC;EAKA,IAAIS,OAAJ,EAAa,OAAO,EAAP;EACb,IAAID,KAAJ,EAAW,OAAOA,KAAK,CAACK,OAAb;EAEX,MAAMC,SAAS,GAAGtB,eAAe,CAACe,IAAD,CAAjC;EACA,MAAMQ,UAAU,GAAGD,SAAS,CAACE,MAA7B;EACA,MAAMC,WAAW,GAAGF,UAAU,GAAG1B,kBAAH,GAAwBC,cAAtD;;EAEA,MAAM4B,WAAW,GAAG,MAAMpB,MAAM,CAACqB,IAAP,CAAY,WAAZ,EAA0B,GAAEtB,GAAI,eAAcG,MAAO,EAArD,CAA1B;;EAEA,oBACE;IACE,IAAI,EAAC,QADP;IAEE,IAAI,EAAC,QAFP;IAGE,SAAS,EAAG,qBAAoBJ,QAAS,EAH3C;IAIE,OAAO,EAAEsB;EAJX,gBAKE,oBAAC,WAAD,OALF,eAME;IAAM,SAAS,EAAC;EAAhB,GAA4CH,UAA5C,CANF,CADF;AAUD,CA7CD;;AA+CArB,eAAe,CAAC0B,SAAhB,GAA4B;EAC1BvB,GAAG,EAAEX,SAAS,CAACmC,MADW;EAE1B1B,QAAQ,EAAET,SAAS,CAACmC,MAFM;EAG1BzB,QAAQ,EAAEV,SAAS,CAACmC;AAHM,CAA5B;AAMA3B,eAAe,CAAC4B,YAAhB,GAA+B;EAC7BzB,GAAG,EAAE,EADwB;EAE7BF,QAAQ,EAAE,EAFmB;EAG7BC,QAAQ,EAAE;AAHmB,CAA/B;AAMA,eAAeF,eAAf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ItemListCounter"],"sources":["../../../src/components/ItemListCounter/index.js"],"sourcesContent":["import ItemListCounter from './ItemListCounter';\n\nexport default ItemListCounter;\n"],"mappings":"AAAA,OAAOA,eAAP,MAA4B,mBAA5B;AAEA,eAAeA,eAAf"}
|
|
@@ -46,13 +46,15 @@ const ListBuilder = props => {
|
|
|
46
46
|
requiredSchema,
|
|
47
47
|
searchValues,
|
|
48
48
|
azFilter,
|
|
49
|
-
sortProperties
|
|
49
|
+
sortProperties,
|
|
50
|
+
itemListIds
|
|
50
51
|
} = props;
|
|
51
52
|
const isInfinite = paginationType === INFINITE;
|
|
52
53
|
const listComponent = getListComponent(isCard, paginationType);
|
|
53
54
|
const propsToDisplayValues = checkPropsToUse(propsToDisplay);
|
|
54
55
|
const entityFields = buildPropsQuery(entitySchema, propsToDisplayValues, props) || '';
|
|
55
|
-
const
|
|
56
|
+
const itemsToDisplayToUse = itemListIds || itemsToDisplay;
|
|
57
|
+
const limitToUse = limit || itemsToDisplayToUse.length;
|
|
56
58
|
const shouldApplyDefaultSort = !sortProperties || !sortProperties.length;
|
|
57
59
|
const itemsPerPageToUse = getItemsPerPageToUse(itemsPerPage, limitToUse);
|
|
58
60
|
const initialOffset = getCurrentOffset(offset, itemsPerPageToUse, paginationIndex, limitToUse);
|
|
@@ -76,7 +78,7 @@ const ListBuilder = props => {
|
|
|
76
78
|
filterOperator,
|
|
77
79
|
relations,
|
|
78
80
|
stringProps
|
|
79
|
-
}, itemId,
|
|
81
|
+
}, itemId, itemsToDisplayToUse, shouldApplyDefaultSort, {
|
|
80
82
|
shouldReturnAggs: true,
|
|
81
83
|
isAZ
|
|
82
84
|
});
|
|
@@ -106,7 +108,7 @@ const ListBuilder = props => {
|
|
|
106
108
|
relations,
|
|
107
109
|
stringProps,
|
|
108
110
|
azFilter
|
|
109
|
-
}, itemId,
|
|
111
|
+
}, itemId, itemsToDisplayToUse, shouldApplyDefaultSort, {
|
|
110
112
|
shouldReturnAggs: false,
|
|
111
113
|
isAZ
|
|
112
114
|
});
|
|
@@ -130,7 +132,9 @@ const ListBuilder = props => {
|
|
|
130
132
|
listAggregations: updatedAggregations,
|
|
131
133
|
isAZ: isAZ,
|
|
132
134
|
azFilter: azFilter
|
|
133
|
-
}, props
|
|
135
|
+
}, props, {
|
|
136
|
+
itemsToDisplay: itemsToDisplayToUse
|
|
137
|
+
}));
|
|
134
138
|
};
|
|
135
139
|
|
|
136
140
|
ListBuilder.propTypes = {
|
|
@@ -159,11 +163,13 @@ ListBuilder.propTypes = {
|
|
|
159
163
|
filterOperator: PropTypes.string.isRequired,
|
|
160
164
|
paginationType: PropTypes.string,
|
|
161
165
|
azFilter: PropTypes.string,
|
|
162
|
-
sortProperties: PropTypes.array
|
|
166
|
+
sortProperties: PropTypes.array,
|
|
167
|
+
itemListIds: PropTypes.array
|
|
163
168
|
};
|
|
164
169
|
ListBuilder.defaultProps = {
|
|
165
170
|
entityData: {},
|
|
166
171
|
itemsToDisplay: [],
|
|
172
|
+
itemListIds: null,
|
|
167
173
|
limit: 0,
|
|
168
174
|
omitWrappers: false,
|
|
169
175
|
offset: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"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"],"sources":["../../../src/components/List/ListBuilder.js"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"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","itemListIds","isInfinite","listComponent","getListComponent","propsToDisplayValues","entityFields","itemsToDisplayToUse","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"],"sources":["../../../src/components/List/ListBuilder.js"],"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 itemListIds\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 itemsToDisplayToUse = itemListIds || itemsToDisplay;\n const limitToUse = limit || itemsToDisplayToUse.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 itemsToDisplayToUse,\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 itemsToDisplayToUse,\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 itemsToDisplay={itemsToDisplayToUse}\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 itemListIds: PropTypes.array\n};\n\nListBuilder.defaultProps = {\n entityData: {},\n itemsToDisplay: [],\n itemListIds: null,\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"],"mappings":"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"}
|
|
@@ -10,11 +10,11 @@ import { parseUrl } from 'query-string';
|
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
11
|
import { useRouter } from 'next/router';
|
|
12
12
|
import { MainContext } from '@blaze-cms/nextjs-components';
|
|
13
|
-
import { getSingleEntitySchema, generateSingleItemQuery } from '../../application/query';
|
|
13
|
+
import { getSingleEntitySchema, generateSingleItemQuery, getItemList } from '../../application/query';
|
|
14
14
|
import ListBuilder from './ListBuilder';
|
|
15
15
|
import { AZ_LIST_TYPE } from './constants';
|
|
16
16
|
import { getAzQueryFilter, getSortProps } from './helpers';
|
|
17
|
-
import { getGenericProps, getRequiredSchemas, checkForError, getUnpublishedEntityName, getPaginationIndex, getSearchFilterType, getElasticsearchOperator, buildSearchValuesText, getQueryFilters, getInheritedFilters, getQueryProps } from '../../helpers';
|
|
17
|
+
import { getGenericProps, getRequiredSchemas, checkForError, getUnpublishedEntityName, getPaginationIndex, getSearchFilterType, getElasticsearchOperator, buildSearchValuesText, getQueryFilters, getInheritedFilters, getQueryProps, getItemListId, getItemListIds } from '../../helpers';
|
|
18
18
|
import { useGetEntitySchemasAsObj } from '../../hooks';
|
|
19
19
|
import { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';
|
|
20
20
|
|
|
@@ -31,7 +31,8 @@ const ListFactory = props => {
|
|
|
31
31
|
sort: defaultSort,
|
|
32
32
|
searchFilter,
|
|
33
33
|
operator: filterOperator,
|
|
34
|
-
sortProperties
|
|
34
|
+
sortProperties,
|
|
35
|
+
itemListName
|
|
35
36
|
} = props;
|
|
36
37
|
const {
|
|
37
38
|
isPreview
|
|
@@ -46,7 +47,8 @@ const ListFactory = props => {
|
|
|
46
47
|
url,
|
|
47
48
|
query: {
|
|
48
49
|
sort: querySort,
|
|
49
|
-
sortby: querySortBy
|
|
50
|
+
sortby: querySortBy,
|
|
51
|
+
itemListId: queryItemListId
|
|
50
52
|
} = {}
|
|
51
53
|
} = parseUrl(parsedQuery);
|
|
52
54
|
const {
|
|
@@ -59,6 +61,7 @@ const ListFactory = props => {
|
|
|
59
61
|
querySortBy,
|
|
60
62
|
defaultSortBy
|
|
61
63
|
});
|
|
64
|
+
const itemListId = getItemListId(itemListName, queryItemListId);
|
|
62
65
|
const {
|
|
63
66
|
itemEntity,
|
|
64
67
|
itemId
|
|
@@ -107,14 +110,32 @@ const ListFactory = props => {
|
|
|
107
110
|
},
|
|
108
111
|
skip: schemasLoading || !inheritedFilters.length && queryProps === ID
|
|
109
112
|
});
|
|
110
|
-
const
|
|
113
|
+
const {
|
|
114
|
+
data: itemListData = {},
|
|
115
|
+
error: itemListError,
|
|
116
|
+
loading: itemListLoading
|
|
117
|
+
} = useQuery(getItemList, {
|
|
118
|
+
variables: {
|
|
119
|
+
id: itemListId
|
|
120
|
+
},
|
|
121
|
+
skip: !itemListId
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
if (!queryItemListId && itemListId) {
|
|
125
|
+
router.push('/Resolver', `${asPath}?itemListId=${itemListId}`, {
|
|
126
|
+
shallow: true
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
const errorsToCheck = [schemaError, schemasError, requiredSchemaError, itemQueryError, itemListError];
|
|
111
131
|
const {
|
|
112
132
|
hasErr,
|
|
113
133
|
errMsg
|
|
114
134
|
} = checkForError(errorsToCheck);
|
|
115
|
-
if (requiredSchemaLoading || schemasLoading || schemaLoading || itemQueryLoading) return '';
|
|
135
|
+
if (requiredSchemaLoading || schemasLoading || schemaLoading || itemQueryLoading || itemListLoading) return '';
|
|
116
136
|
if (hasErr) return errMsg;
|
|
117
137
|
if (!entitySchema) return null;
|
|
138
|
+
const itemListIds = getItemListIds(itemListData);
|
|
118
139
|
const isCard = type !== FULL;
|
|
119
140
|
const isAZ = type === AZ_LIST_TYPE;
|
|
120
141
|
const genericProps = getGenericProps(props);
|
|
@@ -154,7 +175,8 @@ const ListFactory = props => {
|
|
|
154
175
|
paginationIndex,
|
|
155
176
|
entityData,
|
|
156
177
|
inheritedFilters,
|
|
157
|
-
filterOperator
|
|
178
|
+
filterOperator,
|
|
179
|
+
itemListIds
|
|
158
180
|
});
|
|
159
181
|
|
|
160
182
|
return /*#__PURE__*/React.createElement(ListBuilder, listProps);
|
|
@@ -172,7 +194,8 @@ ListFactory.propTypes = {
|
|
|
172
194
|
sortby: PropTypes.array,
|
|
173
195
|
sort: PropTypes.string,
|
|
174
196
|
searchFilter: PropTypes.object,
|
|
175
|
-
sortProperties: PropTypes.array
|
|
197
|
+
sortProperties: PropTypes.array,
|
|
198
|
+
itemListName: PropTypes.string
|
|
176
199
|
};
|
|
177
200
|
ListFactory.defaultProps = {
|
|
178
201
|
filterBy: [],
|
|
@@ -183,7 +206,8 @@ ListFactory.defaultProps = {
|
|
|
183
206
|
sortProperties: [],
|
|
184
207
|
sort: '',
|
|
185
208
|
operator: AND,
|
|
186
|
-
searchFilter: {}
|
|
209
|
+
searchFilter: {},
|
|
210
|
+
itemListName: ''
|
|
187
211
|
};
|
|
188
212
|
export default ListFactory;
|
|
189
213
|
//# sourceMappingURL=ListFactory.js.map
|