@sumaris-net/ngx-components 18.6.26 → 18.6.28
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/doc/changelog.md +7 -0
- package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +18 -2
- package/esm2022/src/app/shared/pipes/pipes.module.mjs +5 -2
- package/esm2022/src/app/shared/print/print.service.mjs +24 -6
- package/fesm2022/sumaris-net.ngx-components.mjs +42 -5
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/install/install-upgrade-card.component.d.ts +1 -1
- package/src/app/shared/inputs.d.ts +1 -1
- package/src/app/shared/pipes/arrays.pipe.d.ts +8 -0
- package/src/app/shared/pipes/pipes.module.d.ts +1 -1
- package/src/app/shared/print/print.service.d.ts +11 -1
- package/src/assets/manifest.json +1 -1
package/doc/changelog.md
CHANGED
|
@@ -1163,3 +1163,10 @@ enh: Environment: add useHash property to configure Angular router to use hash U
|
|
|
1163
1163
|
|
|
1164
1164
|
# 18.6.26
|
|
1165
1165
|
- enh(PlatformService) Add `closeToast(id: number)`
|
|
1166
|
+
|
|
1167
|
+
# 18.6.27
|
|
1168
|
+
- enh(pipes) Add pipe `arrayDistinct`
|
|
1169
|
+
|
|
1170
|
+
# 18.6.28
|
|
1171
|
+
- enh(PrintService) Add `?print-id=` into created iframe URL
|
|
1172
|
+
- enh(PrintService) Add function `getJobId(url?: string)` to retrieve the Job ID of the given URL
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Pipe } from '@angular/core';
|
|
2
|
-
import { getPropertyByPath, isNotNil } from '../functions';
|
|
2
|
+
import { getPropertyByPath, isNotNil, removeDuplicatesFromArray } from '../functions';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class NotEmptyArrayPipe {
|
|
5
5
|
transform(val) {
|
|
@@ -153,4 +153,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
153
153
|
name: 'arrayJoin',
|
|
154
154
|
}]
|
|
155
155
|
}] });
|
|
156
|
-
|
|
156
|
+
export class ArrayDistinctPipe {
|
|
157
|
+
transform(val, opts) {
|
|
158
|
+
if (!Array.isArray(val))
|
|
159
|
+
return null;
|
|
160
|
+
const property = typeof opts === 'string' ? opts : opts?.property;
|
|
161
|
+
return opts?.['omitNil'] !== true ? removeDuplicatesFromArray(val, property) : removeDuplicatesFromArray(val, property).filter(isNotNil);
|
|
162
|
+
}
|
|
163
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayDistinctPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
164
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArrayDistinctPipe, name: "arrayDistinct" });
|
|
165
|
+
}
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayDistinctPipe, decorators: [{
|
|
167
|
+
type: Pipe,
|
|
168
|
+
args: [{
|
|
169
|
+
name: 'arrayDistinct',
|
|
170
|
+
}]
|
|
171
|
+
}] });
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9hcnJheXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUt0RixNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFNBQVMsQ0FBVSxHQUFrQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7d0dBSlUsaUJBQWlCO3NHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEI7O0FBV0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsU0FBUyxDQUFVLEdBQWtCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt3R0FKVSxjQUFjO3NHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCOztBQVdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLElBQW1FO1FBQ3hHLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3R0FkVSxlQUFlO3NHQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGVBQWU7aUJBQ3RCOztBQXFCRCxNQUFNLE9BQU8sY0FBYztJQUN6QixTQUFTLENBQVUsR0FBa0I7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDckMsT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQzt3R0FKVSxjQUFjO3NHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7aUJBQ25COztBQVdELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBVSxHQUFrQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JELENBQUM7d0dBSlUsYUFBYTtzR0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUh6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO2lCQUNsQjs7QUFXRCxNQUFNLE9BQU8sY0FBYztJQUN6Qjs7OztPQUlHO0lBQ0gsU0FBUyxDQUFVLEdBQWtCLEVBQUUsSUFBNEU7UUFDakgsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0csT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSTtZQUM3QixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUUsQ0FBQzt3R0FaVSxjQUFjO3NHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFlBQVk7aUJBQ25COztBQW1CRCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLGFBQWdCLEVBQUUsU0FBa0I7UUFDekUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNsRSxDQUFDO3dHQUpVLGlCQUFpQjtzR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO2lCQUN0Qjs7QUFXRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQVUsR0FBa0IsRUFBRSxRQUF3QjtRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNyQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQzt3R0FKVSxlQUFlO3NHQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCOztBQVdELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkMsQ0FBQzt3R0FKVSxhQUFhO3NHQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBSHpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7aUJBQ2xCOztBQVdELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsU0FBUyxDQUFVLEdBQWtCLEVBQUUsSUFBdUQ7UUFDNUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBRSxJQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7UUFDOUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzSSxDQUFDO3dHQUxVLGlCQUFpQjtzR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFByb3BlcnR5QnlQYXRoLCBpc05vdE5pbCwgcmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheSB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2lzTm90RW1wdHlBcnJheScsXG59KVxuZXhwb3J0IGNsYXNzIE5vdEVtcHR5QXJyYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB2YWwubGVuZ3RoID4gMDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc0VtcHR5QXJyYXknLFxufSlcbmV4cG9ydCBjbGFzcyBFbXB0eUFycmF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiB2YWwubGVuZ3RoID09PSAwO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2lzQXJyYXlMZW5ndGgnLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUxlbmd0aFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgYXJncz86IHsgZ3JlYXRlclRoYW4/OiBudW1iZXI7IGVxdWFscz86IG51bWJlcjsgbGVzc1RoYW4/OiBudW1iZXIgfSk6IGJvb2xlYW4ge1xuICAgIGFyZ3MgPSBhcmdzIHx8IHt9O1xuICAgIGNvbnN0IHNpemUgPSAhQXJyYXkuaXNBcnJheSh2YWwpID8gMCA6IHZhbC5sZW5ndGg7XG4gICAgaWYgKGlzTm90TmlsKGFyZ3MubGVzc1RoYW4pKSB7XG4gICAgICByZXR1cm4gc2l6ZSA8IGFyZ3MubGVzc1RoYW47XG4gICAgfVxuICAgIGlmIChpc05vdE5pbChhcmdzLmdyZWF0ZXJUaGFuKSkge1xuICAgICAgcmV0dXJuIHNpemUgPiBhcmdzLmdyZWF0ZXJUaGFuO1xuICAgIH1cbiAgICBpZiAoaXNOb3ROaWwoYXJncy5lcXVhbHMpKSB7XG4gICAgICByZXR1cm4gc2l6ZSA9PT0gYXJncy5lcXVhbHM7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheUZpcnN0Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGaXJzdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSk6IFQgfCBudWxsIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPiAwID8gdmFsWzBdIDogbnVsbDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheUxhc3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUxhc3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10pOiBUIHwgbnVsbCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB2YWwubGVuZ3RoID4gMCA/IHZhbFt2YWwubGVuZ3RoIC0gMV0gOiBudWxsO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5UGx1Y2snLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheVBsdWNrUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHZhbFxuICAgKiBAcGFyYW0gb3B0cyBwcm9wZXJ0eSB0byBnZXQsIG9yIG9wdGlvbnNcbiAgICovXG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIG9wdHM6IHN0cmluZyB8IHN0cmluZ1tdIHwgeyBwcm9wZXJ0eTogc3RyaW5nIHwgc3RyaW5nW107IG9taXROaWw/OiBib29sZWFuIH0pOiBhbnlbXSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkgfHwgIW9wdHMpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnIHx8IEFycmF5LmlzQXJyYXkob3B0cykgPyAob3B0cyBhcyBzdHJpbmcgfCBzdHJpbmdbXSkgOiBvcHRzLnByb3BlcnR5O1xuICAgIHJldHVybiBvcHRzWydvbWl0TmlsJ10gIT09IHRydWVcbiAgICAgID8gdmFsLm1hcCgodmFsdWUpID0+IGdldFByb3BlcnR5QnlQYXRoKHZhbHVlLCBwcm9wZXJ0eSkpXG4gICAgICA6IHZhbC5tYXAoKHZhbHVlKSA9PiBnZXRQcm9wZXJ0eUJ5UGF0aCh2YWx1ZSwgcHJvcGVydHkpKS5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5SW5jbHVkZXMnLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUluY2x1ZGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBzZWFyY2hFbGVtZW50OiBULCBmcm9tSW5kZXg/OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAodmFsICYmIHZhbC5pbmNsdWRlcyhzZWFyY2hFbGVtZW50LCBmcm9tSW5kZXgpKSB8fCBmYWxzZTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheUZpbHRlcicsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5RmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBmaWx0ZXJGbjogKFQpID0+IGJvb2xlYW4pOiBUW10gfCBudWxsIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbC5maWx0ZXIoZmlsdGVyRm4pO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5Sm9pbicsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Sm9pblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgc2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHZhbC5qb2luKHNlcGFyYXRvcikgfHwgJyc7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlEaXN0aW5jdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5RGlzdGluY3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIG9wdHM/OiBzdHJpbmcgfCB7IHByb3BlcnR5OiBzdHJpbmc7IG9taXROaWw/OiBib29sZWFuIH0pOiBhbnlbXSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnID8gKG9wdHMgYXMgc3RyaW5nKSA6IG9wdHM/LnByb3BlcnR5O1xuICAgIHJldHVybiBvcHRzPy5bJ29taXROaWwnXSAhPT0gdHJ1ZSA/IHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkodmFsLCBwcm9wZXJ0eSkgOiByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5KHZhbCwgcHJvcGVydHkpLmZpbHRlcihpc05vdE5pbCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,7 +11,7 @@ import { HighlightPipe } from './highlight.pipe';
|
|
|
11
11
|
import { FileSizePipe } from './file-size.pipe';
|
|
12
12
|
import { DurationPipe } from './duration.pipe';
|
|
13
13
|
import { EvenPipe, MathAbsPipe, OddPipe } from './math.pipes';
|
|
14
|
-
import { ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayPluckPipe, EmptyArrayPipe, NotEmptyArrayPipe, } from './arrays.pipe';
|
|
14
|
+
import { ArrayDistinctPipe, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayPluckPipe, EmptyArrayPipe, NotEmptyArrayPipe, } from './arrays.pipe';
|
|
15
15
|
import { MapGetPipe, MapKeysPipe, MapValuesPipe } from './maps.pipe';
|
|
16
16
|
import { TranslatablePipe, TranslateContextPipe } from './translate-context.pipe';
|
|
17
17
|
import { NgInitDirective } from './ng-init.pipe';
|
|
@@ -53,6 +53,7 @@ const components = [
|
|
|
53
53
|
ArrayIncludesPipe,
|
|
54
54
|
ArrayFilterPipe,
|
|
55
55
|
ArrayJoinPipe,
|
|
56
|
+
ArrayDistinctPipe,
|
|
56
57
|
MapGetPipe,
|
|
57
58
|
MapKeysPipe,
|
|
58
59
|
MapValuesPipe,
|
|
@@ -124,6 +125,7 @@ export class SharedPipesModule {
|
|
|
124
125
|
ArrayIncludesPipe,
|
|
125
126
|
ArrayFilterPipe,
|
|
126
127
|
ArrayJoinPipe,
|
|
128
|
+
ArrayDistinctPipe,
|
|
127
129
|
MapGetPipe,
|
|
128
130
|
MapKeysPipe,
|
|
129
131
|
MapValuesPipe,
|
|
@@ -191,6 +193,7 @@ export class SharedPipesModule {
|
|
|
191
193
|
ArrayIncludesPipe,
|
|
192
194
|
ArrayFilterPipe,
|
|
193
195
|
ArrayJoinPipe,
|
|
196
|
+
ArrayDistinctPipe,
|
|
194
197
|
MapGetPipe,
|
|
195
198
|
MapKeysPipe,
|
|
196
199
|
MapValuesPipe,
|
|
@@ -244,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
244
247
|
exports: components,
|
|
245
248
|
}]
|
|
246
249
|
}] });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixhQUFhLEVBQ2IsZUFBZSxFQUNmLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVB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QUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixXQUFXO1lBQ1gsT0FBTztZQUNQLFFBQVE7WUFDUixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjO1lBQ2QsYUFBYTtZQUNiLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGFBQWE7WUFDYixVQUFVO1lBQ1YsV0FBVztZQUNYLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsWUFBWTtZQUNaLFNBQVM7WUFDVCxlQUFlO1lBQ2YsWUFBWTtZQUNaLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsYUFBYTtZQUNiLHNCQUFzQjtZQUN0QixXQUFXO1lBQ1gsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixTQUFTO1lBQ1QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIscUJBQXFCO1lBQ3JCLGVBQWU7WUFDZixhQUFhO1lBQ2IsWUFBWTtZQUNaLFVBQVU7WUFDVixlQUFlO3lHQVFKLGlCQUFpQixZQUpsQixZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWU7OzRGQUl6QyxpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUM7b0JBQ3JELFlBQVksRUFBRSxVQUFVO29CQUN4QixPQUFPLEVBQUUsVUFBVTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBEYXRlRm9ybWF0UGlwZSB9IGZyb20gJy4vZGF0ZS1mb3JtYXQucGlwZSc7XG5pbXBvcnQgeyBEYXRlRGlmZkR1cmF0aW9uUGlwZSB9IGZyb20gJy4vZGF0ZS1kaWZmLWR1cmF0aW9uLnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUZyb21Ob3dQaXBlIH0gZnJvbSAnLi9kYXRlLWZyb20tbm93LnBpcGUnO1xuaW1wb3J0IHsgTGF0aXR1ZGVGb3JtYXRQaXBlLCBMYXRMb25nRm9ybWF0UGlwZSwgTG9uZ2l0dWRlRm9ybWF0UGlwZSB9IGZyb20gJy4vbGF0bG9uZy1mb3JtYXQucGlwZSc7XG5pbXBvcnQgeyBOdW1iZXJGb3JtYXRQaXBlIH0gZnJvbSAnLi9udW1iZXItZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHsgSGlnaGxpZ2h0UGlwZSB9IGZyb20gJy4vaGlnaGxpZ2h0LnBpcGUnO1xuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSAnLi9maWxlLXNpemUucGlwZSc7XG5pbXBvcnQgeyBEdXJhdGlvblBpcGUgfSBmcm9tICcuL2R1cmF0aW9uLnBpcGUnO1xuaW1wb3J0IHsgRXZlblBpcGUsIE1hdGhBYnNQaXBlLCBPZGRQaXBlIH0gZnJvbSAnLi9tYXRoLnBpcGVzJztcbmltcG9ydCB7XG4gIEFycmF5RmlsdGVyUGlwZSxcbiAgQXJyYXlGaXJzdFBpcGUsXG4gIEFycmF5SW5jbHVkZXNQaXBlLFxuICBBcnJheUpvaW5QaXBlLFxuICBBcnJheUxhc3RQaXBlLFxuICBBcnJheUxlbmd0aFBpcGUsXG4gIEFycmF5UGx1Y2tQaXBlLFxuICBFbXB0eUFycmF5UGlwZSxcbiAgTm90RW1wdHlBcnJheVBpcGUsXG59IGZyb20gJy4vYXJyYXlzLnBpcGUnO1xuaW1wb3J0IHsgTWFwR2V0UGlwZSwgTWFwS2V5c1BpcGUsIE1hcFZhbHVlc1BpcGUgfSBmcm9tICcuL21hcHMucGlwZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGFibGVQaXBlLCBUcmFuc2xhdGVDb250ZXh0UGlwZSB9IGZyb20gJy4vdHJhbnNsYXRlLWNvbnRleHQucGlwZSc7XG5pbXBvcnQgeyBOZ0luaXREaXJlY3RpdmUgfSBmcm9tICcuL25nLWluaXQucGlwZSc7XG5pbXBvcnQge1xuICBGb3JtRXJyb3JQaXBlLFxuICBGb3JtRXJyb3JUcmFuc2xhdGVQaXBlLFxuICBGb3JtR2V0QXJyYXlQaXBlLFxuICBGb3JtR2V0Q29udHJvbFBpcGUsXG4gIEZvcm1HZXRHcm91cFBpcGUsXG4gIEZvcm1HZXRQaXBlLFxuICBGb3JtR2V0VmFsdWVQaXBlLFxufSBmcm9tICcuL2Zvcm0ucGlwZXMnO1xuaW1wb3J0IHsgQm9vbGVhbkZvcm1hdFBpcGUsIFByb3BlcnR5Rm9ybWF0UGlwZSwgUHJvcGVydHlHZXRQaXBlLCBWYWx1ZUZvcm1hdFBpcGUgfSBmcm9tICcuL3Byb3BlcnR5LnBpcGVzJztcbmltcG9ydCB7IE1hdENvbG9yUGlwZSB9IGZyb20gJy4vY29sb3JzLnBpcGUnO1xuaW1wb3J0IHsgQXNBbnlQaXBlLCBBc0FycmF5UGlwZSwgQXNCb29sZWFuUGlwZSwgQXNGbG9hdExhYmVsVHlwZVBpcGUsIEFzT2JzZXJ2YWJsZVBpcGUgfSBmcm9tICcuL3R5cGVzLnBpcGVzJztcbmltcG9ydCB7IE1hc2tpdG9QbGFjZWhvbGRlclBpcGUgfSBmcm9tICcuL21hc2tpdG8ucGlwZSc7XG5pbXBvcnQge1xuICBJc0VtcHR5U2VsZWN0aW9uUGlwZSxcbiAgSXNNdWx0aXBsZVNlbGVjdGlvblBpcGUsXG4gIElzTm90RW1wdHlTZWxlY3Rpb25QaXBlLFxuICBJc1NlbGVjdGVkUGlwZSxcbiAgSXNTaW5nbGVTZWxlY3Rpb25QaXBlLFxuICBTZWxlY3Rpb25MZW5ndGhQaXBlLFxufSBmcm9tICcuL3NlbGVjdGlvbi5waXBlcyc7XG5pbXBvcnQgeyBCYWRnZU51bWJlclBpcGUgfSBmcm9tICcuL2JhZGdlLnBpcGVzJztcbmltcG9ydCB7XG4gIENhcGl0YWxpemVQaXBlLFxuICBJc05pbE9yQmxhbmtQaXBlLFxuICBJc05pbE9yTmFOUGlwZSxcbiAgSXNOaWxQaXBlLFxuICBJc05vdE5pbE9yQmxhbmtQaXBlLFxuICBJc05vdE5pbE9yTmFOUGlwZSxcbiAgSXNOb3ROaWxQaXBlLFxuICBTdHJJbmNsdWRlc1BpcGUsXG4gIFN0ckxlbmd0aFBpcGUsXG4gIFN0clJlcGxhY2VQaXBlLFxuICBUb1N0cmluZ1BpcGUsXG59IGZyb20gJy4vc3RyaW5nLnBpcGVzJztcbmltcG9ydCB7IE5vSHRtbFBpcGUsIFNhZmVIdG1sUGlwZSB9IGZyb20gJy4vaHRtbC5waXBlcyc7XG5pbXBvcnQgeyBEaXNwbGF5V2l0aFBpcGUgfSBmcm9tICcuL2Rpc3BsYXktd2l0aC5waXBlJztcbmltcG9ydCB7IElzVmFsaWREYXRlUGlwZSB9IGZyb20gJy4vZGF0ZXMucGlwZSc7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gIFByb3BlcnR5R2V0UGlwZSxcbiAgUHJvcGVydHlGb3JtYXRQaXBlLFxuICBWYWx1ZUZvcm1hdFBpcGUsXG4gIERhdGVGb3JtYXRQaXBlLFxuICBEYXRlRGlmZkR1cmF0aW9uUGlwZSxcbiAgRHVyYXRpb25QaXBlLFxuICBEYXRlRnJvbU5vd1BpcGUsXG4gIExhdExvbmdGb3JtYXRQaXBlLFxuICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gIExvbmdpdHVkZUZvcm1hdFBpcGUsXG4gIEhpZ2hsaWdodFBpcGUsXG4gIE51bWJlckZvcm1hdFBpcGUsXG4gIEZpbGVTaXplUGlwZSxcbiAgTWF0aEFic1BpcGUsXG4gIE9kZFBpcGUsXG4gIEV2ZW5QaXBlLFxuICBOb3RFbXB0eUFycmF5UGlwZSxcbiAgRW1wdHlBcnJheVBpcGUsXG4gIEFycmF5TGVuZ3RoUGlwZSxcbiAgQXJyYXlGaXJzdFBpcGUsXG4gIEFycmF5TGFzdFBpcGUsXG4gIEFycmF5UGx1Y2tQaXBlLFxuICBBcnJheUluY2x1ZGVzUGlwZSxcbiAgQXJyYXlGaWx0ZXJQaXBlLFxuICBBcnJheUpvaW5QaXBlLFxuICBNYXBHZXRQaXBlLFxuICBNYXBLZXlzUGlwZSxcbiAgTWFwVmFsdWVzUGlwZSxcbiAgSXNOaWxPckJsYW5rUGlwZSxcbiAgSXNOb3ROaWxPckJsYW5rUGlwZSxcbiAgSXNOaWxPck5hTlBpcGUsXG4gIElzTm90TmlsT3JOYU5QaXBlLFxuICBJc05vdE5pbFBpcGUsXG4gIElzTmlsUGlwZSxcbiAgSXNWYWxpZERhdGVQaXBlLFxuICBUb1N0cmluZ1BpcGUsXG4gIENhcGl0YWxpemVQaXBlLFxuICBTdHJMZW5ndGhQaXBlLFxuICBTdHJJbmNsdWRlc1BpcGUsXG4gIFN0clJlcGxhY2VQaXBlLFxuICBCb29sZWFuRm9ybWF0UGlwZSxcbiAgVHJhbnNsYXRlQ29udGV4dFBpcGUsXG4gIFRyYW5zbGF0YWJsZVBpcGUsXG4gIE5nSW5pdERpcmVjdGl2ZSxcbiAgRm9ybUVycm9yUGlwZSxcbiAgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSxcbiAgRm9ybUdldFBpcGUsXG4gIEZvcm1HZXRDb250cm9sUGlwZSxcbiAgRm9ybUdldEFycmF5UGlwZSxcbiAgRm9ybUdldEdyb3VwUGlwZSxcbiAgRm9ybUdldFZhbHVlUGlwZSxcbiAgTWF0Q29sb3JQaXBlLFxuICBBc0FueVBpcGUsXG4gIEFzQXJyYXlQaXBlLFxuICBBc09ic2VydmFibGVQaXBlLFxuICBBc0Zsb2F0TGFiZWxUeXBlUGlwZSxcbiAgTWFza2l0b1BsYWNlaG9sZGVyUGlwZSxcbiAgSXNTZWxlY3RlZFBpcGUsXG4gIElzTm90RW1wdHlTZWxlY3Rpb25QaXBlLFxuICBJc0VtcHR5U2VsZWN0aW9uUGlwZSxcbiAgU2VsZWN0aW9uTGVuZ3RoUGlwZSxcbiAgSXNNdWx0aXBsZVNlbGVjdGlvblBpcGUsXG4gIElzU2luZ2xlU2VsZWN0aW9uUGlwZSxcbiAgQmFkZ2VOdW1iZXJQaXBlLFxuICBBc0Jvb2xlYW5QaXBlLFxuICBTYWZlSHRtbFBpcGUsXG4gIE5vSHRtbFBpcGUsXG4gIERpc3BsYXlXaXRoUGlwZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IGNvbXBvbmVudHMsXG4gIGV4cG9ydHM6IGNvbXBvbmVudHMsXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZFBpcGVzTW9kdWxlIHt9XG4iXX0=
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsYUFBYSxFQUNiLGVBQWUsRUFDZixjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFP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TmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElvbmljTW9kdWxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdFBpcGUgfSBmcm9tICcuL2RhdGUtZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHsgRGF0ZURpZmZEdXJhdGlvblBpcGUgfSBmcm9tICcuL2RhdGUtZGlmZi1kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7IERhdGVGcm9tTm93UGlwZSB9IGZyb20gJy4vZGF0ZS1mcm9tLW5vdy5waXBlJztcbmltcG9ydCB7IExhdGl0dWRlRm9ybWF0UGlwZSwgTGF0TG9uZ0Zvcm1hdFBpcGUsIExvbmdpdHVkZUZvcm1hdFBpcGUgfSBmcm9tICcuL2xhdGxvbmctZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHsgTnVtYmVyRm9ybWF0UGlwZSB9IGZyb20gJy4vbnVtYmVyLWZvcm1hdC5waXBlJztcbmltcG9ydCB7IEhpZ2hsaWdodFBpcGUgfSBmcm9tICcuL2hpZ2hsaWdodC5waXBlJztcbmltcG9ydCB7IEZpbGVTaXplUGlwZSB9IGZyb20gJy4vZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHsgRHVyYXRpb25QaXBlIH0gZnJvbSAnLi9kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7IEV2ZW5QaXBlLCBNYXRoQWJzUGlwZSwgT2RkUGlwZSB9IGZyb20gJy4vbWF0aC5waXBlcyc7XG5pbXBvcnQge1xuICBBcnJheURpc3RpbmN0UGlwZSxcbiAgQXJyYXlGaWx0ZXJQaXBlLFxuICBBcnJheUZpcnN0UGlwZSxcbiAgQXJyYXlJbmNsdWRlc1BpcGUsXG4gIEFycmF5Sm9pblBpcGUsXG4gIEFycmF5TGFzdFBpcGUsXG4gIEFycmF5TGVuZ3RoUGlwZSxcbiAgQXJyYXlQbHVja1BpcGUsXG4gIEVtcHR5QXJyYXlQaXBlLFxuICBOb3RFbXB0eUFycmF5UGlwZSxcbn0gZnJvbSAnLi9hcnJheXMucGlwZSc7XG5pbXBvcnQgeyBNYXBHZXRQaXBlLCBNYXBLZXlzUGlwZSwgTWFwVmFsdWVzUGlwZSB9IGZyb20gJy4vbWFwcy5waXBlJztcbmltcG9ydCB7IFRyYW5zbGF0YWJsZVBpcGUsIFRyYW5zbGF0ZUNvbnRleHRQaXBlIH0gZnJvbSAnLi90cmFuc2xhdGUtY29udGV4dC5waXBlJztcbmltcG9ydCB7IE5nSW5pdERpcmVjdGl2ZSB9IGZyb20gJy4vbmctaW5pdC5waXBlJztcbmltcG9ydCB7XG4gIEZvcm1FcnJvclBpcGUsXG4gIEZvcm1FcnJvclRyYW5zbGF0ZVBpcGUsXG4gIEZvcm1HZXRBcnJheVBpcGUsXG4gIEZvcm1HZXRDb250cm9sUGlwZSxcbiAgRm9ybUdldEdyb3VwUGlwZSxcbiAgRm9ybUdldFBpcGUsXG4gIEZvcm1HZXRWYWx1ZVBpcGUsXG59IGZyb20gJy4vZm9ybS5waXBlcyc7XG5pbXBvcnQgeyBCb29sZWFuRm9ybWF0UGlwZSwgUHJvcGVydHlGb3JtYXRQaXBlLCBQcm9wZXJ0eUdldFBpcGUsIFZhbHVlRm9ybWF0UGlwZSB9IGZyb20gJy4vcHJvcGVydHkucGlwZXMnO1xuaW1wb3J0IHsgTWF0Q29sb3JQaXBlIH0gZnJvbSAnLi9jb2xvcnMucGlwZSc7XG5pbXBvcnQgeyBBc0FueVBpcGUsIEFzQXJyYXlQaXBlLCBBc0Jvb2xlYW5QaXBlLCBBc0Zsb2F0TGFiZWxUeXBlUGlwZSwgQXNPYnNlcnZhYmxlUGlwZSB9IGZyb20gJy4vdHlwZXMucGlwZXMnO1xuaW1wb3J0IHsgTWFza2l0b1BsYWNlaG9sZGVyUGlwZSB9IGZyb20gJy4vbWFza2l0by5waXBlJztcbmltcG9ydCB7XG4gIElzRW1wdHlTZWxlY3Rpb25QaXBlLFxuICBJc011bHRpcGxlU2VsZWN0aW9uUGlwZSxcbiAgSXNOb3RFbXB0eVNlbGVjdGlvblBpcGUsXG4gIElzU2VsZWN0ZWRQaXBlLFxuICBJc1NpbmdsZVNlbGVjdGlvblBpcGUsXG4gIFNlbGVjdGlvbkxlbmd0aFBpcGUsXG59IGZyb20gJy4vc2VsZWN0aW9uLnBpcGVzJztcbmltcG9ydCB7IEJhZGdlTnVtYmVyUGlwZSB9IGZyb20gJy4vYmFkZ2UucGlwZXMnO1xuaW1wb3J0IHtcbiAgQ2FwaXRhbGl6ZVBpcGUsXG4gIElzTmlsT3JCbGFua1BpcGUsXG4gIElzTmlsT3JOYU5QaXBlLFxuICBJc05pbFBpcGUsXG4gIElzTm90TmlsT3JCbGFua1BpcGUsXG4gIElzTm90TmlsT3JOYU5QaXBlLFxuICBJc05vdE5pbFBpcGUsXG4gIFN0ckluY2x1ZGVzUGlwZSxcbiAgU3RyTGVuZ3RoUGlwZSxcbiAgU3RyUmVwbGFjZVBpcGUsXG4gIFRvU3RyaW5nUGlwZSxcbn0gZnJvbSAnLi9zdHJpbmcucGlwZXMnO1xuaW1wb3J0IHsgTm9IdG1sUGlwZSwgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi9odG1sLnBpcGVzJztcbmltcG9ydCB7IERpc3BsYXlXaXRoUGlwZSB9IGZyb20gJy4vZGlzcGxheS13aXRoLnBpcGUnO1xuaW1wb3J0IHsgSXNWYWxpZERhdGVQaXBlIH0gZnJvbSAnLi9kYXRlcy5waXBlJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgUHJvcGVydHlHZXRQaXBlLFxuICBQcm9wZXJ0eUZvcm1hdFBpcGUsXG4gIFZhbHVlRm9ybWF0UGlwZSxcbiAgRGF0ZUZvcm1hdFBpcGUsXG4gIERhdGVEaWZmRHVyYXRpb25QaXBlLFxuICBEdXJhdGlvblBpcGUsXG4gIERhdGVGcm9tTm93UGlwZSxcbiAgTGF0TG9uZ0Zvcm1hdFBpcGUsXG4gIExhdGl0dWRlRm9ybWF0UGlwZSxcbiAgTG9uZ2l0dWRlRm9ybWF0UGlwZSxcbiAgSGlnaGxpZ2h0UGlwZSxcbiAgTnVtYmVyRm9ybWF0UGlwZSxcbiAgRmlsZVNpemVQaXBlLFxuICBNYXRoQWJzUGlwZSxcbiAgT2RkUGlwZSxcbiAgRXZlblBpcGUsXG4gIE5vdEVtcHR5QXJyYXlQaXBlLFxuICBFbXB0eUFycmF5UGlwZSxcbiAgQXJyYXlMZW5ndGhQaXBlLFxuICBBcnJheUZpcnN0UGlwZSxcbiAgQXJyYXlMYXN0UGlwZSxcbiAgQXJyYXlQbHVja1BpcGUsXG4gIEFycmF5SW5jbHVkZXNQaXBlLFxuICBBcnJheUZpbHRlclBpcGUsXG4gIEFycmF5Sm9pblBpcGUsXG4gIEFycmF5RGlzdGluY3RQaXBlLFxuICBNYXBHZXRQaXBlLFxuICBNYXBLZXlzUGlwZSxcbiAgTWFwVmFsdWVzUGlwZSxcbiAgSXNOaWxPckJsYW5rUGlwZSxcbiAgSXNOb3ROaWxPckJsYW5rUGlwZSxcbiAgSXNOaWxPck5hTlBpcGUsXG4gIElzTm90TmlsT3JOYU5QaXBlLFxuICBJc05vdE5pbFBpcGUsXG4gIElzTmlsUGlwZSxcbiAgSXNWYWxpZERhdGVQaXBlLFxuICBUb1N0cmluZ1BpcGUsXG4gIENhcGl0YWxpemVQaXBlLFxuICBTdHJMZW5ndGhQaXBlLFxuICBTdHJJbmNsdWRlc1BpcGUsXG4gIFN0clJlcGxhY2VQaXBlLFxuICBCb29sZWFuRm9ybWF0UGlwZSxcbiAgVHJhbnNsYXRlQ29udGV4dFBpcGUsXG4gIFRyYW5zbGF0YWJsZVBpcGUsXG4gIE5nSW5pdERpcmVjdGl2ZSxcbiAgRm9ybUVycm9yUGlwZSxcbiAgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSxcbiAgRm9ybUdldFBpcGUsXG4gIEZvcm1HZXRDb250cm9sUGlwZSxcbiAgRm9ybUdldEFycmF5UGlwZSxcbiAgRm9ybUdldEdyb3VwUGlwZSxcbiAgRm9ybUdldFZhbHVlUGlwZSxcbiAgTWF0Q29sb3JQaXBlLFxuICBBc0FueVBpcGUsXG4gIEFzQXJyYXlQaXBlLFxuICBBc09ic2VydmFibGVQaXBlLFxuICBBc0Zsb2F0TGFiZWxUeXBlUGlwZSxcbiAgTWFza2l0b1BsYWNlaG9sZGVyUGlwZSxcbiAgSXNTZWxlY3RlZFBpcGUsXG4gIElzTm90RW1wdHlTZWxlY3Rpb25QaXBlLFxuICBJc0VtcHR5U2VsZWN0aW9uUGlwZSxcbiAgU2VsZWN0aW9uTGVuZ3RoUGlwZSxcbiAgSXNNdWx0aXBsZVNlbGVjdGlvblBpcGUsXG4gIElzU2luZ2xlU2VsZWN0aW9uUGlwZSxcbiAgQmFkZ2VOdW1iZXJQaXBlLFxuICBBc0Jvb2xlYW5QaXBlLFxuICBTYWZlSHRtbFBpcGUsXG4gIE5vSHRtbFBpcGUsXG4gIERpc3BsYXlXaXRoUGlwZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbmljTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IGNvbXBvbmVudHMsXG4gIGV4cG9ydHM6IGNvbXBvbmVudHMsXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlZFBpcGVzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Toasts } from '../toast/toasts';
|
|
2
2
|
import { Inject, Injectable } from '@angular/core';
|
|
3
3
|
import { DOCUMENT } from '@angular/common';
|
|
4
|
-
import { isNil } from '../functions';
|
|
4
|
+
import { isNil, isNilOrBlank, isNotNil, toNumber } from '../functions';
|
|
5
5
|
import { waitForTrue } from '../observables';
|
|
6
6
|
import { mergeMap, timer } from 'rxjs';
|
|
7
7
|
import { isChrome } from '../platforms';
|
|
@@ -10,6 +10,7 @@ import * as i1 from "@ionic/angular";
|
|
|
10
10
|
import * as i2 from "@ngx-translate/core";
|
|
11
11
|
import * as i3 from "../storage/storage.service";
|
|
12
12
|
export const PRINT_LOADING_STORAGE_KEY_PREFIX = 'print-loading-';
|
|
13
|
+
export const PRINT_ID_QUERY_PARAM = 'print-id';
|
|
13
14
|
export class PrintService {
|
|
14
15
|
toastController;
|
|
15
16
|
translate;
|
|
@@ -25,6 +26,17 @@ export class PrintService {
|
|
|
25
26
|
nextJobId() {
|
|
26
27
|
return ++this.printId;
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Extracts and returns the job ID from a given URL.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} [url] - The URL from which to extract the job ID. If not provided, `window.location.href` will be used.
|
|
33
|
+
* @return {number | undefined} The extracted job ID as a number, or `undefined` if the job ID is not present or invalid.
|
|
34
|
+
*/
|
|
35
|
+
getJobId(url) {
|
|
36
|
+
url = url || window.location.href;
|
|
37
|
+
const matches = url.match(/print-id=(\d+)/);
|
|
38
|
+
return toNumber(matches?.[1], undefined);
|
|
39
|
+
}
|
|
28
40
|
async printElement(element, opts) {
|
|
29
41
|
if (!element)
|
|
30
42
|
throw new Error("Missing required 'element' argument");
|
|
@@ -38,10 +50,10 @@ export class PrintService {
|
|
|
38
50
|
return this.printIframe(iframe, opts);
|
|
39
51
|
}
|
|
40
52
|
async printUrl(url, opts) {
|
|
41
|
-
if (
|
|
53
|
+
if (isNilOrBlank(url))
|
|
42
54
|
throw new Error("Missing required 'url' argument");
|
|
43
55
|
// Create iframe
|
|
44
|
-
const iframe = this.createPrintIframeByUrl(url);
|
|
56
|
+
const iframe = this.createPrintIframeByUrl(url, opts);
|
|
45
57
|
return this.printIframe(iframe, opts);
|
|
46
58
|
}
|
|
47
59
|
async printIframe(iframe, opts) {
|
|
@@ -87,8 +99,14 @@ export class PrintService {
|
|
|
87
99
|
return !(await this.isLoaded(id));
|
|
88
100
|
}
|
|
89
101
|
/* -- protected functions -- */
|
|
90
|
-
createPrintIframeByUrl(url) {
|
|
91
|
-
//
|
|
102
|
+
createPrintIframeByUrl(url, opts) {
|
|
103
|
+
// Make sure to add the job id inside the URL (e.g. to allow getJobIdFromUrl() to retrieve it)
|
|
104
|
+
if (isNotNil(opts?.id)) {
|
|
105
|
+
const newUrl = new URL(url);
|
|
106
|
+
newUrl.searchParams.set(PRINT_ID_QUERY_PARAM, '' + opts.id);
|
|
107
|
+
url = newUrl.href;
|
|
108
|
+
}
|
|
109
|
+
// Create a iframe with the given url
|
|
92
110
|
const iframe = this.document.createElement('iframe');
|
|
93
111
|
iframe.classList.add('cdk-visually-hidden');
|
|
94
112
|
iframe.style.width = '100%';
|
|
@@ -251,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
251
269
|
type: Inject,
|
|
252
270
|
args: [DOCUMENT]
|
|
253
271
|
}] }] });
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3ByaW50L3ByaW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFVeEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsZ0JBQWdCLENBQUM7QUFHakUsTUFBTSxPQUFPLFlBQVk7SUFJWDtJQUNBO0lBQ0E7SUFDa0I7SUFOdEIsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUVwQixZQUNZLGVBQWdDLEVBQ2hDLFNBQTJCLEVBQzNCLE9BQXVCLEVBQ0wsUUFBa0I7UUFIcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ0wsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUM3QyxDQUFDO0lBRUosU0FBUztRQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQW9CLEVBQUUsSUFBbUI7UUFDMUQsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWSxFQUFFLElBQW1CO1FBQy9DLElBQUksQ0FBQyxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBRS9ELGdCQUFnQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQWtDO1FBQzVELElBQUksQ0FBQyxHQUFHO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBRTdELGdCQUFnQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUF5QixFQUFFLElBQW1CO1FBQzlELElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLFlBQVksT0FBTyxFQUFFLENBQUM7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsU0FBUyxLQUFLLEtBQUssQ0FBQztRQUNuRCxJQUFJLGdCQUFnQjtZQUNsQixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLEVBQUUsRUFBRSxPQUFPO2dCQUNYLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxJQUFJLG9CQUFvQjtnQkFDbkQsUUFBUSxFQUFFLENBQUM7YUFDWixDQUFDLENBQUM7UUFFTCxJQUFJLENBQUM7WUFDSCwwQkFBMEI7WUFDMUIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBRTdDLGdDQUFnQztZQUNoQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLGdCQUFnQjtnQkFBRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQW1CO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbEUsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBbUI7UUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGdDQUFnQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQW1CO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0UsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBbUI7UUFDakMsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELCtCQUErQjtJQUVyQixzQkFBc0IsQ0FBQyxHQUFXO1FBQzFDLG9DQUFvQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUM1QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxJQUFZLEVBQUUsSUFBK0M7UUFDN0YsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztRQUV6RCx5QkFBeUI7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2Qyx1QkFBdUI7UUFDdkIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUNoRixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixjQUFjLENBQUMsS0FBSyxDQUFDOztzQkFFTCxJQUFJOztxQkFFTCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztjQWV4QixJQUFJLEVBQUUsV0FBVyxJQUFJLEVBQUU7Ozs7Y0FJdkIsSUFBSTs7O09BR1gsQ0FBQyxDQUFDO1lBQ0gsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxtQkFBbUI7UUFDbkIseUhBQXlIO1FBQ3pILDZDQUE2QztRQUM3QywwQ0FBMEM7UUFFMUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLDBCQUEwQixDQUFDLE1BQXlCO1FBQzVELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7UUFDaEYsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQix3Q0FBd0M7WUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztZQUN6RixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3hCLHNCQUFzQjtnQkFDdEIsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUNoQyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2RCxRQUFRLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7b0JBQ3ZDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUUxQyxPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO2dCQUVELGlDQUFpQztxQkFDNUIsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3BFLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3JELE9BQU8sQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO29CQUMzQixPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUV6QyxPQUFPLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUUsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQXlCLEVBQUUsSUFBaUQ7UUFDbkcsb0JBQW9CO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFNUcsMEJBQTBCO1FBQzFCLE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDMUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUMxRSxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7aUJBQU0sQ0FBQztnQkFDTiwwQkFBMEI7Z0JBQzFCLElBQUksSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO29CQUN6QixJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUNwRCxPQUFPLEVBQUUsQ0FBQzt3QkFFVixZQUFZLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDO29CQUMvRSxDQUFDO2dCQUNILENBQUMsQ0FBQztnQkFDRixZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sS0FBSyxDQUFDLE1BQXlCLEVBQUUsSUFBMkI7UUFDcEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDO1lBRTFFLDBCQUEwQjtZQUMxQixJQUFJLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFFRCxZQUFZO1lBQ1osSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDckIsaURBQWlEO2dCQUNqRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtvQkFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO29CQUU3QyxPQUFPLEVBQUUsQ0FBQztvQkFFVixzQkFBc0I7b0JBQ3RCLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFDckUsQ0FBQyxDQUFDO2dCQUNGLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEMsQ0FBQztZQUVELDJCQUEyQjtpQkFDdEIsQ0FBQztnQkFDSixNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFNBQVMsQ0FBVSxJQUFzQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDakcsT0FBTyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7d0dBalFVLFlBQVksK0dBT2IsUUFBUTs0R0FQUCxZQUFZLGNBREMsTUFBTTs7NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFRN0IsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hvd1RvYXN0T3B0aW9ucywgVG9hc3RzIH0gZnJvbSAnLi4vdG9hc3QvdG9hc3RzJztcbmltcG9ydCB7IE92ZXJsYXlFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyB3YWl0Rm9yVHJ1ZSB9IGZyb20gJy4uL29ic2VydmFibGVzJztcbmltcG9ydCB7IG1lcmdlTWFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNDaHJvbWUgfSBmcm9tICcuLi9wbGF0Zm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByaW50T3B0aW9ucyB7XG4gIGlkPzogc3RyaW5nIHwgbnVtYmVyO1xuICB0aXRsZT86IHN0cmluZztcbiAgc2hvd1RvYXN0PzogYm9vbGVhbjtcbiAgdG9hc3RNZXNzYWdlPzogc3RyaW5nO1xuICBzdHlsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFBSSU5UX0xPQURJTkdfU1RPUkFHRV9LRVlfUFJFRklYID0gJ3ByaW50LWxvYWRpbmctJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmludFNlcnZpY2Uge1xuICBwcml2YXRlIHByaW50SWQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBzdG9yYWdlOiBTdG9yYWdlU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcm90ZWN0ZWQgZG9jdW1lbnQ6IERvY3VtZW50XG4gICkge31cblxuICBuZXh0Sm9iSWQoKSB7XG4gICAgcmV0dXJuICsrdGhpcy5wcmludElkO1xuICB9XG5cbiAgYXN5bmMgcHJpbnRFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBvcHRzPzogUHJpbnRPcHRpb25zKSB7XG4gICAgaWYgKCFlbGVtZW50KSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdlbGVtZW50JyBhcmd1bWVudFwiKTtcblxuICAgIHJldHVybiB0aGlzLnByaW50SFRNTChlbGVtZW50LmlubmVySFRNTCwgb3B0cyk7XG4gIH1cblxuICBhc3luYyBwcmludEhUTUwoaHRtbDogc3RyaW5nLCBvcHRzPzogUHJpbnRPcHRpb25zKSB7XG4gICAgaWYgKCFodG1sKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdodG1sJyBhcmd1bWVudFwiKTtcblxuICAgIC8vIENyZWF0ZSBpZnJhbWVcbiAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmNyZWF0ZVByaW50SWZyYW1lQnlIdG1sKGh0bWwsIG9wdHMpO1xuXG4gICAgcmV0dXJuIHRoaXMucHJpbnRJZnJhbWUoaWZyYW1lLCBvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIHByaW50VXJsKHVybDogc3RyaW5nLCBvcHRzPzogT21pdDxQcmludE9wdGlvbnMsICdzdHlsZSc+KSB7XG4gICAgaWYgKCF1cmwpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgcmVxdWlyZWQgJ3VybCcgYXJndW1lbnRcIik7XG5cbiAgICAvLyBDcmVhdGUgaWZyYW1lXG4gICAgY29uc3QgaWZyYW1lID0gdGhpcy5jcmVhdGVQcmludElmcmFtZUJ5VXJsKHVybCk7XG5cbiAgICByZXR1cm4gdGhpcy5wcmludElmcmFtZShpZnJhbWUsIG9wdHMpO1xuICB9XG5cbiAgYXN5bmMgcHJpbnRJZnJhbWUoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCwgb3B0cz86IFByaW50T3B0aW9ucykge1xuICAgIGlmICghaWZyYW1lKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdpZnJhbWUnIGFyZ3VtZW50XCIpO1xuXG4gICAgY29uc3QgcHJpbnRJZCA9IG9wdHM/LmlkID8/IHRoaXMucHJpbnRJZCsrO1xuICAgIGNvbnN0IHRvYXN0SWQgPSBgcHJpbnRpbmctJHtwcmludElkfWA7XG4gICAgY29uc3Qgc2hvd0xvYWRpbmdUb2FzdCA9IG9wdHM/LnNob3dUb2FzdCAhPT0gZmFsc2U7XG4gICAgaWYgKHNob3dMb2FkaW5nVG9hc3QpXG4gICAgICBhd2FpdCB0aGlzLnNob3dUb2FzdCh7XG4gICAgICAgIGlkOiB0b2FzdElkLFxuICAgICAgICBtZXNzYWdlOiBvcHRzPy50b2FzdE1lc3NhZ2UgfHwgJ0NPTU1PTi5QTEVBU0VfV0FJVCcsXG4gICAgICAgIGR1cmF0aW9uOiAwLFxuICAgICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gV2FpdCBlbmQgb2YgaWZyYW1lIGxvYWRcbiAgICAgIGF3YWl0IHRoaXMud2FpdElkbGUoaWZyYW1lLCB7IGlkOiBwcmludElkIH0pO1xuXG4gICAgICAvLyBQcmludCAoYW5kIHdhaXQgZW5kIG9mIHByaW50KVxuICAgICAgYXdhaXQgdGhpcy5wcmludChpZnJhbWUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW3ByaW50LXNlcnZpY2VdIEZhaWxlZCB0byBjcmVhdGUgaGlkZGVuIGlmcmFtZScsIGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmcmFtZS5yZW1vdmUoKTtcbiAgICAgIGlmIChzaG93TG9hZGluZ1RvYXN0KSBhd2FpdCB0aGlzLnRvYXN0Q29udHJvbGxlci5kaXNtaXNzKG51bGwsIG51bGwsIHRvYXN0SWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG1hcmtBc0xvYWRpbmcoaWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnNvbGUuZGVidWcoYFtwcmludC1zZXJ2aWNlXSBNYXJrIHByaW50IGpvYiAjJHtpZH0gYXMgbG9hZGluZ2ApO1xuICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5zZXQoUFJJTlRfTE9BRElOR19TVE9SQUdFX0tFWV9QUkVGSVggKyBpZCwgJzEnKTtcbiAgfVxuXG4gIGFzeW5jIG1hcmtBc0xvYWRlZChpZDogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhgW3ByaW50LXNlcnZpY2VdIE1hcmsgcHJpbnQgam9iICMke2lkfSBhcyBsb2FkZWRgKTtcbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2UucmVtb3ZlKFBSSU5UX0xPQURJTkdfU1RPUkFHRV9LRVlfUFJFRklYICsgaWQpO1xuICB9XG5cbiAgYXN5bmMgaXNMb2FkZWQoaWQ6IHN0cmluZyB8IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3RvcmFnZS5nZXQoUFJJTlRfTE9BRElOR19TVE9SQUdFX0tFWV9QUkVGSVggKyBpZCk7XG4gICAgcmV0dXJuIGlzTmlsKHJlc3VsdCk7XG4gIH1cblxuICBhc3luYyBpc0xvYWRpbmcoaWQ6IHN0cmluZyB8IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAhKGF3YWl0IHRoaXMuaXNMb2FkZWQoaWQpKTtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBmdW5jdGlvbnMgLS0gKi9cblxuICBwcm90ZWN0ZWQgY3JlYXRlUHJpbnRJZnJhbWVCeVVybCh1cmw6IHN0cmluZyk6IEhUTUxJRnJhbWVFbGVtZW50IHtcbiAgICAvLyBDcmVhdGUgYSBpZnJhbWUgd2l0aCAnP3ByaW50LXBkZidcbiAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgIGlmcmFtZS5jbGFzc0xpc3QuYWRkKCdjZGstdmlzdWFsbHktaGlkZGVuJyk7XG4gICAgaWZyYW1lLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgIGlmcmFtZS5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gICAgaWZyYW1lLnNyYyA9IHVybDtcbiAgICByZXR1cm4gaWZyYW1lO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVByaW50SWZyYW1lQnlIdG1sKGh0bWw6IHN0cmluZywgb3B0cz86IHsgdGl0bGU/OiBzdHJpbmc7IGlubGluZVN0eWxlPzogc3RyaW5nIH0pOiBIVE1MSUZyYW1lRWxlbWVudCB7XG4gICAgaWYgKCFodG1sKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdodG1sJyBhcmd1bWVudFwiKTtcblxuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudD8ubGFuZyB8fCAnZW4nO1xuXG4gICAgLy8gQ3JlYXRlIGFuIGVtcHR5IGlmcmFtZVxuICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lLmNsYXNzTGlzdC5hZGQoJ2Nkay12aXN1YWxseS1oaWRkZW4nKTtcbiAgICBpZnJhbWUuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgaWZyYW1lLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcblxuICAgIC8vIFdyaXRlIGlmcmFtZSBjb250ZW50XG4gICAgY29uc3QgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudERvY3VtZW50IHx8IGlmcmFtZS5jb250ZW50V2luZG93Py5kb2N1bWVudDtcbiAgICBpZiAoaWZyYW1lRG9jdW1lbnQpIHtcbiAgICAgIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgICAgIGlmcmFtZURvY3VtZW50LndyaXRlKGBcbiAgICAgICAgPCFET0NUWVBFIGh0bWw+XG4gICAgICAgIDxodG1sIGxhbmc9XCIke2xhbmd9XCIgY2xhc3M9XCJwcmludC1wZGZcIj5cbiAgICAgICAgICA8aGVhZD5cbiAgICAgICAgICAgIDx0aXRsZT4ke29wdHM/LnRpdGxlIHx8ICcnfTwvdGl0bGU+XG4gICAgICAgICAgICA8c3R5bGU+XG4gICAgICAgICAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICAgICAgICBib2R5IHtcbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJ1JvYm90bycsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAke29wdHM/LmlubGluZVN0eWxlIHx8ICcnfVxuICAgICAgICAgIDwvc3R5bGU+XG4gICAgICAgICAgPC9oZWFkPlxuICAgICAgICAgIDxib2R5PlxuICAgICAgICAgICAgJHtodG1sfVxuICAgICAgICAgIDwvYm9keT5cbiAgICAgICAgPC9odG1sPlxuICAgICAgYCk7XG4gICAgICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8vIFNldCBpZnJhbWUgc3R5bGVcbiAgICAvLyBGSVhNRSAtIElnbm9yZSBzdHlsZSBpbmplY3Rpb24sIGJlY2F1c2UgaXQgZmFpbGVkIGluIEZpcmVmb3ggKGUuZy4gb24gdXNlciBtYW51YWwpIGFuZCBDaHJvbWUgKGUuZy4gaW4gcHJpdmFjeSBwb2xpY3kpXG4gICAgLy8gICAgICAgICBOb3RoaW5nIGFwcGVhciBpbiB0aGUgcHJpbnQgZGlhbG9nXG4gICAgLy90aGlzLmFwcGx5RG9jdW1lbnRTdHlsZVRvSWZyYW1lKGlmcmFtZSk7XG5cbiAgICByZXR1cm4gaWZyYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIHN0eWxlcyBmcm9tIHRoZSBwcm92aWRlZCBkb2N1bWVudCwgaW5jbHVkaW5nIGV4dGVybmFsIHN0eWxlc2hlZXRzIGFuZCBpbmxpbmUgc3R5bGVzLFxuICAgKiB0byB0aGUgc3BlY2lmaWVkIGlmcmFtZSdzIGRvY3VtZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge0hUTUxJRnJhbWVFbGVtZW50fSBpZnJhbWUgLSBUaGUgaWZyYW1lIHRvIHdoaWNoIHRoZSBzdHlsZXMgYXJlIGFwcGxpZWQuXG4gICAqIEByZXR1cm4ge3ZvaWR9IERvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGx5RG9jdW1lbnRTdHlsZVRvSWZyYW1lKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgfHwgaWZyYW1lLmNvbnRlbnRXaW5kb3c/LmRvY3VtZW50O1xuICAgIGlmIChpZnJhbWVEb2N1bWVudCkge1xuICAgICAgLy8gUsOpY3Vww6lyZXIgdG91cyBsZXMgc3R5bGVzIChsaWVucyBDU1MpXG4gICAgICBjb25zdCBsaW5rcyA9IEFycmF5LmZyb20odGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZSxsaW5rW3JlbD1cInN0eWxlc2hlZXRcIl0nKSk7XG4gICAgICBsaW5rcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIC8vIEluc2VydCBpbmxpbmUgc3R5bGVcbiAgICAgICAgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gJ1NUWUxFJykge1xuICAgICAgICAgIGNvbnN0IG5ld1N0eWxlID0gaWZyYW1lRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgICBuZXdTdHlsZS5pbm5lckhUTUwgPSBlbGVtZW50LmlubmVySFRNTDtcbiAgICAgICAgICBpZnJhbWVEb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5ld1N0eWxlKTtcblxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1twcmludC1zZXJ2aWNlXSBBZGQgc3R5bGUgdG8gaWZyYW1lJywgbmV3U3R5bGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSW5zZXJ0IGxpbmsgdG8gc3R5bGVzaGVldCBmaWxlXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQudGFnTmFtZSA9PT0gJ0xJTksnICYmIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgICAgICBjb25zdCBuZXdMaW5rID0gaWZyYW1lRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgIG5ld0xpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuICAgICAgICAgIG5ld0xpbmsuaHJlZiA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdocmVmJyk7XG4gICAgICAgICAgaWZyYW1lRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuZXdMaW5rKTtcblxuICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1twcmludC1zZXJ2aWNlXSBBZGQgc3R5bGVzaGVldCB0byBpZnJhbWU6ICcsIG5ld0xpbmsuaHJlZik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB3YWl0SWRsZShpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50LCBvcHRzPzogeyBpZD86IG51bWJlciB8IHN0cmluZzsgdGltZW91dD86IG51bWJlciB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gV2FpdCBqb2IgZmluaXNoZWRcbiAgICBjb25zdCBwcmludElkID0gb3B0cz8uaWQgfHwgdGhpcy5wcmludElkO1xuICAgIGF3YWl0IHdhaXRGb3JUcnVlKHRpbWVyKDUwMCwgNTAwKS5waXBlKG1lcmdlTWFwKCgpID0+IHRoaXMuaXNMb2FkZWQocHJpbnRJZCkpKSwgeyB0aW1lb3V0OiBvcHRzPy50aW1lb3V0IH0pO1xuXG4gICAgLy8gV2FpdCBlbmQgb2YgaWZyYW1lIGxvYWRcbiAgICBhd2FpdCBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdz8ud2luZG93IHx8IGlmcmFtZS5jb250ZW50V2luZG93O1xuICAgICAgaWYgKGlmcmFtZVdpbmRvdy5kb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0b3AgaWYgdGltZW91dCByZWFjaGVkXG4gICAgICAgIGlmIChvcHRzPy50aW1lb3V0ID4gMCkge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCd0aW1lb3V0JyksIG9wdHMudGltZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWFkeUxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgICAgIGlmIChpZnJhbWVXaW5kb3cuZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuXG4gICAgICAgICAgICBpZnJhbWVXaW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVhZHlzdGF0ZWNoYW5nZScsIHJlYWR5TGlzdGVuZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWZyYW1lV2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3JlYWR5c3RhdGVjaGFuZ2UnLCByZWFkeUxpc3RlbmVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgcHJpbnQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZ2l2ZW4gaWZyYW1lIGFuZCByZXNvbHZlcyBvciByZWplY3RzIGJhc2VkIG9uIHRoZSBwcmludCBjb21wbGV0aW9uIG9yIHRpbWVvdXQuXG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTElGcmFtZUVsZW1lbnR9IGlmcmFtZSAtIFRoZSBpZnJhbWUgZWxlbWVudCB0byBiZSBwcmludGVkLlxuICAgKiBAcGFyYW0ge3t0aW1lb3V0PzogbnVtYmVyfX0gW29wdHNdIC0gQW4gb3B0aW9uYWwgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbb3B0cy50aW1lb3V0XSAtIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBwcmludCB0byBjb21wbGV0ZSBiZWZvcmUgcmVqZWN0aW5nIHRoZSBwcm9taXNlLlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciB0aGUgcHJpbnQgaXMgY29tcGxldGVkIG9yIHJlamVjdHMgaWYgYSB0aW1lb3V0IG9jY3Vycy5cbiAgICovXG4gIHByb3RlY3RlZCBwcmludChpZnJhbWU6IEhUTUxJRnJhbWVFbGVtZW50LCBvcHRzPzogeyB0aW1lb3V0PzogbnVtYmVyIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgaWZyYW1lV2luZG93ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3c/LndpbmRvdyB8fCBpZnJhbWUuY29udGVudFdpbmRvdztcblxuICAgICAgLy8gU3RvcCBpZiB0aW1lb3V0IHJlYWNoZWRcbiAgICAgIGlmIChvcHRzPy50aW1lb3V0ID4gMCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgndGltZW91dCcpLCBvcHRzLnRpbWVvdXQpO1xuICAgICAgfVxuXG4gICAgICAvLyBPbiBDaHJvbWVcbiAgICAgIGlmIChpc0Nocm9tZSh3aW5kb3cpKSB7XG4gICAgICAgIC8vIFdhaXQgYWZ0ZXIgcHJpbnQgZXZlbnQsIHRvIHJlc29sdmUgdGhlIHByb21pc2VcbiAgICAgICAgY29uc3QgYWZ0ZXJQcmludExpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1twcmludC1zZXJ2aWNlXSBBZnRlciBwcmludCcpO1xuXG4gICAgICAgICAgcmVzb2x2ZSgpO1xuXG4gICAgICAgICAgLy8gUmVtb3ZlIHRoZSBsaXN0ZW5lclxuICAgICAgICAgIGlmcmFtZVdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdhZnRlcnByaW50JywgYWZ0ZXJQcmludExpc3RlbmVyKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWZyYW1lV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2FmdGVycHJpbnQnLCBhZnRlclByaW50TGlzdGVuZXIpO1xuICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy53aW5kb3cucHJpbnQoKTtcbiAgICAgIH1cblxuICAgICAgLy8gT3RoZXJ3aXNlIChlLmcuIEZpcmVmb3gpXG4gICAgICBlbHNlIHtcbiAgICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cud2luZG93LnByaW50KCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2hvd1RvYXN0PFQgPSBhbnk+KG9wdHM6IFNob3dUb2FzdE9wdGlvbnMpOiBQcm9taXNlPE92ZXJsYXlFdmVudERldGFpbDxUPj4ge1xuICAgIGlmICghdGhpcy50b2FzdENvbnRyb2xsZXIpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgdG9hc3RDb250cm9sbGVyIGluIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yXCIpO1xuICAgIHJldHVybiBhd2FpdCBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIG9wdHMpO1xuICB9XG59XG4iXX0=
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3ByaW50L3ByaW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkzRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFVeEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsZ0JBQWdCLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxZQUFZO0lBSVg7SUFDQTtJQUNBO0lBQ2tCO0lBTnRCLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFFcEIsWUFDWSxlQUFnQyxFQUNoQyxTQUEyQixFQUMzQixPQUF1QixFQUNMLFFBQWtCO1FBSHBDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUNMLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDN0MsQ0FBQztJQUVKLFNBQVM7UUFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLENBQUMsR0FBWTtRQUNuQixHQUFHLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFvQixFQUFFLElBQW1CO1FBQzFELElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQVksRUFBRSxJQUFtQjtRQUMvQyxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUUvRCxnQkFBZ0I7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQVcsRUFBRSxJQUFrQztRQUM1RCxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFFMUUsZ0JBQWdCO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFdEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUF5QixFQUFFLElBQW1CO1FBQzlELElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLFlBQVksT0FBTyxFQUFFLENBQUM7UUFDdEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsU0FBUyxLQUFLLEtBQUssQ0FBQztRQUNuRCxJQUFJLGdCQUFnQjtZQUNsQixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLEVBQUUsRUFBRSxPQUFPO2dCQUNYLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxJQUFJLG9CQUFvQjtnQkFDbkQsUUFBUSxFQUFFLENBQUM7YUFDWixDQUFDLENBQUM7UUFFTCxJQUFJLENBQUM7WUFDSCwwQkFBMEI7WUFDMUIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBRTdDLGdDQUFnQztZQUNoQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLGdCQUFnQjtnQkFBRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQW1CO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbEUsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBbUI7UUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGdDQUFnQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQW1CO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0UsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBbUI7UUFDakMsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELCtCQUErQjtJQUVyQixzQkFBc0IsQ0FBQyxHQUFXLEVBQUUsSUFBK0I7UUFDM0UsOEZBQThGO1FBQzlGLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUQsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDcEIsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUM1QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUyx1QkFBdUIsQ0FBQyxJQUFZLEVBQUUsSUFBK0M7UUFDN0YsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFL0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztRQUV6RCx5QkFBeUI7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2Qyx1QkFBdUI7UUFDdkIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztRQUNoRixJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixjQUFjLENBQUMsS0FBSyxDQUFDOztzQkFFTCxJQUFJOztxQkFFTCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztjQWV4QixJQUFJLEVBQUUsV0FBVyxJQUFJLEVBQUU7Ozs7Y0FJdkIsSUFBSTs7O09BR1gsQ0FBQyxDQUFDO1lBQ0gsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxtQkFBbUI7UUFDbkIseUhBQXlIO1FBQ3pILDZDQUE2QztRQUM3QywwQ0FBMEM7UUFFMUMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLDBCQUEwQixDQUFDLE1BQXlCO1FBQzVELE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxlQUFlLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7UUFDaEYsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQix3Q0FBd0M7WUFDeEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQztZQUN6RixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3hCLHNCQUFzQjtnQkFDdEIsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUNoQyxNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2RCxRQUFRLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7b0JBQ3ZDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUUxQyxPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO2dCQUVELGlDQUFpQztxQkFDNUIsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3BFLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3JELE9BQU8sQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO29CQUMzQixPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzVDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUV6QyxPQUFPLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUUsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQXlCLEVBQUUsSUFBaUQ7UUFDbkcsb0JBQW9CO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFNUcsMEJBQTBCO1FBQzFCLE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDMUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUMxRSxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7aUJBQU0sQ0FBQztnQkFDTiwwQkFBMEI7Z0JBQzFCLElBQUksSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO29CQUN6QixJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO3dCQUNwRCxPQUFPLEVBQUUsQ0FBQzt3QkFFVixZQUFZLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDO29CQUMvRSxDQUFDO2dCQUNILENBQUMsQ0FBQztnQkFDRixZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sS0FBSyxDQUFDLE1BQXlCLEVBQUUsSUFBMkI7UUFDcEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDO1lBRTFFLDBCQUEwQjtZQUMxQixJQUFJLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFFRCxZQUFZO1lBQ1osSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDckIsaURBQWlEO2dCQUNqRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtvQkFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO29CQUU3QyxPQUFPLEVBQUUsQ0FBQztvQkFFVixzQkFBc0I7b0JBQ3RCLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFDckUsQ0FBQyxDQUFDO2dCQUNGLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEMsQ0FBQztZQUVELDJCQUEyQjtpQkFDdEIsQ0FBQztnQkFDSixNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFNBQVMsQ0FBVSxJQUFzQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDakcsT0FBTyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7d0dBcFJVLFlBQVksK0dBT2IsUUFBUTs0R0FQUCxZQUFZLGNBREMsTUFBTTs7NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFRN0IsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2hvd1RvYXN0T3B0aW9ucywgVG9hc3RzIH0gZnJvbSAnLi4vdG9hc3QvdG9hc3RzJztcbmltcG9ydCB7IE92ZXJsYXlFdmVudERldGFpbCB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IFRvYXN0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBpc05pbCwgaXNOaWxPckJsYW5rLCBpc05vdE5pbCwgdG9OdW1iZXIgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgd2FpdEZvclRydWUgfSBmcm9tICcuLi9vYnNlcnZhYmxlcyc7XG5pbXBvcnQgeyBtZXJnZU1hcCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzQ2hyb21lIH0gZnJvbSAnLi4vcGxhdGZvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBQcmludE9wdGlvbnMge1xuICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHNob3dUb2FzdD86IGJvb2xlYW47XG4gIHRvYXN0TWVzc2FnZT86IHN0cmluZztcbiAgc3R5bGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBQUklOVF9MT0FESU5HX1NUT1JBR0VfS0VZX1BSRUZJWCA9ICdwcmludC1sb2FkaW5nLSc7XG5leHBvcnQgY29uc3QgUFJJTlRfSURfUVVFUllfUEFSQU0gPSAncHJpbnQtaWQnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByaW50U2VydmljZSB7XG4gIHByaXZhdGUgcHJpbnRJZCA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByb3RlY3RlZCBkb2N1bWVudDogRG9jdW1lbnRcbiAgKSB7fVxuXG4gIG5leHRKb2JJZCgpIHtcbiAgICByZXR1cm4gKyt0aGlzLnByaW50SWQ7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgYW5kIHJldHVybnMgdGhlIGpvYiBJRCBmcm9tIGEgZ2l2ZW4gVVJMLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3VybF0gLSBUaGUgVVJMIGZyb20gd2hpY2ggdG8gZXh0cmFjdCB0aGUgam9iIElELiBJZiBub3QgcHJvdmlkZWQsIGB3aW5kb3cubG9jYXRpb24uaHJlZmAgd2lsbCBiZSB1c2VkLlxuICAgKiBAcmV0dXJuIHtudW1iZXIgfCB1bmRlZmluZWR9IFRoZSBleHRyYWN0ZWQgam9iIElEIGFzIGEgbnVtYmVyLCBvciBgdW5kZWZpbmVkYCBpZiB0aGUgam9iIElEIGlzIG5vdCBwcmVzZW50IG9yIGludmFsaWQuXG4gICAqL1xuICBnZXRKb2JJZCh1cmw/OiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHVybCA9IHVybCB8fCB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICBjb25zdCBtYXRjaGVzID0gdXJsLm1hdGNoKC9wcmludC1pZD0oXFxkKykvKTtcbiAgICByZXR1cm4gdG9OdW1iZXIobWF0Y2hlcz8uWzFdLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgYXN5bmMgcHJpbnRFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBvcHRzPzogUHJpbnRPcHRpb25zKSB7XG4gICAgaWYgKCFlbGVtZW50KSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdlbGVtZW50JyBhcmd1bWVudFwiKTtcblxuICAgIHJldHVybiB0aGlzLnByaW50SFRNTChlbGVtZW50LmlubmVySFRNTCwgb3B0cyk7XG4gIH1cblxuICBhc3luYyBwcmludEhUTUwoaHRtbDogc3RyaW5nLCBvcHRzPzogUHJpbnRPcHRpb25zKSB7XG4gICAgaWYgKCFodG1sKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICdodG1sJyBhcmd1bWVudFwiKTtcblxuICAgIC8vIENyZWF0ZSBpZnJhbWVcbiAgICBjb25zdCBpZnJhbWUgPSB0aGlzLmNyZWF0ZVByaW50SWZyYW1lQnlIdG1sKGh0bWwsIG9wdHMpO1xuXG4gICAgcmV0dXJuIHRoaXMucHJpbnRJZnJhbWUoaWZyYW1lLCBvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIHByaW50VXJsKHVybDogc3RyaW5nLCBvcHRzPzogT21pdDxQcmludE9wdGlvbnMsICdzdHlsZSc+KSB7XG4gICAgaWYgKGlzTmlsT3JCbGFuayh1cmwpKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIHJlcXVpcmVkICd1cmwnIGFyZ3VtZW50XCIpO1xuXG4gICAgLy8gQ3JlYXRlIGlmcmFtZVxuICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuY3JlYXRlUHJpbnRJZnJhbWVCeVVybCh1cmwsIG9wdHMpO1xuXG4gICAgcmV0dXJuIHRoaXMucHJpbnRJZnJhbWUoaWZyYW1lLCBvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIHByaW50SWZyYW1lKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQsIG9wdHM/OiBQcmludE9wdGlvbnMpIHtcbiAgICBpZiAoIWlmcmFtZSkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyByZXF1aXJlZCAnaWZyYW1lJyBhcmd1bWVudFwiKTtcblxuICAgIGNvbnN0IHByaW50SWQgPSBvcHRzPy5pZCA/PyB0aGlzLnByaW50SWQrKztcbiAgICBjb25zdCB0b2FzdElkID0gYHByaW50aW5nLSR7cHJpbnRJZH1gO1xuICAgIGNvbnN0IHNob3dMb2FkaW5nVG9hc3QgPSBvcHRzPy5zaG93VG9hc3QgIT09IGZhbHNlO1xuICAgIGlmIChzaG93TG9hZGluZ1RvYXN0KVxuICAgICAgYXdhaXQgdGhpcy5zaG93VG9hc3Qoe1xuICAgICAgICBpZDogdG9hc3RJZCxcbiAgICAgICAgbWVzc2FnZTogb3B0cz8udG9hc3RNZXNzYWdlIHx8ICdDT01NT04uUExFQVNFX1dBSVQnLFxuICAgICAgICBkdXJhdGlvbjogMCxcbiAgICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIFdhaXQgZW5kIG9mIGlmcmFtZSBsb2FkXG4gICAgICBhd2FpdCB0aGlzLndhaXRJZGxlKGlmcmFtZSwgeyBpZDogcHJpbnRJZCB9KTtcblxuICAgICAgLy8gUHJpbnQgKGFuZCB3YWl0IGVuZCBvZiBwcmludClcbiAgICAgIGF3YWl0IHRoaXMucHJpbnQoaWZyYW1lKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1twcmludC1zZXJ2aWNlXSBGYWlsZWQgdG8gY3JlYXRlIGhpZGRlbiBpZnJhbWUnLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZnJhbWUucmVtb3ZlKCk7XG4gICAgICBpZiAoc2hvd0xvYWRpbmdUb2FzdCkgYXdhaXQgdGhpcy50b2FzdENvbnRyb2xsZXIuZGlzbWlzcyhudWxsLCBudWxsLCB0b2FzdElkKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBtYXJrQXNMb2FkaW5nKGlkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBjb25zb2xlLmRlYnVnKGBbcHJpbnQtc2VydmljZV0gTWFyayBwcmludCBqb2IgIyR7aWR9IGFzIGxvYWRpbmdgKTtcbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0KFBSSU5UX0xPQURJTkdfU1RPUkFHRV9LRVlfUFJFRklYICsgaWQsICcxJyk7XG4gIH1cblxuICBhc3luYyBtYXJrQXNMb2FkZWQoaWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIGNvbnNvbGUuZGVidWcoYFtwcmludC1zZXJ2aWNlXSBNYXJrIHByaW50IGpvYiAjJHtpZH0gYXMgbG9hZGVkYCk7XG4gICAgYXdhaXQgdGhpcy5zdG9yYWdlLnJlbW92ZShQUklOVF9MT0FESU5HX1NUT1JBR0VfS0VZX1BSRUZJWCArIGlkKTtcbiAgfVxuXG4gIGFzeW5jIGlzTG9hZGVkKGlkOiBzdHJpbmcgfCBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnN0b3JhZ2UuZ2V0KFBSSU5UX0xPQURJTkdfU1RPUkFHRV9LRVlfUFJFRklYICsgaWQpO1xuICAgIHJldHVybiBpc05pbChyZXN1bHQpO1xuICB9XG5cbiAgYXN5bmMgaXNMb2FkaW5nKGlkOiBzdHJpbmcgfCBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gIShhd2FpdCB0aGlzLmlzTG9hZGVkKGlkKSk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgZnVuY3Rpb25zIC0tICovXG5cbiAgcHJvdGVjdGVkIGNyZWF0ZVByaW50SWZyYW1lQnlVcmwodXJsOiBzdHJpbmcsIG9wdHM/OiB7IGlkPzogbnVtYmVyIHwgc3RyaW5nIH0pOiBIVE1MSUZyYW1lRWxlbWVudCB7XG4gICAgLy8gTWFrZSBzdXJlIHRvIGFkZCB0aGUgam9iIGlkIGluc2lkZSB0aGUgVVJMIChlLmcuIHRvIGFsbG93IGdldEpvYklkRnJvbVVybCgpIHRvIHJldHJpZXZlIGl0KVxuICAgIGlmIChpc05vdE5pbChvcHRzPy5pZCkpIHtcbiAgICAgIGNvbnN0IG5ld1VybCA9IG5ldyBVUkwodXJsKTtcbiAgICAgIG5ld1VybC5zZWFyY2hQYXJhbXMuc2V0KFBSSU5UX0lEX1FVRVJZX1BBUkFNLCAnJyArIG9wdHMuaWQpO1xuICAgICAgdXJsID0gbmV3VXJsLmhyZWY7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGEgaWZyYW1lIHdpdGggdGhlIGdpdmVuIHVybFxuICAgIGNvbnN0IGlmcmFtZSA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgaWZyYW1lLmNsYXNzTGlzdC5hZGQoJ2Nkay12aXN1YWxseS1oaWRkZW4nKTtcbiAgICBpZnJhbWUuc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgaWZyYW1lLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgICBpZnJhbWUuc3JjID0gdXJsO1xuICAgIHJldHVybiBpZnJhbWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlUHJpbnRJZnJhbWVCeUh0bWwoaHRtbDogc3RyaW5nLCBvcHRzPzogeyB0aXRsZT86IHN0cmluZzsgaW5saW5lU3R5bGU/OiBzdHJpbmcgfSk6IEhUTUxJRnJhbWVFbGVtZW50IHtcbiAgICBpZiAoIWh0bWwpIHRocm93IG5ldyBFcnJvcihcIk1pc3NpbmcgcmVxdWlyZWQgJ2h0bWwnIGFyZ3VtZW50XCIpO1xuXG4gICAgY29uc3QgbGFuZyA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Py5sYW5nIHx8ICdlbic7XG5cbiAgICAvLyBDcmVhdGUgYW4gZW1wdHkgaWZyYW1lXG4gICAgY29uc3QgaWZyYW1lID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICBpZnJhbWUuY2xhc3NMaXN0LmFkZCgnY2RrLXZpc3VhbGx5LWhpZGRlbicpO1xuICAgIGlmcmFtZS5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICBpZnJhbWUuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuXG4gICAgLy8gV3JpdGUgaWZyYW1lIGNvbnRlbnRcbiAgICBjb25zdCBpZnJhbWVEb2N1bWVudCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQgfHwgaWZyYW1lLmNvbnRlbnRXaW5kb3c/LmRvY3VtZW50O1xuICAgIGlmIChpZnJhbWVEb2N1bWVudCkge1xuICAgICAgaWZyYW1lRG9jdW1lbnQub3BlbigpO1xuICAgICAgaWZyYW1lRG9jdW1lbnQud3JpdGUoYFxuICAgICAgICA8IURPQ1RZUEUgaHRtbD5cbiAgICAgICAgPGh0bWwgbGFuZz1cIiR7bGFuZ31cIiBjbGFzcz1cInByaW50LXBkZlwiPlxuICAgICAgICAgIDxoZWFkPlxuICAgICAgICAgICAgPHRpdGxlPiR7b3B0cz8udGl0bGUgfHwgJyd9PC90aXRsZT5cbiAgICAgICAgICAgIDxzdHlsZT5cbiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgIGJvZHkge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICR7b3B0cz8uaW5saW5lU3R5bGUgfHwgJyd9XG4gICAgICAgICAgPC9zdHlsZT5cbiAgICAgICAgICA8L2hlYWQ+XG4gICAgICAgICAgPGJvZHk+XG4gICAgICAgICAgICAke2h0bWx9XG4gICAgICAgICAgPC9ib2R5PlxuICAgICAgICA8L2h0bWw+XG4gICAgICBgKTtcbiAgICAgIGlmcmFtZURvY3VtZW50LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGlmcmFtZSBzdHlsZVxuICAgIC8vIEZJWE1FIC0gSWdub3JlIHN0eWxlIGluamVjdGlvbiwgYmVjYXVzZSBpdCBmYWlsZWQgaW4gRmlyZWZveCAoZS5nLiBvbiB1c2VyIG1hbnVhbCkgYW5kIENocm9tZSAoZS5nLiBpbiBwcml2YWN5IHBvbGljeSlcbiAgICAvLyAgICAgICAgIE5vdGhpbmcgYXBwZWFyIGluIHRoZSBwcmludCBkaWFsb2dcbiAgICAvL3RoaXMuYXBwbHlEb2N1bWVudFN0eWxlVG9JZnJhbWUoaWZyYW1lKTtcblxuICAgIHJldHVybiBpZnJhbWU7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgc3R5bGVzIGZyb20gdGhlIHByb3ZpZGVkIGRvY3VtZW50LCBpbmNsdWRpbmcgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIGlubGluZSBzdHlsZXMsXG4gICAqIHRvIHRoZSBzcGVjaWZpZWQgaWZyYW1lJ3MgZG9jdW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTElGcmFtZUVsZW1lbnR9IGlmcmFtZSAtIFRoZSBpZnJhbWUgdG8gd2hpY2ggdGhlIHN0eWxlcyBhcmUgYXBwbGllZC5cbiAgICogQHJldHVybiB7dm9pZH0gRG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBwbHlEb2N1bWVudFN0eWxlVG9JZnJhbWUoaWZyYW1lOiBIVE1MSUZyYW1lRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB8fCBpZnJhbWUuY29udGVudFdpbmRvdz8uZG9jdW1lbnQ7XG4gICAgaWYgKGlmcmFtZURvY3VtZW50KSB7XG4gICAgICAvLyBSw6ljdXDDqXJlciB0b3VzIGxlcyBzdHlsZXMgKGxpZW5zIENTUylcbiAgICAgIGNvbnN0IGxpbmtzID0gQXJyYXkuZnJvbSh0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlLGxpbmtbcmVsPVwic3R5bGVzaGVldFwiXScpKTtcbiAgICAgIGxpbmtzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgLy8gSW5zZXJ0IGlubGluZSBzdHlsZVxuICAgICAgICBpZiAoZWxlbWVudC50YWdOYW1lID09PSAnU1RZTEUnKSB7XG4gICAgICAgICAgY29uc3QgbmV3U3R5bGUgPSBpZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgIG5ld1N0eWxlLmlubmVySFRNTCA9IGVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgICAgIGlmcmFtZURvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobmV3U3R5bGUpO1xuXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnW3ByaW50LXNlcnZpY2VdIEFkZCBzdHlsZSB0byBpZnJhbWUnLCBuZXdTdHlsZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnNlcnQgbGluayB0byBzdHlsZXNoZWV0IGZpbGVcbiAgICAgICAgZWxzZSBpZiAoZWxlbWVudC50YWdOYW1lID09PSAnTElOSycgJiYgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkge1xuICAgICAgICAgIGNvbnN0IG5ld0xpbmsgPSBpZnJhbWVEb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgbmV3TGluay5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgICAgbmV3TGluay5ocmVmID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICAgICAgICBpZnJhbWVEb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5ld0xpbmspO1xuXG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnW3ByaW50LXNlcnZpY2VdIEFkZCBzdHlsZXNoZWV0IHRvIGlmcmFtZTogJywgbmV3TGluay5ocmVmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHdhaXRJZGxlKGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQsIG9wdHM/OiB7IGlkPzogbnVtYmVyIHwgc3RyaW5nOyB0aW1lb3V0PzogbnVtYmVyIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBXYWl0IGpvYiBmaW5pc2hlZFxuICAgIGNvbnN0IHByaW50SWQgPSBvcHRzPy5pZCB8fCB0aGlzLnByaW50SWQ7XG4gICAgYXdhaXQgd2FpdEZvclRydWUodGltZXIoNTAwLCA1MDApLnBpcGUobWVyZ2VNYXAoKCkgPT4gdGhpcy5pc0xvYWRlZChwcmludElkKSkpLCB7IHRpbWVvdXQ6IG9wdHM/LnRpbWVvdXQgfSk7XG5cbiAgICAvLyBXYWl0IGVuZCBvZiBpZnJhbWUgbG9hZFxuICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGlmcmFtZVdpbmRvdyA9IGlmcmFtZS5jb250ZW50V2luZG93Py53aW5kb3cgfHwgaWZyYW1lLmNvbnRlbnRXaW5kb3c7XG4gICAgICBpZiAoaWZyYW1lV2luZG93LmRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU3RvcCBpZiB0aW1lb3V0IHJlYWNoZWRcbiAgICAgICAgaWYgKG9wdHM/LnRpbWVvdXQgPiAwKSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoJ3RpbWVvdXQnKSwgb3B0cy50aW1lb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlYWR5TGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlmcmFtZVdpbmRvdy5kb2N1bWVudC5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG5cbiAgICAgICAgICAgIGlmcmFtZVdpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdyZWFkeXN0YXRlY2hhbmdlJywgcmVhZHlMaXN0ZW5lcik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpZnJhbWVXaW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncmVhZHlzdGF0ZWNoYW5nZScsIHJlYWR5TGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIHRoZSBwcmludCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBnaXZlbiBpZnJhbWUgYW5kIHJlc29sdmVzIG9yIHJlamVjdHMgYmFzZWQgb24gdGhlIHByaW50IGNvbXBsZXRpb24gb3IgdGltZW91dC5cbiAgICpcbiAgICogQHBhcmFtIHtIVE1MSUZyYW1lRWxlbWVudH0gaWZyYW1lIC0gVGhlIGlmcmFtZSBlbGVtZW50IHRvIGJlIHByaW50ZWQuXG4gICAqIEBwYXJhbSB7e3RpbWVvdXQ/OiBudW1iZXJ9fSBbb3B0c10gLSBBbiBvcHRpb25hbCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRzLnRpbWVvdXRdIC0gVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHByaW50IHRvIGNvbXBsZXRlIGJlZm9yZSByZWplY3RpbmcgdGhlIHByb21pc2UuXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHRoZSBwcmludCBpcyBjb21wbGV0ZWQgb3IgcmVqZWN0cyBpZiBhIHRpbWVvdXQgb2NjdXJzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHByaW50KGlmcmFtZTogSFRNTElGcmFtZUVsZW1lbnQsIG9wdHM/OiB7IHRpbWVvdXQ/OiBudW1iZXIgfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBpZnJhbWVXaW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvdz8ud2luZG93IHx8IGlmcmFtZS5jb250ZW50V2luZG93O1xuXG4gICAgICAvLyBTdG9wIGlmIHRpbWVvdXQgcmVhY2hlZFxuICAgICAgaWYgKG9wdHM/LnRpbWVvdXQgPiAwKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCd0aW1lb3V0JyksIG9wdHMudGltZW91dCk7XG4gICAgICB9XG5cbiAgICAgIC8vIE9uIENocm9tZVxuICAgICAgaWYgKGlzQ2hyb21lKHdpbmRvdykpIHtcbiAgICAgICAgLy8gV2FpdCBhZnRlciBwcmludCBldmVudCwgdG8gcmVzb2x2ZSB0aGUgcHJvbWlzZVxuICAgICAgICBjb25zdCBhZnRlclByaW50TGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5kZWJ1ZygnW3ByaW50LXNlcnZpY2VdIEFmdGVyIHByaW50Jyk7XG5cbiAgICAgICAgICByZXNvbHZlKCk7XG5cbiAgICAgICAgICAvLyBSZW1vdmUgdGhlIGxpc3RlbmVyXG4gICAgICAgICAgaWZyYW1lV2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FmdGVycHJpbnQnLCBhZnRlclByaW50TGlzdGVuZXIpO1xuICAgICAgICB9O1xuICAgICAgICBpZnJhbWVXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYWZ0ZXJwcmludCcsIGFmdGVyUHJpbnRMaXN0ZW5lcik7XG4gICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LndpbmRvdy5wcmludCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBPdGhlcndpc2UgKGUuZy4gRmlyZWZveClcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy53aW5kb3cucHJpbnQoKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzaG93VG9hc3Q8VCA9IGFueT4ob3B0czogU2hvd1RvYXN0T3B0aW9ucyk6IFByb21pc2U8T3ZlcmxheUV2ZW50RGV0YWlsPFQ+PiB7XG4gICAgaWYgKCF0aGlzLnRvYXN0Q29udHJvbGxlcikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyB0b2FzdENvbnRyb2xsZXIgaW4gY29tcG9uZW50J3MgY29uc3RydWN0b3JcIik7XG4gICAgcmV0dXJuIGF3YWl0IFRvYXN0cy5zaG93KHRoaXMudG9hc3RDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZSwgb3B0cyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2273,6 +2273,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2273
2273
|
name: 'arrayJoin',
|
|
2274
2274
|
}]
|
|
2275
2275
|
}] });
|
|
2276
|
+
class ArrayDistinctPipe {
|
|
2277
|
+
transform(val, opts) {
|
|
2278
|
+
if (!Array.isArray(val))
|
|
2279
|
+
return null;
|
|
2280
|
+
const property = typeof opts === 'string' ? opts : opts?.property;
|
|
2281
|
+
return opts?.['omitNil'] !== true ? removeDuplicatesFromArray(val, property) : removeDuplicatesFromArray(val, property).filter(isNotNil);
|
|
2282
|
+
}
|
|
2283
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayDistinctPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2284
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArrayDistinctPipe, name: "arrayDistinct" });
|
|
2285
|
+
}
|
|
2286
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArrayDistinctPipe, decorators: [{
|
|
2287
|
+
type: Pipe,
|
|
2288
|
+
args: [{
|
|
2289
|
+
name: 'arrayDistinct',
|
|
2290
|
+
}]
|
|
2291
|
+
}] });
|
|
2276
2292
|
|
|
2277
2293
|
class MapGetPipe {
|
|
2278
2294
|
transform(val, args) {
|
|
@@ -5284,6 +5300,7 @@ const components$1 = [
|
|
|
5284
5300
|
ArrayIncludesPipe,
|
|
5285
5301
|
ArrayFilterPipe,
|
|
5286
5302
|
ArrayJoinPipe,
|
|
5303
|
+
ArrayDistinctPipe,
|
|
5287
5304
|
MapGetPipe,
|
|
5288
5305
|
MapKeysPipe,
|
|
5289
5306
|
MapValuesPipe,
|
|
@@ -5355,6 +5372,7 @@ class SharedPipesModule {
|
|
|
5355
5372
|
ArrayIncludesPipe,
|
|
5356
5373
|
ArrayFilterPipe,
|
|
5357
5374
|
ArrayJoinPipe,
|
|
5375
|
+
ArrayDistinctPipe,
|
|
5358
5376
|
MapGetPipe,
|
|
5359
5377
|
MapKeysPipe,
|
|
5360
5378
|
MapValuesPipe,
|
|
@@ -5422,6 +5440,7 @@ class SharedPipesModule {
|
|
|
5422
5440
|
ArrayIncludesPipe,
|
|
5423
5441
|
ArrayFilterPipe,
|
|
5424
5442
|
ArrayJoinPipe,
|
|
5443
|
+
ArrayDistinctPipe,
|
|
5425
5444
|
MapGetPipe,
|
|
5426
5445
|
MapKeysPipe,
|
|
5427
5446
|
MapValuesPipe,
|
|
@@ -27662,6 +27681,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
27662
27681
|
}] } });
|
|
27663
27682
|
|
|
27664
27683
|
const PRINT_LOADING_STORAGE_KEY_PREFIX = 'print-loading-';
|
|
27684
|
+
const PRINT_ID_QUERY_PARAM = 'print-id';
|
|
27665
27685
|
class PrintService {
|
|
27666
27686
|
toastController;
|
|
27667
27687
|
translate;
|
|
@@ -27677,6 +27697,17 @@ class PrintService {
|
|
|
27677
27697
|
nextJobId() {
|
|
27678
27698
|
return ++this.printId;
|
|
27679
27699
|
}
|
|
27700
|
+
/**
|
|
27701
|
+
* Extracts and returns the job ID from a given URL.
|
|
27702
|
+
*
|
|
27703
|
+
* @param {string} [url] - The URL from which to extract the job ID. If not provided, `window.location.href` will be used.
|
|
27704
|
+
* @return {number | undefined} The extracted job ID as a number, or `undefined` if the job ID is not present or invalid.
|
|
27705
|
+
*/
|
|
27706
|
+
getJobId(url) {
|
|
27707
|
+
url = url || window.location.href;
|
|
27708
|
+
const matches = url.match(/print-id=(\d+)/);
|
|
27709
|
+
return toNumber(matches?.[1], undefined);
|
|
27710
|
+
}
|
|
27680
27711
|
async printElement(element, opts) {
|
|
27681
27712
|
if (!element)
|
|
27682
27713
|
throw new Error("Missing required 'element' argument");
|
|
@@ -27690,10 +27721,10 @@ class PrintService {
|
|
|
27690
27721
|
return this.printIframe(iframe, opts);
|
|
27691
27722
|
}
|
|
27692
27723
|
async printUrl(url, opts) {
|
|
27693
|
-
if (
|
|
27724
|
+
if (isNilOrBlank(url))
|
|
27694
27725
|
throw new Error("Missing required 'url' argument");
|
|
27695
27726
|
// Create iframe
|
|
27696
|
-
const iframe = this.createPrintIframeByUrl(url);
|
|
27727
|
+
const iframe = this.createPrintIframeByUrl(url, opts);
|
|
27697
27728
|
return this.printIframe(iframe, opts);
|
|
27698
27729
|
}
|
|
27699
27730
|
async printIframe(iframe, opts) {
|
|
@@ -27739,8 +27770,14 @@ class PrintService {
|
|
|
27739
27770
|
return !(await this.isLoaded(id));
|
|
27740
27771
|
}
|
|
27741
27772
|
/* -- protected functions -- */
|
|
27742
|
-
createPrintIframeByUrl(url) {
|
|
27743
|
-
//
|
|
27773
|
+
createPrintIframeByUrl(url, opts) {
|
|
27774
|
+
// Make sure to add the job id inside the URL (e.g. to allow getJobIdFromUrl() to retrieve it)
|
|
27775
|
+
if (isNotNil(opts?.id)) {
|
|
27776
|
+
const newUrl = new URL(url);
|
|
27777
|
+
newUrl.searchParams.set(PRINT_ID_QUERY_PARAM, '' + opts.id);
|
|
27778
|
+
url = newUrl.href;
|
|
27779
|
+
}
|
|
27780
|
+
// Create a iframe with the given url
|
|
27744
27781
|
const iframe = this.document.createElement('iframe');
|
|
27745
27782
|
iframe.classList.add('cdk-visually-hidden');
|
|
27746
27783
|
iframe.style.width = '100%';
|
|
@@ -47430,5 +47467,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
47430
47467
|
* Generated bundle index. Do not edit.
|
|
47431
47468
|
*/
|
|
47432
47469
|
|
|
47433
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_DEBUG_DATA_SERVICE, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_FRAGMENTS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_HOTKEYS_CONFIG, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_LOGGING_SERVICE, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_NAMED_FILTER_SERVICE, APP_PROGRESS_BAR_SERVICE, APP_SETTINGS_MENU_ITEMS, APP_STORAGE, APP_STORAGE_EXPLORER_PROTECTED_KEYS, APP_TESTING_PAGES, APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD, APP_USER_EVENT_SERVICE, APP_USER_SETTINGS_OPTIONS, APP_USER_TOKEN_SCOPES, AboutModal, AbstractNamedFilterService, AbstractSelectionModelPipe, AbstractTableSelectionPipe, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, AccountUtils, ActionsColumnComponent, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndroidOsEnvironment, AppAboutModalModule, AppAccountModule, AppAsyncTable, AppAuthForm, AppAuthModal, AppAuthModule, AppChangePasswordModule, AppChangePasswordPage, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormArray, AppFormButtonsBarModule, AppFormContainer, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMarkdownContent, AppMarkdownModal, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppPropertiesTable, AppPropertiesUtils, AppPropertyUtils, AppRegisterModule, AppResetPasswordModal, AppRowField, AppSelectPeerModule, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, ArrayFilterPipe, ArrayFirstPipe, ArrayFormTestPage, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayPluckPipe, AsAnyPipe, AsArrayPipe, AsBooleanPipe, AsFloatLabelTypePipe, AsObservablePipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, BadgeNumberPipe, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, BooleanFormatPipe, BooleanTestPage, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CapitalizePipe, CellValueChangeListener, ChangePasswordForm, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigFragments, ConfigService, Configuration, CoreModule, CorePipesModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_MATCH_REGEXP, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_JOIN_ARRAY_VALUES_SEPARATOR, DEFAULT_JOIN_PROPERTIES_SEPARATOR, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFormatService, DateFromNowPipe, DateShortTestPage, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DisplayWithPipe, DragAndDropDirective, DurationPipe, DurationTestPage, ED25519_SEED_LENGTH, EMPTY_PLACEHOLDER_CHAR, EMPTY_PLACEHOLDER_CHAR_REGEXP_GLOBAL, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesAsyncTableDataSource, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, EnvironmentHttpLoader, EnvironmentLoader, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormArrayTestModule, FormButtonsBarComponent, FormButtonsBarToken, FormErrorPipe, FormErrorTranslatePipe, FormErrorTranslator, FormFieldDefinitionUtils, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, GalleryTestPage, GeolocationUtils, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, IPosition, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsAllSelectedPipe, IsEmptySelectionPipe, IsLoginAccountPipe, IsMultipleSelectionPipe, IsNilOrBlankPipe, IsNilOrNaNPipe, IsNilPipe, IsNotAllSelectedPipe, IsNotEmptySelectionPipe, IsNotNilOrBlankPipe, IsNotNilOrNaNPipe, IsNotNilPipe, IsOnDeskPipe, IsOnFieldPipe, IsSelectedPipe, IsSingleSelectionPipe, IsValidDatePipe, JobModule, JobProgression, JobProgressionComponent, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, JsonUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_PATTERNS, LAT_LONG_PATTERN_MAX_DECIMALS, LAT_LONG_VALUE_MAX_DECIMALS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LogLevel, LogUtils, Logger, LoggingService, LoggingServiceModule, LongitudeFormatPipe, MASKS, MASK_RANGES, MAT_FORM_FIELD_DEFAULT_APPEARANCE, MAT_FORM_FIELD_DEFAULT_SUBSCRIPT_SIZING, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapValuesPipe, MarkdownDirective, MarkdownService, MarkdownTestPage, MarkdownTestingModule, MarkdownUtils, MaskitoPlaceholderPipe, MaskitoTestPage, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBadgeTestPage, MatBooleanField, MatChipsField, MatColorPipe, MatCommonTestPage, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatLatLongFieldInput, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItem, MenuItems, MenuOptions, MenuService, MenuTestingModule, MenuTestingPage, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NETWORK_DEFAULT_CONNECTION_TIMEOUT, NamedFilter, NamedFilterFilter, NamedFilterSelector, NamedFilterSelectorTestingModule, NamedFilterSelectorTestingPage, NavActionsColumnComponent, NetworkService, NetworkUtils, NewTokenForm, NewTokenModal, NgInitDirective, NgVarDirective, NoHtmlPipe, NotEmptyArrayPipe, NumberFormatPipe, ObservableTestPage, OddPipe, OtherMenuTestingPage, PEER_URL_REGEXP, PLUS_PLACEHOLDER_CHAR_REGEXP_GLOBAL, PRINT_LOADING_STORAGE_KEY_PREFIX, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, PrintService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyEntity, PropertyEntityFilter, PropertyEntityValidator, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialToStringPipe, ReferentialUtils, ReferentialValidatorService, RegExpUtils, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, RxStateModule, RxStateProperty, RxStateRegister, RxStateSelect, SCRYPT_PARAMS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_STORAGE_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SPACE_PLACEHOLDER_CHAR_REGEXP_GLOBAL, SafeHtmlPipe, SelectPeerModal, SelectionLengthPipe, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMarkdownModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedNamedFilterModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedTextFormModule, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageExplorerComponent, StorageExplorerModule, StorageExplorerTestingModule, StorageExplorerTestingRoutingModule, StorageService, StrIncludesPipe, StrLengthPipe, StrReplacePipe, SubMenuTabDirective, SwipeTestPage, Table2TestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TableValidatorService, TextForm, TextFormTestingPage, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ThrottledClickDirective, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, TokenScope, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, TreeItemEntityUtils, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UrlUtils, UserEventModule, UserEventNotificationIcon, UserEventNotificationList, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UserToken, UserTokenTable, UsersPage, ValueFormatPipe, VersionUtils, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayResize, arraySize, asInputElement, booleanToString, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, collectByProperty, compareVersionNumbers, computeDecimalDegrees, computeDecimalPart, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableAndClearControl, disableAndClearControls, disableControl, disableControls, emitPromiseEvent, enableControl, enableControls, enableRxStateProduction, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, fadeInSlowAnimation, filterFalse, filterFormErrors, filterFormErrorsByPath, filterFormErrorsByPrefix, filterNotNil, filterNumberInput, filterTrue, findParentWithClass, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatLong, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getInputRangeFromCaretIndex, getInputSelectionRangesFromMask, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, getRandomImageWithCredit, getUserAgent, hexToRgb, hexToRgbArray, initArrayControlsFromValues, intersectArrays, isAndroid, isBlankString, isCapacitor, isChrome, isControlHasInput, isEdge, isEmptyArray, isFirefox, isIOS, isInputElement, isInstanceOf, isInt, isIpad, isMacOS, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilObject, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isOnFieldMode, isProgressEvent, isPromise, isResponseEvent, isSafari, isSameVersion, isStartableService, isTouchUi, isVersionCompatible, isWindows, joinProperties, joinPropertiesPath, lastArrayValue, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, maskitoAutoSelectByMaskPattern, maskitoPrefixPlugin, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, newArray, noHtml, noTrailingSlash, notNilOrDefault, nullIfNilOrBlank, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputContentFromEvent, selectInputRange, setCalculatedValue, setControlEnabled, setControlsEnabled, setPropertyByPath, setTabIndex, sleep, slideDownAnimation, slideInAnimation, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, splitDegreesToDDArray, splitDegreesToDDMMArray, splitDegreesToDDMMSSArray, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, undefinedIfNull, underscoreToChangeCase, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
47470
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_DEBUG_DATA_SERVICE, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_FRAGMENTS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_HOTKEYS_CONFIG, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_LOGGING_SERVICE, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_NAMED_FILTER_SERVICE, APP_PROGRESS_BAR_SERVICE, APP_SETTINGS_MENU_ITEMS, APP_STORAGE, APP_STORAGE_EXPLORER_PROTECTED_KEYS, APP_TESTING_PAGES, APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD, APP_USER_EVENT_SERVICE, APP_USER_SETTINGS_OPTIONS, APP_USER_TOKEN_SCOPES, AboutModal, AbstractNamedFilterService, AbstractSelectionModelPipe, AbstractTableSelectionPipe, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, AccountUtils, ActionsColumnComponent, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndroidOsEnvironment, AppAboutModalModule, AppAccountModule, AppAsyncTable, AppAuthForm, AppAuthModal, AppAuthModule, AppChangePasswordModule, AppChangePasswordPage, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormArray, AppFormButtonsBarModule, AppFormContainer, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMarkdownContent, AppMarkdownModal, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppPropertiesTable, AppPropertiesUtils, AppPropertyUtils, AppRegisterModule, AppResetPasswordModal, AppRowField, AppSelectPeerModule, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, ArrayDistinctPipe, ArrayFilterPipe, ArrayFirstPipe, ArrayFormTestPage, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayPluckPipe, AsAnyPipe, AsArrayPipe, AsBooleanPipe, AsFloatLabelTypePipe, AsObservablePipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, BadgeNumberPipe, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, BooleanFormatPipe, BooleanTestPage, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CapitalizePipe, CellValueChangeListener, ChangePasswordForm, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigFragments, ConfigService, Configuration, CoreModule, CorePipesModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_MATCH_REGEXP, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_JOIN_ARRAY_VALUES_SEPARATOR, DEFAULT_JOIN_PROPERTIES_SEPARATOR, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFormatService, DateFromNowPipe, DateShortTestPage, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DisplayWithPipe, DragAndDropDirective, DurationPipe, DurationTestPage, ED25519_SEED_LENGTH, EMPTY_PLACEHOLDER_CHAR, EMPTY_PLACEHOLDER_CHAR_REGEXP_GLOBAL, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesAsyncTableDataSource, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, EnvironmentHttpLoader, EnvironmentLoader, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormArrayTestModule, FormButtonsBarComponent, FormButtonsBarToken, FormErrorPipe, FormErrorTranslatePipe, FormErrorTranslator, FormFieldDefinitionUtils, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, GalleryTestPage, GeolocationUtils, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, IPosition, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsAllSelectedPipe, IsEmptySelectionPipe, IsLoginAccountPipe, IsMultipleSelectionPipe, IsNilOrBlankPipe, IsNilOrNaNPipe, IsNilPipe, IsNotAllSelectedPipe, IsNotEmptySelectionPipe, IsNotNilOrBlankPipe, IsNotNilOrNaNPipe, IsNotNilPipe, IsOnDeskPipe, IsOnFieldPipe, IsSelectedPipe, IsSingleSelectionPipe, IsValidDatePipe, JobModule, JobProgression, JobProgressionComponent, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, JsonUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_PATTERNS, LAT_LONG_PATTERN_MAX_DECIMALS, LAT_LONG_VALUE_MAX_DECIMALS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LogLevel, LogUtils, Logger, LoggingService, LoggingServiceModule, LongitudeFormatPipe, MASKS, MASK_RANGES, MAT_FORM_FIELD_DEFAULT_APPEARANCE, MAT_FORM_FIELD_DEFAULT_SUBSCRIPT_SIZING, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapValuesPipe, MarkdownDirective, MarkdownService, MarkdownTestPage, MarkdownTestingModule, MarkdownUtils, MaskitoPlaceholderPipe, MaskitoTestPage, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBadgeTestPage, MatBooleanField, MatChipsField, MatColorPipe, MatCommonTestPage, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatLatLongFieldInput, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItem, MenuItems, MenuOptions, MenuService, MenuTestingModule, MenuTestingPage, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NETWORK_DEFAULT_CONNECTION_TIMEOUT, NamedFilter, NamedFilterFilter, NamedFilterSelector, NamedFilterSelectorTestingModule, NamedFilterSelectorTestingPage, NavActionsColumnComponent, NetworkService, NetworkUtils, NewTokenForm, NewTokenModal, NgInitDirective, NgVarDirective, NoHtmlPipe, NotEmptyArrayPipe, NumberFormatPipe, ObservableTestPage, OddPipe, OtherMenuTestingPage, PEER_URL_REGEXP, PLUS_PLACEHOLDER_CHAR_REGEXP_GLOBAL, PRINT_ID_QUERY_PARAM, PRINT_LOADING_STORAGE_KEY_PREFIX, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, PrintService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyEntity, PropertyEntityFilter, PropertyEntityValidator, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialToStringPipe, ReferentialUtils, ReferentialValidatorService, RegExpUtils, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, RxStateModule, RxStateProperty, RxStateRegister, RxStateSelect, SCRYPT_PARAMS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_STORAGE_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SPACE_PLACEHOLDER_CHAR_REGEXP_GLOBAL, SafeHtmlPipe, SelectPeerModal, SelectionLengthPipe, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMarkdownModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedNamedFilterModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedTextFormModule, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageExplorerComponent, StorageExplorerModule, StorageExplorerTestingModule, StorageExplorerTestingRoutingModule, StorageService, StrIncludesPipe, StrLengthPipe, StrReplacePipe, SubMenuTabDirective, SwipeTestPage, Table2TestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TableValidatorService, TextForm, TextFormTestingPage, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ThrottledClickDirective, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, TokenScope, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, TreeItemEntityUtils, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UrlUtils, UserEventModule, UserEventNotificationIcon, UserEventNotificationList, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UserToken, UserTokenTable, UsersPage, ValueFormatPipe, VersionUtils, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayResize, arraySize, asInputElement, booleanToString, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, collectByProperty, compareVersionNumbers, computeDecimalDegrees, computeDecimalPart, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableAndClearControl, disableAndClearControls, disableControl, disableControls, emitPromiseEvent, enableControl, enableControls, enableRxStateProduction, entityToString, equals, equalsOrNil, escapeRegExp, fadeInAnimation, fadeInOutAnimation, fadeInSlowAnimation, filterFalse, filterFormErrors, filterFormErrorsByPath, filterFormErrorsByPrefix, filterNotNil, filterNumberInput, filterTrue, findParentWithClass, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatLong, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getInputRangeFromCaretIndex, getInputSelectionRangesFromMask, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, getRandomImageWithCredit, getUserAgent, hexToRgb, hexToRgbArray, initArrayControlsFromValues, intersectArrays, isAndroid, isBlankString, isCapacitor, isChrome, isControlHasInput, isEdge, isEmptyArray, isFirefox, isIOS, isInputElement, isInstanceOf, isInt, isIpad, isMacOS, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilObject, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isOnFieldMode, isProgressEvent, isPromise, isResponseEvent, isSafari, isSameVersion, isStartableService, isTouchUi, isVersionCompatible, isWindows, joinProperties, joinPropertiesPath, lastArrayValue, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, maskitoAutoSelectByMaskPattern, maskitoPrefixPlugin, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, newArray, noHtml, noTrailingSlash, notNilOrDefault, nullIfNilOrBlank, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputContentFromEvent, selectInputRange, setCalculatedValue, setControlEnabled, setControlsEnabled, setPropertyByPath, setTabIndex, sleep, slideDownAnimation, slideInAnimation, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, splitDegreesToDDArray, splitDegreesToDDMMArray, splitDegreesToDDMMSSArray, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, undefinedIfNull, underscoreToChangeCase, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
47434
47471
|
//# sourceMappingURL=sumaris-net.ngx-components.mjs.map
|