@blaze-cms/plugin-data-ui 0.146.0-node18-core-styles-tooltips.3 → 0.146.0-node18-core-styles-tooltips.5

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 (58) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +36 -0
  3. package/lib/components/EntityManager/Entity/Entity.js +16 -7
  4. package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
  5. package/lib/components/EntityManager/Entity/SideBarRelations/index.js +22 -5
  6. package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  7. package/lib/components/ListingTable/ListingTable.js +12 -11
  8. package/lib/components/ListingTable/ListingTable.js.map +1 -1
  9. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +27 -1
  10. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  11. package/lib/components/ListingTable/SearchFilter/SearchContainer.js +313 -0
  12. package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
  13. package/lib/components/ListingTable/SearchFilter/SearchFilter.js +59 -0
  14. package/lib/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
  15. package/lib/components/ListingTable/SearchFilter/helpers.js +128 -0
  16. package/lib/components/ListingTable/SearchFilter/helpers.js.map +1 -0
  17. package/lib/components/ListingTable/SearchFilter/querys.js +13 -0
  18. package/lib/components/ListingTable/SearchFilter/querys.js.map +1 -0
  19. package/lib/components/ListingTable/service/index.js +3 -3
  20. package/lib/components/ListingTable/service/index.js.map +1 -1
  21. package/lib/constants.js +3 -1
  22. package/lib/constants.js.map +1 -1
  23. package/lib/utils/build-listing-query.js +4 -4
  24. package/lib/utils/build-listing-query.js.map +1 -1
  25. package/lib-es/components/EntityManager/Entity/Entity.js +7 -3
  26. package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
  27. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +21 -5
  28. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  29. package/lib-es/components/ListingTable/ListingTable.js +12 -11
  30. package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
  31. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +16 -1
  32. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  33. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +207 -0
  34. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
  35. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js +40 -0
  36. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
  37. package/lib-es/components/ListingTable/SearchFilter/helpers.js +96 -0
  38. package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -0
  39. package/lib-es/components/ListingTable/SearchFilter/querys.js +8 -0
  40. package/lib-es/components/ListingTable/SearchFilter/querys.js.map +1 -0
  41. package/lib-es/components/ListingTable/service/index.js +3 -2
  42. package/lib-es/components/ListingTable/service/index.js.map +1 -1
  43. package/lib-es/constants.js +3 -1
  44. package/lib-es/constants.js.map +1 -1
  45. package/lib-es/utils/build-listing-query.js +4 -4
  46. package/lib-es/utils/build-listing-query.js.map +1 -1
  47. package/package.json +5 -5
  48. package/src/components/EntityManager/Entity/Entity.js +12 -2
  49. package/src/components/EntityManager/Entity/SideBarRelations/index.js +30 -7
  50. package/src/components/ListingTable/ListingTable.js +13 -18
  51. package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +21 -1
  52. package/src/components/ListingTable/SearchFilter/SearchContainer.js +243 -0
  53. package/src/components/ListingTable/SearchFilter/SearchFilter.js +38 -0
  54. package/src/components/ListingTable/SearchFilter/helpers.js +99 -0
  55. package/src/components/ListingTable/SearchFilter/querys.js +9 -0
  56. package/src/components/ListingTable/service/index.js +2 -2
  57. package/src/constants.js +7 -1
  58. package/src/utils/build-listing-query.js +4 -4
@@ -0,0 +1,96 @@
1
+ import { DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';
2
+ const updateListFilters = (searchTerm, selectedFilters, setListFilters, fields = []) => {
3
+ const filters = [];
4
+ if (searchTerm) {
5
+ filters.push({
6
+ simple_query_string: {
7
+ query: `${searchTerm}`,
8
+ default_operator: 'AND',
9
+ fields: fields.map(field => field)
10
+ }
11
+ });
12
+ }
13
+ Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {
14
+ if (!filterValue || filterValue === DEFAULT_FILTER_OPTION_LABEL) return;
15
+ filters.push({
16
+ match: {
17
+ [`${filterKey}.keyword`]: {
18
+ query: filterValue
19
+ }
20
+ }
21
+ });
22
+ });
23
+ setListFilters(filters);
24
+ };
25
+ const getKeywordSearchFilters = schema => {
26
+ if (!schema || !schema.properties) return [];
27
+ const {
28
+ properties = {},
29
+ dynamicProperties = {}
30
+ } = schema;
31
+ const propertyKeyword = Object.entries(properties).filter(isFilterKeywordItem);
32
+ const dynamicPropertyKeywords = Object.entries(dynamicProperties).filter(isFilterKeywordItem);
33
+ return [...propertyKeyword, ...dynamicPropertyKeywords];
34
+ };
35
+ const isFilterKeywordItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.includeInKeywordSeach === true;
36
+ const findSelectFilters = schema => {
37
+ if (!schema || !schema.properties) return [];
38
+ const {
39
+ properties = {},
40
+ dynamicProperties = {}
41
+ } = schema;
42
+ const propertySelects = Object.entries(properties).filter(isFilterSelectItem);
43
+ const dynamicPropertySelects = Object.entries(dynamicProperties).filter(isFilterSelectItem);
44
+ return [...propertySelects, ...dynamicPropertySelects];
45
+ };
46
+ const isFilterSelectItem = ([, item]) => item.adminListingOptions && item.adminListingOptions.filterType === 'select';
47
+ const buildQueryFields = (selectFilters, entityId) => {
48
+ if (!Array.isArray(selectFilters) || selectFilters.length === 0) {
49
+ return {
50
+ gqlFields: '',
51
+ rawQuery: '{}'
52
+ };
53
+ }
54
+ const aggs = {};
55
+ selectFilters.forEach(([property, details]) => {
56
+ aggs[property] = {
57
+ terms: {
58
+ field: `${property}.keyword`,
59
+ // todo: handle different field types
60
+ size: 1000,
61
+ // todo: customise size
62
+ order: {
63
+ _key: 'asc'
64
+ }
65
+ }
66
+ };
67
+ });
68
+ const docType = entityId;
69
+ const rawQueryObject = {
70
+ size: 0,
71
+ query: {
72
+ bool: {
73
+ filter: {
74
+ bool: {
75
+ must: [{
76
+ match: {
77
+ docType
78
+ }
79
+ }]
80
+ }
81
+ }
82
+ }
83
+ },
84
+ aggs
85
+ };
86
+ const rawQuery = JSON.stringify(rawQueryObject);
87
+ const gqlFields = `
88
+ rawResults
89
+ `;
90
+ return {
91
+ gqlFields,
92
+ rawQuery
93
+ };
94
+ };
95
+ export { buildQueryFields, updateListFilters, getKeywordSearchFilters, findSelectFilters };
96
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","names":["DEFAULT_FILTER_OPTION_LABEL","updateListFilters","searchTerm","selectedFilters","setListFilters","fields","filters","push","simple_query_string","query","default_operator","map","field","Object","entries","forEach","filterKey","filterValue","match","getKeywordSearchFilters","schema","properties","dynamicProperties","propertyKeyword","filter","isFilterKeywordItem","dynamicPropertyKeywords","item","adminListingOptions","includeInKeywordSeach","findSelectFilters","propertySelects","isFilterSelectItem","dynamicPropertySelects","filterType","buildQueryFields","selectFilters","entityId","Array","isArray","length","gqlFields","rawQuery","aggs","property","details","terms","size","order","_key","docType","rawQueryObject","bool","must","JSON","stringify"],"sources":["../../../../src/components/ListingTable/SearchFilter/helpers.js"],"sourcesContent":["import { DEFAULT_FILTER_OPTION_LABEL } from '../../../constants';\n\nconst updateListFilters = (searchTerm, selectedFilters, setListFilters, fields = []) => {\n const filters = [];\n\n if (searchTerm) {\n filters.push({\n simple_query_string: {\n query: `${searchTerm}`,\n default_operator: 'AND',\n fields: fields.map(field => field)\n }\n });\n }\n\n Object.entries(selectedFilters).forEach(([filterKey, filterValue]) => {\n if (!filterValue || filterValue === DEFAULT_FILTER_OPTION_LABEL) return;\n filters.push({\n match: {\n [`${filterKey}.keyword`]: {\n query: filterValue\n }\n }\n });\n });\n\n setListFilters(filters);\n};\n\nconst getKeywordSearchFilters = schema => {\n if (!schema || !schema.properties) return [];\n\n const { properties = {}, dynamicProperties = {} } = schema;\n\n const propertyKeyword = Object.entries(properties).filter(isFilterKeywordItem);\n const dynamicPropertyKeywords = Object.entries(dynamicProperties).filter(isFilterKeywordItem);\n\n return [...propertyKeyword, ...dynamicPropertyKeywords];\n};\n\nconst isFilterKeywordItem = ([, item]) =>\n item.adminListingOptions && item.adminListingOptions.includeInKeywordSeach === true;\n\nconst findSelectFilters = schema => {\n if (!schema || !schema.properties) return [];\n\n const { properties = {}, dynamicProperties = {} } = schema;\n\n const propertySelects = Object.entries(properties).filter(isFilterSelectItem);\n const dynamicPropertySelects = Object.entries(dynamicProperties).filter(isFilterSelectItem);\n\n return [...propertySelects, ...dynamicPropertySelects];\n};\n\nconst isFilterSelectItem = ([, item]) =>\n item.adminListingOptions && item.adminListingOptions.filterType === 'select';\n\nconst buildQueryFields = (selectFilters, entityId) => {\n if (!Array.isArray(selectFilters) || selectFilters.length === 0) {\n return { gqlFields: '', rawQuery: '{}' };\n }\n\n const aggs = {};\n selectFilters.forEach(([property, details]) => {\n aggs[property] = {\n terms: {\n field: `${property}.keyword`, // todo: handle different field types\n size: 1000, // todo: customise size\n order: {\n _key: 'asc'\n }\n }\n };\n });\n\n const docType = entityId;\n const rawQueryObject = {\n size: 0,\n query: {\n bool: {\n filter: {\n bool: {\n must: [{ match: { docType } }]\n }\n }\n }\n },\n aggs\n };\n const rawQuery = JSON.stringify(rawQueryObject);\n\n const gqlFields = `\n rawResults\n `;\n\n return { gqlFields, rawQuery };\n};\n\nexport { buildQueryFields, updateListFilters, getKeywordSearchFilters, findSelectFilters };\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ import { gql } from '@apollo/client';
2
+ const NOOP_QUERY = gql`
3
+ query NoOp {
4
+ __typename
5
+ }
6
+ `;
7
+ export { NOOP_QUERY };
8
+ //# sourceMappingURL=querys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"querys.js","names":["gql","NOOP_QUERY"],"sources":["../../../../src/components/ListingTable/SearchFilter/querys.js"],"sourcesContent":["import { gql } from '@apollo/client';\n\nconst NOOP_QUERY = gql`\n query NoOp {\n __typename\n }\n`;\n\nexport { NOOP_QUERY };\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AAEpC,MAAMC,UAAU,GAAGD,GAAG;AACtB;AACA;AACA;AACA,CAAC;AAED,SAASC,UAAU","ignoreList":[]}
@@ -54,13 +54,14 @@ const fetchData = async ({
54
54
  displayProperties: {
55
55
  adminListings: {
56
56
  dataSource: {
57
- source
57
+ source,
58
+ index
58
59
  } = {}
59
60
  } = {}
60
61
  } = {}
61
62
  } = entitySchema;
62
63
  const isSearchQuery = source === 'search';
63
- const query = buildListingQuery(entitySchema, isSearchQuery);
64
+ const query = buildListingQuery(entitySchema, index, isSearchQuery);
64
65
  const variables = buildVariables({
65
66
  entitySchema,
66
67
  listFilters,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["buildListingQuery","buildVariables","entitySchema","isSearchQuery","listFilters","queryParams","identifier","sort","offset","limit","where","property","direction","parsedOffset","_objectSpread","Array","isArray","rawQuery","bool","must","filter","term","entityIdentifier","JSON","stringify","fetchData","client","querySettings","displayProperties","adminListings","dataSource","source","query","variables","data","fetchPolicy","searchResults","listingData","results","totalRecords","total"],"sources":["../../../../src/components/ListingTable/service/index.js"],"sourcesContent":["import buildListingQuery from '../../../utils/build-listing-query';\n\nfunction buildVariables({ entitySchema, isSearchQuery, listFilters = [], queryParams = {} }) {\n const { identifier } = entitySchema;\n const { sort, offset, limit, where } = queryParams;\n const [{ property, direction }] = sort;\n const parsedOffset = `${property}:${direction}`;\n\n if (!isSearchQuery)\n return {\n ...queryParams,\n where: !Array.isArray(listFilters) ? listFilters : where\n };\n\n const rawQuery = {\n bool: {\n must: listFilters || [],\n filter: [\n {\n term: {\n entityIdentifier: identifier\n }\n }\n ]\n }\n };\n\n return {\n limit,\n offset,\n sort: parsedOffset,\n where: JSON.stringify(rawQuery)\n };\n}\n\nconst fetchData = async ({ client, querySettings: { entitySchema, queryParams }, listFilters }) => {\n const { displayProperties: { adminListings: { dataSource: { source } = {} } = {} } = {} } =\n entitySchema;\n\n const isSearchQuery = source === 'search';\n const query = buildListingQuery(entitySchema, isSearchQuery);\n const variables = buildVariables({ entitySchema, listFilters, queryParams, isSearchQuery });\n\n const { data = {} } = await client.query({\n query,\n variables,\n fetchPolicy: 'network-only'\n });\n\n if (data.searchResults) {\n return {\n listingData: data.searchResults.results,\n totalRecords: data.searchResults.total\n };\n }\n return data;\n};\n\nexport { fetchData };\n"],"mappings":";;;AAAA,OAAOA,iBAAiB,MAAM,oCAAoC;AAElE,SAASC,cAAcA,CAAC;EAAEC,YAAY;EAAEC,aAAa;EAAEC,WAAW,GAAG,EAAE;EAAEC,WAAW,GAAG,CAAC;AAAE,CAAC,EAAE;EAC3F,MAAM;IAAEC;EAAW,CAAC,GAAGJ,YAAY;EACnC,MAAM;IAAEK,IAAI;IAAEC,MAAM;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGL,WAAW;EAClD,MAAM,CAAC;IAAEM,QAAQ;IAAEC;EAAU,CAAC,CAAC,GAAGL,IAAI;EACtC,MAAMM,YAAY,GAAG,GAAGF,QAAQ,IAAIC,SAAS,EAAE;EAE/C,IAAI,CAACT,aAAa,EAChB,OAAAW,aAAA,CAAAA,aAAA,KACKT,WAAW;IACdK,KAAK,EAAE,CAACK,KAAK,CAACC,OAAO,CAACZ,WAAW,CAAC,GAAGA,WAAW,GAAGM;EAAK;EAG5D,MAAMO,QAAQ,GAAG;IACfC,IAAI,EAAE;MACJC,IAAI,EAAEf,WAAW,IAAI,EAAE;MACvBgB,MAAM,EAAE,CACN;QACEC,IAAI,EAAE;UACJC,gBAAgB,EAAEhB;QACpB;MACF,CAAC;IAEL;EACF,CAAC;EAED,OAAO;IACLG,KAAK;IACLD,MAAM;IACND,IAAI,EAAEM,YAAY;IAClBH,KAAK,EAAEa,IAAI,CAACC,SAAS,CAACP,QAAQ;EAChC,CAAC;AACH;AAEA,MAAMQ,SAAS,GAAG,MAAAA,CAAO;EAAEC,MAAM;EAAEC,aAAa,EAAE;IAAEzB,YAAY;IAAEG;EAAY,CAAC;EAAED;AAAY,CAAC,KAAK;EACjG,MAAM;IAAEwB,iBAAiB,EAAE;MAAEC,aAAa,EAAE;QAAEC,UAAU,EAAE;UAAEC;QAAO,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GACvF7B,YAAY;EAEd,MAAMC,aAAa,GAAG4B,MAAM,KAAK,QAAQ;EACzC,MAAMC,KAAK,GAAGhC,iBAAiB,CAACE,YAAY,EAAEC,aAAa,CAAC;EAC5D,MAAM8B,SAAS,GAAGhC,cAAc,CAAC;IAAEC,YAAY;IAAEE,WAAW;IAAEC,WAAW;IAAEF;EAAc,CAAC,CAAC;EAE3F,MAAM;IAAE+B,IAAI,GAAG,CAAC;EAAE,CAAC,GAAG,MAAMR,MAAM,CAACM,KAAK,CAAC;IACvCA,KAAK;IACLC,SAAS;IACTE,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,IAAID,IAAI,CAACE,aAAa,EAAE;IACtB,OAAO;MACLC,WAAW,EAAEH,IAAI,CAACE,aAAa,CAACE,OAAO;MACvCC,YAAY,EAAEL,IAAI,CAACE,aAAa,CAACI;IACnC,CAAC;EACH;EACA,OAAON,IAAI;AACb,CAAC;AAED,SAAST,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["buildListingQuery","buildVariables","entitySchema","isSearchQuery","listFilters","queryParams","identifier","sort","offset","limit","where","property","direction","parsedOffset","_objectSpread","Array","isArray","rawQuery","bool","must","filter","term","entityIdentifier","JSON","stringify","fetchData","client","querySettings","displayProperties","adminListings","dataSource","source","index","query","variables","data","fetchPolicy","searchResults","listingData","results","totalRecords","total"],"sources":["../../../../src/components/ListingTable/service/index.js"],"sourcesContent":["import buildListingQuery from '../../../utils/build-listing-query';\n\nfunction buildVariables({ entitySchema, isSearchQuery, listFilters = [], queryParams = {} }) {\n const { identifier } = entitySchema;\n const { sort, offset, limit, where } = queryParams;\n const [{ property, direction }] = sort;\n const parsedOffset = `${property}:${direction}`;\n\n if (!isSearchQuery)\n return {\n ...queryParams,\n where: !Array.isArray(listFilters) ? listFilters : where\n };\n\n const rawQuery = {\n bool: {\n must: listFilters || [],\n filter: [\n {\n term: {\n entityIdentifier: identifier\n }\n }\n ]\n }\n };\n\n return {\n limit,\n offset,\n sort: parsedOffset,\n where: JSON.stringify(rawQuery)\n };\n}\n\nconst fetchData = async ({ client, querySettings: { entitySchema, queryParams }, listFilters }) => {\n const { displayProperties: { adminListings: { dataSource: { source, index } = {} } = {} } = {} } =\n entitySchema;\n\n const isSearchQuery = source === 'search';\n const query = buildListingQuery(entitySchema, index, isSearchQuery);\n const variables = buildVariables({ entitySchema, listFilters, queryParams, isSearchQuery });\n\n const { data = {} } = await client.query({\n query,\n variables,\n fetchPolicy: 'network-only'\n });\n\n if (data.searchResults) {\n return {\n listingData: data.searchResults.results,\n totalRecords: data.searchResults.total\n };\n }\n return data;\n};\n\nexport { fetchData };\n"],"mappings":";;;AAAA,OAAOA,iBAAiB,MAAM,oCAAoC;AAElE,SAASC,cAAcA,CAAC;EAAEC,YAAY;EAAEC,aAAa;EAAEC,WAAW,GAAG,EAAE;EAAEC,WAAW,GAAG,CAAC;AAAE,CAAC,EAAE;EAC3F,MAAM;IAAEC;EAAW,CAAC,GAAGJ,YAAY;EACnC,MAAM;IAAEK,IAAI;IAAEC,MAAM;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGL,WAAW;EAClD,MAAM,CAAC;IAAEM,QAAQ;IAAEC;EAAU,CAAC,CAAC,GAAGL,IAAI;EACtC,MAAMM,YAAY,GAAG,GAAGF,QAAQ,IAAIC,SAAS,EAAE;EAE/C,IAAI,CAACT,aAAa,EAChB,OAAAW,aAAA,CAAAA,aAAA,KACKT,WAAW;IACdK,KAAK,EAAE,CAACK,KAAK,CAACC,OAAO,CAACZ,WAAW,CAAC,GAAGA,WAAW,GAAGM;EAAK;EAG5D,MAAMO,QAAQ,GAAG;IACfC,IAAI,EAAE;MACJC,IAAI,EAAEf,WAAW,IAAI,EAAE;MACvBgB,MAAM,EAAE,CACN;QACEC,IAAI,EAAE;UACJC,gBAAgB,EAAEhB;QACpB;MACF,CAAC;IAEL;EACF,CAAC;EAED,OAAO;IACLG,KAAK;IACLD,MAAM;IACND,IAAI,EAAEM,YAAY;IAClBH,KAAK,EAAEa,IAAI,CAACC,SAAS,CAACP,QAAQ;EAChC,CAAC;AACH;AAEA,MAAMQ,SAAS,GAAG,MAAAA,CAAO;EAAEC,MAAM;EAAEC,aAAa,EAAE;IAAEzB,YAAY;IAAEG;EAAY,CAAC;EAAED;AAAY,CAAC,KAAK;EACjG,MAAM;IAAEwB,iBAAiB,EAAE;MAAEC,aAAa,EAAE;QAAEC,UAAU,EAAE;UAAEC,MAAM;UAAEC;QAAM,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAC9F9B,YAAY;EAEd,MAAMC,aAAa,GAAG4B,MAAM,KAAK,QAAQ;EACzC,MAAME,KAAK,GAAGjC,iBAAiB,CAACE,YAAY,EAAE8B,KAAK,EAAE7B,aAAa,CAAC;EACnE,MAAM+B,SAAS,GAAGjC,cAAc,CAAC;IAAEC,YAAY;IAAEE,WAAW;IAAEC,WAAW;IAAEF;EAAc,CAAC,CAAC;EAE3F,MAAM;IAAEgC,IAAI,GAAG,CAAC;EAAE,CAAC,GAAG,MAAMT,MAAM,CAACO,KAAK,CAAC;IACvCA,KAAK;IACLC,SAAS;IACTE,WAAW,EAAE;EACf,CAAC,CAAC;EAEF,IAAID,IAAI,CAACE,aAAa,EAAE;IACtB,OAAO;MACLC,WAAW,EAAEH,IAAI,CAACE,aAAa,CAACE,OAAO;MACvCC,YAAY,EAAEL,IAAI,CAACE,aAAa,CAACI;IACnC,CAAC;EACH;EACA,OAAON,IAAI;AACb,CAAC;AAED,SAASV,SAAS","ignoreList":[]}
@@ -27,6 +27,7 @@ const PAGE_BUILDER_TAB = 'Page builder';
27
27
  const PAGE_BUILDER_TAB_INDEX = 1;
28
28
  const EDITOR_VIEW_TAB = 'Editor view';
29
29
  const EDITOR_VIEW_TAB_INDEX = 0;
30
+ const ENTER_KEY = 'Enter';
30
31
  const ICON_SIZE = {
31
32
  WIDTH: '25px',
32
33
  HEIGHT: '25px'
@@ -35,5 +36,6 @@ const ICON_COLOR = {
35
36
  STROKE: '#63779C',
36
37
  FILL: '#63779C'
37
38
  };
38
- export { DATA_LISTING_PREFIX, ENTITY_PUBLISHED, KEY_TO_CHECK, LEAVE_PAGE_MESSAGE, MENU_PERMISSIONS, PAGE_BUILDER, PLUGIN_NAME, PREVIEW_INTERFACE, SELECT_DEFAULT_VALUE, TEXT_CONTENT_TYPE, PAGE_BUILDER_FIELD_ID, PAGE_BUILDER_TEMPLATE_FIELD_ID, ERROR, SUCCESS, PUBLISHED, UNPUBLISHED, SAVE_BUTTON_TEXTS, ACTIONS, PAGE_BUILDER_TAB_INDEX, EDITOR_VIEW_TAB_INDEX, EDITOR_VIEW_TAB, PAGE_BUILDER_TAB, UNPUBLISHED_WARNING, SAVE_BEFORE_PUBLISH_MESSAGE, ICON_SIZE, ICON_COLOR, PAGE_NOT_FOUND };
39
+ const DEFAULT_FILTER_OPTION_LABEL = 'Any';
40
+ export { DATA_LISTING_PREFIX, ENTITY_PUBLISHED, KEY_TO_CHECK, LEAVE_PAGE_MESSAGE, MENU_PERMISSIONS, PAGE_BUILDER, PLUGIN_NAME, PREVIEW_INTERFACE, SELECT_DEFAULT_VALUE, TEXT_CONTENT_TYPE, PAGE_BUILDER_FIELD_ID, PAGE_BUILDER_TEMPLATE_FIELD_ID, ERROR, SUCCESS, PUBLISHED, UNPUBLISHED, SAVE_BUTTON_TEXTS, ACTIONS, PAGE_BUILDER_TAB_INDEX, EDITOR_VIEW_TAB_INDEX, EDITOR_VIEW_TAB, PAGE_BUILDER_TAB, UNPUBLISHED_WARNING, SAVE_BEFORE_PUBLISH_MESSAGE, ICON_SIZE, ICON_COLOR, PAGE_NOT_FOUND, ENTER_KEY, DEFAULT_FILTER_OPTION_LABEL };
39
41
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","names":["PLUGIN_NAME","DATA_LISTING_PREFIX","PAGE_BUILDER","TEXT_CONTENT_TYPE","ENTITY_PUBLISHED","SELECT_DEFAULT_VALUE","LEAVE_PAGE_MESSAGE","KEY_TO_CHECK","MENU_PERMISSIONS","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SUCCESS","PUBLISHED","UNPUBLISHED","SAVE_BUTTON_TEXTS","save","saved","saving","ACTIONS","UNPUBLISHED_WARNING","PAGE_NOT_FOUND","SAVE_BEFORE_PUBLISH_MESSAGE","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'data-ui';\nconst DATA_LISTING_PREFIX = '/data-listing';\nconst PAGE_BUILDER = 'pageBuilder';\nconst TEXT_CONTENT_TYPE = 'Publish';\nconst ENTITY_PUBLISHED = 'published';\nconst SELECT_DEFAULT_VALUE = 'Please Choose...';\nconst LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';\nconst KEY_TO_CHECK = 'values.slug';\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\nconst PREVIEW_INTERFACE = 'preview/can-preview';\nconst PAGE_BUILDER_FIELD_ID = 'pageBuilder';\nconst PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';\nconst ERROR = 'error';\nconst SUCCESS = 'success';\nconst PUBLISHED = 'published';\nconst UNPUBLISHED = 'unpublished';\nconst SAVE_BUTTON_TEXTS = { save: 'save', saved: 'saved', saving: 'saving' };\nconst ACTIONS = 'actions';\nconst UNPUBLISHED_WARNING = 'Page already unpublished';\nconst PAGE_NOT_FOUND = 'Page not found';\nconst SAVE_BEFORE_PUBLISH_MESSAGE =\n 'You have to click save to create the record before you can publish';\n\nconst PAGE_BUILDER_TAB = 'Page builder';\nconst PAGE_BUILDER_TAB_INDEX = 1;\nconst EDITOR_VIEW_TAB = 'Editor view';\nconst EDITOR_VIEW_TAB_INDEX = 0;\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nexport {\n DATA_LISTING_PREFIX,\n ENTITY_PUBLISHED,\n KEY_TO_CHECK,\n LEAVE_PAGE_MESSAGE,\n MENU_PERMISSIONS,\n PAGE_BUILDER,\n PLUGIN_NAME,\n PREVIEW_INTERFACE,\n SELECT_DEFAULT_VALUE,\n TEXT_CONTENT_TYPE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SUCCESS,\n PUBLISHED,\n UNPUBLISHED,\n SAVE_BUTTON_TEXTS,\n ACTIONS,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB_INDEX,\n EDITOR_VIEW_TAB,\n PAGE_BUILDER_TAB,\n UNPUBLISHED_WARNING,\n SAVE_BEFORE_PUBLISH_MESSAGE,\n ICON_SIZE,\n ICON_COLOR,\n PAGE_NOT_FOUND\n};\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,SAAS;AAC7B,MAAMC,mBAAmB,GAAG,eAAe;AAC3C,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,iBAAiB,GAAG,SAAS;AACnC,MAAMC,gBAAgB,GAAG,WAAW;AACpC,MAAMC,oBAAoB,GAAG,kBAAkB;AAC/C,MAAMC,kBAAkB,GAAG,wEAAwE;AACnG,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,gBAAgB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACjF,MAAMC,iBAAiB,GAAG,qBAAqB;AAC/C,MAAMC,qBAAqB,GAAG,aAAa;AAC3C,MAAMC,8BAA8B,GAAG,uBAAuB;AAC9D,MAAMC,KAAK,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,WAAW,GAAG,aAAa;AACjC,MAAMC,iBAAiB,GAAG;EAAEC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAS,CAAC;AAC5E,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,mBAAmB,GAAG,0BAA0B;AACtD,MAAMC,cAAc,GAAG,gBAAgB;AACvC,MAAMC,2BAA2B,GAC/B,oEAAoE;AAEtE,MAAMC,gBAAgB,GAAG,cAAc;AACvC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,eAAe,GAAG,aAAa;AACrC,MAAMC,qBAAqB,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,SACEhC,mBAAmB,EACnBG,gBAAgB,EAChBG,YAAY,EACZD,kBAAkB,EAClBE,gBAAgB,EAChBN,YAAY,EACZF,WAAW,EACXS,iBAAiB,EACjBJ,oBAAoB,EACpBF,iBAAiB,EACjBO,qBAAqB,EACrBC,8BAA8B,EAC9BC,KAAK,EACLC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,iBAAiB,EACjBI,OAAO,EACPK,sBAAsB,EACtBE,qBAAqB,EACrBD,eAAe,EACfF,gBAAgB,EAChBH,mBAAmB,EACnBE,2BAA2B,EAC3BK,SAAS,EACTG,UAAU,EACVT,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","names":["PLUGIN_NAME","DATA_LISTING_PREFIX","PAGE_BUILDER","TEXT_CONTENT_TYPE","ENTITY_PUBLISHED","SELECT_DEFAULT_VALUE","LEAVE_PAGE_MESSAGE","KEY_TO_CHECK","MENU_PERMISSIONS","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SUCCESS","PUBLISHED","UNPUBLISHED","SAVE_BUTTON_TEXTS","save","saved","saving","ACTIONS","UNPUBLISHED_WARNING","PAGE_NOT_FOUND","SAVE_BEFORE_PUBLISH_MESSAGE","PAGE_BUILDER_TAB","PAGE_BUILDER_TAB_INDEX","EDITOR_VIEW_TAB","EDITOR_VIEW_TAB_INDEX","ENTER_KEY","ICON_SIZE","WIDTH","HEIGHT","ICON_COLOR","STROKE","FILL","DEFAULT_FILTER_OPTION_LABEL"],"sources":["../src/constants.js"],"sourcesContent":["const PLUGIN_NAME = 'data-ui';\nconst DATA_LISTING_PREFIX = '/data-listing';\nconst PAGE_BUILDER = 'pageBuilder';\nconst TEXT_CONTENT_TYPE = 'Publish';\nconst ENTITY_PUBLISHED = 'published';\nconst SELECT_DEFAULT_VALUE = 'Please Choose...';\nconst LEAVE_PAGE_MESSAGE = 'You are going to leave without saving. Are you sure you want to leave?';\nconst KEY_TO_CHECK = 'values.slug';\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\nconst PREVIEW_INTERFACE = 'preview/can-preview';\nconst PAGE_BUILDER_FIELD_ID = 'pageBuilder';\nconst PAGE_BUILDER_TEMPLATE_FIELD_ID = 'pageBuilderTemplateId';\nconst ERROR = 'error';\nconst SUCCESS = 'success';\nconst PUBLISHED = 'published';\nconst UNPUBLISHED = 'unpublished';\nconst SAVE_BUTTON_TEXTS = { save: 'save', saved: 'saved', saving: 'saving' };\nconst ACTIONS = 'actions';\nconst UNPUBLISHED_WARNING = 'Page already unpublished';\nconst PAGE_NOT_FOUND = 'Page not found';\nconst SAVE_BEFORE_PUBLISH_MESSAGE =\n 'You have to click save to create the record before you can publish';\n\nconst PAGE_BUILDER_TAB = 'Page builder';\nconst PAGE_BUILDER_TAB_INDEX = 1;\nconst EDITOR_VIEW_TAB = 'Editor view';\nconst EDITOR_VIEW_TAB_INDEX = 0;\n\nconst ENTER_KEY = 'Enter';\n\nconst ICON_SIZE = {\n WIDTH: '25px',\n HEIGHT: '25px'\n};\n\nconst ICON_COLOR = {\n STROKE: '#63779C',\n FILL: '#63779C'\n};\n\nconst DEFAULT_FILTER_OPTION_LABEL = 'Any';\n\nexport {\n DATA_LISTING_PREFIX,\n ENTITY_PUBLISHED,\n KEY_TO_CHECK,\n LEAVE_PAGE_MESSAGE,\n MENU_PERMISSIONS,\n PAGE_BUILDER,\n PLUGIN_NAME,\n PREVIEW_INTERFACE,\n SELECT_DEFAULT_VALUE,\n TEXT_CONTENT_TYPE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SUCCESS,\n PUBLISHED,\n UNPUBLISHED,\n SAVE_BUTTON_TEXTS,\n ACTIONS,\n PAGE_BUILDER_TAB_INDEX,\n EDITOR_VIEW_TAB_INDEX,\n EDITOR_VIEW_TAB,\n PAGE_BUILDER_TAB,\n UNPUBLISHED_WARNING,\n SAVE_BEFORE_PUBLISH_MESSAGE,\n ICON_SIZE,\n ICON_COLOR,\n PAGE_NOT_FOUND,\n ENTER_KEY,\n DEFAULT_FILTER_OPTION_LABEL\n};\n"],"mappings":"AAAA,MAAMA,WAAW,GAAG,SAAS;AAC7B,MAAMC,mBAAmB,GAAG,eAAe;AAC3C,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,iBAAiB,GAAG,SAAS;AACnC,MAAMC,gBAAgB,GAAG,WAAW;AACpC,MAAMC,oBAAoB,GAAG,kBAAkB;AAC/C,MAAMC,kBAAkB,GAAG,wEAAwE;AACnG,MAAMC,YAAY,GAAG,aAAa;AAClC,MAAMC,gBAAgB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;AACjF,MAAMC,iBAAiB,GAAG,qBAAqB;AAC/C,MAAMC,qBAAqB,GAAG,aAAa;AAC3C,MAAMC,8BAA8B,GAAG,uBAAuB;AAC9D,MAAMC,KAAK,GAAG,OAAO;AACrB,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,SAAS,GAAG,WAAW;AAC7B,MAAMC,WAAW,GAAG,aAAa;AACjC,MAAMC,iBAAiB,GAAG;EAAEC,IAAI,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,MAAM,EAAE;AAAS,CAAC;AAC5E,MAAMC,OAAO,GAAG,SAAS;AACzB,MAAMC,mBAAmB,GAAG,0BAA0B;AACtD,MAAMC,cAAc,GAAG,gBAAgB;AACvC,MAAMC,2BAA2B,GAC/B,oEAAoE;AAEtE,MAAMC,gBAAgB,GAAG,cAAc;AACvC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,eAAe,GAAG,aAAa;AACrC,MAAMC,qBAAqB,GAAG,CAAC;AAE/B,MAAMC,SAAS,GAAG,OAAO;AAEzB,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAE,MAAM;EACbC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,UAAU,GAAG;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE;AACR,CAAC;AAED,MAAMC,2BAA2B,GAAG,KAAK;AAEzC,SACElC,mBAAmB,EACnBG,gBAAgB,EAChBG,YAAY,EACZD,kBAAkB,EAClBE,gBAAgB,EAChBN,YAAY,EACZF,WAAW,EACXS,iBAAiB,EACjBJ,oBAAoB,EACpBF,iBAAiB,EACjBO,qBAAqB,EACrBC,8BAA8B,EAC9BC,KAAK,EACLC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,iBAAiB,EACjBI,OAAO,EACPK,sBAAsB,EACtBE,qBAAqB,EACrBD,eAAe,EACfF,gBAAgB,EAChBH,mBAAmB,EACnBE,2BAA2B,EAC3BM,SAAS,EACTG,UAAU,EACVV,cAAc,EACdM,SAAS,EACTO,2BAA2B","ignoreList":[]}
@@ -1,18 +1,18 @@
1
1
  import { gql } from '@apollo/client';
2
2
  import { BlazeError } from '@blaze-cms/core-errors';
3
3
  import { getDynamicQuery } from '@blaze-cms/admin-ui-utils';
4
- const buildAdminSearchQuery = entitySchema => {
4
+ const buildAdminSearchQuery = (entitySchema, index) => {
5
5
  const {
6
6
  listingProperties = []
7
7
  } = entitySchema || {};
8
8
  const parsedProperties = `id, ${listingProperties.join(' ') || 'id name'}`;
9
- return getDynamicQuery('ADMIN_SEARCH')([entitySchema], parsedProperties, true);
9
+ return getDynamicQuery('ADMIN_SEARCH')([entitySchema], parsedProperties, true, index);
10
10
  };
11
- function buildListingQuery(entitySchema, isSearchQuery) {
11
+ function buildListingQuery(entitySchema, index, isSearchQuery) {
12
12
  if (!entitySchema.actions || !entitySchema.actions.getAll || !entitySchema.listingProperties) {
13
13
  throw new BlazeError('Listing query requires getAll action and listingProperties from entity schema');
14
14
  }
15
- if (isSearchQuery) return buildAdminSearchQuery(entitySchema);
15
+ if (isSearchQuery) return buildAdminSearchQuery(entitySchema, index);
16
16
  const sortType = entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);
17
17
  return gql`
18
18
  query ${entitySchema.actions.getAll}($where: JSON, $limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {
@@ -1 +1 @@
1
- {"version":3,"file":"build-listing-query.js","names":["gql","BlazeError","getDynamicQuery","buildAdminSearchQuery","entitySchema","listingProperties","parsedProperties","join","buildListingQuery","isSearchQuery","actions","getAll","sortType","toUpperCase","substr","countAll"],"sources":["../../src/utils/build-listing-query.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { BlazeError } from '@blaze-cms/core-errors';\nimport { getDynamicQuery } from '@blaze-cms/admin-ui-utils';\n\nconst buildAdminSearchQuery = entitySchema => {\n const { listingProperties = [] } = entitySchema || {};\n const parsedProperties = `id, ${listingProperties.join(' ') || 'id name'}`;\n\n return getDynamicQuery('ADMIN_SEARCH')([entitySchema], parsedProperties, true);\n};\n\nfunction buildListingQuery(entitySchema, isSearchQuery) {\n if (!entitySchema.actions || !entitySchema.actions.getAll || !entitySchema.listingProperties) {\n throw new BlazeError(\n 'Listing query requires getAll action and listingProperties from entity schema'\n );\n }\n\n if (isSearchQuery) return buildAdminSearchQuery(entitySchema);\n\n const sortType =\n entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);\n\n return gql`\n query ${\n entitySchema.actions.getAll\n }($where: JSON, $limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {\n listingData: ${\n entitySchema.actions.getAll\n }(where: $where, limit: $limit, offset:$offset, sort:$sort){\n id,\n ${entitySchema.listingProperties.join(',\\n')}\n }\n totalRecords: ${entitySchema.actions.countAll}(where: $where)\n }\n `;\n}\n\nexport default buildListingQuery;\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,eAAe,QAAQ,2BAA2B;AAE3D,MAAMC,qBAAqB,GAAGC,YAAY,IAAI;EAC5C,MAAM;IAAEC,iBAAiB,GAAG;EAAG,CAAC,GAAGD,YAAY,IAAI,CAAC,CAAC;EACrD,MAAME,gBAAgB,GAAG,OAAOD,iBAAiB,CAACE,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE;EAE1E,OAAOL,eAAe,CAAC,cAAc,CAAC,CAAC,CAACE,YAAY,CAAC,EAAEE,gBAAgB,EAAE,IAAI,CAAC;AAChF,CAAC;AAED,SAASE,iBAAiBA,CAACJ,YAAY,EAAEK,aAAa,EAAE;EACtD,IAAI,CAACL,YAAY,CAACM,OAAO,IAAI,CAACN,YAAY,CAACM,OAAO,CAACC,MAAM,IAAI,CAACP,YAAY,CAACC,iBAAiB,EAAE;IAC5F,MAAM,IAAIJ,UAAU,CAClB,+EACF,CAAC;EACH;EAEA,IAAIQ,aAAa,EAAE,OAAON,qBAAqB,CAACC,YAAY,CAAC;EAE7D,MAAMQ,QAAQ,GACZR,YAAY,CAACM,OAAO,CAACC,MAAM,CAAC,CAAC,CAAC,CAACE,WAAW,CAAC,CAAC,GAAGT,YAAY,CAACM,OAAO,CAACC,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC;EAEtF,OAAOd,GAAG;AACZ,YACMI,YAAY,CAACM,OAAO,CAACC,MAAM,oDACuBC,QAAQ;AAChE,qBACQR,YAAY,CAACM,OAAO,CAACC,MAAM;AACnC;AACA,UACUP,YAAY,CAACC,iBAAiB,CAACE,IAAI,CAAC,KAAK,CAAC;AACpD;AACA,sBAAsBH,YAAY,CAACM,OAAO,CAACK,QAAQ;AACnD;AACA,GAAG;AACH;AAEA,eAAeP,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"build-listing-query.js","names":["gql","BlazeError","getDynamicQuery","buildAdminSearchQuery","entitySchema","index","listingProperties","parsedProperties","join","buildListingQuery","isSearchQuery","actions","getAll","sortType","toUpperCase","substr","countAll"],"sources":["../../src/utils/build-listing-query.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { BlazeError } from '@blaze-cms/core-errors';\nimport { getDynamicQuery } from '@blaze-cms/admin-ui-utils';\n\nconst buildAdminSearchQuery = (entitySchema, index) => {\n const { listingProperties = [] } = entitySchema || {};\n const parsedProperties = `id, ${listingProperties.join(' ') || 'id name'}`;\n\n return getDynamicQuery('ADMIN_SEARCH')([entitySchema], parsedProperties, true, index);\n};\n\nfunction buildListingQuery(entitySchema, index, isSearchQuery) {\n if (!entitySchema.actions || !entitySchema.actions.getAll || !entitySchema.listingProperties) {\n throw new BlazeError(\n 'Listing query requires getAll action and listingProperties from entity schema'\n );\n }\n\n if (isSearchQuery) return buildAdminSearchQuery(entitySchema, index);\n\n const sortType =\n entitySchema.actions.getAll[0].toUpperCase() + entitySchema.actions.getAll.substr(1);\n\n return gql`\n query ${\n entitySchema.actions.getAll\n }($where: JSON, $limit: Int, $offset:Int, $sort: [${sortType}SortItem]) {\n listingData: ${\n entitySchema.actions.getAll\n }(where: $where, limit: $limit, offset:$offset, sort:$sort){\n id,\n ${entitySchema.listingProperties.join(',\\n')}\n }\n totalRecords: ${entitySchema.actions.countAll}(where: $where)\n }\n `;\n}\n\nexport default buildListingQuery;\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,eAAe,QAAQ,2BAA2B;AAE3D,MAAMC,qBAAqB,GAAGA,CAACC,YAAY,EAAEC,KAAK,KAAK;EACrD,MAAM;IAAEC,iBAAiB,GAAG;EAAG,CAAC,GAAGF,YAAY,IAAI,CAAC,CAAC;EACrD,MAAMG,gBAAgB,GAAG,OAAOD,iBAAiB,CAACE,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE;EAE1E,OAAON,eAAe,CAAC,cAAc,CAAC,CAAC,CAACE,YAAY,CAAC,EAAEG,gBAAgB,EAAE,IAAI,EAAEF,KAAK,CAAC;AACvF,CAAC;AAED,SAASI,iBAAiBA,CAACL,YAAY,EAAEC,KAAK,EAAEK,aAAa,EAAE;EAC7D,IAAI,CAACN,YAAY,CAACO,OAAO,IAAI,CAACP,YAAY,CAACO,OAAO,CAACC,MAAM,IAAI,CAACR,YAAY,CAACE,iBAAiB,EAAE;IAC5F,MAAM,IAAIL,UAAU,CAClB,+EACF,CAAC;EACH;EAEA,IAAIS,aAAa,EAAE,OAAOP,qBAAqB,CAACC,YAAY,EAAEC,KAAK,CAAC;EAEpE,MAAMQ,QAAQ,GACZT,YAAY,CAACO,OAAO,CAACC,MAAM,CAAC,CAAC,CAAC,CAACE,WAAW,CAAC,CAAC,GAAGV,YAAY,CAACO,OAAO,CAACC,MAAM,CAACG,MAAM,CAAC,CAAC,CAAC;EAEtF,OAAOf,GAAG;AACZ,YACMI,YAAY,CAACO,OAAO,CAACC,MAAM,oDACuBC,QAAQ;AAChE,qBACQT,YAAY,CAACO,OAAO,CAACC,MAAM;AACnC;AACA,UACUR,YAAY,CAACE,iBAAiB,CAACE,IAAI,CAAC,KAAK,CAAC;AACpD;AACA,sBAAsBJ,YAAY,CAACO,OAAO,CAACK,QAAQ;AACnD;AACA,GAAG;AACH;AAEA,eAAeP,iBAAiB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/plugin-data-ui",
3
- "version": "0.146.0-node18-core-styles-tooltips.3",
3
+ "version": "0.146.0-node18-core-styles-tooltips.5",
4
4
  "description": "Blaze plugin data ui",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -27,11 +27,11 @@
27
27
  },
28
28
  "license": "GPL-3.0",
29
29
  "dependencies": {
30
- "@blaze-cms/admin-ui-utils": "0.146.0-node18-core-styles-tooltips.3",
30
+ "@blaze-cms/admin-ui-utils": "0.146.0-node18-core-styles-tooltips.5",
31
31
  "@blaze-cms/core-errors": "0.146.0-node18-core-styles-tooltips.3",
32
32
  "@blaze-cms/plugin-render-hooks-ui": "0.146.0-node18-core-styles-tooltips.3",
33
- "@blaze-cms/react-form-builder": "0.146.0-node18-core-styles-tooltips.3",
34
- "@blaze-cms/react-page-builder": "0.146.0-node18-core-styles-tooltips.3",
33
+ "@blaze-cms/react-form-builder": "0.146.0-node18-core-styles-tooltips.5",
34
+ "@blaze-cms/react-page-builder": "0.146.0-node18-core-styles-tooltips.5",
35
35
  "@blaze-cms/setup-ui": "0.146.0-node18-core-styles-tooltips.3",
36
36
  "@blaze-cms/versioning-ui": "0.146.0-node18-core-styles-tooltips.3",
37
37
  "@blaze-react/button": "0.8.0-alpha.82",
@@ -69,5 +69,5 @@
69
69
  "lib/*",
70
70
  "lib-es/*"
71
71
  ],
72
- "gitHead": "92ba8597805e2d7b354f553467072fbcec37b1d8"
72
+ "gitHead": "d6b0cd14687e7fe634aade939e3b28c67aabda02"
73
73
  }
@@ -70,6 +70,8 @@ const Entity = ({
70
70
  const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);
71
71
  const [externalUpdateTime, setExternalUpdateTime] = useState(null);
72
72
  const [suppressPrompt, setSuppressPrompt] = useState(false);
73
+ const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);
74
+ const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);
73
75
 
74
76
  const isCreatePage = history.location.pathname.includes('create');
75
77
  const [isNewEntity, setIsNewEntity] = useState(isCreatePage);
@@ -453,7 +455,10 @@ const Entity = ({
453
455
  />
454
456
  )}
455
457
 
456
- <div className="page__content">
458
+ <div
459
+ className={`page__content--fixed${
460
+ !isRightSidebarOpen ? ' right-sidebar-collapsed' : ''
461
+ }`}>
457
462
  <div className="page__content">
458
463
  <div className="content">
459
464
  <RenderHook
@@ -484,13 +489,18 @@ const Entity = ({
484
489
  </div>
485
490
  </div>
486
491
 
487
- <div className="column column--one-third page-sidebar page-sidebar--relations">
492
+ <div
493
+ className={`column column--one-third page-sidebar page-sidebar--relations${
494
+ !isRightSidebarOpen ? ' sidebar--collapsed' : ''
495
+ }`}>
488
496
  {showSideBarRelations && (
489
497
  <SideBarRelations
490
498
  entity={entity}
491
499
  formData={formData.values}
492
500
  schema={schema}
493
501
  onChange={onChangeSideBarRelations}
502
+ isOpen={isRightSidebarOpen}
503
+ onToggle={handleToggleRightSidebar}
494
504
  />
495
505
  )}
496
506
  </div>
@@ -10,10 +10,16 @@ import { PUBLISHED, UNPUBLISHED } from '../../../../constants';
10
10
  import CustomSidebarInfoContainer from './container/CustomSidebarInfoContainer';
11
11
  import EntityNavLinks from '../EntitiyNavLinks';
12
12
 
13
- const SideBarRelations = ({ schema, onChange, formData, entity }) => {
13
+ const SideBarRelations = ({ schema, onChange, formData, entity, isOpen, onToggle }) => {
14
14
  const { relation: RelationComponent } = formFieldTypes;
15
- const { formattedStatus, formattedUpdated, formattedCreated, formattedPublished, status } =
16
- formData;
15
+ const {
16
+ formattedStatus,
17
+ formattedUpdated,
18
+ formattedCreated,
19
+ formattedPublished,
20
+ updatedBy,
21
+ status
22
+ } = formData;
17
23
  const client = useApolloClient();
18
24
 
19
25
  const [relationsComponents, setRelationsComponents] = useState(null);
@@ -58,7 +64,16 @@ const SideBarRelations = ({ schema, onChange, formData, entity }) => {
58
64
  });
59
65
 
60
66
  return (
61
- <div className="sidebar" data-testid="sideBarRelations-main-div">
67
+ <div
68
+ className={classnames('sidebar', { 'sidebar--collapsed': !isOpen })}
69
+ data-testid="sideBarRelations-main-div">
70
+ <div
71
+ className="sidebar__toggle-button"
72
+ onClick={onToggle}
73
+ role="button"
74
+ aria-label={isOpen ? 'Collapse sidebar' : 'Expand sidebar'}>
75
+ <i className="material-icons">{isOpen ? 'keyboard_arrow_right' : 'keyboard_arrow_left'}</i>
76
+ </div>
62
77
  <div className="sidebar__content">
63
78
  <div className="sidebar__status">
64
79
  {formattedCreated && (
@@ -82,6 +97,11 @@ const SideBarRelations = ({ schema, onChange, formData, entity }) => {
82
97
  <p>
83
98
  Updated: <span>{formattedUpdated}</span>
84
99
  </p>
100
+ {updatedBy && (
101
+ <p>
102
+ Updated by: <span>{updatedBy.name}</span>
103
+ </p>
104
+ )}
85
105
  </>
86
106
  )}
87
107
 
@@ -114,11 +134,14 @@ SideBarRelations.propTypes = {
114
134
  schema: PropTypes.object.isRequired,
115
135
  onChange: PropTypes.func.isRequired,
116
136
  formData: PropTypes.object.isRequired,
117
- entity: PropTypes.object
137
+ entity: PropTypes.object,
138
+ isOpen: PropTypes.bool,
139
+ onToggle: PropTypes.func
118
140
  };
119
-
120
141
  SideBarRelations.defaultProps = {
121
- entity: {}
142
+ entity: {},
143
+ isOpen: true,
144
+ onToggle: () => {}
122
145
  };
123
146
 
124
147
  export default SideBarRelations;
@@ -1,12 +1,12 @@
1
1
  import React, { useEffect, useState, Fragment } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import More from '@blaze-react/more';
4
3
  import { useApolloClient } from '@apollo/client';
5
4
  import { withRouter, Link, useLocation } from 'react-router-dom';
6
5
  import { PageHeader, DeleteAction, CardPrompt } from '@blaze-cms/admin';
7
6
  import { useToasts } from '@blaze-react/toaster';
8
7
  import { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';
9
8
  import ListingTableContent from './ListingTableContent';
9
+ import SearchFilter from './SearchFilter/SearchFilter';
10
10
  import availableActions from '../EntityManager/Entity/actions-handlers';
11
11
  import { fetchData } from './service';
12
12
  import { populateRows, formatRows, getParsedRowData } from './mappers/populate-rows';
@@ -38,7 +38,7 @@ const ListingTable = ({ match, entitySchema, history }) => {
38
38
  ...queryParams,
39
39
  offset: currentPage * queryParamsDefault.limit - queryParamsDefault.limit
40
40
  };
41
- await doQuery(listFilters, updatedQueryParams);
41
+ await doQuery([], updatedQueryParams);
42
42
  setPreviousSchema({ id: entitySchema.id });
43
43
  }
44
44
  })();
@@ -169,22 +169,9 @@ const ListingTable = ({ match, entitySchema, history }) => {
169
169
  )}
170
170
  <PageHeader title={entitySchema.displayName} subtitle="">
171
171
  {createAction.active && !showAddButton && (
172
- <>
173
- <Link
174
- data-testid="addEntity"
175
- className="button button--small"
176
- to={`${match.url}/create`}>
177
- Add
178
- </Link>
179
- <PageHeader.Actions>
180
- <More>
181
- <More.Avatar isMoreMenu>
182
- <span className="material-icons">more_vert</span>
183
- </More.Avatar>
184
- <More.Content isMoreMenu />
185
- </More>
186
- </PageHeader.Actions>
187
- </>
172
+ <Link data-testid="addEntity" className="button button--small" to={`${match.url}/create`}>
173
+ Add
174
+ </Link>
188
175
  )}
189
176
  </PageHeader>
190
177
  {showAddButton ? (
@@ -204,6 +191,11 @@ const ListingTable = ({ match, entitySchema, history }) => {
204
191
  listFilters={listFilters}
205
192
  setListFilters={updateListingFilters}
206
193
  />
194
+ <SearchFilter
195
+ schema={entitySchema}
196
+ listFilters={listFilters}
197
+ setListFilters={updateListingFilters}
198
+ />
207
199
  <ListingTableContent
208
200
  totalItems={totalItems}
209
201
  currentPage={currentPage}
@@ -211,6 +203,9 @@ const ListingTable = ({ match, entitySchema, history }) => {
211
203
  handleOnPageChange={handleOnPageChange}
212
204
  tableData={tableData}
213
205
  onCloseCardPrompt={onCloseCardPrompt}
206
+ schema={entitySchema}
207
+ listFilters={listFilters}
208
+ setListFilters={updateListingFilters}
214
209
  />
215
210
  </>
216
211
  )}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
2
  import Table from '@blaze-react/table';
3
3
  import Pagination from '@blaze-react/pagination';
4
4
  import PropTypes from 'prop-types';
@@ -12,10 +12,30 @@ const ListingTableContent = ({
12
12
  currentPage,
13
13
  totalItems
14
14
  }) => {
15
+ const ref = useRef(null);
15
16
  const displayTable = tableData && tableData.rows && !!tableData.rows.length;
16
17
  const { isEnquiry } = tableData;
17
18
  const className = `page__content${isEnquiry ? ' array-table' : ''}`;
18
19
 
20
+ useEffect(() => {
21
+ // set table head to match body column widths to handle dynamic content
22
+ if (ref.current) {
23
+ const tableHeadCells = ref.current.querySelectorAll('.table-head .table-cell');
24
+ const firstRowCells = ref.current.querySelectorAll(
25
+ '.table-body .table-row:first-child .table-cell'
26
+ );
27
+
28
+ firstRowCells.forEach((element, i) => {
29
+ const styles = window.getComputedStyle(element);
30
+
31
+ if (tableHeadCells[i]) {
32
+ tableHeadCells[i].style.flex = styles.flex;
33
+ tableHeadCells[i].style['justify-content'] = styles['justify-content'];
34
+ }
35
+ });
36
+ }
37
+ }, [tableData]);
38
+
19
39
  if (displayTable) {
20
40
  return (
21
41
  <div className={className}>