@lowcodeunit/applications-flow-common 1.33.194-lets-get-social-ish → 1.33.197-lets-get-social-ish
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/esm2020/lib/elements/breadcrumb/breadcrumb.component.mjs +7 -7
- package/esm2020/lib/elements/dynamic-tabs/dynamic-tabs.component.mjs +2 -2
- package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +53 -5
- package/esm2020/lib/elements/projects/projects.component.mjs +14 -15
- package/esm2020/lib/models/user-feed.model.mjs +1 -1
- package/esm2020/lib/services/project.service.mjs +12 -5
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +178 -124
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +173 -120
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/elements/dynamic-tabs/dynamic-tabs.component.d.ts +1 -1
- package/lib/elements/main-feed-card/main-feed-card.component.d.ts +3 -0
- package/lib/models/user-feed.model.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../services/eac.service";
|
|
4
|
-
import * as i2 from "@angular/material/
|
|
5
|
-
import * as i3 from "@angular/material/
|
|
4
|
+
import * as i2 from "@angular/material/icon";
|
|
5
|
+
import * as i3 from "@angular/material/button";
|
|
6
6
|
import * as i4 from "@angular/material/menu";
|
|
7
7
|
import * as i5 from "@angular/flex-layout/flex";
|
|
8
8
|
import * as i6 from "@angular/common";
|
|
@@ -14,7 +14,7 @@ export class BreadcrumbComponent {
|
|
|
14
14
|
this.SkeletonEffect = 'wave';
|
|
15
15
|
}
|
|
16
16
|
get Enterprise() {
|
|
17
|
-
return
|
|
17
|
+
return this.State.Enterprises?.find((ent) => ent.Lookup == this.State.ActiveEnterpriseLookup);
|
|
18
18
|
}
|
|
19
19
|
get ApplicationsBank() {
|
|
20
20
|
return this.State?.EaC?.Applications || {};
|
|
@@ -33,7 +33,7 @@ export class BreadcrumbComponent {
|
|
|
33
33
|
return Object.keys(this.RoutedApplications[this.SelectedRoute] || {});
|
|
34
34
|
}
|
|
35
35
|
get Loading() {
|
|
36
|
-
return this.State?.LoadingActiveEnterprise || this.State?.LoadingEnterprises;
|
|
36
|
+
return (this.State?.LoadingActiveEnterprise || this.State?.LoadingEnterprises);
|
|
37
37
|
}
|
|
38
38
|
get Projects() {
|
|
39
39
|
return this.State?.EaC?.Projects || {};
|
|
@@ -107,10 +107,10 @@ export class BreadcrumbComponent {
|
|
|
107
107
|
async handleStateChange() { }
|
|
108
108
|
}
|
|
109
109
|
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.EaCService }], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BreadcrumbComponent, selector: "lcu-breadcrumb", inputs: { ApplicationLookup: ["application-lookup", "ApplicationLookup"], ProjectLookup: ["project-lookup", "ProjectLookup"], SelectedRoute: ["selected-route", "SelectedRoute"] }, ngImport: i0, template: "<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n
|
|
110
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: BreadcrumbComponent, selector: "lcu-breadcrumb", inputs: { ApplicationLookup: ["application-lookup", "ApplicationLookup"], ProjectLookup: ["project-lookup", "ProjectLookup"], SelectedRoute: ["selected-route", "SelectedRoute"] }, ngImport: i0, template: "<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <ng-container *ngIf=\"Loading\">\n <mat-icon>home</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Enterprise Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!Loading && Enterprise\">\n <div class=\"crumb-name\" [routerLink]=\"['/enterprises']\">\n <mat-icon>home</mat-icon>\n\n {{ Enterprise?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"enterpriseMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #enterpriseMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n [routerLink]=\"['/enterprises']\"\n (click)=\"SetActiveEnterprise(ent.Lookup)\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n <span>{{ ent.Name }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"ProjectLookup && SelectedProject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Project Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['/projects', ProjectLookup]\">\n {{ SelectedProject?.Project?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let projectLookup of ProjectLookups\"\n [routerLink]=\"['/projects', projectLookup]\"\n >\n <span *ngIf=\"Projects[projectLookup]; let pro\">{{\n pro.Project?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Route Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"['/routes', SelectedRoute, ProjectLookup]\"\n >\n {{ SelectedRoute }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appRoute of Routes\"\n [routerLink]=\"['/routes', appRoute, ProjectLookup]\"\n >\n <span *ngIf=\"appRoute\">{{ appRoute }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"SelectedApplication && ApplicationLookup\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Application Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"[\n '/applications',\n ApplicationLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n {{ SelectedApplication?.Application?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"applicationMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #applicationMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"[\n '/applications',\n appLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n <span *ngIf=\"RoutedApplications[SelectedRoute][appLookup]; let app\">{{\n app.Application?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .breadcrumb-container{background-color:#ebecf0;margin:1em}:host ::ng-deep .seperator{font-size:25px;padding:10px}:host ::ng-deep .crumb-name{cursor:pointer}:host ::ng-deep .mat-icon{display:inline-flex;vertical-align:middle}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.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"] }, { type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i8.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
111
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
112
112
|
type: Component,
|
|
113
|
-
args: [{ selector: 'lcu-breadcrumb', template: "<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n
|
|
113
|
+
args: [{ selector: 'lcu-breadcrumb', template: "<div class=\"breadcrumb-container\" fxLayout=\"row wrap\">\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <ng-container *ngIf=\"Loading\">\n <mat-icon>home</mat-icon>\n\n <div skeleton-text [effect]=\"SkeletonEffect\">Enterprise Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!Loading && Enterprise\">\n <div class=\"crumb-name\" [routerLink]=\"['/enterprises']\">\n <mat-icon>home</mat-icon>\n\n {{ Enterprise?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"enterpriseMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #enterpriseMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n [routerLink]=\"['/enterprises']\"\n (click)=\"SetActiveEnterprise(ent.Lookup)\"\n *ngFor=\"let ent of State.Enterprises\"\n >\n <span>{{ ent.Name }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"ProjectLookup && SelectedProject\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Project Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div class=\"crumb-name\" [routerLink]=\"['/projects', ProjectLookup]\">\n {{ SelectedProject?.Project?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"projectMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #projectMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let projectLookup of ProjectLookups\"\n [routerLink]=\"['/projects', projectLookup]\"\n >\n <span *ngIf=\"Projects[projectLookup]; let pro\">{{\n pro.Project?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div *ngIf=\"SelectedRoute\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Route Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"['/routes', SelectedRoute, ProjectLookup]\"\n >\n {{ SelectedRoute }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"routeMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #routeMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appRoute of Routes\"\n [routerLink]=\"['/routes', appRoute, ProjectLookup]\"\n >\n <span *ngIf=\"appRoute\">{{ appRoute }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"SelectedApplication && ApplicationLookup\"\n fxLayout=\"row\"\n fxLayoutAlign=\"center center\"\n >\n <span class=\"seperator\">/</span>\n\n <ng-container *ngIf=\"State?.Loading\">\n <div skeleton-text [effect]=\"SkeletonEffect\">Application Name</div>\n </ng-container>\n\n <ng-container *ngIf=\"!State?.Loading\">\n <div\n class=\"crumb-name\"\n [routerLink]=\"[\n '/applications',\n ApplicationLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n {{ SelectedApplication?.Application?.Name }}\n </div>\n\n <button mat-icon-button [matMenuTriggerFor]=\"applicationMenu\">\n <mat-icon>expand_more</mat-icon>\n </button>\n\n <mat-menu #applicationMenu=\"matMenu\" xPosition=\"before\">\n <button\n mat-menu-item\n *ngFor=\"let appLookup of CurrentRouteApplicationLookups\"\n [routerLink]=\"[\n '/applications',\n appLookup,\n SelectedRoute,\n ProjectLookup\n ]\"\n >\n <span *ngIf=\"RoutedApplications[SelectedRoute][appLookup]; let app\">{{\n app.Application?.Name\n }}</span>\n </button>\n </mat-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host ::ng-deep .breadcrumb-container{background-color:#ebecf0;margin:1em}:host ::ng-deep .seperator{font-size:25px;padding:10px}:host ::ng-deep .crumb-name{cursor:pointer}:host ::ng-deep .mat-icon{display:inline-flex;vertical-align:middle}\n"] }]
|
|
114
114
|
}], ctorParameters: function () { return [{ type: i1.EaCService }]; }, propDecorators: { ApplicationLookup: [{
|
|
115
115
|
type: Input,
|
|
116
116
|
args: ['application-lookup']
|
|
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
121
121
|
type: Input,
|
|
122
122
|
args: ['selected-route']
|
|
123
123
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBVXpELE1BQU0sT0FBTyxtQkFBbUI7SUF3STlCLFlBQXNCLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQXpJRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLElBQUksQ0FDMUIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FDekQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDL0QsQ0FBQztJQUNKLENBQUM7SUFXRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixNQUFNLElBQUksR0FBK0MsRUFBRSxDQUFDO1FBRTVELElBQUksQ0FBQyxlQUFlLEVBQUUsa0JBQWtCLEVBQUUs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ZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9IGZyb20gJ0BzZW1hbnRpY2pzL2NvbW1vbic7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3UtYnJlYWRjcnVtYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGdldCBFbnRlcnByaXNlKCk6IGFueSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuU3RhdGUuRW50ZXJwcmlzZXM/LmZpbmQoXG4gICAgICAgIChlbnQpID0+IGVudC5Mb29rdXAgPT0gdGhpcy5TdGF0ZS5BY3RpdmVFbnRlcnByaXNlTG9va3VwXG4gICAgICApID8/IHRoaXMuU3RhdGUuRW50ZXJwcmlzZXMgPyB0aGlzLlN0YXRlLkVudGVycHJpc2VzWzBdIDogbnVsbFxuICAgICk7XG4gIH1cblxuICBASW5wdXQoJ2FwcGxpY2F0aW9uLWxvb2t1cCcpXG4gIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cDogc3RyaW5nO1xuXG4gIEBJbnB1dCgncHJvamVjdC1sb29rdXAnKVxuICBwdWJsaWMgUHJvamVjdExvb2t1cDogc3RyaW5nO1xuXG4gIEBJbnB1dCgnc2VsZWN0ZWQtcm91dGUnKVxuICBwdWJsaWMgU2VsZWN0ZWRSb3V0ZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgQXBwbGljYXRpb25zQmFuaygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0ge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LkFwcGxpY2F0aW9ucyB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgQXBwbGljYXRpb25zKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSB7XG4gICAgY29uc3QgYXBwczogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9ID0ge307XG5cbiAgICB0aGlzLlNlbGVjdGVkUHJvamVjdD8uQXBwbGljYXRpb25Mb29rdXBzPy5mb3JFYWNoKChhcHBMb29rdXA6IHN0cmluZykgPT4ge1xuICAgICAgYXBwc1thcHBMb29rdXBdID0gdGhpcy5BcHBsaWNhdGlvbnNCYW5rW2FwcExvb2t1cF07XG4gICAgfSk7XG4gICAgcmV0dXJuIGFwcHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFNlbGVjdGVkQXBwbGljYXRpb24oKTogRWFDQXBwbGljYXRpb25Bc0NvZGUge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LkFwcGxpY2F0aW9uc1t0aGlzLkFwcGxpY2F0aW9uTG9va3VwXSB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgQ3VycmVudFJvdXRlQXBwbGljYXRpb25Mb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLlJvdXRlZEFwcGxpY2F0aW9uc1t0aGlzLlNlbGVjdGVkUm91dGVdIHx8IHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgTG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZT8uTG9hZGluZ0FjdGl2ZUVudGVycHJpc2UgfHwgdGhpcy5TdGF0ZT8uTG9hZGluZ0VudGVycHJpc2VzO1xuICB9XG5cbiAgcHVibGljIGdldCBQcm9qZWN0cygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LlByb2plY3RzIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBQcm9qZWN0TG9va3VwcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge30pO1xuICB9XG5cbiAgcHVibGljIGdldCBSb3V0ZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zIHx8IHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgUm91dGVkQXBwbGljYXRpb25zKCk6IHtcbiAgICBbcm91dGU6IHN0cmluZ106IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfTtcbiAgfSB7XG4gICAgY29uc3QgYXBwTG9va3VwcyA9IE9iamVjdC5rZXlzKHRoaXMuQXBwbGljYXRpb25zKTtcblxuICAgIGNvbnN0IGFwcHMgPSBhcHBMb29rdXBzLm1hcCgoYXBwTG9va3VwKSA9PiB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdKTtcblxuICAgIGxldCBhcHBSb3V0ZXMgPVxuICAgICAgYXBwcy5tYXAoKGFwcCkgPT4ge1xuICAgICAgICByZXR1cm4gYXBwLkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnJlcGxhY2UoJy4qJywgJycpO1xuICAgICAgfSkgfHwgW107XG5cbiAgICBhcHBSb3V0ZXMgPSBhcHBSb3V0ZXMuZmlsdGVyKChhcikgPT4gYXIgIT0gbnVsbCk7XG5cbiAgICBsZXQgcm91dGVCYXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGFwcFJvdXRlcz8uZm9yRWFjaCgoYXBwUm91dGUpID0+IHtcbiAgICAgIGNvbnN0IGFwcFJvdXRlUGFydHMgPSBhcHBSb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgICBjb25zdCBhcHBSb3V0ZUJhc2UgPSBgLyR7YXBwUm91dGVQYXJ0c1sxXX1gO1xuXG4gICAgICBpZiAocm91dGVCYXNlcy5pbmRleE9mKGFwcFJvdXRlQmFzZSkgPCAwKSB7XG4gICAgICAgIHJvdXRlQmFzZXMucHVzaChhcHBSb3V0ZUJhc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IHdvcmtpbmdBcHBMb29rdXBzID0gWy4uLihhcHBMb29rdXBzIHx8IFtdKV07XG5cbiAgICByb3V0ZUJhc2VzID0gcm91dGVCYXNlcy5zb3J0KChhLCBiKSA9PiBiLmxvY2FsZUNvbXBhcmUoYSkpO1xuXG4gICAgY29uc3Qgcm91dGVTZXQgPVxuICAgICAgcm91dGVCYXNlcy5yZWR1Y2UoKHByZXZSb3V0ZU1hcCwgY3VycmVudFJvdXRlQmFzZSkgPT4ge1xuICAgICAgICBjb25zdCByb3V0ZU1hcCA9IHtcbiAgICAgICAgICAuLi5wcmV2Um91dGVNYXAsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YWwpID0+IHtcbiAgICAgICAgICBjb25zdCB3YSA9IHRoaXMuQXBwbGljYXRpb25zW3dhbF07XG5cbiAgICAgICAgICByZXR1cm4gd2EuTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3RhcnRzV2l0aChjdXJyZW50Um91dGVCYXNlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGVNYXBbY3VycmVudFJvdXRlQmFzZV0gPVxuICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwTWFwID0ge1xuICAgICAgICAgICAgICAuLi5wcmV2QXBwTWFwLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXBwTWFwW2FwcExvb2t1cF0gPSB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuXG4gICAgICAgICAgICByZXR1cm4gYXBwTWFwO1xuICAgICAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgICAgICB3b3JraW5nQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2EpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyZWRBcHBMb29rdXBzLmluZGV4T2Yod2EpIDwgMDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlTWFwO1xuICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgbGV0IHJvdXRlU2V0S2V5cyA9IE9iamVjdC5rZXlzKHJvdXRlU2V0KTtcblxuICAgIHJvdXRlU2V0S2V5cyA9IHJvdXRlU2V0S2V5cy5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xuXG4gICAgY29uc3Qgcm91dGVTZXRSZXN1bHQgPSB7fTtcblxuICAgIHJvdXRlU2V0S2V5cz8uZm9yRWFjaCgocnNrKSA9PiAocm91dGVTZXRSZXN1bHRbcnNrXSA9IHJvdXRlU2V0W3Jza10pKTtcblxuICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU2VsZWN0ZWRQcm9qZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHNbdGhpcy5Qcm9qZWN0TG9va3VwXSB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5lYWNTdmMuU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgU2tlbGV0b25FZmZlY3Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlKSB7XG4gICAgdGhpcy5Ta2VsZXRvbkVmZmVjdCA9ICd3YXZlJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlU3RhdGVDaGFuZ2UoKS50aGVuKChlYWMpID0+IHt9KTtcblxuICAgIC8vIGNvbnNvbGUubG9nKFwic3RhdGU6IFwiLCB0aGlzLlN0YXRlKVxuXG4gICAgLy8gY29uc29sZS5sb2coXCJzZWxlY3RlZCBlbnRlcnByaXNlOiBcIiwgdGhpcy5FbnRlcnByaXNlKVxuXG4gICAgLy8gY29uc29sZS5sb2coJ1NlbGVjdGVkIHByb2plY3Q6ICcsIHRoaXMuU2VsZWN0ZWRQcm9qZWN0LlByb2plY3QpO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ1NlbGVjdGVkUm91dGU6JywgdGhpcy5TZWxlY3RlZFJvdXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBTZXRBY3RpdmVFbnRlcnByaXNlKGVudExvb2t1cDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lYWNTdmMuU2V0QWN0aXZlRW50ZXJwcmlzZShlbnRMb29rdXApLnRoZW4oKCkgPT4ge30pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVN0YXRlQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJicmVhZGNydW1iLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93IHdyYXBcIj5cblxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTdGF0ZT8uTG9hZGluZyB8fCBMb2FkaW5nXCI+XG4gICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPkVudGVycHJpc2UgTmFtZTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFMb2FkaW5nICYmIEVudGVycHJpc2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcnVtYi1uYW1lXCIgW3JvdXRlckxpbmtdPVwiWycvZW50ZXJwcmlzZXMnXVwiPlxuICAgICAgICB7eyBFbnRlcnByaXNlPy5OYW1lIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImVudGVycHJpc2VNZW51XCI+XG4gICAgICAgIDxtYXQtaWNvbj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG1hdC1tZW51ICNlbnRlcnByaXNlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9lbnRlcnByaXNlcyddXCJcbiAgICAgICAgICAoY2xpY2spPVwiU2V0QWN0aXZlRW50ZXJwcmlzZShlbnQuTG9va3VwKVwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGVudCBvZiBTdGF0ZS5FbnRlcnByaXNlc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3Bhbj57eyBlbnQuTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCJQcm9qZWN0TG9va3VwICYmIFNlbGVjdGVkUHJvamVjdFwiXG4gICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwZXJhdG9yXCI+Lzwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5Qcm9qZWN0IE5hbWU8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcnVtYi1uYW1lXCIgW3JvdXRlckxpbmtdPVwiWycvcHJvamVjdHMnLCBQcm9qZWN0TG9va3VwXVwiPlxuICAgICAgICB7eyBTZWxlY3RlZFByb2plY3Q/LlByb2plY3Q/Lk5hbWUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwicHJvamVjdE1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bWF0LW1lbnUgI3Byb2plY3RNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwcm9qZWN0TG9va3VwIG9mIFByb2plY3RMb29rdXBzXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0cycsIHByb2plY3RMb29rdXBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiUHJvamVjdHNbcHJvamVjdExvb2t1cF07IGxldCBwcm9cIj57e1xuICAgICAgICAgICAgcHJvLlByb2plY3Q/Lk5hbWVcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiU2VsZWN0ZWRSb3V0ZVwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGVyYXRvclwiPi88L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+Um91dGUgTmFtZTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNydW1iLW5hbWVcIlxuICAgICAgICBbcm91dGVyTGlua109XCJbJy9yb3V0ZXMnLCBTZWxlY3RlZFJvdXRlLCBQcm9qZWN0TG9va3VwXVwiXG4gICAgICA+XG4gICAgICAgIHt7IFNlbGVjdGVkUm91dGUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwicm91dGVNZW51XCI+XG4gICAgICAgIDxtYXQtaWNvbj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG1hdC1tZW51ICNyb3V0ZU1lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGFwcFJvdXRlIG9mIFJvdXRlc1wiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiWycvcm91dGVzJywgYXBwUm91dGUsIFByb2plY3RMb29rdXBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYXBwUm91dGVcIj57eyBhcHBSb3V0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCJTZWxlY3RlZEFwcGxpY2F0aW9uICYmIEFwcGxpY2F0aW9uTG9va3VwXCJcbiAgICBmeExheW91dD1cInJvd1wiXG4gICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJzZXBlcmF0b3JcIj4vPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPkFwcGxpY2F0aW9uIE5hbWU8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjcnVtYi1uYW1lXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwiW1xuICAgICAgICAgICcvYXBwbGljYXRpb25zJyxcbiAgICAgICAgICBBcHBsaWNhdGlvbkxvb2t1cCxcbiAgICAgICAgICBTZWxlY3RlZFJvdXRlLFxuICAgICAgICAgIFByb2plY3RMb29rdXBcbiAgICAgICAgXVwiXG4gICAgICA+XG4gICAgICAgIHt7IFNlbGVjdGVkQXBwbGljYXRpb24/LkFwcGxpY2F0aW9uPy5OYW1lIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFwcGxpY2F0aW9uTWVudVwiPlxuICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxtYXQtbWVudSAjYXBwbGljYXRpb25NZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBhcHBMb29rdXAgb2YgQ3VycmVudFJvdXRlQXBwbGljYXRpb25Mb29rdXBzXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbXG4gICAgICAgICAgICAnL2FwcGxpY2F0aW9ucycsXG4gICAgICAgICAgICBhcHBMb29rdXAsXG4gICAgICAgICAgICBTZWxlY3RlZFJvdXRlLFxuICAgICAgICAgICAgUHJvamVjdExvb2t1cFxuICAgICAgICAgIF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJSb3V0ZWRBcHBsaWNhdGlvbnNbU2VsZWN0ZWRSb3V0ZV1bYXBwTG9va3VwXTsgbGV0IGFwcFwiPnt7XG4gICAgICAgICAgICBhcHAuQXBwbGljYXRpb24/Lk5hbWVcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9lbGVtZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBVXpELE1BQU0sT0FBTyxtQkFBbUI7SUF3STlCLFlBQXNCLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQXpJRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQ2pDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQ3pELENBQUM7SUFDSixDQUFDO0lBV0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsTUFBTSxJQUFJLEdBQStDLEVBQUUsQ0FBQztRQUU1RCxJQUFJLENBQUMsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQWlCLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFXLDhCQUE4QjtRQUN2QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sQ0FDTCxJQUFJLENBQUMsS0FBSyxFQUFFLHVCQUF1QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBRzNCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUV6RSxJQUFJLFNBQVMsR0FDWCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDZixPQUFPLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVgsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUVqRCxJQUFJLFVBQVUsR0FBYSxFQUFFLENBQUM7UUFFOUIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzlCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU1QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLGlCQUFpQixHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhELFVBQVUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNELE1BQU0sUUFBUSxHQUNaLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLFFBQVEsR0FBRztnQkFDZixHQUFHLFlBQVk7YUFDaEIsQ0FBQztZQUVGLE1BQU0sa0JBQWtCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzFELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRWxDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDakUsQ0FBQyxDQUFDLENBQUM7WUFFSCxRQUFRLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ3hCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsRUFBRTtvQkFDbEQsTUFBTSxNQUFNLEdBQUc7d0JBQ2IsR0FBRyxVQUFVO3FCQUNkLENBQUM7b0JBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBRWpELE9BQU8sTUFBTSxDQUFDO2dCQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRWYsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ2xELE9BQU8sa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFZixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9ELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUUxQixZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRFLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBUUQsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7UUFFM0MscUNBQXFDO1FBRXJDLHdEQUF3RDtRQUV4RCxtRUFBbUU7UUFFbkUscURBQXFEO0lBQ3ZELENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxTQUFpQjtRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRVMsS0FBSyxDQUFDLGlCQUFpQixLQUFtQixDQUFDOztnSEE1SjFDLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDBPQ1ZoQyxzdUlBZ0pBOzJGRHRJYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCO2lHQVluQixpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUlwQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLGdCQUFnQjtnQkFJaEIsYUFBYTtzQkFEbkIsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1icmVhZGNydW1iJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9icmVhZGNydW1iLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZ2V0IEVudGVycHJpc2UoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5TdGF0ZS5FbnRlcnByaXNlcz8uZmluZChcbiAgICAgIChlbnQpID0+IGVudC5Mb29rdXAgPT0gdGhpcy5TdGF0ZS5BY3RpdmVFbnRlcnByaXNlTG9va3VwXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgnYXBwbGljYXRpb24tbG9va3VwJylcbiAgcHVibGljIEFwcGxpY2F0aW9uTG9va3VwOiBzdHJpbmc7XG5cbiAgQElucHV0KCdwcm9qZWN0LWxvb2t1cCcpXG4gIHB1YmxpYyBQcm9qZWN0TG9va3VwOiBzdHJpbmc7XG5cbiAgQElucHV0KCdzZWxlY3RlZC1yb3V0ZScpXG4gIHB1YmxpYyBTZWxlY3RlZFJvdXRlOiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBBcHBsaWNhdGlvbnNCYW5rKCk6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfSB7XG4gICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uQXBwbGljYXRpb25zIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBBcHBsaWNhdGlvbnMoKTogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB9IHtcbiAgICBjb25zdCBhcHBzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gPSB7fTtcblxuICAgIHRoaXMuU2VsZWN0ZWRQcm9qZWN0Py5BcHBsaWNhdGlvbkxvb2t1cHM/LmZvckVhY2goKGFwcExvb2t1cDogc3RyaW5nKSA9PiB7XG4gICAgICBhcHBzW2FwcExvb2t1cF0gPSB0aGlzLkFwcGxpY2F0aW9uc0JhbmtbYXBwTG9va3VwXTtcbiAgICB9KTtcbiAgICByZXR1cm4gYXBwcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU2VsZWN0ZWRBcHBsaWNhdGlvbigpOiBFYUNBcHBsaWNhdGlvbkFzQ29kZSB7XG4gICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uQXBwbGljYXRpb25zW3RoaXMuQXBwbGljYXRpb25Mb29rdXBdIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBDdXJyZW50Um91dGVBcHBsaWNhdGlvbkxvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zW3RoaXMuU2VsZWN0ZWRSb3V0ZV0gfHwge30pO1xuICB9XG5cbiAgcHVibGljIGdldCBMb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLlN0YXRlPy5Mb2FkaW5nQWN0aXZlRW50ZXJwcmlzZSB8fCB0aGlzLlN0YXRlPy5Mb2FkaW5nRW50ZXJwcmlzZXNcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBQcm9qZWN0cygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LlByb2plY3RzIHx8IHt9O1xuICB9XG5cbiAgcHVibGljIGdldCBQcm9qZWN0TG9va3VwcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHMgfHwge30pO1xuICB9XG5cbiAgcHVibGljIGdldCBSb3V0ZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuUm91dGVkQXBwbGljYXRpb25zIHx8IHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgUm91dGVkQXBwbGljYXRpb25zKCk6IHtcbiAgICBbcm91dGU6IHN0cmluZ106IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGUgfTtcbiAgfSB7XG4gICAgY29uc3QgYXBwTG9va3VwcyA9IE9iamVjdC5rZXlzKHRoaXMuQXBwbGljYXRpb25zKTtcblxuICAgIGNvbnN0IGFwcHMgPSBhcHBMb29rdXBzLm1hcCgoYXBwTG9va3VwKSA9PiB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdKTtcblxuICAgIGxldCBhcHBSb3V0ZXMgPVxuICAgICAgYXBwcy5tYXAoKGFwcCkgPT4ge1xuICAgICAgICByZXR1cm4gYXBwLkxvb2t1cENvbmZpZz8uUGF0aFJlZ2V4LnJlcGxhY2UoJy4qJywgJycpO1xuICAgICAgfSkgfHwgW107XG5cbiAgICBhcHBSb3V0ZXMgPSBhcHBSb3V0ZXMuZmlsdGVyKChhcikgPT4gYXIgIT0gbnVsbCk7XG5cbiAgICBsZXQgcm91dGVCYXNlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGFwcFJvdXRlcz8uZm9yRWFjaCgoYXBwUm91dGUpID0+IHtcbiAgICAgIGNvbnN0IGFwcFJvdXRlUGFydHMgPSBhcHBSb3V0ZS5zcGxpdCgnLycpO1xuXG4gICAgICBjb25zdCBhcHBSb3V0ZUJhc2UgPSBgLyR7YXBwUm91dGVQYXJ0c1sxXX1gO1xuXG4gICAgICBpZiAocm91dGVCYXNlcy5pbmRleE9mKGFwcFJvdXRlQmFzZSkgPCAwKSB7XG4gICAgICAgIHJvdXRlQmFzZXMucHVzaChhcHBSb3V0ZUJhc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IHdvcmtpbmdBcHBMb29rdXBzID0gWy4uLihhcHBMb29rdXBzIHx8IFtdKV07XG5cbiAgICByb3V0ZUJhc2VzID0gcm91dGVCYXNlcy5zb3J0KChhLCBiKSA9PiBiLmxvY2FsZUNvbXBhcmUoYSkpO1xuXG4gICAgY29uc3Qgcm91dGVTZXQgPVxuICAgICAgcm91dGVCYXNlcy5yZWR1Y2UoKHByZXZSb3V0ZU1hcCwgY3VycmVudFJvdXRlQmFzZSkgPT4ge1xuICAgICAgICBjb25zdCByb3V0ZU1hcCA9IHtcbiAgICAgICAgICAuLi5wcmV2Um91dGVNYXAsXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRBcHBMb29rdXBzID0gd29ya2luZ0FwcExvb2t1cHMuZmlsdGVyKCh3YWwpID0+IHtcbiAgICAgICAgICBjb25zdCB3YSA9IHRoaXMuQXBwbGljYXRpb25zW3dhbF07XG5cbiAgICAgICAgICByZXR1cm4gd2EuTG9va3VwQ29uZmlnPy5QYXRoUmVnZXguc3RhcnRzV2l0aChjdXJyZW50Um91dGVCYXNlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGVNYXBbY3VycmVudFJvdXRlQmFzZV0gPVxuICAgICAgICAgIGZpbHRlcmVkQXBwTG9va3Vwcy5yZWR1Y2UoKHByZXZBcHBNYXAsIGFwcExvb2t1cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXBwTWFwID0ge1xuICAgICAgICAgICAgICAuLi5wcmV2QXBwTWFwLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgYXBwTWFwW2FwcExvb2t1cF0gPSB0aGlzLkFwcGxpY2F0aW9uc1thcHBMb29rdXBdO1xuXG4gICAgICAgICAgICByZXR1cm4gYXBwTWFwO1xuICAgICAgICAgIH0sIHt9KSB8fCB7fTtcblxuICAgICAgICB3b3JraW5nQXBwTG9va3VwcyA9IHdvcmtpbmdBcHBMb29rdXBzLmZpbHRlcigod2EpID0+IHtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyZWRBcHBMb29rdXBzLmluZGV4T2Yod2EpIDwgMDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJvdXRlTWFwO1xuICAgICAgfSwge30pIHx8IHt9O1xuXG4gICAgbGV0IHJvdXRlU2V0S2V5cyA9IE9iamVjdC5rZXlzKHJvdXRlU2V0KTtcblxuICAgIHJvdXRlU2V0S2V5cyA9IHJvdXRlU2V0S2V5cy5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xuXG4gICAgY29uc3Qgcm91dGVTZXRSZXN1bHQgPSB7fTtcblxuICAgIHJvdXRlU2V0S2V5cz8uZm9yRWFjaCgocnNrKSA9PiAocm91dGVTZXRSZXN1bHRbcnNrXSA9IHJvdXRlU2V0W3Jza10pKTtcblxuICAgIHJldHVybiByb3V0ZVNldFJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU2VsZWN0ZWRQcm9qZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuU3RhdGU/LkVhQz8uUHJvamVjdHNbdGhpcy5Qcm9qZWN0TG9va3VwXSB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5lYWNTdmMuU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgU2tlbGV0b25FZmZlY3Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlKSB7XG4gICAgdGhpcy5Ta2VsZXRvbkVmZmVjdCA9ICd3YXZlJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlU3RhdGVDaGFuZ2UoKS50aGVuKChlYWMpID0+IHt9KTtcblxuICAgIC8vIGNvbnNvbGUubG9nKFwic3RhdGU6IFwiLCB0aGlzLlN0YXRlKVxuXG4gICAgLy8gY29uc29sZS5sb2coXCJzZWxlY3RlZCBlbnRlcnByaXNlOiBcIiwgdGhpcy5FbnRlcnByaXNlKVxuXG4gICAgLy8gY29uc29sZS5sb2coJ1NlbGVjdGVkIHByb2plY3Q6ICcsIHRoaXMuU2VsZWN0ZWRQcm9qZWN0LlByb2plY3QpO1xuXG4gICAgLy8gY29uc29sZS5sb2coJ1NlbGVjdGVkUm91dGU6JywgdGhpcy5TZWxlY3RlZFJvdXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBTZXRBY3RpdmVFbnRlcnByaXNlKGVudExvb2t1cDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lYWNTdmMuU2V0QWN0aXZlRW50ZXJwcmlzZShlbnRMb29rdXApLnRoZW4oKCkgPT4ge30pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVN0YXRlQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJicmVhZGNydW1iLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwicm93IHdyYXBcIj5cbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkxvYWRpbmdcIj5cbiAgICAgIDxtYXQtaWNvbj5ob21lPC9tYXQtaWNvbj5cblxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5FbnRlcnByaXNlIE5hbWU8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhTG9hZGluZyAmJiBFbnRlcnByaXNlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItbmFtZVwiIFtyb3V0ZXJMaW5rXT1cIlsnL2VudGVycHJpc2VzJ11cIj5cbiAgICAgICAgPG1hdC1pY29uPmhvbWU8L21hdC1pY29uPlxuXG4gICAgICAgIHt7IEVudGVycHJpc2U/Lk5hbWUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZW50ZXJwcmlzZU1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bWF0LW1lbnUgI2VudGVycHJpc2VNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2VudGVycHJpc2VzJ11cIlxuICAgICAgICAgIChjbGljayk9XCJTZXRBY3RpdmVFbnRlcnByaXNlKGVudC5Mb29rdXApXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZW50IG9mIFN0YXRlLkVudGVycHJpc2VzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPnt7IGVudC5OYW1lIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIlByb2plY3RMb29rdXAgJiYgU2VsZWN0ZWRQcm9qZWN0XCJcbiAgICBmeExheW91dD1cInJvd1wiXG4gICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJzZXBlcmF0b3JcIj4vPC9zcGFuPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlByb2plY3QgTmFtZTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNydW1iLW5hbWVcIiBbcm91dGVyTGlua109XCJbJy9wcm9qZWN0cycsIFByb2plY3RMb29rdXBdXCI+XG4gICAgICAgIHt7IFNlbGVjdGVkUHJvamVjdD8uUHJvamVjdD8uTmFtZSB9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJwcm9qZWN0TWVudVwiPlxuICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxtYXQtbWVudSAjcHJvamVjdE1lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHByb2plY3RMb29rdXAgb2YgUHJvamVjdExvb2t1cHNcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3Byb2plY3RzJywgcHJvamVjdExvb2t1cF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJQcm9qZWN0c1twcm9qZWN0TG9va3VwXTsgbGV0IHByb1wiPnt7XG4gICAgICAgICAgICBwcm8uUHJvamVjdD8uTmFtZVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJTZWxlY3RlZFJvdXRlXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwic2VwZXJhdG9yXCI+Lzwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5Sb3V0ZSBOYW1lPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIVN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY3J1bWItbmFtZVwiXG4gICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL3JvdXRlcycsIFNlbGVjdGVkUm91dGUsIFByb2plY3RMb29rdXBdXCJcbiAgICAgID5cbiAgICAgICAge3sgU2VsZWN0ZWRSb3V0ZSB9fVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJyb3V0ZU1lbnVcIj5cbiAgICAgICAgPG1hdC1pY29uPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bWF0LW1lbnUgI3JvdXRlTWVudT1cIm1hdE1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYXBwUm91dGUgb2YgUm91dGVzXCJcbiAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9yb3V0ZXMnLCBhcHBSb3V0ZSwgUHJvamVjdExvb2t1cF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJhcHBSb3V0ZVwiPnt7IGFwcFJvdXRlIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAqbmdJZj1cIlNlbGVjdGVkQXBwbGljYXRpb24gJiYgQXBwbGljYXRpb25Mb29rdXBcIlxuICAgIGZ4TGF5b3V0PVwicm93XCJcbiAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInNlcGVyYXRvclwiPi88L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIj5cbiAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+QXBwbGljYXRpb24gTmFtZTwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFTdGF0ZT8uTG9hZGluZ1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNydW1iLW5hbWVcIlxuICAgICAgICBbcm91dGVyTGlua109XCJbXG4gICAgICAgICAgJy9hcHBsaWNhdGlvbnMnLFxuICAgICAgICAgIEFwcGxpY2F0aW9uTG9va3VwLFxuICAgICAgICAgIFNlbGVjdGVkUm91dGUsXG4gICAgICAgICAgUHJvamVjdExvb2t1cFxuICAgICAgICBdXCJcbiAgICAgID5cbiAgICAgICAge3sgU2VsZWN0ZWRBcHBsaWNhdGlvbj8uQXBwbGljYXRpb24/Lk5hbWUgfX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYXBwbGljYXRpb25NZW51XCI+XG4gICAgICAgIDxtYXQtaWNvbj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG1hdC1tZW51ICNhcHBsaWNhdGlvbk1lbnU9XCJtYXRNZW51XCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGFwcExvb2t1cCBvZiBDdXJyZW50Um91dGVBcHBsaWNhdGlvbkxvb2t1cHNcIlxuICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltcbiAgICAgICAgICAgICcvYXBwbGljYXRpb25zJyxcbiAgICAgICAgICAgIGFwcExvb2t1cCxcbiAgICAgICAgICAgIFNlbGVjdGVkUm91dGUsXG4gICAgICAgICAgICBQcm9qZWN0TG9va3VwXG4gICAgICAgICAgXVwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIlJvdXRlZEFwcGxpY2F0aW9uc1tTZWxlY3RlZFJvdXRlXVthcHBMb29rdXBdOyBsZXQgYXBwXCI+e3tcbiAgICAgICAgICAgIGFwcC5BcHBsaWNhdGlvbj8uTmFtZVxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LW1lbnU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -11,7 +11,7 @@ export class DynamicTabsComponent {
|
|
|
11
11
|
}
|
|
12
12
|
// Lifecycle hook
|
|
13
13
|
ngOnInit() {
|
|
14
|
-
// listen
|
|
14
|
+
// listen for any form to be dirty, then disable all tabs except for the current tab
|
|
15
15
|
this.formIsDirtySubscription = this.formsService.FormIsDirty.subscribe((val) => {
|
|
16
16
|
this.FormIsDirty = val;
|
|
17
17
|
});
|
|
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
72
72
|
type: Input,
|
|
73
73
|
args: ['tab-components']
|
|
74
74
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL2R5bmFtaWMtdGFicy9keW5hbWljLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvZHluYW1pYy10YWJzL2R5bmFtaWMtdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBRUwsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVMxQyxNQUFNLE9BQU8sb0JBQW9CO0lBOEIvQixZQUNZLGdCQUFrQyxFQUNsQyxZQUEwQjtRQUQxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUksQ0FBQztJQUUzQyxpQkFBaUI7SUFDVixRQUFRO1FBRWIsb0ZBQW9GO1FBQ3BGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3BFLENBQUMsR0FBWSxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsR0FBc0I7UUFFdEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sZUFBZSxDQUFDLEtBQWE7UUFFbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsT0FBTztTQUNSO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhHLDJDQUEyQztRQUMzQyx1RUFBdUU7UUFDdkUsaUVBQWlFO1FBRWpFLGlDQUFpQztRQUNqQyx1RkFBdUY7UUFFdkYsNkJBQTZCO1FBQzdCLE1BQU0sUUFBUSxHQUF5QixZQUFZLENBQUMsUUFBZ0MsQ0FBQztRQUVyRiwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFzQixFQUFFLEVBQUU7WUFDakQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtnQkFDckQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2lIQXhGVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixvU0FLQSxnQkFBZ0IsNkJDdkJqRCx5cUJBcUJnQjsyRkRISCxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCO2tJQVdsQixhQUFhO3NCQUR0QixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUl4RCxlQUFlO3NCQURyQixLQUFLO3VCQUFDLGtCQUFrQjtnQkFJbEIsS0FBSztzQkFEWCxLQUFLO3VCQUFDLE9BQU87Z0JBaUJQLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybXNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9mb3Jtcy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHluYW1pY1RhYnNNb2RlbCB9IGZyb20gJy4vLi4vLi4vbW9kZWxzL2R5bmFtaWMtdGFicy5tb2RlbCc7XG5pbXBvcnQgeyBcbiAgQWZ0ZXJWaWV3SW5pdCwgXG4gIENvbXBvbmVudCwgXG4gIElucHV0LCBcbiAgT25Jbml0LCBcbiAgVmlld0NoaWxkLCBcbiAgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0VGFiQ2hhbmdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LWR5bmFtaWMtdGFicycsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXRhYnMuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogQ29udGFpbmVyIHVzZWQgdG8gZGlzcGxheSBkeW5hbWljIGNvbXBvbmVudHNcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlfSlcbiAgcHJvdGVjdGVkIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQElucHV0KCdiYWNrZ3JvdW5kLWNvbG9yJylcbiAgcHVibGljIEJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgnY29sb3InKVxuICBwdWJsaWMgQ29sb3I6IHN0cmluZztcblxuICAvKipcbiAgICogRm9ybSBpcyBkaXJ0eSBmbGFnXG4gICAqL1xuICBwdWJsaWMgRm9ybUlzRGlydHk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExpc3RlbmVyIGZvciB3aGVuIGFueSBmb3JtIGlzIGRpcnR5XG4gICAqL1xuICBwcm90ZWN0ZWQgZm9ybUlzRGlydHlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogQ29tcG9uZW50cyBsb2FkZWQgYXMgZHluYW1pYyBjb21wb25lbnRzXG4gICAqLyBcbiAgQElucHV0KCd0YWItY29tcG9uZW50cycpXG4gIHB1YmxpYyBUYWJDb21wb25lbnRzOiBBcnJheTxEeW5hbWljVGFic01vZGVsPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcm90ZWN0ZWQgZm9ybXNTZXJ2aWNlOiBGb3Jtc1NlcnZpY2UpIHsgfVxuXG4gIC8vIExpZmVjeWNsZSBob29rXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIC8vIGxpc3RlbiBmb3IgYW55IGZvcm0gdG8gYmUgZGlydHksIHRoZW4gZGlzYWJsZSBhbGwgdGFicyBleGNlcHQgZm9yIHRoZSBjdXJyZW50IHRhYlxuICAgIHRoaXMuZm9ybUlzRGlydHlTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1zU2VydmljZS5Gb3JtSXNEaXJ0eS5zdWJzY3JpYmUoXG4gICAgICAodmFsOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuRm9ybUlzRGlydHkgPSB2YWw7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KDApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRhYiBjaGFuZ2UgZXZlbnRcbiAgICpcbiAgICogQHBhcmFtIGluZGV4IHNlbGVjdGVkIHRhYiBpbmRleFxuICAgKi9cbiAgcHVibGljIFRhYkNoYW5nZWQoZXZ0OiBNYXRUYWJDaGFuZ2VFdmVudCk6IHZvaWQge1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KGV2dC5pbmRleCk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGNvbXBvbmVudCBmb3IgdGhlIGFjdGl2ZSB0YWJcbiAgICpcbiAgICogQHBhcmFtIGluZGV4IFRhYkNvbXBvbmVudHMgaW5kZXggcG9zaXRpb25cbiAgICovXG4gIHByb3RlY3RlZCByZW5kZXJDb21wb25lbnQoaW5kZXg6IG51bWJlcik6IGFueSB7XG5cbiAgICAgIGlmICghdGhpcy5UYWJDb21wb25lbnRzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQodGhpcy5UYWJDb21wb25lbnRzW2luZGV4XS5Db21wb25lbnQpO1xuXG4gICAgICAvLyBmYWN0b3J5IGZvciBjcmVhdGluZyBhIGR5bmFtaWMgY29tcG9uZW50XG4gICAgICAvLyBjb25zdCBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT4gPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLy8gLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuVGFiQ29tcG9uZW50c1tpbmRleF0uQ29tcG9uZW50KTtcblxuICAgICAgLy8gY29tcG9uZW50IGNyZWF0ZWQgYnkgYSBmYWN0b3J5XG4gICAgICAvLyBjb25zdCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgLy8gY3VycmVudCBjb21wb25lbnQgaW5zdGFuY2VcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBEeW5hbWljVGFic0NvbXBvbmVudCA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBEeW5hbWljVGFic0NvbXBvbmVudDtcblxuICAgICAgLy8gZmluZCB0aGUgY3VycmVudCBjb21wb25lbnQgaW4gVGFiQ29tcG9uZW50cyBhbmQgc2V0IGl0cyBkYXRhXG4gICAgICB0aGlzLlRhYkNvbXBvbmVudHMuZmluZCgoY29tcDogRHluYW1pY1RhYnNNb2RlbCkgPT4ge1xuICAgICAgICBpZiAoY29tcC5Db21wb25lbnQubmFtZSA9PT0gaW5zdGFuY2UuY29uc3RydWN0b3IubmFtZSkge1xuICAgICAgICAgIGluc3RhbmNlWydEYXRhJ10gPSBjb21wLkRhdGE7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iLCI8bWF0LXRhYi1ncm91cCBcbiAgICBbY29sb3JdPVwiQ29sb3JcIiBcbiAgICBbYmFja2dyb3VuZENvbG9yXT1cIkJhY2tncm91bmRDb2xvclwiIFxuICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJUYWJDaGFuZ2VkKCRldmVudClcIj5cbiAgICA8IS0tIDxkaXY+XG5cbiAgICA8L2Rpdj4gLS0+XG4gICAgPG1hdC10YWJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvbXBvbmVudCBvZiBUYWJDb21wb25lbnRzXCJcbiAgICAgICAgI3RhYlxuICAgICAgICBbZGlzYWJsZWRdPSchdGFiLmlzQWN0aXZlICYmIEZvcm1Jc0RpcnR5Jz5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgICAgICA8bWF0LWljb24gW2NvbG9yXT1cIkNvbG9yXCIgY2xhc3M9XCJtYXJnaW4tcmlnaHQtMlwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbXBvbmVudC5JY29uIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAge3sgY29tcG9uZW50LkxhYmVsIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICA8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJtYXJnaW4tdG9wLTNcIj48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L21hdC10YWI+XG48L21hdC10YWItZ3JvdXA+Il19
|
|
@@ -3,25 +3,73 @@ import moment from 'moment';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/material/card";
|
|
5
5
|
import * as i2 from "@angular/material/icon";
|
|
6
|
-
import * as i3 from "@angular/
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "@angular/flex-layout/flex";
|
|
7
9
|
export class MainFeedCardComponent {
|
|
8
10
|
constructor() { }
|
|
11
|
+
get Icon() {
|
|
12
|
+
if (this.FeedItem.Status.Code === 0) {
|
|
13
|
+
return 'check_circle';
|
|
14
|
+
}
|
|
15
|
+
else if (this.FeedItem.Status.Code === 1) {
|
|
16
|
+
return 'cancel';
|
|
17
|
+
}
|
|
18
|
+
else if (this.FeedItem.Status.Code === 2) {
|
|
19
|
+
return 'sync';
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return 'help_outline';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
get IconColor() {
|
|
26
|
+
if (this.FeedItem.Status.Code === 0) {
|
|
27
|
+
return 'green';
|
|
28
|
+
}
|
|
29
|
+
else if (this.FeedItem.Status.Code === 1) {
|
|
30
|
+
return 'red';
|
|
31
|
+
}
|
|
32
|
+
else if (this.FeedItem.Status.Code === 2) {
|
|
33
|
+
return 'blue';
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return 'gray';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Life Cycle
|
|
9
40
|
ngOnInit() { }
|
|
10
41
|
// API Methods
|
|
11
42
|
CalculateTimelapse(timestamp) {
|
|
12
43
|
return moment(timestamp).fromNow();
|
|
13
44
|
}
|
|
14
45
|
HandleAction(action) {
|
|
15
|
-
|
|
46
|
+
if (action.ActionType == 'Link') {
|
|
47
|
+
if (action.Action.startsWith('http')) {
|
|
48
|
+
window.open(action.Action, '_blank');
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
window.location.href = action.Action;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (action.ActionType == 'Modal') {
|
|
55
|
+
alert('modaled ' + action.Action);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
handleRefresh() {
|
|
59
|
+
if (this.FeedItem?.RefreshLink) {
|
|
60
|
+
setInterval(() => {
|
|
61
|
+
// this.
|
|
62
|
+
}, 5000);
|
|
63
|
+
}
|
|
16
64
|
}
|
|
17
65
|
}
|
|
18
66
|
MainFeedCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MainFeedCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
-
MainFeedCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: MainFeedCardComponent, selector: "lcu-main-feed-card", inputs: { FeedItem: ["feed-item", "FeedItem"] }, ngImport: i0, template: "<mat-card class=\"social-card\">\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"FeedItem.Avatar\"\n *ngIf=\"FeedItem.Avatar\"\n />\n\n <mat-card-title *ngIf=\"FeedItem.Title\">{{ FeedItem.Title }}</mat-card-title>\n\n <mat-card-subtitle>\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n <div *ngIf=\"FeedItem.Status\">\n <mat-icon
|
|
67
|
+
MainFeedCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: MainFeedCardComponent, selector: "lcu-main-feed-card", inputs: { FeedItem: ["feed-item", "FeedItem"] }, ngImport: i0, template: "<mat-card class=\"social-card\">\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"FeedItem.Avatar\"\n *ngIf=\"FeedItem.Avatar\"\n />\n\n <mat-card-title *ngIf=\"FeedItem.Title\">{{ FeedItem.Title }}</mat-card-title>\n\n <mat-card-subtitle>\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n <div *ngIf=\"FeedItem.Status\">\n <mat-icon\n *ngIf=\"Icon\"\n [style.color]=\"IconColor\"\n [class.spin]=\"FeedItem.Status?.Code == 2\"\n >\n {{ Icon }}\n </mat-icon>\n\n <span *ngIf=\"FeedItem.Timestamp\">\n {{ CalculateTimelapse(FeedItem.Timestamp) }}\n </span>\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n\n <div *ngIf=\"!FeedItem.IsShortForm\">\n <!-- <div class=\"feed-card-container\">\n <div class=\"feed-card-main-content\">\n The tab content (only 1 'tab' for now)... So really we don't need to worry about tabs until a future iteration\n\n The tabs property will contain a data structure that will vary by the FeedItem.Type... That structure can be used to render the content\n </div>\n </div> -->\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div fxFlex></div>\n\n <ng-container *ngFor=\"let action of FeedItem.Actions\">\n <button mat-button [color]=\"action.Color\" (click)=\"HandleAction(action)\">\n <mat-icon *ngIf=\"action.Icon\">{{ action.Icon }}</mat-icon>\n\n {{ action.Text }}\n </button>\n </ng-container>\n </mat-card-actions>\n</mat-card>\n", styles: [":host .social-card{margin:20px;padding:15px 5px}:host mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host .main-slot-container{padding:10px}:host .slot-header{align-items:center}:host .slot-content{width:100%}:host .slot-name{font-size:13px;font-weight:600}:host .slot-description{font-size:12px;margin-right:10px}:host .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host .action-icon{height:25px;width:25px;font-size:25px;cursor:pointer}:host .example-header-image{background-size:cover}:host .mat-icon{display:inline-flex;vertical-align:middle}:host .mat-icon.spin{animation:rotate 1s ease-in-out infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], components: [{ type: i1.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i1.MatCardHeader, selector: "mat-card-header" }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.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"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { type: i1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i1.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { type: i1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
20
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: MainFeedCardComponent, decorators: [{
|
|
21
69
|
type: Component,
|
|
22
|
-
args: [{ selector: 'lcu-main-feed-card', template: "<mat-card class=\"social-card\">\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"FeedItem.Avatar\"\n *ngIf=\"FeedItem.Avatar\"\n />\n\n <mat-card-title *ngIf=\"FeedItem.Title\">{{ FeedItem.Title }}</mat-card-title>\n\n <mat-card-subtitle>\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n <div *ngIf=\"FeedItem.Status\">\n <mat-icon
|
|
70
|
+
args: [{ selector: 'lcu-main-feed-card', template: "<mat-card class=\"social-card\">\n <mat-card-header>\n <img\n mat-card-avatar\n class=\"example-header-image\"\n [src]=\"FeedItem.Avatar\"\n *ngIf=\"FeedItem.Avatar\"\n />\n\n <mat-card-title *ngIf=\"FeedItem.Title\">{{ FeedItem.Title }}</mat-card-title>\n\n <mat-card-subtitle>\n <div *ngIf=\"FeedItem.Subtitle\">{{ FeedItem.Subtitle }}</div>\n <div *ngIf=\"FeedItem.Status\">\n <mat-icon\n *ngIf=\"Icon\"\n [style.color]=\"IconColor\"\n [class.spin]=\"FeedItem.Status?.Code == 2\"\n >\n {{ Icon }}\n </mat-icon>\n\n <span *ngIf=\"FeedItem.Timestamp\">\n {{ CalculateTimelapse(FeedItem.Timestamp) }}\n </span>\n </div>\n </mat-card-subtitle>\n </mat-card-header>\n\n <div *ngIf=\"!FeedItem.IsShortForm\">\n <!-- <div class=\"feed-card-container\">\n <div class=\"feed-card-main-content\">\n The tab content (only 1 'tab' for now)... So really we don't need to worry about tabs until a future iteration\n\n The tabs property will contain a data structure that will vary by the FeedItem.Type... That structure can be used to render the content\n </div>\n </div> -->\n </div>\n\n <mat-card-actions fxLayout=\"row\" fxLayoutAlign=\"space-around center\">\n <div fxFlex></div>\n\n <ng-container *ngFor=\"let action of FeedItem.Actions\">\n <button mat-button [color]=\"action.Color\" (click)=\"HandleAction(action)\">\n <mat-icon *ngIf=\"action.Icon\">{{ action.Icon }}</mat-icon>\n\n {{ action.Text }}\n </button>\n </ng-container>\n </mat-card-actions>\n</mat-card>\n", styles: [":host .social-card{margin:20px;padding:15px 5px}:host mat-card-actions{margin-bottom:-1px!important;margin-left:0!important;margin-right:-.5px!important}:host .main-slot-container{padding:10px}:host .slot-header{align-items:center}:host .slot-content{width:100%}:host .slot-name{font-size:13px;font-weight:600}:host .slot-description{font-size:12px;margin-right:10px}:host .slot-action-anchor{font-size:10px;text-decoration:none;color:#000}:host .action-icon{height:25px;width:25px;font-size:25px;cursor:pointer}:host .example-header-image{background-size:cover}:host .mat-icon{display:inline-flex;vertical-align:middle}:host .mat-icon.spin{animation:rotate 1s ease-in-out infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
23
71
|
}], ctorParameters: function () { return []; }, propDecorators: { FeedItem: [{
|
|
24
72
|
type: Input,
|
|
25
73
|
args: ['feed-item']
|
|
26
74
|
}] } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1mZWVkLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvbWFpbi1mZWVkLWNhcmQvbWFpbi1mZWVkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvbWFpbi1mZWVkLWNhcmQvbWFpbi1mZWVkLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7Ozs7O0FBUTVCLE1BQU0sT0FBTyxxQkFBcUI7SUE0QmhDLGdCQUFlLENBQUM7SUF4QmhCLElBQVcsSUFBSTtRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNuQyxPQUFPLGNBQWMsQ0FBQztTQUN2QjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLFFBQVEsQ0FBQztTQUNqQjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLE1BQU0sQ0FBQztTQUNmO2FBQU07WUFDTCxPQUFPLGNBQWMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ25DLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxNQUFNLENBQUM7U0FDZjthQUFNO1lBQ0wsT0FBTyxNQUFNLENBQUM7U0FDZjtJQUNILENBQUM7SUFJRCxjQUFjO0lBQ1AsUUFBUSxLQUFVLENBQUM7SUFFMUIsZUFBZTtJQUNSLGtCQUFrQixDQUFDLFNBQWU7UUFDdkMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFzQjtRQUN4QyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxFQUFFO1lBQy9CLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQ3RDO1NBQ0Y7YUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksT0FBTyxFQUFFO1lBQ3ZDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRTtZQUM5QixXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUNmLFFBQVE7WUFDVixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDVjtJQUNILENBQUM7O2tIQXhEVSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwyR0NWbEMsZ3BEQW1EQTsyRkR6Q2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG9CQUFvQjswRUFNdkIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZlZWRJdGVtLCBGZWVkSXRlbUFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgSnNvbkh1YlByb3RvY29sIH0gZnJvbSAnQGFzcG5ldC9zaWduYWxyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGN1LW1haW4tZmVlZC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tZmVlZC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFpbi1mZWVkLWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFpbkZlZWRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdmZWVkLWl0ZW0nKVxuICBwdWJsaWMgRmVlZEl0ZW06IEZlZWRJdGVtO1xuXG4gIHB1YmxpYyBnZXQgSWNvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLkZlZWRJdGVtLlN0YXR1cy5Db2RlID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2NoZWNrX2NpcmNsZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLkZlZWRJdGVtLlN0YXR1cy5Db2RlID09PSAxKSB7XG4gICAgICByZXR1cm4gJ2NhbmNlbCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLkZlZWRJdGVtLlN0YXR1cy5Db2RlID09PSAyKSB7XG4gICAgICByZXR1cm4gJ3N5bmMnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2hlbHBfb3V0bGluZSc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBJY29uQ29sb3IoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5GZWVkSXRlbS5TdGF0dXMuQ29kZSA9PT0gMCkge1xuICAgICAgcmV0dXJuICdncmVlbic7XG4gICAgfSBlbHNlIGlmICh0aGlzLkZlZWRJdGVtLlN0YXR1cy5Db2RlID09PSAxKSB7XG4gICAgICByZXR1cm4gJ3JlZCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLkZlZWRJdGVtLlN0YXR1cy5Db2RlID09PSAyKSB7XG4gICAgICByZXR1cm4gJ2JsdWUnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2dyYXknO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvLyAgTGlmZSBDeWNsZVxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIC8vICBBUEkgTWV0aG9kc1xuICBwdWJsaWMgQ2FsY3VsYXRlVGltZWxhcHNlKHRpbWVzdGFtcDogRGF0ZSkge1xuICAgIHJldHVybiBtb21lbnQodGltZXN0YW1wKS5mcm9tTm93KCk7XG4gIH1cblxuICBwdWJsaWMgSGFuZGxlQWN0aW9uKGFjdGlvbjogRmVlZEl0ZW1BY3Rpb24pIHtcbiAgICBpZiAoYWN0aW9uLkFjdGlvblR5cGUgPT0gJ0xpbmsnKSB7XG4gICAgICBpZiAoYWN0aW9uLkFjdGlvbi5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgd2luZG93Lm9wZW4oYWN0aW9uLkFjdGlvbiwgJ19ibGFuaycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhY3Rpb24uQWN0aW9uO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYWN0aW9uLkFjdGlvblR5cGUgPT0gJ01vZGFsJykge1xuICAgICAgYWxlcnQoJ21vZGFsZWQgJyArIGFjdGlvbi5BY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVSZWZyZXNoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLkZlZWRJdGVtPy5SZWZyZXNoTGluaykge1xuICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAvLyB0aGlzLlxuICAgICAgfSwgNTAwMCk7XG4gICAgfVxuICB9XG5cbiAgLy8gIEhlbHBlcnNcbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cInNvY2lhbC1jYXJkXCI+XG4gIDxtYXQtY2FyZC1oZWFkZXI+XG4gICAgPGltZ1xuICAgICAgbWF0LWNhcmQtYXZhdGFyXG4gICAgICBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLWltYWdlXCJcbiAgICAgIFtzcmNdPVwiRmVlZEl0ZW0uQXZhdGFyXCJcbiAgICAgICpuZ0lmPVwiRmVlZEl0ZW0uQXZhdGFyXCJcbiAgICAvPlxuXG4gICAgPG1hdC1jYXJkLXRpdGxlICpuZ0lmPVwiRmVlZEl0ZW0uVGl0bGVcIj57eyBGZWVkSXRlbS5UaXRsZSB9fTwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICA8bWF0LWNhcmQtc3VidGl0bGU+XG4gICAgICA8ZGl2ICpuZ0lmPVwiRmVlZEl0ZW0uU3VidGl0bGVcIj57eyBGZWVkSXRlbS5TdWJ0aXRsZSB9fTwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIkZlZWRJdGVtLlN0YXR1c1wiPlxuICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAqbmdJZj1cIkljb25cIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJJY29uQ29sb3JcIlxuICAgICAgICAgIFtjbGFzcy5zcGluXT1cIkZlZWRJdGVtLlN0YXR1cz8uQ29kZSA9PSAyXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IEljb24gfX1cbiAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICA8c3BhbiAqbmdJZj1cIkZlZWRJdGVtLlRpbWVzdGFtcFwiPlxuICAgICAgICAgIHt7IENhbGN1bGF0ZVRpbWVsYXBzZShGZWVkSXRlbS5UaW1lc3RhbXApIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XG4gIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gIDxkaXYgKm5nSWY9XCIhRmVlZEl0ZW0uSXNTaG9ydEZvcm1cIj5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJmZWVkLWNhcmQtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZWVkLWNhcmQtbWFpbi1jb250ZW50XCI+XG4gICAgICAgICAgICBUaGUgdGFiIGNvbnRlbnQgKG9ubHkgMSAndGFiJyBmb3Igbm93KS4uLiAgU28gcmVhbGx5IHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgdGFicyB1bnRpbCBhIGZ1dHVyZSBpdGVyYXRpb25cblxuICAgICAgICAgICAgVGhlIHRhYnMgcHJvcGVydHkgd2lsbCBjb250YWluIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCB3aWxsIHZhcnkgYnkgdGhlIEZlZWRJdGVtLlR5cGUuLi4gIFRoYXQgc3RydWN0dXJlIGNhbiBiZSB1c2VkIHRvIHJlbmRlciB0aGUgY29udGVudFxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG4gIDwvZGl2PlxuXG4gIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIj5cbiAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBGZWVkSXRlbS5BY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gW2NvbG9yXT1cImFjdGlvbi5Db2xvclwiIChjbGljayk9XCJIYW5kbGVBY3Rpb24oYWN0aW9uKVwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJhY3Rpb24uSWNvblwiPnt7IGFjdGlvbi5JY29uIH19PC9tYXQtaWNvbj5cblxuICAgICAgICB7eyBhY3Rpb24uVGV4dCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWNhcmQtYWN0aW9ucz5cbjwvbWF0LWNhcmQ+XG4iXX0=
|