@webiny/app-headless-cms 5.41.0-dbt.0 → 5.41.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.
Files changed (99) hide show
  1. package/ContentEntryEditorConfig.d.ts +32 -6
  2. package/ContentEntryEditorConfig.js +5 -0
  3. package/ContentEntryEditorConfig.js.map +1 -1
  4. package/ContentEntryListConfig.d.ts +1 -1
  5. package/HeadlessCMS.js +2 -1
  6. package/HeadlessCMS.js.map +1 -1
  7. package/admin/components/ContentEntries/BulkActions/ActionDelete.js +3 -1
  8. package/admin/components/ContentEntries/BulkActions/ActionDelete.js.map +1 -1
  9. package/admin/components/ContentEntries/BulkActions/ActionMove.js +10 -2
  10. package/admin/components/ContentEntries/BulkActions/ActionMove.js.map +1 -1
  11. package/admin/components/ContentEntries/BulkActions/ActionPublish.js +3 -1
  12. package/admin/components/ContentEntries/BulkActions/ActionPublish.js.map +1 -1
  13. package/admin/components/ContentEntries/BulkActions/ActionUnpublish.js +3 -1
  14. package/admin/components/ContentEntries/BulkActions/ActionUnpublish.js.map +1 -1
  15. package/admin/components/ContentEntryForm/ContentEntryForm.d.ts +12 -17
  16. package/admin/components/ContentEntryForm/ContentEntryForm.js +5 -6
  17. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
  18. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +6 -1
  19. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
  20. package/admin/components/ContentEntryForm/ContentEntryFormProvider.d.ts +7 -2
  21. package/admin/components/ContentEntryForm/ContentEntryFormProvider.js +8 -42
  22. package/admin/components/ContentEntryForm/ContentEntryFormProvider.js.map +1 -1
  23. package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js +1 -1
  24. package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js.map +1 -1
  25. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.styles.d.ts +7 -7
  26. package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.d.ts +2 -0
  27. package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.js +24 -0
  28. package/admin/components/ContentEntryForm/SingletonHeader/SaveAction.js.map +1 -0
  29. package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.d.ts +5 -0
  30. package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.js +65 -0
  31. package/admin/components/ContentEntryForm/SingletonHeader/SingletonHeader.js.map +1 -0
  32. package/admin/components/ContentEntryForm/SingletonHeader/index.d.ts +1 -0
  33. package/admin/components/ContentEntryForm/SingletonHeader/index.js +18 -0
  34. package/admin/components/ContentEntryForm/SingletonHeader/index.js.map +1 -0
  35. package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.d.ts +8 -0
  36. package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.js +18 -0
  37. package/admin/components/Decorators/ShowConfirmationOnDeleteRevision/EntryRevisionDeletedSnackbarMessage.js.map +1 -0
  38. package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.d.ts +2 -0
  39. package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js +106 -0
  40. package/admin/components/Decorators/ShowConfirmationOnDeleteRevision.js.map +1 -0
  41. package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +1 -1
  42. package/admin/config/contentEntries/list/Browser/BulkAction.d.ts +6 -1
  43. package/admin/config/contentEntries/list/Browser/BulkAction.js +11 -3
  44. package/admin/config/contentEntries/list/Browser/BulkAction.js.map +1 -1
  45. package/admin/config/contentEntries/list/Browser/index.d.ts +1 -1
  46. package/admin/config/contentEntries/list/ContentEntryListConfig.d.ts +1 -1
  47. package/admin/contexts/Cms/index.d.ts +31 -8
  48. package/admin/contexts/Cms/index.js +146 -46
  49. package/admin/contexts/Cms/index.js.map +1 -1
  50. package/admin/hooks/useModelFieldGraphqlContext.d.ts +1 -1
  51. package/admin/hooks/usePersistEntry.d.ts +12 -0
  52. package/admin/hooks/usePersistEntry.js +48 -0
  53. package/admin/hooks/usePersistEntry.js.map +1 -0
  54. package/admin/lexicalConfig/LexicalEditorConfig.js +6 -10
  55. package/admin/lexicalConfig/LexicalEditorConfig.js.map +1 -1
  56. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +11 -20
  57. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
  58. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +6 -14
  59. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
  60. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +2 -0
  61. package/admin/plugins/fieldRenderers/dateTime/utils.js +16 -1
  62. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
  63. package/admin/plugins/fieldRenderers/object/FieldSettings.d.ts +1 -1
  64. package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js +32 -12
  65. package/admin/plugins/fieldRenderers/ref/components/NewReferencedEntryDialog.js.map +1 -1
  66. package/admin/plugins/fields/ref.js +7 -1
  67. package/admin/plugins/fields/ref.js.map +1 -1
  68. package/admin/plugins/index.d.ts +3 -3
  69. package/admin/views/contentEntries/ContentEntriesModule.js +2 -1
  70. package/admin/views/contentEntries/ContentEntriesModule.js.map +1 -1
  71. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +8 -0
  72. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +69 -22
  73. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  74. package/admin/views/contentEntries/ContentEntry/RevisionsList/PublishEntryRevisionListItem.js +1 -1
  75. package/admin/views/contentEntries/ContentEntry/RevisionsList/PublishEntryRevisionListItem.js.map +1 -1
  76. package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js +6 -6
  77. package/admin/views/contentEntries/ContentEntry/RevisionsList/RevisionListItem.js.map +1 -1
  78. package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.js +28 -22
  79. package/admin/views/contentEntries/ContentEntry/RevisionsList/useRevision.js.map +1 -1
  80. package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.d.ts +20 -0
  81. package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js +66 -0
  82. package/admin/views/contentEntries/ContentEntry/SingletonContentEntry.js.map +1 -0
  83. package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.d.ts +20 -0
  84. package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.js +75 -0
  85. package/admin/views/contentEntries/ContentEntry/SingletonContentEntryContext.js.map +1 -0
  86. package/admin/views/contentEntries/ContentEntry.js +11 -4
  87. package/admin/views/contentEntries/ContentEntry.js.map +1 -1
  88. package/admin/views/contentEntries/SingletonContentEntryModule.d.ts +2 -0
  89. package/admin/views/contentEntries/SingletonContentEntryModule.js +33 -0
  90. package/admin/views/contentEntries/SingletonContentEntryModule.js.map +1 -0
  91. package/admin/views/contentEntries/hooks/useSingletonContentEntry.d.ts +8 -0
  92. package/admin/views/contentEntries/hooks/useSingletonContentEntry.js +18 -0
  93. package/admin/views/contentEntries/hooks/useSingletonContentEntry.js.map +1 -0
  94. package/admin/views/contentModels/ContentModelsDataList.js +13 -4
  95. package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
  96. package/admin/views/contentModels/NewContentModelDialog.js +58 -27
  97. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  98. package/allPlugins.d.ts +4 -4
  99. package/package.json +28 -28
@@ -80,21 +80,21 @@ export declare const ContentEntryEditorConfig: (({ priority, children }: import(
80
80
  } & {
81
81
  createDecorator: (decorator: import("@webiny/react-composition").Decorator<() => import("./admin/views/contentEntries/ContentEntry/ContentEntryContext").ContentEntryContext>) => () => import("react").JSX.Element;
82
82
  };
83
- ContentEntryForm: (({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
84
- original: ({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
83
+ ContentEntryForm: (({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
84
+ original: ({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
85
85
  originalName: string;
86
86
  displayName: string;
87
87
  } & {
88
- original: (({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
89
- original: ({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
88
+ original: (({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
89
+ original: ({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
90
90
  originalName: string;
91
91
  displayName: string;
92
92
  };
93
93
  originalName: string;
94
94
  displayName: string;
95
95
  } & {
96
- createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
97
- original: ({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
96
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element) & {
97
+ original: ({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: import("./admin/components/ContentEntryForm/ContentEntryForm").ContentEntryFormProps) => import("react").JSX.Element;
98
98
  originalName: string;
99
99
  displayName: string;
100
100
  }>) => (props: unknown) => import("react").JSX.Element;
@@ -126,6 +126,32 @@ export declare const ContentEntryEditorConfig: (({ priority, children }: import(
126
126
  }>) => (props: unknown) => import("react").JSX.Element;
127
127
  };
128
128
  };
129
+ SingletonContentEntry: (() => import("react").JSX.Element) & {
130
+ original: () => import("react").JSX.Element;
131
+ originalName: string;
132
+ displayName: string;
133
+ } & {
134
+ original: (() => import("react").JSX.Element) & {
135
+ original: () => import("react").JSX.Element;
136
+ originalName: string;
137
+ displayName: string;
138
+ };
139
+ originalName: string;
140
+ displayName: string;
141
+ } & {
142
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(() => import("react").JSX.Element) & {
143
+ original: () => import("react").JSX.Element;
144
+ originalName: string;
145
+ displayName: string;
146
+ }>) => (props: unknown) => import("react").JSX.Element;
147
+ } & {
148
+ useSingletonContentEntry: import("@webiny/react-composition").GenericHook<unknown, import("./admin/views/contentEntries/ContentEntry/SingletonContentEntryContext").SingletonContentEntryContext> & {
149
+ original: import("@webiny/react-composition").GenericHook<unknown, import("./admin/views/contentEntries/ContentEntry/SingletonContentEntryContext").SingletonContentEntryContext>;
150
+ originalName: string;
151
+ } & {
152
+ createDecorator: (decorator: import("@webiny/react-composition").Decorator<() => import("./admin/views/contentEntries/ContentEntry/SingletonContentEntryContext").SingletonContentEntryContext>) => () => import("react").JSX.Element;
153
+ };
154
+ };
129
155
  FieldRenderers: {
130
156
  DynamicZone: {
131
157
  Template: {
@@ -11,6 +11,8 @@ var _useContentEntryForm = require("./admin/components/ContentEntryForm/useConte
11
11
  var _hooks = require("./admin/views/contentEntries/hooks");
12
12
  var _ContentEntry = require("./admin/views/contentEntries/ContentEntry");
13
13
  var _contentEntries = require("./admin/config/contentEntries");
14
+ var _SingletonContentEntry = require("./admin/views/contentEntries/ContentEntry/SingletonContentEntry");
15
+ var _useSingletonContentEntry = require("./admin/views/contentEntries/hooks/useSingletonContentEntry");
14
16
  var ContentEntryEditorConfig = exports.ContentEntryEditorConfig = Object.assign(_contentEntries.ContentEntryEditorConfig, {
15
17
  ContentEntry: Object.assign(_ContentEntry.ContentEntry, {
16
18
  useContentEntry: _hooks.useContentEntry,
@@ -19,6 +21,9 @@ var ContentEntryEditorConfig = exports.ContentEntryEditorConfig = Object.assign(
19
21
  }),
20
22
  ContentEntryFormPreview: _ContentEntryFormPreview.ContentEntryFormPreview
21
23
  }),
24
+ SingletonContentEntry: Object.assign(_SingletonContentEntry.SingletonContentEntry, {
25
+ useSingletonContentEntry: _useSingletonContentEntry.useSingletonContentEntry
26
+ }),
22
27
  FieldRenderers: {
23
28
  DynamicZone: {
24
29
  Template: {
@@ -1 +1 @@
1
- {"version":3,"names":["_dynamicZone","require","_ContentEntryForm","_ContentEntryFormPreview","_useContentEntryForm","_hooks","_ContentEntry","_contentEntries","ContentEntryEditorConfig","exports","Object","assign","BaseContentEntryEditorConfig","ContentEntry","useContentEntry","ContentEntryForm","BaseContentEntryForm","useContentEntryForm","ContentEntryFormPreview","FieldRenderers","DynamicZone","Template","useTemplate","Container","DynamicZoneContainer","MultiValue","MultiValueContainer","ItemContainer","MultiValueItemContainer","Item","MultiValueItem","TemplateGallery"],"sources":["ContentEntryEditorConfig.ts"],"sourcesContent":["import {\n DynamicZoneContainer,\n MultiValueContainer,\n MultiValueItemContainer,\n MultiValueItem,\n TemplateGallery,\n useTemplate\n} from \"~/admin/plugins/fieldRenderers/dynamicZone\";\nimport { ContentEntryForm as BaseContentEntryForm } from \"./admin/components/ContentEntryForm/ContentEntryForm\";\nimport { ContentEntryFormPreview } from \"./admin/components/ContentEntryForm/ContentEntryFormPreview\";\nimport { useContentEntryForm } from \"./admin/components/ContentEntryForm/useContentEntryForm\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks\";\nimport { ContentEntry } from \"~/admin/views/contentEntries/ContentEntry\";\nimport { ContentEntryEditorConfig as BaseContentEntryEditorConfig } from \"./admin/config/contentEntries\";\n\nexport const ContentEntryEditorConfig = Object.assign(BaseContentEntryEditorConfig, {\n ContentEntry: Object.assign(ContentEntry, {\n useContentEntry,\n ContentEntryForm: Object.assign(BaseContentEntryForm, {\n useContentEntryForm\n }),\n ContentEntryFormPreview\n }),\n FieldRenderers: {\n DynamicZone: {\n Template: {\n useTemplate\n },\n Container: DynamicZoneContainer,\n // SingleValue: {\n // Container: null,\n // ItemContainer: null,\n // Item: null\n // },\n MultiValue: {\n Container: MultiValueContainer,\n ItemContainer: MultiValueItemContainer,\n Item: MultiValueItem\n },\n TemplateGallery\n }\n }\n});\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAQA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AAEO,IAAMO,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAGE,MAAM,CAACC,MAAM,CAACC,wCAA4B,EAAE;EAChFC,YAAY,EAAEH,MAAM,CAACC,MAAM,CAACE,0BAAY,EAAE;IACtCC,eAAe,EAAfA,sBAAe;IACfC,gBAAgB,EAAEL,MAAM,CAACC,MAAM,CAACK,kCAAoB,EAAE;MAClDC,mBAAmB,EAAnBA;IACJ,CAAC,CAAC;IACFC,uBAAuB,EAAvBA;EACJ,CAAC,CAAC;EACFC,cAAc,EAAE;IACZC,WAAW,EAAE;MACTC,QAAQ,EAAE;QACNC,WAAW,EAAXA;MACJ,CAAC;MACDC,SAAS,EAAEC,iCAAoB;MAC/B;MACA;MACA;MACA;MACA;MACAC,UAAU,EAAE;QACRF,SAAS,EAAEG,gCAAmB;QAC9BC,aAAa,EAAEC,oCAAuB;QACtCC,IAAI,EAAEC;MACV,CAAC;MACDC,eAAe,EAAfA;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_dynamicZone","require","_ContentEntryForm","_ContentEntryFormPreview","_useContentEntryForm","_hooks","_ContentEntry","_contentEntries","_SingletonContentEntry","_useSingletonContentEntry","ContentEntryEditorConfig","exports","Object","assign","BaseContentEntryEditorConfig","ContentEntry","useContentEntry","ContentEntryForm","BaseContentEntryForm","useContentEntryForm","ContentEntryFormPreview","SingletonContentEntry","useSingletonContentEntry","FieldRenderers","DynamicZone","Template","useTemplate","Container","DynamicZoneContainer","MultiValue","MultiValueContainer","ItemContainer","MultiValueItemContainer","Item","MultiValueItem","TemplateGallery"],"sources":["ContentEntryEditorConfig.ts"],"sourcesContent":["import {\n DynamicZoneContainer,\n MultiValueContainer,\n MultiValueItemContainer,\n MultiValueItem,\n TemplateGallery,\n useTemplate\n} from \"~/admin/plugins/fieldRenderers/dynamicZone\";\nimport { ContentEntryForm as BaseContentEntryForm } from \"./admin/components/ContentEntryForm/ContentEntryForm\";\nimport { ContentEntryFormPreview } from \"./admin/components/ContentEntryForm/ContentEntryFormPreview\";\nimport { useContentEntryForm } from \"./admin/components/ContentEntryForm/useContentEntryForm\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks\";\nimport { ContentEntry } from \"~/admin/views/contentEntries/ContentEntry\";\nimport { ContentEntryEditorConfig as BaseContentEntryEditorConfig } from \"./admin/config/contentEntries\";\nimport { SingletonContentEntry } from \"~/admin/views/contentEntries/ContentEntry/SingletonContentEntry\";\nimport { useSingletonContentEntry } from \"~/admin/views/contentEntries/hooks/useSingletonContentEntry\";\n\nexport const ContentEntryEditorConfig = Object.assign(BaseContentEntryEditorConfig, {\n ContentEntry: Object.assign(ContentEntry, {\n useContentEntry,\n ContentEntryForm: Object.assign(BaseContentEntryForm, {\n useContentEntryForm\n }),\n ContentEntryFormPreview\n }),\n SingletonContentEntry: Object.assign(SingletonContentEntry, {\n useSingletonContentEntry\n }),\n FieldRenderers: {\n DynamicZone: {\n Template: {\n useTemplate\n },\n Container: DynamicZoneContainer,\n // SingleValue: {\n // Container: null,\n // ItemContainer: null,\n // Item: null\n // },\n MultiValue: {\n Container: MultiValueContainer,\n ItemContainer: MultiValueItemContainer,\n Item: MultiValueItem\n },\n TemplateGallery\n }\n }\n});\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAQA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,sBAAA,GAAAP,OAAA;AACA,IAAAQ,yBAAA,GAAAR,OAAA;AAEO,IAAMS,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAGE,MAAM,CAACC,MAAM,CAACC,wCAA4B,EAAE;EAChFC,YAAY,EAAEH,MAAM,CAACC,MAAM,CAACE,0BAAY,EAAE;IACtCC,eAAe,EAAfA,sBAAe;IACfC,gBAAgB,EAAEL,MAAM,CAACC,MAAM,CAACK,kCAAoB,EAAE;MAClDC,mBAAmB,EAAnBA;IACJ,CAAC,CAAC;IACFC,uBAAuB,EAAvBA;EACJ,CAAC,CAAC;EACFC,qBAAqB,EAAET,MAAM,CAACC,MAAM,CAACQ,4CAAqB,EAAE;IACxDC,wBAAwB,EAAxBA;EACJ,CAAC,CAAC;EACFC,cAAc,EAAE;IACZC,WAAW,EAAE;MACTC,QAAQ,EAAE;QACNC,WAAW,EAAXA;MACJ,CAAC;MACDC,SAAS,EAAEC,iCAAoB;MAC/B;MACA;MACA;MACA;MACA;MACAC,UAAU,EAAE;QACRF,SAAS,EAAEG,gCAAmB;QAC9BC,aAAa,EAAEC,oCAAuB;QACtCC,IAAI,EAAEC;MACV,CAAC;MACDC,eAAe,EAAfA;IACJ;EACJ;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -31,7 +31,7 @@ export declare const ContentEntryListConfig: (({ priority, children }: import("@
31
31
  items: import("@webiny/app-headless-cms-common/types").CmsContentEntry[];
32
32
  process: (callback: (items: import("@webiny/app-headless-cms-common/types").CmsContentEntry[]) => void) => void;
33
33
  processInSeries: (callback: ({ item, allItems, report }: import("@webiny/app-admin").CallbackParams<import("@webiny/app-headless-cms-common/types").CmsContentEntry>) => Promise<void>, chunkSize?: number | undefined) => Promise<void>;
34
- processInBulk: (action: string, data?: Record<string, any> | undefined) => Promise<void>;
34
+ processInBulk: ({ action, where: initialWhere, data }: import("./admin/config/contentEntries/list/Browser/BulkAction").ProcessInBulkParams) => Promise<void>;
35
35
  resetItems: () => void;
36
36
  results: import("@webiny/app-admin").Result[];
37
37
  isSelectedAll: boolean;
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
  };
@@ -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,IAAMW,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,oBACIlB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACd,IAAA,CAAAe,WAAW;QAACP,kBAAkB,EAAEA;MAAmB,gBAChDd,MAAA,CAAAmB,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,oBACInC,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACpB,MAAA,CAAAoC,QAAQ,qBACLpC,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACV,qBAAA,CAAA2B,oBAAoB,MAAE,CAAC,eACxBrC,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAAChB,SAAA,CAAAkC,QAAQ;IAACC,GAAG,EAAE1B,yBAAyB,CAACC,kBAAkB;EAAE,CAAE,CAAC,eAChEd,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAAChB,SAAA,CAAAoC,OAAO,qBACJxC,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACb,cAAA,CAAAkC,aAAa,MAAE,CACX,CAAC,eACVzC,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACR,uBAAA,CAAA8B,sBAAsB,MAAE,CACnB,CAAC;AAEnB,CAAC;AAEM,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAG,IAAAE,WAAI,EAACtB,oBAAoB,CAAC","ignoreList":[]}
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":[]}
@@ -41,7 +41,9 @@ var ActionDelete = exports.ActionDelete = (0, _mobxReactLite.observer)(function
41
41
  loadingLabel: "Processing ".concat(entriesLabel),
42
42
  execute: async function execute() {
43
43
  if (worker.isSelectedAll) {
44
- await worker.processInBulk("MoveToTrash");
44
+ await worker.processInBulk({
45
+ action: "MoveToTrash"
46
+ });
45
47
  worker.resetItems();
46
48
  showSnackbar("All entries will be moved to trash. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.", {
47
49
  dismissIcon: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_delete","_mobxReactLite","_parseIdentifier2","_appAco","_appAdmin","_contentEntries","_hooks","_BulkActions","ActionDelete","exports","observer","_useModel","useModel","model","_useCms","useCms","deleteEntry","_useRecords","useRecords","removeRecordFromCache","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","entriesLabel","getEntriesLabel","openDeleteEntriesDialog","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","_parseIdentifier","parseIdentifier","id","response","Error","error","success","meta","e","results","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionDelete.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete.svg\";\nimport { observer } from \"mobx-react-lite\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { useCms, useModel } from \"~/admin/hooks\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\n\nexport const ActionDelete = observer(() => {\n const { model } = useModel();\n const { deleteEntry } = useCms();\n const { removeRecordFromCache } = useRecords();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openDeleteEntriesDialog = () =>\n showConfirmationDialog({\n title: \"Trash entries\",\n message: `You are about to move ${entriesLabel} to trash. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk(\"MoveToTrash\");\n worker.resetItems();\n showSnackbar(\n \"All entries will be moved to trash. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.\",\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n /**\n * We need an entryId because we want to delete all revisions of the entry.\n * By sending an entryId (id without #version), we are telling to the API to delete all revisions.\n */\n const { id } = parseIdentifier(item.id);\n const response = await deleteEntry({ model, id });\n\n if (typeof response !== \"boolean\") {\n throw new Error(\n response.error.message ||\n \"Unknown error while moving the entry to trash.\"\n );\n }\n\n removeRecordFromCache(id);\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully moved to trash.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Trash entries\",\n message: \"Finished moving entries to trash! See full report below:\"\n });\n }\n });\n\n return (\n <IconButton\n icon={<DeleteIcon />}\n onAction={openDeleteEntriesDialog}\n label={`Trash ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_delete","_mobxReactLite","_parseIdentifier2","_appAco","_appAdmin","_contentEntries","_hooks","_BulkActions","ActionDelete","exports","observer","_useModel","useModel","model","_useCms","useCms","deleteEntry","_useRecords","useRecords","removeRecordFromCache","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","entriesLabel","getEntriesLabel","openDeleteEntriesDialog","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","action","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","_parseIdentifier","parseIdentifier","id","response","Error","error","success","meta","e","results","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionDelete.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as DeleteIcon } from \"@material-design-icons/svg/outlined/delete.svg\";\nimport { observer } from \"mobx-react-lite\";\nimport { parseIdentifier } from \"@webiny/utils/parseIdentifier\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { useCms, useModel } from \"~/admin/hooks\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\n\nexport const ActionDelete = observer(() => {\n const { model } = useModel();\n const { deleteEntry } = useCms();\n const { removeRecordFromCache } = useRecords();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openDeleteEntriesDialog = () =>\n showConfirmationDialog({\n title: \"Trash entries\",\n message: `You are about to move ${entriesLabel} to trash. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk({ action: \"MoveToTrash\" });\n worker.resetItems();\n showSnackbar(\n \"All entries will be moved to trash. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.\",\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n /**\n * We need an entryId because we want to delete all revisions of the entry.\n * By sending an entryId (id without #version), we are telling to the API to delete all revisions.\n */\n const { id } = parseIdentifier(item.id);\n const response = await deleteEntry({ model, id });\n\n if (typeof response !== \"boolean\") {\n throw new Error(\n response.error.message ||\n \"Unknown error while moving the entry to trash.\"\n );\n }\n\n removeRecordFromCache(id);\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully moved to trash.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Trash entries\",\n message: \"Finished moving entries to trash! See full report below:\"\n });\n }\n });\n\n return (\n <IconButton\n icon={<DeleteIcon />}\n onAction={openDeleteEntriesDialog}\n label={`Trash ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -40,8 +40,16 @@ var ActionMove = exports.ActionMove = (0, _mobxReactLite.observer)(function () {
40
40
  loadingLabel: "Processing ".concat(entriesLabel),
41
41
  execute: async function execute() {
42
42
  if (worker.isSelectedAll) {
43
- await worker.processInBulk("MoveToFolder", {
44
- folderId: folder.id
43
+ await worker.processInBulk({
44
+ action: "MoveToFolder",
45
+ where: {
46
+ wbyAco_location: {
47
+ folderId_not: folder.id
48
+ }
49
+ },
50
+ data: {
51
+ folderId: folder.id
52
+ }
45
53
  });
46
54
  worker.resetItems();
47
55
  showSnackbar("All entries will be moved to ".concat(folder.title, ". This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running."), {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_drive_file_move","_appAco","_appAdmin","_mobxReactLite","_contentEntries","_constants","_BulkActions","ActionMove","exports","observer","_useRecords","useRecords","moveRecord","_useNavigateFolder","useNavigateFolder","currentFolderId","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","_useMoveToFolderDialo","useMoveToFolderDialog","showMoveDialog","showDialog","entriesLabel","getEntriesLabel","openWorkerDialog","useCallback","folder","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","folderId","id","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","location","success","meta","e","error","results","openMoveEntriesDialog","acceptLabel","focusedFolderId","ROOT_FOLDER","onAccept","_ref2","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionMove.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { ReactComponent as MoveIcon } from \"@material-design-icons/svg/outlined/drive_file_move.svg\";\nimport { useRecords, useMoveToFolderDialog, useNavigateFolder } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { FolderItem } from \"@webiny/app-aco/types\";\nimport { observer } from \"mobx-react-lite\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { ROOT_FOLDER } from \"~/admin/constants\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\n\nexport const ActionMove = observer(() => {\n const { moveRecord } = useRecords();\n const { currentFolderId } = useNavigateFolder();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n const { showDialog: showMoveDialog } = useMoveToFolderDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openWorkerDialog = useCallback(\n (folder: FolderItem) => {\n showConfirmationDialog({\n title: \"Move entries\",\n message: `You are about to move ${entriesLabel} to ${folder.title}. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk(\"MoveToFolder\", {\n folderId: folder.id\n });\n worker.resetItems();\n showSnackbar(\n `All entries will be moved to ${folder.title}. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.`,\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n await moveRecord({\n id: item.id,\n location: {\n folderId: folder.id\n }\n });\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully moved.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Move entries\",\n message: \"Finished moving entries! See full report below:\"\n });\n }\n });\n },\n [entriesLabel, worker.isSelectedAll]\n );\n\n const openMoveEntriesDialog = () =>\n showMoveDialog({\n title: \"Select folder\",\n message: \"Select a new location for selected entries:\",\n loadingLabel: `Processing ${entriesLabel}`,\n acceptLabel: `Move`,\n focusedFolderId: currentFolderId || ROOT_FOLDER,\n async onAccept({ folder }) {\n openWorkerDialog(folder);\n }\n });\n\n return (\n <IconButton\n icon={<MoveIcon />}\n onAction={openMoveEntriesDialog}\n label={`Move ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AAEA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AAEO,IAAMQ,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAAE,uBAAQ,EAAC,YAAM;EACrC,IAAAC,WAAA,GAAuB,IAAAC,kBAAU,EAAC,CAAC;IAA3BC,UAAU,GAAAF,WAAA,CAAVE,UAAU;EAClB,IAAAC,kBAAA,GAA4B,IAAAC,yBAAiB,EAAC,CAAC;IAAvCC,eAAe,GAAAF,kBAAA,CAAfE,eAAe;EACvB,IAAAC,YAAA,GAAyB,IAAAC,qBAAW,EAAC,CAAC;IAA9BC,YAAY,GAAAF,YAAA,CAAZE,YAAY;EAEpB,IAAAC,qBAAA,GAA6CC,sCAAsB,CAACC,OAAO,CAACC,UAAU;IAA9EC,SAAS,GAAAJ,qBAAA,CAATI,SAAS;IAAEC,UAAU,GAAAL,qBAAA,CAAVK,UAAU;IAAEC,SAAS,GAAAN,qBAAA,CAATM,SAAS;EACxC,IAAAC,WAAA,GAAuBF,UAAU,CAAC,CAAC;IAA3BG,UAAU,GAAAD,WAAA,CAAVC,UAAU;EAClB,IAAMC,MAAM,GAAGL,SAAS,CAAC,CAAC;EAC1B,IAAAM,UAAA,GAAsDJ,SAAS,CAAC,CAAC;IAAzDK,sBAAsB,GAAAD,UAAA,CAAtBC,sBAAsB;IAAEC,iBAAiB,GAAAF,UAAA,CAAjBE,iBAAiB;EACjD,IAAAC,qBAAA,GAAuC,IAAAC,6BAAqB,EAAC,CAAC;IAA1CC,cAAc,GAAAF,qBAAA,CAA1BG,UAAU;EAElB,IAAMC,YAAY,GAAG,IAAAC,4BAAe,EAAC,CAAC;EAEtC,IAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAChC,UAACC,MAAkB,EAAK;IACpBV,sBAAsB,CAAC;MACnBW,KAAK,EAAE,cAAc;MACrBC,OAAO,2BAAAC,MAAA,CAA2BP,YAAY,UAAAO,MAAA,CAAOH,MAAM,CAACC,KAAK,yCAAsC;MACvGG,YAAY,gBAAAD,MAAA,CAAgBP,YAAY,CAAE;MAC1CS,OAAO,EAAE,eAAAA,QAAA,EAAY;QACjB,IAAIjB,MAAM,CAACkB,aAAa,EAAE;UACtB,MAAMlB,MAAM,CAACmB,aAAa,CAAC,cAAc,EAAE;YACvCC,QAAQ,EAAER,MAAM,CAACS;UACrB,CAAC,CAAC;UACFrB,MAAM,CAACsB,UAAU,CAAC,CAAC;UACnBhC,YAAY,iCAAAyB,MAAA,CACwBH,MAAM,CAACC,KAAK,6JAC5C;YACIU,WAAW,EAAE,IAAI;YACjBC,OAAO,EAAE,CAAC;UACd,CACJ,CAAC;UACD;QACJ;QAEA,MAAMxB,MAAM,CAACyB,eAAe,CAAC,gBAAAC,IAAA,EAA4B;UAAA,IAAnBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;YAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;UAC9C,IAAI;YACA,MAAM5C,UAAU,CAAC;cACbqC,EAAE,EAAEM,IAAI,CAACN,EAAE;cACXQ,QAAQ,EAAE;gBACNT,QAAQ,EAAER,MAAM,CAACS;cACrB;YACJ,CAAC,CAAC;YAEFO,MAAM,CAACE,OAAO,CAAC;cACXjB,KAAK,KAAAE,MAAA,CAAKY,IAAI,CAACI,IAAI,CAAClB,KAAK,CAAE;cAC3BC,OAAO,EAAE;YACb,CAAC,CAAC;UACN,CAAC,CAAC,OAAOkB,CAAC,EAAE;YACRJ,MAAM,CAACK,KAAK,CAAC;cACTpB,KAAK,KAAAE,MAAA,CAAKY,IAAI,CAACI,IAAI,CAAClB,KAAK,CAAE;cAC3BC,OAAO,EAAEkB,CAAC,CAAClB;YACf,CAAC,CAAC;UACN;QACJ,CAAC,CAAC;QAEFd,MAAM,CAACsB,UAAU,CAAC,CAAC;QAEnBnB,iBAAiB,CAAC;UACd+B,OAAO,EAAElC,MAAM,CAACkC,OAAO;UACvBrB,KAAK,EAAE,cAAc;UACrBC,OAAO,EAAE;QACb,CAAC,CAAC;MACN;IACJ,CAAC,CAAC;EACN,CAAC,EACD,CAACN,YAAY,EAAER,MAAM,CAACkB,aAAa,CACvC,CAAC;EAED,IAAMiB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA;IAAA,OACvB7B,cAAc,CAAC;MACXO,KAAK,EAAE,eAAe;MACtBC,OAAO,EAAE,6CAA6C;MACtDE,YAAY,gBAAAD,MAAA,CAAgBP,YAAY,CAAE;MAC1C4B,WAAW,QAAQ;MACnBC,eAAe,EAAElD,eAAe,IAAImD,sBAAW;MACzCC,QAAQ,iBAAAA,SAAAC,KAAA,EAAa;QAAA,IAAV5B,MAAM,GAAA4B,KAAA,CAAN5B,MAAM;QACnBF,gBAAgB,CAACE,MAAM,CAAC;MAC5B;IACJ,CAAC,CAAC;EAAA;EAEN,oBACI3C,MAAA,CAAAwE,OAAA,CAAAC,aAAA,CAAC3C,UAAU;IACP4C,IAAI,eAAE1E,MAAA,CAAAwE,OAAA,CAAAC,aAAA,CAACtE,gBAAA,CAAAwE,cAAQ,MAAE,CAAE;IACnBC,QAAQ,EAAEV,qBAAsB;IAChCW,KAAK,UAAA/B,MAAA,CAAUP,YAAY,CAAG;IAC9BuC,gBAAgB,EAAE;EAAS,CAC9B,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_drive_file_move","_appAco","_appAdmin","_mobxReactLite","_contentEntries","_constants","_BulkActions","ActionMove","exports","observer","_useRecords","useRecords","moveRecord","_useNavigateFolder","useNavigateFolder","currentFolderId","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","_useMoveToFolderDialo","useMoveToFolderDialog","showMoveDialog","showDialog","entriesLabel","getEntriesLabel","openWorkerDialog","useCallback","folder","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","action","where","wbyAco_location","folderId_not","id","data","folderId","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","location","success","meta","e","error","results","openMoveEntriesDialog","acceptLabel","focusedFolderId","ROOT_FOLDER","onAccept","_ref2","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionMove.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { ReactComponent as MoveIcon } from \"@material-design-icons/svg/outlined/drive_file_move.svg\";\nimport { useRecords, useMoveToFolderDialog, useNavigateFolder } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\nimport { FolderItem } from \"@webiny/app-aco/types\";\nimport { observer } from \"mobx-react-lite\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { ROOT_FOLDER } from \"~/admin/constants\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\n\nexport const ActionMove = observer(() => {\n const { moveRecord } = useRecords();\n const { currentFolderId } = useNavigateFolder();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n const { showDialog: showMoveDialog } = useMoveToFolderDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openWorkerDialog = useCallback(\n (folder: FolderItem) => {\n showConfirmationDialog({\n title: \"Move entries\",\n message: `You are about to move ${entriesLabel} to ${folder.title}. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk({\n action: \"MoveToFolder\",\n where: {\n wbyAco_location: {\n folderId_not: folder.id\n }\n },\n data: {\n folderId: folder.id\n }\n });\n worker.resetItems();\n showSnackbar(\n `All entries will be moved to ${folder.title}. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.`,\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n await moveRecord({\n id: item.id,\n location: {\n folderId: folder.id\n }\n });\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully moved.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Move entries\",\n message: \"Finished moving entries! See full report below:\"\n });\n }\n });\n },\n [entriesLabel, worker.isSelectedAll]\n );\n\n const openMoveEntriesDialog = () =>\n showMoveDialog({\n title: \"Select folder\",\n message: \"Select a new location for selected entries:\",\n loadingLabel: `Processing ${entriesLabel}`,\n acceptLabel: `Move`,\n focusedFolderId: currentFolderId || ROOT_FOLDER,\n async onAccept({ folder }) {\n openWorkerDialog(folder);\n }\n });\n\n return (\n <IconButton\n icon={<MoveIcon />}\n onAction={openMoveEntriesDialog}\n label={`Move ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -42,7 +42,9 @@ var ActionPublish = exports.ActionPublish = (0, _mobxReactLite.observer)(functio
42
42
  loadingLabel: "Processing ".concat(entriesLabel),
43
43
  execute: async function execute() {
44
44
  if (worker.isSelectedAll) {
45
- await worker.processInBulk("Publish");
45
+ await worker.processInBulk({
46
+ action: "Publish"
47
+ });
46
48
  worker.resetItems();
47
49
  showSnackbar("All entries will be published. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.", {
48
50
  dismissIcon: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_publish","_mobxReactLite","_contentEntries","_hooks","_BulkActions","_appAco","_appAdmin","ActionPublish","exports","observer","_useModel","useModel","model","_usePermission","usePermission","canPublish","_useCms","useCms","publishEntryRevision","_useRecords","useRecords","updateRecordInCache","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","entriesLabel","getEntriesLabel","openPublishEntriesDialog","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","response","id","error","Error","entry","success","meta","e","results","console","log","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionPublish.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as PublishIcon } from \"@material-design-icons/svg/outlined/publish.svg\";\nimport { observer } from \"mobx-react-lite\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { usePermission, useCms, useModel } from \"~/admin/hooks\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nexport const ActionPublish = observer(() => {\n const { model } = useModel();\n const { canPublish } = usePermission();\n const { publishEntryRevision } = useCms();\n const { updateRecordInCache } = useRecords();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openPublishEntriesDialog = () =>\n showConfirmationDialog({\n title: \"Publish entries\",\n message: `You are about to publish ${entriesLabel}. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk(\"Publish\");\n worker.resetItems();\n showSnackbar(\n \"All entries will be published. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.\",\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n const response = await publishEntryRevision({ model, id: item.id });\n\n const { error } = response;\n\n if (error) {\n throw new Error(\n error.message || \"Unknown error while publishing the entry\"\n );\n }\n\n updateRecordInCache(response.entry);\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully published.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Publish entries\",\n message: \"Finished publishing entries! See full report below:\"\n });\n }\n });\n\n if (!canPublish(\"cms.contentEntry\")) {\n console.log(\"You don't have permissions to publish entries.\");\n return null;\n }\n\n return (\n <IconButton\n icon={<PublishIcon />}\n onAction={openPublishEntriesDialog}\n label={`Publish ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_publish","_mobxReactLite","_contentEntries","_hooks","_BulkActions","_appAco","_appAdmin","ActionPublish","exports","observer","_useModel","useModel","model","_usePermission","usePermission","canPublish","_useCms","useCms","publishEntryRevision","_useRecords","useRecords","updateRecordInCache","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","entriesLabel","getEntriesLabel","openPublishEntriesDialog","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","action","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","response","id","error","Error","entry","success","meta","e","results","console","log","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionPublish.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as PublishIcon } from \"@material-design-icons/svg/outlined/publish.svg\";\nimport { observer } from \"mobx-react-lite\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { usePermission, useCms, useModel } from \"~/admin/hooks\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nexport const ActionPublish = observer(() => {\n const { model } = useModel();\n const { canPublish } = usePermission();\n const { publishEntryRevision } = useCms();\n const { updateRecordInCache } = useRecords();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openPublishEntriesDialog = () =>\n showConfirmationDialog({\n title: \"Publish entries\",\n message: `You are about to publish ${entriesLabel}. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk({\n action: \"Publish\"\n });\n worker.resetItems();\n showSnackbar(\n \"All entries will be published. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.\",\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n const response = await publishEntryRevision({ model, id: item.id });\n\n const { error } = response;\n\n if (error) {\n throw new Error(\n error.message || \"Unknown error while publishing the entry\"\n );\n }\n\n updateRecordInCache(response.entry);\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully published.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Publish entries\",\n message: \"Finished publishing entries! See full report below:\"\n });\n }\n });\n\n if (!canPublish(\"cms.contentEntry\")) {\n console.log(\"You don't have permissions to publish entries.\");\n return null;\n }\n\n return (\n <IconButton\n icon={<PublishIcon />}\n onAction={openPublishEntriesDialog}\n label={`Publish ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
@@ -42,7 +42,9 @@ var ActionUnpublish = exports.ActionUnpublish = (0, _mobxReactLite.observer)(fun
42
42
  loadingLabel: "Processing ".concat(entriesLabel),
43
43
  execute: async function execute() {
44
44
  if (worker.isSelectedAll) {
45
- await worker.processInBulk("Unpublish");
45
+ await worker.processInBulk({
46
+ action: "Unpublish"
47
+ });
46
48
  worker.resetItems();
47
49
  showSnackbar("All entries will be unpublished. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.", {
48
50
  dismissIcon: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_settings_backup_restore","_mobxReactLite","_contentEntries","_hooks","_BulkActions","_appAco","_appAdmin","ActionUnpublish","exports","observer","_useModel","useModel","model","_usePermission","usePermission","canUnpublish","_useCms","useCms","unpublishEntryRevision","_useRecords","useRecords","updateRecordInCache","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","entriesLabel","getEntriesLabel","openUnpublishEntriesDialog","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","response","id","error","Error","entry","success","meta","e","results","console","log","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionUnpublish.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as UnpublishIcon } from \"@material-design-icons/svg/outlined/settings_backup_restore.svg\";\nimport { observer } from \"mobx-react-lite\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { useCms, useModel, usePermission } from \"~/admin/hooks\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nexport const ActionUnpublish = observer(() => {\n const { model } = useModel();\n const { canUnpublish } = usePermission();\n const { unpublishEntryRevision } = useCms();\n const { updateRecordInCache } = useRecords();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openUnpublishEntriesDialog = () =>\n showConfirmationDialog({\n title: \"Unpublish entries\",\n message: `You are about to unpublish ${entriesLabel}. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk(\"Unpublish\");\n worker.resetItems();\n showSnackbar(\n \"All entries will be unpublished. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.\",\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n const response = await unpublishEntryRevision({\n model,\n id: item.id\n });\n\n const { error } = response;\n\n if (error) {\n throw new Error(\n error.message || \"Unknown error while unpublishing the entry\"\n );\n }\n\n updateRecordInCache(response.entry);\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully unpublished.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Unpublish entries\",\n message: \"Finished unpublishing entries! See full report below:\"\n });\n }\n });\n\n if (!canUnpublish(\"cms.contentEntry\")) {\n console.log(\"You don't have permissions to unpublish entries.\");\n return null;\n }\n\n return (\n <IconButton\n icon={<UnpublishIcon />}\n onAction={openUnpublishEntriesDialog}\n label={`Unpublish ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_settings_backup_restore","_mobxReactLite","_contentEntries","_hooks","_BulkActions","_appAco","_appAdmin","ActionUnpublish","exports","observer","_useModel","useModel","model","_usePermission","usePermission","canUnpublish","_useCms","useCms","unpublishEntryRevision","_useRecords","useRecords","updateRecordInCache","_useSnackbar","useSnackbar","showSnackbar","_ContentEntryListConf","ContentEntryListConfig","Browser","BulkAction","useWorker","useButtons","useDialog","_useButtons","IconButton","worker","_useDialog","showConfirmationDialog","showResultsDialog","entriesLabel","getEntriesLabel","openUnpublishEntriesDialog","title","message","concat","loadingLabel","execute","isSelectedAll","processInBulk","action","resetItems","dismissIcon","timeout","processInSeries","_ref","item","report","response","id","error","Error","entry","success","meta","e","results","console","log","default","createElement","icon","ReactComponent","onAction","label","tooltipPlacement"],"sources":["ActionUnpublish.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as UnpublishIcon } from \"@material-design-icons/svg/outlined/settings_backup_restore.svg\";\nimport { observer } from \"mobx-react-lite\";\nimport { ContentEntryListConfig } from \"~/admin/config/contentEntries\";\nimport { useCms, useModel, usePermission } from \"~/admin/hooks\";\nimport { getEntriesLabel } from \"~/admin/components/ContentEntries/BulkActions/BulkActions\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport { useSnackbar } from \"@webiny/app-admin\";\n\nexport const ActionUnpublish = observer(() => {\n const { model } = useModel();\n const { canUnpublish } = usePermission();\n const { unpublishEntryRevision } = useCms();\n const { updateRecordInCache } = useRecords();\n const { showSnackbar } = useSnackbar();\n\n const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction;\n const { IconButton } = useButtons();\n const worker = useWorker();\n const { showConfirmationDialog, showResultsDialog } = useDialog();\n\n const entriesLabel = getEntriesLabel();\n\n const openUnpublishEntriesDialog = () =>\n showConfirmationDialog({\n title: \"Unpublish entries\",\n message: `You are about to unpublish ${entriesLabel}. Are you sure you want to continue?`,\n loadingLabel: `Processing ${entriesLabel}`,\n execute: async () => {\n if (worker.isSelectedAll) {\n await worker.processInBulk({\n action: \"Unpublish\"\n });\n worker.resetItems();\n showSnackbar(\n \"All entries will be unpublished. This process will be carried out in the background and may take some time. You can safely navigate away from this page while the process is running.\",\n {\n dismissIcon: true,\n timeout: -1\n }\n );\n return;\n }\n\n await worker.processInSeries(async ({ item, report }) => {\n try {\n const response = await unpublishEntryRevision({\n model,\n id: item.id\n });\n\n const { error } = response;\n\n if (error) {\n throw new Error(\n error.message || \"Unknown error while unpublishing the entry\"\n );\n }\n\n updateRecordInCache(response.entry);\n\n report.success({\n title: `${item.meta.title}`,\n message: \"Entry successfully unpublished.\"\n });\n } catch (e) {\n report.error({\n title: `${item.meta.title}`,\n message: e.message\n });\n }\n });\n\n worker.resetItems();\n\n showResultsDialog({\n results: worker.results,\n title: \"Unpublish entries\",\n message: \"Finished unpublishing entries! See full report below:\"\n });\n }\n });\n\n if (!canUnpublish(\"cms.contentEntry\")) {\n console.log(\"You don't have permissions to unpublish entries.\");\n return null;\n }\n\n return (\n <IconButton\n icon={<UnpublishIcon />}\n onAction={openUnpublishEntriesDialog}\n label={`Unpublish ${entriesLabel}`}\n tooltipPlacement={\"bottom\"}\n />\n );\n});\n"],"mappings":"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","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,38 +8,33 @@ export interface ContentEntryFormProps {
8
8
  * @param entry
9
9
  */
10
10
  onAfterCreate?: (entry: CmsContentEntry) => void;
11
- header?: boolean;
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
- export declare const ContentEntryForm: (({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element) & {
29
- original: ({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element;
23
+ export declare const ContentEntryForm: (({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element) & {
24
+ original: ({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element;
30
25
  originalName: string;
31
26
  displayName: string;
32
27
  } & {
33
- original: (({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element) & {
34
- original: ({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element;
28
+ original: (({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element) & {
29
+ original: ({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element;
35
30
  originalName: string;
36
31
  displayName: string;
37
32
  };
38
33
  originalName: string;
39
34
  displayName: string;
40
35
  } & {
41
- createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element) & {
42
- original: ({ entry, onAfterCreate, addEntryToListCache, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element;
36
+ createDecorator: (decorator: import("@webiny/app-admin").ComponentDecorator<(({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element) & {
37
+ original: ({ entry, persistEntry, onAfterCreate, setSaveEntry, header }: ContentEntryFormProps) => React.JSX.Element;
43
38
  originalName: string;
44
39
  displayName: string;
45
40
  }>) => (props: unknown) => React.JSX.Element;
@@ -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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRlbnRFbnRyeUZvcm0udHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlvQiIsImZpbGUiOiJDb250ZW50RW50cnlGb3JtLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgeyBDbXNDb250ZW50RW50cnkgfSBmcm9tIFwifi90eXBlc1wiO1xuaW1wb3J0IHsgbWFrZURlY29yYXRhYmxlIH0gZnJvbSBcIkB3ZWJpbnkvYXBwLWFkbWluXCI7XG5pbXBvcnQgeyBNb2RlbFByb3ZpZGVyLCB1c2VNb2RlbCB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvTW9kZWxQcm92aWRlclwiO1xuaW1wb3J0IHsgSGVhZGVyIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Db250ZW50RW50cnlGb3JtL0hlYWRlclwiO1xuaW1wb3J0IHsgdXNlRm9ybVJlbmRlcmVyIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Db250ZW50RW50cnlGb3JtL3VzZUZvcm1SZW5kZXJlclwiO1xuaW1wb3J0IHsgQ29udGVudEVudHJ5Rm9ybUNvbnRleHQsIENvbnRlbnRFbnRyeUZvcm1Qcm92aWRlciB9IGZyb20gXCIuL0NvbnRlbnRFbnRyeUZvcm1Qcm92aWRlclwiO1xuaW1wb3J0IHsgQ3VzdG9tTGF5b3V0IH0gZnJvbSBcIi4vQ3VzdG9tTGF5b3V0XCI7XG5pbXBvcnQgeyBEZWZhdWx0TGF5b3V0IH0gZnJvbSBcIi4vRGVmYXVsdExheW91dFwiO1xuaW1wb3J0IHsgdXNlR29Ub1JldmlzaW9uIH0gZnJvbSBcIn4vYWRtaW4vY29tcG9uZW50cy9Db250ZW50RW50cnlGb3JtL3VzZUdvVG9SZXZpc2lvblwiO1xuXG5jb25zdCBGb3JtV3JhcHBlciA9IHN0eWxlZChcImRpdlwiKSh7XG4gICAgaGVpZ2h0OiBcImNhbGMoMTAwdmggLSAyNjBweClcIixcbiAgICBvdmVyZmxvdzogXCJhdXRvXCJcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRFbnRyeUZvcm1Qcm9wcyB7XG4gICAgZW50cnk6IFBhcnRpYWw8Q21zQ29udGVudEVudHJ5PjtcbiAgICAvKipcbiAgICAgKiBUaGlzIGNhbGxiYWNrIGlzIGV4ZWN1dGVkIHdoZW4gYW4gZW50cnksIG9yIGEgcmV2aXNpb24sIGFyZSBjcmVhdGVkLlxuICAgICAqIEBwYXJhbSBlbnRyeVxuICAgICAqL1xuICAgIG9uQWZ0ZXJDcmVhdGU/OiAoZW50cnk6IENtc0NvbnRlbnRFbnRyeSkgPT4gdm9pZDtcbiAgICBoZWFkZXI/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoaXMgcHJvcCBpcyB1c2VkIHRvIGdldCBhIHJlZmVyZW5jZSB0byBgc2F2ZUVudHJ5YCBjYWxsYmFjaywgc28gaXQgY2FuIGJlIHRyaWdnZXJlZCBieSBjb21wb25lbnRzXG4gICAgICogb3V0c2lkZSB0aGUgQ29udGVudEVudHJ5Rm9ybSBjb250ZXh0LlxuICAgICAqIFRPRE86IGludHJvZHVjZSBhIGBsYXlvdXRgIHByb3AgdG8gYmUgYWJsZSB0byBtb3VudCBhcmJpdHJhcnkgY29tcG9uZW50cyBhcm91bmQgdGhlIGVudHJ5IGZvcm0sIHdpdGhpbiB0aGUgY29udGV4dC5cbiAgICAgKi9cbiAgICBzZXRTYXZlRW50cnk/OiAoY2I6IENvbnRlbnRFbnRyeUZvcm1Db250ZXh0W1wic2F2ZUVudHJ5XCJdKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFRoaXMgZmxhZyBleGlzdHMgZm9yIGEgbGFjayBvZiBiZXR0ZXIgQXBvbGxvIGNhY2hlIGNvbnRyb2wsIGF0IHRoZSBtb21lbnQuXG4gICAgICogV2UgdXNlIHRoaXMgZmxhZyB3aGVuIHdlIG5lZWQgdG8gdGVsbCB0aGUgc3lzdGVtIHRvIGFkZCBuZXcgZW50cmllcyB0byBhcG9sbG8gY2FjaGUuXG4gICAgICogV2h5IHdvdWxkIHlvdSB3YW50IHRvIE5PVCBhZGQgZW50cmllcyB0byBjYWNoZT8gV2hlbiB1c2luZyBhIGByZWZgIGZpZWxkLCB3aGljaCB1c3VhbGx5IHBvaW50cyB0b1xuICAgICAqIGEgZGlmZmVyZW50IG1vZGVsIHRoYW4gdGhlIG1haW4gZW50cnkgeW91J3JlIHdvcmtpbmcgb24uIEV4YW1wbGU6IEJvb2sgLT4gQXV0aG9yLCB5b3UgZG9uJ3Qgd2FudFxuICAgICAqIGFuIEF1dGhvciBjcmVhdGVkIHZpYSBhIGByZWZgIGZpZWxkIGRpYWxvZyB0byBiZSBhZGRlZCB0byB0aGUgbGlzdCBvZiBCb29rcy5cbiAgICAgKiBUT0RPOiByZXZpc2l0IHRoaXMsIGFuZCBsb29rIGZvciBhIGJldHRlciBzb2x1dGlvbi5cbiAgICAgKi9cbiAgICBhZGRFbnRyeVRvTGlzdENhY2hlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRlbnRFbnRyeUZvcm0gPSBtYWtlRGVjb3JhdGFibGUoXG4gICAgXCJDb250ZW50RW50cnlGb3JtXCIsXG4gICAgKHtcbiAgICAgICAgZW50cnksXG4gICAgICAgIG9uQWZ0ZXJDcmVhdGUsXG4gICAgICAgIGFkZEVudHJ5VG9MaXN0Q2FjaGUsXG4gICAgICAgIHNldFNhdmVFbnRyeSxcbiAgICAgICAgaGVhZGVyID0gdHJ1ZVxuICAgIH06IENvbnRlbnRFbnRyeUZvcm1Qcm9wcykgPT4ge1xuICAgICAgICBjb25zdCBmb3JtRWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgICAgIGNvbnN0IHsgbW9kZWwgfSA9IHVzZU1vZGVsKCk7XG4gICAgICAgIGNvbnN0IHsgZ29Ub1JldmlzaW9uIH0gPSB1c2VHb1RvUmV2aXNpb24oKTtcbiAgICAgICAgY29uc3QgZm9ybVJlbmRlcmVyID0gdXNlRm9ybVJlbmRlcmVyKG1vZGVsKTtcblxuICAgICAgICBjb25zdCBkZWZhdWx0T25BZnRlckNyZWF0ZSA9IChlbnRyeTogQ21zQ29udGVudEVudHJ5KSA9PiB7XG4gICAgICAgICAgICBnb1RvUmV2aXNpb24oZW50cnkuaWQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIFdoZW4gZW50cnkgY2hhbmdlcywgc2Nyb2xsIHRvIHRoZSB0b3Agb2YgdGhlIGZvcm0uXG4gICAgICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWZvcm1FbGVtZW50UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50UmVmLmN1cnJlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgICAgfSwgMjApO1xuICAgICAgICB9LCBbZW50cnkuaWQsIGZvcm1FbGVtZW50UmVmLmN1cnJlbnRdKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPENvbnRlbnRFbnRyeUZvcm1Qcm92aWRlclxuICAgICAgICAgICAgICAgIG1vZGVsPXttb2RlbH1cbiAgICAgICAgICAgICAgICBlbnRyeT17ZW50cnl9XG4gICAgICAgICAgICAgICAgb25BZnRlckNyZWF0ZT17b25BZnRlckNyZWF0ZSB8fCBkZWZhdWx0T25BZnRlckNyZWF0ZX1cbiAgICAgICAgICAgICAgICBzZXRTYXZlRW50cnk9e3NldFNhdmVFbnRyeX1cbiAgICAgICAgICAgICAgICBhZGRJdGVtVG9MaXN0Q2FjaGU9e2FkZEVudHJ5VG9MaXN0Q2FjaGV9XG4gICAgICAgICAgICAgICAgY29uZmlybU5hdmlnYXRpb25JZkRpcnR5PXt0cnVlfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxNb2RlbFByb3ZpZGVyIG1vZGVsPXttb2RlbH0+XG4gICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgPyA8SGVhZGVyIC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1XcmFwcGVyIGRhdGEtdGVzdGlkPXtcImNtcy1jb250ZW50LWZvcm1cIn0gcmVmPXtmb3JtRWxlbWVudFJlZn0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Zm9ybVJlbmRlcmVyID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDdXN0b21MYXlvdXQgbW9kZWw9e21vZGVsfSBmb3JtUmVuZGVyZXI9e2Zvcm1SZW5kZXJlcn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlZmF1bHRMYXlvdXQgbW9kZWw9e21vZGVsfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtV3JhcHBlcj5cbiAgICAgICAgICAgICAgICA8L01vZGVsUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0NvbnRlbnRFbnRyeUZvcm1Qcm92aWRlcj5cbiAgICAgICAgKTtcbiAgICB9XG4pO1xuIl19 */",
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
- addItemToListCache: addEntryToListCache,
66
- confirmNavigationIfDirty: true
64
+ confirmNavigationIfDirty: true,
65
+ persistEntry: persistEntry
67
66
  }, /*#__PURE__*/_react.default.createElement(_ModelProvider.ModelProvider, {
68
67
  model: model
69
- }, header ? /*#__PURE__*/_react.default.createElement(_Header.Header, null) : null, /*#__PURE__*/_react.default.createElement(FormWrapper, {
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","_Header","_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","onAfterCreate","addEntryToListCache","setSaveEntry","_ref$header","header","formElementRef","useRef","_useModel","useModel","model","_useGoToRevision","useGoToRevision","goToRevision","formRenderer","useFormRenderer","defaultOnAfterCreate","id","useEffect","current","setTimeout","scrollTo","createElement","ContentEntryFormProvider","addItemToListCache","confirmNavigationIfDirty","ModelProvider","Header","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 { Header } from \"~/admin/components/ContentEntryForm/Header\";\nimport { useFormRenderer } from \"~/admin/components/ContentEntryForm/useFormRenderer\";\nimport { ContentEntryFormContext, ContentEntryFormProvider } 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 header?: boolean;\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 * This flag exists for a lack of better Apollo cache control, at the moment.\n * We use this flag when we need to tell the system to add new entries to apollo cache.\n * Why would you want to NOT add entries to cache? When using a `ref` field, which usually points to\n * a different model than the main entry you're working on. Example: Book -> Author, you don't want\n * an Author created via a `ref` field dialog to be added to the list of Books.\n * TODO: revisit this, and look for a better solution.\n */\n addEntryToListCache?: boolean;\n}\n\nexport const ContentEntryForm = makeDecoratable(\n \"ContentEntryForm\",\n ({\n entry,\n onAfterCreate,\n addEntryToListCache,\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 addItemToListCache={addEntryToListCache}\n confirmNavigationIfDirty={true}\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":"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","ignoreList":[]}
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":"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","ignoreList":[]}