diff --git a/src/designer/elsa-workflows-designer/src/components.d.ts b/src/designer/elsa-workflows-designer/src/components.d.ts index 8bf947325..34ab01fa5 100644 --- a/src/designer/elsa-workflows-designer/src/components.d.ts +++ b/src/designer/elsa-workflows-designer/src/components.d.ts @@ -19,7 +19,7 @@ import { Flowchart, FlowchartNavigationItem } from "./modules/flowchart/models"; import { Graph } from "@antv/x6"; import { AddActivityArgs as AddActivityArgs1, RenameActivityArgs as RenameActivityArgs1, UpdateActivityArgs as UpdateActivityArgs1 } from "./components/designer/canvas/canvas"; import { ActivityNodeShape } from "./modules/flowchart/shapes"; -import { ActionDefinition, ActionInvokedArgs } from "./components/shared/modal-dialog"; +import { ActionDefinition, ActionInvokedArgs, ModalType } from "./components/shared/modal-dialog"; import { ExpressionChangedArs } from "./components/designer/input-control-switch/input-control-switch"; import { ActionDefinition as ActionDefinition1, ActionInvokedArgs as ActionInvokedArgs1 } from "./components/shared/modal-dialog/models"; import { MonacoLib, MonacoValueChangedArgs } from "./components/shared/monaco-editor/monaco-editor"; @@ -172,6 +172,7 @@ export namespace Components { "hide": (animate?: boolean) => Promise; "show": (animate?: boolean) => Promise; "size": string; + "type": ModalType; } interface ElsaModalDialogContainer { } @@ -833,6 +834,7 @@ declare namespace LocalJSX { "onHidden"?: (event: CustomEvent) => void; "onShown"?: (event: CustomEvent) => void; "size"?: string; + "type"?: ModalType; } interface ElsaModalDialogContainer { } diff --git a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/default-contents.tsx b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/default-contents.tsx new file mode 100644 index 000000000..6b8896bbe --- /dev/null +++ b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/default-contents.tsx @@ -0,0 +1,13 @@ +import {h} from '@stencil/core'; +import { WarningIcon } from '../../icons/tooling'; + +export class DefaultContents { + public static Delete = (message: string): any => { + return( +
+ +

{message}

+
+ ) + }; +} \ No newline at end of file diff --git a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/index.ts b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/index.ts index ebdb4a1e5..af0ba4e07 100644 --- a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/index.ts +++ b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/index.ts @@ -1,4 +1,6 @@ export * from './modal-dialog'; export * from './modal-dialog-container'; export * from './models'; +export * from './default-contents'; +export * from './modal-type'; export * from './services'; diff --git a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog-container.tsx b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog-container.tsx index cc22049d8..f59f04867 100644 --- a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog-container.tsx +++ b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog-container.tsx @@ -21,7 +21,7 @@ export class ModalDialogContainer { {instances.map(instance => { const actions = instance.actions ?? []; - return ( this.onInstanceHidden(instance)}/>); + return ( this.onInstanceHidden(instance)}/>); })} ); diff --git a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog.tsx b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog.tsx index d9ba924a8..ec171420d 100644 --- a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog.tsx +++ b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-dialog.tsx @@ -1,6 +1,7 @@ import {Component, Host, h, State, Listen, Method, Event, EventEmitter, Prop} from '@stencil/core'; import {enter, leave} from 'el-transition' import {ActionDefinition, ActionInvokedArgs, ActionType} from "./models"; +import {ModalType} from "../../../components/shared/modal-dialog"; @Component({ tag: 'elsa-modal-dialog', @@ -11,7 +12,8 @@ export class ModalDialog { private modal: HTMLElement @Prop() actions: Array = []; - @Prop() size: string = 'sm:w-full sm:max-w-6xl'; + @Prop() size: string = 'sm:max-w-6xl'; + @Prop() type: ModalType = ModalType.Default; @Prop() content: () => any = () =>
; @Event() shown: EventEmitter; @Event() hidden: EventEmitter; @@ -63,6 +65,12 @@ export class ModalDialog { } } + componentWillRender() { + if(this.type == ModalType.Default){ + this.size += " sm:w-full"; + } + } + componentDidRender() { if(this.isVisible) { enter(this.overlay); diff --git a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-type.ts b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-type.ts new file mode 100644 index 000000000..6727e8ea0 --- /dev/null +++ b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/modal-type.ts @@ -0,0 +1,4 @@ +export enum ModalType { + Default, + DeleteConfirmation +} \ No newline at end of file diff --git a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/models.ts b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/models.ts index a277b293b..1e0300eac 100644 --- a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/models.ts +++ b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/models.ts @@ -1,6 +1,9 @@ +import {ModalType} from "../../../components/shared/modal-dialog"; + export interface ModalDialogInstance { content: () => any; actions: Array; + modalType: ModalType; } export type ActionClickArgs = (e: Event, action: ActionDefinition) => void; @@ -65,3 +68,26 @@ export class DefaultActions { onClick: handler }); } + +// export class DefaultContents { +// public static Delete = (message: string): any => { +// return( +//
+//
+// +//
+// +//

{message}

+// +// +//
+//
+//
+// ) +// }; +// } \ No newline at end of file diff --git a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/services.ts b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/services.ts index 9605b762a..81cc8f424 100644 --- a/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/services.ts +++ b/src/designer/elsa-workflows-designer/src/components/shared/modal-dialog/services.ts @@ -2,14 +2,16 @@ import 'reflect-metadata'; import {Service} from "typedi"; import state from "./state"; import {ActionDefinition, ModalDialogInstance} from "./models"; +import {ModalType} from "../../../components/shared/modal-dialog"; @Service() export class ModalDialogService { - show(content: () => any, actions?: Array): ModalDialogInstance { + show(content: () => any, actions?: Array, modalType?: ModalType): ModalDialogInstance { const newInstance: ModalDialogInstance = { content: content, - actions: actions ?? [] + actions: actions ?? [], + modalType: modalType ?? ModalType.Default }; let instances: Array = state.instances;