verben-workflow-ui 0.5.61 → 0.5.63

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verben-workflow-ui",
3
- "version": "0.5.61",
3
+ "version": "0.5.63",
4
4
  "style": "styles/styles.css",
5
5
  "exports": {
6
6
  "./styles": {
@@ -15,12 +15,6 @@
15
15
  "esm": "./esm2022/verben-workflow-ui.mjs",
16
16
  "default": "./fesm2022/verben-workflow-ui.mjs"
17
17
  },
18
- "./src/lib/pipes": {
19
- "types": "./src/lib/pipes/index.d.ts",
20
- "esm2022": "./esm2022/src/lib/pipes/verben-workflow-ui-src-lib-pipes.mjs",
21
- "esm": "./esm2022/src/lib/pipes/verben-workflow-ui-src-lib-pipes.mjs",
22
- "default": "./fesm2022/verben-workflow-ui-src-lib-pipes.mjs"
23
- },
24
18
  "./src/lib/models": {
25
19
  "types": "./src/lib/models/index.d.ts",
26
20
  "esm2022": "./esm2022/src/lib/models/verben-workflow-ui-src-lib-models.mjs",
@@ -33,12 +27,6 @@
33
27
  "esm": "./esm2022/src/lib/shared/verben-workflow-ui-src-lib-shared.mjs",
34
28
  "default": "./fesm2022/verben-workflow-ui-src-lib-shared.mjs"
35
29
  },
36
- "./src/lib/services": {
37
- "types": "./src/lib/services/index.d.ts",
38
- "esm2022": "./esm2022/src/lib/services/verben-workflow-ui-src-lib-services.mjs",
39
- "esm": "./esm2022/src/lib/services/verben-workflow-ui-src-lib-services.mjs",
40
- "default": "./fesm2022/verben-workflow-ui-src-lib-services.mjs"
41
- },
42
30
  "./src/lib/components/designer": {
43
31
  "types": "./src/lib/components/designer/index.d.ts",
44
32
  "esm2022": "./esm2022/src/lib/components/designer/verben-workflow-ui-src-lib-components-designer.mjs",
@@ -51,35 +39,47 @@
51
39
  "esm": "./esm2022/src/lib/components/actors/verben-workflow-ui-src-lib-components-actors.mjs",
52
40
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-actors.mjs"
53
41
  },
42
+ "./src/lib/pipes": {
43
+ "types": "./src/lib/pipes/index.d.ts",
44
+ "esm2022": "./esm2022/src/lib/pipes/verben-workflow-ui-src-lib-pipes.mjs",
45
+ "esm": "./esm2022/src/lib/pipes/verben-workflow-ui-src-lib-pipes.mjs",
46
+ "default": "./fesm2022/verben-workflow-ui-src-lib-pipes.mjs"
47
+ },
48
+ "./src/lib/services": {
49
+ "types": "./src/lib/services/index.d.ts",
50
+ "esm2022": "./esm2022/src/lib/services/verben-workflow-ui-src-lib-services.mjs",
51
+ "esm": "./esm2022/src/lib/services/verben-workflow-ui-src-lib-services.mjs",
52
+ "default": "./fesm2022/verben-workflow-ui-src-lib-services.mjs"
53
+ },
54
54
  "./src/lib/components/expiration": {
55
55
  "types": "./src/lib/components/expiration/index.d.ts",
56
56
  "esm2022": "./esm2022/src/lib/components/expiration/verben-workflow-ui-src-lib-components-expiration.mjs",
57
57
  "esm": "./esm2022/src/lib/components/expiration/verben-workflow-ui-src-lib-components-expiration.mjs",
58
58
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs"
59
59
  },
60
- "./src/lib/components/file-upload": {
61
- "types": "./src/lib/components/file-upload/index.d.ts",
62
- "esm2022": "./esm2022/src/lib/components/file-upload/verben-workflow-ui-src-lib-components-file-upload.mjs",
63
- "esm": "./esm2022/src/lib/components/file-upload/verben-workflow-ui-src-lib-components-file-upload.mjs",
64
- "default": "./fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs"
65
- },
66
60
  "./src/lib/components/file-render": {
67
61
  "types": "./src/lib/components/file-render/index.d.ts",
68
62
  "esm2022": "./esm2022/src/lib/components/file-render/verben-workflow-ui-src-lib-components-file-render.mjs",
69
63
  "esm": "./esm2022/src/lib/components/file-render/verben-workflow-ui-src-lib-components-file-render.mjs",
70
64
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs"
71
65
  },
66
+ "./src/lib/components/file-upload": {
67
+ "types": "./src/lib/components/file-upload/index.d.ts",
68
+ "esm2022": "./esm2022/src/lib/components/file-upload/verben-workflow-ui-src-lib-components-file-upload.mjs",
69
+ "esm": "./esm2022/src/lib/components/file-upload/verben-workflow-ui-src-lib-components-file-upload.mjs",
70
+ "default": "./fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs"
71
+ },
72
72
  "./src/lib/components/flowable-status": {
73
73
  "types": "./src/lib/components/flowable-status/index.d.ts",
74
74
  "esm2022": "./esm2022/src/lib/components/flowable-status/verben-workflow-ui-src-lib-components-flowable-status.mjs",
75
75
  "esm": "./esm2022/src/lib/components/flowable-status/verben-workflow-ui-src-lib-components-flowable-status.mjs",
76
76
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs"
77
77
  },
78
- "./src/lib/components/form-control": {
79
- "types": "./src/lib/components/form-control/index.d.ts",
80
- "esm2022": "./esm2022/src/lib/components/form-control/verben-workflow-ui-src-lib-components-form-control.mjs",
81
- "esm": "./esm2022/src/lib/components/form-control/verben-workflow-ui-src-lib-components-form-control.mjs",
82
- "default": "./fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs"
78
+ "./src/lib/components/form-response": {
79
+ "types": "./src/lib/components/form-response/index.d.ts",
80
+ "esm2022": "./esm2022/src/lib/components/form-response/verben-workflow-ui-src-lib-components-form-response.mjs",
81
+ "esm": "./esm2022/src/lib/components/form-response/verben-workflow-ui-src-lib-components-form-response.mjs",
82
+ "default": "./fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs"
83
83
  },
84
84
  "./src/lib/components/form-group": {
85
85
  "types": "./src/lib/components/form-group/index.d.ts",
@@ -87,11 +87,11 @@
87
87
  "esm": "./esm2022/src/lib/components/form-group/verben-workflow-ui-src-lib-components-form-group.mjs",
88
88
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs"
89
89
  },
90
- "./src/lib/components/form-response": {
91
- "types": "./src/lib/components/form-response/index.d.ts",
92
- "esm2022": "./esm2022/src/lib/components/form-response/verben-workflow-ui-src-lib-components-form-response.mjs",
93
- "esm": "./esm2022/src/lib/components/form-response/verben-workflow-ui-src-lib-components-form-response.mjs",
94
- "default": "./fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs"
90
+ "./src/lib/components/form-control": {
91
+ "types": "./src/lib/components/form-control/index.d.ts",
92
+ "esm2022": "./esm2022/src/lib/components/form-control/verben-workflow-ui-src-lib-components-form-control.mjs",
93
+ "esm": "./esm2022/src/lib/components/form-control/verben-workflow-ui-src-lib-components-form-control.mjs",
94
+ "default": "./fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs"
95
95
  },
96
96
  "./src/lib/components/form-timer": {
97
97
  "types": "./src/lib/components/form-timer/index.d.ts",
@@ -117,12 +117,6 @@
117
117
  "esm": "./esm2022/src/lib/components/my-queue/verben-workflow-ui-src-lib-components-my-queue.mjs",
118
118
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs"
119
119
  },
120
- "./src/lib/components/operation-popup": {
121
- "types": "./src/lib/components/operation-popup/index.d.ts",
122
- "esm2022": "./esm2022/src/lib/components/operation-popup/verben-workflow-ui-src-lib-components-operation-popup.mjs",
123
- "esm": "./esm2022/src/lib/components/operation-popup/verben-workflow-ui-src-lib-components-operation-popup.mjs",
124
- "default": "./fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs"
125
- },
126
120
  "./src/lib/components/stage-details": {
127
121
  "types": "./src/lib/components/stage-details/index.d.ts",
128
122
  "esm2022": "./esm2022/src/lib/components/stage-details/verben-workflow-ui-src-lib-components-stage-details.mjs",
@@ -141,11 +135,11 @@
141
135
  "esm": "./esm2022/src/lib/components/task-history/verben-workflow-ui-src-lib-components-task-history.mjs",
142
136
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs"
143
137
  },
144
- "./src/lib/components/task-notification": {
145
- "types": "./src/lib/components/task-notification/index.d.ts",
146
- "esm2022": "./esm2022/src/lib/components/task-notification/verben-workflow-ui-src-lib-components-task-notification.mjs",
147
- "esm": "./esm2022/src/lib/components/task-notification/verben-workflow-ui-src-lib-components-task-notification.mjs",
148
- "default": "./fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs"
138
+ "./src/lib/components/operation-popup": {
139
+ "types": "./src/lib/components/operation-popup/index.d.ts",
140
+ "esm2022": "./esm2022/src/lib/components/operation-popup/verben-workflow-ui-src-lib-components-operation-popup.mjs",
141
+ "esm": "./esm2022/src/lib/components/operation-popup/verben-workflow-ui-src-lib-components-operation-popup.mjs",
142
+ "default": "./fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs"
149
143
  },
150
144
  "./src/lib/components/tasks": {
151
145
  "types": "./src/lib/components/tasks/index.d.ts",
@@ -159,11 +153,11 @@
159
153
  "esm": "./esm2022/src/lib/components/wf/verben-workflow-ui-src-lib-components-wf.mjs",
160
154
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-wf.mjs"
161
155
  },
162
- "./src/lib/components/workflow": {
163
- "types": "./src/lib/components/workflow/index.d.ts",
164
- "esm2022": "./esm2022/src/lib/components/workflow/verben-workflow-ui-src-lib-components-workflow.mjs",
165
- "esm": "./esm2022/src/lib/components/workflow/verben-workflow-ui-src-lib-components-workflow.mjs",
166
- "default": "./fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs"
156
+ "./src/lib/components/task-notification": {
157
+ "types": "./src/lib/components/task-notification/index.d.ts",
158
+ "esm2022": "./esm2022/src/lib/components/task-notification/verben-workflow-ui-src-lib-components-task-notification.mjs",
159
+ "esm": "./esm2022/src/lib/components/task-notification/verben-workflow-ui-src-lib-components-task-notification.mjs",
160
+ "default": "./fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs"
167
161
  },
168
162
  "./src/lib/components/workflow-designer": {
169
163
  "types": "./src/lib/components/workflow-designer/index.d.ts",
@@ -171,6 +165,12 @@
171
165
  "esm": "./esm2022/src/lib/components/workflow-designer/verben-workflow-ui-src-lib-components-workflow-designer.mjs",
172
166
  "default": "./fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs"
173
167
  },
168
+ "./src/lib/components/workflow": {
169
+ "types": "./src/lib/components/workflow/index.d.ts",
170
+ "esm2022": "./esm2022/src/lib/components/workflow/verben-workflow-ui-src-lib-components-workflow.mjs",
171
+ "esm": "./esm2022/src/lib/components/workflow/verben-workflow-ui-src-lib-components-workflow.mjs",
172
+ "default": "./fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs"
173
+ },
174
174
  "./src/lib/components/workflows": {
175
175
  "types": "./src/lib/components/workflows/index.d.ts",
176
176
  "esm2022": "./esm2022/src/lib/components/workflows/verben-workflow-ui-src-lib-components-workflows.mjs",
@@ -2,25 +2,29 @@ import { EventEmitter, OnInit, WritableSignal } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
3
  import { FlowableStatus, OperationAction } from 'verben-workflow-ui/src/lib/models';
4
4
  import { WorkflowDataService } from '../workflow-data.service';
5
+ import { WorkflowDesignerState } from '../workflow-designer.state';
5
6
  import { Connection } from '../workflow-designer.types';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class ActionDialogComponent implements OnInit {
8
9
  private fb;
9
10
  private dataService;
11
+ private state;
10
12
  visible: import("@angular/core").InputSignal<boolean>;
11
13
  actionData: import("@angular/core").InputSignal<Connection | null>;
12
14
  closed: EventEmitter<any>;
13
15
  saved: EventEmitter<Connection>;
16
+ deleted: EventEmitter<string>;
14
17
  actionForm: FormGroup;
15
18
  operationActions: WritableSignal<OperationAction[]>;
16
19
  flowableStatuses: WritableSignal<FlowableStatus[]>;
17
- constructor(fb: FormBuilder, dataService: WorkflowDataService);
20
+ constructor(fb: FormBuilder, dataService: WorkflowDataService, state: WorkflowDesignerState);
18
21
  ngOnInit(): void;
19
22
  saveAction(): void;
23
+ deleteAction(): void;
20
24
  private loadOperationActions;
21
25
  private loadFlowableStatuses;
22
26
  onDialogClose(eventData: any): void;
23
27
  onDialogOpen(eventData: any): void;
24
28
  static ɵfac: i0.ɵɵFactoryDeclaration<ActionDialogComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<ActionDialogComponent, "lib-action-dialog", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "actionData": { "alias": "actionData"; "required": true; "isSignal": true; }; }, { "closed": "closed"; "saved": "saved"; }, never, never, false, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionDialogComponent, "lib-action-dialog", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "actionData": { "alias": "actionData"; "required": true; "isSignal": true; }; }, { "closed": "closed"; "saved": "saved"; "deleted": "deleted"; }, never, never, false, never>;
26
30
  }
@@ -65,6 +65,12 @@ export declare class DesignerCanvasComponent implements OnInit {
65
65
  } | null;
66
66
  pendingConnectionSourcePoint: ConnectionPoint | null;
67
67
  pendingConnectionSourceSwimlaneIndex: number | null;
68
+ isDraggingNode: boolean;
69
+ draggingNode: Node | null;
70
+ private draggingNodeSwimlaneIndex;
71
+ /** Mouse offset relative to node top-left at drag start (absolute canvas coords). */
72
+ private dragOffsetX;
73
+ private dragOffsetY;
68
74
  showDecisionConditionDialog: boolean;
69
75
  showConditionsDialog: boolean;
70
76
  activeDecisionNodeId: string;
@@ -94,6 +100,7 @@ export declare class DesignerCanvasComponent implements OnInit {
94
100
  }): void;
95
101
  onStageDialogClosed(): void;
96
102
  onActionDialogClosed(): void;
103
+ onActionDialogDeleted(connectionId: string): void;
97
104
  onEscalationDialogClosed(): void;
98
105
  onStageDialogSaved(stageData: Partial<WorkflowStage>): void;
99
106
  onActionDialogSaved(actionData: Connection): void;
@@ -112,6 +119,31 @@ export declare class DesignerCanvasComponent implements OnInit {
112
119
  isConnectionPointVisible(nodeId: string): boolean;
113
120
  startConnectionDrag(event: MouseEvent, point: ConnectionPoint, swimlaneIndex: number): void;
114
121
  highlightPotentialTargets(event: MouseEvent): void;
122
+ /**
123
+ * Called from the template when the user presses the mouse button on a node.
124
+ * Starts the drag interaction and registers document-level listeners so the
125
+ * drag continues even when the cursor leaves the SVG canvas.
126
+ */
127
+ onNodeMouseDown(event: MouseEvent, node: Node, swimlaneIndex: number): void;
128
+ /**
129
+ * Arrow function (preserves `this`) — runs on every mousemove while dragging
130
+ * a node. Updates node.x / node.y in-place so Angular's change detection
131
+ * picks it up and redraws the node and all connected paths automatically.
132
+ */
133
+ onNodeDragMove: (event: MouseEvent) => void;
134
+ /** Scratch fields used to pass computed values from move → end handlers. */
135
+ private _pendingTargetSwimlaneIndex;
136
+ private _pendingAbsoluteY;
137
+ /**
138
+ * Arrow function (preserves `this`) — fires on mouseup after a node drag.
139
+ * Finalises the node position and performs swimlane migration if necessary.
140
+ */
141
+ onNodeDragEnd: (_event: MouseEvent) => void;
142
+ /**
143
+ * Returns a CSS cursor value for the node rendering.
144
+ * Shows 'grabbing' while the node is being dragged, 'grab' otherwise.
145
+ */
146
+ getCursorForNode(nodeId: string): string;
115
147
  onMouseMove: (event: MouseEvent) => void;
116
148
  updateConnectionDrag(currentX: number, currentY: number): void;
117
149
  onMouseUp: (event: MouseEvent) => void;
@@ -11,6 +11,7 @@ export declare class WorkflowDataService {
11
11
  getTags(skip?: number, limit?: number): Promise<Paged<Tag>>;
12
12
  saveWorkflows(requests: Partial<Workflow>[]): Promise<any | ErrorResponse>;
13
13
  deleteWorkflowStages(requests: WorkflowStage['Code'][]): Promise<any>;
14
+ deleteWorkflowActions(requests: string[]): Promise<any>;
14
15
  saveEscalations(requests: Partial<Escalation>[]): Promise<Escalation[]>;
15
16
  deleteEscalations(requests: Escalation['Code'][]): Promise<any>;
16
17
  searchEscalationWithParam(params: Pick<Escalation, 'Workflow' | 'Stage' | 'Type'>, skip?: number, limit?: number, sortOrder?: string): Promise<Paged<Escalation>>;
@@ -68,6 +68,16 @@ export declare class WorkflowDesignerState {
68
68
  registerLoadedObject(id: string, code: string): void;
69
69
  wasLoadedFromApi(id: string): boolean;
70
70
  getCodeForObject(id: string): string;
71
+ /**
72
+ * Moves a node from one swimlane to another and updates all related state:
73
+ * - Node position (swimlane-relative x/y)
74
+ * - Swimlane arrays (removes from old, adds to new)
75
+ * - Connection swimlane indices for this node
76
+ * - Node's stageData.Tags and SwimLane to match the destination swimlane
77
+ */
78
+ moveNodeToSwimlane(nodeId: string, fromSwimlaneIndex: number, toSwimlaneIndex: number, newX: number, absoluteY: number): Node | null;
79
+ /** Swimlane height constant used for coordinate conversions. */
80
+ readonly swimlaneHeight = 263;
71
81
  static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowDesignerState, never>;
72
82
  static ɵprov: i0.ɵɵInjectableDeclaration<WorkflowDesignerState>;
73
83
  }