@webiny/app-headless-cms-workflows 6.4.5 → 6.6.0-alpha.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 (64) hide show
  1. package/Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.js +27 -25
  2. package/Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.js.map +1 -1
  3. package/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js +14 -22
  4. package/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js.map +1 -1
  5. package/Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.js +3 -4
  6. package/Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.js.map +1 -1
  7. package/Components/ContentEntryForm/ContentEntryFormWorkflow.js +20 -36
  8. package/Components/ContentEntryForm/ContentEntryFormWorkflow.js.map +1 -1
  9. package/Components/ContentEntryForm/index.d.ts +0 -3
  10. package/Components/ContentEntryForm/index.js +0 -3
  11. package/Routes/CmsWorkflowsEditor.js +1 -1
  12. package/Routes/CmsWorkflowsEditor.js.map +1 -1
  13. package/features/WorkflowStateCacheHandler.d.ts +11 -0
  14. package/features/WorkflowStateCacheHandler.js +50 -0
  15. package/features/WorkflowStateCacheHandler.js.map +1 -0
  16. package/features/feature.d.ts +1 -0
  17. package/features/feature.js +11 -0
  18. package/features/feature.js.map +1 -0
  19. package/index.js +12 -3
  20. package/index.js.map +1 -1
  21. package/package.json +14 -12
  22. package/presentation/CmsWorkflowsEditorView.d.ts +5 -0
  23. package/{Components/CmsWorkflows → presentation}/CmsWorkflowsEditorView.js +27 -27
  24. package/presentation/CmsWorkflowsEditorView.js.map +1 -0
  25. package/presentation/ContentEntryFormPresenterWorkflowDecorator.d.ts +24 -0
  26. package/presentation/ContentEntryFormPresenterWorkflowDecorator.js +67 -0
  27. package/presentation/ContentEntryFormPresenterWorkflowDecorator.js.map +1 -0
  28. package/presentation/TableRowMapperWorkflowDecorator.d.ts +11 -0
  29. package/presentation/TableRowMapperWorkflowDecorator.js +25 -0
  30. package/presentation/TableRowMapperWorkflowDecorator.js.map +1 -0
  31. package/presentation/WorkflowStateGetEntryFieldSelection.d.ts +8 -0
  32. package/presentation/WorkflowStateGetEntryFieldSelection.js +24 -0
  33. package/presentation/WorkflowStateGetEntryFieldSelection.js.map +1 -0
  34. package/presentation/WorkflowStateListEntriesFieldSelection.d.ts +8 -0
  35. package/presentation/WorkflowStateListEntriesFieldSelection.js +24 -0
  36. package/presentation/WorkflowStateListEntriesFieldSelection.js.map +1 -0
  37. package/presentation/cmsWorkflowsEditor/CmsWorkflowsEditorPresenter.d.ts +15 -0
  38. package/presentation/cmsWorkflowsEditor/CmsWorkflowsEditorPresenter.js +50 -0
  39. package/presentation/cmsWorkflowsEditor/CmsWorkflowsEditorPresenter.js.map +1 -0
  40. package/presentation/cmsWorkflowsEditor/abstractions.d.ts +19 -0
  41. package/presentation/cmsWorkflowsEditor/abstractions.js +5 -0
  42. package/presentation/cmsWorkflowsEditor/abstractions.js.map +1 -0
  43. package/presentation/cmsWorkflowsEditor/feature.d.ts +3 -0
  44. package/presentation/cmsWorkflowsEditor/feature.js +17 -0
  45. package/presentation/cmsWorkflowsEditor/feature.js.map +1 -0
  46. package/presentation/feature.d.ts +1 -0
  47. package/presentation/feature.js +21 -0
  48. package/presentation/feature.js.map +1 -0
  49. package/types.d.ts +10 -0
  50. package/types.js +0 -0
  51. package/Components/CmsWorkflows/CmsWorkflowsEditorView.d.ts +0 -3
  52. package/Components/CmsWorkflows/CmsWorkflowsEditorView.js.map +0 -1
  53. package/Components/ContentEntryForm/CmsEntryFormPublishButton.d.ts +0 -2
  54. package/Components/ContentEntryForm/CmsEntryFormPublishButton.js +0 -26
  55. package/Components/ContentEntryForm/CmsEntryFormPublishButton.js.map +0 -1
  56. package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.d.ts +0 -2
  57. package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js +0 -24
  58. package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js.map +0 -1
  59. package/Components/ContentEntryForm/CmsEntryFormSaveButton.d.ts +0 -2
  60. package/Components/ContentEntryForm/CmsEntryFormSaveButton.js +0 -23
  61. package/Components/ContentEntryForm/CmsEntryFormSaveButton.js.map +0 -1
  62. package/Components/ContentEntryForm/ContentEntryWorkflow.d.ts +0 -2
  63. package/Components/ContentEntryForm/ContentEntryWorkflow.js +0 -23
  64. package/Components/ContentEntryForm/ContentEntryWorkflow.js.map +0 -1
@@ -1,32 +1,34 @@
1
1
  import react from "react";
2
- import { Components } from "@webiny/app-headless-cms";
3
2
  import { Sidebar } from "@webiny/admin-ui";
4
3
  import { ReactComponent } from "@webiny/icons/flowchart.svg";
5
- import { Components as app_workflows_Components } from "@webiny/app-workflows";
6
- import { useContentEntries } from "@webiny/app-headless-cms/admin/views/contentEntries/hooks/index.js";
4
+ import { Components } from "@webiny/app-workflows";
5
+ import { ContentEntryListConfig } from "@webiny/app-headless-cms/admin/config/contentEntries/index.js";
7
6
  import { IsModelPublishable } from "@webiny/app-headless-cms/exports/admin/cms.js";
7
+ import { useContentEntriesPresenter } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
8
8
  import { createAppName } from "../../utils/appName.js";
9
- import { useApolloClient } from "@apollo/react-hooks";
10
- const { Overlay: { WorkflowStateListAppOverlay: WorkflowStateListAppOverlay } } = app_workflows_Components;
11
- const { Footer: Footer } = Components.Sidebar;
12
- const CmsEntriesWorkflowStateListFooterMenu_CmsEntriesWorkflowStateListFooterMenu = Footer.createDecorator((Original)=>function(props) {
13
- const { contentModel: model } = useContentEntries();
14
- const client = useApolloClient();
15
- const app = createAppName(model);
16
- return /*#__PURE__*/ react.createElement(Original, props, /*#__PURE__*/ react.createElement(IsModelPublishable, null, /*#__PURE__*/ react.createElement(WorkflowStateListAppOverlay, {
17
- client: client,
18
- app: app
19
- }, ({ showOverlay })=>/*#__PURE__*/ react.createElement("div", {
20
- className: "list-none"
21
- }, /*#__PURE__*/ react.createElement(Sidebar.Item, {
22
- onClick: showOverlay,
23
- text: "Content Reviews",
24
- icon: /*#__PURE__*/ react.createElement(Sidebar.Item.Icon, {
25
- element: /*#__PURE__*/ react.createElement(ReactComponent, null),
26
- label: "Content Reviews"
27
- })
28
- })))));
29
- });
30
- export { CmsEntriesWorkflowStateListFooterMenu_CmsEntriesWorkflowStateListFooterMenu as CmsEntriesWorkflowStateListFooterMenu };
9
+ const { Overlay: { WorkflowStateListAppOverlay: WorkflowStateListAppOverlay } } = Components;
10
+ const { Browser: Browser } = ContentEntryListConfig;
11
+ const ContentReviewsMenuItem = ()=>{
12
+ const presenter = useContentEntriesPresenter();
13
+ const model = presenter.vm.model;
14
+ const app = createAppName(model);
15
+ return /*#__PURE__*/ react.createElement(IsModelPublishable, null, /*#__PURE__*/ react.createElement(WorkflowStateListAppOverlay, {
16
+ app: app
17
+ }, ({ showOverlay })=>/*#__PURE__*/ react.createElement("div", {
18
+ className: "list-none"
19
+ }, /*#__PURE__*/ react.createElement(Sidebar.Item, {
20
+ onClick: showOverlay,
21
+ text: "Content Reviews",
22
+ icon: /*#__PURE__*/ react.createElement(Sidebar.Item.Icon, {
23
+ element: /*#__PURE__*/ react.createElement(ReactComponent, null),
24
+ label: "Content Reviews"
25
+ })
26
+ }))));
27
+ };
28
+ const CmsEntriesWorkflowStateListFooterMenu = ()=>/*#__PURE__*/ react.createElement(ContentEntryListConfig, null, /*#__PURE__*/ react.createElement(Browser.Sidebar.Footer, {
29
+ name: "content-reviews",
30
+ element: /*#__PURE__*/ react.createElement(ContentReviewsMenuItem, null)
31
+ }));
32
+ export { CmsEntriesWorkflowStateListFooterMenu };
31
33
 
32
34
  //# sourceMappingURL=CmsEntriesWorkflowStateListFooterMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.js","sources":["../../../src/Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport { Components } from \"@webiny/app-headless-cms\";\nimport { Sidebar } from \"@webiny/admin-ui\";\nimport { ReactComponent as WorkflowStateListIcon } from \"@webiny/icons/flowchart.svg\";\nimport { Components as WorkflowsComponents } from \"@webiny/app-workflows\";\nimport { useContentEntries } from \"@webiny/app-headless-cms/admin/views/contentEntries/hooks/index.js\";\nimport { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { createAppName } from \"~/utils/appName.js\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\n\nconst {\n Overlay: { WorkflowStateListAppOverlay }\n} = WorkflowsComponents;\n\nconst { Footer } = Components.Sidebar;\n\nexport const CmsEntriesWorkflowStateListFooterMenu = Footer.createDecorator(Original => {\n return function CmsEntriesWorkflowStateListFooterMenu(props) {\n const { contentModel: model } = useContentEntries();\n const client = useApolloClient();\n\n const app = createAppName(model);\n\n return (\n <Original {...props}>\n <IsModelPublishable>\n <WorkflowStateListAppOverlay client={client} app={app}>\n {({ showOverlay }) => {\n return (\n <div className={\"list-none\"}>\n <Sidebar.Item\n onClick={showOverlay}\n text={\"Content Reviews\"}\n icon={\n <Sidebar.Item.Icon\n element={<WorkflowStateListIcon />}\n label={\"Content Reviews\"}\n />\n }\n />\n </div>\n );\n }}\n </WorkflowStateListAppOverlay>\n </IsModelPublishable>\n </Original>\n );\n };\n});\n"],"names":["WorkflowStateListAppOverlay","WorkflowsComponents","Footer","Components","CmsEntriesWorkflowStateListFooterMenu","Original","props","model","useContentEntries","client","useApolloClient","app","createAppName","IsModelPublishable","showOverlay","Sidebar","WorkflowStateListIcon"],"mappings":";;;;;;;;;AAUA,MAAM,EACF,SAAS,EAAEA,6BAAAA,2BAA2B,EAAE,EAC3C,GAAGC;AAEJ,MAAM,EAAEC,QAAAA,MAAM,EAAE,GAAGC,WAAW,OAAO;AAE9B,MAAMC,8EAAwCF,OAAO,eAAe,CAACG,CAAAA,WACjE,SAA+CC,KAAK;QACvD,MAAM,EAAE,cAAcC,KAAK,EAAE,GAAGC;QAChC,MAAMC,SAASC;QAEf,MAAMC,MAAMC,cAAcL;QAE1B,OAAO,WAAP,GACI,oBAACF,UAAaC,OAAAA,WAAAA,GACV,oBAACO,oBAAkBA,MAAAA,WAAAA,GACf,oBAACb,6BAA2BA;YAAC,QAAQS;YAAQ,KAAKE;WAC7C,CAAC,EAAEG,WAAW,EAAE,GACN,WAAP,GACI,oBAAC;gBAAI,WAAW;6BACZ,oBAACC,QAAQ,IAAI;gBACT,SAASD;gBACT,MAAM;gBACN,oBACI,oBAACC,QAAQ,IAAI,CAAC,IAAI;oBACd,uBAAS,oBAACC,gBAAqBA;oBAC/B,OAAO;;;IAWnD"}
1
+ {"version":3,"file":"Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.js","sources":["../../../src/Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport { Sidebar } from \"@webiny/admin-ui\";\nimport { ReactComponent as WorkflowStateListIcon } from \"@webiny/icons/flowchart.svg\";\nimport { Components as WorkflowsComponents } from \"@webiny/app-workflows\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { useContentEntriesPresenter } from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { createAppName } from \"~/utils/appName.js\";\n\nconst {\n Overlay: { WorkflowStateListAppOverlay }\n} = WorkflowsComponents;\n\nconst { Browser } = ContentEntryListConfig;\n\nconst ContentReviewsMenuItem = () => {\n const presenter = useContentEntriesPresenter();\n\n const model = presenter.vm.model;\n const app = createAppName(model);\n\n return (\n <IsModelPublishable>\n <WorkflowStateListAppOverlay app={app}>\n {({ showOverlay }) => {\n return (\n <div className={\"list-none\"}>\n <Sidebar.Item\n onClick={showOverlay}\n text={\"Content Reviews\"}\n icon={\n <Sidebar.Item.Icon\n element={<WorkflowStateListIcon />}\n label={\"Content Reviews\"}\n />\n }\n />\n </div>\n );\n }}\n </WorkflowStateListAppOverlay>\n </IsModelPublishable>\n );\n};\n\nexport const CmsEntriesWorkflowStateListFooterMenu = () => {\n return (\n <ContentEntryListConfig>\n <Browser.Sidebar.Footer name={\"content-reviews\"} element={<ContentReviewsMenuItem />} />\n </ContentEntryListConfig>\n );\n};\n"],"names":["WorkflowStateListAppOverlay","WorkflowsComponents","Browser","ContentEntryListConfig","ContentReviewsMenuItem","presenter","useContentEntriesPresenter","model","app","createAppName","IsModelPublishable","showOverlay","Sidebar","WorkflowStateListIcon","CmsEntriesWorkflowStateListFooterMenu"],"mappings":";;;;;;;;AASA,MAAM,EACF,SAAS,EAAEA,6BAAAA,2BAA2B,EAAE,EAC3C,GAAGC;AAEJ,MAAM,EAAEC,SAAAA,OAAO,EAAE,GAAGC;AAEpB,MAAMC,yBAAyB;IAC3B,MAAMC,YAAYC;IAElB,MAAMC,QAAQF,UAAU,EAAE,CAAC,KAAK;IAChC,MAAMG,MAAMC,cAAcF;IAE1B,OAAO,WAAP,GACI,oBAACG,oBAAkBA,MAAAA,WAAAA,GACf,oBAACV,6BAA2BA;QAAC,KAAKQ;OAC7B,CAAC,EAAEG,WAAW,EAAE,GACN,WAAP,GACI,oBAAC;YAAI,WAAW;yBACZ,oBAACC,QAAQ,IAAI;YACT,SAASD;YACT,MAAM;YACN,oBACI,oBAACC,QAAQ,IAAI,CAAC,IAAI;gBACd,uBAAS,oBAACC,gBAAqBA;gBAC/B,OAAO;;;AAU/C;AAEO,MAAMC,wCAAwC,IAC1C,WAAP,GACI,oBAACX,wBAAsBA,MAAAA,WAAAA,GACnB,oBAACD,QAAQ,OAAO,CAAC,MAAM;QAAC,MAAM;QAAmB,uBAAS,oBAACE,wBAAsBA"}
@@ -1,43 +1,35 @@
1
1
  import react, { useCallback } from "react";
2
- import { useRoute } from "@webiny/app";
2
+ import { useFeature, useRoute } from "@webiny/app";
3
3
  import { useToast } from "@webiny/admin-ui";
4
4
  import { ContentEntryEditorConfig, usePermission } from "@webiny/app-headless-cms";
5
- import { useContentEntryForm } from "@webiny/app-headless-cms/admin/components/ContentEntryForm/useContentEntryForm.js";
6
- import { usePersistEntry } from "@webiny/app-headless-cms/admin/hooks/usePersistEntry.js";
5
+ import { useContentEntryFormPresenter } from "@webiny/app-headless-cms/presentation/contentEntries/form/useContentEntryFormPresenter.js";
6
+ import { RevisionsListFeature } from "@webiny/app-headless-cms/presentation/contentEntries/revisionsList/feature.js";
7
7
  import { ReactComponent } from "@webiny/icons/new_releases.svg";
8
8
  import { IsModelPublishable } from "@webiny/app-headless-cms/exports/admin/cms.js";
9
+ import { OptionsMenuItem } from "@webiny/app-admin";
9
10
  const { Actions: Actions } = ContentEntryEditorConfig;
10
11
  const CreateNewRevisionMenuItem = ()=>{
11
12
  const toast = useToast();
12
13
  const { setRouteParams } = useRoute();
13
14
  const { canEdit } = usePermission();
14
- const { OptionsMenuItem } = Actions.MenuItemAction.useOptionsMenuItem();
15
- const { entry } = useContentEntryForm();
16
- const { persistEntry } = usePersistEntry({
17
- addItemToListCache: true
18
- });
15
+ const formPresenter = useContentEntryFormPresenter();
16
+ const { presenter: revisionsPresenter } = useFeature(RevisionsListFeature);
17
+ const entry = formPresenter.vm.entry;
19
18
  const onClick = useCallback(async ()=>{
20
- const newRevision = await persistEntry({
21
- id: entry.id
22
- }, {
23
- skipValidators: [
24
- "required"
25
- ],
26
- createNewRevision: true
27
- });
28
- if (newRevision.error) return void toast.showWarningToast({
29
- title: "Could not create a new revision.",
30
- description: newRevision.error.message
19
+ if (!entry) return;
20
+ const newEntry = await revisionsPresenter.createRevision(entry.id);
21
+ if (!newEntry) return void toast.showWarningToast({
22
+ title: "Could not create a new revision."
31
23
  });
32
24
  setRouteParams((params)=>({
33
25
  ...params,
34
- id: newRevision.entry.id
26
+ id: newEntry.id
35
27
  }));
36
28
  }, [
37
29
  entry,
38
- persistEntry
30
+ revisionsPresenter
39
31
  ]);
40
- if (!canEdit(entry, "cms.contentEntry")) return null;
32
+ if (!entry || !canEdit(entry, "cms.contentEntry")) return null;
41
33
  return /*#__PURE__*/ react.createElement(OptionsMenuItem, {
42
34
  icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
43
35
  disabled: !entry.id,
@@ -1 +1 @@
1
- {"version":3,"file":"Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useRoute } from \"@webiny/app\";\nimport { useToast } from \"@webiny/admin-ui\";\nimport { ContentEntryEditorConfig, usePermission } from \"@webiny/app-headless-cms\";\nimport { useContentEntryForm } from \"@webiny/app-headless-cms/admin/components/ContentEntryForm/useContentEntryForm.js\";\nimport { usePersistEntry } from \"@webiny/app-headless-cms/admin/hooks/usePersistEntry.js\";\nimport { ReactComponent as NewReleaseIcon } from \"@webiny/icons/new_releases.svg\";\nimport { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\n\nconst { Actions } = ContentEntryEditorConfig;\n\nconst CreateNewRevisionMenuItem = () => {\n const toast = useToast();\n const { setRouteParams } = useRoute();\n const { canEdit } = usePermission();\n const { OptionsMenuItem } = Actions.MenuItemAction.useOptionsMenuItem();\n const { entry } = useContentEntryForm();\n const { persistEntry } = usePersistEntry({\n addItemToListCache: true\n });\n\n const onClick = useCallback(async () => {\n const newRevision = await persistEntry(\n {\n id: entry.id\n },\n {\n skipValidators: [\"required\"],\n createNewRevision: true\n }\n );\n\n if (newRevision.error) {\n toast.showWarningToast({\n title: \"Could not create a new revision.\",\n description: newRevision.error.message\n });\n return;\n }\n\n setRouteParams(params => {\n return { ...params, id: newRevision.entry.id };\n });\n }, [entry, persistEntry]);\n\n if (!canEdit(entry, \"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <OptionsMenuItem\n icon={<NewReleaseIcon />}\n disabled={!entry.id}\n label={`Create New Revision`}\n onAction={onClick}\n data-testid={\"cms.content-form.header.createNewRevision\"}\n />\n );\n};\n\nexport const CmsEntryFormCreateNewRevisionButton = () => {\n return (\n <ContentEntryEditorConfig>\n <IsModelPublishable>\n <Actions.MenuItemAction\n name={\"createNewRevision\"}\n element={<CreateNewRevisionMenuItem />}\n />\n </IsModelPublishable>\n </ContentEntryEditorConfig>\n );\n};\n"],"names":["Actions","ContentEntryEditorConfig","CreateNewRevisionMenuItem","toast","useToast","setRouteParams","useRoute","canEdit","usePermission","OptionsMenuItem","entry","useContentEntryForm","persistEntry","usePersistEntry","onClick","useCallback","newRevision","params","NewReleaseIcon","CmsEntryFormCreateNewRevisionButton","IsModelPublishable"],"mappings":";;;;;;;;AASA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AAEpB,MAAMC,4BAA4B;IAC9B,MAAMC,QAAQC;IACd,MAAM,EAAEC,cAAc,EAAE,GAAGC;IAC3B,MAAM,EAAEC,OAAO,EAAE,GAAGC;IACpB,MAAM,EAAEC,eAAe,EAAE,GAAGT,QAAQ,cAAc,CAAC,kBAAkB;IACrE,MAAM,EAAEU,KAAK,EAAE,GAAGC;IAClB,MAAM,EAAEC,YAAY,EAAE,GAAGC,gBAAgB;QACrC,oBAAoB;IACxB;IAEA,MAAMC,UAAUC,YAAY;QACxB,MAAMC,cAAc,MAAMJ,aACtB;YACI,IAAIF,MAAM,EAAE;QAChB,GACA;YACI,gBAAgB;gBAAC;aAAW;YAC5B,mBAAmB;QACvB;QAGJ,IAAIM,YAAY,KAAK,EAAE,YACnBb,MAAM,gBAAgB,CAAC;YACnB,OAAO;YACP,aAAaa,YAAY,KAAK,CAAC,OAAO;QAC1C;QAIJX,eAAeY,CAAAA,SACJ;gBAAE,GAAGA,MAAM;gBAAE,IAAID,YAAY,KAAK,CAAC,EAAE;YAAC;IAErD,GAAG;QAACN;QAAOE;KAAa;IAExB,IAAI,CAACL,QAAQG,OAAO,qBAChB,OAAO;IAGX,OAAO,WAAP,GACI,oBAACD,iBAAAA;QACG,oBAAM,oBAACS,gBAAcA;QACrB,UAAU,CAACR,MAAM,EAAE;QACnB,OAAO;QACP,UAAUI;QACV,eAAa;;AAGzB;AAEO,MAAMK,sCAAsC,IACxC,WAAP,GACI,oBAAClB,0BAAwBA,MAAAA,WAAAA,GACrB,oBAACmB,oBAAkBA,MAAAA,WAAAA,GACf,oBAACpB,QAAQ,cAAc;QACnB,MAAM;QACN,uBAAS,oBAACE,2BAAyBA"}
1
+ {"version":3,"file":"Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useFeature } from \"@webiny/app\";\nimport { useRoute } from \"@webiny/app\";\nimport { useToast } from \"@webiny/admin-ui\";\nimport { ContentEntryEditorConfig, usePermission } from \"@webiny/app-headless-cms\";\nimport { useContentEntryFormPresenter } from \"@webiny/app-headless-cms/presentation/contentEntries/form/useContentEntryFormPresenter.js\";\nimport { RevisionsListFeature } from \"@webiny/app-headless-cms/presentation/contentEntries/revisionsList/feature.js\";\nimport { ReactComponent as NewReleaseIcon } from \"@webiny/icons/new_releases.svg\";\nimport { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { OptionsMenuItem } from \"@webiny/app-admin\";\n\nconst { Actions } = ContentEntryEditorConfig;\n\nconst CreateNewRevisionMenuItem = () => {\n const toast = useToast();\n const { setRouteParams } = useRoute();\n const { canEdit } = usePermission();\n const formPresenter = useContentEntryFormPresenter();\n const { presenter: revisionsPresenter } = useFeature(RevisionsListFeature);\n\n const entry = formPresenter.vm.entry;\n\n const onClick = useCallback(async () => {\n if (!entry) {\n return;\n }\n\n const newEntry = await revisionsPresenter.createRevision(entry.id);\n\n if (!newEntry) {\n toast.showWarningToast({\n title: \"Could not create a new revision.\"\n });\n return;\n }\n\n setRouteParams(params => {\n return { ...params, id: newEntry.id };\n });\n }, [entry, revisionsPresenter]);\n\n if (!entry || !canEdit(entry, \"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <OptionsMenuItem\n icon={<NewReleaseIcon />}\n disabled={!entry.id}\n label={`Create New Revision`}\n onAction={onClick}\n data-testid={\"cms.content-form.header.createNewRevision\"}\n />\n );\n};\n\nexport const CmsEntryFormCreateNewRevisionButton = () => {\n return (\n <ContentEntryEditorConfig>\n <IsModelPublishable>\n <Actions.MenuItemAction\n name={\"createNewRevision\"}\n element={<CreateNewRevisionMenuItem />}\n />\n </IsModelPublishable>\n </ContentEntryEditorConfig>\n );\n};\n"],"names":["Actions","ContentEntryEditorConfig","CreateNewRevisionMenuItem","toast","useToast","setRouteParams","useRoute","canEdit","usePermission","formPresenter","useContentEntryFormPresenter","revisionsPresenter","useFeature","RevisionsListFeature","entry","onClick","useCallback","newEntry","params","OptionsMenuItem","NewReleaseIcon","CmsEntryFormCreateNewRevisionButton","IsModelPublishable"],"mappings":";;;;;;;;;AAWA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AAEpB,MAAMC,4BAA4B;IAC9B,MAAMC,QAAQC;IACd,MAAM,EAAEC,cAAc,EAAE,GAAGC;IAC3B,MAAM,EAAEC,OAAO,EAAE,GAAGC;IACpB,MAAMC,gBAAgBC;IACtB,MAAM,EAAE,WAAWC,kBAAkB,EAAE,GAAGC,WAAWC;IAErD,MAAMC,QAAQL,cAAc,EAAE,CAAC,KAAK;IAEpC,MAAMM,UAAUC,YAAY;QACxB,IAAI,CAACF,OACD;QAGJ,MAAMG,WAAW,MAAMN,mBAAmB,cAAc,CAACG,MAAM,EAAE;QAEjE,IAAI,CAACG,UAAU,YACXd,MAAM,gBAAgB,CAAC;YACnB,OAAO;QACX;QAIJE,eAAea,CAAAA,SACJ;gBAAE,GAAGA,MAAM;gBAAE,IAAID,SAAS,EAAE;YAAC;IAE5C,GAAG;QAACH;QAAOH;KAAmB;IAE9B,IAAI,CAACG,SAAS,CAACP,QAAQO,OAAO,qBAC1B,OAAO;IAGX,OAAO,WAAP,GACI,oBAACK,iBAAeA;QACZ,oBAAM,oBAACC,gBAAcA;QACrB,UAAU,CAACN,MAAM,EAAE;QACnB,OAAO;QACP,UAAUC;QACV,eAAa;;AAGzB;AAEO,MAAMM,sCAAsC,IACxC,WAAP,GACI,oBAACpB,0BAAwBA,MAAAA,WAAAA,GACrB,oBAACqB,oBAAkBA,MAAAA,WAAAA,GACf,oBAACtB,QAAQ,cAAc;QACnB,MAAM;QACN,uBAAS,oBAACE,2BAAyBA"}
@@ -1,13 +1,12 @@
1
1
  import react from "react";
2
2
  import { ContentEntryEditorConfig } from "@webiny/app-headless-cms";
3
- import { WorkflowStateValue, useWorkflowState } from "@webiny/app-workflows";
3
+ import { useWorkflowState } from "@webiny/app-workflows";
4
4
  const { Actions: Actions } = ContentEntryEditorConfig;
5
5
  const { MenuItemAction: MenuItemAction } = Actions;
6
6
  const OverrideScheduleMenuItemAction = (props)=>{
7
7
  const { presenter } = useWorkflowState();
8
- if (presenter.vm.workflow && presenter.vm.state?.state !== WorkflowStateValue.approved) {
9
- if ("schedule" === props.name) return null;
10
- }
8
+ if (!presenter.vm.hasWorkflow || presenter.vm.isApproved) ;
9
+ else if ("schedule" === props.name) return null;
11
10
  return props.children;
12
11
  };
13
12
  const CmsEntryFormScheduleMenuItemAction = MenuItemAction.createDecorator((Original)=>function(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState, WorkflowStateValue } from \"@webiny/app-workflows\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { MenuItemAction } = Actions;\n\ninterface IOverrideScheduleMenuItemActionProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideScheduleMenuItemAction = (props: IOverrideScheduleMenuItemActionProps) => {\n const { presenter } = useWorkflowState();\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (!presenter.vm.workflow || presenter.vm.state?.state === WorkflowStateValue.approved) {\n return props.children;\n } else if (props.name === \"schedule\") {\n return null;\n }\n return props.children;\n};\n/**\n * There is a possibility that this decorator will not do anything, because scheduler is not turned on.\n */\nexport const CmsEntryFormScheduleMenuItemAction = MenuItemAction.createDecorator(Original => {\n return function WorkflowCmsEntryScheduleMenuItemAction(props) {\n return (\n <Original\n {...props}\n element={\n <OverrideScheduleMenuItemAction name={props.name}>\n {props.element}\n </OverrideScheduleMenuItemAction>\n }\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","MenuItemAction","OverrideScheduleMenuItemAction","props","presenter","useWorkflowState","WorkflowStateValue","CmsEntryFormScheduleMenuItemAction","Original"],"mappings":";;;AAIA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,gBAAAA,cAAc,EAAE,GAAGF;AAO3B,MAAMG,iCAAiC,CAACC;IACpC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAKtB,IAAI,AAACD,UAAU,EAAE,CAAC,QAAQ,IAAIA,UAAU,EAAE,CAAC,KAAK,EAAE,UAAUE,mBAAmB,QAAQ,EAEhF;QAAA,IAAIH,AAAe,eAAfA,MAAM,IAAI,EACjB,OAAO;IACX;IACA,OAAOA,MAAM,QAAQ;AACzB;AAIO,MAAMI,qCAAqCN,eAAe,eAAe,CAACO,CAAAA,WACtE,SAAgDL,KAAK;QACxD,OAAO,WAAP,GACI,oBAACK,UAAAA;YACI,GAAGL,KAAK;YACT,uBACI,oBAACD,gCAA8BA;gBAAC,MAAMC,MAAM,IAAI;eAC3CA,MAAM,OAAO;;IAKlC"}
1
+ {"version":3,"file":"Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { MenuItemAction } = Actions;\n\ninterface IOverrideScheduleMenuItemActionProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideScheduleMenuItemAction = (props: IOverrideScheduleMenuItemActionProps) => {\n const { presenter } = useWorkflowState();\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (!presenter.vm.hasWorkflow || presenter.vm.isApproved) {\n return props.children;\n } else if (props.name === \"schedule\") {\n return null;\n }\n return props.children;\n};\n/**\n * There is a possibility that this decorator will not do anything, because scheduler is not turned on.\n */\nexport const CmsEntryFormScheduleMenuItemAction = MenuItemAction.createDecorator(Original => {\n return function WorkflowCmsEntryScheduleMenuItemAction(props) {\n return (\n <Original\n {...props}\n element={\n <OverrideScheduleMenuItemAction name={props.name}>\n {props.element}\n </OverrideScheduleMenuItemAction>\n }\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","MenuItemAction","OverrideScheduleMenuItemAction","props","presenter","useWorkflowState","CmsEntryFormScheduleMenuItemAction","Original"],"mappings":";;;AAIA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,gBAAAA,cAAc,EAAE,GAAGF;AAO3B,MAAMG,iCAAiC,CAACC;IACpC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAKtB,IAAI,CAACD,UAAU,EAAE,CAAC,WAAW,IAAIA,UAAU,EAAE,CAAC,UAAU;SAEjD,IAAID,AAAe,eAAfA,MAAM,IAAI,EACjB,OAAO;IAEX,OAAOA,MAAM,QAAQ;AACzB;AAIO,MAAMG,qCAAqCL,eAAe,eAAe,CAACM,CAAAA,WACtE,SAAgDJ,KAAK;QACxD,OAAO,WAAP,GACI,oBAACI,UAAAA;YACI,GAAGJ,KAAK;YACT,uBACI,oBAACD,gCAA8BA;gBAAC,MAAMC,MAAM,IAAI;eAC3CA,MAAM,OAAO;;IAKlC"}
@@ -1,40 +1,24 @@
1
1
  import react from "react";
2
- import { ContentEntryForm, useModel } from "@webiny/app-headless-cms";
3
- import { Components } from "@webiny/app-workflows";
4
- import { Alert, Grid } from "@webiny/admin-ui";
2
+ import { observer } from "mobx-react-lite";
3
+ import { Alert } from "@webiny/admin-ui";
4
+ import { ContentEntryFormContent } from "@webiny/app-headless-cms/presentation/contentEntries/views/layout/index.js";
5
+ import { useContentEntryFormPresenter } from "@webiny/app-headless-cms/presentation/contentEntries/form/useContentEntryFormPresenter.js";
6
+ import { Components, useWorkflowState } from "@webiny/app-workflows";
5
7
  import { CMS_MODEL_SINGLETON_TAG } from "@webiny/app-headless-cms-common";
6
- const { ContentReview: { WorkflowStateBar: WorkflowStateBar, WorkflowStateOverlay: WorkflowStateOverlay } } = Components;
7
- const emptyFunction = async ()=>{};
8
- const StoreAlert = ({ state })=>{
9
- if (!state) return null;
10
- return /*#__PURE__*/ react.createElement(Alert, {
11
- className: "mb-md",
12
- type: "danger"
13
- }, "Any changes you do on the entry will not be stored!");
14
- };
15
- const shouldShowOriginal = (params)=>{
16
- const { entry, model } = params;
17
- if (!entry?.id || !model?.tags) return true;
18
- return model.tags.includes(CMS_MODEL_SINGLETON_TAG);
19
- };
20
- const ContentEntryFormWorkflow_ContentEntryFormWorkflow = ContentEntryForm.createDecorator((Original)=>function(props) {
21
- const { model } = useModel();
22
- const showOriginal = shouldShowOriginal({
23
- entry: props.entry,
24
- model
25
- });
26
- if (showOriginal) return /*#__PURE__*/ react.createElement(Original, props);
27
- return /*#__PURE__*/ react.createElement(Grid, null, /*#__PURE__*/ react.createElement(Grid.Column, {
28
- span: 12
29
- }, /*#__PURE__*/ react.createElement(WorkflowStateBar, null)), /*#__PURE__*/ react.createElement(Grid.Column, {
30
- span: 12
31
- }, /*#__PURE__*/ react.createElement(WorkflowStateOverlay, null, ({ state })=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(StoreAlert, {
32
- state: state
33
- }), /*#__PURE__*/ react.createElement(Original, {
34
- ...props,
35
- persistEntry: state ? emptyFunction : props.persistEntry
36
- })))));
37
- });
38
- export { ContentEntryFormWorkflow_ContentEntryFormWorkflow as ContentEntryFormWorkflow };
8
+ const { ContentReview: { WorkflowStateBar: WorkflowStateBar } } = Components;
9
+ const ContentEntryFormWorkflow = ContentEntryFormContent.createDecorator((Original)=>observer(function(props) {
10
+ const formPresenter = useContentEntryFormPresenter();
11
+ const { presenter } = useWorkflowState();
12
+ const model = formPresenter.vm.model;
13
+ const isSingleton = model.tags.includes(CMS_MODEL_SINGLETON_TAG);
14
+ if (isSingleton || formPresenter.vm.isNewEntry || !presenter.vm.hasWorkflow) return /*#__PURE__*/ react.createElement(Original, props);
15
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement("div", {
16
+ className: "max-w-screen bg-white p-sm border-solid border-b-sm border-neutral-dimmed"
17
+ }, /*#__PURE__*/ react.createElement(WorkflowStateBar, null), presenter.vm.hasState ? /*#__PURE__*/ react.createElement(Alert, {
18
+ type: "danger",
19
+ className: "mt-sm"
20
+ }, "Any changes you do on the entry will not be stored!") : null), /*#__PURE__*/ react.createElement(Original, props));
21
+ }));
22
+ export { ContentEntryFormWorkflow };
39
23
 
40
24
  //# sourceMappingURL=ContentEntryFormWorkflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Components/ContentEntryForm/ContentEntryFormWorkflow.js","sources":["../../../src/Components/ContentEntryForm/ContentEntryFormWorkflow.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryForm, useModel } from \"@webiny/app-headless-cms\";\nimport type { IWorkflowState } from \"@webiny/app-workflows\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { Alert, Grid } from \"@webiny/admin-ui\";\nimport type { PersistEntry } from \"@webiny/app-headless-cms/admin/components/ContentEntryForm/ContentEntryFormProvider.js\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/app-headless-cms-common\";\nimport type { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types/index.js\";\n\nconst {\n ContentReview: { WorkflowStateBar, WorkflowStateOverlay }\n} = Components;\n\n/**\n * To override storing of the entry when in workflow state.\n */\n// @ts-expect-error\nconst emptyFunction: PersistEntry = async () => {\n return void 0;\n};\n\ninterface IStoreAlertProps {\n state: IWorkflowState | undefined;\n}\n\nconst StoreAlert = ({ state }: IStoreAlertProps) => {\n if (!state) {\n return null;\n }\n return (\n <Alert className={\"mb-md\"} type=\"danger\">\n Any changes you do on the entry will not be stored!\n </Alert>\n );\n};\n\ninterface IShouldShowOriginalParams {\n entry: Partial<Pick<CmsContentEntry, \"id\">>;\n model: Partial<Pick<CmsModel, \"tags\">>;\n}\nconst shouldShowOriginal = (params: IShouldShowOriginalParams): boolean => {\n const { entry, model } = params;\n /**\n * In case of new entry or no model, show original.\n * Also, for singleton models, show original.\n */\n if (!entry?.id || !model?.tags) {\n return true;\n }\n return model.tags.includes(CMS_MODEL_SINGLETON_TAG);\n};\n\nexport const ContentEntryFormWorkflow = ContentEntryForm.createDecorator(Original => {\n return function ContentEntryFormWorkflow(props) {\n const { model } = useModel();\n\n const showOriginal = shouldShowOriginal({\n entry: props.entry,\n model\n });\n\n if (showOriginal) {\n return <Original {...props} />;\n }\n\n return (\n <Grid>\n <Grid.Column span={12}>\n <WorkflowStateBar />\n </Grid.Column>\n <Grid.Column span={12}>\n <WorkflowStateOverlay>\n {({ state }) => {\n return (\n <>\n <StoreAlert state={state} />\n <Original\n {...props}\n persistEntry={state ? emptyFunction : props.persistEntry}\n />\n </>\n );\n }}\n </WorkflowStateOverlay>\n </Grid.Column>\n </Grid>\n );\n };\n});\n"],"names":["WorkflowStateBar","WorkflowStateOverlay","Components","emptyFunction","StoreAlert","state","Alert","shouldShowOriginal","params","entry","model","CMS_MODEL_SINGLETON_TAG","ContentEntryFormWorkflow","ContentEntryForm","Original","props","useModel","showOriginal","Grid"],"mappings":";;;;;AASA,MAAM,EACF,eAAe,EAAEA,kBAAAA,gBAAgB,EAAEC,sBAAAA,oBAAoB,EAAE,EAC5D,GAAGC;AAMJ,MAAMC,gBAA8B,WAEpC;AAMA,MAAMC,aAAa,CAAC,EAAEC,KAAK,EAAoB;IAC3C,IAAI,CAACA,OACD,OAAO;IAEX,OAAO,WAAP,GACI,oBAACC,OAAKA;QAAC,WAAW;QAAS,MAAK;OAAS;AAIjD;AAMA,MAAMC,qBAAqB,CAACC;IACxB,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAE,GAAGF;IAKzB,IAAI,CAACC,OAAO,MAAM,CAACC,OAAO,MACtB,OAAO;IAEX,OAAOA,MAAM,IAAI,CAAC,QAAQ,CAACC;AAC/B;AAEO,MAAMC,oDAA2BC,iBAAiB,eAAe,CAACC,CAAAA,WAC9D,SAAkCC,KAAK;QAC1C,MAAM,EAAEL,KAAK,EAAE,GAAGM;QAElB,MAAMC,eAAeV,mBAAmB;YACpC,OAAOQ,MAAM,KAAK;YAClBL;QACJ;QAEA,IAAIO,cACA,OAAO,WAAP,GAAO,oBAACH,UAAaC;QAGzB,OAAO,WAAP,GACI,oBAACG,MAAIA,MAAAA,WAAAA,GACD,oBAACA,KAAK,MAAM;YAAC,MAAM;yBACf,oBAAClB,kBAAgBA,QAAAA,WAAAA,GAErB,oBAACkB,KAAK,MAAM;YAAC,MAAM;yBACf,oBAACjB,sBAAoBA,MAChB,CAAC,EAAEI,KAAK,EAAE,GACA,WAAP,GACI,wDACI,oBAACD,YAAUA;gBAAC,OAAOC;8BACnB,oBAACS,UAAAA;gBACI,GAAGC,KAAK;gBACT,cAAcV,QAAQF,gBAAgBY,MAAM,YAAY;;IAS5F"}
1
+ {"version":3,"file":"Components/ContentEntryForm/ContentEntryFormWorkflow.js","sources":["../../../src/Components/ContentEntryForm/ContentEntryFormWorkflow.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Alert } from \"@webiny/admin-ui\";\nimport { ContentEntryFormContent } from \"@webiny/app-headless-cms/presentation/contentEntries/views/layout/index.js\";\nimport { useContentEntryFormPresenter } from \"@webiny/app-headless-cms/presentation/contentEntries/form/useContentEntryFormPresenter.js\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/app-headless-cms-common\";\n\nconst {\n ContentReview: { WorkflowStateBar }\n} = Components;\n\nexport const ContentEntryFormWorkflow = ContentEntryFormContent.createDecorator(Original => {\n return observer(function ContentEntryFormWorkflowDecorator(props) {\n const formPresenter = useContentEntryFormPresenter();\n const { presenter } = useWorkflowState();\n const model = formPresenter.vm.model;\n\n const isSingleton = model.tags.includes(CMS_MODEL_SINGLETON_TAG);\n\n if (isSingleton || formPresenter.vm.isNewEntry || !presenter.vm.hasWorkflow) {\n return <Original {...props} />;\n }\n\n return (\n <>\n <div\n className={\n \"max-w-screen bg-white p-sm border-solid border-b-sm border-neutral-dimmed\"\n }\n >\n <WorkflowStateBar />\n {presenter.vm.hasState ? (\n <Alert type=\"danger\" className={\"mt-sm\"}>\n Any changes you do on the entry will not be stored!\n </Alert>\n ) : null}\n </div>\n <Original {...props} />\n </>\n );\n });\n});\n"],"names":["WorkflowStateBar","Components","ContentEntryFormWorkflow","ContentEntryFormContent","Original","observer","props","formPresenter","useContentEntryFormPresenter","presenter","useWorkflowState","model","isSingleton","CMS_MODEL_SINGLETON_TAG","Alert"],"mappings":";;;;;;;AASA,MAAM,EACF,eAAe,EAAEA,kBAAAA,gBAAgB,EAAE,EACtC,GAAGC;AAEG,MAAMC,2BAA2BC,wBAAwB,eAAe,CAACC,CAAAA,WACrEC,SAAS,SAA2CC,KAAK;QAC5D,MAAMC,gBAAgBC;QACtB,MAAM,EAAEC,SAAS,EAAE,GAAGC;QACtB,MAAMC,QAAQJ,cAAc,EAAE,CAAC,KAAK;QAEpC,MAAMK,cAAcD,MAAM,IAAI,CAAC,QAAQ,CAACE;QAExC,IAAID,eAAeL,cAAc,EAAE,CAAC,UAAU,IAAI,CAACE,UAAU,EAAE,CAAC,WAAW,EACvE,OAAO,WAAP,GAAO,oBAACL,UAAaE;QAGzB,OAAO,WAAP,GACI,wDACI,oBAAC;YACG,WACI;yBAGJ,oBAACN,kBAAgBA,OAChBS,UAAU,EAAE,CAAC,QAAQ,GAAG,WAAH,GAClB,oBAACK,OAAKA;YAAC,MAAK;YAAS,WAAW;WAAS,yDAGzC,qBAER,oBAACV,UAAaE;IAG1B"}
@@ -1,7 +1,4 @@
1
1
  export { ContentEntryFormWorkflow } from "./ContentEntryFormWorkflow.js";
2
- export { ContentEntryWorkflow } from "./ContentEntryWorkflow.js";
3
2
  export { CmsEntryFormTooltipButton } from "./CmsEntryFormTooltipButton.js";
4
3
  export { CmsEntryFormScheduleMenuItemAction } from "./CmsEntryFormScheduleMenuItemAction.js";
5
- export { CmsEntryFormSaveAndPublishButton } from "./CmsEntryFormSaveAndPublishButton.js";
6
- export { CmsEntryFormSaveButton } from "./CmsEntryFormSaveButton.js";
7
4
  export { CmsEntryFormCreateNewRevisionButton } from "./CmsEntryFormCreateNewRevisionButton.js";
@@ -1,7 +1,4 @@
1
1
  export { ContentEntryFormWorkflow } from "./ContentEntryFormWorkflow.js";
2
- export { ContentEntryWorkflow } from "./ContentEntryWorkflow.js";
3
2
  export { CmsEntryFormTooltipButton } from "./CmsEntryFormTooltipButton.js";
4
3
  export { CmsEntryFormScheduleMenuItemAction } from "./CmsEntryFormScheduleMenuItemAction.js";
5
- export { CmsEntryFormSaveAndPublishButton } from "./CmsEntryFormSaveAndPublishButton.js";
6
- export { CmsEntryFormSaveButton } from "./CmsEntryFormSaveButton.js";
7
4
  export { CmsEntryFormCreateNewRevisionButton } from "./CmsEntryFormCreateNewRevisionButton.js";
@@ -1,11 +1,11 @@
1
1
  import react, { Suspense } from "react";
2
2
  import { Routes } from "../routes.js";
3
3
  import react_helmet from "react-helmet";
4
- import { CmsWorkflowsEditorMenu, CmsWorkflowsEditorView } from "../Components/CmsWorkflows/CmsWorkflowsEditorView.js";
5
4
  import { i18n } from "@webiny/app/i18n/index.js";
6
5
  import { AdminConfig, AdminLayout, SecureRoute } from "@webiny/app-admin";
7
6
  import { OverlayLoader } from "@webiny/admin-ui";
8
7
  import { useCanUseWorkflows } from "@webiny/app-workflows";
8
+ import { CmsWorkflowsEditorMenu, CmsWorkflowsEditorView } from "../presentation/CmsWorkflowsEditorView.js";
9
9
  const t = i18n.namespace("HeadlessCms.Workflows.Editor");
10
10
  const Loader = ({ children, ...props })=>/*#__PURE__*/ react.createElement(Suspense, {
11
11
  fallback: /*#__PURE__*/ react.createElement(OverlayLoader, null)
@@ -1 +1 @@
1
- {"version":3,"file":"Routes/CmsWorkflowsEditor.js","sources":["../../src/Routes/CmsWorkflowsEditor.tsx"],"sourcesContent":["import React, { Suspense } from \"react\";\nimport { Routes } from \"~/routes.js\";\nimport Helmet from \"react-helmet\";\nimport {\n CmsWorkflowsEditorView,\n CmsWorkflowsEditorMenu\n} from \"~/Components/CmsWorkflows/CmsWorkflowsEditorView.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { SecureRoute } from \"@webiny/app-admin\";\nimport { OverlayLoader } from \"@webiny/admin-ui\";\nimport { AdminConfig, AdminLayout } from \"@webiny/app-admin\";\nimport { useCanUseWorkflows } from \"@webiny/app-workflows\";\n\nconst t = i18n.namespace(\"HeadlessCms.Workflows.Editor\");\n\ninterface LoaderProps {\n children: React.ReactNode;\n}\n\nconst Loader = ({ children, ...props }: LoaderProps) => (\n <Suspense fallback={<OverlayLoader />}>\n {React.cloneElement(children as unknown as React.ReactElement, props)}\n </Suspense>\n);\n\nconst { Route } = AdminConfig;\n\nexport const CmsWorkflowsEditor = () => {\n const { canUseWorkflows } = useCanUseWorkflows();\n if (!canUseWorkflows) {\n return null;\n }\n return (\n <AdminConfig>\n <Route\n route={Routes.ContentModels.Workflows}\n element={\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Workflows`}</title>\n </Helmet>\n <Loader>\n <CmsWorkflowsEditorView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n }\n />\n <CmsWorkflowsEditorMenu />\n </AdminConfig>\n );\n};\n"],"names":["t","i18n","Loader","children","props","Suspense","OverlayLoader","React","Route","AdminConfig","CmsWorkflowsEditor","canUseWorkflows","useCanUseWorkflows","Routes","SecureRoute","AdminLayout","Helmet","CmsWorkflowsEditorView","CmsWorkflowsEditorMenu"],"mappings":";;;;;;;;AAaA,MAAMA,IAAIC,KAAK,SAAS,CAAC;AAMzB,MAAMC,SAAS,CAAC,EAAEC,QAAQ,EAAE,GAAGC,OAAoB,iBAC/C,oBAACC,UAAQA;QAAC,wBAAU,oBAACC,eAAaA;qBAC7BC,MAAAA,YAAkB,CAACJ,UAA2CC;AAIvE,MAAM,EAAEI,OAAAA,KAAK,EAAE,GAAGC;AAEX,MAAMC,qBAAqB;IAC9B,MAAM,EAAEC,eAAe,EAAE,GAAGC;IAC5B,IAAI,CAACD,iBACD,OAAO;IAEX,OAAO,WAAP,GACI,oBAACF,aAAWA,MAAAA,WAAAA,GACR,oBAACD,OAAKA;QACF,OAAOK,OAAO,aAAa,CAAC,SAAS;QACrC,uBACI,oBAACC,aAAWA;YAAC,YAAY;yBACrB,oBAACC,aAAWA,MAAAA,WAAAA,GACR,oBAACC,cAAMA,MAAAA,WAAAA,GACH,oBAAC,eAAOhB,CAAC,CAAC,SAAS,CAAC,kBAExB,oBAACE,QAAMA,MAAAA,WAAAA,GACH,oBAACe,wBAAsBA;sBAM3C,oBAACC,wBAAsBA;AAGnC"}
1
+ {"version":3,"file":"Routes/CmsWorkflowsEditor.js","sources":["../../src/Routes/CmsWorkflowsEditor.tsx"],"sourcesContent":["import React, { Suspense } from \"react\";\nimport { Routes } from \"~/routes.js\";\nimport Helmet from \"react-helmet\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { SecureRoute } from \"@webiny/app-admin\";\nimport { OverlayLoader } from \"@webiny/admin-ui\";\nimport { AdminConfig, AdminLayout } from \"@webiny/app-admin\";\nimport { useCanUseWorkflows } from \"@webiny/app-workflows\";\nimport { CmsWorkflowsEditorView } from \"~/presentation/CmsWorkflowsEditorView.js\";\nimport { CmsWorkflowsEditorMenu } from \"~/presentation/CmsWorkflowsEditorView.js\";\n\nconst t = i18n.namespace(\"HeadlessCms.Workflows.Editor\");\n\ninterface LoaderProps {\n children: React.ReactNode;\n}\n\nconst Loader = ({ children, ...props }: LoaderProps) => (\n <Suspense fallback={<OverlayLoader />}>\n {React.cloneElement(children as unknown as React.ReactElement, props)}\n </Suspense>\n);\n\nconst { Route } = AdminConfig;\n\nexport const CmsWorkflowsEditor = () => {\n const { canUseWorkflows } = useCanUseWorkflows();\n if (!canUseWorkflows) {\n return null;\n }\n return (\n <AdminConfig>\n <Route\n route={Routes.ContentModels.Workflows}\n element={\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Workflows`}</title>\n </Helmet>\n <Loader>\n <CmsWorkflowsEditorView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n }\n />\n <CmsWorkflowsEditorMenu />\n </AdminConfig>\n );\n};\n"],"names":["t","i18n","Loader","children","props","Suspense","OverlayLoader","React","Route","AdminConfig","CmsWorkflowsEditor","canUseWorkflows","useCanUseWorkflows","Routes","SecureRoute","AdminLayout","Helmet","CmsWorkflowsEditorView","CmsWorkflowsEditorMenu"],"mappings":";;;;;;;;AAWA,MAAMA,IAAIC,KAAK,SAAS,CAAC;AAMzB,MAAMC,SAAS,CAAC,EAAEC,QAAQ,EAAE,GAAGC,OAAoB,iBAC/C,oBAACC,UAAQA;QAAC,wBAAU,oBAACC,eAAaA;qBAC7BC,MAAAA,YAAkB,CAACJ,UAA2CC;AAIvE,MAAM,EAAEI,OAAAA,KAAK,EAAE,GAAGC;AAEX,MAAMC,qBAAqB;IAC9B,MAAM,EAAEC,eAAe,EAAE,GAAGC;IAC5B,IAAI,CAACD,iBACD,OAAO;IAEX,OAAO,WAAP,GACI,oBAACF,aAAWA,MAAAA,WAAAA,GACR,oBAACD,OAAKA;QACF,OAAOK,OAAO,aAAa,CAAC,SAAS;QACrC,uBACI,oBAACC,aAAWA;YAAC,YAAY;yBACrB,oBAACC,aAAWA,MAAAA,WAAAA,GACR,oBAACC,cAAMA,MAAAA,WAAAA,GACH,oBAAC,eAAOhB,CAAC,CAAC,SAAS,CAAC,kBAExB,oBAACE,QAAMA,MAAAA,WAAAA,GACH,oBAACe,wBAAsBA;sBAM3C,oBAACC,wBAAsBA;AAGnC"}
@@ -0,0 +1,11 @@
1
+ import { ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/abstractions.js";
2
+ import { WorkflowStateChangedHandler, type WorkflowStateChangedEvent } from "@webiny/app-workflows/domain/events.js";
3
+ declare class WorkflowStateCacheHandlerImpl implements WorkflowStateChangedHandler.Interface {
4
+ private cacheProvider;
5
+ constructor(cacheProvider: ContentEntriesCacheProvider.Interface);
6
+ handle(event: WorkflowStateChangedEvent): Promise<void>;
7
+ }
8
+ export declare const WorkflowStateCacheHandler: typeof WorkflowStateCacheHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app/features/eventPublisher").IEventHandler<WorkflowStateChangedEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,50 @@
1
+ import { parseIdentifier } from "@webiny/utils/parseIdentifier.js";
2
+ import { ContentEntriesCacheProvider } from "@webiny/app-headless-cms/features/contentEntry/abstractions.js";
3
+ import { WorkflowStateChangedHandler } from "@webiny/app-workflows/domain/events.js";
4
+ function getModelIdFromAppName(app) {
5
+ const matched = app.match(/^cms\.([a-zA-Z0-9_-]+)$/);
6
+ return matched ? matched[1] : null;
7
+ }
8
+ function toWorkflowStateValues(state) {
9
+ if (!state) return null;
10
+ return {
11
+ workflowId: state.id,
12
+ stepId: state.currentStep.id,
13
+ stepName: state.currentStep.title,
14
+ state: state.state
15
+ };
16
+ }
17
+ class WorkflowStateCacheHandlerImpl {
18
+ constructor(cacheProvider){
19
+ this.cacheProvider = cacheProvider;
20
+ }
21
+ async handle(event) {
22
+ const { app, targetRevisionId, state } = event.payload;
23
+ const modelId = getModelIdFromAppName(app);
24
+ if (!modelId) return;
25
+ const { id: entryId } = parseIdentifier(targetRevisionId);
26
+ const cache = this.cacheProvider.get(modelId);
27
+ const workflowValues = toWorkflowStateValues(state);
28
+ cache.updateItems((entry)=>{
29
+ if (entry.entryId !== entryId) return entry;
30
+ return {
31
+ ...entry,
32
+ meta: {
33
+ ...entry.meta,
34
+ system: {
35
+ workflow: workflowValues
36
+ }
37
+ }
38
+ };
39
+ });
40
+ }
41
+ }
42
+ const WorkflowStateCacheHandler = WorkflowStateChangedHandler.createImplementation({
43
+ implementation: WorkflowStateCacheHandlerImpl,
44
+ dependencies: [
45
+ ContentEntriesCacheProvider
46
+ ]
47
+ });
48
+ export { WorkflowStateCacheHandler };
49
+
50
+ //# sourceMappingURL=WorkflowStateCacheHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/WorkflowStateCacheHandler.js","sources":["../../src/features/WorkflowStateCacheHandler.ts"],"sourcesContent":["import { parseIdentifier } from \"@webiny/utils/parseIdentifier.js\";\nimport { ContentEntriesCacheProvider } from \"@webiny/app-headless-cms/features/contentEntry/abstractions.js\";\nimport {\n WorkflowStateChangedHandler,\n type WorkflowStateChangedEvent\n} from \"@webiny/app-workflows/domain/events.js\";\nimport type { CmsContentEntry } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport type { ICmsEntryWorkflowState } from \"~/types.js\";\n\nfunction getModelIdFromAppName(app: string): string | null {\n const matched = app.match(/^cms\\.([a-zA-Z0-9_-]+)$/);\n return matched ? matched[1] : null;\n}\n\nfunction toWorkflowStateValues(\n state: WorkflowStateChangedEvent[\"payload\"][\"state\"]\n): ICmsEntryWorkflowState | null {\n if (!state) {\n return null;\n }\n\n return {\n workflowId: state.id,\n stepId: state.currentStep.id,\n stepName: state.currentStep.title,\n state: state.state\n };\n}\n\nclass WorkflowStateCacheHandlerImpl implements WorkflowStateChangedHandler.Interface {\n constructor(private cacheProvider: ContentEntriesCacheProvider.Interface) {}\n\n async handle(event: WorkflowStateChangedEvent): Promise<void> {\n const { app, targetRevisionId, state } = event.payload;\n\n const modelId = getModelIdFromAppName(app);\n if (!modelId) {\n return;\n }\n\n const { id: entryId } = parseIdentifier(targetRevisionId);\n const cache = this.cacheProvider.get(modelId);\n const workflowValues = toWorkflowStateValues(state);\n\n cache.updateItems((entry: CmsContentEntry) => {\n if (entry.entryId !== entryId) {\n return entry;\n }\n\n return {\n ...entry,\n meta: {\n ...entry.meta,\n system: {\n workflow: workflowValues\n }\n }\n };\n });\n }\n}\n\nexport const WorkflowStateCacheHandler = WorkflowStateChangedHandler.createImplementation({\n implementation: WorkflowStateCacheHandlerImpl,\n dependencies: [ContentEntriesCacheProvider]\n});\n"],"names":["getModelIdFromAppName","app","matched","toWorkflowStateValues","state","WorkflowStateCacheHandlerImpl","cacheProvider","event","targetRevisionId","modelId","entryId","parseIdentifier","cache","workflowValues","entry","WorkflowStateCacheHandler","WorkflowStateChangedHandler","ContentEntriesCacheProvider"],"mappings":";;;AASA,SAASA,sBAAsBC,GAAW;IACtC,MAAMC,UAAUD,IAAI,KAAK,CAAC;IAC1B,OAAOC,UAAUA,OAAO,CAAC,EAAE,GAAG;AAClC;AAEA,SAASC,sBACLC,KAAoD;IAEpD,IAAI,CAACA,OACD,OAAO;IAGX,OAAO;QACH,YAAYA,MAAM,EAAE;QACpB,QAAQA,MAAM,WAAW,CAAC,EAAE;QAC5B,UAAUA,MAAM,WAAW,CAAC,KAAK;QACjC,OAAOA,MAAM,KAAK;IACtB;AACJ;AAEA,MAAMC;IACF,YAAoBC,aAAoD,CAAE;aAAtDA,aAAa,GAAbA;IAAuD;IAE3E,MAAM,OAAOC,KAAgC,EAAiB;QAC1D,MAAM,EAAEN,GAAG,EAAEO,gBAAgB,EAAEJ,KAAK,EAAE,GAAGG,MAAM,OAAO;QAEtD,MAAME,UAAUT,sBAAsBC;QACtC,IAAI,CAACQ,SACD;QAGJ,MAAM,EAAE,IAAIC,OAAO,EAAE,GAAGC,gBAAgBH;QACxC,MAAMI,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAACH;QACrC,MAAMI,iBAAiBV,sBAAsBC;QAE7CQ,MAAM,WAAW,CAAC,CAACE;YACf,IAAIA,MAAM,OAAO,KAAKJ,SAClB,OAAOI;YAGX,OAAO;gBACH,GAAGA,KAAK;gBACR,MAAM;oBACF,GAAGA,MAAM,IAAI;oBACb,QAAQ;wBACJ,UAAUD;oBACd;gBACJ;YACJ;QACJ;IACJ;AACJ;AAEO,MAAME,4BAA4BC,4BAA4B,oBAAoB,CAAC;IACtF,gBAAgBX;IAChB,cAAc;QAACY;KAA4B;AAC/C"}
@@ -0,0 +1 @@
1
+ export declare const CmsWorkflowsCacheFeature: import("@webiny/feature/admin").FeatureDefinition<any, []>;
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { WorkflowStateCacheHandler } from "./WorkflowStateCacheHandler.js";
3
+ const CmsWorkflowsCacheFeature = createFeature({
4
+ name: "CmsWorkflows/Cache",
5
+ register (container) {
6
+ container.register(WorkflowStateCacheHandler);
7
+ }
8
+ });
9
+ export { CmsWorkflowsCacheFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/feature.js","sources":["../../src/features/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { WorkflowStateCacheHandler } from \"./WorkflowStateCacheHandler.js\";\n\nexport const CmsWorkflowsCacheFeature = createFeature({\n name: \"CmsWorkflows/Cache\",\n register(container) {\n container.register(WorkflowStateCacheHandler);\n }\n});\n"],"names":["CmsWorkflowsCacheFeature","createFeature","container","WorkflowStateCacheHandler"],"mappings":";;AAGO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
package/index.js CHANGED
@@ -1,11 +1,20 @@
1
1
  import react from "react";
2
- import { Wcp } from "@webiny/app-admin";
2
+ import { RegisterFeature, Wcp } from "@webiny/app-admin";
3
3
  import { CmsWorkflowsEditor } from "./Routes/index.js";
4
- import { CmsEntryFormSaveAndPublishButton, CmsEntryFormSaveButton, CmsEntryFormScheduleMenuItemAction, CmsEntryFormTooltipButton, ContentEntryFormWorkflow, ContentEntryWorkflow } from "./Components/ContentEntryForm/index.js";
4
+ import { CmsEntryFormScheduleMenuItemAction, CmsEntryFormTooltipButton, ContentEntryFormWorkflow } from "./Components/ContentEntryForm/index.js";
5
5
  import { CmsEntriesWorkflowStateListFooterMenu } from "./Components/CmsEntriesWorkflowStateList/index.js";
6
6
  import { ListOpenInNewWindow } from "./Components/OptionItem/OpenInNewWindow.js";
7
7
  import { CmsEntryFormCreateNewRevisionButton } from "./Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js";
8
- const CmsWorkflows = ()=>/*#__PURE__*/ react.createElement(Wcp.CanUseWorkflows, null, /*#__PURE__*/ react.createElement(ListOpenInNewWindow, null), /*#__PURE__*/ react.createElement(CmsEntriesWorkflowStateListFooterMenu, null), /*#__PURE__*/ react.createElement(CmsWorkflowsEditor, null), /*#__PURE__*/ react.createElement(ContentEntryFormWorkflow, null), /*#__PURE__*/ react.createElement(ContentEntryWorkflow, null), /*#__PURE__*/ react.createElement(CmsEntryFormTooltipButton, null), /*#__PURE__*/ react.createElement(CmsEntryFormScheduleMenuItemAction, null), /*#__PURE__*/ react.createElement(CmsEntryFormSaveAndPublishButton, null), /*#__PURE__*/ react.createElement(CmsEntryFormSaveButton, null), /*#__PURE__*/ react.createElement(CmsEntryFormCreateNewRevisionButton, null));
8
+ import { CmsWorkflowsFeature } from "./presentation/feature.js";
9
+ import { CmsWorkflowsCacheFeature } from "./features/feature.js";
10
+ import { CmsWorkflowsEditorPresenterFeature } from "./presentation/cmsWorkflowsEditor/feature.js";
11
+ const CmsWorkflows = ()=>/*#__PURE__*/ react.createElement(Wcp.CanUseWorkflows, null, /*#__PURE__*/ react.createElement(RegisterFeature, {
12
+ feature: CmsWorkflowsFeature
13
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
14
+ feature: CmsWorkflowsCacheFeature
15
+ }), /*#__PURE__*/ react.createElement(RegisterFeature, {
16
+ feature: CmsWorkflowsEditorPresenterFeature
17
+ }), /*#__PURE__*/ react.createElement(ListOpenInNewWindow, null), /*#__PURE__*/ react.createElement(CmsEntriesWorkflowStateListFooterMenu, null), /*#__PURE__*/ react.createElement(CmsWorkflowsEditor, null), /*#__PURE__*/ react.createElement(ContentEntryFormWorkflow, null), /*#__PURE__*/ react.createElement(CmsEntryFormTooltipButton, null), /*#__PURE__*/ react.createElement(CmsEntryFormScheduleMenuItemAction, null), /*#__PURE__*/ react.createElement(CmsEntryFormCreateNewRevisionButton, null));
9
18
  export { CmsWorkflows };
10
19
 
11
20
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Wcp } from \"@webiny/app-admin\";\nimport { CmsWorkflowsEditor } from \"~/Routes/index.js\";\nimport {\n CmsEntryFormSaveAndPublishButton,\n CmsEntryFormSaveButton,\n CmsEntryFormScheduleMenuItemAction,\n CmsEntryFormTooltipButton,\n ContentEntryFormWorkflow,\n ContentEntryWorkflow\n} from \"~/Components/ContentEntryForm/index.js\";\nimport { CmsEntriesWorkflowStateListFooterMenu } from \"~/Components/CmsEntriesWorkflowStateList/index.js\";\nimport { ListOpenInNewWindow } from \"~/Components/OptionItem/OpenInNewWindow.js\";\nimport { CmsEntryFormCreateNewRevisionButton } from \"~/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js\";\n\nexport const CmsWorkflows = () => {\n return (\n <Wcp.CanUseWorkflows>\n <ListOpenInNewWindow />\n <CmsEntriesWorkflowStateListFooterMenu />\n <CmsWorkflowsEditor />\n <ContentEntryFormWorkflow />\n <ContentEntryWorkflow />\n <CmsEntryFormTooltipButton />\n <CmsEntryFormScheduleMenuItemAction />\n <CmsEntryFormSaveAndPublishButton />\n <CmsEntryFormSaveButton />\n <CmsEntryFormCreateNewRevisionButton />\n </Wcp.CanUseWorkflows>\n );\n};\n"],"names":["CmsWorkflows","Wcp","ListOpenInNewWindow","CmsEntriesWorkflowStateListFooterMenu","CmsWorkflowsEditor","ContentEntryFormWorkflow","ContentEntryWorkflow","CmsEntryFormTooltipButton","CmsEntryFormScheduleMenuItemAction","CmsEntryFormSaveAndPublishButton","CmsEntryFormSaveButton","CmsEntryFormCreateNewRevisionButton"],"mappings":";;;;;;;AAeO,MAAMA,eAAe,IACjB,WAAP,GACI,oBAACC,IAAI,eAAe,sBAChB,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAACC,uCAAqCA,OAAAA,WAAAA,GACtC,oBAACC,oBAAkBA,OAAAA,WAAAA,GACnB,oBAACC,0BAAwBA,OAAAA,WAAAA,GACzB,oBAACC,sBAAoBA,OAAAA,WAAAA,GACrB,oBAACC,2BAAyBA,OAAAA,WAAAA,GAC1B,oBAACC,oCAAkCA,OAAAA,WAAAA,GACnC,oBAACC,kCAAgCA,OAAAA,WAAAA,GACjC,oBAACC,wBAAsBA,OAAAA,WAAAA,GACvB,oBAACC,qCAAmCA"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { RegisterFeature, Wcp } from \"@webiny/app-admin\";\nimport { CmsWorkflowsEditor } from \"~/Routes/index.js\";\nimport {\n CmsEntryFormScheduleMenuItemAction,\n CmsEntryFormTooltipButton,\n ContentEntryFormWorkflow\n} from \"~/Components/ContentEntryForm/index.js\";\nimport { CmsEntriesWorkflowStateListFooterMenu } from \"~/Components/CmsEntriesWorkflowStateList/index.js\";\nimport { ListOpenInNewWindow } from \"~/Components/OptionItem/OpenInNewWindow.js\";\nimport { CmsEntryFormCreateNewRevisionButton } from \"~/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js\";\nimport { CmsWorkflowsFeature } from \"~/presentation/feature.js\";\nimport { CmsWorkflowsCacheFeature } from \"~/features/feature.js\";\nimport { CmsWorkflowsEditorPresenterFeature } from \"~/presentation/cmsWorkflowsEditor/feature.js\";\n\nexport const CmsWorkflows = () => {\n return (\n <Wcp.CanUseWorkflows>\n <RegisterFeature feature={CmsWorkflowsFeature} />\n <RegisterFeature feature={CmsWorkflowsCacheFeature} />\n <RegisterFeature feature={CmsWorkflowsEditorPresenterFeature} />\n <ListOpenInNewWindow />\n <CmsEntriesWorkflowStateListFooterMenu />\n <CmsWorkflowsEditor />\n <ContentEntryFormWorkflow />\n <CmsEntryFormTooltipButton />\n <CmsEntryFormScheduleMenuItemAction />\n <CmsEntryFormCreateNewRevisionButton />\n </Wcp.CanUseWorkflows>\n );\n};\n"],"names":["CmsWorkflows","Wcp","RegisterFeature","CmsWorkflowsFeature","CmsWorkflowsCacheFeature","CmsWorkflowsEditorPresenterFeature","ListOpenInNewWindow","CmsEntriesWorkflowStateListFooterMenu","CmsWorkflowsEditor","ContentEntryFormWorkflow","CmsEntryFormTooltipButton","CmsEntryFormScheduleMenuItemAction","CmsEntryFormCreateNewRevisionButton"],"mappings":";;;;;;;;;;AAeO,MAAMA,eAAe,IACjB,WAAP,GACI,oBAACC,IAAI,eAAe,sBAChB,oBAACC,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACC,qBAAmBA,OAAAA,WAAAA,GACpB,oBAACC,uCAAqCA,OAAAA,WAAAA,GACtC,oBAACC,oBAAkBA,OAAAA,WAAAA,GACnB,oBAACC,0BAAwBA,OAAAA,WAAAA,GACzB,oBAACC,2BAAyBA,OAAAA,WAAAA,GAC1B,oBAACC,oCAAkCA,OAAAA,WAAAA,GACnC,oBAACC,qCAAmCA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms-workflows",
3
- "version": "6.4.5",
3
+ "version": "6.6.0-alpha.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -13,15 +13,17 @@
13
13
  "author": "Webiny Ltd",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@apollo/react-hooks": "3.1.5",
17
- "@fortawesome/react-fontawesome": "3.4.0",
18
- "@webiny/admin-ui": "6.4.5",
19
- "@webiny/app": "6.4.5",
20
- "@webiny/app-admin": "6.4.5",
21
- "@webiny/app-headless-cms": "6.4.5",
22
- "@webiny/app-headless-cms-common": "6.4.5",
23
- "@webiny/app-workflows": "6.4.5",
24
- "@webiny/icons": "6.4.5",
16
+ "@fortawesome/react-fontawesome": "3.5.0",
17
+ "@webiny/admin-ui": "6.6.0-alpha.0",
18
+ "@webiny/app": "6.6.0-alpha.0",
19
+ "@webiny/app-admin": "6.6.0-alpha.0",
20
+ "@webiny/app-headless-cms": "6.6.0-alpha.0",
21
+ "@webiny/app-headless-cms-common": "6.6.0-alpha.0",
22
+ "@webiny/app-workflows": "6.6.0-alpha.0",
23
+ "@webiny/feature": "6.6.0-alpha.0",
24
+ "@webiny/icons": "6.6.0-alpha.0",
25
+ "@webiny/utils": "6.6.0-alpha.0",
26
+ "mobx": "6.16.1",
25
27
  "mobx-react-lite": "4.1.1",
26
28
  "react": "18.3.1",
27
29
  "react-dom": "18.3.1",
@@ -29,9 +31,9 @@
29
31
  },
30
32
  "devDependencies": {
31
33
  "@types/react": "18.3.31",
32
- "@webiny/build-tools": "6.4.5",
34
+ "@webiny/build-tools": "6.6.0-alpha.0",
33
35
  "rimraf": "6.1.3",
34
- "typescript": "6.0.3"
36
+ "typescript": "7.0.2"
35
37
  },
36
38
  "publishConfig": {
37
39
  "access": "public"
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export declare const CmsWorkflowsEditorMenu: () => React.JSX.Element | null;
3
+ export declare const CmsWorkflowsEditorView: (() => React.JSX.Element | null) & {
4
+ displayName: string;
5
+ };