@tuki-io/tuki-widgets 0.0.177 → 0.0.178
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/contact-center/cc-script-editor/cc-script-editor.component.d.ts +53 -0
- package/contact-center/cc-script-editor/cc-script-editor.module.d.ts +20 -0
- package/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.d.ts +35 -0
- package/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.d.ts +38 -0
- package/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.d.ts +34 -0
- package/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.d.ts +9 -0
- package/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.d.ts +27 -0
- package/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.d.ts +27 -0
- package/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.d.ts +14 -0
- package/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.d.ts +11 -0
- package/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.d.ts +24 -0
- package/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.d.ts +66 -0
- package/contact-center/cc-script-editor/constants/cytoscape.config.d.ts +2 -0
- package/contact-center/cc-script-editor/constants/wxcc-api.constants.d.ts +15 -0
- package/contact-center/cc-script-editor/services/wxcc-activity-creation.service.d.ts +21 -0
- package/contact-center/cc-script-editor/services/wxcc-activity-manage.service.d.ts +8 -0
- package/contact-center/cc-script-editor/services/wxcc-flow-api.service.d.ts +43 -0
- package/contact-center/cc-script-editor/services/wxcc2graph.service.d.ts +42 -0
- package/contact-center/cc-script-editor/types/extended-activity.d.ts +47 -0
- package/contact-center/cc-script-editor/types/wxcc-activity.d.ts +96 -0
- package/contact-center/cc-script-editor/types/wxcc.d.ts +161 -0
- package/contact-center/cc-script-editor/utils/node-html-template.d.ts +3 -0
- package/contact-center/cc-script-editor/utils/node-mappings.d.ts +54 -0
- package/contact-center/public-api.d.ts +2 -0
- package/esm2020/contact-center/cc-script-editor/cc-script-editor.component.mjs +193 -0
- package/esm2020/contact-center/cc-script-editor/cc-script-editor.module.mjs +83 -0
- package/esm2020/contact-center/cc-script-editor/components/dialogs/add-node-dialog/add-node-dialog.component.mjs +60 -0
- package/esm2020/contact-center/cc-script-editor/components/dialogs/link-node-dialog/link-node-dialog.component.mjs +83 -0
- package/esm2020/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.component.mjs +104 -0
- package/esm2020/contact-center/cc-script-editor/components/floating-toolbar/floating-toolbar.module.mjs +28 -0
- package/esm2020/contact-center/cc-script-editor/components/node-action-toolbar/node-action-toolbar.component.mjs +65 -0
- package/esm2020/contact-center/cc-script-editor/components/node-details-sidebar/node-details-sidebar.component.mjs +97 -0
- package/esm2020/contact-center/cc-script-editor/components/node-search-panel/node-search-panel.component.mjs +43 -0
- package/esm2020/contact-center/cc-script-editor/components/wxcc-actions-bar/wxcc-actions-bar.component.mjs +27 -0
- package/esm2020/contact-center/cc-script-editor/components/wxcc-file-selection-bar/wxcc-file-selection-bar.component.mjs +61 -0
- package/esm2020/contact-center/cc-script-editor/components/wxcc-flowchart/wxcc-flowchart.component.mjs +434 -0
- package/esm2020/contact-center/cc-script-editor/constants/cytoscape.config.mjs +72 -0
- package/esm2020/contact-center/cc-script-editor/constants/wxcc-api.constants.mjs +14 -0
- package/esm2020/contact-center/cc-script-editor/mock/data/QWC_ir.json +912 -0
- package/esm2020/contact-center/cc-script-editor/services/wxcc-activity-creation.service.mjs +82 -0
- package/esm2020/contact-center/cc-script-editor/services/wxcc-activity-manage.service.mjs +162 -0
- package/esm2020/contact-center/cc-script-editor/services/wxcc-flow-api.service.mjs +79 -0
- package/esm2020/contact-center/cc-script-editor/services/wxcc2graph.service.mjs +144 -0
- package/esm2020/contact-center/cc-script-editor/types/extended-activity.mjs +4 -0
- package/esm2020/contact-center/cc-script-editor/types/wxcc-activity.mjs +2 -0
- package/esm2020/contact-center/cc-script-editor/types/wxcc.mjs +6 -0
- package/esm2020/contact-center/cc-script-editor/utils/node-html-template.mjs +76 -0
- package/esm2020/contact-center/cc-script-editor/utils/node-mappings.mjs +109 -0
- package/esm2020/contact-center/public-api.mjs +3 -1
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2948 -3
- package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2974 -3
- package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
|
|
2
|
+
import { CREATABLE_ACTIVITY_DISPLAY_TYPES, getCreatableActivityDisplayTypeByValue, } from '../../../utils/node-mappings';
|
|
3
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
export class AddNodeDialogComponent {
|
|
7
|
+
constructor(data, dialogRef) {
|
|
8
|
+
this.data = data;
|
|
9
|
+
this.dialogRef = dialogRef;
|
|
10
|
+
this.activityDisplayTypes = CREATABLE_ACTIVITY_DISPLAY_TYPES;
|
|
11
|
+
this.selectedActivityType = CREATABLE_ACTIVITY_DISPLAY_TYPES[0];
|
|
12
|
+
this.nodeName = '';
|
|
13
|
+
this.selectedParentIds = [];
|
|
14
|
+
this.selectedChildIds = [];
|
|
15
|
+
this.availableNodes = [];
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.availableNodes = this.data.availableNodes;
|
|
19
|
+
}
|
|
20
|
+
resetForm() {
|
|
21
|
+
this.selectedActivityType = CREATABLE_ACTIVITY_DISPLAY_TYPES[0];
|
|
22
|
+
this.nodeName = '';
|
|
23
|
+
this.selectedParentIds = [];
|
|
24
|
+
this.selectedChildIds = [];
|
|
25
|
+
}
|
|
26
|
+
onActivityTypeChange(value) {
|
|
27
|
+
this.selectedActivityType = getCreatableActivityDisplayTypeByValue(value);
|
|
28
|
+
}
|
|
29
|
+
onClose() {
|
|
30
|
+
this.dialogRef.close();
|
|
31
|
+
}
|
|
32
|
+
onSubmit() {
|
|
33
|
+
if (!this.nodeName.trim()) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const newNodeData = {
|
|
37
|
+
activityTypeName: this.selectedActivityType.activityName,
|
|
38
|
+
name: this.nodeName.trim(),
|
|
39
|
+
parentNodeIds: this.selectedParentIds,
|
|
40
|
+
childNodeIds: this.selectedChildIds
|
|
41
|
+
};
|
|
42
|
+
this.dialogRef.close(newNodeData);
|
|
43
|
+
}
|
|
44
|
+
trackByValue(index, type) {
|
|
45
|
+
return type.value;
|
|
46
|
+
}
|
|
47
|
+
trackByNodeId(index, node) {
|
|
48
|
+
return node.id;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
AddNodeDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AddNodeDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
AddNodeDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AddNodeDialogComponent, selector: "add-node-dialog", ngImport: i0, template: "", styles: [".form-group{margin-bottom:1.25rem}.form-group:last-child{margin-bottom:0}.form-group .form-label{display:block;font-size:.75rem;font-weight:600;color:#24292e;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.form-group .form-control{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid #d1d5da;border-radius:6px;background:white;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group .form-control:focus{outline:none;border-color:#0366d6;box-shadow:0 0 0 3px #0366d61a}.form-group .form-control::placeholder{color:#959da5}.form-group textarea.form-control{resize:vertical;min-height:80px}.form-group .display-type-preview{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f6f8fa;border-radius:6px;margin-bottom:.5rem}.form-group .display-type-preview .type-icon{width:20px;height:20px}.form-group .display-type-preview .type-label{font-size:.875rem;font-weight:500;color:#24292e}.form-group .node-selection-list{max-height:150px;overflow-y:auto;border:1px solid #d1d5da;border-radius:6px;background:#fafbfc}.form-group .node-selection-list .node-selection-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background .15s;border-bottom:1px solid #e1e4e8}.form-group .node-selection-list .node-selection-item:last-child{border-bottom:none}.form-group .node-selection-list .node-selection-item:hover{background:#f0f3f6}.form-group .node-selection-list .node-selection-item.selected{background:rgba(3,102,214,.08)}.form-group .node-selection-list .node-selection-item .node-name{font-size:.8125rem;color:#24292e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-group .node-selection-list .empty-list{padding:1rem;text-align:center;color:#586069;font-size:.8125rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AddNodeDialogComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'add-node-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "", styles: [".form-group{margin-bottom:1.25rem}.form-group:last-child{margin-bottom:0}.form-group .form-label{display:block;font-size:.75rem;font-weight:600;color:#24292e;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.form-group .form-control{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid #d1d5da;border-radius:6px;background:white;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group .form-control:focus{outline:none;border-color:#0366d6;box-shadow:0 0 0 3px #0366d61a}.form-group .form-control::placeholder{color:#959da5}.form-group textarea.form-control{resize:vertical;min-height:80px}.form-group .display-type-preview{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#f6f8fa;border-radius:6px;margin-bottom:.5rem}.form-group .display-type-preview .type-icon{width:20px;height:20px}.form-group .display-type-preview .type-label{font-size:.875rem;font-weight:500;color:#24292e}.form-group .node-selection-list{max-height:150px;overflow-y:auto;border:1px solid #d1d5da;border-radius:6px;background:#fafbfc}.form-group .node-selection-list .node-selection-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background .15s;border-bottom:1px solid #e1e4e8}.form-group .node-selection-list .node-selection-item:last-child{border-bottom:none}.form-group .node-selection-list .node-selection-item:hover{background:#f0f3f6}.form-group .node-selection-list .node-selection-item.selected{background:rgba(3,102,214,.08)}.form-group .node-selection-list .node-selection-item .node-name{font-size:.8125rem;color:#24292e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-group .node-selection-list .empty-list{padding:1rem;text-align:center;color:#586069;font-size:.8125rem}\n"] }]
|
|
56
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
57
|
+
type: Inject,
|
|
58
|
+
args: [MAT_DIALOG_DATA]
|
|
59
|
+
}] }, { type: i1.MatDialogRef }]; } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9jb250YWN0LWNlbnRlci9jYy1zY3JpcHQtZWRpdG9yL2NvbXBvbmVudHMvZGlhbG9ncy9hZGQtbm9kZS1kaWFsb2cvYWRkLW5vZGUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9jb250YWN0LWNlbnRlci9jYy1zY3JpcHQtZWRpdG9yL2NvbXBvbmVudHMvZGlhbG9ncy9hZGQtbm9kZS1kaWFsb2cvYWRkLW5vZGUtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFDSCxnQ0FBZ0MsRUFFaEMsc0NBQXNDLEdBQ3pDLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBZ0J6RSxNQUFNLE9BQU8sc0JBQXNCO0lBUy9CLFlBQ29DLElBQW9ELEVBQzVFLFNBQStDO1FBRHZCLFNBQUksR0FBSixJQUFJLENBQWdEO1FBQzVFLGNBQVMsR0FBVCxTQUFTLENBQXNDO1FBVmxELHlCQUFvQixHQUFHLGdDQUFnQyxDQUFDO1FBRWpFLHlCQUFvQixHQUFpQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Qsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUNoQyxtQkFBYyxHQUErQixFQUFFLENBQUM7SUFLNUMsQ0FBQztJQUVMLFFBQVE7UUFDSixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ25ELENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsc0NBQXNDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBRUQsTUFBTSxXQUFXLEdBQWdCO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZO1lBQ3hELElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtZQUMxQixhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtZQUNyQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN0QyxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhLEVBQUUsSUFBa0M7UUFDMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYSxFQUFFLElBQThCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDOztvSEF0RFEsc0JBQXNCLGtCQVVuQixlQUFlO3dHQVZsQixzQkFBc0IsdURDdEJuQyxFQUFBOzRGRHNCYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0ksaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07OzBCQVkxQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ1JFQVRBQkxFX0FDVElWSVRZX0RJU1BMQVlfVFlQRVMsXHJcbiAgICBDcmVhdGFibGVBY3Rpdml0eURpc3BsYXlUeXBlLFxyXG4gICAgZ2V0Q3JlYXRhYmxlQWN0aXZpdHlEaXNwbGF5VHlwZUJ5VmFsdWUsXHJcbn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvbm9kZS1tYXBwaW5ncyc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZXh0ZW5kZWQtYWN0aXZpdHknO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOZXdOb2RlRGF0YSB7XHJcbiAgICBhY3Rpdml0eVR5cGVOYW1lOiBDcmVhdGFibGVBY3Rpdml0eURpc3BsYXlUeXBlWydhY3Rpdml0eU5hbWUnXTtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHBhcmVudE5vZGVJZHM6IHN0cmluZ1tdO1xyXG4gICAgY2hpbGROb2RlSWRzOiBzdHJpbmdbXTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FkZC1ub2RlLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWRkLW5vZGUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2FkZC1ub2RlLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZE5vZGVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcmVhZG9ubHkgYWN0aXZpdHlEaXNwbGF5VHlwZXMgPSBDUkVBVEFCTEVfQUNUSVZJVFlfRElTUExBWV9UWVBFUztcclxuXHJcbiAgICBzZWxlY3RlZEFjdGl2aXR5VHlwZTogQ3JlYXRhYmxlQWN0aXZpdHlEaXNwbGF5VHlwZSA9IENSRUFUQUJMRV9BQ1RJVklUWV9ESVNQTEFZX1RZUEVTWzBdO1xyXG4gICAgbm9kZU5hbWUgPSAnJztcclxuICAgIHNlbGVjdGVkUGFyZW50SWRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRDaGlsZElkczogc3RyaW5nW10gPSBbXTtcclxuICAgIGF2YWlsYWJsZU5vZGVzOiBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogeyBhdmFpbGFibGVOb2RlczogUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5W10gfSxcclxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEFkZE5vZGVEaWFsb2dDb21wb25lbnQ+XHJcbiAgICApIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXZhaWxhYmxlTm9kZXMgPSB0aGlzLmRhdGEuYXZhaWxhYmxlTm9kZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldEZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFjdGl2aXR5VHlwZSA9IENSRUFUQUJMRV9BQ1RJVklUWV9ESVNQTEFZX1RZUEVTWzBdO1xyXG4gICAgICAgIHRoaXMubm9kZU5hbWUgPSAnJztcclxuICAgICAgICB0aGlzLnNlbGVjdGVkUGFyZW50SWRzID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoaWxkSWRzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgb25BY3Rpdml0eVR5cGVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBY3Rpdml0eVR5cGUgPSBnZXRDcmVhdGFibGVBY3Rpdml0eURpc3BsYXlUeXBlQnlWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3VibWl0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5ub2RlTmFtZS50cmltKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbmV3Tm9kZURhdGE6IE5ld05vZGVEYXRhID0ge1xyXG4gICAgICAgICAgICBhY3Rpdml0eVR5cGVOYW1lOiB0aGlzLnNlbGVjdGVkQWN0aXZpdHlUeXBlLmFjdGl2aXR5TmFtZSxcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5ub2RlTmFtZS50cmltKCksXHJcbiAgICAgICAgICAgIHBhcmVudE5vZGVJZHM6IHRoaXMuc2VsZWN0ZWRQYXJlbnRJZHMsXHJcbiAgICAgICAgICAgIGNoaWxkTm9kZUlkczogdGhpcy5zZWxlY3RlZENoaWxkSWRzXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UobmV3Tm9kZURhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlWYWx1ZShpbmRleDogbnVtYmVyLCB0eXBlOiBDcmVhdGFibGVBY3Rpdml0eURpc3BsYXlUeXBlKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdHlwZS52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5Tm9kZUlkKGluZGV4OiBudW1iZXIsIG5vZGU6IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGUuaWQ7XHJcbiAgICB9XHJcbn1cclxuIiwiIl19
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Output } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
export class LinkNodeDialogComponent {
|
|
6
|
+
constructor(data, dialogRef) {
|
|
7
|
+
this.data = data;
|
|
8
|
+
this.dialogRef = dialogRef;
|
|
9
|
+
// @Input() isOpen = false;
|
|
10
|
+
// @Input() sourceNode: ActivityData | null = null;
|
|
11
|
+
this.availableNodes = [];
|
|
12
|
+
this.close = new EventEmitter();
|
|
13
|
+
this.linkNodes = new EventEmitter();
|
|
14
|
+
this.selectedTargetId = null;
|
|
15
|
+
this.linkLabel = '';
|
|
16
|
+
this.searchQuery = '';
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.availableNodes = this.data.availableNodes;
|
|
20
|
+
this.sourceNode = this.data.sourceNode;
|
|
21
|
+
}
|
|
22
|
+
get filteredNodes() {
|
|
23
|
+
if (!this.sourceNode) {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
if (!this.searchQuery.trim()) {
|
|
27
|
+
return this.availableNodes.filter(n => n && n.id !== this.sourceNode.id);
|
|
28
|
+
}
|
|
29
|
+
const query = this.searchQuery.toLowerCase();
|
|
30
|
+
return this.availableNodes.filter(n => n && n.id !== this.sourceNode.id &&
|
|
31
|
+
((n.name && n.name.toLowerCase().includes(query)) ||
|
|
32
|
+
(n.wxccActivityName && n.wxccActivityName.toLowerCase().includes(query))));
|
|
33
|
+
}
|
|
34
|
+
ngOnChanges(changes) {
|
|
35
|
+
// if (changes['isOpen'] && this.isOpen) {
|
|
36
|
+
// this.resetForm();
|
|
37
|
+
// }
|
|
38
|
+
}
|
|
39
|
+
resetForm() {
|
|
40
|
+
this.selectedTargetId = null;
|
|
41
|
+
this.linkLabel = '';
|
|
42
|
+
this.searchQuery = '';
|
|
43
|
+
}
|
|
44
|
+
selectNode(nodeId) {
|
|
45
|
+
this.selectedTargetId = nodeId;
|
|
46
|
+
}
|
|
47
|
+
isSelected(nodeId) {
|
|
48
|
+
return this.selectedTargetId === nodeId;
|
|
49
|
+
}
|
|
50
|
+
onClose() {
|
|
51
|
+
this.dialogRef.close();
|
|
52
|
+
}
|
|
53
|
+
onSubmit() {
|
|
54
|
+
if (!this.sourceNode || !this.selectedTargetId) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const linkData = {
|
|
58
|
+
sourceNodeId: this.sourceNode.id,
|
|
59
|
+
targetNodeId: this.selectedTargetId,
|
|
60
|
+
label: this.linkLabel.trim() || undefined
|
|
61
|
+
};
|
|
62
|
+
this.dialogRef.close(linkData);
|
|
63
|
+
// this.linkNodes.emit(linkData);
|
|
64
|
+
// this.onClose();
|
|
65
|
+
}
|
|
66
|
+
trackByNodeId(index, node) {
|
|
67
|
+
return node.id;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
LinkNodeDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LinkNodeDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
LinkNodeDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LinkNodeDialogComponent, selector: "link-node-dialog", outputs: { close: "close", linkNodes: "linkNodes" }, usesOnChanges: true, ngImport: i0, template: "", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.source-node-info{margin-bottom:1.25rem}.source-node-info .node-preview{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:#f0f3f6;border-radius:6px}.source-node-info .node-preview .node-name{font-size:.875rem;font-weight:600;color:#24292e}.source-node-info .node-preview .node-type{font-size:.75rem;color:#586069}.form-group{margin-bottom:1.25rem}.form-group:last-child{margin-bottom:0}.form-group .form-label{display:block;font-size:.75rem;font-weight:600;color:#24292e;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.form-group .form-control{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid #d1d5da;border-radius:6px;background:white;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group .form-control:focus{outline:none;border-color:#0985a0;box-shadow:0 0 0 3px #0366d61a}.form-group .form-control::placeholder{color:#959da5}.form-group .search-input{margin-bottom:.75rem}.form-group .node-selection-list{max-height:200px;overflow-y:auto;border:1px solid #d1d5da;border-radius:6px;background:#fafbfc}.form-group .node-selection-list .node-selection-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;transition:background .15s;border-bottom:1px solid #e1e4e8}.form-group .node-selection-list .node-selection-item:last-child{border-bottom:none}.form-group .node-selection-list .node-selection-item:hover{background:#f0f3f6}.form-group .node-selection-list .node-selection-item.selected{background:rgba(0,155,183,.08)}.form-group .node-selection-list .node-selection-item.selected .node-radio{border-color:#0985a0}.form-group .node-selection-list .node-selection-item.selected .node-radio .radio-inner{background:#0985A0}.form-group .node-selection-list .node-selection-item .node-radio{width:18px;height:18px;border:2px solid #d1d5da;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s}.form-group .node-selection-list .node-selection-item .node-radio .radio-inner{width:10px;height:10px;border-radius:50%}.form-group .node-selection-list .node-selection-item .node-details{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.form-group .node-selection-list .node-selection-item .node-details .node-name{font-size:.8125rem;font-weight:500;color:#24292e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-group .node-selection-list .node-selection-item .node-details .node-type{font-size:.6875rem;color:#586569}.form-group .node-selection-list .empty-list{padding:1.5rem;text-align:center;color:#586569;font-size:.8125rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LinkNodeDialogComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{ selector: 'link-node-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.source-node-info{margin-bottom:1.25rem}.source-node-info .node-preview{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:#f0f3f6;border-radius:6px}.source-node-info .node-preview .node-name{font-size:.875rem;font-weight:600;color:#24292e}.source-node-info .node-preview .node-type{font-size:.75rem;color:#586069}.form-group{margin-bottom:1.25rem}.form-group:last-child{margin-bottom:0}.form-group .form-label{display:block;font-size:.75rem;font-weight:600;color:#24292e;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.form-group .form-control{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid #d1d5da;border-radius:6px;background:white;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group .form-control:focus{outline:none;border-color:#0985a0;box-shadow:0 0 0 3px #0366d61a}.form-group .form-control::placeholder{color:#959da5}.form-group .search-input{margin-bottom:.75rem}.form-group .node-selection-list{max-height:200px;overflow-y:auto;border:1px solid #d1d5da;border-radius:6px;background:#fafbfc}.form-group .node-selection-list .node-selection-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;transition:background .15s;border-bottom:1px solid #e1e4e8}.form-group .node-selection-list .node-selection-item:last-child{border-bottom:none}.form-group .node-selection-list .node-selection-item:hover{background:#f0f3f6}.form-group .node-selection-list .node-selection-item.selected{background:rgba(0,155,183,.08)}.form-group .node-selection-list .node-selection-item.selected .node-radio{border-color:#0985a0}.form-group .node-selection-list .node-selection-item.selected .node-radio .radio-inner{background:#0985A0}.form-group .node-selection-list .node-selection-item .node-radio{width:18px;height:18px;border:2px solid #d1d5da;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s}.form-group .node-selection-list .node-selection-item .node-radio .radio-inner{width:10px;height:10px;border-radius:50%}.form-group .node-selection-list .node-selection-item .node-details{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.form-group .node-selection-list .node-selection-item .node-details .node-name{font-size:.8125rem;font-weight:500;color:#24292e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-group .node-selection-list .node-selection-item .node-details .node-type{font-size:.6875rem;color:#586569}.form-group .node-selection-list .empty-list{padding:1.5rem;text-align:center;color:#586569;font-size:.8125rem}\n"] }]
|
|
75
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
76
|
+
type: Inject,
|
|
77
|
+
args: [MAT_DIALOG_DATA]
|
|
78
|
+
}] }, { type: i1.MatDialogRef }]; }, propDecorators: { close: [{
|
|
79
|
+
type: Output
|
|
80
|
+
}], linkNodes: [{
|
|
81
|
+
type: Output
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1ub2RlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL2RpYWxvZ3MvbGluay1ub2RlLWRpYWxvZy9saW5rLW5vZGUtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9jb250YWN0LWNlbnRlci9jYy1zY3JpcHQtZWRpdG9yL2NvbXBvbmVudHMvZGlhbG9ncy9saW5rLW5vZGUtZGlhbG9nL2xpbmstbm9kZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUE0QixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7OztBQWV6RSxNQUFNLE9BQU8sdUJBQXVCO0lBY2hDLFlBQ29DLElBRy9CLEVBQ2dCLFNBQWdEO1FBSmpDLFNBQUksR0FBSixJQUFJLENBR25DO1FBQ2dCLGNBQVMsR0FBVCxTQUFTLENBQXVDO1FBbEJyRSwyQkFBMkI7UUFDM0IsbURBQW1EO1FBRW5ELG1CQUFjLEdBQStCLEVBQUUsQ0FBQztRQUd0QyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFdkQscUJBQWdCLEdBQWtCLElBQUksQ0FBQztRQUN2QyxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFRZCxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEIsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzdFO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ2xDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFXLENBQUMsRUFBRTtZQUNqQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDaEQsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQzdFLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLDBDQUEwQztRQUMxQyx3QkFBd0I7UUFDeEIsSUFBSTtJQUNSLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR0QsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzVDLE9BQU87U0FDVjtRQUVELE1BQU0sUUFBUSxHQUFpQjtZQUMzQixZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2hDLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLFNBQVM7U0FDNUMsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLGlDQUFpQztRQUNqQyxrQkFBa0I7SUFDdEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhLEVBQUUsSUFBOEI7UUFDdkQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7O3FIQXZGUSx1QkFBdUIsa0JBZXBCLGVBQWU7eUdBZmxCLHVCQUF1QixrSUNoQnBDLEVBQUE7NEZEZ0JhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs7MEJBaUIxQyxNQUFNOzJCQUFDLGVBQWU7dUVBUmpCLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZXh0ZW5kZWQtYWN0aXZpdHknO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaW5rTm9kZURhdGEge1xyXG4gICAgc291cmNlTm9kZUlkOiBzdHJpbmc7XHJcbiAgICB0YXJnZXROb2RlSWQ6IHN0cmluZztcclxuICAgIGxhYmVsPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGluay1ub2RlLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGluay1ub2RlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9saW5rLW5vZGUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlua05vZGVEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICAvLyBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcclxuICAgIC8vIEBJbnB1dCgpIHNvdXJjZU5vZGU6IEFjdGl2aXR5RGF0YSB8IG51bGwgPSBudWxsO1xyXG4gICAgXHJcbiAgICBhdmFpbGFibGVOb2RlczogUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5W10gPSBbXTtcclxuICAgIHNvdXJjZU5vZGUhOiBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHk7XHJcblxyXG4gICAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGxpbmtOb2RlcyA9IG5ldyBFdmVudEVtaXR0ZXI8TGlua05vZGVEYXRhPigpO1xyXG5cclxuICAgIHNlbGVjdGVkVGFyZ2V0SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gICAgbGlua0xhYmVsID0gJyc7XHJcbiAgICBzZWFyY2hRdWVyeSA9ICcnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YToge1xyXG4gICAgICAgICAgICBzb3VyY2VOb2RlOiBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHksXHJcbiAgICAgICAgICAgIGF2YWlsYWJsZU5vZGVzOiBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHlbXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxMaW5rTm9kZURpYWxvZ0NvbXBvbmVudD5cclxuICAgICkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmF2YWlsYWJsZU5vZGVzID0gdGhpcy5kYXRhLmF2YWlsYWJsZU5vZGVzO1xyXG4gICAgICAgIHRoaXMuc291cmNlTm9kZSA9IHRoaXMuZGF0YS5zb3VyY2VOb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmaWx0ZXJlZE5vZGVzKCk6IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eVtdIHtcclxuICAgICAgICBpZiAoIXRoaXMuc291cmNlTm9kZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICghdGhpcy5zZWFyY2hRdWVyeS50cmltKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTm9kZXMuZmlsdGVyKG4gPT4gbiAmJiBuLmlkICE9PSB0aGlzLnNvdXJjZU5vZGUhLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLnNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTm9kZXMuZmlsdGVyKG4gPT4gXHJcbiAgICAgICAgICAgIG4gJiYgbi5pZCAhPT0gdGhpcy5zb3VyY2VOb2RlIS5pZCAmJiBcclxuICAgICAgICAgICAgKChuLm5hbWUgJiYgbi5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpKSB8fCBcclxuICAgICAgICAgICAgIChuLnd4Y2NBY3Rpdml0eU5hbWUgJiYgbi53eGNjQWN0aXZpdHlOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICAvLyBpZiAoY2hhbmdlc1snaXNPcGVuJ10gJiYgdGhpcy5pc09wZW4pIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5yZXNldEZvcm0oKTtcclxuICAgICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldEZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldElkID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxpbmtMYWJlbCA9ICcnO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3ROb2RlKG5vZGVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhcmdldElkID0gbm9kZUlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2VsZWN0ZWQobm9kZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRhcmdldElkID09PSBub2RlSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gICAgb25TdWJtaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNvdXJjZU5vZGUgfHwgIXRoaXMuc2VsZWN0ZWRUYXJnZXRJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBsaW5rRGF0YTogTGlua05vZGVEYXRhID0ge1xyXG4gICAgICAgICAgICBzb3VyY2VOb2RlSWQ6IHRoaXMuc291cmNlTm9kZS5pZCxcclxuICAgICAgICAgICAgdGFyZ2V0Tm9kZUlkOiB0aGlzLnNlbGVjdGVkVGFyZ2V0SWQsXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmxpbmtMYWJlbC50cmltKCkgfHwgdW5kZWZpbmVkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UobGlua0RhdGEpO1xyXG4gICAgICAgIC8vIHRoaXMubGlua05vZGVzLmVtaXQobGlua0RhdGEpO1xyXG4gICAgICAgIC8vIHRoaXMub25DbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlOb2RlSWQoaW5kZXg6IG51bWJlciwgbm9kZTogUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gbm9kZS5pZDtcclxuICAgIH1cclxufVxyXG4iLCIiXX0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/tooltip";
|
|
6
|
+
const DEFAULT_VISIBILITY = {
|
|
7
|
+
resetView: true,
|
|
8
|
+
zoomIn: true,
|
|
9
|
+
zoomOut: true,
|
|
10
|
+
export: true
|
|
11
|
+
};
|
|
12
|
+
export class FloatingToolBarComponent {
|
|
13
|
+
constructor(sanitizer) {
|
|
14
|
+
this.sanitizer = sanitizer;
|
|
15
|
+
this.visibility = DEFAULT_VISIBILITY;
|
|
16
|
+
this.resetViewChange = new EventEmitter();
|
|
17
|
+
this.zoomInChange = new EventEmitter();
|
|
18
|
+
this.zoomOutChange = new EventEmitter();
|
|
19
|
+
this.exportImageChange = new EventEmitter();
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
const mergedVisibility = { ...DEFAULT_VISIBILITY, ...this.visibility };
|
|
23
|
+
const allItems = [
|
|
24
|
+
{
|
|
25
|
+
id: 'reset-view',
|
|
26
|
+
visibilityKey: 'resetView',
|
|
27
|
+
label: 'UCCX.BUTTONS.RESET_VIEW',
|
|
28
|
+
svg: this.sanitizer.bypassSecurityTrustHtml(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
29
|
+
<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path>
|
|
30
|
+
<path d="M21 3v5h-5"></path>
|
|
31
|
+
<path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path>
|
|
32
|
+
<path d="M3 21v-5h5"></path>
|
|
33
|
+
</svg>`),
|
|
34
|
+
action: () => this.resetView()
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'zoom-in',
|
|
38
|
+
visibilityKey: 'zoomIn',
|
|
39
|
+
label: 'UCCX.BUTTONS.ZOOM_IN',
|
|
40
|
+
svg: this.sanitizer.bypassSecurityTrustHtml(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
41
|
+
<circle cx="11" cy="11" r="8"></circle>
|
|
42
|
+
<path d="m21 21-4.35-4.35"></path>
|
|
43
|
+
<path d="M11 8v6M8 11h6"></path>
|
|
44
|
+
</svg>`),
|
|
45
|
+
action: () => this.zoomIn()
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: 'zoom-out',
|
|
49
|
+
visibilityKey: 'zoomOut',
|
|
50
|
+
label: 'UCCX.BUTTONS.ZOOM_OUT',
|
|
51
|
+
svg: this.sanitizer.bypassSecurityTrustHtml(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
52
|
+
<circle cx="11" cy="11" r="8"></circle>
|
|
53
|
+
<path d="m21 21-4.35-4.35"></path>
|
|
54
|
+
<path d="M8 11h6"></path>
|
|
55
|
+
</svg>`),
|
|
56
|
+
action: () => this.zoomOut()
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'export',
|
|
60
|
+
visibilityKey: 'export',
|
|
61
|
+
label: 'UCCX.BUTTONS.EXPORT',
|
|
62
|
+
svg: this.sanitizer.bypassSecurityTrustHtml(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
63
|
+
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
|
|
64
|
+
<polyline points="7 10 12 15 17 10"></polyline>
|
|
65
|
+
<line x1="12" y1="15" x2="12" y2="3"></line>
|
|
66
|
+
</svg>`),
|
|
67
|
+
action: () => this.exportImage()
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
this.toolbarConfig = allItems.filter(item => mergedVisibility[item.visibilityKey] !== false);
|
|
71
|
+
}
|
|
72
|
+
resetView() {
|
|
73
|
+
this.resetViewChange.emit();
|
|
74
|
+
}
|
|
75
|
+
zoomIn() {
|
|
76
|
+
this.zoomInChange.emit();
|
|
77
|
+
}
|
|
78
|
+
zoomOut() {
|
|
79
|
+
this.zoomOutChange.emit();
|
|
80
|
+
}
|
|
81
|
+
exportImage() {
|
|
82
|
+
this.exportImageChange.emit();
|
|
83
|
+
}
|
|
84
|
+
trackById(index, item) {
|
|
85
|
+
return item.id;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
FloatingToolBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingToolBarComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
+
FloatingToolBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FloatingToolBarComponent, selector: "graph-floating-toolbar", inputs: { visibility: "visibility" }, outputs: { resetViewChange: "resetViewChange", zoomInChange: "zoomInChange", zoomOutChange: "zoomOutChange", exportImageChange: "exportImageChange" }, ngImport: i0, template: "<div class=\"toolbar-wrapper\" role=\"toolbar\">\r\n <ng-container *ngFor=\"let item of toolbarConfig; trackBy: trackById\">\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"item.label\"\r\n [matTooltip]=\"item.label\"\r\n matTooltipPosition=\"left\"\r\n class=\"toolbar-button\"\r\n (click)=\"item.action()\">\r\n <div [innerHTML]=\"item.svg\"></div>\r\n </button>\r\n </ng-container>\r\n</div>", styles: [".toolbar-wrapper{background-color:#ffffffac;position:absolute;display:flex;flex-direction:column;gap:.5rem;bottom:0;right:0;padding:.5rem;width:-moz-fit-content;width:fit-content;margin:1rem;border-radius:1rem;box-shadow:2px 4px 15px #0000002d;z-index:999}.toolbar-wrapper button{outline:none;border:none;border-radius:.5rem;background-color:#f6f6f6;padding:.5rem;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;transition:all .2s ease}.toolbar-wrapper button:hover{background-color:#eefff8;transform:scale(1.05)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingToolBarComponent, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{ selector: 'graph-floating-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"toolbar-wrapper\" role=\"toolbar\">\r\n <ng-container *ngFor=\"let item of toolbarConfig; trackBy: trackById\">\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"item.label\"\r\n [matTooltip]=\"item.label\"\r\n matTooltipPosition=\"left\"\r\n class=\"toolbar-button\"\r\n (click)=\"item.action()\">\r\n <div [innerHTML]=\"item.svg\"></div>\r\n </button>\r\n </ng-container>\r\n</div>", styles: [".toolbar-wrapper{background-color:#ffffffac;position:absolute;display:flex;flex-direction:column;gap:.5rem;bottom:0;right:0;padding:.5rem;width:-moz-fit-content;width:fit-content;margin:1rem;border-radius:1rem;box-shadow:2px 4px 15px #0000002d;z-index:999}.toolbar-wrapper button{outline:none;border:none;border-radius:.5rem;background-color:#f6f6f6;padding:.5rem;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;transition:all .2s ease}.toolbar-wrapper button:hover{background-color:#eefff8;transform:scale(1.05)}\n"] }]
|
|
93
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { visibility: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], resetViewChange: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}], zoomInChange: [{
|
|
98
|
+
type: Output
|
|
99
|
+
}], zoomOutChange: [{
|
|
100
|
+
type: Output
|
|
101
|
+
}], exportImageChange: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}] } });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL2Zsb2F0aW5nLXRvb2xiYXIvZmxvYXRpbmctdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL2Zsb2F0aW5nLXRvb2xiYXIvZmxvYXRpbmctdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWlCeEcsTUFBTSxrQkFBa0IsR0FBOEI7SUFDbEQsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsTUFBTSxFQUFFLElBQUk7Q0FDZixDQUFDO0FBUUYsTUFBTSxPQUFPLHdCQUF3QjtJQVVqQyxZQUNZLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFWMUIsZUFBVSxHQUE4QixrQkFBa0IsQ0FBQztRQUkxRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDM0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSW5ELENBQUM7SUFFTCxRQUFRO1FBQ0osTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFdkUsTUFBTSxRQUFRLEdBQTBFO1lBQ3BGO2dCQUNJLEVBQUUsRUFBRSxZQUFZO2dCQUNoQixhQUFhLEVBQUUsV0FBVztnQkFDMUIsS0FBSyxFQUFFLHlCQUF5QjtnQkFDaEMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUM7Ozs7OzJCQUtqQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2FBQ2pDO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLFNBQVM7Z0JBQ2IsYUFBYSxFQUFFLFFBQVE7Z0JBQ3ZCLEtBQUssRUFBRSxzQkFBc0I7Z0JBQzdCLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDOzs7OzJCQUlqQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQzlCO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsYUFBYSxFQUFFLFNBQVM7Z0JBQ3hCLEtBQUssRUFBRSx1QkFBdUI7Z0JBQzlCLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDOzs7OzJCQUlqQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2FBQy9CO1lBQ0Q7Z0JBQ0ksRUFBRSxFQUFFLFFBQVE7Z0JBQ1osYUFBYSxFQUFFLFFBQVE7Z0JBQ3ZCLEtBQUssRUFBRSxxQkFBcUI7Z0JBQzVCLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDOzs7OzJCQUlqQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2FBQ25DO1NBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFrQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7c0hBdEZRLHdCQUF3QjswR0FBeEIsd0JBQXdCLDJQQzlCckMscWZBWU07NEZEa0JPLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU07bUdBR3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG50eXBlIF9Ub29sYmFySXRlbSA9IHtcclxuICAgIGlkOiBzdHJpbmcsXHJcbiAgICBsYWJlbDogc3RyaW5nLFxyXG4gICAgc3ZnOiBTYWZlSHRtbCxcclxuICAgIGFjdGlvbjogKCkgPT4gdm9pZFxyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1Rvb2xiYXJWaXNpYmlsaXR5IHtcclxuICAgIHJlc2V0Vmlldz86IGJvb2xlYW47XHJcbiAgICB6b29tSW4/OiBib29sZWFuO1xyXG4gICAgem9vbU91dD86IGJvb2xlYW47XHJcbiAgICBleHBvcnQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5jb25zdCBERUZBVUxUX1ZJU0lCSUxJVFk6IEZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHkgPSB7XHJcbiAgICByZXNldFZpZXc6IHRydWUsXHJcbiAgICB6b29tSW46IHRydWUsXHJcbiAgICB6b29tT3V0OiB0cnVlLFxyXG4gICAgZXhwb3J0OiB0cnVlXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZ3JhcGgtZmxvYXRpbmctdG9vbGJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmxvYXRpbmctdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mbG9hdGluZy10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdUb29sQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHZpc2liaWxpdHk6IEZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHkgPSBERUZBVUxUX1ZJU0lCSUxJVFk7XHJcblxyXG4gICAgdG9vbGJhckNvbmZpZyE6IFJlYWRvbmx5PF9Ub29sYmFySXRlbT5bXTtcclxuXHJcbiAgICBAT3V0cHV0KCkgcmVzZXRWaWV3Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIHpvb21JbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSB6b29tT3V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIGV4cG9ydEltYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICAgICkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgbWVyZ2VkVmlzaWJpbGl0eSA9IHsgLi4uREVGQVVMVF9WSVNJQklMSVRZLCAuLi50aGlzLnZpc2liaWxpdHkgfTtcclxuICAgICAgICBcclxuICAgICAgICBjb25zdCBhbGxJdGVtczogKF9Ub29sYmFySXRlbSAmIHsgdmlzaWJpbGl0eUtleToga2V5b2YgRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eSB9KVtdID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ3Jlc2V0LXZpZXcnLFxyXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eUtleTogJ3Jlc2V0VmlldycsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1VDQ1guQlVUVE9OUy5SRVNFVF9WSUVXJyxcclxuICAgICAgICAgICAgICAgIHN2ZzogdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgMTJhOSA5IDAgMCAxIDktOSA5Ljc1IDkuNzUgMCAwIDEgNi43NCAyLjc0TDIxIDhcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEgM3Y1aC01XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgMjF2LTVoNVwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gKSxcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5yZXNldFZpZXcoKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ3pvb20taW4nLFxyXG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eUtleTogJ3pvb21JbicsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1VDQ1guQlVUVE9OUy5aT09NX0lOJyxcclxuICAgICAgICAgICAgICAgIHN2ZzogdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm0yMSAyMS00LjM1LTQuMzVcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEgOHY2TTggMTFoNlwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gKSxcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy56b29tSW4oKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ3pvb20tb3V0JyxcclxuICAgICAgICAgICAgICAgIHZpc2liaWxpdHlLZXk6ICd6b29tT3V0JyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnVUNDWC5CVVRUT05TLlpPT01fT1VUJyxcclxuICAgICAgICAgICAgICAgIHN2ZzogdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYDxzdmcgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTFcIiBjeT1cIjExXCIgcj1cIjhcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm0yMSAyMS00LjM1LTQuMzVcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOCAxMWg2XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPmApLFxyXG4gICAgICAgICAgICAgICAgYWN0aW9uOiAoKSA9PiB0aGlzLnpvb21PdXQoKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ2V4cG9ydCcsXHJcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5S2V5OiAnZXhwb3J0JyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnVUNDWC5CVVRUT05TLkVYUE9SVCcsXHJcbiAgICAgICAgICAgICAgICBzdmc6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGA8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiNyAxMCAxMiAxNSAxNyAxMFwiPjwvcG9seWxpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiMTJcIiB5MT1cIjE1XCIgeDI9XCIxMlwiIHkyPVwiM1wiPjwvbGluZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5gKSxcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5leHBvcnRJbWFnZSgpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSBhbGxJdGVtcy5maWx0ZXIoaXRlbSA9PiBtZXJnZWRWaXNpYmlsaXR5W2l0ZW0udmlzaWJpbGl0eUtleV0gIT09IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNldFZpZXcoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZXNldFZpZXdDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHpvb21JbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnpvb21JbkNoYW5nZS5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgem9vbU91dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnpvb21PdXRDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydEltYWdlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZXhwb3J0SW1hZ2VDaGFuZ2UuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlJZChpbmRleDogbnVtYmVyLCBpdGVtOiBfVG9vbGJhckl0ZW0pOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInRvb2xiYXItd3JhcHBlclwiIHJvbGU9XCJ0b29sYmFyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRvb2xiYXJDb25maWc7IHRyYWNrQnk6IHRyYWNrQnlJZFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0b29sYmFyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJpdGVtLmFjdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJpdGVtLnN2Z1wiPjwvZGl2PlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { MatTooltipModule } from "@angular/material/tooltip";
|
|
4
|
+
import { FloatingToolBarComponent } from "./floating-toolbar.component";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FloatingToolbarModule {
|
|
7
|
+
}
|
|
8
|
+
FloatingToolbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingToolbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
FloatingToolbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: FloatingToolbarModule, declarations: [FloatingToolBarComponent], imports: [CommonModule,
|
|
10
|
+
MatTooltipModule], exports: [FloatingToolBarComponent] });
|
|
11
|
+
FloatingToolbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingToolbarModule, imports: [CommonModule,
|
|
12
|
+
MatTooltipModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FloatingToolbarModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
declarations: [
|
|
17
|
+
FloatingToolBarComponent
|
|
18
|
+
],
|
|
19
|
+
imports: [
|
|
20
|
+
CommonModule,
|
|
21
|
+
MatTooltipModule
|
|
22
|
+
],
|
|
23
|
+
exports: [
|
|
24
|
+
FloatingToolBarComponent
|
|
25
|
+
]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctdG9vbGJhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL2Zsb2F0aW5nLXRvb2xiYXIvZmxvYXRpbmctdG9vbGJhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBY3hFLE1BQU0sT0FBTyxxQkFBcUI7O21IQUFyQixxQkFBcUI7b0hBQXJCLHFCQUFxQixpQkFWMUIsd0JBQXdCLGFBR3hCLFlBQVk7UUFDWixnQkFBZ0IsYUFHaEIsd0JBQXdCO29IQUduQixxQkFBcUIsWUFQMUIsWUFBWTtRQUNaLGdCQUFnQjs0RkFNWCxxQkFBcUI7a0JBWmpDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLHdCQUF3QjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNuQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHsgRmxvYXRpbmdUb29sQmFyQ29tcG9uZW50IH0gZnJvbSBcIi4vZmxvYXRpbmctdG9vbGJhci5jb21wb25lbnRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBGbG9hdGluZ1Rvb2xCYXJDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgRmxvYXRpbmdUb29sQmFyQ29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGbG9hdGluZ1Rvb2xiYXJNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
import * as i3 from "@angular/material/tooltip";
|
|
6
|
+
export class NodeActionToolbarComponent {
|
|
7
|
+
constructor(sanitizer) {
|
|
8
|
+
this.sanitizer = sanitizer;
|
|
9
|
+
this.isVisible = false;
|
|
10
|
+
this.position = { x: 0, y: 0 };
|
|
11
|
+
this.deleteNode = new EventEmitter();
|
|
12
|
+
this.linkNode = new EventEmitter();
|
|
13
|
+
this.toolbarActions = [
|
|
14
|
+
{
|
|
15
|
+
id: 'link',
|
|
16
|
+
label: 'Link to Node',
|
|
17
|
+
svg: this.sanitizer.bypassSecurityTrustHtml(`
|
|
18
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
19
|
+
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path>
|
|
20
|
+
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
|
|
21
|
+
</svg>
|
|
22
|
+
`),
|
|
23
|
+
action: () => this.onLinkNode()
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'delete',
|
|
27
|
+
label: 'Delete Node',
|
|
28
|
+
svg: this.sanitizer.bypassSecurityTrustHtml(`
|
|
29
|
+
<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
30
|
+
<path d="M3 6h18"></path>
|
|
31
|
+
<path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path>
|
|
32
|
+
<path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path>
|
|
33
|
+
<line x1="10" y1="11" x2="10" y2="17"></line>
|
|
34
|
+
<line x1="14" y1="11" x2="14" y2="17"></line>
|
|
35
|
+
</svg>
|
|
36
|
+
`),
|
|
37
|
+
action: () => this.onDeleteNode()
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
onDeleteNode() {
|
|
42
|
+
this.deleteNode.emit();
|
|
43
|
+
}
|
|
44
|
+
onLinkNode() {
|
|
45
|
+
this.linkNode.emit();
|
|
46
|
+
}
|
|
47
|
+
trackById(index, item) {
|
|
48
|
+
return item.id;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
NodeActionToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeActionToolbarComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
NodeActionToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NodeActionToolbarComponent, selector: "node-action-toolbar", inputs: { isVisible: "isVisible", position: "position" }, outputs: { deleteNode: "deleteNode", linkNode: "linkNode" }, ngImport: i0, template: "<div \r\n class=\"node-action-toolbar\" \r\n [class.visible]=\"isVisible\"\r\n [style.left.px]=\"position.x\"\r\n [style.top.px]=\"position.y\">\r\n <ng-container *ngFor=\"let action of toolbarActions; trackBy: trackById\">\r\n <button\r\n type=\"button\"\r\n class=\"toolbar-action-btn\"\r\n [class.delete-btn]=\"action.id === 'delete'\"\r\n [attr.aria-label]=\"action.label\"\r\n [matTooltip]=\"action.label\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"action.action()\">\r\n <div [innerHTML]=\"action.svg\"></div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: [".node-action-toolbar{position:absolute;display:flex;flex-direction:row;gap:.25rem;padding:.35rem;background:white;border-radius:6px;box-shadow:0 2px 8px #0000001a;border:1px solid #d8d8d8;z-index:1000;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .2s ease;pointer-events:none}.node-action-toolbar.visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.node-action-toolbar .toolbar-action-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:4px;background:#f6f8fa;color:#586069;cursor:pointer;transition:all .15s ease}.node-action-toolbar .toolbar-action-btn:hover{background:#e1e4e8;color:#24292e;transform:scale(1.05)}.node-action-toolbar .toolbar-action-btn:active{transform:scale(.95)}.node-action-toolbar .toolbar-action-btn.delete-btn:hover{background:rgba(244,67,54,.1);color:#f44336}.node-action-toolbar .toolbar-action-btn div{display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeActionToolbarComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'node-action-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \r\n class=\"node-action-toolbar\" \r\n [class.visible]=\"isVisible\"\r\n [style.left.px]=\"position.x\"\r\n [style.top.px]=\"position.y\">\r\n <ng-container *ngFor=\"let action of toolbarActions; trackBy: trackById\">\r\n <button\r\n type=\"button\"\r\n class=\"toolbar-action-btn\"\r\n [class.delete-btn]=\"action.id === 'delete'\"\r\n [attr.aria-label]=\"action.label\"\r\n [matTooltip]=\"action.label\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"action.action()\">\r\n <div [innerHTML]=\"action.svg\"></div>\r\n </button>\r\n </ng-container>\r\n</div>\r\n", styles: [".node-action-toolbar{position:absolute;display:flex;flex-direction:row;gap:.25rem;padding:.35rem;background:white;border-radius:6px;box-shadow:0 2px 8px #0000001a;border:1px solid #d8d8d8;z-index:1000;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .2s ease;pointer-events:none}.node-action-toolbar.visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.node-action-toolbar .toolbar-action-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:4px;background:#f6f8fa;color:#586069;cursor:pointer;transition:all .15s ease}.node-action-toolbar .toolbar-action-btn:hover{background:#e1e4e8;color:#24292e;transform:scale(1.05)}.node-action-toolbar .toolbar-action-btn:active{transform:scale(.95)}.node-action-toolbar .toolbar-action-btn.delete-btn:hover{background:rgba(244,67,54,.1);color:#f44336}.node-action-toolbar .toolbar-action-btn div{display:flex;align-items:center;justify-content:center}\n"] }]
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { isVisible: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], position: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], deleteNode: [{
|
|
61
|
+
type: Output
|
|
62
|
+
}], linkNode: [{
|
|
63
|
+
type: Output
|
|
64
|
+
}] } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL25vZGUtYWN0aW9uLXRvb2xiYXIvbm9kZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL25vZGUtYWN0aW9uLXRvb2xiYXIvbm9kZS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQXFCaEcsTUFBTSxPQUFPLDBCQUEwQjtJQVNuQyxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBUmxDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUF3QixFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRTlDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3RDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSzFDLElBQUksQ0FBQyxjQUFjLEdBQUc7WUFDbEI7Z0JBQ0ksRUFBRSxFQUFFLE1BQU07Z0JBQ1YsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDOzs7OztpQkFLM0MsQ0FBQztnQkFDRixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTthQUNsQztZQUNEO2dCQUNJLEVBQUUsRUFBRSxRQUFRO2dCQUNaLEtBQUssRUFBRSxhQUFhO2dCQUNwQixHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQzs7Ozs7Ozs7aUJBUTNDLENBQUM7Z0JBQ0YsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDcEM7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUE2QjtRQUNsRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7d0hBakRRLDBCQUEwQjs0R0FBMUIsMEJBQTBCLGtMQ3JCdkMsa3JCQWtCQTs0RkRHYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07bUdBR3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOb2RlVG9vbGJhclBvc2l0aW9uIHtcclxuICAgIHg6IG51bWJlcjtcclxuICAgIHk6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOb2RlQWN0aW9uVG9vbGJhckFjdGlvbiB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHN2ZzogU2FmZUh0bWw7XHJcbiAgICBhY3Rpb246ICgpID0+IHZvaWQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdub2RlLWFjdGlvbi10b29sYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub2RlLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25vZGUtYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb2RlQWN0aW9uVG9vbGJhckNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBpc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBOb2RlVG9vbGJhclBvc2l0aW9uID0geyB4OiAwLCB5OiAwIH07XHJcblxyXG4gICAgQE91dHB1dCgpIGRlbGV0ZU5vZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgbGlua05vZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgdG9vbGJhckFjdGlvbnM6IE5vZGVBY3Rpb25Ub29sYmFyQWN0aW9uW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xyXG4gICAgICAgIHRoaXMudG9vbGJhckFjdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnbGluaycsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0xpbmsgdG8gTm9kZScsXHJcbiAgICAgICAgICAgICAgICBzdmc6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGBcclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCAxM2E1IDUgMCAwIDAgNy41NC41NGwzLTNhNSA1IDAgMCAwLTcuMDctNy4wN2wtMS43MiAxLjcxXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0IDExYTUgNSAwIDAgMC03LjU0LS41NGwtMyAzYTUgNSAwIDAgMCA3LjA3IDcuMDdsMS43MS0xLjcxXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgYCksXHJcbiAgICAgICAgICAgICAgICBhY3Rpb246ICgpID0+IHRoaXMub25MaW5rTm9kZSgpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlkOiAnZGVsZXRlJyxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnRGVsZXRlIE5vZGUnLFxyXG4gICAgICAgICAgICAgICAgc3ZnOiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChgXHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMyA2aDE4XCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE5IDZ2MTRjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJWNlwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04IDZWNGMwLTEgMS0yIDItMmg0YzEgMCAyIDEgMiAydjJcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiMTBcIiB5MT1cIjExXCIgeDI9XCIxMFwiIHkyPVwiMTdcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiMTRcIiB5MT1cIjExXCIgeDI9XCIxNFwiIHkyPVwiMTdcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICBgKSxcclxuICAgICAgICAgICAgICAgIGFjdGlvbjogKCkgPT4gdGhpcy5vbkRlbGV0ZU5vZGUoKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRlbGV0ZU5vZGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZWxldGVOb2RlLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkxpbmtOb2RlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubGlua05vZGUuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYWNrQnlJZChpbmRleDogbnVtYmVyLCBpdGVtOiBOb2RlQWN0aW9uVG9vbGJhckFjdGlvbik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBcclxuICAgIGNsYXNzPVwibm9kZS1hY3Rpb24tdG9vbGJhclwiIFxyXG4gICAgW2NsYXNzLnZpc2libGVdPVwiaXNWaXNpYmxlXCJcclxuICAgIFtzdHlsZS5sZWZ0LnB4XT1cInBvc2l0aW9uLnhcIlxyXG4gICAgW3N0eWxlLnRvcC5weF09XCJwb3NpdGlvbi55XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhckFjdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlJZFwiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidG9vbGJhci1hY3Rpb24tYnRuXCJcclxuICAgICAgICAgICAgW2NsYXNzLmRlbGV0ZS1idG5dPVwiYWN0aW9uLmlkID09PSAnZGVsZXRlJ1wiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aW9uLmxhYmVsXCJcclxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiYWN0aW9uLmxhYmVsXCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmFjdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJhY3Rpb24uc3ZnXCI+PC9kaXY+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbiJdfQ==
|