@blaze-cms/plugin-data-ui 0.146.0-alpha.6 → 0.146.0-alpha.62

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 (98) hide show
  1. package/CHANGELOG.md +296 -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/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +8 -2
  6. package/lib/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -1
  7. package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +1 -1
  8. package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -1
  9. package/lib/components/EntityManager/Entity/SideBarRelations/index.js +22 -5
  10. package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  11. package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +9 -2
  12. package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -1
  13. package/lib/components/EntityManager/utils/entity.js +8 -2
  14. package/lib/components/EntityManager/utils/entity.js.map +1 -1
  15. package/lib/components/InfoBoxes/InfoBoxTooltip.js +40 -0
  16. package/lib/components/InfoBoxes/InfoBoxTooltip.js.map +1 -0
  17. package/lib/components/InfoBoxes/helpers/build-dynamic-query.js +1 -1
  18. package/lib/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -1
  19. package/lib/components/InfoBoxes/presentational/InfoBox.js +4 -1
  20. package/lib/components/InfoBoxes/presentational/InfoBox.js.map +1 -1
  21. package/lib/components/ListingTable/ListingTable.js +11 -10
  22. package/lib/components/ListingTable/ListingTable.js.map +1 -1
  23. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +28 -2
  24. package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  25. package/lib/components/ListingTable/SearchFilter/SearchContainer.js +313 -0
  26. package/lib/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
  27. package/lib/components/ListingTable/SearchFilter/SearchFilter.js +59 -0
  28. package/lib/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
  29. package/lib/components/ListingTable/SearchFilter/helpers.js +127 -0
  30. package/lib/components/ListingTable/SearchFilter/helpers.js.map +1 -0
  31. package/lib/components/ListingTable/SearchFilter/querys.js +13 -0
  32. package/lib/components/ListingTable/SearchFilter/querys.js.map +1 -0
  33. package/lib/components/ListingTable/mappers/populate-rows.js +3 -0
  34. package/lib/components/ListingTable/mappers/populate-rows.js.map +1 -1
  35. package/lib/components/ListingTable/service/index.js +3 -3
  36. package/lib/components/ListingTable/service/index.js.map +1 -1
  37. package/lib/constants.js +3 -1
  38. package/lib/constants.js.map +1 -1
  39. package/lib/utils/build-listing-query.js +4 -4
  40. package/lib/utils/build-listing-query.js.map +1 -1
  41. package/lib-es/components/EntityManager/Entity/Entity.js +7 -3
  42. package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
  43. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +4 -1
  44. package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -1
  45. package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +2 -0
  46. package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -1
  47. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +21 -5
  48. package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
  49. package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +8 -2
  50. package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -1
  51. package/lib-es/components/EntityManager/utils/entity.js +4 -1
  52. package/lib-es/components/EntityManager/utils/entity.js.map +1 -1
  53. package/lib-es/components/InfoBoxes/InfoBoxTooltip.js +36 -0
  54. package/lib-es/components/InfoBoxes/InfoBoxTooltip.js.map +1 -0
  55. package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +2 -0
  56. package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -1
  57. package/lib-es/components/InfoBoxes/presentational/InfoBox.js +4 -1
  58. package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +1 -1
  59. package/lib-es/components/ListingTable/ListingTable.js +11 -10
  60. package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
  61. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +17 -2
  62. package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
  63. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +207 -0
  64. package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
  65. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js +40 -0
  66. package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
  67. package/lib-es/components/ListingTable/SearchFilter/helpers.js +96 -0
  68. package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -0
  69. package/lib-es/components/ListingTable/SearchFilter/querys.js +8 -0
  70. package/lib-es/components/ListingTable/SearchFilter/querys.js.map +1 -0
  71. package/lib-es/components/ListingTable/mappers/populate-rows.js +3 -0
  72. package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -1
  73. package/lib-es/components/ListingTable/service/index.js +3 -2
  74. package/lib-es/components/ListingTable/service/index.js.map +1 -1
  75. package/lib-es/constants.js +3 -1
  76. package/lib-es/constants.js.map +1 -1
  77. package/lib-es/utils/build-listing-query.js +4 -4
  78. package/lib-es/utils/build-listing-query.js.map +1 -1
  79. package/package.json +8 -7
  80. package/src/components/EntityManager/Entity/Entity.js +12 -2
  81. package/src/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +4 -1
  82. package/src/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +2 -0
  83. package/src/components/EntityManager/Entity/SideBarRelations/index.js +23 -5
  84. package/src/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +5 -3
  85. package/src/components/EntityManager/utils/entity.js +4 -1
  86. package/src/components/InfoBoxes/InfoBoxTooltip.js +32 -0
  87. package/src/components/InfoBoxes/helpers/build-dynamic-query.js +2 -0
  88. package/src/components/InfoBoxes/presentational/InfoBox.js +4 -2
  89. package/src/components/ListingTable/ListingTable.js +10 -10
  90. package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +25 -3
  91. package/src/components/ListingTable/SearchFilter/SearchContainer.js +243 -0
  92. package/src/components/ListingTable/SearchFilter/SearchFilter.js +38 -0
  93. package/src/components/ListingTable/SearchFilter/helpers.js +99 -0
  94. package/src/components/ListingTable/SearchFilter/querys.js +9 -0
  95. package/src/components/ListingTable/mappers/populate-rows.js +3 -0
  96. package/src/components/ListingTable/service/index.js +2 -2
  97. package/src/constants.js +7 -1
  98. package/src/utils/build-listing-query.js +4 -4
@@ -8,6 +8,7 @@ import TableActions from '../TableActions';
8
8
  import { ACTIONS } from '../../../constants';
9
9
  import InfoBoxValue from '../../InfoBoxes/presentational/InfoBoxValue';
10
10
  import InfoBoxLabel from '../../InfoBoxes/presentational/InfoBoxLabel';
11
+ import InfoBoxTooltip from '../../InfoBoxes/InfoBoxTooltip';
11
12
  const formatRows = ({
12
13
  rows,
13
14
  url,
@@ -60,6 +61,8 @@ const buildArrayRowContent = rowData => /*#__PURE__*/React.createElement("div",
60
61
  className: "table-row-list__group__item__value"
61
62
  }, /*#__PURE__*/React.createElement(InfoBoxValue, {
62
63
  item: item
64
+ }), /*#__PURE__*/React.createElement(InfoBoxTooltip, {
65
+ info: item
63
66
  })))));
64
67
  }));
65
68
  const buildArrayRowData = rowData => {
@@ -1 +1 @@
1
- {"version":3,"file":"populate-rows.js","names":["React","Link","RenderHook","TableActions","ACTIONS","InfoBoxValue","InfoBoxLabel","formatRows","rows","url","toggleModal","label","firstColumn","isEnquiry","entitySchema","map","data","editUrl","id","rowProps","_objectSpread","createElement","Fragment","to","role","hookKey","schema","value","column","actions","showDeleteModal","getSanitizedColumnLabel","columnProp","sanitizedChar","index","length","toUpperCase","toLowerCase","buildArrayRowContent","rowData","className","rowGroup","item","buildArrayRowData","groupSize","Math","ceil","group1","slice","group2","group3","dataGroups","getParsedRowData","Object","keys","reduce","acc","key","parsedData","Array","isArray","getColumnsAndLabels","listingProperties","allProperties","columns","labels","forEach","listingProperty","propKey","includes","split","push","parsedRowData","populateRows","schemaId","properties","dynamicProperties","formProperties","columnOptions","identification","sort","orderBy"],"sources":["../../../../src/components/ListingTable/mappers/populate-rows.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport TableActions from '../TableActions';\nimport { ACTIONS } from '../../../constants';\nimport InfoBoxValue from '../../InfoBoxes/presentational/InfoBoxValue';\nimport InfoBoxLabel from '../../InfoBoxes/presentational/InfoBoxLabel';\n\nconst formatRows = ({\n rows,\n url,\n toggleModal,\n label,\n firstColumn = 'name',\n isEnquiry,\n entitySchema\n}) =>\n rows.map(data => {\n const editUrl = `${url}/update/${data.id}`;\n const rowProps = {\n ...data,\n [firstColumn]: (\n <>\n <Link to={editUrl} role=\"button\">\n {data[firstColumn]}\n </Link>\n <RenderHook\n hookKey=\"entity:listing:table:row:column:after\"\n schema={entitySchema}\n data={data}\n value={data[firstColumn]}\n column={firstColumn}\n />\n </>\n )\n };\n if (!isEnquiry)\n rowProps.actions = (\n <TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />\n );\n return rowProps;\n });\n\nconst getSanitizedColumnLabel = columnProp => {\n let sanitizedChar = '';\n\n for (let index = 0; index < columnProp.length; index += 1) {\n if (index && columnProp[index] === columnProp[index].toUpperCase())\n sanitizedChar = `${sanitizedChar} ${columnProp[index].toLowerCase()}`;\n else sanitizedChar += columnProp[index];\n }\n return sanitizedChar;\n};\n\nconst buildArrayRowContent = rowData => (\n <div className=\"table-row-list\">\n {rowData.map(rowGroup => {\n if (!rowGroup.length) return null;\n return (\n <div className=\"table-row-list__group\">\n {rowGroup.map(item => (\n <div className=\"table-row-list__group__item\">\n <span className=\"table-row-list__group__item__label\">\n <InfoBoxLabel item={item} />\n </span>\n <span className=\"table-row-list__group__item__value\">\n <InfoBoxValue item={item} />\n </span>\n </div>\n ))}\n </div>\n );\n })}\n </div>\n);\n\nconst buildArrayRowData = rowData => {\n const groupSize = Math.ceil(rowData.length / 3);\n const group1 = rowData.slice(0, groupSize);\n const group2 = rowData.slice(groupSize, groupSize * 2);\n const group3 = rowData.slice(groupSize * 2);\n const dataGroups = [group1, group2, group3];\n\n return buildArrayRowContent(dataGroups);\n};\n\nconst getParsedRowData = rows =>\n rows.map(rowData =>\n Object.keys(rowData).reduce((acc, key) => {\n const parsedData = Array.isArray(rowData[key])\n ? buildArrayRowData(rowData[key])\n : rowData[key];\n return { ...acc, [key]: parsedData };\n }, {})\n );\n\nconst getColumnsAndLabels = (listingProperties, allProperties, rows) => {\n const columns = [];\n const labels = {};\n\n listingProperties.forEach(listingProperty => {\n const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;\n const { label } = allProperties[propKey] || {};\n columns.push(propKey);\n labels[propKey] = label || getSanitizedColumnLabel(propKey);\n });\n const parsedRowData = getParsedRowData(rows);\n\n return { columns, labels, parsedRowData };\n};\n\nconst populateRows = ({ toggleModal, url, entitySchema, rows }) => {\n const {\n id: schemaId,\n listingProperties,\n properties,\n dynamicProperties = {},\n formProperties\n } = entitySchema;\n\n const isEnquiry = schemaId === 'enquiry';\n const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];\n\n const allProperties = { ...properties, ...dynamicProperties };\n const { columns, labels, parsedRowData } = getColumnsAndLabels(\n columnOptions,\n allProperties,\n rows\n );\n const [firstColumn] = columns;\n\n return {\n identification: 'id',\n sort: null,\n columns,\n labels,\n orderBy: [...formProperties],\n rows: formatRows({\n firstColumn,\n rows: parsedRowData,\n url,\n toggleModal,\n isEnquiry,\n entitySchema\n }),\n isEnquiry\n };\n};\n\nexport { populateRows, formatRows, getParsedRowData };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"populate-rows.js","names":["React","Link","RenderHook","TableActions","ACTIONS","InfoBoxValue","InfoBoxLabel","InfoBoxTooltip","formatRows","rows","url","toggleModal","label","firstColumn","isEnquiry","entitySchema","map","data","editUrl","id","rowProps","_objectSpread","createElement","Fragment","to","role","hookKey","schema","value","column","actions","showDeleteModal","getSanitizedColumnLabel","columnProp","sanitizedChar","index","length","toUpperCase","toLowerCase","buildArrayRowContent","rowData","className","rowGroup","item","info","buildArrayRowData","groupSize","Math","ceil","group1","slice","group2","group3","dataGroups","getParsedRowData","Object","keys","reduce","acc","key","parsedData","Array","isArray","getColumnsAndLabels","listingProperties","allProperties","columns","labels","forEach","listingProperty","propKey","includes","split","push","parsedRowData","populateRows","schemaId","properties","dynamicProperties","formProperties","columnOptions","identification","sort","orderBy"],"sources":["../../../../src/components/ListingTable/mappers/populate-rows.js"],"sourcesContent":["import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport TableActions from '../TableActions';\nimport { ACTIONS } from '../../../constants';\nimport InfoBoxValue from '../../InfoBoxes/presentational/InfoBoxValue';\nimport InfoBoxLabel from '../../InfoBoxes/presentational/InfoBoxLabel';\nimport InfoBoxTooltip from '../../InfoBoxes/InfoBoxTooltip';\n\nconst formatRows = ({\n rows,\n url,\n toggleModal,\n label,\n firstColumn = 'name',\n isEnquiry,\n entitySchema\n}) =>\n rows.map(data => {\n const editUrl = `${url}/update/${data.id}`;\n\n const rowProps = {\n ...data,\n [firstColumn]: (\n <>\n <Link to={editUrl} role=\"button\">\n {data[firstColumn]}\n </Link>\n <RenderHook\n hookKey=\"entity:listing:table:row:column:after\"\n schema={entitySchema}\n data={data}\n value={data[firstColumn]}\n column={firstColumn}\n />\n </>\n )\n };\n if (!isEnquiry)\n rowProps.actions = (\n <TableActions editUrl={editUrl} data={data} showDeleteModal={toggleModal} />\n );\n return rowProps;\n });\n\nconst getSanitizedColumnLabel = columnProp => {\n let sanitizedChar = '';\n\n for (let index = 0; index < columnProp.length; index += 1) {\n if (index && columnProp[index] === columnProp[index].toUpperCase())\n sanitizedChar = `${sanitizedChar} ${columnProp[index].toLowerCase()}`;\n else sanitizedChar += columnProp[index];\n }\n return sanitizedChar;\n};\n\nconst buildArrayRowContent = rowData => (\n <div className=\"table-row-list\">\n {rowData.map(rowGroup => {\n if (!rowGroup.length) return null;\n return (\n <div className=\"table-row-list__group\">\n {rowGroup.map(item => (\n <div className=\"table-row-list__group__item\">\n <span className=\"table-row-list__group__item__label\">\n <InfoBoxLabel item={item} />\n </span>\n <span className=\"table-row-list__group__item__value\">\n <InfoBoxValue item={item} />\n <InfoBoxTooltip info={item} />\n </span>\n </div>\n ))}\n </div>\n );\n })}\n </div>\n);\n\nconst buildArrayRowData = rowData => {\n const groupSize = Math.ceil(rowData.length / 3);\n const group1 = rowData.slice(0, groupSize);\n const group2 = rowData.slice(groupSize, groupSize * 2);\n const group3 = rowData.slice(groupSize * 2);\n const dataGroups = [group1, group2, group3];\n\n return buildArrayRowContent(dataGroups);\n};\n\nconst getParsedRowData = rows =>\n rows.map(rowData =>\n Object.keys(rowData).reduce((acc, key) => {\n const parsedData = Array.isArray(rowData[key])\n ? buildArrayRowData(rowData[key])\n : rowData[key];\n return { ...acc, [key]: parsedData };\n }, {})\n );\n\nconst getColumnsAndLabels = (listingProperties, allProperties, rows) => {\n const columns = [];\n const labels = {};\n\n listingProperties.forEach(listingProperty => {\n const propKey = listingProperty.includes(' ') ? listingProperty.split(' ')[0] : listingProperty;\n const { label } = allProperties[propKey] || {};\n columns.push(propKey);\n labels[propKey] = label || getSanitizedColumnLabel(propKey);\n });\n const parsedRowData = getParsedRowData(rows);\n\n return { columns, labels, parsedRowData };\n};\n\nconst populateRows = ({ toggleModal, url, entitySchema, rows }) => {\n const {\n id: schemaId,\n listingProperties,\n properties,\n dynamicProperties = {},\n formProperties\n } = entitySchema;\n\n const isEnquiry = schemaId === 'enquiry';\n const columnOptions = !isEnquiry ? [...listingProperties, ACTIONS] : [...listingProperties];\n\n const allProperties = { ...properties, ...dynamicProperties };\n const { columns, labels, parsedRowData } = getColumnsAndLabels(\n columnOptions,\n allProperties,\n rows\n );\n const [firstColumn] = columns;\n\n return {\n identification: 'id',\n sort: null,\n columns,\n labels,\n orderBy: [...formProperties],\n rows: formatRows({\n firstColumn,\n rows: parsedRowData,\n url,\n toggleModal,\n isEnquiry,\n entitySchema\n }),\n isEnquiry\n };\n};\n\nexport { populateRows, formatRows, getParsedRowData };\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,UAAU,QAAQ,mCAAmC;AAC9D,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,OAAOC,YAAY,MAAM,6CAA6C;AACtE,OAAOC,YAAY,MAAM,6CAA6C;AACtE,OAAOC,cAAc,MAAM,gCAAgC;AAE3D,MAAMC,UAAU,GAAGA,CAAC;EAClBC,IAAI;EACJC,GAAG;EACHC,WAAW;EACXC,KAAK;EACLC,WAAW,GAAG,MAAM;EACpBC,SAAS;EACTC;AACF,CAAC,KACCN,IAAI,CAACO,GAAG,CAACC,IAAI,IAAI;EACf,MAAMC,OAAO,GAAI,GAAER,GAAI,WAAUO,IAAI,CAACE,EAAG,EAAC;EAE1C,MAAMC,QAAQ,GAAAC,aAAA,CAAAA,aAAA,KACTJ,IAAI;IACP,CAACJ,WAAW,gBACVb,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,qBACEvB,KAAA,CAAAsB,aAAA,CAACrB,IAAI;MAACuB,EAAE,EAAEN,OAAQ;MAACO,IAAI,EAAC;IAAQ,GAC7BR,IAAI,CAACJ,WAAW,CACb,CAAC,eACPb,KAAA,CAAAsB,aAAA,CAACpB,UAAU;MACTwB,OAAO,EAAC,uCAAuC;MAC/CC,MAAM,EAAEZ,YAAa;MACrBE,IAAI,EAAEA,IAAK;MACXW,KAAK,EAAEX,IAAI,CAACJ,WAAW,CAAE;MACzBgB,MAAM,EAAEhB;IAAY,CACrB,CACD;EACH,EACF;EACD,IAAI,CAACC,SAAS,EACZM,QAAQ,CAACU,OAAO,gBACd9B,KAAA,CAAAsB,aAAA,CAACnB,YAAY;IAACe,OAAO,EAAEA,OAAQ;IAACD,IAAI,EAAEA,IAAK;IAACc,eAAe,EAAEpB;EAAY,CAAE,CAC5E;EACH,OAAOS,QAAQ;AACjB,CAAC,CAAC;AAEJ,MAAMY,uBAAuB,GAAGC,UAAU,IAAI;EAC5C,IAAIC,aAAa,GAAG,EAAE;EAEtB,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGF,UAAU,CAACG,MAAM,EAAED,KAAK,IAAI,CAAC,EAAE;IACzD,IAAIA,KAAK,IAAIF,UAAU,CAACE,KAAK,CAAC,KAAKF,UAAU,CAACE,KAAK,CAAC,CAACE,WAAW,CAAC,CAAC,EAChEH,aAAa,GAAI,GAAEA,aAAc,IAAGD,UAAU,CAACE,KAAK,CAAC,CAACG,WAAW,CAAC,CAAE,EAAC,CAAC,KACnEJ,aAAa,IAAID,UAAU,CAACE,KAAK,CAAC;EACzC;EACA,OAAOD,aAAa;AACtB,CAAC;AAED,MAAMK,oBAAoB,GAAGC,OAAO,iBAClCxC,KAAA,CAAAsB,aAAA;EAAKmB,SAAS,EAAC;AAAgB,GAC5BD,OAAO,CAACxB,GAAG,CAAC0B,QAAQ,IAAI;EACvB,IAAI,CAACA,QAAQ,CAACN,MAAM,EAAE,OAAO,IAAI;EACjC,oBACEpC,KAAA,CAAAsB,aAAA;IAAKmB,SAAS,EAAC;EAAuB,GACnCC,QAAQ,CAAC1B,GAAG,CAAC2B,IAAI,iBAChB3C,KAAA,CAAAsB,aAAA;IAAKmB,SAAS,EAAC;EAA6B,gBAC1CzC,KAAA,CAAAsB,aAAA;IAAMmB,SAAS,EAAC;EAAoC,gBAClDzC,KAAA,CAAAsB,aAAA,CAAChB,YAAY;IAACqC,IAAI,EAAEA;EAAK,CAAE,CACvB,CAAC,eACP3C,KAAA,CAAAsB,aAAA;IAAMmB,SAAS,EAAC;EAAoC,gBAClDzC,KAAA,CAAAsB,aAAA,CAACjB,YAAY;IAACsC,IAAI,EAAEA;EAAK,CAAE,CAAC,eAC5B3C,KAAA,CAAAsB,aAAA,CAACf,cAAc;IAACqC,IAAI,EAAED;EAAK,CAAE,CACzB,CACH,CACN,CACE,CAAC;AAEV,CAAC,CACE,CACN;AAED,MAAME,iBAAiB,GAAGL,OAAO,IAAI;EACnC,MAAMM,SAAS,GAAGC,IAAI,CAACC,IAAI,CAACR,OAAO,CAACJ,MAAM,GAAG,CAAC,CAAC;EAC/C,MAAMa,MAAM,GAAGT,OAAO,CAACU,KAAK,CAAC,CAAC,EAAEJ,SAAS,CAAC;EAC1C,MAAMK,MAAM,GAAGX,OAAO,CAACU,KAAK,CAACJ,SAAS,EAAEA,SAAS,GAAG,CAAC,CAAC;EACtD,MAAMM,MAAM,GAAGZ,OAAO,CAACU,KAAK,CAACJ,SAAS,GAAG,CAAC,CAAC;EAC3C,MAAMO,UAAU,GAAG,CAACJ,MAAM,EAAEE,MAAM,EAAEC,MAAM,CAAC;EAE3C,OAAOb,oBAAoB,CAACc,UAAU,CAAC;AACzC,CAAC;AAED,MAAMC,gBAAgB,GAAG7C,IAAI,IAC3BA,IAAI,CAACO,GAAG,CAACwB,OAAO,IACde,MAAM,CAACC,IAAI,CAAChB,OAAO,CAAC,CAACiB,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;EACxC,MAAMC,UAAU,GAAGC,KAAK,CAACC,OAAO,CAACtB,OAAO,CAACmB,GAAG,CAAC,CAAC,GAC1Cd,iBAAiB,CAACL,OAAO,CAACmB,GAAG,CAAC,CAAC,GAC/BnB,OAAO,CAACmB,GAAG,CAAC;EAChB,OAAAtC,aAAA,CAAAA,aAAA,KAAYqC,GAAG;IAAE,CAACC,GAAG,GAAGC;EAAU;AACpC,CAAC,EAAE,CAAC,CAAC,CACP,CAAC;AAEH,MAAMG,mBAAmB,GAAGA,CAACC,iBAAiB,EAAEC,aAAa,EAAExD,IAAI,KAAK;EACtE,MAAMyD,OAAO,GAAG,EAAE;EAClB,MAAMC,MAAM,GAAG,CAAC,CAAC;EAEjBH,iBAAiB,CAACI,OAAO,CAACC,eAAe,IAAI;IAC3C,MAAMC,OAAO,GAAGD,eAAe,CAACE,QAAQ,CAAC,GAAG,CAAC,GAAGF,eAAe,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAGH,eAAe;IAC/F,MAAM;MAAEzD;IAAM,CAAC,GAAGqD,aAAa,CAACK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9CJ,OAAO,CAACO,IAAI,CAACH,OAAO,CAAC;IACrBH,MAAM,CAACG,OAAO,CAAC,GAAG1D,KAAK,IAAIoB,uBAAuB,CAACsC,OAAO,CAAC;EAC7D,CAAC,CAAC;EACF,MAAMI,aAAa,GAAGpB,gBAAgB,CAAC7C,IAAI,CAAC;EAE5C,OAAO;IAAEyD,OAAO;IAAEC,MAAM;IAAEO;EAAc,CAAC;AAC3C,CAAC;AAED,MAAMC,YAAY,GAAGA,CAAC;EAAEhE,WAAW;EAAED,GAAG;EAAEK,YAAY;EAAEN;AAAK,CAAC,KAAK;EACjE,MAAM;IACJU,EAAE,EAAEyD,QAAQ;IACZZ,iBAAiB;IACjBa,UAAU;IACVC,iBAAiB,GAAG,CAAC,CAAC;IACtBC;EACF,CAAC,GAAGhE,YAAY;EAEhB,MAAMD,SAAS,GAAG8D,QAAQ,KAAK,SAAS;EACxC,MAAMI,aAAa,GAAG,CAAClE,SAAS,GAAG,CAAC,GAAGkD,iBAAiB,EAAE5D,OAAO,CAAC,GAAG,CAAC,GAAG4D,iBAAiB,CAAC;EAE3F,MAAMC,aAAa,GAAA5C,aAAA,CAAAA,aAAA,KAAQwD,UAAU,GAAKC,iBAAiB,CAAE;EAC7D,MAAM;IAAEZ,OAAO;IAAEC,MAAM;IAAEO;EAAc,CAAC,GAAGX,mBAAmB,CAC5DiB,aAAa,EACbf,aAAa,EACbxD,IACF,CAAC;EACD,MAAM,CAACI,WAAW,CAAC,GAAGqD,OAAO;EAE7B,OAAO;IACLe,cAAc,EAAE,IAAI;IACpBC,IAAI,EAAE,IAAI;IACVhB,OAAO;IACPC,MAAM;IACNgB,OAAO,EAAE,CAAC,GAAGJ,cAAc,CAAC;IAC5BtE,IAAI,EAAED,UAAU,CAAC;MACfK,WAAW;MACXJ,IAAI,EAAEiE,aAAa;MACnBhE,GAAG;MACHC,WAAW;MACXG,SAAS;MACTC;IACF,CAAC,CAAC;IACFD;EACF,CAAC;AACH,CAAC;AAED,SAAS6D,YAAY,EAAEnE,UAAU,EAAE8C,gBAAgB","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 {\n 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,GAAI,GAAEF,QAAS,IAAGC,SAAU,EAAC;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;IACJwB,iBAAiB,EAAE;MAAEC,aAAa,EAAE;QAAEC,UAAU,EAAE;UAAEC;QAAO,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAChF,CAAC,GAAG7B,YAAY;EAEhB,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 {\n 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,GAAI,GAAEF,QAAS,IAAGC,SAAU,EAAC;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;IACJwB,iBAAiB,EAAE;MAAEC,aAAa,EAAE;QAAEC,UAAU,EAAE;UAAEC,MAAM;UAAEC;QAAM,CAAC,GAAG,CAAC;MAAE,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EACvF,CAAC,GAAG9B,YAAY;EAEhB,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,GAAI,OAAMD,iBAAiB,CAACE,IAAI,CAAC,GAAG,CAAC,IAAI,SAAU,EAAC;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,GAAI;AACb,YACMI,YAAY,CAACM,OAAO,CAACC,MACtB,oDAAmDC,QAAS;AACjE,qBACQR,YAAY,CAACM,OAAO,CAACC,MACtB;AACP;AACA,UAAUP,YAAY,CAACC,iBAAiB,CAACE,IAAI,CAAC,KAAK,CAAE;AACrD;AACA,sBAAsBH,YAAY,CAACM,OAAO,CAACK,QAAS;AACpD;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,GAAI,OAAMD,iBAAiB,CAACE,IAAI,CAAC,GAAG,CAAC,IAAI,SAAU,EAAC;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,GAAI;AACb,YACMI,YAAY,CAACO,OAAO,CAACC,MACtB,oDAAmDC,QAAS;AACjE,qBACQT,YAAY,CAACO,OAAO,CAACC,MACtB;AACP;AACA,UAAUR,YAAY,CAACE,iBAAiB,CAACE,IAAI,CAAC,KAAK,CAAE;AACrD;AACA,sBAAsBJ,YAAY,CAACO,OAAO,CAACK,QAAS;AACpD;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-alpha.6",
3
+ "version": "0.146.0-alpha.62",
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.141.0",
31
- "@blaze-cms/core-errors": "^0.140.3",
30
+ "@blaze-cms/admin-ui-utils": "0.146.0-alpha.57",
31
+ "@blaze-cms/core-errors": "0.146.0-alpha.42",
32
32
  "@blaze-cms/plugin-render-hooks-ui": "^0.140.3",
33
- "@blaze-cms/react-form-builder": "0.146.0-alpha.5",
34
- "@blaze-cms/react-page-builder": "0.146.0-alpha.4",
33
+ "@blaze-cms/react-form-builder": "0.146.0-alpha.62",
34
+ "@blaze-cms/react-page-builder": "0.146.0-alpha.57",
35
35
  "@blaze-cms/setup-ui": "^0.140.3",
36
36
  "@blaze-cms/versioning-ui": "0.146.0-alpha.2",
37
37
  "@blaze-react/button": "0.8.0-alpha.82",
@@ -41,6 +41,7 @@
41
41
  "@blaze-react/select": "0.8.0-alpha.80",
42
42
  "@blaze-react/table": "0.8.0-alpha.74",
43
43
  "@blaze-react/toaster": "0.5.17",
44
+ "@blaze-react/tooltip": "0.8.0-alpha.100",
44
45
  "@blaze-react/utils": "0.5.15",
45
46
  "core-js": "^3.2.1",
46
47
  "lodash.differencewith": "^4.5.0",
@@ -55,7 +56,7 @@
55
56
  "uuid": "^3.3.3"
56
57
  },
57
58
  "devDependencies": {
58
- "@blaze-cms/core-ui": "^0.144.0"
59
+ "@blaze-cms/core-ui": "0.146.0-alpha.42"
59
60
  },
60
61
  "peerDependencies": {
61
62
  "@apollo/client": "3.x",
@@ -67,5 +68,5 @@
67
68
  "lib/*",
68
69
  "lib-es/*"
69
70
  ],
70
- "gitHead": "8873389d735e9b363ca600c716a10af9d5623326"
71
+ "gitHead": "edf992858b98adeaa0465fa1f32edd5a0bcd210d"
71
72
  }
@@ -72,6 +72,8 @@ const Entity = ({
72
72
  const [newUpdatedDate, setNewUpdatedDate] = useState(null);
73
73
  const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);
74
74
  const [externalUpdateTime, setExternalUpdateTime] = useState(null);
75
+ const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);
76
+ const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);
75
77
 
76
78
  const isCreatePage = history.location.pathname.includes('create');
77
79
  const [isNewEntity, setIsNewEntity] = useState(isCreatePage);
@@ -461,7 +463,10 @@ const Entity = ({
461
463
  />
462
464
  )}
463
465
 
464
- <div className="page__content--fixed">
466
+ <div
467
+ className={`page__content--fixed${
468
+ !isRightSidebarOpen ? ' right-sidebar-collapsed' : ''
469
+ }`}>
465
470
  <div className="page__content">
466
471
  <div className="content">
467
472
  <RenderHook
@@ -502,13 +507,18 @@ const Entity = ({
502
507
  </div>
503
508
  </div>
504
509
 
505
- <div className="column column--one-third page-sidebar page-sidebar--relations">
510
+ <div
511
+ className={`column column--one-third page-sidebar page-sidebar--relations${
512
+ !isRightSidebarOpen ? ' sidebar--collapsed' : ''
513
+ }`}>
506
514
  {showSideBarRelations && (
507
515
  <SideBarRelations
508
516
  entity={entity}
509
517
  formData={formData.values}
510
518
  schema={schema}
511
519
  onChange={onChangeSideBarRelations}
520
+ isOpen={isRightSidebarOpen}
521
+ onToggle={handleToggleRightSidebar}
512
522
  />
513
523
  )}
514
524
  </div>
@@ -23,7 +23,10 @@ const HeaderPreviewButton = ({ itemId, itemEntity }) => {
23
23
  }
24
24
  });
25
25
 
26
- if (url) window.open(url, '_blank');
26
+ if (url) {
27
+ const delimiter = url.includes('?') ? '&' : '?';
28
+ window.open(`${url}${delimiter}blaze_debug=1`, '_blank');
29
+ }
27
30
  // eslint-disable-next-line no-empty
28
31
  } catch (err) {}
29
32
  };
@@ -18,6 +18,8 @@ export default function buildDynamicQuery({ id, schema, displayProperties }) {
18
18
  label
19
19
  value
20
20
  showLabel
21
+ tooltipIcon
22
+ tooltipContent
21
23
  }`
22
24
  );
23
25
 
@@ -10,13 +10,14 @@ 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
15
  const {
16
16
  formattedStatus,
17
17
  formattedUpdated,
18
18
  formattedCreated,
19
19
  formattedPublished,
20
+ updatedBy,
20
21
  status
21
22
  } = formData;
22
23
  const client = useApolloClient();
@@ -66,7 +67,16 @@ const SideBarRelations = ({ schema, onChange, formData, entity }) => {
66
67
  });
67
68
 
68
69
  return (
69
- <div className="sidebar" data-testid="sideBarRelations-main-div">
70
+ <div
71
+ className={classnames('sidebar', { 'sidebar--collapsed': !isOpen })}
72
+ data-testid="sideBarRelations-main-div">
73
+ <div
74
+ className="sidebar__toggle-button"
75
+ onClick={onToggle}
76
+ role="button"
77
+ aria-label={isOpen ? 'Collapse sidebar' : 'Expand sidebar'}>
78
+ <i className="material-icons">{isOpen ? 'keyboard_arrow_right' : 'keyboard_arrow_left'}</i>
79
+ </div>
70
80
  <div className="sidebar__content">
71
81
  <div className="sidebar__status">
72
82
  {formattedCreated && (
@@ -92,6 +102,11 @@ const SideBarRelations = ({ schema, onChange, formData, entity }) => {
92
102
  <p>
93
103
  Updated: <span>{formattedUpdated}</span>
94
104
  </p>
105
+ {updatedBy && (
106
+ <p>
107
+ Updated by: <span>{updatedBy.name}</span>
108
+ </p>
109
+ )}
95
110
  </>
96
111
  </>
97
112
  )}
@@ -125,11 +140,14 @@ SideBarRelations.propTypes = {
125
140
  schema: PropTypes.object.isRequired,
126
141
  onChange: PropTypes.func.isRequired,
127
142
  formData: PropTypes.object.isRequired,
128
- entity: PropTypes.object
143
+ entity: PropTypes.object,
144
+ isOpen: PropTypes.bool,
145
+ onToggle: PropTypes.func
129
146
  };
130
-
131
147
  SideBarRelations.defaultProps = {
132
- entity: {}
148
+ entity: {},
149
+ isOpen: true,
150
+ onToggle: () => {}
133
151
  };
134
152
 
135
153
  export default SideBarRelations;
@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
2
2
  import React from 'react';
3
3
  import InfoBoxValue from '../../../../InfoBoxes/presentational/InfoBoxValue';
4
4
  import InfoBoxLabel from '../../../../InfoBoxes/presentational/InfoBoxLabel';
5
+ import InfoBoxTooltip from '../../../../InfoBoxes/InfoBoxTooltip';
5
6
 
6
7
  const CustomSidebarInfo = ({ items, customSidebarInfoKey }) => {
7
8
  if (!items) return null;
@@ -12,10 +13,11 @@ const CustomSidebarInfo = ({ items, customSidebarInfoKey }) => {
12
13
  if (!info.label || !info.value) return null;
13
14
 
14
15
  return (
15
- <p>
16
+ <p key={`${customSidebarInfoKey}-${info.label.toLowerCase()}`}>
16
17
  <InfoBoxLabel item={info} />
17
18
  <span>
18
19
  <InfoBoxValue item={info} />
20
+ <InfoBoxTooltip info={info} position="left" />
19
21
  </span>
20
22
  </p>
21
23
  );
@@ -30,9 +32,9 @@ const CustomSidebarInfo = ({ items, customSidebarInfoKey }) => {
30
32
  );
31
33
  };
32
34
 
33
- export default CustomSidebarInfo;
34
-
35
35
  CustomSidebarInfo.propTypes = {
36
36
  customSidebarInfoKey: PropTypes.string.isRequired,
37
37
  items: PropTypes.array.isRequired
38
38
  };
39
+
40
+ export default CustomSidebarInfo;
@@ -28,7 +28,10 @@ function validateSideBarRelations(updatedFormValues, requiredChildField) {
28
28
 
29
29
  async function onViewUrlClick(getFullUrl) {
30
30
  const fullUrl = await getFullUrl();
31
- if (fullUrl) window.open(fullUrl, '_blank');
31
+ if (fullUrl) {
32
+ const delimiter = fullUrl.includes('?') ? '&' : '?';
33
+ window.open(`${fullUrl}${delimiter}blaze_debug=1`, '_blank');
34
+ }
32
35
  }
33
36
 
34
37
  function getUpdatedFormValues({ id, value, requiredChildField, formValues }) {
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Tooltip from '@blaze-react/tooltip';
4
+
5
+ const InfoBoxTooltip = ({ info, ...tooltipProps }) => {
6
+ const { tooltipContent, tooltipIcon } = info;
7
+ if (!tooltipContent) return null;
8
+
9
+ const renderTooltipIcon = icon => {
10
+ if (!icon) return null;
11
+ return <i className={`${icon} info-box--icon`} />;
12
+ };
13
+
14
+ return (
15
+ <Tooltip
16
+ tooltipContent={tooltipContent}
17
+ trigger="click"
18
+ className="info-box--tooltip"
19
+ {...tooltipProps}>
20
+ {renderTooltipIcon(tooltipIcon)}
21
+ </Tooltip>
22
+ );
23
+ };
24
+
25
+ InfoBoxTooltip.propTypes = {
26
+ info: PropTypes.shape({
27
+ tooltipContent: PropTypes.node,
28
+ tooltipIcon: PropTypes.string
29
+ }).isRequired
30
+ };
31
+
32
+ export default InfoBoxTooltip;
@@ -17,6 +17,8 @@ export default function buildDynamicQuery({ id, schema, properties }) {
17
17
  value
18
18
  showLabel
19
19
  url
20
+ tooltipIcon
21
+ tooltipContent
20
22
  }`
21
23
  );
22
24
 
@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
2
2
  import React from 'react';
3
3
  import InfoBoxValue from './InfoBoxValue';
4
4
  import InfoBoxLabel from './InfoBoxLabel';
5
+ import InfoBoxTooltip from '../InfoBoxTooltip';
5
6
 
6
7
  const InfoBox = ({ items, infoBoxKey }) => {
7
8
  if (!items) return null;
@@ -18,6 +19,7 @@ const InfoBox = ({ items, infoBoxKey }) => {
18
19
  </div>
19
20
  <div className="info-box--value">
20
21
  <InfoBoxValue item={info} />
22
+ <InfoBoxTooltip info={info} />
21
23
  </div>
22
24
  </div>
23
25
  );
@@ -32,9 +34,9 @@ const InfoBox = ({ items, infoBoxKey }) => {
32
34
  );
33
35
  };
34
36
 
35
- export default InfoBox;
36
-
37
37
  InfoBox.propTypes = {
38
38
  infoBoxKey: PropTypes.string.isRequired,
39
39
  items: PropTypes.array.isRequired
40
40
  };
41
+
42
+ export default InfoBox;
@@ -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
  })();
@@ -179,14 +179,6 @@ const ListingTable = ({ match, entitySchema, history }) => {
179
179
  to={`${match.url}/create`}>
180
180
  Add
181
181
  </Link>
182
- <PageHeader.Actions>
183
- <More>
184
- <More.Avatar isMoreMenu>
185
- <span className="material-icons">more_vert</span>
186
- </More.Avatar>
187
- <More.Content isMoreMenu />
188
- </More>
189
- </PageHeader.Actions>
190
182
  </Fragment>
191
183
  )}
192
184
  </PageHeader>
@@ -207,6 +199,11 @@ const ListingTable = ({ match, entitySchema, history }) => {
207
199
  listFilters={listFilters}
208
200
  setListFilters={updateListingFilters}
209
201
  />
202
+ <SearchFilter
203
+ schema={entitySchema}
204
+ listFilters={listFilters}
205
+ setListFilters={updateListingFilters}
206
+ />
210
207
  <ListingTableContent
211
208
  totalItems={totalItems}
212
209
  currentPage={currentPage}
@@ -214,6 +211,9 @@ const ListingTable = ({ match, entitySchema, history }) => {
214
211
  handleOnPageChange={handleOnPageChange}
215
212
  tableData={tableData}
216
213
  onCloseCardPrompt={onCloseCardPrompt}
214
+ schema={entitySchema}
215
+ listFilters={listFilters}
216
+ setListFilters={updateListingFilters}
217
217
  />
218
218
  </>
219
219
  )}
@@ -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
 
@@ -13,19 +13,41 @@ const ListingTableContent = ({
13
13
  currentPage,
14
14
  totalItems
15
15
  }) => {
16
+ const ref = useRef(null);
16
17
  const displayTable = tableData && tableData.rows && !!tableData.rows.length;
17
18
  const { isEnquiry } = tableData;
18
19
  const className = `page__content${isEnquiry ? ' array-table' : ''}`;
19
20
 
21
+ useEffect(
22
+ () => {
23
+ // set table head to match body column widths to handle dynamic content
24
+ if (ref.current) {
25
+ const tableHeadCells = ref.current.querySelectorAll('.table-head .table-cell');
26
+ const firstRowCells = ref.current.querySelectorAll(
27
+ '.table-body .table-row:first-child .table-cell'
28
+ );
29
+
30
+ firstRowCells.forEach((element, i) => {
31
+ const styles = window.getComputedStyle(element);
32
+
33
+ if (tableHeadCells[i]) {
34
+ tableHeadCells[i].style.flex = styles.flex;
35
+ tableHeadCells[i].style['justify-content'] = styles['justify-content'];
36
+ }
37
+ });
38
+ }
39
+ },
40
+ [tableData]
41
+ );
42
+
20
43
  return (
21
44
  <>
22
45
  {displayTable ? (
23
46
  <>
24
- <div className={className}>
47
+ <div ref={ref} className={className}>
25
48
  <Table
26
49
  onSort={onSort}
27
50
  data={tableData}
28
- checkboxes={!isEnquiry}
29
51
  onSelect={handleSelect}
30
52
  data-testid="listing-table-content"
31
53
  />