@webiny/app-website-builder-workflows 0.0.0-unstable.e6f0dc8ca7 → 0.0.0-unstable.eb81deee7e
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/OptionItem/OpenInNewWindow.js +26 -33
- package/Components/OptionItem/OpenInNewWindow.js.map +1 -1
- package/Components/OptionItem/index.js +0 -2
- package/Components/PageEditor/PageEditorAutoSave.js +16 -27
- package/Components/PageEditor/PageEditorAutoSave.js.map +1 -1
- package/Components/PageEditor/PageEditorConfig.js +6 -5
- package/Components/PageEditor/PageEditorConfig.js.map +1 -1
- package/Components/PageEditor/PageEditorLayout.js +19 -47
- package/Components/PageEditor/PageEditorLayout.js.map +1 -1
- package/Components/PageEditor/PageEditorTopBar.js +19 -29
- package/Components/PageEditor/PageEditorTopBar.js.map +1 -1
- package/Components/PageEditor/PageFormWorkflowState.d.ts +3 -1
- package/Components/PageEditor/PageFormWorkflowState.js +17 -17
- package/Components/PageEditor/PageFormWorkflowState.js.map +1 -1
- package/Components/PageEditor/PageFormWorkflowStatePublishButton.js +17 -28
- package/Components/PageEditor/PageFormWorkflowStatePublishButton.js.map +1 -1
- package/Components/PageEditor/PageFormWorkflowStateTooltip.js +10 -19
- package/Components/PageEditor/PageFormWorkflowStateTooltip.js.map +1 -1
- package/Components/PageEditor/ToggleEditorMode.d.ts +2 -2
- package/Components/PageEditor/ToggleEditorMode.js +14 -13
- package/Components/PageEditor/ToggleEditorMode.js.map +1 -1
- package/Components/PageWorkflows/PageWorkflowsEditorView.js +44 -50
- package/Components/PageWorkflows/PageWorkflowsEditorView.js.map +1 -1
- package/Components/PageWorkflows/index.js +0 -2
- package/Components/PagesList/PageListChangeStatus.js +17 -25
- package/Components/PagesList/PageListChangeStatus.js.map +1 -1
- package/Components/PagesList/PagesList.js +3 -4
- package/Components/PagesList/PagesList.js.map +1 -1
- package/Components/PagesList/PagesListContentReviews.js +19 -35
- package/Components/PagesList/PagesListContentReviews.js.map +1 -1
- package/Components/PagesList/index.js +0 -2
- package/Components/index.d.ts +0 -1
- package/Components/index.js +0 -3
- package/Routes/WebsiteBuilderWorkflowsMenu.js +23 -26
- package/Routes/WebsiteBuilderWorkflowsMenu.js.map +1 -1
- package/Routes/index.js +0 -2
- package/constants.js +2 -1
- package/constants.js.map +1 -1
- package/hooks/usePage.js +12 -17
- package/hooks/usePage.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +11 -8
- package/index.js.map +1 -1
- package/package.json +17 -17
- package/presentation/page/PageGet/WorkflowStatesGetPageGraphQLFieldSelection.js +10 -7
- package/presentation/page/PageGet/WorkflowStatesGetPageGraphQLFieldSelection.js.map +1 -1
- package/presentation/page/PageGet/feature.js +6 -5
- package/presentation/page/PageGet/feature.js.map +1 -1
- 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 +11 -8
- package/presentation/page/PageList/WorkflowStateListPagesFieldSelection.js.map +1 -1
- package/presentation/page/PageList/feature.js +8 -7
- package/presentation/page/PageList/feature.js.map +1 -1
- package/routes.js +15 -16
- package/routes.js.map +1 -1
- package/types.d.ts +5 -19
- package/types.js +0 -3
- package/Components/OptionItem/index.js.map +0 -1
- package/Components/PageWorkflows/index.js.map +0 -1
- package/Components/PagesList/index.js.map +0 -1
- package/Components/index.js.map +0 -1
- package/Routes/index.js.map +0 -1
- package/presentation/page/PageList/PageListPresenterDecorator.d.ts +0 -13
- package/presentation/page/PageList/PageListPresenterDecorator.js +0 -39
- package/presentation/page/PageList/PageListPresenterDecorator.js.map +0 -1
- package/types.js.map +0 -1
|
@@ -1,41 +1,34 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react, { useCallback } from "react";
|
|
2
2
|
import { DropdownMenu, Icon } from "@webiny/admin-ui";
|
|
3
3
|
import { Components } from "@webiny/app-workflows";
|
|
4
|
-
import { ReactComponent
|
|
4
|
+
import { ReactComponent } from "@webiny/icons/open_in_new.svg";
|
|
5
5
|
import { useRouter } from "@webiny/app";
|
|
6
6
|
import { Routes } from "@webiny/app-website-builder/routes.js";
|
|
7
7
|
import { WB_PAGE_APP } from "../../constants.js";
|
|
8
|
-
const {
|
|
9
|
-
|
|
10
|
-
} =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
icon: /*#__PURE__*/React.createElement(Icon, {
|
|
32
|
-
icon: /*#__PURE__*/React.createElement(OpenInNewIcon, null),
|
|
33
|
-
label: "Open In New Window"
|
|
34
|
-
}),
|
|
35
|
-
text: "Open in New Window",
|
|
36
|
-
onClick: onClick
|
|
8
|
+
const { OpenInNewWindow: OpenInNewWindow } = Components.List.Options;
|
|
9
|
+
const OpenInNewWindow_ListOpenInNewWindow = OpenInNewWindow.createDecorator((Original)=>function(props) {
|
|
10
|
+
const { state } = props;
|
|
11
|
+
const { getLink } = useRouter();
|
|
12
|
+
const onClick = useCallback(()=>{
|
|
13
|
+
const url = getLink(Routes.Pages.Editor, {
|
|
14
|
+
id: state.targetRevisionId,
|
|
15
|
+
folderId: "root"
|
|
16
|
+
});
|
|
17
|
+
const goTo = `${window.location.origin}${url}`;
|
|
18
|
+
window.open(goTo, "_blank");
|
|
19
|
+
}, [
|
|
20
|
+
state.id
|
|
21
|
+
]);
|
|
22
|
+
if (state.app !== WB_PAGE_APP) return /*#__PURE__*/ react.createElement(Original, props);
|
|
23
|
+
return /*#__PURE__*/ react.createElement(DropdownMenu.Item, {
|
|
24
|
+
icon: /*#__PURE__*/ react.createElement(Icon, {
|
|
25
|
+
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
26
|
+
label: "Open In New Window"
|
|
27
|
+
}),
|
|
28
|
+
text: "Open in New Window",
|
|
29
|
+
onClick: onClick
|
|
30
|
+
});
|
|
37
31
|
});
|
|
38
|
-
|
|
39
|
-
});
|
|
32
|
+
export { OpenInNewWindow_ListOpenInNewWindow as ListOpenInNewWindow };
|
|
40
33
|
|
|
41
34
|
//# sourceMappingURL=OpenInNewWindow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Components/OptionItem/OpenInNewWindow.js","sources":["../../../src/Components/OptionItem/OpenInNewWindow.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { DropdownMenu, Icon } from \"@webiny/admin-ui\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { ReactComponent as OpenInNewIcon } from \"@webiny/icons/open_in_new.svg\";\nimport { useRouter } from \"@webiny/app\";\nimport { Routes } from \"@webiny/app-website-builder/routes.js\";\nimport { WB_PAGE_APP } from \"~/constants.js\";\n\nconst { OpenInNewWindow } = Components.List.Options;\n\nexport const ListOpenInNewWindow = OpenInNewWindow.createDecorator(Original => {\n return function ListOpenInNewWindow(props) {\n const { state } = props;\n\n const { getLink } = useRouter();\n const onClick = useCallback(() => {\n const url = getLink(Routes.Pages.Editor, {\n id: state.targetRevisionId,\n folderId: \"root\"\n });\n\n const goTo = `${window.location.origin}${url}`;\n\n window.open(goTo, \"_blank\");\n }, [state.id]);\n\n if (state.app !== WB_PAGE_APP) {\n return <Original {...props} />;\n }\n\n return (\n <DropdownMenu.Item\n icon={<Icon icon={<OpenInNewIcon />} label={\"Open In New Window\"} />}\n text={\"Open in New Window\"}\n onClick={onClick}\n />\n );\n };\n});\n"],"names":["OpenInNewWindow","Components","ListOpenInNewWindow","Original","props","state","getLink","useRouter","onClick","useCallback","url","Routes","goTo","window","WB_PAGE_APP","DropdownMenu","Icon","OpenInNewIcon"],"mappings":";;;;;;;AAQA,MAAM,EAAEA,iBAAAA,eAAe,EAAE,GAAGC,WAAW,IAAI,CAAC,OAAO;AAE5C,MAAMC,sCAAsBF,gBAAgB,eAAe,CAACG,CAAAA,WACxD,SAA6BC,KAAK;QACrC,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAElB,MAAM,EAAEE,OAAO,EAAE,GAAGC;QACpB,MAAMC,UAAUC,YAAY;YACxB,MAAMC,MAAMJ,QAAQK,OAAO,KAAK,CAAC,MAAM,EAAE;gBACrC,IAAIN,MAAM,gBAAgB;gBAC1B,UAAU;YACd;YAEA,MAAMO,OAAO,GAAGC,OAAO,QAAQ,CAAC,MAAM,GAAGH,KAAK;YAE9CG,OAAO,IAAI,CAACD,MAAM;QACtB,GAAG;YAACP,MAAM,EAAE;SAAC;QAEb,IAAIA,MAAM,GAAG,KAAKS,aACd,OAAO,WAAP,GAAO,oBAACX,UAAaC;QAGzB,OAAO,WAAP,GACI,oBAACW,aAAa,IAAI;YACd,oBAAM,oBAACC,MAAIA;gBAAC,oBAAM,oBAACC,gBAAaA;gBAAK,OAAO;;YAC5C,MAAM;YACN,SAAST;;IAGrB"}
|
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { PageEditorConfig } from "@webiny/app-website-builder";
|
|
3
3
|
import { useWorkflowState } from "@webiny/app-workflows";
|
|
4
4
|
import { observer } from "mobx-react-lite";
|
|
5
|
-
const {
|
|
6
|
-
|
|
7
|
-
} =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
presenter
|
|
11
|
-
} = useWorkflowState();
|
|
12
|
-
/**
|
|
13
|
-
* Autosave should work only when the page does not have a workflow state assigned.
|
|
14
|
-
*/
|
|
15
|
-
if (!presenter.vm.state?.state) {
|
|
16
|
-
return props.element;
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
});
|
|
20
|
-
export const PageEditorAutoSave = Ui.TopBar.Element.createDecorator(Original => {
|
|
21
|
-
return function PageEditorAutoSaveDecorated(props) {
|
|
22
|
-
if (props.name === "autoSave") {
|
|
23
|
-
return /*#__PURE__*/React.createElement(Original, Object.assign({}, props, {
|
|
24
|
-
element: /*#__PURE__*/React.createElement(WrappedAutoSave, {
|
|
25
|
-
element: props.element
|
|
26
|
-
})
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
return /*#__PURE__*/React.createElement(Original, props);
|
|
30
|
-
};
|
|
5
|
+
const { Ui: Ui } = PageEditorConfig;
|
|
6
|
+
const WrappedAutoSave = observer((props)=>{
|
|
7
|
+
const { presenter } = useWorkflowState();
|
|
8
|
+
if (!presenter.vm.hasState) return props.element;
|
|
9
|
+
return null;
|
|
31
10
|
});
|
|
11
|
+
const PageEditorAutoSave = Ui.TopBar.Element.createDecorator((Original)=>function(props) {
|
|
12
|
+
if ("autoSave" === props.name) return /*#__PURE__*/ react.createElement(Original, {
|
|
13
|
+
...props,
|
|
14
|
+
element: /*#__PURE__*/ react.createElement(WrappedAutoSave, {
|
|
15
|
+
element: props.element
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
return /*#__PURE__*/ react.createElement(Original, props);
|
|
19
|
+
});
|
|
20
|
+
export { PageEditorAutoSave };
|
|
32
21
|
|
|
33
22
|
//# sourceMappingURL=PageEditorAutoSave.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PageEditorConfig
|
|
1
|
+
import react from "react";
|
|
2
|
+
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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)));
|
|
9
|
+
export { PageEditorConfig_PageEditorConfig as PageEditorConfig };
|
|
9
10
|
|
|
10
11
|
//# sourceMappingURL=PageEditorConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,54 +1,26 @@
|
|
|
1
|
-
import
|
|
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";
|
|
1
|
+
import react, { useEffect } from "react";
|
|
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
|
-
const {
|
|
11
|
-
|
|
12
|
-
} =
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
const options = editor.getEditorOptions();
|
|
26
|
-
editor.updateEditor(state => {
|
|
27
|
-
state.isReadOnly = options.isReadOnly || hasState;
|
|
28
|
-
});
|
|
29
|
-
}, [hasState]);
|
|
30
|
-
return null;
|
|
6
|
+
const { Ui: Ui } = PageEditorConfig;
|
|
7
|
+
const ToggleReadonly = observer(()=>{
|
|
8
|
+
const { presenter } = useWorkflowState();
|
|
9
|
+
const editor = useDocumentEditor();
|
|
10
|
+
const hasState = presenter.vm.hasState;
|
|
11
|
+
useEffect(()=>{
|
|
12
|
+
const options = editor.getEditorOptions();
|
|
13
|
+
editor.updateEditor((state)=>{
|
|
14
|
+
state.isReadOnly = options.isReadOnly || hasState;
|
|
15
|
+
});
|
|
16
|
+
}, [
|
|
17
|
+
hasState
|
|
18
|
+
]);
|
|
19
|
+
return null;
|
|
31
20
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const page = useSelectFromDocument(doc => {
|
|
35
|
-
return {
|
|
36
|
-
id: doc.id,
|
|
37
|
-
title: doc.properties.title || "unknown page"
|
|
38
|
-
};
|
|
21
|
+
const PageEditorLayout = Ui.Layout.createDecorator((Original)=>function() {
|
|
22
|
+
return /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Original, null), /*#__PURE__*/ react.createElement(ToggleReadonly, null));
|
|
39
23
|
});
|
|
40
|
-
|
|
41
|
-
const {
|
|
42
|
-
identity
|
|
43
|
-
} = useAuthentication();
|
|
44
|
-
return /*#__PURE__*/React.createElement(WorkflowStateProvider, {
|
|
45
|
-
app: WB_PAGE_APP,
|
|
46
|
-
id: page.id,
|
|
47
|
-
identity: identity,
|
|
48
|
-
client: client,
|
|
49
|
-
title: `Website Builder: ${page.title}`
|
|
50
|
-
}, /*#__PURE__*/React.createElement(Original, null), /*#__PURE__*/React.createElement(ToggleReadonly, null));
|
|
51
|
-
};
|
|
52
|
-
});
|
|
24
|
+
export { PageEditorLayout };
|
|
53
25
|
|
|
54
26
|
//# sourceMappingURL=PageEditorLayout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,38 +1,28 @@
|
|
|
1
|
-
import
|
|
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";
|
|
10
8
|
import { WbPageStatus } from "@webiny/app-website-builder/constants.js";
|
|
11
|
-
const {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
const { Ui: Ui } = PageEditorConfig;
|
|
10
|
+
const PageEditorTopBar = Ui.TopBar.Layout.createDecorator((Original)=>function() {
|
|
11
|
+
const page = useSelectFromDocument((doc)=>({
|
|
12
|
+
id: doc.id,
|
|
13
|
+
title: doc.properties.title || "unknown page",
|
|
14
|
+
status: doc.status || "draft"
|
|
15
|
+
}));
|
|
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));
|
|
22
25
|
});
|
|
23
|
-
|
|
24
|
-
const {
|
|
25
|
-
identity
|
|
26
|
-
} = useAuthentication();
|
|
27
|
-
return /*#__PURE__*/React.createElement(WorkflowStateProvider, {
|
|
28
|
-
app: WB_PAGE_APP,
|
|
29
|
-
id: page.id,
|
|
30
|
-
disabled: page.status !== WbPageStatus.Draft,
|
|
31
|
-
identity: identity,
|
|
32
|
-
client: client,
|
|
33
|
-
title: `Website Builder: ${page.title}`
|
|
34
|
-
}, /*#__PURE__*/React.createElement(Original, null), /*#__PURE__*/React.createElement(ToggleEditorMode, null), /*#__PURE__*/React.createElement(PageFormWorkflowState, null));
|
|
35
|
-
};
|
|
36
|
-
});
|
|
26
|
+
export { PageEditorTopBar };
|
|
37
27
|
|
|
38
28
|
//# sourceMappingURL=PageEditorTopBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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 | null) & React.NamedExoticComponent<unknown> & {
|
|
3
|
+
readonly type: () => React.JSX.Element | null;
|
|
4
|
+
};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
},
|
|
16
|
-
|
|
17
|
-
};
|
|
1
|
+
import react from "react";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
import { Alert } from "@webiny/admin-ui";
|
|
4
|
+
import { Components, useWorkflowState } from "@webiny/app-workflows";
|
|
5
|
+
const { ContentReview: { WorkflowStateBar: WorkflowStateBar } } = Components;
|
|
6
|
+
const PageFormWorkflowState = observer(()=>{
|
|
7
|
+
const { presenter } = useWorkflowState();
|
|
8
|
+
if (!presenter.vm.hasWorkflow && !presenter.vm.hasState) return null;
|
|
9
|
+
return /*#__PURE__*/ react.createElement("div", {
|
|
10
|
+
className: "max-w-screen bg-white p-sm border-solid border-b-sm border-neutral-dimmed",
|
|
11
|
+
"data-affects-preview": "height"
|
|
12
|
+
}, /*#__PURE__*/ react.createElement(WorkflowStateBar, null), presenter.vm.hasState ? /*#__PURE__*/ react.createElement(Alert, {
|
|
13
|
+
type: "danger",
|
|
14
|
+
className: "mt-sm"
|
|
15
|
+
}, "Any changes you do on the page will not be stored!") : null);
|
|
16
|
+
});
|
|
17
|
+
export { PageFormWorkflowState };
|
|
18
18
|
|
|
19
19
|
//# sourceMappingURL=PageFormWorkflowState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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 // Nothing to show — no workflow assigned and no state note. `WorkflowStateBar` already renders\n // null without a workflow, so keeping the wrapper would draw an empty strip whose `border-b`\n // stacks a second full-width hairline right under the top bar's own separator.\n if (!presenter.vm.hasWorkflow && !presenter.vm.hasState) {\n return null;\n }\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;IAKtB,IAAI,CAACD,UAAU,EAAE,CAAC,WAAW,IAAI,CAACA,UAAU,EAAE,CAAC,QAAQ,EACnD,OAAO;IAGX,OAAO,WAAP,GACI,oBAAC;QACG,WAAW;QACX,wBAAsB;qBAEtB,oBAACJ,kBAAgBA,OAChBI,UAAU,EAAE,CAAC,QAAQ,GAAG,WAAH,GAClB,oBAACE,OAAKA;QAAC,MAAK;QAAS,WAAW;OAAS,wDAGzC;AAGhB"}
|
|
@@ -1,33 +1,22 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { PageEditorConfig } from "@webiny/app-website-builder";
|
|
3
|
-
import { useWorkflowState
|
|
3
|
+
import { useWorkflowState } from "@webiny/app-workflows";
|
|
4
4
|
import { observer } from "mobx-react-lite";
|
|
5
|
-
const {
|
|
6
|
-
|
|
7
|
-
} =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
presenter
|
|
11
|
-
} = useWorkflowState();
|
|
12
|
-
/**
|
|
13
|
-
* Publish button should be visible only when there is no workflow available and when workflow state is approved.
|
|
14
|
-
*/
|
|
15
|
-
if (!presenter.vm.workflow || presenter.vm.state?.state === WorkflowStateValue.approved) {
|
|
16
|
-
return props.element;
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
});
|
|
20
|
-
export const PageFormWorkflowStatePublishButton = Ui.TopBar.Action.createDecorator(Original => {
|
|
21
|
-
return function AutoSaveDecorator(props) {
|
|
22
|
-
if (props.name === "buttonPublish") {
|
|
23
|
-
return /*#__PURE__*/React.createElement(Original, Object.assign({}, props, {
|
|
24
|
-
element: /*#__PURE__*/React.createElement(WrappedPublishButton, {
|
|
25
|
-
element: props.element
|
|
26
|
-
})
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
return /*#__PURE__*/React.createElement(Original, props);
|
|
30
|
-
};
|
|
5
|
+
const { Ui: Ui } = PageEditorConfig;
|
|
6
|
+
const WrappedPublishButton = observer((props)=>{
|
|
7
|
+
const { presenter } = useWorkflowState();
|
|
8
|
+
if (!presenter.vm.hasWorkflow || presenter.vm.isApproved) return props.element;
|
|
9
|
+
return null;
|
|
31
10
|
});
|
|
11
|
+
const PageFormWorkflowStatePublishButton = Ui.TopBar.Action.createDecorator((Original)=>function(props) {
|
|
12
|
+
if ("buttonPublish" === props.name) return /*#__PURE__*/ react.createElement(Original, {
|
|
13
|
+
...props,
|
|
14
|
+
element: /*#__PURE__*/ react.createElement(WrappedPublishButton, {
|
|
15
|
+
element: props.element
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
return /*#__PURE__*/ react.createElement(Original, props);
|
|
19
|
+
});
|
|
20
|
+
export { PageFormWorkflowStatePublishButton };
|
|
32
21
|
|
|
33
22
|
//# sourceMappingURL=PageFormWorkflowStatePublishButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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"}
|
|
@@ -1,23 +1,14 @@
|
|
|
1
|
-
import
|
|
1
|
+
import react from "react";
|
|
2
2
|
import { Components } from "@webiny/app-workflows";
|
|
3
3
|
import { PageEditorConfig } from "@webiny/app-website-builder";
|
|
4
|
-
const {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return /*#__PURE__*/React.createElement(WorkflowStateTooltip, null);
|
|
14
|
-
};
|
|
15
|
-
export const PageFormWorkflowStateTooltip = () => {
|
|
16
|
-
return /*#__PURE__*/React.createElement(Ui.TopBar.Action, {
|
|
17
|
-
before: "buttonPublish",
|
|
18
|
-
name: "buttonWorkflowStateTooltip",
|
|
19
|
-
element: /*#__PURE__*/React.createElement(TooltipButton, null)
|
|
20
|
-
});
|
|
21
|
-
};
|
|
4
|
+
const { ContentReview: { WorkflowStateTooltip: WorkflowStateTooltip } } = Components;
|
|
5
|
+
const { Ui: Ui } = PageEditorConfig;
|
|
6
|
+
const TooltipButton = ()=>/*#__PURE__*/ react.createElement(WorkflowStateTooltip, null);
|
|
7
|
+
const PageFormWorkflowStateTooltip = ()=>/*#__PURE__*/ react.createElement(Ui.TopBar.Action, {
|
|
8
|
+
before: "buttonPublish",
|
|
9
|
+
name: "buttonWorkflowStateTooltip",
|
|
10
|
+
element: /*#__PURE__*/ react.createElement(TooltipButton, null)
|
|
11
|
+
});
|
|
12
|
+
export { PageFormWorkflowStateTooltip };
|
|
22
13
|
|
|
23
14
|
//# sourceMappingURL=PageFormWorkflowStateTooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"Components/PageEditor/PageFormWorkflowStateTooltip.js","sources":["../../../src/Components/PageEditor/PageFormWorkflowStateTooltip.tsx"],"sourcesContent":["import React from \"react\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { PageEditorConfig } from \"@webiny/app-website-builder\";\n\nconst {\n ContentReview: { WorkflowStateTooltip }\n} = Components;\n\nconst { Ui } = PageEditorConfig;\n\nconst TooltipButton = () => {\n return <WorkflowStateTooltip />;\n};\n\nexport const PageFormWorkflowStateTooltip = () => {\n return (\n <Ui.TopBar.Action\n before={\"buttonPublish\"}\n name={\"buttonWorkflowStateTooltip\"}\n element={<TooltipButton />}\n />\n );\n};\n"],"names":["WorkflowStateTooltip","Components","Ui","PageEditorConfig","TooltipButton","PageFormWorkflowStateTooltip"],"mappings":";;;AAIA,MAAM,EACF,eAAe,EAAEA,sBAAAA,oBAAoB,EAAE,EAC1C,GAAGC;AAEJ,MAAM,EAAEC,IAAAA,EAAE,EAAE,GAAGC;AAEf,MAAMC,gBAAgB,IACX,WAAP,GAAO,oBAACJ,sBAAoBA;AAGzB,MAAMK,+BAA+B,IACjC,WAAP,GACI,oBAACH,GAAG,MAAM,CAAC,MAAM;QACb,QAAQ;QACR,MAAM;QACN,uBAAS,oBAACE,eAAaA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const ToggleEditorMode: (() => null) & {
|
|
2
|
-
|
|
1
|
+
export declare const ToggleEditorMode: (() => null) & import("react").NamedExoticComponent<unknown> & {
|
|
2
|
+
readonly type: () => null;
|
|
3
3
|
};
|
|
@@ -2,19 +2,20 @@ import { useEffect } from "react";
|
|
|
2
2
|
import { observer } from "mobx-react-lite";
|
|
3
3
|
import { useWorkflowState } from "@webiny/app-workflows";
|
|
4
4
|
import { useDocumentEditor } from "@webiny/app-website-builder/DocumentEditor/index.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
const ToggleEditorMode = observer(()=>{
|
|
6
|
+
const { presenter } = useWorkflowState();
|
|
7
|
+
const editor = useDocumentEditor();
|
|
8
|
+
const hasState = presenter.vm.hasState;
|
|
9
|
+
useEffect(()=>{
|
|
10
|
+
const options = editor.getEditorOptions();
|
|
11
|
+
editor.updateEditor((state)=>{
|
|
12
|
+
state.isReadOnly = options.isReadOnly || hasState;
|
|
13
|
+
});
|
|
14
|
+
}, [
|
|
15
|
+
hasState
|
|
16
|
+
]);
|
|
17
|
+
return null;
|
|
18
18
|
});
|
|
19
|
+
export { ToggleEditorMode };
|
|
19
20
|
|
|
20
21
|
//# sourceMappingURL=ToggleEditorMode.js.map
|