@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,97 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { ACTIVITY_DISPLAY_TYPES, getNodeColorClass, getActivityDisplayTypeByValue, ICON_MAP } from '../../utils/node-mappings';
|
|
3
|
+
import { getTranformedActivityName } from '../../utils/node-html-template';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
export class NodeDetailsSidebarComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.isOpen = false;
|
|
10
|
+
this.nodeData = null;
|
|
11
|
+
this.close = new EventEmitter();
|
|
12
|
+
this.activityTypeChange = new EventEmitter();
|
|
13
|
+
this.descriptionChange = new EventEmitter();
|
|
14
|
+
this.activityDisplayTypes = ACTIVITY_DISPLAY_TYPES;
|
|
15
|
+
this.selectedActivityType = null;
|
|
16
|
+
}
|
|
17
|
+
ngOnChanges(changes) {
|
|
18
|
+
if (changes['nodeData'] && this.nodeData) {
|
|
19
|
+
this.initializeActivityType();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
initializeActivityType() {
|
|
23
|
+
const activityName = this.nodeData && this.nodeData.wxccActivityName;
|
|
24
|
+
this.selectedActivityType = getActivityDisplayTypeByValue((activityName || 'unmapped').toLocaleLowerCase());
|
|
25
|
+
this.transformedActivityName = getTranformedActivityName(activityName || 'unmapped');
|
|
26
|
+
}
|
|
27
|
+
onDescriptionChange(event) {
|
|
28
|
+
const target = event.target;
|
|
29
|
+
if (!target) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const description = target.value.trim();
|
|
33
|
+
if (!description)
|
|
34
|
+
return;
|
|
35
|
+
this.descriptionChange.emit(description);
|
|
36
|
+
}
|
|
37
|
+
onActivityTypeChange(type) {
|
|
38
|
+
this.selectedActivityType = type;
|
|
39
|
+
this.activityTypeChange.emit(type);
|
|
40
|
+
}
|
|
41
|
+
onActivityTypeSelectChange(event) {
|
|
42
|
+
const target = event.target;
|
|
43
|
+
if (!target) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const value = target.value;
|
|
47
|
+
const type = getActivityDisplayTypeByValue(value);
|
|
48
|
+
this.onActivityTypeChange(type);
|
|
49
|
+
}
|
|
50
|
+
onClose() {
|
|
51
|
+
this.close.emit();
|
|
52
|
+
}
|
|
53
|
+
getNodeIcon() {
|
|
54
|
+
return (this.selectedActivityType && this.selectedActivityType.icon) || ICON_MAP['unmapped'];
|
|
55
|
+
}
|
|
56
|
+
getNodeColorClass() {
|
|
57
|
+
const group = (this.selectedActivityType && this.selectedActivityType.group) || 'unmapped';
|
|
58
|
+
return getNodeColorClass(group);
|
|
59
|
+
}
|
|
60
|
+
getReviewColor() {
|
|
61
|
+
const color = (this.nodeData && this.nodeData.review && this.nodeData.review.color) ||
|
|
62
|
+
'green';
|
|
63
|
+
const colors = {
|
|
64
|
+
'green': '#4CAF50',
|
|
65
|
+
'yellow': '#FF9800',
|
|
66
|
+
'red': '#F44336'
|
|
67
|
+
};
|
|
68
|
+
return colors[color] || colors['green'];
|
|
69
|
+
}
|
|
70
|
+
getReviewLabel() {
|
|
71
|
+
const color = (this.nodeData && this.nodeData.review && this.nodeData.review.color) ||
|
|
72
|
+
'green';
|
|
73
|
+
const level = (this.nodeData && this.nodeData.review && this.nodeData.review.level) ||
|
|
74
|
+
'confident';
|
|
75
|
+
return `${color.charAt(0).toUpperCase() + color.slice(1)} (${level.replace('_', ' ')})`;
|
|
76
|
+
}
|
|
77
|
+
trackByValue(index, type) {
|
|
78
|
+
return type.value;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
NodeDetailsSidebarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeDetailsSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
NodeDetailsSidebarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NodeDetailsSidebarComponent, selector: "node-details-sidebar", inputs: { isOpen: "isOpen", nodeData: "nodeData" }, outputs: { close: "close", activityTypeChange: "activityTypeChange", descriptionChange: "descriptionChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- <div class=\"sidebar-overlay\" *ngIf=\"isOpen\" (click)=\"onClose()\"></div> -->\r\n\r\n<div class=\"node-details-sidebar\" [class.open]=\"isOpen\">\r\n <div class=\"sidebar-header\">\r\n <h3>Node Details</h3>\r\n <button class=\"close-btn\" (click)=\"onClose()\">\r\n <span>×</span>\r\n </button>\r\n </div>\r\n\r\n <div class=\"sidebar-content\" *ngIf=\"nodeData\">\r\n <!-- Node Preview -->\r\n <div class=\"node-preview\">\r\n <div class=\"node-preview-card\" [ngClass]=\"getNodeColorClass()\">\r\n <div class=\"node-icon\">\r\n <img [src]=\"getNodeIcon()\" alt=\"Node Icon\" />\r\n </div>\r\n <div class=\"node-info\">\r\n <div class=\"node-label\">{{ nodeData?.name?.split(\"\\n\")?.[0] }}</div>\r\n <div class=\"node-type\">{{ transformedActivityName }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Activity Type Selector -->\r\n <div class=\"section\">\r\n <label class=\"section-label\">Activity Type</label>\r\n <div class=\"display-type-selector\">\r\n <select\r\n class=\"form-control\"\r\n title=\"Select activity type\"\r\n [value]=\"selectedActivityType?.value\"\r\n (change)=\"onActivityTypeSelectChange($event)\"\r\n >\r\n <option\r\n *ngFor=\"let type of activityDisplayTypes; trackBy: trackByValue\"\r\n [value]=\"type.value\"\r\n >\r\n {{ type.label }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"section\">\r\n <label class=\"section-label\">Description</label>\r\n <div class=\"display-type-selector\">\r\n <textarea\r\n class=\"form-control\"\r\n aria-label=\"property-description\"\r\n (input)=\"onDescriptionChange($event)\"\r\n [value]=\"nodeData.suggestedProperties?.uccxDescription\"\r\n rows=\"3\"\r\n ></textarea>\r\n </div>\r\n </div>\r\n\r\n <!-- Node Information -->\r\n <div class=\"section\">\r\n <label class=\"section-label\">Information</label>\r\n <div class=\"info-grid\">\r\n <div class=\"info-item\">\r\n <span class=\"info-label\">UCCX Type:</span>\r\n <span class=\"info-value\" [title]=\"nodeData.uccxTypeName\">{{\r\n nodeData.uccxTypeName\r\n }}</span>\r\n </div>\r\n <div class=\"info-item\">\r\n <span class=\"info-label\">WxCC Activity Name:</span>\r\n <span class=\"info-value\" [title]=\"transformedActivityName\">{{\r\n transformedActivityName\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Review Status -->\r\n <div class=\"section\" *ngIf=\"nodeData.review\">\r\n <label class=\"section-label\">Review Status</label>\r\n <div class=\"review-status\">\r\n <div class=\"review-badge\" [style.background-color]=\"getReviewColor()\">\r\n {{ getReviewLabel() }}\r\n </div>\r\n <div\r\n class=\"review-reasons\"\r\n *ngIf=\"nodeData.review.reasons && nodeData.review.reasons.length > 0\"\r\n >\r\n <div class=\"reason\" *ngFor=\"let reason of nodeData.review.reasons\">\r\n <span class=\"reason-icon\">\u26A0</span>\r\n <span>{{ reason }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Suggested Properties -->\r\n <div class=\"section\" *ngIf=\"nodeData.suggestedProperties\">\r\n <label class=\"section-label\">Migration Information</label>\r\n <div class=\"migration-info\">\r\n <div\r\n class=\"info-card\"\r\n *ngIf=\"nodeData.suggestedProperties.closestWxccActivity\"\r\n >\r\n <div class=\"card-label\">Closest WXCC Activity</div>\r\n <div class=\"card-value\">\r\n {{ nodeData.suggestedProperties.closestWxccActivity }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"info-card\"\r\n *ngIf=\"nodeData.suggestedProperties.mappingNotes\"\r\n >\r\n <div class=\"card-label\">Mapping Notes</div>\r\n <div class=\"card-value\">\r\n {{ nodeData.suggestedProperties.mappingNotes }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"info-card\"\r\n *ngIf=\"nodeData.suggestedProperties.migrationInstructions\"\r\n >\r\n <div class=\"card-label\">Migration Instructions</div>\r\n <div class=\"card-value instructions\">\r\n {{ nodeData.suggestedProperties.migrationInstructions }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.node-details-sidebar{position:fixed;top:0;right:-420px;width:420px;height:100%;background:#ffffff;box-shadow:-2px 0 8px #00000026;z-index:1000;transition:right .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}.node-details-sidebar.open{right:0}.node-details-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e1e4e8;background:#f8f9fa}.node-details-sidebar .sidebar-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#24292e}.node-details-sidebar .sidebar-header .close-btn{background:none;border:none;font-size:2rem;line-height:1;cursor:pointer;color:#586069;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.node-details-sidebar .sidebar-header .close-btn:hover{background:rgba(0,0,0,.05);color:#24292e}.node-details-sidebar .sidebar-content{flex:1;overflow-y:auto;padding:1.5rem}.node-details-sidebar .sidebar-content .node-preview{margin-bottom:1.5rem}.node-details-sidebar .sidebar-content .node-preview .node-preview-card{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:8px;flex-shrink:0}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-icon img{width:24px;height:24px}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-info{flex:1;min-width:0}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-info .node-label{font-size:1rem;font-weight:600;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-info .node-type{font-size:.875rem;color:#586069}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-start{background-color:#4caf500d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-start .node-icon{background-color:#4caf501a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-start .node-label{color:#4caf50}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-end{background-color:#f443360d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-end .node-icon{background-color:#f443361a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-end .node-label{color:#f44336}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-gateway{background-color:#ff98000d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-gateway .node-icon{background-color:#ff98001a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-gateway .node-label{color:#ff9800}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-action{background-color:#9c27b00d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-action .node-icon{background-color:#9c27b01a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-action .node-label{color:#9c27b0}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-default{background-color:#607d8b0d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-default .node-icon{background-color:#607d8b1a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-default .node-label{color:#607d8b}.node-details-sidebar .sidebar-content .section{margin-bottom:1.5rem}.node-details-sidebar .sidebar-content .section .section-label{display:block;font-size:.65rem;font-weight:600;color:#24292e;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.node-details-sidebar .sidebar-content .section .display-type-selector .form-control{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid #d1d5da;border-radius:6px;background:white;transition:border-color .2s;box-sizing:border-box;resize:vertical}.node-details-sidebar .sidebar-content .section .display-type-selector .form-control:focus{outline:none;border-color:#0366d6;box-shadow:0 0 0 3px #0366d61a}.node-details-sidebar .sidebar-content .section .info-grid{display:flex;flex-direction:column;gap:.75rem}.node-details-sidebar .sidebar-content .section .info-grid .info-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;background:#f6f8fa;border-radius:6px}.node-details-sidebar .sidebar-content .section .info-grid .info-item .info-label{font-size:.8125rem;color:#586069;font-weight:500}.node-details-sidebar .sidebar-content .section .info-grid .info-item .info-value{font-size:.8125rem;color:#24292e;font-weight:600;text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-details-sidebar .sidebar-content .section .review-status .review-badge{display:inline-block;padding:.5rem 1rem;border-radius:20px;color:#fff;font-size:.8125rem;font-weight:600;margin-bottom:.75rem}.node-details-sidebar .sidebar-content .section .review-status .review-reasons .reason{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#fff3cd;border-radius:4px;margin-bottom:.5rem;font-size:.8125rem;color:#856404}.node-details-sidebar .sidebar-content .section .review-status .review-reasons .reason .reason-icon{flex-shrink:0}.node-details-sidebar .sidebar-content .section .migration-info .info-card{padding:1rem;background:#f6f8fa;border-radius:6px;margin-bottom:.75rem}.node-details-sidebar .sidebar-content .section .migration-info .info-card:last-child{margin-bottom:0}.node-details-sidebar .sidebar-content .section .migration-info .info-card .card-label{font-size:.75rem;font-weight:600;color:#586069;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.node-details-sidebar .sidebar-content .section .migration-info .info-card .card-value{font-size:.875rem;color:#24292e;line-height:1.5}.node-details-sidebar .sidebar-content .section .migration-info .info-card .card-value.instructions{white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeDetailsSidebarComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'node-details-sidebar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div class=\"sidebar-overlay\" *ngIf=\"isOpen\" (click)=\"onClose()\"></div> -->\r\n\r\n<div class=\"node-details-sidebar\" [class.open]=\"isOpen\">\r\n <div class=\"sidebar-header\">\r\n <h3>Node Details</h3>\r\n <button class=\"close-btn\" (click)=\"onClose()\">\r\n <span>×</span>\r\n </button>\r\n </div>\r\n\r\n <div class=\"sidebar-content\" *ngIf=\"nodeData\">\r\n <!-- Node Preview -->\r\n <div class=\"node-preview\">\r\n <div class=\"node-preview-card\" [ngClass]=\"getNodeColorClass()\">\r\n <div class=\"node-icon\">\r\n <img [src]=\"getNodeIcon()\" alt=\"Node Icon\" />\r\n </div>\r\n <div class=\"node-info\">\r\n <div class=\"node-label\">{{ nodeData?.name?.split(\"\\n\")?.[0] }}</div>\r\n <div class=\"node-type\">{{ transformedActivityName }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Activity Type Selector -->\r\n <div class=\"section\">\r\n <label class=\"section-label\">Activity Type</label>\r\n <div class=\"display-type-selector\">\r\n <select\r\n class=\"form-control\"\r\n title=\"Select activity type\"\r\n [value]=\"selectedActivityType?.value\"\r\n (change)=\"onActivityTypeSelectChange($event)\"\r\n >\r\n <option\r\n *ngFor=\"let type of activityDisplayTypes; trackBy: trackByValue\"\r\n [value]=\"type.value\"\r\n >\r\n {{ type.label }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"section\">\r\n <label class=\"section-label\">Description</label>\r\n <div class=\"display-type-selector\">\r\n <textarea\r\n class=\"form-control\"\r\n aria-label=\"property-description\"\r\n (input)=\"onDescriptionChange($event)\"\r\n [value]=\"nodeData.suggestedProperties?.uccxDescription\"\r\n rows=\"3\"\r\n ></textarea>\r\n </div>\r\n </div>\r\n\r\n <!-- Node Information -->\r\n <div class=\"section\">\r\n <label class=\"section-label\">Information</label>\r\n <div class=\"info-grid\">\r\n <div class=\"info-item\">\r\n <span class=\"info-label\">UCCX Type:</span>\r\n <span class=\"info-value\" [title]=\"nodeData.uccxTypeName\">{{\r\n nodeData.uccxTypeName\r\n }}</span>\r\n </div>\r\n <div class=\"info-item\">\r\n <span class=\"info-label\">WxCC Activity Name:</span>\r\n <span class=\"info-value\" [title]=\"transformedActivityName\">{{\r\n transformedActivityName\r\n }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Review Status -->\r\n <div class=\"section\" *ngIf=\"nodeData.review\">\r\n <label class=\"section-label\">Review Status</label>\r\n <div class=\"review-status\">\r\n <div class=\"review-badge\" [style.background-color]=\"getReviewColor()\">\r\n {{ getReviewLabel() }}\r\n </div>\r\n <div\r\n class=\"review-reasons\"\r\n *ngIf=\"nodeData.review.reasons && nodeData.review.reasons.length > 0\"\r\n >\r\n <div class=\"reason\" *ngFor=\"let reason of nodeData.review.reasons\">\r\n <span class=\"reason-icon\">\u26A0</span>\r\n <span>{{ reason }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Suggested Properties -->\r\n <div class=\"section\" *ngIf=\"nodeData.suggestedProperties\">\r\n <label class=\"section-label\">Migration Information</label>\r\n <div class=\"migration-info\">\r\n <div\r\n class=\"info-card\"\r\n *ngIf=\"nodeData.suggestedProperties.closestWxccActivity\"\r\n >\r\n <div class=\"card-label\">Closest WXCC Activity</div>\r\n <div class=\"card-value\">\r\n {{ nodeData.suggestedProperties.closestWxccActivity }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"info-card\"\r\n *ngIf=\"nodeData.suggestedProperties.mappingNotes\"\r\n >\r\n <div class=\"card-label\">Mapping Notes</div>\r\n <div class=\"card-value\">\r\n {{ nodeData.suggestedProperties.mappingNotes }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"info-card\"\r\n *ngIf=\"nodeData.suggestedProperties.migrationInstructions\"\r\n >\r\n <div class=\"card-label\">Migration Instructions</div>\r\n <div class=\"card-value instructions\">\r\n {{ nodeData.suggestedProperties.migrationInstructions }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.node-details-sidebar{position:fixed;top:0;right:-420px;width:420px;height:100%;background:#ffffff;box-shadow:-2px 0 8px #00000026;z-index:1000;transition:right .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;overflow:hidden}.node-details-sidebar.open{right:0}.node-details-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid #e1e4e8;background:#f8f9fa}.node-details-sidebar .sidebar-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#24292e}.node-details-sidebar .sidebar-header .close-btn{background:none;border:none;font-size:2rem;line-height:1;cursor:pointer;color:#586069;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.node-details-sidebar .sidebar-header .close-btn:hover{background:rgba(0,0,0,.05);color:#24292e}.node-details-sidebar .sidebar-content{flex:1;overflow-y:auto;padding:1.5rem}.node-details-sidebar .sidebar-content .node-preview{margin-bottom:1.5rem}.node-details-sidebar .sidebar-content .node-preview .node-preview-card{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:8px;flex-shrink:0}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-icon img{width:24px;height:24px}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-info{flex:1;min-width:0}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-info .node-label{font-size:1rem;font-weight:600;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-details-sidebar .sidebar-content .node-preview .node-preview-card .node-info .node-type{font-size:.875rem;color:#586069}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-start{background-color:#4caf500d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-start .node-icon{background-color:#4caf501a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-start .node-label{color:#4caf50}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-end{background-color:#f443360d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-end .node-icon{background-color:#f443361a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-end .node-label{color:#f44336}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-gateway{background-color:#ff98000d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-gateway .node-icon{background-color:#ff98001a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-gateway .node-label{color:#ff9800}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-action{background-color:#9c27b00d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-action .node-icon{background-color:#9c27b01a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-action .node-label{color:#9c27b0}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-default{background-color:#607d8b0d}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-default .node-icon{background-color:#607d8b1a}.node-details-sidebar .sidebar-content .node-preview .node-preview-card.node-default .node-label{color:#607d8b}.node-details-sidebar .sidebar-content .section{margin-bottom:1.5rem}.node-details-sidebar .sidebar-content .section .section-label{display:block;font-size:.65rem;font-weight:600;color:#24292e;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.node-details-sidebar .sidebar-content .section .display-type-selector .form-control{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid #d1d5da;border-radius:6px;background:white;transition:border-color .2s;box-sizing:border-box;resize:vertical}.node-details-sidebar .sidebar-content .section .display-type-selector .form-control:focus{outline:none;border-color:#0366d6;box-shadow:0 0 0 3px #0366d61a}.node-details-sidebar .sidebar-content .section .info-grid{display:flex;flex-direction:column;gap:.75rem}.node-details-sidebar .sidebar-content .section .info-grid .info-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;background:#f6f8fa;border-radius:6px}.node-details-sidebar .sidebar-content .section .info-grid .info-item .info-label{font-size:.8125rem;color:#586069;font-weight:500}.node-details-sidebar .sidebar-content .section .info-grid .info-item .info-value{font-size:.8125rem;color:#24292e;font-weight:600;text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-details-sidebar .sidebar-content .section .review-status .review-badge{display:inline-block;padding:.5rem 1rem;border-radius:20px;color:#fff;font-size:.8125rem;font-weight:600;margin-bottom:.75rem}.node-details-sidebar .sidebar-content .section .review-status .review-reasons .reason{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#fff3cd;border-radius:4px;margin-bottom:.5rem;font-size:.8125rem;color:#856404}.node-details-sidebar .sidebar-content .section .review-status .review-reasons .reason .reason-icon{flex-shrink:0}.node-details-sidebar .sidebar-content .section .migration-info .info-card{padding:1rem;background:#f6f8fa;border-radius:6px;margin-bottom:.75rem}.node-details-sidebar .sidebar-content .section .migration-info .info-card:last-child{margin-bottom:0}.node-details-sidebar .sidebar-content .section .migration-info .info-card .card-label{font-size:.75rem;font-weight:600;color:#586069;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.node-details-sidebar .sidebar-content .section .migration-info .info-card .card-value{font-size:.875rem;color:#24292e;line-height:1.5}.node-details-sidebar .sidebar-content .section .migration-info .info-card .card-value.instructions{white-space:pre-wrap}\n"] }]
|
|
86
|
+
}], propDecorators: { isOpen: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], nodeData: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], close: [{
|
|
91
|
+
type: Output
|
|
92
|
+
}], activityTypeChange: [{
|
|
93
|
+
type: Output
|
|
94
|
+
}], descriptionChange: [{
|
|
95
|
+
type: Output
|
|
96
|
+
}] } });
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1kZXRhaWxzLXNpZGViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2NvbnRhY3QtY2VudGVyL2NjLXNjcmlwdC1lZGl0b3IvY29tcG9uZW50cy9ub2RlLWRldGFpbHMtc2lkZWJhci9ub2RlLWRldGFpbHMtc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL25vZGUtZGV0YWlscy1zaWRlYmFyL25vZGUtZGV0YWlscy1zaWRlYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsdUJBQXVCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFDSCxzQkFBc0IsRUFFdEIsaUJBQWlCLEVBQ2pCLDZCQUE2QixFQUM3QixRQUFRLEVBQ1gsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVMzRSxNQUFNLE9BQU8sMkJBQTJCO0lBTnhDO1FBT2EsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGFBQVEsR0FBb0MsSUFBSSxDQUFDO1FBRWhELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQzdELHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFaEQseUJBQW9CLEdBQUcsc0JBQXNCLENBQUM7UUFHdkQseUJBQW9CLEdBQStCLElBQUksQ0FBQztLQW9GM0Q7SUFsRkcsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdEMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNyRSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsNkJBQTZCLENBQUMsQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQzVHLElBQUksQ0FBQyx1QkFBdUIsR0FBRyx5QkFBeUIsQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQVk7UUFDNUIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQW9DLENBQUM7UUFFMUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUVELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLFdBQVc7WUFDWixPQUFPO1FBRVgsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFBeUI7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFZO1FBQ25DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFrQyxDQUFDO1FBRXhELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNCLE1BQU0sSUFBSSxHQUFHLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUM7UUFDM0YsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsY0FBYztRQUNWLE1BQU0sS0FBSyxHQUNQLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDckUsT0FBTyxDQUFDO1FBQ1osTUFBTSxNQUFNLEdBQThCO1lBQ3RDLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1lBQ25CLEtBQUssRUFBRSxTQUFTO1NBQ25CLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGNBQWM7UUFDVixNQUFNLEtBQUssR0FDUCxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3JFLE9BQU8sQ0FBQztRQUNaLE1BQU0sS0FBSyxHQUNQLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDckUsV0FBVyxDQUFDO1FBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUM1RixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWEsRUFBRSxJQUF5QjtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQzs7eUhBOUZRLDJCQUEyQjs2R0FBM0IsMkJBQTJCLG9QQ2pCeEMsaXJKQWtJQTs0RkRqSGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBPbkNoYW5nZXMsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBBQ1RJVklUWV9ESVNQTEFZX1RZUEVTLFxyXG4gICAgQWN0aXZpdHlEaXNwbGF5VHlwZSxcclxuICAgIGdldE5vZGVDb2xvckNsYXNzLFxyXG4gICAgZ2V0QWN0aXZpdHlEaXNwbGF5VHlwZUJ5VmFsdWUsXHJcbiAgICBJQ09OX01BUFxyXG59IGZyb20gJy4uLy4uL3V0aWxzL25vZGUtbWFwcGluZ3MnO1xyXG5pbXBvcnQgeyBnZXRUcmFuZm9ybWVkQWN0aXZpdHlOYW1lIH0gZnJvbSAnLi4vLi4vdXRpbHMvbm9kZS1odG1sLXRlbXBsYXRlJztcclxuaW1wb3J0IHsgUmVhZG9ubHlFeHRlbmRlZEFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vdHlwZXMvZXh0ZW5kZWQtYWN0aXZpdHknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ25vZGUtZGV0YWlscy1zaWRlYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub2RlLWRldGFpbHMtc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9ub2RlLWRldGFpbHMtc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vZGVEZXRhaWxzU2lkZWJhckNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIG5vZGVEYXRhOiBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgYWN0aXZpdHlUeXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpdml0eURpc3BsYXlUeXBlPigpO1xyXG4gICAgQE91dHB1dCgpIGRlc2NyaXB0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgcmVhZG9ubHkgYWN0aXZpdHlEaXNwbGF5VHlwZXMgPSBBQ1RJVklUWV9ESVNQTEFZX1RZUEVTO1xyXG5cclxuICAgIHRyYW5zZm9ybWVkQWN0aXZpdHlOYW1lITogc3RyaW5nO1xyXG4gICAgc2VsZWN0ZWRBY3Rpdml0eVR5cGU6IEFjdGl2aXR5RGlzcGxheVR5cGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ25vZGVEYXRhJ10gJiYgdGhpcy5ub2RlRGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVBY3Rpdml0eVR5cGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplQWN0aXZpdHlUeXBlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2aXR5TmFtZSA9IHRoaXMubm9kZURhdGEgJiYgdGhpcy5ub2RlRGF0YS53eGNjQWN0aXZpdHlOYW1lO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBY3Rpdml0eVR5cGUgPSBnZXRBY3Rpdml0eURpc3BsYXlUeXBlQnlWYWx1ZSgoYWN0aXZpdHlOYW1lIHx8ICd1bm1hcHBlZCcpLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgIHRoaXMudHJhbnNmb3JtZWRBY3Rpdml0eU5hbWUgPSBnZXRUcmFuZm9ybWVkQWN0aXZpdHlOYW1lKGFjdGl2aXR5TmFtZSB8fCAndW5tYXBwZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRlc2NyaXB0aW9uQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50IHwgbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKCF0YXJnZXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0YXJnZXQudmFsdWUudHJpbSgpO1xyXG5cclxuICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb25DaGFuZ2UuZW1pdChkZXNjcmlwdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvbkFjdGl2aXR5VHlwZUNoYW5nZSh0eXBlOiBBY3Rpdml0eURpc3BsYXlUeXBlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFjdGl2aXR5VHlwZSA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eVR5cGVDaGFuZ2UuZW1pdCh0eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkFjdGl2aXR5VHlwZVNlbGVjdENoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTFNlbGVjdEVsZW1lbnQgfCBudWxsO1xyXG5cclxuICAgICAgICBpZiAoIXRhcmdldCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRhcmdldC52YWx1ZTtcclxuICAgICAgICBjb25zdCB0eXBlID0gZ2V0QWN0aXZpdHlEaXNwbGF5VHlwZUJ5VmFsdWUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMub25BY3Rpdml0eVR5cGVDaGFuZ2UodHlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXROb2RlSWNvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5zZWxlY3RlZEFjdGl2aXR5VHlwZSAmJiB0aGlzLnNlbGVjdGVkQWN0aXZpdHlUeXBlLmljb24pIHx8IElDT05fTUFQWyd1bm1hcHBlZCddO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE5vZGVDb2xvckNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZ3JvdXAgPSAodGhpcy5zZWxlY3RlZEFjdGl2aXR5VHlwZSAmJiB0aGlzLnNlbGVjdGVkQWN0aXZpdHlUeXBlLmdyb3VwKSB8fCAndW5tYXBwZWQnO1xyXG4gICAgICAgIHJldHVybiBnZXROb2RlQ29sb3JDbGFzcyhncm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmV2aWV3Q29sb3IoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBjb2xvciA9XHJcbiAgICAgICAgICAgICh0aGlzLm5vZGVEYXRhICYmIHRoaXMubm9kZURhdGEucmV2aWV3ICYmIHRoaXMubm9kZURhdGEucmV2aWV3LmNvbG9yKSB8fFxyXG4gICAgICAgICAgICAnZ3JlZW4nO1xyXG4gICAgICAgIGNvbnN0IGNvbG9yczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgICAgICAgJ2dyZWVuJzogJyM0Q0FGNTAnLFxyXG4gICAgICAgICAgICAneWVsbG93JzogJyNGRjk4MDAnLFxyXG4gICAgICAgICAgICAncmVkJzogJyNGNDQzMzYnXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY29sb3JzW2NvbG9yXSB8fCBjb2xvcnNbJ2dyZWVuJ107XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UmV2aWV3TGFiZWwoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBjb2xvciA9XHJcbiAgICAgICAgICAgICh0aGlzLm5vZGVEYXRhICYmIHRoaXMubm9kZURhdGEucmV2aWV3ICYmIHRoaXMubm9kZURhdGEucmV2aWV3LmNvbG9yKSB8fFxyXG4gICAgICAgICAgICAnZ3JlZW4nO1xyXG4gICAgICAgIGNvbnN0IGxldmVsID1cclxuICAgICAgICAgICAgKHRoaXMubm9kZURhdGEgJiYgdGhpcy5ub2RlRGF0YS5yZXZpZXcgJiYgdGhpcy5ub2RlRGF0YS5yZXZpZXcubGV2ZWwpIHx8XHJcbiAgICAgICAgICAgICdjb25maWRlbnQnO1xyXG4gICAgICAgIHJldHVybiBgJHtjb2xvci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNvbG9yLnNsaWNlKDEpfSAoJHtsZXZlbC5yZXBsYWNlKCdfJywgJyAnKX0pYDtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5VmFsdWUoaW5kZXg6IG51bWJlciwgdHlwZTogQWN0aXZpdHlEaXNwbGF5VHlwZSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGUudmFsdWU7XHJcbiAgICB9XHJcbn0iLCI8IS0tIDxkaXYgY2xhc3M9XCJzaWRlYmFyLW92ZXJsYXlcIiAqbmdJZj1cImlzT3BlblwiIChjbGljayk9XCJvbkNsb3NlKClcIj48L2Rpdj4gLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwibm9kZS1kZXRhaWxzLXNpZGViYXJcIiBbY2xhc3Mub3Blbl09XCJpc09wZW5cIj5cclxuICA8ZGl2IGNsYXNzPVwic2lkZWJhci1oZWFkZXJcIj5cclxuICAgIDxoMz5Ob2RlIERldGFpbHM8L2gzPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ0blwiIChjbGljayk9XCJvbkNsb3NlKClcIj5cclxuICAgICAgPHNwYW4+JnRpbWVzOzwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2lkZWJhci1jb250ZW50XCIgKm5nSWY9XCJub2RlRGF0YVwiPlxyXG4gICAgPCEtLSBOb2RlIFByZXZpZXcgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwibm9kZS1wcmV2aWV3XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub2RlLXByZXZpZXctY2FyZFwiIFtuZ0NsYXNzXT1cImdldE5vZGVDb2xvckNsYXNzKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZS1pY29uXCI+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwiZ2V0Tm9kZUljb24oKVwiIGFsdD1cIk5vZGUgSWNvblwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtaW5mb1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtbGFiZWxcIj57eyBub2RlRGF0YT8ubmFtZT8uc3BsaXQoXCJcXG5cIik/LlswXSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtdHlwZVwiPnt7IHRyYW5zZm9ybWVkQWN0aXZpdHlOYW1lIH19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBBY3Rpdml0eSBUeXBlIFNlbGVjdG9yIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwic2VjdGlvbi1sYWJlbFwiPkFjdGl2aXR5IFR5cGU8L2xhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheS10eXBlLXNlbGVjdG9yXCI+XHJcbiAgICAgICAgPHNlbGVjdFxyXG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgdGl0bGU9XCJTZWxlY3QgYWN0aXZpdHkgdHlwZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRBY3Rpdml0eVR5cGU/LnZhbHVlXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25BY3Rpdml0eVR5cGVTZWxlY3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG9wdGlvblxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgdHlwZSBvZiBhY3Rpdml0eURpc3BsYXlUeXBlczsgdHJhY2tCeTogdHJhY2tCeVZhbHVlXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cInR5cGUudmFsdWVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB0eXBlLmxhYmVsIH19XHJcbiAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJzZWN0aW9uLWxhYmVsXCI+RGVzY3JpcHRpb248L2xhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGlzcGxheS10eXBlLXNlbGVjdG9yXCI+XHJcbiAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwicHJvcGVydHktZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uRGVzY3JpcHRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwibm9kZURhdGEuc3VnZ2VzdGVkUHJvcGVydGllcz8udWNjeERlc2NyaXB0aW9uXCJcclxuICAgICAgICAgIHJvd3M9XCIzXCJcclxuICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE5vZGUgSW5mb3JtYXRpb24gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvblwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJzZWN0aW9uLWxhYmVsXCI+SW5mb3JtYXRpb248L2xhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1ncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm8taXRlbVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWxhYmVsXCI+VUNDWCBUeXBlOjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby12YWx1ZVwiIFt0aXRsZV09XCJub2RlRGF0YS51Y2N4VHlwZU5hbWVcIj57e1xyXG4gICAgICAgICAgICBub2RlRGF0YS51Y2N4VHlwZU5hbWVcclxuICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWl0ZW1cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby1sYWJlbFwiPld4Q0MgQWN0aXZpdHkgTmFtZTo8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tdmFsdWVcIiBbdGl0bGVdPVwidHJhbnNmb3JtZWRBY3Rpdml0eU5hbWVcIj57e1xyXG4gICAgICAgICAgICB0cmFuc2Zvcm1lZEFjdGl2aXR5TmFtZVxyXG4gICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBSZXZpZXcgU3RhdHVzIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb25cIiAqbmdJZj1cIm5vZGVEYXRhLnJldmlld1wiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJzZWN0aW9uLWxhYmVsXCI+UmV2aWV3IFN0YXR1czwvbGFiZWw+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctc3RhdHVzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJldmlldy1iYWRnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImdldFJldmlld0NvbG9yKClcIj5cclxuICAgICAgICAgIHt7IGdldFJldmlld0xhYmVsKCkgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInJldmlldy1yZWFzb25zXCJcclxuICAgICAgICAgICpuZ0lmPVwibm9kZURhdGEucmV2aWV3LnJlYXNvbnMgJiYgbm9kZURhdGEucmV2aWV3LnJlYXNvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlYXNvblwiICpuZ0Zvcj1cImxldCByZWFzb24gb2Ygbm9kZURhdGEucmV2aWV3LnJlYXNvbnNcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFzb24taWNvblwiPuKaoDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgcmVhc29uIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBTdWdnZXN0ZWQgUHJvcGVydGllcyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uXCIgKm5nSWY9XCJub2RlRGF0YS5zdWdnZXN0ZWRQcm9wZXJ0aWVzXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInNlY3Rpb24tbGFiZWxcIj5NaWdyYXRpb24gSW5mb3JtYXRpb248L2xhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWlncmF0aW9uLWluZm9cIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImluZm8tY2FyZFwiXHJcbiAgICAgICAgICAqbmdJZj1cIm5vZGVEYXRhLnN1Z2dlc3RlZFByb3BlcnRpZXMuY2xvc2VzdFd4Y2NBY3Rpdml0eVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWxcIj5DbG9zZXN0IFdYQ0MgQWN0aXZpdHk8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZhbHVlXCI+XHJcbiAgICAgICAgICAgIHt7IG5vZGVEYXRhLnN1Z2dlc3RlZFByb3BlcnRpZXMuY2xvc2VzdFd4Y2NBY3Rpdml0eSB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJpbmZvLWNhcmRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJub2RlRGF0YS5zdWdnZXN0ZWRQcm9wZXJ0aWVzLm1hcHBpbmdOb3Rlc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWxcIj5NYXBwaW5nIE5vdGVzPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12YWx1ZVwiPlxyXG4gICAgICAgICAgICB7eyBub2RlRGF0YS5zdWdnZXN0ZWRQcm9wZXJ0aWVzLm1hcHBpbmdOb3RlcyB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJpbmZvLWNhcmRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJub2RlRGF0YS5zdWdnZXN0ZWRQcm9wZXJ0aWVzLm1pZ3JhdGlvbkluc3RydWN0aW9uc1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbGFiZWxcIj5NaWdyYXRpb24gSW5zdHJ1Y3Rpb25zPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12YWx1ZSBpbnN0cnVjdGlvbnNcIj5cclxuICAgICAgICAgICAge3sgbm9kZURhdGEuc3VnZ2VzdGVkUHJvcGVydGllcy5taWdyYXRpb25JbnN0cnVjdGlvbnMgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class NodeSearchPanelComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.searchChange = new EventEmitter();
|
|
7
|
+
this.selectNodeChange = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
ngOnInit() {
|
|
10
|
+
this.filteredNodes = this.nodes;
|
|
11
|
+
}
|
|
12
|
+
onSearchChange(event) {
|
|
13
|
+
const value = event.target.value.trim().toLowerCase();
|
|
14
|
+
if (!value) {
|
|
15
|
+
this.filteredNodes = this.nodes.slice();
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this.filteredNodes = this.nodes
|
|
19
|
+
.filter(node => node.name?.toLowerCase().includes(value) ||
|
|
20
|
+
node.wxccActivityName?.toLowerCase().includes(value) ||
|
|
21
|
+
node.uccxTypeName?.toLowerCase().includes(value) ||
|
|
22
|
+
node.wxccGroup?.toLowerCase().includes(value) ||
|
|
23
|
+
node.uccxDisplayType?.toLowerCase().includes(value));
|
|
24
|
+
}
|
|
25
|
+
onSelectNodeChange(event) {
|
|
26
|
+
const target = event.target;
|
|
27
|
+
const id = target.id;
|
|
28
|
+
this.selectNodeChange.emit(id);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
NodeSearchPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeSearchPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
32
|
+
NodeSearchPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NodeSearchPanelComponent, selector: "node-search-panel", inputs: { nodes: "nodes" }, outputs: { searchChange: "searchChange", selectNodeChange: "selectNodeChange" }, ngImport: i0, template: "<div class=\"search-panel\">\r\n <div class=\"search-input-wrapper\">\r\n <div class=\"search-icon\">\r\n <img src=\"assets/icons/search.svg\" />\r\n </div>\r\n <input (input)=\"onSearchChange($event)\" type=\"text\" name=\"\" id=\"\" placeholder=\"Search nodes by name, type, variables...\" class=\"search-input\">\r\n </div>\r\n <div class=\"search-results-wrapper\" (click)=\"onSelectNodeChange($event)\">\r\n <div class=\"activity-result-wrapper\" *ngFor=\"let act of filteredNodes\" id=\"{{ act.id }}\">\r\n {{ act.wxccActivityName || act.name }}\r\n </div>\r\n </div>\r\n</div>", styles: [".search-panel{position:absolute;min-width:400px;min-height:400px;max-height:500px;top:1rem;left:1rem;display:flex;flex-direction:column;border-radius:1rem;background-color:#fff}.search-input-wrapper{padding:1rem;position:relative;display:flex;align-items:center;justify-content:center}.search-results-wrapper{padding:1rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}.search-icon{position:absolute;left:1.5rem;display:flex}.search-icon img{width:32px;height:32px}.search-input{border-radius:.5rem;padding:.75rem .75rem .75rem 2.5rem;width:100%}.activity-result-wrapper{padding:1rem;cursor:pointer;background-color:#f1f1f180;border-radius:.5rem}.activity-result-wrapper:hover{background-color:#cbe3ecac}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NodeSearchPanelComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{ selector: 'node-search-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"search-panel\">\r\n <div class=\"search-input-wrapper\">\r\n <div class=\"search-icon\">\r\n <img src=\"assets/icons/search.svg\" />\r\n </div>\r\n <input (input)=\"onSearchChange($event)\" type=\"text\" name=\"\" id=\"\" placeholder=\"Search nodes by name, type, variables...\" class=\"search-input\">\r\n </div>\r\n <div class=\"search-results-wrapper\" (click)=\"onSelectNodeChange($event)\">\r\n <div class=\"activity-result-wrapper\" *ngFor=\"let act of filteredNodes\" id=\"{{ act.id }}\">\r\n {{ act.wxccActivityName || act.name }}\r\n </div>\r\n </div>\r\n</div>", styles: [".search-panel{position:absolute;min-width:400px;min-height:400px;max-height:500px;top:1rem;left:1rem;display:flex;flex-direction:column;border-radius:1rem;background-color:#fff}.search-input-wrapper{padding:1rem;position:relative;display:flex;align-items:center;justify-content:center}.search-results-wrapper{padding:1rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}.search-icon{position:absolute;left:1.5rem;display:flex}.search-icon img{width:32px;height:32px}.search-input{border-radius:.5rem;padding:.75rem .75rem .75rem 2.5rem;width:100%}.activity-result-wrapper{padding:1rem;cursor:pointer;background-color:#f1f1f180;border-radius:.5rem}.activity-result-wrapper:hover{background-color:#cbe3ecac}\n"] }]
|
|
36
|
+
}], propDecorators: { nodes: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], searchChange: [{
|
|
39
|
+
type: Output
|
|
40
|
+
}], selectNodeChange: [{
|
|
41
|
+
type: Output
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1zZWFyY2gtcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2NvbnRhY3QtY2VudGVyL2NjLXNjcmlwdC1lZGl0b3IvY29tcG9uZW50cy9ub2RlLXNlYXJjaC1wYW5lbC9ub2RlLXNlYXJjaC1wYW5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL25vZGUtc2VhcmNoLXBhbmVsL25vZGUtc2VhcmNoLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVN4RyxNQUFNLE9BQU8sd0JBQXdCO0lBTnJDO1FBUytCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBZ0M1RTtJQTVCRyxRQUFRO1FBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBWTtRQUN2QixNQUFNLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFNUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN4QyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNYLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN4QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNwRCxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDaEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzdDLElBQUksQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUN0RCxDQUFDO0lBQ1YsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVk7UUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7O3NIQW5DUSx3QkFBd0I7MEdBQXhCLHdCQUF3QixzS0NUckMsOG9CQVlNOzRGREhPLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUVxQixZQUFZO3NCQUF0QyxNQUFNO2dCQUNvQixnQkFBZ0I7c0JBQTFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eSB9IGZyb20gXCIuLi8uLi90eXBlcy9leHRlbmRlZC1hY3Rpdml0eVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ25vZGUtc2VhcmNoLXBhbmVsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub2RlLXNlYXJjaC1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9ub2RlLXNlYXJjaC1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vZGVTZWFyY2hQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBub2RlcyE6IFJlYWRvbmx5RXh0ZW5kZWRBY3Rpdml0eVtdO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0Tm9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIGZpbHRlcmVkTm9kZXMhOiBSZWFkb25seUV4dGVuZGVkQWN0aXZpdHlbXTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkTm9kZXMgPSB0aGlzLm5vZGVzO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VhcmNoQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlcmVkTm9kZXMgPSB0aGlzLm5vZGVzLnNsaWNlKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVyZWROb2RlcyA9IHRoaXMubm9kZXNcclxuICAgICAgICAgICAgLmZpbHRlcihub2RlID0+XHJcbiAgICAgICAgICAgICAgICBub2RlLm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUpIHx8XHJcbiAgICAgICAgICAgICAgICBub2RlLnd4Y2NBY3Rpdml0eU5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUpIHx8XHJcbiAgICAgICAgICAgICAgICBub2RlLnVjY3hUeXBlTmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZSkgfHxcclxuICAgICAgICAgICAgICAgIG5vZGUud3hjY0dyb3VwPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKSB8fFxyXG4gICAgICAgICAgICAgICAgbm9kZS51Y2N4RGlzcGxheVR5cGU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3ROb2RlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCBpZCA9IHRhcmdldC5pZDtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3ROb2RlQ2hhbmdlLmVtaXQoaWQpO1xyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInNlYXJjaC1wYW5lbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pY29uXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL3NlYXJjaC5zdmdcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxpbnB1dCAoaW5wdXQpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiIHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIlwiIGlkPVwiXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggbm9kZXMgYnkgbmFtZSwgdHlwZSwgdmFyaWFibGVzLi4uXCIgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHRzLXdyYXBwZXJcIiAoY2xpY2spPVwib25TZWxlY3ROb2RlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktcmVzdWx0LXdyYXBwZXJcIiAqbmdGb3I9XCJsZXQgYWN0IG9mIGZpbHRlcmVkTm9kZXNcIiBpZD1cInt7IGFjdC5pZCB9fVwiPlxyXG4gICAgICAgICAgICB7eyBhY3Qud3hjY0FjdGl2aXR5TmFtZSB8fCBhY3QubmFtZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/material/button";
|
|
4
|
+
export class WxCCActionsBarComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.save = new EventEmitter();
|
|
7
|
+
this.reset = new EventEmitter();
|
|
8
|
+
this.complete = new EventEmitter();
|
|
9
|
+
this.exportNonIr = new EventEmitter();
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() { }
|
|
12
|
+
}
|
|
13
|
+
WxCCActionsBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCActionsBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
WxCCActionsBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WxCCActionsBarComponent, selector: "wxcc-actions-bar", outputs: { save: "save", reset: "reset", complete: "complete", exportNonIr: "exportNonIr" }, ngImport: i0, template: "<div class=\"actions-wrapper\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"outline-button\"\r\n (click)=\"exportNonIr.emit()\">\r\n Export JSON\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"outline-button\"\r\n (click)=\"reset.emit()\">\r\n Reset\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"outline-button\"\r\n (click)=\"save.emit()\">\r\n Save\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-button\r\n color=\"primary\"\r\n (click)=\"complete.emit()\">\r\n Complete\r\n </button>\r\n</div>", styles: [".actions-wrapper{display:flex;align-items:center;gap:.5rem}.actions-wrapper button.outline-button{border:none!important}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCActionsBarComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'wxcc-actions-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"actions-wrapper\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"outline-button\"\r\n (click)=\"exportNonIr.emit()\">\r\n Export JSON\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"outline-button\"\r\n (click)=\"reset.emit()\">\r\n Reset\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-button\r\n class=\"outline-button\"\r\n (click)=\"save.emit()\">\r\n Save\r\n </button>\r\n <button\r\n type=\"button\"\r\n mat-button\r\n color=\"primary\"\r\n (click)=\"complete.emit()\">\r\n Complete\r\n </button>\r\n</div>", styles: [".actions-wrapper{display:flex;align-items:center;gap:.5rem}.actions-wrapper button.outline-button{border:none!important}\n"] }]
|
|
18
|
+
}], propDecorators: { save: [{
|
|
19
|
+
type: Output
|
|
20
|
+
}], reset: [{
|
|
21
|
+
type: Output
|
|
22
|
+
}], complete: [{
|
|
23
|
+
type: Output
|
|
24
|
+
}], exportNonIr: [{
|
|
25
|
+
type: Output
|
|
26
|
+
}] } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3hjYy1hY3Rpb25zLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL3d4Y2MtYWN0aW9ucy1iYXIvd3hjYy1hY3Rpb25zLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL3d4Y2MtYWN0aW9ucy1iYXIvd3hjYy1hY3Rpb25zLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVFqRyxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT2MsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBR3BEO0lBREcsUUFBUSxLQUFXLENBQUM7O3FIQU5YLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLHFKQ1JwQyxndUJBNkJNOzRGRHJCTyx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU07OEJBR3JDLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnd3hjYy1hY3Rpb25zLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vd3hjYy1hY3Rpb25zLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi93eGNjLWFjdGlvbnMtYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV3hDQ0FjdGlvbnNCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQE91dHB1dCgpIHNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVzZXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgY29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgZXhwb3J0Tm9uSXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cclxufSIsIjxkaXYgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJvdXRsaW5lLWJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cImV4cG9ydE5vbklyLmVtaXQoKVwiPlxyXG4gICAgICAgIEV4cG9ydCBKU09OXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJvdXRsaW5lLWJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cInJlc2V0LmVtaXQoKVwiPlxyXG4gICAgICAgIFJlc2V0XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJvdXRsaW5lLWJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cInNhdmUuZW1pdCgpXCI+XHJcbiAgICAgICAgU2F2ZVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNvbXBsZXRlLmVtaXQoKVwiPlxyXG4gICAgICAgIENvbXBsZXRlXHJcbiAgICA8L2J1dHRvbj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/form-field";
|
|
5
|
+
import * as i3 from "@angular/material/select";
|
|
6
|
+
import * as i4 from "@angular/material/core";
|
|
7
|
+
export class WxCCFileSelectionBarComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.fileNameSelectionChange = new EventEmitter();
|
|
10
|
+
this.hostFileNames = new Map();
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.fileNames.forEach(({ fileName, host }) => {
|
|
14
|
+
if (!this.hostFileNames.has(host)) {
|
|
15
|
+
this.hostFileNames.set(host, []);
|
|
16
|
+
}
|
|
17
|
+
this.hostFileNames.get(host)?.push(fileName);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
get fileNamesByHost() {
|
|
21
|
+
return this.hostFileNames.get(this.selectedHost);
|
|
22
|
+
}
|
|
23
|
+
get hosts() {
|
|
24
|
+
if (!this.fileNames.length) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const hostsSet = new Set(this.fileNames.map((file) => file.host));
|
|
28
|
+
return Array.from(hostsSet).filter(host => host);
|
|
29
|
+
}
|
|
30
|
+
onFileSelectionChange(fileName) {
|
|
31
|
+
this.fileNameSelectionChange.emit({ fileName: fileName, host: this.selectedHost });
|
|
32
|
+
}
|
|
33
|
+
onHostSelectionChange(host) {
|
|
34
|
+
this.selectedHost = host;
|
|
35
|
+
this.fileNameSelectionChange.emit({
|
|
36
|
+
host: host,
|
|
37
|
+
fileName: this.fileNamesByHost[0]
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
trackByFileName(_index, fileName) {
|
|
41
|
+
return fileName;
|
|
42
|
+
}
|
|
43
|
+
trackByHost(_index, host) {
|
|
44
|
+
return host;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
WxCCFileSelectionBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCFileSelectionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
WxCCFileSelectionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WxCCFileSelectionBarComponent, selector: "wxcc-file-selection-bar", inputs: { fileNames: "fileNames", selectedFileName: "selectedFileName", selectedHost: "selectedHost" }, outputs: { fileNameSelectionChange: "fileNameSelectionChange" }, ngImport: i0, template: "<div class=\"file-selection-bar\">\r\n <mat-form-field appearance=\"outline\" class=\"host-selection\" *ngIf=\"hosts?.length\">\r\n <!-- <mat-label>Host</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedHost\"\r\n (selectionChange)=\"onHostSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let host of hosts; trackBy: trackByHost\"\r\n title=\"{{ host }}\"\r\n [value]=\"host\">\r\n {{ host }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"file-selection\">\r\n <!-- <mat-label>Script file</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedFileName\"\r\n (selectionChange)=\"onFileSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let name of fileNamesByHost; trackBy: trackByFileName\"\r\n title=\"{{ name }}\"\r\n [value]=\"name\">\r\n {{ name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>", 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\";:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:.25rem 0 .5rem}:host ::ng-deep .mat-select-trigger{display:block}:host ::ng-deep .mat-select-trigger .mat-select-arrow-wrapper{transform:none}.file-selection-bar{display:flex;gap:1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WxCCFileSelectionBarComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'wxcc-file-selection-bar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"file-selection-bar\">\r\n <mat-form-field appearance=\"outline\" class=\"host-selection\" *ngIf=\"hosts?.length\">\r\n <!-- <mat-label>Host</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedHost\"\r\n (selectionChange)=\"onHostSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let host of hosts; trackBy: trackByHost\"\r\n title=\"{{ host }}\"\r\n [value]=\"host\">\r\n {{ host }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"file-selection\">\r\n <!-- <mat-label>Script file</mat-label> -->\r\n <mat-select\r\n [value]=\"selectedFileName\"\r\n (selectionChange)=\"onFileSelectionChange($event.value)\">\r\n <mat-option\r\n *ngFor=\"let name of fileNamesByHost; trackBy: trackByFileName\"\r\n title=\"{{ name }}\"\r\n [value]=\"name\">\r\n {{ name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>", 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\";:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-wrapper{margin:0}:host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix{padding:.25rem 0 .5rem}:host ::ng-deep .mat-select-trigger{display:block}:host ::ng-deep .mat-select-trigger .mat-select-arrow-wrapper{transform:none}.file-selection-bar{display:flex;gap:1rem}\n"] }]
|
|
52
|
+
}], propDecorators: { fileNames: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], selectedFileName: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], selectedHost: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], fileNameSelectionChange: [{
|
|
59
|
+
type: Output
|
|
60
|
+
}] } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3hjYy1maWxlLXNlbGVjdGlvbi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2NvbnRhY3QtY2VudGVyL2NjLXNjcmlwdC1lZGl0b3IvY29tcG9uZW50cy93eGNjLWZpbGUtc2VsZWN0aW9uLWJhci93eGNjLWZpbGUtc2VsZWN0aW9uLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvY29udGFjdC1jZW50ZXIvY2Mtc2NyaXB0LWVkaXRvci9jb21wb25lbnRzL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVF4RyxNQUFNLE9BQU8sNkJBQTZCO0lBTjFDO1FBV2MsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQXNDLENBQUM7UUFFbEYsa0JBQWEsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztLQTBDeEQ7SUF4Q0csUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNwQztZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQWEsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUFnQjtRQUNsQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQVk7UUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQztZQUM5QixJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUNwQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUM1QyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFZO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzJIQWhEUSw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3T0NSMUMsMnBDQTRCTTs0RkRwQk8sNkJBQTZCO2tCQU56QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnd3hjYy1maWxlLXNlbGVjdGlvbi1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3d4Y2MtZmlsZS1zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV3hDQ0ZpbGVTZWxlY3Rpb25CYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgZmlsZU5hbWVzITogeyBmaWxlTmFtZTogc3RyaW5nOyBob3N0OiBzdHJpbmcgfVtdO1xyXG4gICAgQElucHV0KCkgc2VsZWN0ZWRGaWxlTmFtZSE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHNlbGVjdGVkSG9zdCE6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KCkgZmlsZU5hbWVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaG9zdDogc3RyaW5nLCBmaWxlTmFtZTogc3RyaW5nIH0+KCk7XHJcblxyXG4gICAgcmVhZG9ubHkgaG9zdEZpbGVOYW1lcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVOYW1lcy5mb3JFYWNoKCh7IGZpbGVOYW1lLCBob3N0IH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmhvc3RGaWxlTmFtZXMuaGFzKGhvc3QpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RGaWxlTmFtZXMuc2V0KGhvc3QsIFtdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmhvc3RGaWxlTmFtZXMuZ2V0KGhvc3QpPy5wdXNoKGZpbGVOYW1lKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZmlsZU5hbWVzQnlIb3N0KCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0RmlsZU5hbWVzLmdldCh0aGlzLnNlbGVjdGVkSG9zdCkgYXMgc3RyaW5nW107XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGhvc3RzKCk6IHN0cmluZ1tdIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpbGVOYW1lcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGhvc3RzU2V0ID0gbmV3IFNldCh0aGlzLmZpbGVOYW1lcy5tYXAoKGZpbGUpID0+IGZpbGUuaG9zdCkpO1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGhvc3RzU2V0KS5maWx0ZXIoaG9zdCA9PiBob3N0KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZpbGVTZWxlY3Rpb25DaGFuZ2UoZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsZU5hbWVTZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IGZpbGVOYW1lOiBmaWxlTmFtZSwgaG9zdDogdGhpcy5zZWxlY3RlZEhvc3QgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Ib3N0U2VsZWN0aW9uQ2hhbmdlKGhvc3Q6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRIb3N0ID0gaG9zdDtcclxuICAgICAgICB0aGlzLmZpbGVOYW1lU2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICBob3N0OiBob3N0LFxyXG4gICAgICAgICAgICBmaWxlTmFtZTogdGhpcy5maWxlTmFtZXNCeUhvc3RbMF1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5RmlsZU5hbWUoX2luZGV4OiBudW1iZXIsIGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBmaWxlTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICB0cmFja0J5SG9zdChfaW5kZXg6IG51bWJlciwgaG9zdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gaG9zdDtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJmaWxlLXNlbGVjdGlvbi1iYXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwiaG9zdC1zZWxlY3Rpb25cIiAqbmdJZj1cImhvc3RzPy5sZW5ndGhcIj5cclxuICAgICAgICA8IS0tIDxtYXQtbGFiZWw+SG9zdDwvbWF0LWxhYmVsPiAtLT5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRIb3N0XCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkhvc3RTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGhvc3Qgb2YgaG9zdHM7IHRyYWNrQnk6IHRyYWNrQnlIb3N0XCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgaG9zdCB9fVwiXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaG9zdFwiPlxyXG4gICAgICAgICAgICAgICAge3sgaG9zdCB9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImZpbGUtc2VsZWN0aW9uXCI+XHJcbiAgICAgICAgPCEtLSA8bWF0LWxhYmVsPlNjcmlwdCBmaWxlPC9tYXQtbGFiZWw+IC0tPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZEZpbGVOYW1lXCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkZpbGVTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG5hbWUgb2YgZmlsZU5hbWVzQnlIb3N0OyB0cmFja0J5OiB0cmFja0J5RmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBuYW1lIH19XCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJuYW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBuYW1lIH19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj4iXX0=
|