ngx-rendering-service-lib 0.0.46 → 0.0.47
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/dto/RenderData.mjs +1 -1
- package/esm2022/lib/module/binder/binder.component.mjs +3 -3
- package/esm2022/lib/module/ddb/ddb.component.mjs +86 -0
- package/esm2022/lib/render.component.mjs +11 -7
- package/esm2022/module-info.service.mjs +8 -2
- package/fesm2022/{ngx-rendering-service-lib-binder.component-BcnWHXkn.mjs → ngx-rendering-service-lib-binder.component-CDQBrYTq.mjs} +3 -3
- package/fesm2022/{ngx-rendering-service-lib-binder.component-BcnWHXkn.mjs.map → ngx-rendering-service-lib-binder.component-CDQBrYTq.mjs.map} +1 -1
- package/fesm2022/ngx-rendering-service-lib-ddb.component-CMCF3NfH.mjs +89 -0
- package/fesm2022/ngx-rendering-service-lib-ddb.component-CMCF3NfH.mjs.map +1 -0
- package/fesm2022/ngx-rendering-service-lib.mjs +17 -7
- package/fesm2022/ngx-rendering-service-lib.mjs.map +1 -1
- package/lib/dto/RenderData.d.ts +3 -0
- package/lib/module/ddb/ddb.component.d.ts +17 -0
- package/module-info.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVuZGVyRGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZHRvL1JlbmRlckRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RnJvbnRlbmRNb2R1bGVDb25maWd9IGZyb20gXCIuL0Zyb250ZW5kTW9kdWxlQ29uZmlnXCI7XG5cbmV4cG9ydCB0eXBlIFJlbmRlckRhdGEgPSB7XG4gIGl0ZW1zPzogQXJyYXk8QXNzZXRTdGF0ZUl0ZW0+LFxuICBtb2R1bGU6IHN0cmluZyxcbiAgZnJvbnRlbmRNb2R1bGVDb25maWc/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVuZGVyRGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZHRvL1JlbmRlckRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RnJvbnRlbmRNb2R1bGVDb25maWd9IGZyb20gXCIuL0Zyb250ZW5kTW9kdWxlQ29uZmlnXCI7XG5cbmV4cG9ydCB0eXBlIFJlbmRlckRhdGEgPSB7XG4gIGl0ZW1zPzogQXJyYXk8QXNzZXRTdGF0ZUl0ZW0+LFxuICBtb2R1bGU6IHN0cmluZyxcbiAgZnJvbnRlbmRNb2R1bGVDb25maWc/OiBGcm9udGVuZE1vZHVsZUNvbmZpZ1xufVxuXG5leHBvcnQgdHlwZSBBc3NldFN0YXRlSXRlbSA9IHtcbiAgbGluazogc3RyaW5nO1xuICBwcm9ncmVzczogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgYWRkaXRpb25hbERhdGE/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xufVxuIl19
|
|
@@ -12,17 +12,17 @@ export class BinderComponent {
|
|
|
12
12
|
this.activeObject.set(allFinishedItems?.[0]);
|
|
13
13
|
}
|
|
14
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, ngImport: i0, template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, ngImport: i0, template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".ddb-wrapper{width:100%;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
16
16
|
}
|
|
17
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'rs-module-binder', standalone: true, imports: [
|
|
20
20
|
RenderingModule,
|
|
21
21
|
FormsModule,
|
|
22
|
-
], template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".
|
|
22
|
+
], template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".ddb-wrapper{width:100%;position:relative}\n"] }]
|
|
23
23
|
}], propDecorators: { data: [{
|
|
24
24
|
type: Input
|
|
25
25
|
}], node: [{
|
|
26
26
|
type: Input
|
|
27
27
|
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlL2JpbmRlci9iaW5kZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bGUvYmluZGVyL2JpbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQU12RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQWMzQyxNQUFNLE9BQU8sZUFBZTtJQVY1QjtRQWFFLGlCQUFZLEdBQUcsTUFBTSxDQUE2QixTQUFTLENBQUMsQ0FBQztLQU05RDtJQUpDLGVBQWU7UUFDYixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUE7UUFDM0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBUlUsZUFBZTtrR0FBZixlQUFlLG9IQ3JCNUIsNEhBR0EscUdEWUksZUFBZSxrSUFDZixXQUFXOzsyRkFLRixlQUFlO2tCQVYzQixTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixXQUFXO3FCQUNaOzhCQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIHNpZ25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVuZGVyaW5nTW9kdWxlfSBmcm9tIFwiLi4vLi4vcmVuZGVyaW5nLm1vZHVsZVwiO1xuaW1wb3J0IHtSZW5kZXJNb2R1bGV9IGZyb20gXCIuLi9SZW5kZXJNb2R1bGVcIjtcbmltcG9ydCB7Tm9kZX0gZnJvbSBcIm5neC1lZHUtc2hhcmluZy1hcGlcIjtcbmltcG9ydCB7TWF0SWNvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcbmltcG9ydCB7TWF0SWNvbkJ1dHRvbn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHtNYXRPcHRpb24sIE1hdFNlbGVjdH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge1JlbmRlckRhdGEsIEFzc2V0U3RhdGVJdGVtfSBmcm9tIFwiLi4vLi4vZHRvL1JlbmRlckRhdGFcIjtcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy1tb2R1bGUtYmluZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFJlbmRlcmluZ01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JpbmRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9iaW5kZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEJpbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIFJlbmRlck1vZHVsZSwgQWZ0ZXJWaWV3SW5pdHtcbiAgQElucHV0KCkgZGF0YTogUmVuZGVyRGF0YSB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbm9kZTogTm9kZSB8IHVuZGVmaW5lZDtcbiAgYWN0aXZlT2JqZWN0ID0gc2lnbmFsPEFzc2V0U3RhdGVJdGVtIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBhbGxGaW5pc2hlZEl0ZW1zID0gdGhpcy5kYXRhPy5pdGVtcz8uZmlsdGVyKGl0ZW0gPT4gaXRlbS5saW5rICE9PSBcIlwiKVxuICAgIHRoaXMuYWN0aXZlT2JqZWN0LnNldChhbGxGaW5pc2hlZEl0ZW1zPy5bMF0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYmluZGVyLXdyYXBwZXJcIiAqbmdJZj1cImFjdGl2ZU9iamVjdCgpXCI+XG4gIDxhIFtocmVmXT1cImFjdGl2ZU9iamVjdCgpPy5saW5rXCI+TGluayB0byBvYmplY3Q8L2E+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component, HostListener, Input, signal } from '@angular/core';
|
|
2
|
+
import { RenderingModule } from "../../rendering.module";
|
|
3
|
+
import { MatIcon } from "@angular/material/icon";
|
|
4
|
+
import { MatButtonModule } from "@angular/material/button";
|
|
5
|
+
import { FormsModule } from "@angular/forms";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@angular/material/button";
|
|
9
|
+
export class DdbComponent {
|
|
10
|
+
constructor(element) {
|
|
11
|
+
this.element = element;
|
|
12
|
+
this.activeObject = signal(undefined);
|
|
13
|
+
}
|
|
14
|
+
ngAfterViewInit() {
|
|
15
|
+
this.loadOptimalSize();
|
|
16
|
+
}
|
|
17
|
+
loadOptimalSize() {
|
|
18
|
+
console.log("INIT load optimal size for DDB");
|
|
19
|
+
const size = this.element.nativeElement.getBoundingClientRect();
|
|
20
|
+
if (this.data?.items !== undefined && this.data?.items[0].additionalData !== undefined) {
|
|
21
|
+
const additionalData = this.data?.items[0].additionalData;
|
|
22
|
+
console.log("Add data");
|
|
23
|
+
console.log(additionalData);
|
|
24
|
+
const keys = Object.keys(additionalData);
|
|
25
|
+
console.log("All keys");
|
|
26
|
+
console.log(keys);
|
|
27
|
+
const sizeKeys = keys.filter(key => key.startsWith("size_"));
|
|
28
|
+
console.log("size keys");
|
|
29
|
+
console.log(sizeKeys);
|
|
30
|
+
const sizes = sizeKeys.map(key => additionalData[key]);
|
|
31
|
+
console.log("sizes");
|
|
32
|
+
console.log(sizes);
|
|
33
|
+
const matchingSize = sizes.sort((a, b) => {
|
|
34
|
+
return Math.abs(parseInt(a.split(',')[0]) - size.width) > Math.abs(parseInt(b.split(',')[0]) - size.width) ? 1 : -1;
|
|
35
|
+
})[0];
|
|
36
|
+
console.log("matching size");
|
|
37
|
+
console.log(matchingSize);
|
|
38
|
+
const width = matchingSize.split(',')[0];
|
|
39
|
+
console.log("width");
|
|
40
|
+
console.log(width);
|
|
41
|
+
const height = matchingSize.split(',')[1];
|
|
42
|
+
console.log("height");
|
|
43
|
+
console.log(height);
|
|
44
|
+
const widthPlaceHolder = additionalData["widthPlaceHolder"] ?? "";
|
|
45
|
+
console.log("widthPlaceholder");
|
|
46
|
+
console.log(widthPlaceHolder);
|
|
47
|
+
const heightPlaceHolder = additionalData["heightPlaceHolder"] ?? "";
|
|
48
|
+
console.log("heightPlaceHolder");
|
|
49
|
+
console.log(heightPlaceHolder);
|
|
50
|
+
const linkTemplate = additionalData["linkTemplate"] ?? "";
|
|
51
|
+
console.log("linkTemplate");
|
|
52
|
+
console.log(linkTemplate);
|
|
53
|
+
const link = linkTemplate.replace(widthPlaceHolder, width).replace(heightPlaceHolder, height);
|
|
54
|
+
console.log("Final link");
|
|
55
|
+
console.log(link);
|
|
56
|
+
this.activeObject.set(link);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
toggleFullscreen() {
|
|
60
|
+
if (document.fullscreenElement) {
|
|
61
|
+
document.exitFullscreen();
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.element.nativeElement.requestFullscreen();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DdbComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: DdbComponent, isStandalone: true, selector: "rs-module-ddb", inputs: { data: "data", node: "node" }, host: { listeners: { "document:fullscreenchange": "loadOptimalSize()" } }, ngImport: i0, template: "<div class=\"ddb-wrapper\" *ngIf=\"activeObject()\">\n <img\n [src]=\"activeObject()\"\n [alt]=\"node?.title || node?.name || ''\"\n >\n <button mat-icon-button (click)=\"toggleFullscreen()\"><mat-icon>fullscreen</mat-icon></button>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center}.ddb-wrapper{width:100%}.ddb-wrapper img{width:100%;position:relative}.ddb-wrapper button{position:absolute;right:0;color:#fff;background-color:#00000080}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DdbComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'rs-module-ddb', standalone: true, imports: [
|
|
73
|
+
RenderingModule,
|
|
74
|
+
MatButtonModule,
|
|
75
|
+
FormsModule,
|
|
76
|
+
MatIcon,
|
|
77
|
+
], template: "<div class=\"ddb-wrapper\" *ngIf=\"activeObject()\">\n <img\n [src]=\"activeObject()\"\n [alt]=\"node?.title || node?.name || ''\"\n >\n <button mat-icon-button (click)=\"toggleFullscreen()\"><mat-icon>fullscreen</mat-icon></button>\n</div>\n", styles: [":host{position:relative;display:flex;align-items:center}.ddb-wrapper{width:100%}.ddb-wrapper img{width:100%;position:relative}.ddb-wrapper button{position:absolute;right:0;color:#fff;background-color:#00000080}\n"] }]
|
|
78
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { data: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], node: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], loadOptimalSize: [{
|
|
83
|
+
type: HostListener,
|
|
84
|
+
args: ['document:fullscreenchange']
|
|
85
|
+
}] } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGRiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kdWxlL2RkYi9kZGIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2R1bGUvZGRiL2RkYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFHdkQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFFeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBZ0IzQyxNQUFNLE9BQU8sWUFBWTtJQUt2QixZQUFtQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRnRDLGlCQUFZLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztJQUVYLENBQUM7SUFFM0MsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBR08sZUFBZTtRQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUE7UUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNoRSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkYsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxL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LENBQUMsQ0FBQTtZQUN6QixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUM3RixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFHLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlCLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7OEdBN0RVLFlBQVk7a0dBQVosWUFBWSw0TEN2QnpCLDZQQU9BLDZRRFFJLGVBQWUsa0lBQ2YsZUFBZSwySUFDZixXQUFXLCtCQUNYLE9BQU87OzJGQUtFLFlBQVk7a0JBWnhCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxPQUFPO3FCQUNSOytFQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBVUUsZUFBZTtzQkFEdEIsWUFBWTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgc2lnbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZW5kZXJpbmdNb2R1bGV9IGZyb20gXCIuLi8uLi9yZW5kZXJpbmcubW9kdWxlXCI7XG5pbXBvcnQge1JlbmRlck1vZHVsZX0gZnJvbSBcIi4uL1JlbmRlck1vZHVsZVwiO1xuaW1wb3J0IHtOb2RlfSBmcm9tIFwibmd4LWVkdS1zaGFyaW5nLWFwaVwiO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25CdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7TWF0T3B0aW9uLCBNYXRTZWxlY3R9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtSZW5kZXJEYXRhLCBBc3NldFN0YXRlSXRlbX0gZnJvbSBcIi4uLy4uL2R0by9SZW5kZXJEYXRhXCI7XG5pbXBvcnQge01hdE1lbnUsIE1hdE1lbnVJdGVtLCBNYXRNZW51VHJpZ2dlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtbW9kdWxlLWRkYicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSZW5kZXJpbmdNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEljb24sXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kZGIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGRiLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBEZGJDb21wb25lbnQgaW1wbGVtZW50cyBSZW5kZXJNb2R1bGUsIEFmdGVyVmlld0luaXR7XG4gIEBJbnB1dCgpIGRhdGE6IFJlbmRlckRhdGEgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGUgfCB1bmRlZmluZWQ7XG4gIGFjdGl2ZU9iamVjdCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRPcHRpbWFsU2l6ZSgpXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpmdWxsc2NyZWVuY2hhbmdlJylcbiAgcHJpdmF0ZSBsb2FkT3B0aW1hbFNpemUoKSB7XG4gICAgY29uc29sZS5sb2coXCJJTklUIGxvYWQgb3B0aW1hbCBzaXplIGZvciBEREJcIilcbiAgICBjb25zdCBzaXplID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaWYgKHRoaXMuZGF0YT8uaXRlbXMgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRhdGE/Lml0ZW1zWzBdLmFkZGl0aW9uYWxEYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGFkZGl0aW9uYWxEYXRhID0gdGhpcy5kYXRhPy5pdGVtc1swXS5hZGRpdGlvbmFsRGF0YVxuICAgICAgY29uc29sZS5sb2coXCJBZGQgZGF0YVwiKVxuICAgICAgY29uc29sZS5sb2coYWRkaXRpb25hbERhdGEpXG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoYWRkaXRpb25hbERhdGEpXG4gICAgICBjb25zb2xlLmxvZyhcIkFsbCBrZXlzXCIpXG4gICAgICBjb25zb2xlLmxvZyhrZXlzKVxuICAgICAgY29uc3Qgc2l6ZUtleXMgPSBrZXlzLmZpbHRlcihrZXkgPT4ga2V5LnN0YXJ0c1dpdGgoXCJzaXplX1wiKSlcbiAgICAgIGNvbnNvbGUubG9nKFwic2l6ZSBrZXlzXCIpXG4gICAgICBjb25zb2xlLmxvZyhzaXplS2V5cylcbiAgICAgIGNvbnN0IHNpemVzID0gc2l6ZUtleXMubWFwKGtleSA9PiBhZGRpdGlvbmFsRGF0YVtrZXldKVxuICAgICAgY29uc29sZS5sb2coXCJzaXplc1wiKVxuICAgICAgY29uc29sZS5sb2coc2l6ZXMpXG4gICAgICBjb25zdCBtYXRjaGluZ1NpemUgPSBzaXplcy5zb3J0KChhLGIpID0+IHtcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKHBhcnNlSW50KGEuc3BsaXQoJywnKVswXSkgLSBzaXplLndpZHRoKSA+IE1hdGguYWJzKHBhcnNlSW50KGIuc3BsaXQoJywnKVswXSkgLSBzaXplLndpZHRoKSA/IDEgOiAtMTtcbiAgICAgIH0pWzBdXG4gICAgICBjb25zb2xlLmxvZyhcIm1hdGNoaW5nIHNpemVcIilcbiAgICAgIGNvbnNvbGUubG9nKG1hdGNoaW5nU2l6ZSlcbiAgICAgIGNvbnN0IHdpZHRoID0gbWF0Y2hpbmdTaXplLnNwbGl0KCcsJylbMF1cbiAgICAgIGNvbnNvbGUubG9nKFwid2lkdGhcIilcbiAgICAgIGNvbnNvbGUubG9nKHdpZHRoKVxuICAgICAgY29uc3QgaGVpZ2h0ID0gbWF0Y2hpbmdTaXplLnNwbGl0KCcsJylbMV1cbiAgICAgIGNvbnNvbGUubG9nKFwiaGVpZ2h0XCIpXG4gICAgICBjb25zb2xlLmxvZyhoZWlnaHQpXG4gICAgICBjb25zdCB3aWR0aFBsYWNlSG9sZGVyID0gYWRkaXRpb25hbERhdGFbXCJ3aWR0aFBsYWNlSG9sZGVyXCJdID8/IFwiXCJcbiAgICAgIGNvbnNvbGUubG9nKFwid2lkdGhQbGFjZWhvbGRlclwiKVxuICAgICAgY29uc29sZS5sb2cod2lkdGhQbGFjZUhvbGRlcilcbiAgICAgIGNvbnN0IGhlaWdodFBsYWNlSG9sZGVyID0gYWRkaXRpb25hbERhdGFbXCJoZWlnaHRQbGFjZUhvbGRlclwiXSA/PyBcIlwiXG4gICAgICBjb25zb2xlLmxvZyhcImhlaWdodFBsYWNlSG9sZGVyXCIpXG4gICAgICBjb25zb2xlLmxvZyhoZWlnaHRQbGFjZUhvbGRlcilcbiAgICAgIGNvbnN0IGxpbmtUZW1wbGF0ZSA9IGFkZGl0aW9uYWxEYXRhW1wibGlua1RlbXBsYXRlXCJdID8/IFwiXCJcbiAgICAgIGNvbnNvbGUubG9nKFwibGlua1RlbXBsYXRlXCIpXG4gICAgICBjb25zb2xlLmxvZyhsaW5rVGVtcGxhdGUpXG4gICAgICBjb25zdCBsaW5rID0gbGlua1RlbXBsYXRlLnJlcGxhY2Uod2lkdGhQbGFjZUhvbGRlciwgd2lkdGgpLnJlcGxhY2UoaGVpZ2h0UGxhY2VIb2xkZXIsIGhlaWdodClcbiAgICAgIGNvbnNvbGUubG9nKFwiRmluYWwgbGlua1wiKVxuICAgICAgY29uc29sZS5sb2cobGluaylcbiAgICAgIHRoaXMuYWN0aXZlT2JqZWN0LnNldChsaW5rKVxuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUZ1bGxzY3JlZW4oKSB7XG4gICAgaWYoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHtcbiAgICAgIGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGRiLXdyYXBwZXJcIiAqbmdJZj1cImFjdGl2ZU9iamVjdCgpXCI+XG4gIDxpbWdcbiAgICBbc3JjXT1cImFjdGl2ZU9iamVjdCgpXCJcbiAgICBbYWx0XT1cIm5vZGU/LnRpdGxlIHx8IG5vZGU/Lm5hbWUgfHwgJydcIlxuICA+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIj48bWF0LWljb24+ZnVsbHNjcmVlbjwvbWF0LWljb24+PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -44,7 +44,8 @@ export class RenderComponent {
|
|
|
44
44
|
link: item.link,
|
|
45
45
|
progress: 100,
|
|
46
46
|
height: item.height,
|
|
47
|
-
width: item.width
|
|
47
|
+
width: item.width,
|
|
48
|
+
additionalData: undefined
|
|
48
49
|
};
|
|
49
50
|
return assetItem;
|
|
50
51
|
});
|
|
@@ -65,7 +66,8 @@ export class RenderComponent {
|
|
|
65
66
|
link: subJob.objectLink?.link ?? "",
|
|
66
67
|
progress: subJob.status !== 'QUEUED' ? subJob.progress : -(subJob.progress + 1),
|
|
67
68
|
height: subJob.objectLink?.height ?? subJob.quality,
|
|
68
|
-
width: subJob.objectLink?.width ?? 0
|
|
69
|
+
width: subJob.objectLink?.width ?? 0,
|
|
70
|
+
additionalData: subJob.additionalData
|
|
69
71
|
};
|
|
70
72
|
return assetItem;
|
|
71
73
|
});
|
|
@@ -83,7 +85,8 @@ export class RenderComponent {
|
|
|
83
85
|
link: subJob.objectLink?.link ?? "",
|
|
84
86
|
progress: subJob.progress,
|
|
85
87
|
height: subJob.objectLink?.height ?? subJob.quality,
|
|
86
|
-
width: subJob.objectLink?.width ?? 0
|
|
88
|
+
width: subJob.objectLink?.width ?? 0,
|
|
89
|
+
additionalData: subJob.additionalData
|
|
87
90
|
};
|
|
88
91
|
return assetItem;
|
|
89
92
|
});
|
|
@@ -171,9 +174,9 @@ export class RenderComponent {
|
|
|
171
174
|
return "default";
|
|
172
175
|
}
|
|
173
176
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderComponent, deps: [{ token: i0.Injector }, { token: i1.RenderControllerWrapperService }, { token: i1.JobInfoControllerService }, { token: i2.ModuleInfoService }, { token: i3.PlatformLocation }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
174
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: RenderComponent, isStandalone: true, selector: "rs-root", inputs: { request: "request", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"module module-{{(renderData$ | async)?.module}}\">\n <ng-container *ngIf=\"renderData$ | async as data\">\n @defer (when data?.module === 'IMAGE'){\n <rs-module-image [data]=\"data\" [node]=\"node\"></rs-module-image>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'VIDEO'){\n <rs-module-video [data]=\"data\" [node]=\"node\"></rs-module-video>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'PDF' || data?.module === 'DOCUMENT') {\n <rs-module-pdf [data]=\"data\" [node]=\"node\"></rs-module-pdf>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'EDUHTML' || data?.module === 'H5P' || data?.module === 'JUPYTER') {\n <rs-module-eduHtml [data]=\"data\" [node]=\"node\"></rs-module-eduHtml>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'SPREADSHEET') {\n <rs-module-spreadsheet [data]=\"data\" [node]=\"node\"></rs-module-spreadsheet>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'AUDIO'){\n <rs-module-audio [data]=\"data\" [node]=\"node\"></rs-module-audio>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'BINDER'){\n <rs-module-binder [data]=\"data\" [node]=\"node\"></rs-module-binder>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n <ng-container *ngIf=\"data.module === 'default'\">\n @defer (when data.module === 'default') {\n <rs-module-default [node]=\"node\"></rs-module-default>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'url'\">\n @defer (when data.module === 'url') {\n <rs-module-url [node]=\"node\" [data]=\"data\"></rs-module-url>\n }\n </ng-container>\n </ng-container>\n\n <div class=\"progress\" *ngIf=\"(renderData$ | async) === null;\">\n <ng-container *ngIf=\"progress$ | async as progress\">\n <ng-container [ngSwitch]=\"['VIDEO', 'AUDIO'].includes(progress.module) ? 'bar' : 'spinner'\">\n <ng-container *ngSwitchCase=\"'bar'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}}</div>\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-progress-bar>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}</div>\n <mat-spinner [diameter]=\"50\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-spinner>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loading>\n <div class=\"progress\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:20px;padding:10px 30px}.module{overflow:auto;display:flex;flex-grow:1;height:auto;border:1px solid #aaa;padding:20px}.module rs-module-image,.module rs-module-video{width:100%}.module .progress{display:flex;justify-content:center;flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: RenderingApiModule }, { kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], deferBlockDependencies: [() => [import("./module/image/image.component").then(m => m.ImageComponent)], () => [import("./module/video/video.component").then(m => m.VideoComponent)], () => [import("./module/pdf/pdf.component").then(m => m.PdfComponent)], () => [import("./module/eduhtml/eduHtml.component").then(m => m.EduHtmlComponent)], () => [import("./module/spreadsheet/spreadsheet.component").then(m => m.SpreadsheetComponent)], () => [import("./module/audio/audio.component").then(m => m.AudioComponent)], () => [import("./module/binder/binder.component").then(m => m.BinderComponent)], () => [import("./module/default/default.component").then(m => m.DefaultComponent)], () => [import("./module/url/url.component").then(m => m.UrlComponent)]] }); }
|
|
177
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: RenderComponent, isStandalone: true, selector: "rs-root", inputs: { request: "request", node: "node" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"module module-{{(renderData$ | async)?.module}}\">\n <ng-container *ngIf=\"renderData$ | async as data\">\n @defer (when data?.module === 'IMAGE'){\n <rs-module-image [data]=\"data\" [node]=\"node\"></rs-module-image>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'VIDEO'){\n <rs-module-video [data]=\"data\" [node]=\"node\"></rs-module-video>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'PDF' || data?.module === 'DOCUMENT') {\n <rs-module-pdf [data]=\"data\" [node]=\"node\"></rs-module-pdf>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'EDUHTML' || data?.module === 'H5P' || data?.module === 'JUPYTER') {\n <rs-module-eduHtml [data]=\"data\" [node]=\"node\"></rs-module-eduHtml>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'SPREADSHEET') {\n <rs-module-spreadsheet [data]=\"data\" [node]=\"node\"></rs-module-spreadsheet>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'AUDIO'){\n <rs-module-audio [data]=\"data\" [node]=\"node\"></rs-module-audio>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'BINDER'){\n <rs-module-binder [data]=\"data\" [node]=\"node\"></rs-module-binder>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'DDB'){\n <rs-module-ddb [data]=\"data\" [node]=\"node\"></rs-module-ddb>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n <ng-container *ngIf=\"data.module === 'default'\">\n @defer (when data.module === 'default') {\n <rs-module-default [node]=\"node\"></rs-module-default>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'url'\">\n @defer (when data.module === 'url') {\n <rs-module-url [node]=\"node\" [data]=\"data\"></rs-module-url>\n }\n </ng-container>\n </ng-container>\n\n <div class=\"progress\" *ngIf=\"(renderData$ | async) === null;\">\n <ng-container *ngIf=\"progress$ | async as progress\">\n <ng-container [ngSwitch]=\"['VIDEO', 'AUDIO'].includes(progress.module) ? 'bar' : 'spinner'\">\n <ng-container *ngSwitchCase=\"'bar'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}}</div>\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-progress-bar>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}</div>\n <mat-spinner [diameter]=\"50\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-spinner>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loading>\n <div class=\"progress\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:20px;padding:10px 30px}.module{overflow:auto;display:flex;flex-grow:1;height:auto;border:1px solid #aaa;padding:20px}.module rs-module-image,.module rs-module-video{width:100%}.module .progress{display:flex;justify-content:center;flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: RenderingApiModule }, { kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], deferBlockDependencies: [() => [import("./module/image/image.component").then(m => m.ImageComponent)], () => [import("./module/video/video.component").then(m => m.VideoComponent)], () => [import("./module/pdf/pdf.component").then(m => m.PdfComponent)], () => [import("./module/eduhtml/eduHtml.component").then(m => m.EduHtmlComponent)], () => [import("./module/spreadsheet/spreadsheet.component").then(m => m.SpreadsheetComponent)], () => [import("./module/audio/audio.component").then(m => m.AudioComponent)], () => [import("./module/binder/binder.component").then(m => m.BinderComponent)], () => [import("./module/ddb/ddb.component").then(m => m.DdbComponent)], () => [import("./module/default/default.component").then(m => m.DefaultComponent)], () => [import("./module/url/url.component").then(m => m.UrlComponent)]] }); }
|
|
175
178
|
}
|
|
176
|
-
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.2.6", ngImport: i0, type: RenderComponent, resolveDeferredDeps: () => [import("./module/image/image.component").then(m => m.ImageComponent), import("./module/video/video.component").then(m => m.VideoComponent), import("./module/pdf/pdf.component").then(m => m.PdfComponent), import("./module/eduhtml/eduHtml.component").then(m => m.EduHtmlComponent), import("./module/spreadsheet/spreadsheet.component").then(m => m.SpreadsheetComponent), import("./module/audio/audio.component").then(m => m.AudioComponent), import("./module/binder/binder.component").then(m => m.BinderComponent), import("./module/default/default.component").then(m => m.DefaultComponent), import("./module/url/url.component").then(m => m.UrlComponent)], resolveMetadata: (ImageComponent, VideoComponent, PdfComponent, EduHtmlComponent, SpreadsheetComponent, AudioComponent, BinderComponent, DefaultComponent, UrlComponent) => ({ decorators: [{
|
|
179
|
+
i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.2.6", ngImport: i0, type: RenderComponent, resolveDeferredDeps: () => [import("./module/image/image.component").then(m => m.ImageComponent), import("./module/video/video.component").then(m => m.VideoComponent), import("./module/pdf/pdf.component").then(m => m.PdfComponent), import("./module/eduhtml/eduHtml.component").then(m => m.EduHtmlComponent), import("./module/spreadsheet/spreadsheet.component").then(m => m.SpreadsheetComponent), import("./module/audio/audio.component").then(m => m.AudioComponent), import("./module/binder/binder.component").then(m => m.BinderComponent), import("./module/ddb/ddb.component").then(m => m.DdbComponent), import("./module/default/default.component").then(m => m.DefaultComponent), import("./module/url/url.component").then(m => m.UrlComponent)], resolveMetadata: (ImageComponent, VideoComponent, PdfComponent, EduHtmlComponent, SpreadsheetComponent, AudioComponent, BinderComponent, DdbComponent, DefaultComponent, UrlComponent) => ({ decorators: [{
|
|
177
180
|
type: Component,
|
|
178
181
|
args: [{ selector: 'rs-root', standalone: true, imports: [
|
|
179
182
|
RenderingApiModule,
|
|
@@ -189,10 +192,11 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "18.2.6", ng
|
|
|
189
192
|
DefaultComponent,
|
|
190
193
|
AudioComponent,
|
|
191
194
|
BinderComponent,
|
|
192
|
-
|
|
195
|
+
DdbComponent,
|
|
196
|
+
], template: "<div class=\"module module-{{(renderData$ | async)?.module}}\">\n <ng-container *ngIf=\"renderData$ | async as data\">\n @defer (when data?.module === 'IMAGE'){\n <rs-module-image [data]=\"data\" [node]=\"node\"></rs-module-image>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'VIDEO'){\n <rs-module-video [data]=\"data\" [node]=\"node\"></rs-module-video>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'PDF' || data?.module === 'DOCUMENT') {\n <rs-module-pdf [data]=\"data\" [node]=\"node\"></rs-module-pdf>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'EDUHTML' || data?.module === 'H5P' || data?.module === 'JUPYTER') {\n <rs-module-eduHtml [data]=\"data\" [node]=\"node\"></rs-module-eduHtml>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'SPREADSHEET') {\n <rs-module-spreadsheet [data]=\"data\" [node]=\"node\"></rs-module-spreadsheet>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'AUDIO'){\n <rs-module-audio [data]=\"data\" [node]=\"node\"></rs-module-audio>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'BINDER'){\n <rs-module-binder [data]=\"data\" [node]=\"node\"></rs-module-binder>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n @defer (when data?.module === 'DDB'){\n <rs-module-ddb [data]=\"data\" [node]=\"node\"></rs-module-ddb>\n } @loading {\n <ng-container *ngTemplateOutlet=\"loading\"></ng-container>\n }\n <ng-container *ngIf=\"data.module === 'default'\">\n @defer (when data.module === 'default') {\n <rs-module-default [node]=\"node\"></rs-module-default>\n }\n </ng-container>\n <ng-container *ngIf=\"data.module === 'url'\">\n @defer (when data.module === 'url') {\n <rs-module-url [node]=\"node\" [data]=\"data\"></rs-module-url>\n }\n </ng-container>\n </ng-container>\n\n <div class=\"progress\" *ngIf=\"(renderData$ | async) === null;\">\n <ng-container *ngIf=\"progress$ | async as progress\">\n <ng-container [ngSwitch]=\"['VIDEO', 'AUDIO'].includes(progress.module) ? 'bar' : 'spinner'\">\n <ng-container *ngSwitchCase=\"'bar'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}}</div>\n <mat-progress-bar [value]=\"(progress.progress ?? 0)\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-progress-bar>\n </ng-container>\n <ng-container *ngSwitchCase=\"'spinner'\">\n <div *ngIf=\"(progress.progress ?? 0) < 0\">Queue position: {{-(progress.progress ?? 0)}</div>\n <mat-spinner [diameter]=\"50\" *ngIf=\"(progress.progress ?? 0) >= 0\"></mat-spinner>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loading>\n <div class=\"progress\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;gap:20px;padding:10px 30px}.module{overflow:auto;display:flex;flex-grow:1;height:auto;border:1px solid #aaa;padding:20px}.module rs-module-image,.module rs-module-video{width:100%}.module .progress{display:flex;justify-content:center;flex-grow:1}\n"] }]
|
|
193
197
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.RenderControllerWrapperService }, { type: i1.JobInfoControllerService }, { type: i2.ModuleInfoService }, { type: i3.PlatformLocation }], propDecorators: { request: [{
|
|
194
198
|
type: Input
|
|
195
199
|
}], node: [{
|
|
196
200
|
type: Input
|
|
197
201
|
}] } }) });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVksS0FBSyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFNbkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1RyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQU9wRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUE0QnRDLE1BQU0sT0FBTyxlQUFlO0lBVzFCLFlBQ1UsUUFBa0IsRUFDbEIsdUJBQXVELEVBQ3ZELHdCQUFrRCxFQUNsRCxpQkFBb0MsRUFDcEMsZ0JBQWtDO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFnQztRQUN2RCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVo1Qyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxD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b25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZW5kZXJpbmdNb2R1bGV9IGZyb20gXCIuL3JlbmRlcmluZy5tb2R1bGVcIjtcbmltcG9ydCB7XG4gIEpvYkluZm9Db250cm9sbGVyU2VydmljZSxcbiAgUmVuZGVyQ29udHJvbGxlcldyYXBwZXJTZXJ2aWNlLFxuICBSZW5kZXJEYXRhUmVxdWVzdFdpdGhUb2tlblxufSBmcm9tIFwibmd4LXJlbmRlcmluZy1zZXJ2aWNlLWFwaVwiO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlyc3RWYWx1ZUZyb20sIGludGVydmFsLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7SW1hZ2VDb21wb25lbnR9IGZyb20gXCIuL21vZHVsZS9pbWFnZS9pbWFnZS5jb21wb25lbnRcIjtcbmltcG9ydCB7UmVuZGVyaW5nQXBpTW9kdWxlfSBmcm9tIFwiLi9yZW5kZXJpbmctYXBpLm1vZHVsZVwiO1xuaW1wb3J0IHtWaWRlb0NvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL3ZpZGVvL3ZpZGVvLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XG5pbXBvcnQge05vZGV9IGZyb20gXCJuZ3gtZWR1LXNoYXJpbmctYXBpXCI7XG5pbXBvcnQge01hdFByb2dyZXNzQmFyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyXCI7XG5pbXBvcnQge1JlbmRlckRhdGEsIEFzc2V0U3RhdGVJdGVtfSBmcm9tIFwiLi9kdG8vUmVuZGVyRGF0YVwiO1xuaW1wb3J0IHtQZGZDb21wb25lbnR9IGZyb20gXCIuL21vZHVsZS9wZGYvcGRmLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtVcmxDb21wb25lbnR9IGZyb20gXCIuL21vZHVsZS91cmwvdXJsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtFZHVIdG1sQ29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvZWR1aHRtbC9lZHVIdG1sLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTcHJlYWRzaGVldENvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL3NwcmVhZHNoZWV0L3NwcmVhZHNoZWV0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNb2R1bGVJbmZvU2VydmljZX0gZnJvbSBcIi4uL21vZHVsZS1pbmZvLnNlcnZpY2VcIjtcbmltcG9ydCB7ZmlsdGVyfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7UGxhdGZvcm1Mb2NhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtEZWZhdWx0Q29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvZGVmYXVsdC9kZWZhdWx0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtGcm9udGVuZE1vZHVsZUNvbmZpZ30gZnJvbSBcIi4vZHRvL0Zyb250ZW5kTW9kdWxlQ29uZmlnXCI7XG5pbXBvcnQge0F1ZGlvQ29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvYXVkaW8vYXVkaW8uY29tcG9uZW50XCI7XG5pbXBvcnQge0JpbmRlckNvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL2JpbmRlci9iaW5kZXIuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLXJvb3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUmVuZGVyaW5nQXBpTW9kdWxlLFxuICAgIFJlbmRlcmluZ01vZHVsZSxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBWaWRlb0NvbXBvbmVudCxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgUGRmQ29tcG9uZW50LFxuICAgIFVybENvbXBvbmVudCxcbiAgICBFZHVIdG1sQ29tcG9uZW50LFxuICAgIFNwcmVhZHNoZWV0Q29tcG9uZW50LFxuICAgIERlZmF1bHRDb21wb25lbnQsXG4gICAgQXVkaW9Db21wb25lbnQsXG4gICAgQmluZGVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVuZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3JlbmRlci5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgUmVuZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAvLyBAVE9ETzogVXNlIGVudW0gcHJvdmlkZWQgYnkgQmFja2VuZCFcbiAgQElucHV0KCkgcmVxdWVzdDogUmVuZGVyRGF0YVJlcXVlc3RXaXRoVG9rZW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGUgfCB1bmRlZmluZWQ7XG4gIHNlcnZpY2VXb3JrZXJSZWFkeSA9IGZhbHNlO1xuICBsb2FkRGF0YSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHJlbmRlckRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZW5kZXJEYXRhIHwgbnVsbD4obnVsbCk7XG4gIGZpbmlzaGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgc29tZUJ1dE5vdEFsbEZpbmlzaGVkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKVxuICBwcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgbW9kdWxlOiBzdHJpbmcsIHByb2dyZXNzPzogbnVtYmVyIH0gfCBudWxsPihudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIHJlbmRlckNvbnRyb2xsZXJTZXJ2aWNlOiBSZW5kZXJDb250cm9sbGVyV3JhcHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBqb2JJbmZvQ29udHJvbGxlclNlcnZpY2U6IEpvYkluZm9Db250cm9sbGVyU2VydmljZSxcbiAgICBwcml2YXRlIG1vZHVsZUluZm9TZXJ2aWNlOiBNb2R1bGVJbmZvU2VydmljZSxcbiAgICBwcml2YXRlIHBsYXRmb3JtTG9jYXRpb246IFBsYXRmb3JtTG9jYXRpb25cbiAgKSB7XG4gICAgdGhpcy5sb2FkRGF0YS5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMubm9kZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VydmljZVdvcmtlclJlYWR5KSxcbiAgICAgIGRlYm91bmNlVGltZSgxMCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge3JldHVybiB0aGlzLmNoZWNrTW9kdWxlKCl9KVxuICAgICkuc3Vic2NyaWJlKGFzeW5jIChmcm9udGVuZE1vZHVsZSkgPT4ge1xuICAgICAgaWYgKGZyb250ZW5kTW9kdWxlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRhdGE6IFJlbmRlckRhdGEgPSB7XG4gICAgICAgICAgbW9kdWxlOiBmcm9udGVuZE1vZHVsZS5tb2R1bGUsXG4gICAgICAgICAgZnJvbnRlbmRNb2R1bGVDb25maWc6IGZyb250ZW5kTW9kdWxlXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJEYXRhJC5uZXh0KGRhdGEpXG4gICAgICAgIHRoaXMuZmluaXNoZWQubmV4dCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByZW5kZXJSZXNwb25zZURhdGEgPSAoYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yZW5kZXJDb250cm9sbGVyU2VydmljZS5nZXRSZW5kZXJEYXRhVG9rZW4odGhpcy5yZXF1ZXN0ISEpKSk7XG4gICAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgY29tcGxldGVkIGRhdGEgQU5EIGEgam9iIGlkIChpZiB0aGVyZSkuXG4gICAgICAgIC8vIFdlIG5lZWQgdGhlIGRhdGEgdGhlbiBBTkQgdHJpZ2dlciB0aGUgcHJvZ3Jlc3MgbG9naWMgdG8ga2VlcCBsb2FkaW5nIHRoZSB1bmZpbmlzaGVkIHJlc29sdXRpb25zLlxuICAgICAgICBjb25zb2xlLmxvZyhyZW5kZXJSZXNwb25zZURhdGEpO1xuICAgICAgICBpZiAocmVuZGVyUmVzcG9uc2VEYXRhLmpvYklkID09PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSByZW5kZXJSZXNwb25zZURhdGEub2JqZWN0TGlua3M/Lm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgICAgICAgIGxpbms6IGl0ZW0ubGluayxcbiAgICAgICAgICAgICAgcHJvZ3Jlc3M6IDEwMCxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpdGVtLmhlaWdodCxcbiAgICAgICAgICAgICAgd2lkdGg6IGl0ZW0ud2lkdGhcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhc3NldEl0ZW1cbiAgICAgICAgICB9KVxuICAgICAgICAgIGNvbnN0IGRhdGE6IFJlbmRlckRhdGEgPSB7XG4gICAgICAgICAgICBtb2R1bGU6IHJlbmRlclJlc3BvbnNlRGF0YS5tb2R1bGUgPz8gJycsXG4gICAgICAgICAgICBpdGVtczogaXRlbXNcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVuZGVyUmVzcG9uc2VEYXRhLm9iamVjdExpbmtzICE9PSB1bmRlZmluZWQgJiYgdGhpcy5yZW5kZXJEYXRhJC5uZXh0KGRhdGEpO1xuICAgICAgICAgIHRoaXMuZmluaXNoZWQubmV4dCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucHJvZ3Jlc3MkLm5leHQoe21vZHVsZTogcmVuZGVyUmVzcG9uc2VEYXRhLm1vZHVsZSA/PyAnJ30pO1xuICAgICAgICAgIGludGVydmFsKDUwMCkucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmZpbmlzaGVkKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmpvYkluZm9Db250cm9sbGVyU2VydmljZS5nZXRKb2JJbmZvKHtqb2JJZDogcmVuZGVyUmVzcG9uc2VEYXRhLmpvYklkISF9KS5waXBlKCkpLFxuICAgICAgICAgICkuc3Vic2NyaWJlKGFzeW5jIChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgIC8vIFNvbWUsIGJ1dCBub3QgYWxsLCBqb2JzIGFyZSBmaW5pc2hlZCAtPlxuICAgICAgICAgICAgaWYgKHN0YXR1cy5qb2JzLnNvbWUoaiA9PiBqLnN0YXR1cyA9PT0gJ0ZJTklTSEVEJykgJiYgc3RhdHVzLnN0YXR1cyAhPT0gJ0ZJTklTSEVEJykge1xuICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHN0YXR1cy5qb2JzLm1hcChzdWJKb2IgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICBsaW5rOiBzdWJKb2Iub2JqZWN0TGluaz8ubGluayA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IHN1YkpvYi5zdGF0dXMgIT09ICdRVUVVRUQnID8gc3ViSm9iLnByb2dyZXNzIDogLShzdWJKb2IucHJvZ3Jlc3MgKyAxKSxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogc3ViSm9iLm9iamVjdExpbms/LmhlaWdodCA/PyBzdWJKb2IucXVhbGl0eSxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiBzdWJKb2Iub2JqZWN0TGluaz8ud2lkdGggPz8gMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYXNzZXRJdGVtXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGE6IFJlbmRlckRhdGEgPSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlOiByZW5kZXJSZXNwb25zZURhdGEubW9kdWxlID8/ICcnLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBpdGVtc1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRGF0YSQubmV4dChkYXRhKVxuICAgICAgICAgICAgICB0aGlzLnNvbWVCdXROb3RBbGxGaW5pc2hlZC5uZXh0KHRydWUpXG4gICAgICAgICAgICAgIC8vIGFsbCBmaW5pc2hlZCBhbmQvb3IgZmFpbGVkXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cy5zdGF0dXMgPT09ICdGSU5JU0hFRCcgfHwgc3RhdHVzLnN0YXR1cyA9PT0gJ0ZBSUxFRCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBzdGF0dXMuam9icy5tYXAoc3ViSm9iID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhc3NldEl0ZW06IEFzc2V0U3RhdGVJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgbGluazogc3ViSm9iLm9iamVjdExpbms/LmxpbmsgPz8gXCJcIixcbiAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBzdWJKb2IucHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IHN1YkpvYi5vYmplY3RMaW5rPy5oZWlnaHQgPz8gc3ViSm9iLnF1YWxpdHksXG4gICAgICAgICAgICAgICAgICB3aWR0aDogc3ViSm9iLm9iamVjdExpbms/LndpZHRoID8/IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBkYXRhOiBSZW5kZXJEYXRhID0ge1xuICAgICAgICAgICAgICAgIG1vZHVsZTogcmVuZGVyUmVzcG9uc2VEYXRhLm1vZHVsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpdGVtczogaXRlbXNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICAgICAgICAgICAgdGhpcy5maW5pc2hlZC5uZXh0KClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIG5vIGZpbmlzaGVkIGpvYnMgLT4gc2hvdyBlaXRoZXIgb25lIHByb2dyZXNzIGJhciB3aXRoIHJhY2UgbGVhZGVyIChwcm9ncmVzcyAwLTEwMClcbiAgICAgICAgICAgICAgLy8gb3IgcXVldWUgcG9zaXRpb24gKHByb2dyZXNzICgtaW5mLC0xXSlcbiAgICAgICAgICAgICAgbGV0IHByb2dyZXNzID0gMFxuICAgICAgICAgICAgICBpZiAoc3RhdHVzLmpvYnMuc29tZShqID0+IGouc3RhdHVzID09PSAnUFJPQ0VTU0lORycpKSB7XG4gICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBNYXRoLm1heCguLi5zdGF0dXMuam9icy5tYXAoaiA9PiBqLnByb2dyZXNzKSlcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMuam9icy5zb21lKGogPT4gai5zdGF0dXMgPT09ICdRVUVVRUQnKSkge1xuICAgICAgICAgICAgICAgIHByb2dyZXNzID0gLShNYXRoLm1pbiguLi5zdGF0dXMuam9icy5tYXAoaiA9PiBqLnByb2dyZXNzICsgMSkpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MkLm5leHQoe1xuICAgICAgICAgICAgICAgIG1vZHVsZTogc3RhdHVzLm1vZHVsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBwcm9ncmVzczogcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGlmICgnc2VydmljZVdvcmtlcicgaW4gbmF2aWdhdG9yKSB7XG4gICAgICBjb25zdCByZWcgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7XG4gICAgICBjb25zb2xlLmxvZygncmVnaXN0ZXJlZCB3b3JrZXJzICcsIHJlZz8ubGVuZ3RoKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHJlZz8ubWFwKChyOiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKSA9PiByLnVucmVnaXN0ZXIoKSkpO1xuICAgICAgY29uc29sZS5sb2coJ3JlZ2lzdGVyZWQgd29ya2VycyBhZnRlciB1bnJlZ2lzdGVyaW5nJywgcmVnPy5sZW5ndGgpO1xuICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIodGhpcy5wbGF0Zm9ybUxvY2F0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpICsgJ2VkdS1zZXJ2aWNlLXdvcmtlci5qcycsIHtcbiAgICAgICAgc2NvcGU6IHRoaXMucGxhdGZvcm1Mb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKVxuICAgICAgfSk7XG4gICAgICBjb25zb2xlLmxvZygnU2VydmljZSBXb3JrZXIgcmVnaXN0ZXJlZCcsIHJlZ2lzdHJhdGlvbik7XG4gICAgICBpZiAocmVnaXN0cmF0aW9uLndhaXRpbmcpIHtcbiAgICAgICAgcmVnaXN0cmF0aW9uLndhaXRpbmcucG9zdE1lc3NhZ2UoeyB0eXBlOiAnU0tJUF9XQUlUSU5HJyB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VydmljZVdvcmtlclJlYWR5ID0gdHJ1ZTtcbiAgICAgIHRoaXMubG9hZERhdGEubmV4dCgpO1xuICAgICAgcmVnaXN0cmF0aW9uLm9udXBkYXRlZm91bmQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nO1xuICAgICAgICBpZiAobmV3V29ya2VyKSB7XG4gICAgICAgICAgbmV3V29ya2VyLm9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3V29ya2VyLnN0YXRlID09PSAnaW5zdGFsbGVkJykge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTmV3IFNlcnZpY2UgV29ya2VyIHN0YXRlOiBpbnN0YWxsZWQnKTtcbiAgICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICBuZXdXb3JrZXIucG9zdE1lc3NhZ2UoeyB0eXBlOiAnU0tJUF9XQUlUSU5HJyB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignU2VydmljZSB3b3JrZXIgQVBJIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG4gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignY29udHJvbGxlcmNoYW5nZScsICgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdTZXJ2aWNlIFdvcmtlciBjb250cm9sbGluZyB0aGlzIHBhZ2UuJyk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5sb2FkRGF0YS5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBjaGVja01vZHVsZSgpOiBQcm9taXNlPEZyb250ZW5kTW9kdWxlQ29uZmlnIHwgbnVsbD4ge1xuICAgIGNvbnNvbGUubG9nKFwiQ2hlY2tpbmcgbW9kdWxlXCIpXG4gICAgaWYgKCEgYXdhaXQgdGhpcy5tb2R1bGVJbmZvU2VydmljZS5pc0F2YWlsYWJsZUJhY2tlbmRPYmplY3QodGhpcy5ub2RlKSkge1xuICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmcm9udGVuZCBvbmx5IG1vZHVsZVwiKVxuICAgICAgaWYgKHRoaXMubm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZHVsZUluZm9TZXJ2aWNlLmdldEZyb250ZW5kTW9kdWxlU2V0dGluZyh0aGlzLm5vZGUpXG4gICAgICB9XG4gICAgICByZXR1cm4ge21vZHVsZTogXCJkZWZhdWx0XCIsIHVybE1vZHVsZUNvbmZpZzogbnVsbH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBiYWNrZW5kIG1vZHVsZVwiKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICBnZXRGcm9udGVuZE1vZHVsZSgpOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIFwiZGVmYXVsdFwiXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2R1bGUgbW9kdWxlLXt7KHJlbmRlckRhdGEkIHwgYXN5bmMpPy5tb2R1bGV9fVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVuZGVyRGF0YSQgfCBhc3luYyBhcyBkYXRhXCI+XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0lNQUdFJyl7XG4gICAgICA8cnMtbW9kdWxlLWltYWdlIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtaW1hZ2U+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnVklERU8nKXtcbiAgICAgIDxycy1tb2R1bGUtdmlkZW8gW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS12aWRlbz5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdQREYnIHx8IGRhdGE/Lm1vZHVsZSA9PT0gJ0RPQ1VNRU5UJykge1xuICAgICAgPHJzLW1vZHVsZS1wZGYgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1wZGY+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnRURVSFRNTCcgfHwgZGF0YT8ubW9kdWxlID09PSAnSDVQJyB8fCBkYXRhPy5tb2R1bGUgPT09ICdKVVBZVEVSJykge1xuICAgICAgPHJzLW1vZHVsZS1lZHVIdG1sIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtZWR1SHRtbD5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdTUFJFQURTSEVFVCcpIHtcbiAgICAgIDxycy1tb2R1bGUtc3ByZWFkc2hlZXQgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1zcHJlYWRzaGVldD5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdBVURJTycpe1xuICAgICAgPHJzLW1vZHVsZS1hdWRpbyBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWF1ZGlvPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0JJTkRFUicpe1xuICAgICAgPHJzLW1vZHVsZS1iaW5kZXIgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1iaW5kZXI+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5tb2R1bGUgPT09ICdkZWZhdWx0J1wiPlxuICAgICAgQGRlZmVyICh3aGVuIGRhdGEubW9kdWxlID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgPHJzLW1vZHVsZS1kZWZhdWx0IFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1kZWZhdWx0PlxuICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLm1vZHVsZSA9PT0gJ3VybCdcIj5cbiAgICAgIEBkZWZlciAod2hlbiBkYXRhLm1vZHVsZSA9PT0gJ3VybCcpIHtcbiAgICAgICAgPHJzLW1vZHVsZS11cmwgW25vZGVdPVwibm9kZVwiIFtkYXRhXT1cImRhdGFcIj48L3JzLW1vZHVsZS11cmw+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiICpuZ0lmPVwiKHJlbmRlckRhdGEkIHwgYXN5bmMpID09PSBudWxsO1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9ncmVzcyQgfCBhc3luYyBhcyBwcm9ncmVzc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiWydWSURFTycsICdBVURJTyddLmluY2x1ZGVzKHByb2dyZXNzLm1vZHVsZSkgPyAnYmFyJyA6ICdzcGlubmVyJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYmFyJ1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCkgPCAwXCI+UXVldWUgcG9zaXRpb246IHt7LShwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKX19PC9kaXY+XG4gICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgW3ZhbHVlXT1cIihwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKVwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3Bpbm5lcidcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApIDwgMFwiPlF1ZXVlIHBvc2l0aW9uOiB7ey0ocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCl9PC9kaXY+XG4gICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI1MFwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1zcGlubmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxuICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQVksS0FBSyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFNbkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1RyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQU9wRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUE4QnRDLE1BQU0sT0FBTyxlQUFlO0lBVzFCLFlBQ1UsUUFBa0IsRUFDbEIsdUJBQXVELEVBQ3ZELHdCQUFrRCxFQUNsRCxpQkFBb0MsRUFDcEMsZ0JBQWtDO1FBSmxDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFnQztRQUN2RCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVo1Qyx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxD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QWU7NEJBQ2YsWUFBWTt5QkFDYjtvT0FNUSxPQUFPOzBCQUFmLEtBQUs7b0JBQ0csSUFBSTswQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZW5kZXJpbmdNb2R1bGV9IGZyb20gXCIuL3JlbmRlcmluZy5tb2R1bGVcIjtcbmltcG9ydCB7XG4gIEpvYkluZm9Db250cm9sbGVyU2VydmljZSxcbiAgUmVuZGVyQ29udHJvbGxlcldyYXBwZXJTZXJ2aWNlLFxuICBSZW5kZXJEYXRhUmVxdWVzdFdpdGhUb2tlblxufSBmcm9tIFwibmd4LXJlbmRlcmluZy1zZXJ2aWNlLWFwaVwiO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlyc3RWYWx1ZUZyb20sIGludGVydmFsLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7SW1hZ2VDb21wb25lbnR9IGZyb20gXCIuL21vZHVsZS9pbWFnZS9pbWFnZS5jb21wb25lbnRcIjtcbmltcG9ydCB7UmVuZGVyaW5nQXBpTW9kdWxlfSBmcm9tIFwiLi9yZW5kZXJpbmctYXBpLm1vZHVsZVwiO1xuaW1wb3J0IHtWaWRlb0NvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL3ZpZGVvL3ZpZGVvLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XG5pbXBvcnQge05vZGV9IGZyb20gXCJuZ3gtZWR1LXNoYXJpbmctYXBpXCI7XG5pbXBvcnQge01hdFByb2dyZXNzQmFyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyXCI7XG5pbXBvcnQge1JlbmRlckRhdGEsIEFzc2V0U3RhdGVJdGVtfSBmcm9tIFwiLi9kdG8vUmVuZGVyRGF0YVwiO1xuaW1wb3J0IHtQZGZDb21wb25lbnR9IGZyb20gXCIuL21vZHVsZS9wZGYvcGRmLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtVcmxDb21wb25lbnR9IGZyb20gXCIuL21vZHVsZS91cmwvdXJsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtFZHVIdG1sQ29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvZWR1aHRtbC9lZHVIdG1sLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTcHJlYWRzaGVldENvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL3NwcmVhZHNoZWV0L3NwcmVhZHNoZWV0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNb2R1bGVJbmZvU2VydmljZX0gZnJvbSBcIi4uL21vZHVsZS1pbmZvLnNlcnZpY2VcIjtcbmltcG9ydCB7ZmlsdGVyfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7UGxhdGZvcm1Mb2NhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtEZWZhdWx0Q29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvZGVmYXVsdC9kZWZhdWx0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtGcm9udGVuZE1vZHVsZUNvbmZpZ30gZnJvbSBcIi4vZHRvL0Zyb250ZW5kTW9kdWxlQ29uZmlnXCI7XG5pbXBvcnQge0F1ZGlvQ29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvYXVkaW8vYXVkaW8uY29tcG9uZW50XCI7XG5pbXBvcnQge0JpbmRlckNvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL2JpbmRlci9iaW5kZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge0RkYkNvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL2RkYi9kZGIuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLXJvb3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUmVuZGVyaW5nQXBpTW9kdWxlLFxuICAgIFJlbmRlcmluZ01vZHVsZSxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBWaWRlb0NvbXBvbmVudCxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgUGRmQ29tcG9uZW50LFxuICAgIFVybENvbXBvbmVudCxcbiAgICBFZHVIdG1sQ29tcG9uZW50LFxuICAgIFNwcmVhZHNoZWV0Q29tcG9uZW50LFxuICAgIERlZmF1bHRDb21wb25lbnQsXG4gICAgQXVkaW9Db21wb25lbnQsXG4gICAgQmluZGVyQ29tcG9uZW50LFxuICAgIERkYkNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlbmRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yZW5kZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgLy8gQFRPRE86IFVzZSBlbnVtIHByb3ZpZGVkIGJ5IEJhY2tlbmQhXG4gIEBJbnB1dCgpIHJlcXVlc3Q6IFJlbmRlckRhdGFSZXF1ZXN0V2l0aFRva2VuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBub2RlOiBOb2RlIHwgdW5kZWZpbmVkO1xuICBzZXJ2aWNlV29ya2VyUmVhZHkgPSBmYWxzZTtcbiAgbG9hZERhdGEgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICByZW5kZXJEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVuZGVyRGF0YSB8IG51bGw+KG51bGwpO1xuICBmaW5pc2hlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHNvbWVCdXROb3RBbGxGaW5pc2hlZCA9IG5ldyBTdWJqZWN0PEJvb2xlYW4+KClcbiAgcHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IG1vZHVsZTogc3RyaW5nLCBwcm9ncmVzcz86IG51bWJlciB9IHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZW5kZXJDb250cm9sbGVyU2VydmljZTogUmVuZGVyQ29udHJvbGxlcldyYXBwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgam9iSW5mb0NvbnRyb2xsZXJTZXJ2aWNlOiBKb2JJbmZvQ29udHJvbGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2R1bGVJbmZvU2VydmljZTogTW9kdWxlSW5mb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uXG4gICkge1xuICAgIHRoaXMubG9hZERhdGEucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLm5vZGUgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnNlcnZpY2VXb3JrZXJSZWFkeSksXG4gICAgICBkZWJvdW5jZVRpbWUoMTApLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtyZXR1cm4gdGhpcy5jaGVja01vZHVsZSgpfSlcbiAgICApLnN1YnNjcmliZShhc3luYyAoZnJvbnRlbmRNb2R1bGUpID0+IHtcbiAgICAgIGlmIChmcm9udGVuZE1vZHVsZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBkYXRhOiBSZW5kZXJEYXRhID0ge1xuICAgICAgICAgIG1vZHVsZTogZnJvbnRlbmRNb2R1bGUubW9kdWxlLFxuICAgICAgICAgIGZyb250ZW5kTW9kdWxlQ29uZmlnOiBmcm9udGVuZE1vZHVsZVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyRGF0YSQubmV4dChkYXRhKVxuICAgICAgICB0aGlzLmZpbmlzaGVkLm5leHQoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVuZGVyUmVzcG9uc2VEYXRhID0gKGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucmVuZGVyQ29udHJvbGxlclNlcnZpY2UuZ2V0UmVuZGVyRGF0YVRva2VuKHRoaXMucmVxdWVzdCEhKSkpO1xuICAgICAgICAvLyBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZXJlIGlzIGNvbXBsZXRlZCBkYXRhIEFORCBhIGpvYiBpZCAoaWYgdGhlcmUpLlxuICAgICAgICAvLyBXZSBuZWVkIHRoZSBkYXRhIHRoZW4gQU5EIHRyaWdnZXIgdGhlIHByb2dyZXNzIGxvZ2ljIHRvIGtlZXAgbG9hZGluZyB0aGUgdW5maW5pc2hlZCByZXNvbHV0aW9ucy5cbiAgICAgICAgY29uc29sZS5sb2cocmVuZGVyUmVzcG9uc2VEYXRhKTtcbiAgICAgICAgaWYgKHJlbmRlclJlc3BvbnNlRGF0YS5qb2JJZCA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gcmVuZGVyUmVzcG9uc2VEYXRhLm9iamVjdExpbmtzPy5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhc3NldEl0ZW06IEFzc2V0U3RhdGVJdGVtID0ge1xuICAgICAgICAgICAgICBsaW5rOiBpdGVtLmxpbmssXG4gICAgICAgICAgICAgIHByb2dyZXNzOiAxMDAsXG4gICAgICAgICAgICAgIGhlaWdodDogaXRlbS5oZWlnaHQsXG4gICAgICAgICAgICAgIHdpZHRoOiBpdGVtLndpZHRoLFxuICAgICAgICAgICAgICBhZGRpdGlvbmFsRGF0YTogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXNzZXRJdGVtXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBkYXRhOiBSZW5kZXJEYXRhID0ge1xuICAgICAgICAgICAgbW9kdWxlOiByZW5kZXJSZXNwb25zZURhdGEubW9kdWxlID8/ICcnLFxuICAgICAgICAgICAgaXRlbXM6IGl0ZW1zXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlbmRlclJlc3BvbnNlRGF0YS5vYmplY3RMaW5rcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMucmVuZGVyRGF0YSQubmV4dChkYXRhKTtcbiAgICAgICAgICB0aGlzLmZpbmlzaGVkLm5leHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnByb2dyZXNzJC5uZXh0KHttb2R1bGU6IHJlbmRlclJlc3BvbnNlRGF0YS5tb2R1bGUgPz8gJyd9KTtcbiAgICAgICAgICBpbnRlcnZhbCg1MDApLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5maW5pc2hlZCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5qb2JJbmZvQ29udHJvbGxlclNlcnZpY2UuZ2V0Sm9iSW5mbyh7am9iSWQ6IHJlbmRlclJlc3BvbnNlRGF0YS5qb2JJZCEhfSkucGlwZSgpKSxcbiAgICAgICAgICApLnN1YnNjcmliZShhc3luYyAoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAvLyBTb21lLCBidXQgbm90IGFsbCwgam9icyBhcmUgZmluaXNoZWQgLT5cbiAgICAgICAgICAgIGlmIChzdGF0dXMuam9icy5zb21lKGogPT4gai5zdGF0dXMgPT09ICdGSU5JU0hFRCcpICYmIHN0YXR1cy5zdGF0dXMgIT09ICdGSU5JU0hFRCcpIHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSBzdGF0dXMuam9icy5tYXAoc3ViSm9iID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhc3NldEl0ZW06IEFzc2V0U3RhdGVJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgbGluazogc3ViSm9iLm9iamVjdExpbms/LmxpbmsgPz8gXCJcIixcbiAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiBzdWJKb2Iuc3RhdHVzICE9PSAnUVVFVUVEJyA/IHN1YkpvYi5wcm9ncmVzcyA6IC0oc3ViSm9iLnByb2dyZXNzICsgMSksXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IHN1YkpvYi5vYmplY3RMaW5rPy5oZWlnaHQgPz8gc3ViSm9iLnF1YWxpdHksXG4gICAgICAgICAgICAgICAgICB3aWR0aDogc3ViSm9iLm9iamVjdExpbms/LndpZHRoID8/IDAsXG4gICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsRGF0YTogc3ViSm9iLmFkZGl0aW9uYWxEYXRhXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhc3NldEl0ZW1cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgZGF0YTogUmVuZGVyRGF0YSA9IHtcbiAgICAgICAgICAgICAgICBtb2R1bGU6IHJlbmRlclJlc3BvbnNlRGF0YS5tb2R1bGUgPz8gJycsXG4gICAgICAgICAgICAgICAgaXRlbXM6IGl0ZW1zXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJEYXRhJC5uZXh0KGRhdGEpXG4gICAgICAgICAgICAgIHRoaXMuc29tZUJ1dE5vdEFsbEZpbmlzaGVkLm5leHQodHJ1ZSlcbiAgICAgICAgICAgICAgLy8gYWxsIGZpbmlzaGVkIGFuZC9vciBmYWlsZWRcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzLnN0YXR1cyA9PT0gJ0ZJTklTSEVEJyB8fCBzdGF0dXMuc3RhdHVzID09PSAnRkFJTEVEJykge1xuICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHN0YXR1cy5qb2JzLm1hcChzdWJKb2IgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICBsaW5rOiBzdWJKb2Iub2JqZWN0TGluaz8ubGluayA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IHN1YkpvYi5wcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogc3ViSm9iLm9iamVjdExpbms/LmhlaWdodCA/PyBzdWJKb2IucXVhbGl0eSxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiBzdWJKb2Iub2JqZWN0TGluaz8ud2lkdGggPz8gMCxcbiAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxEYXRhOiBzdWJKb2IuYWRkaXRpb25hbERhdGFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBkYXRhOiBSZW5kZXJEYXRhID0ge1xuICAgICAgICAgICAgICAgIG1vZHVsZTogcmVuZGVyUmVzcG9uc2VEYXRhLm1vZHVsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpdGVtczogaXRlbXNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICAgICAgICAgICAgdGhpcy5maW5pc2hlZC5uZXh0KClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIG5vIGZpbmlzaGVkIGpvYnMgLT4gc2hvdyBlaXRoZXIgb25lIHByb2dyZXNzIGJhciB3aXRoIHJhY2UgbGVhZGVyIChwcm9ncmVzcyAwLTEwMClcbiAgICAgICAgICAgICAgLy8gb3IgcXVldWUgcG9zaXRpb24gKHByb2dyZXNzICgtaW5mLC0xXSlcbiAgICAgICAgICAgICAgbGV0IHByb2dyZXNzID0gMFxuICAgICAgICAgICAgICBpZiAoc3RhdHVzLmpvYnMuc29tZShqID0+IGouc3RhdHVzID09PSAnUFJPQ0VTU0lORycpKSB7XG4gICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBNYXRoLm1heCguLi5zdGF0dXMuam9icy5tYXAoaiA9PiBqLnByb2dyZXNzKSlcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMuam9icy5zb21lKGogPT4gai5zdGF0dXMgPT09ICdRVUVVRUQnKSkge1xuICAgICAgICAgICAgICAgIHByb2dyZXNzID0gLShNYXRoLm1pbiguLi5zdGF0dXMuam9icy5tYXAoaiA9PiBqLnByb2dyZXNzICsgMSkpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MkLm5leHQoe1xuICAgICAgICAgICAgICAgIG1vZHVsZTogc3RhdHVzLm1vZHVsZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBwcm9ncmVzczogcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGlmICgnc2VydmljZVdvcmtlcicgaW4gbmF2aWdhdG9yKSB7XG4gICAgICBjb25zdCByZWcgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7XG4gICAgICBjb25zb2xlLmxvZygncmVnaXN0ZXJlZCB3b3JrZXJzICcsIHJlZz8ubGVuZ3RoKTtcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHJlZz8ubWFwKChyOiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKSA9PiByLnVucmVnaXN0ZXIoKSkpO1xuICAgICAgY29uc29sZS5sb2coJ3JlZ2lzdGVyZWQgd29ya2VycyBhZnRlciB1bnJlZ2lzdGVyaW5nJywgcmVnPy5sZW5ndGgpO1xuICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIodGhpcy5wbGF0Zm9ybUxvY2F0aW9uLmdldEJhc2VIcmVmRnJvbURPTSgpICsgJ2VkdS1zZXJ2aWNlLXdvcmtlci5qcycsIHtcbiAgICAgICAgc2NvcGU6IHRoaXMucGxhdGZvcm1Mb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKVxuICAgICAgfSk7XG4gICAgICBjb25zb2xlLmxvZygnU2VydmljZSBXb3JrZXIgcmVnaXN0ZXJlZCcsIHJlZ2lzdHJhdGlvbik7XG4gICAgICBpZiAocmVnaXN0cmF0aW9uLndhaXRpbmcpIHtcbiAgICAgICAgcmVnaXN0cmF0aW9uLndhaXRpbmcucG9zdE1lc3NhZ2UoeyB0eXBlOiAnU0tJUF9XQUlUSU5HJyB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VydmljZVdvcmtlclJlYWR5ID0gdHJ1ZTtcbiAgICAgIHRoaXMubG9hZERhdGEubmV4dCgpO1xuICAgICAgcmVnaXN0cmF0aW9uLm9udXBkYXRlZm91bmQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nO1xuICAgICAgICBpZiAobmV3V29ya2VyKSB7XG4gICAgICAgICAgbmV3V29ya2VyLm9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3V29ya2VyLnN0YXRlID09PSAnaW5zdGFsbGVkJykge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTmV3IFNlcnZpY2UgV29ya2VyIHN0YXRlOiBpbnN0YWxsZWQnKTtcbiAgICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICBuZXdXb3JrZXIucG9zdE1lc3NhZ2UoeyB0eXBlOiAnU0tJUF9XQUlUSU5HJyB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignU2VydmljZSB3b3JrZXIgQVBJIG5vdCBhdmFpbGFibGUnKTtcbiAgICB9XG4gICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignY29udHJvbGxlcmNoYW5nZScsICgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdTZXJ2aWNlIFdvcmtlciBjb250cm9sbGluZyB0aGlzIHBhZ2UuJyk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5sb2FkRGF0YS5uZXh0KCk7XG4gIH1cblxuICBhc3luYyBjaGVja01vZHVsZSgpOiBQcm9taXNlPEZyb250ZW5kTW9kdWxlQ29uZmlnIHwgbnVsbD4ge1xuICAgIGNvbnNvbGUubG9nKFwiQ2hlY2tpbmcgbW9kdWxlXCIpXG4gICAgaWYgKCEgYXdhaXQgdGhpcy5tb2R1bGVJbmZvU2VydmljZS5pc0F2YWlsYWJsZUJhY2tlbmRPYmplY3QodGhpcy5ub2RlKSkge1xuICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmcm9udGVuZCBvbmx5IG1vZHVsZVwiKVxuICAgICAgaWYgKHRoaXMubm9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZHVsZUluZm9TZXJ2aWNlLmdldEZyb250ZW5kTW9kdWxlU2V0dGluZyh0aGlzLm5vZGUpXG4gICAgICB9XG4gICAgICByZXR1cm4ge21vZHVsZTogXCJkZWZhdWx0XCIsIHVybE1vZHVsZUNvbmZpZzogbnVsbH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBiYWNrZW5kIG1vZHVsZVwiKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICBnZXRGcm9udGVuZE1vZHVsZSgpOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIFwiZGVmYXVsdFwiXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2R1bGUgbW9kdWxlLXt7KHJlbmRlckRhdGEkIHwgYXN5bmMpPy5tb2R1bGV9fVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVuZGVyRGF0YSQgfCBhc3luYyBhcyBkYXRhXCI+XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0lNQUdFJyl7XG4gICAgICA8cnMtbW9kdWxlLWltYWdlIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtaW1hZ2U+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnVklERU8nKXtcbiAgICAgIDxycy1tb2R1bGUtdmlkZW8gW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS12aWRlbz5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdQREYnIHx8IGRhdGE/Lm1vZHVsZSA9PT0gJ0RPQ1VNRU5UJykge1xuICAgICAgPHJzLW1vZHVsZS1wZGYgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1wZGY+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnRURVSFRNTCcgfHwgZGF0YT8ubW9kdWxlID09PSAnSDVQJyB8fCBkYXRhPy5tb2R1bGUgPT09ICdKVVBZVEVSJykge1xuICAgICAgPHJzLW1vZHVsZS1lZHVIdG1sIFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtZWR1SHRtbD5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdTUFJFQURTSEVFVCcpIHtcbiAgICAgIDxycy1tb2R1bGUtc3ByZWFkc2hlZXQgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1zcHJlYWRzaGVldD5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdBVURJTycpe1xuICAgICAgPHJzLW1vZHVsZS1hdWRpbyBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWF1ZGlvPlxuICAgIH0gQGxvYWRpbmcge1xuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gICAgQGRlZmVyICh3aGVuIGRhdGE/Lm1vZHVsZSA9PT0gJ0JJTkRFUicpe1xuICAgICAgPHJzLW1vZHVsZS1iaW5kZXIgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1iaW5kZXI+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnRERCJyl7XG4gICAgICA8cnMtbW9kdWxlLWRkYiBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWRkYj5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLm1vZHVsZSA9PT0gJ2RlZmF1bHQnXCI+XG4gICAgICBAZGVmZXIgKHdoZW4gZGF0YS5tb2R1bGUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICA8cnMtbW9kdWxlLWRlZmF1bHQgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWRlZmF1bHQ+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEubW9kdWxlID09PSAndXJsJ1wiPlxuICAgICAgQGRlZmVyICh3aGVuIGRhdGEubW9kdWxlID09PSAndXJsJykge1xuICAgICAgICA8cnMtbW9kdWxlLXVybCBbbm9kZV09XCJub2RlXCIgW2RhdGFdPVwiZGF0YVwiPjwvcnMtbW9kdWxlLXVybD5cbiAgICAgIH1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCIgKm5nSWY9XCIocmVuZGVyRGF0YSQgfCBhc3luYykgPT09IG51bGw7XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2dyZXNzJCB8IGFzeW5jIGFzIHByb2dyZXNzXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJbJ1ZJREVPJywgJ0FVRElPJ10uaW5jbHVkZXMocHJvZ3Jlc3MubW9kdWxlKSA/ICdiYXInIDogJ3NwaW5uZXInXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidiYXInXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIihwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKSA8IDBcIj5RdWV1ZSBwb3NpdGlvbjoge3stKHByb2dyZXNzLnByb2dyZXNzID8/IDApfX08L2Rpdj5cbiAgICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBbdmFsdWVdPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApXCIgKm5nSWY9XCIocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCkgPj0gMFwiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzcGlubmVyJ1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCkgPCAwXCI+UXVldWUgcG9zaXRpb246IHt7LShwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKX08L2Rpdj5cbiAgICAgICAgICA8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cIjUwXCIgKm5nSWY9XCIocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCkgPj0gMFwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCI+XG4gICAgPG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -12,6 +12,7 @@ export class ModuleInfoService {
|
|
|
12
12
|
this.availableMimeTypePrefixes = [];
|
|
13
13
|
this.availableReplicationSources = [];
|
|
14
14
|
this.availableResourceTypes = [];
|
|
15
|
+
this.availableRemoteRepositories = [];
|
|
15
16
|
}
|
|
16
17
|
async isAvailableBackendObject(node) {
|
|
17
18
|
if (!this.isInitialized()) {
|
|
@@ -20,6 +21,9 @@ export class ModuleInfoService {
|
|
|
20
21
|
if (info.typeMapping.type !== undefined && info.typeMapping.type !== null) {
|
|
21
22
|
this.availableMediaTypes.push(info.typeMapping.type);
|
|
22
23
|
}
|
|
24
|
+
else if (info.typeMapping.remoteRepositoryType !== undefined && info.typeMapping.remoteRepositoryType !== null) {
|
|
25
|
+
this.availableRemoteRepositories.push(info.typeMapping.remoteRepositoryType);
|
|
26
|
+
}
|
|
23
27
|
else if (info.typeMapping.resourceType !== undefined && info.typeMapping.resourceType !== null) {
|
|
24
28
|
this.availableResourceTypes.push(info.typeMapping.resourceType);
|
|
25
29
|
}
|
|
@@ -39,6 +43,7 @@ export class ModuleInfoService {
|
|
|
39
43
|
}
|
|
40
44
|
const mimeTypePrefix = (node?.mimetype ?? "").split('/', 2)[0];
|
|
41
45
|
return this.availableMediaTypes.includes(node?.mediatype ?? "") ||
|
|
46
|
+
this.availableRemoteRepositories.includes(node?.remote?.repository?.repositoryType ?? "") ||
|
|
42
47
|
this.availableReplicationSources.includes(node?.properties?.[RestConstants.CCM_PROP_REPLICATIONSOURCE]?.[0] ?? "") ||
|
|
43
48
|
this.availableResourceTypes.includes(node?.properties?.[RestConstants.CCM_PROP_CCRESSOURCETYPE]?.[0] ?? "") ||
|
|
44
49
|
this.availableMimeTypes.includes(node?.mimetype ?? "") ||
|
|
@@ -49,7 +54,8 @@ export class ModuleInfoService {
|
|
|
49
54
|
+ this.availableMimeTypes.length
|
|
50
55
|
+ this.availableMimeTypePrefixes.length
|
|
51
56
|
+ this.availableReplicationSources.length
|
|
52
|
-
+ this.availableResourceTypes.length
|
|
57
|
+
+ this.availableResourceTypes.length
|
|
58
|
+
+ this.availableRemoteRepositories.length !== 0;
|
|
53
59
|
}
|
|
54
60
|
getFrontendModuleSetting(node) {
|
|
55
61
|
const urlModuleConfig = this.checkUrlModule(node);
|
|
@@ -221,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
221
227
|
type: Injectable,
|
|
222
228
|
args: [{ providedIn: "root" }]
|
|
223
229
|
}], ctorParameters: () => [{ type: i1.ModuleInfoControllerService }] });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWluZm8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGUtaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQU8sYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUF1QixhQUFhLEVBQWtCLE1BQU0sZ0NBQWdDLENBQUM7OztBQUdwRyxNQUFNLE9BQU8saUJBQWlCO0lBUTVCLFlBQ1UsT0FBb0M7UUFBcEMsWUFBTyxHQUFQLE9BQU8sQ0FBNkI7UUFQdEMsd0JBQW1CLEdBQWEsRUFBRSxDQUFBO1FBQ2xDLHVCQUFrQixHQUFhLEVBQUUsQ0FBQTtRQUNqQyw4QkFBeUIsR0FBYSxFQUFFLENBQUE7UUFDeEMsZ0NBQTJCLEdBQWEsRUFBRSxDQUFBO1FBQzFDLDJCQUFzQixHQUFhLEVBQUUsQ0FBQTtJQUkxQyxDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLElBQXFCO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUMxQixNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUE7WUFDaEcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQzFFLElBQUksQ0FBQyxtQkFBbUIsQ0FB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QUFDLENBQUE7UUFFRDs7V0FFRztRQUNILE1BQU0sU0FBUyxHQUNiLGlCQUFpQixFQUFFO2VBQ2QsWUFBWSxFQUFFO2VBQ2QsVUFBVSxFQUFFO2VBQ1osaUJBQWlCLEVBQUU7ZUFDbkIsVUFBVSxFQUFFO2VBQ1osVUFBVSxFQUFFO2VBQ1osb0JBQW9CLEVBQUU7ZUFDdEIsU0FBUyxFQUFFO2VBQ1gsV0FBVyxFQUFFLENBQUE7UUFFcEIsSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1lBQ2xDLE9BQU87Z0JBQ0wsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsZUFBZSxFQUFFLFNBQVM7YUFDM0IsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7OEdBeE5VLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREwsTUFBTTs7MkZBQ2xCLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01vZHVsZUluZm9Db250cm9sbGVyU2VydmljZSwgUmVuZGVyRGF0YVJlcXVlc3RXaXRoVG9rZW59IGZyb20gXCJuZ3gtcmVuZGVyaW5nLXNlcnZpY2UtYXBpXCI7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtOb2RlLCBSZXN0Q29uc3RhbnRzfSBmcm9tIFwibmd4LWVkdS1zaGFyaW5nLWFwaVwiO1xuaW1wb3J0IHtGcm9udGVuZE1vZHVsZUNvbmZpZywgVXJsRW1iZWRkaW5ncywgVXJsTW9kdWxlQ29uZmlnfSBmcm9tIFwiLi9saWIvZHRvL0Zyb250ZW5kTW9kdWxlQ29uZmlnXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiBcInJvb3RcIn0pXG5leHBvcnQgY2xhc3MgTW9kdWxlSW5mb1NlcnZpY2Uge1xuXG4gIHByaXZhdGUgYXZhaWxhYmxlTWVkaWFUeXBlczogU3RyaW5nW10gPSBbXVxuICBwcml2YXRlIGF2YWlsYWJsZU1pbWVUeXBlczogU3RyaW5nW10gPSBbXVxuICBwcml2YXRlIGF2YWlsYWJsZU1pbWVUeXBlUHJlZml4ZXM6IFN0cmluZ1tdID0gW11cbiAgcHJpdmF0ZSBhdmFpbGFibGVSZXBsaWNhdGlvblNvdXJjZXM6IFN0cmluZ1tdID0gW11cbiAgcHJpdmF0ZSBhdmFpbGFibGVSZXNvdXJjZVR5cGVzOiBTdHJpbmdbXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBNb2R1bGVJbmZvQ29udHJvbGxlclNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGlzQXZhaWxhYmxlQmFja2VuZE9iamVjdChub2RlOiBOb2RlfCB1bmRlZmluZWQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlcnZpY2UuZ2V0TW9kdWxlc0luZm8oe3JlcG9JZDogbm9kZT8ucmVmLnJlcG8gPz8gXCJcIn0pKVxuICAgICAgcmVzdWx0LmZvckVhY2goaW5mbyA9PiB7XG4gICAgICAgIGlmIChpbmZvLnR5cGVNYXBwaW5nLnR5cGUgIT09IHVuZGVmaW5lZCAmJiBpbmZvLnR5cGVNYXBwaW5nLnR5cGUgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmF2YWlsYWJsZU1lZGlhVHlwZXMucHVzaChpbmZvLnR5cGVNYXBwaW5nLnR5cGUpXG4gICAgICAgIH0gZWxzZSBpZihpbmZvLnR5cGVNYXBwaW5nLnJlc291cmNlVHlwZSAhPT0gdW5kZWZpbmVkICYmIGluZm8udHlwZU1hcHBpbmcucmVzb3VyY2VUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5hdmFpbGFibGVSZXNvdXJjZVR5cGVzLnB1c2goaW5mby50eXBlTWFwcGluZy5yZXNvdXJjZVR5cGUpXG4gICAgICAgIH0gZWxzZSBpZihpbmZvLnR5cGVNYXBwaW5nLnJlcGxpY2F0aW9uU291cmNlICE9PSB1bmRlZmluZWQgJiYgaW5mby50eXBlTWFwcGluZy5yZXBsaWNhdGlvblNvdXJjZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlUmVwbGljYXRpb25Tb3VyY2VzLnB1c2goaW5mby50eXBlTWFwcGluZy5yZXBsaWNhdGlvblNvdXJjZSlcbiAgICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cGVNYXBwaW5nLm1pbWVUeXBlU3VmZml4ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICYmIGluZm8udHlwZU1hcHBpbmcubWltZVR5cGVTdWZmaXggIT09IG51bGxcbiAgICAgICAgICAgICYmIGluZm8udHlwZU1hcHBpbmcubWltZVR5cGVQcmVmaXggIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgJiYgaW5mby50eXBlTWFwcGluZy5taW1lVHlwZVByZWZpeCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmF2YWlsYWJsZU1pbWVUeXBlcy5wdXNoKGAke2luZm8udHlwZU1hcHBpbmcubWltZVR5cGVQcmVmaXh9LyR7aW5mby50eXBlTWFwcGluZy5taW1lVHlwZVN1ZmZpeH1gKVxuICAgICAgICB9IGVsc2UgaWYgKGluZm8udHlwZU1hcHBpbmcubWltZVR5cGVQcmVmaXggIT09IHVuZGVmaW5lZCAmJiBpbmZvLnR5cGVNYXBwaW5nLm1pbWVUeXBlUHJlZml4ICE9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5hdmFpbGFibGVNaW1lVHlwZVByZWZpeGVzLnB1c2goaW5mby50eXBlTWFwcGluZy5taW1lVHlwZVByZWZpeClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgY29uc3QgbWltZVR5cGVQcmVmaXggPSAobm9kZT8ubWltZXR5cGUgPz8gXCJcIikuc3BsaXQoJy8nLCAyKVswXVxuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZU1lZGlhVHlwZXMuaW5jbHVkZXMobm9kZT8ubWVkaWF0eXBlID8/IFwiXCIpIHx8XG4gICAgICB0aGlzLmF2YWlsYWJsZVJlcGxpY2F0aW9uU291cmNlcy5pbmNsdWRlcyhub2RlPy5wcm9wZXJ0aWVzPy5bUmVzdENvbnN0YW50cy5DQ01fUFJPUF9SRVBMSUNBVElPTlNPVVJDRV0/LlswXT8/IFwiXCIpIHx8XG4gICAgICB0aGlzLmF2YWlsYWJsZVJlc291cmNlVHlwZXMuaW5jbHVkZXMobm9kZT8ucHJvcGVydGllcz8uW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfQ0NSRVNTT1VSQ0VUWVBFXT8uWzBdPz8gXCJcIikgfHxcbiAgICAgIHRoaXMuYXZhaWxhYmxlTWltZVR5cGVzLmluY2x1ZGVzKG5vZGU/Lm1pbWV0eXBlID8/IFwiXCIpIHx8XG4gICAgICB0aGlzLmF2YWlsYWJsZU1pbWVUeXBlUHJlZml4ZXMuaW5jbHVkZXMobWltZVR5cGVQcmVmaXgpXG4gIH1cblxuICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTWVkaWFUeXBlcy5sZW5ndGhcbiAgICAgICsgdGhpcy5hdmFpbGFibGVNaW1lVHlwZXMubGVuZ3RoXG4gICAgICArIHRoaXMuYXZhaWxhYmxlTWltZVR5cGVQcmVmaXhlcy5sZW5ndGhcbiAgICAgICsgdGhpcy5hdmFpbGFibGVSZXBsaWNhdGlvblNvdXJjZXMubGVuZ3RoXG4gICAgICArIHRoaXMuYXZhaWxhYmxlUmVzb3VyY2VUeXBlcy5sZW5ndGggIT09IDBcbiAgfVxuXG4gIGdldEZyb250ZW5kTW9kdWxlU2V0dGluZyhub2RlOiBOb2RlKTogRnJvbnRlbmRNb2R1bGVDb25maWcge1xuICAgIGNvbnN0IHVybE1vZHVsZUNvbmZpZyA9IHRoaXMuY2hlY2tVcmxNb2R1bGUobm9kZSlcbiAgICBpZiAodXJsTW9kdWxlQ29uZmlnICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdXJsTW9kdWxlQ29uZmlnXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBtb2R1bGU6IFwiZGVmYXVsdFwiLFxuICAgICAgdXJsTW9kdWxlQ29uZmlnOiBudWxsXG4gICAgfVxuICB9XG5cbiAgY2hlY2tVcmxNb2R1bGUobm9kZTogTm9kZSk6IEZyb250ZW5kTW9kdWxlQ29uZmlnIHwgbnVsbCB7XG4gICAgY29uc3QgdXJsID0gbm9kZS5wcm9wZXJ0aWVzPy5bXCJjY206d3d3dXJsXCJdPy5bMF0gfHwgJydcbiAgICBjb25zb2xlLmxvZyhcIlVSTCBNT0RVTEUgdXJsOiBcIiArIHVybClcbiAgICBjb25zdCBjaGVja0xlYXJuaW5nQXBwcyA9ICgpOiBVcmxNb2R1bGVDb25maWcgfCBudWxsID0+IHtcbiAgICAgIGlmIChub2RlLnJlbW90ZT8ucmVwb3NpdG9yeT8ucmVwb3NpdG9yeVR5cGU/LnRvTG93ZXJDYXNlKCkgPT09IFwibGVhcm5pbmdhcHBzXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuTEVBUk5JTkdBUFBTLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gY2hlY2tZb3VUdWJlXG4gICAgICovXG4gICAgY29uc3QgY2hlY2tZb3VUdWJlID0gKCk6IFVybE1vZHVsZUNvbmZpZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKG5vZGUucmVtb3RlPy5yZXBvc2l0b3J5Py5yZXBvc2l0b3J5VHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gXCJ5b3V0dWJlXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuWU9VVFVCRSxcbiAgICAgICAgICBleHRlcm5hbElkOiBub2RlLnJlbW90ZT8uaWQgPz8gXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodXJsLmluY2x1ZGVzKFwieW91dHUuYmVcIikgKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gdXJsLnNwbGl0KFwiL1wiKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5ZT1VUVUJFLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IHNwbGl0W3NwbGl0Lmxlbmd0aCAtIDFdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh1cmwuaW5jbHVkZXMoXCIueW91dHViZS5jb20vd2F0Y2g/XCIpKSB7XG4gICAgICAgIGNvbnN0IHVybE9iamVjdCA9IG5ldyBVUkwodXJsKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5ZT1VUVUJFLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IHVybE9iamVjdC5zZWFyY2hQYXJhbXMuZ2V0KFwidlwiKSA/PyBcIlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIGNoZWNrVmltZW9cbiAgICAgKi9cbiAgICBjb25zdCBjaGVja1ZpbWVvID0gKCk6IFVybE1vZHVsZUNvbmZpZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKHVybC5pbmNsdWRlcyhcInZpbWVvLmNvbVwiKSkge1xuICAgICAgICBjb25zdCBzcGxpdCA9IHVybC5zcGxpdChcIi9cIilcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuVklNRU8sXG4gICAgICAgICAgZXh0ZXJuYWxJZDogc3BsaXRbc3BsaXQubGVuZ3RoIC0gMV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgY2hlY2tHZW5lcmljVmlkZW8gPSAoKTogVXJsTW9kdWxlQ29uZmlnIHwgbnVsbCA9PiB7XG4gICAgICBpZiAodXJsLmxlbmd0aCA+IDAgJiYgW1wibXA0XCIsIFwid2VibVwiXS5pbmNsdWRlcyh1cmwuc3BsaXQoXCIuXCIpLnBvcCgpID8/IFwiXCIpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW1iZWRkaW5nOiBVcmxFbWJlZGRpbmdzLlZJREVPLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gY2hlY2tBdWRpb1xuICAgICAqL1xuICAgIGNvbnN0IGNoZWNrQXVkaW8gPSAoKTogVXJsTW9kdWxlQ29uZmlnIHwgbnVsbCA9PiB7XG4gICAgICBpZiAodXJsLmxlbmd0aCA+IDAgJiYgbm9kZS5taW1ldHlwZT8uc3RhcnRzV2l0aChcImF1ZGlvXCIpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW1iZWRkaW5nOiBVcmxFbWJlZGRpbmdzLkFVRElPLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gY2hlY2tMdGkxM1Rvb2xPYmplY3RcbiAgICAgKi9cbiAgICBjb25zdCBjaGVja0x0aTEzVG9vbE9iamVjdCA9ICgpOiBVcmxNb2R1bGVDb25maWcgfCBudWxsID0+IHtcbiAgICAgIGlmIChub2RlLmFzcGVjdHM/LmluY2x1ZGVzKCdjY206bHRpdG9vbF9ub2RlJykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuTFRJMTNUT09MLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gY2hlY2tJbWFnZVxuICAgICAqL1xuICAgIGNvbnN0IGNoZWNrSW1hZ2UgPSAoKTogVXJsTW9kdWxlQ29uZmlnIHwgbnVsbCAgPT4ge1xuICAgICAgaWYgKG5vZGUucHJvcGVydGllcz8uW1wiY2NtOnJlbW90ZXJlcG9zaXRvcnl0eXBlXCJdPy5bMF0gPT09IFwiRERCXCIpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLm1lZGlhdHlwZSA9PT0gXCJmaWxlLWltYWdlXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuSU1BR0UsXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBtaW1lVHlwZVNwbGl0ID0gbm9kZS5taW1ldHlwZT8uc3BsaXQoXCIvXCIpID8/IFtdXG4gICAgICBpZiAobWltZVR5cGVTcGxpdC5sZW5ndGggPT09IDIgJiYgWydwbmcnLCAnanBnJywgJ2pwZWcnLCAnZ2lmJ10uaW5jbHVkZXMobWltZVR5cGVTcGxpdFsxXSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuSU1BR0UsXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICAvKipcbiAgICAgKiAgRnVuY3Rpb24gZGV0ZWN0SDVQXG4gICAgICovXG4gICAgY29uc3QgZGV0ZWN0SDVQID0gKCk6IFVybE1vZHVsZUNvbmZpZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKHVybC5sZW5ndGggPiAwICYmIHVybC5pbmNsdWRlcygnaDVwLm9yZy9oNXAvZW1iZWQnKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5INVAsXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiBkZXRlY3RQcmV6aVxuICAgICAqL1xuICAgIGNvbnN0IGRldGVjdFByZXppID0gKCk6IFVybE1vZHVsZUNvbmZpZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKHVybC5sZW5ndGggPiAwICYmXG4gICAgICAgICh1cmwuaW5jbHVkZXMoJ3ByZXppLmNvbS92aWV3LycpIHx8IHVybC5pbmNsdWRlcygncHJlemkuY29tL2VtYmVkLycpIHx8IHVybC5pbmNsdWRlcygncHJlemkuY29tL3AvZW1iZWQnKSlcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIlBSRVpJIERFVEVDVEVEXCIpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW1iZWRkaW5nOiBVcmxFbWJlZGRpbmdzLlBSRVpJLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IFwiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBlbWJlZGRpbmcgaWYgYXBwbGljYWJsZSB0byBub2RlXG4gICAgICovXG4gICAgY29uc3QgZW1iZWRkaW5nID1cbiAgICAgIGNoZWNrTGVhcm5pbmdBcHBzKClcbiAgICAgICAgPz8gY2hlY2tZb3VUdWJlKClcbiAgICAgICAgPz8gY2hlY2tWaW1lbygpXG4gICAgICAgID8/IGNoZWNrR2VuZXJpY1ZpZGVvKClcbiAgICAgICAgPz8gY2hlY2tBdWRpbygpXG4gICAgICAgID8/IGNoZWNrSW1hZ2UoKVxuICAgICAgICA/PyBjaGVja0x0aTEzVG9vbE9iamVjdCgpXG4gICAgICAgID8/IGRldGVjdEg1UCgpXG4gICAgICAgID8/IGRldGVjdFByZXppKClcblxuICAgIGlmIChlbWJlZGRpbmcgIT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiVVNJTkcgVVJMIEVNQkVERElOR1wiKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kdWxlOiBcInVybFwiLFxuICAgICAgICB1cmxNb2R1bGVDb25maWc6IGVtYmVkZGluZ1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iXX0=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLWluZm8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2R1bGUtaW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQU8sYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUF1QixhQUFhLEVBQWtCLE1BQU0sZ0NBQWdDLENBQUM7OztBQUdwRyxNQUFNLE9BQU8saUJBQWlCO0lBUzVCLFlBQ1UsT0FBb0M7UUFBcEMsWUFBTyxHQUFQLE9BQU8sQ0FBNkI7UUFSdEMsd0JBQW1CLEdBQWEsRUFBRSxDQUFBO1FBQ2xDLHVCQUFrQixHQUFhLEVBQUUsQ0FBQTtRQUNqQyw4QkFBeUIsR0FBYSxFQUFFLENBQUE7UUFDeEMsZ0NBQTJCLEdBQWEsRUFBRSxDQUFBO1FBQzFDLDJCQUFzQixHQUFhLEVBQUUsQ0FBQTtRQUNyQyxnQ0FBMkIsR0FBYSxFQUFFLENBQUE7SUFJL0MsQ0FBQztJQUVKLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUFxQjtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2hHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLElBQUksRUFBRSxDQUFD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LEdBQTJCLEVBQUU7WUFDL0MsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ2hCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFDMUcsQ0FBQztnQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUE7Z0JBQzdCLE9BQU87b0JBQ0wsU0FBUyxFQUFFLGFBQWEsQ0FBQyxLQUFLO29CQUM5QixVQUFVLEVBQUUsRUFBRTtpQkFDZixDQUFBO1lBQ0gsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxDQUFBO1FBRUQ7O1dBRUc7UUFDSCxNQUFNLFNBQVMsR0FDYixpQkFBaUIsRUFBRTtlQUNkLFlBQVksRUFBRTtlQUNkLFVBQVUsRUFBRTtlQUNaLGlCQUFpQixFQUFFO2VBQ25CLFVBQVUsRUFBRTtlQUNaLFVBQVUsRUFBRTtlQUNaLG9CQUFvQixFQUFFO2VBQ3RCLFNBQVMsRUFBRTtlQUNYLFdBQVcsRUFBRSxDQUFBO1FBRXBCLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQTtZQUNsQyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxLQUFLO2dCQUNiLGVBQWUsRUFBRSxTQUFTO2FBQzNCLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDOzhHQTdOVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQURMLE1BQU07OzJGQUNsQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtNb2R1bGVJbmZvQ29udHJvbGxlclNlcnZpY2UsIFJlbmRlckRhdGFSZXF1ZXN0V2l0aFRva2VufSBmcm9tIFwibmd4LXJlbmRlcmluZy1zZXJ2aWNlLWFwaVwiO1xuaW1wb3J0IHtmaXJzdFZhbHVlRnJvbX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Tm9kZSwgUmVzdENvbnN0YW50c30gZnJvbSBcIm5neC1lZHUtc2hhcmluZy1hcGlcIjtcbmltcG9ydCB7RnJvbnRlbmRNb2R1bGVDb25maWcsIFVybEVtYmVkZGluZ3MsIFVybE1vZHVsZUNvbmZpZ30gZnJvbSBcIi4vbGliL2R0by9Gcm9udGVuZE1vZHVsZUNvbmZpZ1wiO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogXCJyb290XCJ9KVxuZXhwb3J0IGNsYXNzIE1vZHVsZUluZm9TZXJ2aWNlIHtcblxuICBwcml2YXRlIGF2YWlsYWJsZU1lZGlhVHlwZXM6IFN0cmluZ1tdID0gW11cbiAgcHJpdmF0ZSBhdmFpbGFibGVNaW1lVHlwZXM6IFN0cmluZ1tdID0gW11cbiAgcHJpdmF0ZSBhdmFpbGFibGVNaW1lVHlwZVByZWZpeGVzOiBTdHJpbmdbXSA9IFtdXG4gIHByaXZhdGUgYXZhaWxhYmxlUmVwbGljYXRpb25Tb3VyY2VzOiBTdHJpbmdbXSA9IFtdXG4gIHByaXZhdGUgYXZhaWxhYmxlUmVzb3VyY2VUeXBlczogU3RyaW5nW10gPSBbXVxuICBwcml2YXRlIGF2YWlsYWJsZVJlbW90ZVJlcG9zaXRvcmllczogU3RyaW5nW10gPSBbXVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VydmljZTogTW9kdWxlSW5mb0NvbnRyb2xsZXJTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBpc0F2YWlsYWJsZUJhY2tlbmRPYmplY3Qobm9kZTogTm9kZXwgdW5kZWZpbmVkKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLmdldE1vZHVsZXNJbmZvKHtyZXBvSWQ6IG5vZGU/LnJlZi5yZXBvID8/IFwiXCJ9KSlcbiAgICAgIHJlc3VsdC5mb3JFYWNoKGluZm8gPT4ge1xuICAgICAgICBpZiAoaW5mby50eXBlTWFwcGluZy50eXBlICE9PSB1bmRlZmluZWQgJiYgaW5mby50eXBlTWFwcGluZy50eXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5hdmFpbGFibGVNZWRpYVR5cGVzLnB1c2goaW5mby50eXBlTWFwcGluZy50eXBlKVxuICAgICAgICB9IGVsc2UgaWYgKGluZm8udHlwZU1hcHBpbmcucmVtb3RlUmVwb3NpdG9yeVR5cGUgIT09IHVuZGVmaW5lZCAmJiBpbmZvLnR5cGVNYXBwaW5nLnJlbW90ZVJlcG9zaXRvcnlUeXBlICE9PSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5hdmFpbGFibGVSZW1vdGVSZXBvc2l0b3JpZXMucHVzaChpbmZvLnR5cGVNYXBwaW5nLnJlbW90ZVJlcG9zaXRvcnlUeXBlKVxuICAgICAgICB9IGVsc2UgaWYoaW5mby50eXBlTWFwcGluZy5yZXNvdXJjZVR5cGUgIT09IHVuZGVmaW5lZCAmJiBpbmZvLnR5cGVNYXBwaW5nLnJlc291cmNlVHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlUmVzb3VyY2VUeXBlcy5wdXNoKGluZm8udHlwZU1hcHBpbmcucmVzb3VyY2VUeXBlKVxuICAgICAgICB9IGVsc2UgaWYoaW5mby50eXBlTWFwcGluZy5yZXBsaWNhdGlvblNvdXJjZSAhPT0gdW5kZWZpbmVkICYmIGluZm8udHlwZU1hcHBpbmcucmVwbGljYXRpb25Tb3VyY2UgIT09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmF2YWlsYWJsZVJlcGxpY2F0aW9uU291cmNlcy5wdXNoKGluZm8udHlwZU1hcHBpbmcucmVwbGljYXRpb25Tb3VyY2UpXG4gICAgICAgIH0gZWxzZSBpZiAoaW5mby50eXBlTWFwcGluZy5taW1lVHlwZVN1ZmZpeCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAmJiBpbmZvLnR5cGVNYXBwaW5nLm1pbWVUeXBlU3VmZml4ICE9PSBudWxsXG4gICAgICAgICAgICAmJiBpbmZvLnR5cGVNYXBwaW5nLm1pbWVUeXBlUHJlZml4ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICYmIGluZm8udHlwZU1hcHBpbmcubWltZVR5cGVQcmVmaXggIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5hdmFpbGFibGVNaW1lVHlwZXMucHVzaChgJHtpbmZvLnR5cGVNYXBwaW5nLm1pbWVUeXBlUHJlZml4fS8ke2luZm8udHlwZU1hcHBpbmcubWltZVR5cGVTdWZmaXh9YClcbiAgICAgICAgfSBlbHNlIGlmIChpbmZvLnR5cGVNYXBwaW5nLm1pbWVUeXBlUHJlZml4ICE9PSB1bmRlZmluZWQgJiYgaW5mby50eXBlTWFwcGluZy5taW1lVHlwZVByZWZpeCAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuYXZhaWxhYmxlTWltZVR5cGVQcmVmaXhlcy5wdXNoKGluZm8udHlwZU1hcHBpbmcubWltZVR5cGVQcmVmaXgpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIGNvbnN0IG1pbWVUeXBlUHJlZml4ID0gKG5vZGU/Lm1pbWV0eXBlID8/IFwiXCIpLnNwbGl0KCcvJywgMilbMF1cbiAgICByZXR1cm4gdGhpcy5hdmFpbGFibGVNZWRpYVR5cGVzLmluY2x1ZGVzKG5vZGU/Lm1lZGlhdHlwZSA/PyBcIlwiKSB8fFxuICAgICAgdGhpcy5hdmFpbGFibGVSZW1vdGVSZXBvc2l0b3JpZXMuaW5jbHVkZXMobm9kZT8ucmVtb3RlPy5yZXBvc2l0b3J5Py5yZXBvc2l0b3J5VHlwZSA/PyBcIlwiKSB8fFxuICAgICAgdGhpcy5hdmFpbGFibGVSZXBsaWNhdGlvblNvdXJjZXMuaW5jbHVkZXMobm9kZT8ucHJvcGVydGllcz8uW1Jlc3RDb25zdGFudHMuQ0NNX1BST1BfUkVQTElDQVRJT05TT1VSQ0VdPy5bMF0/PyBcIlwiKSB8fFxuICAgICAgdGhpcy5hdmFpbGFibGVSZXNvdXJjZVR5cGVzLmluY2x1ZGVzKG5vZGU/LnByb3BlcnRpZXM/LltSZXN0Q29uc3RhbnRzLkNDTV9QUk9QX0NDUkVTU09VUkNFVFlQRV0/LlswXT8/IFwiXCIpIHx8XG4gICAgICB0aGlzLmF2YWlsYWJsZU1pbWVUeXBlcy5pbmNsdWRlcyhub2RlPy5taW1ldHlwZSA/PyBcIlwiKSB8fFxuICAgICAgdGhpcy5hdmFpbGFibGVNaW1lVHlwZVByZWZpeGVzLmluY2x1ZGVzKG1pbWVUeXBlUHJlZml4KVxuICB9XG5cbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZU1lZGlhVHlwZXMubGVuZ3RoXG4gICAgICArIHRoaXMuYXZhaWxhYmxlTWltZVR5cGVzLmxlbmd0aFxuICAgICAgKyB0aGlzLmF2YWlsYWJsZU1pbWVUeXBlUHJlZml4ZXMubGVuZ3RoXG4gICAgICArIHRoaXMuYXZhaWxhYmxlUmVwbGljYXRpb25Tb3VyY2VzLmxlbmd0aFxuICAgICAgKyB0aGlzLmF2YWlsYWJsZVJlc291cmNlVHlwZXMubGVuZ3RoXG4gICAgICArIHRoaXMuYXZhaWxhYmxlUmVtb3RlUmVwb3NpdG9yaWVzLmxlbmd0aCAhPT0gMFxuICB9XG5cbiAgZ2V0RnJvbnRlbmRNb2R1bGVTZXR0aW5nKG5vZGU6IE5vZGUpOiBGcm9udGVuZE1vZHVsZUNvbmZpZyB7XG4gICAgY29uc3QgdXJsTW9kdWxlQ29uZmlnID0gdGhpcy5jaGVja1VybE1vZHVsZShub2RlKVxuICAgIGlmICh1cmxNb2R1bGVDb25maWcgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB1cmxNb2R1bGVDb25maWdcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZHVsZTogXCJkZWZhdWx0XCIsXG4gICAgICB1cmxNb2R1bGVDb25maWc6IG51bGxcbiAgICB9XG4gIH1cblxuICBjaGVja1VybE1vZHVsZShub2RlOiBOb2RlKTogRnJvbnRlbmRNb2R1bGVDb25maWcgfCBudWxsIHtcbiAgICBjb25zdCB1cmwgPSBub2RlLnByb3BlcnRpZXM/LltcImNjbTp3d3d1cmxcIl0/LlswXSB8fCAnJ1xuICAgIGNvbnNvbGUubG9nKFwiVVJMIE1PRFVMRSB1cmw6IFwiICsgdXJsKVxuICAgIGNvbnN0IGNoZWNrTGVhcm5pbmdBcHBzID0gKCk6IFVybE1vZHVsZUNvbmZpZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKG5vZGUucmVtb3RlPy5yZXBvc2l0b3J5Py5yZXBvc2l0b3J5VHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gXCJsZWFybmluZ2FwcHNcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5MRUFSTklOR0FQUFMsXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiBjaGVja1lvdVR1YmVcbiAgICAgKi9cbiAgICBjb25zdCBjaGVja1lvdVR1YmUgPSAoKTogVXJsTW9kdWxlQ29uZmlnIHwgbnVsbCA9PiB7XG4gICAgICBpZiAobm9kZS5yZW1vdGU/LnJlcG9zaXRvcnk/LnJlcG9zaXRvcnlUeXBlPy50b0xvd2VyQ2FzZSgpID09PSBcInlvdXR1YmVcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5ZT1VUVUJFLFxuICAgICAgICAgIGV4dGVybmFsSWQ6IG5vZGUucmVtb3RlPy5pZCA/PyBcIlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh1cmwuaW5jbHVkZXMoXCJ5b3V0dS5iZVwiKSApIHtcbiAgICAgICAgY29uc3Qgc3BsaXQgPSB1cmwuc3BsaXQoXCIvXCIpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW1iZWRkaW5nOiBVcmxFbWJlZGRpbmdzLllPVVRVQkUsXG4gICAgICAgICAgZXh0ZXJuYWxJZDogc3BsaXRbc3BsaXQubGVuZ3RoIC0gMV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHVybC5pbmNsdWRlcyhcIi55b3V0dWJlLmNvbS93YXRjaD9cIikpIHtcbiAgICAgICAgY29uc3QgdXJsT2JqZWN0ID0gbmV3IFVSTCh1cmwpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW1iZWRkaW5nOiBVcmxFbWJlZGRpbmdzLllPVVRVQkUsXG4gICAgICAgICAgZXh0ZXJuYWxJZDogdXJsT2JqZWN0LnNlYXJjaFBhcmFtcy5nZXQoXCJ2XCIpID8/IFwiXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gY2hlY2tWaW1lb1xuICAgICAqL1xuICAgIGNvbnN0IGNoZWNrVmltZW8gPSAoKTogVXJsTW9kdWxlQ29uZmlnIHwgbnVsbCA9PiB7XG4gICAgICBpZiAodXJsLmluY2x1ZGVzKFwidmltZW8uY29tXCIpKSB7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gdXJsLnNwbGl0KFwiL1wiKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5WSU1FTyxcbiAgICAgICAgICBleHRlcm5hbElkOiBzcGxpdFtzcGxpdC5sZW5ndGggLSAxXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBjaGVja0dlbmVyaWNWaWRlbyA9ICgpOiBVcmxNb2R1bGVDb25maWcgfCBudWxsID0+IHtcbiAgICAgIGlmICh1cmwubGVuZ3RoID4gMCAmJiBbXCJtcDRcIiwgXCJ3ZWJtXCJdLmluY2x1ZGVzKHVybC5zcGxpdChcIi5cIikucG9wKCkgPz8gXCJcIikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuVklERU8sXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiBjaGVja0F1ZGlvXG4gICAgICovXG4gICAgY29uc3QgY2hlY2tBdWRpbyA9ICgpOiBVcmxNb2R1bGVDb25maWcgfCBudWxsID0+IHtcbiAgICAgIGlmICh1cmwubGVuZ3RoID4gMCAmJiBub2RlLm1pbWV0eXBlPy5zdGFydHNXaXRoKFwiYXVkaW9cIikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuQVVESU8sXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiBjaGVja0x0aTEzVG9vbE9iamVjdFxuICAgICAqL1xuICAgIGNvbnN0IGNoZWNrTHRpMTNUb29sT2JqZWN0ID0gKCk6IFVybE1vZHVsZUNvbmZpZyB8IG51bGwgPT4ge1xuICAgICAgaWYgKG5vZGUuYXNwZWN0cz8uaW5jbHVkZXMoJ2NjbTpsdGl0b29sX25vZGUnKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5MVEkxM1RPT0wsXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiBjaGVja0ltYWdlXG4gICAgICovXG4gICAgY29uc3QgY2hlY2tJbWFnZSA9ICgpOiBVcmxNb2R1bGVDb25maWcgfCBudWxsICA9PiB7XG4gICAgICBpZiAobm9kZS5wcm9wZXJ0aWVzPy5bXCJjY206cmVtb3RlcmVwb3NpdG9yeXR5cGVcIl0/LlswXSA9PT0gXCJEREJcIikge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgICAgaWYgKG5vZGUubWVkaWF0eXBlID09PSBcImZpbGUtaW1hZ2VcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5JTUFHRSxcbiAgICAgICAgICBleHRlcm5hbElkOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbWVUeXBlU3BsaXQgPSBub2RlLm1pbWV0eXBlPy5zcGxpdChcIi9cIikgPz8gW11cbiAgICAgIGlmIChtaW1lVHlwZVNwbGl0Lmxlbmd0aCA9PT0gMiAmJiBbJ3BuZycsICdqcGcnLCAnanBlZycsICdnaWYnXS5pbmNsdWRlcyhtaW1lVHlwZVNwbGl0WzFdKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVtYmVkZGluZzogVXJsRW1iZWRkaW5ncy5JTUFHRSxcbiAgICAgICAgICBleHRlcm5hbElkOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIC8qKlxuICAgICAqICBGdW5jdGlvbiBkZXRlY3RINVBcbiAgICAgKi9cbiAgICBjb25zdCBkZXRlY3RINVAgPSAoKTogVXJsTW9kdWxlQ29uZmlnIHwgbnVsbCA9PiB7XG4gICAgICBpZiAodXJsLmxlbmd0aCA+IDAgJiYgdXJsLmluY2x1ZGVzKCdoNXAub3JnL2g1cC9lbWJlZCcpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW1iZWRkaW5nOiBVcmxFbWJlZGRpbmdzLkg1UCxcbiAgICAgICAgICBleHRlcm5hbElkOiBcIlwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIGRldGVjdFByZXppXG4gICAgICovXG4gICAgY29uc3QgZGV0ZWN0UHJlemkgPSAoKTogVXJsTW9kdWxlQ29uZmlnIHwgbnVsbCA9PiB7XG4gICAgICBpZiAodXJsLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgKHVybC5pbmNsdWRlcygncHJlemkuY29tL3ZpZXcvJykgfHwgdXJsLmluY2x1ZGVzKCdwcmV6aS5jb20vZW1iZWQvJykgfHwgdXJsLmluY2x1ZGVzKCdwcmV6aS5jb20vcC9lbWJlZCcpKVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiUFJFWkkgREVURUNURURcIilcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbWJlZGRpbmc6IFVybEVtYmVkZGluZ3MuUFJFWkksXG4gICAgICAgICAgZXh0ZXJuYWxJZDogXCJcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGVtYmVkZGluZyBpZiBhcHBsaWNhYmxlIHRvIG5vZGVcbiAgICAgKi9cbiAgICBjb25zdCBlbWJlZGRpbmcgPVxuICAgICAgY2hlY2tMZWFybmluZ0FwcHMoKVxuICAgICAgICA/PyBjaGVja1lvdVR1YmUoKVxuICAgICAgICA/PyBjaGVja1ZpbWVvKClcbiAgICAgICAgPz8gY2hlY2tHZW5lcmljVmlkZW8oKVxuICAgICAgICA/PyBjaGVja0F1ZGlvKClcbiAgICAgICAgPz8gY2hlY2tJbWFnZSgpXG4gICAgICAgID8/IGNoZWNrTHRpMTNUb29sT2JqZWN0KClcbiAgICAgICAgPz8gZGV0ZWN0SDVQKClcbiAgICAgICAgPz8gZGV0ZWN0UHJlemkoKVxuXG4gICAgaWYgKGVtYmVkZGluZyAhPT0gbnVsbCkge1xuICAgICAgY29uc29sZS5sb2coXCJVU0lORyBVUkwgRU1CRURESU5HXCIpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2R1bGU6IFwidXJsXCIsXG4gICAgICAgIHVybE1vZHVsZUNvbmZpZzogZW1iZWRkaW5nXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiJdfQ==
|
|
@@ -13,14 +13,14 @@ class BinderComponent {
|
|
|
13
13
|
this.activeObject.set(allFinishedItems?.[0]);
|
|
14
14
|
}
|
|
15
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, ngImport: i0, template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: BinderComponent, isStandalone: true, selector: "rs-module-binder", inputs: { data: "data", node: "node" }, ngImport: i0, template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".ddb-wrapper{width:100%;position:relative}\n"], dependencies: [{ kind: "ngmodule", type: RenderingModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }] }); }
|
|
17
17
|
}
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BinderComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{ selector: 'rs-module-binder', standalone: true, imports: [
|
|
21
21
|
RenderingModule,
|
|
22
22
|
FormsModule,
|
|
23
|
-
], template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".
|
|
23
|
+
], template: "<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n", styles: [".ddb-wrapper{width:100%;position:relative}\n"] }]
|
|
24
24
|
}], propDecorators: { data: [{
|
|
25
25
|
type: Input
|
|
26
26
|
}], node: [{
|
|
@@ -28,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
28
28
|
}] } });
|
|
29
29
|
|
|
30
30
|
export { BinderComponent };
|
|
31
|
-
//# sourceMappingURL=ngx-rendering-service-lib-binder.component-
|
|
31
|
+
//# sourceMappingURL=ngx-rendering-service-lib-binder.component-CDQBrYTq.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-rendering-service-lib-binder.component-
|
|
1
|
+
{"version":3,"file":"ngx-rendering-service-lib-binder.component-CDQBrYTq.mjs","sources":["../../src/lib/module/binder/binder.component.ts","../../src/lib/module/binder/binder.component.html"],"sourcesContent":["import {AfterViewInit, Component, ElementRef, Input, signal, ViewChild} from '@angular/core';\nimport {RenderingModule} from \"../../rendering.module\";\nimport {RenderModule} from \"../RenderModule\";\nimport {Node} from \"ngx-edu-sharing-api\";\nimport {MatIcon} from \"@angular/material/icon\";\nimport {MatIconButton} from \"@angular/material/button\";\nimport {MatOption, MatSelect} from \"@angular/material/select\";\nimport {FormsModule} from \"@angular/forms\";\nimport {RenderData, AssetStateItem} from \"../../dto/RenderData\";\nimport {MatMenu, MatMenuItem, MatMenuTrigger} from \"@angular/material/menu\";\n\n@Component({\n selector: 'rs-module-binder',\n standalone: true,\n imports: [\n RenderingModule,\n FormsModule,\n ],\n templateUrl: './binder.component.html',\n styleUrl: './binder.component.scss'\n})\nexport class BinderComponent implements RenderModule, AfterViewInit{\n @Input() data: RenderData | undefined;\n @Input() node: Node | undefined;\n activeObject = signal<AssetStateItem | undefined>(undefined);\n\n ngAfterViewInit(): void {\n const allFinishedItems = this.data?.items?.filter(item => item.link !== \"\")\n this.activeObject.set(allFinishedItems?.[0]);\n }\n}\n","<div class=\"binder-wrapper\" *ngIf=\"activeObject()\">\n <a [href]=\"activeObject()?.link\">Link to object</a>\n</div>\n"],"names":[],"mappings":";;;;;;MAqBa,eAAe,CAAA;AAV5B,IAAA,WAAA,GAAA;AAaE,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAA6B,SAAS,CAAC,CAAC;AAM9D,KAAA;IAJC,eAAe,GAAA;QACb,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAA;QAC3E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;KAC9C;8GARU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,ECrB5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4HAGA,EDYI,MAAA,EAAA,CAAA,8CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,kIACf,WAAW,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAKF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;+BACE,kBAAkB,EAAA,UAAA,EAChB,IAAI,EACP,OAAA,EAAA;wBACP,eAAe;wBACf,WAAW;AACZ,qBAAA,EAAA,QAAA,EAAA,4HAAA,EAAA,MAAA,EAAA,CAAA,8CAAA,CAAA,EAAA,CAAA;8BAKQ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;;;"}
|