sequential-workflow-designer-angular 0.16.2 → 0.16.3

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.
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, ApplicationRef, EventEmitter, NgZone, OnChanges, OnDestroy, SimpleChanges, TemplateRef } from '@angular/core';
2
- import { Definition, Designer, DesignerExtension, GlobalEditorContext, GlobalEditorProvider, Step, StepEditorContext, StepEditorProvider, StepsConfiguration, ToolboxConfiguration, ValidatorConfiguration } from 'sequential-workflow-designer';
2
+ import { CustomActionHandler, Definition, Designer, DesignerExtension, GlobalEditorContext, GlobalEditorProvider, Step, StepEditorContext, StepEditorProvider, StepsConfiguration, ToolboxConfiguration, UidGenerator, ValidatorConfiguration } from 'sequential-workflow-designer';
3
3
  import * as i0 from "@angular/core";
4
4
  export interface GlobalEditorWrapper {
5
5
  definition: Definition;
@@ -26,12 +26,20 @@ export declare class DesignerComponent implements AfterViewInit, OnChanges, OnDe
26
26
  controlBar?: boolean;
27
27
  contextMenu?: boolean;
28
28
  extensions?: DesignerExtension[];
29
+ customActionHandler?: CustomActionHandler;
30
+ isReadonly?: boolean;
31
+ selectedStepId?: string | null;
32
+ uidGenerator?: UidGenerator;
33
+ isToolboxCollapsed?: boolean;
34
+ isEditorCollapsed?: boolean;
29
35
  areEditorsHidden?: boolean;
30
36
  globalEditor?: TemplateRef<unknown> | GlobalEditorProvider;
31
37
  stepEditor?: TemplateRef<unknown> | StepEditorProvider;
32
38
  readonly onReady: EventEmitter<Designer<Definition>>;
33
39
  readonly onDefinitionChanged: EventEmitter<Definition>;
34
40
  readonly onSelectedStepIdChanged: EventEmitter<string | null>;
41
+ readonly onIsToolboxCollapsedChanged: EventEmitter<boolean>;
42
+ readonly onIsEditorCollapsedChanged: EventEmitter<boolean>;
35
43
  constructor(ngZone: NgZone, applicationRef: ApplicationRef);
36
44
  ngAfterViewInit(): void;
37
45
  ngOnChanges(changes: SimpleChanges): void;
@@ -41,5 +49,5 @@ export declare class DesignerComponent implements AfterViewInit, OnChanges, OnDe
41
49
  private readonly stepEditorProvider;
42
50
  private editorProvider;
43
51
  static ɵfac: i0.ɵɵFactoryDeclaration<DesignerComponent, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<DesignerComponent, "sqd-designer", never, { "theme": "theme"; "undoStackSize": "undoStackSize"; "definition": "definition"; "stepsConfiguration": "stepsConfiguration"; "validatorConfiguration": "validatorConfiguration"; "toolboxConfiguration": "toolboxConfiguration"; "controlBar": "controlBar"; "contextMenu": "contextMenu"; "extensions": "extensions"; "areEditorsHidden": "areEditorsHidden"; "globalEditor": "globalEditor"; "stepEditor": "stepEditor"; }, { "onReady": "onReady"; "onDefinitionChanged": "onDefinitionChanged"; "onSelectedStepIdChanged": "onSelectedStepIdChanged"; }, never, never>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<DesignerComponent, "sqd-designer", never, { "theme": "theme"; "undoStackSize": "undoStackSize"; "definition": "definition"; "stepsConfiguration": "stepsConfiguration"; "validatorConfiguration": "validatorConfiguration"; "toolboxConfiguration": "toolboxConfiguration"; "controlBar": "controlBar"; "contextMenu": "contextMenu"; "extensions": "extensions"; "customActionHandler": "customActionHandler"; "isReadonly": "isReadonly"; "selectedStepId": "selectedStepId"; "uidGenerator": "uidGenerator"; "isToolboxCollapsed": "isToolboxCollapsed"; "isEditorCollapsed": "isEditorCollapsed"; "areEditorsHidden": "areEditorsHidden"; "globalEditor": "globalEditor"; "stepEditor": "stepEditor"; }, { "onReady": "onReady"; "onDefinitionChanged": "onDefinitionChanged"; "onSelectedStepIdChanged": "onSelectedStepIdChanged"; "onIsToolboxCollapsedChanged": "onIsToolboxCollapsedChanged"; "onIsEditorCollapsedChanged": "onIsEditorCollapsedChanged"; }, never, never>;
45
53
  }
@@ -8,6 +8,8 @@ export class DesignerComponent {
8
8
  this.onReady = new EventEmitter();
9
9
  this.onDefinitionChanged = new EventEmitter();
10
10
  this.onSelectedStepIdChanged = new EventEmitter();
11
+ this.onIsToolboxCollapsedChanged = new EventEmitter();
12
+ this.onIsEditorCollapsedChanged = new EventEmitter();
11
13
  this.globalEditorProvider = (definition, context) => {
12
14
  if (!this.globalEditor) {
13
15
  throw new Error('Input "globalEditor" is not set');
@@ -42,9 +44,33 @@ export class DesignerComponent {
42
44
  if (isFirstChange) {
43
45
  return;
44
46
  }
45
- if (this.designer && changes['definition'] && changes['definition'].currentValue === this.designer.getDefinition()) {
46
- // The same reference = no change.
47
- return;
47
+ if (this.designer) {
48
+ const isSameDefinition = !changes['definition'] || changes['definition'].currentValue === this.designer.getDefinition();
49
+ if (isSameDefinition) {
50
+ const isReadonlyChange = changes['isReadonly'];
51
+ if (isReadonlyChange && isReadonlyChange.currentValue !== this.designer.isReadonly()) {
52
+ this.designer.setIsReadonly(isReadonlyChange.currentValue);
53
+ }
54
+ const selectedStepIdChange = changes['selectedStepId'];
55
+ if (selectedStepIdChange && selectedStepIdChange.currentValue !== this.designer.getSelectedStepId()) {
56
+ if (selectedStepIdChange.currentValue) {
57
+ this.designer.selectStepById(selectedStepIdChange.currentValue);
58
+ }
59
+ else {
60
+ this.designer.clearSelectedStep();
61
+ }
62
+ }
63
+ const isToolboxCollapsedChange = changes['isToolboxCollapsed'];
64
+ if (isToolboxCollapsedChange && isToolboxCollapsedChange.currentValue !== this.designer.isToolboxCollapsed()) {
65
+ this.designer.setIsToolboxCollapsed(isToolboxCollapsedChange.currentValue);
66
+ }
67
+ const isEditorCollapsedChange = changes['isEditorCollapsed'];
68
+ if (isEditorCollapsedChange && isEditorCollapsedChange.currentValue !== this.designer.isEditorCollapsed()) {
69
+ this.designer.setIsEditorCollapsed(isEditorCollapsedChange.currentValue);
70
+ }
71
+ // The same reference of the definition = no change.
72
+ return;
73
+ }
48
74
  }
49
75
  this.attach();
50
76
  }
@@ -75,21 +101,37 @@ export class DesignerComponent {
75
101
  this.designer.destroy();
76
102
  this.designer = undefined;
77
103
  }
104
+ let customActionHandler = this.customActionHandler;
105
+ if (customActionHandler) {
106
+ const cah = customActionHandler;
107
+ customActionHandler = (action, step, sequence, context) => {
108
+ this.ngZone.run(() => cah(action, step, sequence, context));
109
+ };
110
+ }
78
111
  const designer = Designer.create(this.placeholder.nativeElement, this.definition, {
79
112
  theme: this.theme,
80
113
  undoStackSize: this.undoStackSize,
81
114
  editors: this.areEditorsHidden
82
115
  ? false
83
116
  : {
117
+ isCollapsed: this.isEditorCollapsed,
84
118
  globalEditorProvider: this.globalEditorProvider,
85
119
  stepEditorProvider: this.stepEditorProvider
86
120
  },
87
121
  steps: this.stepsConfiguration,
88
122
  validator: this.validatorConfiguration,
89
- toolbox: this.toolboxConfiguration,
123
+ toolbox: this.toolboxConfiguration
124
+ ? {
125
+ isCollapsed: this.isToolboxCollapsed,
126
+ ...this.toolboxConfiguration
127
+ }
128
+ : false,
90
129
  controlBar: this.controlBar,
91
130
  contextMenu: this.contextMenu,
92
- extensions: this.extensions
131
+ extensions: this.extensions,
132
+ isReadonly: this.isReadonly,
133
+ uidGenerator: this.uidGenerator,
134
+ customActionHandler
93
135
  });
94
136
  designer.onReady.subscribe(() => {
95
137
  this.ngZone.run(() => this.onReady.emit(designer));
@@ -100,7 +142,16 @@ export class DesignerComponent {
100
142
  designer.onSelectedStepIdChanged.subscribe(stepId => {
101
143
  this.ngZone.run(() => this.onSelectedStepIdChanged.emit(stepId));
102
144
  });
145
+ designer.onIsToolboxCollapsedChanged.subscribe(isCollapsed => {
146
+ this.ngZone.run(() => this.onIsToolboxCollapsedChanged.emit(isCollapsed));
147
+ });
148
+ designer.onIsEditorCollapsedChanged.subscribe(isCollapsed => {
149
+ this.ngZone.run(() => this.onIsEditorCollapsedChanged.emit(isCollapsed));
150
+ });
103
151
  this.designer = designer;
152
+ if (this.selectedStepId) {
153
+ this.designer.selectStepById(this.selectedStepId);
154
+ }
104
155
  });
105
156
  }
106
157
  editorProvider(templateRef, editor) {
@@ -124,7 +175,7 @@ export class DesignerComponent {
124
175
  }
125
176
  }
126
177
  DesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DesignerComponent, deps: [{ token: i0.NgZone }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
127
- DesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DesignerComponent, selector: "sqd-designer", inputs: { theme: "theme", undoStackSize: "undoStackSize", definition: "definition", stepsConfiguration: "stepsConfiguration", validatorConfiguration: "validatorConfiguration", toolboxConfiguration: "toolboxConfiguration", controlBar: "controlBar", contextMenu: "contextMenu", extensions: "extensions", areEditorsHidden: "areEditorsHidden", globalEditor: "globalEditor", stepEditor: "stepEditor" }, outputs: { onReady: "onReady", onDefinitionChanged: "onDefinitionChanged", onSelectedStepIdChanged: "onSelectedStepIdChanged" }, viewQueries: [{ propertyName: "placeholder", first: true, predicate: ["placeholder"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" });
178
+ DesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DesignerComponent, selector: "sqd-designer", inputs: { theme: "theme", undoStackSize: "undoStackSize", definition: "definition", stepsConfiguration: "stepsConfiguration", validatorConfiguration: "validatorConfiguration", toolboxConfiguration: "toolboxConfiguration", controlBar: "controlBar", contextMenu: "contextMenu", extensions: "extensions", customActionHandler: "customActionHandler", isReadonly: "isReadonly", selectedStepId: "selectedStepId", uidGenerator: "uidGenerator", isToolboxCollapsed: "isToolboxCollapsed", isEditorCollapsed: "isEditorCollapsed", areEditorsHidden: "areEditorsHidden", globalEditor: "globalEditor", stepEditor: "stepEditor" }, outputs: { onReady: "onReady", onDefinitionChanged: "onDefinitionChanged", onSelectedStepIdChanged: "onSelectedStepIdChanged", onIsToolboxCollapsedChanged: "onIsToolboxCollapsedChanged", onIsEditorCollapsedChanged: "onIsEditorCollapsedChanged" }, viewQueries: [{ propertyName: "placeholder", first: true, predicate: ["placeholder"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" });
128
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DesignerComponent, decorators: [{
129
180
  type: Component,
130
181
  args: [{ selector: 'sqd-designer', template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" }]
@@ -158,6 +209,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
158
209
  }], extensions: [{
159
210
  type: Input,
160
211
  args: ['extensions']
212
+ }], customActionHandler: [{
213
+ type: Input,
214
+ args: ['customActionHandler']
215
+ }], isReadonly: [{
216
+ type: Input,
217
+ args: ['isReadonly']
218
+ }], selectedStepId: [{
219
+ type: Input,
220
+ args: ['selectedStepId']
221
+ }], uidGenerator: [{
222
+ type: Input,
223
+ args: ['uidGenerator']
224
+ }], isToolboxCollapsed: [{
225
+ type: Input,
226
+ args: ['isToolboxCollapsed']
227
+ }], isEditorCollapsed: [{
228
+ type: Input,
229
+ args: ['isEditorCollapsed']
161
230
  }], areEditorsHidden: [{
162
231
  type: Input,
163
232
  args: ['areEditorsHidden']
@@ -173,5 +242,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
173
242
  type: Output
174
243
  }], onSelectedStepIdChanged: [{
175
244
  type: Output
245
+ }], onIsToolboxCollapsedChanged: [{
246
+ type: Output
247
+ }], onIsEditorCollapsedChanged: [{
248
+ type: Output
176
249
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGVzaWduZXIvc3JjL2Rlc2lnbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uL2Rlc2lnbmVyL3NyYy9kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR04sU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRU4sUUFBUSxFQVVSLE1BQU0sOEJBQThCLENBQUM7O0FBbUJ0QyxNQUFNLE9BQU8saUJBQWlCO0lBdUM3QixZQUFvQyxNQUFjLEVBQW1CLGNBQThCO1FBQS9ELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBbUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTm5GLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFckQsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFnRjNELHlCQUFvQixHQUFHLENBQUMsVUFBc0IsRUFBRSxPQUE0QixFQUFFLEVBQUU7WUFDaEcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQzthQUNuRDtZQUNELElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVUsRUFBRTtnQkFDNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUM5QztZQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBc0IsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDbEUsVUFBVTtnQkFDVixPQUFPO2FBQ1AsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRWUsdUJBQWtCLEdBQUcsQ0FBQyxJ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O2dCQUdwQixzQkFBc0I7c0JBRDVCLEtBQUs7dUJBQUMsd0JBQXdCO2dCQUd4QixvQkFBb0I7c0JBRDFCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQUd0QixVQUFVO3NCQURoQixLQUFLO3VCQUFDLFlBQVk7Z0JBR1osV0FBVztzQkFEakIsS0FBSzt1QkFBQyxhQUFhO2dCQUdiLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsWUFBWTtnQkFHWixnQkFBZ0I7c0JBRHRCLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUdsQixZQUFZO3NCQURsQixLQUFLO3VCQUFDLGNBQWM7Z0JBR2QsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxZQUFZO2dCQUlILE9BQU87c0JBRHRCLE1BQU07Z0JBR1MsbUJBQW1CO3NCQURsQyxNQUFNO2dCQUdTLHVCQUF1QjtzQkFEdEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyVmlld0luaXQsXG5cdEFwcGxpY2F0aW9uUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T3V0cHV0LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0RGVmaW5pdGlvbixcblx0RGVzaWduZXIsXG5cdERlc2lnbmVyRXh0ZW5zaW9uLFxuXHRHbG9iYWxFZGl0b3JDb250ZXh0LFxuXHRHbG9iYWxFZGl0b3JQcm92aWRlcixcblx0U3RlcCxcblx0U3RlcEVkaXRvckNvbnRleHQsXG5cdFN0ZXBFZGl0b3JQcm92aWRlcixcblx0U3RlcHNDb25maWd1cmF0aW9uLFxuXHRUb29sYm94Q29uZmlndXJhdGlvbixcblx0VmFsaWRhdG9yQ29uZmlndXJhdGlvblxufSBmcm9tICdzZXF1ZW50aWFsLXdvcmtmbG93LWRlc2lnbmVyJztcblxuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxFZGl0b3JXcmFwcGVyIHtcblx0ZGVmaW5pdGlvbjogRGVmaW5pdGlvbjtcblx0Y29udGV4dDogR2xvYmFsRWRpdG9yQ29udGV4dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGVwRWRpdG9yV3JhcHBlciB7XG5cdHN0ZXA6IFN0ZXA7XG5cdGRlZmluaXRpb246IERlZmluaXRpb247XG5cdGNvbnRleHQ6IFN0ZXBFZGl0b3JDb250ZXh0O1xufVxuXG5leHBvcnQgdHlwZSBBbmd1bGFyVG9vbGJveENvbmZpZ3VyYXRpb24gPSBPbWl0PFRvb2xib3hDb25maWd1cmF0aW9uLCAnaXNDb2xsYXBzZWQnPjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnc3FkLWRlc2lnbmVyJyxcblx0dGVtcGxhdGVVcmw6ICcuL2Rlc2lnbmVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEZXNpZ25lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblx0cHJpdmF0ZSBkZXNpZ25lcj86IERlc2lnbmVyO1xuXHRwcml2YXRlIGxhc3RFbWJlZGRlZFZpZXc/OiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XG5cblx0QFZpZXdDaGlsZCgncGxhY2Vob2xkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuXHRwcml2YXRlIHBsYWNlaG9sZGVyPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cblx0QElucHV0KCd0aGVtZScpXG5cdHB1YmxpYyB0aGVtZT86IHN0cmluZztcblx0QElucHV0KCd1bmRvU3RhY2tTaXplJylcblx0cHVibGljIHVuZG9TdGFja1NpemU/OiBudW1iZXI7XG5cdEBJbnB1dCgnZGVmaW5pdGlvbicpXG5cdHB1YmxpYyBkZWZpbml0aW9uPzogRGVmaW5pdGlvbjtcblx0QElucHV0KCdzdGVwc0NvbmZpZ3VyYXRpb24nKVxuXHRwdWJsaWMgc3RlcHNDb25maWd1cmF0aW9uPzogU3RlcHNDb25maWd1cmF0aW9uO1xuXHRASW5wdXQoJ3ZhbGlkYXRvckNvbmZpZ3VyYXRpb24nKVxuXHRwdWJsaWMgdmFsaWRhdG9yQ29uZmlndXJhdGlvbj86IFZhbGlkYXRvckNvbmZpZ3VyYXRpb247XG5cdEBJbnB1dCgndG9vbGJveENvbmZpZ3VyYXRpb24nKVxuXHRwdWJsaWMgdG9vbGJveENvbmZpZ3VyYXRpb24/OiBBbmd1bGFyVG9vbGJveENvbmZpZ3VyYXRpb24gfCBmYWxzZTtcblx0QElucHV0KCdjb250cm9sQmFyJylcblx0cHVibGljIGNvbnRyb2xCYXI/OiBib29sZWFuO1xuXHRASW5wdXQoJ2NvbnRleHRNZW51Jylcblx0cHVibGljIGNvbnRleHRNZW51PzogYm9vbGVhbjtcblx0QElucHV0KCdleHRlbnNpb25zJylcblx0cHVibGljIGV4dGVuc2lvbnM/OiBEZXNpZ25lckV4dGVuc2lvbltdO1xuXHRASW5wdXQoJ2FyZUVkaXRvcnNIaWRkZW4nKVxuXHRwdWJsaWMgYXJlRWRpdG9yc0hpZGRlbj86IGJvb2xlYW47XG5cdEBJbnB1dCgnZ2xvYmFsRWRpdG9yJylcblx0cHVibGljIGdsb2JhbEVkaXRvcj86IFRlbXBsYXRlUmVmPHVua25vd24+IHwgR2xvYmFsRWRpdG9yUHJvdmlkZXI7XG5cdEBJbnB1dCgnc3RlcEVkaXRvcicpXG5cdHB1YmxpYyBzdGVwRWRpdG9yPzogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBTdGVwRWRpdG9yUHJvdmlkZXI7XG5cblx0QE91dHB1dCgpXG5cdHB1YmxpYyByZWFkb25seSBvblJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxEZXNpZ25lcj4oKTtcblx0QE91dHB1dCgpXG5cdHB1YmxpYyByZWFkb25seSBvbkRlZmluaXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxEZWZpbml0aW9uPigpO1xuXHRAT3V0cHV0KClcblx0cHVibGljIHJlYWRvbmx5IG9uU2VsZWN0ZWRTdGVwSWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLCBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZikge31cblxuXHRwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHRoaXMuYXR0YWNoKCk7XG5cdH1cblxuXHRwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGNvbnN0IGlzRmlyc3RDaGFuZ2UgPSBPYmplY3Qua2V5cyhjaGFuZ2VzKS5ldmVyeShrZXkgPT4gY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlKTtcblx0XHRpZiAoaXNGaXJzdENoYW5nZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAodGhpcy5kZXNpZ25lciAmJiBjaGFuZ2VzWydkZWZpbml0aW9uJ10gJiYgY2hhbmdlc1snZGVmaW5pdGlvbiddLmN1cnJlbnRWYWx1ZSA9PT0gdGhpcy5kZXNpZ25lci5nZXREZWZpbml0aW9uKCkpIHtcblx0XHRcdC8vIFRoZSBzYW1lIHJlZmVyZW5jZSA9IG5vIGNoYW5nZS5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLmF0dGFjaCgpO1xuXHR9XG5cblx0cHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmxhc3RFbWJlZGRlZFZpZXcpIHtcblx0XHRcdHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyh0aGlzLmxhc3RFbWJlZGRlZFZpZXcpO1xuXHRcdFx0dGhpcy5sYXN0RW1iZWRkZWRWaWV3LmRlc3Ryb3koKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGF0dGFjaCgpIHtcblx0XHR0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMucGxhY2Vob2xkZXIpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGlzLmRlZmluaXRpb24pIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnB1dCBcImRlZmluaXRpb25cIiBpcyBub3Qgc2V0Jyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXRoaXMuc3RlcHNDb25maWd1cmF0aW9uKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignSW5wdXQgXCJzdGVwc0NvbmZpZ3VyYXRpb25cIiBpcyBub3Qgc2V0Jyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy50b29sYm94Q29uZmlndXJhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignSW5wdXQgXCJ0b29sYm94Q29uZmlndXJhdGlvblwiIGlzIG5vdCBzZXQnKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLmNvbnRyb2xCYXIgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IFwiY29udHJvbEJhclwiIGlzIG5vdCBzZXQnKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHRoaXMuZGVzaWduZXIpIHtcblx0XHRcdFx0dGhpcy5kZXNpZ25lci5kZXN0cm95KCk7XG5cdFx0XHRcdHRoaXMuZGVzaWduZXIgPSB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGRlc2lnbmVyID0gRGVzaWduZXIuY3JlYXRlKHRoaXMucGxhY2Vob2xkZXIubmF0aXZlRWxlbWVudCwgdGhpcy5kZWZpbml0aW9uLCB7XG5cdFx0XHRcdHRoZW1lOiB0aGlzLnRoZW1lLFxuXHRcdFx0XHR1bmRvU3RhY2tTaXplOiB0aGlzLnVuZG9TdGFja1NpemUsXG5cdFx0XHRcdGVkaXRvcnM6IHRoaXMuYXJlRWRpdG9yc0hpZGRlblxuXHRcdFx0XHRcdD8gZmFsc2Vcblx0XHRcdFx0XHQ6IHtcblx0XHRcdFx0XHRcdFx0Z2xvYmFsRWRpdG9yUHJvdmlkZXI6IHRoaXMuZ2xvYmFsRWRpdG9yUHJvdmlkZXIsXG5cdFx0XHRcdFx0XHRcdHN0ZXBFZGl0b3JQcm92aWRlcjogdGhpcy5zdGVwRWRpdG9yUHJvdmlkZXJcblx0XHRcdFx0XHQgIH0sXG5cdFx0XHRcdHN0ZXBzOiB0aGlzLnN0ZXBzQ29uZmlndXJhdGlvbixcblx0XHRcdFx0dmFsaWRhdG9yOiB0aGlzLnZhbGlkYXRvckNvbmZpZ3VyYXRpb24sXG5cdFx0XHRcdHRvb2xib3g6IHRoaXMudG9vbGJveENvbmZpZ3VyYXRpb24sXG5cdFx0XHRcdGNvbnRyb2xCYXI6IHRoaXMuY29udHJvbEJhcixcblx0XHRcdFx0Y29udGV4dE1lbnU6IHRoaXMuY29udGV4dE1lbnUsXG5cdFx0XHRcdGV4dGVuc2lvbnM6IHRoaXMuZXh0ZW5zaW9uc1xuXHRcdFx0fSk7XG5cdFx0XHRkZXNpZ25lci5vblJlYWR5LnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uUmVhZHkuZW1pdChkZXNpZ25lcikpO1xuXHRcdFx0fSk7XG5cdFx0XHRkZXNpZ25lci5vbkRlZmluaXRpb25DaGFuZ2VkLnN1YnNjcmliZShkZWZpbml0aW9uID0+IHtcblx0XHRcdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25EZWZpbml0aW9uQ2hhbmdlZC5lbWl0KGRlZmluaXRpb24pKTtcblx0XHRcdH0pO1xuXHRcdFx0ZGVzaWduZXIub25TZWxlY3RlZFN0ZXBJZENoYW5nZWQuc3Vic2NyaWJlKHN0ZXBJZCA9PiB7XG5cdFx0XHRcdHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uU2VsZWN0ZWRTdGVwSWRDaGFuZ2VkLmVtaXQoc3RlcElkKSk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuZGVzaWduZXIgPSBkZXNpZ25lcjtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgcmVhZG9ubHkgZ2xvYmFsRWRpdG9yUHJvdmlkZXIgPSAoZGVmaW5pdGlvbjogRGVmaW5pdGlvbiwgY29udGV4dDogR2xvYmFsRWRpdG9yQ29udGV4dCkgPT4ge1xuXHRcdGlmICghdGhpcy5nbG9iYWxFZGl0b3IpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW5wdXQgXCJnbG9iYWxFZGl0b3JcIiBpcyBub3Qgc2V0Jyk7XG5cdFx0fVxuXHRcdGlmICh0eXBlb2YgdGhpcy5nbG9iYWxFZGl0b3IgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdHJldHVybiB0aGlzLmdsb2JhbEVkaXRvcihkZWZpbml0aW9uLCBjb250ZXh0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWRpdG9yUHJvdmlkZXI8R2xvYmFsRWRpdG9yV3JhcHBlcj4odGhpcy5nbG9iYWxFZGl0b3IsIHtcblx0XHRcdGRlZmluaXRpb24sXG5cdFx0XHRjb250ZXh0XG5cdFx0fSk7XG5cdH07XG5cblx0cHJpdmF0ZSByZWFkb25seSBzdGVwRWRpdG9yUHJvdmlkZXIgPSAoc3RlcDogU3RlcCwgY29udGV4dDogU3RlcEVkaXRvckNvbnRleHQsIGRlZmluaXRpb246IERlZmluaXRpb24pID0+IHtcblx0XHRpZiAoIXRoaXMuc3RlcEVkaXRvcikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnB1dCBcInN0ZXBFZGl0b3JcIiBpcyBub3Qgc2V0Jyk7XG5cdFx0fVxuXHRcdGlmICh0eXBlb2YgdGhpcy5zdGVwRWRpdG9yID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5zdGVwRWRpdG9yKHN0ZXAsIGNvbnRleHQsIGRlZmluaXRpb24pO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lZGl0b3JQcm92aWRlcjxTdGVwRWRpdG9yV3JhcHBlcj4odGhpcy5zdGVwRWRpdG9yLCB7XG5cdFx0XHRzdGVwLFxuXHRcdFx0ZGVmaW5pdGlvbixcblx0XHRcdGNvbnRleHRcblx0XHR9KTtcblx0fTtcblxuXHRwcml2YXRlIGVkaXRvclByb3ZpZGVyPEU+KHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiwgZWRpdG9yOiBFKSB7XG5cdFx0cmV0dXJuIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5sYXN0RW1iZWRkZWRWaWV3KSB7XG5cdFx0XHRcdHRoaXMuYXBwbGljYXRpb25SZWYuZGV0YWNoVmlldyh0aGlzLmxhc3RFbWJlZGRlZFZpZXcpO1xuXHRcdFx0XHR0aGlzLmxhc3RFbWJlZGRlZFZpZXcuZGVzdHJveSgpO1xuXHRcdFx0XHR0aGlzLmxhc3RFbWJlZGRlZFZpZXcgPSB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMubGFzdEVtYmVkZGVkVmlldyA9IHRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh7XG5cdFx0XHRcdCRpbXBsaWNpdDogZWRpdG9yXG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuYXBwbGljYXRpb25SZWYuYXR0YWNoVmlldyh0aGlzLmxhc3RFbWJlZGRlZFZpZXcpO1xuXG5cdFx0XHRjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdGNvbnRhaW5lci5jbGFzc05hbWUgPSAnc3FkLWVkaXRvci1hbmd1bGFyJztcblx0XHRcdGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLmxhc3RFbWJlZGRlZFZpZXcucm9vdE5vZGVzKSB7XG5cdFx0XHRcdGNvbnRhaW5lci5hcHBlbmRDaGlsZChub2RlKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBjb250YWluZXI7XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxkaXYgI3BsYWNlaG9sZGVyIGNsYXNzPVwic3FkLWRlc2lnbmVyLWFuZ3VsYXJcIj48L2Rpdj5cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGVzaWduZXIvc3JjL2Rlc2lnbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uL2Rlc2lnbmVyL3NyYy9kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR04sU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUdOLFNBQVMsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR04sUUFBUSxFQVdSLE1BQU0sOEJBQThCLENBQUM7O0FBbUJ0QyxNQUFNLE9BQU8saUJBQWlCO0lBd0Q3QixZQUFvQyxNQUFjLEVBQW1CLGNBQThCO1FBQS9ELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBbUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBVm5GLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXZDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFckQsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFNUQsZ0NBQTJCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRCwrQkFBMEIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBdUl4RCx5QkFBb0IsR0FBRyxDQUFDLFVBQXNCLEVBQUUsT0FBNEIsRUFBRSxFQUFFO1lBQ2hHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7YUFDbkQ7WUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxVQUFVLEVBQUU7Z0JBQzVDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDOUM7WUFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQXNCLElBQUksQ0FBQyxZQUFZLEVBQUU7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XG5cdEFwcGxpY2F0aW9uUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T3V0cHV0LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0Q3VzdG9tQWN0aW9uSGFuZGxlcixcblx0RGVmaW5pdGlvbixcblx0RGVzaWduZXIsXG5cdERlc2lnbmVyRXh0ZW5zaW9uLFxuXHRHbG9iYWxFZGl0b3JDb250ZXh0LFxuXHRHbG9iYWxFZGl0b3JQcm92aWRlcixcblx0U3RlcCxcblx0U3RlcEVkaXRvckNvbnRleHQsXG5cdFN0ZXBFZGl0b3JQcm92aWRlcixcblx0U3RlcHNDb25maWd1cmF0aW9uLFxuXHRUb29sYm94Q29uZmlndXJhdGlvbixcblx0VWlkR2VuZXJhdG9yLFxuXHRWYWxpZGF0b3JDb25maWd1cmF0aW9uXG59IGZyb20gJ3NlcXVlbnRpYWwtd29ya2Zsb3ctZGVzaWduZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbEVkaXRvcldyYXBwZXIge1xuXHRkZWZpbml0aW9uOiBEZWZpbml0aW9uO1xuXHRjb250ZXh0OiBHbG9iYWxFZGl0b3JDb250ZXh0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBFZGl0b3JXcmFwcGVyIHtcblx0c3RlcDogU3RlcDtcblx0ZGVmaW5pdGlvbjogRGVmaW5pdGlvbjtcblx0Y29udGV4dDogU3RlcEVkaXRvckNvbnRleHQ7XG59XG5cbmV4cG9ydCB0eXBlIEFuZ3VsYXJUb29sYm94Q29uZmlndXJhdGlvbiA9IE9taXQ8VG9vbGJveENvbmZpZ3VyYXRpb24sICdpc0NvbGxhcHNlZCc+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdzcWQtZGVzaWduZXInLFxuXHR0ZW1wbGF0ZVVybDogJy4vZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERlc2lnbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHRwcml2YXRlIGRlc2lnbmVyPzogRGVzaWduZXI7XG5cdHByaXZhdGUgbGFzdEVtYmVkZGVkVmlldz86IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuXHRAVmlld0NoaWxkKCdwbGFjZWhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pXG5cdHByaXZhdGUgcGxhY2Vob2xkZXI/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuXHRASW5wdXQoJ3RoZW1lJylcblx0cHVibGljIHRoZW1lPzogc3RyaW5nO1xuXHRASW5wdXQoJ3VuZG9TdGFja1NpemUnKVxuXHRwdWJsaWMgdW5kb1N0YWNrU2l6ZT86IG51bWJlcjtcblx0QElucHV0KCdkZWZpbml0aW9uJylcblx0cHVibGljIGRlZmluaXRpb24/OiBEZWZpbml0aW9uO1xuXHRASW5wdXQoJ3N0ZXBzQ29uZmlndXJhdGlvbicpXG5cdHB1YmxpYyBzdGVwc0NvbmZpZ3VyYXRpb24/OiBTdGVwc0NvbmZpZ3VyYXRpb247XG5cdEBJbnB1dCgndmFsaWRhdG9yQ29uZmlndXJhdGlvbicpXG5cdHB1YmxpYyB2YWxpZGF0b3JDb25maWd1cmF0aW9uPzogVmFsaWRhdG9yQ29uZmlndXJhdGlvbjtcblx0QElucHV0KCd0b29sYm94Q29uZmlndXJhdGlvbicpXG5cdHB1YmxpYyB0b29sYm94Q29uZmlndXJhdGlvbj86IEFuZ3VsYXJUb29sYm94Q29uZmlndXJhdGlvbiB8IGZhbHNlO1xuXHRASW5wdXQoJ2NvbnRyb2xCYXInKVxuXHRwdWJsaWMgY29udHJvbEJhcj86IGJvb2xlYW47XG5cdEBJbnB1dCgnY29udGV4dE1lbnUnKVxuXHRwdWJsaWMgY29udGV4dE1lbnU/OiBib29sZWFuO1xuXHRASW5wdXQoJ2V4dGVuc2lvbnMnKVxuXHRwdWJsaWMgZXh0ZW5zaW9ucz86IERlc2lnbmVyRXh0ZW5zaW9uW107XG5cdEBJbnB1dCgnY3VzdG9tQWN0aW9uSGFuZGxlcicpXG5cdHB1YmxpYyBjdXN0b21BY3Rpb25IYW5kbGVyPzogQ3VzdG9tQWN0aW9uSGFuZGxlcjtcblx0QElucHV0KCdpc1JlYWRvbmx5Jylcblx0cHVibGljIGlzUmVhZG9ubHk/OiBib29sZWFuO1xuXHRASW5wdXQoJ3NlbGVjdGVkU3RlcElkJylcblx0cHVibGljIHNlbGVjdGVkU3RlcElkPzogc3RyaW5nIHwgbnVsbDtcblx0QElucHV0KCd1aWRHZW5lcmF0b3InKVxuXHRwdWJsaWMgdWlkR2VuZXJhdG9yPzogVWlkR2VuZXJhdG9yO1xuXHRASW5wdXQoJ2lzVG9vbGJveENvbGxhcHNlZCcpXG5cdHB1YmxpYyBpc1Rvb2xib3hDb2xsYXBzZWQ/OiBib29sZWFuO1xuXHRASW5wdXQoJ2lzRWRpdG9yQ29sbGFwc2VkJylcblx0cHVibGljIGlzRWRpdG9yQ29sbGFwc2VkPzogYm9vbGVhbjtcblxuXHRASW5wdXQoJ2FyZUVkaXRvcnNIaWRkZW4nKVxuXHRwdWJsaWMgYXJlRWRpdG9yc0hpZGRlbj86IGJvb2xlYW47XG5cdEBJbnB1dCgnZ2xvYmFsRWRpdG9yJylcblx0cHVibGljIGdsb2JhbEVkaXRvcj86IFRlbXBsYXRlUmVmPHVua25vd24+IHwgR2xvYmFsRWRpdG9yUHJvdmlkZXI7XG5cdEBJbnB1dCgnc3RlcEVkaXRvcicpXG5cdHB1YmxpYyBzdGVwRWRpdG9yPzogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBTdGVwRWRpdG9yUHJvdmlkZXI7XG5cblx0QE91dHB1dCgpXG5cdHB1YmxpYyByZWFkb25seSBvblJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxEZXNpZ25lcj4oKTtcblx0QE91dHB1dCgpXG5cdHB1YmxpYyByZWFkb25seSBvbkRlZmluaXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxEZWZpbml0aW9uPigpO1xuXHRAT3V0cHV0KClcblx0cHVibGljIHJlYWRvbmx5IG9uU2VsZWN0ZWRTdGVwSWRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXHRAT3V0cHV0KClcblx0cHVibGljIHJlYWRvbmx5IG9uSXNUb29sYm94Q29sbGFwc2VkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblx0QE91dHB1dCgpXG5cdHB1YmxpYyByZWFkb25seSBvbklzRWRpdG9yQ29sbGFwc2VkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYpIHt9XG5cblx0cHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHR0aGlzLmF0dGFjaCgpO1xuXHR9XG5cblx0cHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcblx0XHRjb25zdCBpc0ZpcnN0Q2hhbmdlID0gT2JqZWN0LmtleXMoY2hhbmdlcykuZXZlcnkoa2V5ID0+IGNoYW5nZXNba2V5XS5maXJzdENoYW5nZSk7XG5cdFx0aWYgKGlzRmlyc3RDaGFuZ2UpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5kZXNpZ25lcikge1xuXHRcdFx0Y29uc3QgaXNTYW1lRGVmaW5pdGlvbiA9ICFjaGFuZ2VzWydkZWZpbml0aW9uJ10gfHwgY2hhbmdlc1snZGVmaW5pdGlvbiddLmN1cnJlbnRWYWx1ZSA9PT0gdGhpcy5kZXNpZ25lci5nZXREZWZpbml0aW9uKCk7XG5cdFx0XHRpZiAoaXNTYW1lRGVmaW5pdGlvbikge1xuXHRcdFx0XHRjb25zdCBpc1JlYWRvbmx5Q2hhbmdlID0gY2hhbmdlc1snaXNSZWFkb25seSddO1xuXHRcdFx0XHRpZiAoaXNSZWFkb25seUNoYW5nZSAmJiBpc1JlYWRvbmx5Q2hhbmdlLmN1cnJlbnRWYWx1ZSAhPT0gdGhpcy5kZXNpZ25lci5pc1JlYWRvbmx5KCkpIHtcblx0XHRcdFx0XHR0aGlzLmRlc2lnbmVyLnNldElzUmVhZG9ubHkoaXNSZWFkb25seUNoYW5nZS5jdXJyZW50VmFsdWUpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3Qgc2VsZWN0ZWRTdGVwSWRDaGFuZ2UgPSBjaGFuZ2VzWydzZWxlY3RlZFN0ZXBJZCddO1xuXHRcdFx0XHRpZiAoc2VsZWN0ZWRTdGVwSWRDaGFuZ2UgJiYgc2VsZWN0ZWRTdGVwSWRDaGFuZ2UuY3VycmVudFZhbHVlICE9PSB0aGlzLmRlc2lnbmVyLmdldFNlbGVjdGVkU3RlcElkKCkpIHtcblx0XHRcdFx0XHRpZiAoc2VsZWN0ZWRTdGVwSWRDaGFuZ2UuY3VycmVudFZhbHVlKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmRlc2lnbmVyLnNlbGVjdFN0ZXBCeUlkKHNlbGVjdGVkU3RlcElkQ2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMuZGVzaWduZXIuY2xlYXJTZWxlY3RlZFN0ZXAoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBpc1Rvb2xib3hDb2xsYXBzZWRDaGFuZ2UgPSBjaGFuZ2VzWydpc1Rvb2xib3hDb2xsYXBzZWQnXTtcblx0XHRcdFx0aWYgKGlzVG9vbGJveENvbGxhcHNlZENoYW5nZSAmJiBpc1Rvb2xib3hDb2xsYXBzZWRDaGFuZ2UuY3VycmVudFZhbHVlICE9PSB0aGlzLmRlc2lnbmVyLmlzVG9vbGJveENvbGxhcHNlZCgpKSB7XG5cdFx0XHRcdFx0dGhpcy5kZXNpZ25lci5zZXRJc1Rvb2xib3hDb2xsYXBzZWQoaXNUb29sYm94Q29sbGFwc2VkQ2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRjb25zdCBpc0VkaXRvckNvbGxhcHNlZENoYW5nZSA9IGNoYW5nZXNbJ2lzRWRpdG9yQ29sbGFwc2VkJ107XG5cdFx0XHRcdGlmIChpc0VkaXRvckNvbGxhcHNlZENoYW5nZSAmJiBpc0VkaXRvckNvbGxhcHNlZENoYW5nZS5jdXJyZW50VmFsdWUgIT09IHRoaXMuZGVzaWduZXIuaXNFZGl0b3JDb2xsYXBzZWQoKSkge1xuXHRcdFx0XHRcdHRoaXMuZGVzaWduZXIuc2V0SXNFZGl0b3JDb2xsYXBzZWQoaXNFZGl0b3JDb2xsYXBzZWRDaGFuZ2UuY3VycmVudFZhbHVlKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFRoZSBzYW1lIHJlZmVyZW5jZSBvZiB0aGUgZGVmaW5pdGlvbiA9IG5vIGNoYW5nZS5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRoaXMuYXR0YWNoKCk7XG5cdH1cblxuXHRwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMubGFzdEVtYmVkZGVkVmlldykge1xuXHRcdFx0dGhpcy5hcHBsaWNhdGlvblJlZi5kZXRhY2hWaWV3KHRoaXMubGFzdEVtYmVkZGVkVmlldyk7XG5cdFx0XHR0aGlzLmxhc3RFbWJlZGRlZFZpZXcuZGVzdHJveSgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYXR0YWNoKCkge1xuXHRcdHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXRoaXMuZGVmaW5pdGlvbikge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IFwiZGVmaW5pdGlvblwiIGlzIG5vdCBzZXQnKTtcblx0XHRcdH1cblx0XHRcdGlmICghdGhpcy5zdGVwc0NvbmZpZ3VyYXRpb24pIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnB1dCBcInN0ZXBzQ29uZmlndXJhdGlvblwiIGlzIG5vdCBzZXQnKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aGlzLnRvb2xib3hDb25maWd1cmF0aW9uID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnB1dCBcInRvb2xib3hDb25maWd1cmF0aW9uXCIgaXMgbm90IHNldCcpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMuY29udHJvbEJhciA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignSW5wdXQgXCJjb250cm9sQmFyXCIgaXMgbm90IHNldCcpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy5kZXNpZ25lcikge1xuXHRcdFx0XHR0aGlzLmRlc2lnbmVyLmRlc3Ryb3koKTtcblx0XHRcdFx0dGhpcy5kZXNpZ25lciA9IHVuZGVmaW5lZDtcblx0XHRcdH1cblxuXHRcdFx0bGV0IGN1c3RvbUFjdGlvbkhhbmRsZXIgPSB0aGlzLmN1c3RvbUFjdGlvbkhhbmRsZXI7XG5cdFx0XHRpZiAoY3VzdG9tQWN0aW9uSGFuZGxlcikge1xuXHRcdFx0XHRjb25zdCBjYWggPSBjdXN0b21BY3Rpb25IYW5kbGVyO1xuXHRcdFx0XHRjdXN0b21BY3Rpb25IYW5kbGVyID0gKGFjdGlvbiwgc3RlcCwgc2VxdWVuY2UsIGNvbnRleHQpID0+IHtcblx0XHRcdFx0XHR0aGlzLm5nWm9uZS5ydW4oKCkgPT4gY2FoKGFjdGlvbiwgc3RlcCwgc2VxdWVuY2UsIGNvbnRleHQpKTtcblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZGVzaWduZXIgPSBEZXNpZ25lci5jcmVhdGUodGhpcy5wbGFjZWhvbGRlci5uYXRpdmVFbGVtZW50LCB0aGlzLmRlZmluaXRpb24sIHtcblx0XHRcdFx0dGhlbWU6IHRoaXMudGhlbWUsXG5cdFx0XHRcdHVuZG9TdGFja1NpemU6IHRoaXMudW5kb1N0YWNrU2l6ZSxcblx0XHRcdFx0ZWRpdG9yczogdGhpcy5hcmVFZGl0b3JzSGlkZGVuXG5cdFx0XHRcdFx0PyBmYWxzZVxuXHRcdFx0XHRcdDoge1xuXHRcdFx0XHRcdFx0XHRpc0NvbGxhcHNlZDogdGhpcy5pc0VkaXRvckNvbGxhcHNlZCxcblx0XHRcdFx0XHRcdFx0Z2xvYmFsRWRpdG9yUHJvdmlkZXI6IHRoaXMuZ2xvYmFsRWRpdG9yUHJvdmlkZXIsXG5cdFx0XHRcdFx0XHRcdHN0ZXBFZGl0b3JQcm92aWRlcjogdGhpcy5zdGVwRWRpdG9yUHJvdmlkZXJcblx0XHRcdFx0XHQgIH0sXG5cdFx0XHRcdHN0ZXBzOiB0aGlzLnN0ZXBzQ29uZmlndXJhdGlvbixcblx0XHRcdFx0dmFsaWRhdG9yOiB0aGlzLnZhbGlkYXRvckNvbmZpZ3VyYXRpb24sXG5cdFx0XHRcdHRvb2xib3g6IHRoaXMudG9vbGJveENvbmZpZ3VyYXRpb25cblx0XHRcdFx0XHQ/IHtcblx0XHRcdFx0XHRcdFx0aXNDb2xsYXBzZWQ6IHRoaXMuaXNUb29sYm94Q29sbGFwc2VkLFxuXHRcdFx0XHRcdFx0XHQuLi50aGlzLnRvb2xib3hDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0ICB9XG5cdFx0XHRcdFx0OiBmYWxzZSxcblx0XHRcdFx0Y29udHJvbEJhcjogdGhpcy5jb250cm9sQmFyLFxuXHRcdFx0XHRjb250ZXh0TWVudTogdGhpcy5jb250ZXh0TWVudSxcblx0XHRcdFx0ZXh0ZW5zaW9uczogdGhpcy5leHRlbnNpb25zLFxuXHRcdFx0XHRpc1JlYWRvbmx5OiB0aGlzLmlzUmVhZG9ubHksXG5cdFx0XHRcdHVpZEdlbmVyYXRvcjogdGhpcy51aWRHZW5lcmF0b3IsXG5cdFx0XHRcdGN1c3RvbUFjdGlvbkhhbmRsZXJcblx0XHRcdH0pO1xuXHRcdFx0ZGVzaWduZXIub25SZWFkeS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblJlYWR5LmVtaXQoZGVzaWduZXIpKTtcblx0XHRcdH0pO1xuXHRcdFx0ZGVzaWduZXIub25EZWZpbml0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoZGVmaW5pdGlvbiA9PiB7XG5cdFx0XHRcdHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm9uRGVmaW5pdGlvbkNoYW5nZWQuZW1pdChkZWZpbml0aW9uKSk7XG5cdFx0XHR9KTtcblx0XHRcdGRlc2lnbmVyLm9uU2VsZWN0ZWRTdGVwSWRDaGFuZ2VkLnN1YnNjcmliZShzdGVwSWQgPT4ge1xuXHRcdFx0XHR0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5vblNlbGVjdGVkU3RlcElkQ2hhbmdlZC5lbWl0KHN0ZXBJZCkpO1xuXHRcdFx0fSk7XG5cdFx0XHRkZXNpZ25lci5vbklzVG9vbGJveENvbGxhcHNlZENoYW5nZWQuc3Vic2NyaWJlKGlzQ29sbGFwc2VkID0+IHtcblx0XHRcdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25Jc1Rvb2xib3hDb2xsYXBzZWRDaGFuZ2VkLmVtaXQoaXNDb2xsYXBzZWQpKTtcblx0XHRcdH0pO1xuXHRcdFx0ZGVzaWduZXIub25Jc0VkaXRvckNvbGxhcHNlZENoYW5nZWQuc3Vic2NyaWJlKGlzQ29sbGFwc2VkID0+IHtcblx0XHRcdFx0dGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMub25Jc0VkaXRvckNvbGxhcHNlZENoYW5nZWQuZW1pdChpc0NvbGxhcHNlZCkpO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmRlc2lnbmVyID0gZGVzaWduZXI7XG5cblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkU3RlcElkKSB7XG5cdFx0XHRcdHRoaXMuZGVzaWduZXIuc2VsZWN0U3RlcEJ5SWQodGhpcy5zZWxlY3RlZFN0ZXBJZCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEVkaXRvclByb3ZpZGVyID0gKGRlZmluaXRpb246IERlZmluaXRpb24sIGNvbnRleHQ6IEdsb2JhbEVkaXRvckNvbnRleHQpID0+IHtcblx0XHRpZiAoIXRoaXMuZ2xvYmFsRWRpdG9yKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IFwiZ2xvYmFsRWRpdG9yXCIgaXMgbm90IHNldCcpO1xuXHRcdH1cblx0XHRpZiAodHlwZW9mIHRoaXMuZ2xvYmFsRWRpdG9yID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nbG9iYWxFZGl0b3IoZGVmaW5pdGlvbiwgY29udGV4dCk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVkaXRvclByb3ZpZGVyPEdsb2JhbEVkaXRvcldyYXBwZXI+KHRoaXMuZ2xvYmFsRWRpdG9yLCB7XG5cdFx0XHRkZWZpbml0aW9uLFxuXHRcdFx0Y29udGV4dFxuXHRcdH0pO1xuXHR9O1xuXG5cdHByaXZhdGUgcmVhZG9ubHkgc3RlcEVkaXRvclByb3ZpZGVyID0gKHN0ZXA6IFN0ZXAsIGNvbnRleHQ6IFN0ZXBFZGl0b3JDb250ZXh0LCBkZWZpbml0aW9uOiBEZWZpbml0aW9uKSA9PiB7XG5cdFx0aWYgKCF0aGlzLnN0ZXBFZGl0b3IpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcignSW5wdXQgXCJzdGVwRWRpdG9yXCIgaXMgbm90IHNldCcpO1xuXHRcdH1cblx0XHRpZiAodHlwZW9mIHRoaXMuc3RlcEVkaXRvciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0cmV0dXJuIHRoaXMuc3RlcEVkaXRvcihzdGVwLCBjb250ZXh0LCBkZWZpbml0aW9uKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWRpdG9yUHJvdmlkZXI8U3RlcEVkaXRvcldyYXBwZXI+KHRoaXMuc3RlcEVkaXRvciwge1xuXHRcdFx0c3RlcCxcblx0XHRcdGRlZmluaXRpb24sXG5cdFx0XHRjb250ZXh0XG5cdFx0fSk7XG5cdH07XG5cblx0cHJpdmF0ZSBlZGl0b3JQcm92aWRlcjxFPih0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4sIGVkaXRvcjogRSkge1xuXHRcdHJldHVybiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMubGFzdEVtYmVkZGVkVmlldykge1xuXHRcdFx0XHR0aGlzLmFwcGxpY2F0aW9uUmVmLmRldGFjaFZpZXcodGhpcy5sYXN0RW1iZWRkZWRWaWV3KTtcblx0XHRcdFx0dGhpcy5sYXN0RW1iZWRkZWRWaWV3LmRlc3Ryb3koKTtcblx0XHRcdFx0dGhpcy5sYXN0RW1iZWRkZWRWaWV3ID0gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLmxhc3RFbWJlZGRlZFZpZXcgPSB0ZW1wbGF0ZVJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoe1xuXHRcdFx0XHQkaW1wbGljaXQ6IGVkaXRvclxuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLmFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcodGhpcy5sYXN0RW1iZWRkZWRWaWV3KTtcblxuXHRcdFx0Y29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHRjb250YWluZXIuY2xhc3NOYW1lID0gJ3NxZC1lZGl0b3ItYW5ndWxhcic7XG5cdFx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5sYXN0RW1iZWRkZWRWaWV3LnJvb3ROb2Rlcykge1xuXHRcdFx0XHRjb250YWluZXIuYXBwZW5kQ2hpbGQobm9kZSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29udGFpbmVyO1xuXHRcdH0pO1xuXHR9XG59XG4iLCI8ZGl2ICNwbGFjZWhvbGRlciBjbGFzcz1cInNxZC1kZXNpZ25lci1hbmd1bGFyXCI+PC9kaXY+XG4iXX0=
@@ -10,6 +10,8 @@ class DesignerComponent {
10
10
  this.onReady = new EventEmitter();
11
11
  this.onDefinitionChanged = new EventEmitter();
12
12
  this.onSelectedStepIdChanged = new EventEmitter();
13
+ this.onIsToolboxCollapsedChanged = new EventEmitter();
14
+ this.onIsEditorCollapsedChanged = new EventEmitter();
13
15
  this.globalEditorProvider = (definition, context) => {
14
16
  if (!this.globalEditor) {
15
17
  throw new Error('Input "globalEditor" is not set');
@@ -44,9 +46,33 @@ class DesignerComponent {
44
46
  if (isFirstChange) {
45
47
  return;
46
48
  }
47
- if (this.designer && changes['definition'] && changes['definition'].currentValue === this.designer.getDefinition()) {
48
- // The same reference = no change.
49
- return;
49
+ if (this.designer) {
50
+ const isSameDefinition = !changes['definition'] || changes['definition'].currentValue === this.designer.getDefinition();
51
+ if (isSameDefinition) {
52
+ const isReadonlyChange = changes['isReadonly'];
53
+ if (isReadonlyChange && isReadonlyChange.currentValue !== this.designer.isReadonly()) {
54
+ this.designer.setIsReadonly(isReadonlyChange.currentValue);
55
+ }
56
+ const selectedStepIdChange = changes['selectedStepId'];
57
+ if (selectedStepIdChange && selectedStepIdChange.currentValue !== this.designer.getSelectedStepId()) {
58
+ if (selectedStepIdChange.currentValue) {
59
+ this.designer.selectStepById(selectedStepIdChange.currentValue);
60
+ }
61
+ else {
62
+ this.designer.clearSelectedStep();
63
+ }
64
+ }
65
+ const isToolboxCollapsedChange = changes['isToolboxCollapsed'];
66
+ if (isToolboxCollapsedChange && isToolboxCollapsedChange.currentValue !== this.designer.isToolboxCollapsed()) {
67
+ this.designer.setIsToolboxCollapsed(isToolboxCollapsedChange.currentValue);
68
+ }
69
+ const isEditorCollapsedChange = changes['isEditorCollapsed'];
70
+ if (isEditorCollapsedChange && isEditorCollapsedChange.currentValue !== this.designer.isEditorCollapsed()) {
71
+ this.designer.setIsEditorCollapsed(isEditorCollapsedChange.currentValue);
72
+ }
73
+ // The same reference of the definition = no change.
74
+ return;
75
+ }
50
76
  }
51
77
  this.attach();
52
78
  }
@@ -77,21 +103,33 @@ class DesignerComponent {
77
103
  this.designer.destroy();
78
104
  this.designer = undefined;
79
105
  }
106
+ let customActionHandler = this.customActionHandler;
107
+ if (customActionHandler) {
108
+ const cah = customActionHandler;
109
+ customActionHandler = (action, step, sequence, context) => {
110
+ this.ngZone.run(() => cah(action, step, sequence, context));
111
+ };
112
+ }
80
113
  const designer = Designer.create(this.placeholder.nativeElement, this.definition, {
81
114
  theme: this.theme,
82
115
  undoStackSize: this.undoStackSize,
83
116
  editors: this.areEditorsHidden
84
117
  ? false
85
118
  : {
119
+ isCollapsed: this.isEditorCollapsed,
86
120
  globalEditorProvider: this.globalEditorProvider,
87
121
  stepEditorProvider: this.stepEditorProvider
88
122
  },
89
123
  steps: this.stepsConfiguration,
90
124
  validator: this.validatorConfiguration,
91
- toolbox: this.toolboxConfiguration,
125
+ toolbox: this.toolboxConfiguration
126
+ ? Object.assign({ isCollapsed: this.isToolboxCollapsed }, this.toolboxConfiguration) : false,
92
127
  controlBar: this.controlBar,
93
128
  contextMenu: this.contextMenu,
94
- extensions: this.extensions
129
+ extensions: this.extensions,
130
+ isReadonly: this.isReadonly,
131
+ uidGenerator: this.uidGenerator,
132
+ customActionHandler
95
133
  });
96
134
  designer.onReady.subscribe(() => {
97
135
  this.ngZone.run(() => this.onReady.emit(designer));
@@ -102,7 +140,16 @@ class DesignerComponent {
102
140
  designer.onSelectedStepIdChanged.subscribe(stepId => {
103
141
  this.ngZone.run(() => this.onSelectedStepIdChanged.emit(stepId));
104
142
  });
143
+ designer.onIsToolboxCollapsedChanged.subscribe(isCollapsed => {
144
+ this.ngZone.run(() => this.onIsToolboxCollapsedChanged.emit(isCollapsed));
145
+ });
146
+ designer.onIsEditorCollapsedChanged.subscribe(isCollapsed => {
147
+ this.ngZone.run(() => this.onIsEditorCollapsedChanged.emit(isCollapsed));
148
+ });
105
149
  this.designer = designer;
150
+ if (this.selectedStepId) {
151
+ this.designer.selectStepById(this.selectedStepId);
152
+ }
106
153
  });
107
154
  }
108
155
  editorProvider(templateRef, editor) {
@@ -126,7 +173,7 @@ class DesignerComponent {
126
173
  }
127
174
  }
128
175
  DesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DesignerComponent, deps: [{ token: i0.NgZone }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
129
- DesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DesignerComponent, selector: "sqd-designer", inputs: { theme: "theme", undoStackSize: "undoStackSize", definition: "definition", stepsConfiguration: "stepsConfiguration", validatorConfiguration: "validatorConfiguration", toolboxConfiguration: "toolboxConfiguration", controlBar: "controlBar", contextMenu: "contextMenu", extensions: "extensions", areEditorsHidden: "areEditorsHidden", globalEditor: "globalEditor", stepEditor: "stepEditor" }, outputs: { onReady: "onReady", onDefinitionChanged: "onDefinitionChanged", onSelectedStepIdChanged: "onSelectedStepIdChanged" }, viewQueries: [{ propertyName: "placeholder", first: true, predicate: ["placeholder"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" });
176
+ DesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DesignerComponent, selector: "sqd-designer", inputs: { theme: "theme", undoStackSize: "undoStackSize", definition: "definition", stepsConfiguration: "stepsConfiguration", validatorConfiguration: "validatorConfiguration", toolboxConfiguration: "toolboxConfiguration", controlBar: "controlBar", contextMenu: "contextMenu", extensions: "extensions", customActionHandler: "customActionHandler", isReadonly: "isReadonly", selectedStepId: "selectedStepId", uidGenerator: "uidGenerator", isToolboxCollapsed: "isToolboxCollapsed", isEditorCollapsed: "isEditorCollapsed", areEditorsHidden: "areEditorsHidden", globalEditor: "globalEditor", stepEditor: "stepEditor" }, outputs: { onReady: "onReady", onDefinitionChanged: "onDefinitionChanged", onSelectedStepIdChanged: "onSelectedStepIdChanged", onIsToolboxCollapsedChanged: "onIsToolboxCollapsedChanged", onIsEditorCollapsedChanged: "onIsEditorCollapsedChanged" }, viewQueries: [{ propertyName: "placeholder", first: true, predicate: ["placeholder"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" });
130
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DesignerComponent, decorators: [{
131
178
  type: Component,
132
179
  args: [{ selector: 'sqd-designer', template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" }]
@@ -160,6 +207,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
160
207
  }], extensions: [{
161
208
  type: Input,
162
209
  args: ['extensions']
210
+ }], customActionHandler: [{
211
+ type: Input,
212
+ args: ['customActionHandler']
213
+ }], isReadonly: [{
214
+ type: Input,
215
+ args: ['isReadonly']
216
+ }], selectedStepId: [{
217
+ type: Input,
218
+ args: ['selectedStepId']
219
+ }], uidGenerator: [{
220
+ type: Input,
221
+ args: ['uidGenerator']
222
+ }], isToolboxCollapsed: [{
223
+ type: Input,
224
+ args: ['isToolboxCollapsed']
225
+ }], isEditorCollapsed: [{
226
+ type: Input,
227
+ args: ['isEditorCollapsed']
163
228
  }], areEditorsHidden: [{
164
229
  type: Input,
165
230
  args: ['areEditorsHidden']
@@ -175,6 +240,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
175
240
  type: Output
176
241
  }], onSelectedStepIdChanged: [{
177
242
  type: Output
243
+ }], onIsToolboxCollapsedChanged: [{
244
+ type: Output
245
+ }], onIsEditorCollapsedChanged: [{
246
+ type: Output
178
247
  }] } });
179
248
 
180
249
  class SequentialWorkflowDesignerModule {
@@ -1 +1 @@
1
- {"version":3,"file":"sequential-workflow-designer-angular.mjs","sources":["../../designer/src/designer.component.ts","../../designer/src/designer.component.html","../../designer/src/sequential-workflow-designer.module.ts","../../designer/src/sequential-workflow-designer-angular.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tApplicationRef,\n\tComponent,\n\tElementRef,\n\tEmbeddedViewRef,\n\tEventEmitter,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOutput,\n\tSimpleChanges,\n\tTemplateRef,\n\tViewChild\n} from '@angular/core';\nimport {\n\tDefinition,\n\tDesigner,\n\tDesignerExtension,\n\tGlobalEditorContext,\n\tGlobalEditorProvider,\n\tStep,\n\tStepEditorContext,\n\tStepEditorProvider,\n\tStepsConfiguration,\n\tToolboxConfiguration,\n\tValidatorConfiguration\n} from 'sequential-workflow-designer';\n\nexport interface GlobalEditorWrapper {\n\tdefinition: Definition;\n\tcontext: GlobalEditorContext;\n}\n\nexport interface StepEditorWrapper {\n\tstep: Step;\n\tdefinition: Definition;\n\tcontext: StepEditorContext;\n}\n\nexport type AngularToolboxConfiguration = Omit<ToolboxConfiguration, 'isCollapsed'>;\n\n@Component({\n\tselector: 'sqd-designer',\n\ttemplateUrl: './designer.component.html'\n})\nexport class DesignerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\tprivate designer?: Designer;\n\tprivate lastEmbeddedView?: EmbeddedViewRef<unknown>;\n\n\t@ViewChild('placeholder', { static: true })\n\tprivate placeholder?: ElementRef<HTMLElement>;\n\n\t@Input('theme')\n\tpublic theme?: string;\n\t@Input('undoStackSize')\n\tpublic undoStackSize?: number;\n\t@Input('definition')\n\tpublic definition?: Definition;\n\t@Input('stepsConfiguration')\n\tpublic stepsConfiguration?: StepsConfiguration;\n\t@Input('validatorConfiguration')\n\tpublic validatorConfiguration?: ValidatorConfiguration;\n\t@Input('toolboxConfiguration')\n\tpublic toolboxConfiguration?: AngularToolboxConfiguration | false;\n\t@Input('controlBar')\n\tpublic controlBar?: boolean;\n\t@Input('contextMenu')\n\tpublic contextMenu?: boolean;\n\t@Input('extensions')\n\tpublic extensions?: DesignerExtension[];\n\t@Input('areEditorsHidden')\n\tpublic areEditorsHidden?: boolean;\n\t@Input('globalEditor')\n\tpublic globalEditor?: TemplateRef<unknown> | GlobalEditorProvider;\n\t@Input('stepEditor')\n\tpublic stepEditor?: TemplateRef<unknown> | StepEditorProvider;\n\n\t@Output()\n\tpublic readonly onReady = new EventEmitter<Designer>();\n\t@Output()\n\tpublic readonly onDefinitionChanged = new EventEmitter<Definition>();\n\t@Output()\n\tpublic readonly onSelectedStepIdChanged = new EventEmitter<string | null>();\n\n\tpublic constructor(private readonly ngZone: NgZone, private readonly applicationRef: ApplicationRef) {}\n\n\tpublic ngAfterViewInit() {\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnChanges(changes: SimpleChanges) {\n\t\tconst isFirstChange = Object.keys(changes).every(key => changes[key].firstChange);\n\t\tif (isFirstChange) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.designer && changes['definition'] && changes['definition'].currentValue === this.designer.getDefinition()) {\n\t\t\t// The same reference = no change.\n\t\t\treturn;\n\t\t}\n\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tif (this.lastEmbeddedView) {\n\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\tthis.lastEmbeddedView.destroy();\n\t\t}\n\t}\n\n\tprivate attach() {\n\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\tif (!this.placeholder) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.definition) {\n\t\t\t\tthrow new Error('Input \"definition\" is not set');\n\t\t\t}\n\t\t\tif (!this.stepsConfiguration) {\n\t\t\t\tthrow new Error('Input \"stepsConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.toolboxConfiguration === undefined) {\n\t\t\t\tthrow new Error('Input \"toolboxConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.controlBar === undefined) {\n\t\t\t\tthrow new Error('Input \"controlBar\" is not set');\n\t\t\t}\n\n\t\t\tif (this.designer) {\n\t\t\t\tthis.designer.destroy();\n\t\t\t\tthis.designer = undefined;\n\t\t\t}\n\n\t\t\tconst designer = Designer.create(this.placeholder.nativeElement, this.definition, {\n\t\t\t\ttheme: this.theme,\n\t\t\t\tundoStackSize: this.undoStackSize,\n\t\t\t\teditors: this.areEditorsHidden\n\t\t\t\t\t? false\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tglobalEditorProvider: this.globalEditorProvider,\n\t\t\t\t\t\t\tstepEditorProvider: this.stepEditorProvider\n\t\t\t\t\t },\n\t\t\t\tsteps: this.stepsConfiguration,\n\t\t\t\tvalidator: this.validatorConfiguration,\n\t\t\t\ttoolbox: this.toolboxConfiguration,\n\t\t\t\tcontrolBar: this.controlBar,\n\t\t\t\tcontextMenu: this.contextMenu,\n\t\t\t\textensions: this.extensions\n\t\t\t});\n\t\t\tdesigner.onReady.subscribe(() => {\n\t\t\t\tthis.ngZone.run(() => this.onReady.emit(designer));\n\t\t\t});\n\t\t\tdesigner.onDefinitionChanged.subscribe(definition => {\n\t\t\t\tthis.ngZone.run(() => this.onDefinitionChanged.emit(definition));\n\t\t\t});\n\t\t\tdesigner.onSelectedStepIdChanged.subscribe(stepId => {\n\t\t\t\tthis.ngZone.run(() => this.onSelectedStepIdChanged.emit(stepId));\n\t\t\t});\n\t\t\tthis.designer = designer;\n\t\t});\n\t}\n\n\tprivate readonly globalEditorProvider = (definition: Definition, context: GlobalEditorContext) => {\n\t\tif (!this.globalEditor) {\n\t\t\tthrow new Error('Input \"globalEditor\" is not set');\n\t\t}\n\t\tif (typeof this.globalEditor === 'function') {\n\t\t\treturn this.globalEditor(definition, context);\n\t\t}\n\t\treturn this.editorProvider<GlobalEditorWrapper>(this.globalEditor, {\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate readonly stepEditorProvider = (step: Step, context: StepEditorContext, definition: Definition) => {\n\t\tif (!this.stepEditor) {\n\t\t\tthrow new Error('Input \"stepEditor\" is not set');\n\t\t}\n\t\tif (typeof this.stepEditor === 'function') {\n\t\t\treturn this.stepEditor(step, context, definition);\n\t\t}\n\t\treturn this.editorProvider<StepEditorWrapper>(this.stepEditor, {\n\t\t\tstep,\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate editorProvider<E>(templateRef: TemplateRef<unknown>, editor: E) {\n\t\treturn this.ngZone.run(() => {\n\t\t\tif (this.lastEmbeddedView) {\n\t\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\t\tthis.lastEmbeddedView.destroy();\n\t\t\t\tthis.lastEmbeddedView = undefined;\n\t\t\t}\n\n\t\t\tthis.lastEmbeddedView = templateRef.createEmbeddedView({\n\t\t\t\t$implicit: editor\n\t\t\t});\n\t\t\tthis.applicationRef.attachView(this.lastEmbeddedView);\n\n\t\t\tconst container = document.createElement('div');\n\t\t\tcontainer.className = 'sqd-editor-angular';\n\t\t\tfor (const node of this.lastEmbeddedView.rootNodes) {\n\t\t\t\tcontainer.appendChild(node);\n\t\t\t}\n\t\t\treturn container;\n\t\t});\n\t}\n}\n","<div #placeholder class=\"sqd-designer-angular\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DesignerComponent } from './designer.component';\n\n@NgModule({\n\tdeclarations: [DesignerComponent],\n\timports: [CommonModule],\n\texports: [DesignerComponent]\n})\nexport class SequentialWorkflowDesignerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequential-workflow-designer-angular.mjs","sources":["../../designer/src/designer.component.ts","../../designer/src/designer.component.html","../../designer/src/sequential-workflow-designer.module.ts","../../designer/src/sequential-workflow-designer-angular.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tApplicationRef,\n\tComponent,\n\tElementRef,\n\tEmbeddedViewRef,\n\tEventEmitter,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOutput,\n\tSimpleChanges,\n\tTemplateRef,\n\tViewChild\n} from '@angular/core';\nimport {\n\tCustomActionHandler,\n\tDefinition,\n\tDesigner,\n\tDesignerExtension,\n\tGlobalEditorContext,\n\tGlobalEditorProvider,\n\tStep,\n\tStepEditorContext,\n\tStepEditorProvider,\n\tStepsConfiguration,\n\tToolboxConfiguration,\n\tUidGenerator,\n\tValidatorConfiguration\n} from 'sequential-workflow-designer';\n\nexport interface GlobalEditorWrapper {\n\tdefinition: Definition;\n\tcontext: GlobalEditorContext;\n}\n\nexport interface StepEditorWrapper {\n\tstep: Step;\n\tdefinition: Definition;\n\tcontext: StepEditorContext;\n}\n\nexport type AngularToolboxConfiguration = Omit<ToolboxConfiguration, 'isCollapsed'>;\n\n@Component({\n\tselector: 'sqd-designer',\n\ttemplateUrl: './designer.component.html'\n})\nexport class DesignerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\tprivate designer?: Designer;\n\tprivate lastEmbeddedView?: EmbeddedViewRef<unknown>;\n\n\t@ViewChild('placeholder', { static: true })\n\tprivate placeholder?: ElementRef<HTMLElement>;\n\n\t@Input('theme')\n\tpublic theme?: string;\n\t@Input('undoStackSize')\n\tpublic undoStackSize?: number;\n\t@Input('definition')\n\tpublic definition?: Definition;\n\t@Input('stepsConfiguration')\n\tpublic stepsConfiguration?: StepsConfiguration;\n\t@Input('validatorConfiguration')\n\tpublic validatorConfiguration?: ValidatorConfiguration;\n\t@Input('toolboxConfiguration')\n\tpublic toolboxConfiguration?: AngularToolboxConfiguration | false;\n\t@Input('controlBar')\n\tpublic controlBar?: boolean;\n\t@Input('contextMenu')\n\tpublic contextMenu?: boolean;\n\t@Input('extensions')\n\tpublic extensions?: DesignerExtension[];\n\t@Input('customActionHandler')\n\tpublic customActionHandler?: CustomActionHandler;\n\t@Input('isReadonly')\n\tpublic isReadonly?: boolean;\n\t@Input('selectedStepId')\n\tpublic selectedStepId?: string | null;\n\t@Input('uidGenerator')\n\tpublic uidGenerator?: UidGenerator;\n\t@Input('isToolboxCollapsed')\n\tpublic isToolboxCollapsed?: boolean;\n\t@Input('isEditorCollapsed')\n\tpublic isEditorCollapsed?: boolean;\n\n\t@Input('areEditorsHidden')\n\tpublic areEditorsHidden?: boolean;\n\t@Input('globalEditor')\n\tpublic globalEditor?: TemplateRef<unknown> | GlobalEditorProvider;\n\t@Input('stepEditor')\n\tpublic stepEditor?: TemplateRef<unknown> | StepEditorProvider;\n\n\t@Output()\n\tpublic readonly onReady = new EventEmitter<Designer>();\n\t@Output()\n\tpublic readonly onDefinitionChanged = new EventEmitter<Definition>();\n\t@Output()\n\tpublic readonly onSelectedStepIdChanged = new EventEmitter<string | null>();\n\t@Output()\n\tpublic readonly onIsToolboxCollapsedChanged = new EventEmitter<boolean>();\n\t@Output()\n\tpublic readonly onIsEditorCollapsedChanged = new EventEmitter<boolean>();\n\n\tpublic constructor(private readonly ngZone: NgZone, private readonly applicationRef: ApplicationRef) {}\n\n\tpublic ngAfterViewInit() {\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnChanges(changes: SimpleChanges) {\n\t\tconst isFirstChange = Object.keys(changes).every(key => changes[key].firstChange);\n\t\tif (isFirstChange) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.designer) {\n\t\t\tconst isSameDefinition = !changes['definition'] || changes['definition'].currentValue === this.designer.getDefinition();\n\t\t\tif (isSameDefinition) {\n\t\t\t\tconst isReadonlyChange = changes['isReadonly'];\n\t\t\t\tif (isReadonlyChange && isReadonlyChange.currentValue !== this.designer.isReadonly()) {\n\t\t\t\t\tthis.designer.setIsReadonly(isReadonlyChange.currentValue);\n\t\t\t\t}\n\n\t\t\t\tconst selectedStepIdChange = changes['selectedStepId'];\n\t\t\t\tif (selectedStepIdChange && selectedStepIdChange.currentValue !== this.designer.getSelectedStepId()) {\n\t\t\t\t\tif (selectedStepIdChange.currentValue) {\n\t\t\t\t\t\tthis.designer.selectStepById(selectedStepIdChange.currentValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.designer.clearSelectedStep();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst isToolboxCollapsedChange = changes['isToolboxCollapsed'];\n\t\t\t\tif (isToolboxCollapsedChange && isToolboxCollapsedChange.currentValue !== this.designer.isToolboxCollapsed()) {\n\t\t\t\t\tthis.designer.setIsToolboxCollapsed(isToolboxCollapsedChange.currentValue);\n\t\t\t\t}\n\n\t\t\t\tconst isEditorCollapsedChange = changes['isEditorCollapsed'];\n\t\t\t\tif (isEditorCollapsedChange && isEditorCollapsedChange.currentValue !== this.designer.isEditorCollapsed()) {\n\t\t\t\t\tthis.designer.setIsEditorCollapsed(isEditorCollapsedChange.currentValue);\n\t\t\t\t}\n\n\t\t\t\t// The same reference of the definition = no change.\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tif (this.lastEmbeddedView) {\n\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\tthis.lastEmbeddedView.destroy();\n\t\t}\n\t}\n\n\tprivate attach() {\n\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\tif (!this.placeholder) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.definition) {\n\t\t\t\tthrow new Error('Input \"definition\" is not set');\n\t\t\t}\n\t\t\tif (!this.stepsConfiguration) {\n\t\t\t\tthrow new Error('Input \"stepsConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.toolboxConfiguration === undefined) {\n\t\t\t\tthrow new Error('Input \"toolboxConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.controlBar === undefined) {\n\t\t\t\tthrow new Error('Input \"controlBar\" is not set');\n\t\t\t}\n\n\t\t\tif (this.designer) {\n\t\t\t\tthis.designer.destroy();\n\t\t\t\tthis.designer = undefined;\n\t\t\t}\n\n\t\t\tlet customActionHandler = this.customActionHandler;\n\t\t\tif (customActionHandler) {\n\t\t\t\tconst cah = customActionHandler;\n\t\t\t\tcustomActionHandler = (action, step, sequence, context) => {\n\t\t\t\t\tthis.ngZone.run(() => cah(action, step, sequence, context));\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst designer = Designer.create(this.placeholder.nativeElement, this.definition, {\n\t\t\t\ttheme: this.theme,\n\t\t\t\tundoStackSize: this.undoStackSize,\n\t\t\t\teditors: this.areEditorsHidden\n\t\t\t\t\t? false\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tisCollapsed: this.isEditorCollapsed,\n\t\t\t\t\t\t\tglobalEditorProvider: this.globalEditorProvider,\n\t\t\t\t\t\t\tstepEditorProvider: this.stepEditorProvider\n\t\t\t\t\t },\n\t\t\t\tsteps: this.stepsConfiguration,\n\t\t\t\tvalidator: this.validatorConfiguration,\n\t\t\t\ttoolbox: this.toolboxConfiguration\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tisCollapsed: this.isToolboxCollapsed,\n\t\t\t\t\t\t\t...this.toolboxConfiguration\n\t\t\t\t\t }\n\t\t\t\t\t: false,\n\t\t\t\tcontrolBar: this.controlBar,\n\t\t\t\tcontextMenu: this.contextMenu,\n\t\t\t\textensions: this.extensions,\n\t\t\t\tisReadonly: this.isReadonly,\n\t\t\t\tuidGenerator: this.uidGenerator,\n\t\t\t\tcustomActionHandler\n\t\t\t});\n\t\t\tdesigner.onReady.subscribe(() => {\n\t\t\t\tthis.ngZone.run(() => this.onReady.emit(designer));\n\t\t\t});\n\t\t\tdesigner.onDefinitionChanged.subscribe(definition => {\n\t\t\t\tthis.ngZone.run(() => this.onDefinitionChanged.emit(definition));\n\t\t\t});\n\t\t\tdesigner.onSelectedStepIdChanged.subscribe(stepId => {\n\t\t\t\tthis.ngZone.run(() => this.onSelectedStepIdChanged.emit(stepId));\n\t\t\t});\n\t\t\tdesigner.onIsToolboxCollapsedChanged.subscribe(isCollapsed => {\n\t\t\t\tthis.ngZone.run(() => this.onIsToolboxCollapsedChanged.emit(isCollapsed));\n\t\t\t});\n\t\t\tdesigner.onIsEditorCollapsedChanged.subscribe(isCollapsed => {\n\t\t\t\tthis.ngZone.run(() => this.onIsEditorCollapsedChanged.emit(isCollapsed));\n\t\t\t});\n\t\t\tthis.designer = designer;\n\n\t\t\tif (this.selectedStepId) {\n\t\t\t\tthis.designer.selectStepById(this.selectedStepId);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate readonly globalEditorProvider = (definition: Definition, context: GlobalEditorContext) => {\n\t\tif (!this.globalEditor) {\n\t\t\tthrow new Error('Input \"globalEditor\" is not set');\n\t\t}\n\t\tif (typeof this.globalEditor === 'function') {\n\t\t\treturn this.globalEditor(definition, context);\n\t\t}\n\t\treturn this.editorProvider<GlobalEditorWrapper>(this.globalEditor, {\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate readonly stepEditorProvider = (step: Step, context: StepEditorContext, definition: Definition) => {\n\t\tif (!this.stepEditor) {\n\t\t\tthrow new Error('Input \"stepEditor\" is not set');\n\t\t}\n\t\tif (typeof this.stepEditor === 'function') {\n\t\t\treturn this.stepEditor(step, context, definition);\n\t\t}\n\t\treturn this.editorProvider<StepEditorWrapper>(this.stepEditor, {\n\t\t\tstep,\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate editorProvider<E>(templateRef: TemplateRef<unknown>, editor: E) {\n\t\treturn this.ngZone.run(() => {\n\t\t\tif (this.lastEmbeddedView) {\n\t\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\t\tthis.lastEmbeddedView.destroy();\n\t\t\t\tthis.lastEmbeddedView = undefined;\n\t\t\t}\n\n\t\t\tthis.lastEmbeddedView = templateRef.createEmbeddedView({\n\t\t\t\t$implicit: editor\n\t\t\t});\n\t\t\tthis.applicationRef.attachView(this.lastEmbeddedView);\n\n\t\t\tconst container = document.createElement('div');\n\t\t\tcontainer.className = 'sqd-editor-angular';\n\t\t\tfor (const node of this.lastEmbeddedView.rootNodes) {\n\t\t\t\tcontainer.appendChild(node);\n\t\t\t}\n\t\t\treturn container;\n\t\t});\n\t}\n}\n","<div #placeholder class=\"sqd-designer-angular\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DesignerComponent } from './designer.component';\n\n@NgModule({\n\tdeclarations: [DesignerComponent],\n\timports: [CommonModule],\n\texports: [DesignerComponent]\n})\nexport class SequentialWorkflowDesignerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ class DesignerComponent {
10
10
  this.onReady = new EventEmitter();
11
11
  this.onDefinitionChanged = new EventEmitter();
12
12
  this.onSelectedStepIdChanged = new EventEmitter();
13
+ this.onIsToolboxCollapsedChanged = new EventEmitter();
14
+ this.onIsEditorCollapsedChanged = new EventEmitter();
13
15
  this.globalEditorProvider = (definition, context) => {
14
16
  if (!this.globalEditor) {
15
17
  throw new Error('Input "globalEditor" is not set');
@@ -44,9 +46,33 @@ class DesignerComponent {
44
46
  if (isFirstChange) {
45
47
  return;
46
48
  }
47
- if (this.designer && changes['definition'] && changes['definition'].currentValue === this.designer.getDefinition()) {
48
- // The same reference = no change.
49
- return;
49
+ if (this.designer) {
50
+ const isSameDefinition = !changes['definition'] || changes['definition'].currentValue === this.designer.getDefinition();
51
+ if (isSameDefinition) {
52
+ const isReadonlyChange = changes['isReadonly'];
53
+ if (isReadonlyChange && isReadonlyChange.currentValue !== this.designer.isReadonly()) {
54
+ this.designer.setIsReadonly(isReadonlyChange.currentValue);
55
+ }
56
+ const selectedStepIdChange = changes['selectedStepId'];
57
+ if (selectedStepIdChange && selectedStepIdChange.currentValue !== this.designer.getSelectedStepId()) {
58
+ if (selectedStepIdChange.currentValue) {
59
+ this.designer.selectStepById(selectedStepIdChange.currentValue);
60
+ }
61
+ else {
62
+ this.designer.clearSelectedStep();
63
+ }
64
+ }
65
+ const isToolboxCollapsedChange = changes['isToolboxCollapsed'];
66
+ if (isToolboxCollapsedChange && isToolboxCollapsedChange.currentValue !== this.designer.isToolboxCollapsed()) {
67
+ this.designer.setIsToolboxCollapsed(isToolboxCollapsedChange.currentValue);
68
+ }
69
+ const isEditorCollapsedChange = changes['isEditorCollapsed'];
70
+ if (isEditorCollapsedChange && isEditorCollapsedChange.currentValue !== this.designer.isEditorCollapsed()) {
71
+ this.designer.setIsEditorCollapsed(isEditorCollapsedChange.currentValue);
72
+ }
73
+ // The same reference of the definition = no change.
74
+ return;
75
+ }
50
76
  }
51
77
  this.attach();
52
78
  }
@@ -77,21 +103,37 @@ class DesignerComponent {
77
103
  this.designer.destroy();
78
104
  this.designer = undefined;
79
105
  }
106
+ let customActionHandler = this.customActionHandler;
107
+ if (customActionHandler) {
108
+ const cah = customActionHandler;
109
+ customActionHandler = (action, step, sequence, context) => {
110
+ this.ngZone.run(() => cah(action, step, sequence, context));
111
+ };
112
+ }
80
113
  const designer = Designer.create(this.placeholder.nativeElement, this.definition, {
81
114
  theme: this.theme,
82
115
  undoStackSize: this.undoStackSize,
83
116
  editors: this.areEditorsHidden
84
117
  ? false
85
118
  : {
119
+ isCollapsed: this.isEditorCollapsed,
86
120
  globalEditorProvider: this.globalEditorProvider,
87
121
  stepEditorProvider: this.stepEditorProvider
88
122
  },
89
123
  steps: this.stepsConfiguration,
90
124
  validator: this.validatorConfiguration,
91
- toolbox: this.toolboxConfiguration,
125
+ toolbox: this.toolboxConfiguration
126
+ ? {
127
+ isCollapsed: this.isToolboxCollapsed,
128
+ ...this.toolboxConfiguration
129
+ }
130
+ : false,
92
131
  controlBar: this.controlBar,
93
132
  contextMenu: this.contextMenu,
94
- extensions: this.extensions
133
+ extensions: this.extensions,
134
+ isReadonly: this.isReadonly,
135
+ uidGenerator: this.uidGenerator,
136
+ customActionHandler
95
137
  });
96
138
  designer.onReady.subscribe(() => {
97
139
  this.ngZone.run(() => this.onReady.emit(designer));
@@ -102,7 +144,16 @@ class DesignerComponent {
102
144
  designer.onSelectedStepIdChanged.subscribe(stepId => {
103
145
  this.ngZone.run(() => this.onSelectedStepIdChanged.emit(stepId));
104
146
  });
147
+ designer.onIsToolboxCollapsedChanged.subscribe(isCollapsed => {
148
+ this.ngZone.run(() => this.onIsToolboxCollapsedChanged.emit(isCollapsed));
149
+ });
150
+ designer.onIsEditorCollapsedChanged.subscribe(isCollapsed => {
151
+ this.ngZone.run(() => this.onIsEditorCollapsedChanged.emit(isCollapsed));
152
+ });
105
153
  this.designer = designer;
154
+ if (this.selectedStepId) {
155
+ this.designer.selectStepById(this.selectedStepId);
156
+ }
106
157
  });
107
158
  }
108
159
  editorProvider(templateRef, editor) {
@@ -126,7 +177,7 @@ class DesignerComponent {
126
177
  }
127
178
  }
128
179
  DesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DesignerComponent, deps: [{ token: i0.NgZone }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });
129
- DesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DesignerComponent, selector: "sqd-designer", inputs: { theme: "theme", undoStackSize: "undoStackSize", definition: "definition", stepsConfiguration: "stepsConfiguration", validatorConfiguration: "validatorConfiguration", toolboxConfiguration: "toolboxConfiguration", controlBar: "controlBar", contextMenu: "contextMenu", extensions: "extensions", areEditorsHidden: "areEditorsHidden", globalEditor: "globalEditor", stepEditor: "stepEditor" }, outputs: { onReady: "onReady", onDefinitionChanged: "onDefinitionChanged", onSelectedStepIdChanged: "onSelectedStepIdChanged" }, viewQueries: [{ propertyName: "placeholder", first: true, predicate: ["placeholder"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" });
180
+ DesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DesignerComponent, selector: "sqd-designer", inputs: { theme: "theme", undoStackSize: "undoStackSize", definition: "definition", stepsConfiguration: "stepsConfiguration", validatorConfiguration: "validatorConfiguration", toolboxConfiguration: "toolboxConfiguration", controlBar: "controlBar", contextMenu: "contextMenu", extensions: "extensions", customActionHandler: "customActionHandler", isReadonly: "isReadonly", selectedStepId: "selectedStepId", uidGenerator: "uidGenerator", isToolboxCollapsed: "isToolboxCollapsed", isEditorCollapsed: "isEditorCollapsed", areEditorsHidden: "areEditorsHidden", globalEditor: "globalEditor", stepEditor: "stepEditor" }, outputs: { onReady: "onReady", onDefinitionChanged: "onDefinitionChanged", onSelectedStepIdChanged: "onSelectedStepIdChanged", onIsToolboxCollapsedChanged: "onIsToolboxCollapsedChanged", onIsEditorCollapsedChanged: "onIsEditorCollapsedChanged" }, viewQueries: [{ propertyName: "placeholder", first: true, predicate: ["placeholder"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" });
130
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DesignerComponent, decorators: [{
131
182
  type: Component,
132
183
  args: [{ selector: 'sqd-designer', template: "<div #placeholder class=\"sqd-designer-angular\"></div>\n" }]
@@ -160,6 +211,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
160
211
  }], extensions: [{
161
212
  type: Input,
162
213
  args: ['extensions']
214
+ }], customActionHandler: [{
215
+ type: Input,
216
+ args: ['customActionHandler']
217
+ }], isReadonly: [{
218
+ type: Input,
219
+ args: ['isReadonly']
220
+ }], selectedStepId: [{
221
+ type: Input,
222
+ args: ['selectedStepId']
223
+ }], uidGenerator: [{
224
+ type: Input,
225
+ args: ['uidGenerator']
226
+ }], isToolboxCollapsed: [{
227
+ type: Input,
228
+ args: ['isToolboxCollapsed']
229
+ }], isEditorCollapsed: [{
230
+ type: Input,
231
+ args: ['isEditorCollapsed']
163
232
  }], areEditorsHidden: [{
164
233
  type: Input,
165
234
  args: ['areEditorsHidden']
@@ -175,6 +244,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
175
244
  type: Output
176
245
  }], onSelectedStepIdChanged: [{
177
246
  type: Output
247
+ }], onIsToolboxCollapsedChanged: [{
248
+ type: Output
249
+ }], onIsEditorCollapsedChanged: [{
250
+ type: Output
178
251
  }] } });
179
252
 
180
253
  class SequentialWorkflowDesignerModule {
@@ -1 +1 @@
1
- {"version":3,"file":"sequential-workflow-designer-angular.mjs","sources":["../../designer/src/designer.component.ts","../../designer/src/designer.component.html","../../designer/src/sequential-workflow-designer.module.ts","../../designer/src/sequential-workflow-designer-angular.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tApplicationRef,\n\tComponent,\n\tElementRef,\n\tEmbeddedViewRef,\n\tEventEmitter,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOutput,\n\tSimpleChanges,\n\tTemplateRef,\n\tViewChild\n} from '@angular/core';\nimport {\n\tDefinition,\n\tDesigner,\n\tDesignerExtension,\n\tGlobalEditorContext,\n\tGlobalEditorProvider,\n\tStep,\n\tStepEditorContext,\n\tStepEditorProvider,\n\tStepsConfiguration,\n\tToolboxConfiguration,\n\tValidatorConfiguration\n} from 'sequential-workflow-designer';\n\nexport interface GlobalEditorWrapper {\n\tdefinition: Definition;\n\tcontext: GlobalEditorContext;\n}\n\nexport interface StepEditorWrapper {\n\tstep: Step;\n\tdefinition: Definition;\n\tcontext: StepEditorContext;\n}\n\nexport type AngularToolboxConfiguration = Omit<ToolboxConfiguration, 'isCollapsed'>;\n\n@Component({\n\tselector: 'sqd-designer',\n\ttemplateUrl: './designer.component.html'\n})\nexport class DesignerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\tprivate designer?: Designer;\n\tprivate lastEmbeddedView?: EmbeddedViewRef<unknown>;\n\n\t@ViewChild('placeholder', { static: true })\n\tprivate placeholder?: ElementRef<HTMLElement>;\n\n\t@Input('theme')\n\tpublic theme?: string;\n\t@Input('undoStackSize')\n\tpublic undoStackSize?: number;\n\t@Input('definition')\n\tpublic definition?: Definition;\n\t@Input('stepsConfiguration')\n\tpublic stepsConfiguration?: StepsConfiguration;\n\t@Input('validatorConfiguration')\n\tpublic validatorConfiguration?: ValidatorConfiguration;\n\t@Input('toolboxConfiguration')\n\tpublic toolboxConfiguration?: AngularToolboxConfiguration | false;\n\t@Input('controlBar')\n\tpublic controlBar?: boolean;\n\t@Input('contextMenu')\n\tpublic contextMenu?: boolean;\n\t@Input('extensions')\n\tpublic extensions?: DesignerExtension[];\n\t@Input('areEditorsHidden')\n\tpublic areEditorsHidden?: boolean;\n\t@Input('globalEditor')\n\tpublic globalEditor?: TemplateRef<unknown> | GlobalEditorProvider;\n\t@Input('stepEditor')\n\tpublic stepEditor?: TemplateRef<unknown> | StepEditorProvider;\n\n\t@Output()\n\tpublic readonly onReady = new EventEmitter<Designer>();\n\t@Output()\n\tpublic readonly onDefinitionChanged = new EventEmitter<Definition>();\n\t@Output()\n\tpublic readonly onSelectedStepIdChanged = new EventEmitter<string | null>();\n\n\tpublic constructor(private readonly ngZone: NgZone, private readonly applicationRef: ApplicationRef) {}\n\n\tpublic ngAfterViewInit() {\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnChanges(changes: SimpleChanges) {\n\t\tconst isFirstChange = Object.keys(changes).every(key => changes[key].firstChange);\n\t\tif (isFirstChange) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.designer && changes['definition'] && changes['definition'].currentValue === this.designer.getDefinition()) {\n\t\t\t// The same reference = no change.\n\t\t\treturn;\n\t\t}\n\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tif (this.lastEmbeddedView) {\n\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\tthis.lastEmbeddedView.destroy();\n\t\t}\n\t}\n\n\tprivate attach() {\n\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\tif (!this.placeholder) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.definition) {\n\t\t\t\tthrow new Error('Input \"definition\" is not set');\n\t\t\t}\n\t\t\tif (!this.stepsConfiguration) {\n\t\t\t\tthrow new Error('Input \"stepsConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.toolboxConfiguration === undefined) {\n\t\t\t\tthrow new Error('Input \"toolboxConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.controlBar === undefined) {\n\t\t\t\tthrow new Error('Input \"controlBar\" is not set');\n\t\t\t}\n\n\t\t\tif (this.designer) {\n\t\t\t\tthis.designer.destroy();\n\t\t\t\tthis.designer = undefined;\n\t\t\t}\n\n\t\t\tconst designer = Designer.create(this.placeholder.nativeElement, this.definition, {\n\t\t\t\ttheme: this.theme,\n\t\t\t\tundoStackSize: this.undoStackSize,\n\t\t\t\teditors: this.areEditorsHidden\n\t\t\t\t\t? false\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tglobalEditorProvider: this.globalEditorProvider,\n\t\t\t\t\t\t\tstepEditorProvider: this.stepEditorProvider\n\t\t\t\t\t },\n\t\t\t\tsteps: this.stepsConfiguration,\n\t\t\t\tvalidator: this.validatorConfiguration,\n\t\t\t\ttoolbox: this.toolboxConfiguration,\n\t\t\t\tcontrolBar: this.controlBar,\n\t\t\t\tcontextMenu: this.contextMenu,\n\t\t\t\textensions: this.extensions\n\t\t\t});\n\t\t\tdesigner.onReady.subscribe(() => {\n\t\t\t\tthis.ngZone.run(() => this.onReady.emit(designer));\n\t\t\t});\n\t\t\tdesigner.onDefinitionChanged.subscribe(definition => {\n\t\t\t\tthis.ngZone.run(() => this.onDefinitionChanged.emit(definition));\n\t\t\t});\n\t\t\tdesigner.onSelectedStepIdChanged.subscribe(stepId => {\n\t\t\t\tthis.ngZone.run(() => this.onSelectedStepIdChanged.emit(stepId));\n\t\t\t});\n\t\t\tthis.designer = designer;\n\t\t});\n\t}\n\n\tprivate readonly globalEditorProvider = (definition: Definition, context: GlobalEditorContext) => {\n\t\tif (!this.globalEditor) {\n\t\t\tthrow new Error('Input \"globalEditor\" is not set');\n\t\t}\n\t\tif (typeof this.globalEditor === 'function') {\n\t\t\treturn this.globalEditor(definition, context);\n\t\t}\n\t\treturn this.editorProvider<GlobalEditorWrapper>(this.globalEditor, {\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate readonly stepEditorProvider = (step: Step, context: StepEditorContext, definition: Definition) => {\n\t\tif (!this.stepEditor) {\n\t\t\tthrow new Error('Input \"stepEditor\" is not set');\n\t\t}\n\t\tif (typeof this.stepEditor === 'function') {\n\t\t\treturn this.stepEditor(step, context, definition);\n\t\t}\n\t\treturn this.editorProvider<StepEditorWrapper>(this.stepEditor, {\n\t\t\tstep,\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate editorProvider<E>(templateRef: TemplateRef<unknown>, editor: E) {\n\t\treturn this.ngZone.run(() => {\n\t\t\tif (this.lastEmbeddedView) {\n\t\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\t\tthis.lastEmbeddedView.destroy();\n\t\t\t\tthis.lastEmbeddedView = undefined;\n\t\t\t}\n\n\t\t\tthis.lastEmbeddedView = templateRef.createEmbeddedView({\n\t\t\t\t$implicit: editor\n\t\t\t});\n\t\t\tthis.applicationRef.attachView(this.lastEmbeddedView);\n\n\t\t\tconst container = document.createElement('div');\n\t\t\tcontainer.className = 'sqd-editor-angular';\n\t\t\tfor (const node of this.lastEmbeddedView.rootNodes) {\n\t\t\t\tcontainer.appendChild(node);\n\t\t\t}\n\t\t\treturn container;\n\t\t});\n\t}\n}\n","<div #placeholder class=\"sqd-designer-angular\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DesignerComponent } from './designer.component';\n\n@NgModule({\n\tdeclarations: [DesignerComponent],\n\timports: [CommonModule],\n\texports: [DesignerComponent]\n})\nexport class SequentialWorkflowDesignerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequential-workflow-designer-angular.mjs","sources":["../../designer/src/designer.component.ts","../../designer/src/designer.component.html","../../designer/src/sequential-workflow-designer.module.ts","../../designer/src/sequential-workflow-designer-angular.ts"],"sourcesContent":["import {\n\tAfterViewInit,\n\tApplicationRef,\n\tComponent,\n\tElementRef,\n\tEmbeddedViewRef,\n\tEventEmitter,\n\tInput,\n\tNgZone,\n\tOnChanges,\n\tOnDestroy,\n\tOutput,\n\tSimpleChanges,\n\tTemplateRef,\n\tViewChild\n} from '@angular/core';\nimport {\n\tCustomActionHandler,\n\tDefinition,\n\tDesigner,\n\tDesignerExtension,\n\tGlobalEditorContext,\n\tGlobalEditorProvider,\n\tStep,\n\tStepEditorContext,\n\tStepEditorProvider,\n\tStepsConfiguration,\n\tToolboxConfiguration,\n\tUidGenerator,\n\tValidatorConfiguration\n} from 'sequential-workflow-designer';\n\nexport interface GlobalEditorWrapper {\n\tdefinition: Definition;\n\tcontext: GlobalEditorContext;\n}\n\nexport interface StepEditorWrapper {\n\tstep: Step;\n\tdefinition: Definition;\n\tcontext: StepEditorContext;\n}\n\nexport type AngularToolboxConfiguration = Omit<ToolboxConfiguration, 'isCollapsed'>;\n\n@Component({\n\tselector: 'sqd-designer',\n\ttemplateUrl: './designer.component.html'\n})\nexport class DesignerComponent implements AfterViewInit, OnChanges, OnDestroy {\n\tprivate designer?: Designer;\n\tprivate lastEmbeddedView?: EmbeddedViewRef<unknown>;\n\n\t@ViewChild('placeholder', { static: true })\n\tprivate placeholder?: ElementRef<HTMLElement>;\n\n\t@Input('theme')\n\tpublic theme?: string;\n\t@Input('undoStackSize')\n\tpublic undoStackSize?: number;\n\t@Input('definition')\n\tpublic definition?: Definition;\n\t@Input('stepsConfiguration')\n\tpublic stepsConfiguration?: StepsConfiguration;\n\t@Input('validatorConfiguration')\n\tpublic validatorConfiguration?: ValidatorConfiguration;\n\t@Input('toolboxConfiguration')\n\tpublic toolboxConfiguration?: AngularToolboxConfiguration | false;\n\t@Input('controlBar')\n\tpublic controlBar?: boolean;\n\t@Input('contextMenu')\n\tpublic contextMenu?: boolean;\n\t@Input('extensions')\n\tpublic extensions?: DesignerExtension[];\n\t@Input('customActionHandler')\n\tpublic customActionHandler?: CustomActionHandler;\n\t@Input('isReadonly')\n\tpublic isReadonly?: boolean;\n\t@Input('selectedStepId')\n\tpublic selectedStepId?: string | null;\n\t@Input('uidGenerator')\n\tpublic uidGenerator?: UidGenerator;\n\t@Input('isToolboxCollapsed')\n\tpublic isToolboxCollapsed?: boolean;\n\t@Input('isEditorCollapsed')\n\tpublic isEditorCollapsed?: boolean;\n\n\t@Input('areEditorsHidden')\n\tpublic areEditorsHidden?: boolean;\n\t@Input('globalEditor')\n\tpublic globalEditor?: TemplateRef<unknown> | GlobalEditorProvider;\n\t@Input('stepEditor')\n\tpublic stepEditor?: TemplateRef<unknown> | StepEditorProvider;\n\n\t@Output()\n\tpublic readonly onReady = new EventEmitter<Designer>();\n\t@Output()\n\tpublic readonly onDefinitionChanged = new EventEmitter<Definition>();\n\t@Output()\n\tpublic readonly onSelectedStepIdChanged = new EventEmitter<string | null>();\n\t@Output()\n\tpublic readonly onIsToolboxCollapsedChanged = new EventEmitter<boolean>();\n\t@Output()\n\tpublic readonly onIsEditorCollapsedChanged = new EventEmitter<boolean>();\n\n\tpublic constructor(private readonly ngZone: NgZone, private readonly applicationRef: ApplicationRef) {}\n\n\tpublic ngAfterViewInit() {\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnChanges(changes: SimpleChanges) {\n\t\tconst isFirstChange = Object.keys(changes).every(key => changes[key].firstChange);\n\t\tif (isFirstChange) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.designer) {\n\t\t\tconst isSameDefinition = !changes['definition'] || changes['definition'].currentValue === this.designer.getDefinition();\n\t\t\tif (isSameDefinition) {\n\t\t\t\tconst isReadonlyChange = changes['isReadonly'];\n\t\t\t\tif (isReadonlyChange && isReadonlyChange.currentValue !== this.designer.isReadonly()) {\n\t\t\t\t\tthis.designer.setIsReadonly(isReadonlyChange.currentValue);\n\t\t\t\t}\n\n\t\t\t\tconst selectedStepIdChange = changes['selectedStepId'];\n\t\t\t\tif (selectedStepIdChange && selectedStepIdChange.currentValue !== this.designer.getSelectedStepId()) {\n\t\t\t\t\tif (selectedStepIdChange.currentValue) {\n\t\t\t\t\t\tthis.designer.selectStepById(selectedStepIdChange.currentValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.designer.clearSelectedStep();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst isToolboxCollapsedChange = changes['isToolboxCollapsed'];\n\t\t\t\tif (isToolboxCollapsedChange && isToolboxCollapsedChange.currentValue !== this.designer.isToolboxCollapsed()) {\n\t\t\t\t\tthis.designer.setIsToolboxCollapsed(isToolboxCollapsedChange.currentValue);\n\t\t\t\t}\n\n\t\t\t\tconst isEditorCollapsedChange = changes['isEditorCollapsed'];\n\t\t\t\tif (isEditorCollapsedChange && isEditorCollapsedChange.currentValue !== this.designer.isEditorCollapsed()) {\n\t\t\t\t\tthis.designer.setIsEditorCollapsed(isEditorCollapsedChange.currentValue);\n\t\t\t\t}\n\n\t\t\t\t// The same reference of the definition = no change.\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis.attach();\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tif (this.lastEmbeddedView) {\n\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\tthis.lastEmbeddedView.destroy();\n\t\t}\n\t}\n\n\tprivate attach() {\n\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\tif (!this.placeholder) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.definition) {\n\t\t\t\tthrow new Error('Input \"definition\" is not set');\n\t\t\t}\n\t\t\tif (!this.stepsConfiguration) {\n\t\t\t\tthrow new Error('Input \"stepsConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.toolboxConfiguration === undefined) {\n\t\t\t\tthrow new Error('Input \"toolboxConfiguration\" is not set');\n\t\t\t}\n\t\t\tif (this.controlBar === undefined) {\n\t\t\t\tthrow new Error('Input \"controlBar\" is not set');\n\t\t\t}\n\n\t\t\tif (this.designer) {\n\t\t\t\tthis.designer.destroy();\n\t\t\t\tthis.designer = undefined;\n\t\t\t}\n\n\t\t\tlet customActionHandler = this.customActionHandler;\n\t\t\tif (customActionHandler) {\n\t\t\t\tconst cah = customActionHandler;\n\t\t\t\tcustomActionHandler = (action, step, sequence, context) => {\n\t\t\t\t\tthis.ngZone.run(() => cah(action, step, sequence, context));\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst designer = Designer.create(this.placeholder.nativeElement, this.definition, {\n\t\t\t\ttheme: this.theme,\n\t\t\t\tundoStackSize: this.undoStackSize,\n\t\t\t\teditors: this.areEditorsHidden\n\t\t\t\t\t? false\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tisCollapsed: this.isEditorCollapsed,\n\t\t\t\t\t\t\tglobalEditorProvider: this.globalEditorProvider,\n\t\t\t\t\t\t\tstepEditorProvider: this.stepEditorProvider\n\t\t\t\t\t },\n\t\t\t\tsteps: this.stepsConfiguration,\n\t\t\t\tvalidator: this.validatorConfiguration,\n\t\t\t\ttoolbox: this.toolboxConfiguration\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tisCollapsed: this.isToolboxCollapsed,\n\t\t\t\t\t\t\t...this.toolboxConfiguration\n\t\t\t\t\t }\n\t\t\t\t\t: false,\n\t\t\t\tcontrolBar: this.controlBar,\n\t\t\t\tcontextMenu: this.contextMenu,\n\t\t\t\textensions: this.extensions,\n\t\t\t\tisReadonly: this.isReadonly,\n\t\t\t\tuidGenerator: this.uidGenerator,\n\t\t\t\tcustomActionHandler\n\t\t\t});\n\t\t\tdesigner.onReady.subscribe(() => {\n\t\t\t\tthis.ngZone.run(() => this.onReady.emit(designer));\n\t\t\t});\n\t\t\tdesigner.onDefinitionChanged.subscribe(definition => {\n\t\t\t\tthis.ngZone.run(() => this.onDefinitionChanged.emit(definition));\n\t\t\t});\n\t\t\tdesigner.onSelectedStepIdChanged.subscribe(stepId => {\n\t\t\t\tthis.ngZone.run(() => this.onSelectedStepIdChanged.emit(stepId));\n\t\t\t});\n\t\t\tdesigner.onIsToolboxCollapsedChanged.subscribe(isCollapsed => {\n\t\t\t\tthis.ngZone.run(() => this.onIsToolboxCollapsedChanged.emit(isCollapsed));\n\t\t\t});\n\t\t\tdesigner.onIsEditorCollapsedChanged.subscribe(isCollapsed => {\n\t\t\t\tthis.ngZone.run(() => this.onIsEditorCollapsedChanged.emit(isCollapsed));\n\t\t\t});\n\t\t\tthis.designer = designer;\n\n\t\t\tif (this.selectedStepId) {\n\t\t\t\tthis.designer.selectStepById(this.selectedStepId);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate readonly globalEditorProvider = (definition: Definition, context: GlobalEditorContext) => {\n\t\tif (!this.globalEditor) {\n\t\t\tthrow new Error('Input \"globalEditor\" is not set');\n\t\t}\n\t\tif (typeof this.globalEditor === 'function') {\n\t\t\treturn this.globalEditor(definition, context);\n\t\t}\n\t\treturn this.editorProvider<GlobalEditorWrapper>(this.globalEditor, {\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate readonly stepEditorProvider = (step: Step, context: StepEditorContext, definition: Definition) => {\n\t\tif (!this.stepEditor) {\n\t\t\tthrow new Error('Input \"stepEditor\" is not set');\n\t\t}\n\t\tif (typeof this.stepEditor === 'function') {\n\t\t\treturn this.stepEditor(step, context, definition);\n\t\t}\n\t\treturn this.editorProvider<StepEditorWrapper>(this.stepEditor, {\n\t\t\tstep,\n\t\t\tdefinition,\n\t\t\tcontext\n\t\t});\n\t};\n\n\tprivate editorProvider<E>(templateRef: TemplateRef<unknown>, editor: E) {\n\t\treturn this.ngZone.run(() => {\n\t\t\tif (this.lastEmbeddedView) {\n\t\t\t\tthis.applicationRef.detachView(this.lastEmbeddedView);\n\t\t\t\tthis.lastEmbeddedView.destroy();\n\t\t\t\tthis.lastEmbeddedView = undefined;\n\t\t\t}\n\n\t\t\tthis.lastEmbeddedView = templateRef.createEmbeddedView({\n\t\t\t\t$implicit: editor\n\t\t\t});\n\t\t\tthis.applicationRef.attachView(this.lastEmbeddedView);\n\n\t\t\tconst container = document.createElement('div');\n\t\t\tcontainer.className = 'sqd-editor-angular';\n\t\t\tfor (const node of this.lastEmbeddedView.rootNodes) {\n\t\t\t\tcontainer.appendChild(node);\n\t\t\t}\n\t\t\treturn container;\n\t\t});\n\t}\n}\n","<div #placeholder class=\"sqd-designer-angular\"></div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DesignerComponent } from './designer.component';\n\n@NgModule({\n\tdeclarations: [DesignerComponent],\n\timports: [CommonModule],\n\texports: [DesignerComponent]\n})\nexport class SequentialWorkflowDesignerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sequential-workflow-designer-angular",
3
3
  "description": "Angular wrapper for Sequential Workflow Designer component.",
4
- "version": "0.16.2",
4
+ "version": "0.16.3",
5
5
  "author": {
6
6
  "name": "NoCode JS",
7
7
  "url": "https://nocode-js.com/"
@@ -15,7 +15,7 @@
15
15
  "peerDependencies": {
16
16
  "@angular/common": "12 - 16",
17
17
  "@angular/core": "12 - 16",
18
- "sequential-workflow-designer": "^0.16.2"
18
+ "sequential-workflow-designer": "^0.16.3"
19
19
  },
20
20
  "dependencies": {
21
21
  "tslib": "^2.3.0"