@webiny/app-workflows 0.0.0-unstable.e2758ee1cf → 0.0.0-unstable.e6f0dc8ca7

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 (26) hide show
  1. package/Components/App/WorkflowsAdminApp.js +5 -2
  2. package/Components/App/WorkflowsAdminApp.js.map +1 -1
  3. package/Components/Common/Options/OptionItem/OpenInNewWindow.js +1 -1
  4. package/Components/Common/Options/OptionItem/OpenInNewWindow.js.map +1 -1
  5. package/Components/WorkflowState/WorkflowStateProvider.d.ts +1 -0
  6. package/Components/WorkflowState/WorkflowStateProvider.js +7 -10
  7. package/Components/WorkflowState/WorkflowStateProvider.js.map +1 -1
  8. package/Components/WorkflowStatesWidget/Row/WorkflowStateRowDescription.js.map +1 -1
  9. package/Components/WorkflowsEditor/DataList/WorkflowsDataList.js +7 -7
  10. package/Components/WorkflowsEditor/DataList/WorkflowsDataList.js.map +1 -1
  11. package/Components/WorkflowsPermissions/SecurityPermissions.js +2 -6
  12. package/Components/WorkflowsPermissions/SecurityPermissions.js.map +1 -1
  13. package/Presenters/WorkflowStatePresenter.d.ts +2 -0
  14. package/Presenters/WorkflowStatePresenter.js +4 -0
  15. package/Presenters/WorkflowStatePresenter.js.map +1 -1
  16. package/domain/permissionsSchema.d.ts +6 -0
  17. package/domain/permissionsSchema.js +9 -0
  18. package/domain/permissionsSchema.js.map +1 -0
  19. package/features/permissions/abstractions.d.ts +17 -0
  20. package/features/permissions/abstractions.js +5 -0
  21. package/features/permissions/abstractions.js.map +1 -0
  22. package/features/permissions/feature.d.ts +14 -0
  23. package/features/permissions/feature.js +6 -0
  24. package/features/permissions/feature.js.map +1 -0
  25. package/package.json +22 -21
  26. package/routes.d.ts +5 -2
@@ -1,13 +1,16 @@
1
1
  import React from "react";
2
- import { Wcp } from "@webiny/app-admin";
2
+ import { RegisterFeature, Wcp } from "@webiny/app-admin";
3
3
  import { SecurityPermissions } from "../WorkflowsPermissions/index.js";
4
4
  import { ContentReviews } from "./ContentReviews.js";
5
+ import { WorkflowsPermissionsFeature } from "../../features/permissions/feature.js";
5
6
 
6
7
  /**
7
8
  * Should be registered in app-serverless-cms.
8
9
  */
9
10
  export const WorkflowsAdminApp = () => {
10
- return /*#__PURE__*/React.createElement(Wcp.CanUseWorkflows, null, /*#__PURE__*/React.createElement(SecurityPermissions, null), /*#__PURE__*/React.createElement(ContentReviews, null));
11
+ return /*#__PURE__*/React.createElement(Wcp.CanUseWorkflows, null, /*#__PURE__*/React.createElement(RegisterFeature, {
12
+ feature: WorkflowsPermissionsFeature
13
+ }), /*#__PURE__*/React.createElement(SecurityPermissions, null), /*#__PURE__*/React.createElement(ContentReviews, null));
11
14
  };
12
15
 
13
16
  //# sourceMappingURL=WorkflowsAdminApp.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Wcp","SecurityPermissions","ContentReviews","WorkflowsAdminApp","createElement","CanUseWorkflows"],"sources":["WorkflowsAdminApp.tsx"],"sourcesContent":["import React from \"react\";\nimport { Wcp } from \"@webiny/app-admin\";\nimport { SecurityPermissions } from \"~/Components/WorkflowsPermissions/index.js\";\nimport { ContentReviews } from \"./ContentReviews.js\";\n\n/**\n * Should be registered in app-serverless-cms.\n */\nexport const WorkflowsAdminApp = () => {\n return (\n <Wcp.CanUseWorkflows>\n <SecurityPermissions />\n <ContentReviews />\n </Wcp.CanUseWorkflows>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,QAAQ,mBAAmB;AACvC,SAASC,mBAAmB;AAC5B,SAASC,cAAc;;AAEvB;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACnC,oBACIJ,KAAA,CAAAK,aAAA,CAACJ,GAAG,CAACK,eAAe,qBAChBN,KAAA,CAAAK,aAAA,CAACH,mBAAmB,MAAE,CAAC,eACvBF,KAAA,CAAAK,aAAA,CAACF,cAAc,MAAE,CACA,CAAC;AAE9B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","RegisterFeature","Wcp","SecurityPermissions","ContentReviews","WorkflowsPermissionsFeature","WorkflowsAdminApp","createElement","CanUseWorkflows","feature"],"sources":["WorkflowsAdminApp.tsx"],"sourcesContent":["import React from \"react\";\nimport { RegisterFeature, Wcp } from \"@webiny/app-admin\";\nimport { SecurityPermissions } from \"~/Components/WorkflowsPermissions/index.js\";\nimport { ContentReviews } from \"./ContentReviews.js\";\nimport { WorkflowsPermissionsFeature } from \"~/features/permissions/feature.js\";\n\n/**\n * Should be registered in app-serverless-cms.\n */\nexport const WorkflowsAdminApp = () => {\n return (\n <Wcp.CanUseWorkflows>\n <RegisterFeature feature={WorkflowsPermissionsFeature} />\n <SecurityPermissions />\n <ContentReviews />\n </Wcp.CanUseWorkflows>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,EAAEC,GAAG,QAAQ,mBAAmB;AACxD,SAASC,mBAAmB;AAC5B,SAASC,cAAc;AACvB,SAASC,2BAA2B;;AAEpC;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACnC,oBACIN,KAAA,CAAAO,aAAA,CAACL,GAAG,CAACM,eAAe,qBAChBR,KAAA,CAAAO,aAAA,CAACN,eAAe;IAACQ,OAAO,EAAEJ;EAA4B,CAAE,CAAC,eACzDL,KAAA,CAAAO,aAAA,CAACJ,mBAAmB,MAAE,CAAC,eACvBH,KAAA,CAAAO,aAAA,CAACH,cAAc,MAAE,CACA,CAAC;AAE9B,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { makeDecoratable } from "@webiny/admin-ui";
3
3
  export const WorkflowStateOptionsOpenInNewWindow = makeDecoratable("WorkflowStateOptionsOpenInNewWindow",
4
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+ // oxlint-disable-next-line typescript/no-unused-vars
5
5
  props => {
6
6
  return /*#__PURE__*/React.createElement(React.Fragment, null, "Implement your decoration of WorkflowStateOptionsOpenInNewWindow");
7
7
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","makeDecoratable","WorkflowStateOptionsOpenInNewWindow","props","createElement","Fragment"],"sources":["OpenInNewWindow.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/admin-ui\";\nimport type { IWorkflowState } from \"~/types.js\";\n\nexport interface IWorkflowStateOptionsOpenInNewWindowProps {\n state: IWorkflowState;\n}\n\nexport const WorkflowStateOptionsOpenInNewWindow = makeDecoratable(\n \"WorkflowStateOptionsOpenInNewWindow\",\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (props: IWorkflowStateOptionsOpenInNewWindowProps) => {\n return <>Implement your decoration of WorkflowStateOptionsOpenInNewWindow</>;\n }\n);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,kBAAkB;AAOlD,OAAO,MAAMC,mCAAmC,GAAGD,eAAe,CAC9D,qCAAqC;AACrC;AACCE,KAAgD,IAAK;EAClD,oBAAOH,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QAAE,kEAAkE,CAAC;AAChF,CACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","makeDecoratable","WorkflowStateOptionsOpenInNewWindow","props","createElement","Fragment"],"sources":["OpenInNewWindow.tsx"],"sourcesContent":["import React from \"react\";\nimport { makeDecoratable } from \"@webiny/admin-ui\";\nimport type { IWorkflowState } from \"~/types.js\";\n\nexport interface IWorkflowStateOptionsOpenInNewWindowProps {\n state: IWorkflowState;\n}\n\nexport const WorkflowStateOptionsOpenInNewWindow = makeDecoratable(\n \"WorkflowStateOptionsOpenInNewWindow\",\n // oxlint-disable-next-line typescript/no-unused-vars\n (props: IWorkflowStateOptionsOpenInNewWindowProps) => {\n return <>Implement your decoration of WorkflowStateOptionsOpenInNewWindow</>;\n }\n);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,kBAAkB;AAOlD,OAAO,MAAMC,mCAAmC,GAAGD,eAAe,CAC9D,qCAAqC;AACrC;AACCE,KAAgD,IAAK;EAClD,oBAAOH,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QAAE,kEAAkE,CAAC;AAChF,CACJ,CAAC","ignoreList":[]}
@@ -9,6 +9,7 @@ export interface IWorkflowStateProps {
9
9
  client: ApolloClient<object>;
10
10
  children: React.ReactElement | React.ReactElement[];
11
11
  title: string;
12
+ disabled?: boolean;
12
13
  }
13
14
  export interface IWorkflowStateContext {
14
15
  presenter: IWorkflowStatePresenter;
@@ -5,12 +5,8 @@ import { WorkflowStatePresenter } from "../../Presenters/index.js";
5
5
  export const WorkflowStateContext = /*#__PURE__*/React.createContext(null);
6
6
  export const WorkflowStateProvider = props => {
7
7
  const {
8
- id,
9
- app,
10
- identity,
11
8
  client,
12
- children,
13
- title
9
+ children
14
10
  } = props;
15
11
  const presenter = useMemo(() => {
16
12
  const gateway = new WorkflowStateGateway({
@@ -26,14 +22,15 @@ export const WorkflowStateProvider = props => {
26
22
  gateway: workflowsGateway
27
23
  });
28
24
  return new WorkflowStatePresenter({
29
- app,
30
- targetRevisionId: id,
31
- identity,
25
+ app: props.app,
26
+ targetRevisionId: props.id,
27
+ identity: props.identity,
32
28
  repository,
33
29
  workflowsRepository,
34
- title
30
+ title: props.title,
31
+ disabled: props.disabled || false
35
32
  });
36
- }, [app, id, identity.id, title]);
33
+ }, [props.id, props.identity, props.title, props.disabled, props.app]);
37
34
  return /*#__PURE__*/React.createElement(WorkflowStateContext.Provider, {
38
35
  value: {
39
36
  presenter
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","WorkflowsGateway","WorkflowStateGateway","WorkflowsRepository","WorkflowStateRepository","WorkflowStatePresenter","WorkflowStateContext","createContext","WorkflowStateProvider","props","id","app","identity","client","children","title","presenter","gateway","repository","workflowsGateway","workflowsRepository","targetRevisionId","createElement","Provider","value"],"sources":["WorkflowStateProvider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { WorkflowsGateway, WorkflowStateGateway } from \"~/Gateways/index.js\";\nimport { WorkflowsRepository, WorkflowStateRepository } from \"~/Repositories/index.js\";\nimport type { IWorkflowStatePresenter } from \"~/Presenters/index.js\";\nimport { WorkflowStatePresenter } from \"~/Presenters/index.js\";\nimport type { IIdentity } from \"~/types.js\";\nimport type ApolloClient from \"apollo-client\";\n\nexport interface IWorkflowStateProps {\n id: string;\n app: string;\n identity: IIdentity;\n client: ApolloClient<object>;\n children: React.ReactElement | React.ReactElement[];\n title: string;\n}\n\nexport interface IWorkflowStateContext {\n presenter: IWorkflowStatePresenter;\n}\n\nexport const WorkflowStateContext = React.createContext<IWorkflowStateContext | null>(null);\n\nexport const WorkflowStateProvider = (props: IWorkflowStateProps) => {\n const { id, app, identity, client, children, title } = props;\n const presenter = useMemo(() => {\n const gateway = new WorkflowStateGateway({\n client\n });\n const repository = new WorkflowStateRepository({\n gateway\n });\n const workflowsGateway = new WorkflowsGateway({\n client\n });\n const workflowsRepository = new WorkflowsRepository({\n gateway: workflowsGateway\n });\n return new WorkflowStatePresenter({\n app,\n targetRevisionId: id,\n identity,\n repository,\n workflowsRepository,\n title\n });\n }, [app, id, identity.id, title]);\n\n return (\n <WorkflowStateContext.Provider value={{ presenter }}>\n {children}\n </WorkflowStateContext.Provider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,gBAAgB,EAAEC,oBAAoB;AAC/C,SAASC,mBAAmB,EAAEC,uBAAuB;AAErD,SAASC,sBAAsB;AAiB/B,OAAO,MAAMC,oBAAoB,gBAAGP,KAAK,CAACQ,aAAa,CAA+B,IAAI,CAAC;AAE3F,OAAO,MAAMC,qBAAqB,GAAIC,KAA0B,IAAK;EACjE,MAAM;IAAEC,EAAE;IAAEC,GAAG;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGN,KAAK;EAC5D,MAAMO,SAAS,GAAGhB,OAAO,CAAC,MAAM;IAC5B,MAAMiB,OAAO,GAAG,IAAIf,oBAAoB,CAAC;MACrCW;IACJ,CAAC,CAAC;IACF,MAAMK,UAAU,GAAG,IAAId,uBAAuB,CAAC;MAC3Ca;IACJ,CAAC,CAAC;IACF,MAAME,gBAAgB,GAAG,IAAIlB,gBAAgB,CAAC;MAC1CY;IACJ,CAAC,CAAC;IACF,MAAMO,mBAAmB,GAAG,IAAIjB,mBAAmB,CAAC;MAChDc,OAAO,EAAEE;IACb,CAAC,CAAC;IACF,OAAO,IAAId,sBAAsB,CAAC;MAC9BM,GAAG;MACHU,gBAAgB,EAAEX,EAAE;MACpBE,QAAQ;MACRM,UAAU;MACVE,mBAAmB;MACnBL;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACJ,GAAG,EAAED,EAAE,EAAEE,QAAQ,CAACF,EAAE,EAAEK,KAAK,CAAC,CAAC;EAEjC,oBACIhB,KAAA,CAAAuB,aAAA,CAAChB,oBAAoB,CAACiB,QAAQ;IAACC,KAAK,EAAE;MAAER;IAAU;EAAE,GAC/CF,QAC0B,CAAC;AAExC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","WorkflowsGateway","WorkflowStateGateway","WorkflowsRepository","WorkflowStateRepository","WorkflowStatePresenter","WorkflowStateContext","createContext","WorkflowStateProvider","props","client","children","presenter","gateway","repository","workflowsGateway","workflowsRepository","app","targetRevisionId","id","identity","title","disabled","createElement","Provider","value"],"sources":["WorkflowStateProvider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { WorkflowsGateway, WorkflowStateGateway } from \"~/Gateways/index.js\";\nimport { WorkflowsRepository, WorkflowStateRepository } from \"~/Repositories/index.js\";\nimport type { IWorkflowStatePresenter } from \"~/Presenters/index.js\";\nimport { WorkflowStatePresenter } from \"~/Presenters/index.js\";\nimport type { IIdentity } from \"~/types.js\";\nimport type ApolloClient from \"apollo-client\";\n\nexport interface IWorkflowStateProps {\n id: string;\n app: string;\n identity: IIdentity;\n client: ApolloClient<object>;\n children: React.ReactElement | React.ReactElement[];\n title: string;\n disabled?: boolean;\n}\n\nexport interface IWorkflowStateContext {\n presenter: IWorkflowStatePresenter;\n}\n\nexport const WorkflowStateContext = React.createContext<IWorkflowStateContext | null>(null);\n\nexport const WorkflowStateProvider = (props: IWorkflowStateProps) => {\n const { client, children } = props;\n const presenter = useMemo(() => {\n const gateway = new WorkflowStateGateway({\n client\n });\n const repository = new WorkflowStateRepository({\n gateway\n });\n const workflowsGateway = new WorkflowsGateway({\n client\n });\n const workflowsRepository = new WorkflowsRepository({\n gateway: workflowsGateway\n });\n return new WorkflowStatePresenter({\n app: props.app,\n targetRevisionId: props.id,\n identity: props.identity,\n repository,\n workflowsRepository,\n title: props.title,\n disabled: props.disabled || false\n });\n }, [props.id, props.identity, props.title, props.disabled, props.app]);\n\n return (\n <WorkflowStateContext.Provider value={{ presenter }}>\n {children}\n </WorkflowStateContext.Provider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,gBAAgB,EAAEC,oBAAoB;AAC/C,SAASC,mBAAmB,EAAEC,uBAAuB;AAErD,SAASC,sBAAsB;AAkB/B,OAAO,MAAMC,oBAAoB,gBAAGP,KAAK,CAACQ,aAAa,CAA+B,IAAI,CAAC;AAE3F,OAAO,MAAMC,qBAAqB,GAAIC,KAA0B,IAAK;EACjE,MAAM;IAAEC,MAAM;IAAEC;EAAS,CAAC,GAAGF,KAAK;EAClC,MAAMG,SAAS,GAAGZ,OAAO,CAAC,MAAM;IAC5B,MAAMa,OAAO,GAAG,IAAIX,oBAAoB,CAAC;MACrCQ;IACJ,CAAC,CAAC;IACF,MAAMI,UAAU,GAAG,IAAIV,uBAAuB,CAAC;MAC3CS;IACJ,CAAC,CAAC;IACF,MAAME,gBAAgB,GAAG,IAAId,gBAAgB,CAAC;MAC1CS;IACJ,CAAC,CAAC;IACF,MAAMM,mBAAmB,GAAG,IAAIb,mBAAmB,CAAC;MAChDU,OAAO,EAAEE;IACb,CAAC,CAAC;IACF,OAAO,IAAIV,sBAAsB,CAAC;MAC9BY,GAAG,EAAER,KAAK,CAACQ,GAAG;MACdC,gBAAgB,EAAET,KAAK,CAACU,EAAE;MAC1BC,QAAQ,EAAEX,KAAK,CAACW,QAAQ;MACxBN,UAAU;MACVE,mBAAmB;MACnBK,KAAK,EAAEZ,KAAK,CAACY,KAAK;MAClBC,QAAQ,EAAEb,KAAK,CAACa,QAAQ,IAAI;IAChC,CAAC,CAAC;EACN,CAAC,EAAE,CAACb,KAAK,CAACU,EAAE,EAAEV,KAAK,CAACW,QAAQ,EAAEX,KAAK,CAACY,KAAK,EAAEZ,KAAK,CAACa,QAAQ,EAAEb,KAAK,CAACQ,GAAG,CAAC,CAAC;EAEtE,oBACIlB,KAAA,CAAAwB,aAAA,CAACjB,oBAAoB,CAACkB,QAAQ;IAACC,KAAK,EAAE;MAAEb;IAAU;EAAE,GAC/CD,QAC0B,CAAC;AAExC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","TimeAgo","Identity","identity","createElement","Fragment","displayName","id","WorkflowStateRowDescription","props","state","currentStep","title","savedBy","datetime","savedOn"],"sources":["WorkflowStateRowDescription.tsx"],"sourcesContent":["import React from \"react\";\nimport type { IIdentity, IWorkflowState } from \"~/types.js\";\nimport { TimeAgo } from \"@webiny/admin-ui\";\n\ninterface IWorkflowStateRowDescriptionProps {\n state: IWorkflowState;\n}\n\ninterface IIdentityProps {\n identity: IIdentity | undefined | null;\n}\n\nconst Identity = ({ identity }: IIdentityProps) => {\n if (!identity) {\n return null;\n }\n return <> - {identity.displayName || identity.id}</>;\n};\n\nexport const WorkflowStateRowDescription = (props: IWorkflowStateRowDescriptionProps) => {\n const { state } = props;\n return (\n <>\n {state.currentStep.title}\n <Identity identity={state.currentStep.savedBy} />\n , <TimeAgo datetime={state.savedOn} />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,OAAO,QAAQ,kBAAkB;AAU1C,MAAMC,QAAQ,GAAGA,CAAC;EAAEC;AAAyB,CAAC,KAAK;EAC/C,IAAI,CAACA,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EACA,oBAAOH,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QAAE,KAAG,EAACF,QAAQ,CAACG,WAAW,IAAIH,QAAQ,CAACI,EAAK,CAAC;AACxD,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAIC,KAAwC,IAAK;EACrF,MAAM;IAAEC;EAAM,CAAC,GAAGD,KAAK;EACvB,oBACIT,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QACKK,KAAK,CAACC,WAAW,CAACC,KAAK,eACxBZ,KAAA,CAAAI,aAAA,CAACF,QAAQ;IAACC,QAAQ,EAAEO,KAAK,CAACC,WAAW,CAACE;EAAQ,CAAE,CAAC,MAC/C,eAAAb,KAAA,CAAAI,aAAA,CAACH,OAAO;IAACa,QAAQ,EAAEJ,KAAK,CAACK;EAAQ,CAAE,CACvC,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","TimeAgo","Identity","identity","createElement","Fragment","displayName","id","WorkflowStateRowDescription","props","state","currentStep","title","savedBy","datetime","savedOn"],"sources":["WorkflowStateRowDescription.tsx"],"sourcesContent":["import React from \"react\";\nimport type { IIdentity, IWorkflowState } from \"~/types.js\";\nimport { TimeAgo } from \"@webiny/admin-ui\";\n\ninterface IWorkflowStateRowDescriptionProps {\n state: IWorkflowState;\n}\n\ninterface IIdentityProps {\n identity: IIdentity | undefined | null;\n}\n\nconst Identity = ({ identity }: IIdentityProps) => {\n if (!identity) {\n return null;\n }\n return <> - {identity.displayName || identity.id}</>;\n};\n\nexport const WorkflowStateRowDescription = (props: IWorkflowStateRowDescriptionProps) => {\n const { state } = props;\n return (\n <>\n {state.currentStep.title}\n <Identity identity={state.currentStep.savedBy} />, <TimeAgo datetime={state.savedOn} />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,OAAO,QAAQ,kBAAkB;AAU1C,MAAMC,QAAQ,GAAGA,CAAC;EAAEC;AAAyB,CAAC,KAAK;EAC/C,IAAI,CAACA,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EACA,oBAAOH,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QAAE,KAAG,EAACF,QAAQ,CAACG,WAAW,IAAIH,QAAQ,CAACI,EAAK,CAAC;AACxD,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAIC,KAAwC,IAAK;EACrF,MAAM;IAAEC;EAAM,CAAC,GAAGD,KAAK;EACvB,oBACIT,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QACKK,KAAK,CAACC,WAAW,CAACC,KAAK,eACxBZ,KAAA,CAAAI,aAAA,CAACF,QAAQ;IAACC,QAAQ,EAAEO,KAAK,CAACC,WAAW,CAACE;EAAQ,CAAE,CAAC,MAAE,eAAAb,KAAA,CAAAI,aAAA,CAACH,OAAO;IAACa,QAAQ,EAAEJ,KAAK,CAACK;EAAQ,CAAE,CACxF,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback, useMemo, useState } from "react";
2
2
  import { i18n } from "@webiny/app/i18n/index.js";
3
- import { DataList, DataListModalOverlayAction, ListItem, ListItemText, ListItemTextPrimary, ScrollList } from "@webiny/ui/List/index.js";
3
+ import { DataList, DataListModal, List } from "@webiny/admin-ui";
4
4
  import { SearchUI } from "@webiny/app-admin";
5
5
  const t = i18n.ns("app-workflows/workflows-editor/data-list");
6
6
  export const WorkflowsDataList = ({
@@ -28,19 +28,19 @@ export const WorkflowsDataList = ({
28
28
  onChange: setFilter,
29
29
  inputPlaceholder: t`Search workflows...`
30
30
  }),
31
- modalOverlayAction: /*#__PURE__*/React.createElement(DataListModalOverlayAction, {
31
+ modalOverlayAction: /*#__PURE__*/React.createElement(DataListModal.Trigger, {
32
32
  "data-testid": "default-data-list.filter"
33
33
  })
34
34
  }, ({
35
35
  data
36
- }) => /*#__PURE__*/React.createElement(ScrollList, {
36
+ }) => /*#__PURE__*/React.createElement(List, {
37
37
  "data-testid": "default-data-list"
38
- }, data.map(item => /*#__PURE__*/React.createElement(ListItem, {
38
+ }, data.map(item => /*#__PURE__*/React.createElement(List.Item, {
39
39
  key: item.id,
40
- selected: item.id === activeId
41
- }, /*#__PURE__*/React.createElement(ListItemText, {
40
+ selected: item.id === activeId,
41
+ title: item.name,
42
42
  onClick: () => onSelectApp(item.id)
43
- }, /*#__PURE__*/React.createElement(ListItemTextPrimary, null, item.name))))));
43
+ }))));
44
44
  };
45
45
 
46
46
  //# sourceMappingURL=WorkflowsDataList.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useState","i18n","DataList","DataListModalOverlayAction","ListItem","ListItemText","ListItemTextPrimary","ScrollList","SearchUI","t","ns","WorkflowsDataList","apps","activeId","onSelectApp","filter","setFilter","filterWorkflow","name","toLowerCase","includes","items","createElement","title","data","search","value","onChange","inputPlaceholder","modalOverlayAction","map","item","key","id","selected","onClick"],"sources":["WorkflowsDataList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport {\n DataList,\n DataListModalOverlayAction,\n ListItem,\n ListItemText,\n ListItemTextPrimary,\n ScrollList\n} from \"@webiny/ui/List/index.js\";\nimport type { IWorkflowApplication } from \"~/types.js\";\nimport { SearchUI } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-workflows/workflows-editor/data-list\");\n\nexport interface WorkflowsDataListProps {\n activeId: string | undefined;\n apps: IWorkflowApplication[];\n onSelectApp: (id: IWorkflowApplication[\"id\"]) => void;\n}\n\nexport const WorkflowsDataList = ({ apps, activeId, onSelectApp }: WorkflowsDataListProps) => {\n const [filter, setFilter] = useState(\"\");\n\n const filterWorkflow = useCallback(\n ({ name }: IWorkflowApplication) => {\n return name.toLowerCase().includes(filter);\n },\n [filter]\n );\n\n const items = useMemo(() => {\n if (!filter) {\n return apps;\n }\n return apps.filter(filterWorkflow);\n }, [filter, apps]);\n\n return (\n <DataList\n title={t`Workflows`}\n data={items}\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search workflows...`}\n />\n }\n modalOverlayAction={\n <DataListModalOverlayAction data-testid={\"default-data-list.filter\"} />\n }\n >\n {({ data }: { data: IWorkflowApplication[] }) => (\n <ScrollList data-testid=\"default-data-list\">\n {data.map(item => (\n <ListItem key={item.id} selected={item.id === activeId}>\n <ListItemText onClick={() => onSelectApp(item.id)}>\n <ListItemTextPrimary>{item.name}</ListItemTextPrimary>\n </ListItemText>\n </ListItem>\n ))}\n </ScrollList>\n )}\n </DataList>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC7D,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SACIC,QAAQ,EACRC,0BAA0B,EAC1BC,QAAQ,EACRC,YAAY,EACZC,mBAAmB,EACnBC,UAAU,QACP,0BAA0B;AAEjC,SAASC,QAAQ,QAAQ,mBAAmB;AAE5C,MAAMC,CAAC,GAAGR,IAAI,CAACS,EAAE,CAAC,0CAA0C,CAAC;AAQ7D,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;AAAoC,CAAC,KAAK;EAC1F,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGhB,QAAQ,CAAC,EAAE,CAAC;EAExC,MAAMiB,cAAc,GAAGnB,WAAW,CAC9B,CAAC;IAAEoB;EAA2B,CAAC,KAAK;IAChC,OAAOA,IAAI,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACL,MAAM,CAAC;EAC9C,CAAC,EACD,CAACA,MAAM,CACX,CAAC;EAED,MAAMM,KAAK,GAAGtB,OAAO,CAAC,MAAM;IACxB,IAAI,CAACgB,MAAM,EAAE;MACT,OAAOH,IAAI;IACf;IACA,OAAOA,IAAI,CAACG,MAAM,CAACE,cAAc,CAAC;EACtC,CAAC,EAAE,CAACF,MAAM,EAAEH,IAAI,CAAC,CAAC;EAElB,oBACIf,KAAA,CAAAyB,aAAA,CAACpB,QAAQ;IACLqB,KAAK,EAAEd,CAAC,WAAY;IACpBe,IAAI,EAAEH,KAAM;IACZI,MAAM,eACF5B,KAAA,CAAAyB,aAAA,CAACd,QAAQ;MACLkB,KAAK,EAAEX,MAAO;MACdY,QAAQ,EAAEX,SAAU;MACpBY,gBAAgB,EAAEnB,CAAC;IAAsB,CAC5C,CACJ;IACDoB,kBAAkB,eACdhC,KAAA,CAAAyB,aAAA,CAACnB,0BAA0B;MAAC,eAAa;IAA2B,CAAE;EACzE,GAEA,CAAC;IAAEqB;EAAuC,CAAC,kBACxC3B,KAAA,CAAAyB,aAAA,CAACf,UAAU;IAAC,eAAY;EAAmB,GACtCiB,IAAI,CAACM,GAAG,CAACC,IAAI,iBACVlC,KAAA,CAAAyB,aAAA,CAAClB,QAAQ;IAAC4B,GAAG,EAAED,IAAI,CAACE,EAAG;IAACC,QAAQ,EAAEH,IAAI,CAACE,EAAE,KAAKpB;EAAS,gBACnDhB,KAAA,CAAAyB,aAAA,CAACjB,YAAY;IAAC8B,OAAO,EAAEA,CAAA,KAAMrB,WAAW,CAACiB,IAAI,CAACE,EAAE;EAAE,gBAC9CpC,KAAA,CAAAyB,aAAA,CAAChB,mBAAmB,QAAEyB,IAAI,CAACb,IAA0B,CAC3C,CACR,CACb,CACO,CAEV,CAAC;AAEnB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useMemo","useState","i18n","DataList","DataListModal","List","SearchUI","t","ns","WorkflowsDataList","apps","activeId","onSelectApp","filter","setFilter","filterWorkflow","name","toLowerCase","includes","items","createElement","title","data","search","value","onChange","inputPlaceholder","modalOverlayAction","Trigger","map","item","Item","key","id","selected","onClick"],"sources":["WorkflowsDataList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { DataList, DataListModal, List } from \"@webiny/admin-ui\";\nimport type { IWorkflowApplication } from \"~/types.js\";\nimport { SearchUI } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-workflows/workflows-editor/data-list\");\n\nexport interface WorkflowsDataListProps {\n activeId: string | undefined;\n apps: IWorkflowApplication[];\n onSelectApp: (id: IWorkflowApplication[\"id\"]) => void;\n}\n\nexport const WorkflowsDataList = ({ apps, activeId, onSelectApp }: WorkflowsDataListProps) => {\n const [filter, setFilter] = useState(\"\");\n\n const filterWorkflow = useCallback(\n ({ name }: IWorkflowApplication) => {\n return name.toLowerCase().includes(filter);\n },\n [filter]\n );\n\n const items = useMemo(() => {\n if (!filter) {\n return apps;\n }\n return apps.filter(filterWorkflow);\n }, [filter, apps]);\n\n return (\n <DataList\n title={t`Workflows`}\n data={items}\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search workflows...`}\n />\n }\n modalOverlayAction={<DataListModal.Trigger data-testid={\"default-data-list.filter\"} />}\n >\n {({ data }: { data: IWorkflowApplication[] }) => (\n <List data-testid=\"default-data-list\">\n {data.map(item => (\n <List.Item\n key={item.id}\n selected={item.id === activeId}\n title={item.name}\n onClick={() => onSelectApp(item.id)}\n />\n ))}\n </List>\n )}\n </DataList>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC7D,SAASC,IAAI,QAAQ,2BAA2B;AAChD,SAASC,QAAQ,EAAEC,aAAa,EAAEC,IAAI,QAAQ,kBAAkB;AAEhE,SAASC,QAAQ,QAAQ,mBAAmB;AAE5C,MAAMC,CAAC,GAAGL,IAAI,CAACM,EAAE,CAAC,0CAA0C,CAAC;AAQ7D,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;AAAoC,CAAC,KAAK;EAC1F,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGb,QAAQ,CAAC,EAAE,CAAC;EAExC,MAAMc,cAAc,GAAGhB,WAAW,CAC9B,CAAC;IAAEiB;EAA2B,CAAC,KAAK;IAChC,OAAOA,IAAI,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACL,MAAM,CAAC;EAC9C,CAAC,EACD,CAACA,MAAM,CACX,CAAC;EAED,MAAMM,KAAK,GAAGnB,OAAO,CAAC,MAAM;IACxB,IAAI,CAACa,MAAM,EAAE;MACT,OAAOH,IAAI;IACf;IACA,OAAOA,IAAI,CAACG,MAAM,CAACE,cAAc,CAAC;EACtC,CAAC,EAAE,CAACF,MAAM,EAAEH,IAAI,CAAC,CAAC;EAElB,oBACIZ,KAAA,CAAAsB,aAAA,CAACjB,QAAQ;IACLkB,KAAK,EAAEd,CAAC,WAAY;IACpBe,IAAI,EAAEH,KAAM;IACZI,MAAM,eACFzB,KAAA,CAAAsB,aAAA,CAACd,QAAQ;MACLkB,KAAK,EAAEX,MAAO;MACdY,QAAQ,EAAEX,SAAU;MACpBY,gBAAgB,EAAEnB,CAAC;IAAsB,CAC5C,CACJ;IACDoB,kBAAkB,eAAE7B,KAAA,CAAAsB,aAAA,CAAChB,aAAa,CAACwB,OAAO;MAAC,eAAa;IAA2B,CAAE;EAAE,GAEtF,CAAC;IAAEN;EAAuC,CAAC,kBACxCxB,KAAA,CAAAsB,aAAA,CAACf,IAAI;IAAC,eAAY;EAAmB,GAChCiB,IAAI,CAACO,GAAG,CAACC,IAAI,iBACVhC,KAAA,CAAAsB,aAAA,CAACf,IAAI,CAAC0B,IAAI;IACNC,GAAG,EAAEF,IAAI,CAACG,EAAG;IACbC,QAAQ,EAAEJ,IAAI,CAACG,EAAE,KAAKtB,QAAS;IAC/BU,KAAK,EAAES,IAAI,CAACd,IAAK;IACjBmB,OAAO,EAAEA,CAAA,KAAMvB,WAAW,CAACkB,IAAI,CAACG,EAAE;EAAE,CACvC,CACJ,CACC,CAEJ,CAAC;AAEnB,CAAC","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import { AdminConfig } from "@webiny/app-admin";
3
3
  import { ReactComponent as PermissionsIcon } from "@webiny/icons/flowchart.svg";
4
+ import { WORKFLOWS_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
4
5
  const {
5
6
  Security
6
7
  } = AdminConfig;
@@ -10,12 +11,7 @@ export const SecurityPermissions = () => {
10
11
  title: "Workflows",
11
12
  description: "Manage Workflows permissions.",
12
13
  icon: /*#__PURE__*/React.createElement(PermissionsIcon, null),
13
- schema: {
14
- prefix: "workflows",
15
- fullAccess: {
16
- editor: true
17
- }
18
- }
14
+ schema: WORKFLOWS_PERMISSIONS_SCHEMA
19
15
  }));
20
16
  };
21
17
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","AdminConfig","ReactComponent","PermissionsIcon","Security","SecurityPermissions","createElement","Permissions","name","title","description","icon","schema","prefix","fullAccess","editor"],"sources":["SecurityPermissions.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/flowchart.svg\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"workflows\"\n title=\"Workflows\"\n description=\"Manage Workflows permissions.\"\n icon={<PermissionsIcon />}\n schema={{\n prefix: \"workflows\",\n fullAccess: { editor: true }\n }}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,eAAe,QAAQ,6BAA6B;AAE/E,MAAM;EAAEC;AAAS,CAAC,GAAGH,WAAW;AAEhC,OAAO,MAAMI,mBAAmB,GAAGA,CAAA,KAAM;EACrC,oBACIL,KAAA,CAAAM,aAAA,CAACL,WAAW,qBACRD,KAAA,CAAAM,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,WAAW;IAChBC,KAAK,EAAC,WAAW;IACjBC,WAAW,EAAC,+BAA+B;IAC3CC,IAAI,eAAEX,KAAA,CAAAM,aAAA,CAACH,eAAe,MAAE,CAAE;IAC1BS,MAAM,EAAE;MACJC,MAAM,EAAE,WAAW;MACnBC,UAAU,EAAE;QAAEC,MAAM,EAAE;MAAK;IAC/B;EAAE,CACL,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","AdminConfig","ReactComponent","PermissionsIcon","WORKFLOWS_PERMISSIONS_SCHEMA","Security","SecurityPermissions","createElement","Permissions","name","title","description","icon","schema"],"sources":["SecurityPermissions.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/flowchart.svg\";\nimport { WORKFLOWS_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermissions = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"workflows\"\n title=\"Workflows\"\n description=\"Manage Workflows permissions.\"\n icon={<PermissionsIcon />}\n schema={WORKFLOWS_PERMISSIONS_SCHEMA}\n />\n </AdminConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,eAAe,QAAQ,6BAA6B;AAC/E,SAASC,4BAA4B;AAErC,MAAM;EAAEC;AAAS,CAAC,GAAGJ,WAAW;AAEhC,OAAO,MAAMK,mBAAmB,GAAGA,CAAA,KAAM;EACrC,oBACIN,KAAA,CAAAO,aAAA,CAACN,WAAW,qBACRD,KAAA,CAAAO,aAAA,CAACF,QAAQ,CAACG,WAAW;IACjBC,IAAI,EAAC,WAAW;IAChBC,KAAK,EAAC,WAAW;IACjBC,WAAW,EAAC,+BAA+B;IAC3CC,IAAI,eAAEZ,KAAA,CAAAO,aAAA,CAACJ,eAAe,MAAE,CAAE;IAC1BU,MAAM,EAAET;EAA6B,CACxC,CACQ,CAAC;AAEtB,CAAC","ignoreList":[]}
@@ -9,6 +9,7 @@ export interface IWorkflowStatePresenterParams {
9
9
  targetRevisionId: string;
10
10
  title: string;
11
11
  identity: IIdentity | null;
12
+ disabled: boolean;
12
13
  }
13
14
  export declare class WorkflowStatePresenter implements IWorkflowStatePresenter {
14
15
  private readonly repository;
@@ -18,6 +19,7 @@ export declare class WorkflowStatePresenter implements IWorkflowStatePresenter {
18
19
  private readonly targetRevisionId;
19
20
  private readonly title;
20
21
  private readonly identity;
22
+ private readonly disabled;
21
23
  private state;
22
24
  private dialog;
23
25
  step: IWorkflowStateStepModel | null;
@@ -51,10 +51,14 @@ export class WorkflowStatePresenter {
51
51
  this.title = params.title;
52
52
  this.identity = params.identity;
53
53
  this.targetRevisionId = params.targetRevisionId;
54
+ this.disabled = params.disabled;
54
55
  makeAutoObservable(this);
55
56
  this.init();
56
57
  }
57
58
  async init() {
59
+ if (this.disabled) {
60
+ return;
61
+ }
58
62
  const workflows = await this.workflowsRepository.listWorkflows({
59
63
  where: {
60
64
  app: this.app
@@ -1 +1 @@
1
- {"version":3,"names":["makeAutoObservable","runInAction","toJS","WorkflowStateModel","WorkflowStateValue","WorkflowStatePresenter","workflow","state","undefined","dialog","step","isOwner","identity","createdBy","id","canCancel","previousStep","approved","rejected","vm","currentStep","lastApprovedStep","lastApproved","lastRejectedStep","lastRejected","nextStep","loading","repository","workflowsRepository","error","app","targetRevisionId","constructor","params","title","init","workflows","listWorkflows","where","length","getTargetState","create","clearDialog","setDialog","requestReview","item","start","type","approve","comment","reject","cancel","takeOver","showCancelReviewDialog","showRequestReviewDialog","showStartDialog","showApproveDialog","hideDialog","showRejectDialog","showCommentDialog","steps","find","showTakeOverDialog"],"sources":["WorkflowStatePresenter.ts"],"sourcesContent":["import type {\n IWorkflowStatePresenter,\n IWorkflowStatePresenterViewModel,\n IWorkflowStatePresenterViewModelDialog\n} from \"./abstractions/WorkflowStatePresenter.js\";\nimport type { IWorkflowsRepository, IWorkflowStateRepository } from \"../Repositories/index.js\";\nimport { makeAutoObservable, runInAction, toJS } from \"mobx\";\nimport {\n type IWorkflowStateModel,\n type IWorkflowStateStepModel,\n WorkflowStateModel\n} from \"~/Models/index.js\";\nimport { type IIdentity, type IWorkflow, WorkflowStateValue } from \"~/types.js\";\n\nexport interface IWorkflowStatePresenterParams {\n repository: IWorkflowStateRepository;\n workflowsRepository: IWorkflowsRepository;\n app: string;\n targetRevisionId: string;\n title: string;\n identity: IIdentity | null;\n}\n\nexport class WorkflowStatePresenter implements IWorkflowStatePresenter {\n private readonly repository;\n private readonly workflowsRepository;\n private workflow: IWorkflow | null = null;\n private readonly app;\n private readonly targetRevisionId;\n private readonly title;\n private readonly identity;\n private state: IWorkflowStateModel | null | undefined = undefined;\n private dialog: IWorkflowStatePresenterViewModelDialog | null = null;\n step: IWorkflowStateStepModel | null = null;\n\n private get isOwner(): boolean {\n if (!this.identity) {\n return false;\n }\n return this.state?.createdBy?.id === this.identity.id;\n }\n /**\n * Determines whether the current user can cancel the review request.\n * User must be the owner of the requested review.\n * Previous step must not exist (only the initial request can be cancelled).\n * Current step must be in pending state.\n */\n private get canCancel(): boolean {\n if (!this.isOwner) {\n return false;\n } else if (this.state?.previousStep) {\n return false;\n } else if (\n this.state?.state === WorkflowStateValue.approved ||\n this.state?.state === WorkflowStateValue.rejected\n ) {\n return false;\n }\n return true;\n }\n\n get vm(): IWorkflowStatePresenterViewModel {\n return {\n workflow: toJS(this.workflow),\n state: this.state?.toJS(),\n step: this.state?.currentStep?.toJS(),\n lastApprovedStep: toJS(this.state?.lastApproved || null),\n lastRejectedStep: toJS(this.state?.lastRejected || null),\n nextStep: toJS(this.state ? this.state.nextStep : null),\n loading: this.repository.loading || this.workflowsRepository.loading,\n error: toJS(this.repository.error || this.workflowsRepository.error),\n app: this.app,\n id: this.targetRevisionId,\n canCancel: this.canCancel,\n dialog: this.dialog\n };\n }\n\n public constructor(params: IWorkflowStatePresenterParams) {\n this.repository = params.repository;\n this.workflowsRepository = params.workflowsRepository;\n this.app = params.app;\n this.title = params.title;\n this.identity = params.identity;\n this.targetRevisionId = params.targetRevisionId;\n\n makeAutoObservable(this);\n\n this.init();\n }\n\n private async init(): Promise<void> {\n const workflows = await this.workflowsRepository.listWorkflows({\n where: {\n app: this.app\n }\n });\n\n runInAction(() => {\n if (workflows.length === 0) {\n this.workflow = null;\n this.state = null;\n return;\n }\n this.workflow = workflows[0];\n });\n if (!this.workflow) {\n return;\n } else if (!this.targetRevisionId) {\n return;\n }\n\n const state = await this.repository.getTargetState(this.app, this.targetRevisionId);\n runInAction(() => {\n this.state = state ? WorkflowStateModel.create(state) : null;\n });\n }\n\n private clearDialog() {\n this.dialog = null;\n }\n\n private setDialog(dialog: IWorkflowStatePresenterViewModelDialog) {\n this.dialog = dialog;\n }\n\n requestReview = async () => {\n const item = await this.repository.requestReview({\n app: this.app,\n targetRevisionId: this.targetRevisionId,\n title: this.title\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n this.clearDialog();\n });\n };\n\n start = async () => {\n const item = await this.repository.start({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"start:success\"\n });\n });\n };\n\n approve = async (comment?: string) => {\n const item = await this.repository.approve({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"approve:success\"\n });\n });\n };\n\n reject = async (comment: string) => {\n const item = await this.repository.reject({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"reject:success\"\n });\n });\n };\n\n cancel = async () => {\n await this.repository.cancel(this.state!.id);\n runInAction(() => {\n this.state = null;\n this.clearDialog();\n });\n };\n\n takeOver = async () => {\n const item = await this.repository.takeOver({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"takeOver:success\",\n step: null\n });\n });\n };\n\n showCancelReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"cancelReview\"\n });\n });\n };\n\n showRequestReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"requestReview\"\n });\n });\n };\n\n showStartDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"start\"\n });\n });\n };\n\n showApproveDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"approve\"\n });\n });\n };\n\n hideDialog = () => {\n runInAction(() => {\n this.clearDialog();\n });\n };\n\n showRejectDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"reject\"\n });\n });\n };\n\n showCommentDialog = (id: string) => {\n const step = this.state?.steps.find(step => step.id === id);\n if (!step) {\n return;\n }\n runInAction(() => {\n this.setDialog({\n type: \"comment\",\n step\n });\n });\n };\n\n showTakeOverDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"takeOver\"\n });\n });\n };\n}\n"],"mappings":"AAMA,SAASA,kBAAkB,EAAEC,WAAW,EAAEC,IAAI,QAAQ,MAAM;AAC5D,SAGIC,kBAAkB;AAEtB,SAAyCC,kBAAkB;AAW3D,OAAO,MAAMC,sBAAsB,CAAoC;EAG3DC,QAAQ,GAAqB,IAAI;EAKjCC,KAAK,GAA2CC,SAAS;EACzDC,MAAM,GAAkD,IAAI;EACpEC,IAAI,GAAmC,IAAI;EAE3C,IAAYC,OAAOA,CAAA,EAAY;IAC3B,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;MAChB,OAAO,KAAK;IAChB;IACA,OAAO,IAAI,CAACL,KAAK,EAAEM,SAAS,EAAEC,EAAE,KAAK,IAAI,CAACF,QAAQ,CAACE,EAAE;EACzD;EACA;AACJ;AACA;AACA;AACA;AACA;EACI,IAAYC,SAASA,CAAA,EAAY;IAC7B,IAAI,CAAC,IAAI,CAACJ,OAAO,EAAE;MACf,OAAO,KAAK;IAChB,CAAC,MAAM,IAAI,IAAI,CAACJ,KAAK,EAAES,YAAY,EAAE;MACjC,OAAO,KAAK;IAChB,CAAC,MAAM,IACH,IAAI,CAACT,KAAK,EAAEA,KAAK,KAAKH,kBAAkB,CAACa,QAAQ,IACjD,IAAI,CAACV,KAAK,EAAEA,KAAK,KAAKH,kBAAkB,CAACc,QAAQ,EACnD;MACE,OAAO,KAAK;IAChB;IACA,OAAO,IAAI;EACf;EAEA,IAAIC,EAAEA,CAAA,EAAqC;IACvC,OAAO;MACHb,QAAQ,EAAEJ,IAAI,CAAC,IAAI,CAACI,QAAQ,CAAC;MAC7BC,KAAK,EAAE,IAAI,CAACA,KAAK,EAAEL,IAAI,CAAC,CAAC;MACzBQ,IAAI,EAAE,IAAI,CAACH,KAAK,EAAEa,WAAW,EAAElB,IAAI,CAAC,CAAC;MACrCmB,gBAAgB,EAAEnB,IAAI,CAAC,IAAI,CAACK,KAAK,EAAEe,YAAY,IAAI,IAAI,CAAC;MACxDC,gBAAgB,EAAErB,IAAI,CAAC,IAAI,CAACK,KAAK,EAAEiB,YAAY,IAAI,IAAI,CAAC;MACxDC,QAAQ,EAAEvB,IAAI,CAAC,IAAI,CAACK,KAAK,GAAG,IAAI,CAACA,KAAK,CAACkB,QAAQ,GAAG,IAAI,CAAC;MACvDC,OAAO,EAAE,IAAI,CAACC,UAAU,CAACD,OAAO,IAAI,IAAI,CAACE,mBAAmB,CAACF,OAAO;MACpEG,KAAK,EAAE3B,IAAI,CAAC,IAAI,CAACyB,UAAU,CAACE,KAAK,IAAI,IAAI,CAACD,mBAAmB,CAACC,KAAK,CAAC;MACpEC,GAAG,EAAE,IAAI,CAACA,GAAG;MACbhB,EAAE,EAAE,IAAI,CAACiB,gBAAgB;MACzBhB,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBN,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC;EACL;EAEOuB,WAAWA,CAACC,MAAqC,EAAE;IACtD,IAAI,CAACN,UAAU,GAAGM,MAAM,CAACN,UAAU;IACnC,IAAI,CAACC,mBAAmB,GAAGK,MAAM,CAACL,mBAAmB;IACrD,IAAI,CAACE,GAAG,GAAGG,MAAM,CAACH,GAAG;IACrB,IAAI,CAACI,KAAK,GAAGD,MAAM,CAACC,KAAK;IACzB,IAAI,CAACtB,QAAQ,GAAGqB,MAAM,CAACrB,QAAQ;IAC/B,IAAI,CAACmB,gBAAgB,GAAGE,MAAM,CAACF,gBAAgB;IAE/C/B,kBAAkB,CAAC,IAAI,CAAC;IAExB,IAAI,CAACmC,IAAI,CAAC,CAAC;EACf;EAEA,MAAcA,IAAIA,CAAA,EAAkB;IAChC,MAAMC,SAAS,GAAG,MAAM,IAAI,CAACR,mBAAmB,CAACS,aAAa,CAAC;MAC3DC,KAAK,EAAE;QACHR,GAAG,EAAE,IAAI,CAACA;MACd;IACJ,CAAC,CAAC;IAEF7B,WAAW,CAAC,MAAM;MACd,IAAImC,SAAS,CAACG,MAAM,KAAK,CAAC,EAAE;QACxB,IAAI,CAACjC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAACC,KAAK,GAAG,IAAI;QACjB;MACJ;MACA,IAAI,CAACD,QAAQ,GAAG8B,SAAS,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC9B,QAAQ,EAAE;MAChB;IACJ,CAAC,MAAM,IAAI,CAAC,IAAI,CAACyB,gBAAgB,EAAE;MAC/B;IACJ;IAEA,MAAMxB,KAAK,GAAG,MAAM,IAAI,CAACoB,UAAU,CAACa,cAAc,CAAC,IAAI,CAACV,GAAG,EAAE,IAAI,CAACC,gBAAgB,CAAC;IACnF9B,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGA,KAAK,GAAGJ,kBAAkB,CAACsC,MAAM,CAAClC,KAAK,CAAC,GAAG,IAAI;IAChE,CAAC,CAAC;EACN;EAEQmC,WAAWA,CAAA,EAAG;IAClB,IAAI,CAACjC,MAAM,GAAG,IAAI;EACtB;EAEQkC,SAASA,CAAClC,MAA8C,EAAE;IAC9D,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAmC,aAAa,GAAG,MAAAA,CAAA,KAAY;IACxB,MAAMC,IAAI,GAAG,MAAM,IAAI,CAAClB,UAAU,CAACiB,aAAa,CAAC;MAC7Cd,GAAG,EAAE,IAAI,CAACA,GAAG;MACbC,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;MACvCG,KAAK,EAAE,IAAI,CAACA;IAChB,CAAC,CAAC;IACFjC,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGsC,IAAI,GAAG1C,kBAAkB,CAACsC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACH,WAAW,CAAC,CAAC;IACtB,CAAC,CAAC;EACN,CAAC;EAEDI,KAAK,GAAG,MAAAA,CAAA,KAAY;IAChB,MAAMD,IAAI,GAAG,MAAM,IAAI,CAAClB,UAAU,CAACmB,KAAK,CAAC;MACrChC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO;IACpB,CAAC,CAAC;IACFb,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGsC,IAAI,GAAG1C,kBAAkB,CAACsC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDC,OAAO,GAAG,MAAOC,OAAgB,IAAK;IAClC,MAAMJ,IAAI,GAAG,MAAM,IAAI,CAAClB,UAAU,CAACqB,OAAO,CAAC;MACvClC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO,EAAE;MAClBmC;IACJ,CAAC,CAAC;IACFhD,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGsC,IAAI,GAAG1C,kBAAkB,CAACsC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDG,MAAM,GAAG,MAAOD,OAAe,IAAK;IAChC,MAAMJ,IAAI,GAAG,MAAM,IAAI,CAAClB,UAAU,CAACuB,MAAM,CAAC;MACtCpC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO,EAAE;MAClBmC;IACJ,CAAC,CAAC;IACFhD,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGsC,IAAI,GAAG1C,kBAAkB,CAACsC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDI,MAAM,GAAG,MAAAA,CAAA,KAAY;IACjB,MAAM,IAAI,CAACxB,UAAU,CAACwB,MAAM,CAAC,IAAI,CAAC5C,KAAK,CAAEO,EAAE,CAAC;IAC5Cb,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAG,IAAI;MACjB,IAAI,CAACmC,WAAW,CAAC,CAAC;IACtB,CAAC,CAAC;EACN,CAAC;EAEDU,QAAQ,GAAG,MAAAA,CAAA,KAAY;IACnB,MAAMP,IAAI,GAAG,MAAM,IAAI,CAAClB,UAAU,CAACyB,QAAQ,CAAC;MACxCtC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO;IACpB,CAAC,CAAC;IACFb,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGsC,IAAI,GAAG1C,kBAAkB,CAACsC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE,kBAAkB;QACxBrC,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAED2C,sBAAsB,GAAGA,CAAA,KAAM;IAC3BpD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDO,uBAAuB,GAAGA,CAAA,KAAM;IAC5BrD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDQ,eAAe,GAAGA,CAAA,KAAM;IACpBtD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDS,iBAAiB,GAAGA,CAAA,KAAM;IACtBvD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDU,UAAU,GAAGA,CAAA,KAAM;IACfxD,WAAW,CAAC,MAAM;MACd,IAAI,CAACyC,WAAW,CAAC,CAAC;IACtB,CAAC,CAAC;EACN,CAAC;EAEDgB,gBAAgB,GAAGA,CAAA,KAAM;IACrBzD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDY,iBAAiB,GAAI7C,EAAU,IAAK;IAChC,MAAMJ,IAAI,GAAG,IAAI,CAACH,KAAK,EAAEqD,KAAK,CAACC,IAAI,CAACnD,IAAI,IAAIA,IAAI,CAACI,EAAE,KAAKA,EAAE,CAAC;IAC3D,IAAI,CAACJ,IAAI,EAAE;MACP;IACJ;IACAT,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,SAAS,CAAC;QACXI,IAAI,EAAE,SAAS;QACfrC;MACJ,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDoD,kBAAkB,GAAGA,CAAA,KAAM;IACvB7D,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["makeAutoObservable","runInAction","toJS","WorkflowStateModel","WorkflowStateValue","WorkflowStatePresenter","workflow","state","undefined","dialog","step","isOwner","identity","createdBy","id","canCancel","previousStep","approved","rejected","vm","currentStep","lastApprovedStep","lastApproved","lastRejectedStep","lastRejected","nextStep","loading","repository","workflowsRepository","error","app","targetRevisionId","constructor","params","title","disabled","init","workflows","listWorkflows","where","length","getTargetState","create","clearDialog","setDialog","requestReview","item","start","type","approve","comment","reject","cancel","takeOver","showCancelReviewDialog","showRequestReviewDialog","showStartDialog","showApproveDialog","hideDialog","showRejectDialog","showCommentDialog","steps","find","showTakeOverDialog"],"sources":["WorkflowStatePresenter.ts"],"sourcesContent":["import type {\n IWorkflowStatePresenter,\n IWorkflowStatePresenterViewModel,\n IWorkflowStatePresenterViewModelDialog\n} from \"./abstractions/WorkflowStatePresenter.js\";\nimport type { IWorkflowsRepository, IWorkflowStateRepository } from \"../Repositories/index.js\";\nimport { makeAutoObservable, runInAction, toJS } from \"mobx\";\nimport {\n type IWorkflowStateModel,\n type IWorkflowStateStepModel,\n WorkflowStateModel\n} from \"~/Models/index.js\";\nimport { type IIdentity, type IWorkflow, WorkflowStateValue } from \"~/types.js\";\n\nexport interface IWorkflowStatePresenterParams {\n repository: IWorkflowStateRepository;\n workflowsRepository: IWorkflowsRepository;\n app: string;\n targetRevisionId: string;\n title: string;\n identity: IIdentity | null;\n disabled: boolean;\n}\n\nexport class WorkflowStatePresenter implements IWorkflowStatePresenter {\n private readonly repository;\n private readonly workflowsRepository;\n private workflow: IWorkflow | null = null;\n private readonly app;\n private readonly targetRevisionId;\n private readonly title;\n private readonly identity;\n private readonly disabled;\n private state: IWorkflowStateModel | null | undefined = undefined;\n private dialog: IWorkflowStatePresenterViewModelDialog | null = null;\n step: IWorkflowStateStepModel | null = null;\n\n private get isOwner(): boolean {\n if (!this.identity) {\n return false;\n }\n return this.state?.createdBy?.id === this.identity.id;\n }\n /**\n * Determines whether the current user can cancel the review request.\n * User must be the owner of the requested review.\n * Previous step must not exist (only the initial request can be cancelled).\n * Current step must be in pending state.\n */\n private get canCancel(): boolean {\n if (!this.isOwner) {\n return false;\n } else if (this.state?.previousStep) {\n return false;\n } else if (\n this.state?.state === WorkflowStateValue.approved ||\n this.state?.state === WorkflowStateValue.rejected\n ) {\n return false;\n }\n return true;\n }\n\n get vm(): IWorkflowStatePresenterViewModel {\n return {\n workflow: toJS(this.workflow),\n state: this.state?.toJS(),\n step: this.state?.currentStep?.toJS(),\n lastApprovedStep: toJS(this.state?.lastApproved || null),\n lastRejectedStep: toJS(this.state?.lastRejected || null),\n nextStep: toJS(this.state ? this.state.nextStep : null),\n loading: this.repository.loading || this.workflowsRepository.loading,\n error: toJS(this.repository.error || this.workflowsRepository.error),\n app: this.app,\n id: this.targetRevisionId,\n canCancel: this.canCancel,\n dialog: this.dialog\n };\n }\n\n public constructor(params: IWorkflowStatePresenterParams) {\n this.repository = params.repository;\n this.workflowsRepository = params.workflowsRepository;\n this.app = params.app;\n this.title = params.title;\n this.identity = params.identity;\n this.targetRevisionId = params.targetRevisionId;\n this.disabled = params.disabled;\n\n makeAutoObservable(this);\n\n this.init();\n }\n\n private async init(): Promise<void> {\n if (this.disabled) {\n return;\n }\n const workflows = await this.workflowsRepository.listWorkflows({\n where: {\n app: this.app\n }\n });\n\n runInAction(() => {\n if (workflows.length === 0) {\n this.workflow = null;\n this.state = null;\n return;\n }\n this.workflow = workflows[0];\n });\n if (!this.workflow) {\n return;\n } else if (!this.targetRevisionId) {\n return;\n }\n\n const state = await this.repository.getTargetState(this.app, this.targetRevisionId);\n runInAction(() => {\n this.state = state ? WorkflowStateModel.create(state) : null;\n });\n }\n\n private clearDialog() {\n this.dialog = null;\n }\n\n private setDialog(dialog: IWorkflowStatePresenterViewModelDialog) {\n this.dialog = dialog;\n }\n\n requestReview = async () => {\n const item = await this.repository.requestReview({\n app: this.app,\n targetRevisionId: this.targetRevisionId,\n title: this.title\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n this.clearDialog();\n });\n };\n\n start = async () => {\n const item = await this.repository.start({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"start:success\"\n });\n });\n };\n\n approve = async (comment?: string) => {\n const item = await this.repository.approve({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"approve:success\"\n });\n });\n };\n\n reject = async (comment: string) => {\n const item = await this.repository.reject({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"reject:success\"\n });\n });\n };\n\n cancel = async () => {\n await this.repository.cancel(this.state!.id);\n runInAction(() => {\n this.state = null;\n this.clearDialog();\n });\n };\n\n takeOver = async () => {\n const item = await this.repository.takeOver({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"takeOver:success\",\n step: null\n });\n });\n };\n\n showCancelReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"cancelReview\"\n });\n });\n };\n\n showRequestReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"requestReview\"\n });\n });\n };\n\n showStartDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"start\"\n });\n });\n };\n\n showApproveDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"approve\"\n });\n });\n };\n\n hideDialog = () => {\n runInAction(() => {\n this.clearDialog();\n });\n };\n\n showRejectDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"reject\"\n });\n });\n };\n\n showCommentDialog = (id: string) => {\n const step = this.state?.steps.find(step => step.id === id);\n if (!step) {\n return;\n }\n runInAction(() => {\n this.setDialog({\n type: \"comment\",\n step\n });\n });\n };\n\n showTakeOverDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"takeOver\"\n });\n });\n };\n}\n"],"mappings":"AAMA,SAASA,kBAAkB,EAAEC,WAAW,EAAEC,IAAI,QAAQ,MAAM;AAC5D,SAGIC,kBAAkB;AAEtB,SAAyCC,kBAAkB;AAY3D,OAAO,MAAMC,sBAAsB,CAAoC;EAG3DC,QAAQ,GAAqB,IAAI;EAMjCC,KAAK,GAA2CC,SAAS;EACzDC,MAAM,GAAkD,IAAI;EACpEC,IAAI,GAAmC,IAAI;EAE3C,IAAYC,OAAOA,CAAA,EAAY;IAC3B,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;MAChB,OAAO,KAAK;IAChB;IACA,OAAO,IAAI,CAACL,KAAK,EAAEM,SAAS,EAAEC,EAAE,KAAK,IAAI,CAACF,QAAQ,CAACE,EAAE;EACzD;EACA;AACJ;AACA;AACA;AACA;AACA;EACI,IAAYC,SAASA,CAAA,EAAY;IAC7B,IAAI,CAAC,IAAI,CAACJ,OAAO,EAAE;MACf,OAAO,KAAK;IAChB,CAAC,MAAM,IAAI,IAAI,CAACJ,KAAK,EAAES,YAAY,EAAE;MACjC,OAAO,KAAK;IAChB,CAAC,MAAM,IACH,IAAI,CAACT,KAAK,EAAEA,KAAK,KAAKH,kBAAkB,CAACa,QAAQ,IACjD,IAAI,CAACV,KAAK,EAAEA,KAAK,KAAKH,kBAAkB,CAACc,QAAQ,EACnD;MACE,OAAO,KAAK;IAChB;IACA,OAAO,IAAI;EACf;EAEA,IAAIC,EAAEA,CAAA,EAAqC;IACvC,OAAO;MACHb,QAAQ,EAAEJ,IAAI,CAAC,IAAI,CAACI,QAAQ,CAAC;MAC7BC,KAAK,EAAE,IAAI,CAACA,KAAK,EAAEL,IAAI,CAAC,CAAC;MACzBQ,IAAI,EAAE,IAAI,CAACH,KAAK,EAAEa,WAAW,EAAElB,IAAI,CAAC,CAAC;MACrCmB,gBAAgB,EAAEnB,IAAI,CAAC,IAAI,CAACK,KAAK,EAAEe,YAAY,IAAI,IAAI,CAAC;MACxDC,gBAAgB,EAAErB,IAAI,CAAC,IAAI,CAACK,KAAK,EAAEiB,YAAY,IAAI,IAAI,CAAC;MACxDC,QAAQ,EAAEvB,IAAI,CAAC,IAAI,CAACK,KAAK,GAAG,IAAI,CAACA,KAAK,CAACkB,QAAQ,GAAG,IAAI,CAAC;MACvDC,OAAO,EAAE,IAAI,CAACC,UAAU,CAACD,OAAO,IAAI,IAAI,CAACE,mBAAmB,CAACF,OAAO;MACpEG,KAAK,EAAE3B,IAAI,CAAC,IAAI,CAACyB,UAAU,CAACE,KAAK,IAAI,IAAI,CAACD,mBAAmB,CAACC,KAAK,CAAC;MACpEC,GAAG,EAAE,IAAI,CAACA,GAAG;MACbhB,EAAE,EAAE,IAAI,CAACiB,gBAAgB;MACzBhB,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBN,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC;EACL;EAEOuB,WAAWA,CAACC,MAAqC,EAAE;IACtD,IAAI,CAACN,UAAU,GAAGM,MAAM,CAACN,UAAU;IACnC,IAAI,CAACC,mBAAmB,GAAGK,MAAM,CAACL,mBAAmB;IACrD,IAAI,CAACE,GAAG,GAAGG,MAAM,CAACH,GAAG;IACrB,IAAI,CAACI,KAAK,GAAGD,MAAM,CAACC,KAAK;IACzB,IAAI,CAACtB,QAAQ,GAAGqB,MAAM,CAACrB,QAAQ;IAC/B,IAAI,CAACmB,gBAAgB,GAAGE,MAAM,CAACF,gBAAgB;IAC/C,IAAI,CAACI,QAAQ,GAAGF,MAAM,CAACE,QAAQ;IAE/BnC,kBAAkB,CAAC,IAAI,CAAC;IAExB,IAAI,CAACoC,IAAI,CAAC,CAAC;EACf;EAEA,MAAcA,IAAIA,CAAA,EAAkB;IAChC,IAAI,IAAI,CAACD,QAAQ,EAAE;MACf;IACJ;IACA,MAAME,SAAS,GAAG,MAAM,IAAI,CAACT,mBAAmB,CAACU,aAAa,CAAC;MAC3DC,KAAK,EAAE;QACHT,GAAG,EAAE,IAAI,CAACA;MACd;IACJ,CAAC,CAAC;IAEF7B,WAAW,CAAC,MAAM;MACd,IAAIoC,SAAS,CAACG,MAAM,KAAK,CAAC,EAAE;QACxB,IAAI,CAAClC,QAAQ,GAAG,IAAI;QACpB,IAAI,CAACC,KAAK,GAAG,IAAI;QACjB;MACJ;MACA,IAAI,CAACD,QAAQ,GAAG+B,SAAS,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC/B,QAAQ,EAAE;MAChB;IACJ,CAAC,MAAM,IAAI,CAAC,IAAI,CAACyB,gBAAgB,EAAE;MAC/B;IACJ;IAEA,MAAMxB,KAAK,GAAG,MAAM,IAAI,CAACoB,UAAU,CAACc,cAAc,CAAC,IAAI,CAACX,GAAG,EAAE,IAAI,CAACC,gBAAgB,CAAC;IACnF9B,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGA,KAAK,GAAGJ,kBAAkB,CAACuC,MAAM,CAACnC,KAAK,CAAC,GAAG,IAAI;IAChE,CAAC,CAAC;EACN;EAEQoC,WAAWA,CAAA,EAAG;IAClB,IAAI,CAAClC,MAAM,GAAG,IAAI;EACtB;EAEQmC,SAASA,CAACnC,MAA8C,EAAE;IAC9D,IAAI,CAACA,MAAM,GAAGA,MAAM;EACxB;EAEAoC,aAAa,GAAG,MAAAA,CAAA,KAAY;IACxB,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACnB,UAAU,CAACkB,aAAa,CAAC;MAC7Cf,GAAG,EAAE,IAAI,CAACA,GAAG;MACbC,gBAAgB,EAAE,IAAI,CAACA,gBAAgB;MACvCG,KAAK,EAAE,IAAI,CAACA;IAChB,CAAC,CAAC;IACFjC,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGuC,IAAI,GAAG3C,kBAAkB,CAACuC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACH,WAAW,CAAC,CAAC;IACtB,CAAC,CAAC;EACN,CAAC;EAEDI,KAAK,GAAG,MAAAA,CAAA,KAAY;IAChB,MAAMD,IAAI,GAAG,MAAM,IAAI,CAACnB,UAAU,CAACoB,KAAK,CAAC;MACrCjC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO;IACpB,CAAC,CAAC;IACFb,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGuC,IAAI,GAAG3C,kBAAkB,CAACuC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDC,OAAO,GAAG,MAAOC,OAAgB,IAAK;IAClC,MAAMJ,IAAI,GAAG,MAAM,IAAI,CAACnB,UAAU,CAACsB,OAAO,CAAC;MACvCnC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO,EAAE;MAClBoC;IACJ,CAAC,CAAC;IACFjD,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGuC,IAAI,GAAG3C,kBAAkB,CAACuC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDG,MAAM,GAAG,MAAOD,OAAe,IAAK;IAChC,MAAMJ,IAAI,GAAG,MAAM,IAAI,CAACnB,UAAU,CAACwB,MAAM,CAAC;MACtCrC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO,EAAE;MAClBoC;IACJ,CAAC,CAAC;IACFjD,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGuC,IAAI,GAAG3C,kBAAkB,CAACuC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDI,MAAM,GAAG,MAAAA,CAAA,KAAY;IACjB,MAAM,IAAI,CAACzB,UAAU,CAACyB,MAAM,CAAC,IAAI,CAAC7C,KAAK,CAAEO,EAAE,CAAC;IAC5Cb,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAG,IAAI;MACjB,IAAI,CAACoC,WAAW,CAAC,CAAC;IACtB,CAAC,CAAC;EACN,CAAC;EAEDU,QAAQ,GAAG,MAAAA,CAAA,KAAY;IACnB,MAAMP,IAAI,GAAG,MAAM,IAAI,CAACnB,UAAU,CAAC0B,QAAQ,CAAC;MACxCvC,EAAE,EAAE,IAAI,CAACP,KAAK,CAAEO;IACpB,CAAC,CAAC;IACFb,WAAW,CAAC,MAAM;MACd,IAAI,CAACM,KAAK,GAAGuC,IAAI,GAAG3C,kBAAkB,CAACuC,MAAM,CAACI,IAAI,CAAC,GAAG,IAAI;MAC1D,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MACA,IAAI,CAACF,SAAS,CAAC;QACXI,IAAI,EAAE,kBAAkB;QACxBtC,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAED4C,sBAAsB,GAAGA,CAAA,KAAM;IAC3BrD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC2C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDO,uBAAuB,GAAGA,CAAA,KAAM;IAC5BtD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC2C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDQ,eAAe,GAAGA,CAAA,KAAM;IACpBvD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC2C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDS,iBAAiB,GAAGA,CAAA,KAAM;IACtBxD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC2C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDU,UAAU,GAAGA,CAAA,KAAM;IACfzD,WAAW,CAAC,MAAM;MACd,IAAI,CAAC0C,WAAW,CAAC,CAAC;IACtB,CAAC,CAAC;EACN,CAAC;EAEDgB,gBAAgB,GAAGA,CAAA,KAAM;IACrB1D,WAAW,CAAC,MAAM;MACd,IAAI,CAAC2C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDY,iBAAiB,GAAI9C,EAAU,IAAK;IAChC,MAAMJ,IAAI,GAAG,IAAI,CAACH,KAAK,EAAEsD,KAAK,CAACC,IAAI,CAACpD,IAAI,IAAIA,IAAI,CAACI,EAAE,KAAKA,EAAE,CAAC;IAC3D,IAAI,CAACJ,IAAI,EAAE;MACP;IACJ;IACAT,WAAW,CAAC,MAAM;MACd,IAAI,CAAC2C,SAAS,CAAC;QACXI,IAAI,EAAE,SAAS;QACftC;MACJ,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;EAEDqD,kBAAkB,GAAGA,CAAA,KAAM;IACvB9D,WAAW,CAAC,MAAM;MACd,IAAI,CAAC2C,SAAS,CAAC;QACXI,IAAI,EAAE;MACV,CAAC,CAAC;IACN,CAAC,CAAC;EACN,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export declare const WORKFLOWS_PERMISSIONS_SCHEMA: {
2
+ readonly prefix: "workflows";
3
+ readonly fullAccess: {
4
+ readonly editor: true;
5
+ };
6
+ };
@@ -0,0 +1,9 @@
1
+ import { createPermissionSchema } from "@webiny/app-admin";
2
+ export const WORKFLOWS_PERMISSIONS_SCHEMA = createPermissionSchema({
3
+ prefix: "workflows",
4
+ fullAccess: {
5
+ editor: true
6
+ }
7
+ });
8
+
9
+ //# sourceMappingURL=permissionsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPermissionSchema","WORKFLOWS_PERMISSIONS_SCHEMA","prefix","fullAccess","editor"],"sources":["permissionsSchema.ts"],"sourcesContent":["import { createPermissionSchema } from \"@webiny/app-admin\";\n\nexport const WORKFLOWS_PERMISSIONS_SCHEMA = createPermissionSchema({\n prefix: \"workflows\",\n fullAccess: { editor: true }\n});\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,mBAAmB;AAE1D,OAAO,MAAMC,4BAA4B,GAAGD,sBAAsB,CAAC;EAC/DE,MAAM,EAAE,WAAW;EACnBC,UAAU,EAAE;IAAEC,MAAM,EAAE;EAAK;AAC/B,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ import type { Permissions } from "@webiny/app-admin/exports/admin/security.js";
2
+ import { WORKFLOWS_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
+ export declare const WorkflowsPermissions: import("@webiny/di").Abstraction<{
4
+ canAccess: (entityId: never) => boolean;
5
+ canAction: (action: string, entityId: never) => boolean;
6
+ } & {
7
+ canRead: (entityId: string) => boolean;
8
+ canCreate: (entityId: string) => boolean;
9
+ canEdit: (entityId: string, item?: import("@webiny/app-admin/permissions").OwnableItem) => boolean;
10
+ canDelete: (entityId: string, item?: import("@webiny/app-admin/permissions").OwnableItem) => boolean;
11
+ } & {
12
+ canPublish: (entityId: string) => boolean;
13
+ canUnpublish: (entityId: string) => boolean;
14
+ }>;
15
+ export declare namespace WorkflowsPermissions {
16
+ type Interface = Permissions<typeof WORKFLOWS_PERMISSIONS_SCHEMA>;
17
+ }
@@ -0,0 +1,5 @@
1
+ import { createPermissionsAbstraction } from "@webiny/app-admin/exports/admin/security.js";
2
+ import { WORKFLOWS_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
+ export const WorkflowsPermissions = createPermissionsAbstraction(WORKFLOWS_PERMISSIONS_SCHEMA);
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPermissionsAbstraction","WORKFLOWS_PERMISSIONS_SCHEMA","WorkflowsPermissions"],"sources":["abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/app-admin/exports/admin/security.js\";\nimport type { Permissions } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { WORKFLOWS_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\n\nexport const WorkflowsPermissions = createPermissionsAbstraction(WORKFLOWS_PERMISSIONS_SCHEMA);\n\nexport namespace WorkflowsPermissions {\n export type Interface = Permissions<typeof WORKFLOWS_PERMISSIONS_SCHEMA>;\n}\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,6CAA6C;AAE1F,SAASC,4BAA4B;AAErC,OAAO,MAAMC,oBAAoB,GAAGF,4BAA4B,CAACC,4BAA4B,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ export declare const WorkflowsPermissionsFeature: import("@webiny/feature/admin/createFeature.js").FeatureDefinition<{
2
+ permissions: {
3
+ canAccess: (entityId: never) => boolean;
4
+ canAction: (action: string, entityId: never) => boolean;
5
+ } & {
6
+ canRead: (entityId: string) => boolean;
7
+ canCreate: (entityId: string) => boolean;
8
+ canEdit: (entityId: string, item?: import("@webiny/app-admin/index.js").OwnableItem) => boolean;
9
+ canDelete: (entityId: string, item?: import("@webiny/app-admin/index.js").OwnableItem) => boolean;
10
+ } & {
11
+ canPublish: (entityId: string) => boolean;
12
+ canUnpublish: (entityId: string) => boolean;
13
+ };
14
+ }, []>;
@@ -0,0 +1,6 @@
1
+ import { createPermissionsFeature } from "@webiny/app-admin/exports/admin/security.js";
2
+ import { WORKFLOWS_PERMISSIONS_SCHEMA } from "../../domain/permissionsSchema.js";
3
+ import { WorkflowsPermissions } from "./abstractions.js";
4
+ export const WorkflowsPermissionsFeature = createPermissionsFeature(WORKFLOWS_PERMISSIONS_SCHEMA, WorkflowsPermissions);
5
+
6
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPermissionsFeature","WORKFLOWS_PERMISSIONS_SCHEMA","WorkflowsPermissions","WorkflowsPermissionsFeature"],"sources":["feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/app-admin/exports/admin/security.js\";\nimport { WORKFLOWS_PERMISSIONS_SCHEMA } from \"~/domain/permissionsSchema.js\";\nimport { WorkflowsPermissions } from \"./abstractions.js\";\n\nexport const WorkflowsPermissionsFeature = createPermissionsFeature(\n WORKFLOWS_PERMISSIONS_SCHEMA,\n WorkflowsPermissions\n);\n"],"mappings":"AAAA,SAASA,wBAAwB,QAAQ,6CAA6C;AACtF,SAASC,4BAA4B;AACrC,SAASC,oBAAoB;AAE7B,OAAO,MAAMC,2BAA2B,GAAGH,wBAAwB,CAC/DC,4BAA4B,EAC5BC,oBACJ,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@webiny/app-workflows",
3
- "version": "0.0.0-unstable.e2758ee1cf",
3
+ "version": "0.0.0-unstable.e6f0dc8ca7",
4
4
  "type": "module",
5
- "main": "index.js",
5
+ "exports": {
6
+ ".": "./index.js",
7
+ "./*": "./*"
8
+ },
6
9
  "repository": {
7
10
  "type": "git",
8
11
  "url": "https://github.com/webiny/webiny-js.git"
@@ -11,30 +14,28 @@
11
14
  "license": "MIT",
12
15
  "dependencies": {
13
16
  "@apollo/react-hooks": "3.1.5",
14
- "@webiny/admin-ui": "0.0.0-unstable.e2758ee1cf",
15
- "@webiny/app": "0.0.0-unstable.e2758ee1cf",
16
- "@webiny/app-admin": "0.0.0-unstable.e2758ee1cf",
17
- "@webiny/error": "0.0.0-unstable.e2758ee1cf",
18
- "@webiny/form": "0.0.0-unstable.e2758ee1cf",
19
- "@webiny/icons": "0.0.0-unstable.e2758ee1cf",
20
- "@webiny/ui": "0.0.0-unstable.e2758ee1cf",
21
- "@webiny/utils": "0.0.0-unstable.e2758ee1cf",
22
- "@webiny/validation": "0.0.0-unstable.e2758ee1cf",
17
+ "@webiny/admin-ui": "0.0.0-unstable.e6f0dc8ca7",
18
+ "@webiny/app": "0.0.0-unstable.e6f0dc8ca7",
19
+ "@webiny/app-admin": "0.0.0-unstable.e6f0dc8ca7",
20
+ "@webiny/error": "0.0.0-unstable.e6f0dc8ca7",
21
+ "@webiny/form": "0.0.0-unstable.e6f0dc8ca7",
22
+ "@webiny/icons": "0.0.0-unstable.e6f0dc8ca7",
23
+ "@webiny/utils": "0.0.0-unstable.e6f0dc8ca7",
24
+ "@webiny/validation": "0.0.0-unstable.e6f0dc8ca7",
23
25
  "apollo-client": "2.6.10",
24
26
  "graphql-tag": "2.12.6",
25
- "lodash": "4.17.23",
26
- "mobx": "6.15.0",
27
- "mobx-react-lite": "3.4.3",
28
- "prop-types": "15.8.1",
29
- "react": "18.2.0",
30
- "react-dom": "18.2.0",
27
+ "lodash": "4.18.1",
28
+ "mobx": "6.15.3",
29
+ "mobx-react-lite": "4.1.1",
30
+ "react": "18.3.1",
31
+ "react-dom": "18.3.1",
31
32
  "react-helmet": "6.1.0"
32
33
  },
33
34
  "devDependencies": {
34
- "@types/react": "18.2.79",
35
- "@webiny/build-tools": "0.0.0-unstable.e2758ee1cf",
35
+ "@types/react": "18.3.28",
36
+ "@webiny/build-tools": "0.0.0-unstable.e6f0dc8ca7",
36
37
  "rimraf": "6.1.3",
37
- "typescript": "5.9.3"
38
+ "typescript": "6.0.3"
38
39
  },
39
40
  "publishConfig": {
40
41
  "access": "public",
@@ -45,5 +46,5 @@
45
46
  "removeViewBox": false
46
47
  }
47
48
  },
48
- "gitHead": "e2758ee1cfa3b9a7152e9bb995a90ccabd33266f"
49
+ "gitHead": "e6f0dc8ca741c1fcc3fec9a5b9e86fdd49544641"
49
50
  }
package/routes.d.ts CHANGED
@@ -3,8 +3,11 @@ import { WorkflowStateValue } from "./types.js";
3
3
  export declare const Routes: {
4
4
  Workflows: {
5
5
  ContentReviews: Route<{
6
- type: import("zod").ZodOptional<import("zod").ZodEnum<["own", "requested"]>>;
7
- state: import("zod").ZodOptional<import("zod").ZodNativeEnum<typeof WorkflowStateValue>>;
6
+ type: import("zod").ZodOptional<import("zod").ZodEnum<{
7
+ own: "own";
8
+ requested: "requested";
9
+ }>>;
10
+ state: import("zod").ZodOptional<import("zod").ZodEnum<typeof WorkflowStateValue>>;
8
11
  }>;
9
12
  };
10
13
  };