ato-water-lib 0.0.6 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -1
- package/esm2020/lib/ato-water-lib.module.mjs +6 -6
- package/esm2020/lib/components/flow-diagram-lib/flow-diagram-lib.component.mjs +71 -0
- package/esm2020/lib/constants/applicable-prefixes-const.mjs +441 -0
- package/esm2020/lib/constants/key.const.mjs +4 -0
- package/esm2020/lib/constants/plant.constant.mjs +51 -0
- package/esm2020/lib/constants/value.const.mjs +782 -0
- package/esm2020/lib/models/default-gojs-editor.model.mjs +3182 -0
- package/esm2020/lib/models/gojs-editor.model.mjs +1743 -0
- package/esm2020/lib/services/utils/utils.service.mjs +133 -0
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/ato-water-lib.mjs +6421 -12
- package/fesm2015/ato-water-lib.mjs.map +1 -1
- package/fesm2020/ato-water-lib.mjs +6392 -12
- package/fesm2020/ato-water-lib.mjs.map +1 -1
- package/lib/ato-water-lib.module.d.ts +2 -2
- package/lib/components/flow-diagram-lib/flow-diagram-lib.component.d.ts +17 -0
- package/lib/constants/applicable-prefixes-const.d.ts +162 -0
- package/lib/constants/key.const.d.ts +1 -0
- package/lib/constants/plant.constant.d.ts +7 -0
- package/lib/constants/value.const.d.ts +71 -0
- package/lib/models/default-gojs-editor.model.d.ts +184 -0
- package/lib/models/gojs-editor.model.d.ts +432 -0
- package/lib/services/utils/utils.service.d.ts +24 -0
- package/package.json +3 -3
- package/public-api.d.ts +1 -1
- package/esm2020/lib/test-button/test-button.component.mjs +0 -11
- package/lib/test-button/test-button.component.d.ts +0 -5
package/README.md
CHANGED
@@ -1,26 +1,26 @@
|
|
1
1
|
import { NgModule } from '@angular/core';
|
2
2
|
import { AtoWaterLibComponent } from './ato-water-lib.component';
|
3
|
-
import {
|
3
|
+
import { AtoFlowDiagramLibComponent } from './components/flow-diagram-lib/flow-diagram-lib.component';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export class AtoWaterLibModule {
|
6
6
|
}
|
7
7
|
AtoWaterLibModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
8
8
|
AtoWaterLibModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, declarations: [AtoWaterLibComponent,
|
9
|
-
|
10
|
-
|
9
|
+
AtoFlowDiagramLibComponent], exports: [AtoWaterLibComponent,
|
10
|
+
AtoFlowDiagramLibComponent] });
|
11
11
|
AtoWaterLibModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule });
|
12
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoWaterLibModule, decorators: [{
|
13
13
|
type: NgModule,
|
14
14
|
args: [{
|
15
15
|
declarations: [
|
16
16
|
AtoWaterLibComponent,
|
17
|
-
|
17
|
+
AtoFlowDiagramLibComponent
|
18
18
|
],
|
19
19
|
imports: [],
|
20
20
|
exports: [
|
21
21
|
AtoWaterLibComponent,
|
22
|
-
|
22
|
+
AtoFlowDiagramLibComponent
|
23
23
|
]
|
24
24
|
}]
|
25
25
|
}] });
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXRvLXdhdGVyLWxpYi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvYXRvLXdhdGVyLWxpYi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7QUFjdEcsTUFBTSxPQUFPLGlCQUFpQjs7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQVYxQixvQkFBb0I7UUFDcEIsMEJBQTBCLGFBSzFCLG9CQUFvQjtRQUNwQiwwQkFBMEI7Z0hBR2pCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQVo3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7d0JBQ3BCLDBCQUEwQjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFLEVBQ1I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3FCQUMzQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdG9XYXRlckxpYkNvbXBvbmVudCB9IGZyb20gJy4vYXRvLXdhdGVyLWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXRvRmxvd0RpYWdyYW1MaWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmxvdy1kaWFncmFtLWxpYi9mbG93LWRpYWdyYW0tbGliLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEF0b1dhdGVyTGliQ29tcG9uZW50LFxuICAgIEF0b0Zsb3dEaWFncmFtTGliQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEF0b1dhdGVyTGliQ29tcG9uZW50LFxuICAgIEF0b0Zsb3dEaWFncmFtTGliQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXRvV2F0ZXJMaWJNb2R1bGUgeyB9XG4iXX0=
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
2
|
+
import _ from 'lodash';
|
3
|
+
import { AtoDefaultGojsEditor } from '../../models/default-gojs-editor.model';
|
4
|
+
import { GojsEditorModel } from '../../models/gojs-editor.model';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class AtoFlowDiagramLibComponent extends AtoDefaultGojsEditor {
|
7
|
+
set data(v) {
|
8
|
+
this._data = v;
|
9
|
+
this.loadDiagram();
|
10
|
+
}
|
11
|
+
get data() {
|
12
|
+
return this._data;
|
13
|
+
}
|
14
|
+
constructor() {
|
15
|
+
super();
|
16
|
+
this._data = null;
|
17
|
+
this.isLoading = false;
|
18
|
+
this.actions = [
|
19
|
+
AtoDefaultGojsEditor.ACTIONS[AtoDefaultGojsEditor.ENUM_ACTIONS.DETAILS],
|
20
|
+
AtoDefaultGojsEditor.ACTIONS[AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE],
|
21
|
+
];
|
22
|
+
this.unsubscribeAll();
|
23
|
+
}
|
24
|
+
ngOnInit() {
|
25
|
+
this.addSubscribes(this.committedTransactionSubject?.subscribe((e) => {
|
26
|
+
this.onModelChangeListenerEvent.emit(e);
|
27
|
+
}));
|
28
|
+
}
|
29
|
+
loadDiagram() {
|
30
|
+
if (this.data?.nodeDataArray?.length && !!this.showNotificationIcon) {
|
31
|
+
_.map(this.data?.nodeDataArray, (node) => {
|
32
|
+
// if (node?.type === GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE) {
|
33
|
+
// node.recommendation = _.some(
|
34
|
+
// this._RecommendationsService.activeRecommendations$?.value,
|
35
|
+
// (x) => x?.BoxId === node?.id,
|
36
|
+
// );
|
37
|
+
// // node.discoveries = !!_.get(
|
38
|
+
// // this._RecommendationsService.activeDiscoveries$?.value,
|
39
|
+
// // `${ENUM_KPI_METRIC.TOPOLOGY}-${node?.id}.0`,
|
40
|
+
// // null,
|
41
|
+
// // );
|
42
|
+
// }
|
43
|
+
});
|
44
|
+
}
|
45
|
+
// setTimeout(() => {
|
46
|
+
this.editor = new GojsEditorModel({
|
47
|
+
class: 'go.GraphLinksModel',
|
48
|
+
nodeCategoryProperty: 'type',
|
49
|
+
...this.data,
|
50
|
+
});
|
51
|
+
}
|
52
|
+
findNodeForKey(key) {
|
53
|
+
this.myDiagram.select(this.myDiagram.findNodeForKey(key));
|
54
|
+
}
|
55
|
+
}
|
56
|
+
AtoFlowDiagramLibComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoFlowDiagramLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
57
|
+
AtoFlowDiagramLibComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AtoFlowDiagramLibComponent, selector: "ato-flow-diagram-lib", inputs: { showNotificationIcon: "showNotificationIcon", data: "data", isLoading: "isLoading" }, viewQueries: [{ propertyName: "myDiagramDivTemp", first: true, predicate: ["myDiagramDivTemp"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- <div tqlSpin [spinning]=\"data === null || !!isLoading\" class=\"w-100 h-100 gj-flow-diagram-wrapper\">\n <div class=\"w-100 h-100 d-flex\">\n <button\n id=\"actionMenuId\"\n class=\"invisible-btn\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n #menuTrigger=\"matMenuTrigger\"\n ></button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let item of actions\" (click)=\"item?.onClick($event)\">\n <div class=\"d-flex flex-gap-2\">\n <div><i class=\"{{ item?.iconClassName }}\"></i></div>\n <div>{{ item?.name }}</div>\n </div>\n </button>\n </mat-menu>\n\n <div #myDiagramDivTemp [id]=\"myDiagramDiv\" class=\"flex-grow-1\"></div>\n <div *ngIf=\"initialOptions?.isReadOnly && !data?.nodeDataArray?.length\" class=\"empty-data\">\n <nz-empty nzNotFoundImage=\"simple\"></nz-empty>\n </div>\n </div>\n</div> -->\n<div style=\"height: 100%\" #myDiagramDivTemp [id]=\"myDiagramDiv\" class=\"flex-grow-1\"></div>\n", styles: [""] });
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AtoFlowDiagramLibComponent, decorators: [{
|
59
|
+
type: Component,
|
60
|
+
args: [{ selector: 'ato-flow-diagram-lib', template: "<!-- <div tqlSpin [spinning]=\"data === null || !!isLoading\" class=\"w-100 h-100 gj-flow-diagram-wrapper\">\n <div class=\"w-100 h-100 d-flex\">\n <button\n id=\"actionMenuId\"\n class=\"invisible-btn\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n #menuTrigger=\"matMenuTrigger\"\n ></button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let item of actions\" (click)=\"item?.onClick($event)\">\n <div class=\"d-flex flex-gap-2\">\n <div><i class=\"{{ item?.iconClassName }}\"></i></div>\n <div>{{ item?.name }}</div>\n </div>\n </button>\n </mat-menu>\n\n <div #myDiagramDivTemp [id]=\"myDiagramDiv\" class=\"flex-grow-1\"></div>\n <div *ngIf=\"initialOptions?.isReadOnly && !data?.nodeDataArray?.length\" class=\"empty-data\">\n <nz-empty nzNotFoundImage=\"simple\"></nz-empty>\n </div>\n </div>\n</div> -->\n<div style=\"height: 100%\" #myDiagramDivTemp [id]=\"myDiagramDiv\" class=\"flex-grow-1\"></div>\n" }]
|
61
|
+
}], ctorParameters: function () { return []; }, propDecorators: { myDiagramDivTemp: [{
|
62
|
+
type: ViewChild,
|
63
|
+
args: ['myDiagramDivTemp']
|
64
|
+
}], showNotificationIcon: [{
|
65
|
+
type: Input
|
66
|
+
}], data: [{
|
67
|
+
type: Input
|
68
|
+
}], isLoading: [{
|
69
|
+
type: Input
|
70
|
+
}] } });
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy1kaWFncmFtLWxpYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hdG8td2F0ZXItbGliL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWRpYWdyYW0tbGliL2Zsb3ctZGlhZ3JhbS1saWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXRvLXdhdGVyLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1kaWFncmFtLWxpYi9mbG93LWRpYWdyYW0tbGliLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU9qRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBSWxFLElBQWEsSUFBSSxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBSUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBZFosVUFBSyxHQUFRLElBQUksQ0FBQztRQU9ULGNBQVMsR0FBRyxLQUFLLENBQUM7UUFRdkIsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ3ZFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1NBQ3ZFLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUlELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxDQUNkLElBQUksQ0FBQywyQkFBMkIsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQU9MLENBQUM7SUFDTixDQUFDO0lBS0QsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDakUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNyQyxpRUFBaUU7Z0JBQ2pFLG9DQUFvQztnQkFDcEMsc0VBQXNFO2dCQUN0RSx3Q0FBd0M7Z0JBQ3hDLFNBQVM7Z0JBQ1QscUNBQXFDO2dCQUNyQyxxRUFBcUU7Z0JBQ3JFLDBEQUEwRDtnQkFDMUQsbUJBQW1CO2dCQUNuQixZQUFZO2dCQUNaLElBQUk7WUFDUixDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUM7WUFDOUIsS0FBSyxFQUFFLG9CQUFvQjtZQUMzQixvQkFBb0IsRUFBRSxNQUFNO1lBQzVCLEdBQUcsSUFBSSxDQUFDLElBQUk7U0FDZixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQW9CO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7d0hBckVVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLHlTQ1h2Qyx1bkNBeUJBOzRGRGRhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxzQkFBc0I7MEVBS0YsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFFbkIsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNPLElBQUk7c0JBQWhCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBBdG9EZWZhdWx0R29qc0VkaXRvciB9IGZyb20gJy4uLy4uL21vZGVscy9kZWZhdWx0LWdvanMtZWRpdG9yLm1vZGVsJztcbmltcG9ydCB7IEdvanNFZGl0b3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nb2pzLWVkaXRvci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F0by1mbG93LWRpYWdyYW0tbGliJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zsb3ctZGlhZ3JhbS1saWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbG93LWRpYWdyYW0tbGliLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBdG9GbG93RGlhZ3JhbUxpYkNvbXBvbmVudCBleHRlbmRzIEF0b0RlZmF1bHRHb2pzRWRpdG9yIGltcGxlbWVudHMgT25Jbml0ICB7XG4gQFZpZXdDaGlsZCgnbXlEaWFncmFtRGl2VGVtcCcpIG15RGlhZ3JhbURpdlRlbXA6IGFueTtcbiAgX2RhdGE6IGFueSA9IG51bGw7XG4gIEBJbnB1dCgpIHNob3dOb3RpZmljYXRpb25JY29uOyAvLyBBbGVydCwgUmVjb21tZW5kYXRpb24sIERpc2NvdmVyaWVzLlxuICBASW5wdXQoKSBzZXQgZGF0YSh2KSB7XG4gICAgICB0aGlzLl9kYXRhID0gdjtcbiAgICAgIHRoaXMubG9hZERpYWdyYW0oKTtcbiAgfVxuXG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIGdldCBkYXRhKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICB0aGlzLmFjdGlvbnMgPSBbXG4gICAgICAgIEF0b0RlZmF1bHRHb2pzRWRpdG9yLkFDVElPTlNbQXRvRGVmYXVsdEdvanNFZGl0b3IuRU5VTV9BQ1RJT05TLkRFVEFJTFNdLFxuICAgICAgICBBdG9EZWZhdWx0R29qc0VkaXRvci5BQ1RJT05TW0F0b0RlZmF1bHRHb2pzRWRpdG9yLkVOVU1fQUNUSU9OUy5ERUxFVEVdLFxuICAgICAgXTtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwoKTtcbiAgfVxuXG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIHRoaXMuYWRkU3Vic2NyaWJlcyhcbiAgICAgICAgICB0aGlzLmNvbW1pdHRlZFRyYW5zYWN0aW9uU3ViamVjdD8uc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZUxpc3RlbmVyRXZlbnQuZW1pdChlKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICAvLyB0aGlzLl9HalV0aWxzU2VydmljZT8udXBkYXRlTmFtZURhdGFCb3gkPy5zdWJzY3JpYmUoKHJzKSA9PiB7XG4gICAgICAgICAgLy8gICAgIGlmIChycyAmJiBycz8ua2V5KSB7XG4gICAgICAgICAgLy8gICAgICAgICBjb25zdCBub2RlID0gdGhpcy5teURpYWdyYW0uZmluZE5vZGVGb3JLZXkocnM/LmtleSk7XG4gICAgICAgICAgLy8gICAgICAgICB0aGlzLm15RGlhZ3JhbS5tb2RlbC5zZXREYXRhUHJvcGVydHkobm9kZT8uZGF0YSwgJ25hbWUnLCBycz8ubmFtZSk7XG4gICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAvLyB9KSxcbiAgICAgICk7XG4gIH1cblxuXG5cblxuICBsb2FkRGlhZ3JhbSgpIHtcbiAgICAgIGlmICh0aGlzLmRhdGE/Lm5vZGVEYXRhQXJyYXk/Lmxlbmd0aCAmJiAhIXRoaXMuc2hvd05vdGlmaWNhdGlvbkljb24pIHtcbiAgICAgICAgICBfLm1hcCh0aGlzLmRhdGE/Lm5vZGVEYXRhQXJyYXksIChub2RlKSA9PiB7XG4gICAgICAgICAgICAgIC8vIGlmIChub2RlPy50eXBlID09PSBHb2pzRWRpdG9yTW9kZWwuRU5VTV9URU1QTEFURVMuVEVYVF9OT0RFKSB7XG4gICAgICAgICAgICAgIC8vICAgICBub2RlLnJlY29tbWVuZGF0aW9uID0gXy5zb21lKFxuICAgICAgICAgICAgICAvLyAgICAgICAgIHRoaXMuX1JlY29tbWVuZGF0aW9uc1NlcnZpY2UuYWN0aXZlUmVjb21tZW5kYXRpb25zJD8udmFsdWUsXG4gICAgICAgICAgICAgIC8vICAgICAgICAgKHgpID0+IHg/LkJveElkID09PSBub2RlPy5pZCxcbiAgICAgICAgICAgICAgLy8gICAgICk7XG4gICAgICAgICAgICAgIC8vICAgICAvLyBub2RlLmRpc2NvdmVyaWVzID0gISFfLmdldChcbiAgICAgICAgICAgICAgLy8gICAgIC8vICAgICB0aGlzLl9SZWNvbW1lbmRhdGlvbnNTZXJ2aWNlLmFjdGl2ZURpc2NvdmVyaWVzJD8udmFsdWUsXG4gICAgICAgICAgICAgIC8vICAgICAvLyAgICAgYCR7RU5VTV9LUElfTUVUUklDLlRPUE9MT0dZfS0ke25vZGU/LmlkfS4wYCxcbiAgICAgICAgICAgICAgLy8gICAgIC8vICAgICBudWxsLFxuICAgICAgICAgICAgICAvLyAgICAgLy8gKTtcbiAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmVkaXRvciA9IG5ldyBHb2pzRWRpdG9yTW9kZWwoe1xuICAgICAgICAgIGNsYXNzOiAnZ28uR3JhcGhMaW5rc01vZGVsJyxcbiAgICAgICAgICBub2RlQ2F0ZWdvcnlQcm9wZXJ0eTogJ3R5cGUnLFxuICAgICAgICAgIC4uLnRoaXMuZGF0YSxcbiAgICAgIH0pO1xuICB9XG5cbiAgZmluZE5vZGVGb3JLZXkoa2V5OiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICAgIHRoaXMubXlEaWFncmFtLnNlbGVjdCh0aGlzLm15RGlhZ3JhbS5maW5kTm9kZUZvcktleShrZXkpKTtcbiAgfVxufVxuXG5cblxuXG5cbiIsIjwhLS0gPGRpdiB0cWxTcGluIFtzcGlubmluZ109XCJkYXRhID09PSBudWxsIHx8ICEhaXNMb2FkaW5nXCIgY2xhc3M9XCJ3LTEwMCBoLTEwMCBnai1mbG93LWRpYWdyYW0td3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBoLTEwMCBkLWZsZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJhY3Rpb25NZW51SWRcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnZpc2libGUtYnRuXCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAgICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWN0aW9uc1wiIChjbGljayk9XCJpdGVtPy5vbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj48aSBjbGFzcz1cInt7IGl0ZW0/Lmljb25DbGFzc05hbWUgfX1cIj48L2k+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgaXRlbT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbWF0LW1lbnU+XG5cbiAgICAgICAgPGRpdiAjbXlEaWFncmFtRGl2VGVtcCBbaWRdPVwibXlEaWFncmFtRGl2XCIgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPjwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5pdGlhbE9wdGlvbnM/LmlzUmVhZE9ubHkgJiYgIWRhdGE/Lm5vZGVEYXRhQXJyYXk/Lmxlbmd0aFwiIGNsYXNzPVwiZW1wdHktZGF0YVwiPlxuICAgICAgICAgICAgPG56LWVtcHR5IG56Tm90Rm91bmRJbWFnZT1cInNpbXBsZVwiPjwvbnotZW1wdHk+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+IC0tPlxuPGRpdiBzdHlsZT1cImhlaWdodDogMTAwJVwiICNteURpYWdyYW1EaXZUZW1wIFtpZF09XCJteURpYWdyYW1EaXZcIiBjbGFzcz1cImZsZXgtZ3Jvdy0xXCI+PC9kaXY+XG4iXX0=
|