@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.
- package/Components/PageEditor/PageEditorAutoSave.js +1 -1
- package/Components/PageEditor/PageEditorAutoSave.js.map +1 -1
- package/Components/PageEditor/PageEditorConfig.js +3 -1
- package/Components/PageEditor/PageEditorConfig.js.map +1 -1
- package/Components/PageEditor/PageEditorLayout.js +3 -20
- package/Components/PageEditor/PageEditorLayout.js.map +1 -1
- package/Components/PageEditor/PageEditorTopBar.js +11 -14
- package/Components/PageEditor/PageEditorTopBar.js.map +1 -1
- package/Components/PageEditor/PageFormWorkflowState.d.ts +3 -1
- package/Components/PageEditor/PageFormWorkflowState.js +13 -5
- package/Components/PageEditor/PageFormWorkflowState.js.map +1 -1
- package/Components/PageEditor/PageFormWorkflowStatePublishButton.js +2 -2
- package/Components/PageEditor/PageFormWorkflowStatePublishButton.js.map +1 -1
- package/Components/PageEditor/ToggleEditorMode.js +1 -1
- package/Components/PageEditor/ToggleEditorMode.js.map +1 -1
- package/Components/PagesList/PageListChangeStatus.js +2 -2
- package/Components/PagesList/PageListChangeStatus.js.map +1 -1
- package/Components/PagesList/PagesListContentReviews.js +1 -6
- package/Components/PagesList/PagesListContentReviews.js.map +1 -1
- package/Components/index.d.ts +0 -1
- package/Components/index.js +0 -1
- package/hooks/usePage.js +2 -5
- package/hooks/usePage.js.map +1 -1
- package/package.json +10 -12
- package/presentation/page/PageList/TableRowMapperDecorator.d.ts +12 -0
- package/presentation/page/PageList/TableRowMapperDecorator.js +24 -0
- package/presentation/page/PageList/TableRowMapperDecorator.js.map +1 -0
- package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.d.ts +2 -2
- package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.js +1 -1
- package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.js.map +1 -1
- package/presentation/page/PageList/feature.js +2 -2
- package/presentation/page/PageList/feature.js.map +1 -1
- package/types.d.ts +5 -19
- package/presentation/page/PageList/PageListPresenterDecorator.d.ts +0 -13
- package/presentation/page/PageList/PageListPresenterDecorator.js +0 -38
- 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.
|
|
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.
|
|
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
|
-
|
|
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":"
|
|
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 {
|
|
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 =
|
|
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
|
-
|
|
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 {
|
|
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 {
|
|
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
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
|
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,10 +1,18 @@
|
|
|
1
1
|
import react from "react";
|
|
2
|
-
import {
|
|
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 = (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
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 {
|
|
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.
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
9
|
-
if (!
|
|
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
|
|
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 {
|
|
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"}
|
package/Components/index.d.ts
CHANGED
package/Components/index.js
CHANGED
package/hooks/usePage.js
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { usePage } from "@webiny/app-website-builder/
|
|
1
|
+
import { usePage } from "@webiny/app-website-builder/presentation/pages/PageList/hooks/usePage.js";
|
|
2
2
|
const decoratePage = (page)=>({
|
|
3
3
|
...page,
|
|
4
|
-
|
|
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();
|
package/hooks/usePage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/usePage.js","sources":["../../src/hooks/usePage.ts"],"sourcesContent":["import { usePage as baseUsePage } from \"@webiny/app-website-builder/
|
|
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.
|
|
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
|
-
"@
|
|
17
|
-
"@webiny/
|
|
18
|
-
"@webiny/app": "6.
|
|
19
|
-
"@webiny/app-
|
|
20
|
-
"@webiny/app-
|
|
21
|
-
"@webiny/
|
|
22
|
-
"@webiny/
|
|
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.
|
|
30
|
+
"@webiny/build-tools": "6.6.0-alpha.0",
|
|
33
31
|
"rimraf": "6.1.3",
|
|
34
|
-
"typescript": "
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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 {
|
|
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
|
|
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
|
-
|
|
18
|
-
$selectable: boolean;
|
|
9
|
+
workflow: IPageWorkflowState | null;
|
|
19
10
|
};
|
|
20
11
|
declare module "@webiny/app-website-builder/types.js" {
|
|
21
|
-
interface
|
|
22
|
-
workflow:
|
|
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"}
|