@blaze-cms/plugin-data-ui 0.131.0-core-styles.0 → 0.131.0-project-admin-customisations.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -1
- package/README.md +42 -0
- package/lib/components/EntityDataListing/EntityDataListing.js +3 -24
- package/lib/components/EntityDataListing/EntityDataListing.js.map +1 -1
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +39 -0
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -0
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js +12 -0
- package/lib/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -0
- package/lib/components/EntityManager/Entity/Entity.js +15 -2
- package/lib/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +44 -0
- package/lib/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -0
- package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +32 -0
- package/lib/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -0
- package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +45 -0
- package/lib/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -0
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js +12 -2
- package/lib/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +38 -0
- package/lib/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -0
- package/lib/components/InfoBoxes/InfoBoxes.js +36 -0
- package/lib/components/InfoBoxes/InfoBoxes.js.map +1 -0
- package/lib/components/InfoBoxes/container/InfoBoxContainer.js +44 -0
- package/lib/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -0
- package/lib/components/InfoBoxes/helpers/build-dynamic-query.js +25 -0
- package/lib/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -0
- package/lib/components/InfoBoxes/hooks/useData.js +42 -0
- package/lib/components/InfoBoxes/hooks/useData.js.map +1 -0
- package/lib/components/InfoBoxes/hooks/useInfoBox.js +26 -0
- package/lib/components/InfoBoxes/hooks/useInfoBox.js.map +1 -0
- package/lib/components/InfoBoxes/index.js +12 -0
- package/lib/components/InfoBoxes/index.js.map +1 -0
- package/lib/components/InfoBoxes/presentational/InfoBox.js +46 -0
- package/lib/components/InfoBoxes/presentational/InfoBox.js.map +1 -0
- package/lib/components/ListingTable/ListingTable.js +19 -33
- package/lib/components/ListingTable/ListingTable.js.map +1 -1
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js +9 -14
- package/lib/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib/components/ListingTable/mappers/populate-rows.js +92 -26
- package/lib/components/ListingTable/mappers/populate-rows.js.map +1 -1
- package/lib/index.js +3 -11
- package/lib/index.js.map +1 -1
- package/lib/utils/add-content-menu-items.js +64 -13
- package/lib/utils/add-content-menu-items.js.map +1 -1
- package/lib-es/components/EntityDataListing/EntityDataListing.js +3 -14
- package/lib-es/components/EntityDataListing/EntityDataListing.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +30 -0
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/EntitiyNavLinks/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/Entity.js +15 -2
- package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +30 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +26 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +39 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +12 -2
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -1
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +24 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -0
- package/lib-es/components/InfoBoxes/InfoBoxes.js +28 -0
- package/lib-es/components/InfoBoxes/InfoBoxes.js.map +1 -0
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js +30 -0
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -0
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +25 -0
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -0
- package/lib-es/components/InfoBoxes/hooks/useData.js +37 -0
- package/lib-es/components/InfoBoxes/hooks/useData.js.map +1 -0
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js +19 -0
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js.map +1 -0
- package/lib-es/components/InfoBoxes/index.js +3 -0
- package/lib-es/components/InfoBoxes/index.js.map +1 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js +31 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +1 -0
- package/lib-es/components/ListingTable/ListingTable.js +19 -32
- package/lib-es/components/ListingTable/ListingTable.js.map +1 -1
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +12 -15
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -1
- package/lib-es/components/ListingTable/mappers/populate-rows.js +76 -24
- package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -1
- package/lib-es/index.js +1 -9
- package/lib-es/index.js.map +1 -1
- package/lib-es/utils/add-content-menu-items.js +49 -5
- package/lib-es/utils/add-content-menu-items.js.map +1 -1
- package/package.json +10 -9
- package/src/components/EntityDataListing/EntityDataListing.js +3 -12
- package/src/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js +26 -0
- package/src/components/EntityManager/Entity/EntitiyNavLinks/index.js +3 -0
- package/src/components/EntityManager/Entity/Entity.js +9 -0
- package/src/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js +22 -0
- package/src/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js +33 -0
- package/src/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js +28 -0
- package/src/components/EntityManager/Entity/SideBarRelations/index.js +34 -16
- package/src/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +33 -0
- package/src/components/InfoBoxes/InfoBoxes.js +24 -0
- package/src/components/InfoBoxes/container/InfoBoxContainer.js +22 -0
- package/src/components/InfoBoxes/helpers/build-dynamic-query.js +25 -0
- package/src/components/InfoBoxes/hooks/useData.js +20 -0
- package/src/components/InfoBoxes/hooks/useInfoBox.js +13 -0
- package/src/components/InfoBoxes/index.js +3 -0
- package/src/components/InfoBoxes/presentational/InfoBox.js +34 -0
- package/src/components/ListingTable/ListingTable.js +23 -22
- package/src/components/ListingTable/ListingTableContent/ListingTableContent.js +9 -18
- package/src/components/ListingTable/mappers/populate-rows.js +83 -18
- package/src/index.js +1 -8
- package/src/utils/add-content-menu-items.js +45 -3
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_reactFormBuilder","require","_react","_interopRequireDefault","_package","_constants","_addContentMenuItems","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","_typeof2","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EntityDataListing","React","lazy","Promise","resolve","then","EntityManager","load","_x","_load","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","app","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_reactFormBuilder","require","_react","_interopRequireDefault","_package","_constants","_addContentMenuItems","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","_typeof2","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EntityDataListing","React","lazy","Promise","resolve","then","EntityManager","load","_x","_load","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","app","entityDataListingRoute","editEntityRoute","addEntityRoute","wrap","_callee2$","_context2","prev","next","events","once","getAddContentMenuItems","addFieldType","keys","formFieldTypes","forEach","type","component","_callee","_callee$","_context","emitAsync","getFormBuilderLookup","stop","path","concat","DATA_LISTING_PREFIX","exact","addRoute","abrupt","name","PLUGIN_NAME","version","pkg","pluginName"],"sources":["../src/index.js"],"sourcesContent":["import { getFormBuilderLookup, formFieldTypes } from '@blaze-cms/react-form-builder';\nimport React from 'react';\nimport pkg from '../package.json';\nimport { DATA_LISTING_PREFIX, PLUGIN_NAME } from './constants';\nimport getAddContentMenuItems from './utils/add-content-menu-items';\n\nconst EntityDataListing = React.lazy(() =>\n import(/* webpackChunkName: 'EntityDataListing' */ './components/EntityDataListing')\n);\nconst EntityManager = React.lazy(() =>\n import(/* webpackChunkName: 'EntityManager' */ './components/EntityManager')\n);\n\nexport default async function load(app) {\n app.events.once('admin:menu:config:load', getAddContentMenuItems(app));\n\n app.events.once('load:custom:field:type', addFieldType => {\n Object.keys(formFieldTypes).forEach(type => {\n addFieldType({ type, component: formFieldTypes[type] });\n });\n });\n\n app.events.once('plugin:data-ui:load:loaded', async () => {\n await app.events.emitAsync('load:custom:field:type', getFormBuilderLookup.addFieldType);\n });\n\n const entityDataListingRoute = {\n path: `${DATA_LISTING_PREFIX}/:entityIdentifier`,\n key: 'entityDataListing',\n component: EntityDataListing,\n exact: true\n };\n\n const editEntityRoute = {\n path: `${DATA_LISTING_PREFIX}/:entityIdentifier/:action/:id`,\n key: 'editEntity',\n component: EntityManager,\n exact: true\n };\n\n const addEntityRoute = {\n path: `${DATA_LISTING_PREFIX}/:entityIdentifier/:action`,\n key: 'createEntity',\n component: EntityManager,\n exact: true\n };\n\n app.addRoute(entityDataListingRoute);\n app.addRoute(editEntityRoute);\n app.addRoute(addEntityRoute);\n\n return {\n name: PLUGIN_NAME,\n version: pkg.version\n };\n}\n\nload.pluginName = PLUGIN_NAME;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAoE,SAAAM,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAI,wBAAAC,GAAA,EAAAL,WAAA,SAAAA,WAAA,IAAAK,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,iBAAAE,QAAA,aAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAT,wBAAA,CAAAC,WAAA,OAAAQ,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEpE,IAAMW,iBAAiB,gBAAGC,iBAAK,CAACC,IAAI,CAAC;EAAA,OAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA;IAAA,OAAAvB,uBAAA,CAAAX,OAAA,EAC5B,2CAA4C,gCAAgC;EAAA;AAAA,CACrF,CAAC;AACD,IAAMmC,aAAa,gBAAGL,iBAAK,CAACC,IAAI,CAAC;EAAA,OAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA;IAAA,OAAAvB,uBAAA,CAAAX,OAAA,EACxB,uCAAwC,4BAA4B;EAAA;AAAA,CAC7E,CAAC;AAAC,SAE4BoC,IAAIA,CAAAC,EAAA;EAAA,OAAAC,KAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,MAAA;EAAAA,KAAA,OAAAG,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAnB,SAAAC,SAAoBC,GAAG;IAAA,IAAAC,sBAAA,EAAAC,eAAA,EAAAC,cAAA;IAAA,OAAAN,YAAA,YAAAO,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;QAAA;UACpCR,GAAG,CAACS,MAAM,CAACC,IAAI,CAAC,wBAAwB,EAAE,IAAAC,+BAAsB,EAACX,GAAG,CAAC,CAAC;UAEtEA,GAAG,CAACS,MAAM,CAACC,IAAI,CAAC,wBAAwB,EAAE,UAAAE,YAAY,EAAI;YACxDrC,MAAM,CAACsC,IAAI,CAACC,gCAAc,CAAC,CAACC,OAAO,CAAC,UAAAC,IAAI,EAAI;cAC1CJ,YAAY,CAAC;gBAAEI,IAAI,EAAJA,IAAI;gBAAEC,SAAS,EAAEH,gCAAc,CAACE,IAAI;cAAE,CAAC,CAAC;YACzD,CAAC,CAAC;UACJ,CAAC,CAAC;UAEFhB,GAAG,CAACS,MAAM,CAACC,IAAI,CAAC,4BAA4B,mBAAAd,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAE,SAAAoB,QAAA;YAAA,OAAArB,YAAA,YAAAO,IAAA,UAAAe,SAAAC,QAAA;cAAA,kBAAAA,QAAA,CAAAb,IAAA,GAAAa,QAAA,CAAAZ,IAAA;gBAAA;kBAAAY,QAAA,CAAAZ,IAAA;kBAAA,OACtCR,GAAG,CAACS,MAAM,CAACY,SAAS,CAAC,wBAAwB,EAAEC,sCAAoB,CAACV,YAAY,CAAC;gBAAA;gBAAA;kBAAA,OAAAQ,QAAA,CAAAG,IAAA;cAAA;YAAA,GAAAL,OAAA;UAAA,CACxF,GAAC;UAEIjB,sBAAsB,GAAG;YAC7BuB,IAAI,KAAAC,MAAA,CAAKC,8BAAmB,uBAAoB;YAChDhD,GAAG,EAAE,mBAAmB;YACxBuC,SAAS,EAAEjC,iBAAiB;YAC5B2C,KAAK,EAAE;UACT,CAAC;UAEKzB,eAAe,GAAG;YACtBsB,IAAI,KAAAC,MAAA,CAAKC,8BAAmB,mCAAgC;YAC5DhD,GAAG,EAAE,YAAY;YACjBuC,SAAS,EAAE3B,aAAa;YACxBqC,KAAK,EAAE;UACT,CAAC;UAEKxB,cAAc,GAAG;YACrBqB,IAAI,KAAAC,MAAA,CAAKC,8BAAmB,+BAA4B;YACxDhD,GAAG,EAAE,cAAc;YACnBuC,SAAS,EAAE3B,aAAa;YACxBqC,KAAK,EAAE;UACT,CAAC;UAED3B,GAAG,CAAC4B,QAAQ,CAAC3B,sBAAsB,CAAC;UACpCD,GAAG,CAAC4B,QAAQ,CAAC1B,eAAe,CAAC;UAC7BF,GAAG,CAAC4B,QAAQ,CAACzB,cAAc,CAAC;UAAC,OAAAG,SAAA,CAAAuB,MAAA,WAEtB;YACLC,IAAI,EAAEC,sBAAW;YACjBC,OAAO,EAAEC,mBAAG,CAACD;UACf,CAAC;QAAA;QAAA;UAAA,OAAA1B,SAAA,CAAAiB,IAAA;MAAA;IAAA,GAAAxB,QAAA;EAAA,CACF;EAAA,OAAAN,KAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAEDJ,IAAI,CAAC2C,UAAU,GAAGH,sBAAW"}
|
|
@@ -10,19 +10,22 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
10
10
|
require("core-js/modules/es.array.for-each.js");
|
|
11
11
|
require("core-js/modules/es.object.to-string.js");
|
|
12
12
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
13
|
+
require("core-js/modules/es.object.entries.js");
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
15
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
16
|
var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
|
|
15
17
|
var _require = require('../constants'),
|
|
16
18
|
MENU_PERMISSIONS = _require.MENU_PERMISSIONS;
|
|
17
|
-
function getAddContentMenuItems(app
|
|
19
|
+
function getAddContentMenuItems(app) {
|
|
18
20
|
return /*#__PURE__*/function () {
|
|
19
|
-
var
|
|
20
|
-
var client, _yield$client$query, getEntitySchemas;
|
|
21
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_ref) {
|
|
22
|
+
var addConfig, client, _yield$client$query, getEntitySchemas, menuItems, sectionMenuItems, menuConfig;
|
|
21
23
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
22
24
|
while (1) switch (_context.prev = _context.next) {
|
|
23
25
|
case 0:
|
|
26
|
+
addConfig = _ref.addConfig;
|
|
24
27
|
client = app.getClient();
|
|
25
|
-
_context.next =
|
|
28
|
+
_context.next = 4;
|
|
26
29
|
return client.query({
|
|
27
30
|
query: (0, _adminUiUtils.getQuery)('GET_USER_EDITABLE_ENTITIES'),
|
|
28
31
|
variables: {
|
|
@@ -30,25 +33,73 @@ function getAddContentMenuItems(app, sectionKey) {
|
|
|
30
33
|
canDoActions: MENU_PERMISSIONS
|
|
31
34
|
}
|
|
32
35
|
});
|
|
33
|
-
case
|
|
36
|
+
case 4:
|
|
34
37
|
_yield$client$query = _context.sent;
|
|
35
38
|
getEntitySchemas = _yield$client$query.data.getEntitySchemas;
|
|
36
|
-
getEntitySchemas.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
if (!(!getEntitySchemas || !getEntitySchemas.length)) {
|
|
40
|
+
_context.next = 8;
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
return _context.abrupt("return");
|
|
44
|
+
case 8:
|
|
45
|
+
// no items so don't add section
|
|
46
|
+
menuItems = {};
|
|
47
|
+
sectionMenuItems = {
|
|
48
|
+
content: {}
|
|
49
|
+
};
|
|
50
|
+
getEntitySchemas.forEach(function (_ref3) {
|
|
51
|
+
var id = _ref3.id,
|
|
52
|
+
displayName = _ref3.displayName,
|
|
53
|
+
displayProperties = _ref3.displayProperties;
|
|
54
|
+
if (!displayProperties) return null;
|
|
55
|
+
var _displayProperties$ad = displayProperties.adminMenu,
|
|
56
|
+
_displayProperties$ad2 = _displayProperties$ad === void 0 ? {} : _displayProperties$ad,
|
|
57
|
+
_displayProperties$ad3 = _displayProperties$ad2.sectionKey,
|
|
58
|
+
sectionKey = _displayProperties$ad3 === void 0 ? 'content' : _displayProperties$ad3;
|
|
59
|
+
var sectionItems = sectionMenuItems[sectionKey] || {};
|
|
60
|
+
sectionItems[id] = {
|
|
61
|
+
label: displayName,
|
|
41
62
|
uri: "/data-listing/".concat(id)
|
|
42
|
-
}
|
|
63
|
+
};
|
|
64
|
+
sectionMenuItems[sectionKey] = sectionItems;
|
|
43
65
|
});
|
|
44
|
-
|
|
66
|
+
menuConfig = {
|
|
67
|
+
main: {
|
|
68
|
+
items: {
|
|
69
|
+
content: {
|
|
70
|
+
label: 'Content',
|
|
71
|
+
loadOpen: true,
|
|
72
|
+
order: 10,
|
|
73
|
+
items: menuItems
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
Object.entries(sectionMenuItems).forEach(function (_ref4) {
|
|
79
|
+
var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
|
|
80
|
+
sectionKey = _ref5[0],
|
|
81
|
+
sectionItems = _ref5[1];
|
|
82
|
+
var sectionConfig = menuConfig.main.items[sectionKey] || {};
|
|
83
|
+
sectionConfig.items = sectionItems;
|
|
84
|
+
menuConfig.main.items[sectionKey] = sectionConfig;
|
|
85
|
+
});
|
|
86
|
+
getEntitySchemas.forEach(function (_ref6) {
|
|
87
|
+
var id = _ref6.id,
|
|
88
|
+
displayName = _ref6.displayName;
|
|
89
|
+
menuItems[id] = {
|
|
90
|
+
label: displayName,
|
|
91
|
+
uri: "/data-listing/".concat(id)
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
addConfig(menuConfig);
|
|
95
|
+
case 15:
|
|
45
96
|
case "end":
|
|
46
97
|
return _context.stop();
|
|
47
98
|
}
|
|
48
99
|
}, _callee);
|
|
49
100
|
}));
|
|
50
101
|
return function (_x) {
|
|
51
|
-
return
|
|
102
|
+
return _ref2.apply(this, arguments);
|
|
52
103
|
};
|
|
53
104
|
}();
|
|
54
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-content-menu-items.js","names":["_adminUiUtils","require","_require","MENU_PERMISSIONS","getAddContentMenuItems","app","
|
|
1
|
+
{"version":3,"file":"add-content-menu-items.js","names":["_adminUiUtils","require","_require","MENU_PERMISSIONS","getAddContentMenuItems","app","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","_ref","addConfig","client","_yield$client$query","getEntitySchemas","menuItems","sectionMenuItems","menuConfig","wrap","_callee$","_context","prev","next","getClient","query","getQuery","variables","canDoActions","sent","data","length","abrupt","content","forEach","_ref3","id","displayName","displayProperties","_displayProperties$ad","adminMenu","_displayProperties$ad2","_displayProperties$ad3","sectionKey","sectionItems","label","uri","concat","main","items","loadOpen","order","Object","entries","_ref4","_ref5","_slicedToArray2","sectionConfig","_ref6","stop","_x","apply","arguments","_default","exports"],"sources":["../../src/utils/add-content-menu-items.js"],"sourcesContent":["import { getQuery } from '@blaze-cms/admin-ui-utils';\n\nconst { MENU_PERMISSIONS } = require('../constants');\n\nfunction getAddContentMenuItems(app) {\n return async ({ addConfig }) => {\n const client = app.getClient();\n const {\n data: { getEntitySchemas }\n } = await client.query({\n query: getQuery('GET_USER_EDITABLE_ENTITIES'),\n variables: {\n // only return entities that the current user can do the following actions on\n canDoActions: MENU_PERMISSIONS\n }\n });\n\n if (!getEntitySchemas || !getEntitySchemas.length) return; // no items so don't add section\n\n const menuItems = {};\n const sectionMenuItems = { content: {} };\n\n getEntitySchemas.forEach(({ id, displayName, displayProperties }) => {\n if (!displayProperties) return null;\n\n const { adminMenu: { sectionKey = 'content' } = {} } = displayProperties;\n const sectionItems = sectionMenuItems[sectionKey] || {};\n sectionItems[id] = {\n label: displayName,\n uri: `/data-listing/${id}`\n };\n sectionMenuItems[sectionKey] = sectionItems;\n });\n\n const menuConfig = {\n main: {\n items: {\n content: {\n label: 'Content',\n loadOpen: true,\n order: 10,\n items: menuItems\n }\n }\n }\n };\n\n Object.entries(sectionMenuItems).forEach(([sectionKey, sectionItems]) => {\n const sectionConfig = menuConfig.main.items[sectionKey] || {};\n sectionConfig.items = sectionItems;\n menuConfig.main.items[sectionKey] = sectionConfig;\n });\n\n getEntitySchemas.forEach(({ id, displayName }) => {\n menuItems[id] = {\n label: displayName,\n uri: `/data-listing/${id}`\n };\n });\n\n addConfig(menuConfig);\n };\n}\n\nexport default getAddContentMenuItems;\n"],"mappings":"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"}
|
|
@@ -5,22 +5,13 @@ import { getQuery } from '@blaze-cms/admin-ui-utils';
|
|
|
5
5
|
import ListingTable from '../ListingTable/ListingTable';
|
|
6
6
|
import { withContext } from '../../utils/hoc/withContext';
|
|
7
7
|
const EntityDataListing = ({
|
|
8
|
-
match
|
|
9
|
-
menuItems
|
|
8
|
+
match
|
|
10
9
|
}) => {
|
|
11
10
|
const {
|
|
12
11
|
params: {
|
|
13
12
|
entityIdentifier: identifier
|
|
14
13
|
}
|
|
15
14
|
} = match;
|
|
16
|
-
const [[selectedMenuItem]] = menuItems.map(([_, {
|
|
17
|
-
items
|
|
18
|
-
}]) => {
|
|
19
|
-
const item = items.filter(({
|
|
20
|
-
uri
|
|
21
|
-
}) => uri.endsWith(`/${identifier}`));
|
|
22
|
-
return item.length ? item : null;
|
|
23
|
-
}).filter(Boolean);
|
|
24
15
|
const {
|
|
25
16
|
data: {
|
|
26
17
|
getEntitySchemas = []
|
|
@@ -32,13 +23,11 @@ const EntityDataListing = ({
|
|
|
32
23
|
});
|
|
33
24
|
if (!getEntitySchemas.length) return '';
|
|
34
25
|
return /*#__PURE__*/React.createElement(ListingTable, {
|
|
35
|
-
entitySchema: getEntitySchemas[0]
|
|
36
|
-
selectedMenuItem: selectedMenuItem
|
|
26
|
+
entitySchema: getEntitySchemas[0]
|
|
37
27
|
});
|
|
38
28
|
};
|
|
39
29
|
EntityDataListing.propTypes = {
|
|
40
|
-
match: PropTypes.object.isRequired
|
|
41
|
-
menuItems: PropTypes.array.isRequired
|
|
30
|
+
match: PropTypes.object.isRequired
|
|
42
31
|
};
|
|
43
32
|
export default withContext(EntityDataListing);
|
|
44
33
|
//# sourceMappingURL=EntityDataListing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityDataListing.js","names":["useQuery","React","PropTypes","getQuery","ListingTable","withContext","EntityDataListing","match","
|
|
1
|
+
{"version":3,"file":"EntityDataListing.js","names":["useQuery","React","PropTypes","getQuery","ListingTable","withContext","EntityDataListing","match","params","entityIdentifier","identifier","data","getEntitySchemas","variables","length","createElement","entitySchema","propTypes","object","isRequired"],"sources":["../../../src/components/EntityDataListing/EntityDataListing.js"],"sourcesContent":["import { useQuery } from '@apollo/client';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\n\nimport ListingTable from '../ListingTable/ListingTable';\nimport { withContext } from '../../utils/hoc/withContext';\n\nconst EntityDataListing = ({ match }) => {\n const {\n params: { entityIdentifier: identifier }\n } = match;\n\n const { data: { getEntitySchemas = [] } = {} } = useQuery(getQuery('GET_ENTITY_SCHEMA'), {\n variables: { identifier }\n });\n\n if (!getEntitySchemas.length) return '';\n\n return <ListingTable entitySchema={getEntitySchemas[0]} />;\n};\n\nEntityDataListing.propTypes = {\n match: PropTypes.object.isRequired\n};\n\nexport default withContext(EntityDataListing);\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,QAAQ,QAAQ,2BAA2B;AAEpD,OAAOC,YAAY,MAAM,8BAA8B;AACvD,SAASC,WAAW,QAAQ,6BAA6B;AAEzD,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC;AAAM,CAAC,KAAK;EACvC,MAAM;IACJC,MAAM,EAAE;MAAEC,gBAAgB,EAAEC;IAAW;EACzC,CAAC,GAAGH,KAAK;EAET,MAAM;IAAEI,IAAI,EAAE;MAAEC,gBAAgB,GAAG;IAAG,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGZ,QAAQ,CAACG,QAAQ,CAAC,mBAAmB,CAAC,EAAE;IACvFU,SAAS,EAAE;MAAEH;IAAW;EAC1B,CAAC,CAAC;EAEF,IAAI,CAACE,gBAAgB,CAACE,MAAM,EAAE,OAAO,EAAE;EAEvC,oBAAOb,KAAA,CAAAc,aAAA,CAACX,YAAY;IAACY,YAAY,EAAEJ,gBAAgB,CAAC,CAAC;EAAE,CAAE,CAAC;AAC5D,CAAC;AAEDN,iBAAiB,CAACW,SAAS,GAAG;EAC5BV,KAAK,EAAEL,SAAS,CAACgB,MAAM,CAACC;AAC1B,CAAC;AAED,eAAed,WAAW,CAACC,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Link } from 'react-router-dom';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
const EntityNavLinks = ({
|
|
4
|
+
schema
|
|
5
|
+
}) => {
|
|
6
|
+
if (!schema) return null;
|
|
7
|
+
const {
|
|
8
|
+
displayProperties: {
|
|
9
|
+
adminSectionNavigation
|
|
10
|
+
}
|
|
11
|
+
} = schema;
|
|
12
|
+
if (!adminSectionNavigation) return null;
|
|
13
|
+
const links = Object.entries(adminSectionNavigation).map(([k, v]) => {
|
|
14
|
+
const {
|
|
15
|
+
label,
|
|
16
|
+
uri
|
|
17
|
+
} = v;
|
|
18
|
+
const Wrapper = uri.startsWith('#') ? 'a' : Link;
|
|
19
|
+
return /*#__PURE__*/React.createElement(Wrapper, {
|
|
20
|
+
className: "entity-section-link",
|
|
21
|
+
href: uri,
|
|
22
|
+
to: uri
|
|
23
|
+
}, label);
|
|
24
|
+
});
|
|
25
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
26
|
+
className: "entity-section-links"
|
|
27
|
+
}, links);
|
|
28
|
+
};
|
|
29
|
+
export default EntityNavLinks;
|
|
30
|
+
//# sourceMappingURL=EntityNavLinks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityNavLinks.js","names":["Link","React","EntityNavLinks","schema","displayProperties","adminSectionNavigation","links","Object","entries","map","k","v","label","uri","Wrapper","startsWith","createElement","className","href","to"],"sources":["../../../../../src/components/EntityManager/Entity/EntitiyNavLinks/EntityNavLinks.js"],"sourcesContent":["import { Link } from 'react-router-dom';\nimport React from 'react';\n\nconst EntityNavLinks = ({ schema }) => {\n if (!schema) return null;\n\n const {\n displayProperties: { adminSectionNavigation }\n } = schema;\n\n if (!adminSectionNavigation) return null;\n\n const links = Object.entries(adminSectionNavigation).map(([k, v]) => {\n const { label, uri } = v;\n const Wrapper = uri.startsWith('#') ? 'a' : Link;\n return (\n <Wrapper className=\"entity-section-link\" href={uri} to={uri}>\n {label}\n </Wrapper>\n );\n });\n\n return <div className=\"entity-section-links\">{links}</div>;\n};\n\nexport default EntityNavLinks;\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,kBAAkB;AACvC,OAAOC,KAAK,MAAM,OAAO;AAEzB,MAAMC,cAAc,GAAGA,CAAC;EAAEC;AAAO,CAAC,KAAK;EACrC,IAAI,CAACA,MAAM,EAAE,OAAO,IAAI;EAExB,MAAM;IACJC,iBAAiB,EAAE;MAAEC;IAAuB;EAC9C,CAAC,GAAGF,MAAM;EAEV,IAAI,CAACE,sBAAsB,EAAE,OAAO,IAAI;EAExC,MAAMC,KAAK,GAAGC,MAAM,CAACC,OAAO,CAACH,sBAAsB,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAK;IACnE,MAAM;MAAEC,KAAK;MAAEC;IAAI,CAAC,GAAGF,CAAC;IACxB,MAAMG,OAAO,GAAGD,GAAG,CAACE,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAGf,IAAI;IAChD,oBACEC,KAAA,CAAAe,aAAA,CAACF,OAAO;MAACG,SAAS,EAAC,qBAAqB;MAACC,IAAI,EAAEL,GAAI;MAACM,EAAE,EAAEN;IAAI,GACzDD,KACM,CAAC;EAEd,CAAC,CAAC;EAEF,oBAAOX,KAAA,CAAAe,aAAA;IAAKC,SAAS,EAAC;EAAsB,GAAEX,KAAW,CAAC;AAC5D,CAAC;AAED,eAAeJ,cAAc"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["EntityNavLinks"],"sources":["../../../../../src/components/EntityManager/Entity/EntitiyNavLinks/index.js"],"sourcesContent":["import EntityNavLinks from './EntityNavLinks';\n\nexport default EntityNavLinks;\n"],"mappings":"AAAA,OAAOA,cAAc,MAAM,kBAAkB;AAE7C,eAAeA,cAAc"}
|
|
@@ -8,6 +8,7 @@ import React, { useEffect, useState, useRef } from 'react';
|
|
|
8
8
|
import { withRouter, Prompt } from 'react-router-dom';
|
|
9
9
|
import { useApolloClient } from '@apollo/client';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
|
+
import { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';
|
|
11
12
|
import { getQuery, GET_CURRENT_TAB_ID } from '@blaze-cms/admin-ui-utils';
|
|
12
13
|
import { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';
|
|
13
14
|
import { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';
|
|
@@ -22,6 +23,7 @@ import { ENTITY_PUBLISHED, TEXT_CONTENT_TYPE, LEAVE_PAGE_MESSAGE, PREVIEW_INTERF
|
|
|
22
23
|
import EntityHeader from './EntityHeader';
|
|
23
24
|
import { validateSideBarRelations, canViewPage, onViewUrlClick, getUpdatedFormValues, checkFulfilConditions } from '../utils/entity';
|
|
24
25
|
import useToggle from '../../../utils/hooks/useToggle';
|
|
26
|
+
import InfoBoxes from '../../InfoBoxes/InfoBoxes';
|
|
25
27
|
const Entity = ({
|
|
26
28
|
formData,
|
|
27
29
|
entity,
|
|
@@ -376,7 +378,14 @@ const Entity = ({
|
|
|
376
378
|
className: "page__content"
|
|
377
379
|
}, /*#__PURE__*/React.createElement("div", {
|
|
378
380
|
className: "content"
|
|
379
|
-
}, /*#__PURE__*/React.createElement(
|
|
381
|
+
}, /*#__PURE__*/React.createElement(RenderHook, {
|
|
382
|
+
hookKey: `entity:${action}:main:top`,
|
|
383
|
+
entity: entity,
|
|
384
|
+
schema: schema
|
|
385
|
+
}), /*#__PURE__*/React.createElement(InfoBoxes, {
|
|
386
|
+
id: entity.id,
|
|
387
|
+
schema: schema
|
|
388
|
+
}), /*#__PURE__*/React.createElement(Tabs, {
|
|
380
389
|
enabled: showPageBuilderTabs,
|
|
381
390
|
onTabChange: tabId => {
|
|
382
391
|
client.writeQuery({
|
|
@@ -397,7 +406,11 @@ const Entity = ({
|
|
|
397
406
|
updateCopyData: updateCopyData,
|
|
398
407
|
formValues: formValues,
|
|
399
408
|
isNewEntity: isNewEntity
|
|
400
|
-
}))
|
|
409
|
+
})), /*#__PURE__*/React.createElement(RenderHook, {
|
|
410
|
+
hookKey: `entity:${action}:main:bottom`,
|
|
411
|
+
entity: entity,
|
|
412
|
+
schema: schema
|
|
413
|
+
}))))), /*#__PURE__*/React.createElement("div", {
|
|
401
414
|
className: "column column--one-third page-sidebar"
|
|
402
415
|
}, showSideBarRelations && /*#__PURE__*/React.createElement(SideBarRelations, {
|
|
403
416
|
entity: entity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","names":["React","useEffect","useState","useRef","withRouter","Prompt","useApolloClient","PropTypes","getQuery","GET_CURRENT_TAB_ID","FormBuilder","parseFormValues","DeleteAction","CopyDataFromAction","useToasts","cloneDeep","getPageName","isFormEmpty","availableActions","SideBarRelations","Tabs","ENTITY_PUBLISHED","TEXT_CONTENT_TYPE","LEAVE_PAGE_MESSAGE","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SAVE_BUTTON_TEXTS","UNPUBLISHED_WARNING","EntityHeader","validateSideBarRelations","canViewPage","onViewUrlClick","getUpdatedFormValues","checkFulfilConditions","useToggle","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_schema$interfaces","_schema$interfaces2","setCurrentTabId","formValues","setFormValues","entitySchema","setEntitySchema","entityData","setEntityData","entityIdentifier","setEntityIdentifier","pageTitle","setPageTitle","isSaveButtonAvailable","setIsSaveButtonAvailable","entityIsPublished","setEntityIsPublish","values","status","isEnablePublishButton","setEnablePublishButton","isEnablePreviewButton","setEnablePreviewButton","modalStatus","setModalStatus","copyModalStatus","setCopyModalStatus","pageBuilderTemplateStatus","setPageBuilderTemplateStatus","shouldCopyData","setShouldCopyData","isFormValid","setIsFormValid","formDataFromCopy","setFormDataFromCopy","newUpdatedDate","setNewUpdatedDate","saveButtonText","setSaveButtonText","save","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","shouldUpdateState","id","clonedFormData","addToast","componentIsMounted","current","displayProperties","actions","publish","identifier","interfaces","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","data","pageBuilderTemplateSet","currentEntity","getFullUrl","getEntityUrl","variables","itemId","itemEntity","fullUrl","fetchPolicy","getFormValues","onChangeSideBarRelations","value","requiredChildField","updatedFormValues","shouldActiveSaveButton","onChangeFormValues","_ref","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","_objectWithoutProperties","_excluded","slice","pageBuilder","filter","formValue","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","_objectSpread","itemsToAdd","length","forEach","item","index","findIndex","push","updatedEntity","isValidAndNewValueSet","isNotValidOrNotNewValueSet","onSubmit","event","preventDefault","parsedFormValues","update","handleUpdateFormData","submitParams","create","currentAction","submit","onDelete","delete","onCopy","name","updateCopyData","handleCopyDataFromClose","getFormData","formDataValues","formDataUpdated","handlePublishAndUnpublish","target","textContent","isPublishButton","isPublished","isUnpublish","appearance","autoDismiss","savedPageMessage","shared","triggerPublish","showModal","onViewUrlHandler","pageName","hasNewFormValues","hasToDisplayPrompt","showSideBarRelations","showPageBuilderTabs","createElement","className","toggleCopyModal","toggleModal","when","message","onClose","deleteAction","itemName","copyAction","enabled","onTabChange","tabId","currentTabId","getIsFormValid","onChange","propTypes","object","string","isRequired","func","defaultProps"],"sources":["../../../../src/components/EntityManager/Entity/Entity.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { withRouter, Prompt } from 'react-router-dom';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { getQuery, GET_CURRENT_TAB_ID } from '@blaze-cms/admin-ui-utils';\nimport { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';\nimport { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport cloneDeep from 'lodash.clonedeep';\nimport { getPageName } from '../utils/data-mappers';\nimport isFormEmpty from '../utils/is-form-empty';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport Tabs from '../../Tabs';\n\nimport {\n ENTITY_PUBLISHED,\n TEXT_CONTENT_TYPE,\n LEAVE_PAGE_MESSAGE,\n PREVIEW_INTERFACE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SAVE_BUTTON_TEXTS,\n UNPUBLISHED_WARNING\n} from '../../../constants';\nimport EntityHeader from './EntityHeader';\nimport {\n validateSideBarRelations,\n canViewPage,\n onViewUrlClick,\n getUpdatedFormValues,\n checkFulfilConditions\n} from '../utils/entity';\nimport useToggle from '../../../utils/hooks/useToggle';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [, setCurrentTabId] = useState(null);\n const [formValues, setFormValues] = useState(null);\n const [entitySchema, setEntitySchema] = useState(null);\n const [entityData, setEntityData] = useState(null);\n const [entityIdentifier, setEntityIdentifier] = useState(null);\n const [pageTitle, setPageTitle] = useState('');\n const [isSaveButtonAvailable, setIsSaveButtonAvailable] = useState(false);\n const [entityIsPublished, setEntityIsPublish] = useState(\n formData && formData.values && formData.values.status\n );\n const [isEnablePublishButton, setEnablePublishButton] = useState(false);\n const [isEnablePreviewButton, setEnablePreviewButton] = useState(false);\n const [modalStatus, setModalStatus] = useToggle(false);\n const [copyModalStatus, setCopyModalStatus] = useToggle(false);\n const [pageBuilderTemplateStatus, setPageBuilderTemplateStatus] = useState(true);\n const [shouldCopyData, setShouldCopyData] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [formDataFromCopy, setFormDataFromCopy] = useState(null);\n const [newUpdatedDate, setNewUpdatedDate] = useState(null);\n const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);\n\n const isCreatePage = history.location.pathname.includes('create');\n const [isNewEntity, setIsNewEntity] = useState(isCreatePage);\n\n const client = useApolloClient();\n const shouldUpdateState =\n !entityIdentifier ||\n checkFulfilConditions(entity, schema, previousQuery, !entityData) ||\n (entityData && entityData.id !== entity.id);\n const clonedFormData = cloneDeep(formData);\n const { addToast } = useToasts();\n\n // Here's how we'll keep track of our component's mounted state\n const componentIsMounted = useRef(true);\n useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(\n () => {\n if (shouldUpdateState) {\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n setEntityData(entity);\n setPageTitle(getPageName(schema.displayProperties, entity));\n setEntityIsPublish(entity.status);\n setEntitySchema(schema);\n setEnablePublishButton(schema.actions.publish);\n setEntityIdentifier(schema.identifier);\n setEnablePreviewButton(!!schema.interfaces.includes(PREVIEW_INTERFACE));\n }\n\n if (formData && pageBuilderTemplateStatus) {\n const isPageBuilderTemplateSet = !!formData.values.pageBuilderTemplateId;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: isPageBuilderTemplateSet,\n pageBuilderTemplateId: formData.values.pageBuilderTemplateId || ''\n }\n });\n }\n if (schema) {\n client.writeQuery({\n query: getQuery('GET_CURRENT_ENTITY'),\n data: {\n currentEntity: schema.id\n }\n });\n }\n },\n [\n client,\n entity,\n entityData,\n formData,\n formValues,\n pageBuilderTemplateStatus,\n previousQuery,\n schema,\n shouldUpdateState\n ]\n );\n\n const getFullUrl = async () => {\n const query = getQuery('GET_ENTITY_URL');\n const { data: { getEntityUrl = '' } = {} } = await client.query({\n query,\n variables: { itemId: entity.id, itemEntity: schema.id, fullUrl: true },\n fetchPolicy: 'network-only'\n });\n return getEntityUrl;\n };\n\n const getFormValues = values => {\n if (componentIsMounted.current) {\n setFormValues(values);\n }\n };\n\n const onChangeSideBarRelations = ({ id, value }, requiredChildField) => {\n const updatedFormValues = getUpdatedFormValues({ id, value, requiredChildField, formValues });\n\n const shouldActiveSaveButton = validateSideBarRelations(updatedFormValues, requiredChildField);\n\n if (isFormValid && shouldActiveSaveButton && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n } else if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues(updatedFormValues);\n }\n };\n\n const onChangeFormValues = async ({\n isValid,\n fields,\n isNewValueSet,\n valuesChecked,\n currentField,\n value: fieldValue,\n ...otherProps\n }) => {\n let updatedFormValues = valuesChecked ? valuesChecked.slice() : [];\n if (currentField === PAGE_BUILDER_TEMPLATE_FIELD_ID) {\n const pageBuilderTemplateId = fieldValue;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: !!pageBuilderTemplateId,\n pageBuilderTemplateId\n }\n });\n\n if (componentIsMounted.current) {\n setPageBuilderTemplateStatus(false);\n }\n\n const pageBuilder = updatedFormValues.filter(\n formValue => formValue.id === PAGE_BUILDER_FIELD_ID\n );\n\n if (pageBuilderTemplateId) {\n const { data = {} } = await client.query({\n query: getQuery('MERGE_PB_TEMPLATE_CHANGES'),\n variables: {\n parent: {\n pageBuilder: pageBuilder[0].value,\n pageBuilderTemplateId\n },\n entityIdentifier\n }\n });\n\n if (data && data.mergePageBuilderTemplateChanges) {\n updatedFormValues = updatedFormValues.map(updatedFormValue => {\n if (updatedFormValue.id === PAGE_BUILDER_FIELD_ID) {\n return {\n ...updatedFormValue,\n value: data.mergePageBuilderTemplateChanges\n };\n }\n return updatedFormValue;\n });\n }\n }\n }\n const itemsToAdd = [];\n if (formValues && formValues.length > updatedFormValues.length) {\n [...updatedFormValues, ...formValues].forEach(item => {\n const index = updatedFormValues.findIndex(value => value.id === item.id);\n if (index === -1) {\n itemsToAdd.push(item);\n }\n });\n }\n\n const [updatedEntity = null] = fields.filter(({ id }) => id === 'name');\n updatedEntity && setPageTitle(updatedEntity.value);\n\n const isValidAndNewValueSet = isValid && isNewValueSet;\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n if (isValidAndNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n }\n\n if (isNotValidOrNotNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues([...updatedFormValues, ...itemsToAdd]);\n }\n };\n\n const onSubmit = event => {\n event && event.preventDefault();\n\n if (!isSaveButtonAvailable) return null;\n const parsedFormValues = parseFormValues(formValues);\n\n const updatedFormValues = newUpdatedDate\n ? { ...formData.values, update: newUpdatedDate }\n : { ...formData.values };\n\n const handleUpdateFormData = () =>\n updateFormData(\n {\n values: { ...updatedFormValues, ...parsedFormValues }\n },\n true\n );\n\n const submitParams = {\n update: {\n entitySchema,\n entityData,\n parsedFormValues,\n client,\n setIsSaveButtonAvailable,\n setNewUpdatedDate,\n newUpdatedDate,\n previousQuery,\n setSaveButtonText,\n handleUpdateFormData\n },\n create: {\n entitySchema,\n parsedFormValues,\n client,\n setEntityData,\n setIsSaveButtonAvailable,\n history,\n setIsNewEntity,\n setSaveButtonText,\n handleUpdateFormData\n }\n };\n\n const currentAction = submitParams[action];\n return availableActions[action].submit(currentAction, addToast);\n };\n\n const onDelete = async () => {\n const {\n values: { id }\n } = formData;\n\n if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n await availableActions.delete.submit(\n {\n entitySchema,\n client,\n parsedFormValues: { id }\n },\n addToast\n );\n\n history.push(`/data-listing/${entitySchema.id}`);\n };\n\n const onCopy = () => {\n if (formDataFromCopy && componentIsMounted.current) {\n updateFormData(formDataFromCopy);\n setShouldCopyData(true);\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n if (formDataFromCopy.values.name) {\n setPageTitle(formDataFromCopy.values.name);\n }\n }\n };\n\n const updateCopyData = () => {\n setCopyModalStatus(!copyModalStatus);\n setShouldCopyData(false);\n };\n\n const handleCopyDataFromClose = () => {\n setCopyModalStatus(false);\n setFormDataFromCopy(null);\n };\n\n const getFormData = formDataValues => {\n const formDataUpdated = {\n values: { ...formDataValues }\n };\n setFormDataFromCopy(formDataUpdated);\n };\n\n const handlePublishAndUnpublish = async ({ target: { textContent } }) => {\n const isPublishButton = textContent === TEXT_CONTENT_TYPE;\n const isPublished = entityIsPublished === ENTITY_PUBLISHED;\n\n const isUnpublish = checkFulfilConditions(!isPublishButton, !isPublished);\n\n if (isUnpublish) {\n return addToast(UNPUBLISHED_WARNING, {\n appearance: 'warning',\n autoDismiss: true\n });\n }\n\n if (checkFulfilConditions(isPublishButton, isSaveButtonAvailable)) {\n const savedPageMessage = await onSubmit();\n\n if (savedPageMessage === ERROR) {\n return addToast(`Content not published`, {\n appearance: ERROR,\n autoDismiss: true\n });\n }\n }\n\n return availableActions.shared.triggerPublish(\n {\n entityData,\n client,\n setEntityIsPublish,\n entitySchema,\n textContent,\n refetchRecord\n },\n addToast\n );\n };\n\n const showModal = checkFulfilConditions(formData, modalStatus);\n\n const onViewUrlHandler = canViewPage(formData, entity, schema, entityIsPublished)\n ? () => onViewUrlClick(getFullUrl)\n : onViewUrl;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasNewFormValues = checkFulfilConditions(isNewEntity, !isFormEmpty(formValues));\n const hasToDisplayPrompt = isSaveButtonAvailable || hasNewFormValues;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n const showPageBuilderTabs =\n schema?.interfaces?.includes('page-builder/page-builder-template') ||\n schema?.interfaces?.includes('page-builder/page-builder');\n\n return (\n <div className=\"page\">\n <EntityHeader\n entityData={entityData}\n entityIdentifier={entityIdentifier}\n pageTitle={pageTitle}\n pageName={pageName}\n onSubmit={onSubmit}\n handlePublishAndUnpublish={handlePublishAndUnpublish}\n isSaveButtonAvailable={isSaveButtonAvailable}\n isEnablePublishButton={isEnablePublishButton}\n isEnablePreviewButton={isEnablePreviewButton}\n toggleCopyModal={setCopyModalStatus}\n toggleModal={setModalStatus}\n formData={formData}\n onViewUrl={onViewUrlHandler}\n saveButtonText={saveButtonText}\n />\n <div className=\"page-wrapper__content\">\n <div className=\"tabs-wrapper tabs-wrapper__tab\">\n <Prompt when={hasToDisplayPrompt} message={LEAVE_PAGE_MESSAGE} />\n {showModal && (\n <DeleteAction\n onClose={setModalStatus}\n deleteAction={onDelete}\n itemName={formData.values.name}\n />\n )}\n {copyModalStatus && (\n <CopyDataFromAction\n onClose={handleCopyDataFromClose}\n copyAction={onCopy}\n getFormData={getFormData}\n />\n )}\n\n <div className=\"page__content--fixed\">\n <div className=\"page__content\">\n <div className=\"content\">\n <Tabs\n enabled={showPageBuilderTabs}\n onTabChange={tabId => {\n client.writeQuery({\n query: GET_CURRENT_TAB_ID,\n data: { currentTabId: tabId }\n });\n setCurrentTabId(tabId);\n }}>\n <FormBuilder\n getIsFormValid={setIsFormValid}\n getFormValues={getFormValues}\n schema={schema}\n data={clonedFormData}\n onChange={onChangeFormValues}\n shouldCopyData={shouldCopyData}\n updateCopyData={updateCopyData}\n formValues={formValues}\n isNewEntity={isNewEntity}\n />\n </Tabs>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"column column--one-third page-sidebar\">\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nEntity.propTypes = {\n entity: PropTypes.object,\n schema: PropTypes.object,\n previousQuery: PropTypes.object,\n action: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n formData: PropTypes.object,\n updateFormData: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n refetchRecord: PropTypes.func.isRequired\n};\n\nEntity.defaultProps = {\n previousQuery: null,\n schema: null,\n entity: null,\n formData: null,\n onViewUrl: null\n};\n\nexport default withRouter(Entity);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Entity.js","names":["React","useEffect","useState","useRef","withRouter","Prompt","useApolloClient","PropTypes","RenderHook","getQuery","GET_CURRENT_TAB_ID","FormBuilder","parseFormValues","DeleteAction","CopyDataFromAction","useToasts","cloneDeep","getPageName","isFormEmpty","availableActions","SideBarRelations","Tabs","ENTITY_PUBLISHED","TEXT_CONTENT_TYPE","LEAVE_PAGE_MESSAGE","PREVIEW_INTERFACE","PAGE_BUILDER_FIELD_ID","PAGE_BUILDER_TEMPLATE_FIELD_ID","ERROR","SAVE_BUTTON_TEXTS","UNPUBLISHED_WARNING","EntityHeader","validateSideBarRelations","canViewPage","onViewUrlClick","getUpdatedFormValues","checkFulfilConditions","useToggle","InfoBoxes","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_schema$interfaces","_schema$interfaces2","setCurrentTabId","formValues","setFormValues","entitySchema","setEntitySchema","entityData","setEntityData","entityIdentifier","setEntityIdentifier","pageTitle","setPageTitle","isSaveButtonAvailable","setIsSaveButtonAvailable","entityIsPublished","setEntityIsPublish","values","status","isEnablePublishButton","setEnablePublishButton","isEnablePreviewButton","setEnablePreviewButton","modalStatus","setModalStatus","copyModalStatus","setCopyModalStatus","pageBuilderTemplateStatus","setPageBuilderTemplateStatus","shouldCopyData","setShouldCopyData","isFormValid","setIsFormValid","formDataFromCopy","setFormDataFromCopy","newUpdatedDate","setNewUpdatedDate","saveButtonText","setSaveButtonText","save","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","shouldUpdateState","id","clonedFormData","addToast","componentIsMounted","current","displayProperties","actions","publish","identifier","interfaces","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","data","pageBuilderTemplateSet","currentEntity","getFullUrl","getEntityUrl","variables","itemId","itemEntity","fullUrl","fetchPolicy","getFormValues","onChangeSideBarRelations","value","requiredChildField","updatedFormValues","shouldActiveSaveButton","onChangeFormValues","_ref","isValid","fields","isNewValueSet","valuesChecked","currentField","fieldValue","otherProps","_objectWithoutProperties","_excluded","slice","pageBuilder","filter","formValue","parent","mergePageBuilderTemplateChanges","map","updatedFormValue","_objectSpread","itemsToAdd","length","forEach","item","index","findIndex","push","updatedEntity","isValidAndNewValueSet","isNotValidOrNotNewValueSet","onSubmit","event","preventDefault","parsedFormValues","update","handleUpdateFormData","submitParams","create","currentAction","submit","onDelete","delete","onCopy","name","updateCopyData","handleCopyDataFromClose","getFormData","formDataValues","formDataUpdated","handlePublishAndUnpublish","target","textContent","isPublishButton","isPublished","isUnpublish","appearance","autoDismiss","savedPageMessage","shared","triggerPublish","showModal","onViewUrlHandler","pageName","hasNewFormValues","hasToDisplayPrompt","showSideBarRelations","showPageBuilderTabs","createElement","className","toggleCopyModal","toggleModal","when","message","onClose","deleteAction","itemName","copyAction","hookKey","enabled","onTabChange","tabId","currentTabId","getIsFormValid","onChange","propTypes","object","string","isRequired","func","defaultProps"],"sources":["../../../../src/components/EntityManager/Entity/Entity.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport React, { useEffect, useState, useRef } from 'react';\nimport { withRouter, Prompt } from 'react-router-dom';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';\nimport { getQuery, GET_CURRENT_TAB_ID } from '@blaze-cms/admin-ui-utils';\nimport { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';\nimport { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';\nimport { useToasts } from '@blaze-react/toaster';\nimport cloneDeep from 'lodash.clonedeep';\nimport { getPageName } from '../utils/data-mappers';\nimport isFormEmpty from '../utils/is-form-empty';\nimport availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport Tabs from '../../Tabs';\n\nimport {\n ENTITY_PUBLISHED,\n TEXT_CONTENT_TYPE,\n LEAVE_PAGE_MESSAGE,\n PREVIEW_INTERFACE,\n PAGE_BUILDER_FIELD_ID,\n PAGE_BUILDER_TEMPLATE_FIELD_ID,\n ERROR,\n SAVE_BUTTON_TEXTS,\n UNPUBLISHED_WARNING\n} from '../../../constants';\nimport EntityHeader from './EntityHeader';\nimport {\n validateSideBarRelations,\n canViewPage,\n onViewUrlClick,\n getUpdatedFormValues,\n checkFulfilConditions\n} from '../utils/entity';\nimport useToggle from '../../../utils/hooks/useToggle';\nimport InfoBoxes from '../../InfoBoxes/InfoBoxes';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\n const [, setCurrentTabId] = useState(null);\n const [formValues, setFormValues] = useState(null);\n const [entitySchema, setEntitySchema] = useState(null);\n const [entityData, setEntityData] = useState(null);\n const [entityIdentifier, setEntityIdentifier] = useState(null);\n const [pageTitle, setPageTitle] = useState('');\n const [isSaveButtonAvailable, setIsSaveButtonAvailable] = useState(false);\n const [entityIsPublished, setEntityIsPublish] = useState(\n formData && formData.values && formData.values.status\n );\n const [isEnablePublishButton, setEnablePublishButton] = useState(false);\n const [isEnablePreviewButton, setEnablePreviewButton] = useState(false);\n const [modalStatus, setModalStatus] = useToggle(false);\n const [copyModalStatus, setCopyModalStatus] = useToggle(false);\n const [pageBuilderTemplateStatus, setPageBuilderTemplateStatus] = useState(true);\n const [shouldCopyData, setShouldCopyData] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [formDataFromCopy, setFormDataFromCopy] = useState(null);\n const [newUpdatedDate, setNewUpdatedDate] = useState(null);\n const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);\n\n const isCreatePage = history.location.pathname.includes('create');\n const [isNewEntity, setIsNewEntity] = useState(isCreatePage);\n\n const client = useApolloClient();\n const shouldUpdateState =\n !entityIdentifier ||\n checkFulfilConditions(entity, schema, previousQuery, !entityData) ||\n (entityData && entityData.id !== entity.id);\n const clonedFormData = cloneDeep(formData);\n const { addToast } = useToasts();\n\n // Here's how we'll keep track of our component's mounted state\n const componentIsMounted = useRef(true);\n useEffect(\n () => () => {\n componentIsMounted.current = false;\n },\n []\n ); // Using an empty dependency array ensures this only runs on unmount\n\n useEffect(\n () => {\n if (shouldUpdateState) {\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n setEntityData(entity);\n setPageTitle(getPageName(schema.displayProperties, entity));\n setEntityIsPublish(entity.status);\n setEntitySchema(schema);\n setEnablePublishButton(schema.actions.publish);\n setEntityIdentifier(schema.identifier);\n setEnablePreviewButton(!!schema.interfaces.includes(PREVIEW_INTERFACE));\n }\n\n if (formData && pageBuilderTemplateStatus) {\n const isPageBuilderTemplateSet = !!formData.values.pageBuilderTemplateId;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: isPageBuilderTemplateSet,\n pageBuilderTemplateId: formData.values.pageBuilderTemplateId || ''\n }\n });\n }\n if (schema) {\n client.writeQuery({\n query: getQuery('GET_CURRENT_ENTITY'),\n data: {\n currentEntity: schema.id\n }\n });\n }\n },\n [\n client,\n entity,\n entityData,\n formData,\n formValues,\n pageBuilderTemplateStatus,\n previousQuery,\n schema,\n shouldUpdateState\n ]\n );\n\n const getFullUrl = async () => {\n const query = getQuery('GET_ENTITY_URL');\n const { data: { getEntityUrl = '' } = {} } = await client.query({\n query,\n variables: { itemId: entity.id, itemEntity: schema.id, fullUrl: true },\n fetchPolicy: 'network-only'\n });\n return getEntityUrl;\n };\n\n const getFormValues = values => {\n if (componentIsMounted.current) {\n setFormValues(values);\n }\n };\n\n const onChangeSideBarRelations = ({ id, value }, requiredChildField) => {\n const updatedFormValues = getUpdatedFormValues({ id, value, requiredChildField, formValues });\n\n const shouldActiveSaveButton = validateSideBarRelations(updatedFormValues, requiredChildField);\n\n if (isFormValid && shouldActiveSaveButton && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n } else if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues(updatedFormValues);\n }\n };\n\n const onChangeFormValues = async ({\n isValid,\n fields,\n isNewValueSet,\n valuesChecked,\n currentField,\n value: fieldValue,\n ...otherProps\n }) => {\n let updatedFormValues = valuesChecked ? valuesChecked.slice() : [];\n if (currentField === PAGE_BUILDER_TEMPLATE_FIELD_ID) {\n const pageBuilderTemplateId = fieldValue;\n client.writeQuery({\n query: getQuery('GET_PB_TEMPLATE_STATUS'),\n data: {\n pageBuilderTemplateSet: !!pageBuilderTemplateId,\n pageBuilderTemplateId\n }\n });\n\n if (componentIsMounted.current) {\n setPageBuilderTemplateStatus(false);\n }\n\n const pageBuilder = updatedFormValues.filter(\n formValue => formValue.id === PAGE_BUILDER_FIELD_ID\n );\n\n if (pageBuilderTemplateId) {\n const { data = {} } = await client.query({\n query: getQuery('MERGE_PB_TEMPLATE_CHANGES'),\n variables: {\n parent: {\n pageBuilder: pageBuilder[0].value,\n pageBuilderTemplateId\n },\n entityIdentifier\n }\n });\n\n if (data && data.mergePageBuilderTemplateChanges) {\n updatedFormValues = updatedFormValues.map(updatedFormValue => {\n if (updatedFormValue.id === PAGE_BUILDER_FIELD_ID) {\n return {\n ...updatedFormValue,\n value: data.mergePageBuilderTemplateChanges\n };\n }\n return updatedFormValue;\n });\n }\n }\n }\n const itemsToAdd = [];\n if (formValues && formValues.length > updatedFormValues.length) {\n [...updatedFormValues, ...formValues].forEach(item => {\n const index = updatedFormValues.findIndex(value => value.id === item.id);\n if (index === -1) {\n itemsToAdd.push(item);\n }\n });\n }\n\n const [updatedEntity = null] = fields.filter(({ id }) => id === 'name');\n updatedEntity && setPageTitle(updatedEntity.value);\n\n const isValidAndNewValueSet = isValid && isNewValueSet;\n const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n if (isValidAndNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n }\n\n if (isNotValidOrNotNewValueSet && componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n if (componentIsMounted.current) {\n setFormValues([...updatedFormValues, ...itemsToAdd]);\n }\n };\n\n const onSubmit = event => {\n event && event.preventDefault();\n\n if (!isSaveButtonAvailable) return null;\n const parsedFormValues = parseFormValues(formValues);\n\n const updatedFormValues = newUpdatedDate\n ? { ...formData.values, update: newUpdatedDate }\n : { ...formData.values };\n\n const handleUpdateFormData = () =>\n updateFormData(\n {\n values: { ...updatedFormValues, ...parsedFormValues }\n },\n true\n );\n\n const submitParams = {\n update: {\n entitySchema,\n entityData,\n parsedFormValues,\n client,\n setIsSaveButtonAvailable,\n setNewUpdatedDate,\n newUpdatedDate,\n previousQuery,\n setSaveButtonText,\n handleUpdateFormData\n },\n create: {\n entitySchema,\n parsedFormValues,\n client,\n setEntityData,\n setIsSaveButtonAvailable,\n history,\n setIsNewEntity,\n setSaveButtonText,\n handleUpdateFormData\n }\n };\n\n const currentAction = submitParams[action];\n return availableActions[action].submit(currentAction, addToast);\n };\n\n const onDelete = async () => {\n const {\n values: { id }\n } = formData;\n\n if (componentIsMounted.current) {\n setIsSaveButtonAvailable(false);\n }\n\n await availableActions.delete.submit(\n {\n entitySchema,\n client,\n parsedFormValues: { id }\n },\n addToast\n );\n\n history.push(`/data-listing/${entitySchema.id}`);\n };\n\n const onCopy = () => {\n if (formDataFromCopy && componentIsMounted.current) {\n updateFormData(formDataFromCopy);\n setShouldCopyData(true);\n setIsSaveButtonAvailable(true);\n setSaveButtonText(SAVE_BUTTON_TEXTS.save);\n if (formDataFromCopy.values.name) {\n setPageTitle(formDataFromCopy.values.name);\n }\n }\n };\n\n const updateCopyData = () => {\n setCopyModalStatus(!copyModalStatus);\n setShouldCopyData(false);\n };\n\n const handleCopyDataFromClose = () => {\n setCopyModalStatus(false);\n setFormDataFromCopy(null);\n };\n\n const getFormData = formDataValues => {\n const formDataUpdated = {\n values: { ...formDataValues }\n };\n setFormDataFromCopy(formDataUpdated);\n };\n\n const handlePublishAndUnpublish = async ({ target: { textContent } }) => {\n const isPublishButton = textContent === TEXT_CONTENT_TYPE;\n const isPublished = entityIsPublished === ENTITY_PUBLISHED;\n\n const isUnpublish = checkFulfilConditions(!isPublishButton, !isPublished);\n\n if (isUnpublish) {\n return addToast(UNPUBLISHED_WARNING, {\n appearance: 'warning',\n autoDismiss: true\n });\n }\n\n if (checkFulfilConditions(isPublishButton, isSaveButtonAvailable)) {\n const savedPageMessage = await onSubmit();\n\n if (savedPageMessage === ERROR) {\n return addToast(`Content not published`, {\n appearance: ERROR,\n autoDismiss: true\n });\n }\n }\n\n return availableActions.shared.triggerPublish(\n {\n entityData,\n client,\n setEntityIsPublish,\n entitySchema,\n textContent,\n refetchRecord\n },\n addToast\n );\n };\n\n const showModal = checkFulfilConditions(formData, modalStatus);\n\n const onViewUrlHandler = canViewPage(formData, entity, schema, entityIsPublished)\n ? () => onViewUrlClick(getFullUrl)\n : onViewUrl;\n\n const pageName = formData && formData.values && formData.values.name;\n\n const hasNewFormValues = checkFulfilConditions(isNewEntity, !isFormEmpty(formValues));\n const hasToDisplayPrompt = isSaveButtonAvailable || hasNewFormValues;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n const showPageBuilderTabs =\n schema?.interfaces?.includes('page-builder/page-builder-template') ||\n schema?.interfaces?.includes('page-builder/page-builder');\n\n return (\n <div className=\"page\">\n <EntityHeader\n entityData={entityData}\n entityIdentifier={entityIdentifier}\n pageTitle={pageTitle}\n pageName={pageName}\n onSubmit={onSubmit}\n handlePublishAndUnpublish={handlePublishAndUnpublish}\n isSaveButtonAvailable={isSaveButtonAvailable}\n isEnablePublishButton={isEnablePublishButton}\n isEnablePreviewButton={isEnablePreviewButton}\n toggleCopyModal={setCopyModalStatus}\n toggleModal={setModalStatus}\n formData={formData}\n onViewUrl={onViewUrlHandler}\n saveButtonText={saveButtonText}\n />\n <div className=\"page-wrapper__content\">\n <div className=\"tabs-wrapper tabs-wrapper__tab\">\n <Prompt when={hasToDisplayPrompt} message={LEAVE_PAGE_MESSAGE} />\n {showModal && (\n <DeleteAction\n onClose={setModalStatus}\n deleteAction={onDelete}\n itemName={formData.values.name}\n />\n )}\n {copyModalStatus && (\n <CopyDataFromAction\n onClose={handleCopyDataFromClose}\n copyAction={onCopy}\n getFormData={getFormData}\n />\n )}\n\n <div className=\"page__content--fixed\">\n <div className=\"page__content\">\n <div className=\"content\">\n <RenderHook hookKey={`entity:${action}:main:top`} entity={entity} schema={schema} />\n <InfoBoxes id={entity.id} schema={schema} />\n <Tabs\n enabled={showPageBuilderTabs}\n onTabChange={tabId => {\n client.writeQuery({\n query: GET_CURRENT_TAB_ID,\n data: { currentTabId: tabId }\n });\n setCurrentTabId(tabId);\n }}>\n <FormBuilder\n getIsFormValid={setIsFormValid}\n getFormValues={getFormValues}\n schema={schema}\n data={clonedFormData}\n onChange={onChangeFormValues}\n shouldCopyData={shouldCopyData}\n updateCopyData={updateCopyData}\n formValues={formValues}\n isNewEntity={isNewEntity}\n />\n </Tabs>\n <RenderHook\n hookKey={`entity:${action}:main:bottom`}\n entity={entity}\n schema={schema}\n />\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"column column--one-third page-sidebar\">\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nEntity.propTypes = {\n entity: PropTypes.object,\n schema: PropTypes.object,\n previousQuery: PropTypes.object,\n action: PropTypes.string.isRequired,\n history: PropTypes.object.isRequired,\n formData: PropTypes.object,\n updateFormData: PropTypes.func.isRequired,\n onViewUrl: PropTypes.func,\n refetchRecord: PropTypes.func.isRequired\n};\n\nEntity.defaultProps = {\n previousQuery: null,\n schema: null,\n entity: null,\n formData: null,\n onViewUrl: null\n};\n\nexport default withRouter(Entity);\n"],"mappings":";;;;;AAAA;AACA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAC1D,SAASC,UAAU,EAAEC,MAAM,QAAQ,kBAAkB;AACrD,SAASC,eAAe,QAAQ,gBAAgB;AAChD,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,mCAAmC;AAC9D,SAASC,QAAQ,EAAEC,kBAAkB,QAAQ,2BAA2B;AACxE,SAASC,WAAW,EAAEC,eAAe,QAAQ,+BAA+B;AAC5E,SAASC,YAAY,EAAEC,kBAAkB,QAAQ,kBAAkB;AACnE,SAASC,SAAS,QAAQ,sBAAsB;AAChD,OAAOC,SAAS,MAAM,kBAAkB;AACxC,SAASC,WAAW,QAAQ,uBAAuB;AACnD,OAAOC,WAAW,MAAM,wBAAwB;AAChD,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,OAAOC,IAAI,MAAM,YAAY;AAE7B,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,kBAAkB,EAClBC,iBAAiB,EACjBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,KAAK,EACLC,iBAAiB,EACjBC,mBAAmB,QACd,oBAAoB;AAC3B,OAAOC,YAAY,MAAM,gBAAgB;AACzC,SACEC,wBAAwB,EACxBC,WAAW,EACXC,cAAc,EACdC,oBAAoB,EACpBC,qBAAqB,QAChB,iBAAiB;AACxB,OAAOC,SAAS,MAAM,gCAAgC;AACtD,OAAOC,SAAS,MAAM,2BAA2B;AAEjD,MAAMC,MAAM,GAAGA,CAAC;EACdC,QAAQ;EACRC,MAAM;EACNC,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,OAAO;EACPC,cAAc;EACdC,SAAS;EACTC;AACF,CAAC,KAAK;EAAA,IAAAC,kBAAA,EAAAC,mBAAA;EACJ,MAAM,GAAGC,eAAe,CAAC,GAAGjD,QAAQ,CAAC,IAAI,CAAC;EAC1C,MAAM,CAACkD,UAAU,EAAEC,aAAa,CAAC,GAAGnD,QAAQ,CAAC,IAAI,CAAC;EAClD,MAAM,CAACoD,YAAY,EAAEC,eAAe,CAAC,GAAGrD,QAAQ,CAAC,IAAI,CAAC;EACtD,MAAM,CAACsD,UAAU,EAAEC,aAAa,CAAC,GAAGvD,QAAQ,CAAC,IAAI,CAAC;EAClD,MAAM,CAACwD,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzD,QAAQ,CAAC,IAAI,CAAC;EAC9D,MAAM,CAAC0D,SAAS,EAAEC,YAAY,CAAC,GAAG3D,QAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAAC4D,qBAAqB,EAAEC,wBAAwB,CAAC,GAAG7D,QAAQ,CAAC,KAAK,CAAC;EACzE,MAAM,CAAC8D,iBAAiB,EAAEC,kBAAkB,CAAC,GAAG/D,QAAQ,CACtDsC,QAAQ,IAAIA,QAAQ,CAAC0B,MAAM,IAAI1B,QAAQ,CAAC0B,MAAM,CAACC,MACjD,CAAC;EACD,MAAM,CAACC,qBAAqB,EAAEC,sBAAsB,CAAC,GAAGnE,QAAQ,CAAC,KAAK,CAAC;EACvE,MAAM,CAACoE,qBAAqB,EAAEC,sBAAsB,CAAC,GAAGrE,QAAQ,CAAC,KAAK,CAAC;EACvE,MAAM,CAACsE,WAAW,EAAEC,cAAc,CAAC,GAAGpC,SAAS,CAAC,KAAK,CAAC;EACtD,MAAM,CAACqC,eAAe,EAAEC,kBAAkB,CAAC,GAAGtC,SAAS,CAAC,KAAK,CAAC;EAC9D,MAAM,CAACuC,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG3E,QAAQ,CAAC,IAAI,CAAC;EAChF,MAAM,CAAC4E,cAAc,EAAEC,iBAAiB,CAAC,GAAG7E,QAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAAC8E,WAAW,EAAEC,cAAc,CAAC,GAAG/E,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACgF,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGjF,QAAQ,CAAC,IAAI,CAAC;EAC9D,MAAM,CAACkF,cAAc,EAAEC,iBAAiB,CAAC,GAAGnF,QAAQ,CAAC,IAAI,CAAC;EAC1D,MAAM,CAACoF,cAAc,EAAEC,iBAAiB,CAAC,GAAGrF,QAAQ,CAAC2B,iBAAiB,CAAC2D,IAAI,CAAC;EAE5E,MAAMC,YAAY,GAAG5C,OAAO,CAAC6C,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAAC;EACjE,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG5F,QAAQ,CAACuF,YAAY,CAAC;EAE5D,MAAMM,MAAM,GAAGzF,eAAe,CAAC,CAAC;EAChC,MAAM0F,iBAAiB,GACrB,CAACtC,gBAAgB,IACjBtB,qBAAqB,CAACK,MAAM,EAAEC,MAAM,EAAEC,aAAa,EAAE,CAACa,UAAU,CAAC,IAChEA,UAAU,IAAIA,UAAU,CAACyC,EAAE,KAAKxD,MAAM,CAACwD,EAAG;EAC7C,MAAMC,cAAc,GAAGlF,SAAS,CAACwB,QAAQ,CAAC;EAC1C,MAAM;IAAE2D;EAAS,CAAC,GAAGpF,SAAS,CAAC,CAAC;;EAEhC;EACA,MAAMqF,kBAAkB,GAAGjG,MAAM,CAAC,IAAI,CAAC;EACvCF,SAAS,CACP,MAAM,MAAM;IACVmG,kBAAkB,CAACC,OAAO,GAAG,KAAK;EACpC,CAAC,EACD,EACF,CAAC,CAAC,CAAC;;EAEHpG,SAAS,CACP,MAAM;IACJ,IAAI+F,iBAAiB,EAAE;MACrBT,iBAAiB,CAAC1D,iBAAiB,CAAC2D,IAAI,CAAC;MACzC/B,aAAa,CAAChB,MAAM,CAAC;MACrBoB,YAAY,CAAC5C,WAAW,CAACyB,MAAM,CAAC4D,iBAAiB,EAAE7D,MAAM,CAAC,CAAC;MAC3DwB,kBAAkB,CAACxB,MAAM,CAAC0B,MAAM,CAAC;MACjCZ,eAAe,CAACb,MAAM,CAAC;MACvB2B,sBAAsB,CAAC3B,MAAM,CAAC6D,OAAO,CAACC,OAAO,CAAC;MAC9C7C,mBAAmB,CAACjB,MAAM,CAAC+D,UAAU,CAAC;MACtClC,sBAAsB,CAAC,CAAC,CAAC7B,MAAM,CAACgE,UAAU,CAACd,QAAQ,CAACnE,iBAAiB,CAAC,CAAC;IACzE;IAEA,IAAIe,QAAQ,IAAIoC,yBAAyB,EAAE;MACzC,MAAM+B,wBAAwB,GAAG,CAAC,CAACnE,QAAQ,CAAC0B,MAAM,CAAC0C,qBAAqB;MACxEb,MAAM,CAACc,UAAU,CAAC;QAChBC,KAAK,EAAErG,QAAQ,CAAC,wBAAwB,CAAC;QACzCsG,IAAI,EAAE;UACJC,sBAAsB,EAAEL,wBAAwB;UAChDC,qBAAqB,EAAEpE,QAAQ,CAAC0B,MAAM,CAAC0C,qBAAqB,IAAI;QAClE;MACF,CAAC,CAAC;IACJ;IACA,IAAIlE,MAAM,EAAE;MACVqD,MAAM,CAACc,UAAU,CAAC;QAChBC,KAAK,EAAErG,QAAQ,CAAC,oBAAoB,CAAC;QACrCsG,IAAI,EAAE;UACJE,aAAa,EAAEvE,MAAM,CAACuD;QACxB;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CACEF,MAAM,EACNtD,MAAM,EACNe,UAAU,EACVhB,QAAQ,EACRY,UAAU,EACVwB,yBAAyB,EACzBjC,aAAa,EACbD,MAAM,EACNsD,iBAAiB,CAErB,CAAC;EAED,MAAMkB,UAAU,GAAG,MAAAA,CAAA,KAAY;IAC7B,MAAMJ,KAAK,GAAGrG,QAAQ,CAAC,gBAAgB,CAAC;IACxC,MAAM;MAAEsG,IAAI,EAAE;QAAEI,YAAY,GAAG;MAAG,CAAC,GAAG,CAAC;IAAE,CAAC,GAAG,MAAMpB,MAAM,CAACe,KAAK,CAAC;MAC9DA,KAAK;MACLM,SAAS,EAAE;QAAEC,MAAM,EAAE5E,MAAM,CAACwD,EAAE;QAAEqB,UAAU,EAAE5E,MAAM,CAACuD,EAAE;QAAEsB,OAAO,EAAE;MAAK,CAAC;MACtEC,WAAW,EAAE;IACf,CAAC,CAAC;IACF,OAAOL,YAAY;EACrB,CAAC;EAED,MAAMM,aAAa,GAAGvD,MAAM,IAAI;IAC9B,IAAIkC,kBAAkB,CAACC,OAAO,EAAE;MAC9BhD,aAAa,CAACa,MAAM,CAAC;IACvB;EACF,CAAC;EAED,MAAMwD,wBAAwB,GAAGA,CAAC;IAAEzB,EAAE;IAAE0B;EAAM,CAAC,EAAEC,kBAAkB,KAAK;IACtE,MAAMC,iBAAiB,GAAG1F,oBAAoB,CAAC;MAAE8D,EAAE;MAAE0B,KAAK;MAAEC,kBAAkB;MAAExE;IAAW,CAAC,CAAC;IAE7F,MAAM0E,sBAAsB,GAAG9F,wBAAwB,CAAC6F,iBAAiB,EAAED,kBAAkB,CAAC;IAE9F,IAAI5C,WAAW,IAAI8C,sBAAsB,IAAI1B,kBAAkB,CAACC,OAAO,EAAE;MACvEtC,wBAAwB,CAAC,IAAI,CAAC;MAC9BwB,iBAAiB,CAAC1D,iBAAiB,CAAC2D,IAAI,CAAC;IAC3C,CAAC,MAAM,IAAIY,kBAAkB,CAACC,OAAO,EAAE;MACrCtC,wBAAwB,CAAC,KAAK,CAAC;IACjC;IAEA,IAAIqC,kBAAkB,CAACC,OAAO,EAAE;MAC9BhD,aAAa,CAACwE,iBAAiB,CAAC;IAClC;EACF,CAAC;EAED,MAAME,kBAAkB,GAAG,MAAAC,IAAA,IAQrB;IAAA,IAR4B;QAChCC,OAAO;QACPC,MAAM;QACNC,aAAa;QACbC,aAAa;QACbC,YAAY;QACZV,KAAK,EAAEW;MAET,CAAC,GAAAN,IAAA;MADIO,UAAU,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA;IAEb,IAAIZ,iBAAiB,GAAGO,aAAa,GAAGA,aAAa,CAACM,KAAK,CAAC,CAAC,GAAG,EAAE;IAClE,IAAIL,YAAY,KAAK1G,8BAA8B,EAAE;MACnD,MAAMiF,qBAAqB,GAAG0B,UAAU;MACxCvC,MAAM,CAACc,UAAU,CAAC;QAChBC,KAAK,EAAErG,QAAQ,CAAC,wBAAwB,CAAC;QACzCsG,IAAI,EAAE;UACJC,sBAAsB,EAAE,CAAC,CAACJ,qBAAqB;UAC/CA;QACF;MACF,CAAC,CAAC;MAEF,IAAIR,kBAAkB,CAACC,OAAO,EAAE;QAC9BxB,4BAA4B,CAAC,KAAK,CAAC;MACrC;MAEA,MAAM8D,WAAW,GAAGd,iBAAiB,CAACe,MAAM,CAC1CC,SAAS,IAAIA,SAAS,CAAC5C,EAAE,KAAKvE,qBAChC,CAAC;MAED,IAAIkF,qBAAqB,EAAE;QACzB,MAAM;UAAEG,IAAI,GAAG,CAAC;QAAE,CAAC,GAAG,MAAMhB,MAAM,CAACe,KAAK,CAAC;UACvCA,KAAK,EAAErG,QAAQ,CAAC,2BAA2B,CAAC;UAC5C2G,SAAS,EAAE;YACT0B,MAAM,EAAE;cACNH,WAAW,EAAEA,WAAW,CAAC,CAAC,CAAC,CAAChB,KAAK;cACjCf;YACF,CAAC;YACDlD;UACF;QACF,CAAC,CAAC;QAEF,IAAIqD,IAAI,IAAIA,IAAI,CAACgC,+BAA+B,EAAE;UAChDlB,iBAAiB,GAAGA,iBAAiB,CAACmB,GAAG,CAACC,gBAAgB,IAAI;YAC5D,IAAIA,gBAAgB,CAAChD,EAAE,KAAKvE,qBAAqB,EAAE;cACjD,OAAAwH,aAAA,CAAAA,aAAA,KACKD,gBAAgB;gBACnBtB,KAAK,EAAEZ,IAAI,CAACgC;cAA+B;YAE/C;YACA,OAAOE,gBAAgB;UACzB,CAAC,CAAC;QACJ;MACF;IACF;IACA,MAAME,UAAU,GAAG,EAAE;IACrB,IAAI/F,UAAU,IAAIA,UAAU,CAACgG,MAAM,GAAGvB,iBAAiB,CAACuB,MAAM,EAAE;MAC9D,CAAC,GAAGvB,iBAAiB,EAAE,GAAGzE,UAAU,CAAC,CAACiG,OAAO,CAACC,IAAI,IAAI;QACpD,MAAMC,KAAK,GAAG1B,iBAAiB,CAAC2B,SAAS,CAAC7B,KAAK,IAAIA,KAAK,CAAC1B,EAAE,KAAKqD,IAAI,CAACrD,EAAE,CAAC;QACxE,IAAIsD,KAAK,KAAK,CAAC,CAAC,EAAE;UAChBJ,UAAU,CAACM,IAAI,CAACH,IAAI,CAAC;QACvB;MACF,CAAC,CAAC;IACJ;IAEA,MAAM,CAACI,aAAa,GAAG,IAAI,CAAC,GAAGxB,MAAM,CAACU,MAAM,CAAC,CAAC;MAAE3C;IAAG,CAAC,KAAKA,EAAE,KAAK,MAAM,CAAC;IACvEyD,aAAa,IAAI7F,YAAY,CAAC6F,aAAa,CAAC/B,KAAK,CAAC;IAElD,MAAMgC,qBAAqB,GAAG1B,OAAO,IAAIE,aAAa;IACtD,MAAMyB,0BAA0B,GAAG,CAAC3B,OAAO,IAAI,CAACE,aAAa;IAC7D,IAAI/B,kBAAkB,CAACC,OAAO,EAAE;MAC9BpB,cAAc,CAACgD,OAAO,CAAC;IACzB;IACA,IAAI0B,qBAAqB,IAAIvD,kBAAkB,CAACC,OAAO,EAAE;MACvDtC,wBAAwB,CAAC,IAAI,CAAC;MAC9BwB,iBAAiB,CAAC1D,iBAAiB,CAAC2D,IAAI,CAAC;IAC3C;IAEA,IAAIoE,0BAA0B,IAAIxD,kBAAkB,CAACC,OAAO,EAAE;MAC5DtC,wBAAwB,CAAC,KAAK,CAAC;IACjC;IAEA,IAAIqC,kBAAkB,CAACC,OAAO,EAAE;MAC9BhD,aAAa,CAAC,CAAC,GAAGwE,iBAAiB,EAAE,GAAGsB,UAAU,CAAC,CAAC;IACtD;EACF,CAAC;EAED,MAAMU,QAAQ,GAAGC,KAAK,IAAI;IACxBA,KAAK,IAAIA,KAAK,CAACC,cAAc,CAAC,CAAC;IAE/B,IAAI,CAACjG,qBAAqB,EAAE,OAAO,IAAI;IACvC,MAAMkG,gBAAgB,GAAGpJ,eAAe,CAACwC,UAAU,CAAC;IAEpD,MAAMyE,iBAAiB,GAAGzC,cAAc,GAAA8D,aAAA,CAAAA,aAAA,KAC/B1G,QAAQ,CAAC0B,MAAM;MAAE+F,MAAM,EAAE7E;IAAc,KAAA8D,aAAA,KACvC1G,QAAQ,CAAC0B,MAAM,CAAE;IAE1B,MAAMgG,oBAAoB,GAAGA,CAAA,KAC3BpH,cAAc,CACZ;MACEoB,MAAM,EAAAgF,aAAA,CAAAA,aAAA,KAAOrB,iBAAiB,GAAKmC,gBAAgB;IACrD,CAAC,EACD,IACF,CAAC;IAEH,MAAMG,YAAY,GAAG;MACnBF,MAAM,EAAE;QACN3G,YAAY;QACZE,UAAU;QACVwG,gBAAgB;QAChBjE,MAAM;QACNhC,wBAAwB;QACxBsB,iBAAiB;QACjBD,cAAc;QACdzC,aAAa;QACb4C,iBAAiB;QACjB2E;MACF,CAAC;MACDE,MAAM,EAAE;QACN9G,YAAY;QACZ0G,gBAAgB;QAChBjE,MAAM;QACNtC,aAAa;QACbM,wBAAwB;QACxBlB,OAAO;QACPiD,cAAc;QACdP,iBAAiB;QACjB2E;MACF;IACF,CAAC;IAED,MAAMG,aAAa,GAAGF,YAAY,CAACvH,MAAM,CAAC;IAC1C,OAAOzB,gBAAgB,CAACyB,MAAM,CAAC,CAAC0H,MAAM,CAACD,aAAa,EAAElE,QAAQ,CAAC;EACjE,CAAC;EAED,MAAMoE,QAAQ,GAAG,MAAAA,CAAA,KAAY;IAC3B,MAAM;MACJrG,MAAM,EAAE;QAAE+B;MAAG;IACf,CAAC,GAAGzD,QAAQ;IAEZ,IAAI4D,kBAAkB,CAACC,OAAO,EAAE;MAC9BtC,wBAAwB,CAAC,KAAK,CAAC;IACjC;IAEA,MAAM5C,gBAAgB,CAACqJ,MAAM,CAACF,MAAM,CAClC;MACEhH,YAAY;MACZyC,MAAM;MACNiE,gBAAgB,EAAE;QAAE/D;MAAG;IACzB,CAAC,EACDE,QACF,CAAC;IAEDtD,OAAO,CAAC4G,IAAI,CAAE,iBAAgBnG,YAAY,CAAC2C,EAAG,EAAC,CAAC;EAClD,CAAC;EAED,MAAMwE,MAAM,GAAGA,CAAA,KAAM;IACnB,IAAIvF,gBAAgB,IAAIkB,kBAAkB,CAACC,OAAO,EAAE;MAClDvD,cAAc,CAACoC,gBAAgB,CAAC;MAChCH,iBAAiB,CAAC,IAAI,CAAC;MACvBhB,wBAAwB,CAAC,IAAI,CAAC;MAC9BwB,iBAAiB,CAAC1D,iBAAiB,CAAC2D,IAAI,CAAC;MACzC,IAAIN,gBAAgB,CAAChB,MAAM,CAACwG,IAAI,EAAE;QAChC7G,YAAY,CAACqB,gBAAgB,CAAChB,MAAM,CAACwG,IAAI,CAAC;MAC5C;IACF;EACF,CAAC;EAED,MAAMC,cAAc,GAAGA,CAAA,KAAM;IAC3BhG,kBAAkB,CAAC,CAACD,eAAe,CAAC;IACpCK,iBAAiB,CAAC,KAAK,CAAC;EAC1B,CAAC;EAED,MAAM6F,uBAAuB,GAAGA,CAAA,KAAM;IACpCjG,kBAAkB,CAAC,KAAK,CAAC;IACzBQ,mBAAmB,CAAC,IAAI,CAAC;EAC3B,CAAC;EAED,MAAM0F,WAAW,GAAGC,cAAc,IAAI;IACpC,MAAMC,eAAe,GAAG;MACtB7G,MAAM,EAAAgF,aAAA,KAAO4B,cAAc;IAC7B,CAAC;IACD3F,mBAAmB,CAAC4F,eAAe,CAAC;EACtC,CAAC;EAED,MAAMC,yBAAyB,GAAG,MAAAA,CAAO;IAAEC,MAAM,EAAE;MAAEC;IAAY;EAAE,CAAC,KAAK;IACvE,MAAMC,eAAe,GAAGD,WAAW,KAAK3J,iBAAiB;IACzD,MAAM6J,WAAW,GAAGpH,iBAAiB,KAAK1C,gBAAgB;IAE1D,MAAM+J,WAAW,GAAGjJ,qBAAqB,CAAC,CAAC+I,eAAe,EAAE,CAACC,WAAW,CAAC;IAEzE,IAAIC,WAAW,EAAE;MACf,OAAOlF,QAAQ,CAACrE,mBAAmB,EAAE;QACnCwJ,UAAU,EAAE,SAAS;QACrBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;IAEA,IAAInJ,qBAAqB,CAAC+I,eAAe,EAAErH,qBAAqB,CAAC,EAAE;MACjE,MAAM0H,gBAAgB,GAAG,MAAM3B,QAAQ,CAAC,CAAC;MAEzC,IAAI2B,gBAAgB,KAAK5J,KAAK,EAAE;QAC9B,OAAOuE,QAAQ,CAAE,uBAAsB,EAAE;UACvCmF,UAAU,EAAE1J,KAAK;UACjB2J,WAAW,EAAE;QACf,CAAC,CAAC;MACJ;IACF;IAEA,OAAOpK,gBAAgB,CAACsK,MAAM,CAACC,cAAc,CAC3C;MACElI,UAAU;MACVuC,MAAM;MACN9B,kBAAkB;MAClBX,YAAY;MACZ4H,WAAW;MACXlI;IACF,CAAC,EACDmD,QACF,CAAC;EACH,CAAC;EAED,MAAMwF,SAAS,GAAGvJ,qBAAqB,CAACI,QAAQ,EAAEgC,WAAW,CAAC;EAE9D,MAAMoH,gBAAgB,GAAG3J,WAAW,CAACO,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEsB,iBAAiB,CAAC,GAC7E,MAAM9B,cAAc,CAACgF,UAAU,CAAC,GAChCnE,SAAS;EAEb,MAAM8I,QAAQ,GAAGrJ,QAAQ,IAAIA,QAAQ,CAAC0B,MAAM,IAAI1B,QAAQ,CAAC0B,MAAM,CAACwG,IAAI;EAEpE,MAAMoB,gBAAgB,GAAG1J,qBAAqB,CAACyD,WAAW,EAAE,CAAC3E,WAAW,CAACkC,UAAU,CAAC,CAAC;EACrF,MAAM2I,kBAAkB,GAAGjI,qBAAqB,IAAIgI,gBAAgB;EAEpE,MAAME,oBAAoB,GAAG5J,qBAAqB,CAACM,MAAM,EAAEF,QAAQ,CAAC;EACpE,MAAMyJ,mBAAmB,GACvB,CAAAvJ,MAAM,aAANA,MAAM,wBAAAO,kBAAA,GAANP,MAAM,CAAEgE,UAAU,cAAAzD,kBAAA,uBAAlBA,kBAAA,CAAoB2C,QAAQ,CAAC,oCAAoC,CAAC,MAClElD,MAAM,aAANA,MAAM,wBAAAQ,mBAAA,GAANR,MAAM,CAAEgE,UAAU,cAAAxD,mBAAA,uBAAlBA,mBAAA,CAAoB0C,QAAQ,CAAC,2BAA2B,CAAC;EAE3D,oBACE5F,KAAA,CAAAkM,aAAA;IAAKC,SAAS,EAAC;EAAM,gBACnBnM,KAAA,CAAAkM,aAAA,CAACnK,YAAY;IACXyB,UAAU,EAAEA,UAAW;IACvBE,gBAAgB,EAAEA,gBAAiB;IACnCE,SAAS,EAAEA,SAAU;IACrBiI,QAAQ,EAAEA,QAAS;IACnBhC,QAAQ,EAAEA,QAAS;IACnBmB,yBAAyB,EAAEA,yBAA0B;IACrDlH,qBAAqB,EAAEA,qBAAsB;IAC7CM,qBAAqB,EAAEA,qBAAsB;IAC7CE,qBAAqB,EAAEA,qBAAsB;IAC7C8H,eAAe,EAAEzH,kBAAmB;IACpC0H,WAAW,EAAE5H,cAAe;IAC5BjC,QAAQ,EAAEA,QAAS;IACnBO,SAAS,EAAE6I,gBAAiB;IAC5BtG,cAAc,EAAEA;EAAe,CAChC,CAAC,eACFtF,KAAA,CAAAkM,aAAA;IAAKC,SAAS,EAAC;EAAuB,gBACpCnM,KAAA,CAAAkM,aAAA;IAAKC,SAAS,EAAC;EAAgC,gBAC7CnM,KAAA,CAAAkM,aAAA,CAAC7L,MAAM;IAACiM,IAAI,EAAEP,kBAAmB;IAACQ,OAAO,EAAE/K;EAAmB,CAAE,CAAC,EAChEmK,SAAS,iBACR3L,KAAA,CAAAkM,aAAA,CAACrL,YAAY;IACX2L,OAAO,EAAE/H,cAAe;IACxBgI,YAAY,EAAElC,QAAS;IACvBmC,QAAQ,EAAElK,QAAQ,CAAC0B,MAAM,CAACwG;EAAK,CAChC,CACF,EACAhG,eAAe,iBACd1E,KAAA,CAAAkM,aAAA,CAACpL,kBAAkB;IACjB0L,OAAO,EAAE5B,uBAAwB;IACjC+B,UAAU,EAAElC,MAAO;IACnBI,WAAW,EAAEA;EAAY,CAC1B,CACF,eAED7K,KAAA,CAAAkM,aAAA;IAAKC,SAAS,EAAC;EAAsB,gBACnCnM,KAAA,CAAAkM,aAAA;IAAKC,SAAS,EAAC;EAAe,gBAC5BnM,KAAA,CAAAkM,aAAA;IAAKC,SAAS,EAAC;EAAS,gBACtBnM,KAAA,CAAAkM,aAAA,CAAC1L,UAAU;IAACoM,OAAO,EAAG,UAAShK,MAAO,WAAW;IAACH,MAAM,EAAEA,MAAO;IAACC,MAAM,EAAEA;EAAO,CAAE,CAAC,eACpF1C,KAAA,CAAAkM,aAAA,CAAC5J,SAAS;IAAC2D,EAAE,EAAExD,MAAM,CAACwD,EAAG;IAACvD,MAAM,EAAEA;EAAO,CAAE,CAAC,eAC5C1C,KAAA,CAAAkM,aAAA,CAAC7K,IAAI;IACHwL,OAAO,EAAEZ,mBAAoB;IAC7Ba,WAAW,EAAEC,KAAK,IAAI;MACpBhH,MAAM,CAACc,UAAU,CAAC;QAChBC,KAAK,EAAEpG,kBAAkB;QACzBqG,IAAI,EAAE;UAAEiG,YAAY,EAAED;QAAM;MAC9B,CAAC,CAAC;MACF5J,eAAe,CAAC4J,KAAK,CAAC;IACxB;EAAE,gBACF/M,KAAA,CAAAkM,aAAA,CAACvL,WAAW;IACVsM,cAAc,EAAEhI,cAAe;IAC/BwC,aAAa,EAAEA,aAAc;IAC7B/E,MAAM,EAAEA,MAAO;IACfqE,IAAI,EAAEb,cAAe;IACrBgH,QAAQ,EAAEnF,kBAAmB;IAC7BjD,cAAc,EAAEA,cAAe;IAC/B6F,cAAc,EAAEA,cAAe;IAC/BvH,UAAU,EAAEA,UAAW;IACvByC,WAAW,EAAEA;EAAY,CAC1B,CACG,CAAC,eACP7F,KAAA,CAAAkM,aAAA,CAAC1L,UAAU;IACToM,OAAO,EAAG,UAAShK,MAAO,cAAc;IACxCH,MAAM,EAAEA,MAAO;IACfC,MAAM,EAAEA;EAAO,CAChB,CACE,CACF,CACF,CACF,CAAC,eAEN1C,KAAA,CAAAkM,aAAA;IAAKC,SAAS,EAAC;EAAuC,GACnDH,oBAAoB,iBACnBhM,KAAA,CAAAkM,aAAA,CAAC9K,gBAAgB;IACfqB,MAAM,EAAEA,MAAO;IACfD,QAAQ,EAAEA,QAAQ,CAAC0B,MAAO;IAC1BxB,MAAM,EAAEA,MAAO;IACfwK,QAAQ,EAAExF;EAAyB,CACpC,CAEA,CACF,CACF,CAAC;AAEV,CAAC;AAEDnF,MAAM,CAAC4K,SAAS,GAAG;EACjB1K,MAAM,EAAElC,SAAS,CAAC6M,MAAM;EACxB1K,MAAM,EAAEnC,SAAS,CAAC6M,MAAM;EACxBzK,aAAa,EAAEpC,SAAS,CAAC6M,MAAM;EAC/BxK,MAAM,EAAErC,SAAS,CAAC8M,MAAM,CAACC,UAAU;EACnCzK,OAAO,EAAEtC,SAAS,CAAC6M,MAAM,CAACE,UAAU;EACpC9K,QAAQ,EAAEjC,SAAS,CAAC6M,MAAM;EAC1BtK,cAAc,EAAEvC,SAAS,CAACgN,IAAI,CAACD,UAAU;EACzCvK,SAAS,EAAExC,SAAS,CAACgN,IAAI;EACzBvK,aAAa,EAAEzC,SAAS,CAACgN,IAAI,CAACD;AAChC,CAAC;AAED/K,MAAM,CAACiL,YAAY,GAAG;EACpB7K,aAAa,EAAE,IAAI;EACnBD,MAAM,EAAE,IAAI;EACZD,MAAM,EAAE,IAAI;EACZD,QAAQ,EAAE,IAAI;EACdO,SAAS,EAAE;AACb,CAAC;AAED,eAAe3C,UAAU,CAACmC,MAAM,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import useCustomSidebarData from '../hooks/useCustomSidebarData';
|
|
4
|
+
import CustomSidebarInfo from '../presentational/CustomSidebarInfo';
|
|
5
|
+
const CustomSibebarInfoContainer = ({
|
|
6
|
+
id,
|
|
7
|
+
schema,
|
|
8
|
+
displayProperties
|
|
9
|
+
}) => {
|
|
10
|
+
const {
|
|
11
|
+
data
|
|
12
|
+
} = useCustomSidebarData({
|
|
13
|
+
id,
|
|
14
|
+
schema,
|
|
15
|
+
displayProperties
|
|
16
|
+
});
|
|
17
|
+
if (!data || !Object.keys(data) || Object.keys(data).length === 0) return null;
|
|
18
|
+
const items = Object.values(data).flatMap(item => Object.values(item));
|
|
19
|
+
return /*#__PURE__*/React.createElement(CustomSidebarInfo, {
|
|
20
|
+
items: items,
|
|
21
|
+
customSidebarInfoKey: displayProperties.key
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
export default CustomSibebarInfoContainer;
|
|
25
|
+
CustomSibebarInfoContainer.propTypes = {
|
|
26
|
+
id: PropTypes.string.isRequired,
|
|
27
|
+
displayProperties: PropTypes.object.isRequired,
|
|
28
|
+
schema: PropTypes.object.isRequired
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=CustomSidebarInfoContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomSidebarInfoContainer.js","names":["PropTypes","React","useCustomSidebarData","CustomSidebarInfo","CustomSibebarInfoContainer","id","schema","displayProperties","data","Object","keys","length","items","values","flatMap","item","createElement","customSidebarInfoKey","key","propTypes","string","isRequired","object"],"sources":["../../../../../../src/components/EntityManager/Entity/SideBarRelations/container/CustomSidebarInfoContainer.js"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport useCustomSidebarData from '../hooks/useCustomSidebarData';\nimport CustomSidebarInfo from '../presentational/CustomSidebarInfo';\n\nconst CustomSibebarInfoContainer = ({ id, schema, displayProperties }) => {\n const { data } = useCustomSidebarData({ id, schema, displayProperties });\n\n if (!data || !Object.keys(data) || Object.keys(data).length === 0) return null;\n\n const items = Object.values(data).flatMap(item => Object.values(item));\n\n return <CustomSidebarInfo items={items} customSidebarInfoKey={displayProperties.key} />;\n};\n\nexport default CustomSibebarInfoContainer;\n\nCustomSibebarInfoContainer.propTypes = {\n id: PropTypes.string.isRequired,\n displayProperties: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired\n};\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAClC,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,oBAAoB,MAAM,+BAA+B;AAChE,OAAOC,iBAAiB,MAAM,qCAAqC;AAEnE,MAAMC,0BAA0B,GAAGA,CAAC;EAAEC,EAAE;EAAEC,MAAM;EAAEC;AAAkB,CAAC,KAAK;EACxE,MAAM;IAAEC;EAAK,CAAC,GAAGN,oBAAoB,CAAC;IAAEG,EAAE;IAAEC,MAAM;IAAEC;EAAkB,CAAC,CAAC;EAExE,IAAI,CAACC,IAAI,IAAI,CAACC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,IAAIC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAE9E,MAAMC,KAAK,GAAGH,MAAM,CAACI,MAAM,CAACL,IAAI,CAAC,CAACM,OAAO,CAACC,IAAI,IAAIN,MAAM,CAACI,MAAM,CAACE,IAAI,CAAC,CAAC;EAEtE,oBAAOd,KAAA,CAAAe,aAAA,CAACb,iBAAiB;IAACS,KAAK,EAAEA,KAAM;IAACK,oBAAoB,EAAEV,iBAAiB,CAACW;EAAI,CAAE,CAAC;AACzF,CAAC;AAED,eAAed,0BAA0B;AAEzCA,0BAA0B,CAACe,SAAS,GAAG;EACrCd,EAAE,EAAEL,SAAS,CAACoB,MAAM,CAACC,UAAU;EAC/Bd,iBAAiB,EAAEP,SAAS,CAACsB,MAAM,CAACD,UAAU;EAC9Cf,MAAM,EAAEN,SAAS,CAACsB,MAAM,CAACD;AAC3B,CAAC"}
|
package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { gql } from '@apollo/client';
|
|
2
|
+
import { BlazeError } from '@blaze-cms/core-errors';
|
|
3
|
+
export default function buildDynamicQuery({
|
|
4
|
+
id,
|
|
5
|
+
schema,
|
|
6
|
+
displayProperties
|
|
7
|
+
}) {
|
|
8
|
+
if (!schema || !schema.actions || !schema.actions.get || !schema.properties) {
|
|
9
|
+
throw new BlazeError('DataEntity query requires get action, properties and fields from entity schema');
|
|
10
|
+
}
|
|
11
|
+
if (displayProperties.adminMainInfoProperty && Array.isArray(displayProperties.adminMainInfoProperty)) {
|
|
12
|
+
const fields = displayProperties.adminMainInfoProperty.map(infoProperty => `${infoProperty} {
|
|
13
|
+
label
|
|
14
|
+
value
|
|
15
|
+
}`);
|
|
16
|
+
return gql`query getInfoBoxData($id: String!){
|
|
17
|
+
${schema.actions.get}( id: $id ) {
|
|
18
|
+
id
|
|
19
|
+
${fields.map(field => field)}
|
|
20
|
+
__typename
|
|
21
|
+
}
|
|
22
|
+
}`;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=build-dynamic-query.js.map
|
package/lib-es/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-dynamic-query.js","names":["gql","BlazeError","buildDynamicQuery","id","schema","displayProperties","actions","get","properties","adminMainInfoProperty","Array","isArray","fields","map","infoProperty","field"],"sources":["../../../../../../src/components/EntityManager/Entity/SideBarRelations/helpers/build-dynamic-query.js"],"sourcesContent":["import { gql } from '@apollo/client';\nimport { BlazeError } from '@blaze-cms/core-errors';\n\nexport default function buildDynamicQuery({ id, schema, displayProperties }) {\n if (!schema || !schema.actions || !schema.actions.get || !schema.properties) {\n throw new BlazeError(\n 'DataEntity query requires get action, properties and fields from entity schema'\n );\n }\n\n if (\n displayProperties.adminMainInfoProperty &&\n Array.isArray(displayProperties.adminMainInfoProperty)\n ) {\n const fields = displayProperties.adminMainInfoProperty.map(\n infoProperty =>\n `${infoProperty} {\n label\n value\n }`\n );\n\n return gql`query getInfoBoxData($id: String!){\n ${schema.actions.get}( id: $id ) {\n id\n ${fields.map(field => field)}\n __typename\n }\n }`;\n }\n\n return null;\n}\n"],"mappings":"AAAA,SAASA,GAAG,QAAQ,gBAAgB;AACpC,SAASC,UAAU,QAAQ,wBAAwB;AAEnD,eAAe,SAASC,iBAAiBA,CAAC;EAAEC,EAAE;EAAEC,MAAM;EAAEC;AAAkB,CAAC,EAAE;EAC3E,IAAI,CAACD,MAAM,IAAI,CAACA,MAAM,CAACE,OAAO,IAAI,CAACF,MAAM,CAACE,OAAO,CAACC,GAAG,IAAI,CAACH,MAAM,CAACI,UAAU,EAAE;IAC3E,MAAM,IAAIP,UAAU,CAClB,gFACF,CAAC;EACH;EAEA,IACEI,iBAAiB,CAACI,qBAAqB,IACvCC,KAAK,CAACC,OAAO,CAACN,iBAAiB,CAACI,qBAAqB,CAAC,EACtD;IACA,MAAMG,MAAM,GAAGP,iBAAiB,CAACI,qBAAqB,CAACI,GAAG,CACxDC,YAAY,IACT,GAAEA,YAAa;AACxB;AACA;AACA,QACI,CAAC;IAED,OAAOd,GAAI;AACf,QAAQI,MAAM,CAACE,OAAO,CAACC,GAAI;AAC3B;AACA,SAASK,MAAM,CAACC,GAAG,CAACE,KAAK,IAAIA,KAAK,CAAE;AACpC;AACA;AACA,MAAM;EACJ;EAEA,OAAO,IAAI;AACb"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import ProptTypes from 'prop-types';
|
|
2
|
+
import { useQuery, gql } from '@apollo/client';
|
|
3
|
+
import buildDynamicQuery from '../helpers/build-dynamic-query';
|
|
4
|
+
const useCustomSidebarData = ({
|
|
5
|
+
id,
|
|
6
|
+
schema,
|
|
7
|
+
displayProperties
|
|
8
|
+
}) => {
|
|
9
|
+
const query = buildDynamicQuery({
|
|
10
|
+
id,
|
|
11
|
+
schema,
|
|
12
|
+
displayProperties
|
|
13
|
+
});
|
|
14
|
+
const customSidebarInfoQuery = query || gql`
|
|
15
|
+
query {
|
|
16
|
+
__typename
|
|
17
|
+
}
|
|
18
|
+
`;
|
|
19
|
+
const {
|
|
20
|
+
data = {},
|
|
21
|
+
loading,
|
|
22
|
+
error
|
|
23
|
+
} = useQuery(customSidebarInfoQuery, {
|
|
24
|
+
variables: {
|
|
25
|
+
id
|
|
26
|
+
},
|
|
27
|
+
skip: !query
|
|
28
|
+
});
|
|
29
|
+
return {
|
|
30
|
+
data: data.__typename !== 'Query' ? data : null,
|
|
31
|
+
loading,
|
|
32
|
+
error
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export default useCustomSidebarData;
|
|
36
|
+
useCustomSidebarData.propTypes = {
|
|
37
|
+
displayProperties: ProptTypes.object.isRequired
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=useCustomSidebarData.js.map
|
package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCustomSidebarData.js","names":["ProptTypes","useQuery","gql","buildDynamicQuery","useCustomSidebarData","id","schema","displayProperties","query","customSidebarInfoQuery","data","loading","error","variables","skip","__typename","propTypes","object","isRequired"],"sources":["../../../../../../src/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js"],"sourcesContent":["import ProptTypes from 'prop-types';\nimport { useQuery, gql } from '@apollo/client';\nimport buildDynamicQuery from '../helpers/build-dynamic-query';\n\nconst useCustomSidebarData = ({ id, schema, displayProperties }) => {\n const query = buildDynamicQuery({ id, schema, displayProperties });\n\n const customSidebarInfoQuery =\n query ||\n gql`\n query {\n __typename\n }\n `;\n\n const { data = {}, loading, error } = useQuery(customSidebarInfoQuery, {\n variables: { id },\n skip: !query\n });\n\n return { data: data.__typename !== 'Query' ? data : null, loading, error };\n};\n\nexport default useCustomSidebarData;\n\nuseCustomSidebarData.propTypes = {\n displayProperties: ProptTypes.object.isRequired\n};\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,EAAEC,GAAG,QAAQ,gBAAgB;AAC9C,OAAOC,iBAAiB,MAAM,gCAAgC;AAE9D,MAAMC,oBAAoB,GAAGA,CAAC;EAAEC,EAAE;EAAEC,MAAM;EAAEC;AAAkB,CAAC,KAAK;EAClE,MAAMC,KAAK,GAAGL,iBAAiB,CAAC;IAAEE,EAAE;IAAEC,MAAM;IAAEC;EAAkB,CAAC,CAAC;EAElE,MAAME,sBAAsB,GAC1BD,KAAK,IACLN,GAAI;AACR;AACA;AACA;AACA,KAAK;EAEH,MAAM;IAAEQ,IAAI,GAAG,CAAC,CAAC;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGX,QAAQ,CAACQ,sBAAsB,EAAE;IACrEI,SAAS,EAAE;MAAER;IAAG,CAAC;IACjBS,IAAI,EAAE,CAACN;EACT,CAAC,CAAC;EAEF,OAAO;IAAEE,IAAI,EAAEA,IAAI,CAACK,UAAU,KAAK,OAAO,GAAGL,IAAI,GAAG,IAAI;IAAEC,OAAO;IAAEC;EAAM,CAAC;AAC5E,CAAC;AAED,eAAeR,oBAAoB;AAEnCA,oBAAoB,CAACY,SAAS,GAAG;EAC/BT,iBAAiB,EAAEP,UAAU,CAACiB,MAAM,CAACC;AACvC,CAAC"}
|