@elderbyte/ngx-starter 18.0.1 → 18.1.0-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +2 -2
- package/esm2022/lib/components/files/elder-file-select-input.mjs +119 -0
- package/esm2022/lib/components/files/elder-file-select.directive.mjs +85 -83
- package/esm2022/lib/components/files/file-system-api.mjs +96 -0
- package/esm2022/lib/components/files/listing/file-entry.mjs +30 -15
- package/esm2022/lib/components/files/listing/file-listing-rx.mjs +30 -70
- package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +35 -0
- package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +77 -0
- package/fesm2022/elderbyte-ngx-starter.mjs +388 -108
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/components/files/elder-file-select-input.d.ts +59 -0
- package/lib/components/files/elder-file-select.directive.d.ts +16 -23
- package/lib/components/files/file-system-api.d.ts +86 -0
- package/lib/components/files/listing/file-entry.d.ts +10 -1
- package/lib/components/files/listing/file-listing-rx.d.ts +3 -6
- package/lib/components/files/listing/file-listing-system-handle.d.ts +21 -0
- package/lib/components/files/listing/file-listing-webkit.d.ts +26 -0
- package/package.json +1 -1
package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs
CHANGED
|
@@ -36,7 +36,7 @@ export class ElderTableActivationDirective {
|
|
|
36
36
|
ngAfterViewInit() {
|
|
37
37
|
const rows$ = this.elderTable.rows$;
|
|
38
38
|
const data$ = this.elderTable.dataContext$.pipe(switchMap(dc => dc.data), tap(data => this._data = data));
|
|
39
|
-
|
|
39
|
+
combineLatest([rows$, data$]).pipe(takeUntil(this.destroy$)).subscribe(([rows, data]) => {
|
|
40
40
|
this.rows$.next(this.rowDataUpdated(rows, data));
|
|
41
41
|
this.handleAutoActivations();
|
|
42
42
|
});
|
|
@@ -297,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
297
297
|
}], activeItem: [{
|
|
298
298
|
type: Input
|
|
299
299
|
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBUWhFLE1BQU0sT0FBTyw2QkFBNkI7SUFzQnhDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQTNCbEQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsK0JBQTBCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFFNUUs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Q0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFlBQVksQ0FBQyxDQUFJLEVBQUUsUUFBYTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBTztRQUNuQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkQsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7OEdBL1VVLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUx6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3RkFxQlEsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLHNCQUFzQjtnQkFzRXRCLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUN4QixxQkFBcUI7c0JBRC9CLE1BQU07Z0JBTUksZ0JBQWdCO3NCQUQxQixNQUFNO2dCQVVJLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbGRlclRhYmxlUm93RGlyZWN0aXZlfSBmcm9tICcuLi9lbGRlci10YWJsZS1yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7ZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RWxkZXJUYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJUYWJsZUFjdGl2YXRpb25PcHRpb25zfSBmcm9tICcuL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24tb3B0aW9ucyc7XG5pbXBvcnQge0l0ZW1BY3RpdmF0aW9uT3B0aW9uc30gZnJvbSAnLi9pdGVtLWFjdGl2YXRpb24tb3B0aW9ucyc7XG5pbXBvcnQge0l0ZW1BY3RpdmF0aW9uRXZlbnR9IGZyb20gJy4vaXRlbS1hY3RpdmF0aW9uLWV2ZW50JztcbmltcG9ydCB7QWN0aXZhdGlvbkV2ZW50U291cmNlfSBmcm9tICcuL2FjdGl2YXRpb24tZXZlbnQtc291cmNlJztcbmltcG9ydCB7RWxkZXJBY3RpdmF0aW9uQ29udGV4dH0gZnJvbSAnLi9lbGRlci1hY3RpdmF0aW9uLWNvbnRleHQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2VsZGVyLXRhYmxlW2VsZGVyVGFibGVBY3RpdmF0aW9uXScsXG4gICAgZXhwb3J0QXM6ICdlbGRlclRhYmxlQWN0aXZhdGlvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQWN0aXZhdGlvbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIEVsZGVyQWN0aXZhdGlvbkNvbnRleHQ8VD4sIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbUFjdGl2YXRpb25FdmVudFN1YmplY3QgPSBuZXcgU3ViamVjdDxJdGVtQWN0aXZhdGlvbkV2ZW50PFQ+PigpO1xuXG4gIHByaXZhdGUgX2RhdGE6IFRbXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdPihbXSk7XG5cbiAgQElucHV0KCdlbGRlclRhYmxlQWN0aXZhdGlvbicpXG4gIHB1YmxpYyBhY3RpdmF0aW9uT3B0aW9uczogRWxkZXJUYWJsZUFjdGl2YXRpb25PcHRpb25zID0ge307XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGRlclRhYmxlOiBFbGRlclRhYmxlQ29tcG9uZW50XG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IHJvd3MkID0gdGhpcy5lbGRlclRhYmxlLnJvd3MkO1xuICAgIGNvbnN0IGRhdGEkID0gdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGRjID0+IGRjLmRhdGEpLFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5fZGF0YSA9IGRhdGEpXG4gICAgKTsrXG5cbiAgICBjb21iaW5lTGF0ZXN0KFtyb3dzJCwgZGF0YSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGRhdGFdKSA9PiB7XG4gICAgICAgIHRoaXMucm93cyQubmV4dChcbiAgICAgICAgICB0aGlzLnJvd0RhdGFVcGRhdGVkKHJvd3MsIGRhdGEpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaGFuZGxlQXV0b0FjdGl2YXRpb25zKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm93cyQsIHRoaXMuYWN0aXZlSXRlbSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGFjdGl2ZUl0ZW1dKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUm93c0FjdGl2YXRpb24ocm93cywgYWN0aXZlSXRlbSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcChkYyA9PiBkYy5kYXRhU291cmNlKSxcbiAgICAgIHN3aXRjaE1hcChkcyA9PiBkcy5kYXRhQ2hhbmdlZCksXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsZXRlZElkcz8ubGVuZ3RoID4gMClcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkZWxldGVFdmVudCA9PiB7XG4gICAgICAgICBkZWxldGVFdmVudC5kZWxldGVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5kZWFjdGl2YXRlQnlJZChpZCkpXG4gICAgICB9fSlcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIC8vIHRoaXMuZWxkZXJUYWJsZS5yb3dzJC5nZXRWYWx1ZSgpLmZvckVhY2gociA9PiByLmJpbmRUYWJsZUFjdGl2YXRpb24obnVsbCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLlxuICAgKiBIb3N0IExpc3RlbmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgbGV0IG5ld0FjdGl2ZUl0ZW06IFQ7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIG5ld0FjdGl2ZUl0ZW0gPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVBbmRGb2N1cyhuZXdBY3RpdmVJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUub25JdGVtQ2xpY2soYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUuc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGFjdGl2ZSk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUV2ZW50Q2hhbmdlKCk6IE9ic2VydmFibGU8SXRlbUFjdGl2YXRpb25FdmVudDxUPj4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1BY3RpdmF0aW9uRXZlbnRTdWJqZWN0O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUNoYW5nZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhY3RpdmVJdGVtKGl0ZW06IFQpIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGFjdGl2YXRlKGl0ZW06IFQsIG9wdGlvbnM6IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbShpdGVtLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZUFuZEZvY3VzKGl0ZW06IFQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpXG4gIH1cblxuICBwdWJsaWMgaXNJdGVtQWN0aXZlKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtRXF1YWxzKHRoaXMuYWN0aXZlSXRlbSwgaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzSXRlbUZvY3VzKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0Zvckl0ZW0oaXRlbSk7XG4gICAgcmV0dXJuIHJvdz8uaGFzRm9jdXM7XG4gIH1cblxuICBwdWJsaWMgbmV4dENsb3NlVG8oYWN0aXZlOiBUKTogVCB7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMubmV4dFJvd0l0ZW0oKTtcbiAgICBpZiAobmV4dCAhPT0gYWN0aXZlKSB7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbTogVCwgb3B0aW9uczogSXRlbUFjdGl2YXRpb25PcHRpb25zKSB7XG4gICAgdGhpcy5pdGVtQWN0aXZhdGlvbkV2ZW50U3ViamVjdC5uZXh0KG5ldyBJdGVtQWN0aXZhdGlvbkV2ZW50KGl0ZW0sIG9wdGlvbnMuc291cmNlLCBvcHRpb25zLmZvY3VzKSlcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0IGFjdGl2ZSBpdGVtIHRvICcsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUm93c0FjdGl2YXRpb24ocm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLCBhY3RpdmVJdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZUl0ZW0pO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSb3dBY3RpdmF0aW9uKHJvdywgYWN0aXZlSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dBY3RpdmF0aW9uKHJvdzogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPiwgYWN0aXZlSWQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChyb3cubW9kZWwpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1FcXVhbHNJZChyb3cubW9kZWwsIGFjdGl2ZUlkKSkge1xuICAgICAgICBpZiAoIXJvdy5hY3RpdmF0ZWQpIHtcbiAgICAgICAgICByb3cuYWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWN0aXZhdGVkIHJvdzogJywgcm93KTtcbiAgICAgICAgICBpZiAoIXJvdy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcm93LmJyaW5nVG9WaWV3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3cuYWN0aXZhdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvd0RhdGFVcGRhdGVkKFxuICAgIHJvd3M6IEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD5bXSxcbiAgICBkYXRhOiBUW11cbiAgKTogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRm91bmQgcm93czonLCByb3dzKTtcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgIHJvdy5iaW5kVGFibGVBY3RpdmF0aW9uKHRoaXMpO1xuICAgIH0pO1xuICAgIHJldHVybiByb3dzO1xuICB9XG5cblxuICBwcml2YXRlIGRlYWN0aXZhdGVCeUlkKGlkOiBhbnkpIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW0kLmdldFZhbHVlKCk7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZSk7XG4gICAgICBpZiAoYWN0aXZlSWQgPT0gaWQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShudWxsLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3dGb3JJdGVtKGl0ZW06IFQpOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+IHwgbnVsbCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cyQuZ2V0VmFsdWUoKTtcbiAgICByZXR1cm4gcm93cy5maW5kKHIgPT4gci5tb2RlbCA9PT0gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9BY3RpdmF0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWN0aXZlSXRlbSB8fCB0aGlzLmFjdGl2YXRpb25PcHRpb25zLm1vZGUgPT09ICdhbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZhdGlvbk9wdGlvbnMucm93KSB7XG4gICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaXJzdCc6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVMYXN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzQWN0aXZlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRmlyc3QoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbUF0SW5kZXgoMCk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVMYXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCh0aGlzLl9kYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aW91c1Jvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIC0tY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IHJvd3MubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG5cbiAgICBpZiAoY3VycmVudEluZGV4IDwgKHJvd3MubGVuZ3RoIC0gMSkpIHtcbiAgICAgICsrY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEl0ZW1BdEluZGV4KGN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRJdGVtSW5kZXgoYWN0aXZlSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1BdEluZGV4KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRleF07XG4gIH1cblxuICBwcml2YXRlIGZpbmRJdGVtSW5kZXgoaXRlbTogVCk6IG51bWJlciB7XG4gICAgY29uc3QgbmVlZGxlSWQgPSB0aGlzLmdldElkKGl0ZW0pO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbmRJbmRleChpdG0gPT4gdGhpcy5pdGVtRXF1YWxzSWQoaXRtLCBuZWVkbGVJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzKGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gdGhpcy5nZXRJZChiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbUVxdWFsc0lkKGE6IFQsIG5lZWRsZUlkOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gbmVlZGxlSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldElkKGl0ZW06IFQpOiBhbnkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBjb25zdCBkYyA9IHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgICAgIHJldHVybiBkYz8uZGF0YVNvdXJjZT8uZ2V0SWQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBUWhFLE1BQU0sT0FBTyw2QkFBNkI7SUFzQnhDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQTNCbEQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsK0JBQTBCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFFNUUs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S0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxZQUFZLENBQUMsQ0FBSSxFQUFFLFFBQWE7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUNwQyxDQUFDO0lBRU8sS0FBSyxDQUFDLElBQU87UUFDbkIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDOzhHQS9VVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qjs7MkZBQTdCLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7d0ZBcUJRLGlCQUFpQjtzQkFEdkIsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBc0V0QixTQUFTO3NCQURmLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWlDeEIscUJBQXFCO3NCQUQvQixNQUFNO2dCQU1JLGdCQUFnQjtzQkFEMUIsTUFBTTtnQkFVSSxVQUFVO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0VsZGVyVGFibGVDb21wb25lbnR9IGZyb20gJy4uL2VsZGVyLXRhYmxlL2VsZGVyLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQge0VsZGVyVGFibGVBY3RpdmF0aW9uT3B0aW9uc30gZnJvbSAnLi9lbGRlci10YWJsZS1hY3RpdmF0aW9uLW9wdGlvbnMnO1xuaW1wb3J0IHtJdGVtQWN0aXZhdGlvbk9wdGlvbnN9IGZyb20gJy4vaXRlbS1hY3RpdmF0aW9uLW9wdGlvbnMnO1xuaW1wb3J0IHtJdGVtQWN0aXZhdGlvbkV2ZW50fSBmcm9tICcuL2l0ZW0tYWN0aXZhdGlvbi1ldmVudCc7XG5pbXBvcnQge0FjdGl2YXRpb25FdmVudFNvdXJjZX0gZnJvbSAnLi9hY3RpdmF0aW9uLWV2ZW50LXNvdXJjZSc7XG5pbXBvcnQge0VsZGVyQWN0aXZhdGlvbkNvbnRleHR9IGZyb20gJy4vZWxkZXItYWN0aXZhdGlvbi1jb250ZXh0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci10YWJsZVtlbGRlclRhYmxlQWN0aXZhdGlvbl0nLFxuICAgIGV4cG9ydEFzOiAnZWxkZXJUYWJsZUFjdGl2YXRpb24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJsZUFjdGl2YXRpb25EaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBFbGRlckFjdGl2YXRpb25Db250ZXh0PFQ+LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1BY3RpdmF0aW9uRXZlbnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8SXRlbUFjdGl2YXRpb25FdmVudDxUPj4oKTtcblxuICBwcml2YXRlIF9kYXRhOiBUW10gPSBbXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlSXRlbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgcm93cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD5bXT4oW10pO1xuXG4gIEBJbnB1dCgnZWxkZXJUYWJsZUFjdGl2YXRpb24nKVxuICBwdWJsaWMgYWN0aXZhdGlvbk9wdGlvbnM6IEVsZGVyVGFibGVBY3RpdmF0aW9uT3B0aW9ucyA9IHt9O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxkZXJUYWJsZTogRWxkZXJUYWJsZUNvbXBvbmVudFxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBjb25zdCByb3dzJCA9IHRoaXMuZWxkZXJUYWJsZS5yb3dzJDtcbiAgICBjb25zdCBkYXRhJCA9IHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHN3aXRjaE1hcChkYyA9PiBkYy5kYXRhKSxcbiAgICAgIHRhcChkYXRhID0+IHRoaXMuX2RhdGEgPSBkYXRhKVxuICAgICk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtyb3dzJCwgZGF0YSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGRhdGFdKSA9PiB7XG4gICAgICAgIHRoaXMucm93cyQubmV4dChcbiAgICAgICAgICB0aGlzLnJvd0RhdGFVcGRhdGVkKHJvd3MsIGRhdGEpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaGFuZGxlQXV0b0FjdGl2YXRpb25zKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm93cyQsIHRoaXMuYWN0aXZlSXRlbSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGFjdGl2ZUl0ZW1dKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUm93c0FjdGl2YXRpb24ocm93cywgYWN0aXZlSXRlbSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcChkYyA9PiBkYy5kYXRhU291cmNlKSxcbiAgICAgIHN3aXRjaE1hcChkcyA9PiBkcy5kYXRhQ2hhbmdlZCksXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsZXRlZElkcz8ubGVuZ3RoID4gMClcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkZWxldGVFdmVudCA9PiB7XG4gICAgICAgICBkZWxldGVFdmVudC5kZWxldGVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5kZWFjdGl2YXRlQnlJZChpZCkpXG4gICAgICB9fSlcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIC8vIHRoaXMuZWxkZXJUYWJsZS5yb3dzJC5nZXRWYWx1ZSgpLmZvckVhY2gociA9PiByLmJpbmRUYWJsZUFjdGl2YXRpb24obnVsbCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLlxuICAgKiBIb3N0IExpc3RlbmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgbGV0IG5ld0FjdGl2ZUl0ZW06IFQ7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIG5ld0FjdGl2ZUl0ZW0gPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVBbmRGb2N1cyhuZXdBY3RpdmVJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUub25JdGVtQ2xpY2soYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUuc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGFjdGl2ZSk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUV2ZW50Q2hhbmdlKCk6IE9ic2VydmFibGU8SXRlbUFjdGl2YXRpb25FdmVudDxUPj4ge1xuICAgIHJldHVybiB0aGlzLml0ZW1BY3RpdmF0aW9uRXZlbnRTdWJqZWN0O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUNoYW5nZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhY3RpdmVJdGVtKGl0ZW06IFQpIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGFjdGl2YXRlKGl0ZW06IFQsIG9wdGlvbnM6IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlSXRlbShpdGVtLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3RpdmF0ZUFuZEZvY3VzKGl0ZW06IFQpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlKGl0ZW0sIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlNZU1RFTSwgdHJ1ZSkpXG4gIH1cblxuICBwdWJsaWMgaXNJdGVtQWN0aXZlKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICByZXR1cm4gdGhpcy5pdGVtRXF1YWxzKHRoaXMuYWN0aXZlSXRlbSwgaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzSXRlbUZvY3VzKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0Zvckl0ZW0oaXRlbSk7XG4gICAgcmV0dXJuIHJvdz8uaGFzRm9jdXM7XG4gIH1cblxuICBwdWJsaWMgbmV4dENsb3NlVG8oYWN0aXZlOiBUKTogVCB7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMubmV4dFJvd0l0ZW0oKTtcbiAgICBpZiAobmV4dCAhPT0gYWN0aXZlKSB7XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbTogVCwgb3B0aW9uczogSXRlbUFjdGl2YXRpb25PcHRpb25zKSB7XG4gICAgdGhpcy5pdGVtQWN0aXZhdGlvbkV2ZW50U3ViamVjdC5uZXh0KG5ldyBJdGVtQWN0aXZhdGlvbkV2ZW50KGl0ZW0sIG9wdGlvbnMuc291cmNlLCBvcHRpb25zLmZvY3VzKSlcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0IGFjdGl2ZSBpdGVtIHRvICcsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUm93c0FjdGl2YXRpb24ocm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLCBhY3RpdmVJdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZUl0ZW0pO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSb3dBY3RpdmF0aW9uKHJvdywgYWN0aXZlSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dBY3RpdmF0aW9uKHJvdzogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPiwgYWN0aXZlSWQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChyb3cubW9kZWwpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1FcXVhbHNJZChyb3cubW9kZWwsIGFjdGl2ZUlkKSkge1xuICAgICAgICBpZiAoIXJvdy5hY3RpdmF0ZWQpIHtcbiAgICAgICAgICByb3cuYWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWN0aXZhdGVkIHJvdzogJywgcm93KTtcbiAgICAgICAgICBpZiAoIXJvdy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcm93LmJyaW5nVG9WaWV3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3cuYWN0aXZhdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvd0RhdGFVcGRhdGVkKFxuICAgIHJvd3M6IEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD5bXSxcbiAgICBkYXRhOiBUW11cbiAgKTogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRm91bmQgcm93czonLCByb3dzKTtcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgIHJvdy5iaW5kVGFibGVBY3RpdmF0aW9uKHRoaXMpO1xuICAgIH0pO1xuICAgIHJldHVybiByb3dzO1xuICB9XG5cblxuICBwcml2YXRlIGRlYWN0aXZhdGVCeUlkKGlkOiBhbnkpIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW0kLmdldFZhbHVlKCk7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZSk7XG4gICAgICBpZiAoYWN0aXZlSWQgPT0gaWQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShudWxsLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3dGb3JJdGVtKGl0ZW06IFQpOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+IHwgbnVsbCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cyQuZ2V0VmFsdWUoKTtcbiAgICByZXR1cm4gcm93cy5maW5kKHIgPT4gci5tb2RlbCA9PT0gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9BY3RpdmF0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWN0aXZlSXRlbSB8fCB0aGlzLmFjdGl2YXRpb25PcHRpb25zLm1vZGUgPT09ICdhbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZhdGlvbk9wdGlvbnMucm93KSB7XG4gICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaXJzdCc6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVMYXN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzQWN0aXZlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRmlyc3QoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbUF0SW5kZXgoMCk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVMYXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCh0aGlzLl9kYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aW91c1Jvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIC0tY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IHJvd3MubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG5cbiAgICBpZiAoY3VycmVudEluZGV4IDwgKHJvd3MubGVuZ3RoIC0gMSkpIHtcbiAgICAgICsrY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEl0ZW1BdEluZGV4KGN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRJdGVtSW5kZXgoYWN0aXZlSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1BdEluZGV4KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRleF07XG4gIH1cblxuICBwcml2YXRlIGZpbmRJdGVtSW5kZXgoaXRlbTogVCk6IG51bWJlciB7XG4gICAgY29uc3QgbmVlZGxlSWQgPSB0aGlzLmdldElkKGl0ZW0pO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbmRJbmRleChpdG0gPT4gdGhpcy5pdGVtRXF1YWxzSWQoaXRtLCBuZWVkbGVJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzKGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gdGhpcy5nZXRJZChiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbUVxdWFsc0lkKGE6IFQsIG5lZWRsZUlkOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gbmVlZGxlSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldElkKGl0ZW06IFQpOiBhbnkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBjb25zdCBkYyA9IHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgICAgIHJldHVybiBkYz8uZGF0YVNvdXJjZT8uZ2V0SWQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { FileEntry } from './listing/file-entry';
|
|
2
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
export class ElderFileSelectInput {
|
|
6
|
+
/***************************************************************************
|
|
7
|
+
* *
|
|
8
|
+
* Constructor *
|
|
9
|
+
* *
|
|
10
|
+
**************************************************************************/
|
|
11
|
+
constructor(renderer, el) {
|
|
12
|
+
this.renderer = renderer;
|
|
13
|
+
this.el = el;
|
|
14
|
+
/***************************************************************************
|
|
15
|
+
* *
|
|
16
|
+
* Fields *
|
|
17
|
+
* *
|
|
18
|
+
**************************************************************************/
|
|
19
|
+
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
20
|
+
this._filesSelected = new Subject;
|
|
21
|
+
}
|
|
22
|
+
/***************************************************************************
|
|
23
|
+
* *
|
|
24
|
+
* Properties *
|
|
25
|
+
* *
|
|
26
|
+
**************************************************************************/
|
|
27
|
+
get filesSelected() {
|
|
28
|
+
return this._filesSelected;
|
|
29
|
+
}
|
|
30
|
+
set elderFileSelect(value) {
|
|
31
|
+
this._accept = value;
|
|
32
|
+
if (this._fileInput) {
|
|
33
|
+
this.renderer.setProperty(this._fileInput, 'accept', value);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
set elderFileSelectMultiple(value) {
|
|
37
|
+
this._multiple = coerceBooleanProperty(value);
|
|
38
|
+
if (this._fileInput) {
|
|
39
|
+
this.renderer.setProperty(this._fileInput, 'multiple', value);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
set elderFileSelectDirectory(value) {
|
|
43
|
+
this._directory = coerceBooleanProperty(value);
|
|
44
|
+
if (this._fileInput) {
|
|
45
|
+
this.renderer.setAttribute(this._fileInput, 'webkitdirectory', 'true');
|
|
46
|
+
this.renderer.setAttribute(this._fileInput, 'directory', 'true');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/***************************************************************************
|
|
50
|
+
* *
|
|
51
|
+
* Public API *
|
|
52
|
+
* *
|
|
53
|
+
**************************************************************************/
|
|
54
|
+
/**
|
|
55
|
+
* <input type="file"
|
|
56
|
+
* hidden #fileInput
|
|
57
|
+
* [multiple]="multiple"
|
|
58
|
+
* [accept]="accept"
|
|
59
|
+
* (change)="fileInputChanged()"
|
|
60
|
+
* />
|
|
61
|
+
*/
|
|
62
|
+
createFileSelect() {
|
|
63
|
+
this._fileInput = this.renderer.createElement('input');
|
|
64
|
+
this.renderer.setAttribute(this._fileInput, 'hidden', 'true');
|
|
65
|
+
this.renderer.setAttribute(this._fileInput, 'type', 'file');
|
|
66
|
+
this.renderer.appendChild(this.el.nativeElement, this._fileInput);
|
|
67
|
+
if (this._accept) {
|
|
68
|
+
this.renderer.setProperty(this._fileInput, 'accept', this._accept);
|
|
69
|
+
}
|
|
70
|
+
if (this._multiple) {
|
|
71
|
+
this.renderer.setProperty(this._fileInput, 'multiple', this._multiple);
|
|
72
|
+
}
|
|
73
|
+
if (this._directory) {
|
|
74
|
+
this.renderer.setAttribute(this._fileInput, 'webkitdirectory', 'true');
|
|
75
|
+
this.renderer.setAttribute(this._fileInput, 'directory', 'true');
|
|
76
|
+
}
|
|
77
|
+
this._unlisten = this.renderer.listen(this._fileInput, 'change', event => {
|
|
78
|
+
this.fileInputChanged(this._fileInput.files);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
removeFileSelect() {
|
|
82
|
+
if (this._unlisten) {
|
|
83
|
+
this._unlisten();
|
|
84
|
+
this._unlisten = null;
|
|
85
|
+
}
|
|
86
|
+
if (this._fileInput) {
|
|
87
|
+
this.renderer.removeChild(this.el.nativeElement, this._fileInput);
|
|
88
|
+
this._fileInput = null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
openFileSelectDialog() {
|
|
92
|
+
this._fileInput.click();
|
|
93
|
+
}
|
|
94
|
+
/***************************************************************************
|
|
95
|
+
* *
|
|
96
|
+
* Private methods *
|
|
97
|
+
* *
|
|
98
|
+
**************************************************************************/
|
|
99
|
+
fileInputChanged(fileList) {
|
|
100
|
+
const files = this.toFileEntries(fileList);
|
|
101
|
+
this.logger.debug('fileInputChanged, files:', files);
|
|
102
|
+
this.clearFileList();
|
|
103
|
+
this._filesSelected.next(files);
|
|
104
|
+
}
|
|
105
|
+
clearFileList() {
|
|
106
|
+
// not nice but works
|
|
107
|
+
this._fileInput.value = null;
|
|
108
|
+
}
|
|
109
|
+
toFileEntries(fileList) {
|
|
110
|
+
const files = [];
|
|
111
|
+
for (const key in fileList) {
|
|
112
|
+
if (!isNaN(parseInt(key, 0))) {
|
|
113
|
+
files.push(FileEntry.ofFile(fileList[key]));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return files;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZmlsZS1zZWxlY3QtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGVzL2VsZGVyLWZpbGUtc2VsZWN0LWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUUvQyxPQUFPLEVBQWUscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6QyxNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQjs7OztnRkFJNEU7SUFFNUUsWUFDVSxRQUFtQixFQUNuQixFQUFjO1FBRGQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBMUJ4Qjs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQVN4RCxtQkFBYyxHQUFHLElBQUksT0FBb0IsQ0FBQztJQWEzRCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsZUFBZSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7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Q0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFHRDs7OztnRkFJNEU7SUFHcEUsZ0JBQWdCLENBQUMsUUFBa0I7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGFBQWE7UUFDbkIscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWtCO1FBQ3RDLE1BQU0sS0FBSyxHQUFnQixFQUFFLENBQUM7UUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtGaWxlRW50cnl9IGZyb20gJy4vbGlzdGluZy9maWxlLWVudHJ5JztcbmltcG9ydCB7RWxlbWVudFJlZiwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Qm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cblxuZXhwb3J0IGNsYXNzIEVsZGVyRmlsZVNlbGVjdElucHV0IHtcblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9maWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgX3VubGlzdGVuOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX211bHRpcGxlOiBib29sZWFuO1xuICBwcml2YXRlIF9kaXJlY3Rvcnk6IGJvb2xlYW47XG4gIHByaXZhdGUgX2FjY2VwdDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbGVzU2VsZWN0ZWQgPSBuZXcgU3ViamVjdDxGaWxlRW50cnlbXT47XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZmlsZXNTZWxlY3RlZCgpOiBPYnNlcnZhYmxlPEZpbGVFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVzU2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGVsZGVyRmlsZVNlbGVjdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWNjZXB0ID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2ZpbGVJbnB1dCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9maWxlSW5wdXQsICdhY2NlcHQnLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBlbGRlckZpbGVTZWxlY3RNdWx0aXBsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmICh0aGlzLl9maWxlSW5wdXQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZmlsZUlucHV0LCAnbXVsdGlwbGUnLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBlbGRlckZpbGVTZWxlY3REaXJlY3RvcnkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2RpcmVjdG9yeSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuX2ZpbGVJbnB1dCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZmlsZUlucHV0LCAnd2Via2l0ZGlyZWN0b3J5JywgJ3RydWUnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2ZpbGVJbnB1dCwgJ2RpcmVjdG9yeScsICd0cnVlJyk7XG4gICAgfVxuICB9XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogPGlucHV0IHR5cGU9XCJmaWxlXCJcbiAgICogICAgIGhpZGRlbiAjZmlsZUlucHV0XG4gICAqICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgKiAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgKiAgICAgKGNoYW5nZSk9XCJmaWxlSW5wdXRDaGFuZ2VkKClcIlxuICAgKiAvPlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUZpbGVTZWxlY3QoKTogdm9pZCB7XG5cbiAgICB0aGlzLl9maWxlSW5wdXQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZmlsZUlucHV0LCAnaGlkZGVuJywgJ3RydWUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9maWxlSW5wdXQsICd0eXBlJywgJ2ZpbGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5fZmlsZUlucHV0KTtcblxuICAgIGlmICh0aGlzLl9hY2NlcHQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZmlsZUlucHV0LCAnYWNjZXB0JywgdGhpcy5fYWNjZXB0KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX211bHRpcGxlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2ZpbGVJbnB1dCwgJ211bHRpcGxlJywgdGhpcy5fbXVsdGlwbGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fZGlyZWN0b3J5KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9maWxlSW5wdXQsICd3ZWJraXRkaXJlY3RvcnknLCAndHJ1ZScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZmlsZUlucHV0LCAnZGlyZWN0b3J5JywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICB0aGlzLl91bmxpc3RlbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuICAgICAgdGhpcy5fZmlsZUlucHV0LFxuICAgICAgJ2NoYW5nZScsXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIHRoaXMuZmlsZUlucHV0Q2hhbmdlZCh0aGlzLl9maWxlSW5wdXQuZmlsZXMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRmlsZVNlbGVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdW5saXN0ZW4pIHtcbiAgICAgIHRoaXMuX3VubGlzdGVuKCk7XG4gICAgICB0aGlzLl91bmxpc3RlbiA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLl9maWxlSW5wdXQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLl9maWxlSW5wdXQpO1xuICAgICAgdGhpcy5fZmlsZUlucHV0ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlbkZpbGVTZWxlY3REaWFsb2coKTogdm9pZCB7XG4gICAgdGhpcy5fZmlsZUlucHV0LmNsaWNrKCk7XG4gIH1cblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgcHJpdmF0ZSBmaWxlSW5wdXRDaGFuZ2VkKGZpbGVMaXN0OiBGaWxlTGlzdCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVzID0gdGhpcy50b0ZpbGVFbnRyaWVzKGZpbGVMaXN0KTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZmlsZUlucHV0Q2hhbmdlZCwgZmlsZXM6JywgZmlsZXMpO1xuICAgIHRoaXMuY2xlYXJGaWxlTGlzdCgpO1xuICAgIHRoaXMuX2ZpbGVzU2VsZWN0ZWQubmV4dChmaWxlcyk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyRmlsZUxpc3QoKSB7XG4gICAgLy8gbm90IG5pY2UgYnV0IHdvcmtzXG4gICAgdGhpcy5fZmlsZUlucHV0LnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgdG9GaWxlRW50cmllcyhmaWxlTGlzdDogRmlsZUxpc3QpOiBGaWxlRW50cnlbXSB7XG4gICAgY29uc3QgZmlsZXM6IEZpbGVFbnRyeVtdID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmlsZUxpc3QpIHtcbiAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoa2V5LCAwKSkpIHtcbiAgICAgICAgZmlsZXMucHVzaChGaWxlRW50cnkub2ZGaWxlKGZpbGVMaXN0W2tleV0pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cblxuXG59XG4iXX0=
|
|
@@ -2,6 +2,11 @@ import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/c
|
|
|
2
2
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
3
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
4
|
import { FileEntry } from './listing/file-entry';
|
|
5
|
+
import { ElderFileSelectInput } from './elder-file-select-input';
|
|
6
|
+
import { FileSystemApi } from './file-system-api';
|
|
7
|
+
import { combineLatest, switchMap } from 'rxjs';
|
|
8
|
+
import { FileListingSystemHandle } from './listing/file-listing-system-handle';
|
|
9
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
10
|
import * as i0 from "@angular/core";
|
|
6
11
|
export class ElderFileSelectDirective {
|
|
7
12
|
/***************************************************************************
|
|
@@ -9,9 +14,10 @@ export class ElderFileSelectDirective {
|
|
|
9
14
|
* Constructor *
|
|
10
15
|
* *
|
|
11
16
|
**************************************************************************/
|
|
12
|
-
constructor(el,
|
|
13
|
-
this.el = el;
|
|
17
|
+
constructor(renderer, el, destroyRef) {
|
|
14
18
|
this.renderer = renderer;
|
|
19
|
+
this.el = el;
|
|
20
|
+
this.destroyRef = destroyRef;
|
|
15
21
|
/***************************************************************************
|
|
16
22
|
* *
|
|
17
23
|
* Fields *
|
|
@@ -20,6 +26,8 @@ export class ElderFileSelectDirective {
|
|
|
20
26
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
21
27
|
this.elderFileSelectChange = new EventEmitter();
|
|
22
28
|
this.elderSingleFileSelectChange = new EventEmitter();
|
|
29
|
+
this._useDirectoryPicker = false;
|
|
30
|
+
this._legacyInput = new ElderFileSelectInput(this.renderer, this.el);
|
|
23
31
|
}
|
|
24
32
|
/***************************************************************************
|
|
25
33
|
* *
|
|
@@ -27,10 +35,16 @@ export class ElderFileSelectDirective {
|
|
|
27
35
|
* *
|
|
28
36
|
**************************************************************************/
|
|
29
37
|
ngOnInit() {
|
|
30
|
-
|
|
38
|
+
if (!FileSystemApi.isFileSystemSupported() || !FileSystemApi.isDirectoryPickerSupported()) {
|
|
39
|
+
this.logger.warn('showOpenFilePicker or showDirectoryPicker is not supported for this browser, falling back to legacy file picker');
|
|
40
|
+
this._legacyInput.createFileSelect();
|
|
41
|
+
this._legacyInput.filesSelected.pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
42
|
+
next: multiFileChange => this.pushFileChanges(multiFileChange)
|
|
43
|
+
});
|
|
44
|
+
}
|
|
31
45
|
}
|
|
32
46
|
ngOnDestroy() {
|
|
33
|
-
this.removeFileSelect();
|
|
47
|
+
this._legacyInput.removeFileSelect();
|
|
34
48
|
}
|
|
35
49
|
/***************************************************************************
|
|
36
50
|
* *
|
|
@@ -38,16 +52,49 @@ export class ElderFileSelectDirective {
|
|
|
38
52
|
* *
|
|
39
53
|
**************************************************************************/
|
|
40
54
|
set elderFileSelect(value) {
|
|
41
|
-
this.
|
|
42
|
-
|
|
43
|
-
this.
|
|
55
|
+
this._filePickerOptions = {
|
|
56
|
+
excludeAcceptAllOptions: true,
|
|
57
|
+
id: this._filePickerOptions?.id,
|
|
58
|
+
multiple: this._filePickerOptions?.multiple,
|
|
59
|
+
startIn: this._filePickerOptions?.startIn,
|
|
60
|
+
types: [this.buildTypeOption(value)]
|
|
61
|
+
};
|
|
62
|
+
this._legacyInput.elderFileSelect = value;
|
|
63
|
+
}
|
|
64
|
+
buildTypeOption(value) {
|
|
65
|
+
if (this.isFileExtension(value)) {
|
|
66
|
+
return {
|
|
67
|
+
accept: {
|
|
68
|
+
'*/*': value.trim()
|
|
69
|
+
.replace(/\s+/g, '')
|
|
70
|
+
.split(',')
|
|
71
|
+
}
|
|
72
|
+
};
|
|
44
73
|
}
|
|
74
|
+
else if (this.isMimeType(value)) {
|
|
75
|
+
return {
|
|
76
|
+
accept: { [value]: [] }
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
isFileExtension(input) {
|
|
82
|
+
const regex = new RegExp(/^(\.\w+)(, ?\.\w+)*$/);
|
|
83
|
+
return regex.test(input);
|
|
84
|
+
}
|
|
85
|
+
isMimeType(input) {
|
|
86
|
+
const regex = new RegExp(/^.+\/.+$/);
|
|
87
|
+
return regex.test(input);
|
|
45
88
|
}
|
|
46
89
|
set elderFileSelectMultiple(value) {
|
|
47
|
-
this.
|
|
48
|
-
|
|
49
|
-
this.
|
|
50
|
-
|
|
90
|
+
this._filePickerOptions = {
|
|
91
|
+
excludeAcceptAllOptions: this._filePickerOptions?.excludeAcceptAllOptions,
|
|
92
|
+
id: this._filePickerOptions?.id,
|
|
93
|
+
multiple: coerceBooleanProperty(value),
|
|
94
|
+
startIn: this._filePickerOptions?.startIn,
|
|
95
|
+
types: this._filePickerOptions?.types
|
|
96
|
+
};
|
|
97
|
+
this._legacyInput.elderFileSelectMultiple = value;
|
|
51
98
|
}
|
|
52
99
|
/**
|
|
53
100
|
* Allow the user to select a directory. All files that are recursively contained are selected.
|
|
@@ -55,11 +102,8 @@ export class ElderFileSelectDirective {
|
|
|
55
102
|
* @param value
|
|
56
103
|
*/
|
|
57
104
|
set elderFileSelectDirectory(value) {
|
|
58
|
-
this.
|
|
59
|
-
|
|
60
|
-
this.renderer.setAttribute(this._fileInput, 'webkitdirectory', 'true');
|
|
61
|
-
this.renderer.setAttribute(this._fileInput, 'directory', 'true');
|
|
62
|
-
}
|
|
105
|
+
this._useDirectoryPicker = coerceBooleanProperty(value);
|
|
106
|
+
this._legacyInput.elderFileSelectDirectory = value;
|
|
63
107
|
}
|
|
64
108
|
/***************************************************************************
|
|
65
109
|
* *
|
|
@@ -67,81 +111,39 @@ export class ElderFileSelectDirective {
|
|
|
67
111
|
* *
|
|
68
112
|
**************************************************************************/
|
|
69
113
|
onClick(event) {
|
|
70
|
-
this.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
114
|
+
if (!this._useDirectoryPicker && FileSystemApi.isFileSystemSupported()) {
|
|
115
|
+
this.openFilePicker(this._filePickerOptions).subscribe({
|
|
116
|
+
next: multiFileChange => this.pushFileChanges(multiFileChange)
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
else if (this._useDirectoryPicker && FileSystemApi.isDirectoryPickerSupported()) {
|
|
120
|
+
this.openDirectoryPicker(this._directoryPickerOptions).subscribe({
|
|
121
|
+
next: multiFileChange => this.pushFileChanges(multiFileChange)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
this._legacyInput.openFileSelectDialog();
|
|
126
|
+
}
|
|
74
127
|
}
|
|
75
128
|
/***************************************************************************
|
|
76
129
|
* *
|
|
77
130
|
* Private methods *
|
|
78
131
|
* *
|
|
79
132
|
**************************************************************************/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
* (change)="fileInputChanged()"
|
|
86
|
-
* />
|
|
87
|
-
*/
|
|
88
|
-
createFileSelect() {
|
|
89
|
-
this._fileInput = this.renderer.createElement('input');
|
|
90
|
-
this.renderer.setAttribute(this._fileInput, 'hidden', 'true');
|
|
91
|
-
this.renderer.setAttribute(this._fileInput, 'type', 'file');
|
|
92
|
-
this.renderer.appendChild(this.el.nativeElement, this._fileInput);
|
|
93
|
-
if (this._accept) {
|
|
94
|
-
this.renderer.setProperty(this._fileInput, 'accept', this._accept);
|
|
95
|
-
}
|
|
96
|
-
if (this._multiple) {
|
|
97
|
-
this.renderer.setProperty(this._fileInput, 'multiple', this._multiple);
|
|
98
|
-
}
|
|
99
|
-
if (this._directory) {
|
|
100
|
-
this.renderer.setAttribute(this._fileInput, 'webkitdirectory', 'true');
|
|
101
|
-
this.renderer.setAttribute(this._fileInput, 'directory', 'true');
|
|
102
|
-
}
|
|
103
|
-
this._unlisten = this.renderer.listen(this._fileInput, 'change', event => this.fileInputChanged(event));
|
|
104
|
-
}
|
|
105
|
-
removeFileSelect() {
|
|
106
|
-
if (this._unlisten) {
|
|
107
|
-
this._unlisten();
|
|
108
|
-
this._unlisten = null;
|
|
109
|
-
}
|
|
110
|
-
if (this._fileInput) {
|
|
111
|
-
this.renderer.removeChild(this.el.nativeElement, this._fileInput);
|
|
112
|
-
this._fileInput = null;
|
|
133
|
+
pushFileChanges(multiFileChange) {
|
|
134
|
+
this.elderFileSelectChange.next(multiFileChange);
|
|
135
|
+
const file = multiFileChange[0]?.file;
|
|
136
|
+
if (file) {
|
|
137
|
+
this.elderSingleFileSelectChange.next(file);
|
|
113
138
|
}
|
|
114
139
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const files = this.toFileEntries(fileList);
|
|
118
|
-
this.logger.debug('fileInputChanged, files:', files);
|
|
119
|
-
this.emitFileList(files);
|
|
120
|
-
this.clearFileList();
|
|
140
|
+
openFilePicker(pickerOpts) {
|
|
141
|
+
return FileSystemApi.openFilePicker(pickerOpts).pipe(switchMap(files => combineLatest(files.map(file => FileEntry.ofFileHandle(file)))));
|
|
121
142
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
this._fileInput.value = null;
|
|
125
|
-
}
|
|
126
|
-
emitFileList(files) {
|
|
127
|
-
if (files.length > 0) {
|
|
128
|
-
this.elderFileSelectChange.next(files);
|
|
129
|
-
this.elderSingleFileSelectChange.emit(files[0].file);
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
this.logger.warn('User did not select any File or the Folder was empty.');
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
toFileEntries(fileList) {
|
|
136
|
-
const files = [];
|
|
137
|
-
for (const key in fileList) {
|
|
138
|
-
if (!isNaN(parseInt(key, 0))) {
|
|
139
|
-
files.push(FileEntry.ofFile(fileList[key]));
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
return files;
|
|
143
|
+
openDirectoryPicker(pickerOpts) {
|
|
144
|
+
return FileSystemApi.openDirectoryPicker(pickerOpts).pipe(switchMap(dir => FileListingSystemHandle.listFiles(dir)));
|
|
143
145
|
}
|
|
144
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderFileSelectDirective, deps: [{ token: i0.ElementRef }, { token: i0.
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderFileSelectDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
145
147
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderFileSelectDirective, isStandalone: true, selector: "[elderFileSelect]", inputs: { elderFileSelect: "elderFileSelect", elderFileSelectMultiple: "elderFileSelectMultiple", elderFileSelectDirectory: "elderFileSelectDirectory" }, outputs: { elderFileSelectChange: "elderFileSelectChange", elderSingleFileSelectChange: "elderSingleFileSelectChange" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); }
|
|
146
148
|
}
|
|
147
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderFileSelectDirective, decorators: [{
|
|
@@ -150,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
150
152
|
selector: '[elderFileSelect]',
|
|
151
153
|
standalone: true
|
|
152
154
|
}]
|
|
153
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.
|
|
155
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.DestroyRef }], propDecorators: { elderFileSelectChange: [{
|
|
154
156
|
type: Output
|
|
155
157
|
}], elderSingleFileSelectChange: [{
|
|
156
158
|
type: Output
|
|
@@ -164,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
164
166
|
type: HostListener,
|
|
165
167
|
args: ['click', ['$event']]
|
|
166
168
|
}] } });
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9lbGRlci1maWxlLXNlbGVjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNL0MsTUFBTSxPQUFPLHdCQUF3QjtJQXVCbkM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBN0I3Qjs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU16RCwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBR3hELGdDQUEyQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFnQnZFLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxlQUFlLENBQUMsS0FBYTtRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ1csdUJBQXVCLENBQUMsS0FBbUI7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNXLHdCQUF3QixDQUFDLEtBQW1CO1FBQ3JELElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUdyRSxPQUFPLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7OztPQU9HO0lBQ0ssZ0JBQWdCO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUNuQyxJQUFJLENBQUMsVUFBVSxFQUNmLFFBQVEsRUFDUixLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWtCO1FBQ3JDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQ25DLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2QsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxRQUFrQjtRQUN0QyxNQUFNLEtBQUssR0FBZ0IsRUFBRSxDQUFDO1FBQzlCLEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBdExVLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt1R0FlaUIscUJBQXFCO3NCQURwQyxNQUFNO2dCQUlTLDJCQUEyQjtzQkFEMUMsTUFBTTtnQkF3Q0ksZUFBZTtzQkFEekIsS0FBSztnQkFTSyx1QkFBdUI7c0JBRGpDLEtBQUs7Z0JBY0ssd0JBQXdCO3NCQURsQyxLQUFLO2dCQWdCQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7RmlsZUVudHJ5fSBmcm9tICcuL2xpc3RpbmcvZmlsZS1lbnRyeSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VsZGVyRmlsZVNlbGVjdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJGaWxlU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9maWxlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIHByaXZhdGUgX3VubGlzdGVuOiAoKSA9PiB2b2lkO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZWxkZXJGaWxlU2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlRW50cnlbXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVsZGVyU2luZ2xlRmlsZVNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcblxuICBwcml2YXRlIF9tdWx0aXBsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfZGlyZWN0b3J5OiBib29sZWFuO1xuICBwcml2YXRlIF9hY2NlcHQ6IHN0cmluZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0ZUZpbGVTZWxlY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUZpbGVTZWxlY3QoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZWxkZXJGaWxlU2VsZWN0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hY2NlcHQgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fZmlsZUlucHV0KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2ZpbGVJbnB1dCwgJ2FjY2VwdCcsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVsZGVyRmlsZVNlbGVjdE11bHRpcGxlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9tdWx0aXBsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuX2ZpbGVJbnB1dCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9maWxlSW5wdXQsICdtdWx0aXBsZScsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGlyZWN0b3J5LiBBbGwgZmlsZXMgdGhhdCBhcmUgcmVjdXJzaXZlbHkgY29udGFpbmVkIGFyZSBzZWxlY3RlZC5cbiAgICogSG93ZXZlciwgdGhlIHVzZXIgd2lsbCBubyBsb25nZXIgYmUgYWJsZSB0byBzZWxlY3QgaW5kaXZpZHVhbCBmaWxlcyBpZiB0aGlzIGlzIGVuYWJsZWQuXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbGRlckZpbGVTZWxlY3REaXJlY3RvcnkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2RpcmVjdG9yeSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuX2ZpbGVJbnB1dCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZmlsZUlucHV0LCAnd2Via2l0ZGlyZWN0b3J5JywgJ3RydWUnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2ZpbGVJbnB1dCwgJ2RpcmVjdG9yeScsICd0cnVlJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25DbGljayhldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRmlsZVNlbGVjdERpYWxvZygpO1xuICB9XG5cbiAgcHVibGljIG9wZW5GaWxlU2VsZWN0RGlhbG9nKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbGVJbnB1dC5jbGljaygpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIDxpbnB1dCB0eXBlPVwiZmlsZVwiXG4gICAqICAgICBoaWRkZW4gI2ZpbGVJbnB1dFxuICAgKiAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICogICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICogICAgIChjaGFuZ2UpPVwiZmlsZUlucHV0Q2hhbmdlZCgpXCJcbiAgICogLz5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRmlsZVNlbGVjdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuX2ZpbGVJbnB1dCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9maWxlSW5wdXQsICdoaWRkZW4nLCAndHJ1ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2ZpbGVJbnB1dCwgJ3R5cGUnLCAnZmlsZScpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLl9maWxlSW5wdXQpO1xuXG4gICAgaWYgKHRoaXMuX2FjY2VwdCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9maWxlSW5wdXQsICdhY2NlcHQnLCB0aGlzLl9hY2NlcHQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fbXVsdGlwbGUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZmlsZUlucHV0LCAnbXVsdGlwbGUnLCB0aGlzLl9tdWx0aXBsZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9kaXJlY3RvcnkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2ZpbGVJbnB1dCwgJ3dlYmtpdGRpcmVjdG9yeScsICd0cnVlJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9maWxlSW5wdXQsICdkaXJlY3RvcnknLCAndHJ1ZScpO1xuICAgIH1cblxuICAgIHRoaXMuX3VubGlzdGVuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICB0aGlzLl9maWxlSW5wdXQsXG4gICAgICAnY2hhbmdlJyxcbiAgICAgIGV2ZW50ID0+IHRoaXMuZmlsZUlucHV0Q2hhbmdlZChldmVudClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVGaWxlU2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl91bmxpc3Rlbikge1xuICAgICAgdGhpcy5fdW5saXN0ZW4oKTtcbiAgICAgIHRoaXMuX3VubGlzdGVuID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2ZpbGVJbnB1dCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2ZpbGVJbnB1dCk7XG4gICAgICB0aGlzLl9maWxlSW5wdXQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsZUlucHV0Q2hhbmdlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZmlsZUxpc3QgPSB0aGlzLl9maWxlSW5wdXQuZmlsZXM7XG4gICAgY29uc3QgZmlsZXMgPSB0aGlzLnRvRmlsZUVudHJpZXMoZmlsZUxpc3QpO1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmaWxlSW5wdXRDaGFuZ2VkLCBmaWxlczonLCBmaWxlcyk7XG4gICAgdGhpcy5lbWl0RmlsZUxpc3QoZmlsZXMpO1xuICAgIHRoaXMuY2xlYXJGaWxlTGlzdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckZpbGVMaXN0KCkge1xuICAgIC8vIG5vdCBuaWNlIGJ1dCB3b3Jrc1xuICAgIHRoaXMuX2ZpbGVJbnB1dC52YWx1ZSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGaWxlTGlzdChmaWxlczogRmlsZUVudHJ5W10pOiB2b2lkIHtcbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5lbGRlckZpbGVTZWxlY3RDaGFuZ2UubmV4dChmaWxlcyk7XG4gICAgICB0aGlzLmVsZGVyU2luZ2xlRmlsZVNlbGVjdENoYW5nZS5lbWl0KFxuICAgICAgICBmaWxlc1swXS5maWxlXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdVc2VyIGRpZCBub3Qgc2VsZWN0IGFueSBGaWxlIG9yIHRoZSBGb2xkZXIgd2FzIGVtcHR5LicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9GaWxlRW50cmllcyhmaWxlTGlzdDogRmlsZUxpc3QpOiBGaWxlRW50cnlbXSB7XG4gICAgY29uc3QgZmlsZXM6IEZpbGVFbnRyeVtdID0gW107XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmlsZUxpc3QpIHtcbiAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQoa2V5LCAwKSkpIHtcbiAgICAgICAgZmlsZXMucHVzaChGaWxlRW50cnkub2ZGaWxlKGZpbGVMaXN0W2tleV0pKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbn1cbiJdfQ==
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9maWxlcy9lbGRlci1maWxlLXNlbGVjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsYUFBYSxFQUlkLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFDLGFBQWEsRUFBYyxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7O0FBTzlELE1BQU0sT0FBTyx3QkFBd0I7SUFxQm5DOzs7O2dGQUk0RTtJQUU1RSxZQUNVLFFBQW1CLEVBQ25CLEVBQWMsRUFDZCxVQUFzQjtRQUZ0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBNUJoQzs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUd6RCwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBR3hELGdDQUEyQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLL0Qsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBYTNDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO1lBQzFGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlIQUFpSCxDQUFDLENBQUM7WUFDcEksSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDbEMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNwQyxDQUFDLFNBQVMsQ0FBQztnQkFDVixJQUFJLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQzthQUMvRCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxlQUFlLENBQUMsS0FBYTtRQUV0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUc7WUFDeEIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3QixFQUFFLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRO1lBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsT0FBTztZQUN6QyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3JDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDNUMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFhO1FBQ25DLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE9BQU87Z0JBQ0wsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFO3lCQUNoQixPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQzt5QkFDbkIsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDZDthQUNGLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTztnQkFDTCxNQUFNLEVBQUUsRUFBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBQzthQUN0QixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFhO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDakQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBYTtRQUM5QixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQ1csdUJBQXVCLENBQUMsS0FBbUI7UUFFcEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHO1lBQ3hCLHVCQUF1QixFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSx1QkFBdUI7WUFDekUsRUFBRSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO1lBQy9CLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUM7WUFDdEMsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPO1lBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSztTQUN0QyxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNXLHdCQUF3QixDQUFDLEtBQW1CO1FBQ3JELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBR3JFLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksYUFBYSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDckQsSUFBSSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLGFBQWEsQ0FBQywwQkFBMEIsRUFBRSxFQUFFLENBQUM7WUFDbEYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDL0QsSUFBSSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUM7YUFDL0QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsZUFBZSxDQUFDLGVBQTRCO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakQsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQztRQUN0QyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxVQUF1QztRQUMzRCxPQUFPLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUNsRCxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDaEIsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDL0QsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLG1CQUFtQixDQUFDLFVBQTRDO1FBQ3JFLE9BQU8sYUFBYSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDdkQsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDOzhHQWpMVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7Z0lBWWlCLHFCQUFxQjtzQkFEcEMsTUFBTTtnQkFJUywyQkFBMkI7c0JBRDFDLE1BQU07Z0JBbURJLGVBQWU7c0JBRHpCLEtBQUs7Z0JBMkNLLHVCQUF1QjtzQkFEakMsS0FBSztnQkFvQkssd0JBQXdCO3NCQURsQyxLQUFLO2dCQWFDLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCwgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtGaWxlRW50cnl9IGZyb20gJy4vbGlzdGluZy9maWxlLWVudHJ5JztcbmltcG9ydCB7RWxkZXJGaWxlU2VsZWN0SW5wdXR9IGZyb20gJy4vZWxkZXItZmlsZS1zZWxlY3QtaW5wdXQnO1xuaW1wb3J0IHtcbiAgRmlsZVN5c3RlbUFwaSxcbiAgRmlsZVN5c3RlbURpcmVjdG9yeVBpY2tlck9wdGlvbnMsXG4gIEZpbGVTeXN0ZW1GaWxlUGlja2VyT3B0aW9ucyxcbiAgRmlsZVN5c3RlbUZpbGVQaWNrZXJUeXBlT3B0aW9uc1xufSBmcm9tICcuL2ZpbGUtc3lzdGVtLWFwaSc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIHN3aXRjaE1hcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbGVMaXN0aW5nU3lzdGVtSGFuZGxlfSBmcm9tICcuL2xpc3RpbmcvZmlsZS1saXN0aW5nLXN5c3RlbS1oYW5kbGUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJGaWxlU2VsZWN0XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJGaWxlU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVsZGVyRmlsZVNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUVudHJ5W10+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbGRlclNpbmdsZUZpbGVTZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGU+KCk7XG5cbiAgcHJpdmF0ZSBfbGVnYWN5SW5wdXQ6IEVsZGVyRmlsZVNlbGVjdElucHV0O1xuICBwcml2YXRlIF9maWxlUGlja2VyT3B0aW9uczogRmlsZVN5c3RlbUZpbGVQaWNrZXJPcHRpb25zO1xuICBwcml2YXRlIF9kaXJlY3RvcnlQaWNrZXJPcHRpb25zOiBGaWxlU3lzdGVtRGlyZWN0b3J5UGlja2VyT3B0aW9ucztcbiAgcHJpdmF0ZSBfdXNlRGlyZWN0b3J5UGlja2VyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmOiBEZXN0cm95UmVmXG4gICkge1xuICAgIHRoaXMuX2xlZ2FjeUlucHV0ID0gbmV3IEVsZGVyRmlsZVNlbGVjdElucHV0KHRoaXMucmVuZGVyZXIsIHRoaXMuZWwpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghRmlsZVN5c3RlbUFwaS5pc0ZpbGVTeXN0ZW1TdXBwb3J0ZWQoKSB8fCAhRmlsZVN5c3RlbUFwaS5pc0RpcmVjdG9yeVBpY2tlclN1cHBvcnRlZCgpKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdzaG93T3BlbkZpbGVQaWNrZXIgb3Igc2hvd0RpcmVjdG9yeVBpY2tlciBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIGJyb3dzZXIsIGZhbGxpbmcgYmFjayB0byBsZWdhY3kgZmlsZSBwaWNrZXInKTtcbiAgICAgIHRoaXMuX2xlZ2FjeUlucHV0LmNyZWF0ZUZpbGVTZWxlY3QoKTtcbiAgICAgIHRoaXMuX2xlZ2FjeUlucHV0LmZpbGVzU2VsZWN0ZWQucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogbXVsdGlGaWxlQ2hhbmdlID0+IHRoaXMucHVzaEZpbGVDaGFuZ2VzKG11bHRpRmlsZUNoYW5nZSlcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9sZWdhY3lJbnB1dC5yZW1vdmVGaWxlU2VsZWN0KCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVsZGVyRmlsZVNlbGVjdCh2YWx1ZTogc3RyaW5nKSB7XG5cbiAgICB0aGlzLl9maWxlUGlja2VyT3B0aW9ucyA9IHtcbiAgICAgIGV4Y2x1ZGVBY2NlcHRBbGxPcHRpb25zOiB0cnVlLFxuICAgICAgaWQ6IHRoaXMuX2ZpbGVQaWNrZXJPcHRpb25zPy5pZCxcbiAgICAgIG11bHRpcGxlOiB0aGlzLl9maWxlUGlja2VyT3B0aW9ucz8ubXVsdGlwbGUsXG4gICAgICBzdGFydEluOiB0aGlzLl9maWxlUGlja2VyT3B0aW9ucz8uc3RhcnRJbixcbiAgICAgIHR5cGVzOiBbdGhpcy5idWlsZFR5cGVPcHRpb24odmFsdWUpXVxuICAgIH07XG5cbiAgICB0aGlzLl9sZWdhY3lJbnB1dC5lbGRlckZpbGVTZWxlY3QgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRUeXBlT3B0aW9uKHZhbHVlOiBzdHJpbmcpOiBGaWxlU3lzdGVtRmlsZVBpY2tlclR5cGVPcHRpb25zIHtcbiAgICBpZiAodGhpcy5pc0ZpbGVFeHRlbnNpb24odmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NlcHQ6IHtcbiAgICAgICAgICAnKi8qJzogdmFsdWUudHJpbSgpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxzKy9nLCAnJylcbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzTWltZVR5cGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NlcHQ6IHtbdmFsdWVdOiBbXX1cbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVFeHRlbnNpb24oaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cCgvXihcXC5cXHcrKSgsID9cXC5cXHcrKSokLyk7XG4gICAgcmV0dXJuIHJlZ2V4LnRlc3QoaW5wdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc01pbWVUeXBlKGlucHV0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoL14uK1xcLy4rJC8pO1xuICAgIHJldHVybiByZWdleC50ZXN0KGlucHV0KTtcbiAgfVxuXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbGRlckZpbGVTZWxlY3RNdWx0aXBsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG5cbiAgICB0aGlzLl9maWxlUGlja2VyT3B0aW9ucyA9IHtcbiAgICAgIGV4Y2x1ZGVBY2NlcHRBbGxPcHRpb25zOiB0aGlzLl9maWxlUGlja2VyT3B0aW9ucz8uZXhjbHVkZUFjY2VwdEFsbE9wdGlvbnMsXG4gICAgICBpZDogdGhpcy5fZmlsZVBpY2tlck9wdGlvbnM/LmlkLFxuICAgICAgbXVsdGlwbGU6IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSksXG4gICAgICBzdGFydEluOiB0aGlzLl9maWxlUGlja2VyT3B0aW9ucz8uc3RhcnRJbixcbiAgICAgIHR5cGVzOiB0aGlzLl9maWxlUGlja2VyT3B0aW9ucz8udHlwZXNcbiAgICB9O1xuXG4gICAgdGhpcy5fbGVnYWN5SW5wdXQuZWxkZXJGaWxlU2VsZWN0TXVsdGlwbGUgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGUgdXNlciB0byBzZWxlY3QgYSBkaXJlY3RvcnkuIEFsbCBmaWxlcyB0aGF0IGFyZSByZWN1cnNpdmVseSBjb250YWluZWQgYXJlIHNlbGVjdGVkLlxuICAgKiBIb3dldmVyLCB0aGUgdXNlciB3aWxsIG5vIGxvbmdlciBiZSBhYmxlIHRvIHNlbGVjdCBpbmRpdmlkdWFsIGZpbGVzIGlmIHRoaXMgaXMgZW5hYmxlZC5cbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVsZGVyRmlsZVNlbGVjdERpcmVjdG9yeSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fdXNlRGlyZWN0b3J5UGlja2VyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLl9sZWdhY3lJbnB1dC5lbGRlckZpbGVTZWxlY3REaXJlY3RvcnkgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdXNlRGlyZWN0b3J5UGlja2VyICYmIEZpbGVTeXN0ZW1BcGkuaXNGaWxlU3lzdGVtU3VwcG9ydGVkKCkpIHtcbiAgICAgIHRoaXMub3BlbkZpbGVQaWNrZXIodGhpcy5fZmlsZVBpY2tlck9wdGlvbnMpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IG11bHRpRmlsZUNoYW5nZSA9PiB0aGlzLnB1c2hGaWxlQ2hhbmdlcyhtdWx0aUZpbGVDaGFuZ2UpXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3VzZURpcmVjdG9yeVBpY2tlciAmJiBGaWxlU3lzdGVtQXBpLmlzRGlyZWN0b3J5UGlja2VyU3VwcG9ydGVkKCkpIHtcbiAgICAgIHRoaXMub3BlbkRpcmVjdG9yeVBpY2tlcih0aGlzLl9kaXJlY3RvcnlQaWNrZXJPcHRpb25zKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBtdWx0aUZpbGVDaGFuZ2UgPT4gdGhpcy5wdXNoRmlsZUNoYW5nZXMobXVsdGlGaWxlQ2hhbmdlKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xlZ2FjeUlucHV0Lm9wZW5GaWxlU2VsZWN0RGlhbG9nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBwdXNoRmlsZUNoYW5nZXMobXVsdGlGaWxlQ2hhbmdlOiBGaWxlRW50cnlbXSk6IHZvaWQge1xuICAgIHRoaXMuZWxkZXJGaWxlU2VsZWN0Q2hhbmdlLm5leHQobXVsdGlGaWxlQ2hhbmdlKTtcbiAgICBjb25zdCBmaWxlID0gbXVsdGlGaWxlQ2hhbmdlWzBdPy5maWxlO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICB0aGlzLmVsZGVyU2luZ2xlRmlsZVNlbGVjdENoYW5nZS5uZXh0KGZpbGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuRmlsZVBpY2tlcihwaWNrZXJPcHRzOiBGaWxlU3lzdGVtRmlsZVBpY2tlck9wdGlvbnMpOiBPYnNlcnZhYmxlPEZpbGVFbnRyeVtdPiB7XG4gICAgcmV0dXJuIEZpbGVTeXN0ZW1BcGkub3BlbkZpbGVQaWNrZXIocGlja2VyT3B0cykucGlwZShcbiAgICAgIHN3aXRjaE1hcChmaWxlcyA9PlxuICAgICAgICBjb21iaW5lTGF0ZXN0KGZpbGVzLm1hcChmaWxlID0+IEZpbGVFbnRyeS5vZkZpbGVIYW5kbGUoZmlsZSkpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkRpcmVjdG9yeVBpY2tlcihwaWNrZXJPcHRzOiBGaWxlU3lzdGVtRGlyZWN0b3J5UGlja2VyT3B0aW9ucyk6IE9ic2VydmFibGU8RmlsZUVudHJ5W10+IHtcbiAgICByZXR1cm4gRmlsZVN5c3RlbUFwaS5vcGVuRGlyZWN0b3J5UGlja2VyKHBpY2tlck9wdHMpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZGlyID0+IEZpbGVMaXN0aW5nU3lzdGVtSGFuZGxlLmxpc3RGaWxlcyhkaXIpKVxuICAgICk7XG4gIH1cblxufVxuXG5cblxuIl19
|