@blaze-cms/plugin-data-ui 0.146.0-node18-core-styles-tooltips.45 → 0.146.0-node18-core-styles-tooltips.46
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 +8 -0
- package/lib-es/components/EntityDataListing/EntityDataListing.js +33 -0
- package/lib-es/components/EntityDataListing/EntityDataListing.js.map +1 -0
- package/lib-es/components/EntityDataListing/index.js +3 -0
- package/lib-es/components/EntityDataListing/index.js.map +1 -0
- 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 +452 -0
- package/lib-es/components/EntityManager/Entity/Entity.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js +103 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/EntityHeader.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js +47 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/HeaderPreviewButton.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/HeaderPreviewButton/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/EntityHeader/index.js.map +1 -0
- 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 +29 -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 +49 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/hooks/useCustomSidebarData.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js +133 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js +36 -0
- package/lib-es/components/EntityManager/Entity/SideBarRelations/presentational/CustomSidebarInfo.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/submit.js +46 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/create/submit.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/delete.js +32 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/delete.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/delete/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/index.js +12 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/publish.js +39 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/shared/publish.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/index.js +5 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/index.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/submit.js +53 -0
- package/lib-es/components/EntityManager/Entity/actions-handlers/update/submit.js.map +1 -0
- package/lib-es/components/EntityManager/Entity/index.js +3 -0
- package/lib-es/components/EntityManager/Entity/index.js.map +1 -0
- package/lib-es/components/EntityManager/EntityManager.js +133 -0
- package/lib-es/components/EntityManager/EntityManager.js.map +1 -0
- package/lib-es/components/EntityManager/index.js +3 -0
- package/lib-es/components/EntityManager/index.js.map +1 -0
- package/lib-es/components/EntityManager/utils/RecordEditContext/index.js +6 -0
- package/lib-es/components/EntityManager/utils/RecordEditContext/index.js.map +1 -0
- package/lib-es/components/EntityManager/utils/data-mappers.js +55 -0
- package/lib-es/components/EntityManager/utils/data-mappers.js.map +1 -0
- package/lib-es/components/EntityManager/utils/entity.js +70 -0
- package/lib-es/components/EntityManager/utils/entity.js.map +1 -0
- package/lib-es/components/EntityManager/utils/entityAvailableActions.js +56 -0
- package/lib-es/components/EntityManager/utils/entityAvailableActions.js.map +1 -0
- package/lib-es/components/EntityManager/utils/is-form-empty.js +9 -0
- package/lib-es/components/EntityManager/utils/is-form-empty.js.map +1 -0
- package/lib-es/components/EntityManager/utils/query.js +23 -0
- package/lib-es/components/EntityManager/utils/query.js.map +1 -0
- package/lib-es/components/InfoBoxes/InfoBoxTooltip.js +36 -0
- package/lib-es/components/InfoBoxes/InfoBoxTooltip.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 +38 -0
- package/lib-es/components/InfoBoxes/container/InfoBoxContainer.js.map +1 -0
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js +28 -0
- package/lib-es/components/InfoBoxes/helpers/build-dynamic-query.js.map +1 -0
- package/lib-es/components/InfoBoxes/hooks/useData.js +39 -0
- package/lib-es/components/InfoBoxes/hooks/useData.js.map +1 -0
- package/lib-es/components/InfoBoxes/hooks/useInfoBox.js +17 -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 +40 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBox.js.map +1 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxLabel.js +12 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxLabel.js.map +1 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxValue.js +30 -0
- package/lib-es/components/InfoBoxes/presentational/InfoBoxValue.js.map +1 -0
- package/lib-es/components/ListingTable/ListingTable.js +208 -0
- package/lib-es/components/ListingTable/ListingTable.js.map +1 -0
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js +72 -0
- package/lib-es/components/ListingTable/ListingTableContent/ListingTableContent.js.map +1 -0
- package/lib-es/components/ListingTable/ListingTableContent/index.js +3 -0
- package/lib-es/components/ListingTable/ListingTableContent/index.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js +207 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchContainer.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js +40 -0
- package/lib-es/components/ListingTable/SearchFilter/SearchFilter.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/helpers.js +96 -0
- package/lib-es/components/ListingTable/SearchFilter/helpers.js.map +1 -0
- package/lib-es/components/ListingTable/SearchFilter/querys.js +8 -0
- package/lib-es/components/ListingTable/SearchFilter/querys.js.map +1 -0
- package/lib-es/components/ListingTable/TableActions/TableActions.js +34 -0
- package/lib-es/components/ListingTable/TableActions/TableActions.js.map +1 -0
- package/lib-es/components/ListingTable/TableActions/index.js +3 -0
- package/lib-es/components/ListingTable/TableActions/index.js.map +1 -0
- package/lib-es/components/ListingTable/index.js +3 -0
- package/lib-es/components/ListingTable/index.js.map +1 -0
- package/lib-es/components/ListingTable/mappers/populate-rows.js +140 -0
- package/lib-es/components/ListingTable/mappers/populate-rows.js.map +1 -0
- package/lib-es/components/ListingTable/service/index.js +87 -0
- package/lib-es/components/ListingTable/service/index.js.map +1 -0
- package/lib-es/components/Tabs/index.js +40 -0
- package/lib-es/components/Tabs/index.js.map +1 -0
- package/lib-es/components/hooks/useCallbackDebounce.js +12 -0
- package/lib-es/components/hooks/useCallbackDebounce.js.map +1 -0
- package/lib-es/constants.js +42 -0
- package/lib-es/constants.js.map +1 -0
- package/lib-es/icons/ContentIcon.js +80 -0
- package/lib-es/icons/ContentIcon.js.map +1 -0
- package/lib-es/icons/SettingsIcon.js +36 -0
- package/lib-es/icons/SettingsIcon.js.map +1 -0
- package/lib-es/icons/TaxonomyIcon.js +60 -0
- package/lib-es/icons/TaxonomyIcon.js.map +1 -0
- package/lib-es/icons/UsersIcon.js +33 -0
- package/lib-es/icons/UsersIcon.js.map +1 -0
- package/lib-es/icons/index.js +6 -0
- package/lib-es/icons/index.js.map +1 -0
- package/lib-es/index.js +84 -0
- package/lib-es/index.js.map +1 -0
- package/lib-es/utils/add-content-menu-items.js +72 -0
- package/lib-es/utils/add-content-menu-items.js.map +1 -0
- package/lib-es/utils/build-create-entity-mutation.js +21 -0
- package/lib-es/utils/build-create-entity-mutation.js.map +1 -0
- package/lib-es/utils/build-delete-entity-mutation.js +18 -0
- package/lib-es/utils/build-delete-entity-mutation.js.map +1 -0
- package/lib-es/utils/build-listing-query.js +28 -0
- package/lib-es/utils/build-listing-query.js.map +1 -0
- package/lib-es/utils/build-update-data-query.js +24 -0
- package/lib-es/utils/build-update-data-query.js.map +1 -0
- package/lib-es/utils/build-update-publish-unpublish-mutation.js +22 -0
- package/lib-es/utils/build-update-publish-unpublish-mutation.js.map +1 -0
- package/lib-es/utils/get-default-query-params.js +17 -0
- package/lib-es/utils/get-default-query-params.js.map +1 -0
- package/lib-es/utils/hoc/withContext.js +8 -0
- package/lib-es/utils/hoc/withContext.js.map +1 -0
- package/lib-es/utils/hooks/useToggle.js +8 -0
- package/lib-es/utils/hooks/useToggle.js.map +1 -0
- package/lib-es/utils/index.js +3 -0
- package/lib-es/utils/index.js.map +1 -0
- package/package.json +10 -10
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.146.0-node18-core-styles-tooltips.46](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-core-styles-tooltips.45...v0.146.0-node18-core-styles-tooltips.46) (2026-01-16)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/plugin-data-ui
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [0.146.0-node18-core-styles-tooltips.45](https://github.com/thebyte9/blaze/compare/v0.146.0-node18-core-styles-tooltips.44...v0.146.0-node18-core-styles-tooltips.45) (2026-01-15)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @blaze-cms/plugin-data-ui
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useQuery } from '@apollo/client';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import { getQuery } from '@blaze-cms/admin-ui-utils';
|
|
5
|
+
import ListingTable from '../ListingTable/ListingTable';
|
|
6
|
+
import { withContext } from '../../utils/hoc/withContext';
|
|
7
|
+
const EntityDataListing = ({
|
|
8
|
+
match
|
|
9
|
+
}) => {
|
|
10
|
+
const {
|
|
11
|
+
params: {
|
|
12
|
+
entityIdentifier: identifier
|
|
13
|
+
}
|
|
14
|
+
} = match;
|
|
15
|
+
const {
|
|
16
|
+
data: {
|
|
17
|
+
getEntitySchemas = []
|
|
18
|
+
} = {}
|
|
19
|
+
} = useQuery(getQuery('GET_ENTITY_SCHEMA'), {
|
|
20
|
+
variables: {
|
|
21
|
+
identifier
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
if (!getEntitySchemas.length) return '';
|
|
25
|
+
return /*#__PURE__*/React.createElement(ListingTable, {
|
|
26
|
+
entitySchema: getEntitySchemas[0]
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
EntityDataListing.propTypes = {
|
|
30
|
+
match: PropTypes.object.isRequired
|
|
31
|
+
};
|
|
32
|
+
export default withContext(EntityDataListing);
|
|
33
|
+
//# sourceMappingURL=EntityDataListing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["EntityDataListing"],"sources":["../../../src/components/EntityDataListing/index.js"],"sourcesContent":["import EntityDataListing from './EntityDataListing';\n\nexport default EntityDataListing;\n"],"mappings":"AAAA,OAAOA,iBAAiB,MAAM,qBAAqB;AAEnD,eAAeA,iBAAiB","ignoreList":[]}
|
|
@@ -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\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;IAEhD,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","ignoreList":[]}
|
|
@@ -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","ignoreList":[]}
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
const _excluded = ["isValid", "fields", "isNewValueSet", "valuesChecked", "currentField", "value"];
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
/* eslint-disable no-undef */
|
|
7
|
+
import React, { useEffect, useState, useRef } from 'react';
|
|
8
|
+
import { withRouter, Prompt } from 'react-router-dom';
|
|
9
|
+
import { useApolloClient } from '@apollo/client';
|
|
10
|
+
import PropTypes from 'prop-types';
|
|
11
|
+
import { RenderHook } from '@blaze-cms/plugin-render-hooks-ui';
|
|
12
|
+
import { getQuery } from '@blaze-cms/admin-ui-utils';
|
|
13
|
+
import { FormBuilder, parseFormValues } from '@blaze-cms/react-form-builder';
|
|
14
|
+
import { DeleteAction, CopyDataFromAction } from '@blaze-cms/admin';
|
|
15
|
+
import { useToasts } from '@blaze-react/toaster';
|
|
16
|
+
import cloneDeep from 'lodash.clonedeep';
|
|
17
|
+
import { getPageName } from '../utils/data-mappers';
|
|
18
|
+
import availableActions from './actions-handlers';
|
|
19
|
+
import SideBarRelations from './SideBarRelations';
|
|
20
|
+
import useCallbackDebounce from '../../hooks/useCallbackDebounce';
|
|
21
|
+
import { 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 } from '../../../constants';
|
|
22
|
+
import EntityHeader from './EntityHeader';
|
|
23
|
+
import { validateSideBarRelations, canViewPage, onViewUrlClick, getUpdatedFormValues, checkFulfilConditions } from '../utils/entity';
|
|
24
|
+
import useToggle from '../../../utils/hooks/useToggle';
|
|
25
|
+
import InfoBoxes from '../../InfoBoxes/InfoBoxes';
|
|
26
|
+
import { RecordEditContextProvider } from '../utils/RecordEditContext';
|
|
27
|
+
const Entity = ({
|
|
28
|
+
formData,
|
|
29
|
+
entity,
|
|
30
|
+
schema,
|
|
31
|
+
previousQuery,
|
|
32
|
+
action,
|
|
33
|
+
history,
|
|
34
|
+
updateFormData,
|
|
35
|
+
onViewUrl,
|
|
36
|
+
refetchRecord
|
|
37
|
+
}) => {
|
|
38
|
+
var _formData$values;
|
|
39
|
+
const [formValues, setFormValues] = useState(null);
|
|
40
|
+
const [entitySchema, setEntitySchema] = useState(null);
|
|
41
|
+
const [entityData, setEntityData] = useState(null);
|
|
42
|
+
const [entityIdentifier, setEntityIdentifier] = useState(null);
|
|
43
|
+
const [pageTitle, setPageTitle] = useState('');
|
|
44
|
+
const [isSaveButtonAvailable, setIsSaveButtonAvailable] = useState(false);
|
|
45
|
+
const [entityIsPublished, setEntityIsPublish] = useState(formData && formData.values && formData.values.status);
|
|
46
|
+
const [isEnablePublishButton, setEnablePublishButton] = useState(false);
|
|
47
|
+
const [isEnablePreviewButton, setEnablePreviewButton] = useState(false);
|
|
48
|
+
const [modalStatus, setModalStatus] = useToggle(false);
|
|
49
|
+
const [copyModalStatus, setCopyModalStatus] = useToggle(false);
|
|
50
|
+
const [pageBuilderTemplateStatus, setPageBuilderTemplateStatus] = useState(true);
|
|
51
|
+
const [shouldCopyData, setShouldCopyData] = useState(false);
|
|
52
|
+
const [isFormValid, setIsFormValid] = useState(false);
|
|
53
|
+
const [formDataFromCopy, setFormDataFromCopy] = useState(null);
|
|
54
|
+
const [newUpdatedDate, setNewUpdatedDate] = useState(null);
|
|
55
|
+
const [saveButtonText, setSaveButtonText] = useState(SAVE_BUTTON_TEXTS.save);
|
|
56
|
+
const [externalUpdateTime, setExternalUpdateTime] = useState(null);
|
|
57
|
+
const [suppressPrompt, setSuppressPrompt] = useState(false);
|
|
58
|
+
const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);
|
|
59
|
+
const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);
|
|
60
|
+
const isCreatePage = history.location.pathname.includes('create');
|
|
61
|
+
const [isNewEntity, setIsNewEntity] = useState(isCreatePage);
|
|
62
|
+
const client = useApolloClient();
|
|
63
|
+
const shouldUpdateState = !entityIdentifier || checkFulfilConditions(entity, schema, previousQuery, !entityData) || entityData && entityData.id !== entity.id;
|
|
64
|
+
const clonedFormData = cloneDeep(formData);
|
|
65
|
+
const {
|
|
66
|
+
addToast
|
|
67
|
+
} = useToasts();
|
|
68
|
+
|
|
69
|
+
// Here's how we'll keep track of our component's mounted state
|
|
70
|
+
const componentIsMounted = useRef(true);
|
|
71
|
+
const {
|
|
72
|
+
displayProperties: {
|
|
73
|
+
saveOnChange = false
|
|
74
|
+
}
|
|
75
|
+
} = schema;
|
|
76
|
+
useCallbackDebounce(() => {
|
|
77
|
+
isSaveButtonAvailable && onSubmit();
|
|
78
|
+
}, 500, [isSaveButtonAvailable], !saveOnChange);
|
|
79
|
+
useEffect(() => () => {
|
|
80
|
+
componentIsMounted.current = false;
|
|
81
|
+
}, []); // Using an empty dependency array ensures this only runs on unmount
|
|
82
|
+
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
if (shouldUpdateState) {
|
|
85
|
+
setSaveButtonText(SAVE_BUTTON_TEXTS.save);
|
|
86
|
+
setEntityData(entity);
|
|
87
|
+
setPageTitle(getPageName(schema.displayProperties, entity));
|
|
88
|
+
setEntityIsPublish(entity.status);
|
|
89
|
+
setEntitySchema(schema);
|
|
90
|
+
setEnablePublishButton(schema.actions.publish);
|
|
91
|
+
setEntityIdentifier(schema.identifier);
|
|
92
|
+
setEnablePreviewButton(!!schema.interfaces.includes(PREVIEW_INTERFACE));
|
|
93
|
+
}
|
|
94
|
+
if (formData && pageBuilderTemplateStatus) {
|
|
95
|
+
const isPageBuilderTemplateSet = !!formData.values.pageBuilderTemplateId;
|
|
96
|
+
client.writeQuery({
|
|
97
|
+
query: getQuery('GET_PB_TEMPLATE_STATUS'),
|
|
98
|
+
data: {
|
|
99
|
+
pageBuilderTemplateSet: isPageBuilderTemplateSet,
|
|
100
|
+
pageBuilderTemplateId: formData.values.pageBuilderTemplateId || ''
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (schema) {
|
|
105
|
+
client.writeQuery({
|
|
106
|
+
query: getQuery('GET_CURRENT_ENTITY'),
|
|
107
|
+
data: {
|
|
108
|
+
currentEntity: schema.id,
|
|
109
|
+
currentItemId: entity ? entity.id : null
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}, [client, entity, entityData, formData, formValues, pageBuilderTemplateStatus, previousQuery, schema, shouldUpdateState]);
|
|
114
|
+
const getFullUrl = async () => {
|
|
115
|
+
const query = getQuery('GET_ENTITY_URL');
|
|
116
|
+
const {
|
|
117
|
+
data: {
|
|
118
|
+
getEntityUrl = ''
|
|
119
|
+
} = {}
|
|
120
|
+
} = await client.query({
|
|
121
|
+
query,
|
|
122
|
+
variables: {
|
|
123
|
+
itemId: entity.id,
|
|
124
|
+
itemEntity: schema.id,
|
|
125
|
+
fullUrl: true
|
|
126
|
+
},
|
|
127
|
+
fetchPolicy: 'network-only'
|
|
128
|
+
});
|
|
129
|
+
return getEntityUrl;
|
|
130
|
+
};
|
|
131
|
+
const getFormValues = values => {
|
|
132
|
+
if (componentIsMounted.current) {
|
|
133
|
+
setFormValues(values);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const onChangeSideBarRelations = ({
|
|
137
|
+
id,
|
|
138
|
+
value
|
|
139
|
+
}, requiredChildField) => {
|
|
140
|
+
const updatedFormValues = getUpdatedFormValues({
|
|
141
|
+
id,
|
|
142
|
+
value,
|
|
143
|
+
requiredChildField,
|
|
144
|
+
formValues
|
|
145
|
+
});
|
|
146
|
+
const shouldActiveSaveButton = validateSideBarRelations(updatedFormValues, requiredChildField);
|
|
147
|
+
if (isFormValid && shouldActiveSaveButton && componentIsMounted.current) {
|
|
148
|
+
setIsSaveButtonAvailable(true);
|
|
149
|
+
setSaveButtonText(SAVE_BUTTON_TEXTS.save);
|
|
150
|
+
} else if (componentIsMounted.current) {
|
|
151
|
+
setIsSaveButtonAvailable(false);
|
|
152
|
+
}
|
|
153
|
+
if (componentIsMounted.current) {
|
|
154
|
+
setFormValues(updatedFormValues);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
const onChangeFormValues = async _ref => {
|
|
158
|
+
let {
|
|
159
|
+
isValid,
|
|
160
|
+
fields,
|
|
161
|
+
isNewValueSet,
|
|
162
|
+
valuesChecked,
|
|
163
|
+
currentField,
|
|
164
|
+
value: fieldValue
|
|
165
|
+
} = _ref,
|
|
166
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
167
|
+
let updatedFormValues = valuesChecked ? valuesChecked.slice() : [];
|
|
168
|
+
if (currentField === PAGE_BUILDER_TEMPLATE_FIELD_ID) {
|
|
169
|
+
const pageBuilderTemplateId = fieldValue;
|
|
170
|
+
client.writeQuery({
|
|
171
|
+
query: getQuery('GET_PB_TEMPLATE_STATUS'),
|
|
172
|
+
data: {
|
|
173
|
+
pageBuilderTemplateSet: !!pageBuilderTemplateId,
|
|
174
|
+
pageBuilderTemplateId
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
if (componentIsMounted.current) {
|
|
178
|
+
setPageBuilderTemplateStatus(false);
|
|
179
|
+
}
|
|
180
|
+
const pageBuilder = updatedFormValues.filter(formValue => formValue.id === PAGE_BUILDER_FIELD_ID);
|
|
181
|
+
if (pageBuilderTemplateId) {
|
|
182
|
+
const {
|
|
183
|
+
data = {}
|
|
184
|
+
} = await client.query({
|
|
185
|
+
query: getQuery('MERGE_PB_TEMPLATE_CHANGES'),
|
|
186
|
+
variables: {
|
|
187
|
+
parent: {
|
|
188
|
+
pageBuilder: pageBuilder[0].value,
|
|
189
|
+
pageBuilderTemplateId
|
|
190
|
+
},
|
|
191
|
+
entityIdentifier
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
if (data && data.mergePageBuilderTemplateChanges) {
|
|
195
|
+
updatedFormValues = updatedFormValues.map(updatedFormValue => {
|
|
196
|
+
if (updatedFormValue.id === PAGE_BUILDER_FIELD_ID) {
|
|
197
|
+
return _objectSpread(_objectSpread({}, updatedFormValue), {}, {
|
|
198
|
+
value: data.mergePageBuilderTemplateChanges
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
return updatedFormValue;
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const itemsToAdd = [];
|
|
207
|
+
if (formValues && formValues.length > updatedFormValues.length) {
|
|
208
|
+
[...updatedFormValues, ...formValues].forEach(item => {
|
|
209
|
+
const index = updatedFormValues.findIndex(value => value.id === item.id);
|
|
210
|
+
if (index === -1) {
|
|
211
|
+
itemsToAdd.push(item);
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
const [updatedEntity = null] = fields.filter(({
|
|
216
|
+
id
|
|
217
|
+
}) => id === 'name');
|
|
218
|
+
updatedEntity && setPageTitle(updatedEntity.value);
|
|
219
|
+
const isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;
|
|
220
|
+
if (componentIsMounted.current) {
|
|
221
|
+
setIsFormValid(isValid);
|
|
222
|
+
}
|
|
223
|
+
if (isValid && isNewValueSet && componentIsMounted.current) {
|
|
224
|
+
setIsSaveButtonAvailable(true);
|
|
225
|
+
setSaveButtonText(SAVE_BUTTON_TEXTS.save);
|
|
226
|
+
}
|
|
227
|
+
if (isNotValidOrNotNewValueSet && componentIsMounted.current) {
|
|
228
|
+
setIsSaveButtonAvailable(false);
|
|
229
|
+
}
|
|
230
|
+
if (componentIsMounted.current) {
|
|
231
|
+
setFormValues([...updatedFormValues, ...itemsToAdd]);
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
const onSubmit = event => {
|
|
235
|
+
event && event.preventDefault();
|
|
236
|
+
if (!isSaveButtonAvailable) return null;
|
|
237
|
+
if (isCreatePage) {
|
|
238
|
+
setSuppressPrompt(true);
|
|
239
|
+
}
|
|
240
|
+
const parsedFormValues = parseFormValues(formValues);
|
|
241
|
+
const updatedFormValues = newUpdatedDate ? _objectSpread(_objectSpread({}, formData.values), {}, {
|
|
242
|
+
update: newUpdatedDate
|
|
243
|
+
}) : _objectSpread({}, formData.values);
|
|
244
|
+
const handleUpdateFormData = () => updateFormData({
|
|
245
|
+
values: _objectSpread(_objectSpread({}, updatedFormValues), parsedFormValues)
|
|
246
|
+
}, true);
|
|
247
|
+
const submitParams = {
|
|
248
|
+
update: {
|
|
249
|
+
entitySchema,
|
|
250
|
+
entityData,
|
|
251
|
+
parsedFormValues,
|
|
252
|
+
client,
|
|
253
|
+
setIsSaveButtonAvailable,
|
|
254
|
+
setNewUpdatedDate,
|
|
255
|
+
newUpdatedDate,
|
|
256
|
+
previousQuery,
|
|
257
|
+
setSaveButtonText,
|
|
258
|
+
handleUpdateFormData
|
|
259
|
+
},
|
|
260
|
+
create: {
|
|
261
|
+
entitySchema,
|
|
262
|
+
parsedFormValues,
|
|
263
|
+
client,
|
|
264
|
+
setEntityData,
|
|
265
|
+
setIsSaveButtonAvailable,
|
|
266
|
+
history,
|
|
267
|
+
setIsNewEntity,
|
|
268
|
+
setSaveButtonText,
|
|
269
|
+
handleUpdateFormData
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
const currentAction = submitParams[action];
|
|
273
|
+
return availableActions[action].submit(currentAction, addToast);
|
|
274
|
+
};
|
|
275
|
+
const onDelete = async () => {
|
|
276
|
+
const {
|
|
277
|
+
values: {
|
|
278
|
+
id
|
|
279
|
+
}
|
|
280
|
+
} = formData;
|
|
281
|
+
if (componentIsMounted.current) {
|
|
282
|
+
setIsSaveButtonAvailable(false);
|
|
283
|
+
}
|
|
284
|
+
await availableActions.delete.submit({
|
|
285
|
+
entitySchema,
|
|
286
|
+
client,
|
|
287
|
+
parsedFormValues: {
|
|
288
|
+
id
|
|
289
|
+
}
|
|
290
|
+
}, addToast);
|
|
291
|
+
history.push(`/data-listing/${entitySchema.id}`);
|
|
292
|
+
};
|
|
293
|
+
const onCopy = () => {
|
|
294
|
+
if (formDataFromCopy && componentIsMounted.current) {
|
|
295
|
+
updateFormData(formDataFromCopy);
|
|
296
|
+
setShouldCopyData(true);
|
|
297
|
+
setIsSaveButtonAvailable(true);
|
|
298
|
+
setSaveButtonText(SAVE_BUTTON_TEXTS.save);
|
|
299
|
+
if (formDataFromCopy.values.name) {
|
|
300
|
+
setPageTitle(formDataFromCopy.values.name);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
const updateCopyData = () => {
|
|
305
|
+
setCopyModalStatus(!copyModalStatus);
|
|
306
|
+
setShouldCopyData(false);
|
|
307
|
+
};
|
|
308
|
+
const handleCopyDataFromClose = () => {
|
|
309
|
+
setCopyModalStatus(false);
|
|
310
|
+
setFormDataFromCopy(null);
|
|
311
|
+
};
|
|
312
|
+
const getFormData = formDataValues => {
|
|
313
|
+
const formDataUpdated = {
|
|
314
|
+
values: _objectSpread({}, formDataValues)
|
|
315
|
+
};
|
|
316
|
+
setFormDataFromCopy(formDataUpdated);
|
|
317
|
+
};
|
|
318
|
+
const handlePublishAndUnpublish = async ({
|
|
319
|
+
target: {
|
|
320
|
+
textContent
|
|
321
|
+
}
|
|
322
|
+
}) => {
|
|
323
|
+
const isPublishButton = textContent === TEXT_CONTENT_TYPE;
|
|
324
|
+
const isPublished = entityIsPublished === ENTITY_PUBLISHED;
|
|
325
|
+
const isUnpublish = checkFulfilConditions(!isPublishButton, !isPublished);
|
|
326
|
+
if (isUnpublish) {
|
|
327
|
+
return addToast(UNPUBLISHED_WARNING, {
|
|
328
|
+
appearance: 'warning',
|
|
329
|
+
autoDismiss: true
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
if (checkFulfilConditions(isPublishButton, isSaveButtonAvailable)) {
|
|
333
|
+
const savedPageMessage = await onSubmit();
|
|
334
|
+
if (savedPageMessage === ERROR) {
|
|
335
|
+
return addToast(`Content not published`, {
|
|
336
|
+
appearance: ERROR,
|
|
337
|
+
autoDismiss: true
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
return availableActions.shared.triggerPublish({
|
|
342
|
+
entityData,
|
|
343
|
+
client,
|
|
344
|
+
setEntityIsPublish,
|
|
345
|
+
entitySchema,
|
|
346
|
+
textContent,
|
|
347
|
+
refetchRecord
|
|
348
|
+
}, addToast);
|
|
349
|
+
};
|
|
350
|
+
const showModal = checkFulfilConditions(formData, modalStatus);
|
|
351
|
+
const onViewUrlHandler = canViewPage(formData, entity, schema, entityIsPublished) ? () => onViewUrlClick(getFullUrl) : onViewUrl;
|
|
352
|
+
const pageName = formData && formData.values && formData.values.name;
|
|
353
|
+
const hasToDisplayPrompt = isSaveButtonAvailable && !suppressPrompt;
|
|
354
|
+
const showSideBarRelations = checkFulfilConditions(schema, formData);
|
|
355
|
+
return /*#__PURE__*/React.createElement(RecordEditContextProvider, {
|
|
356
|
+
value: {
|
|
357
|
+
externalUpdateTime,
|
|
358
|
+
updated: formData === null || formData === void 0 ? void 0 : (_formData$values = formData.values) === null || _formData$values === void 0 ? void 0 : _formData$values.updated
|
|
359
|
+
}
|
|
360
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
361
|
+
className: "page"
|
|
362
|
+
}, /*#__PURE__*/React.createElement(EntityHeader, {
|
|
363
|
+
entityData: entityData,
|
|
364
|
+
entityIdentifier: entityIdentifier,
|
|
365
|
+
pageTitle: pageTitle,
|
|
366
|
+
pageName: pageName,
|
|
367
|
+
onSubmit: onSubmit,
|
|
368
|
+
handlePublishAndUnpublish: handlePublishAndUnpublish,
|
|
369
|
+
isSaveButtonAvailable: isSaveButtonAvailable,
|
|
370
|
+
isEnablePublishButton: isEnablePublishButton,
|
|
371
|
+
isEnablePreviewButton: isEnablePreviewButton,
|
|
372
|
+
toggleCopyModal: setCopyModalStatus,
|
|
373
|
+
toggleModal: setModalStatus,
|
|
374
|
+
formData: formData,
|
|
375
|
+
onViewUrl: onViewUrlHandler,
|
|
376
|
+
saveButtonText: saveButtonText,
|
|
377
|
+
saveOnChange: saveOnChange,
|
|
378
|
+
entitySchema: entitySchema
|
|
379
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
380
|
+
className: "page-wrapper__content"
|
|
381
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
382
|
+
className: "tabs-wrapper tabs-wrapper__tab"
|
|
383
|
+
}, /*#__PURE__*/React.createElement(Prompt, {
|
|
384
|
+
when: hasToDisplayPrompt,
|
|
385
|
+
message: LEAVE_PAGE_MESSAGE
|
|
386
|
+
}), showModal && /*#__PURE__*/React.createElement(DeleteAction, {
|
|
387
|
+
onClose: setModalStatus,
|
|
388
|
+
deleteAction: onDelete,
|
|
389
|
+
itemName: formData.values.name
|
|
390
|
+
}), copyModalStatus && /*#__PURE__*/React.createElement(CopyDataFromAction, {
|
|
391
|
+
onClose: handleCopyDataFromClose,
|
|
392
|
+
copyAction: onCopy,
|
|
393
|
+
getFormData: getFormData
|
|
394
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
395
|
+
className: `page__content${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''}`
|
|
396
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
397
|
+
className: "page__content"
|
|
398
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
399
|
+
className: "content"
|
|
400
|
+
}, /*#__PURE__*/React.createElement(RenderHook, {
|
|
401
|
+
hookKey: `entity:${action}:main:top`,
|
|
402
|
+
entity: entity,
|
|
403
|
+
schema: schema
|
|
404
|
+
}), /*#__PURE__*/React.createElement(InfoBoxes, {
|
|
405
|
+
id: entity.id,
|
|
406
|
+
schema: schema
|
|
407
|
+
}), /*#__PURE__*/React.createElement(FormBuilder, {
|
|
408
|
+
getIsFormValid: setIsFormValid,
|
|
409
|
+
getFormValues: getFormValues,
|
|
410
|
+
schema: schema,
|
|
411
|
+
data: clonedFormData,
|
|
412
|
+
onChange: onChangeFormValues,
|
|
413
|
+
shouldCopyData: shouldCopyData,
|
|
414
|
+
updateCopyData: updateCopyData,
|
|
415
|
+
formValues: formValues,
|
|
416
|
+
isNewEntity: isNewEntity,
|
|
417
|
+
onExternalUpdate: setExternalUpdateTime
|
|
418
|
+
}), /*#__PURE__*/React.createElement(RenderHook, {
|
|
419
|
+
hookKey: `entity:${action}:main:bottom`,
|
|
420
|
+
entity: entity,
|
|
421
|
+
schema: schema
|
|
422
|
+
}))))), /*#__PURE__*/React.createElement("div", {
|
|
423
|
+
className: `column column--one-third page-sidebar page-sidebar--relations${!isRightSidebarOpen ? ' sidebar--collapsed' : ''}`
|
|
424
|
+
}, showSideBarRelations && /*#__PURE__*/React.createElement(SideBarRelations, {
|
|
425
|
+
entity: entity,
|
|
426
|
+
formData: formData.values,
|
|
427
|
+
schema: schema,
|
|
428
|
+
onChange: onChangeSideBarRelations,
|
|
429
|
+
isOpen: isRightSidebarOpen,
|
|
430
|
+
onToggle: handleToggleRightSidebar
|
|
431
|
+
})))));
|
|
432
|
+
};
|
|
433
|
+
Entity.propTypes = {
|
|
434
|
+
entity: PropTypes.object,
|
|
435
|
+
schema: PropTypes.object,
|
|
436
|
+
previousQuery: PropTypes.object,
|
|
437
|
+
action: PropTypes.string.isRequired,
|
|
438
|
+
history: PropTypes.object.isRequired,
|
|
439
|
+
formData: PropTypes.object,
|
|
440
|
+
updateFormData: PropTypes.func.isRequired,
|
|
441
|
+
onViewUrl: PropTypes.func,
|
|
442
|
+
refetchRecord: PropTypes.func.isRequired
|
|
443
|
+
};
|
|
444
|
+
Entity.defaultProps = {
|
|
445
|
+
previousQuery: null,
|
|
446
|
+
schema: null,
|
|
447
|
+
entity: null,
|
|
448
|
+
formData: null,
|
|
449
|
+
onViewUrl: null
|
|
450
|
+
};
|
|
451
|
+
export default withRouter(Entity);
|
|
452
|
+
//# sourceMappingURL=Entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.js","names":["React","useEffect","useState","useRef","withRouter","Prompt","useApolloClient","PropTypes","RenderHook","getQuery","FormBuilder","parseFormValues","DeleteAction","CopyDataFromAction","useToasts","cloneDeep","getPageName","availableActions","SideBarRelations","useCallbackDebounce","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","RecordEditContextProvider","Entity","formData","entity","schema","previousQuery","action","history","updateFormData","onViewUrl","refetchRecord","_formData$values","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","externalUpdateTime","setExternalUpdateTime","suppressPrompt","setSuppressPrompt","isRightSidebarOpen","setIsRightSidebarOpen","handleToggleRightSidebar","isCreatePage","location","pathname","includes","isNewEntity","setIsNewEntity","client","shouldUpdateState","id","clonedFormData","addToast","componentIsMounted","displayProperties","saveOnChange","onSubmit","current","actions","publish","identifier","interfaces","isPageBuilderTemplateSet","pageBuilderTemplateId","writeQuery","query","data","pageBuilderTemplateSet","currentEntity","currentItemId","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","isNotValidOrNotNewValueSet","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","hasToDisplayPrompt","showSideBarRelations","createElement","updated","className","toggleCopyModal","toggleModal","when","message","onClose","deleteAction","itemName","copyAction","hookKey","getIsFormValid","onChange","onExternalUpdate","isOpen","onToggle","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 } 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 availableActions from './actions-handlers';\nimport SideBarRelations from './SideBarRelations';\nimport useCallbackDebounce from '../../hooks/useCallbackDebounce';\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';\n\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';\nimport { RecordEditContextProvider } from '../utils/RecordEditContext';\n\nconst Entity = ({\n formData,\n entity,\n schema,\n previousQuery,\n action,\n history,\n updateFormData,\n onViewUrl,\n refetchRecord\n}) => {\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 const [externalUpdateTime, setExternalUpdateTime] = useState(null);\n const [suppressPrompt, setSuppressPrompt] = useState(false);\n const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(true);\n const handleToggleRightSidebar = () => setIsRightSidebarOpen(!isRightSidebarOpen);\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\n const {\n displayProperties: { saveOnChange = false }\n } = schema;\n\n useCallbackDebounce(\n () => {\n isSaveButtonAvailable && onSubmit();\n },\n 500,\n [isSaveButtonAvailable],\n !saveOnChange\n );\n\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 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 currentItemId: entity ? entity.id : null\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 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 isNotValidOrNotNewValueSet = !isValid || !isNewValueSet;\n if (componentIsMounted.current) {\n setIsFormValid(isValid);\n }\n\n if (isValid && isNewValueSet && 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 if (!isSaveButtonAvailable) return null;\n\n if (isCreatePage) {\n setSuppressPrompt(true);\n }\n const parsedFormValues = parseFormValues(formValues);\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 hasToDisplayPrompt = isSaveButtonAvailable && !suppressPrompt;\n\n const showSideBarRelations = checkFulfilConditions(schema, formData);\n\n return (\n <RecordEditContextProvider value={{ externalUpdateTime, updated: formData?.values?.updated }}>\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 saveOnChange={saveOnChange}\n entitySchema={entitySchema}\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\n className={`page__content${!isRightSidebarOpen ? ' right-sidebar-collapsed' : ''}`}>\n <div className=\"page__content\">\n <div className=\"content\">\n <RenderHook\n hookKey={`entity:${action}:main:top`}\n entity={entity}\n schema={schema}\n />\n <InfoBoxes id={entity.id} schema={schema} />\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 onExternalUpdate={setExternalUpdateTime}\n />\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\n className={`column column--one-third page-sidebar page-sidebar--relations${!isRightSidebarOpen ? ' sidebar--collapsed' : ''\n }`}>\n {showSideBarRelations && (\n <SideBarRelations\n entity={entity}\n formData={formData.values}\n schema={schema}\n onChange={onChangeSideBarRelations}\n isOpen={isRightSidebarOpen}\n onToggle={handleToggleRightSidebar}\n />\n )}\n </div>\n </div>\n </div>\n </RecordEditContextProvider>\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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","ignoreList":[]}
|