@webiny/app-headless-cms 5.40.5-beta.0 → 5.40.6-beta.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/HeadlessCMS.js +2 -1
- package/HeadlessCMS.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryForm.d.ts +6 -11
- package/admin/components/ContentEntryForm/ContentEntryForm.js +5 -6
- package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +6 -1
- package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.d.ts +7 -2
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.js +8 -42
- package/admin/components/ContentEntryForm/ContentEntryFormProvider.js.map +1 -1
- package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js +1 -1
- package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js.map +1 -1
- package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.d.ts +2 -0
- package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.js +24 -0
- package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.js.map +1 -0
- package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.d.ts +5 -0
- package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.js +65 -0
- package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.js.map +1 -0
- package/admin/components/ContentEntryForm/SingletonHeader/index.d.ts +1 -0
- package/admin/components/ContentEntryForm/SingletonHeader/index.js +18 -0
- package/admin/components/ContentEntryForm/SingletonHeader/index.js.map +1 -0
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.d.ts +8 -0
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.js +18 -0
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.js.map +1 -0
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.d.ts +2 -0
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js +106 -0
- package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js.map +1 -0
- package/admin/contexts/Cms/index.d.ts +27 -5
- package/admin/contexts/Cms/index.js +136 -38
- package/admin/contexts/Cms/index.js.map +1 -1
- package/admin/hooks/usePersistEntry.d.ts +12 -0
- package/admin/hooks/usePersistEntry.js +48 -0
- package/admin/hooks/usePersistEntry.js.map +1 -0
- package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js +11 -6
- package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js.map +1 -1
- package/admin/plugins/fields/ref.js +7 -1
- package/admin/plugins/fields/ref.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesModule.js +2 -1
- package/admin/views/contentEntries/ContentEntriesModule.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +8 -0
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +51 -22
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/PublishEntryRevisionListItem.js +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/PublishEntryRevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js +6 -6
- package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.js +28 -22
- package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.d.ts +8 -0
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js +66 -0
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.d.ts +20 -0
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.js +75 -0
- package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.js.map +1 -0
- package/admin/views/contentEntries/ContentEntry.js +11 -4
- package/admin/views/contentEntries/ContentEntry.js.map +1 -1
- package/admin/views/contentEntries/SingletonContentEntryModule.d.ts +2 -0
- package/admin/views/contentEntries/SingletonContentEntryModule.js +33 -0
- package/admin/views/contentEntries/SingletonContentEntryModule.js.map +1 -0
- package/admin/views/contentEntries/hooks/useSingletonContentEntry.d.ts +8 -0
- package/admin/views/contentEntries/hooks/useSingletonContentEntry.js +18 -0
- package/admin/views/contentEntries/hooks/useSingletonContentEntry.js.map +1 -0
- package/admin/views/contentModels/ContentModelsDataList.js +13 -4
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js +58 -21
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/package.json +28 -28
package/HeadlessCMS.js
CHANGED
|
@@ -16,6 +16,7 @@ var _apiInformation = _interopRequireDefault(require("./admin/plugins/apiInforma
|
|
|
16
16
|
var _ContentEntriesModule = require("./admin/views/contentEntries/ContentEntriesModule");
|
|
17
17
|
var _allPlugins = _interopRequireDefault(require("./allPlugins"));
|
|
18
18
|
var _LexicalEditorCmsPlugin = require("./admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin");
|
|
19
|
+
var _SingletonContentEntryModule = require("./admin/views/contentEntries/SingletonContentEntryModule");
|
|
19
20
|
var createHeadlessCMSProvider = function createHeadlessCMSProvider(createApolloClient) {
|
|
20
21
|
return function (Component) {
|
|
21
22
|
return function HeadlessCMSProvider(_ref) {
|
|
@@ -44,7 +45,7 @@ var HeadlessCMSExtension = function HeadlessCMSExtension(_ref2) {
|
|
|
44
45
|
}
|
|
45
46
|
return undefined;
|
|
46
47
|
}));
|
|
47
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ContentEntriesModule.ContentEntriesModule, null), /*#__PURE__*/_react.default.createElement(_appAdmin.Provider, {
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ContentEntriesModule.ContentEntriesModule, null), /*#__PURE__*/_react.default.createElement(_SingletonContentEntryModule.SingletonContentEntryModule, null), /*#__PURE__*/_react.default.createElement(_appAdmin.Provider, {
|
|
48
49
|
hoc: createHeadlessCMSProvider(createApolloClient)
|
|
49
50
|
}), /*#__PURE__*/_react.default.createElement(_appAdmin.Plugins, null, /*#__PURE__*/_react.default.createElement(_CmsMenuLoader.CmsMenuLoader, null)), /*#__PURE__*/_react.default.createElement(_LexicalEditorCmsPlugin.LexicalEditorCmsPlugin, null));
|
|
50
51
|
};
|
package/HeadlessCMS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_plugins","_appAdmin","_app","_Cms","_CmsMenuLoader","_apiInformation","_interopRequireDefault","_ContentEntriesModule","_allPlugins","_LexicalEditorCmsPlugin","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","_ref","children","default","createElement","CmsProvider","attachTypeName","HeadlessCMSExtension","_ref2","plugins","register","apiInformation","allPlugins","ApolloCacheObjectIdPlugin","obj","__typename","includes","concat","id","undefined","Fragment","ContentEntriesModule","Provider","hoc","Plugins","CmsMenuLoader","LexicalEditorCmsPlugin","HeadlessCMS","exports","memo"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { ApolloClient } from \"apollo-client\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\nimport { CmsProvider } from \"~/admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"~/admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"~/admin/views/contentEntries/ContentEntriesModule\";\nimport allPlugins from \"~/allPlugins\";\nimport { LexicalEditorCmsPlugin } from \"~/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin\";\n\ninterface HeadlessCMSProvider {\n children: React.ReactNode;\n}\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function HeadlessCMSProvider({ children }: HeadlessCMSProvider) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\n/**\n * If there is a problem with some state being reset, it's probably because of this plugin.\n * Check that __typename from the API and the __typename in the state are the same.\n * If not, add it into the attachTypeName array.\n */\nconst attachTypeName = [\"CmsContentEntry\", \"RefField\"];\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n plugins.register(allPlugins);\n\n plugins.register(\n new ApolloCacheObjectIdPlugin(obj => {\n if (obj.__typename === \"CmsContentModelField\") {\n return null;\n } else if (obj.__typename && attachTypeName.includes(obj.__typename)) {\n return `${obj.__typename}_${obj.id}`;\n }\n\n return undefined;\n })\n );\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n </Plugins>\n <LexicalEditorCmsPlugin />\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAF,sBAAA,CAAAP,OAAA;AACA,IAAAU,uBAAA,GAAAV,OAAA;AAMA,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_plugins","_appAdmin","_app","_Cms","_CmsMenuLoader","_apiInformation","_interopRequireDefault","_ContentEntriesModule","_allPlugins","_LexicalEditorCmsPlugin","_SingletonContentEntryModule","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","_ref","children","default","createElement","CmsProvider","attachTypeName","HeadlessCMSExtension","_ref2","plugins","register","apiInformation","allPlugins","ApolloCacheObjectIdPlugin","obj","__typename","includes","concat","id","undefined","Fragment","ContentEntriesModule","SingletonContentEntryModule","Provider","hoc","Plugins","CmsMenuLoader","LexicalEditorCmsPlugin","HeadlessCMS","exports","memo"],"sources":["HeadlessCMS.tsx"],"sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { ApolloClient } from \"apollo-client\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloCacheObjectIdPlugin } from \"@webiny/app\";\nimport { CmsProvider } from \"~/admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"~/admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"~/admin/views/contentEntries/ContentEntriesModule\";\nimport allPlugins from \"~/allPlugins\";\nimport { LexicalEditorCmsPlugin } from \"~/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin\";\nimport { SingletonContentEntryModule } from \"~/admin/views/contentEntries/SingletonContentEntryModule\";\n\ninterface HeadlessCMSProvider {\n children: React.ReactNode;\n}\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function HeadlessCMSProvider({ children }: HeadlessCMSProvider) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\n/**\n * If there is a problem with some state being reset, it's probably because of this plugin.\n * Check that __typename from the API and the __typename in the state are the same.\n * If not, add it into the attachTypeName array.\n */\nconst attachTypeName = [\"CmsContentEntry\", \"RefField\"];\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n plugins.register(allPlugins);\n\n plugins.register(\n new ApolloCacheObjectIdPlugin(obj => {\n if (obj.__typename === \"CmsContentModelField\") {\n return null;\n } else if (obj.__typename && attachTypeName.includes(obj.__typename)) {\n return `${obj.__typename}_${obj.id}`;\n }\n\n return undefined;\n })\n );\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <SingletonContentEntryModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n </Plugins>\n <LexicalEditorCmsPlugin />\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAR,OAAA;AACA,IAAAS,WAAA,GAAAF,sBAAA,CAAAP,OAAA;AACA,IAAAU,uBAAA,GAAAV,OAAA;AACA,IAAAW,4BAAA,GAAAX,OAAA;AAMA,IAAMY,yBAAyB,GAC3B,SADEA,yBAAyBA,CAC1BC,kBAAsC;EAAA,OACvC,UAACC,SAAuD,EAAK;IACzD,OAAO,SAASC,mBAAmBA,CAAAC,IAAA,EAAoC;MAAA,IAAjCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;MAC1C,oBACInB,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACf,IAAA,CAAAgB,WAAW;QAACP,kBAAkB,EAAEA;MAAmB,gBAChDf,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACL,SAAS,QAAEG,QAAoB,CACvB,CAAC;IAEtB,CAAC;EACL,CAAC;AAAA;AAaL;AACA;AACA;AACA;AACA;AACA,IAAMI,cAAc,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAEtD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,KAAA,EAAiD;EAAA,IAA3CV,kBAAkB,GAAAU,KAAA,CAAlBV,kBAAkB;EAC9CW,gBAAO,CAACC,QAAQ,CAACC,uBAAc,CAAC;EAChCF,gBAAO,CAACC,QAAQ,CAACE,mBAAU,CAAC;EAE5BH,gBAAO,CAACC,QAAQ,CACZ,IAAIG,8BAAyB,CAAC,UAAAC,GAAG,EAAI;IACjC,IAAIA,GAAG,CAACC,UAAU,KAAK,sBAAsB,EAAE;MAC3C,OAAO,IAAI;IACf,CAAC,MAAM,IAAID,GAAG,CAACC,UAAU,IAAIT,cAAc,CAACU,QAAQ,CAACF,GAAG,CAACC,UAAU,CAAC,EAAE;MAClE,UAAAE,MAAA,CAAUH,GAAG,CAACC,UAAU,OAAAE,MAAA,CAAIH,GAAG,CAACI,EAAE;IACtC;IAEA,OAAOC,SAAS;EACpB,CAAC,CACL,CAAC;EAED,oBACIpC,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACrB,MAAA,CAAAqC,QAAQ,qBACLrC,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACX,qBAAA,CAAA4B,oBAAoB,MAAE,CAAC,eACxBtC,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACR,4BAAA,CAAA0B,2BAA2B,MAAE,CAAC,eAC/BvC,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACjB,SAAA,CAAAoC,QAAQ;IAACC,GAAG,EAAE3B,yBAAyB,CAACC,kBAAkB;EAAE,CAAE,CAAC,eAChEf,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACjB,SAAA,CAAAsC,OAAO,qBACJ1C,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACd,cAAA,CAAAoC,aAAa,MAAE,CACX,CAAC,eACV3C,MAAA,CAAAoB,OAAA,CAAAC,aAAA,CAACT,uBAAA,CAAAgC,sBAAsB,MAAE,CACnB,CAAC;AAEnB,CAAC;AAEM,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAG,IAAAE,WAAI,EAACvB,oBAAoB,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { CmsContentEntry } from "../../../types";
|
|
3
|
-
import { ContentEntryFormContext } from "./ContentEntryFormProvider";
|
|
3
|
+
import { ContentEntryFormContext, PersistEntry } from "./ContentEntryFormProvider";
|
|
4
4
|
export interface ContentEntryFormProps {
|
|
5
5
|
entry: Partial<CmsContentEntry>;
|
|
6
6
|
/**
|
|
@@ -8,22 +8,17 @@ export interface ContentEntryFormProps {
|
|
|
8
8
|
* @param entry
|
|
9
9
|
*/
|
|
10
10
|
onAfterCreate?: (entry: CmsContentEntry) => void;
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* This callback is executed when the form is valid, and it needs to persist the content entry.
|
|
13
|
+
*/
|
|
14
|
+
persistEntry: PersistEntry;
|
|
15
|
+
header?: React.ReactNode;
|
|
12
16
|
/**
|
|
13
17
|
* This prop is used to get a reference to `saveEntry` callback, so it can be triggered by components
|
|
14
18
|
* outside the ContentEntryForm context.
|
|
15
19
|
* TODO: introduce a `layout` prop to be able to mount arbitrary components around the entry form, within the context.
|
|
16
20
|
*/
|
|
17
21
|
setSaveEntry?: (cb: ContentEntryFormContext["saveEntry"]) => void;
|
|
18
|
-
/**
|
|
19
|
-
* This flag exists for a lack of better Apollo cache control, at the moment.
|
|
20
|
-
* We use this flag when we need to tell the system to add new entries to apollo cache.
|
|
21
|
-
* Why would you want to NOT add entries to cache? When using a `ref` field, which usually points to
|
|
22
|
-
* a different model than the main entry you're working on. Example: Book -> Author, you don't want
|
|
23
|
-
* an Author created via a `ref` field dialog to be added to the list of Books.
|
|
24
|
-
* TODO: revisit this, and look for a better solution.
|
|
25
|
-
*/
|
|
26
|
-
addEntryToListCache?: boolean;
|
|
27
22
|
}
|
|
28
23
|
export declare const ContentEntryForm: import("@webiny/app-admin").GenericComponent<ContentEntryFormProps> & {
|
|
29
24
|
original: import("@webiny/app-admin").GenericComponent<ContentEntryFormProps>;
|
|
@@ -10,7 +10,6 @@ var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _appAdmin = require("@webiny/app-admin");
|
|
12
12
|
var _ModelProvider = require("../ModelProvider");
|
|
13
|
-
var _Header = require("./Header");
|
|
14
13
|
var _useFormRenderer = require("./useFormRenderer");
|
|
15
14
|
var _ContentEntryFormProvider = require("./ContentEntryFormProvider");
|
|
16
15
|
var _CustomLayout = require("./CustomLayout");
|
|
@@ -28,13 +27,13 @@ var FormWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV ==
|
|
|
28
27
|
} : {
|
|
29
28
|
name: "1x0mv1y",
|
|
30
29
|
styles: "height:calc(100vh - 260px);overflow:auto",
|
|
31
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
30
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUZvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVvQiIsImZpbGUiOiJDb250ZW50RW50cnlGb3JtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBDbXNDb250ZW50RW50cnkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgbWFrZURlY29yYXRhYmxlIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgeyBNb2RlbFByb3ZpZGVyLCB1c2VNb2RlbCB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvTW9kZWxQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlRm9ybVJlbmRlcmVyIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Db250ZW50RW50cnlGb3JtL3VzZUZvcm1SZW5kZXJlclwiO1xuaW1wb3J0IHtcbiAgICBDb250ZW50RW50cnlGb3JtQ29udGV4dCxcbiAgICBDb250ZW50RW50cnlGb3JtUHJvdmlkZXIsXG4gICAgUGVyc2lzdEVudHJ5XG59IGZyb20gXCIuL0NvbnRlbnRFbnRyeUZvcm1Qcm92aWRlclwiO1xuaW1wb3J0IHsgQ3VzdG9tTGF5b3V0IH0gZnJvbSBcIi4vQ3VzdG9tTGF5b3V0XCI7XG5pbXBvcnQgeyBEZWZhdWx0TGF5b3V0IH0gZnJvbSBcIi4vRGVmYXVsdExheW91dFwiO1xuaW1wb3J0IHsgdXNlR29Ub1JldmlzaW9uIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Db250ZW50RW50cnlGb3JtL3VzZUdvVG9SZXZpc2lvblwiO1xuXG5jb25zdCBGb3JtV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgaGVpZ2h0OiBcImNhbGMoMTAwdmggLSAyNjBweClcIixcbiAgICBvdmVyZmxvdzogXCJhdXRvXCJcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRFbnRyeUZvcm1Qcm9wcyB7XG4gICAgZW50cnk6IFBhcnRpYWw8Q21zQ29udGVudEVudHJ5PjtcbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGV4ZWN1dGVkIHdoZW4gYW4gZW50cnksIG9yIGEgcmV2aXNpb24sIGFyZSBjcmVhdGVkLlxuICAgICAqIEBwYXJhbSBlbnRyeVxuICAgICAqL1xuICAgIG9uQWZ0ZXJDcmVhdGU/OiAoZW50cnk6IENtc0NvbnRlbnRFbnRyeSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGV4ZWN1dGVkIHdoZW4gdGhlIGZvcm0gaXMgdmFsaWQsIGFuZCBpdCBuZWVkcyB0byBwZXJzaXN0IHRoZSBjb250ZW50IGVudHJ5LlxuICAgICAqL1xuICAgIHBlcnNpc3RFbnRyeTogUGVyc2lzdEVudHJ5O1xuICAgIGhlYWRlcj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICAvKipcbiAgICAgKiBUaGlzIHByb3AgaXMgdXNlZCB0byBnZXQgYSByZWZlcmVuY2UgdG8gYHNhdmVFbnRyeWAgY2FsbGJhY2ssIHNvIGl0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgY29tcG9uZW50c1xuICAgICAqIG91dHNpZGUgdGhlIENvbnRlbnRFbnRyeUZvcm0gY29udGV4dC5cbiAgICAgKiBUT0RPOiBpbnRyb2R1Y2UgYSBgbGF5b3V0YCBwcm9wIHRvIGJlIGFibGUgdG8gbW91bnQgYXJiaXRyYXJ5IGNvbXBvbmVudHMgYXJvdW5kIHRoZSBlbnRyeSBmb3JtLCB3aXRoaW4gdGhlIGNvbnRleHQuXG4gICAgICovXG4gICAgc2V0U2F2ZUVudHJ5PzogKGNiOiBDb250ZW50RW50cnlGb3JtQ29udGV4dFtcInNhdmVFbnRyeVwiXSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRlbnRFbnRyeUZvcm0gPSBtYWtlRGVjb3JhdGFibGUoXG4gICAgXCJDb250ZW50RW50cnlGb3JtXCIsXG4gICAgKHtcbiAgICAgICAgZW50cnksXG4gICAgICAgIHBlcnNpc3RFbnRyeSxcbiAgICAgICAgb25BZnRlckNyZWF0ZSxcbiAgICAgICAgc2V0U2F2ZUVudHJ5LFxuICAgICAgICBoZWFkZXIgPSB0cnVlXG4gICAgfTogQ29udGVudEVudHJ5Rm9ybVByb3BzKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1FbGVtZW50UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICAgICAgY29uc3QgeyBtb2RlbCB9ID0gdXNlTW9kZWwoKTtcbiAgICAgICAgY29uc3QgeyBnb1RvUmV2aXNpb24gfSA9IHVzZUdvVG9SZXZpc2lvbigpO1xuICAgICAgICBjb25zdCBmb3JtUmVuZGVyZXIgPSB1c2VGb3JtUmVuZGVyZXIobW9kZWwpO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRPbkFmdGVyQ3JlYXRlID0gKGVudHJ5OiBDbXNDb250ZW50RW50cnkpID0+IHtcbiAgICAgICAgICAgIGdvVG9SZXZpc2lvbihlbnRyeS5pZCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gV2hlbiBlbnRyeSBjaGFuZ2VzLCBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgZm9ybS5cbiAgICAgICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghZm9ybUVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZm9ybUVsZW1lbnRSZWYuY3VycmVudD8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgICB9LCAyMCk7XG4gICAgICAgIH0sIFtlbnRyeS5pZCwgZm9ybUVsZW1lbnRSZWYuY3VycmVudF0pO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8Q29udGVudEVudHJ5Rm9ybVByb3ZpZGVyXG4gICAgICAgICAgICAgICAgbW9kZWw9e21vZGVsfVxuICAgICAgICAgICAgICAgIGVudHJ5PXtlbnRyeX1cbiAgICAgICAgICAgICAgICBvbkFmdGVyQ3JlYXRlPXtvbkFmdGVyQ3JlYXRlIHx8IGRlZmF1bHRPbkFmdGVyQ3JlYXRlfVxuICAgICAgICAgICAgICAgIHNldFNhdmVFbnRyeT17c2V0U2F2ZUVudHJ5fVxuICAgICAgICAgICAgICAgIGNvbmZpcm1OYXZpZ2F0aW9uSWZEaXJ0eT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBwZXJzaXN0RW50cnk9e3BlcnNpc3RFbnRyeX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8TW9kZWxQcm92aWRlciBtb2RlbD17bW9kZWx9PlxuICAgICAgICAgICAgICAgICAgICB7aGVhZGVyID8gaGVhZGVyIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1XcmFwcGVyIGRhdGEtdGVzdGlkPXtcImNtcy1jb250ZW50LWZvcm1cIn0gcmVmPXtmb3JtRWxlbWVudFJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Zm9ybVJlbmRlcmVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDdXN0b21MYXlvdXQgbW9kZWw9e21vZGVsfSBmb3JtUmVuZGVyZXI9e2Zvcm1SZW5kZXJlcn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlZmF1bHRMYXlvdXQgbW9kZWw9e21vZGVsfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtV3JhcHBlcj5cbiAgICAgICAgICAgICAgICA8L01vZGVsUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0NvbnRlbnRFbnRyeUZvcm1Qcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICB9XG4pO1xuIl19 */",
|
|
32
31
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
33
32
|
});
|
|
34
33
|
var ContentEntryForm = exports.ContentEntryForm = (0, _appAdmin.makeDecoratable)("ContentEntryForm", function (_ref) {
|
|
35
34
|
var entry = _ref.entry,
|
|
35
|
+
persistEntry = _ref.persistEntry,
|
|
36
36
|
onAfterCreate = _ref.onAfterCreate,
|
|
37
|
-
addEntryToListCache = _ref.addEntryToListCache,
|
|
38
37
|
setSaveEntry = _ref.setSaveEntry,
|
|
39
38
|
_ref$header = _ref.header,
|
|
40
39
|
header = _ref$header === void 0 ? true : _ref$header;
|
|
@@ -62,11 +61,11 @@ var ContentEntryForm = exports.ContentEntryForm = (0, _appAdmin.makeDecoratable)
|
|
|
62
61
|
entry: entry,
|
|
63
62
|
onAfterCreate: onAfterCreate || defaultOnAfterCreate,
|
|
64
63
|
setSaveEntry: setSaveEntry,
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
confirmNavigationIfDirty: true,
|
|
65
|
+
persistEntry: persistEntry
|
|
67
66
|
}, /*#__PURE__*/_react.default.createElement(_ModelProvider.ModelProvider, {
|
|
68
67
|
model: model
|
|
69
|
-
}, header ?
|
|
68
|
+
}, header ? header : null, /*#__PURE__*/_react.default.createElement(FormWrapper, {
|
|
70
69
|
"data-testid": "cms-content-form",
|
|
71
70
|
ref: formElementRef
|
|
72
71
|
}, formRenderer ? /*#__PURE__*/_react.default.createElement(_CustomLayout.CustomLayout, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_ModelProvider","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_appAdmin","_ModelProvider","_useFormRenderer","_ContentEntryFormProvider","_CustomLayout","_DefaultLayout","_useGoToRevision2","_EMOTION_STRINGIFIED_CSS_ERROR__","FormWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ContentEntryForm","exports","makeDecoratable","_ref","entry","persistEntry","onAfterCreate","setSaveEntry","_ref$header","header","formElementRef","useRef","_useModel","useModel","model","_useGoToRevision","useGoToRevision","goToRevision","formRenderer","useFormRenderer","defaultOnAfterCreate","id","useEffect","current","setTimeout","scrollTo","createElement","ContentEntryFormProvider","confirmNavigationIfDirty","ModelProvider","ref","CustomLayout","DefaultLayout"],"sources":["ContentEntryForm.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { CmsContentEntry } from \"~/types\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { ModelProvider, useModel } from \"~/admin/components/ModelProvider\";\nimport { useFormRenderer } from \"~/admin/components/ContentEntryForm/useFormRenderer\";\nimport {\n ContentEntryFormContext,\n ContentEntryFormProvider,\n PersistEntry\n} from \"./ContentEntryFormProvider\";\nimport { CustomLayout } from \"./CustomLayout\";\nimport { DefaultLayout } from \"./DefaultLayout\";\nimport { useGoToRevision } from \"~/admin/components/ContentEntryForm/useGoToRevision\";\n\nconst FormWrapper = styled(\"div\")({\n height: \"calc(100vh - 260px)\",\n overflow: \"auto\"\n});\n\nexport interface ContentEntryFormProps {\n entry: Partial<CmsContentEntry>;\n /**\n * This callback is executed when an entry, or a revision, are created.\n * @param entry\n */\n onAfterCreate?: (entry: CmsContentEntry) => void;\n /**\n * This callback is executed when the form is valid, and it needs to persist the content entry.\n */\n persistEntry: PersistEntry;\n header?: React.ReactNode;\n /**\n * This prop is used to get a reference to `saveEntry` callback, so it can be triggered by components\n * outside the ContentEntryForm context.\n * TODO: introduce a `layout` prop to be able to mount arbitrary components around the entry form, within the context.\n */\n setSaveEntry?: (cb: ContentEntryFormContext[\"saveEntry\"]) => void;\n}\n\nexport const ContentEntryForm = makeDecoratable(\n \"ContentEntryForm\",\n ({\n entry,\n persistEntry,\n onAfterCreate,\n setSaveEntry,\n header = true\n }: ContentEntryFormProps) => {\n const formElementRef = useRef<HTMLDivElement>(null);\n const { model } = useModel();\n const { goToRevision } = useGoToRevision();\n const formRenderer = useFormRenderer(model);\n\n const defaultOnAfterCreate = (entry: CmsContentEntry) => {\n goToRevision(entry.id);\n };\n\n // When entry changes, scroll to the top of the form.\n useEffect(() => {\n if (!formElementRef.current) {\n return;\n }\n\n setTimeout(() => {\n formElementRef.current?.scrollTo(0, 0);\n }, 20);\n }, [entry.id, formElementRef.current]);\n\n return (\n <ContentEntryFormProvider\n model={model}\n entry={entry}\n onAfterCreate={onAfterCreate || defaultOnAfterCreate}\n setSaveEntry={setSaveEntry}\n confirmNavigationIfDirty={true}\n persistEntry={persistEntry}\n >\n <ModelProvider model={model}>\n {header ? header : null}\n <FormWrapper data-testid={\"cms-content-form\"} ref={formElementRef}>\n {formRenderer ? (\n <CustomLayout model={model} formRenderer={formRenderer} />\n ) : (\n <DefaultLayout model={model} />\n )}\n </FormWrapper>\n </ModelProvider>\n </ContentEntryFormProvider>\n );\n }\n);\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AAKA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AAAsF,SAAAQ,iCAAA;AAEtF,IAAMC,WAAW,gBAAG,IAAAC,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAGhC,CAAC;AAsBK,IAAMa,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,IAAAE,yBAAe,EAC3C,kBAAkB,EAClB,UAAAC,IAAA,EAM6B;EAAA,IALzBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,YAAY,GAAAF,IAAA,CAAZE,YAAY;IACZC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IAAAC,WAAA,GAAAL,IAAA,CACZM,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,IAAI,GAAAA,WAAA;EAEb,IAAME,cAAc,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EACnD,IAAAC,SAAA,GAAkB,IAAAC,uBAAQ,EAAC,CAAC;IAApBC,KAAK,GAAAF,SAAA,CAALE,KAAK;EACb,IAAAC,gBAAA,GAAyB,IAAAC,iCAAe,EAAC,CAAC;IAAlCC,YAAY,GAAAF,gBAAA,CAAZE,YAAY;EACpB,IAAMC,YAAY,GAAG,IAAAC,gCAAe,EAACL,KAAK,CAAC;EAE3C,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIhB,KAAsB,EAAK;IACrDa,YAAY,CAACb,KAAK,CAACiB,EAAE,CAAC;EAC1B,CAAC;;EAED;EACA,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAI,CAACZ,cAAc,CAACa,OAAO,EAAE;MACzB;IACJ;IAEAC,UAAU,CAAC,YAAM;MACbd,cAAc,CAACa,OAAO,EAAEE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,EAAE,CAAC;EACV,CAAC,EAAE,CAACrB,KAAK,CAACiB,EAAE,EAAEX,cAAc,CAACa,OAAO,CAAC,CAAC;EAEtC,oBACI9C,MAAA,CAAAa,OAAA,CAAAoC,aAAA,CAAC3C,yBAAA,CAAA4C,wBAAwB;IACrBb,KAAK,EAAEA,KAAM;IACbV,KAAK,EAAEA,KAAM;IACbE,aAAa,EAAEA,aAAa,IAAIc,oBAAqB;IACrDb,YAAY,EAAEA,YAAa;IAC3BqB,wBAAwB,EAAE,IAAK;IAC/BvB,YAAY,EAAEA;EAAa,gBAE3B5B,MAAA,CAAAa,OAAA,CAAAoC,aAAA,CAAC7C,cAAA,CAAAgD,aAAa;IAACf,KAAK,EAAEA;EAAM,GACvBL,MAAM,GAAGA,MAAM,GAAG,IAAI,eACvBhC,MAAA,CAAAa,OAAA,CAAAoC,aAAA,CAACtC,WAAW;IAAC,eAAa,kBAAmB;IAAC0C,GAAG,EAAEpB;EAAe,GAC7DQ,YAAY,gBACTzC,MAAA,CAAAa,OAAA,CAAAoC,aAAA,CAAC1C,aAAA,CAAA+C,YAAY;IAACjB,KAAK,EAAEA,KAAM;IAACI,YAAY,EAAEA;EAAa,CAAE,CAAC,gBAE1DzC,MAAA,CAAAa,OAAA,CAAAoC,aAAA,CAACzC,cAAA,CAAA+C,aAAa;IAAClB,KAAK,EAAEA;EAAM,CAAE,CAEzB,CACF,CACO,CAAC;AAEnC,CACJ,CAAC","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ var FormWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV ==
|
|
|
25
25
|
} : {
|
|
26
26
|
name: "1x0mv1y",
|
|
27
27
|
styles: "height:calc(100vh - 260px);overflow:auto",
|
|
28
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUZvcm1QcmV2aWV3LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVb0IiLCJmaWxlIjoiQ29udGVudEVudHJ5Rm9ybVByZXZpZXcudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBtYWtlRGVjb3JhdGFibGUgfSBmcm9tIFwiQHdlYmlueS9hcHAtYWRtaW5cIjtcbmltcG9ydCB7IENtc0NvbnRlbnRFbnRyeSwgQ21zRWRpdG9yQ29udGVudE1vZGVsIH0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IE1vZGVsUHJvdmlkZXIgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL01vZGVsUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUZvcm1SZW5kZXJlciB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvQ29udGVudEVudHJ5Rm9ybS91c2VGb3JtUmVuZGVyZXJcIjtcbmltcG9ydCB7IEN1c3RvbUxheW91dCB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvQ29udGVudEVudHJ5Rm9ybS9DdXN0b21MYXlvdXRcIjtcbmltcG9ydCB7IERlZmF1bHRMYXlvdXQgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL0NvbnRlbnRFbnRyeUZvcm0vRGVmYXVsdExheW91dFwiO1xuaW1wb3J0IHsgQ29udGVudEVudHJ5Rm9ybVByb3ZpZGVyIH0gZnJvbSBcIi4vQ29udGVudEVudHJ5Rm9ybVByb3ZpZGVyXCI7XG5cbmNvbnN0IEZvcm1XcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBoZWlnaHQ6IFwiY2FsYygxMDB2aCAtIDI2MHB4KVwiLFxuICAgIG92ZXJmbG93OiBcImF1dG9cIlxufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudEVudHJ5Rm9ybVByZXZpZXdQcm9wcyB7XG4gICAgY29udGVudE1vZGVsOiBDbXNFZGl0b3JDb250ZW50TW9kZWw7XG59XG5cbmV4cG9ydCBjb25zdCBDb250ZW50RW50cnlGb3JtUHJldmlldyA9IG1ha2VEZWNvcmF0YWJsZShcbiAgICBcIkNvbnRlbnRFbnRyeUZvcm1QcmV2aWV3XCIsXG4gICAgKHByb3BzOiBDb250ZW50RW50cnlGb3JtUHJldmlld1Byb3BzKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgY29udGVudE1vZGVsIH0gPSBwcm9wcztcblxuICAgICAgICBjb25zdCBmb3JtUmVuZGVyZXIgPSB1c2VGb3JtUmVuZGVyZXIoY29udGVudE1vZGVsKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPENvbnRlbnRFbnRyeUZvcm1Qcm92aWRlclxuICAgICAgICAgICAgICAgIGVudHJ5PXt7fX1cbiAgICAgICAgICAgICAgICBtb2RlbD17Y29udGVudE1vZGVsfVxuICAgICAgICAgICAgICAgIHBlcnNpc3RFbnRyeT17ZW50cnkgPT4gUHJvbWlzZS5yZXNvbHZlKHsgZW50cnkgfSBhcyB7IGVudHJ5OiBDbXNDb250ZW50RW50cnkgfSl9XG4gICAgICAgICAgICAgICAgY29uZmlybU5hdmlnYXRpb25JZkRpcnR5PXtmYWxzZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8TW9kZWxQcm92aWRlciBtb2RlbD17Y29udGVudE1vZGVsfT5cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1XcmFwcGVyIGRhdGEtdGVzdGlkPXtcImNtcy1jb250ZW50LWZvcm1cIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Zm9ybVJlbmRlcmVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDdXN0b21MYXlvdXQgbW9kZWw9e2NvbnRlbnRNb2RlbH0gZm9ybVJlbmRlcmVyPXtmb3JtUmVuZGVyZXJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZWZhdWx0TGF5b3V0IG1vZGVsPXtjb250ZW50TW9kZWx9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm1XcmFwcGVyPlxuICAgICAgICAgICAgICAgIDwvTW9kZWxQcm92aWRlcj5cbiAgICAgICAgICAgIDwvQ29udGVudEVudHJ5Rm9ybVByb3ZpZGVyPlxuICAgICAgICApO1xuICAgIH1cbik7XG4iXX0= */",
|
|
29
29
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
30
30
|
});
|
|
31
31
|
var ContentEntryFormPreview = exports.ContentEntryFormPreview = (0, _appAdmin.makeDecoratable)("ContentEntryFormPreview", function (props) {
|
|
@@ -34,6 +34,11 @@ var ContentEntryFormPreview = exports.ContentEntryFormPreview = (0, _appAdmin.ma
|
|
|
34
34
|
return /*#__PURE__*/_react.default.createElement(_ContentEntryFormProvider.ContentEntryFormProvider, {
|
|
35
35
|
entry: {},
|
|
36
36
|
model: contentModel,
|
|
37
|
+
persistEntry: function persistEntry(entry) {
|
|
38
|
+
return Promise.resolve({
|
|
39
|
+
entry: entry
|
|
40
|
+
});
|
|
41
|
+
},
|
|
37
42
|
confirmNavigationIfDirty: false
|
|
38
43
|
}, /*#__PURE__*/_react.default.createElement(_ModelProvider.ModelProvider, {
|
|
39
44
|
model: contentModel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_appAdmin","_ModelProvider","_useFormRenderer","_CustomLayout","_DefaultLayout","_ContentEntryFormProvider","_EMOTION_STRINGIFIED_CSS_ERROR__","FormWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ContentEntryFormPreview","exports","makeDecoratable","props","contentModel","formRenderer","useFormRenderer","createElement","ContentEntryFormProvider","entry","model","confirmNavigationIfDirty","ModelProvider","CustomLayout","DefaultLayout"],"sources":["ContentEntryFormPreview.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { CmsEditorContentModel } from \"~/types\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\nimport { useFormRenderer } from \"~/admin/components/ContentEntryForm/useFormRenderer\";\nimport { CustomLayout } from \"~/admin/components/ContentEntryForm/CustomLayout\";\nimport { DefaultLayout } from \"~/admin/components/ContentEntryForm/DefaultLayout\";\nimport { ContentEntryFormProvider } from \"./ContentEntryFormProvider\";\n\nconst FormWrapper = styled(\"div\")({\n height: \"calc(100vh - 260px)\",\n overflow: \"auto\"\n});\n\nexport interface ContentEntryFormPreviewProps {\n contentModel: CmsEditorContentModel;\n}\n\nexport const ContentEntryFormPreview = makeDecoratable(\n \"ContentEntryFormPreview\",\n (props: ContentEntryFormPreviewProps) => {\n const { contentModel } = props;\n\n const formRenderer = useFormRenderer(contentModel);\n\n return (\n <ContentEntryFormProvider\n entry={{}}\n model={contentModel}\n confirmNavigationIfDirty={false}\n >\n <ModelProvider model={contentModel}>\n <FormWrapper data-testid={\"cms-content-form\"}>\n {formRenderer ? (\n <CustomLayout model={contentModel} formRenderer={formRenderer} />\n ) : (\n <DefaultLayout model={contentModel} />\n )}\n </FormWrapper>\n </ModelProvider>\n </ContentEntryFormProvider>\n );\n }\n);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,yBAAA,GAAAN,OAAA;AAAsE,SAAAO,iCAAA;AAEtE,IAAMC,WAAW,gBAAG,IAAAC,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAGhC,CAAC;AAMK,IAAMa,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,IAAAE,yBAAe,EAClD,yBAAyB,EACzB,UAACC,KAAmC,EAAK;EACrC,IAAQC,YAAY,GAAKD,KAAK,CAAtBC,YAAY;EAEpB,IAAMC,YAAY,GAAG,IAAAC,gCAAe,EAACF,YAAY,CAAC;EAElD,oBACI1B,MAAA,CAAAY,OAAA,CAAAiB,aAAA,CAACrB,yBAAA,CAAAsB,wBAAwB;IACrBC,KAAK,EAAE,CAAC,CAAE;IACVC,KAAK,EAAEN,YAAa;IACpBO,wBAAwB,EAAE;EAAM,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_appAdmin","_ModelProvider","_useFormRenderer","_CustomLayout","_DefaultLayout","_ContentEntryFormProvider","_EMOTION_STRINGIFIED_CSS_ERROR__","FormWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","ContentEntryFormPreview","exports","makeDecoratable","props","contentModel","formRenderer","useFormRenderer","createElement","ContentEntryFormProvider","entry","model","persistEntry","Promise","resolve","confirmNavigationIfDirty","ModelProvider","CustomLayout","DefaultLayout"],"sources":["ContentEntryFormPreview.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { makeDecoratable } from \"@webiny/app-admin\";\nimport { CmsContentEntry, CmsEditorContentModel } from \"~/types\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\nimport { useFormRenderer } from \"~/admin/components/ContentEntryForm/useFormRenderer\";\nimport { CustomLayout } from \"~/admin/components/ContentEntryForm/CustomLayout\";\nimport { DefaultLayout } from \"~/admin/components/ContentEntryForm/DefaultLayout\";\nimport { ContentEntryFormProvider } from \"./ContentEntryFormProvider\";\n\nconst FormWrapper = styled(\"div\")({\n height: \"calc(100vh - 260px)\",\n overflow: \"auto\"\n});\n\nexport interface ContentEntryFormPreviewProps {\n contentModel: CmsEditorContentModel;\n}\n\nexport const ContentEntryFormPreview = makeDecoratable(\n \"ContentEntryFormPreview\",\n (props: ContentEntryFormPreviewProps) => {\n const { contentModel } = props;\n\n const formRenderer = useFormRenderer(contentModel);\n\n return (\n <ContentEntryFormProvider\n entry={{}}\n model={contentModel}\n persistEntry={entry => Promise.resolve({ entry } as { entry: CmsContentEntry })}\n confirmNavigationIfDirty={false}\n >\n <ModelProvider model={contentModel}>\n <FormWrapper data-testid={\"cms-content-form\"}>\n {formRenderer ? (\n <CustomLayout model={contentModel} formRenderer={formRenderer} />\n ) : (\n <DefaultLayout model={contentModel} />\n )}\n </FormWrapper>\n </ModelProvider>\n </ContentEntryFormProvider>\n );\n }\n);\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,yBAAA,GAAAN,OAAA;AAAsE,SAAAO,iCAAA;AAEtE,IAAMC,WAAW,gBAAG,IAAAC,KAAA,CAAAC,OAAA,EAAO,KAAK,EAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,CAGhC,CAAC;AAMK,IAAMa,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,IAAAE,yBAAe,EAClD,yBAAyB,EACzB,UAACC,KAAmC,EAAK;EACrC,IAAQC,YAAY,GAAKD,KAAK,CAAtBC,YAAY;EAEpB,IAAMC,YAAY,GAAG,IAAAC,gCAAe,EAACF,YAAY,CAAC;EAElD,oBACI1B,MAAA,CAAAY,OAAA,CAAAiB,aAAA,CAACrB,yBAAA,CAAAsB,wBAAwB;IACrBC,KAAK,EAAE,CAAC,CAAE;IACVC,KAAK,EAAEN,YAAa;IACpBO,YAAY,EAAE,SAAAA,aAAAF,KAAK;MAAA,OAAIG,OAAO,CAACC,OAAO,CAAC;QAAEJ,KAAK,EAALA;MAAM,CAA+B,CAAC;IAAA,CAAC;IAChFK,wBAAwB,EAAE;EAAM,gBAEhCpC,MAAA,CAAAY,OAAA,CAAAiB,aAAA,CAACzB,cAAA,CAAAiC,aAAa;IAACL,KAAK,EAAEN;EAAa,gBAC/B1B,MAAA,CAAAY,OAAA,CAAAiB,aAAA,CAACnB,WAAW;IAAC,eAAa;EAAmB,GACxCiB,YAAY,gBACT3B,MAAA,CAAAY,OAAA,CAAAiB,aAAA,CAACvB,aAAA,CAAAgC,YAAY;IAACN,KAAK,EAAEN,YAAa;IAACC,YAAY,EAAEA;EAAa,CAAE,CAAC,gBAEjE3B,MAAA,CAAAY,OAAA,CAAAiB,aAAA,CAACtB,cAAA,CAAAgC,aAAa;IAACP,KAAK,EAAEN;EAAa,CAAE,CAEhC,CACF,CACO,CAAC;AAEnC,CACJ,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FormValidation } from "@webiny/form";
|
|
3
3
|
import { CmsContentEntry, CmsModel } from "@webiny/app-headless-cms-common/types";
|
|
4
|
+
import { CreateEntryResponse, UpdateEntryRevisionResponse } from "../../contexts/Cms";
|
|
4
5
|
interface SaveEntryOptions {
|
|
5
6
|
skipValidators?: string[];
|
|
7
|
+
createNewRevision?: boolean;
|
|
6
8
|
}
|
|
7
9
|
export interface ContentEntryFormContext {
|
|
8
10
|
entry: Partial<CmsContentEntry>;
|
|
@@ -13,14 +15,17 @@ export declare const ContentEntryFormContext: React.Context<ContentEntryFormCont
|
|
|
13
15
|
export interface SetSaveEntry {
|
|
14
16
|
(cb: ContentEntryFormContext["saveEntry"]): void;
|
|
15
17
|
}
|
|
18
|
+
export interface PersistEntry {
|
|
19
|
+
(entry: Partial<CmsContentEntry>, options?: SaveEntryOptions): Promise<CreateEntryResponse | UpdateEntryRevisionResponse>;
|
|
20
|
+
}
|
|
16
21
|
interface ContentEntryFormProviderProps {
|
|
17
22
|
entry: Partial<CmsContentEntry>;
|
|
18
23
|
model: CmsModel;
|
|
24
|
+
persistEntry: PersistEntry;
|
|
19
25
|
confirmNavigationIfDirty: boolean;
|
|
20
26
|
onAfterCreate?: (entry: CmsContentEntry) => void;
|
|
21
27
|
setSaveEntry?: SetSaveEntry;
|
|
22
|
-
addItemToListCache?: boolean;
|
|
23
28
|
children: React.ReactNode;
|
|
24
29
|
}
|
|
25
|
-
export declare const ContentEntryFormProvider: ({ model, entry, children, onAfterCreate, setSaveEntry,
|
|
30
|
+
export declare const ContentEntryFormProvider: ({ model, entry, children, persistEntry, onAfterCreate, setSaveEntry, confirmNavigationIfDirty }: ContentEntryFormProviderProps) => React.JSX.Element;
|
|
26
31
|
export {};
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.ContentEntryFormProvider = exports.ContentEntryFormContext = void 0;
|
|
9
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
12
|
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
@@ -17,8 +16,6 @@ var _reactRouter = require("@webiny/react-router");
|
|
|
17
16
|
var _form = require("@webiny/form");
|
|
18
17
|
var _appAdmin = require("@webiny/app-admin");
|
|
19
18
|
var _appHeadlessCmsCommon = require("@webiny/app-headless-cms-common");
|
|
20
|
-
var _ = require("../../..");
|
|
21
|
-
var _excluded = ["id"];
|
|
22
19
|
var promptMessage = "There are some unsaved changes! Are you sure you want to navigate away and discard all changes?";
|
|
23
20
|
var ContentEntryFormContext = exports.ContentEntryFormContext = /*#__PURE__*/_react.default.createContext(undefined);
|
|
24
21
|
var formValidationToMap = function formValidationToMap(invalidFields) {
|
|
@@ -30,9 +27,9 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
|
|
|
30
27
|
var model = _ref.model,
|
|
31
28
|
entry = _ref.entry,
|
|
32
29
|
children = _ref.children,
|
|
30
|
+
persistEntry = _ref.persistEntry,
|
|
33
31
|
onAfterCreate = _ref.onAfterCreate,
|
|
34
32
|
setSaveEntry = _ref.setSaveEntry,
|
|
35
|
-
addItemToListCache = _ref.addItemToListCache,
|
|
36
33
|
confirmNavigationIfDirty = _ref.confirmNavigationIfDirty;
|
|
37
34
|
var ref = (0, _react.useRef)(null);
|
|
38
35
|
var _useState = (0, _react.useState)({}),
|
|
@@ -41,7 +38,6 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
|
|
|
41
38
|
setInvalidFields = _useState2[1];
|
|
42
39
|
var _useSnackbar = (0, _appAdmin.useSnackbar)(),
|
|
43
40
|
showSnackbar = _useSnackbar.showSnackbar;
|
|
44
|
-
var contentEntry = (0, _.useContentEntry)();
|
|
45
41
|
var saveOptionsRef = (0, _react.useRef)({
|
|
46
42
|
skipValidators: undefined
|
|
47
43
|
});
|
|
@@ -52,37 +48,6 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
|
|
|
52
48
|
skipValidators: options.skipValidators
|
|
53
49
|
});
|
|
54
50
|
}, []);
|
|
55
|
-
var persistEntry = function persistEntry(_ref2) {
|
|
56
|
-
var entry = _ref2.entry,
|
|
57
|
-
isLocked = _ref2.isLocked;
|
|
58
|
-
var options = {
|
|
59
|
-
skipValidators: saveOptionsRef.current.skipValidators,
|
|
60
|
-
addItemToListCache: addItemToListCache
|
|
61
|
-
};
|
|
62
|
-
if (!entry.id) {
|
|
63
|
-
return contentEntry.createEntry({
|
|
64
|
-
entry: entry,
|
|
65
|
-
options: options
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
if (!isLocked) {
|
|
69
|
-
return contentEntry.updateEntryRevision({
|
|
70
|
-
entry: entry,
|
|
71
|
-
options: {
|
|
72
|
-
skipValidators: options?.skipValidators
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
var id = entry.id,
|
|
77
|
-
input = (0, _objectWithoutProperties2.default)(entry, _excluded);
|
|
78
|
-
return contentEntry.createEntryRevisionFrom({
|
|
79
|
-
id: id,
|
|
80
|
-
input: input,
|
|
81
|
-
options: {
|
|
82
|
-
skipValidators: options?.skipValidators
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
51
|
var onFormSubmit = async function onFormSubmit(data) {
|
|
87
52
|
var fieldsIds = model.fields.map(function (item) {
|
|
88
53
|
return item.fieldId;
|
|
@@ -90,11 +55,11 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
|
|
|
90
55
|
var formData = (0, _pick.default)(data, (0, _toConsumableArray2.default)(fieldsIds));
|
|
91
56
|
var gqlData = (0, _appHeadlessCmsCommon.prepareFormData)(formData, model.fields);
|
|
92
57
|
var isNewEntry = data.id === undefined;
|
|
93
|
-
var _await$persistEntry = await persistEntry({
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
58
|
+
var _await$persistEntry = await persistEntry((0, _objectSpread3.default)({
|
|
59
|
+
id: data.id
|
|
60
|
+
}, gqlData), {
|
|
61
|
+
skipValidators: saveOptionsRef.current.skipValidators,
|
|
62
|
+
createNewRevision: data.meta?.locked
|
|
98
63
|
}),
|
|
99
64
|
entry = _await$persistEntry.entry,
|
|
100
65
|
error = _await$persistEntry.error;
|
|
@@ -103,6 +68,7 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
|
|
|
103
68
|
setInvalidFields(error.data);
|
|
104
69
|
return;
|
|
105
70
|
}
|
|
71
|
+
showSnackbar("Entry saved successfully!");
|
|
106
72
|
setInvalidFields({});
|
|
107
73
|
var isNewRevision = !isNewEntry && data.id !== entry.id;
|
|
108
74
|
if ((isNewEntry || isNewRevision) && onAfterCreate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appAdmin","_appHeadlessCmsCommon","_","_excluded","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread3","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","onAfterCreate","setSaveEntry","addItemToListCache","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","contentEntry","useContentEntry","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","persistEntry","_ref2","isLocked","id","createEntry","updateEntryRevision","input","_objectWithoutProperties2","createEntryRevisionFrom","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","_await$persistEntry","meta","locked","error","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form, FormAPI, FormOnSubmit, FormValidation } from \"@webiny/form\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { useContentEntry } from \"~/index\";\nimport { PartialCmsContentEntryWithId } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormValidation;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\ninterface PersistEntryParams {\n entry: PartialCmsContentEntryWithId;\n isLocked: boolean;\n}\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n confirmNavigationIfDirty: boolean;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n addItemToListCache?: boolean;\n children: React.ReactNode;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation) => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message }),\n {} as Record<string, string | undefined>\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n onAfterCreate,\n setSaveEntry,\n addItemToListCache,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState({});\n const { showSnackbar } = useSnackbar();\n const contentEntry = useContentEntry();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const persistEntry = ({ entry, isLocked }: PersistEntryParams) => {\n const options = {\n skipValidators: saveOptionsRef.current.skipValidators,\n addItemToListCache\n };\n\n if (!entry.id) {\n return contentEntry.createEntry({ entry, options });\n }\n\n if (!isLocked) {\n return contentEntry.updateEntryRevision({\n entry,\n options: { skipValidators: options?.skipValidators }\n });\n }\n\n const { id, ...input } = entry;\n\n return contentEntry.createEntryRevisionFrom({\n id,\n input,\n options: { skipValidators: options?.skipValidators }\n });\n };\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry({\n entry: { id: data.id, ...gqlData },\n isLocked: data.meta?.locked === true\n });\n\n if (error) {\n showSnackbar(error.message);\n setInvalidFields(error.data as InvalidFieldError[]);\n return;\n }\n\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 50);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n data={entry}\n ref={ref}\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appAdmin","_appHeadlessCmsCommon","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread3","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","persistEntry","onAfterCreate","setSaveEntry","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","id","_await$persistEntry","createNewRevision","meta","locked","error","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form, FormAPI, FormOnSubmit, FormValidation } from \"@webiny/form\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { CreateEntryResponse, UpdateEntryRevisionResponse } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n createNewRevision?: boolean;\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormValidation;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\nexport interface PersistEntry {\n (entry: Partial<CmsContentEntry>, options?: SaveEntryOptions): Promise<\n CreateEntryResponse | UpdateEntryRevisionResponse\n >;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n persistEntry: PersistEntry;\n confirmNavigationIfDirty: boolean;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n children: React.ReactNode;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation) => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message }),\n {} as Record<string, string | undefined>\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n persistEntry,\n onAfterCreate,\n setSaveEntry,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState({});\n const { showSnackbar } = useSnackbar();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry(\n { id: data.id, ...gqlData },\n {\n skipValidators: saveOptionsRef.current.skipValidators,\n createNewRevision: data.meta?.locked\n }\n );\n\n if (error) {\n showSnackbar(error.message);\n setInvalidFields(error.data as InvalidFieldError[]);\n return;\n }\n\n showSnackbar(\"Entry saved successfully!\");\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 50);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n data={entry}\n ref={ref}\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAEA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AAGA,IAAMO,aAAa,GACf,iGAAiG;AAa9F,IAAMC,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,gBAAGE,cAAK,CAACC,aAAa,CACtDC,SACJ,CAAC;AA2BD,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,aAA6B,EAAK;EAC3D,OAAOC,MAAM,CAACC,IAAI,CAACF,aAAa,CAAC,CAACG,MAAM,CACpC,UAACC,GAAG,EAAEC,GAAG;IAAA,WAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MAAWH,GAAG,WAAAI,gBAAA,CAAAD,OAAA,MAAGF,GAAG,EAAGL,aAAa,CAACK,GAAG,CAAC,CAACI,OAAO;EAAA,CAAG,EAC7D,CAAC,CACL,CAAC;AACL,CAAC;AAEM,IAAMC,wBAAwB,GAAAf,OAAA,CAAAe,wBAAA,GAAG,SAA3BA,wBAAwBA,CAAAC,IAAA,EAQA;EAAA,IAPjCC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IACZC,aAAa,GAAAL,IAAA,CAAbK,aAAa;IACbC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,wBAAwB,GAAAP,IAAA,CAAxBO,wBAAwB;EAExB,IAAMC,GAAG,GAAG,IAAAC,aAAM,EAAkC,IAAI,CAAC;EACzD,IAAAC,SAAA,GAA0C,IAAAC,eAAQ,EAAC,CAAC,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,CAAAjB,OAAA,EAAAc,SAAA;IAA/CrB,aAAa,GAAAuB,UAAA;IAAEE,gBAAgB,GAAAF,UAAA;EACtC,IAAAG,YAAA,GAAyB,IAAAC,qBAAW,EAAC,CAAC;IAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;EACpB,IAAMC,cAAc,GAAG,IAAAT,aAAM,EAAmB;IAAEU,cAAc,EAAEhC;EAAU,CAAC,CAAC;EAE9E,IAAMiC,SAAS,GAAG,IAAAC,kBAAW,EAAC,kBAA0C;IAAA,IAAnCC,OAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAApC,SAAA,GAAAoC,SAAA,MAAG,CAAC,CAAC;IAC/DL,cAAc,CAACO,OAAO,CAACN,cAAc,GAAGG,OAAO,CAACH,cAAc;IAE9D,OAAOX,GAAG,CAACiB,OAAO,CAAEC,MAAM,CAACvC,SAAS,EAAE;MAClCgC,cAAc,EAAEG,OAAO,CAACH;IAC5B,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMQ,YAA2C,GAAG,eAA9CA,YAA2CA,CAASC,IAAI,EAAI;IAC9D,IAAMC,SAAS,GAAG5B,KAAK,CAAC6B,MAAM,CAACC,GAAG,CAAC,UAAAC,IAAI;MAAA,OAAIA,IAAI,CAACC,OAAO;IAAA,EAAC;IACxD,IAAMC,QAAQ,GAAG,IAAAC,aAAI,EAACP,IAAI,MAAAQ,mBAAA,CAAAxC,OAAA,EAAMiC,SAAS,CAAC,CAAC;IAE3C,IAAMQ,OAAO,GAAG,IAAAC,qCAAe,EAACJ,QAAQ,EAAEjC,KAAK,CAAC6B,MAAM,CAA6B;IACnF,IAAMS,UAAU,GAAGX,IAAI,CAACY,EAAE,KAAKrD,SAAS;IAExC,IAAAsD,mBAAA,GAAyB,MAAMrC,YAAY,KAAAT,cAAA,CAAAC,OAAA;QACrC4C,EAAE,EAAEZ,IAAI,CAACY;MAAE,GAAKH,OAAO,GACzB;QACIlB,cAAc,EAAED,cAAc,CAACO,OAAO,CAACN,cAAc;QACrDuB,iBAAiB,EAAEd,IAAI,CAACe,IAAI,EAAEC;MAClC,CACJ,CAAC;MANO1C,KAAK,GAAAuC,mBAAA,CAALvC,KAAK;MAAE2C,KAAK,GAAAJ,mBAAA,CAALI,KAAK;IAQpB,IAAIA,KAAK,EAAE;MACP5B,YAAY,CAAC4B,KAAK,CAAC/C,OAAO,CAAC;MAC3BgB,gBAAgB,CAAC+B,KAAK,CAACjB,IAA2B,CAAC;MACnD;IACJ;IAEAX,YAAY,CAAC,2BAA2B,CAAC;IACzCH,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEpB,IAAMgC,aAAa,GAAG,CAACP,UAAU,IAAIX,IAAI,CAACY,EAAE,KAAKtC,KAAK,CAACsC,EAAE;IAEzD,IAAI,CAACD,UAAU,IAAIO,aAAa,KAAKzC,aAAa,EAAE;MAChD;MACA,MAAM,IAAI0C,OAAO,CAAO,UAAAC,OAAO,EAAI;QAC/BC,UAAU,CAAC,YAAM;UACb5C,aAAa,CAACH,KAAK,CAAC;UACpB8C,OAAO,CAAC,CAAC;QACb,CAAC,EAAE,EAAE,CAAC;MACV,CAAC,CAAC;IACN;IAEA,OAAO9C,KAAK;EAChB,CAAC;EAED,IAAAgD,gBAAS,EAAC,YAAM;IACZ,IAAI,OAAO5C,YAAY,KAAK,UAAU,EAAE;MACpCA,YAAY,CAACc,SAAS,CAAC;IAC3B;EACJ,CAAC,EAAE,CAACd,YAAY,CAAC,CAAC;EAElB,oBACIjC,MAAA,CAAAuB,OAAA,CAAAuD,aAAA,CAACxE,KAAA,CAAAyE,IAAI;IACDC,QAAQ,EAAE1B,YAAa;IACvBC,IAAI,EAAE1B,KAAM;IACZM,GAAG,EAAEA,GAAI;IACTnB,aAAa,EAAEA,aAAc;IAC7BiE,SAAS,EAAE,SAAAA,UAAAjE,aAAa,EAAI;MACxByB,gBAAgB,CAAC1B,mBAAmB,CAACC,aAAa,CAAC,CAAC;MACpD4B,YAAY,CAAC,iEAAiE,CAAC;IACnF;EAAE,GAED,UAAAsC,SAAS,EAAI;IACV,IAAMC,OAAgC,GAAG;MACrCtD,KAAK,EAAEqD,SAAS,CAAC3B,IAAI;MACrBR,SAAS,EAATA,SAAS;MACT/B,aAAa,EAAbA;IACJ,CAAC;IACD,oBACIhB,MAAA,CAAAuB,OAAA,CAAAuD,aAAA,CAACpE,uBAAuB,CAAC0E,QAAQ;MAACC,KAAK,EAAEF;IAAQ,GAC5CjD,wBAAwB,gBACrBlC,MAAA,CAAAuB,OAAA,CAAAuD,aAAA,CAACvE,SAAA,CAAA+E,gBAAgB;MAACC,IAAI,EAAE;IAAuB,gBAC3CvF,MAAA,CAAAuB,OAAA,CAAAuD,aAAA,CAACzE,YAAA,CAAAmF,MAAM;MAACC,IAAI,EAAE,CAACP,SAAS,CAACQ,IAAI,CAACC,UAAW;MAAClE,OAAO,EAAEhB;IAAc,CAAE,CACrD,CAAC,GACnB,IAAI,EACPqB,QAC6B,CAAC;EAE3C,CACE,CAAC;AAEf,CAAC","ignoreList":[]}
|
|
@@ -37,7 +37,7 @@ var DeleteEntry = exports.DeleteEntry = function DeleteEntry() {
|
|
|
37
37
|
}
|
|
38
38
|
return /*#__PURE__*/_react.default.createElement(OptionsMenuItem, {
|
|
39
39
|
icon: /*#__PURE__*/_react.default.createElement(_delete.ReactComponent, null),
|
|
40
|
-
label: "Trash",
|
|
40
|
+
label: "Trash entry",
|
|
41
41
|
onAction: deleteEntry,
|
|
42
42
|
disabled: !entry.id || loading,
|
|
43
43
|
"data-testid": "cms.content-form.header.delete"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_delete","_appAco","_hooks","_contentEntries","_useContentEntry2","_excluded","DeleteEntry","exports","_useNavigateFolder","useNavigateFolder","navigateToFolder","_useContentEntry","useContentEntry","entry","loading","contentEntry","_objectWithoutProperties2","default","_usePermission","usePermission","canDelete","_ContentEntryEditorCo","ContentEntryEditorConfig","Actions","MenuItemAction","useOptionsMenuItem","OptionsMenuItem","deleteEntry","response","id","entryId","wbyAco_location","folderId","createElement","icon","ReactComponent","label","onAction","disabled"],"sources":["DeleteEntry.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete.svg\";\nimport { useNavigateFolder } from \"@webiny/app-aco\";\nimport { usePermission } from \"~/admin/hooks\";\nimport { ContentEntryEditorConfig } from \"~/admin/config/contentEntries\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\n\nexport const DeleteEntry = () => {\n const { navigateToFolder } = useNavigateFolder();\n const { entry, loading, ...contentEntry } = useContentEntry();\n const { canDelete } = usePermission();\n\n const { OptionsMenuItem } =\n ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();\n\n const deleteEntry = async () => {\n const response = await contentEntry.deleteEntry({ id: entry.entryId });\n if (typeof response === \"boolean\") {\n navigateToFolder(entry.wbyAco_location.folderId);\n }\n };\n\n if (!canDelete(entry, \"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <OptionsMenuItem\n icon={<DeleteIcon />}\n label={\"Trash\"}\n onAction={deleteEntry}\n disabled={!entry.id || loading}\n data-testid={\"cms.content-form.header.delete\"}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAAqF,IAAAM,SAAA;AAE9E,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAA,EAAS;EAC7B,IAAAE,kBAAA,GAA6B,IAAAC,yBAAiB,EAAC,CAAC;IAAxCC,gBAAgB,GAAAF,kBAAA,CAAhBE,gBAAgB;EACxB,IAAAC,gBAAA,GAA4C,IAAAC,iCAAe,EAAC,CAAC;IAArDC,KAAK,GAAAF,gBAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,gBAAA,CAAPG,OAAO;IAAKC,YAAY,OAAAC,yBAAA,CAAAC,OAAA,EAAAN,gBAAA,EAAAN,SAAA;EACvC,IAAAa,cAAA,GAAsB,IAAAC,oBAAa,EAAC,CAAC;IAA7BC,SAAS,GAAAF,cAAA,CAATE,SAAS;EAEjB,IAAAC,qBAAA,GACIC,wCAAwB,CAACC,OAAO,CAACC,cAAc,CAACC,kBAAkB,CAAC,CAAC;IADhEC,eAAe,GAAAL,qBAAA,CAAfK,eAAe;EAGvB,IAAMC,WAAW,GAAG,eAAdA,WAAWA,CAAA,EAAe;IAC5B,IAAMC,QAAQ,GAAG,MAAMb,YAAY,CAACY,WAAW,CAAC;MAAEE,EAAE,EAAEhB,KAAK,CAACiB;IAAQ,CAAC,CAAC;IACtE,IAAI,OAAOF,QAAQ,KAAK,SAAS,EAAE;MAC/BlB,gBAAgB,CAACG,KAAK,CAACkB,eAAe,CAACC,QAAQ,CAAC;IACpD;EACJ,CAAC;EAED,IAAI,CAACZ,SAAS,CAACP,KAAK,EAAE,kBAAkB,CAAC,EAAE;IACvC,OAAO,IAAI;EACf;EAEA,oBACIhB,MAAA,CAAAoB,OAAA,CAAAgB,aAAA,CAACP,eAAe;IACZQ,IAAI,eAAErC,MAAA,CAAAoB,OAAA,CAAAgB,aAAA,CAACjC,OAAA,CAAAmC,cAAU,MAAE,CAAE;IACrBC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_delete","_appAco","_hooks","_contentEntries","_useContentEntry2","_excluded","DeleteEntry","exports","_useNavigateFolder","useNavigateFolder","navigateToFolder","_useContentEntry","useContentEntry","entry","loading","contentEntry","_objectWithoutProperties2","default","_usePermission","usePermission","canDelete","_ContentEntryEditorCo","ContentEntryEditorConfig","Actions","MenuItemAction","useOptionsMenuItem","OptionsMenuItem","deleteEntry","response","id","entryId","wbyAco_location","folderId","createElement","icon","ReactComponent","label","onAction","disabled"],"sources":["DeleteEntry.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete.svg\";\nimport { useNavigateFolder } from \"@webiny/app-aco\";\nimport { usePermission } from \"~/admin/hooks\";\nimport { ContentEntryEditorConfig } from \"~/admin/config/contentEntries\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\n\nexport const DeleteEntry = () => {\n const { navigateToFolder } = useNavigateFolder();\n const { entry, loading, ...contentEntry } = useContentEntry();\n const { canDelete } = usePermission();\n\n const { OptionsMenuItem } =\n ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();\n\n const deleteEntry = async () => {\n const response = await contentEntry.deleteEntry({ id: entry.entryId });\n if (typeof response === \"boolean\") {\n navigateToFolder(entry.wbyAco_location.folderId);\n }\n };\n\n if (!canDelete(entry, \"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <OptionsMenuItem\n icon={<DeleteIcon />}\n label={\"Trash entry\"}\n onAction={deleteEntry}\n disabled={!entry.id || loading}\n data-testid={\"cms.content-form.header.delete\"}\n />\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAAqF,IAAAM,SAAA;AAE9E,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAA,EAAS;EAC7B,IAAAE,kBAAA,GAA6B,IAAAC,yBAAiB,EAAC,CAAC;IAAxCC,gBAAgB,GAAAF,kBAAA,CAAhBE,gBAAgB;EACxB,IAAAC,gBAAA,GAA4C,IAAAC,iCAAe,EAAC,CAAC;IAArDC,KAAK,GAAAF,gBAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,gBAAA,CAAPG,OAAO;IAAKC,YAAY,OAAAC,yBAAA,CAAAC,OAAA,EAAAN,gBAAA,EAAAN,SAAA;EACvC,IAAAa,cAAA,GAAsB,IAAAC,oBAAa,EAAC,CAAC;IAA7BC,SAAS,GAAAF,cAAA,CAATE,SAAS;EAEjB,IAAAC,qBAAA,GACIC,wCAAwB,CAACC,OAAO,CAACC,cAAc,CAACC,kBAAkB,CAAC,CAAC;IADhEC,eAAe,GAAAL,qBAAA,CAAfK,eAAe;EAGvB,IAAMC,WAAW,GAAG,eAAdA,WAAWA,CAAA,EAAe;IAC5B,IAAMC,QAAQ,GAAG,MAAMb,YAAY,CAACY,WAAW,CAAC;MAAEE,EAAE,EAAEhB,KAAK,CAACiB;IAAQ,CAAC,CAAC;IACtE,IAAI,OAAOF,QAAQ,KAAK,SAAS,EAAE;MAC/BlB,gBAAgB,CAACG,KAAK,CAACkB,eAAe,CAACC,QAAQ,CAAC;IACpD;EACJ,CAAC;EAED,IAAI,CAACZ,SAAS,CAACP,KAAK,EAAE,kBAAkB,CAAC,EAAE;IACvC,OAAO,IAAI;EACf;EAEA,oBACIhB,MAAA,CAAAoB,OAAA,CAAAgB,aAAA,CAACP,eAAe;IACZQ,IAAI,eAAErC,MAAA,CAAAoB,OAAA,CAAAgB,aAAA,CAACjC,OAAA,CAAAmC,cAAU,MAAE,CAAE;IACrBC,KAAK,EAAE,aAAc;IACrBC,QAAQ,EAAEV,WAAY;IACtBW,QAAQ,EAAE,CAACzB,KAAK,CAACgB,EAAE,IAAIf,OAAQ;IAC/B,eAAa;EAAiC,CACjD,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SaveAction = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _ContentEntryEditorConfig = require("../../../../ContentEntryEditorConfig");
|
|
10
|
+
var _useContentEntryForm2 = require("../useContentEntryForm");
|
|
11
|
+
var Actions = _ContentEntryEditorConfig.ContentEntryEditorConfig.Actions;
|
|
12
|
+
var SaveAction = exports.SaveAction = function SaveAction() {
|
|
13
|
+
var useButtons = Actions.ButtonAction.useButtons;
|
|
14
|
+
var _useButtons = useButtons(),
|
|
15
|
+
ButtonPrimary = _useButtons.ButtonPrimary;
|
|
16
|
+
var _useContentEntryForm = (0, _useContentEntryForm2.useContentEntryForm)(),
|
|
17
|
+
saveEntry = _useContentEntryForm.saveEntry;
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement(ButtonPrimary, {
|
|
19
|
+
"data-testid": "cms-content-save-content-button",
|
|
20
|
+
onAction: saveEntry
|
|
21
|
+
}, "Save");
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=SaveAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_ContentEntryEditorConfig","_useContentEntryForm2","Actions","ContentEntryEditorConfig","SaveAction","exports","useButtons","ButtonAction","_useButtons","ButtonPrimary","_useContentEntryForm","useContentEntryForm","saveEntry","default","createElement","onAction"],"sources":["SaveAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"~/ContentEntryEditorConfig\";\nimport { useContentEntryForm } from \"~/admin/components/ContentEntryForm/useContentEntryForm\";\n\nconst { Actions } = ContentEntryEditorConfig;\n\nexport const SaveAction = () => {\n const { useButtons } = Actions.ButtonAction;\n const { ButtonPrimary } = useButtons();\n const { saveEntry } = useContentEntryForm();\n\n return (\n <ButtonPrimary data-testid={\"cms-content-save-content-button\"} onAction={saveEntry}>\n Save\n </ButtonPrimary>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AAEA,IAAQG,OAAO,GAAKC,kDAAwB,CAApCD,OAAO;AAER,IAAME,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,SAAbA,UAAUA,CAAA,EAAS;EAC5B,IAAQE,UAAU,GAAKJ,OAAO,CAACK,YAAY,CAAnCD,UAAU;EAClB,IAAAE,WAAA,GAA0BF,UAAU,CAAC,CAAC;IAA9BG,aAAa,GAAAD,WAAA,CAAbC,aAAa;EACrB,IAAAC,oBAAA,GAAsB,IAAAC,yCAAmB,EAAC,CAAC;IAAnCC,SAAS,GAAAF,oBAAA,CAATE,SAAS;EAEjB,oBACIf,MAAA,CAAAgB,OAAA,CAAAC,aAAA,CAACL,aAAa;IAAC,eAAa,iCAAkC;IAACM,QAAQ,EAAEH;EAAU,GAAC,MAErE,CAAC;AAExB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SingletonHeader = void 0;
|
|
8
|
+
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
11
|
+
var _SaveAction = require("./SaveAction");
|
|
12
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
13
|
+
var ToolbarGrid = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
|
|
14
|
+
target: "et5j2kp2"
|
|
15
|
+
} : {
|
|
16
|
+
target: "et5j2kp2",
|
|
17
|
+
label: "ToolbarGrid"
|
|
18
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
19
|
+
name: "10cyi6j",
|
|
20
|
+
styles: "padding:15px;border-bottom:1px solid var(--mdc-theme-on-background);display:flex;justify-content:space-between;align-items:center"
|
|
21
|
+
} : {
|
|
22
|
+
name: "10cyi6j",
|
|
23
|
+
styles: "padding:15px;border-bottom:1px solid var(--mdc-theme-on-background);display:flex;justify-content:space-between;align-items:center",
|
|
24
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNpbmdsZXRvbkhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSzhCIiwiZmlsZSI6IlNpbmdsZXRvbkhlYWRlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBCdXR0b25zIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFNhdmVBY3Rpb24gfSBmcm9tIFwiLi9TYXZlQWN0aW9uXCI7XG5cbmNvbnN0IFRvb2xiYXJHcmlkID0gc3R5bGVkLmRpdmBcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tZGMtdGhlbWUtb24tYmFja2dyb3VuZCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IEFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IE1vZGVsTmFtZSA9IHN0eWxlZC5kaXZgXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5KTtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuYDtcblxuZXhwb3J0IGludGVyZmFjZSBTaW5nbGV0b25IZWFkZXJQcm9wcyB7XG4gICAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFNpbmdsZXRvbkhlYWRlciA9ICh7IHRpdGxlIH06IFNpbmdsZXRvbkhlYWRlclByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2xiYXJHcmlkPlxuICAgICAgICAgICAgPE1vZGVsTmFtZT57dGl0bGV9PC9Nb2RlbE5hbWU+XG4gICAgICAgICAgICA8QWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8QnV0dG9ucyBhY3Rpb25zPXtbeyBuYW1lOiBcInNhdmVcIiwgZWxlbWVudDogPFNhdmVBY3Rpb24gLz4gfV19IC8+XG4gICAgICAgICAgICA8L0FjdGlvbnM+XG4gICAgICAgIDwvVG9vbGJhckdyaWQ+XG4gICAgKTtcbn07XG4iXX0= */",
|
|
25
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
26
|
+
});
|
|
27
|
+
var Actions = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
|
|
28
|
+
target: "et5j2kp1"
|
|
29
|
+
} : {
|
|
30
|
+
target: "et5j2kp1",
|
|
31
|
+
label: "Actions"
|
|
32
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
33
|
+
name: "s5xdrg",
|
|
34
|
+
styles: "display:flex;align-items:center"
|
|
35
|
+
} : {
|
|
36
|
+
name: "s5xdrg",
|
|
37
|
+
styles: "display:flex;align-items:center",
|
|
38
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNpbmdsZXRvbkhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYTBCIiwiZmlsZSI6IlNpbmdsZXRvbkhlYWRlci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBCdXR0b25zIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFNhdmVBY3Rpb24gfSBmcm9tIFwiLi9TYXZlQWN0aW9uXCI7XG5cbmNvbnN0IFRvb2xiYXJHcmlkID0gc3R5bGVkLmRpdmBcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tZGMtdGhlbWUtb24tYmFja2dyb3VuZCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IEFjdGlvbnMgPSBzdHlsZWQuZGl2YFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IE1vZGVsTmFtZSA9IHN0eWxlZC5kaXZgXG4gICAgZm9udC1mYW1pbHk6IHZhcigtLW1kYy10eXBvZ3JhcGh5LWZvbnQtZmFtaWx5KTtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuYDtcblxuZXhwb3J0IGludGVyZmFjZSBTaW5nbGV0b25IZWFkZXJQcm9wcyB7XG4gICAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFNpbmdsZXRvbkhlYWRlciA9ICh7IHRpdGxlIH06IFNpbmdsZXRvbkhlYWRlclByb3BzKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgPFRvb2xiYXJHcmlkPlxuICAgICAgICAgICAgPE1vZGVsTmFtZT57dGl0bGV9PC9Nb2RlbE5hbWU+XG4gICAgICAgICAgICA8QWN0aW9ucz5cbiAgICAgICAgICAgICAgICA8QnV0dG9ucyBhY3Rpb25zPXtbeyBuYW1lOiBcInNhdmVcIiwgZWxlbWVudDogPFNhdmVBY3Rpb24gLz4gfV19IC8+XG4gICAgICAgICAgICA8L0FjdGlvbnM+XG4gICAgICAgIDwvVG9vbGJhckdyaWQ+XG4gICAgKTtcbn07XG4iXX0= */",
|
|
39
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
40
|
+
});
|
|
41
|
+
var ModelName = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
|
|
42
|
+
target: "et5j2kp0"
|
|
43
|
+
} : {
|
|
44
|
+
target: "et5j2kp0",
|
|
45
|
+
label: "ModelName"
|
|
46
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
47
|
+
name: "8yntog",
|
|
48
|
+
styles: "font-family:var(--mdc-typography-font-family);padding:10px 0;font-size:24px"
|
|
49
|
+
} : {
|
|
50
|
+
name: "8yntog",
|
|
51
|
+
styles: "font-family:var(--mdc-typography-font-family);padding:10px 0;font-size:24px",
|
|
52
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNpbmdsZXRvbkhlYWRlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0I0QiIsImZpbGUiOiJTaW5nbGV0b25IZWFkZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgQnV0dG9ucyB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pblwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBTYXZlQWN0aW9uIH0gZnJvbSBcIi4vU2F2ZUFjdGlvblwiO1xuXG5jb25zdCBUb29sYmFyR3JpZCA9IHN0eWxlZC5kaXZgXG4gICAgcGFkZGluZzogMTVweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbWRjLXRoZW1lLW9uLWJhY2tncm91bmQpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBBY3Rpb25zID0gc3R5bGVkLmRpdmBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBNb2RlbE5hbWUgPSBzdHlsZWQuZGl2YFxuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1tZGMtdHlwb2dyYXBoeS1mb250LWZhbWlseSk7XG4gICAgcGFkZGluZzogMTBweCAwO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xldG9uSGVhZGVyUHJvcHMge1xuICAgIHRpdGxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTaW5nbGV0b25IZWFkZXIgPSAoeyB0aXRsZSB9OiBTaW5nbGV0b25IZWFkZXJQcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxUb29sYmFyR3JpZD5cbiAgICAgICAgICAgIDxNb2RlbE5hbWU+e3RpdGxlfTwvTW9kZWxOYW1lPlxuICAgICAgICAgICAgPEFjdGlvbnM+XG4gICAgICAgICAgICAgICAgPEJ1dHRvbnMgYWN0aW9ucz17W3sgbmFtZTogXCJzYXZlXCIsIGVsZW1lbnQ6IDxTYXZlQWN0aW9uIC8+IH1dfSAvPlxuICAgICAgICAgICAgPC9BY3Rpb25zPlxuICAgICAgICA8L1Rvb2xiYXJHcmlkPlxuICAgICk7XG59O1xuIl19 */",
|
|
53
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
54
|
+
});
|
|
55
|
+
var SingletonHeader = exports.SingletonHeader = function SingletonHeader(_ref) {
|
|
56
|
+
var title = _ref.title;
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement(ToolbarGrid, null, /*#__PURE__*/_react.default.createElement(ModelName, null, title), /*#__PURE__*/_react.default.createElement(Actions, null, /*#__PURE__*/_react.default.createElement(_appAdmin.Buttons, {
|
|
58
|
+
actions: [{
|
|
59
|
+
name: "save",
|
|
60
|
+
element: /*#__PURE__*/_react.default.createElement(_SaveAction.SaveAction, null)
|
|
61
|
+
}]
|
|
62
|
+
})));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=SingletonHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_appAdmin","_SaveAction","_EMOTION_STRINGIFIED_CSS_ERROR__","ToolbarGrid","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","Actions","ModelName","SingletonHeader","exports","_ref","title","createElement","Buttons","actions","element","SaveAction"],"sources":["SingletonHeader.tsx"],"sourcesContent":["import React from \"react\";\nimport { Buttons } from \"@webiny/app-admin\";\nimport styled from \"@emotion/styled\";\nimport { SaveAction } from \"./SaveAction\";\n\nconst ToolbarGrid = styled.div`\n padding: 15px;\n border-bottom: 1px solid var(--mdc-theme-on-background);\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Actions = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ModelName = styled.div`\n font-family: var(--mdc-typography-font-family);\n padding: 10px 0;\n font-size: 24px;\n`;\n\nexport interface SingletonHeaderProps {\n title: string;\n}\n\nexport const SingletonHeader = ({ title }: SingletonHeaderProps) => {\n return (\n <ToolbarGrid>\n <ModelName>{title}</ModelName>\n <Actions>\n <Buttons actions={[{ name: \"save\", element: <SaveAction /> }]} />\n </Actions>\n </ToolbarGrid>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAA0C,SAAAG,iCAAA;AAE1C,IAAMC,WAAW,oBAAAC,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,EAMhB;AAED,IAAMa,OAAO,oBAAAX,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,EAGZ;AAED,IAAMc,SAAS,oBAAAZ,KAAA,CAAAC,OAAA,SAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAZ;AAAA,EAId;AAMM,IAAMe,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,SAAlBA,eAAeA,CAAAE,IAAA,EAAwC;EAAA,IAAlCC,KAAK,GAAAD,IAAA,CAALC,KAAK;EACnC,oBACIvB,MAAA,CAAAQ,OAAA,CAAAgB,aAAA,CAAClB,WAAW,qBACRN,MAAA,CAAAQ,OAAA,CAAAgB,aAAA,CAACL,SAAS,QAAEI,KAAiB,CAAC,eAC9BvB,MAAA,CAAAQ,OAAA,CAAAgB,aAAA,CAACN,OAAO,qBACJlB,MAAA,CAAAQ,OAAA,CAAAgB,aAAA,CAACrB,SAAA,CAAAsB,OAAO;IAACC,OAAO,EAAE,CAAC;MAAEZ,IAAI,EAAE,MAAM;MAAEa,OAAO,eAAE3B,MAAA,CAAAQ,OAAA,CAAAgB,aAAA,CAACpB,WAAA,CAAAwB,UAAU,MAAE;IAAE,CAAC;EAAE,CAAE,CAC3D,CACA,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./SingletonHeader";
|