@webiny/app-website-builder-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 (36) hide show
  1. package/Components/PageEditor/PageEditorAutoSave.js +1 -1
  2. package/Components/PageEditor/PageEditorAutoSave.js.map +1 -1
  3. package/Components/PageEditor/PageEditorConfig.js +3 -1
  4. package/Components/PageEditor/PageEditorConfig.js.map +1 -1
  5. package/Components/PageEditor/PageEditorLayout.js +3 -20
  6. package/Components/PageEditor/PageEditorLayout.js.map +1 -1
  7. package/Components/PageEditor/PageEditorTopBar.js +11 -14
  8. package/Components/PageEditor/PageEditorTopBar.js.map +1 -1
  9. package/Components/PageEditor/PageFormWorkflowState.d.ts +3 -1
  10. package/Components/PageEditor/PageFormWorkflowState.js +13 -5
  11. package/Components/PageEditor/PageFormWorkflowState.js.map +1 -1
  12. package/Components/PageEditor/PageFormWorkflowStatePublishButton.js +2 -2
  13. package/Components/PageEditor/PageFormWorkflowStatePublishButton.js.map +1 -1
  14. package/Components/PageEditor/ToggleEditorMode.js +1 -1
  15. package/Components/PageEditor/ToggleEditorMode.js.map +1 -1
  16. package/Components/PagesList/PageListChangeStatus.js +2 -2
  17. package/Components/PagesList/PageListChangeStatus.js.map +1 -1
  18. package/Components/PagesList/PagesListContentReviews.js +1 -6
  19. package/Components/PagesList/PagesListContentReviews.js.map +1 -1
  20. package/Components/index.d.ts +0 -1
  21. package/Components/index.js +0 -1
  22. package/hooks/usePage.js +2 -5
  23. package/hooks/usePage.js.map +1 -1
  24. package/package.json +10 -12
  25. package/presentation/page/PageList/TableRowMapperDecorator.d.ts +12 -0
  26. package/presentation/page/PageList/TableRowMapperDecorator.js +24 -0
  27. package/presentation/page/PageList/TableRowMapperDecorator.js.map +1 -0
  28. package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.d.ts +2 -2
  29. package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.js +1 -1
  30. package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.js.map +1 -1
  31. package/presentation/page/PageList/feature.js +2 -2
  32. package/presentation/page/PageList/feature.js.map +1 -1
  33. package/types.d.ts +5 -19
  34. package/presentation/page/PageList/PageListPresenterDecorator.d.ts +0 -13
  35. package/presentation/page/PageList/PageListPresenterDecorator.js +0 -38
  36. package/presentation/page/PageList/PageListPresenterDecorator.js.map +0 -1
@@ -5,7 +5,7 @@ import { observer } from "mobx-react-lite";
5
5
  const { Ui: Ui } = PageEditorConfig;
6
6
  const WrappedAutoSave = observer((props)=>{
7
7
  const { presenter } = useWorkflowState();
8
- if (!presenter.vm.state?.state) return props.element;
8
+ if (!presenter.vm.hasState) return props.element;
9
9
  return null;
10
10
  });
11
11
  const PageEditorAutoSave = Ui.TopBar.Element.createDecorator((Original)=>function(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PageEditor/PageEditorAutoSave.js","sources":["../../../src/Components/PageEditor/PageEditorAutoSave.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface IWrappedAutoSave {\n element?: React.ReactElement | null;\n}\nconst WrappedAutoSave = observer((props: IWrappedAutoSave) => {\n const { presenter } = useWorkflowState();\n /**\n * Autosave should work only when the page does not have a workflow state assigned.\n */\n if (!presenter.vm.state?.state) {\n return props.element;\n }\n\n return null;\n});\n\nexport const PageEditorAutoSave = Ui.TopBar.Element.createDecorator(Original => {\n return function PageEditorAutoSaveDecorated(props) {\n if (props.name === \"autoSave\") {\n return <Original {...props} element={<WrappedAutoSave element={props.element} />} />;\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Ui","PageEditorConfig","WrappedAutoSave","observer","props","presenter","useWorkflowState","PageEditorAutoSave","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAKf,MAAMC,kBAAkBC,SAAS,CAACC;IAC9B,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAItB,IAAI,CAACD,UAAU,EAAE,CAAC,KAAK,EAAE,OACrB,OAAOD,MAAM,OAAO;IAGxB,OAAO;AACX;AAEO,MAAMG,qBAAqBP,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAACQ,CAAAA,WACzD,SAAqCJ,KAAK;QAC7C,IAAIA,AAAe,eAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GAAO,oBAACI,UAAAA;YAAU,GAAGJ,KAAK;YAAE,uBAAS,oBAACF,iBAAeA;gBAAC,SAASE,MAAM,OAAO;;;QAEhF,OAAO,WAAP,GAAO,oBAACI,UAAaJ;IACzB"}
1
+ {"version":3,"file":"Components/PageEditor/PageEditorAutoSave.js","sources":["../../../src/Components/PageEditor/PageEditorAutoSave.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface IWrappedAutoSave {\n element?: React.ReactElement | null;\n}\nconst WrappedAutoSave = observer((props: IWrappedAutoSave) => {\n const { presenter } = useWorkflowState();\n /**\n * Autosave should work only when the page does not have a workflow state assigned.\n */\n if (!presenter.vm.hasState) {\n return props.element;\n }\n\n return null;\n});\n\nexport const PageEditorAutoSave = Ui.TopBar.Element.createDecorator(Original => {\n return function PageEditorAutoSaveDecorated(props) {\n if (props.name === \"autoSave\") {\n return <Original {...props} element={<WrappedAutoSave element={props.element} />} />;\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Ui","PageEditorConfig","WrappedAutoSave","observer","props","presenter","useWorkflowState","PageEditorAutoSave","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAKf,MAAMC,kBAAkBC,SAAS,CAACC;IAC9B,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAItB,IAAI,CAACD,UAAU,EAAE,CAAC,QAAQ,EACtB,OAAOD,MAAM,OAAO;IAGxB,OAAO;AACX;AAEO,MAAMG,qBAAqBP,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAACQ,CAAAA,WACzD,SAAqCJ,KAAK;QAC7C,IAAIA,AAAe,eAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GAAO,oBAACI,UAAAA;YAAU,GAAGJ,KAAK;YAAE,uBAAS,oBAACF,iBAAeA;gBAAC,SAASE,MAAM,OAAO;;;QAEhF,OAAO,WAAP,GAAO,oBAACI,UAAaJ;IACzB"}
@@ -3,7 +3,9 @@ import { PageEditorConfig } from "@webiny/app-website-builder";
3
3
  import { PageFormWorkflowStateTooltip } from "./PageFormWorkflowStateTooltip.js";
4
4
  import { PageFormWorkflowStatePublishButton } from "./PageFormWorkflowStatePublishButton.js";
5
5
  import { PageEditorTopBar } from "./PageEditorTopBar.js";
6
- const PageEditorConfig_PageEditorConfig = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(PageEditorTopBar, null), /*#__PURE__*/ react.createElement(PageEditorConfig, null, /*#__PURE__*/ react.createElement(PageFormWorkflowStateTooltip, null), /*#__PURE__*/ react.createElement(PageFormWorkflowStatePublishButton, null)));
6
+ import { PageEditorLayout } from "./PageEditorLayout.js";
7
+ import { PageEditorAutoSave } from "./PageEditorAutoSave.js";
8
+ const PageEditorConfig_PageEditorConfig = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(PageEditorTopBar, null), /*#__PURE__*/ react.createElement(PageEditorLayout, null), /*#__PURE__*/ react.createElement(PageEditorAutoSave, null), /*#__PURE__*/ react.createElement(PageEditorConfig, null, /*#__PURE__*/ react.createElement(PageFormWorkflowStateTooltip, null), /*#__PURE__*/ react.createElement(PageFormWorkflowStatePublishButton, null)));
7
9
  export { PageEditorConfig_PageEditorConfig as PageEditorConfig };
8
10
 
9
11
  //# sourceMappingURL=PageEditorConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PageEditor/PageEditorConfig.js","sources":["../../../src/Components/PageEditor/PageEditorConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageEditorConfig as BaseConfig } from \"@webiny/app-website-builder\";\nimport { PageFormWorkflowStateTooltip } from \"./PageFormWorkflowStateTooltip.js\";\nimport { PageFormWorkflowStatePublishButton } from \"./PageFormWorkflowStatePublishButton.js\";\nimport { PageEditorTopBar } from \"./PageEditorTopBar.js\";\n\nexport const PageEditorConfig = () => {\n return (\n <>\n {/* Toggle editor \"readonly\" mode, and add workflow alerts */}\n <PageEditorTopBar />\n <BaseConfig>\n {/* Should add a button with list of steps and their states + comment button in each row */}\n <PageFormWorkflowStateTooltip />\n {/* should remove publish button from the form */}\n <PageFormWorkflowStatePublishButton />\n </BaseConfig>\n </>\n );\n};\n"],"names":["PageEditorConfig","PageEditorTopBar","BaseConfig","PageFormWorkflowStateTooltip","PageFormWorkflowStatePublishButton"],"mappings":";;;;;AAMO,MAAMA,oCAAmB,IACrB,WAAP,GACI,wDAEI,oBAACC,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACC,kBAAUA,MAAAA,WAAAA,GAEP,oBAACC,8BAA4BA,OAAAA,WAAAA,GAE7B,oBAACC,oCAAkCA"}
1
+ {"version":3,"file":"Components/PageEditor/PageEditorConfig.js","sources":["../../../src/Components/PageEditor/PageEditorConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageEditorConfig as BaseConfig } from \"@webiny/app-website-builder\";\nimport { PageFormWorkflowStateTooltip } from \"./PageFormWorkflowStateTooltip.js\";\nimport { PageFormWorkflowStatePublishButton } from \"./PageFormWorkflowStatePublishButton.js\";\nimport { PageEditorTopBar } from \"./PageEditorTopBar.js\";\nimport { PageEditorLayout } from \"./PageEditorLayout.js\";\nimport { PageEditorAutoSave } from \"./PageEditorAutoSave.js\";\n\nexport const PageEditorConfig = () => {\n return (\n <>\n {/* Toggle editor \"readonly\" mode, and add workflow alerts */}\n <PageEditorTopBar />\n <PageEditorLayout />\n <PageEditorAutoSave />\n <BaseConfig>\n {/* Should add a button with list of steps and their states + comment button in each row */}\n <PageFormWorkflowStateTooltip />\n {/* should remove publish button from the form */}\n <PageFormWorkflowStatePublishButton />\n </BaseConfig>\n </>\n );\n};\n"],"names":["PageEditorConfig","PageEditorTopBar","PageEditorLayout","PageEditorAutoSave","BaseConfig","PageFormWorkflowStateTooltip","PageFormWorkflowStatePublishButton"],"mappings":";;;;;;;AAQO,MAAMA,oCAAmB,IACrB,WAAP,GACI,wDAEI,oBAACC,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACC,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACC,oBAAkBA,OAAAA,WAAAA,GACnB,oBAACC,kBAAUA,MAAAA,WAAAA,GAEP,oBAACC,8BAA4BA,OAAAA,WAAAA,GAE7B,oBAACC,oCAAkCA"}
@@ -1,18 +1,13 @@
1
1
  import react, { useEffect } from "react";
2
- import { useSelectFromDocument } from "@webiny/app-website-builder/BaseEditor/hooks/useSelectFromDocument.js";
3
- import { useApolloClient } from "@apollo/react-hooks";
4
- import { useAuthentication } from "@webiny/app-admin";
5
- import { Components, useWorkflowState } from "@webiny/app-workflows";
6
- import { WB_PAGE_APP } from "../../constants.js";
2
+ import { useWorkflowState } from "@webiny/app-workflows";
7
3
  import { PageEditorConfig } from "@webiny/app-website-builder";
8
4
  import { observer } from "mobx-react-lite";
9
5
  import { useDocumentEditor } from "@webiny/app-website-builder/DocumentEditor/index.js";
10
6
  const { Ui: Ui } = PageEditorConfig;
11
- const { ContentReview: { WorkflowStateProvider: WorkflowStateProvider } } = Components;
12
7
  const ToggleReadonly = observer(()=>{
13
8
  const { presenter } = useWorkflowState();
14
9
  const editor = useDocumentEditor();
15
- const hasState = !!presenter.vm.state?.state;
10
+ const hasState = presenter.vm.hasState;
16
11
  useEffect(()=>{
17
12
  const options = editor.getEditorOptions();
18
13
  editor.updateEditor((state)=>{
@@ -24,19 +19,7 @@ const ToggleReadonly = observer(()=>{
24
19
  return null;
25
20
  });
26
21
  const PageEditorLayout = Ui.Layout.createDecorator((Original)=>function() {
27
- const page = useSelectFromDocument((doc)=>({
28
- id: doc.id,
29
- title: doc.properties.title || "unknown page"
30
- }));
31
- const client = useApolloClient();
32
- const { identity } = useAuthentication();
33
- return /*#__PURE__*/ react.createElement(WorkflowStateProvider, {
34
- app: WB_PAGE_APP,
35
- id: page.id,
36
- identity: identity,
37
- client: client,
38
- title: `Website Builder: ${page.title}`
39
- }, /*#__PURE__*/ react.createElement(Original, null), /*#__PURE__*/ react.createElement(ToggleReadonly, null));
22
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Original, null), /*#__PURE__*/ react.createElement(ToggleReadonly, null));
40
23
  });
41
24
  export { PageEditorLayout };
42
25
 
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PageEditor/PageEditorLayout.js","sources":["../../../src/Components/PageEditor/PageEditorLayout.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { useSelectFromDocument } from \"@webiny/app-website-builder/BaseEditor/hooks/useSelectFromDocument.js\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useAuthentication } from \"@webiny/app-admin\";\nimport { Components, useWorkflowState } from \"@webiny/app-workflows\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport { observer } from \"mobx-react-lite\";\nimport { useDocumentEditor } from \"@webiny/app-website-builder/DocumentEditor/index.js\";\n\nconst { Ui } = PageEditorConfig;\n\nconst {\n ContentReview: { WorkflowStateProvider }\n} = Components;\n\nconst ToggleReadonly = observer(() => {\n const { presenter } = useWorkflowState();\n const editor = useDocumentEditor();\n\n const hasState = !!presenter.vm.state?.state;\n\n useEffect(() => {\n const options = editor.getEditorOptions();\n editor.updateEditor(state => {\n state.isReadOnly = options.isReadOnly || hasState;\n });\n }, [hasState]);\n\n return null;\n});\n\nexport const PageEditorLayout = Ui.Layout.createDecorator(Original => {\n return function PageEditorTopBarWorkflowsState() {\n const page = useSelectFromDocument(doc => {\n return {\n id: doc.id,\n title: doc.properties.title || \"unknown page\"\n };\n });\n\n const client = useApolloClient();\n const { identity } = useAuthentication();\n\n return (\n <WorkflowStateProvider\n app={WB_PAGE_APP}\n id={page.id}\n identity={identity}\n client={client}\n title={`Website Builder: ${page.title}`}\n >\n <Original />\n <ToggleReadonly />\n </WorkflowStateProvider>\n );\n };\n});\n"],"names":["Ui","PageEditorConfig","WorkflowStateProvider","Components","ToggleReadonly","observer","presenter","useWorkflowState","editor","useDocumentEditor","hasState","useEffect","options","state","PageEditorLayout","Original","page","useSelectFromDocument","doc","client","useApolloClient","identity","useAuthentication","WB_PAGE_APP"],"mappings":";;;;;;;;;AAUA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAEf,MAAM,EACF,eAAe,EAAEC,uBAAAA,qBAAqB,EAAE,EAC3C,GAAGC;AAEJ,MAAMC,iBAAiBC,SAAS;IAC5B,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,SAASC;IAEf,MAAMC,WAAW,CAAC,CAACJ,UAAU,EAAE,CAAC,KAAK,EAAE;IAEvCK,UAAU;QACN,MAAMC,UAAUJ,OAAO,gBAAgB;QACvCA,OAAO,YAAY,CAACK,CAAAA;YAChBA,MAAM,UAAU,GAAGD,QAAQ,UAAU,IAAIF;QAC7C;IACJ,GAAG;QAACA;KAAS;IAEb,OAAO;AACX;AAEO,MAAMI,mBAAmBd,GAAG,MAAM,CAAC,eAAe,CAACe,CAAAA,WAC/C;QACH,MAAMC,OAAOC,sBAAsBC,CAAAA,MACxB;gBACH,IAAIA,IAAI,EAAE;gBACV,OAAOA,IAAI,UAAU,CAAC,KAAK,IAAI;YACnC;QAGJ,MAAMC,SAASC;QACf,MAAM,EAAEC,QAAQ,EAAE,GAAGC;QAErB,OAAO,WAAP,GACI,oBAACpB,uBAAqBA;YAClB,KAAKqB;YACL,IAAIP,KAAK,EAAE;YACX,UAAUK;YACV,QAAQF;YACR,OAAO,CAAC,iBAAiB,EAAEH,KAAK,KAAK,EAAE;yBAEvC,oBAACD,UAAAA,OAAAA,WAAAA,GACD,oBAACX,gBAAcA;IAG3B"}
1
+ {"version":3,"file":"Components/PageEditor/PageEditorLayout.js","sources":["../../../src/Components/PageEditor/PageEditorLayout.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport { observer } from \"mobx-react-lite\";\nimport { useDocumentEditor } from \"@webiny/app-website-builder/DocumentEditor/index.js\";\n\nconst { Ui } = PageEditorConfig;\n\nconst ToggleReadonly = observer(() => {\n const { presenter } = useWorkflowState();\n const editor = useDocumentEditor();\n\n const hasState = presenter.vm.hasState;\n\n useEffect(() => {\n const options = editor.getEditorOptions();\n editor.updateEditor(state => {\n state.isReadOnly = options.isReadOnly || hasState;\n });\n }, [hasState]);\n\n return null;\n});\n\nexport const PageEditorLayout = Ui.Layout.createDecorator(Original => {\n return function PageEditorLayoutWorkflowsState() {\n return (\n <>\n <Original />\n <ToggleReadonly />\n </>\n );\n };\n});\n"],"names":["Ui","PageEditorConfig","ToggleReadonly","observer","presenter","useWorkflowState","editor","useDocumentEditor","hasState","useEffect","options","state","PageEditorLayout","Original"],"mappings":";;;;;AAMA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAEf,MAAMC,iBAAiBC,SAAS;IAC5B,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,SAASC;IAEf,MAAMC,WAAWJ,UAAU,EAAE,CAAC,QAAQ;IAEtCK,UAAU;QACN,MAAMC,UAAUJ,OAAO,gBAAgB;QACvCA,OAAO,YAAY,CAACK,CAAAA;YAChBA,MAAM,UAAU,GAAGD,QAAQ,UAAU,IAAIF;QAC7C;IACJ,GAAG;QAACA;KAAS;IAEb,OAAO;AACX;AAEO,MAAMI,mBAAmBZ,GAAG,MAAM,CAAC,eAAe,CAACa,CAAAA,WAC/C;QACH,OAAO,WAAP,GACI,wDACI,oBAACA,UAAAA,OAAAA,WAAAA,GACD,oBAACX,gBAAcA;IAG3B"}
@@ -1,9 +1,7 @@
1
- import react from "react";
2
- import { useApolloClient } from "@apollo/react-hooks";
1
+ import react, { useEffect } from "react";
3
2
  import { PageEditorConfig } from "@webiny/app-website-builder";
4
3
  import { useSelectFromDocument } from "@webiny/app-website-builder/BaseEditor/hooks/useSelectFromDocument.js";
5
- import { useAuthentication } from "@webiny/app-admin";
6
- import { WorkflowStateProvider } from "@webiny/app-workflows/Components/WorkflowState/index.js";
4
+ import { useWorkflowState } from "@webiny/app-workflows";
7
5
  import { WB_PAGE_APP } from "../../constants.js";
8
6
  import { PageFormWorkflowState } from "./PageFormWorkflowState.js";
9
7
  import { ToggleEditorMode } from "./ToggleEditorMode.js";
@@ -15,16 +13,15 @@ const PageEditorTopBar = Ui.TopBar.Layout.createDecorator((Original)=>function()
15
13
  title: doc.properties.title || "unknown page",
16
14
  status: doc.status || "draft"
17
15
  }));
18
- const client = useApolloClient();
19
- const { identity } = useAuthentication();
20
- return /*#__PURE__*/ react.createElement(WorkflowStateProvider, {
21
- app: WB_PAGE_APP,
22
- id: page.id,
23
- disabled: page.status !== WbPageStatus.Draft,
24
- identity: identity,
25
- client: client,
26
- title: `Website Builder: ${page.title}`
27
- }, /*#__PURE__*/ react.createElement(Original, null), /*#__PURE__*/ react.createElement(ToggleEditorMode, null), /*#__PURE__*/ react.createElement(PageFormWorkflowState, null));
16
+ const { presenter } = useWorkflowState();
17
+ useEffect(()=>{
18
+ if (page.status === WbPageStatus.Draft) presenter.init(WB_PAGE_APP, page.id, `Website Builder: ${page.title}`);
19
+ return ()=>presenter.dispose();
20
+ }, [
21
+ page.id,
22
+ page.status
23
+ ]);
24
+ return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Original, null), /*#__PURE__*/ react.createElement(ToggleEditorMode, null), /*#__PURE__*/ react.createElement(PageFormWorkflowState, null));
28
25
  });
29
26
  export { PageEditorTopBar };
30
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PageEditor/PageEditorTopBar.js","sources":["../../../src/Components/PageEditor/PageEditorTopBar.tsx"],"sourcesContent":["import React from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport {\n type EditorDocument,\n useSelectFromDocument\n} from \"@webiny/app-website-builder/BaseEditor/hooks/useSelectFromDocument.js\";\nimport { useAuthentication } from \"@webiny/app-admin\";\nimport { WorkflowStateProvider } from \"@webiny/app-workflows/Components/WorkflowState/index.js\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\nimport { PageFormWorkflowState } from \"~/Components/PageEditor/PageFormWorkflowState.js\";\nimport { ToggleEditorMode } from \"~/Components/PageEditor/ToggleEditorMode.js\";\nimport { WbPageStatus, type WbStatus } from \"@webiny/app-website-builder/constants.js\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface PageEditorTopBarEditorDocument extends EditorDocument {\n status: WbStatus;\n}\n\ninterface ISelectedPage {\n id: string;\n title: string;\n status: WbStatus;\n}\n\nexport const PageEditorTopBar = Ui.TopBar.Layout.createDecorator(Original => {\n return function PageEditorTopBarWorkflowsState() {\n const page = useSelectFromDocument<ISelectedPage, PageEditorTopBarEditorDocument>(doc => {\n return {\n id: doc.id,\n title: doc.properties.title || \"unknown page\",\n status: doc.status || \"draft\"\n };\n });\n\n const client = useApolloClient();\n const { identity } = useAuthentication();\n\n return (\n <WorkflowStateProvider\n app={WB_PAGE_APP}\n id={page.id}\n disabled={page.status !== WbPageStatus.Draft}\n identity={identity}\n client={client}\n title={`Website Builder: ${page.title}`}\n >\n <Original />\n <ToggleEditorMode />\n <PageFormWorkflowState />\n </WorkflowStateProvider>\n );\n };\n});\n"],"names":["Ui","PageEditorConfig","PageEditorTopBar","Original","page","useSelectFromDocument","doc","client","useApolloClient","identity","useAuthentication","WorkflowStateProvider","WB_PAGE_APP","WbPageStatus","ToggleEditorMode","PageFormWorkflowState"],"mappings":";;;;;;;;;;AAcA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAYR,MAAMC,mBAAmBF,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAACG,CAAAA,WACtD;QACH,MAAMC,OAAOC,sBAAqEC,CAAAA,MACvE;gBACH,IAAIA,IAAI,EAAE;gBACV,OAAOA,IAAI,UAAU,CAAC,KAAK,IAAI;gBAC/B,QAAQA,IAAI,MAAM,IAAI;YAC1B;QAGJ,MAAMC,SAASC;QACf,MAAM,EAAEC,QAAQ,EAAE,GAAGC;QAErB,OAAO,WAAP,GACI,oBAACC,uBAAqBA;YAClB,KAAKC;YACL,IAAIR,KAAK,EAAE;YACX,UAAUA,KAAK,MAAM,KAAKS,aAAa,KAAK;YAC5C,UAAUJ;YACV,QAAQF;YACR,OAAO,CAAC,iBAAiB,EAAEH,KAAK,KAAK,EAAE;yBAEvC,oBAACD,UAAAA,OAAAA,WAAAA,GACD,oBAACW,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACC,uBAAqBA;IAGlC"}
1
+ {"version":3,"file":"Components/PageEditor/PageEditorTopBar.js","sources":["../../../src/Components/PageEditor/PageEditorTopBar.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport {\n type EditorDocument,\n useSelectFromDocument\n} from \"@webiny/app-website-builder/BaseEditor/hooks/useSelectFromDocument.js\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\nimport { PageFormWorkflowState } from \"~/Components/PageEditor/PageFormWorkflowState.js\";\nimport { ToggleEditorMode } from \"~/Components/PageEditor/ToggleEditorMode.js\";\nimport { WbPageStatus, type WbStatus } from \"@webiny/app-website-builder/constants.js\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface PageEditorTopBarEditorDocument extends EditorDocument {\n status: WbStatus;\n}\n\ninterface ISelectedPage {\n id: string;\n title: string;\n status: WbStatus;\n}\n\nexport const PageEditorTopBar = Ui.TopBar.Layout.createDecorator(Original => {\n return function PageEditorTopBarWorkflowsState() {\n const page = useSelectFromDocument<ISelectedPage, PageEditorTopBarEditorDocument>(doc => {\n return {\n id: doc.id,\n title: doc.properties.title || \"unknown page\",\n status: doc.status || \"draft\"\n };\n });\n\n const { presenter } = useWorkflowState();\n\n useEffect(() => {\n if (page.status === WbPageStatus.Draft) {\n presenter.init(WB_PAGE_APP, page.id, `Website Builder: ${page.title}`);\n }\n return () => presenter.dispose();\n }, [page.id, page.status]);\n\n return (\n <>\n <Original />\n <ToggleEditorMode />\n <PageFormWorkflowState />\n </>\n );\n };\n});\n"],"names":["Ui","PageEditorConfig","PageEditorTopBar","Original","page","useSelectFromDocument","doc","presenter","useWorkflowState","useEffect","WbPageStatus","WB_PAGE_APP","ToggleEditorMode","PageFormWorkflowState"],"mappings":";;;;;;;;AAYA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAYR,MAAMC,mBAAmBF,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAACG,CAAAA,WACtD;QACH,MAAMC,OAAOC,sBAAqEC,CAAAA,MACvE;gBACH,IAAIA,IAAI,EAAE;gBACV,OAAOA,IAAI,UAAU,CAAC,KAAK,IAAI;gBAC/B,QAAQA,IAAI,MAAM,IAAI;YAC1B;QAGJ,MAAM,EAAEC,SAAS,EAAE,GAAGC;QAEtBC,UAAU;YACN,IAAIL,KAAK,MAAM,KAAKM,aAAa,KAAK,EAClCH,UAAU,IAAI,CAACI,aAAaP,KAAK,EAAE,EAAE,CAAC,iBAAiB,EAAEA,KAAK,KAAK,EAAE;YAEzE,OAAO,IAAMG,UAAU,OAAO;QAClC,GAAG;YAACH,KAAK,EAAE;YAAEA,KAAK,MAAM;SAAC;QAEzB,OAAO,WAAP,GACI,wDACI,oBAACD,UAAAA,OAAAA,WAAAA,GACD,oBAACS,kBAAgBA,OAAAA,WAAAA,GACjB,oBAACC,uBAAqBA;IAGlC"}
@@ -1,2 +1,4 @@
1
1
  import React from "react";
2
- export declare const PageFormWorkflowState: () => React.JSX.Element;
2
+ export declare const PageFormWorkflowState: (() => React.JSX.Element) & {
3
+ displayName: string;
4
+ };
@@ -1,10 +1,18 @@
1
1
  import react from "react";
2
- import { Components } from "@webiny/app-workflows";
2
+ import { observer } from "mobx-react-lite";
3
+ import { Alert } from "@webiny/admin-ui";
4
+ import { Components, useWorkflowState } from "@webiny/app-workflows";
3
5
  const { ContentReview: { WorkflowStateBar: WorkflowStateBar } } = Components;
4
- const PageFormWorkflowState = ()=>/*#__PURE__*/ react.createElement(WorkflowStateBar, null, ({ stateBar })=>/*#__PURE__*/ react.createElement("div", {
5
- className: "max-w-screen bg-white p-sm",
6
- "data-affects-preview": "height"
7
- }, stateBar));
6
+ const PageFormWorkflowState = observer(()=>{
7
+ const { presenter } = useWorkflowState();
8
+ return /*#__PURE__*/ react.createElement("div", {
9
+ className: "max-w-screen bg-white p-sm border-solid border-b-sm border-neutral-dimmed",
10
+ "data-affects-preview": "height"
11
+ }, /*#__PURE__*/ react.createElement(WorkflowStateBar, null), presenter.vm.hasState ? /*#__PURE__*/ react.createElement(Alert, {
12
+ type: "danger",
13
+ className: "mt-sm"
14
+ }, "Any changes you do on the page will not be stored!") : null);
15
+ });
8
16
  export { PageFormWorkflowState };
9
17
 
10
18
  //# sourceMappingURL=PageFormWorkflowState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PageEditor/PageFormWorkflowState.js","sources":["../../../src/Components/PageEditor/PageFormWorkflowState.tsx"],"sourcesContent":["import React from \"react\";\nimport { Components } from \"@webiny/app-workflows\";\n\nconst {\n ContentReview: { WorkflowStateBar }\n} = Components;\n\nexport const PageFormWorkflowState = () => {\n return (\n <WorkflowStateBar>\n {({ stateBar }) => {\n return (\n <div className={\"max-w-screen bg-white p-sm\"} data-affects-preview={\"height\"}>\n {stateBar}\n </div>\n );\n }}\n </WorkflowStateBar>\n );\n};\n"],"names":["WorkflowStateBar","Components","PageFormWorkflowState","stateBar"],"mappings":";;AAGA,MAAM,EACF,eAAe,EAAEA,kBAAAA,gBAAgB,EAAE,EACtC,GAAGC;AAEG,MAAMC,wBAAwB,IAC1B,WAAP,GACI,oBAACF,kBAAgBA,MACZ,CAAC,EAAEG,QAAQ,EAAE,GACH,WAAP,GACI,oBAAC;YAAI,WAAW;YAA8B,wBAAsB;WAC/DA"}
1
+ {"version":3,"file":"Components/PageEditor/PageFormWorkflowState.js","sources":["../../../src/Components/PageEditor/PageFormWorkflowState.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Alert } from \"@webiny/admin-ui\";\nimport { Components, useWorkflowState } from \"@webiny/app-workflows\";\n\nconst {\n ContentReview: { WorkflowStateBar }\n} = Components;\n\nexport const PageFormWorkflowState = observer(() => {\n const { presenter } = useWorkflowState();\n\n return (\n <div\n className={\"max-w-screen bg-white p-sm border-solid border-b-sm border-neutral-dimmed\"}\n data-affects-preview={\"height\"}\n >\n <WorkflowStateBar />\n {presenter.vm.hasState ? (\n <Alert type=\"danger\" className={\"mt-sm\"}>\n Any changes you do on the page will not be stored!\n </Alert>\n ) : null}\n </div>\n );\n});\n"],"names":["WorkflowStateBar","Components","PageFormWorkflowState","observer","presenter","useWorkflowState","Alert"],"mappings":";;;;AAKA,MAAM,EACF,eAAe,EAAEA,kBAAAA,gBAAgB,EAAE,EACtC,GAAGC;AAEG,MAAMC,wBAAwBC,SAAS;IAC1C,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAEtB,OAAO,WAAP,GACI,oBAAC;QACG,WAAW;QACX,wBAAsB;qBAEtB,oBAACL,kBAAgBA,OAChBI,UAAU,EAAE,CAAC,QAAQ,GAAG,WAAH,GAClB,oBAACE,OAAKA;QAAC,MAAK;QAAS,WAAW;OAAS,wDAGzC;AAGhB"}
@@ -1,11 +1,11 @@
1
1
  import react from "react";
2
2
  import { PageEditorConfig } from "@webiny/app-website-builder";
3
- import { WorkflowStateValue, useWorkflowState } from "@webiny/app-workflows";
3
+ import { useWorkflowState } from "@webiny/app-workflows";
4
4
  import { observer } from "mobx-react-lite";
5
5
  const { Ui: Ui } = PageEditorConfig;
6
6
  const WrappedPublishButton = observer((props)=>{
7
7
  const { presenter } = useWorkflowState();
8
- if (!presenter.vm.workflow || presenter.vm.state?.state === WorkflowStateValue.approved) return props.element;
8
+ if (!presenter.vm.hasWorkflow || presenter.vm.isApproved) return props.element;
9
9
  return null;
10
10
  });
11
11
  const PageFormWorkflowStatePublishButton = Ui.TopBar.Action.createDecorator((Original)=>function(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PageEditor/PageFormWorkflowStatePublishButton.js","sources":["../../../src/Components/PageEditor/PageFormWorkflowStatePublishButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport { useWorkflowState, WorkflowStateValue } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface IWrappedPublishButtonProps {\n element?: React.ReactElement | null;\n}\n\nconst WrappedPublishButton = observer((props: IWrappedPublishButtonProps) => {\n const { presenter } = useWorkflowState();\n /**\n * Publish button should be visible only when there is no workflow available and when workflow state is approved.\n */\n if (!presenter.vm.workflow || presenter.vm.state?.state === WorkflowStateValue.approved) {\n return props.element;\n }\n\n return null;\n});\n\nexport const PageFormWorkflowStatePublishButton = Ui.TopBar.Action.createDecorator(Original => {\n return function AutoSaveDecorator(props) {\n if (props.name === \"buttonPublish\") {\n return (\n <Original {...props} element={<WrappedPublishButton element={props.element} />} />\n );\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Ui","PageEditorConfig","WrappedPublishButton","observer","props","presenter","useWorkflowState","WorkflowStateValue","PageFormWorkflowStatePublishButton","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAMf,MAAMC,uBAAuBC,SAAS,CAACC;IACnC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAItB,IAAI,CAACD,UAAU,EAAE,CAAC,QAAQ,IAAIA,UAAU,EAAE,CAAC,KAAK,EAAE,UAAUE,mBAAmB,QAAQ,EACnF,OAAOH,MAAM,OAAO;IAGxB,OAAO;AACX;AAEO,MAAMI,qCAAqCR,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAACS,CAAAA,WACxE,SAA2BL,KAAK;QACnC,IAAIA,AAAe,oBAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GACI,oBAACK,UAAAA;YAAU,GAAGL,KAAK;YAAE,uBAAS,oBAACF,sBAAoBA;gBAAC,SAASE,MAAM,OAAO;;;QAGlF,OAAO,WAAP,GAAO,oBAACK,UAAaL;IACzB"}
1
+ {"version":3,"file":"Components/PageEditor/PageFormWorkflowStatePublishButton.js","sources":["../../../src/Components/PageEditor/PageFormWorkflowStatePublishButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\n\nconst { Ui } = PageEditorConfig;\n\ninterface IWrappedPublishButtonProps {\n element?: React.ReactElement | null;\n}\n\nconst WrappedPublishButton = observer((props: IWrappedPublishButtonProps) => {\n const { presenter } = useWorkflowState();\n /**\n * Publish button should be visible only when there is no workflow available and when workflow state is approved.\n */\n if (!presenter.vm.hasWorkflow || presenter.vm.isApproved) {\n return props.element;\n }\n\n return null;\n});\n\nexport const PageFormWorkflowStatePublishButton = Ui.TopBar.Action.createDecorator(Original => {\n return function AutoSaveDecorator(props) {\n if (props.name === \"buttonPublish\") {\n return (\n <Original {...props} element={<WrappedPublishButton element={props.element} />} />\n );\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Ui","PageEditorConfig","WrappedPublishButton","observer","props","presenter","useWorkflowState","PageFormWorkflowStatePublishButton","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,IAAAA,EAAE,EAAE,GAAGC;AAMf,MAAMC,uBAAuBC,SAAS,CAACC;IACnC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAItB,IAAI,CAACD,UAAU,EAAE,CAAC,WAAW,IAAIA,UAAU,EAAE,CAAC,UAAU,EACpD,OAAOD,MAAM,OAAO;IAGxB,OAAO;AACX;AAEO,MAAMG,qCAAqCP,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAACQ,CAAAA,WACxE,SAA2BJ,KAAK;QACnC,IAAIA,AAAe,oBAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GACI,oBAACI,UAAAA;YAAU,GAAGJ,KAAK;YAAE,uBAAS,oBAACF,sBAAoBA;gBAAC,SAASE,MAAM,OAAO;;;QAGlF,OAAO,WAAP,GAAO,oBAACI,UAAaJ;IACzB"}
@@ -5,7 +5,7 @@ import { useDocumentEditor } from "@webiny/app-website-builder/DocumentEditor/in
5
5
  const ToggleEditorMode = observer(()=>{
6
6
  const { presenter } = useWorkflowState();
7
7
  const editor = useDocumentEditor();
8
- const hasState = !!presenter.vm.state?.state;
8
+ const hasState = presenter.vm.hasState;
9
9
  useEffect(()=>{
10
10
  const options = editor.getEditorOptions();
11
11
  editor.updateEditor((state)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PageEditor/ToggleEditorMode.js","sources":["../../../src/Components/PageEditor/ToggleEditorMode.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { useDocumentEditor } from \"@webiny/app-website-builder/DocumentEditor/index.js\";\n\nexport const ToggleEditorMode = observer(() => {\n const { presenter } = useWorkflowState();\n const editor = useDocumentEditor();\n\n const hasState = !!presenter.vm.state?.state;\n\n useEffect(() => {\n const options = editor.getEditorOptions();\n editor.updateEditor(state => {\n state.isReadOnly = options.isReadOnly || hasState;\n });\n }, [hasState]);\n\n return null;\n});\n"],"names":["ToggleEditorMode","observer","presenter","useWorkflowState","editor","useDocumentEditor","hasState","useEffect","options","state"],"mappings":";;;;AAKO,MAAMA,mBAAmBC,SAAS;IACrC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,SAASC;IAEf,MAAMC,WAAW,CAAC,CAACJ,UAAU,EAAE,CAAC,KAAK,EAAE;IAEvCK,UAAU;QACN,MAAMC,UAAUJ,OAAO,gBAAgB;QACvCA,OAAO,YAAY,CAACK,CAAAA;YAChBA,MAAM,UAAU,GAAGD,QAAQ,UAAU,IAAIF;QAC7C;IACJ,GAAG;QAACA;KAAS;IAEb,OAAO;AACX"}
1
+ {"version":3,"file":"Components/PageEditor/ToggleEditorMode.js","sources":["../../../src/Components/PageEditor/ToggleEditorMode.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { useDocumentEditor } from \"@webiny/app-website-builder/DocumentEditor/index.js\";\n\nexport const ToggleEditorMode = observer(() => {\n const { presenter } = useWorkflowState();\n const editor = useDocumentEditor();\n\n const hasState = presenter.vm.hasState;\n\n useEffect(() => {\n const options = editor.getEditorOptions();\n editor.updateEditor(state => {\n state.isReadOnly = options.isReadOnly || hasState;\n });\n }, [hasState]);\n\n return null;\n});\n"],"names":["ToggleEditorMode","observer","presenter","useWorkflowState","editor","useDocumentEditor","hasState","useEffect","options","state"],"mappings":";;;;AAKO,MAAMA,mBAAmBC,SAAS;IACrC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAMC,SAASC;IAEf,MAAMC,WAAWJ,UAAU,EAAE,CAAC,QAAQ;IAEtCK,UAAU;QACN,MAAMC,UAAUJ,OAAO,gBAAgB;QACvCA,OAAO,YAAY,CAACK,CAAAA;YAChBA,MAAM,UAAU,GAAGD,QAAQ,UAAU,IAAIF;QAC7C;IACJ,GAAG;QAACA;KAAS;IAEb,OAAO;AACX"}
@@ -5,8 +5,8 @@ import { usePage } from "../../hooks/usePage.js";
5
5
  const { Browser: Browser } = PageListConfig;
6
6
  const WrappedElement = (props)=>{
7
7
  const { page } = usePage();
8
- const state = page.workflows?.state;
9
- if (!state?.state || state.state === WorkflowStateValue.approved) return props.element;
8
+ const workflowState = page.workflow?.state;
9
+ if (!workflowState || workflowState === WorkflowStateValue.approved) return props.element;
10
10
  return null;
11
11
  };
12
12
  const PageListChangeStatus = Browser.Page.Action.createDecorator((Original)=>function(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PagesList/PageListChangeStatus.js","sources":["../../../src/Components/PagesList/PageListChangeStatus.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageListConfig } from \"@webiny/app-website-builder\";\nimport { WorkflowStateValue } from \"@webiny/app-workflows/types.js\";\nimport { usePage } from \"~/hooks/usePage.js\";\n\nconst { Browser } = PageListConfig;\n\ninterface IWrappedElementProps {\n element: React.ReactElement | undefined;\n}\n\nconst WrappedElement = (props: IWrappedElementProps) => {\n const { page } = usePage();\n const state = page.workflows?.state;\n\n if (!state?.state || state.state === WorkflowStateValue.approved) {\n return props.element;\n }\n return null;\n};\n\nexport const PageListChangeStatus = Browser.Page.Action.createDecorator(Original => {\n return function PageListChangeStatusAction(props) {\n if (props.name === \"changeStatus\") {\n return <Original {...props} element={<WrappedElement element={props.element} />} />;\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Browser","PageListConfig","WrappedElement","props","page","usePage","state","WorkflowStateValue","PageListChangeStatus","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AAMpB,MAAMC,iBAAiB,CAACC;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC;IACjB,MAAMC,QAAQF,KAAK,SAAS,EAAE;IAE9B,IAAI,CAACE,OAAO,SAASA,MAAM,KAAK,KAAKC,mBAAmB,QAAQ,EAC5D,OAAOJ,MAAM,OAAO;IAExB,OAAO;AACX;AAEO,MAAMK,uBAAuBR,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAACS,CAAAA,WAC7D,SAAoCN,KAAK;QAC5C,IAAIA,AAAe,mBAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GAAO,oBAACM,UAAAA;YAAU,GAAGN,KAAK;YAAE,uBAAS,oBAACD,gBAAcA;gBAAC,SAASC,MAAM,OAAO;;;QAE/E,OAAO,WAAP,GAAO,oBAACM,UAAaN;IACzB"}
1
+ {"version":3,"file":"Components/PagesList/PageListChangeStatus.js","sources":["../../../src/Components/PagesList/PageListChangeStatus.tsx"],"sourcesContent":["import React from \"react\";\nimport { PageListConfig } from \"@webiny/app-website-builder\";\nimport { WorkflowStateValue } from \"@webiny/app-workflows/types.js\";\nimport { usePage } from \"~/hooks/usePage.js\";\n\nconst { Browser } = PageListConfig;\n\ninterface IWrappedElementProps {\n element: React.ReactElement | undefined;\n}\n\nconst WrappedElement = (props: IWrappedElementProps) => {\n const { page } = usePage();\n const workflowState = page.workflow?.state;\n\n if (!workflowState || workflowState === WorkflowStateValue.approved) {\n return props.element;\n }\n return null;\n};\n\nexport const PageListChangeStatus = Browser.Page.Action.createDecorator(Original => {\n return function PageListChangeStatusAction(props) {\n if (props.name === \"changeStatus\") {\n return <Original {...props} element={<WrappedElement element={props.element} />} />;\n }\n return <Original {...props} />;\n };\n});\n"],"names":["Browser","PageListConfig","WrappedElement","props","page","usePage","workflowState","WorkflowStateValue","PageListChangeStatus","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AAMpB,MAAMC,iBAAiB,CAACC;IACpB,MAAM,EAAEC,IAAI,EAAE,GAAGC;IACjB,MAAMC,gBAAgBF,KAAK,QAAQ,EAAE;IAErC,IAAI,CAACE,iBAAiBA,kBAAkBC,mBAAmB,QAAQ,EAC/D,OAAOJ,MAAM,OAAO;IAExB,OAAO;AACX;AAEO,MAAMK,uBAAuBR,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe,CAACS,CAAAA,WAC7D,SAAoCN,KAAK;QAC5C,IAAIA,AAAe,mBAAfA,MAAM,IAAI,EACV,OAAO,WAAP,GAAO,oBAACM,UAAAA;YAAU,GAAGN,KAAK;YAAE,uBAAS,oBAACD,gBAAcA;gBAAC,SAASC,MAAM,OAAO;;;QAE/E,OAAO,WAAP,GAAO,oBAACM,UAAaN;IACzB"}
@@ -2,15 +2,11 @@ import react from "react";
2
2
  import { Sidebar } from "@webiny/admin-ui";
3
3
  import { PageListConfig } from "@webiny/app-website-builder";
4
4
  import { Components } from "@webiny/app-workflows";
5
- import { useApolloClient } from "@apollo/react-hooks";
6
5
  import { WB_PAGE_APP } from "../../constants.js";
7
6
  import { ReactComponent } from "@webiny/icons/work_outline.svg";
8
7
  const { Overlay: { WorkflowStateListAppOverlay: WorkflowStateListAppOverlay } } = Components;
9
8
  const { Browser: Browser } = PageListConfig;
10
- const PageListContentReviewsButton = ()=>{
11
- const client = useApolloClient();
12
- return /*#__PURE__*/ react.createElement(WorkflowStateListAppOverlay, {
13
- client: client,
9
+ const PageListContentReviewsButton = ()=>/*#__PURE__*/ react.createElement(WorkflowStateListAppOverlay, {
14
10
  app: WB_PAGE_APP
15
11
  }, ({ showOverlay })=>/*#__PURE__*/ react.createElement(Sidebar.Item, {
16
12
  className: "w-full",
@@ -21,7 +17,6 @@ const PageListContentReviewsButton = ()=>{
21
17
  label: "Content Reviews"
22
18
  })
23
19
  }));
24
- };
25
20
  const PagesListContentReviews = ()=>/*#__PURE__*/ react.createElement(Browser.Sidebar.Footer, {
26
21
  name: "contentReviews",
27
22
  element: /*#__PURE__*/ react.createElement(PageListContentReviewsButton, null)
@@ -1 +1 @@
1
- {"version":3,"file":"Components/PagesList/PagesListContentReviews.js","sources":["../../../src/Components/PagesList/PagesListContentReviews.tsx"],"sourcesContent":["import React from \"react\";\nimport { Sidebar } from \"@webiny/admin-ui\";\nimport { PageListConfig } from \"@webiny/app-website-builder\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\nimport { ReactComponent as WorkflowStateListIcon } from \"@webiny/icons/work_outline.svg\";\n\nconst {\n Overlay: { WorkflowStateListAppOverlay }\n} = Components;\n\nconst { Browser } = PageListConfig;\n\nconst PageListContentReviewsButton = () => {\n const client = useApolloClient();\n\n return (\n <WorkflowStateListAppOverlay client={client} app={WB_PAGE_APP}>\n {({ showOverlay }) => {\n return (\n <Sidebar.Item\n className={\"w-full\"}\n onClick={showOverlay}\n text={\"Content Reviews\"}\n icon={\n <Sidebar.Item.Icon\n element={<WorkflowStateListIcon />}\n label={\"Content Reviews\"}\n />\n }\n />\n );\n }}\n </WorkflowStateListAppOverlay>\n );\n};\n\nexport const PagesListContentReviews = () => {\n return (\n <Browser.Sidebar.Footer\n name={\"contentReviews\"}\n element={<PageListContentReviewsButton />}\n />\n );\n};\n"],"names":["WorkflowStateListAppOverlay","Components","Browser","PageListConfig","PageListContentReviewsButton","client","useApolloClient","WB_PAGE_APP","showOverlay","Sidebar","WorkflowStateListIcon","PagesListContentReviews"],"mappings":";;;;;;;AAQA,MAAM,EACF,SAAS,EAAEA,6BAAAA,2BAA2B,EAAE,EAC3C,GAAGC;AAEJ,MAAM,EAAEC,SAAAA,OAAO,EAAE,GAAGC;AAEpB,MAAMC,+BAA+B;IACjC,MAAMC,SAASC;IAEf,OAAO,WAAP,GACI,oBAACN,6BAA2BA;QAAC,QAAQK;QAAQ,KAAKE;OAC7C,CAAC,EAAEC,WAAW,EAAE,GACN,WAAP,GACI,oBAACC,QAAQ,IAAI;YACT,WAAW;YACX,SAASD;YACT,MAAM;YACN,oBACI,oBAACC,QAAQ,IAAI,CAAC,IAAI;gBACd,uBAAS,oBAACC,gBAAqBA;gBAC/B,OAAO;;;AAQvC;AAEO,MAAMC,0BAA0B,IAC5B,WAAP,GACI,oBAACT,QAAQ,OAAO,CAAC,MAAM;QACnB,MAAM;QACN,uBAAS,oBAACE,8BAA4BA"}
1
+ {"version":3,"file":"Components/PagesList/PagesListContentReviews.js","sources":["../../../src/Components/PagesList/PagesListContentReviews.tsx"],"sourcesContent":["import React from \"react\";\nimport { Sidebar } from \"@webiny/admin-ui\";\nimport { PageListConfig } from \"@webiny/app-website-builder\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\nimport { ReactComponent as WorkflowStateListIcon } from \"@webiny/icons/work_outline.svg\";\n\nconst {\n Overlay: { WorkflowStateListAppOverlay }\n} = Components;\n\nconst { Browser } = PageListConfig;\n\nconst PageListContentReviewsButton = () => {\n return (\n <WorkflowStateListAppOverlay app={WB_PAGE_APP}>\n {({ showOverlay }) => {\n return (\n <Sidebar.Item\n className={\"w-full\"}\n onClick={showOverlay}\n text={\"Content Reviews\"}\n icon={\n <Sidebar.Item.Icon\n element={<WorkflowStateListIcon />}\n label={\"Content Reviews\"}\n />\n }\n />\n );\n }}\n </WorkflowStateListAppOverlay>\n );\n};\n\nexport const PagesListContentReviews = () => {\n return (\n <Browser.Sidebar.Footer\n name={\"contentReviews\"}\n element={<PageListContentReviewsButton />}\n />\n );\n};\n"],"names":["WorkflowStateListAppOverlay","Components","Browser","PageListConfig","PageListContentReviewsButton","WB_PAGE_APP","showOverlay","Sidebar","WorkflowStateListIcon","PagesListContentReviews"],"mappings":";;;;;;AAOA,MAAM,EACF,SAAS,EAAEA,6BAAAA,2BAA2B,EAAE,EAC3C,GAAGC;AAEJ,MAAM,EAAEC,SAAAA,OAAO,EAAE,GAAGC;AAEpB,MAAMC,+BAA+B,IAC1B,WAAP,GACI,oBAACJ,6BAA2BA;QAAC,KAAKK;OAC7B,CAAC,EAAEC,WAAW,EAAE,GACN,WAAP,GACI,oBAACC,QAAQ,IAAI;YACT,WAAW;YACX,SAASD;YACT,MAAM;YACN,oBACI,oBAACC,QAAQ,IAAI,CAAC,IAAI;gBACd,uBAAS,oBAACC,gBAAqBA;gBAC/B,OAAO;;;AAUhC,MAAMC,0BAA0B,IAC5B,WAAP,GACI,oBAACP,QAAQ,OAAO,CAAC,MAAM;QACnB,MAAM;QACN,uBAAS,oBAACE,8BAA4BA"}
@@ -1,4 +1,3 @@
1
1
  export * from "./OptionItem/index.js";
2
2
  export * from "./PageEditor/PageEditorConfig.js";
3
3
  export * from "./PagesList/index.js";
4
- export * from "./PageWorkflows/index.js";
@@ -1,4 +1,3 @@
1
1
  export * from "./OptionItem/index.js";
2
2
  export * from "./PageEditor/PageEditorConfig.js";
3
3
  export * from "./PagesList/index.js";
4
- export * from "./PageWorkflows/index.js";
package/hooks/usePage.js CHANGED
@@ -1,10 +1,7 @@
1
- import { usePage } from "@webiny/app-website-builder/modules/pages/PagesList/hooks/usePage.js";
1
+ import { usePage } from "@webiny/app-website-builder/presentation/pages/PageList/hooks/usePage.js";
2
2
  const decoratePage = (page)=>({
3
3
  ...page,
4
- workflows: {
5
- ...page.workflows
6
- },
7
- $selectable: false
4
+ workflow: page.system?.workflow ?? null
8
5
  });
9
6
  const usePage_usePage = ()=>{
10
7
  const usage = usePage();
@@ -1 +1 @@
1
- {"version":3,"file":"hooks/usePage.js","sources":["../../src/hooks/usePage.ts"],"sourcesContent":["import { usePage as baseUsePage } from \"@webiny/app-website-builder/modules/pages/PagesList/hooks/usePage.js\";\nimport type { PageDto } from \"@webiny/app-website-builder/domain/Page/index.js\";\nimport type { WithWorkflows } from \"~/types.js\";\n\nconst decoratePage = (page: PageDto): WithWorkflows<PageDto> => {\n return {\n ...page,\n workflows: {\n // @ts-expect-error\n ...page.workflows\n },\n $selectable: false\n };\n};\n\nexport const usePage = () => {\n const usage = baseUsePage();\n\n return {\n ...usage,\n page: decoratePage(usage.page)\n };\n};\n"],"names":["decoratePage","page","usePage","usage","baseUsePage"],"mappings":";AAIA,MAAMA,eAAe,CAACC,OACX;QACH,GAAGA,IAAI;QACP,WAAW;YAEP,GAAGA,KAAK,SAAS;QACrB;QACA,aAAa;IACjB;AAGG,MAAMC,kBAAU;IACnB,MAAMC,QAAQC;IAEd,OAAO;QACH,GAAGD,KAAK;QACR,MAAMH,aAAaG,MAAM,IAAI;IACjC;AACJ"}
1
+ {"version":3,"file":"hooks/usePage.js","sources":["../../src/hooks/usePage.ts"],"sourcesContent":["import { usePage as baseUsePage } from \"@webiny/app-website-builder/presentation/pages/PageList/hooks/usePage.js\";\nimport type { PageDto } from \"@webiny/app-website-builder/domain/Page/index.js\";\nimport type { WithWorkflows } from \"~/types.js\";\n\nconst decoratePage = (page: PageDto): WithWorkflows<PageDto> => {\n return {\n ...page,\n workflow: page.system?.workflow ?? null\n };\n};\n\nexport const usePage = () => {\n const usage = baseUsePage();\n\n return {\n ...usage,\n page: decoratePage(usage.page)\n };\n};\n"],"names":["decoratePage","page","usePage","usage","baseUsePage"],"mappings":";AAIA,MAAMA,eAAe,CAACC,OACX;QACH,GAAGA,IAAI;QACP,UAAUA,KAAK,MAAM,EAAE,YAAY;IACvC;AAGG,MAAMC,kBAAU;IACnB,MAAMC,QAAQC;IAEd,OAAO;QACH,GAAGD,KAAK;QACR,MAAMH,aAAaG,MAAM,IAAI;IACjC;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-website-builder-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,13 @@
13
13
  "author": "Webiny Ltd",
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
- "@apollo/react-hooks": "3.1.5",
17
- "@webiny/admin-ui": "6.4.5",
18
- "@webiny/app": "6.4.5",
19
- "@webiny/app-admin": "6.4.5",
20
- "@webiny/app-website-builder": "6.4.5",
21
- "@webiny/app-workflows": "6.4.5",
22
- "@webiny/feature": "6.4.5",
23
- "@webiny/icons": "6.4.5",
24
- "mobx": "6.16.1",
16
+ "@webiny/admin-ui": "6.6.0-alpha.0",
17
+ "@webiny/app": "6.6.0-alpha.0",
18
+ "@webiny/app-admin": "6.6.0-alpha.0",
19
+ "@webiny/app-website-builder": "6.6.0-alpha.0",
20
+ "@webiny/app-workflows": "6.6.0-alpha.0",
21
+ "@webiny/feature": "6.6.0-alpha.0",
22
+ "@webiny/icons": "6.6.0-alpha.0",
25
23
  "mobx-react-lite": "4.1.1",
26
24
  "react": "18.3.1",
27
25
  "react-dom": "18.3.1",
@@ -29,9 +27,9 @@
29
27
  },
30
28
  "devDependencies": {
31
29
  "@types/react": "18.3.31",
32
- "@webiny/build-tools": "6.4.5",
30
+ "@webiny/build-tools": "6.6.0-alpha.0",
33
31
  "rimraf": "6.1.3",
34
- "typescript": "6.0.3"
32
+ "typescript": "7.0.2"
35
33
  },
36
34
  "publishConfig": {
37
35
  "access": "public"
@@ -0,0 +1,12 @@
1
+ import { TableRowMapper } from "@webiny/app-website-builder/presentation/pages/PageList/index.js";
2
+ import type { Page } from "@webiny/app-website-builder/domain/Page/Page.js";
3
+ import "~/types.js";
4
+ declare class TableRowMapperWithWorkflows implements TableRowMapper.Interface {
5
+ private decoratee;
6
+ constructor(decoratee: TableRowMapper.Interface);
7
+ fromPage(page: Page): TableRowMapper.TableRow;
8
+ }
9
+ export declare const TableRowMapperWorkflowDecorator: typeof TableRowMapperWithWorkflows & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app-website-builder/presentation/pages/PageList/components/Table/abstractions").ITableRowMapper>;
11
+ };
12
+ export {};
@@ -0,0 +1,24 @@
1
+ import { TableRowMapper } from "@webiny/app-website-builder/presentation/pages/PageList/index.js";
2
+ import { WorkflowStateValue } from "@webiny/app-workflows/types.js";
3
+ import "../../../types.js";
4
+ class TableRowMapperWithWorkflows {
5
+ constructor(decoratee){
6
+ this.decoratee = decoratee;
7
+ }
8
+ fromPage(page) {
9
+ const row = this.decoratee.fromPage(page);
10
+ const workflowState = page.system?.workflow?.state;
11
+ if (workflowState && workflowState !== WorkflowStateValue.approved) return {
12
+ ...row,
13
+ $selectable: false
14
+ };
15
+ return row;
16
+ }
17
+ }
18
+ const TableRowMapperWorkflowDecorator = TableRowMapper.createDecorator({
19
+ decorator: TableRowMapperWithWorkflows,
20
+ dependencies: []
21
+ });
22
+ export { TableRowMapperWorkflowDecorator };
23
+
24
+ //# sourceMappingURL=TableRowMapperDecorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentation/page/PageList/TableRowMapperDecorator.js","sources":["../../../../src/presentation/page/PageList/TableRowMapperDecorator.ts"],"sourcesContent":["import { TableRowMapper } from \"@webiny/app-website-builder/presentation/pages/PageList/index.js\";\nimport type { Page } from \"@webiny/app-website-builder/domain/Page/Page.js\";\nimport { WorkflowStateValue } from \"@webiny/app-workflows/types.js\";\nimport \"~/types.js\";\n\nclass TableRowMapperWithWorkflows implements TableRowMapper.Interface {\n constructor(private decoratee: TableRowMapper.Interface) {}\n\n fromPage(page: Page): TableRowMapper.TableRow {\n const row = this.decoratee.fromPage(page);\n\n const workflowState = page.system?.workflow?.state;\n if (workflowState && workflowState !== WorkflowStateValue.approved) {\n return { ...row, $selectable: false };\n }\n\n return row;\n }\n}\n\nexport const TableRowMapperWorkflowDecorator = TableRowMapper.createDecorator({\n decorator: TableRowMapperWithWorkflows,\n dependencies: []\n});\n"],"names":["TableRowMapperWithWorkflows","decoratee","page","row","workflowState","WorkflowStateValue","TableRowMapperWorkflowDecorator","TableRowMapper"],"mappings":";;;AAKA,MAAMA;IACF,YAAoBC,SAAmC,CAAE;aAArCA,SAAS,GAATA;IAAsC;IAE1D,SAASC,IAAU,EAA2B;QAC1C,MAAMC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAACD;QAEpC,MAAME,gBAAgBF,KAAK,MAAM,EAAE,UAAU;QAC7C,IAAIE,iBAAiBA,kBAAkBC,mBAAmB,QAAQ,EAC9D,OAAO;YAAE,GAAGF,GAAG;YAAE,aAAa;QAAM;QAGxC,OAAOA;IACX;AACJ;AAEO,MAAMG,kCAAkCC,eAAe,eAAe,CAAC;IAC1E,WAAWP;IACX,cAAc,EAAE;AACpB"}
@@ -1,8 +1,8 @@
1
- import { ListPagesGraphQLFieldSelection } from "@webiny/app-website-builder/features/pages/loadPages/abstractions.js";
1
+ import { ListPagesGraphQLFieldSelection } from "@webiny/app-website-builder/features/pages/listPages/abstractions.js";
2
2
  declare class WorkflowStatesListPagesGraphQLFieldSelection implements ListPagesGraphQLFieldSelection.Interface {
3
3
  getSelection(): string[];
4
4
  }
5
5
  export declare const WorkflowStateListPagesFieldSelection: typeof WorkflowStatesListPagesGraphQLFieldSelection & {
6
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/app-website-builder/features/pages/loadPages/abstractions.js").IListPagesGraphQLFieldSelection>;
6
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/app-website-builder/features/pages/listPages/abstractions.js").IListPagesGraphQLFieldSelection>;
7
7
  };
8
8
  export {};
@@ -1,4 +1,4 @@
1
- import { ListPagesGraphQLFieldSelection } from "@webiny/app-website-builder/features/pages/loadPages/abstractions.js";
1
+ import { ListPagesGraphQLFieldSelection } from "@webiny/app-website-builder/features/pages/listPages/abstractions.js";
2
2
  class WorkflowStatesListPagesGraphQLFieldSelection {
3
3
  getSelection() {
4
4
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/page/PageList/WorkflowStateListPagesFieldSelection.js","sources":["../../../../src/presentation/page/PageList/WorkflowStateListPagesFieldSelection.ts"],"sourcesContent":["import { ListPagesGraphQLFieldSelection } from \"@webiny/app-website-builder/features/pages/loadPages/abstractions.js\";\n\nclass WorkflowStatesListPagesGraphQLFieldSelection\n implements ListPagesGraphQLFieldSelection.Interface\n{\n getSelection(): string[] {\n return [\n `system {\n workflow {\n workflowId\n stepId\n stepName\n state\n }\n }`\n ];\n }\n}\n\nexport const WorkflowStateListPagesFieldSelection =\n ListPagesGraphQLFieldSelection.createImplementation({\n dependencies: [],\n implementation: WorkflowStatesListPagesGraphQLFieldSelection\n });\n"],"names":["WorkflowStatesListPagesGraphQLFieldSelection","WorkflowStateListPagesFieldSelection","ListPagesGraphQLFieldSelection"],"mappings":";AAEA,MAAMA;IAGF,eAAyB;QACrB,OAAO;YACH,CAAC;;;;;;;aAOA,CAAC;SACL;IACL;AACJ;AAEO,MAAMC,uCACTC,+BAA+B,oBAAoB,CAAC;IAChD,cAAc,EAAE;IAChB,gBAAgBF;AACpB"}
1
+ {"version":3,"file":"presentation/page/PageList/WorkflowStateListPagesFieldSelection.js","sources":["../../../../src/presentation/page/PageList/WorkflowStateListPagesFieldSelection.ts"],"sourcesContent":["import { ListPagesGraphQLFieldSelection } from \"@webiny/app-website-builder/features/pages/listPages/abstractions.js\";\n\nclass WorkflowStatesListPagesGraphQLFieldSelection\n implements ListPagesGraphQLFieldSelection.Interface\n{\n getSelection(): string[] {\n return [\n `system {\n workflow {\n workflowId\n stepId\n stepName\n state\n }\n }`\n ];\n }\n}\n\nexport const WorkflowStateListPagesFieldSelection =\n ListPagesGraphQLFieldSelection.createImplementation({\n dependencies: [],\n implementation: WorkflowStatesListPagesGraphQLFieldSelection\n });\n"],"names":["WorkflowStatesListPagesGraphQLFieldSelection","WorkflowStateListPagesFieldSelection","ListPagesGraphQLFieldSelection"],"mappings":";AAEA,MAAMA;IAGF,eAAyB;QACrB,OAAO;YACH,CAAC;;;;;;;aAOA,CAAC;SACL;IACL;AACJ;AAEO,MAAMC,uCACTC,+BAA+B,oBAAoB,CAAC;IAChD,cAAc,EAAE;IAChB,gBAAgBF;AACpB"}
@@ -1,11 +1,11 @@
1
1
  import { createFeature } from "@webiny/feature/admin";
2
- import { PageListPresenterDecorator } from "./PageListPresenterDecorator.js";
3
2
  import { WorkflowStateListPagesFieldSelection } from "./WorkflowStateListPagesFieldSelection.js";
3
+ import { TableRowMapperWorkflowDecorator } from "./TableRowMapperDecorator.js";
4
4
  const PageListWorkflowsFeature = createFeature({
5
5
  name: "PageListWorkflows",
6
6
  register (container) {
7
- container.registerDecorator(PageListPresenterDecorator);
8
7
  container.register(WorkflowStateListPagesFieldSelection);
8
+ container.registerDecorator(TableRowMapperWorkflowDecorator);
9
9
  }
10
10
  });
11
11
  export { PageListWorkflowsFeature };
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/page/PageList/feature.js","sources":["../../../../src/presentation/page/PageList/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { PageListPresenterDecorator } from \"./PageListPresenterDecorator.js\";\nimport { WorkflowStateListPagesFieldSelection } from \"./WorkflowStateListPagesFieldSelection.js\";\n\nexport const PageListWorkflowsFeature = createFeature({\n name: \"PageListWorkflows\",\n register(container) {\n container.registerDecorator(PageListPresenterDecorator);\n container.register(WorkflowStateListPagesFieldSelection);\n }\n});\n"],"names":["PageListWorkflowsFeature","createFeature","container","PageListPresenterDecorator","WorkflowStateListPagesFieldSelection"],"mappings":";;;AAIO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,iBAAiB,CAACC;QAC5BD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
1
+ {"version":3,"file":"presentation/page/PageList/feature.js","sources":["../../../../src/presentation/page/PageList/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { WorkflowStateListPagesFieldSelection } from \"./WorkflowStateListPagesFieldSelection.js\";\nimport { TableRowMapperWorkflowDecorator } from \"./TableRowMapperDecorator.js\";\n\nexport const PageListWorkflowsFeature = createFeature({\n name: \"PageListWorkflows\",\n register(container) {\n container.register(WorkflowStateListPagesFieldSelection);\n container.registerDecorator(TableRowMapperWorkflowDecorator);\n }\n});\n"],"names":["PageListWorkflowsFeature","createFeature","container","WorkflowStateListPagesFieldSelection","TableRowMapperWorkflowDecorator"],"mappings":";;;AAIO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,iBAAiB,CAACE;IAChC;AACJ"}
package/types.d.ts CHANGED
@@ -1,29 +1,15 @@
1
1
  import type { WorkflowStateValue } from "@webiny/app-workflows/types.js";
2
- export interface IRecordWorkflowStateIdentity {
3
- id: string;
4
- displayName: string;
5
- type: string;
6
- }
7
- export interface IRecordWorkflowState {
2
+ export interface IPageWorkflowState {
8
3
  workflowId: string;
9
4
  stepId: string;
5
+ stepName: string;
10
6
  state: WorkflowStateValue;
11
- savedBy?: IRecordWorkflowStateIdentity | null;
12
- }
13
- export interface IRecordWorkflow {
14
- state?: IRecordWorkflowState | null;
15
7
  }
16
8
  export type WithWorkflows<T> = T & {
17
- workflows: IRecordWorkflow | null;
18
- $selectable: boolean;
9
+ workflow: IPageWorkflowState | null;
19
10
  };
20
11
  declare module "@webiny/app-website-builder/types.js" {
21
- interface WbSystem {
22
- workflow: IRecordWorkflow | null;
23
- }
24
- }
25
- declare module "@webiny/app-website-builder/domain/Page/PageDto.js" {
26
- interface PageDto {
27
- $selectable: boolean;
12
+ interface WbPageSystem {
13
+ workflow: IPageWorkflowState | null;
28
14
  }
29
15
  }
@@ -1,13 +0,0 @@
1
- import { IDocumentListPresenterInit, IDocumentListVm, PageListPresenter } from "@webiny/app-website-builder/presentation/pages/PageList/index.js";
2
- declare class PageListPresenterWithWorkflows implements PageListPresenter.Interface {
3
- private readonly decoratee;
4
- constructor(decoratee: PageListPresenter.Interface);
5
- get vm(): IDocumentListVm;
6
- init(params: IDocumentListPresenterInit): void;
7
- showFilters(show: boolean): void;
8
- private decoratePage;
9
- }
10
- export declare const PageListPresenterDecorator: typeof PageListPresenterWithWorkflows & {
11
- __abstraction: import("@webiny/di").Abstraction<import("@webiny/app-website-builder/presentation/pages/PageList/abstractions").IDocumentListPresenter>;
12
- };
13
- export {};
@@ -1,38 +0,0 @@
1
- import { makeAutoObservable } from "mobx";
2
- import { PageListPresenter } from "@webiny/app-website-builder/presentation/pages/PageList/index.js";
3
- class PageListPresenterWithWorkflows {
4
- constructor(decoratee){
5
- this.decoratee = decoratee;
6
- makeAutoObservable(this);
7
- }
8
- get vm() {
9
- const vm = this.decoratee.vm;
10
- return {
11
- ...vm,
12
- data: vm.data.map((page)=>this.decoratePage(page))
13
- };
14
- }
15
- init(params) {
16
- this.decoratee.init(params);
17
- }
18
- showFilters(show) {
19
- this.decoratee.showFilters(show);
20
- }
21
- decoratePage(page) {
22
- return {
23
- ...page,
24
- system: {
25
- ...page.system,
26
- workflow: page.system?.workflow || null
27
- },
28
- $selectable: !page.system?.workflow?.state
29
- };
30
- }
31
- }
32
- const PageListPresenterDecorator = PageListPresenter.createDecorator({
33
- decorator: PageListPresenterWithWorkflows,
34
- dependencies: []
35
- });
36
- export { PageListPresenterDecorator };
37
-
38
- //# sourceMappingURL=PageListPresenterDecorator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presentation/page/PageList/PageListPresenterDecorator.js","sources":["../../../../src/presentation/page/PageList/PageListPresenterDecorator.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport {\n IDocumentListPresenterInit,\n IDocumentListVm,\n PageListPresenter\n} from \"@webiny/app-website-builder/presentation/pages/PageList/index.js\";\nimport type { PageDto } from \"@webiny/app-website-builder/domain/Page/index.js\";\n\nclass PageListPresenterWithWorkflows implements PageListPresenter.Interface {\n private readonly decoratee;\n\n public constructor(decoratee: PageListPresenter.Interface) {\n this.decoratee = decoratee;\n makeAutoObservable(this);\n }\n\n public get vm(): IDocumentListVm {\n const vm = this.decoratee.vm;\n return {\n ...vm,\n data: vm.data.map(page => {\n return this.decoratePage(page);\n })\n };\n }\n\n public init(params: IDocumentListPresenterInit): void {\n this.decoratee.init(params);\n }\n\n public showFilters(show: boolean): void {\n this.decoratee.showFilters(show);\n }\n\n private decoratePage(page: PageDto): PageDto {\n return {\n ...page,\n system: {\n ...page.system,\n workflow: page.system?.workflow || null\n },\n $selectable: !page.system?.workflow?.state\n };\n }\n}\n\nexport const PageListPresenterDecorator = PageListPresenter.createDecorator({\n decorator: PageListPresenterWithWorkflows,\n dependencies: []\n});\n"],"names":["PageListPresenterWithWorkflows","decoratee","makeAutoObservable","vm","page","params","show","PageListPresenterDecorator","PageListPresenter"],"mappings":";;AAQA,MAAMA;IAGF,YAAmBC,SAAsC,CAAE;QACvD,IAAI,CAAC,SAAS,GAAGA;QACjBC,mBAAmB,IAAI;IAC3B;IAEA,IAAW,KAAsB;QAC7B,MAAMC,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;QAC5B,OAAO;YACH,GAAGA,EAAE;YACL,MAAMA,GAAG,IAAI,CAAC,GAAG,CAACC,CAAAA,OACP,IAAI,CAAC,YAAY,CAACA;QAEjC;IACJ;IAEO,KAAKC,MAAkC,EAAQ;QAClD,IAAI,CAAC,SAAS,CAAC,IAAI,CAACA;IACxB;IAEO,YAAYC,IAAa,EAAQ;QACpC,IAAI,CAAC,SAAS,CAAC,WAAW,CAACA;IAC/B;IAEQ,aAAaF,IAAa,EAAW;QACzC,OAAO;YACH,GAAGA,IAAI;YACP,QAAQ;gBACJ,GAAGA,KAAK,MAAM;gBACd,UAAUA,KAAK,MAAM,EAAE,YAAY;YACvC;YACA,aAAa,CAACA,KAAK,MAAM,EAAE,UAAU;QACzC;IACJ;AACJ;AAEO,MAAMG,6BAA6BC,kBAAkB,eAAe,CAAC;IACxE,WAAWR;IACX,cAAc,EAAE;AACpB"}