verben-workflow-ui 0.5.76 → 0.5.78
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/README.md +13 -0
- package/esm2022/src/lib/components/actors/actors.component.mjs +5 -5
- package/esm2022/src/lib/components/actors/actors.facade.mjs +3 -3
- package/esm2022/src/lib/components/actors/actors.form.component.mjs +5 -5
- package/esm2022/src/lib/components/actors/actors.module.mjs +4 -4
- package/esm2022/src/lib/components/actors/actors.service.mjs +3 -3
- package/esm2022/src/lib/components/actors/actors.state.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/label-editor.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/components/node-selector.component.mjs +4 -4
- package/esm2022/src/lib/components/designer/components/swimlane-label.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/swimlane-popup.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/wf-canvas.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/components/wf-designer.component.mjs +3 -3
- package/esm2022/src/lib/components/designer/components/wf-toolbar.component.mjs +6 -6
- package/esm2022/src/lib/components/designer/services/canvas-state.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/connection-segment-interaction.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/connection.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/keyboard-handler.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/label-management.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-finder.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-interaction.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-precondition.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/node-selection.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/orthogonal-router.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/position-update.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/rendering.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/swimlane-management.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/swimlane-stats.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/viewport.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-facade.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-mapper.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-persistence.service.mjs +3 -3
- package/esm2022/src/lib/components/designer/services/wf-state.service.mjs +3 -3
- package/esm2022/src/lib/components/expiration/expiration.component.mjs +3 -3
- package/esm2022/src/lib/components/expiration/expiration.module.mjs +4 -4
- package/esm2022/src/lib/components/file-render/file-render.component.mjs +5 -5
- package/esm2022/src/lib/components/file-render/file-render.module.mjs +4 -4
- package/esm2022/src/lib/components/file-upload/file-upload.component.mjs +5 -5
- package/esm2022/src/lib/components/file-upload/file-upload.module.mjs +4 -4
- package/esm2022/src/lib/components/flowable-status/flowable-status.component.mjs +17 -10
- package/esm2022/src/lib/components/flowable-status/flowable-status.facade.mjs +3 -3
- package/esm2022/src/lib/components/flowable-status/flowable-status.form.component.mjs +5 -5
- package/esm2022/src/lib/components/flowable-status/flowable-status.module.mjs +4 -4
- package/esm2022/src/lib/components/flowable-status/flowable-status.service.mjs +3 -3
- package/esm2022/src/lib/components/flowable-status/flowable-status.state.mjs +3 -3
- package/esm2022/src/lib/components/form-control/form-control.component.mjs +5 -5
- package/esm2022/src/lib/components/form-control/form-control.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +5 -5
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.service.mjs +3 -3
- package/esm2022/src/lib/components/form-group/form-group.component.mjs +5 -5
- package/esm2022/src/lib/components/form-group/form-group.module.mjs +4 -4
- package/esm2022/src/lib/components/form-group/form-group.service.mjs +3 -3
- package/esm2022/src/lib/components/form-response/form-response.component.mjs +5 -5
- package/esm2022/src/lib/components/form-response/form-response.module.mjs +4 -4
- package/esm2022/src/lib/components/form-response/form-response.service.mjs +3 -3
- package/esm2022/src/lib/components/form-timer/form-timer.component.mjs +5 -5
- package/esm2022/src/lib/components/form-timer/form-timer.module.mjs +4 -4
- package/esm2022/src/lib/components/forms/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/forms/forms.component.mjs +5 -5
- package/esm2022/src/lib/components/forms/forms.module.mjs +4 -4
- package/esm2022/src/lib/components/forms/forms.service.mjs +3 -3
- package/esm2022/src/lib/components/journal/journal.component.mjs +3 -3
- package/esm2022/src/lib/components/journal/journal.module.mjs +4 -4
- package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +5 -5
- package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/my-queue.module.mjs +4 -4
- package/esm2022/src/lib/components/my-queue/my-queue.service.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/my-queue.state.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/tasks.form.component.mjs +5 -5
- package/esm2022/src/lib/components/operation-popup/operation-popup.component.mjs +5 -5
- package/esm2022/src/lib/components/operation-popup/operation-popup.facade.mjs +3 -3
- package/esm2022/src/lib/components/operation-popup/operation-popup.service.mjs +3 -3
- package/esm2022/src/lib/components/operation-popup/operation-popup.state.mjs +3 -3
- package/esm2022/src/lib/components/stage-details/stage-details.component.mjs +5 -5
- package/esm2022/src/lib/components/stage-details/stage-details.module.mjs +4 -4
- package/esm2022/src/lib/components/task-form/task-form.component.mjs +5 -5
- package/esm2022/src/lib/components/task-form/task-form.module.mjs +4 -4
- package/esm2022/src/lib/components/task-history/task-history.component.mjs +5 -5
- package/esm2022/src/lib/components/task-history/task-history.module.mjs +4 -4
- package/esm2022/src/lib/components/task-history/task-history.service.mjs +3 -3
- package/esm2022/src/lib/components/task-notification/base-table-style.mjs +6 -6
- package/esm2022/src/lib/components/task-notification/task-notification.component.mjs +5 -5
- package/esm2022/src/lib/components/task-notification/task-notification.module.mjs +4 -4
- package/esm2022/src/lib/components/task-notification/task-notification.service.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.component.mjs +17 -26
- package/esm2022/src/lib/components/tasks/tasks.facade.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.form.component.mjs +5 -5
- package/esm2022/src/lib/components/tasks/tasks.module.mjs +4 -4
- package/esm2022/src/lib/components/tasks/tasks.service.mjs +3 -3
- package/esm2022/src/lib/components/tasks/tasks.state.mjs +3 -3
- package/esm2022/src/lib/components/wf/wf.component.mjs +3 -3
- package/esm2022/src/lib/components/wf/wf.module.mjs +4 -4
- package/esm2022/src/lib/components/wf/wf.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow/table-style.mjs +6 -6
- package/esm2022/src/lib/components/workflow/workflow.component.mjs +8 -8
- package/esm2022/src/lib/components/workflow/workflow.module.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/action-dialog/action-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/actor-tags-dialog/actor-tags-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/conditions-popup/conditions-popup.component.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/decision-popup/decision-popup.component.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/designer-canvas/designer-canvas.component.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/designer-toolbar/designer-toolbar.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/escalation-dialog/escalation-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/services/connection.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/node-management.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/popup.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/swimlane.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/services/transformer.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/stage-node/stage-node.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs +5 -5
- package/esm2022/src/lib/components/workflow-designer/workflow-data.service.mjs +3 -3
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.component.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.module.mjs +4 -4
- package/esm2022/src/lib/components/workflow-designer/workflow-designer.state.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflow-form/workflow-form.component.mjs +5 -5
- package/esm2022/src/lib/components/workflows/workflows.component.mjs +18 -9
- package/esm2022/src/lib/components/workflows/workflows.facade.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflows.module.mjs +4 -4
- package/esm2022/src/lib/components/workflows/workflows.service.mjs +3 -3
- package/esm2022/src/lib/components/workflows/workflows.state.mjs +3 -3
- package/esm2022/src/lib/pipes/async-label.pipe.mjs +3 -3
- package/esm2022/src/lib/services/environment.service.mjs +3 -3
- package/esm2022/src/lib/services/http-web-request.service.mjs +3 -3
- package/esm2022/src/lib/services/label.service.mjs +3 -3
- package/esm2022/src/lib/services/util.service.mjs +3 -3
- package/esm2022/src/lib/shared/base-table-style.mjs +6 -6
- package/esm2022/src/lib/shared/components/base-data-view.component.mjs +3 -3
- package/esm2022/src/lib/shared/shared.module.mjs +4 -4
- package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs +85 -85
- package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs +7 -7
- package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs +33 -26
- package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +27 -27
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs +11 -11
- package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-journal.mjs +7 -7
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +21 -21
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs +13 -13
- package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs +8 -8
- package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +11 -11
- package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs +33 -42
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-wf.mjs +10 -10
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +67 -67
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs +16 -16
- package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs +34 -25
- package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-pipes.mjs +3 -3
- package/fesm2022/verben-workflow-ui-src-lib-services.mjs +12 -12
- package/fesm2022/verben-workflow-ui-src-lib-shared.mjs +12 -12
- package/fesm2022/verben-workflow-ui-src-lib-shared.mjs.map +1 -1
- package/package.json +30 -30
- package/src/lib/components/workflow/workflow.component.d.ts +1 -1
- package/styles/styles.css +19 -1436
|
@@ -76,8 +76,8 @@ export class NodeSelectorComponent {
|
|
|
76
76
|
onModalClose(event) {
|
|
77
77
|
this.preconditionService.clearPendingNode();
|
|
78
78
|
}
|
|
79
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
80
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
79
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
80
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NodeSelectorComponent, isStandalone: true, selector: "wf-node-selector", outputs: { select: "select" }, ngImport: i0, template: `
|
|
81
81
|
<verben-dialogue
|
|
82
82
|
[isVisible]="!!preconditionService.pendingNode()"
|
|
83
83
|
[showCloseIcon]="true"
|
|
@@ -190,9 +190,9 @@ export class NodeSelectorComponent {
|
|
|
190
190
|
} }
|
|
191
191
|
</div>
|
|
192
192
|
</ng-template>
|
|
193
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: VerbenDialogueModule }, { kind: "component", type: i1.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DropDownModule }, { kind: "component", type: i1.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
|
|
193
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: VerbenDialogueModule }, { kind: "component", type: i1.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DropDownModule }, { kind: "component", type: i1.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
|
|
194
194
|
}
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeSelectorComponent, decorators: [{
|
|
196
196
|
type: Component,
|
|
197
197
|
args: [{
|
|
198
198
|
selector: 'wf-node-selector',
|
|
@@ -15,8 +15,8 @@ export class SwimlaneLabelComponent {
|
|
|
15
15
|
onLabelChange(newLabel) {
|
|
16
16
|
this.labelChange.emit(newLabel);
|
|
17
17
|
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
19
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SwimlaneLabelComponent, isStandalone: true, selector: "[wf-swimlane-label]", inputs: { label: "label", count: "count" }, outputs: { addClick: "addClick", labelChange: "labelChange" }, ngImport: i0, template: `
|
|
20
20
|
<svg:g>
|
|
21
21
|
<!-- Plus icon at top -->
|
|
22
22
|
<svg:g
|
|
@@ -82,7 +82,7 @@ export class SwimlaneLabelComponent {
|
|
|
82
82
|
</svg:g>
|
|
83
83
|
`, isInline: true, styles: [":host{display:block}circle:hover{fill:#f3e8ff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: LabelEditorComponent, selector: "wf-label-editor", inputs: ["label", "x", "y", "isConnection", "isSwimlane"], outputs: ["labelChange", "openDialog"] }] });
|
|
84
84
|
}
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneLabelComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
87
|
args: [{ selector: '[wf-swimlane-label]', standalone: true, imports: [CommonModule, LabelEditorComponent], template: `
|
|
88
88
|
<svg:g>
|
|
@@ -16,8 +16,8 @@ export class SwimLanePopupComponent {
|
|
|
16
16
|
this.actionSelected.emit(action.id);
|
|
17
17
|
this.close.emit();
|
|
18
18
|
}
|
|
19
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
20
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimLanePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SwimLanePopupComponent, isStandalone: true, selector: "wf-swimlane-popup", inputs: { position: "position" }, outputs: { close: "close", actionSelected: "actionSelected" }, ngImport: i0, template: `
|
|
21
21
|
<div
|
|
22
22
|
class="fixed bg-white rounded-lg shadow-lg border border-slate-200 p-4 min-w-[200px]"
|
|
23
23
|
[style.left.px]="position.x"
|
|
@@ -43,7 +43,7 @@ export class SwimLanePopupComponent {
|
|
|
43
43
|
</div>
|
|
44
44
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimLanePopupComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
48
|
args: [{
|
|
49
49
|
selector: 'wf-swimlane-popup',
|
|
@@ -91,8 +91,8 @@ export class WFCanvasComponent {
|
|
|
91
91
|
onNodeSelectionCancelled() {
|
|
92
92
|
this.facade.preconditionService.clearPendingNode();
|
|
93
93
|
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
95
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
94
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WFCanvasComponent, deps: [{ token: i1.WorkflowFacadeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: WFCanvasComponent, isStandalone: true, selector: "wf-canvas", host: { listeners: { "window:keydown": "onKeyDown($event)", "click": "onClick()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "canvasRef", first: true, predicate: ["canvas"], descendants: true }], ngImport: i0, template: `
|
|
96
96
|
<div
|
|
97
97
|
class="canvas-container"
|
|
98
98
|
#container
|
|
@@ -390,9 +390,9 @@ export class WFCanvasComponent {
|
|
|
390
390
|
(select)="onNodeSelected($event)"
|
|
391
391
|
(cancel)="onNodeSelectionCancelled()"
|
|
392
392
|
/>
|
|
393
|
-
`, isInline: true, styles: [".canvas-container{flex:1;overflow:auto;position:relative;background:#fff
|
|
393
|
+
`, isInline: true, styles: [".canvas-container{flex:1;overflow:auto;position:relative;background:#fff;&.connecting{cursor:crosshair}}.connection{path{stroke:#d36cff;stroke-width:2;fill:none;pointer-events:none}&.selected path{stroke-width:3}}.selected{:not(text){stroke-width:3}}.dragging{cursor:grabbing}.connection{pointer-events:none}.segment-group{pointer-events:all}.segment-hitarea{stroke:transparent;stroke-width:10;fill:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: LabelEditorComponent, selector: "wf-label-editor", inputs: ["label", "x", "y", "isConnection", "isSwimlane"], outputs: ["labelChange", "openDialog"] }, { kind: "component", type: SwimlaneLabelComponent, selector: "[wf-swimlane-label]", inputs: ["label", "count"], outputs: ["addClick", "labelChange"] }, { kind: "component", type: SwimLanePopupComponent, selector: "wf-swimlane-popup", inputs: ["position"], outputs: ["close", "actionSelected"] }, { kind: "component", type: NodeSelectorComponent, selector: "wf-node-selector", outputs: ["select"] }] });
|
|
394
394
|
}
|
|
395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
395
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WFCanvasComponent, decorators: [{
|
|
396
396
|
type: Component,
|
|
397
397
|
args: [{ selector: 'wf-canvas', standalone: true, imports: [
|
|
398
398
|
CommonModule,
|
|
@@ -698,7 +698,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
698
698
|
(select)="onNodeSelected($event)"
|
|
699
699
|
(cancel)="onNodeSelectionCancelled()"
|
|
700
700
|
/>
|
|
701
|
-
`, styles: [".canvas-container{flex:1;overflow:auto;position:relative;background:#fff
|
|
701
|
+
`, styles: [".canvas-container{flex:1;overflow:auto;position:relative;background:#fff;&.connecting{cursor:crosshair}}.connection{path{stroke:#d36cff;stroke-width:2;fill:none;pointer-events:none}&.selected path{stroke-width:3}}.selected{:not(text){stroke-width:3}}.dragging{cursor:grabbing}.connection{pointer-events:none}.segment-group{pointer-events:all}.segment-hitarea{stroke:transparent;stroke-width:10;fill:none}\n"] }]
|
|
702
702
|
}], ctorParameters: () => [{ type: i1.WorkflowFacadeService }], propDecorators: { containerRef: [{
|
|
703
703
|
type: ViewChild,
|
|
704
704
|
args: ['container']
|
|
@@ -712,4 +712,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
712
712
|
type: HostListener,
|
|
713
713
|
args: ['click']
|
|
714
714
|
}] } });
|
|
715
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2YtY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGVzaWduZXIvY29tcG9uZW50cy93Zi1jYW52YXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFLVCxNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUEyVy9DLE1BQU0sT0FBTyxpQkFBaUI7SUFXVDtJQVZLLFlBQVksQ0FBOEI7SUFDN0MsU0FBUyxDQUEwQjtJQUU5QyxZQUFZLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDOUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQy9DLGVBQWUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMvQyxt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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwU1Q7MEZBc0R1QixZQUFZO3NCQUFuQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0QsU0FBUztzQkFBN0IsU0FBUzt1QkFBQyxRQUFRO2dCQVluQixTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVTFDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLy8gY29tcG9uZW50cy93b3JrZmxvdy9jYW52YXMvd2YtY2FudmFzLmNvbXBvbmVudC50c1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBIb3N0TGlzdGVuZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdvcmtmbG93RmFjYWRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dmLWZhY2FkZS5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IExhYmVsTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sYWJlbC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3dpbWxhbmVMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vc3dpbWxhbmUtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFN3aW1MYW5lUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3N3aW1sYW5lLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTd2ltbGFuZVN0YXRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N3aW1sYW5lLXN0YXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2tleWJvYXJkLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL25vZGUtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIE5vZGVQcmVjb25kaXRpb25TZXJ2aWNlLFxuICBQcmVjb25kaXRpb25EYXRhLFxufSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLXByZWNvbmRpdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2YtY2FudmFzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBMYWJlbEVkaXRvckNvbXBvbmVudCxcbiAgICBTd2ltbGFuZUxhYmVsQ29tcG9uZW50LFxuICAgIFN3aW1MYW5lUG9wdXBDb21wb25lbnQsXG4gICAgTm9kZVNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FudmFzLWNvbnRhaW5lclwiXG4gICAgICAjY29udGFpbmVyXG4gICAgICBbY2xhc3MuY29ubmVjdGluZ109XCJmYWNhZGUuY2FudmFzU3RhdGUoKS5pc0Nvbm5lY3RpbmdcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIChtb3VzZW1vdmUpPVwib25Nb3VzZU1vdmUoJGV2ZW50KVwiXG4gICAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoJGV2ZW50KVwiXG4gICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXG4gICAgPlxuICAgICAgPHN2Z1xuICAgICAgICAjY2FudmFzXG4gICAgICAgIFthdHRyLndpZHRoXT1cImZhY2FkZS5jYW52YXNTdGF0ZSgpLndpZHRoXCJcbiAgICAgICAgW2F0dHIuaGVpZ2h0XT1cImZhY2FkZS5jYW52YXNTdGF0ZSgpLmhlaWdodFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gR3JpZCBQYXR0ZXJuIC0tPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICA8cGF0dGVyblxuICAgICAgICAgICAgaWQ9XCJncmlkXCJcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cImZhY2FkZS5jYW52YXNTdGF0ZSgpLmdyaWRTaXplXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJmYWNhZGUuY2FudmFzU3RhdGUoKS5ncmlkU2l6ZVwiXG4gICAgICAgICAgICBwYXR0ZXJuVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgW2F0dHIuZF09XCJmYWNhZGUuZ2V0R3JpZFBhdHRlcm4oKS5wYXRoLmRcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUuZ2V0R3JpZFBhdHRlcm4oKS5wYXRoLnN0eWxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9wYXR0ZXJuPlxuICAgICAgICA8L2RlZnM+XG5cbiAgICAgICAgPCEtLSBCYWNrZ3JvdW5kIGdyaWQgLS0+XG4gICAgICAgIDxyZWN0IHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBmaWxsPVwidXJsKCNncmlkKVwiIC8+XG5cbiAgICAgICAgPCEtLSBTd2ltbGFuZXMgLS0+XG4gICAgICAgIEBmb3IgKHN3aW1sYW5lIG9mIGZhY2FkZS5zd2ltbGFuZXMoKTsgdHJhY2sgc3dpbWxhbmUuaWQpIHtcbiAgICAgICAgPGcgW2F0dHIudHJhbnNmb3JtXT1cImZhY2FkZS5nZXROb2RlVHJhbnNmb3Jtcyhzd2ltbGFuZSkubm9kZVwiPlxuICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICBbYXR0ci53aWR0aF09XCJzd2ltbGFuZS5zaXplLndpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJzd2ltbGFuZS5zaXplLmhlaWdodFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUucmVuZGVyaW5nLmdldFN3aW1sYW5lU3R5bGUoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8IS0tIDx0ZXh0XG4gICAgICAgICAgICB4PVwiMTAwXCJcbiAgICAgICAgICAgIHk9XCIyMFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUucmVuZGVyaW5nLmdldExhYmVsU3R5bGUoJ3N3aW1sYW5lJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHN3aW1sYW5lLmxhYmVsIH19XG4gICAgICAgICAgPC90ZXh0PiAtLT5cbiAgICAgICAgICA8IS0tIDxmb3JlaWduT2JqZWN0XG4gICAgICAgICAgICBbYXR0ci54XT1cImxhYmVsU2VydmljZS5nZXRMYWJlbFBvc2l0aW9uKHN3aW1sYW5lKS54XCJcbiAgICAgICAgICAgIFthdHRyLnldPVwibGFiZWxTZXJ2aWNlLmdldExhYmVsUG9zaXRpb24oc3dpbWxhbmUpLnlcIlxuICAgICAgICAgICAgd2lkdGg9XCIxNTBcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgc3R5bGU9XCJvdmVyZmxvdzogdmlzaWJsZTtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx3Zi1sYWJlbC1lZGl0b3JcbiAgICAgICAgICAgICAgW2xhYmVsXT1cInN3aW1sYW5lLmxhYmVsIHx8ICdOZXcgU3dpbWxhbmUnXCJcbiAgICAgICAgICAgICAgW3hdPVwiMFwiXG4gICAgICAgICAgICAgIFt5XT1cIjBcIlxuICAgICAgICAgICAgICBbaXNTd2ltbGFuZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKHN3aW1sYW5lLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9mb3JlaWduT2JqZWN0PiAtLT5cblxuICAgICAgICAgIDwhLS0gPGdcbiAgICAgICAgICAgIHdmLXN3aW1sYW5lLWxhYmVsXG4gICAgICAgICAgICBbbGFiZWxdPVwic3dpbWxhbmUubGFiZWxcIlxuICAgICAgICAgICAgW2NvdW50XT1cInN3aW1sYW5lU3RhdHMuZ2V0Tm9kZUNvdW50KHN3aW1sYW5lLmlkKVwiXG4gICAgICAgICAgICBbeF09XCIyMFwiXG4gICAgICAgICAgICBbeV09XCJzd2ltbGFuZS5zaXplLmhlaWdodCAtIDIwXCJcbiAgICAgICAgICAgIChhZGRDbGljayk9XCJvblN3aW1sYW5lQWRkQ2xpY2soJGV2ZW50LCBzd2ltbGFuZSlcIlxuICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKHN3aW1sYW5lLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAvPiAtLT5cblxuICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgzMCwgMjApXCI+XG4gICAgICAgICAgICA8Z1xuICAgICAgICAgICAgICB3Zi1zd2ltbGFuZS1sYWJlbFxuICAgICAgICAgICAgICBbbGFiZWxdPVwic3dpbWxhbmUubGFiZWxcIlxuICAgICAgICAgICAgICBbY291bnRdPVwic3dpbWxhbmVTdGF0cy5nZXROb2RlQ291bnQoc3dpbWxhbmUuaWQpXCJcbiAgICAgICAgICAgICAgKGFkZENsaWNrKT1cIm9uU3dpbWxhbmVBZGRDbGljaygkZXZlbnQsIHN3aW1sYW5lKVwiXG4gICAgICAgICAgICAgIChsYWJlbENoYW5nZSk9XCJ1cGRhdGVMYWJlbChzd2ltbGFuZS5pZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZz5cblxuICAgICAgICAgIDwhLS0gPGZvcmVpZ25PYmplY3RcbiAgICAgICAgICAgIFthdHRyLnhdPVwiNTBcIlxuICAgICAgICAgICAgW2F0dHIueV09XCIyMFwiXG4gICAgICAgICAgICB3aWR0aD1cIjE1MFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCI0MFwiXG4gICAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93OiB2aXNpYmxlO1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHdmLWxhYmVsLWVkaXRvclxuICAgICAgICAgICAgICBbbGFiZWxdPVwic3dpbWxhbmUubGFiZWwgfHwgJ05ldyBTd2ltbGFuZSdcIlxuICAgICAgICAgICAgICBbeF09XCIwXCJcbiAgICAgICAgICAgICAgW3ldPVwiMFwiXG4gICAgICAgICAgICAgIFtpc1N3aW1sYW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAobGFiZWxDaGFuZ2UpPVwidXBkYXRlTGFiZWwoc3dpbWxhbmUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+IC0tPlxuICAgICAgICA8L2c+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIENvbm5lY3Rpb25zIHdpdGggbGFiZWxzIC0tPlxuICAgICAgICBAZm9yIChjb25uZWN0aW9uIG9mIGZhY2FkZS5jb25uZWN0aW9ucygpOyB0cmFjayBjb25uZWN0aW9uLmlkKSB7XG4gICAgICAgIDxnXG4gICAgICAgICAgY2xhc3M9XCJjb25uZWN0aW9uXCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZmFjYWRlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKGNvbm5lY3Rpb24uaWQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDwhLS0gPHBhdGhcbiAgICAgICAgICAgIFthdHRyLmRdPVwiZmFjYWRlLmdldENvbm5lY3Rpb25QYXRoKGNvbm5lY3Rpb24ucG9pbnRzKVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJcbiAgICAgICAgICAgICAgZmFjYWRlLmdldENvbm5lY3Rpb25TdHlsZShcbiAgICAgICAgICAgICAgICBmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQoY29ubmVjdGlvbi5pZClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAvPiAtLT5cbiAgICAgICAgICA8IS0tIENvbXBsZXRlIGNvbm5lY3Rpb24gcGF0aCB3aXRoIGFycm93aGVhZCAtLT5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgW2F0dHIuZF09XCJmYWNhZGUuZ2V0Q29ubmVjdGlvblBhdGgoY29ubmVjdGlvbi5wb2ludHMpXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Q29ubmVjdGlvblN0eWxlKFxuICAgICAgICAgICAgICAgIGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChjb25uZWN0aW9uLmlkKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPCEtLSBSZW5kZXIgc2VnbWVudHMgLS0+XG4gICAgICAgICAgQGZvciAocG9pbnQgb2YgY29ubmVjdGlvbi5wb2ludHM7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7IEBpZiAoaSA8XG4gICAgICAgICAgY29ubmVjdGlvbi5wb2ludHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIDwhLS0gSW50ZXJhY3RpdmUgc2VnbWVudCAtLT5cbiAgICAgICAgICA8IS0tIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cImdldFNlZ21lbnRQYXRoKHBvaW50LCBjb25uZWN0aW9uLnBvaW50c1tpICsgMV0pXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Q29ubmVjdGlvblN0eWxlKFxuICAgICAgICAgICAgICAgIGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChjb25uZWN0aW9uLmlkKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJmYWNhZGUuZ2V0U2VnbWVudEN1cnNvcihjb25uZWN0aW9uLmlkLCBpKVwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU2VnbWVudE1vdXNlRG93bigkZXZlbnQsIGNvbm5lY3Rpb24uaWQsIGkpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY29ubmVjdGlvbi1zZWdtZW50XCJcbiAgICAgICAgICAvPiAtLT5cbiAgICAgICAgICA8Z1xuICAgICAgICAgICAgY2xhc3M9XCJzZWdtZW50LWdyb3VwXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxuICAgICAgICAgICAgICBob3ZlcmVkU2VnbWVudCA9IHsgY29ubmVjdGlvbklkOiBjb25uZWN0aW9uLmlkLCBpbmRleDogaSB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJlZFNlZ21lbnQgPSBudWxsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIEhpdCBkZXRlY3Rpb24gYXJlYSAtLT5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIFthdHRyLmRdPVwiZ2V0U2VnbWVudFBhdGgocG9pbnQsIGNvbm5lY3Rpb24ucG9pbnRzW2kgKyAxXSlcIlxuICAgICAgICAgICAgICBjbGFzcz1cInNlZ21lbnQtaGl0YXJlYVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiZmFjYWRlLmdldFNlZ21lbnRDdXJzb3IoY29ubmVjdGlvbi5pZCwgaSlcIlxuICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU2VnbWVudE1vdXNlRG93bigkZXZlbnQsIGNvbm5lY3Rpb24uaWQsIGkpXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDwhLS0gVmlzaWJsZSBzZWdtZW50IC0tPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgW2F0dHIuZF09XCJnZXRTZWdtZW50UGF0aChwb2ludCwgY29ubmVjdGlvbi5wb2ludHNbaSArIDFdKVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICAgIGZhY2FkZS5yZW5kZXJpbmcuZ2V0Q29ubmVjdGlvblNlZ21lbnRTdHlsZShcbiAgICAgICAgICAgICAgICAgIGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChjb25uZWN0aW9uLmlkKSxcbiAgICAgICAgICAgICAgICAgIGlzU2VnbWVudEhvdmVyZWQoY29ubmVjdGlvbi5pZCwgaSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgICB9IH1cbiAgICAgICAgICA8IS0tIENvbm5lY3Rpb24gTGFiZWwgLS0+XG4gICAgICAgICAgQGlmIChjb25uZWN0aW9uLmZyb21JZCAmJiBjb25uZWN0aW9uLnRvSWQpIHtcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdFxuICAgICAgICAgICAgW2F0dHIueF09XCJsYWJlbFNlcnZpY2UuZ2V0TGFiZWxQb3NpdGlvbihjb25uZWN0aW9uKS54XCJcbiAgICAgICAgICAgIFthdHRyLnldPVwibGFiZWxTZXJ2aWNlLmdldExhYmVsUG9zaXRpb24oY29ubmVjdGlvbikueVwiXG4gICAgICAgICAgICB3aWR0aD1cIjE1MFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCI0MFwiXG4gICAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93OiB2aXNpYmxlOyBwb2ludGVyLWV2ZW50czogYWxsO1wiXG4gICAgICAgICAgICBbYXR0ci50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZSgtMTAsIC0xMCknXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8d2YtbGFiZWwtZWRpdG9yXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJjb25uZWN0aW9uLmxhYmVsIHx8ICdOZXcgQWN0aW9uJ1wiXG4gICAgICAgICAgICAgIFt4XT1cIjBcIlxuICAgICAgICAgICAgICBbeV09XCIwXCJcbiAgICAgICAgICAgICAgW2lzQ29ubmVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKGNvbm5lY3Rpb24uaWQsICRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICAgICAgfVxuICAgICAgICA8L2c+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIE5vZGVzIC0tPlxuICAgICAgICBAZm9yIChub2RlIG9mIGZhY2FkZS5ub2RlcygpOyB0cmFjayBub2RlLmlkKSB7XG4gICAgICAgIDxnXG4gICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cImZhY2FkZS5nZXROb2RlVHJhbnNmb3Jtcyhub2RlKS5ub2RlXCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZmFjYWRlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUuaWQpXCJcbiAgICAgICAgICBbY2xhc3MuZHJhZ2dpbmddPVwiXG4gICAgICAgICAgICBmYWNhZGUuY2FudmFzU3RhdGUoKS5pc0RyYWdnaW5nICYmXG4gICAgICAgICAgICBmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZS5pZClcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgQHN3aXRjaCAobm9kZS50eXBlKSB7IEBjYXNlICgnc3RhcnQnKSB7XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIFthdHRyLmRdPVwiZmFjYWRlLmdldFN0YXJ0Tm9kZVBhdGhzKCkuY2lyY2xlXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Tm9kZVN0eWxlKGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlLmlkKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAaWYgKCFmYWNhZGUuaGFzT3V0Z29pbmdDb25uZWN0aW9ucyhub2RlLmlkKSkge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cImZhY2FkZS5nZXRTdGFydE5vZGVQYXRocygpLmFycm93XCJcbiAgICAgICAgICAgIFthdHRyLnRyYW5zZm9ybV09XCJmYWNhZGUuZ2V0Tm9kZVRyYW5zZm9ybXMobm9kZSkuYXJyb3dcIlxuICAgICAgICAgICAgZmlsbD1cIiNEMzZDRkZcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgfSB9QGNhc2UgKCdmb3JtJykge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cImZhY2FkZS5yZW5kZXJpbmcuZ2VuZXJhdGVOb2RlUGF0aChub2RlKVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJcbiAgICAgICAgICAgICAgZmFjYWRlLmdldE5vZGVTdHlsZShmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZS5pZCkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgfSBAY2FzZSAoJ2RlY2lzaW9uJykge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUucmVuZGVyaW5nLmdldERlY2lzaW9uUGF0aChcbiAgICAgICAgICAgICAgICBub2RlLnNpemUud2lkdGgsXG4gICAgICAgICAgICAgICAgbm9kZS5zaXplLmhlaWdodFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICAgIGZhY2FkZS5nZXROb2RlU3R5bGUoZmFjYWRlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUuaWQpKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIH0gQGNhc2UgKCdzdWJmbG93Jykge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUucmVuZGVyaW5nLmdldFN1YmZsb3dQYXRoKG5vZGUuc2l6ZS53aWR0aCwgbm9kZS5zaXplLmhlaWdodClcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJcbiAgICAgICAgICAgICAgZmFjYWRlLmdldE5vZGVTdHlsZShmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZS5pZCkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgfSBAZGVmYXVsdCB7XG4gICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cIm5vZGUuc2l6ZS53aWR0aFwiXG4gICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwibm9kZS5zaXplLmhlaWdodFwiXG4gICAgICAgICAgICBbYXR0ci5yeF09XCI0XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Tm9kZVN0eWxlKGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlLmlkKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB9IH1cblxuICAgICAgICAgIDwhLS0gTm9kZSBsYWJlbCAtLT5cbiAgICAgICAgICA8IS0tIDx0ZXh0XG4gICAgICAgICAgICBbYXR0ci54XT1cIm5vZGUuc2l6ZS53aWR0aCAvIDJcIlxuICAgICAgICAgICAgW2F0dHIueV09XCJub2RlLnNpemUuaGVpZ2h0IC8gMlwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUucmVuZGVyaW5nLmdldExhYmVsU3R5bGUobm9kZS50eXBlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgbm9kZS5sYWJlbCB9fVxuICAgICAgICAgIDwvdGV4dD4gLS0+XG4gICAgICAgICAgPGZvcmVpZ25PYmplY3RcbiAgICAgICAgICAgIFthdHRyLnhdPVwiMFwiXG4gICAgICAgICAgICBbYXR0ci55XT1cIjBcIlxuICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwibm9kZS5zaXplLndpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJub2RlLnNpemUuaGVpZ2h0XCJcbiAgICAgICAgICAgIHN0eWxlPVwib3ZlcmZsb3c6IHZpc2libGU7XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8d2YtbGFiZWwtZWRpdG9yXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJub2RlLmxhYmVsXCJcbiAgICAgICAgICAgICAgW3hdPVwibGFiZWxTZXJ2aWNlLmdldFNWR1RleHRQb3NpdGlvbihub2RlKS54XCJcbiAgICAgICAgICAgICAgW3ldPVwibGFiZWxTZXJ2aWNlLmdldFNWR1RleHRQb3NpdGlvbihub2RlKS55XCJcbiAgICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKG5vZGUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICAgIDwvZz5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gQ29ubmVjdGlvbiBwcmV2aWV3IHdpdGggYXJyb3doZWFkIC0tPlxuICAgICAgICBAaWYgKGZhY2FkZS5jYW52YXNTdGF0ZSgpLmNvbm5lY3Rpb25QcmV2aWV3KSB7XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgW2F0dHIuZF09XCJmYWNhZGUuZ2V0Q29ubmVjdGlvblByZXZpZXdQYXRoKClcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImZhY2FkZS5yZW5kZXJpbmcuZ2V0Q29ubmVjdGlvblByZXZpZXdTdHlsZSgpXCJcbiAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9zdmc+XG5cbiAgICAgIEBpZiAoc3dpbWxhbmVTdGF0cy5wb3B1cFN0YXR1cygpLmlzT3Blbikge1xuICAgICAgPHdmLXN3aW1sYW5lLXBvcHVwXG4gICAgICAgIFtwb3NpdGlvbl09XCJzd2ltbGFuZVN0YXRzLnBvcHVwU3RhdHVzKCkucG9zaXRpb25cIlxuICAgICAgICAoY2xvc2UpPVwic3dpbWxhbmVTdGF0cy5jbG9zZVBvcHVwKClcIlxuICAgICAgICAoYWN0aW9uU2VsZWN0ZWQpPVwib25Qb3B1cEFjdGlvbigkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8d2Ytbm9kZS1zZWxlY3RvclxuICAgICAgKHNlbGVjdCk9XCJvbk5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIChjYW5jZWwpPVwib25Ob2RlU2VsZWN0aW9uQ2FuY2VsbGVkKClcIlxuICAgIC8+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5jYW52YXMtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG5cbiAgICAgICAgJi5jb25uZWN0aW5nIHtcbiAgICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29ubmVjdGlvbiB7XG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogI2QzNmNmZjtcbiAgICAgICAgICBzdHJva2Utd2lkdGg6IDI7XG4gICAgICAgICAgZmlsbDogbm9uZTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VsZWN0ZWQgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zZWxlY3RlZCB7XG4gICAgICAgICYgOm5vdCh0ZXh0KSB7XG4gICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICB9XG5cbiAgICAgIC5jb25uZWN0aW9uIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5zZWdtZW50LWdyb3VwIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIH1cblxuICAgICAgLnNlZ21lbnQtaGl0YXJlYSB7XG4gICAgICAgIHN0cm9rZTogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMTA7XG4gICAgICAgIGZpbGw6IG5vbmU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV0ZDYW52YXNDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2FudmFzJykgY2FudmFzUmVmITogRWxlbWVudFJlZjxTVkdFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgbGFiZWxTZXJ2aWNlID0gaW5qZWN0KExhYmVsTWFuYWdlbWVudFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgc3dpbWxhbmVTdGF0cyA9IGluamVjdChTd2ltbGFuZVN0YXRzU2VydmljZSk7XG4gIHByaXZhdGUga2V5Ym9hcmRIYW5kbGVyID0gaW5qZWN0KEtleWJvYXJkSGFuZGxlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcHJlY29uZGl0aW9uU2VydmljZSA9IGluamVjdChOb2RlUHJlY29uZGl0aW9uU2VydmljZSk7XG5cbiAgaG92ZXJlZFNlZ21lbnQ6IHsgY29ubmVjdGlvbklkOiBzdHJpbmc7IGluZGV4OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYWNhZGU6IFdvcmtmbG93RmFjYWRlU2VydmljZSkge31cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8vIE9ubHkgaGFuZGxlIGtleWJvYXJkIGV2ZW50cyBpZiB0aGUgY2FudmFzIGlzIGZvY3VzZWRcbiAgICBpZiAodGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgdGhpcy5rZXlib2FyZEhhbmRsZXIuaGFuZGxlS2V5RG93bihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIGNsaWNrIGhhbmRsZXIgdG8gZW5zdXJlIHRoZSBjYW52YXMgY2FuIHJlY2VpdmUga2V5Ym9hcmQgZXZlbnRzXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB1cGRhdGVMYWJlbChvYmplY3RJZDogc3RyaW5nLCBuZXdMYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sYWJlbFNlcnZpY2UudXBkYXRlTGFiZWwob2JqZWN0SWQsIG5ld0xhYmVsKTtcbiAgfVxuXG4gIC8vIEV2ZW50IGhhbmRsZXJzXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mYWNhZGUuaGFuZGxlTW91c2VEb3duKGV2ZW50LCB0aGlzLmNhbnZhc1JlZik7XG4gIH1cblxuICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZmFjYWRlLmhhbmRsZU1vdXNlTW92ZShldmVudCwgdGhpcy5jYW52YXNSZWYpO1xuICB9XG5cbiAgb25Nb3VzZVVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mYWNhZGUuaGFuZGxlTW91c2VVcChldmVudCwgdGhpcy5jYW52YXNSZWYpO1xuICB9XG5cbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuZmFjYWRlLmhhbmRsZU1vdXNlTGVhdmUoKTtcbiAgfVxuXG4gIG9uU3dpbWxhbmVBZGRDbGljayhldmVudDogTW91c2VFdmVudCwgc3dpbWxhbmU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHBvc2l0aW9uOiBQb3NpdGlvbiA9IHtcbiAgICAgIHg6IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQgKyAyMCxcbiAgICAgIHk6IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCxcbiAgICB9O1xuXG4gICAgdGhpcy5zd2ltbGFuZVN0YXRzLm9wZW5Qb3B1cChwb3NpdGlvbiwgc3dpbWxhbmUuaWQpO1xuICB9XG5cbiAgb25Qb3B1cEFjdGlvbihhY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc3dpbWxhbmVJZCA9IHRoaXMuc3dpbWxhbmVTdGF0cy5wb3B1cFN0YXR1cygpLnN3aW1sYW5lSWQ7XG4gICAgaWYgKCFzd2ltbGFuZUlkKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKGFjdGlvbklkKSB7XG4gICAgICBjYXNlICdhZGQtYWJvdmUnOlxuICAgICAgICAvLyBIYW5kbGUgYWRkaW5nIHN3aW1sYW5lIGFib3ZlXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWRkLWJlbG93JzpcbiAgICAgICAgLy8gSGFuZGxlIGFkZGluZyBzd2ltbGFuZSBiZWxvd1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIC8vIEhhbmRsZSBkZWxldGlvblxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBnZXRTZWdtZW50UGF0aChzdGFydDogUG9zaXRpb24sIGVuZDogUG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgTSAke3N0YXJ0Lnh9ICR7c3RhcnQueX0gTCAke2VuZC54fSAke2VuZC55fWA7XG4gIH1cblxuICBpc1NlZ21lbnRIb3ZlcmVkKGNvbm5lY3Rpb25JZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaG92ZXJlZFNlZ21lbnQ/LmNvbm5lY3Rpb25JZCA9PT0gY29ubmVjdGlvbklkICYmXG4gICAgICB0aGlzLmhvdmVyZWRTZWdtZW50Py5pbmRleCA9PT0gaW5kZXhcbiAgICApO1xuICB9XG5cbiAgb25TZWdtZW50TW91c2VEb3duKFxuICAgIGV2ZW50OiBNb3VzZUV2ZW50LFxuICAgIGNvbm5lY3Rpb25JZDogc3RyaW5nLFxuICAgIHNlZ21lbnRJbmRleDogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZmFjYWRlLmhhbmRsZVNlZ21lbnRNb3VzZURvd24oXG4gICAgICBldmVudCxcbiAgICAgIHRoaXMuY2FudmFzUmVmLFxuICAgICAgY29ubmVjdGlvbklkLFxuICAgICAgc2VnbWVudEluZGV4XG4gICAgKTtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGVkKGRhdGE6IFByZWNvbmRpdGlvbkRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLmZhY2FkZS5maW5hbGl6ZU5vZGVDcmVhdGlvbihkYXRhKTtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGlvbkNhbmNlbGxlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZhY2FkZS5wcmVjb25kaXRpb25TZXJ2aWNlLmNsZWFyUGVuZGluZ05vZGUoKTtcbiAgfVxufVxuIl19
|
|
715
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2YtY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi13b3JrZmxvdy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGVzaWduZXIvY29tcG9uZW50cy93Zi1jYW52YXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRDtBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFLVCxNQUFNLEVBQ04sWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQ0wsdUJBQXVCLEdBRXhCLE1BQU0sdUNBQXVDLENBQUM7Ozs7QUEyVy9DLE1BQU0sT0FBTyxpQkFBaUI7SUFXVDtJQVZLLFlBQVksQ0FBOEI7SUFDN0MsU0FBUyxDQUEwQjtJQUU5QyxZQUFZLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDOUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQy9DLGVBQWUsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMvQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUVoRSxjQUFjLEdBQW1ELElBQUksQ0FBQztJQUV0RSxZQUFtQixNQUE2QjtRQUE3QixXQUFNLEdBQU4sTUFBTSxDQUF1QjtJQUFHLENBQUM7SUFHcEQsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLHVEQUF1RDtRQUN2RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELHFFQUFxRTtJQUVyRSxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLFdBQVcsQ0FBQyxLQUFpQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsUUFBYTtRQUNqRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sUUFBUSxHQUFhO1lBQ3pCLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRTtZQUNqQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRztTQUM1QixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWdCO1FBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQy9ELElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUV4QixRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssV0FBVztnQkFDZCwrQkFBK0I7Z0JBQy9CLE1BQU07WUFDUixLQUFLLFdBQVc7Z0JBQ2QsK0JBQStCO2dCQUMvQixNQUFNO1lBQ1IsS0FBSyxRQUFRO2dCQUNYLGtCQUFrQjtnQkFDbEIsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWUsRUFBRSxHQUFhO1FBQzNDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVELGdCQUFnQixDQUFDLFlBQW9CLEVBQUUsS0FBYTtRQUNsRCxPQUFPLENBQ0wsSUFBSSxDQUFDLGNBQWMsRUFBRSxZQUFZLEtBQUssWUFBWTtZQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssS0FBSyxLQUFLLENBQ3JDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLEtBQWlCLEVBQ2pCLFlBQW9CLEVBQ3BCLFlBQW9CO1FBRXBCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUNoQyxLQUFLLEVBQ0wsSUFBSSxDQUFDLFNBQVMsRUFDZCxZQUFZLEVBQ1osWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQXNCO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDckQsQ0FBQzt3R0ExR1UsaUJBQWlCOzRGQUFqQixpQkFBaUIsNFZBL1ZsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBTVCwrZEFoVEMsWUFBWSxvSEFDWixvQkFBb0IsK0pBQ3BCLHNCQUFzQixrSUFDdEIsc0JBQXNCLDBIQUN0QixxQkFBcUI7OzRGQWlXWixpQkFBaUI7a0JBelc3QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixxQkFBcUI7cUJBQ3RCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwU1Q7MEZBc0R1QixZQUFZO3NCQUFuQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0QsU0FBUztzQkFBN0IsU0FBUzt1QkFBQyxRQUFRO2dCQVluQixTQUFTO3NCQURSLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVTFDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLy8gY29tcG9uZW50cy93b3JrZmxvdy9jYW52YXMvd2YtY2FudmFzLmNvbXBvbmVudC50c1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBIb3N0TGlzdGVuZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdvcmtmbG93RmFjYWRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dmLWZhY2FkZS5zZXJ2aWNlJztcbmltcG9ydCB7IExhYmVsRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IExhYmVsTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sYWJlbC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3dpbWxhbmVMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vc3dpbWxhbmUtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFN3aW1MYW5lUG9wdXBDb21wb25lbnQgfSBmcm9tICcuL3N3aW1sYW5lLXBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTd2ltbGFuZVN0YXRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N3aW1sYW5lLXN0YXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvdHlwZXMnO1xuaW1wb3J0IHsgS2V5Ym9hcmRIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2tleWJvYXJkLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL25vZGUtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIE5vZGVQcmVjb25kaXRpb25TZXJ2aWNlLFxuICBQcmVjb25kaXRpb25EYXRhLFxufSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLXByZWNvbmRpdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2YtY2FudmFzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBMYWJlbEVkaXRvckNvbXBvbmVudCxcbiAgICBTd2ltbGFuZUxhYmVsQ29tcG9uZW50LFxuICAgIFN3aW1MYW5lUG9wdXBDb21wb25lbnQsXG4gICAgTm9kZVNlbGVjdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2FudmFzLWNvbnRhaW5lclwiXG4gICAgICAjY29udGFpbmVyXG4gICAgICBbY2xhc3MuY29ubmVjdGluZ109XCJmYWNhZGUuY2FudmFzU3RhdGUoKS5pc0Nvbm5lY3RpbmdcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIChtb3VzZW1vdmUpPVwib25Nb3VzZU1vdmUoJGV2ZW50KVwiXG4gICAgICAobW91c2V1cCk9XCJvbk1vdXNlVXAoJGV2ZW50KVwiXG4gICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmUoKVwiXG4gICAgPlxuICAgICAgPHN2Z1xuICAgICAgICAjY2FudmFzXG4gICAgICAgIFthdHRyLndpZHRoXT1cImZhY2FkZS5jYW52YXNTdGF0ZSgpLndpZHRoXCJcbiAgICAgICAgW2F0dHIuaGVpZ2h0XT1cImZhY2FkZS5jYW52YXNTdGF0ZSgpLmhlaWdodFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gR3JpZCBQYXR0ZXJuIC0tPlxuICAgICAgICA8ZGVmcz5cbiAgICAgICAgICA8cGF0dGVyblxuICAgICAgICAgICAgaWQ9XCJncmlkXCJcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cImZhY2FkZS5jYW52YXNTdGF0ZSgpLmdyaWRTaXplXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJmYWNhZGUuY2FudmFzU3RhdGUoKS5ncmlkU2l6ZVwiXG4gICAgICAgICAgICBwYXR0ZXJuVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgW2F0dHIuZF09XCJmYWNhZGUuZ2V0R3JpZFBhdHRlcm4oKS5wYXRoLmRcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUuZ2V0R3JpZFBhdHRlcm4oKS5wYXRoLnN0eWxlXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9wYXR0ZXJuPlxuICAgICAgICA8L2RlZnM+XG5cbiAgICAgICAgPCEtLSBCYWNrZ3JvdW5kIGdyaWQgLS0+XG4gICAgICAgIDxyZWN0IHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBmaWxsPVwidXJsKCNncmlkKVwiIC8+XG5cbiAgICAgICAgPCEtLSBTd2ltbGFuZXMgLS0+XG4gICAgICAgIEBmb3IgKHN3aW1sYW5lIG9mIGZhY2FkZS5zd2ltbGFuZXMoKTsgdHJhY2sgc3dpbWxhbmUuaWQpIHtcbiAgICAgICAgPGcgW2F0dHIudHJhbnNmb3JtXT1cImZhY2FkZS5nZXROb2RlVHJhbnNmb3Jtcyhzd2ltbGFuZSkubm9kZVwiPlxuICAgICAgICAgIDxyZWN0XG4gICAgICAgICAgICBbYXR0ci53aWR0aF09XCJzd2ltbGFuZS5zaXplLndpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJzd2ltbGFuZS5zaXplLmhlaWdodFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUucmVuZGVyaW5nLmdldFN3aW1sYW5lU3R5bGUoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8IS0tIDx0ZXh0XG4gICAgICAgICAgICB4PVwiMTAwXCJcbiAgICAgICAgICAgIHk9XCIyMFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUucmVuZGVyaW5nLmdldExhYmVsU3R5bGUoJ3N3aW1sYW5lJylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHN3aW1sYW5lLmxhYmVsIH19XG4gICAgICAgICAgPC90ZXh0PiAtLT5cbiAgICAgICAgICA8IS0tIDxmb3JlaWduT2JqZWN0XG4gICAgICAgICAgICBbYXR0ci54XT1cImxhYmVsU2VydmljZS5nZXRMYWJlbFBvc2l0aW9uKHN3aW1sYW5lKS54XCJcbiAgICAgICAgICAgIFthdHRyLnldPVwibGFiZWxTZXJ2aWNlLmdldExhYmVsUG9zaXRpb24oc3dpbWxhbmUpLnlcIlxuICAgICAgICAgICAgd2lkdGg9XCIxNTBcIlxuICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgc3R5bGU9XCJvdmVyZmxvdzogdmlzaWJsZTtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx3Zi1sYWJlbC1lZGl0b3JcbiAgICAgICAgICAgICAgW2xhYmVsXT1cInN3aW1sYW5lLmxhYmVsIHx8ICdOZXcgU3dpbWxhbmUnXCJcbiAgICAgICAgICAgICAgW3hdPVwiMFwiXG4gICAgICAgICAgICAgIFt5XT1cIjBcIlxuICAgICAgICAgICAgICBbaXNTd2ltbGFuZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKHN3aW1sYW5lLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9mb3JlaWduT2JqZWN0PiAtLT5cblxuICAgICAgICAgIDwhLS0gPGdcbiAgICAgICAgICAgIHdmLXN3aW1sYW5lLWxhYmVsXG4gICAgICAgICAgICBbbGFiZWxdPVwic3dpbWxhbmUubGFiZWxcIlxuICAgICAgICAgICAgW2NvdW50XT1cInN3aW1sYW5lU3RhdHMuZ2V0Tm9kZUNvdW50KHN3aW1sYW5lLmlkKVwiXG4gICAgICAgICAgICBbeF09XCIyMFwiXG4gICAgICAgICAgICBbeV09XCJzd2ltbGFuZS5zaXplLmhlaWdodCAtIDIwXCJcbiAgICAgICAgICAgIChhZGRDbGljayk9XCJvblN3aW1sYW5lQWRkQ2xpY2soJGV2ZW50LCBzd2ltbGFuZSlcIlxuICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKHN3aW1sYW5lLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAvPiAtLT5cblxuICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgzMCwgMjApXCI+XG4gICAgICAgICAgICA8Z1xuICAgICAgICAgICAgICB3Zi1zd2ltbGFuZS1sYWJlbFxuICAgICAgICAgICAgICBbbGFiZWxdPVwic3dpbWxhbmUubGFiZWxcIlxuICAgICAgICAgICAgICBbY291bnRdPVwic3dpbWxhbmVTdGF0cy5nZXROb2RlQ291bnQoc3dpbWxhbmUuaWQpXCJcbiAgICAgICAgICAgICAgKGFkZENsaWNrKT1cIm9uU3dpbWxhbmVBZGRDbGljaygkZXZlbnQsIHN3aW1sYW5lKVwiXG4gICAgICAgICAgICAgIChsYWJlbENoYW5nZSk9XCJ1cGRhdGVMYWJlbChzd2ltbGFuZS5pZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZz5cblxuICAgICAgICAgIDwhLS0gPGZvcmVpZ25PYmplY3RcbiAgICAgICAgICAgIFthdHRyLnhdPVwiNTBcIlxuICAgICAgICAgICAgW2F0dHIueV09XCIyMFwiXG4gICAgICAgICAgICB3aWR0aD1cIjE1MFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCI0MFwiXG4gICAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93OiB2aXNpYmxlO1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHdmLWxhYmVsLWVkaXRvclxuICAgICAgICAgICAgICBbbGFiZWxdPVwic3dpbWxhbmUubGFiZWwgfHwgJ05ldyBTd2ltbGFuZSdcIlxuICAgICAgICAgICAgICBbeF09XCIwXCJcbiAgICAgICAgICAgICAgW3ldPVwiMFwiXG4gICAgICAgICAgICAgIFtpc1N3aW1sYW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAobGFiZWxDaGFuZ2UpPVwidXBkYXRlTGFiZWwoc3dpbWxhbmUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+IC0tPlxuICAgICAgICA8L2c+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIENvbm5lY3Rpb25zIHdpdGggbGFiZWxzIC0tPlxuICAgICAgICBAZm9yIChjb25uZWN0aW9uIG9mIGZhY2FkZS5jb25uZWN0aW9ucygpOyB0cmFjayBjb25uZWN0aW9uLmlkKSB7XG4gICAgICAgIDxnXG4gICAgICAgICAgY2xhc3M9XCJjb25uZWN0aW9uXCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZmFjYWRlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKGNvbm5lY3Rpb24uaWQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDwhLS0gPHBhdGhcbiAgICAgICAgICAgIFthdHRyLmRdPVwiZmFjYWRlLmdldENvbm5lY3Rpb25QYXRoKGNvbm5lY3Rpb24ucG9pbnRzKVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJcbiAgICAgICAgICAgICAgZmFjYWRlLmdldENvbm5lY3Rpb25TdHlsZShcbiAgICAgICAgICAgICAgICBmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQoY29ubmVjdGlvbi5pZClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAvPiAtLT5cbiAgICAgICAgICA8IS0tIENvbXBsZXRlIGNvbm5lY3Rpb24gcGF0aCB3aXRoIGFycm93aGVhZCAtLT5cbiAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgW2F0dHIuZF09XCJmYWNhZGUuZ2V0Q29ubmVjdGlvblBhdGgoY29ubmVjdGlvbi5wb2ludHMpXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Q29ubmVjdGlvblN0eWxlKFxuICAgICAgICAgICAgICAgIGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChjb25uZWN0aW9uLmlkKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPCEtLSBSZW5kZXIgc2VnbWVudHMgLS0+XG4gICAgICAgICAgQGZvciAocG9pbnQgb2YgY29ubmVjdGlvbi5wb2ludHM7IGxldCBpID0gJGluZGV4OyB0cmFjayBpKSB7IEBpZiAoaSA8XG4gICAgICAgICAgY29ubmVjdGlvbi5wb2ludHMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIDwhLS0gSW50ZXJhY3RpdmUgc2VnbWVudCAtLT5cbiAgICAgICAgICA8IS0tIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cImdldFNlZ21lbnRQYXRoKHBvaW50LCBjb25uZWN0aW9uLnBvaW50c1tpICsgMV0pXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Q29ubmVjdGlvblN0eWxlKFxuICAgICAgICAgICAgICAgIGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChjb25uZWN0aW9uLmlkKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJmYWNhZGUuZ2V0U2VnbWVudEN1cnNvcihjb25uZWN0aW9uLmlkLCBpKVwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU2VnbWVudE1vdXNlRG93bigkZXZlbnQsIGNvbm5lY3Rpb24uaWQsIGkpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY29ubmVjdGlvbi1zZWdtZW50XCJcbiAgICAgICAgICAvPiAtLT5cbiAgICAgICAgICA8Z1xuICAgICAgICAgICAgY2xhc3M9XCJzZWdtZW50LWdyb3VwXCJcbiAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIlxuICAgICAgICAgICAgICBob3ZlcmVkU2VnbWVudCA9IHsgY29ubmVjdGlvbklkOiBjb25uZWN0aW9uLmlkLCBpbmRleDogaSB9XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaG92ZXJlZFNlZ21lbnQgPSBudWxsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIEhpdCBkZXRlY3Rpb24gYXJlYSAtLT5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgIFthdHRyLmRdPVwiZ2V0U2VnbWVudFBhdGgocG9pbnQsIGNvbm5lY3Rpb24ucG9pbnRzW2kgKyAxXSlcIlxuICAgICAgICAgICAgICBjbGFzcz1cInNlZ21lbnQtaGl0YXJlYVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiZmFjYWRlLmdldFNlZ21lbnRDdXJzb3IoY29ubmVjdGlvbi5pZCwgaSlcIlxuICAgICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uU2VnbWVudE1vdXNlRG93bigkZXZlbnQsIGNvbm5lY3Rpb24uaWQsIGkpXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDwhLS0gVmlzaWJsZSBzZWdtZW50IC0tPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgW2F0dHIuZF09XCJnZXRTZWdtZW50UGF0aChwb2ludCwgY29ubmVjdGlvbi5wb2ludHNbaSArIDFdKVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICAgIGZhY2FkZS5yZW5kZXJpbmcuZ2V0Q29ubmVjdGlvblNlZ21lbnRTdHlsZShcbiAgICAgICAgICAgICAgICAgIGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChjb25uZWN0aW9uLmlkKSxcbiAgICAgICAgICAgICAgICAgIGlzU2VnbWVudEhvdmVyZWQoY29ubmVjdGlvbi5pZCwgaSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgICB9IH1cbiAgICAgICAgICA8IS0tIENvbm5lY3Rpb24gTGFiZWwgLS0+XG4gICAgICAgICAgQGlmIChjb25uZWN0aW9uLmZyb21JZCAmJiBjb25uZWN0aW9uLnRvSWQpIHtcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdFxuICAgICAgICAgICAgW2F0dHIueF09XCJsYWJlbFNlcnZpY2UuZ2V0TGFiZWxQb3NpdGlvbihjb25uZWN0aW9uKS54XCJcbiAgICAgICAgICAgIFthdHRyLnldPVwibGFiZWxTZXJ2aWNlLmdldExhYmVsUG9zaXRpb24oY29ubmVjdGlvbikueVwiXG4gICAgICAgICAgICB3aWR0aD1cIjE1MFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCI0MFwiXG4gICAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93OiB2aXNpYmxlOyBwb2ludGVyLWV2ZW50czogYWxsO1wiXG4gICAgICAgICAgICBbYXR0ci50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZSgtMTAsIC0xMCknXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8d2YtbGFiZWwtZWRpdG9yXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJjb25uZWN0aW9uLmxhYmVsIHx8ICdOZXcgQWN0aW9uJ1wiXG4gICAgICAgICAgICAgIFt4XT1cIjBcIlxuICAgICAgICAgICAgICBbeV09XCIwXCJcbiAgICAgICAgICAgICAgW2lzQ29ubmVjdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKGNvbm5lY3Rpb24uaWQsICRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICAgICAgfVxuICAgICAgICA8L2c+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIE5vZGVzIC0tPlxuICAgICAgICBAZm9yIChub2RlIG9mIGZhY2FkZS5ub2RlcygpOyB0cmFjayBub2RlLmlkKSB7XG4gICAgICAgIDxnXG4gICAgICAgICAgW2F0dHIudHJhbnNmb3JtXT1cImZhY2FkZS5nZXROb2RlVHJhbnNmb3Jtcyhub2RlKS5ub2RlXCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZmFjYWRlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUuaWQpXCJcbiAgICAgICAgICBbY2xhc3MuZHJhZ2dpbmddPVwiXG4gICAgICAgICAgICBmYWNhZGUuY2FudmFzU3RhdGUoKS5pc0RyYWdnaW5nICYmXG4gICAgICAgICAgICBmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZS5pZClcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgQHN3aXRjaCAobm9kZS50eXBlKSB7IEBjYXNlICgnc3RhcnQnKSB7XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIFthdHRyLmRdPVwiZmFjYWRlLmdldFN0YXJ0Tm9kZVBhdGhzKCkuY2lyY2xlXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Tm9kZVN0eWxlKGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlLmlkKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICBAaWYgKCFmYWNhZGUuaGFzT3V0Z29pbmdDb25uZWN0aW9ucyhub2RlLmlkKSkge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cImZhY2FkZS5nZXRTdGFydE5vZGVQYXRocygpLmFycm93XCJcbiAgICAgICAgICAgIFthdHRyLnRyYW5zZm9ybV09XCJmYWNhZGUuZ2V0Tm9kZVRyYW5zZm9ybXMobm9kZSkuYXJyb3dcIlxuICAgICAgICAgICAgZmlsbD1cIiNEMzZDRkZcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgfSB9QGNhc2UgKCdmb3JtJykge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cImZhY2FkZS5yZW5kZXJpbmcuZ2VuZXJhdGVOb2RlUGF0aChub2RlKVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJcbiAgICAgICAgICAgICAgZmFjYWRlLmdldE5vZGVTdHlsZShmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZS5pZCkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgfSBAY2FzZSAoJ2RlY2lzaW9uJykge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUucmVuZGVyaW5nLmdldERlY2lzaW9uUGF0aChcbiAgICAgICAgICAgICAgICBub2RlLnNpemUud2lkdGgsXG4gICAgICAgICAgICAgICAgbm9kZS5zaXplLmhlaWdodFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICAgIGZhY2FkZS5nZXROb2RlU3R5bGUoZmFjYWRlLnNlbGVjdGlvbi5pc1NlbGVjdGVkKG5vZGUuaWQpKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIH0gQGNhc2UgKCdzdWJmbG93Jykge1xuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBbYXR0ci5kXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUucmVuZGVyaW5nLmdldFN1YmZsb3dQYXRoKG5vZGUuc2l6ZS53aWR0aCwgbm9kZS5zaXplLmhlaWdodClcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJcbiAgICAgICAgICAgICAgZmFjYWRlLmdldE5vZGVTdHlsZShmYWNhZGUuc2VsZWN0aW9uLmlzU2VsZWN0ZWQobm9kZS5pZCkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgfSBAZGVmYXVsdCB7XG4gICAgICAgICAgPHJlY3RcbiAgICAgICAgICAgIFthdHRyLndpZHRoXT1cIm5vZGUuc2l6ZS53aWR0aFwiXG4gICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwibm9kZS5zaXplLmhlaWdodFwiXG4gICAgICAgICAgICBbYXR0ci5yeF09XCI0XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIlxuICAgICAgICAgICAgICBmYWNhZGUuZ2V0Tm9kZVN0eWxlKGZhY2FkZS5zZWxlY3Rpb24uaXNTZWxlY3RlZChub2RlLmlkKSlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICB9IH1cblxuICAgICAgICAgIDwhLS0gTm9kZSBsYWJlbCAtLT5cbiAgICAgICAgICA8IS0tIDx0ZXh0XG4gICAgICAgICAgICBbYXR0ci54XT1cIm5vZGUuc2l6ZS53aWR0aCAvIDJcIlxuICAgICAgICAgICAgW2F0dHIueV09XCJub2RlLnNpemUuaGVpZ2h0IC8gMlwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJmYWNhZGUucmVuZGVyaW5nLmdldExhYmVsU3R5bGUobm9kZS50eXBlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgbm9kZS5sYWJlbCB9fVxuICAgICAgICAgIDwvdGV4dD4gLS0+XG4gICAgICAgICAgPGZvcmVpZ25PYmplY3RcbiAgICAgICAgICAgIFthdHRyLnhdPVwiMFwiXG4gICAgICAgICAgICBbYXR0ci55XT1cIjBcIlxuICAgICAgICAgICAgW2F0dHIud2lkdGhdPVwibm9kZS5zaXplLndpZHRoXCJcbiAgICAgICAgICAgIFthdHRyLmhlaWdodF09XCJub2RlLnNpemUuaGVpZ2h0XCJcbiAgICAgICAgICAgIHN0eWxlPVwib3ZlcmZsb3c6IHZpc2libGU7XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8d2YtbGFiZWwtZWRpdG9yXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJub2RlLmxhYmVsXCJcbiAgICAgICAgICAgICAgW3hdPVwibGFiZWxTZXJ2aWNlLmdldFNWR1RleHRQb3NpdGlvbihub2RlKS54XCJcbiAgICAgICAgICAgICAgW3ldPVwibGFiZWxTZXJ2aWNlLmdldFNWR1RleHRQb3NpdGlvbihub2RlKS55XCJcbiAgICAgICAgICAgICAgKGxhYmVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKG5vZGUuaWQsICRldmVudClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICAgIDwvZz5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gQ29ubmVjdGlvbiBwcmV2aWV3IHdpdGggYXJyb3doZWFkIC0tPlxuICAgICAgICBAaWYgKGZhY2FkZS5jYW52YXNTdGF0ZSgpLmNvbm5lY3Rpb25QcmV2aWV3KSB7XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgW2F0dHIuZF09XCJmYWNhZGUuZ2V0Q29ubmVjdGlvblByZXZpZXdQYXRoKClcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImZhY2FkZS5yZW5kZXJpbmcuZ2V0Q29ubmVjdGlvblByZXZpZXdTdHlsZSgpXCJcbiAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9zdmc+XG5cbiAgICAgIEBpZiAoc3dpbWxhbmVTdGF0cy5wb3B1cFN0YXR1cygpLmlzT3Blbikge1xuICAgICAgPHdmLXN3aW1sYW5lLXBvcHVwXG4gICAgICAgIFtwb3NpdGlvbl09XCJzd2ltbGFuZVN0YXRzLnBvcHVwU3RhdHVzKCkucG9zaXRpb25cIlxuICAgICAgICAoY2xvc2UpPVwic3dpbWxhbmVTdGF0cy5jbG9zZVBvcHVwKClcIlxuICAgICAgICAoYWN0aW9uU2VsZWN0ZWQpPVwib25Qb3B1cEFjdGlvbigkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8d2Ytbm9kZS1zZWxlY3RvclxuICAgICAgKHNlbGVjdCk9XCJvbk5vZGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIChjYW5jZWwpPVwib25Ob2RlU2VsZWN0aW9uQ2FuY2VsbGVkKClcIlxuICAgIC8+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5jYW52YXMtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG5cbiAgICAgICAgJi5jb25uZWN0aW5nIHtcbiAgICAgICAgICBjdXJzb3I6IGNyb3NzaGFpcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuY29ubmVjdGlvbiB7XG4gICAgICAgIHBhdGgge1xuICAgICAgICAgIHN0cm9rZTogI2QzNmNmZjtcbiAgICAgICAgICBzdHJva2Utd2lkdGg6IDI7XG4gICAgICAgICAgZmlsbDogbm9uZTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc2VsZWN0ZWQgcGF0aCB7XG4gICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5zZWxlY3RlZCB7XG4gICAgICAgICYgOm5vdCh0ZXh0KSB7XG4gICAgICAgICAgc3Ryb2tlLXdpZHRoOiAzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5kcmFnZ2luZyB7XG4gICAgICAgIGN1cnNvcjogZ3JhYmJpbmc7XG4gICAgICB9XG5cbiAgICAgIC5jb25uZWN0aW9uIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5zZWdtZW50LWdyb3VwIHtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgIH1cblxuICAgICAgLnNlZ21lbnQtaGl0YXJlYSB7XG4gICAgICAgIHN0cm9rZTogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMTA7XG4gICAgICAgIGZpbGw6IG5vbmU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV0ZDYW52YXNDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2FudmFzJykgY2FudmFzUmVmITogRWxlbWVudFJlZjxTVkdFbGVtZW50PjtcblxuICBwcm90ZWN0ZWQgbGFiZWxTZXJ2aWNlID0gaW5qZWN0KExhYmVsTWFuYWdlbWVudFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgc3dpbWxhbmVTdGF0cyA9IGluamVjdChTd2ltbGFuZVN0YXRzU2VydmljZSk7XG4gIHByaXZhdGUga2V5Ym9hcmRIYW5kbGVyID0gaW5qZWN0KEtleWJvYXJkSGFuZGxlclNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcHJlY29uZGl0aW9uU2VydmljZSA9IGluamVjdChOb2RlUHJlY29uZGl0aW9uU2VydmljZSk7XG5cbiAgaG92ZXJlZFNlZ21lbnQ6IHsgY29ubmVjdGlvbklkOiBzdHJpbmc7IGluZGV4OiBudW1iZXIgfSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYWNhZGU6IFdvcmtmbG93RmFjYWRlU2VydmljZSkge31cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8vIE9ubHkgaGFuZGxlIGtleWJvYXJkIGV2ZW50cyBpZiB0aGUgY2FudmFzIGlzIGZvY3VzZWRcbiAgICBpZiAodGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgdGhpcy5rZXlib2FyZEhhbmRsZXIuaGFuZGxlS2V5RG93bihldmVudCk7XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIGNsaWNrIGhhbmRsZXIgdG8gZW5zdXJlIHRoZSBjYW52YXMgY2FuIHJlY2VpdmUga2V5Ym9hcmQgZXZlbnRzXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICB1cGRhdGVMYWJlbChvYmplY3RJZDogc3RyaW5nLCBuZXdMYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sYWJlbFNlcnZpY2UudXBkYXRlTGFiZWwob2JqZWN0SWQsIG5ld0xhYmVsKTtcbiAgfVxuXG4gIC8vIEV2ZW50IGhhbmRsZXJzXG4gIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mYWNhZGUuaGFuZGxlTW91c2VEb3duKGV2ZW50LCB0aGlzLmNhbnZhc1JlZik7XG4gIH1cblxuICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZmFjYWRlLmhhbmRsZU1vdXNlTW92ZShldmVudCwgdGhpcy5jYW52YXNSZWYpO1xuICB9XG5cbiAgb25Nb3VzZVVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5mYWNhZGUuaGFuZGxlTW91c2VVcChldmVudCwgdGhpcy5jYW52YXNSZWYpO1xuICB9XG5cbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuZmFjYWRlLmhhbmRsZU1vdXNlTGVhdmUoKTtcbiAgfVxuXG4gIG9uU3dpbWxhbmVBZGRDbGljayhldmVudDogTW91c2VFdmVudCwgc3dpbWxhbmU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmNhbnZhc1JlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHBvc2l0aW9uOiBQb3NpdGlvbiA9IHtcbiAgICAgIHg6IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQgKyAyMCxcbiAgICAgIHk6IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCxcbiAgICB9O1xuXG4gICAgdGhpcy5zd2ltbGFuZVN0YXRzLm9wZW5Qb3B1cChwb3NpdGlvbiwgc3dpbWxhbmUuaWQpO1xuICB9XG5cbiAgb25Qb3B1cEFjdGlvbihhY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc3dpbWxhbmVJZCA9IHRoaXMuc3dpbWxhbmVTdGF0cy5wb3B1cFN0YXR1cygpLnN3aW1sYW5lSWQ7XG4gICAgaWYgKCFzd2ltbGFuZUlkKSByZXR1cm47XG5cbiAgICBzd2l0Y2ggKGFjdGlvbklkKSB7XG4gICAgICBjYXNlICdhZGQtYWJvdmUnOlxuICAgICAgICAvLyBIYW5kbGUgYWRkaW5nIHN3aW1sYW5lIGFib3ZlXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYWRkLWJlbG93JzpcbiAgICAgICAgLy8gSGFuZGxlIGFkZGluZyBzd2ltbGFuZSBiZWxvd1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIC8vIEhhbmRsZSBkZWxldGlvblxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBnZXRTZWdtZW50UGF0aChzdGFydDogUG9zaXRpb24sIGVuZDogUG9zaXRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBgTSAke3N0YXJ0Lnh9ICR7c3RhcnQueX0gTCAke2VuZC54fSAke2VuZC55fWA7XG4gIH1cblxuICBpc1NlZ21lbnRIb3ZlcmVkKGNvbm5lY3Rpb25JZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaG92ZXJlZFNlZ21lbnQ/LmNvbm5lY3Rpb25JZCA9PT0gY29ubmVjdGlvbklkICYmXG4gICAgICB0aGlzLmhvdmVyZWRTZWdtZW50Py5pbmRleCA9PT0gaW5kZXhcbiAgICApO1xuICB9XG5cbiAgb25TZWdtZW50TW91c2VEb3duKFxuICAgIGV2ZW50OiBNb3VzZUV2ZW50LFxuICAgIGNvbm5lY3Rpb25JZDogc3RyaW5nLFxuICAgIHNlZ21lbnRJbmRleDogbnVtYmVyXG4gICk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZmFjYWRlLmhhbmRsZVNlZ21lbnRNb3VzZURvd24oXG4gICAgICBldmVudCxcbiAgICAgIHRoaXMuY2FudmFzUmVmLFxuICAgICAgY29ubmVjdGlvbklkLFxuICAgICAgc2VnbWVudEluZGV4XG4gICAgKTtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGVkKGRhdGE6IFByZWNvbmRpdGlvbkRhdGEpOiB2b2lkIHtcbiAgICB0aGlzLmZhY2FkZS5maW5hbGl6ZU5vZGVDcmVhdGlvbihkYXRhKTtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGlvbkNhbmNlbGxlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZhY2FkZS5wcmVjb25kaXRpb25TZXJ2aWNlLmNsZWFyUGVuZGluZ05vZGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -59,8 +59,8 @@ export class WFDesignerComponent {
|
|
|
59
59
|
// The node selection was canceled, clear the pending node
|
|
60
60
|
this.facade.preconditionService.clearPendingNode();
|
|
61
61
|
}
|
|
62
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WFDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: WFDesignerComponent, isStandalone: true, selector: "wf-designer", inputs: { workflowId: { classPropertyName: "workflowId", publicName: "workflowId", isSignal: true, isRequired: true, transformFunction: null } }, providers: [EnvironmentService], ngImport: i0, template: `
|
|
64
64
|
<div class="workflow-designer">
|
|
65
65
|
<div class="workflow-header">
|
|
66
66
|
<h1 class="workflow-title">{{ workflowName() }}</h1>
|
|
@@ -94,7 +94,7 @@ export class WFDesignerComponent {
|
|
|
94
94
|
</div>
|
|
95
95
|
`, isInline: true, styles: [".workflow-designer{display:flex;flex-direction:column;height:100vh;background:#fff}.workflow-header{padding:1rem;border-bottom:1px solid #e5e7eb}.workflow-title{font-size:1.25rem;font-weight:600;color:#111827}.workflow-description{font-size:.875rem;color:#6b7280;margin-top:.25rem}.workflow-actions{padding:.75rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end}.save-button{padding:.5rem 1rem;background-color:#9333ea;color:#fff;font-weight:500;border-radius:.375rem;border:none;cursor:pointer;transition:background-color .2s}.save-button:hover{background-color:#7e22ce}.save-button:disabled{background-color:#d8b4fe;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WFToolbarComponent, selector: "wf-toolbar", inputs: ["selectedTool"], outputs: ["toolSelected"] }, { kind: "component", type: WFCanvasComponent, selector: "wf-canvas" }, { kind: "component", type: NodeSelectorComponent, selector: "wf-node-selector", outputs: ["select"] }] });
|
|
96
96
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WFDesignerComponent, decorators: [{
|
|
98
98
|
type: Component,
|
|
99
99
|
args: [{ selector: 'wf-designer', standalone: true, imports: [
|
|
100
100
|
CommonModule,
|
|
@@ -18,8 +18,8 @@ export class WFToolbarComponent {
|
|
|
18
18
|
// If same tool is selected, deselect it
|
|
19
19
|
this.toolSelected.emit(this.selectedTool === toolId ? null : toolId);
|
|
20
20
|
}
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WFToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: WFToolbarComponent, isStandalone: true, selector: "wf-toolbar", inputs: { selectedTool: "selectedTool" }, outputs: { toolSelected: "toolSelected" }, ngImport: i0, template: `
|
|
23
23
|
<div class="toolbar">
|
|
24
24
|
@for (item of toolbarItems; track item.id) {
|
|
25
25
|
<button
|
|
@@ -31,9 +31,9 @@ export class WFToolbarComponent {
|
|
|
31
31
|
</button>
|
|
32
32
|
}
|
|
33
33
|
</div>
|
|
34
|
-
`, isInline: true, styles: [".toolbar{display:flex;padding:.5rem;gap:.5rem;background:#fff;border:1px solid #aa00ff;border-radius:7px;box-shadow:4px 4px 4px 3px #00000040}.tool-button{display:flex;align-items:center;justify-content:center;border:1px solid #e5e7eb;border-radius:.375rem;background:#fff;cursor:pointer;transition:all .2s
|
|
34
|
+
`, isInline: true, styles: [".toolbar{display:flex;padding:.5rem;gap:.5rem;background:#fff;border:1px solid #aa00ff;border-radius:7px;box-shadow:4px 4px 4px 3px #00000040}.tool-button{display:flex;align-items:center;justify-content:center;border:1px solid #e5e7eb;border-radius:.375rem;background:#fff;cursor:pointer;transition:all .2s;&:hover{background:#f9fafb}&.active{background:#f3e8ff;border-color:#d8b4fe}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WFToolbarComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{ selector: 'wf-toolbar', standalone: true, imports: [CommonModule], template: `
|
|
39
39
|
<div class="toolbar">
|
|
@@ -47,10 +47,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
47
47
|
</button>
|
|
48
48
|
}
|
|
49
49
|
</div>
|
|
50
|
-
`, styles: [".toolbar{display:flex;padding:.5rem;gap:.5rem;background:#fff;border:1px solid #aa00ff;border-radius:7px;box-shadow:4px 4px 4px 3px #00000040}.tool-button{display:flex;align-items:center;justify-content:center;border:1px solid #e5e7eb;border-radius:.375rem;background:#fff;cursor:pointer;transition:all .2s
|
|
50
|
+
`, styles: [".toolbar{display:flex;padding:.5rem;gap:.5rem;background:#fff;border:1px solid #aa00ff;border-radius:7px;box-shadow:4px 4px 4px 3px #00000040}.tool-button{display:flex;align-items:center;justify-content:center;border:1px solid #e5e7eb;border-radius:.375rem;background:#fff;cursor:pointer;transition:all .2s;&:hover{background:#f9fafb}&.active{background:#f3e8ff;border-color:#d8b4fe}}\n"] }]
|
|
51
51
|
}], propDecorators: { selectedTool: [{
|
|
52
52
|
type: Input
|
|
53
53
|
}], toolSelected: [{
|
|
54
54
|
type: Output
|
|
55
55
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2YtdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4td29ya2Zsb3ctdWkvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2lnbmVyL2NvbXBvbmVudHMvd2YtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQStEL0MsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixZQUFZLEdBQThCLElBQUksQ0FBQztJQUM5QyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7SUFFdkUsWUFBWSxHQUFrQjtRQUM1QixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7UUFDakUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1FBQ3hELEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTtRQUMzRCxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7UUFDckQscUVBQXFFO1FBQ3JFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtRQUM5RCxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7S0FDL0QsQ0FBQztJQUVGLFlBQVksQ0FBQyxNQUEwQjtRQUNyQyx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0FqQlUsa0JBQWtCOzRGQUFsQixrQkFBa0IsMkpBbERuQjs7Ozs7Ozs7Ozs7O0dBWVQsMmNBYlMsWUFBWTs7NEZBbURYLGtCQUFrQjtrQkF0RDlCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOzs7Ozs7Ozs7Ozs7R0FZVDs4QkF1Q1EsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gY29tcG9uZW50cy93b3JrZmxvdy90b29sYmFyL3dmLXRvb2xiYXIuY29tcG9uZW50LnRzXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFdvcmtmbG93T2JqZWN0VHlwZSB9IGZyb20gJy4uL21vZGVscy90eXBlcyc7XG5cbmludGVyZmFjZSBUb29sYmFySXRlbSB7XG4gIGlkOiBXb3JrZmxvd09iamVjdFR5cGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2YtdG9vbGJhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIHRvb2xiYXJJdGVtczsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInRvb2wtYnV0dG9uXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFRvb2wgPT09IGl0ZW0uaWRcIlxuICAgICAgICAoY2xpY2spPVwib25Ub29sU2VsZWN0KGl0ZW0uaWQpXCJcbiAgICAgID5cbiAgICAgICAgPGltZyBbc3JjXT1cIml0ZW0uaWNvblwiIFthbHRdPVwiaXRlbS5sYWJlbFwiIGNsYXNzPVwidG9vbC1pY29uXCIgLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAudG9vbGJhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYWEwMGZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDRweCA0cHggNHB4IDNweCAjMDAwMDAwNDA7XG4gICAgICB9XG5cbiAgICAgIC50b29sLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2Y5ZmFmYjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjNlOGZmO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogI2Q4YjRmZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAudG9vbC1pY29uIHtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXRlRvb2xiYXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzZWxlY3RlZFRvb2w6IFdvcmtmbG93T2JqZWN0VHlwZSB8IG51bGwgPSBudWxsO1xuICBAT3V0cHV0KCkgdG9vbFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxXb3JrZmxvd09iamVjdFR5cGUgfCBudWxsPigpO1xuXG4gIHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXSA9IFtcbiAgICB7IGlkOiAnc3dpbWxhbmUnLCBsYWJlbDogJ1N3aW1sYW5lJywgaWNvbjogJ2ljb25zL3N3aW1sYW5lLnN2ZycgfSxcbiAgICB7IGlkOiAnc3RhZ2UnLCBsYWJlbDogJ1N0YWdlJywgaWNvbjogJ2ljb25zL3N0YWdlLnN2ZycgfSxcbiAgICB7IGlkOiAnYWN0aW9uJywgbGFiZWw6ICdBY3Rpb24nLCBpY29uOiAnaWNvbnMvYWN0aW9uLnN2ZycgfSxcbiAgICB7IGlkOiAnZm9ybScsIGxhYmVsOiAnRm9ybScsIGljb246ICdpY29ucy9mb3JtLnN2ZycgfSxcbiAgICAvLyB7IGlkOiAnZGVjaXNpb24nLCBsYWJlbDogJ0RlY2lzaW9uJywgaWNvbjogJ2ljb25zL2RlY2lzaW9uLnN2ZycgfSxcbiAgICB7IGlkOiAnZGVjaXNpb24nLCBsYWJlbDogJ0RlY2lzaW9uJywgaWNvbjogJ2ljb25zL3N0YWdlLnN2ZycgfSxcbiAgICB7IGlkOiAnc3ViZmxvdycsIGxhYmVsOiAnU3ViZmxvdycsIGljb246ICdpY29ucy9zdWJmbG93LnN2ZycgfSxcbiAgXTtcblxuICBvblRvb2xTZWxlY3QodG9vbElkOiBXb3JrZmxvd09iamVjdFR5cGUpOiB2b2lkIHtcbiAgICAvLyBJZiBzYW1lIHRvb2wgaXMgc2VsZWN0ZWQsIGRlc2VsZWN0IGl0XG4gICAgdGhpcy50b29sU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkVG9vbCA9PT0gdG9vbElkID8gbnVsbCA6IHRvb2xJZCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -38,10 +38,10 @@ export class CanvasStateService {
|
|
|
38
38
|
connectionPreview: null,
|
|
39
39
|
}));
|
|
40
40
|
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
42
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CanvasStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CanvasStateService, providedIn: 'root' });
|
|
43
43
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CanvasStateService, decorators: [{
|
|
45
45
|
type: Injectable,
|
|
46
46
|
args: [{
|
|
47
47
|
providedIn: 'root',
|
package/esm2022/src/lib/components/designer/services/connection-segment-interaction.service.mjs
CHANGED
|
@@ -96,10 +96,10 @@ export class ConnectionSegmentInteractionService {
|
|
|
96
96
|
// Return appropriate cursor based on segment orientation
|
|
97
97
|
return point.y === nextPoint.y ? 'ns-resize' : 'ew-resize';
|
|
98
98
|
}
|
|
99
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
100
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
99
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionSegmentInteractionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
100
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionSegmentInteractionService, providedIn: 'root' });
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionSegmentInteractionService, decorators: [{
|
|
103
103
|
type: Injectable,
|
|
104
104
|
args: [{
|
|
105
105
|
providedIn: 'root',
|
|
@@ -254,10 +254,10 @@ export class ConnectionService {
|
|
|
254
254
|
findTargetNode(point) {
|
|
255
255
|
return this.nodeFinder.findNodeAtPoint(point);
|
|
256
256
|
}
|
|
257
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
258
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
257
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
258
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionService, providedIn: 'root' });
|
|
259
259
|
}
|
|
260
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConnectionService, decorators: [{
|
|
261
261
|
type: Injectable,
|
|
262
262
|
args: [{
|
|
263
263
|
providedIn: 'root',
|
|
@@ -31,10 +31,10 @@ export class KeyboardHandlerService {
|
|
|
31
31
|
// Remove the object and its connections
|
|
32
32
|
this.selection.deleteSelectedObject();
|
|
33
33
|
}
|
|
34
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
35
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyboardHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyboardHandlerService, providedIn: 'root' });
|
|
36
36
|
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyboardHandlerService, decorators: [{
|
|
38
38
|
type: Injectable,
|
|
39
39
|
args: [{
|
|
40
40
|
providedIn: 'root',
|
|
@@ -54,10 +54,10 @@ export class LabelManagementService {
|
|
|
54
54
|
}
|
|
55
55
|
return { x: centerX, y: centerY };
|
|
56
56
|
}
|
|
57
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
58
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LabelManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LabelManagementService, providedIn: 'root' });
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LabelManagementService, decorators: [{
|
|
61
61
|
type: Injectable,
|
|
62
62
|
args: [{
|
|
63
63
|
providedIn: 'root',
|
|
@@ -18,10 +18,10 @@ export class NodeFinderService {
|
|
|
18
18
|
isProtectedNode(node) {
|
|
19
19
|
return ['start', 'swimlane'].includes(node.type);
|
|
20
20
|
}
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeFinderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeFinderService, providedIn: 'root' });
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeFinderService, decorators: [{
|
|
25
25
|
type: Injectable,
|
|
26
26
|
args: [{
|
|
27
27
|
providedIn: 'root',
|
|
@@ -96,10 +96,10 @@ export class NodeInteractionService {
|
|
|
96
96
|
isProtectedNode(node) {
|
|
97
97
|
return ['start', 'swimlane'].includes(node.type);
|
|
98
98
|
}
|
|
99
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
100
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
99
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeInteractionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
100
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeInteractionService, providedIn: 'root' });
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeInteractionService, decorators: [{
|
|
103
103
|
type: Injectable,
|
|
104
104
|
args: [{
|
|
105
105
|
providedIn: 'root',
|
|
@@ -97,10 +97,10 @@ export class NodePreconditionService {
|
|
|
97
97
|
},
|
|
98
98
|
];
|
|
99
99
|
}
|
|
100
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
101
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
100
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodePreconditionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
101
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodePreconditionService, providedIn: 'root' });
|
|
102
102
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodePreconditionService, decorators: [{
|
|
104
104
|
type: Injectable,
|
|
105
105
|
args: [{
|
|
106
106
|
providedIn: 'root',
|
|
@@ -84,10 +84,10 @@ export class NodeSelectionService {
|
|
|
84
84
|
// Clear the selection
|
|
85
85
|
this.clearSelection();
|
|
86
86
|
}
|
|
87
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
88
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
87
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeSelectionService, providedIn: 'root' });
|
|
89
89
|
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NodeSelectionService, decorators: [{
|
|
91
91
|
type: Injectable,
|
|
92
92
|
args: [{
|
|
93
93
|
providedIn: 'root',
|
|
@@ -155,10 +155,10 @@ export class OrthogonalRouterService {
|
|
|
155
155
|
}
|
|
156
156
|
return false;
|
|
157
157
|
}
|
|
158
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
159
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
158
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrthogonalRouterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
159
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrthogonalRouterService, providedIn: 'root' });
|
|
160
160
|
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrthogonalRouterService, decorators: [{
|
|
162
162
|
type: Injectable,
|
|
163
163
|
args: [{
|
|
164
164
|
providedIn: 'root',
|
|
@@ -33,10 +33,10 @@ export class PositionUpdateService {
|
|
|
33
33
|
})
|
|
34
34
|
.filter((update) => update !== null);
|
|
35
35
|
}
|
|
36
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
37
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PositionUpdateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PositionUpdateService, providedIn: 'root' });
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PositionUpdateService, decorators: [{
|
|
40
40
|
type: Injectable,
|
|
41
41
|
args: [{
|
|
42
42
|
providedIn: 'root',
|
|
@@ -224,10 +224,10 @@ export class RenderingService {
|
|
|
224
224
|
// Using the exact dimensions from your SVG
|
|
225
225
|
return `M1.19873 ${height * 0.252887}L${width / 2} 0.57735L${width - 1.19873} ${height * 0.252887}V${height * 0.747113}L${width / 2} ${height - 0.57735}L1.19873 ${height * 0.747113}V${height * 0.252887}`;
|
|
226
226
|
}
|
|
227
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
228
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
227
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RenderingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
228
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RenderingService, providedIn: 'root' });
|
|
229
229
|
}
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RenderingService, decorators: [{
|
|
231
231
|
type: Injectable,
|
|
232
232
|
args: [{
|
|
233
233
|
providedIn: 'root',
|
|
@@ -133,10 +133,10 @@ export class SwimlaneManagementService {
|
|
|
133
133
|
// If no swimlane is below, add to the end
|
|
134
134
|
return sortedSwimlanes.length * sortedSwimlanes[0].size.height;
|
|
135
135
|
}
|
|
136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
137
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
136
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneManagementService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
137
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneManagementService, providedIn: 'root' });
|
|
138
138
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneManagementService, decorators: [{
|
|
140
140
|
type: Injectable,
|
|
141
141
|
args: [{
|
|
142
142
|
providedIn: 'root',
|
|
@@ -32,10 +32,10 @@ export class SwimlaneStatsService {
|
|
|
32
32
|
closePopup() {
|
|
33
33
|
this.popupState.update((state) => ({ ...state, isOpen: false }));
|
|
34
34
|
}
|
|
35
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
36
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneStatsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneStatsService, providedIn: 'root' });
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SwimlaneStatsService, decorators: [{
|
|
39
39
|
type: Injectable,
|
|
40
40
|
args: [{
|
|
41
41
|
providedIn: 'root',
|
|
@@ -18,10 +18,10 @@ export class ViewportService {
|
|
|
18
18
|
getObjectTransform(position) {
|
|
19
19
|
return `translate(${position.x}, ${position.y})`;
|
|
20
20
|
}
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewportService, providedIn: 'root' });
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewportService, decorators: [{
|
|
25
25
|
type: Injectable,
|
|
26
26
|
args: [{
|
|
27
27
|
providedIn: 'root',
|
|
@@ -227,10 +227,10 @@ export class WorkflowFacadeService {
|
|
|
227
227
|
initializeWorkflow() {
|
|
228
228
|
this.workflowState.initializeWorkflow();
|
|
229
229
|
}
|
|
230
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
231
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
230
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowFacadeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
231
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowFacadeService, providedIn: 'root' });
|
|
232
232
|
}
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkflowFacadeService, decorators: [{
|
|
234
234
|
type: Injectable,
|
|
235
235
|
args: [{
|
|
236
236
|
providedIn: 'root',
|