@sapphire-ion/framework 1.2.60 → 1.2.61
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/esm2022/lib/components/default/default-view/header-view/header-view.component.mjs +10 -17
- package/esm2022/lib/index.mjs +2 -1
- package/esm2022/lib/services/navigation-context.service.mjs +100 -0
- package/esm2022/lib/services/web/http.service.mjs +8 -3
- package/fesm2022/sapphire-ion-framework.mjs +110 -19
- package/fesm2022/sapphire-ion-framework.mjs.map +1 -1
- package/lib/components/default/default-view/header-view/header-view.component.d.ts +3 -1
- package/lib/index.d.ts +1 -0
- package/lib/services/navigation-context.service.d.ts +14 -0
- package/package.json +1 -1
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { IonBackButton, NavController } from '@ionic/angular';
|
|
3
3
|
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { NavigationContextService } from '../../../../services/navigation-context.service';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@ionic/angular";
|
|
6
7
|
import * as i2 from "@angular/router";
|
|
7
|
-
import * as i3 from "
|
|
8
|
+
import * as i3 from "../../../../services/navigation-context.service";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
8
10
|
export class HeaderViewComponent {
|
|
9
|
-
constructor(navController, activatedRoute) {
|
|
11
|
+
constructor(navController, activatedRoute, navContext) {
|
|
10
12
|
this.navController = navController;
|
|
11
13
|
this.activatedRoute = activatedRoute;
|
|
14
|
+
this.navContext = navContext;
|
|
12
15
|
this.novo = false;
|
|
13
16
|
this.progress = null;
|
|
14
17
|
this.saveEmitter = new EventEmitter();
|
|
@@ -27,17 +30,7 @@ export class HeaderViewComponent {
|
|
|
27
30
|
}
|
|
28
31
|
ngOnInit() { }
|
|
29
32
|
get DefaultBackRoute() {
|
|
30
|
-
|
|
31
|
-
const li = fullRoute[fullRoute.length - 1];
|
|
32
|
-
var offset = 1;
|
|
33
|
-
if (Number(li)) {
|
|
34
|
-
offset++;
|
|
35
|
-
}
|
|
36
|
-
let route = [];
|
|
37
|
-
for (let i = 0; i < fullRoute.length - offset; i++) {
|
|
38
|
-
route.push(fullRoute[i]);
|
|
39
|
-
}
|
|
40
|
-
return route.join('/');
|
|
33
|
+
return this.navContext.getBackRoute() ?? '/';
|
|
41
34
|
}
|
|
42
35
|
Back($event = null) {
|
|
43
36
|
this.IonBackButtonElement.onClick($event);
|
|
@@ -50,13 +43,13 @@ export class HeaderViewComponent {
|
|
|
50
43
|
Save() {
|
|
51
44
|
this.saveEmitter.emit();
|
|
52
45
|
}
|
|
53
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", focusInFirstField: "focusInFirstField", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRouterLink: "backRouterLink" }, outputs: { saveEmitter: "save" }, viewQueries: [{ propertyName: "IonBackButtonElement", first: true, predicate: IonBackButton, descendants: true }, { propertyName: "NewIonButtonElement", first: true, predicate: ["new"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type:
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, deps: [{ token: i1.NavController }, { token: i2.ActivatedRoute }, { token: i3.NavigationContextService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderViewComponent, selector: "header-view", inputs: { novo: "novo", loading: "loading", progress: "progress", focusInFirstField: "focusInFirstField", noBack: "noBack", noNew: "noNew", useDefaultRouting: "useDefaultRouting", backRouterLink: "backRouterLink" }, outputs: { saveEmitter: "save" }, viewQueries: [{ propertyName: "IonBackButtonElement", first: true, predicate: IonBackButton, descendants: true }, { propertyName: "NewIonButtonElement", first: true, predicate: ["new"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonBackButton, selector: "ion-back-button" }, { kind: "directive", type: i1.RouterLinkDelegate, selector: ":not(a):not(area)[routerLink]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }] }); }
|
|
55
48
|
}
|
|
56
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderViewComponent, decorators: [{
|
|
57
50
|
type: Component,
|
|
58
51
|
args: [{ selector: 'header-view', template: "<div class=\"w-full h-7 flex\">\r\n <div class=\"w-1/2 flex items-center justify-start gap-3\">\r\n @if(!noBack){\r\n @if(useDefaultRouting || backRouterLink){\r\n <ion-button class=\"m-0\" fill=\"clear\" size=\"small\" [routerLink]=\"backRouterLink ? backRouterLink : DefaultBackRoute\">\r\n <ion-icon class=\"text-[1.7rem]\" name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n <ion-text class=\"text-base\">Voltar</ion-text>\r\n </ion-button>\r\n }\r\n @else{\r\n <ion-back-button style=\"--min-height: 100%;\" [disabled]=\"loading\" text=\"Voltar\" [defaultHref]=\"DefaultBackRoute\"></ion-back-button>\r\n }\r\n\r\n <!-- <ion-card button [disabled]=\"loading\" class=\"h-full w-12 m-0 default-transition\" style=\"border-color: var(--ion-color-primary)\">\r\n <ion-card-content class=\"p-0 bg-transparent\">\r\n @if(!useDefaultRouting){\r\n <ion-back-button class=\"scale-75 size-full\" style=\"--min-height: 100%;\" text=\"\" [defaultHref]=\"BackRoute\" >\r\n </ion-back-button>\r\n }@else {\r\n <ion-button class=\"size-full\" size=\"small\" fill=\"clear\" [routerLink]=\"BackRoute\">\r\n <ion-icon name=\"chevron-back\" slot=\"icon-only\"></ion-icon>\r\n </ion-button>\r\n }\r\n </ion-card-content>\r\n </ion-card> -->\r\n }\r\n @if(!noBack){\r\n <div class=\"h-full border-r-2 border-r-primary border-solid mask-y/50\"></div>\r\n }\r\n\r\n <div class=\"relative\">\r\n <ion-button class=\"-mx-2\" [disabled]=\"loading\" fill=\"clear\" size=\"small\" (click)=\"Save()\">\r\n <ion-icon class=\"text-base\" slot=\"start\" name=\"save\"></ion-icon>\r\n <ion-text class=\"text-base\">\r\n Salvar\r\n </ion-text>\r\n </ion-button>\r\n\r\n <div class=\"absolute w-[125%] h-[125%] -top-[12.5%] -left-[12.5%] flex flex-col items-center justify-center default-transition backdrop-blur-sm\" [ngClass]=\"{'opacity-0 -translate-y-8': !loading}\">\r\n <ion-text color=\"success\" class=\"text-sm mt-1\"><b>\r\n @if(progress){\r\n {{(progress * 100) | number: '1.1-1'}}%\r\n }@else {\r\n {{0 | number: '1.1-1'}}%\r\n }\r\n </b></ion-text>\r\n <ion-progress-bar [value]=\"progress\" color=\"success\" class=\"w-full default-transition\"></ion-progress-bar>\r\n </div>\r\n </div>\r\n <ng-content select=\"[slot=start]\"></ng-content>\r\n </div>\r\n <div class=\"w-1/2 flex justify-end items-center gap-2\">\r\n <ng-content select=\"[slot=end]\"></ng-content>\r\n\r\n @if(!(noNew || novo)){\r\n <ion-button #new [routerLink]=\"['../']\" class=\"m-0\" fill=\"clear\" size=\"small\">\r\n <ion-icon class=\"text-base\" name=\"add\" slot=\"start\"></ion-icon> \r\n <ion-text class=\"text-base\">\r\n Novo\r\n </ion-text>\r\n </ion-button>\r\n }\r\n </div>\r\n</div>", styles: ["#back{margin:0;margin-right:.5rem;width:2rem;border-radius:1rem;padding:0}#back::part(native){padding-left:.5rem;padding-right:.5rem}\n"] }]
|
|
59
|
-
}], ctorParameters: () => [{ type: i1.NavController }, { type: i2.ActivatedRoute }], propDecorators: { novo: [{
|
|
52
|
+
}], ctorParameters: () => [{ type: i1.NavController }, { type: i2.ActivatedRoute }, { type: i3.NavigationContextService }], propDecorators: { novo: [{
|
|
60
53
|
type: Input
|
|
61
54
|
}], loading: [{
|
|
62
55
|
type: Input
|
|
@@ -82,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
82
75
|
type: ViewChild,
|
|
83
76
|
args: ['new']
|
|
84
77
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2hlYWRlci12aWV3L2hlYWRlci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9oZWFkZXItdmlldy9oZWFkZXItdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7OztBQU8zRixNQUFNLE9BQU8sbUJBQW1CO0lBcUI5QixZQUNVLGFBQTRCLEVBQzVCLGNBQThCLEVBQzlCLFVBQXFDO1FBRnJDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixlQUFVLEdBQVYsVUFBVSxDQUEyQjtRQXRCdEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV0QixhQUFRLEdBQWtCLElBQUksQ0FBQztRQUV4QixnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNFLDREQUE0RDtRQUNuRCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDNUMsOEJBQThCO1FBQ3JCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDakMsNkJBQTZCO1FBQ3BCLFVBQUssR0FBYSxLQUFLLENBQUM7UUFDakMsK0ZBQStGO1FBQ3RGLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUM1Qzs7VUFFRTtRQUNPLG1CQUFjLEdBQXlDLFNBQVMsQ0FBQztJQU10RSxDQUFDO0lBRUwsUUFBUSxLQUFJLENBQUM7SUFFYixJQUFjLGdCQUFnQjtRQUM1QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDO0lBQy9DLENBQUM7SUFHTSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUk7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRU0sR0FBRztRQUNSLElBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQzsrR0E5Q1UsbUJBQW1CO21HQUFuQixtQkFBbUIsbVdBaUNuQixhQUFhLDZJQzNDMUIsaTlGQStETTs7NEZEckRPLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxhQUFhO3NKQU1kLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFVSxXQUFXO3NCQUExQixNQUFNO3VCQUFDLE1BQU07Z0JBR0wsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUlHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBY29CLG9CQUFvQjtzQkFBN0MsU0FBUzt1QkFBQyxhQUFhO2dCQUlOLG1CQUFtQjtzQkFBcEMsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElvbkJhY2tCdXR0b24sIE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdoZWFkZXItdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXItdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIG5vdm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHByb2dyZXNzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBcclxuICBAT3V0cHV0KCdzYXZlJykgc2F2ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTsgIFxyXG5cclxuICAvKiogSGFiaWxpdGEvRGVzYWJpbGl0YSBvIGZvY3VzIG5vIHByaW1laXJvIGNhbXBvIGRhIHZpZXcgKi9cclxuICBASW5wdXQoKSBmb2N1c0luRmlyc3RGaWVsZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBSZW1vdmUgbyBib3TDo28gZGUgdm9sdGEgKi9cclxuICBASW5wdXQoKSBub0JhY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUmVtb3ZlIG8gYm90w6NvIGRlIE5vdm8gKi9cclxuICBASW5wdXQoKSBub05ldyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKiogUGFyw6JtZXRybyB1c2FkbyBlbSB0ZWxhcyBkZW50cm8gZGUgdGVsYXMsIHBhcmEgcXVlIG8gcmV0b3JubyBzZW1wcmUgc2VqYSBhIHRlbGEgYW50ZXJpb3IgKi9cclxuICBASW5wdXQoKSB1c2VEZWZhdWx0Um91dGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiAgXHJcbiAgICogUm90YSBwYXJhIHZvbHRhciwgY2FzbyBuw6NvIHNlamEgZGVmaW5pZGEsIG8gY29tcG9uZW50ZSBpcsOhIHRlbnRhciB1c2FyIHJvdGEgZG8gaW9uaWNcclxuICAqL1xyXG4gIEBJbnB1dCgpIGJhY2tSb3V0ZXJMaW5rOiBzdHJpbmcgfCBhbnlbXSB8IFVybFRyZWUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXZDb250cm9sbGVyOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIG5hdkNvbnRleHQgOiBOYXZpZ2F0aW9uQ29udGV4dFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIHByb3RlY3RlZCBnZXQgRGVmYXVsdEJhY2tSb3V0ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmF2Q29udGV4dC5nZXRCYWNrUm91dGUoKSA/PyAnLyc7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKElvbkJhY2tCdXR0b24pIElvbkJhY2tCdXR0b25FbGVtZW50OiBJb25CYWNrQnV0dG9uOyBcclxuICBwdWJsaWMgQmFjaygkZXZlbnQgPSBudWxsKXtcclxuICAgIHRoaXMuSW9uQmFja0J1dHRvbkVsZW1lbnQub25DbGljaygkZXZlbnQpXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ25ldycpIE5ld0lvbkJ1dHRvbkVsZW1lbnQ6IEVsZW1lbnRSZWY7IFxyXG4gIHB1YmxpYyBOZXcoKXtcclxuICAgIGlmKCF0aGlzLm5vdm8pe1xyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVGb3J3YXJkKFsnLi4vJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgU2F2ZSgpOiB2b2lke1xyXG4gICAgdGhpcy5zYXZlRW1pdHRlci5lbWl0KCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidy1mdWxsIGgtNyBmbGV4XCI+XHJcbiAgPGRpdiBjbGFzcz1cInctMS8yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgZ2FwLTNcIj5cclxuICAgIEBpZighbm9CYWNrKXtcclxuICAgICAgQGlmKHVzZURlZmF1bHRSb3V0aW5nIHx8IGJhY2tSb3V0ZXJMaW5rKXtcclxuICAgICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cIm0tMFwiIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiIFtyb3V0ZXJMaW5rXT1cImJhY2tSb3V0ZXJMaW5rID8gYmFja1JvdXRlckxpbmsgOiBEZWZhdWx0QmFja1JvdXRlXCI+XHJcbiAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJ0ZXh0LVsxLjdyZW1dXCIgbmFtZT1cImNoZXZyb24tYmFja1wiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPGlvbi10ZXh0IGNsYXNzPVwidGV4dC1iYXNlXCI+Vm9sdGFyPC9pb24tdGV4dD5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2V7XHJcbiAgICAgICAgPGlvbi1iYWNrLWJ1dHRvbiBzdHlsZT1cIi0tbWluLWhlaWdodDogMTAwJTtcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIHRleHQ9XCJWb2x0YXJcIiBbZGVmYXVsdEhyZWZdPVwiRGVmYXVsdEJhY2tSb3V0ZVwiPjwvaW9uLWJhY2stYnV0dG9uPlxyXG4gICAgICB9XHJcblxyXG4gICAgICA8IS0tIDxpb24tY2FyZCBidXR0b24gW2Rpc2FibGVkXT1cImxvYWRpbmdcIiBjbGFzcz1cImgtZnVsbCB3LTEyIG0tMCBkZWZhdWx0LXRyYW5zaXRpb25cIiBzdHlsZT1cImJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpXCI+XHJcbiAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQgY2xhc3M9XCJwLTAgYmctdHJhbnNwYXJlbnRcIj5cclxuICAgICAgICAgIEBpZighdXNlRGVmYXVsdFJvdXRpbmcpe1xyXG4gICAgICAgICAgICA8aW9uLWJhY2stYnV0dG9uIGNsYXNzPVwic2NhbGUtNzUgc2l6ZS1mdWxsXCIgc3R5bGU9XCItLW1pbi1oZWlnaHQ6IDEwMCU7XCIgdGV4dD1cIlwiICBbZGVmYXVsdEhyZWZdPVwiQmFja1JvdXRlXCIgPlxyXG4gICAgICAgICAgICA8L2lvbi1iYWNrLWJ1dHRvbj5cclxuICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwic2l6ZS1mdWxsXCIgc2l6ZT1cInNtYWxsXCIgZmlsbD1cImNsZWFyXCIgW3JvdXRlckxpbmtdPVwiQmFja1JvdXRlXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWJhY2tcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cclxuICAgICAgPC9pb24tY2FyZD4gLS0+XHJcbiAgICB9XHJcbiAgICBAaWYoIW5vQmFjayl7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgYm9yZGVyLXItMiBib3JkZXItci1wcmltYXJ5IGJvcmRlci1zb2xpZCBtYXNrLXkvNTBcIj48L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCItbXgtMlwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgZmlsbD1cImNsZWFyXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cIlNhdmUoKVwiPlxyXG4gICAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtYmFzZVwiIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJzYXZlXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgIFNhbHZhclxyXG4gICAgICAgIDwvaW9uLXRleHQ+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB3LVsxMjUlXSBoLVsxMjUlXSAtdG9wLVsxMi41JV0gLWxlZnQtWzEyLjUlXSBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBkZWZhdWx0LXRyYW5zaXRpb24gYmFja2Ryb3AtYmx1ci1zbVwiIFtuZ0NsYXNzXT1cInsnb3BhY2l0eS0wIC10cmFuc2xhdGUteS04JzogIWxvYWRpbmd9XCI+XHJcbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwic3VjY2Vzc1wiIGNsYXNzPVwidGV4dC1zbSBtdC0xXCI+PGI+XHJcbiAgICAgICAgICBAaWYocHJvZ3Jlc3Mpe1xyXG4gICAgICAgICAgICB7eyhwcm9ncmVzcyAqIDEwMCkgfCBudW1iZXI6ICcxLjEtMSd9fSVcclxuICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIHt7MCB8IG51bWJlcjogJzEuMS0xJ319JVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvYj48L2lvbi10ZXh0PlxyXG4gICAgICAgIDxpb24tcHJvZ3Jlc3MtYmFyIFt2YWx1ZV09XCJwcm9ncmVzc1wiIGNvbG9yPVwic3VjY2Vzc1wiIGNsYXNzPVwidy1mdWxsIGRlZmF1bHQtdHJhbnNpdGlvblwiPjwvaW9uLXByb2dyZXNzLWJhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PXN0YXJ0XVwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidy0xLzIgZmxleCBqdXN0aWZ5LWVuZCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWVuZF1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG4gICAgQGlmKCEobm9OZXcgfHwgbm92bykpe1xyXG4gICAgICA8aW9uLWJ1dHRvbiAjbmV3IFtyb3V0ZXJMaW5rXT1cIlsnLi4vJ11cIiBjbGFzcz1cIm0tMFwiIGZpbGw9XCJjbGVhclwiIHNpemU9XCJzbWFsbFwiPlxyXG4gICAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtYmFzZVwiIG5hbWU9XCJhZGRcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPiBcclxuICAgICAgICA8aW9uLXRleHQgY2xhc3M9XCJ0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgIE5vdm9cclxuICAgICAgICA8L2lvbi10ZXh0PlxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
package/esm2022/lib/index.mjs
CHANGED
|
@@ -183,5 +183,6 @@ export * from '../lib/services/environment.service';
|
|
|
183
183
|
export * from './services/generic.service';
|
|
184
184
|
export * from '../lib/services/usuario.service';
|
|
185
185
|
export * from '../lib/services/utils.service';
|
|
186
|
+
export * from '../lib/services/navigation-context.service';
|
|
186
187
|
export * from '../lib/core.module';
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsYUFBYTtBQUNiLGdCQUFnQjtBQUNkLCtCQUErQjtBQUM3QixjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDckUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsNEJBQTRCO0FBQzVCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsMkJBQTJCO0FBQzNCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCwyQkFBMkI7QUFDM0IsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0NBQWtDLENBQUM7QUFDbkQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxtQkFBbUI7QUFDakIsK0JBQStCO0FBQzdCLG1EQUFtRDtBQUNuRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGtEQUFrRDtBQUNsRCxjQUFjLGtFQUFrRSxDQUFDO0FBQ25GLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFj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LGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFFaEQsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAc2FwcGhpcmUtaW9uL2ZyYW1ld29ya1xyXG4gKi9cclxuXHJcbi8vIFsg8J+TgSBMaWIgXVxyXG4vL1sg8J+TgSBDbGFzc2VzIF1cclxuICAvLyBbIPCfk4EgQ2xhc3NlcyAtPiBDb21wYXJpc29uIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9ib29sLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9kYXRlLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9kYXRldGltZS1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvZGVjaW1hbC1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvZW51bS1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvaW1wbGljaXQtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2ludC1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvbG9uZy1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvc3RyaW5nLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy90aW1lLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9ib29sLXByb3BlcnR5JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24nO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbi1vcGVyYXRvcic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uLXZhbHVlLXR5cGUnO1xyXG4gIC8vIFsg8J+TgSBDbGFzc2VzIC0+IEZpbHRlcnMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zJztcclxuICAvLyBbIPCfk4EgQ2xhc3NlcyAtPiBJbnB1dHMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZC1mb3JtLWJ1aWxkZXInO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZCc7XHJcbiAgLy8gWyDwn5OBIENsYXNzZXMgLT4gUm91dGVzIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9yb3V0ZXMvZGVmYXVsdC1yb3V0aW5nLWZhY3RvcnknO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL3JvdXRlcy9pZC1wcmVsb2FkZXItY29uZmlndXJhdGlvbic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvcm91dGVzL3JvdXRlLWRhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jcmVkZW50aWFscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2Vudmlyb25tZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvaW5maW5pdGUtc2Nyb2xsJztcclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvcGFnZS1vcHRpb24nO1xyXG5cclxuLy9bIPCfk4EgQ29tcG9uZW50cyBdXHJcbiAgLy9bIPCfk4EgQ29tcG9uZW50cyAtPiBDYXJvdXNlbCBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBDYXJvdXNlbCAtPiBDYXJyb3VzZWwtSW1hZ2UgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwtaW1hZ2UvY2Fyb3VzZWwtaW1hZ2UuY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IENhcm91c2VsIC0+IENhcnJvdXNlbC1JdGVtIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLWl0ZW0vY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwubW9kdWxlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9pLWNhcm91c2VsLWl0ZW0uY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBDb250ZW50LUJsb2NrIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jb250ZW50LWJsb2NrL2NvbnRlbnQtYmxvY2suY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC1saXN0IF1cclxuICAgICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LWxpc3QgLT4gaGVhZGVyLWxpc3QgXVxyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9oZWFkZXItbGlzdC9oZWFkZXItbGlzdC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LWxpc3QvYWJzdHJhY3QtbGlzdCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9kZWZhdWx0LWxpc3QuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2xpc3QnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LXBhZ2luYXRpb24gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXBhZ2luYXRpb24vZGVmYXVsdC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtdGFibGUgXVxyXG4gICAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtdGFibGUgLT4gdGgtZmlsdGVyIF1cclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXRhYmxlL3RoLWZpbHRlci90aC1maWx0ZXIuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC10YWJsZS9kZWZhdWx0LXRhYmxlLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtdmlldyBdXHJcbiAgICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC12aWV3IC0+IGhlYWRlci12aWV3IF1cclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXZpZXcvaGVhZGVyLXZpZXcvaGVhZGVyLXZpZXcuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L2Fic3RyYWN0LXZpZXcnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXZpZXcvZGVmYXVsdC12aWV3LmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBkZWZhdWx0LXBhZ2UgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQtcGFnZS9kZWZhdWx0LnBhZ2UnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYWctZHJvcC1wYWdlIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYWctZHJvcC1wYWdlIC0+IGRyYWctZHJvcC1vdmVybGF5IF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYWctZHJvcC1maWxlL2RyYWctZHJvcC1vdmVybGF5L2RyYWctZHJvcC1vdmVybGF5LmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLWZpbGUuZGlyZWN0aXZlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kcmFnLWRyb3AtZmlsZS9kcmFnLWRyb3AtZmlsZS5tb2R1bGUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYXdlciBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBkcmF3ZXIgLT4gZGVmYXVsdC1kcmF3ZXItZW5kIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYXdlci9kZWZhdWx0LWRyYXdlci1lbmQvZGVmYXVsdC1kcmF3ZXItZW5kLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBkcmF3ZXIgLT4gZHJhd2VyLWdyb3VwIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXItZ3JvdXAvZHJhd2VyLWdyb3VwLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYXdlci9tZW51JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBmaWx0ZXIgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBodHRwLXJlc3BvbnNlcy1wYWdlcyBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBodHRwLXJlc3BvbnNlcy1wYWdlcyAtPiBmb3JiaWRkZW4tNDAzIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2h0dHAtcmVzcG9uc2VzLXBhZ2VzL2ZvcmJpZGRlbi00MDMvZm9yYmlkZGVuLTQwMy5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGltYWdlIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGluZm8tcG9wb3ZlciBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5mby1wb3BvdmVyL2luZm8tcG9wb3Zlci5jb21wb25lbnQnO1xyXG5cclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWJvb2wgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWJvb2wvaW5wdXQtYm9vbC5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1jZXAgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNlcC9pbnB1dC1jZXAuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1jZXAvaW5wdXQtY2VwLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWNvbG9yIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1jb2xvci9pbnB1dC1jb2xvci5jb21wb25lbnQnO1xyXG4gICAgLy8gZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNvbG9yL2lucHV0LWNvbG9yLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWNwZi1jbnBqIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1jcGYtY25wai9pbnB1dC1jcGYtY25wai5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNwZi1jbnBqL2lucHV0LWNwZi1jbnBqLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWRhdGUgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRhdGUvaW5wdXQtZGF0ZS5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1kZWNpbWFsIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1kZWNpbWFsL2lucHV0LWRlY2ltYWwuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1kZWNpbWFsL2lucHV0LWRlY2ltYWwuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtZmlsZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZmlsZS9kb3dubG9hZC1idXR0b24vZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWljb24gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWljb24vaW5wdXQtaWNvbi5jb21wb25lbnQnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LXNlbGVjdCBdXHJcbiAgICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1zZWxlY3QgLT4gZGlyZWN0aXZlcyBdXHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvZGlyZWN0aXZlcy9zaW9uLWxhYmVsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvZGlyZWN0aXZlcy9zaW9uLW9wdGlvbi10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc2VsZWN0L2RpcmVjdGl2ZXMvc2lvbi1wbGFjZWhvbGRlci10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvaW5wdXQuc2VsZWN0LmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LXN0cmluZyBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc3RyaW5nL2lucHV0LXN0cmluZy5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXN0cmluZy9pbnB1dC1zdHJpbmcuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtdGVsZWZvbmUgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXRlbGVmb25lL2lucHV0LXRlbGVmb25lLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdGVsZWZvbmUvaW5wdXQtdGVsZWZvbmUuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtdGV4dGFyZWEgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXRleHRhcmVhL2lucHV0LXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNvbmZpZ3VyYXRpb24nO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1kZWZhdWx0LWNvbmZpZ3VyYXRpb25zJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtcHJvdmlkZXItZmFjdG9yeSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXR5cGUnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC12YWxpZGF0b3JzJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXRzLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbG9hZGluZyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbG9naW4gXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbG9naW4gLT4gbG9naW4tYWRtaW4gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvbG9naW4vbG9naW4tYWRtaW4vbG9naW4tYWRtaW4uY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IG1haW4tY29udGVudCBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvbWFpbi1jb250ZW50L21haW4tY29udGVudC5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHBvcG92ZXIgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gc2lvbi1wb3BvdmVyIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3BvcG92ZXIvc2lvbi1wb3BvdmVyL3Npb24tcG9wb3Zlci5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3BvcG92ZXIvc2lvbi1wb3BvdmVyLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gc2lvbi1jYXJkIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zaW9uLWNhcmQvc2lvbi1jYXJkLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gc3RlcHBlciBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzdGVwcGVyIC0+IHN0ZXAgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvc3RlcHBlci9zdGVwL3N0ZXAuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0YWJzIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHRhYnMgLT4gdGFiIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3RhYnMvdGFiL3RhYi5jb21wb25lbnQnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdGFicyAtPiB0YWJzIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3RhYnMvdGFicy90YWJzLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdGFicy90YWJzLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdGV4dC10b29sdGlwIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy90ZXh0LXRvb2x0aXAvdGV4dC10b29sdGlwLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdG9vbHRpcCBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbi8vWyDwn5OBIERpcmVjdGl2ZXMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9kaXJlY3RpdmVzL25nLXZhci5kaXJlY3RpdmUnO1xyXG4vL1sg8J+TgSBHdWFyZHMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9ndWFyZHMvYXV0aC5ndWFyZCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2d1YXJkcy9lcnJvci5pbnRlcmNlcHRvcic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2d1YXJkcy90b2tlbi5pbnRlcmNlcHRvcic7XHJcbi8vIFsg8J+TgSBQaXBlcyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3BpcGVzL3NlY3VyZS5waXBlJztcclxuLy8gWyDwn5OBIFNlcnZpY2VzIF1cclxuICAvLyBbIPCfk4EgU2VydmljZXMgLT4gUm91dGUgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3JvdXRlL3JvdXRlLnByb3ZpZGVyLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3JvdXRlL3JvdXRlLmNhY2hlLnNlcnZpY2UnO1xyXG4gIC8vIFsg8J+TgSBTZXJ2aWNlcyAtPiBXZWIgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9hcGktdXJsLXByb3ZpZGVyLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9odHRwLmF0aXZvLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9odHRwLnNlcnZpY2UnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL3dlYi9zdG9yYWdlLnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG4gIC8vIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy9jcnlwdG8uc2VydmljZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvdXN1YXJpby5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY29yZS5tb2R1bGUnOyJdfQ==
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsYUFBYTtBQUNiLGdCQUFnQjtBQUNkLCtCQUErQjtBQUM3QixjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0RBQW9ELENBQUM7QUFDckUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsNEJBQTRCO0FBQzVCLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsMkJBQTJCO0FBQzNCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCwyQkFBMkI7QUFDM0IsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0NBQWtDLENBQUM7QUFDbkQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxtQkFBbUI7QUFDakIsK0JBQStCO0FBQzdCLG1EQUFtRDtBQUNuRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGtEQUFrRDtBQUNsRCxjQUFjLGtFQUFrRSxDQUFDO0FBQ25GLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFj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LGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0Q0FBNEMsQ0FBQztBQUU3RCxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBzYXBwaGlyZS1pb24vZnJhbWV3b3JrXHJcbiAqL1xyXG5cclxuLy8gWyDwn5OBIExpYiBdXHJcbi8vWyDwn5OBIENsYXNzZXMgXVxyXG4gIC8vIFsg8J+TgSBDbGFzc2VzIC0+IENvbXBhcmlzb24gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2Jvb2wtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2RhdGUtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2RhdGV0aW1lLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9kZWNpbWFsLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9lbnVtLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9pbXBsaWNpdC1wcm9wZXJ0eSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL3Byb3BlcnRpZXMvaW50LXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9sb25nLXByb3BlcnR5JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vcHJvcGVydGllcy9zdHJpbmctcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL3RpbWUtcHJvcGVydHknO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9wcm9wZXJ0aWVzL2Jvb2wtcHJvcGVydHknO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NvbXBhcmlzb24vY29tcGFyaXNvbic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvY29tcGFyaXNvbi9jb21wYXJpc29uLW9wZXJhdG9yJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9jb21wYXJpc29uL2NvbXBhcmlzb24tdmFsdWUtdHlwZSc7XHJcbiAgLy8gWyDwn5OBIENsYXNzZXMgLT4gRmlsdGVycyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvZmlsdGVycy92aWV3LWZpbHRyb3MnO1xyXG4gIC8vIFsg8J+TgSBDbGFzc2VzIC0+IElucHV0cyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkLWZvcm0tYnVpbGRlcic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuICAvLyBbIPCfk4EgQ2xhc3NlcyAtPiBSb3V0ZXMgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL3JvdXRlcy9kZWZhdWx0LXJvdXRpbmctZmFjdG9yeSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvcm91dGVzL2lkLXByZWxvYWRlci1jb25maWd1cmF0aW9uJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9yb3V0ZXMvcm91dGUtZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4uL2xpYi9jbGFzc2VzL2NyZWRlbnRpYWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NsYXNzZXMvZW52aXJvbm1lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9pbmZpbml0ZS1zY3JvbGwnO1xyXG5leHBvcnQgKiBmcm9tICcuLi9saWIvY2xhc3Nlcy9wYWdlLW9wdGlvbic7XHJcblxyXG4vL1sg8J+TgSBDb21wb25lbnRzIF1cclxuICAvL1sg8J+TgSBDb21wb25lbnRzIC0+IENhcm91c2VsIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IENhcm91c2VsIC0+IENhcnJvdXNlbC1JbWFnZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9jYXJvdXNlbC1pbWFnZS9jYXJvdXNlbC1pbWFnZS5jb21wb25lbnQnO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gQ2Fyb3VzZWwgLT4gQ2Fycm91c2VsLUl0ZW0gXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwtaXRlbS9jYXJvdXNlbC1pdGVtLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9jYXJvdXNlbC5tb2R1bGUnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2ktY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IENvbnRlbnQtQmxvY2sgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2NvbnRlbnQtYmxvY2svY29udGVudC1ibG9jay5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LWxpc3QgXVxyXG4gICAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtbGlzdCAtPiBoZWFkZXItbGlzdCBdXHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2hlYWRlci1saXN0L2hlYWRlci1saXN0LmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtbGlzdC9hYnN0cmFjdC1saXN0JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC1saXN0L2RlZmF1bHQtbGlzdC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LWxpc3QvbGlzdCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBEZWZhdWx0IC0+IGRlZmF1bHQtcGFnaW5hdGlvbiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtcGFnaW5hdGlvbi9kZWZhdWx0LXBhZ2luYXRpb24uY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC10YWJsZSBdXHJcbiAgICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC10YWJsZSAtPiB0aC1maWx0ZXIgXVxyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdGFibGUvdGgtZmlsdGVyL3RoLWZpbHRlci5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXRhYmxlL2RlZmF1bHQtdGFibGUuY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IERlZmF1bHQgLT4gZGVmYXVsdC12aWV3IF1cclxuICAgICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gRGVmYXVsdCAtPiBkZWZhdWx0LXZpZXcgLT4gaGVhZGVyLXZpZXcgXVxyXG4gICAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9oZWFkZXItdmlldy9oZWFkZXItdmlldy5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC9kZWZhdWx0LXZpZXcvYWJzdHJhY3Qtdmlldyc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy9kZWZhdWx0LXZpZXcuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L3ZpZXcnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC5tb2R1bGUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRlZmF1bHQtcGFnZSBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZGVmYXVsdC1wYWdlL2RlZmF1bHQucGFnZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gZHJhZy1kcm9wLXBhZ2UgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gZHJhZy1kcm9wLXBhZ2UgLT4gZHJhZy1kcm9wLW92ZXJsYXkgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhZy1kcm9wLWZpbGUvZHJhZy1kcm9wLW92ZXJsYXkvZHJhZy1kcm9wLW92ZXJsYXkuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kcmFnLWRyb3AtZmlsZS9kcmFnLWRyb3AtZmlsZS5kaXJlY3RpdmUnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2RyYWctZHJvcC1maWxlL2RyYWctZHJvcC1maWxlLm1vZHVsZSc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gZHJhd2VyIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYXdlciAtPiBkZWZhdWx0LWRyYXdlci1lbmQgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL2RlZmF1bHQtZHJhd2VyLWVuZC9kZWZhdWx0LWRyYXdlci1lbmQuY29tcG9uZW50JztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGRyYXdlciAtPiBkcmF3ZXItZ3JvdXAgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL2RyYXdlci1ncm91cC9kcmF3ZXItZ3JvdXAuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZHJhd2VyL21lbnUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGZpbHRlciBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGh0dHAtcmVzcG9uc2VzLXBhZ2VzIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGh0dHAtcmVzcG9uc2VzLXBhZ2VzIC0+IGZvcmJpZGRlbi00MDMgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaHR0cC1yZXNwb25zZXMtcGFnZXMvZm9yYmlkZGVuLTQwMy9mb3JiaWRkZW4tNDAzLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW1hZ2UgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5mby1wb3BvdmVyIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbmZvLXBvcG92ZXIvaW5mby1wb3BvdmVyLmNvbXBvbmVudCc7XHJcblxyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtYm9vbCBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtYm9vbC9pbnB1dC1ib29sLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtYm9vbC9pbnB1dC1ib29sLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWNlcCBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY2VwL2lucHV0LWNlcC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNlcC9pbnB1dC1jZXAuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtY29sb3IgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNvbG9yL2lucHV0LWNvbG9yLmNvbXBvbmVudCc7XHJcbiAgICAvLyBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY29sb3IvaW5wdXQtY29sb3IuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtY3BmLWNucGogXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWNwZi1jbnBqL2lucHV0LWNwZi1jbnBqLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY3BmLWNucGovaW5wdXQtY3BmLWNucGouY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtZGF0ZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtZGF0ZS9pbnB1dC1kYXRlLmNvbmZpZ3VyYXRpb24nO1xyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LWRlY2ltYWwgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRlY2ltYWwvaW5wdXQtZGVjaW1hbC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRlY2ltYWwvaW5wdXQtZGVjaW1hbC5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC1maWxlIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtaWNvbiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtaWNvbi9pbnB1dC1pY29uLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtc2VsZWN0IF1cclxuICAgICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gaW5wdXRzIC0+IGlucHV0LXNlbGVjdCAtPiBkaXJlY3RpdmVzIF1cclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9kaXJlY3RpdmVzL3Npb24tbGFiZWwtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuICAgICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9kaXJlY3RpdmVzL3Npb24tb3B0aW9uLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbiAgICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zZWxlY3QvZGlyZWN0aXZlcy9zaW9uLXBsYWNlaG9sZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQnO1xyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXNlbGVjdC9pbnB1dC5zZWxlY3QuY29uZmlndXJhdGlvbic7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBpbnB1dHMgLT4gaW5wdXQtc3RyaW5nIF1cclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1zdHJpbmcvaW5wdXQtc3RyaW5nLmNvbXBvbmVudCc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtc3RyaW5nL2lucHV0LXN0cmluZy5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC10ZWxlZm9uZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdGVsZWZvbmUvaW5wdXQtdGVsZWZvbmUuY29tcG9uZW50JztcclxuICAgIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC10ZWxlZm9uZS9pbnB1dC10ZWxlZm9uZS5jb25maWd1cmF0aW9uJztcclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IGlucHV0cyAtPiBpbnB1dC10ZXh0YXJlYSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdGV4dGFyZWEvaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtY29uZmlndXJhdGlvbic7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LWRlZmF1bHQtY29uZmlndXJhdGlvbnMnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dC1wcm92aWRlci1mYWN0b3J5JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXZhbGlkYXRvcnMnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2lucHV0cy9pbnB1dHMubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBsb2FkaW5nIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBsb2dpbiBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBsb2dpbiAtPiBsb2dpbi1hZG1pbiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9sb2dpbi9sb2dpbi1hZG1pbi9sb2dpbi1hZG1pbi5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gbWFpbi1jb250ZW50IF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9tYWluLWNvbnRlbnQvbWFpbi1jb250ZW50LmNvbXBvbmVudCc7XHJcbiAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gcG9wb3ZlciBdXHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzaW9uLXBvcG92ZXIgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvcG9wb3Zlci9zaW9uLXBvcG92ZXIvc2lvbi1wb3BvdmVyLmNvbXBvbmVudCc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvcG9wb3Zlci9zaW9uLXBvcG92ZXIubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzaW9uLWNhcmQgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3Npb24tY2FyZC9zaW9uLWNhcmQuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiBzdGVwcGVyIF1cclxuICAgIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHN0ZXBwZXIgLT4gc3RlcCBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXAvc3RlcC5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3N0ZXBwZXIvc3RlcHBlci5tb2R1bGUnO1xyXG4gIC8vIFsg8J+TgSBDb21wb25lbnRzIC0+IHRhYnMgXVxyXG4gICAgLy8gWyDwn5OBIENvbXBvbmVudHMgLT4gdGFicyAtPiB0YWIgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdGFicy90YWIvdGFiLmNvbXBvbmVudCc7XHJcbiAgICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0YWJzIC0+IHRhYnMgXVxyXG4gICAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvdGFicy90YWJzL3RhYnMuY29tcG9uZW50JztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy90YWJzL3RhYnMubW9kdWxlJztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0ZXh0LXRvb2x0aXAgXVxyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9jb21wb25lbnRzL3RleHQtdG9vbHRpcC90ZXh0LXRvb2x0aXAuY29tcG9uZW50JztcclxuICAvLyBbIPCfk4EgQ29tcG9uZW50cyAtPiB0b29sdGlwIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuLy9bIPCfk4EgRGlyZWN0aXZlcyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2RpcmVjdGl2ZXMvbmctdmFyLmRpcmVjdGl2ZSc7XHJcbi8vWyDwn5OBIEd1YXJkcyBdXHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL2d1YXJkcy9hdXRoLmd1YXJkJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvZ3VhcmRzL2Vycm9yLmludGVyY2VwdG9yJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvZ3VhcmRzL3Rva2VuLmludGVyY2VwdG9yJztcclxuLy8gWyDwn5OBIFBpcGVzIF1cclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvcGlwZXMvc2VjdXJlLnBpcGUnO1xyXG4vLyBbIPCfk4EgU2VydmljZXMgXVxyXG4gIC8vIFsg8J+TgSBTZXJ2aWNlcyAtPiBSb3V0ZSBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvcm91dGUvcm91dGUucHJvdmlkZXIuc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvcm91dGUvcm91dGUuY2FjaGUuc2VydmljZSc7XHJcbiAgLy8gWyDwn5OBIFNlcnZpY2VzIC0+IFdlYiBdXHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL2h0dHAuYXRpdm8uc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL2h0dHAuc2VydmljZSc7XHJcbiAgICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvd2ViL3N0b3JhZ2Uuc2VydmljZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbiAgLy8gZXhwb3J0ICogZnJvbSAnLi4vbGliL3NlcnZpY2VzL2NyeXB0by5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbiAgZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9nZW5lcmljLnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy91c3VhcmlvLnNlcnZpY2UnO1xyXG4gIGV4cG9ydCAqIGZyb20gJy4uL2xpYi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcclxuICBleHBvcnQgKiBmcm9tICcuLi9saWIvc2VydmljZXMvbmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi4vbGliL2NvcmUubW9kdWxlJzsiXX0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NavigationEnd, Router } from '@angular/router';
|
|
3
|
+
import { filter } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
export class NavigationContextService {
|
|
7
|
+
constructor(router) {
|
|
8
|
+
this.router = router;
|
|
9
|
+
this.previousUrl = null;
|
|
10
|
+
this.currentUrl = null;
|
|
11
|
+
this.currentUrl = this.router.url;
|
|
12
|
+
this.router.events.pipe(filter(e => e instanceof NavigationEnd)).subscribe((e) => {
|
|
13
|
+
const nextUrl = e.urlAfterRedirects;
|
|
14
|
+
const preserve = history.state?.__preserveBack == true;
|
|
15
|
+
const currentBase = this.currentUrl ? this.getBaseRoute(this.currentUrl) : null;
|
|
16
|
+
const nextBase = this.getBaseRoute(nextUrl);
|
|
17
|
+
const nav = this.router.getCurrentNavigation();
|
|
18
|
+
const isBack = nav?.trigger == 'popstate';
|
|
19
|
+
// Redirect técnico - ignora
|
|
20
|
+
if (preserve) {
|
|
21
|
+
this.currentUrl = nextUrl;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// Navegação interna da mesma view (Ex: Item <-> View Principal)
|
|
25
|
+
if (currentBase && currentBase == nextBase) {
|
|
26
|
+
// ajustes no histórico baseando-se estritamente na hierarquia.
|
|
27
|
+
const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
|
|
28
|
+
const cleanBase = nextBase.replace(/\/$/, '');
|
|
29
|
+
if (cleanNext == cleanBase) {
|
|
30
|
+
// voltou para a raiz da entidade
|
|
31
|
+
this.previousUrl = this.getListRoute(nextBase);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// voltou de um filho → pai REAL
|
|
35
|
+
this.previousUrl = this.getParentRoute(nextUrl);
|
|
36
|
+
}
|
|
37
|
+
this.currentUrl = nextUrl;
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Chegou numa view base VIA BACK (de outro módulo)
|
|
41
|
+
if (isBack) {
|
|
42
|
+
// Se voltou de fora (OS -> Obra), recalcula para garantir
|
|
43
|
+
const cleanNext = nextUrl.split('?')[0].replace(/\/$/, '');
|
|
44
|
+
const cleanBase = nextBase.replace(/\/$/, '');
|
|
45
|
+
if (cleanNext === cleanBase) {
|
|
46
|
+
this.previousUrl = this.getListRoute(nextBase);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.previousUrl = nextBase;
|
|
50
|
+
}
|
|
51
|
+
this.currentUrl = nextUrl;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
// Navegação real (Entrando em um módulo novo ou avançando)
|
|
55
|
+
this.previousUrl = this.currentUrl;
|
|
56
|
+
this.currentUrl = nextUrl;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
getBaseRoute(url) {
|
|
60
|
+
//pega a rota base
|
|
61
|
+
const parts = url.split('/').filter(Boolean);
|
|
62
|
+
const base = [];
|
|
63
|
+
for (const part of parts) {
|
|
64
|
+
base.push(part);
|
|
65
|
+
if (!isNaN(Number(part))) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return '/' + base.join('/');
|
|
70
|
+
}
|
|
71
|
+
getListRoute(baseRoute) {
|
|
72
|
+
//verifica se a rota de retorno é a inicial
|
|
73
|
+
const parts = baseRoute.split('/').filter(Boolean);
|
|
74
|
+
return '/' + parts[0];
|
|
75
|
+
}
|
|
76
|
+
getParentRoute(url) {
|
|
77
|
+
const clean = url.split('?')[0].replace(/\/$/, '');
|
|
78
|
+
const parts = clean.split('/').filter(Boolean);
|
|
79
|
+
if (parts.length <= 1) {
|
|
80
|
+
return '/' + parts.join('/');
|
|
81
|
+
}
|
|
82
|
+
if (!isNaN(Number(parts[parts.length - 1]))) {
|
|
83
|
+
parts.pop();
|
|
84
|
+
}
|
|
85
|
+
if (parts[parts.length - 1] === 'view') {
|
|
86
|
+
parts.pop();
|
|
87
|
+
}
|
|
88
|
+
return '/' + parts.join('/');
|
|
89
|
+
}
|
|
90
|
+
getBackRoute() {
|
|
91
|
+
return this.previousUrl;
|
|
92
|
+
}
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
94
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, providedIn: 'root' }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationContextService, decorators: [{
|
|
97
|
+
type: Injectable,
|
|
98
|
+
args: [{ providedIn: 'root' }]
|
|
99
|
+
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL25hdmlnYXRpb24tY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHOUIsTUFBTSxPQUFPLHdCQUF3QjtJQUluQyxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUgxQixnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFHdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFO1lBQzlGLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUNwQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFFdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNoRixNQUFNLFFBQVEsR0FBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRS9DLE1BQU0s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O1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uQ29udGV4dFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcHJldmlvdXNVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgY3VycmVudFVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHRoaXMuY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoZTogTmF2aWdhdGlvbkVuZCkgPT4ge1xyXG4gICAgICBjb25zdCBuZXh0VXJsID0gZS51cmxBZnRlclJlZGlyZWN0cztcclxuICAgICAgY29uc3QgcHJlc2VydmUgPSBoaXN0b3J5LnN0YXRlPy5fX3ByZXNlcnZlQmFjayA9PSB0cnVlO1xyXG4gICAgXHJcbiAgICAgIGNvbnN0IGN1cnJlbnRCYXNlID0gdGhpcy5jdXJyZW50VXJsID8gdGhpcy5nZXRCYXNlUm91dGUodGhpcy5jdXJyZW50VXJsKSA6IG51bGw7XHJcbiAgICAgIGNvbnN0IG5leHRCYXNlICAgID0gdGhpcy5nZXRCYXNlUm91dGUobmV4dFVybCk7XHJcbiAgICBcclxuICAgICAgY29uc3QgbmF2ID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcclxuICAgICAgY29uc3QgaXNCYWNrID0gbmF2Py50cmlnZ2VyID09ICdwb3BzdGF0ZSc7XHJcbiAgICBcclxuICAgICAgLy8gUmVkaXJlY3QgdMOpY25pY28gLSBpZ25vcmFcclxuICAgICAgaWYgKHByZXNlcnZlKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VXJsID0gbmV4dFVybDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICAvLyBOYXZlZ2HDp8OjbyBpbnRlcm5hIGRhIG1lc21hIHZpZXcgKEV4OiBJdGVtIDwtPiBWaWV3IFByaW5jaXBhbClcclxuICAgICAgaWYgKGN1cnJlbnRCYXNlICYmIGN1cnJlbnRCYXNlID09IG5leHRCYXNlKSB7XHJcbiAgICAgICAgLy8gYWp1c3RlcyBubyBoaXN0w7NyaWNvIGJhc2VhbmRvLXNlIGVzdHJpdGFtZW50ZSBuYSBoaWVyYXJxdWlhLlxyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGNsZWFuTmV4dCA9IG5leHRVcmwuc3BsaXQoJz8nKVswXS5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG4gICAgICAgIGNvbnN0IGNsZWFuQmFzZSA9IG5leHRCYXNlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgICAgIGlmIChjbGVhbk5leHQgPT0gY2xlYW5CYXNlKSB7XHJcbiAgICAgICAgICAvLyB2b2x0b3UgcGFyYSBhIHJhaXogZGEgZW50aWRhZGVcclxuICAgICAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB0aGlzLmdldExpc3RSb3V0ZShuZXh0QmFzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIHZvbHRvdSBkZSB1bSBmaWxobyDihpIgcGFpIFJFQUxcclxuICAgICAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB0aGlzLmdldFBhcmVudFJvdXRlKG5leHRVcmwpO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudFVybCA9IG5leHRVcmw7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgLy8gQ2hlZ291IG51bWEgdmlldyBiYXNlIFZJQSBCQUNLIChkZSBvdXRybyBtw7NkdWxvKVxyXG4gICAgICBpZiAoaXNCYWNrKSB7XHJcbiAgICAgICAgLy8gU2Ugdm9sdG91IGRlIGZvcmEgKE9TIC0+IE9icmEpLCByZWNhbGN1bGEgcGFyYSBnYXJhbnRpclxyXG4gICAgICAgIGNvbnN0IGNsZWFuTmV4dCA9IG5leHRVcmwuc3BsaXQoJz8nKVswXS5yZXBsYWNlKC9cXC8kLywgJycpO1xyXG4gICAgICAgIGNvbnN0IGNsZWFuQmFzZSA9IG5leHRCYXNlLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgICAgIGlmIChjbGVhbk5leHQgPT09IGNsZWFuQmFzZSkge1xyXG4gICAgICAgICAgIHRoaXMucHJldmlvdXNVcmwgPSB0aGlzLmdldExpc3RSb3V0ZShuZXh0QmFzZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICB0aGlzLnByZXZpb3VzVXJsID0gbmV4dEJhc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRVcmwgID0gbmV4dFVybDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICAvLyBOYXZlZ2HDp8OjbyByZWFsIChFbnRyYW5kbyBlbSB1bSBtw7NkdWxvIG5vdm8gb3UgYXZhbsOnYW5kbylcclxuICAgICAgdGhpcy5wcmV2aW91c1VybCA9IHRoaXMuY3VycmVudFVybDtcclxuICAgICAgdGhpcy5jdXJyZW50VXJsICA9IG5leHRVcmw7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QmFzZVJvdXRlKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIC8vcGVnYSBhIHJvdGEgYmFzZVxyXG4gICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XHJcbiAgICBjb25zdCBiYXNlOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XHJcbiAgICAgIGJhc2UucHVzaChwYXJ0KTtcclxuICAgICAgaWYgKCFpc05hTihOdW1iZXIocGFydCkpKSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAnLycgKyBiYXNlLmpvaW4oJy8nKTtcclxuICB9XHJcbiAgXHJcbiAgcHJpdmF0ZSBnZXRMaXN0Um91dGUoYmFzZVJvdXRlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy92ZXJpZmljYSBzZSBhIHJvdGEgZGUgcmV0b3JubyDDqSBhIGluaWNpYWxcclxuICAgIGNvbnN0IHBhcnRzID0gYmFzZVJvdXRlLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pO1xyXG4gICAgcmV0dXJuICcvJyArIHBhcnRzWzBdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYXJlbnRSb3V0ZSh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjbGVhbiA9IHVybC5zcGxpdCgnPycpWzBdLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcbiAgICBjb25zdCBwYXJ0cyA9IGNsZWFuLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pO1xyXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8PSAxKSB7XHJcbiAgICAgIHJldHVybiAnLycgKyBwYXJ0cy5qb2luKCcvJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzTmFOKE51bWJlcihwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSkpKSB7XHJcbiAgICAgIHBhcnRzLnBvcCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdID09PSAndmlldycpIHtcclxuICAgICAgcGFydHMucG9wKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICByZXR1cm4gJy8nICsgcGFydHMuam9pbignLycpO1xyXG4gIH1cclxuICBnZXRCYWNrUm91dGUoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aW91c1VybDtcclxuICB9XHJcbn0iXX0=
|
|
@@ -141,8 +141,13 @@ export class HttpService {
|
|
|
141
141
|
if (!redirectPath) {
|
|
142
142
|
return;
|
|
143
143
|
}
|
|
144
|
-
const path = redirectPath.replace(
|
|
145
|
-
this.navController.navigateRoot([`../${path}`], {
|
|
144
|
+
const path = redirectPath.replace(':id', id.toString());
|
|
145
|
+
this.navController.navigateRoot([`../${path}`], {
|
|
146
|
+
relativeTo: activatedRoute,
|
|
147
|
+
state: {
|
|
148
|
+
__preserveBack: true
|
|
149
|
+
}
|
|
150
|
+
});
|
|
146
151
|
}
|
|
147
152
|
FilesToForm(object, formData = new FormData(), lstTableFieldsView = null) {
|
|
148
153
|
if (!lstTableFieldsView) {
|
|
@@ -174,4 +179,4 @@ export class ViewRetorno {
|
|
|
174
179
|
this.lstDados = [];
|
|
175
180
|
}
|
|
176
181
|
}
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNL0QsTUFBTSxPQUFnQixXQUFXO0lBSy9CLFlBQ1ksSUFBMkIsRUFDM0IsRUFBNEIsRUFDNUIsY0FBK0IsRUFDL0IsYUFBOEIsRUFDOUIscUJBQTZDO1FBSjdDLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQTBCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUV2RCxJQUFJLENBQUMsSUFBSSxHQUFvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FB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QUUsQ0FBQztZQUNsRCxJQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUM7Z0JBQzNFLElBQUcsS0FBSyxJQUFJLE9BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLEVBQUMsQ0FBQztvQkFDckMsTUFBTSxJQUFJLEdBQUcsS0FBYSxDQUFDO29CQUMzQixNQUFNLElBQUksR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUMzQixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOytHQXpLbUIsV0FBVzttSEFBWCxXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQTZLRCxNQUFNLE9BQU8sV0FBVztJQUF4QjtRQUNFLGFBQVEsR0FBUSxFQUFFLENBQUM7SUFFckIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmlld0ZpbHRyb3MgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvdmlldy1maWx0cm9zJztcclxuaW1wb3J0IHsgVGFibGVGaWVsZCB9IGZyb20gJy4uLy4uL2NsYXNzZXMvaW5wdXRzL3RhYmxlLWZpZWxkJztcclxuaW1wb3J0IHsgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbnB1dHMvaW5wdXQtdHlwZSc7XHJcbmltcG9ydCB7IFZpZXcgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2RlZmF1bHQvZGVmYXVsdC12aWV3L3ZpZXcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFNlcnZpY2U8ViA9IGFueT4ge1xyXG5cclxuICBwdWJsaWMgYWJzdHJhY3Qgcm91dGU6IHN0cmluZzsgXHJcbiAgcHVibGljIGFic3RyYWN0IHRpdGxlOiBzdHJpbmc7IFxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBodHRwPyAgICAgICAgICA6IEh0dHBDbGllbnQsXHJcbiAgICBwcm90ZWN0ZWQgZmI/ICAgICAgICAgICAgOiBGb3JtQnVpbGRlciwgXHJcbiAgICBwcm90ZWN0ZWQgZ2VuZXJpY1NlcnZpY2U/OiBHZW5lcmljU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBuYXZDb250cm9sbGVyPyA6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcm90ZWN0ZWQgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlPzogQXBpVXJsUHJvdmlkZXJTZXJ2aWNlLFxyXG4gICkgeyBcclxuICAgIHRoaXMuaHR0cCAgICAgICAgICAgICAgICAgID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gICAgdGhpcy5mYiAgICAgICAgICAgICAgICAgICAgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG4gICAgdGhpcy5nZW5lcmljU2VydmljZSAgICAgICAgPSBpbmplY3QoR2VuZXJpY1NlcnZpY2UpO1xyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyICAgICAgICAgPSBpbmplY3QoTmF2Q29udHJvbGxlcik7XHJcbiAgICB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZSA9IGluamVjdChBcGlVcmxQcm92aWRlclNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0b3JuYSBhIHJvdGEgY29tcGxldGEgZG8gc2VydmnDp29cclxuICAgKiBAcmV0dXJuIHN0cmluZ1xyXG4gICAqIEBleGFtcGxlICdodHRwczovL2FwaS5leGFtcGxlLmNvbS97cm91dGV9J1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgZnVsbFJvdXRlKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLmFwaVVybFByb3ZpZGVyU2VydmljZS5hcGlVcmwgKyB0aGlzLnJvdXRlXHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogUmV0b3JuYSBvcyBkYWRvcyBkZSBhY29yZG8gY29tIG9zIGZpbHRyb3MgXHJcbiAgICogQHBhcmFtIHZGaWx0ZXIgRmlsdHJhIG9zIGRhZG9zIChQZXNxdWlzYSwgUGFnaW5hw6fDo28gZSBJQ29tcGFyaXNvbilcclxuICAqL1xyXG4gIHB1YmxpYyBMaXN0KHZGaWx0ZXI/OiBWaWV3RmlsdHJvcyk6IE9ic2VydmFibGU8Vmlld1JldG9ybm88Vj4+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFZpZXdSZXRvcm5vPFY+Pih0aGlzLmZ1bGxSb3V0ZSArIGAvbGlzdGAsIHZGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgbyBkYWRvIGRhIHRhYmVsYSBhc3NvY2lhZGEgY29tIGEgcm90YSBjb20gbyBpZCBpbmRpY2FkbyBcclxuICAgKiBAcGFyYW0gaWQgaWQgZG8gZGFkb1xyXG4gICovXHJcbiAgcHVibGljIEdldChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxWPiB7IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Vj4odGhpcy5mdWxsUm91dGUgK2AvZ2V0LyR7aWR9YCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKiBTYWx2YSBhcyBhbHRlcmHDp8O1ZXMgbm8gZGFkbyByZWNlYmlkbyAqL1xyXG4gIHB1YmxpYyBTYXZlPFQgPSBudW1iZXI+KG9iajogYW55IHwgRm9ybUdyb3VwIHwgViwgdmlldz86IFZpZXc8SHR0cFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxUPntcclxuICAgIGlmKHZpZXcpeyB2aWV3LnN1Ym1pdHRlZCA9IHRydWU7IH1cclxuXHJcbiAgICB2YXIgb2JqZWN0ID0gb2JqO1xyXG4gICAgXHJcbiAgICBpZihvYmogaW5zdGFuY2VvZiBGb3JtR3JvdXApeyBcclxuICAgICAgaWYob2JqLmludmFsaWQpeyBcclxuICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKVxyXG4gICAgICAgIHN1YmplY3QuZXJyb3IoXCJbIEludmFsaWQgRm9ybSBdXCIpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdChcIlZlcmlmaXF1ZSBvcyBjYW1wb3MhXCIpXHJcbiAgICAgICAgcmV0dXJuIHN1YmplY3Q7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBvYmplY3QgPSBvYmoudmFsdWU7IFxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5GaWxlc1RvRm9ybShvYmplY3QpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCd2aWV3JywgSlNPTi5zdHJpbmdpZnkob2JqZWN0KSk7XHJcblxyXG4gICAgLy9DaGVjayBpbiB0aGUgY2FzZSBpdCBoYXMgYSBmaWxlIGFuZCB0aGUgdmlldyBpcyBub3QgcGFzc2VkXHJcbiAgICBpZihPYmplY3QuZW50cmllcyhvYmplY3QpLmZpbmQocCA9PiBwWzFdIGluc3RhbmNlb2YgRmlsZSkgJiYgdGhpcy5oYXNGaWxlRm9ybSAmJiAhdmlldyl7IFxyXG4gICAgICBjb25zb2xlLmVycm9yKFwiWyBGb3JtR3JvdXAgY29udGFpbnMgZmlsZSwgYnV0IHZpZXcgaXNudCBhIHZhbGlkIHBhcmFtZXRlciBdXCIpOyBcclxuICAgIH0gZWxzZSBcclxuICAgIGlmKHZpZXcpeyBcclxuICAgICAgcmV0dXJuIHRoaXMuX1NhdmUoZm9ybURhdGEsIHZpZXcpOyBcclxuICAgIH0gXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMuZnVsbFJvdXRlICsgYC9zYXZlYCwgZm9ybURhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEV4Y2x1aSBhIGVudGlkYWRlICovXHJcbiAgcHVibGljIERlbGV0ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih0aGlzLmZ1bGxSb3V0ZSArIGAvZGVsZXRlL2AraWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgdG9kb3Mgb3MgZGFkb3MgKi9cclxuICBwdWJsaWMgTG9hZCh2RmlsdHJvcz86IFZpZXdGaWx0cm9zKTogUHJvbWlzZTxWaWV3UmV0b3JubzxWPj57XHJcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20odGhpcy5MaXN0KHZGaWx0cm9zKSk7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JuYSBvcyBjYW1wb3MgZGEgdGFiZWxhICovXHJcbiAgZ2V0IGxzdFRhYmxlRmllbGRzKCkgICAgOiBUYWJsZUZpZWxkW10geyByZXR1cm4gW107IH1cclxuICAvKiogUmV0b3JuYSBvcyBjYW1wb3MgZGEgdGFiZWxhIHBhcmEgdmlzdWFsaXphw6fDo28vZWRpw6fDo28gKHNlIHZhemlvIHJldG9ybmFyYSBvIHBhZHLDo28gKGxzdFRhYmxlRmllbGRzKSkgKi8gXHJcbiAgZ2V0IGxzdFRhYmxlRmllbGRzVmlldygpOiBUYWJsZUZpZWxkW10geyByZXR1cm4gdGhpcy5sc3RUYWJsZUZpZWxkczsgfSBcclxuXHJcbiAgLyoqIFJldG9yYSBvIFRhYmxlRmllbGQgcGFkcsOjbyBkZSBpZCAqL1xyXG4gIGdldCBkZWZhdWx0SWQoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJpZFwiLCBcImlkXCIsIGNvbnRyb2wsIElucHV0VHlwZS5OdW1iZXIpOyBcclxuICAgIGZpZWxkLmhpZGRlbiAgICAgPSB0cnVlO1xyXG4gICAgZmllbGQuaGlkZGVuVmlldyA9IHRydWU7XHJcbiAgICByZXR1cm4gZmllbGRcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcmEgbyBUYWJsZUZpZWxkIHBhZHLDo28gZGUgaWRFbXByZXNhICovXHJcbiAgZ2V0IGRlZmF1bHRJZEVtcHJlc2EoKSB7XHJcbiAgICB2YXIgY29udHJvbCA9IHRoaXMuZmIuY29udHJvbCgwKTtcclxuICAgIGNvbnN0IGZpZWxkID0gbmV3IFRhYmxlRmllbGQoXCJFbXByZXNhXCIsIFwiaWRFbXByZXNhXCIsIGNvbnRyb2wsIElucHV0VHlwZS5TZWxlY3QpOyBcclxuICAgIGZpZWxkLmhpZGRlblZpZXcgPSB0cnVlO1xyXG4gICAgZmllbGQuaGlkZGVuICAgICA9IHRydWU7XHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBoYXNGaWxlRm9ybSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHNWaWV3LmZpbHRlcihwID0+IHAudHlwZSA9PSBJbnB1dFR5cGUuRmlsZSkubGVuZ3RoID4gMDsgfSBcclxuXHJcbiAgcHJvdGVjdGVkIF9TYXZlKGZvcm1EYXRhOiBGb3JtRGF0YSwgdmlldzogVmlldzxIdHRwU2VydmljZT4pOiBPYnNlcnZhYmxlPGFueSB8IHZvaWQ+e1xyXG4gICAgdmlldy5sb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIdHRwRXZlbnQ8YW55Pj4obnVsbCk7XHJcblxyXG4gICAgdGhpcy5odHRwLnBvc3QodGhpcy5mdWxsUm91dGUgKyBgL3NhdmVgLCBmb3JtRGF0YSwgeyByZXBvcnRQcm9ncmVzczogdHJ1ZSwgb2JzZXJ2ZTogJ2V2ZW50cycgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJleikgPT4geyBcclxuICAgICAgICBpZihyZXoudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKXtcclxuICAgICAgICAgIGNvbnN0IHJlcyA9IHJlei5sb2FkZWQgLyByZXoudG90YWwhOyBcclxuICAgICAgICAgIHN1YmplY3QubmV4dChyZXopO1xyXG4gICAgICAgICAgdmlldy5wcm9ncmVzcyA9IHJlczsgIFxyXG4gICAgICAgIH1lbHNlIFxyXG4gICAgICAgIGlmKHJlei50eXBlID09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2Upe1xyXG4gICAgICAgICAgdmlldy5sb2FkaW5nICAgPSBmYWxzZTsgXHJcbiAgICAgICAgICB2aWV3LnN1Ym1pdHRlZCA9IGZhbHNlOyBcclxuICAgICAgICAgIHZpZXcuUmVmcmVzaCgpOyBcclxuXHJcbiAgICAgICAgICBjb25zdCBpZDogbnVtYmVyID0gTnVtYmVyKHJlei5ib2R5KVxyXG5cclxuICAgICAgICAgIC8vWyBSZWRpcmVjdCB0byB2aWV3LzppZCB8IHJlZGlyZWN0UGF0aCBdXHJcbiAgICAgICAgICBpZighdmlldy5pZCAmJiBpZCl7IFxyXG4gICAgICAgICAgICB0aGlzLlJlZGlyZWN0Um91dGUoaWQsIHZpZXcucmVkaXJlY3RQYXRoLCB2aWV3LkdldEN1cnJlbnRSb3V0aW5nKCkpOyBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpID0+IHsgXHJcbiAgICAgICAgc3ViamVjdC5lcnJvcihlcnIpOyBcclxuICAgICAgICB2aWV3LmxvYWRpbmcgICA9IGZhbHNlOyBcclxuICAgICAgICB2aWV3LnN1Ym1pdHRlZCA9IGZhbHNlOyBcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7IFxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTooKSA9PiB7IFxyXG4gICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0U3VjY2VzcygpO1xyXG4gICAgICAgIHN1YmplY3QuY29tcGxldGUoKTsgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuICBwcml2YXRlIFJlZGlyZWN0Um91dGUoaWQ6IG51bWJlciwgcmVkaXJlY3RQYXRoOiBzdHJpbmcsIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHZvaWQge1xyXG4gICAgaWYoIXJlZGlyZWN0UGF0aCl7IHJldHVybjsgfVxyXG4gICAgY29uc3QgcGF0aCA9IHJlZGlyZWN0UGF0aC5yZXBsYWNlKFwiOmlkXCIsIGlkLnRvU3RyaW5nKCkpO1xyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbYC4uLyR7cGF0aH1gXSwgeyByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZSB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEZpbGVzVG9Gb3JtKG9iamVjdDogViwgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCksIGxzdFRhYmxlRmllbGRzVmlldzogVGFibGVGaWVsZFtdIHwgbnVsbCA9IG51bGwpOiBGb3JtRGF0YSB7XHJcbiAgICBpZighbHN0VGFibGVGaWVsZHNWaWV3KXsgbHN0VGFibGVGaWVsZHNWaWV3ID0gdGhpcy5sc3RUYWJsZUZpZWxkc1ZpZXcuZmlsdGVyKHAgPT4gcC50eXBlID09IElucHV0VHlwZS5GaWxlKTsgfVxyXG5cclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iamVjdCkpIHtcclxuICAgICAgaWYobHN0VGFibGVGaWVsZHNWaWV3LmZpbmQocCA9PiBwLmluZGV4ID09IGtleSAmJiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpKXtcclxuICAgICAgICBpZih2YWx1ZSAmJiB0eXBlb2YodmFsdWUpICE9IFwic3RyaW5nXCIpe1xyXG4gICAgICAgICAgY29uc3QgZmlsZSA9IHZhbHVlIGFzIEZpbGU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gYGZpbGUtJHtrZXl9YDtcclxuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChuYW1lLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgb2JqZWN0W2tleV0gPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1EYXRhO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdSZXRvcm5vPFQgPSBhbnk+IHtcclxuICBsc3REYWRvczogVFtdID0gW107XHJcbiAgdG90YWw6IG51bWJlcjtcclxufSJdfQ==
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvaHR0cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7QUFNL0QsTUFBTSxPQUFnQixXQUFXO0lBSy9CLFlBQ1ksSUFBMkIsRUFDM0IsRUFBNEIsRUFDNUIsY0FBK0IsRUFDL0IsYUFBOEIsRUFDOUIscUJBQTZDO1FBSjdDLFNBQUksR0FBSixJQUFJLENBQXVCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQTBCO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDOUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUV2RCxJQUFJLENBQUMsSUFBSSxHQUFvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBc0IsTUFBTSxDQUFDLFdBQVcsQ0FB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LENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbEQsSUFBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO2dCQUMzRSxJQUFHLEtBQUssSUFBSSxPQUFNLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxFQUFDLENBQUM7b0JBQ3JDLE1BQU0sSUFBSSxHQUFHLEtBQWEsQ0FBQztvQkFDM0IsTUFBTSxJQUFJLEdBQUcsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFDM0IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0FoTG1CLFdBQVc7bUhBQVgsV0FBVyxjQUZuQixNQUFNOzs0RkFFRSxXQUFXO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFvTEQsTUFBTSxPQUFPLFdBQVc7SUFBeEI7UUFDRSxhQUFRLEdBQVEsRUFBRSxDQUFDO0lBRXJCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuaW1wb3J0IHsgQXBpVXJsUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9hcGktdXJsLXByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2dlbmVyaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IFZpZXdGaWx0cm9zIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL3ZpZXctZmlsdHJvcyc7XHJcbmltcG9ydCB7IFRhYmxlRmllbGQgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2lucHV0cy90YWJsZS1maWVsZCc7XHJcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvaW5wdXRzL2lucHV0LXR5cGUnO1xyXG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kZWZhdWx0L2RlZmF1bHQtdmlldy92aWV3JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEh0dHBTZXJ2aWNlPFYgPSBhbnk+IHtcclxuXHJcbiAgcHVibGljIGFic3RyYWN0IHJvdXRlOiBzdHJpbmc7IFxyXG4gIHB1YmxpYyBhYnN0cmFjdCB0aXRsZTogc3RyaW5nOyBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaHR0cD8gICAgICAgICAgOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJvdGVjdGVkIGZiPyAgICAgICAgICAgIDogRm9ybUJ1aWxkZXIsIFxyXG4gICAgcHJvdGVjdGVkIGdlbmVyaWNTZXJ2aWNlPzogR2VuZXJpY1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgbmF2Q29udHJvbGxlcj8gOiBOYXZDb250cm9sbGVyLFxyXG4gICAgcHJvdGVjdGVkIGFwaVVybFByb3ZpZGVyU2VydmljZT86IEFwaVVybFByb3ZpZGVyU2VydmljZSxcclxuICApIHsgXHJcbiAgICB0aGlzLmh0dHAgICAgICAgICAgICAgICAgICA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuICAgIHRoaXMuZmIgICAgICAgICAgICAgICAgICAgID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UgICAgICAgID0gaW5qZWN0KEdlbmVyaWNTZXJ2aWNlKTtcclxuICAgIHRoaXMubmF2Q29udHJvbGxlciAgICAgICAgID0gaW5qZWN0KE5hdkNvbnRyb2xsZXIpO1xyXG4gICAgdGhpcy5hcGlVcmxQcm92aWRlclNlcnZpY2UgPSBpbmplY3QoQXBpVXJsUHJvdmlkZXJTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldG9ybmEgYSByb3RhIGNvbXBsZXRhIGRvIHNlcnZpw6dvXHJcbiAgICogQHJldHVybiBzdHJpbmdcclxuICAgKiBAZXhhbXBsZSAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20ve3JvdXRlfSdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGZ1bGxSb3V0ZSgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlVcmxQcm92aWRlclNlcnZpY2UuYXBpVXJsICsgdGhpcy5yb3V0ZVxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIFJldG9ybmEgb3MgZGFkb3MgZGUgYWNvcmRvIGNvbSBvcyBmaWx0cm9zIFxyXG4gICAqIEBwYXJhbSB2RmlsdGVyIEZpbHRyYSBvcyBkYWRvcyAoUGVzcXVpc2EsIFBhZ2luYcOnw6NvIGUgSUNvbXBhcmlzb24pXHJcbiAgKi9cclxuICBwdWJsaWMgTGlzdCh2RmlsdGVyPzogVmlld0ZpbHRyb3MpOiBPYnNlcnZhYmxlPFZpZXdSZXRvcm5vPFY+PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxWaWV3UmV0b3JubzxWPj4odGhpcy5mdWxsUm91dGUgKyBgL2xpc3RgLCB2RmlsdGVyKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIG8gZGFkbyBkYSB0YWJlbGEgYXNzb2NpYWRhIGNvbSBhIHJvdGEgY29tIG8gaWQgaW5kaWNhZG8gXHJcbiAgICogQHBhcmFtIGlkIGlkIGRvIGRhZG9cclxuICAqL1xyXG4gIHB1YmxpYyBHZXQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8Vj4geyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFY+KHRoaXMuZnVsbFJvdXRlICtgL2dldC8ke2lkfWApO1xyXG4gIH1cclxuICBcclxuICAvKiogU2FsdmEgYXMgYWx0ZXJhw6fDtWVzIG5vIGRhZG8gcmVjZWJpZG8gKi9cclxuICBwdWJsaWMgU2F2ZTxUID0gbnVtYmVyPihvYmo6IGFueSB8IEZvcm1Hcm91cCB8IFYsIHZpZXc/OiBWaWV3PEh0dHBTZXJ2aWNlPik6IE9ic2VydmFibGU8VD57XHJcbiAgICBpZih2aWV3KXsgdmlldy5zdWJtaXR0ZWQgPSB0cnVlOyB9XHJcblxyXG4gICAgdmFyIG9iamVjdCA9IG9iajtcclxuICAgIFxyXG4gICAgaWYob2JqIGluc3RhbmNlb2YgRm9ybUdyb3VwKXsgXHJcbiAgICAgIGlmKG9iai5pbnZhbGlkKXsgXHJcbiAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcclxuICAgICAgICBzdWJqZWN0LmVycm9yKFwiWyBJbnZhbGlkIEZvcm0gXVwiKTtcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJWZXJpZmlxdWUgb3MgY2FtcG9zIVwiKVxyXG4gICAgICAgIHJldHVybiBzdWJqZWN0O1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgb2JqZWN0ID0gb2JqLnZhbHVlOyBcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IHRoaXMuRmlsZXNUb0Zvcm0ob2JqZWN0KTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZCgndmlldycsIEpTT04uc3RyaW5naWZ5KG9iamVjdCkpO1xyXG5cclxuICAgIC8vQ2hlY2sgaW4gdGhlIGNhc2UgaXQgaGFzIGEgZmlsZSBhbmQgdGhlIHZpZXcgaXMgbm90IHBhc3NlZFxyXG4gICAgaWYoT2JqZWN0LmVudHJpZXMob2JqZWN0KS5maW5kKHAgPT4gcFsxXSBpbnN0YW5jZW9mIEZpbGUpICYmIHRoaXMuaGFzRmlsZUZvcm0gJiYgIXZpZXcpeyBcclxuICAgICAgY29uc29sZS5lcnJvcihcIlsgRm9ybUdyb3VwIGNvbnRhaW5zIGZpbGUsIGJ1dCB2aWV3IGlzbnQgYSB2YWxpZCBwYXJhbWV0ZXIgXVwiKTsgXHJcbiAgICB9IGVsc2UgXHJcbiAgICBpZih2aWV3KXsgXHJcbiAgICAgIHJldHVybiB0aGlzLl9TYXZlKGZvcm1EYXRhLCB2aWV3KTsgXHJcbiAgICB9IFxyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmZ1bGxSb3V0ZSArIGAvc2F2ZWAsIGZvcm1EYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKiBFeGNsdWkgYSBlbnRpZGFkZSAqL1xyXG4gIHB1YmxpYyBEZWxldGUoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8dm9pZD4odGhpcy5mdWxsUm91dGUgKyBgL2RlbGV0ZS9gK2lkKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZXRvcm5hIHRvZG9zIG9zIGRhZG9zICovXHJcbiAgcHVibGljIExvYWQodkZpbHRyb3M/OiBWaWV3RmlsdHJvcyk6IFByb21pc2U8Vmlld1JldG9ybm88Vj4+e1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuTGlzdCh2RmlsdHJvcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJldG9ybmEgb3MgY2FtcG9zIGRhIHRhYmVsYSAqL1xyXG4gIGdldCBsc3RUYWJsZUZpZWxkcygpICAgIDogVGFibGVGaWVsZFtdIHsgcmV0dXJuIFtdOyB9XHJcbiAgLyoqIFJldG9ybmEgb3MgY2FtcG9zIGRhIHRhYmVsYSBwYXJhIHZpc3VhbGl6YcOnw6NvL2VkacOnw6NvIChzZSB2YXppbyByZXRvcm5hcmEgbyBwYWRyw6NvIChsc3RUYWJsZUZpZWxkcykpICovIFxyXG4gIGdldCBsc3RUYWJsZUZpZWxkc1ZpZXcoKTogVGFibGVGaWVsZFtdIHsgcmV0dXJuIHRoaXMubHN0VGFibGVGaWVsZHM7IH0gXHJcblxyXG4gIC8qKiBSZXRvcmEgbyBUYWJsZUZpZWxkIHBhZHLDo28gZGUgaWQgKi9cclxuICBnZXQgZGVmYXVsdElkKCkge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woMCk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiaWRcIiwgXCJpZFwiLCBjb250cm9sLCBJbnB1dFR5cGUuTnVtYmVyKTsgXHJcbiAgICBmaWVsZC5oaWRkZW4gICAgID0gdHJ1ZTtcclxuICAgIGZpZWxkLmhpZGRlblZpZXcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGZpZWxkXHJcbiAgfVxyXG5cclxuICAvKiogUmV0b3JhIG8gVGFibGVGaWVsZCBwYWRyw6NvIGRlIGlkRW1wcmVzYSAqL1xyXG4gIGdldCBkZWZhdWx0SWRFbXByZXNhKCkge1xyXG4gICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZiLmNvbnRyb2woMCk7XHJcbiAgICBjb25zdCBmaWVsZCA9IG5ldyBUYWJsZUZpZWxkKFwiRW1wcmVzYVwiLCBcImlkRW1wcmVzYVwiLCBjb250cm9sLCBJbnB1dFR5cGUuU2VsZWN0KTsgXHJcbiAgICBmaWVsZC5oaWRkZW5WaWV3ID0gdHJ1ZTtcclxuICAgIGZpZWxkLmhpZGRlbiAgICAgPSB0cnVlO1xyXG4gICAgcmV0dXJuIGZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgaGFzRmlsZUZvcm0oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmxzdFRhYmxlRmllbGRzVmlldy5maWx0ZXIocCA9PiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpLmxlbmd0aCA+IDA7IH0gXHJcblxyXG4gIHByb3RlY3RlZCBfU2F2ZShmb3JtRGF0YTogRm9ybURhdGEsIHZpZXc6IFZpZXc8SHR0cFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxhbnkgfCB2b2lkPntcclxuICAgIHZpZXcubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SHR0cEV2ZW50PGFueT4+KG51bGwpO1xyXG5cclxuICAgIHRoaXMuaHR0cC5wb3N0KHRoaXMuZnVsbFJvdXRlICsgYC9zYXZlYCwgZm9ybURhdGEsIHsgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsIG9ic2VydmU6ICdldmVudHMnIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXopID0+IHsgXHJcbiAgICAgICAgaWYocmV6LnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcyl7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSByZXoubG9hZGVkIC8gcmV6LnRvdGFsITsgXHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQocmV6KTtcclxuICAgICAgICAgIHZpZXcucHJvZ3Jlc3MgPSByZXM7ICBcclxuICAgICAgICB9ZWxzZSBcclxuICAgICAgICBpZihyZXoudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKXtcclxuICAgICAgICAgIHZpZXcubG9hZGluZyAgID0gZmFsc2U7IFxyXG4gICAgICAgICAgdmlldy5zdWJtaXR0ZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgICB2aWV3LlJlZnJlc2goKTsgXHJcblxyXG4gICAgICAgICAgY29uc3QgaWQ6IG51bWJlciA9IE51bWJlcihyZXouYm9keSlcclxuXHJcbiAgICAgICAgICAvL1sgUmVkaXJlY3QgdG8gdmlldy86aWQgfCByZWRpcmVjdFBhdGggXVxyXG4gICAgICAgICAgaWYoIXZpZXcuaWQgJiYgaWQpeyBcclxuICAgICAgICAgICAgdGhpcy5SZWRpcmVjdFJvdXRlKGlkLCB2aWV3LnJlZGlyZWN0UGF0aCwgdmlldy5HZXRDdXJyZW50Um91dGluZygpKTsgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKSA9PiB7IFxyXG4gICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTsgXHJcbiAgICAgICAgdmlldy5sb2FkaW5nICAgPSBmYWxzZTsgXHJcbiAgICAgICAgdmlldy5zdWJtaXR0ZWQgPSBmYWxzZTsgXHJcbiAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOyBcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6KCkgPT4geyBcclxuICAgICAgICB0aGlzLmdlbmVyaWNTZXJ2aWNlLlByZXNlbnRUb2FzdFN1Y2Nlc3MoKTtcclxuICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7IFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc3ViamVjdDtcclxuICB9XHJcbiAgcHJpdmF0ZSBSZWRpcmVjdFJvdXRlKGlkOiBudW1iZXIsIHJlZGlyZWN0UGF0aDogc3RyaW5nLCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiB2b2lkIHtcclxuICAgIGlmICghcmVkaXJlY3RQYXRoKSB7IHJldHVybjsgfVxyXG4gICAgY29uc3QgcGF0aCA9IHJlZGlyZWN0UGF0aC5yZXBsYWNlKCc6aWQnLCBpZC50b1N0cmluZygpKTtcclxuICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QoW2AuLi8ke3BhdGh9YF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ByZXNlcnZlQmFjazogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEZpbGVzVG9Gb3JtKG9iamVjdDogViwgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCksIGxzdFRhYmxlRmllbGRzVmlldzogVGFibGVGaWVsZFtdIHwgbnVsbCA9IG51bGwpOiBGb3JtRGF0YSB7XHJcbiAgICBpZighbHN0VGFibGVGaWVsZHNWaWV3KXsgbHN0VGFibGVGaWVsZHNWaWV3ID0gdGhpcy5sc3RUYWJsZUZpZWxkc1ZpZXcuZmlsdGVyKHAgPT4gcC50eXBlID09IElucHV0VHlwZS5GaWxlKTsgfVxyXG5cclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iamVjdCkpIHtcclxuICAgICAgaWYobHN0VGFibGVGaWVsZHNWaWV3LmZpbmQocCA9PiBwLmluZGV4ID09IGtleSAmJiBwLnR5cGUgPT0gSW5wdXRUeXBlLkZpbGUpKXtcclxuICAgICAgICBpZih2YWx1ZSAmJiB0eXBlb2YodmFsdWUpICE9IFwic3RyaW5nXCIpe1xyXG4gICAgICAgICAgY29uc3QgZmlsZSA9IHZhbHVlIGFzIEZpbGU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gYGZpbGUtJHtrZXl9YDtcclxuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChuYW1lLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgb2JqZWN0W2tleV0gPSBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1EYXRhO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpZXdSZXRvcm5vPFQgPSBhbnk+IHtcclxuICBsc3REYWRvczogVFtdID0gW107XHJcbiAgdG90YWw6IG51bWJlcjtcclxufSJdfQ==
|