general-library-union 3.1.83 → 3.1.85
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/src/app/core/componentes/filtro-general/filtro-general.component.mjs +19 -12
- package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +3 -3
- package/esm2022/src/app/core/servicios/utils.service.mjs +8 -2
- package/fesm2022/general-library-union.mjs +21 -9
- package/fesm2022/general-library-union.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/componentes/filtro-general/filtro-general.component.d.ts +3 -1
|
@@ -8,14 +8,16 @@ import { Dialog } from 'primeng/dialog';
|
|
|
8
8
|
import { OverlayPanel, OverlayPanelModule } from 'primeng/overlaypanel';
|
|
9
9
|
import { TooltipModule } from 'primeng/tooltip';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
12
|
-
import * as i2 from "primeng/
|
|
13
|
-
import * as i3 from "
|
|
14
|
-
import * as i4 from "@
|
|
15
|
-
import * as i5 from "
|
|
16
|
-
import * as i6 from "
|
|
17
|
-
import * as i7 from "
|
|
11
|
+
import * as i1 from "../../servicios/utils.service";
|
|
12
|
+
import * as i2 from "primeng/chip";
|
|
13
|
+
import * as i3 from "primeng/overlaypanel";
|
|
14
|
+
import * as i4 from "@angular/forms";
|
|
15
|
+
import * as i5 from "@ngx-translate/core";
|
|
16
|
+
import * as i6 from "primeng/button";
|
|
17
|
+
import * as i7 from "@angular/common";
|
|
18
|
+
import * as i8 from "primeng/tooltip";
|
|
18
19
|
export class FiltroGeneralComponent {
|
|
20
|
+
utilsService;
|
|
19
21
|
overlayPanel;
|
|
20
22
|
filtros;
|
|
21
23
|
datatable;
|
|
@@ -31,7 +33,9 @@ export class FiltroGeneralComponent {
|
|
|
31
33
|
renderer = inject(Renderer2);
|
|
32
34
|
elRef = inject(ElementRef);
|
|
33
35
|
dialog = inject(Dialog, { optional: true, self: true });
|
|
34
|
-
constructor() {
|
|
36
|
+
constructor(utilsService) {
|
|
37
|
+
this.utilsService = utilsService;
|
|
38
|
+
}
|
|
35
39
|
ngOnInit() {
|
|
36
40
|
if (this.filtros === undefined) {
|
|
37
41
|
}
|
|
@@ -159,6 +163,9 @@ export class FiltroGeneralComponent {
|
|
|
159
163
|
}
|
|
160
164
|
});
|
|
161
165
|
}
|
|
166
|
+
this.utilsService.sleep(500).then(data => {
|
|
167
|
+
this.utilsService.resizeWindowIFrame();
|
|
168
|
+
});
|
|
162
169
|
}
|
|
163
170
|
removeClickListener() {
|
|
164
171
|
if (this.clickListener) {
|
|
@@ -169,13 +176,13 @@ export class FiltroGeneralComponent {
|
|
|
169
176
|
ngOnDestroy() {
|
|
170
177
|
this.removeClickListener();
|
|
171
178
|
}
|
|
172
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FiltroGeneralComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FiltroGeneralComponent, isStandalone: true, selector: "app-filtro-general", inputs: { filtros: "filtros", datatable: "datatable" }, outputs: { metodoRegresar: "metodoRegresar", metodoRegresarAdicional: "metodoRegresarAdicional" }, queries: [{ propertyName: "inputFilters", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: ["op"], descendants: true }, { propertyName: "panel", first: true, predicate: OverlayPanel, descendants: true }], ngImport: i0, template: "<div class=\"flex justify-content-start align-items-center\">\n <div class=\"flex align-items-center\">\n <h4 class=\"m-0 mr-2 text-black-alpha-90\">Filtros</h4>\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-filter\"\n class=\"p-button-rounded p-button-outlined\"\n (click)=\"abrirPanel($event)\"\n ></button>\n </div>\n <div class=\"ml-3\">\n <p-chip\n pTooltip=\"{{chip.labelMostrar.length > 25 ? chip.labelMostrar : ''}}\" \n tooltipPosition=\"top\"\n *ngFor=\"let chip of chips\"\n [label]=\"chip.header + ': ' + (chip.labelMostrar.length > 25 ? chip.labelMostrar.substring(0, 25) + '...' : chip.labelMostrar)\"\n styleClass=\"m-1\"\n [removable]=\"chip.disabled ? false : true\"\n (onRemove)=\"removeChip(chip)\"\n ></p-chip>\n </div>\n</div>\n\n<p-overlayPanel #op (onHide)=\"onHide()\" [dismissable]=\"false\" [showCloseIcon]=\"true\">\n <div class=\"grid p-input-filled\">\n <form [formGroup]=\"filterForm\" class=\"p-fluid col-12\">\n <ng-container *ngTemplateOutlet=\"inputFilters; context: { $implicit: filterForm }\"></ng-container>\n <div class=\"flex justify-content-end mt-2 align-items-center\">\n <button pButton pRipple (click)=\"aplicarFiltros()\" class=\"ml-2\">{{'link_aplicar' | translate}}</button>\n <button pButton pRipple (click)=\"limpiarFiltros()\" icon=\"glyphicons glyphicons-cleaning\" class=\"p-button-rounded p-button-outlined ml-2\"></button>\n </div>\n </form>\n </div>\n</p-overlayPanel>\n", styles: [".grid .flex button:last-child{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: ChipModule }, { kind: "component", type:
|
|
179
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FiltroGeneralComponent, deps: [{ token: i1.UtilsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
180
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FiltroGeneralComponent, isStandalone: true, selector: "app-filtro-general", inputs: { filtros: "filtros", datatable: "datatable" }, outputs: { metodoRegresar: "metodoRegresar", metodoRegresarAdicional: "metodoRegresarAdicional" }, queries: [{ propertyName: "inputFilters", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "overlayPanel", first: true, predicate: ["op"], descendants: true }, { propertyName: "panel", first: true, predicate: OverlayPanel, descendants: true }], ngImport: i0, template: "<div class=\"flex justify-content-start align-items-center\">\n <div class=\"flex align-items-center\">\n <h4 class=\"m-0 mr-2 text-black-alpha-90\">Filtros</h4>\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-filter\"\n class=\"p-button-rounded p-button-outlined\"\n (click)=\"abrirPanel($event)\"\n ></button>\n </div>\n <div class=\"ml-3\">\n <p-chip\n pTooltip=\"{{chip.labelMostrar.length > 25 ? chip.labelMostrar : ''}}\" \n tooltipPosition=\"top\"\n *ngFor=\"let chip of chips\"\n [label]=\"chip.header + ': ' + (chip.labelMostrar.length > 25 ? chip.labelMostrar.substring(0, 25) + '...' : chip.labelMostrar)\"\n styleClass=\"m-1\"\n [removable]=\"chip.disabled ? false : true\"\n (onRemove)=\"removeChip(chip)\"\n ></p-chip>\n </div>\n</div>\n\n<p-overlayPanel #op (onHide)=\"onHide()\" [dismissable]=\"false\" [showCloseIcon]=\"true\">\n <div class=\"grid p-input-filled\">\n <form [formGroup]=\"filterForm\" class=\"p-fluid col-12\">\n <ng-container *ngTemplateOutlet=\"inputFilters; context: { $implicit: filterForm }\"></ng-container>\n <div class=\"flex justify-content-end mt-2 align-items-center\">\n <button pButton pRipple (click)=\"aplicarFiltros()\" class=\"ml-2\">{{'link_aplicar' | translate}}</button>\n <button pButton pRipple (click)=\"limpiarFiltros()\" icon=\"glyphicons glyphicons-cleaning\" class=\"p-button-rounded p-button-outlined ml-2\"></button>\n </div>\n </form>\n </div>\n</p-overlayPanel>\n", styles: [".grid .flex button:last-child{width:auto}\n"], dependencies: [{ kind: "ngmodule", type: ChipModule }, { kind: "component", type: i2.Chip, selector: "p-chip", inputs: ["label", "icon", "image", "alt", "style", "styleClass", "removable", "removeIcon"], outputs: ["onRemove", "onImageError"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i3.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i8.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }] });
|
|
174
181
|
}
|
|
175
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FiltroGeneralComponent, decorators: [{
|
|
176
183
|
type: Component,
|
|
177
184
|
args: [{ selector: 'app-filtro-general', imports: [ChipModule, OverlayPanelModule, ReactiveFormsModule, TranslateModule, ButtonModule, FormsModule, CommonModule, TooltipModule], standalone: true, template: "<div class=\"flex justify-content-start align-items-center\">\n <div class=\"flex align-items-center\">\n <h4 class=\"m-0 mr-2 text-black-alpha-90\">Filtros</h4>\n <button\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-filter\"\n class=\"p-button-rounded p-button-outlined\"\n (click)=\"abrirPanel($event)\"\n ></button>\n </div>\n <div class=\"ml-3\">\n <p-chip\n pTooltip=\"{{chip.labelMostrar.length > 25 ? chip.labelMostrar : ''}}\" \n tooltipPosition=\"top\"\n *ngFor=\"let chip of chips\"\n [label]=\"chip.header + ': ' + (chip.labelMostrar.length > 25 ? chip.labelMostrar.substring(0, 25) + '...' : chip.labelMostrar)\"\n styleClass=\"m-1\"\n [removable]=\"chip.disabled ? false : true\"\n (onRemove)=\"removeChip(chip)\"\n ></p-chip>\n </div>\n</div>\n\n<p-overlayPanel #op (onHide)=\"onHide()\" [dismissable]=\"false\" [showCloseIcon]=\"true\">\n <div class=\"grid p-input-filled\">\n <form [formGroup]=\"filterForm\" class=\"p-fluid col-12\">\n <ng-container *ngTemplateOutlet=\"inputFilters; context: { $implicit: filterForm }\"></ng-container>\n <div class=\"flex justify-content-end mt-2 align-items-center\">\n <button pButton pRipple (click)=\"aplicarFiltros()\" class=\"ml-2\">{{'link_aplicar' | translate}}</button>\n <button pButton pRipple (click)=\"limpiarFiltros()\" icon=\"glyphicons glyphicons-cleaning\" class=\"p-button-rounded p-button-outlined ml-2\"></button>\n </div>\n </form>\n </div>\n</p-overlayPanel>\n", styles: [".grid .flex button:last-child{width:auto}\n"] }]
|
|
178
|
-
}], ctorParameters: () => [], propDecorators: { overlayPanel: [{
|
|
185
|
+
}], ctorParameters: () => [{ type: i1.UtilsService }], propDecorators: { overlayPanel: [{
|
|
179
186
|
type: ViewChild,
|
|
180
187
|
args: ['op']
|
|
181
188
|
}], filtros: [{
|
|
@@ -193,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
193
200
|
type: ContentChild,
|
|
194
201
|
args: [TemplateRef]
|
|
195
202
|
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdHJvLWdlbmVyYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2NvbXBvbmVudGVzL2ZpbHRyby1nZW5lcmFsL2ZpbHRyby1nZW5lcmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9maWx0cm8tZ2VuZXJhbC9maWx0cm8tZ2VuZXJhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLHNCQUFzQjtJQUNoQixZQUFZLENBQU07SUFFMUIsT0FBTyxDQUFRO0lBRWYsU0FBUyxDQUFDO0lBRVQsY0FBYyxH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QUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRWtCLEtBQUs7c0JBQTdCLFNBQVM7dUJBQUMsWUFBWTtnQkFFSSxZQUFZO3NCQUF0QyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG4gIFJlbmRlcmVyMixcbiAgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgQ2hpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hpcCc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwsIE92ZXJsYXlQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsdHJvLWdlbmVyYWwnLFxuICBpbXBvcnRzOiBbQ2hpcE1vZHVsZSwgT3ZlcmxheVBhbmVsTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgVG9vbHRpcE1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0cm8tZ2VuZXJhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRyby1nZW5lcmFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRyb0dlbmVyYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdvcCcpIG92ZXJsYXlQYW5lbDogYW55O1xuXG4gIEBJbnB1dCgpIGZpbHRyb3M6IGFueVtdO1xuXG4gIEBJbnB1dCgpIGRhdGF0YWJsZTtcblxuICBAT3V0cHV0KCkgbWV0b2RvUmVncmVzYXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtZXRvZG9SZWdyZXNhckFkaWNpb25hbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgcGFuZWw6IE92ZXJsYXlQYW5lbDtcbiAgcHVibGljIGV2ZW50b1BhbmVsO1xuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSBpbnB1dEZpbHRlcnM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZmlsdGVyRm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgY2hpcHM6IGFueVtdID0gW107XG5cbiAgaXNBcHBseTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgY2xpY2tMaXN0ZW5lcjogRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgZGlhbG9nID0gaW5qZWN0KERpYWxvZywgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbHRyb3MgPT09IHVuZGVmaW5lZCkge1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRyb3MuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlckZvcm0uYWRkQ29udHJvbChjb250cm9sLmZpZWxkLCBuZXcgRm9ybUNvbnRyb2woKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkhpZGUoKSB7XG4gICAgaWYgKCF0aGlzLmlzQXBwbHkpIHtcbiAgICAgIHRoaXMuZmlsdHJvcy5mb3JFYWNoKChmaWx0cm8pID0+IHtcbiAgICAgICAgY29uc3QgY2hpcEFjdGl2ZSA9IHRoaXMuY2hpcHMuZmluZChcbiAgICAgICAgICAoY2hpcCkgPT4gY2hpcC5maWVsZCA9PT0gZmlsdHJvLmZpZWxkXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoZmlsdHJvLmZpZWxkKS5zZXRWYWx1ZShjaGlwQWN0aXZlPy52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5pc0FwcGx5ID0gZmFsc2U7XG4gIH1cblxuICBhYnJpclBhbmVsKGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5ldmVudG9QYW5lbCA9IGV2ZW50O1xuICAgIHRoaXMucGFuZWwuc2hvdyhldmVudCk7XG4gICAgdGhpcy5zaG93T3ZlcmxheSh0aGlzLm92ZXJsYXlQYW5lbCwgZXZlbnQpXG4gIH1cblxuICBsaW1waWFyRmlsdHJvcygpIHtcbiAgICB0aGlzLmlzQXBwbHkgPSBmYWxzZTtcbiAgICB0aGlzLmNoaXBzID0gW107XG4gICAgdGhpcy5maWx0ZXJGb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5fdXBkYXRlRmlsdGVycygpO1xuICB9XG5cbiAgYXBsaWNhckZpbHRyb3MoKSB7XG4gICAgdGhpcy5pc0FwcGx5ID0gdHJ1ZTtcbiAgICB0aGlzLnBhbmVsLmhpZGUoKTtcbiAgICB0aGlzLmNoaXBzID0gW107XG4gICAgdGhpcy5fdXBkYXRlRmlsdGVycygpO1xuICB9XG5cbiAgcmVtb3ZlQ2hpcChjaGlwKSB7XG4gICAgdGhpcy5fdXBkYXRlRmlsdGVycyhjaGlwKTtcbiAgfVxuXG4gIF91cGRhdGVGaWx0ZXJzKGNoaXA/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJzID0ge307XG4gICAgdGhpcy5maWx0cm9zLmZvckVhY2goKGZpbHRybykgPT4ge1xuICAgICAgaWYgKGNoaXA/LmZpZWxkICE9PSBmaWx0cm8uZmllbGQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpbHRyby5maWVsZCkudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGZpbHRlcnNbZmlsdHJvLmZpZWxkXSA9IHsgdmFsdWU6IHZhbHVlLCBtYXRjaE1vZGU6IGZpbHRyby5tYXRjaE1vZGUgfTtcblxuICAgICAgICAgIGlmICghY2hpcCkge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHZhciBtb3N0cmFyID0gJyc7XG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICAgICAgICAgIG1vc3RyYXIgPSBtb3N0cmFyICsgJyAtICdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlW2ldIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgbW9zdHJhciA9IG1vc3RyYXIgKyBuZXcgRGF0ZVBpcGUoJ2VuLVVTJykudHJhbnNmb3JtKHZhbHVlW2ldLCAnZGQvTU0veXl5eScpXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIG1vc3RyYXIgPSBtb3N0cmFyICsgdmFsdWVbaV1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5jaGlwcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogZmlsdHJvLmZpZWxkLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBsYWJlbDogZmlsdHJvLnZhbHVlcyA/IGZpbHRyby52YWx1ZXModmFsdWUpIDogdmFsdWUsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiBmaWx0cm8uaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWx0cm8uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgbGFiZWxNb3N0cmFyOiBtb3N0cmFyXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGlwcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogZmlsdHJvLmZpZWxkLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBsYWJlbDogZmlsdHJvLnZhbHVlcyA/IGZpbHRyby52YWx1ZXModmFsdWUpIDogdmFsdWUsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiBmaWx0cm8uaGVhZGVyLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWx0cm8uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgbGFiZWxNb3N0cmFyOiBmaWx0cm8uZm9ybWF0RGF0ZVxuICAgICAgICAgICAgICAgICAgPyBuZXcgRGF0ZVBpcGUoJ2VuLVVTJykudHJhbnNmb3JtKHZhbHVlLCAnZGQvTU0veXl5eScpXG4gICAgICAgICAgICAgICAgICA6IGZpbHRyby52YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgPyBmaWx0cm8udmFsdWVzKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGZvcm1hdERhdGU6IGZpbHRyby5mb3JtYXREYXRlLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2hpcHMgPSB0aGlzLmNoaXBzLmZpbHRlcigoY2hpcCkgPT4gY2hpcC5maWVsZCAhPT0gZmlsdHJvLmZpZWxkKTtcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmdldChmaWx0cm8uZmllbGQpLnNldFZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0aGlzLmRhdGF0YWJsZSkge1xuICAgICAgaWYgKHRoaXMuZGF0YXRhYmxlLnRhYmxlPy5maWx0ZXJzKSB7XG4gICAgICAgIHRoaXMuZGF0YXRhYmxlLnRhYmxlLmZpbHRlcnMgPSBmaWx0ZXJzO1xuICAgICAgICB0aGlzLmRhdGF0YWJsZS50YWJsZS5fZmlsdGVyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGF0YWJsZS5maWx0ZXJzID0gZmlsdGVycztcbiAgICAgICAgdGhpcy5kYXRhdGFibGUuX2ZpbHRlcigpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldG9kb1JlZ3Jlc2FyLmVtaXQoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWV0b2RvUmVncmVzYXJBZGljaW9uYWwpIHtcbiAgICAgIHRoaXMubWV0b2RvUmVncmVzYXJBZGljaW9uYWwuZW1pdChmaWx0ZXJzKTtcbiAgICB9XG4gIH1cblxuICAvL2xpc3RlbmVyIGRlbCBvdmVybGF5IEBhdXRvciBKZXN1cy1SYW1pcmV6XG4gIHNob3dPdmVybGF5KG9wOiBhbnksIGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuY2xpY2tMaXN0ZW5lciA9IG51bGxcbiAgICAvLyBNb3N0cmFyIGVsIG92ZXJsYXkgcGFuZWxcbiAgICBvcC5zaG93KGV2ZW50KTsgLy9tdWVzdHJhIGVsIG92ZXJsYXktcGFuZWxcbiAgICBpZiAodGhpcy5kaWFsb2cpIC8qIFNpIGVsIG92ZXJsYXkgZXN0w6EgZGVudHJvIGRlIHVuIHAtZGlhbG9nLCB1c2EgZWwgbcOpdG9kbyBkZSBvY3VsdGFyIGFsIHBlcmRlciBlbCBmb2NvKi8ge1xuICAgICAgLy8gRWxpbWluYXIgY3VhbHF1aWVyIGxpc3RlbmVyIGFudGVyaW9yXG4gICAgICBpZiAodGhpcy5jbGlja0xpc3RlbmVyKSB7XG4gICAgICAgIHRoaXMuY2xpY2tMaXN0ZW5lcigpO1xuICAgICAgfVxuICAgICAgLy8gIGFkaWNpb25hciBsaXN0ZW5lciBwYXJhIGNlcnJhciBlbCBvdmVybGF5IGFsIGhhY2VyIGNsaWMgZnVlcmEgZGUgw6lsXG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoY2xpY2tFdmVudDogRXZlbnQpID0+ICB7XG4gICAgICAgIGNvbnN0IGNsaWNrZWRJbnNpZGVPdmVybGF5ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGNsaWNrRXZlbnQudGFyZ2V0KTtcbiAgICAgICAgaWYgKCFjbGlja2VkSW5zaWRlT3ZlcmxheSkge1xuICAgICAgICAgIG9wLmhpZGUoKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXIoKTsgLy8gcmVtdWV2ZSBlbCBvdmVybGF5XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUNsaWNrTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuY2xpY2tMaXN0ZW5lcikge1xuICAgICAgdGhpcy5jbGlja0xpc3RlbmVyKCk7XG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lcigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm0tMCBtci0yIHRleHQtYmxhY2stYWxwaGEtOTBcIj5GaWx0cm9zPC9oND5cbiAgICA8YnV0dG9uXG4gICAgICBwQnV0dG9uXG4gICAgICBwUmlwcGxlXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGljb249XCJwaSBwaS1maWx0ZXJcIlxuICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgIChjbGljayk9XCJhYnJpclBhbmVsKCRldmVudClcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtbC0zXCI+XG4gICAgPHAtY2hpcFxuICAgICAgcFRvb2x0aXA9XCJ7e2NoaXAubGFiZWxNb3N0cmFyLmxlbmd0aCA+IDI1ID8gY2hpcC5sYWJlbE1vc3RyYXIgOiAnJ319XCIgXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgKm5nRm9yPVwibGV0IGNoaXAgb2YgY2hpcHNcIlxuICAgICAgW2xhYmVsXT1cImNoaXAuaGVhZGVyICsgJzogJyArIChjaGlwLmxhYmVsTW9zdHJhci5sZW5ndGggPiAyNSA/IGNoaXAubGFiZWxNb3N0cmFyLnN1YnN0cmluZygwLCAyNSkgKyAnLi4uJyA6IGNoaXAubGFiZWxNb3N0cmFyKVwiXG4gICAgICBzdHlsZUNsYXNzPVwibS0xXCJcbiAgICAgIFtyZW1vdmFibGVdPVwiY2hpcC5kaXNhYmxlZCA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgICAob25SZW1vdmUpPVwicmVtb3ZlQ2hpcChjaGlwKVwiXG4gICAgPjwvcC1jaGlwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48cC1vdmVybGF5UGFuZWwgI29wIChvbkhpZGUpPVwib25IaWRlKClcIiBbZGlzbWlzc2FibGVdPVwiZmFsc2VcIiBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJncmlkIHAtaW5wdXQtZmlsbGVkXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCIgY2xhc3M9XCJwLWZsdWlkIGNvbC0xMlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0RmlsdGVyczsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbHRlckZvcm0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSAoY2xpY2spPVwiYXBsaWNhckZpbHRyb3MoKVwiIGNsYXNzPVwibWwtMlwiPnt7J2xpbmtfYXBsaWNhcicgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSAoY2xpY2spPVwibGltcGlhckZpbHRyb3MoKVwiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtY2xlYW5pbmdcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tb3V0bGluZWQgbWwtMlwiPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvcC1vdmVybGF5UGFuZWw+XG4iXX0=
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdHJvLWdlbmVyYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2NvbXBvbmVudGVzL2ZpbHRyby1nZW5lcmFsL2ZpbHRyby1nZW5lcmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9maWx0cm8tZ2VuZXJhbC9maWx0cm8tZ2VuZXJhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBVWhELE1BQU0sT0FBTyxzQkFBc0I7SUEwQmI7SUF6QkgsWUFBWSxDQUFNO0lBRTFCLE9BQU8sQ0FBUTtJQUVmLFNBQVMsQ0FBQztJQUVU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a0JBUGxDLFNBQVM7K0JBQ0Usb0JBQW9CLFdBQ3JCLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsY0FDM0gsSUFBSTtpRkFLQyxZQUFZO3NCQUE1QixTQUFTO3VCQUFDLElBQUk7Z0JBRU4sT0FBTztzQkFBZixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBRWtCLEtBQUs7c0JBQTdCLFNBQVM7dUJBQUMsWUFBWTtnQkFFSSxZQUFZO3NCQUF0QyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG4gIFJlbmRlcmVyMixcbiAgRWxlbWVudFJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgQ2hpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hpcCc7XG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBPdmVybGF5UGFuZWwsIE92ZXJsYXlQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljaW9zL3V0aWxzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsdHJvLWdlbmVyYWwnLFxuICBpbXBvcnRzOiBbQ2hpcE1vZHVsZSwgT3ZlcmxheVBhbmVsTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgVG9vbHRpcE1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0cm8tZ2VuZXJhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRyby1nZW5lcmFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRyb0dlbmVyYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdvcCcpIG92ZXJsYXlQYW5lbDogYW55O1xuXG4gIEBJbnB1dCgpIGZpbHRyb3M6IGFueVtdO1xuXG4gIEBJbnB1dCgpIGRhdGF0YWJsZTtcblxuICBAT3V0cHV0KCkgbWV0b2RvUmVncmVzYXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBtZXRvZG9SZWdyZXNhckFkaWNpb25hbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKE92ZXJsYXlQYW5lbCkgcGFuZWw6IE92ZXJsYXlQYW5lbDtcbiAgcHVibGljIGV2ZW50b1BhbmVsO1xuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSBpbnB1dEZpbHRlcnM6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZmlsdGVyRm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgY2hpcHM6IGFueVtdID0gW107XG5cbiAgaXNBcHBseTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgY2xpY2tMaXN0ZW5lcjogRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgZGlhbG9nID0gaW5qZWN0KERpYWxvZywgeyBvcHRpb25hbDogdHJ1ZSwgc2VsZjogdHJ1ZSB9KTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWx0cm9zID09PSB1bmRlZmluZWQpIHtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0cm9zLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtLmFkZENvbnRyb2woY29udHJvbC5maWVsZCwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25IaWRlKCkge1xuICAgIGlmICghdGhpcy5pc0FwcGx5KSB7XG4gICAgICB0aGlzLmZpbHRyb3MuZm9yRWFjaCgoZmlsdHJvKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoaXBBY3RpdmUgPSB0aGlzLmNoaXBzLmZpbmQoXG4gICAgICAgICAgKGNoaXApID0+IGNoaXAuZmllbGQgPT09IGZpbHRyby5maWVsZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpbHRlckZvcm0uZ2V0KGZpbHRyby5maWVsZCkuc2V0VmFsdWUoY2hpcEFjdGl2ZT8udmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuaXNBcHBseSA9IGZhbHNlO1xuICB9XG5cbiAgYWJyaXJQYW5lbChldmVudCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnRvUGFuZWwgPSBldmVudDtcbiAgICB0aGlzLnBhbmVsLnNob3coZXZlbnQpO1xuICAgIHRoaXMuc2hvd092ZXJsYXkodGhpcy5vdmVybGF5UGFuZWwsIGV2ZW50KVxuICB9XG5cbiAgbGltcGlhckZpbHRyb3MoKSB7XG4gICAgdGhpcy5pc0FwcGx5ID0gZmFsc2U7XG4gICAgdGhpcy5jaGlwcyA9IFtdO1xuICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCgpO1xuICAgIHRoaXMuX3VwZGF0ZUZpbHRlcnMoKTtcbiAgfVxuXG4gIGFwbGljYXJGaWx0cm9zKCkge1xuICAgIHRoaXMuaXNBcHBseSA9IHRydWU7XG4gICAgdGhpcy5wYW5lbC5oaWRlKCk7XG4gICAgdGhpcy5jaGlwcyA9IFtdO1xuICAgIHRoaXMuX3VwZGF0ZUZpbHRlcnMoKTtcbiAgfVxuXG4gIHJlbW92ZUNoaXAoY2hpcCkge1xuICAgIHRoaXMuX3VwZGF0ZUZpbHRlcnMoY2hpcCk7XG4gIH1cblxuICBfdXBkYXRlRmlsdGVycyhjaGlwPzogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVycyA9IHt9O1xuICAgIHRoaXMuZmlsdHJvcy5mb3JFYWNoKChmaWx0cm8pID0+IHtcbiAgICAgIGlmIChjaGlwPy5maWVsZCAhPT0gZmlsdHJvLmZpZWxkKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5maWx0ZXJGb3JtLmdldChmaWx0cm8uZmllbGQpLnZhbHVlO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICBmaWx0ZXJzW2ZpbHRyby5maWVsZF0gPSB7IHZhbHVlOiB2YWx1ZSwgbWF0Y2hNb2RlOiBmaWx0cm8ubWF0Y2hNb2RlIH07XG5cbiAgICAgICAgICBpZiAoIWNoaXApIHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICB2YXIgbW9zdHJhciA9ICcnO1xuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICBtb3N0cmFyID0gbW9zdHJhciArICcgLSAnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZVtpXSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICAgIG1vc3RyYXIgPSBtb3N0cmFyICsgbmV3IERhdGVQaXBlKCdlbi1VUycpLnRyYW5zZm9ybSh2YWx1ZVtpXSwgJ2RkL01NL3l5eXknKVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBtb3N0cmFyID0gbW9zdHJhciArIHZhbHVlW2ldXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuY2hpcHMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGZpbHRyby5maWVsZCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGZpbHRyby52YWx1ZXMgPyBmaWx0cm8udmFsdWVzKHZhbHVlKSA6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogZmlsdHJvLmhlYWRlcixcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmlsdHJvLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGxhYmVsTW9zdHJhcjogbW9zdHJhclxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuY2hpcHMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGZpbHRyby5maWVsZCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGZpbHRyby52YWx1ZXMgPyBmaWx0cm8udmFsdWVzKHZhbHVlKSA6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogZmlsdHJvLmhlYWRlcixcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmlsdHJvLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGxhYmVsTW9zdHJhcjogZmlsdHJvLmZvcm1hdERhdGVcbiAgICAgICAgICAgICAgICAgID8gbmV3IERhdGVQaXBlKCdlbi1VUycpLnRyYW5zZm9ybSh2YWx1ZSwgJ2RkL01NL3l5eXknKVxuICAgICAgICAgICAgICAgICAgOiBmaWx0cm8udmFsdWVzXG4gICAgICAgICAgICAgICAgICAgID8gZmlsdHJvLnZhbHVlcyh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICBmb3JtYXREYXRlOiBmaWx0cm8uZm9ybWF0RGF0ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNoaXBzID0gdGhpcy5jaGlwcy5maWx0ZXIoKGNoaXApID0+IGNoaXAuZmllbGQgIT09IGZpbHRyby5maWVsZCk7XG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybS5nZXQoZmlsdHJvLmZpZWxkKS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5kYXRhdGFibGUpIHtcbiAgICAgIGlmICh0aGlzLmRhdGF0YWJsZS50YWJsZT8uZmlsdGVycykge1xuICAgICAgICB0aGlzLmRhdGF0YWJsZS50YWJsZS5maWx0ZXJzID0gZmlsdGVycztcbiAgICAgICAgdGhpcy5kYXRhdGFibGUudGFibGUuX2ZpbHRlcigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kYXRhdGFibGUuZmlsdGVycyA9IGZpbHRlcnM7XG4gICAgICAgIHRoaXMuZGF0YXRhYmxlLl9maWx0ZXIoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRvZG9SZWdyZXNhci5lbWl0KGZpbHRlcnMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1ldG9kb1JlZ3Jlc2FyQWRpY2lvbmFsKSB7XG4gICAgICB0aGlzLm1ldG9kb1JlZ3Jlc2FyQWRpY2lvbmFsLmVtaXQoZmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgLy9saXN0ZW5lciBkZWwgb3ZlcmxheSBAYXV0b3IgSmVzdXMtUmFtaXJlelxuICBzaG93T3ZlcmxheShvcDogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSBudWxsXG4gICAgLy8gTW9zdHJhciBlbCBvdmVybGF5IHBhbmVsXG4gICAgb3Auc2hvdyhldmVudCk7IC8vbXVlc3RyYSBlbCBvdmVybGF5LXBhbmVsXG4gICAgaWYgKHRoaXMuZGlhbG9nKSAvKiBTaSBlbCBvdmVybGF5IGVzdMOhIGRlbnRybyBkZSB1biBwLWRpYWxvZywgdXNhIGVsIG3DqXRvZG8gZGUgb2N1bHRhciBhbCBwZXJkZXIgZWwgZm9jbyovIHtcbiAgICAgIC8vIEVsaW1pbmFyIGN1YWxxdWllciBsaXN0ZW5lciBhbnRlcmlvclxuICAgICAgaWYgKHRoaXMuY2xpY2tMaXN0ZW5lcikge1xuICAgICAgICB0aGlzLmNsaWNrTGlzdGVuZXIoKTtcbiAgICAgIH1cbiAgICAgIC8vICBhZGljaW9uYXIgbGlzdGVuZXIgcGFyYSBjZXJyYXIgZWwgb3ZlcmxheSBhbCBoYWNlciBjbGljIGZ1ZXJhIGRlIMOpbFxuICAgICAgdGhpcy5jbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgKGNsaWNrRXZlbnQ6IEV2ZW50KSA9PiAge1xuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlT3ZlcmxheSA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhjbGlja0V2ZW50LnRhcmdldCk7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZU92ZXJsYXkpIHtcbiAgICAgICAgICBvcC5oaWRlKCk7XG4gICAgICAgICAgdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyKCk7IC8vIHJlbXVldmUgZWwgb3ZlcmxheVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy51dGlsc1NlcnZpY2Uuc2xlZXAoNTAwKS50aGVuKGRhdGEgPT4ge1xuICAgICAgdGhpcy51dGlsc1NlcnZpY2UucmVzaXplV2luZG93SUZyYW1lKCk7XG4gICAgfSlcbiAgfVxuXG4gIHJlbW92ZUNsaWNrTGlzdGVuZXIoKSB7XG4gICAgaWYgKHRoaXMuY2xpY2tMaXN0ZW5lcikge1xuICAgICAgdGhpcy5jbGlja0xpc3RlbmVyKCk7XG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lcigpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm0tMCBtci0yIHRleHQtYmxhY2stYWxwaGEtOTBcIj5GaWx0cm9zPC9oND5cbiAgICA8YnV0dG9uXG4gICAgICBwQnV0dG9uXG4gICAgICBwUmlwcGxlXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGljb249XCJwaSBwaS1maWx0ZXJcIlxuICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgIChjbGljayk9XCJhYnJpclBhbmVsKCRldmVudClcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtbC0zXCI+XG4gICAgPHAtY2hpcFxuICAgICAgcFRvb2x0aXA9XCJ7e2NoaXAubGFiZWxNb3N0cmFyLmxlbmd0aCA+IDI1ID8gY2hpcC5sYWJlbE1vc3RyYXIgOiAnJ319XCIgXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgKm5nRm9yPVwibGV0IGNoaXAgb2YgY2hpcHNcIlxuICAgICAgW2xhYmVsXT1cImNoaXAuaGVhZGVyICsgJzogJyArIChjaGlwLmxhYmVsTW9zdHJhci5sZW5ndGggPiAyNSA/IGNoaXAubGFiZWxNb3N0cmFyLnN1YnN0cmluZygwLCAyNSkgKyAnLi4uJyA6IGNoaXAubGFiZWxNb3N0cmFyKVwiXG4gICAgICBzdHlsZUNsYXNzPVwibS0xXCJcbiAgICAgIFtyZW1vdmFibGVdPVwiY2hpcC5kaXNhYmxlZCA/IGZhbHNlIDogdHJ1ZVwiXG4gICAgICAob25SZW1vdmUpPVwicmVtb3ZlQ2hpcChjaGlwKVwiXG4gICAgPjwvcC1jaGlwPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48cC1vdmVybGF5UGFuZWwgI29wIChvbkhpZGUpPVwib25IaWRlKClcIiBbZGlzbWlzc2FibGVdPVwiZmFsc2VcIiBbc2hvd0Nsb3NlSWNvbl09XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJncmlkIHAtaW5wdXQtZmlsbGVkXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtXCIgY2xhc3M9XCJwLWZsdWlkIGNvbC0xMlwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0RmlsdGVyczsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbHRlckZvcm0gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSAoY2xpY2spPVwiYXBsaWNhckZpbHRyb3MoKVwiIGNsYXNzPVwibWwtMlwiPnt7J2xpbmtfYXBsaWNhcicgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSAoY2xpY2spPVwibGltcGlhckZpbHRyb3MoKVwiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtY2xlYW5pbmdcIiBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tb3V0bGluZWQgbWwtMlwiPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvcC1vdmVybGF5UGFuZWw+XG4iXX0=
|