ngx-rendering-service-lib 0.0.0
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/environments/environment.d.ts +5 -0
- package/esm2022/environments/environment.mjs +6 -0
- package/esm2022/index.mjs +13 -0
- package/esm2022/lib/dto/AssetStateData.mjs +2 -0
- package/esm2022/lib/module/RenderModule.mjs +2 -0
- package/esm2022/lib/module/eduhtml/eduHtml.component.mjs +34 -0
- package/esm2022/lib/module/image/image.component.mjs +51 -0
- package/esm2022/lib/module/pdf/pdf.component.mjs +81 -0
- package/esm2022/lib/module/spreadsheet/spreadsheet.component.mjs +47 -0
- package/esm2022/lib/module/url/url.component.mjs +118 -0
- package/esm2022/lib/module/video/video.component.mjs +61 -0
- package/esm2022/lib/render.component.mjs +145 -0
- package/esm2022/lib/rendering-api.module.mjs +23 -0
- package/esm2022/lib/rendering.module.mjs +25 -0
- package/esm2022/ngx-rendering-service-lib.mjs +5 -0
- package/esm2022/rendering-service-lib.module.mjs +32 -0
- package/fesm2022/ngx-rendering-service-lib.mjs +613 -0
- package/fesm2022/ngx-rendering-service-lib.mjs.map +1 -0
- package/index.d.ts +9 -0
- package/lib/dto/AssetStateData.d.ts +10 -0
- package/lib/module/RenderModule.d.ts +6 -0
- package/lib/module/eduhtml/eduHtml.component.d.ts +14 -0
- package/lib/module/image/image.component.d.ts +17 -0
- package/lib/module/pdf/pdf.component.d.ts +21 -0
- package/lib/module/spreadsheet/spreadsheet.component.d.ts +17 -0
- package/lib/module/url/url.component.d.ts +29 -0
- package/lib/module/video/video.component.d.ts +15 -0
- package/lib/render.component.d.ts +25 -0
- package/lib/rendering-api.module.d.ts +7 -0
- package/lib/rendering.module.d.ts +8 -0
- package/package.json +39 -0
- package/rendering-service-lib.module.d.ts +10 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { RenderingModule } from "./rendering.module";
|
|
3
|
+
import { BehaviorSubject, firstValueFrom, interval, Subject, switchMap, takeUntil } from "rxjs";
|
|
4
|
+
import { RenderingApiModule } from "./rendering-api.module";
|
|
5
|
+
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
|
6
|
+
import { MatProgressBarModule } from "@angular/material/progress-bar";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "ngx-rendering-service-api";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
import * as i3 from "@angular/material/progress-spinner";
|
|
11
|
+
import * as i4 from "@angular/material/progress-bar";
|
|
12
|
+
export class RenderComponent {
|
|
13
|
+
constructor(renderControllerService, jobInfoControllerService) {
|
|
14
|
+
this.renderControllerService = renderControllerService;
|
|
15
|
+
this.jobInfoControllerService = jobInfoControllerService;
|
|
16
|
+
this.renderData$ = new BehaviorSubject(null);
|
|
17
|
+
this.finished = new Subject();
|
|
18
|
+
this.someButNotAllFinished = new Subject();
|
|
19
|
+
this.progress$ = new BehaviorSubject(null);
|
|
20
|
+
this.useUrlModule = false;
|
|
21
|
+
}
|
|
22
|
+
async ngOnChanges(changes) {
|
|
23
|
+
if (this.node === undefined || !this.checkIfBackendModule()) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const renderResponseData = (await firstValueFrom(this.renderControllerService.getRenderData({
|
|
27
|
+
body: this.request
|
|
28
|
+
})));
|
|
29
|
+
// It is possible that there is completed data AND a job id (if there).
|
|
30
|
+
// We need the data then AND trigger the progress logic to keep loading the unfinished resolutions.
|
|
31
|
+
if (renderResponseData.jobId === null) {
|
|
32
|
+
const items = renderResponseData.objectLinks?.map(item => {
|
|
33
|
+
const assetItem = {
|
|
34
|
+
link: item.link,
|
|
35
|
+
progress: 100,
|
|
36
|
+
height: item.height,
|
|
37
|
+
width: item.width
|
|
38
|
+
};
|
|
39
|
+
return assetItem;
|
|
40
|
+
});
|
|
41
|
+
const data = {
|
|
42
|
+
module: renderResponseData.module,
|
|
43
|
+
items: items
|
|
44
|
+
};
|
|
45
|
+
renderResponseData.objectLinks !== undefined && this.renderData$.next(data);
|
|
46
|
+
this.finished.next();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.progress$.next({ module: renderResponseData.module });
|
|
50
|
+
interval(500).pipe(takeUntil(this.finished), switchMap(() => this.jobInfoControllerService.getJobInfo({ jobId: renderResponseData.jobId }).pipe())).subscribe(async (status) => {
|
|
51
|
+
// Some, but not all, jobs are finished ->
|
|
52
|
+
if (status.jobs.some(j => j.status === 'FINISHED') && status.status !== 'FINISHED') {
|
|
53
|
+
const items = status.jobs.map(subJob => {
|
|
54
|
+
const assetItem = {
|
|
55
|
+
link: subJob.objectLink?.link ?? "",
|
|
56
|
+
progress: subJob.status !== 'QUEUED' ? subJob.progress : -(subJob.progress + 1),
|
|
57
|
+
height: subJob.objectLink?.height ?? subJob.quality,
|
|
58
|
+
width: subJob.objectLink?.width ?? 0
|
|
59
|
+
};
|
|
60
|
+
return assetItem;
|
|
61
|
+
});
|
|
62
|
+
const data = {
|
|
63
|
+
module: renderResponseData.module,
|
|
64
|
+
items: items
|
|
65
|
+
};
|
|
66
|
+
this.renderData$.next(data);
|
|
67
|
+
this.someButNotAllFinished.next(true);
|
|
68
|
+
// all finished and/or failed
|
|
69
|
+
}
|
|
70
|
+
else if (status.status === 'FINISHED' || status.status === 'FAILED') {
|
|
71
|
+
const items = status.jobs.map(subJob => {
|
|
72
|
+
const assetItem = {
|
|
73
|
+
link: subJob.objectLink?.link ?? "",
|
|
74
|
+
progress: subJob.progress,
|
|
75
|
+
height: subJob.objectLink?.height ?? subJob.quality,
|
|
76
|
+
width: subJob.objectLink?.width ?? 0
|
|
77
|
+
};
|
|
78
|
+
return assetItem;
|
|
79
|
+
});
|
|
80
|
+
const data = {
|
|
81
|
+
module: renderResponseData.module,
|
|
82
|
+
items: items
|
|
83
|
+
};
|
|
84
|
+
this.renderData$.next(data);
|
|
85
|
+
this.finished.next();
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// no finished jobs -> show either one progress bar with race leader (progress 0-100)
|
|
89
|
+
// or queue position (progress (-inf,-1])
|
|
90
|
+
let progress = 0;
|
|
91
|
+
if (status.jobs.some(j => j.status === 'PROCESSING')) {
|
|
92
|
+
progress = Math.max(...status.jobs.map(j => j.progress));
|
|
93
|
+
}
|
|
94
|
+
else if (status.jobs.some(j => j.status === 'QUEUED')) {
|
|
95
|
+
progress = -(Math.min(...status.jobs.map(j => j.progress + 1)));
|
|
96
|
+
}
|
|
97
|
+
this.progress$.next({
|
|
98
|
+
module: status.module,
|
|
99
|
+
progress: progress
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
checkIfBackendModule() {
|
|
106
|
+
if (["youtube", "pixabay"].includes((this.node?.remote?.repository?.repositoryType ?? "").toLowerCase())) {
|
|
107
|
+
this.useUrlModule = true;
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
if (this.node?.properties === undefined) {
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
if (this.node?.properties["ccm:replicationsource"] !== undefined && (this.node.properties["ccm:replicationsource"][0] ?? "") === "oai:dmglib.org") {
|
|
114
|
+
this.useUrlModule = true;
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
if (this.node?.properties["ccm:wwwurl"].length > 0) {
|
|
118
|
+
this.useUrlModule = true;
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderComponent, deps: [{ token: i1.RenderControllerService }, { token: i1.JobInfoControllerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
124
|
+
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\">\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' || data?.module === 'AUDIO'){\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') {\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 </ng-container>\n <ng-container *ngIf=\"useUrlModule\">\n @defer (when useUrlModule) {\n <rs-module-url [node]=\"node\"></rs-module-url>\n }\n </ng-container>\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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i4.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/url/url.component").then(m => m.UrlComponent)]] }); }
|
|
125
|
+
}
|
|
126
|
+
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/url/url.component").then(m => m.UrlComponent)], resolveMetadata: (ImageComponent, VideoComponent, PdfComponent, EduHtmlComponent, SpreadsheetComponent, UrlComponent) => ({ decorators: [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{ selector: 'rs-root', standalone: true, imports: [
|
|
129
|
+
RenderingApiModule,
|
|
130
|
+
RenderingModule,
|
|
131
|
+
ImageComponent,
|
|
132
|
+
VideoComponent,
|
|
133
|
+
MatProgressSpinnerModule,
|
|
134
|
+
MatProgressBarModule,
|
|
135
|
+
PdfComponent,
|
|
136
|
+
UrlComponent,
|
|
137
|
+
EduHtmlComponent,
|
|
138
|
+
SpreadsheetComponent,
|
|
139
|
+
], template: "<div class=\"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' || data?.module === 'AUDIO'){\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') {\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 </ng-container>\n <ng-container *ngIf=\"useUrlModule\">\n @defer (when useUrlModule) {\n <rs-module-url [node]=\"node\"></rs-module-url>\n }\n </ng-container>\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"] }]
|
|
140
|
+
}], ctorParameters: () => [{ type: i1.RenderControllerService }, { type: i1.JobInfoControllerService }], propDecorators: { request: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], node: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}] } }) });
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFNbkQsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRTVFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7QUF5QnBFLE1BQU0sT0FBTyxlQUFlO0lBVTFCLFlBQ1UsdUJBQWdELEVBQ2hELHdCQUFrRDtRQURsRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFSNUQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFDL0QsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQTtRQUM5QyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQStDLElBQUksQ0FBQyxDQUFDO1FBQ3BGLGlCQUFZLEdBQUcsS0FBSyxDQUFBO0lBTXBCLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3RDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksQ0FBRSxJ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SSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1lBQ3hCLE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1lBQ3hCLE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQzs4R0FwSFUsZUFBZTtrR0FBZixlQUFlLHNJQ3RDNUIsZzFFQXNEQSwwVkQ5Qkksa0JBQWtCLDhCQUNsQixlQUFlLDBoQkFHZix3QkFBd0Isa09BQ3hCLG9CQUFvQjs7Z0dBU1gsZUFBZTtzQkFsQjNCLFNBQVM7bUNBQ0UsU0FBUyxjQUNQLElBQUksV0FDUDs0QkFDUCxrQkFBa0I7NEJBQ2xCLGVBQWU7NEJBQ2YsY0FBYzs0QkFDZCxjQUFjOzRCQUNkLHdCQUF3Qjs0QkFDeEIsb0JBQW9COzRCQUNwQixZQUFZOzRCQUNaLFlBQVk7NEJBQ1osZ0JBQWdCOzRCQUNoQixvQkFBb0I7eUJBQ3JCO3VJQU1RLE9BQU87MEJBQWYsS0FBSztvQkFDRyxJQUFJOzBCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JlbmRlcmluZ01vZHVsZX0gZnJvbSBcIi4vcmVuZGVyaW5nLm1vZHVsZVwiO1xuaW1wb3J0IHtcbiAgSm9iSW5mb0NvbnRyb2xsZXJTZXJ2aWNlLFxuICBSZW5kZXJDb250cm9sbGVyU2VydmljZSxcbiAgUmVuZGVyRGF0YVJlcXVlc3Rcbn0gZnJvbSBcIm5neC1yZW5kZXJpbmctc2VydmljZS1hcGlcIjtcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgaW50ZXJ2YWwsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtJbWFnZUNvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL2ltYWdlL2ltYWdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtSZW5kZXJpbmdBcGlNb2R1bGV9IGZyb20gXCIuL3JlbmRlcmluZy1hcGkubW9kdWxlXCI7XG5pbXBvcnQge1ZpZGVvQ29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvdmlkZW8vdmlkZW8uY29tcG9uZW50XCI7XG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXJcIjtcbmltcG9ydCB7Tm9kZX0gZnJvbSBcIm5neC1lZHUtc2hhcmluZy1hcGlcIjtcbmltcG9ydCB7TWF0UHJvZ3Jlc3NCYXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXJcIjtcbmltcG9ydCB7QXNzZXRTdGF0ZURhdGEsIEFzc2V0U3RhdGVJdGVtfSBmcm9tIFwiLi9kdG8vQXNzZXRTdGF0ZURhdGFcIjtcbmltcG9ydCB7UGRmQ29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvcGRmL3BkZi5jb21wb25lbnRcIjtcbmltcG9ydCB7VXJsQ29tcG9uZW50fSBmcm9tIFwiLi9tb2R1bGUvdXJsL3VybC5jb21wb25lbnRcIjtcbmltcG9ydCB7RWR1SHRtbENvbXBvbmVudH0gZnJvbSBcIi4vbW9kdWxlL2VkdWh0bWwvZWR1SHRtbC5jb21wb25lbnRcIjtcbmltcG9ydCB7U3ByZWFkc2hlZXRDb21wb25lbnR9IGZyb20gXCIuL21vZHVsZS9zcHJlYWRzaGVldC9zcHJlYWRzaGVldC5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncnMtcm9vdCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSZW5kZXJpbmdBcGlNb2R1bGUsXG4gICAgUmVuZGVyaW5nTW9kdWxlLFxuICAgIEltYWdlQ29tcG9uZW50LFxuICAgIFZpZGVvQ29tcG9uZW50LFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBQZGZDb21wb25lbnQsXG4gICAgVXJsQ29tcG9uZW50LFxuICAgIEVkdUh0bWxDb21wb25lbnQsXG4gICAgU3ByZWFkc2hlZXRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmVuZGVyLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBSZW5kZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvLyBAVE9ETzogVXNlIGVudW0gcHJvdmlkZWQgYnkgQmFja2VuZCFcbiAgQElucHV0KCkgcmVxdWVzdDogUmVuZGVyRGF0YVJlcXVlc3QgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG5vZGU6IE5vZGUgfCB1bmRlZmluZWQ7XG4gIHJlbmRlckRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBc3NldFN0YXRlRGF0YSB8IG51bGw+KG51bGwpO1xuICBmaW5pc2hlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHNvbWVCdXROb3RBbGxGaW5pc2hlZCA9IG5ldyBTdWJqZWN0PEJvb2xlYW4+KClcbiAgcHJvZ3Jlc3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IG1vZHVsZTogc3RyaW5nLCBwcm9ncmVzcz86IG51bWJlciB9IHwgbnVsbD4obnVsbCk7XG4gIHVzZVVybE1vZHVsZSA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJDb250cm9sbGVyU2VydmljZTogUmVuZGVyQ29udHJvbGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBqb2JJbmZvQ29udHJvbGxlclNlcnZpY2U6IEpvYkluZm9Db250cm9sbGVyU2VydmljZSxcbiAgKSB7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMubm9kZSA9PT0gdW5kZWZpbmVkIHx8ICEgdGhpcy5jaGVja0lmQmFja2VuZE1vZHVsZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlbmRlclJlc3BvbnNlRGF0YSA9IChhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlbmRlckNvbnRyb2xsZXJTZXJ2aWNlLmdldFJlbmRlckRhdGEoe1xuICAgICAgYm9keTogdGhpcy5yZXF1ZXN0ISFcbiAgICB9KSkpO1xuICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgY29tcGxldGVkIGRhdGEgQU5EIGEgam9iIGlkIChpZiB0aGVyZSkuXG4gICAgLy8gV2UgbmVlZCB0aGUgZGF0YSB0aGVuIEFORCB0cmlnZ2VyIHRoZSBwcm9ncmVzcyBsb2dpYyB0byBrZWVwIGxvYWRpbmcgdGhlIHVuZmluaXNoZWQgcmVzb2x1dGlvbnMuXG4gICAgaWYgKHJlbmRlclJlc3BvbnNlRGF0YS5qb2JJZCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgaXRlbXMgPSByZW5kZXJSZXNwb25zZURhdGEub2JqZWN0TGlua3M/Lm1hcChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgYXNzZXRJdGVtOiBBc3NldFN0YXRlSXRlbSA9IHtcbiAgICAgICAgICBsaW5rOiBpdGVtLmxpbmssXG4gICAgICAgICAgcHJvZ3Jlc3M6IDEwMCxcbiAgICAgICAgICBoZWlnaHQ6IGl0ZW0uaGVpZ2h0LFxuICAgICAgICAgIHdpZHRoOiBpdGVtLndpZHRoXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFzc2V0SXRlbVxuICAgICAgfSlcbiAgICAgIGNvbnN0IGRhdGE6IEFzc2V0U3RhdGVEYXRhID0ge1xuICAgICAgICBtb2R1bGU6IHJlbmRlclJlc3BvbnNlRGF0YS5tb2R1bGUsXG4gICAgICAgIGl0ZW1zOiBpdGVtc1xuICAgICAgfVxuICAgICAgcmVuZGVyUmVzcG9uc2VEYXRhLm9iamVjdExpbmtzICE9PSB1bmRlZmluZWQgJiYgdGhpcy5yZW5kZXJEYXRhJC5uZXh0KGRhdGEpO1xuICAgICAgdGhpcy5maW5pc2hlZC5uZXh0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvZ3Jlc3MkLm5leHQoe21vZHVsZTogcmVuZGVyUmVzcG9uc2VEYXRhLm1vZHVsZX0pO1xuICAgICAgaW50ZXJ2YWwoNTAwKS5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5maW5pc2hlZCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmpvYkluZm9Db250cm9sbGVyU2VydmljZS5nZXRKb2JJbmZvKHtqb2JJZDogcmVuZGVyUmVzcG9uc2VEYXRhLmpvYklkISF9KS5waXBlKCkpLFxuICAgICAgKS5zdWJzY3JpYmUoYXN5bmMgKHN0YXR1cykgPT4ge1xuICAgICAgICAvLyBTb21lLCBidXQgbm90IGFsbCwgam9icyBhcmUgZmluaXNoZWQgLT5cbiAgICAgICAgaWYgKHN0YXR1cy5qb2JzLnNvbWUoaiA9PiBqLnN0YXR1cyA9PT0gJ0ZJTklTSEVEJykgJiYgc3RhdHVzLnN0YXR1cyAhPT0gJ0ZJTklTSEVEJykge1xuICAgICAgICAgIGNvbnN0IGl0ZW1zID0gc3RhdHVzLmpvYnMubWFwKHN1YkpvYiA9PiB7XG4gICAgICAgICAgICBjb25zdCBhc3NldEl0ZW06IEFzc2V0U3RhdGVJdGVtID0ge1xuICAgICAgICAgICAgICBsaW5rOiBzdWJKb2Iub2JqZWN0TGluaz8ubGluayA/PyBcIlwiLFxuICAgICAgICAgICAgICBwcm9ncmVzczogc3ViSm9iLnN0YXR1cyAhPT0gJ1FVRVVFRCcgPyBzdWJKb2IucHJvZ3Jlc3MgOiAtKHN1YkpvYi5wcm9ncmVzcyArMSksXG4gICAgICAgICAgICAgIGhlaWdodDogc3ViSm9iLm9iamVjdExpbms/LmhlaWdodCA/PyBzdWJKb2IucXVhbGl0eSxcbiAgICAgICAgICAgICAgd2lkdGg6IHN1YkpvYi5vYmplY3RMaW5rPy53aWR0aCA/PyAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXNzZXRJdGVtXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBkYXRhOiBBc3NldFN0YXRlRGF0YSA9IHtcbiAgICAgICAgICAgIG1vZHVsZTogcmVuZGVyUmVzcG9uc2VEYXRhLm1vZHVsZSxcbiAgICAgICAgICAgIGl0ZW1zOiBpdGVtc1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICAgICAgICB0aGlzLnNvbWVCdXROb3RBbGxGaW5pc2hlZC5uZXh0KHRydWUpXG4gICAgICAgICAgLy8gYWxsIGZpbmlzaGVkIGFuZC9vciBmYWlsZWRcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMuc3RhdHVzID09PSAnRklOSVNIRUQnIHx8IHN0YXR1cy5zdGF0dXMgPT09ICdGQUlMRUQnKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBzdGF0dXMuam9icy5tYXAoc3ViSm9iID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFzc2V0SXRlbTogQXNzZXRTdGF0ZUl0ZW0gPSB7XG4gICAgICAgICAgICAgIGxpbms6IHN1YkpvYi5vYmplY3RMaW5rPy5saW5rID8/IFwiXCIsXG4gICAgICAgICAgICAgIHByb2dyZXNzOiBzdWJKb2IucHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIGhlaWdodDogc3ViSm9iLm9iamVjdExpbms/LmhlaWdodCA/PyBzdWJKb2IucXVhbGl0eSxcbiAgICAgICAgICAgICAgd2lkdGg6IHN1YkpvYi5vYmplY3RMaW5rPy53aWR0aCA/PyAwXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYXNzZXRJdGVtXG4gICAgICAgICAgfSlcbiAgICAgICAgICBjb25zdCBkYXRhOiBBc3NldFN0YXRlRGF0YSA9IHtcbiAgICAgICAgICAgIG1vZHVsZTogcmVuZGVyUmVzcG9uc2VEYXRhLm1vZHVsZSxcbiAgICAgICAgICAgIGl0ZW1zOiBpdGVtc1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnJlbmRlckRhdGEkLm5leHQoZGF0YSlcbiAgICAgICAgICB0aGlzLmZpbmlzaGVkLm5leHQoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIG5vIGZpbmlzaGVkIGpvYnMgLT4gc2hvdyBlaXRoZXIgb25lIHByb2dyZXNzIGJhciB3aXRoIHJhY2UgbGVhZGVyIChwcm9ncmVzcyAwLTEwMClcbiAgICAgICAgICAvLyBvciBxdWV1ZSBwb3NpdGlvbiAocHJvZ3Jlc3MgKC1pbmYsLTFdKVxuICAgICAgICAgIGxldCBwcm9ncmVzcyA9IDBcbiAgICAgICAgICBpZiAoc3RhdHVzLmpvYnMuc29tZShqID0+IGouc3RhdHVzID09PSAnUFJPQ0VTU0lORycpKSB7XG4gICAgICAgICAgICBwcm9ncmVzcyA9IE1hdGgubWF4KC4uLnN0YXR1cy5qb2JzLm1hcChqID0+IGoucHJvZ3Jlc3MpKVxuICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzLmpvYnMuc29tZShqID0+IGouc3RhdHVzID09PSAnUVVFVUVEJykpIHtcbiAgICAgICAgICAgIHByb2dyZXNzID0gLShNYXRoLm1pbiguLi5zdGF0dXMuam9icy5tYXAoaiA9PiBqLnByb2dyZXNzICsgMSkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnByb2dyZXNzJC5uZXh0KHtcbiAgICAgICAgICAgIG1vZHVsZTogc3RhdHVzLm1vZHVsZSxcbiAgICAgICAgICAgIHByb2dyZXNzOiBwcm9ncmVzc1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjaGVja0lmQmFja2VuZE1vZHVsZSgpOiBib29sZWFuIHtcbiAgICBpZiAoW1wieW91dHViZVwiLCBcInBpeGFiYXlcIl0uaW5jbHVkZXMoKHRoaXMubm9kZT8ucmVtb3RlPy5yZXBvc2l0b3J5Py5yZXBvc2l0b3J5VHlwZSA/PyBcIlwiKS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgdGhpcy51c2VVcmxNb2R1bGUgPSB0cnVlXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKHRoaXMubm9kZT8ucHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubm9kZT8ucHJvcGVydGllc1tcImNjbTpyZXBsaWNhdGlvbnNvdXJjZVwiXSAhPT0gdW5kZWZpbmVkICYmICh0aGlzLm5vZGUucHJvcGVydGllc1tcImNjbTpyZXBsaWNhdGlvbnNvdXJjZVwiXVswXSA/PyBcIlwiKSA9PT0gXCJvYWk6ZG1nbGliLm9yZ1wiKSB7XG4gICAgICB0aGlzLnVzZVVybE1vZHVsZSA9IHRydWVcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBpZiAodGhpcy5ub2RlPy5wcm9wZXJ0aWVzW1wiY2NtOnd3d3VybFwiXS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnVzZVVybE1vZHVsZSA9IHRydWVcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibW9kdWxlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZW5kZXJEYXRhJCB8IGFzeW5jIGFzIGRhdGFcIj5cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnSU1BR0UnKXtcbiAgICAgIDxycy1tb2R1bGUtaW1hZ2UgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1pbWFnZT5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdWSURFTycgfHwgZGF0YT8ubW9kdWxlID09PSAnQVVESU8nKXtcbiAgICAgIDxycy1tb2R1bGUtdmlkZW8gW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS12aWRlbz5cbiAgICB9IEBsb2FkaW5nIHtcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICAgIEBkZWZlciAod2hlbiBkYXRhPy5tb2R1bGUgPT09ICdQREYnIHx8IGRhdGE/Lm1vZHVsZSA9PT0gJ0RPQ1VNRU5UJykge1xuICAgICAgPHJzLW1vZHVsZS1wZGYgW2RhdGFdPVwiZGF0YVwiIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS1wZGY+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnRURVSFRNTCcpIHtcbiAgICAgIDxycy1tb2R1bGUtZWR1SHRtbCBbZGF0YV09XCJkYXRhXCIgW25vZGVdPVwibm9kZVwiPjwvcnMtbW9kdWxlLWVkdUh0bWw+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICBAZGVmZXIgKHdoZW4gZGF0YT8ubW9kdWxlID09PSAnU1BSRUFEU0hFRVQnKSB7XG4gICAgICA8cnMtbW9kdWxlLXNwcmVhZHNoZWV0IFtkYXRhXT1cImRhdGFcIiBbbm9kZV09XCJub2RlXCI+PC9ycy1tb2R1bGUtc3ByZWFkc2hlZXQ+XG4gICAgfSBAbG9hZGluZyB7XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1wiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VVcmxNb2R1bGVcIj5cbiAgQGRlZmVyICh3aGVuIHVzZVVybE1vZHVsZSkge1xuICAgIDxycy1tb2R1bGUtdXJsIFtub2RlXT1cIm5vZGVcIj48L3JzLW1vZHVsZS11cmw+XG4gIH1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiICpuZ0lmPVwiKHJlbmRlckRhdGEkIHwgYXN5bmMpID09PSBudWxsO1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9ncmVzcyQgfCBhc3luYyBhcyBwcm9ncmVzc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiWydWSURFTycsICdBVURJTyddLmluY2x1ZGVzKHByb2dyZXNzLm1vZHVsZSkgPyAnYmFyJyA6ICdzcGlubmVyJ1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYmFyJ1wiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCkgPCAwXCI+UXVldWUgcG9zaXRpb246IHt7LShwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKX19PC9kaXY+XG4gICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgW3ZhbHVlXT1cIihwcm9ncmVzcy5wcm9ncmVzcyA/PyAwKVwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1wcm9ncmVzcy1iYXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc3Bpbm5lcidcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApIDwgMFwiPlF1ZXVlIHBvc2l0aW9uOiB7ey0ocHJvZ3Jlc3MucHJvZ3Jlc3MgPz8gMCl9PC9kaXY+XG4gICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCI1MFwiICpuZ0lmPVwiKHByb2dyZXNzLnByb2dyZXNzID8/IDApID49IDBcIj48L21hdC1zcGlubmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxuICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { RenderingServiceApiModule } from "ngx-rendering-service-api";
|
|
3
|
+
import { environment } from "../environments/environment";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "ngx-rendering-service-api";
|
|
6
|
+
export class RenderingApiModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingApiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RenderingApiModule, imports: [i1.RenderingServiceApiModule] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingApiModule, imports: [RenderingServiceApiModule.forRoot({
|
|
10
|
+
rootUrl: environment.rootUrl
|
|
11
|
+
})] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingApiModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
imports: [
|
|
17
|
+
RenderingServiceApiModule.forRoot({
|
|
18
|
+
rootUrl: environment.rootUrl
|
|
19
|
+
})
|
|
20
|
+
]
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLWFwaS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3JlbmRlcmluZy1hcGkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7QUFTeEQsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQUwzQix5QkFBeUIsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTzthQUM3QixDQUFDOzsyRkFHTyxrQkFBa0I7a0JBUDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHlCQUF5QixDQUFDLE9BQU8sQ0FBQzs0QkFDaEMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO3lCQUM3QixDQUFDO3FCQUNIO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7UmVuZGVyaW5nU2VydmljZUFwaU1vZHVsZX0gZnJvbSBcIm5neC1yZW5kZXJpbmctc2VydmljZS1hcGlcIjtcbmltcG9ydCB7ZW52aXJvbm1lbnR9IGZyb20gXCIuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFJlbmRlcmluZ1NlcnZpY2VBcGlNb2R1bGUuZm9yUm9vdCh7XG4gICAgICByb290VXJsOiBlbnZpcm9ubWVudC5yb290VXJsXG4gICAgfSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZW5kZXJpbmdBcGlNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { EduSharingApiModule } from "ngx-edu-sharing-api";
|
|
4
|
+
import { environment } from "../environments/environment";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "ngx-edu-sharing-api";
|
|
7
|
+
export class RenderingModule {
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, imports: [CommonModule, i1.EduSharingApiModule], exports: [CommonModule] }); }
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, imports: [CommonModule,
|
|
11
|
+
EduSharingApiModule.forRoot({ rootUrl: environment.esRootUrl }), CommonModule] }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
imports: [
|
|
17
|
+
CommonModule,
|
|
18
|
+
EduSharingApiModule.forRoot({ rootUrl: environment.esRootUrl })
|
|
19
|
+
],
|
|
20
|
+
exports: [
|
|
21
|
+
CommonModule
|
|
22
|
+
]
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmVuZGVyaW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7OztBQVd4RCxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsWUFQeEIsWUFBWSxxQ0FJWixZQUFZOytHQUdILGVBQWUsWUFQeEIsWUFBWTtZQUNaLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsU0FBUyxFQUFDLENBQUMsRUFHN0QsWUFBWTs7MkZBR0gsZUFBZTtrQkFUM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFBQyxDQUFDO3FCQUM5RDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtFZHVTaGFyaW5nQXBpTW9kdWxlfSBmcm9tIFwibmd4LWVkdS1zaGFyaW5nLWFwaVwiO1xuaW1wb3J0IHtlbnZpcm9ubWVudH0gZnJvbSBcIi4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEVkdVNoYXJpbmdBcGlNb2R1bGUuZm9yUm9vdCh7cm9vdFVybDogZW52aXJvbm1lbnQuZXNSb290VXJsfSlcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlbmRlcmluZ01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJlbmRlcmluZy1zZXJ2aWNlLWxpYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9uZ3gtcmVuZGVyaW5nLXNlcnZpY2UtbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { RenderComponent } from "./lib/render.component";
|
|
3
|
+
import { CommonModule } from "@angular/common";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class RenderingServiceLibModule {
|
|
6
|
+
static forRoot() {
|
|
7
|
+
return {
|
|
8
|
+
ngModule: RenderingServiceLibModule,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingServiceLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: RenderingServiceLibModule, imports: [RenderComponent,
|
|
13
|
+
CommonModule], exports: [CommonModule,
|
|
14
|
+
RenderComponent] }); }
|
|
15
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingServiceLibModule, imports: [RenderComponent,
|
|
16
|
+
CommonModule, CommonModule] }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: RenderingServiceLibModule, decorators: [{
|
|
19
|
+
type: NgModule,
|
|
20
|
+
args: [{
|
|
21
|
+
declarations: [],
|
|
22
|
+
imports: [
|
|
23
|
+
RenderComponent,
|
|
24
|
+
CommonModule,
|
|
25
|
+
],
|
|
26
|
+
exports: [
|
|
27
|
+
CommonModule,
|
|
28
|
+
RenderComponent
|
|
29
|
+
],
|
|
30
|
+
}]
|
|
31
|
+
}] });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLXNlcnZpY2UtbGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJpbmctc2VydmljZS1saWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBYTdDLE1BQU0sT0FBTyx5QkFBeUI7SUFDN0IsTUFBTSxDQUFDLE9BQU87UUFFbkIsT0FBTztZQUNMLFFBQVEsRUFBRSx5QkFBeUI7U0FDcEMsQ0FBQztJQUNKLENBQUM7OEdBTlUseUJBQXlCOytHQUF6Qix5QkFBeUIsWUFSbEMsZUFBZTtZQUNmLFlBQVksYUFHWixZQUFZO1lBQ1osZUFBZTsrR0FHTix5QkFBeUIsWUFSbEMsZUFBZTtZQUNmLFlBQVksRUFHWixZQUFZOzsyRkFJSCx5QkFBeUI7a0JBWHJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtSZW5kZXJDb21wb25lbnR9IGZyb20gXCIuL2xpYi9yZW5kZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBpbXBvcnRzOiBbXG4gICAgUmVuZGVyQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZW5kZXJDb21wb25lbnRcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVuZGVyaW5nU2VydmljZUxpYk1vZHVsZSB7XG4gIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSZW5kZXJpbmdTZXJ2aWNlTGliTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBSZW5kZXJpbmdTZXJ2aWNlTGliTW9kdWxlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|