@onemrvapublic/design-system 18.2.13-develop.2 → 18.2.13

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.
@@ -1,9 +1,10 @@
1
1
  import { HttpEventType, HttpResponse, } from '@angular/common/http';
2
2
  import { Injectable } from '@angular/core';
3
- import { catchError, interval, map, of, take } from 'rxjs';
3
+ import { BehaviorSubject, catchError, interval, map, of, take, } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export class OnemrvaMatFileUploadService {
6
6
  constructor() {
7
+ this.isSending = new BehaviorSubject(false);
7
8
  alert("Don't forget to add a provider in your component with your own implementation of OnemrvaMatFileUploadInterface. Check out the demo to have an example of how to do it");
8
9
  }
9
10
  listUploadedFiles(_inputs) {
@@ -45,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
45
46
  providedIn: 'root',
46
47
  }]
47
48
  }], ctorParameters: () => [] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1tYXQtZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9tYXQtZmlsZS11cGxvYWQvc3JjL29uZW1ydmEtbWF0LWZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGFBQWEsRUFFYixZQUFZLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWN2RSxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDO1FBQ0UsS0FBSyxDQUNILHVLQUF1SyxDQUN4SyxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQVk7UUFDNUIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFtQjtRQUN4QixPQUFPLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDVCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDWixPQUFPO29CQUNMLElBQUksRUFBRSxhQUFhLENBQUMsY0FBYztvQkFDbEMsTUFBTSxFQUFFLENBQUM7b0JBQ1QsS0FBSyxFQUFFLEdBQUc7aUJBQ1UsQ0FBQztZQUN6QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDcEMsTUFBTSxtQkFBbUIsQ0FBQztnQkFDNUIsQ0FBQztnQkFDRCxPQUFPLElBQUksWUFBWSxFQUFPLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxZQUFZLENBQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDdkUsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNqQixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVM7UUFDYixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWSxDQUFDLEVBQU87UUFDbEIsS0FBSyxDQUFDLCtDQUErQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7OEdBN0NVLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwRXZlbnQsXG4gIEh0dHBFdmVudFR5cGUsXG4gIEh0dHBQcm9ncmVzc0V2ZW50LFxuICBIdHRwUmVzcG9uc2UsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGludGVydmFsLCBtYXAsIE9ic2VydmFibGUsIG9mLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm9ncmVzc0ZpbGUgfSBmcm9tICcuL21vZGVscy9wcm9ncmVzcy1maWxlLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBPbmVtcnZhTWF0RmlsZVVwbG9hZEludGVyZmFjZSB7XG4gIGxpc3RVcGxvYWRlZEZpbGVzOiAoaW5wdXRzOiBhbnkpID0+IE9ic2VydmFibGU8UHJvZ3Jlc3NGaWxlW10+O1xuICB1cGxvYWQ6IChmaWxlOiBQcm9ncmVzc0ZpbGUpID0+IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+O1xuICBkZWxldGVGaWxlOiAoaWQ6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICByZXRyeTogKGZpbGU6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBkb3dubG9hZEZpbGU/OiAoaWQ6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT25lbXJ2YU1hdEZpbGVVcGxvYWRTZXJ2aWNlXG4gIGltcGxlbWVudHMgT25lbXJ2YU1hdEZpbGVVcGxvYWRJbnRlcmZhY2VcbntcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWxlcnQoXG4gICAgICBcIkRvbid0IGZvcmdldCB0byBhZGQgYSBwcm92aWRlciBpbiB5b3VyIGNvbXBvbmVudCB3aXRoIHlvdXIgb3duIGltcGxlbWVudGF0aW9uIG9mIE9uZW1ydmFNYXRGaWxlVXBsb2FkSW50ZXJmYWNlLiBDaGVjayBvdXQgdGhlIGRlbW8gdG8gaGF2ZSBhbiBleGFtcGxlIG9mIGhvdyB0byBkbyBpdFwiLFxuICAgICk7XG4gIH1cblxuICBsaXN0VXBsb2FkZWRGaWxlcyhfaW5wdXRzOiBhbnkpOiBPYnNlcnZhYmxlPFByb2dyZXNzRmlsZVtdPiB7XG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHVwbG9hZChfZmlsZTogUHJvZ3Jlc3NGaWxlKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIHJldHVybiBpbnRlcnZhbCg1MCkucGlwZShcbiAgICAgIHRha2UoMTAxKSxcbiAgICAgIG1hcChpID0+IHtcbiAgICAgICAgaWYgKGkgPCAxMDApIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcyxcbiAgICAgICAgICAgIGxvYWRlZDogaSxcbiAgICAgICAgICAgIHRvdGFsOiAxMDAsXG4gICAgICAgICAgfSBhcyBIdHRwUHJvZ3Jlc3NFdmVudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaSA+PSAxMDAgJiYgTWF0aC5yYW5kb20oKSA+IDAuNSkge1xuICAgICAgICAgICAgdGhyb3cgJ0Zha2UgZXJyb3IgdGhyb3duJztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBIdHRwUmVzcG9uc2U8YW55PigpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobmV3IEh0dHBSZXNwb25zZTxhbnk+KHsgYm9keToge30sIHN0YXR1czogNTAwIH0pKSksXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZUZpbGUoX2lkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBvZignRiA9IG0uYScpO1xuICB9XG5cbiAgcmV0cnkoZmlsZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2YoZmlsZSk7XG4gIH1cblxuICBkb3dubG9hZEZpbGUoaWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgYWxlcnQoYE1pc3NpbmcgZG93bmxvYWQgaW1wbGVtZW50YXRpb24gZm9yIGZpbGUgSUQgJHtpZH1gKTtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1tYXQtZmlsZS11cGxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9tYXQtZmlsZS11cGxvYWQvc3JjL29uZW1ydmEtbWF0LWZpbGUtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGFBQWEsRUFFYixZQUFZLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFFBQVEsRUFDUixHQUFHLEVBRUgsRUFBRSxFQUNGLElBQUksR0FDTCxNQUFNLE1BQU0sQ0FBQzs7QUFlZCxNQUFNLE9BQU8sMkJBQTJCO0lBS3RDO1FBRk8sY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRzVDLEtBQUssQ0FDSCx1S0FBdUssQ0FDeEssQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFZO1FBQzVCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBbUI7UUFDeEIsT0FBTyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ1osT0FBTztvQkFDTCxJQUFJLEVBQUUsYUFBYSxDQUFDLGNBQWM7b0JBQ2xDLE1BQU0sRUFBRSxDQUFDO29CQUNULEtBQUssRUFBRSxHQUFHO2lCQUNVLENBQUM7WUFDekIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7b0JBQ3BDLE1BQU0sbUJBQW1CLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLFlBQVksRUFBTyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksWUFBWSxDQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFTO1FBQ2IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVksQ0FBQyxFQUFPO1FBQ2xCLEtBQUssQ0FBQywrQ0FBK0MsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDOzhHQS9DVSwyQkFBMkI7a0hBQTNCLDJCQUEyQixjQUYxQixNQUFNOzsyRkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSHR0cEV2ZW50LFxuICBIdHRwRXZlbnRUeXBlLFxuICBIdHRwUHJvZ3Jlc3NFdmVudCxcbiAgSHR0cFJlc3BvbnNlLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGludGVydmFsLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICB0YWtlLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb2dyZXNzRmlsZSB9IGZyb20gJy4vbW9kZWxzL3Byb2dyZXNzLWZpbGUubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9uZW1ydmFNYXRGaWxlVXBsb2FkSW50ZXJmYWNlIHtcbiAgbGlzdFVwbG9hZGVkRmlsZXM6IChpbnB1dHM6IGFueSkgPT4gT2JzZXJ2YWJsZTxQcm9ncmVzc0ZpbGVbXT47XG4gIHVwbG9hZDogKGZpbGU6IFByb2dyZXNzRmlsZSkgPT4gT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XG4gIGRlbGV0ZUZpbGU6IChpZDogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIHJldHJ5OiAoZmlsZTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIGRvd25sb2FkRmlsZT86IChpZDogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIGlzU2VuZGluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgT25lbXJ2YU1hdEZpbGVVcGxvYWRTZXJ2aWNlXG4gIGltcGxlbWVudHMgT25lbXJ2YU1hdEZpbGVVcGxvYWRJbnRlcmZhY2VcbntcbiAgcHVibGljIGlzU2VuZGluZyA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFsZXJ0KFxuICAgICAgXCJEb24ndCBmb3JnZXQgdG8gYWRkIGEgcHJvdmlkZXIgaW4geW91ciBjb21wb25lbnQgd2l0aCB5b3VyIG93biBpbXBsZW1lbnRhdGlvbiBvZiBPbmVtcnZhTWF0RmlsZVVwbG9hZEludGVyZmFjZS4gQ2hlY2sgb3V0IHRoZSBkZW1vIHRvIGhhdmUgYW4gZXhhbXBsZSBvZiBob3cgdG8gZG8gaXRcIixcbiAgICApO1xuICB9XG5cbiAgbGlzdFVwbG9hZGVkRmlsZXMoX2lucHV0czogYW55KTogT2JzZXJ2YWJsZTxQcm9ncmVzc0ZpbGVbXT4ge1xuICAgIHJldHVybiBvZihbXSk7XG4gIH1cblxuICB1cGxvYWQoX2ZpbGU6IFByb2dyZXNzRmlsZSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICByZXR1cm4gaW50ZXJ2YWwoNTApLnBpcGUoXG4gICAgICB0YWtlKDEwMSksXG4gICAgICBtYXAoaSA9PiB7XG4gICAgICAgIGlmIChpIDwgMTAwKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MsXG4gICAgICAgICAgICBsb2FkZWQ6IGksXG4gICAgICAgICAgICB0b3RhbDogMTAwLFxuICAgICAgICAgIH0gYXMgSHR0cFByb2dyZXNzRXZlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGkgPj0gMTAwICYmIE1hdGgucmFuZG9tKCkgPiAwLjUpIHtcbiAgICAgICAgICAgIHRocm93ICdGYWtlIGVycm9yIHRocm93bic7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgSHR0cFJlc3BvbnNlPGFueT4oKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKG5ldyBIdHRwUmVzcG9uc2U8YW55Pih7IGJvZHk6IHt9LCBzdGF0dXM6IDUwMCB9KSkpLFxuICAgICk7XG4gIH1cblxuICBkZWxldGVGaWxlKF9pZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gb2YoJ0YgPSBtLmEnKTtcbiAgfVxuXG4gIHJldHJ5KGZpbGU6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG9mKGZpbGUpO1xuICB9XG5cbiAgZG93bmxvYWRGaWxlKGlkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGFsZXJ0KGBNaXNzaW5nIGRvd25sb2FkIGltcGxlbWVudGF0aW9uIGZvciBmaWxlIElEICR7aWR9YCk7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG59XG4iXX0=
@@ -26,6 +26,7 @@ export class OnemrvaMatFileUploadStore extends ComponentStore {
26
26
  this.fn = (x) => {
27
27
  return x[0];
28
28
  };
29
+ this.isSending = this.fileUploadService.isSending;
29
30
  /*
30
31
  * U P D A T E R S
31
32
  */
@@ -316,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
316
317
  type: Inject,
317
318
  args: [CUSTOM_VALIDATION_FN]
318
319
  }] }] });
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1tYXQtZmlsZS11cGxvYWQuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbWF0LWZpbGUtdXBsb2FkL3NyYy9vbmVtcnZhLW1hdC1maWxlLXVwbG9hZC5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLEdBQUcsRUFDSCxLQUFLLEVBQ0wsUUFBUSxFQUVSLEVBQUUsRUFDRixTQUFTLEVBRVQsU0FBUyxFQUNULEdBQUcsRUFDSCxRQUFRLEVBQ1IsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLGFBQWEsR0FHZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBYSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFlckUsTUFBTSxVQUFVLEdBQWdCO0lBQzlCLE1BQU0sRUFBRSxFQUFFO0lBQ1YsTUFBTSxFQUFFLEVBQUU7SUFDVixXQUFXLEVBQUUsQ0FBQztJQUNkLGVBQWUsRUFBRSxFQUFFO0lBQ25CLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxNQUFNO0tBQ2I7Q0FDRixDQUFDO0FBTUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ3BELCtCQUErQixDQUNoQyxDQUFDO0FBR0YsTUFBTSxPQUFPLHlCQUNYLFNBQVEsY0FBMkI7SUFTbkMsWUFDVSxpQkFBOEMsRUFDOUMsZ0JBQWtDLEVB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dGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIGZvcmtKb2luLFxuICBpbnRlcnZhbCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgbWVyZ2VNYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VXaGlsZSxcbiAgdGFwLFxuICB0aHJvdHRsZSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25lbXJ2YU1hdEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9vbmVtcnZhLW1hdC1maWxlLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGZvcm1hdHRlZFNpemUsXG4gIFByb2dyZXNzRmlsZSxcbiAgUmVmZXJlbmNlZFByb2dyZXNzRmlsZSxcbn0gZnJvbSAnLi9tb2RlbHMvcHJvZ3Jlc3MtZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPbmVtcnZhTWF0RmlsZVVwbG9hZFN0b3JlSXRmIH0gZnJvbSAnLi9vbmVtcnZhLW1hdC1maWxlLXVwbG9hZC1pdGYuc3RvcmUnO1xuaW1wb3J0IHsgT25lbXJ2YU1hdENvbG9yIH0gZnJvbSAnQG9uZW1ydmFwdWJsaWMvZGVzaWduLXN5c3RlbS91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZFN0b3JlRXZlbnQge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBheWxvYWQ/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU3RhdGUge1xuICB1cGxvYWQ6IFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGVbXTtcbiAgYWNjZXB0OiBzdHJpbmdbXTtcbiAgbWF4RmlsZVNpemU6IG51bWJlcjtcbiAgZmlsZVVwbG9hZEVycm9yOiBzdHJpbmc7XG4gIGV2ZW50OiBGaWxlVXBsb2FkU3RvcmVFdmVudDtcbn1cblxuY29uc3QgSU5JVF9TVEFURTogVXBsb2FkU3RhdGUgPSB7XG4gIHVwbG9hZDogW10sXG4gIGFjY2VwdDogW10sXG4gIG1heEZpbGVTaXplOiAwLFxuICBmaWxlVXBsb2FkRXJyb3I6ICcnLFxuICBldmVudDoge1xuICAgIHR5cGU6ICdJTklUJyxcbiAgfSxcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVZhbGlkYXRpb25GbiA9IChcbiAgaW5wdXQ6IFtSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlLCBSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlW11dLFxuKSA9PiBSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlO1xuXG5leHBvcnQgY29uc3QgQ1VTVE9NX1ZBTElEQVRJT05fRk4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q3VzdG9tVmFsaWRhdGlvbkZuPihcbiAgJ3gxLCB4MiA9ICgtYiAtKyBzcXJ0KHJobykpLzJhJyxcbik7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPbmVtcnZhTWF0RmlsZVVwbG9hZFN0b3JlXG4gIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8VXBsb2FkU3RhdGU+XG4gIGltcGxlbWVudHMgT25lbXJ2YU1hdEZpbGVVcGxvYWRTdG9yZUl0Zlxue1xuICBwcml2YXRlIGZuOiBDdXN0b21WYWxpZGF0aW9uRm4gPSAoXG4gICAgeDogW1JlZmVyZW5jZWRQcm9ncmVzc0ZpbGUsIFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGVbXV0sXG4gICkgPT4ge1xuICAgIHJldHVybiB4WzBdO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmlsZVVwbG9hZFNlcnZpY2U6IE9uZW1ydmFNYXRGaWxlVXBsb2FkU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KENVU1RPTV9WQUxJREFUSU9OX0ZOKVxuICAgIHB1YmxpYyBjdXN0b21WYWxpZGF0aW9uRm46IEN1c3RvbVZhbGlkYXRpb25GbixcbiAgKSB7XG4gICAgc3VwZXIoSU5JVF9TVEFURSk7XG4gICAgaWYgKGN1c3RvbVZhbGlkYXRpb25GbikgdGhpcy5mbiA9IGN1c3RvbVZhbGlkYXRpb25GbjtcbiAgfVxuXG4gIC8qXG4gICAqIFUgUCBEIEEgVCBFIFIgU1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNldEFjY2VwdCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGFjY2VwdDogc3RyaW5nW10pID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgYWNjZXB0LFxuICAgIGV2ZW50OiB7XG4gICAgICB0eXBlOiAnc2V0QWNjZXB0JyxcbiAgICAgIHBheWxvYWQ6IGFjY2VwdCxcbiAgICB9LFxuICB9KSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNldE1heEZpbGVTaXplID0gdGhpcy51cGRhdGVyKFxuICAgIChzdGF0ZSwgbWF4RmlsZVNpemU6IG51bWJlcikgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgbWF4RmlsZVNpemUsXG4gICAgICBldmVudDoge1xuICAgICAgICB0eXBlOiAnc2V0TWF4RmlsZVNpemUnLFxuICAgICAgICBwYXlsb2FkOiBtYXhGaWxlU2l6ZSxcbiAgICAgIH0sXG4gICAgfSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbXB0eUxpc3QgPSB0aGlzLnVwZGF0ZXIoc3RhdGUgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHVwbG9hZDogW10sXG4gICAgICBldmVudDoge1xuICAgICAgICB0eXBlOiAnZW1wdHlMaXN0JyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwdXNoRmlsZSA9IHRoaXMudXBkYXRlcihcbiAgICAoc3RhdGUsIHBheWxvYWQ6IFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB1cGxvYWQ6IFsuLi5zdGF0ZS51cGxvYWQsIHsgLi4ucGF5bG9hZCB9XSxcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICB0eXBlOiAncHVzaEZpbGUnLFxuICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNldERhdGEgPSB0aGlzLnVwZGF0ZXIoXG4gICAgKHN0YXRlLCBwYXlsb2FkOiB7IHJlZjogc3ltYm9sOyBkYXRhOiBhbnkgfSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHVwbG9hZDogc3RhdGUudXBsb2FkLm1hcCgoZmlsZTogUmVmZXJlbmNlZFByb2dyZXNzRmlsZSkgPT5cbiAgICAgICAgICBmaWxlLnJlZiA9PT0gcGF5bG9hZC5yZWYgPyB7IC4uLmZpbGUsIGRhdGE6IHBheWxvYWQuZGF0YSB9IDogZmlsZSxcbiAgICAgICAgKSxcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICB0eXBlOiAnc2V0RGF0YScsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNldFN1Y2Nlc3MgPSB0aGlzLnVwZGF0ZXIoXG4gICAgKHN0YXRlLCBwYXlsb2FkOiB7IHJlZjogc3ltYm9sOyBib2R5OiBhbnkgfSkgPT4ge1xuICAgICAgY29uc3QgbmV3RmlsZSA9IHtcbiAgICAgICAgLi4uc3RhdGUudXBsb2FkLmZpbmQoZiA9PiBmLnJlZiA9PT0gcGF5bG9hZC5yZWYpLFxuICAgICAgICAuLi5wYXlsb2FkLmJvZHksXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHByb2dyZXNzOiAxMDAsXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdXBsb2FkOiBzdGF0ZS51cGxvYWQubWFwKGZpbGUgPT5cbiAgICAgICAgICBmaWxlLnJlZiA9PT0gcGF5bG9hZC5yZWYgPyBuZXdGaWxlIDogZmlsZSxcbiAgICAgICAgKSxcbiAgICAgICAgZXZlbnQ6IHtcbiAgICAgICAgICB0eXBlOiAnc2V0RGF0YScsXG4gICAgICAgICAgcGF5bG9hZDogbmV3RmlsZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNldEZhaWwgPSB0aGlzLnVwZGF0ZXIoXG4gICAgKFxuICAgICAgc3RhdGUsXG4gICAgICBwYXlsb2FkOiB7IHJlZjogc3ltYm9sOyBtZXNzYWdlOiBzdHJpbmc7IGNvbG9yOiBPbmVtcnZhTWF0Q29sb3IgfSxcbiAgICApID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHVwbG9hZDogc3RhdGUudXBsb2FkLm1hcChmaWxlID0+XG4gICAgICAgIGZpbGUucmVmID09PSBwYXlsb2FkLnJlZlxuICAgICAgICAgID8geyAuLi5maWxlLCBtZXNzYWdlOiBwYXlsb2FkLm1lc3NhZ2UsIGNvbG9yOiBwYXlsb2FkLmNvbG9yIH1cbiAgICAgICAgICA6IGZpbGUsXG4gICAgICApLFxuICAgICAgZXZlbnQ6IHtcbiAgICAgICAgdHlwZTogJ3NldEZhaWwnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNldFByb2dyZXNzID0gdGhpcy51cGRhdGVyKFxuICAgIChzdGF0ZSwgcGF5bG9hZDogeyByZWY6IHN5bWJvbDsgcHJvZ3Jlc3M6IG51bWJlciB9KSA9PiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB1cGxvYWQ6IHN0YXRlLnVwbG9hZC5tYXAoZmlsZSA9PlxuICAgICAgICBmaWxlLnJlZiA9PT0gcGF5bG9hZC5yZWZcbiAgICAgICAgICA/IHsgLi4uZmlsZSwgcHJvZ3Jlc3M6IHBheWxvYWQucHJvZ3Jlc3MgfVxuICAgICAgICAgIDogZmlsZSxcbiAgICAgICksXG4gICAgICBldmVudDoge1xuICAgICAgICB0eXBlOiAnc2V0UHJvZ3Jlc3MnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc2V0ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgcmVmOiBzeW1ib2wpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgdXBsb2FkOiBzdGF0ZS51cGxvYWQubWFwKGZpbGUgPT5cbiAgICAgIGZpbGUucmVmID09PSByZWZcbiAgICAgICAgPyB7IC4uLmZpbGUsIHByb2dyZXNzOiAwLCBtZXNzYWdlOiAnJywgY29sb3I6ICcnIH1cbiAgICAgICAgOiBmaWxlLFxuICAgICksXG4gICAgZXZlbnQ6IHtcbiAgICAgIHR5cGU6ICdyZXNldCcsXG4gICAgICBwYXlsb2FkOiByZWYsXG4gICAgfSxcbiAgfSkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVtb3ZlID0gdGhpcy51cGRhdGVyKFxuICAgIChzdGF0ZSwgcGF5bG9hZDogUmVmZXJlbmNlZFByb2dyZXNzRmlsZSkgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgdXBsb2FkOiBzdGF0ZS51cGxvYWQuZmlsdGVyKGYgPT4gZi5yZWYgIT09IHBheWxvYWQucmVmKSxcbiAgICAgIGV2ZW50OiB7XG4gICAgICAgIHR5cGU6ICdyZW1vdmUnLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVuYWJsZVByb2dyZXNzQmFyID0gdGhpcy51cGRhdGVyKHN0YXRlID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgdXBsb2FkOiBzdGF0ZS51cGxvYWQubWFwKGZpbGUgPT4gKHsgLi4uZmlsZSwgZW5hYmxlUHJvZ3Jlc3NCYXI6IHRydWUgfSkpLFxuICAgIGV2ZW50OiB7XG4gICAgICB0eXBlOiAnZW5hYmxlUHJvZ3Jlc3NCYXInLFxuICAgIH0sXG4gIH0pKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2V0RmlsZVVwbG9hZEVycm9yID0gdGhpcy51cGRhdGVyKFxuICAgIChzdGF0ZSwgZmlsZVVwbG9hZEVycm9yOiBzdHJpbmcpID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGZpbGVVcGxvYWRFcnJvcixcbiAgICAgIGV2ZW50OiB7XG4gICAgICAgIHR5cGU6ICdzZXRGaWxlVXBsb2FkRXJyb3InLFxuICAgICAgICBwYXlsb2FkOiBmaWxlVXBsb2FkRXJyb3IsXG4gICAgICB9LFxuICAgIH0pLFxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjbGVhckZpbGVVcGxvYWRFcnJvciA9IHRoaXMudXBkYXRlcihzdGF0ZSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGZpbGVVcGxvYWRFcnJvcjogJycsXG4gICAgZXZlbnQ6IHtcbiAgICAgIHR5cGU6ICdjbGVhckZpbGVVcGxvYWRFcnJvcicsXG4gICAgfSxcbiAgfSkpO1xuXG4gIC8qXG4gICAqIFMgRSBMIEUgQyBUIE8gUiBTXG4gICAqL1xuICByZWFkb25seSBmaWxlcyQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51cGxvYWQpO1xuICByZWFkb25seSBhY2NlcHQkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuYWNjZXB0KTtcbiAgcmVhZG9ubHkgZXZlbnQkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuZXZlbnQpO1xuICByZWFkb25seSBtYXhGaWxlU2l6ZSQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5tYXhGaWxlU2l6ZSk7XG4gIHJlYWRvbmx5IGZpbGVVcGxvYWRFcnJvciQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5maWxlVXBsb2FkRXJyb3IpO1xuXG4gIC8qXG4gICAqIEEgQyBUIEkgTyBOIFMgICAvICAgRSBGIEYgRSBDIFQgU1xuICAgKi9cbiAgcmVhZG9ubHkgbGlzdFVwbG9hZGVkRmlsZXMgPSB0aGlzLmVmZmVjdCgoaW5wdXRzJDogT2JzZXJ2YWJsZTxhbnk+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0cyQucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZW1wdHlMaXN0KCk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKChpbnB1dHM6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkU2VydmljZS5saXN0VXBsb2FkZWRGaWxlcyhpbnB1dHMpLnBpcGUoXG4gICAgICAgICAgLy90YWtlKDEpLFxuICAgICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuZmlsZXMkKSxcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgLy8gYWRkZWQgdG8gYXZvaWQgaWRlIGVycm9yc1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRhcCgoW25ld2ZpbGVzLCByZWdpc3RlcmVkRmlsZXNdKSA9PiB7XG4gICAgICAgICAgICBuZXdmaWxlcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJlZEZpbGVzLmZpbmRJbmRleChyZmlsZSA9PiByZmlsZS5pZCA9PT0gZmlsZS5pZCkgPCAwXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMucHVzaEZpbGUoe1xuICAgICAgICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgICBwcm9ncmVzczogMTAwLFxuICAgICAgICAgICAgICAgICAgcmVmOiBTeW1ib2woJ0gucHNpID0gRS5wc2knKSxcbiAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUhLm5hbWUsXG4gICAgICAgICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IGZpbGUhLmxhc3RNb2RpZmllZCxcbiAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUhLnNpemUsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBmaWxlIS50eXBlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSBkZWxldGVGaWxlID0gdGhpcy5lZmZlY3QoXG4gICAgKGZpbGUkOiBPYnNlcnZhYmxlPFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGU+KSA9PiB7XG4gICAgICByZXR1cm4gZmlsZSQucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNsZWFyRmlsZVVwbG9hZEVycm9yKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmZpbGVzJCksXG4gICAgICAgIG1hcCh0aGlzLmZuKSxcbiAgICAgICAgbWVyZ2VNYXAoKGZpbGU6IGFueSkgPT5cbiAgICAgICAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmRlbGV0ZUZpbGUoZmlsZS5pZCkucGlwZShcbiAgICAgICAgICAgIC8vdGFrZSgxKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVtb3ZlKGZpbGUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZXRGYWlsKHtcbiAgICAgICAgICAgICAgICByZWY6IGZpbGUucmVmLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBPbmVtcnZhTWF0Q29sb3IuV0FSTixcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnZmlsZS51cGxvYWQuZGVsZXRlLmVycm9yJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgcmVhZG9ubHkgcmVtb3ZlRmlsZSA9IHRoaXMuZWZmZWN0KFxuICAgIChmaWxlJDogT2JzZXJ2YWJsZTxSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlPikgPT4ge1xuICAgICAgcmV0dXJuIGZpbGUkLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbGVhckZpbGVVcGxvYWRFcnJvcigpO1xuICAgICAgICB9KSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5maWxlcyQpLFxuICAgICAgICBtYXAodGhpcy5mbiksXG4gICAgICAgIHRhcChmaWxlID0+IHtcbiAgICAgICAgICB0aGlzLnJlbW92ZShmaWxlKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH0sXG4gICk7XG5cbiAgcHJpdmF0ZSBwcm9ncmVzc0ZpbGVDaGVja2VyID0gKGZpbGUkOiBPYnNlcnZhYmxlPGFueT4pID0+IHtcbiAgICByZXR1cm4gZmlsZSQucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuYWNjZXB0JCksXG5cbiAgICAgIG1hcCgoW2ZpbGUsIGFjY2VwdF0pID0+IHtcbiAgICAgICAgLy8gU3RlcCAxIC0gQWRkIGEgbmV3IGZpbGUgaW4gdGhlIHZpZXdcbiAgICAgICAgbGV0IGY6IFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGUgPSB7IC4uLmZpbGUgfTtcbiAgICAgICAgaWYgKGZpbGUucmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBmID0ge1xuICAgICAgICAgICAgLi4uZixcbiAgICAgICAgICAgIHJlZjogU3ltYm9sKCd2X3NvdW5kID0gc3FydChnYW1tYS5QIC8gcmhvKScpLFxuICAgICAgICAgICAgbmFtZTogZmlsZSEubmFtZSxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZDogZmlsZSEubGFzdE1vZGlmaWVkLFxuICAgICAgICAgICAgc2l6ZTogZmlsZSEuc2l6ZSxcbiAgICAgICAgICAgIHR5cGU6IGZpbGUhLnR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLnB1c2hGaWxlKGYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RlcCAyIC0gQ2hlY2sgZmlsZSBleHRlbnNpb25cbiAgICAgICAgaWYgKCFhY2NlcHQuaW5jbHVkZXMoZmlsZS5maWxlIS50eXBlKSkge1xuICAgICAgICAgIHRoaXMuc2V0RmFpbCh7XG4gICAgICAgICAgICByZWY6IGYucmVmLFxuICAgICAgICAgICAgY29sb3I6IE9uZW1ydmFNYXRDb2xvci5FUlJPUixcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnZmlsZS51cGxvYWQudHlwZS5ub3Quc3VwcG9ydGVkJyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gVGhpcyB0cmljayBjb3VwbGVkIHdpdGggdGhlIG5leHQgZmlsdGVyIGlzIHVzZWQgdG8gYXZvaWQgY2F0Y2hFcnJvciwgd2hpY2ggd291bGQgYnJlYWsgdGhlIGVmZmVjdFxuICAgICAgICAgIHJldHVybiB7IC4uLmYsIG1lc3NhZ2U6ICdFUlJPUicgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZjtcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKHggPT4geC5tZXNzYWdlICE9PSAnRVJST1InKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMubWF4RmlsZVNpemUkKSxcblxuICAgICAgbWFwKChbcmVmRmlsZSwgbWF4RmlsZVNpemVdKSA9PiB7XG4gICAgICAgIC8vIFN0ZXAgMyAtIENoZWNrIGZpbGUgc2l6ZVxuICAgICAgICBpZiAobWF4RmlsZVNpemUgIT09IDAgJiYgcmVmRmlsZS5zaXplID4gbWF4RmlsZVNpemUpIHtcbiAgICAgICAgICB0aGlzLnNldEZhaWwoe1xuICAgICAgICAgICAgcmVmOiByZWZGaWxlLnJlZixcbiAgICAgICAgICAgIGNvbG9yOiBPbmVtcnZhTWF0Q29sb3IuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnZmlsZS51cGxvYWQudG9vLmJpZycpICtcbiAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgZm9ybWF0dGVkU2l6ZShyZWZGaWxlLnNpemUpLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIFNhbWUgdHJpY2sgZm9yIGVycm9yIG1hbmFnZW1lbnRcbiAgICAgICAgICByZXR1cm4geyAuLi5yZWZGaWxlLCBtZXNzYWdlOiAnRVJST1InIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZkZpbGU7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcih4ID0+IHgubWVzc2FnZSAhPT0gJ0VSUk9SJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmZpbGVzJCksXG4gICAgICBtYXAodGhpcy5mbiksIC8vIEZvciBjdXN0b20gdmFsaWRhdGlvbnNcbiAgICAgIHRhcCh4ID0+IHtcbiAgICAgICAgaWYgKCEheC5tZXNzYWdlICYmIHgubWVzc2FnZS5zdGFydHNXaXRoKCdFUlJPUjonKSlcbiAgICAgICAgICB0aGlzLnNldEZpbGVVcGxvYWRFcnJvcih4Lm1lc3NhZ2UucmVwbGFjZSgnRVJST1I6JywgJycpLnRyaW0oKSk7XG4gICAgICAgIGVsc2UgdGhpcy5jbGVhckZpbGVVcGxvYWRFcnJvcigpO1xuICAgICAgfSksXG4gICAgICBmaWx0ZXIoeCA9PiAheC5tZXNzYWdlLnN0YXJ0c1dpdGgoJ0VSUk9SJykpLFxuICAgICk7XG4gIH07XG5cbiAgcHJpdmF0ZSBsb2FkU3RlcCA9IChmaWxlOiBhbnkpID0+IHtcbiAgICBpZiAoZmlsZS5jb2xvciA9PT0gT25lbXJ2YU1hdENvbG9yLldBUk4pIHRoaXMucmVzZXQoZmlsZS5yZWYpO1xuXG4gICAgdGhpcy5lbmFibGVQcm9ncmVzc0JhcigpO1xuXG4gICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UudXBsb2FkKGZpbGUpLnBpcGUoXG4gICAgICB0aHJvdHRsZSgoKSA9PiBpbnRlcnZhbCgyMDApLCB7IGxlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiB0cnVlIH0pLFxuICAgICAgdGFwKChldmVudDogSHR0cEV2ZW50PGFueT4pID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICB0aGlzLnNldFByb2dyZXNzKHtcbiAgICAgICAgICAgIHJlZjogZmlsZS5yZWYsXG4gICAgICAgICAgICBwcm9ncmVzczogTWF0aC5yb3VuZCgoMTAwICogZXZlbnQubG9hZGVkKSAvIGV2ZW50LnRvdGFsISksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xuICAgICAgICAgIHRoaXMuc2V0U3VjY2Vzcyh7IHJlZjogZmlsZS5yZWYsIGJvZHk6IGV2ZW50LmJvZHkgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGFrZVdoaWxlKFxuICAgICAgICAoZXZlbnQ6IEh0dHBFdmVudDxhbnk+KSA9PiBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzLFxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEZhaWwoe1xuICAgICAgICAgIHJlZjogZmlsZS5yZWYsXG4gICAgICAgICAgY29sb3I6IE9uZW1ydmFNYXRDb2xvci5XQVJOLFxuICAgICAgICAgIG1lc3NhZ2U6ICdmaWxlLnVwbG9hZC5yZXRyeS5lcnJvcicsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9KSxcbiAgICApO1xuICB9O1xuXG4gIC8qKlxuICAgKiBGb3IgYWRkaW5nIG9uZSBmaWxlIHBhbmVsIChjcmVhdGlvbiBvZiBmaWxlIHBhbmVsIHJlZmVyZW5jZSBza2lwcGVkIGlmIGFscmVhZHkgY3JlYXRlZCkgYXQgYSB0aW1lLlxuICAgKiBVcGxvYWQgdG8gQkUgbm90IHRyaWdnZXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWRkRm9yUG90ZW50aWFsVXBsb2FkID0gdGhpcy5lZmZlY3QoXG4gICAgKGZpbGUkOiBPYnNlcnZhYmxlPFByb2dyZXNzRmlsZT4pID0+IHRoaXMucHJvZ3Jlc3NGaWxlQ2hlY2tlcihmaWxlJCksXG4gICk7XG5cbiAgLyoqXG4gICAqIEZvciBhZGRpbmcgYW4gYXJyYXkgb2YgZmlsZSBwYW5lbHMgKGNyZWF0aW9uIG9mIGZpbGUgcGFuZWxzIHJlZmVyZW5jZSBza2lwcGVkIGlmIGFscmVhZHkgY3JlYXRlZCkuXG4gICAqIFVwbG9hZHMgdG8gQkUgbm90IHRyaWdnZXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWRkU2V2ZXJhbEZvclBvdGVudGlhbFVwbG9hZCA9IHRoaXMuZWZmZWN0KFxuICAgIChmaWxlcyQ6IE9ic2VydmFibGU8UHJvZ3Jlc3NGaWxlW10+KSA9PlxuICAgICAgZmlsZXMkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChmaWxlcyA9PlxuICAgICAgICAgIGZvcmtKb2luKGZpbGVzLm1hcChmaWxlID0+IHRoaXMucHJvZ3Jlc3NGaWxlQ2hlY2tlcihvZihmaWxlKSkpKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICk7XG5cbiAgLyoqXG4gICAqIEZvciBhZGRpbmcgYSBmaWxlIHBhbmVsIChjcmVhdGlvbiBvZiBmaWxlIHBhbmVscyByZWZlcmVuY2Ugc2tpcHBlZCBpZiBhbHJlYWR5IGNyZWF0ZWQpIHRoZW4gdXBsb2FkaW5nIGl0XG4gICAqL1xuICByZWFkb25seSB1cGxvYWRGaWxlID0gdGhpcy5lZmZlY3QoKGZpbGUkOiBPYnNlcnZhYmxlPFByb2dyZXNzRmlsZT4pID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9ncmVzc0ZpbGVDaGVja2VyKGZpbGUkKS5waXBlKG1lcmdlTWFwKHRoaXMubG9hZFN0ZXApKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmV0cnlGaWxlID0gdGhpcy5lZmZlY3QoXG4gICAgKGZpbGUkOiBPYnNlcnZhYmxlPFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGU+KSA9PlxuICAgICAgdGhpcy5wcm9ncmVzc0ZpbGVDaGVja2VyKGZpbGUkKS5waXBlKG1lcmdlTWFwKHRoaXMubG9hZFN0ZXApKSxcbiAgKTtcblxuICAvKipcbiAgICogRm9yIGFkZGluZyBzZXZlcmFsIGZpbGUgcGFuZWxzIChjcmVhdGlvbiBvZiBmaWxlIHBhbmVscyByZWZlcmVuY2Ugc2tpcHBlZCBpZiBhbHJlYWR5IGNyZWF0ZWQpIHRoZW4gdXBsb2FkaW5nIHRoZW1cbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZEZpbGVzID0gdGhpcy5lZmZlY3QoKGZpbGVzJDogT2JzZXJ2YWJsZTxQcm9ncmVzc0ZpbGVbXT4pID0+XG4gICAgZmlsZXMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZmlsZXMgPT5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgLi4uZmlsZXMubWFwKGZpbGUgPT5cbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3NGaWxlQ2hlY2tlcihvZihmaWxlKSkucGlwZShzd2l0Y2hNYXAodGhpcy5sb2FkU3RlcCkpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICk7XG59XG4iXX0=
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1tYXQtZmlsZS11cGxvYWQuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbWF0LWZpbGUtdXBsb2FkL3NyYy9vbmVtcnZhLW1hdC1maWxlLXVwbG9hZC5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLEdBQUcsRUFDSCxLQUFLLEVBQ0wsUUFBUSxFQUVSLEVBQUUsRUFDRixTQUFTLEVBRVQsU0FBUyxFQUNULEdBQUcsRUFDSCxRQUFRLEVBQ1IsY0FBYyxHQUNmLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLGFBQWEsR0FHZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBYSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFlckUsTUFBTSxVQUFVLEdBQWdCO0lBQzlCLE1BQU0sRUFBRSxFQUFFO0lBQ1YsTUFBTSxFQUFFLEVBQUU7SUFDVixXQUFXLEVBQUUsQ0FBQztJQUNkLGVBQWUsRUFBRSxFQUFFO0lBQ25CLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxNQUFNO0tBQ2I7Q0FDRixDQUFDO0FBTUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ3BELCtCQUErQixDQUNoQyxDQUFDO0FBR0YsTUFBTSxPQUFPLHlCQUNYLFNBQVEsY0FBMkI7SUFXbkMsWUFDVSxpQkFBOEMsRUFDOUMsZ0JBQWtDLEVB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IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBmaWx0ZXIsXG4gIGZvcmtKb2luLFxuICBpbnRlcnZhbCxcbiAgbWFwLFxuICBtZXJnZSxcbiAgbWVyZ2VNYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRha2VXaGlsZSxcbiAgdGFwLFxuICB0aHJvdHRsZSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT25lbXJ2YU1hdEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi9vbmVtcnZhLW1hdC1maWxlLXVwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGZvcm1hdHRlZFNpemUsXG4gIFByb2dyZXNzRmlsZSxcbiAgUmVmZXJlbmNlZFByb2dyZXNzRmlsZSxcbn0gZnJvbSAnLi9tb2RlbHMvcHJvZ3Jlc3MtZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPbmVtcnZhTWF0RmlsZVVwbG9hZFN0b3JlSXRmIH0gZnJvbSAnLi9vbmVtcnZhLW1hdC1maWxlLXVwbG9hZC1pdGYuc3RvcmUnO1xuaW1wb3J0IHsgT25lbXJ2YU1hdENvbG9yIH0gZnJvbSAnQG9uZW1ydmFwdWJsaWMvZGVzaWduLXN5c3RlbS91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZFN0b3JlRXZlbnQge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBheWxvYWQ/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU3RhdGUge1xuICB1cGxvYWQ6IFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGVbXTtcbiAgYWNjZXB0OiBzdHJpbmdbXTtcbiAgbWF4RmlsZVNpemU6IG51bWJlcjtcbiAgZmlsZVVwbG9hZEVycm9yOiBzdHJpbmc7XG4gIGV2ZW50OiBGaWxlVXBsb2FkU3RvcmVFdmVudDtcbn1cblxuY29uc3QgSU5JVF9TVEFURTogVXBsb2FkU3RhdGUgPSB7XG4gIHVwbG9hZDogW10sXG4gIGFjY2VwdDogW10sXG4gIG1heEZpbGVTaXplOiAwLFxuICBmaWxlVXBsb2FkRXJyb3I6ICcnLFxuICBldmVudDoge1xuICAgIHR5cGU6ICdJTklUJyxcbiAgfSxcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVZhbGlkYXRpb25GbiA9IChcbiAgaW5wdXQ6IFtSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlLCBSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlW11dLFxuKSA9PiBSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlO1xuXG5leHBvcnQgY29uc3QgQ1VTVE9NX1ZBTElEQVRJT05fRk4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q3VzdG9tVmFsaWRhdGlvbkZuPihcbiAgJ3gxLCB4MiA9ICgtYiAtKyBzcXJ0KHJobykpLzJhJyxcbik7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPbmVtcnZhTWF0RmlsZVVwbG9hZFN0b3JlXG4gIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8VXBsb2FkU3RhdGU+XG4gIGltcGxlbWVudHMgT25lbXJ2YU1hdEZpbGVVcGxvYWRTdG9yZUl0Zlxue1xuICBwcml2YXRlIGZuOiBDdXN0b21WYWxpZGF0aW9uRm4gPSAoXG4gICAgeDogW1JlZmVyZW5jZWRQcm9ncmVzc0ZpbGUsIFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGVbXV0sXG4gICkgPT4ge1xuICAgIHJldHVybiB4WzBdO1xuICB9O1xuXG4gIHB1YmxpYyBpc1NlbmRpbmcgPSB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmlzU2VuZGluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZpbGVVcGxvYWRTZXJ2aWNlOiBPbmVtcnZhTWF0RmlsZVVwbG9hZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDVVNUT01fVkFMSURBVElPTl9GTilcbiAgICBwdWJsaWMgY3VzdG9tVmFsaWRhdGlvbkZuOiBDdXN0b21WYWxpZGF0aW9uRm4sXG4gICkge1xuICAgIHN1cGVyKElOSVRfU1RBVEUpO1xuICAgIGlmIChjdXN0b21WYWxpZGF0aW9uRm4pIHRoaXMuZm4gPSBjdXN0b21WYWxpZGF0aW9uRm47XG4gIH1cblxuICAvKlxuICAgKiBVIFAgRCBBIFQgRSBSIFNcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzZXRBY2NlcHQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBhY2NlcHQ6IHN0cmluZ1tdKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGFjY2VwdCxcbiAgICBldmVudDoge1xuICAgICAgdHlwZTogJ3NldEFjY2VwdCcsXG4gICAgICBwYXlsb2FkOiBhY2NlcHQsXG4gICAgfSxcbiAgfSkpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZXRNYXhGaWxlU2l6ZSA9IHRoaXMudXBkYXRlcihcbiAgICAoc3RhdGUsIG1heEZpbGVTaXplOiBudW1iZXIpID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG1heEZpbGVTaXplLFxuICAgICAgZXZlbnQ6IHtcbiAgICAgICAgdHlwZTogJ3NldE1heEZpbGVTaXplJyxcbiAgICAgICAgcGF5bG9hZDogbWF4RmlsZVNpemUsXG4gICAgICB9LFxuICAgIH0pLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZW1wdHlMaXN0ID0gdGhpcy51cGRhdGVyKHN0YXRlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB1cGxvYWQ6IFtdLFxuICAgICAgZXZlbnQ6IHtcbiAgICAgICAgdHlwZTogJ2VtcHR5TGlzdCcsXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHVzaEZpbGUgPSB0aGlzLnVwZGF0ZXIoXG4gICAgKHN0YXRlLCBwYXlsb2FkOiBSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdXBsb2FkOiBbLi4uc3RhdGUudXBsb2FkLCB7IC4uLnBheWxvYWQgfV0sXG4gICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgdHlwZTogJ3B1c2hGaWxlJyxcbiAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZXREYXRhID0gdGhpcy51cGRhdGVyKFxuICAgIChzdGF0ZSwgcGF5bG9hZDogeyByZWY6IHN5bWJvbDsgZGF0YTogYW55IH0pID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB1cGxvYWQ6IHN0YXRlLnVwbG9hZC5tYXAoKGZpbGU6IFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGUpID0+XG4gICAgICAgICAgZmlsZS5yZWYgPT09IHBheWxvYWQucmVmID8geyAuLi5maWxlLCBkYXRhOiBwYXlsb2FkLmRhdGEgfSA6IGZpbGUsXG4gICAgICAgICksXG4gICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgdHlwZTogJ3NldERhdGEnLFxuICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXRTdWNjZXNzID0gdGhpcy51cGRhdGVyKFxuICAgIChzdGF0ZSwgcGF5bG9hZDogeyByZWY6IHN5bWJvbDsgYm9keTogYW55IH0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7XG4gICAgICAgIC4uLnN0YXRlLnVwbG9hZC5maW5kKGYgPT4gZi5yZWYgPT09IHBheWxvYWQucmVmKSxcbiAgICAgICAgLi4ucGF5bG9hZC5ib2R5LFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBwcm9ncmVzczogMTAwLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHVwbG9hZDogc3RhdGUudXBsb2FkLm1hcChmaWxlID0+XG4gICAgICAgICAgZmlsZS5yZWYgPT09IHBheWxvYWQucmVmID8gbmV3RmlsZSA6IGZpbGUsXG4gICAgICAgICksXG4gICAgICAgIGV2ZW50OiB7XG4gICAgICAgICAgdHlwZTogJ3NldERhdGEnLFxuICAgICAgICAgIHBheWxvYWQ6IG5ld0ZpbGUsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXRGYWlsID0gdGhpcy51cGRhdGVyKFxuICAgIChcbiAgICAgIHN0YXRlLFxuICAgICAgcGF5bG9hZDogeyByZWY6IHN5bWJvbDsgbWVzc2FnZTogc3RyaW5nOyBjb2xvcjogT25lbXJ2YU1hdENvbG9yIH0sXG4gICAgKSA9PiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB1cGxvYWQ6IHN0YXRlLnVwbG9hZC5tYXAoZmlsZSA9PlxuICAgICAgICBmaWxlLnJlZiA9PT0gcGF5bG9hZC5yZWZcbiAgICAgICAgICA/IHsgLi4uZmlsZSwgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBjb2xvcjogcGF5bG9hZC5jb2xvciB9XG4gICAgICAgICAgOiBmaWxlLFxuICAgICAgKSxcbiAgICAgIGV2ZW50OiB7XG4gICAgICAgIHR5cGU6ICdzZXRGYWlsJyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0sXG4gICAgfSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzZXRQcm9ncmVzcyA9IHRoaXMudXBkYXRlcihcbiAgICAoc3RhdGUsIHBheWxvYWQ6IHsgcmVmOiBzeW1ib2w7IHByb2dyZXNzOiBudW1iZXIgfSkgPT4gKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgdXBsb2FkOiBzdGF0ZS51cGxvYWQubWFwKGZpbGUgPT5cbiAgICAgICAgZmlsZS5yZWYgPT09IHBheWxvYWQucmVmXG4gICAgICAgICAgPyB7IC4uLmZpbGUsIHByb2dyZXNzOiBwYXlsb2FkLnByb2dyZXNzIH1cbiAgICAgICAgICA6IGZpbGUsXG4gICAgICApLFxuICAgICAgZXZlbnQ6IHtcbiAgICAgICAgdHlwZTogJ3NldFByb2dyZXNzJyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0sXG4gICAgfSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNldCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHJlZjogc3ltYm9sKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHVwbG9hZDogc3RhdGUudXBsb2FkLm1hcChmaWxlID0+XG4gICAgICBmaWxlLnJlZiA9PT0gcmVmXG4gICAgICAgID8geyAuLi5maWxlLCBwcm9ncmVzczogMCwgbWVzc2FnZTogJycsIGNvbG9yOiAnJyB9XG4gICAgICAgIDogZmlsZSxcbiAgICApLFxuICAgIGV2ZW50OiB7XG4gICAgICB0eXBlOiAncmVzZXQnLFxuICAgICAgcGF5bG9hZDogcmVmLFxuICAgIH0sXG4gIH0pKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlbW92ZSA9IHRoaXMudXBkYXRlcihcbiAgICAoc3RhdGUsIHBheWxvYWQ6IFJlZmVyZW5jZWRQcm9ncmVzc0ZpbGUpID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHVwbG9hZDogc3RhdGUudXBsb2FkLmZpbHRlcihmID0+IGYucmVmICE9PSBwYXlsb2FkLnJlZiksXG4gICAgICBldmVudDoge1xuICAgICAgICB0eXBlOiAncmVtb3ZlJyxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0sXG4gICAgfSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbmFibGVQcm9ncmVzc0JhciA9IHRoaXMudXBkYXRlcihzdGF0ZSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIHVwbG9hZDogc3RhdGUudXBsb2FkLm1hcChmaWxlID0+ICh7IC4uLmZpbGUsIGVuYWJsZVByb2dyZXNzQmFyOiB0cnVlIH0pKSxcbiAgICBldmVudDoge1xuICAgICAgdHlwZTogJ2VuYWJsZVByb2dyZXNzQmFyJyxcbiAgICB9LFxuICB9KSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNldEZpbGVVcGxvYWRFcnJvciA9IHRoaXMudXBkYXRlcihcbiAgICAoc3RhdGUsIGZpbGVVcGxvYWRFcnJvcjogc3RyaW5nKSA9PiAoe1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBmaWxlVXBsb2FkRXJyb3IsXG4gICAgICBldmVudDoge1xuICAgICAgICB0eXBlOiAnc2V0RmlsZVVwbG9hZEVycm9yJyxcbiAgICAgICAgcGF5bG9hZDogZmlsZVVwbG9hZEVycm9yLFxuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY2xlYXJGaWxlVXBsb2FkRXJyb3IgPSB0aGlzLnVwZGF0ZXIoc3RhdGUgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBmaWxlVXBsb2FkRXJyb3I6ICcnLFxuICAgIGV2ZW50OiB7XG4gICAgICB0eXBlOiAnY2xlYXJGaWxlVXBsb2FkRXJyb3InLFxuICAgIH0sXG4gIH0pKTtcblxuICAvKlxuICAgKiBTIEUgTCBFIEMgVCBPIFIgU1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXMkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUudXBsb2FkKTtcbiAgcmVhZG9ubHkgYWNjZXB0JCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmFjY2VwdCk7XG4gIHJlYWRvbmx5IGV2ZW50JCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmV2ZW50KTtcbiAgcmVhZG9ubHkgbWF4RmlsZVNpemUkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUubWF4RmlsZVNpemUpO1xuICByZWFkb25seSBmaWxlVXBsb2FkRXJyb3IkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuZmlsZVVwbG9hZEVycm9yKTtcblxuICAvKlxuICAgKiBBIEMgVCBJIE8gTiBTICAgLyAgIEUgRiBGIEUgQyBUIFNcbiAgICovXG4gIHJlYWRvbmx5IGxpc3RVcGxvYWRlZEZpbGVzID0gdGhpcy5lZmZlY3QoKGlucHV0cyQ6IE9ic2VydmFibGU8YW55PikgPT4ge1xuICAgIHJldHVybiBpbnB1dHMkLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLmVtcHR5TGlzdCgpO1xuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoaW5wdXRzOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UubGlzdFVwbG9hZGVkRmlsZXMoaW5wdXRzKS5waXBlKFxuICAgICAgICAgIC8vdGFrZSgxKSxcbiAgICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmZpbGVzJCksXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIC8vIGFkZGVkIHRvIGF2b2lkIGlkZSBlcnJvcnNcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YXAoKFtuZXdmaWxlcywgcmVnaXN0ZXJlZEZpbGVzXSkgPT4ge1xuICAgICAgICAgICAgbmV3ZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHJlZ2lzdGVyZWRGaWxlcy5maW5kSW5kZXgocmZpbGUgPT4gcmZpbGUuaWQgPT09IGZpbGUuaWQpIDwgMFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnB1c2hGaWxlKHtcbiAgICAgICAgICAgICAgICAgIC4uLmZpbGUsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IDEwMCxcbiAgICAgICAgICAgICAgICAgIHJlZjogU3ltYm9sKCdILnBzaSA9IEUucHNpJyksXG4gICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlIS5uYW1lLFxuICAgICAgICAgICAgICAgICAgbGFzdE1vZGlmaWVkOiBmaWxlIS5sYXN0TW9kaWZpZWQsXG4gICAgICAgICAgICAgICAgICBzaXplOiBmaWxlIS5zaXplLFxuICAgICAgICAgICAgICAgICAgdHlwZTogZmlsZSEudHlwZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZGVsZXRlRmlsZSA9IHRoaXMuZWZmZWN0KFxuICAgIChmaWxlJDogT2JzZXJ2YWJsZTxSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlPikgPT4ge1xuICAgICAgcmV0dXJuIGZpbGUkLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbGVhckZpbGVVcGxvYWRFcnJvcigpO1xuICAgICAgICB9KSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5maWxlcyQpLFxuICAgICAgICBtYXAodGhpcy5mbiksXG4gICAgICAgIG1lcmdlTWFwKChmaWxlOiBhbnkpID0+XG4gICAgICAgICAgdGhpcy5maWxlVXBsb2FkU2VydmljZS5kZWxldGVGaWxlKGZpbGUuaWQpLnBpcGUoXG4gICAgICAgICAgICAvL3Rha2UoMSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbW92ZShmaWxlKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RmFpbCh7XG4gICAgICAgICAgICAgICAgcmVmOiBmaWxlLnJlZixcbiAgICAgICAgICAgICAgICBjb2xvcjogT25lbXJ2YU1hdENvbG9yLldBUk4sXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ2ZpbGUudXBsb2FkLmRlbGV0ZS5lcnJvcicsXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9LFxuICApO1xuXG4gIHJlYWRvbmx5IHJlbW92ZUZpbGUgPSB0aGlzLmVmZmVjdChcbiAgICAoZmlsZSQ6IE9ic2VydmFibGU8UmVmZXJlbmNlZFByb2dyZXNzRmlsZT4pID0+IHtcbiAgICAgIHJldHVybiBmaWxlJC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkRXJyb3IoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuZmlsZXMkKSxcbiAgICAgICAgbWFwKHRoaXMuZm4pLFxuICAgICAgICB0YXAoZmlsZSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW1vdmUoZmlsZSk7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9LFxuICApO1xuXG4gIHByaXZhdGUgcHJvZ3Jlc3NGaWxlQ2hlY2tlciA9IChmaWxlJDogT2JzZXJ2YWJsZTxhbnk+KSA9PiB7XG4gICAgcmV0dXJuIGZpbGUkLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmFjY2VwdCQpLFxuXG4gICAgICBtYXAoKFtmaWxlLCBhY2NlcHRdKSA9PiB7XG4gICAgICAgIC8vIFN0ZXAgMSAtIEFkZCBhIG5ldyBmaWxlIGluIHRoZSB2aWV3XG4gICAgICAgIGxldCBmOiBSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlID0geyAuLi5maWxlIH07XG4gICAgICAgIGlmIChmaWxlLnJlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZiA9IHtcbiAgICAgICAgICAgIC4uLmYsXG4gICAgICAgICAgICByZWY6IFN5bWJvbCgndl9zb3VuZCA9IHNxcnQoZ2FtbWEuUCAvIHJobyknKSxcbiAgICAgICAgICAgIG5hbWU6IGZpbGUhLm5hbWUsXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IGZpbGUhLmxhc3RNb2RpZmllZCxcbiAgICAgICAgICAgIHNpemU6IGZpbGUhLnNpemUsXG4gICAgICAgICAgICB0eXBlOiBmaWxlIS50eXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5wdXNoRmlsZShmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN0ZXAgMiAtIENoZWNrIGZpbGUgZXh0ZW5zaW9uXG4gICAgICAgIGlmICghYWNjZXB0LmluY2x1ZGVzKGZpbGUuZmlsZSEudHlwZSkpIHtcbiAgICAgICAgICB0aGlzLnNldEZhaWwoe1xuICAgICAgICAgICAgcmVmOiBmLnJlZixcbiAgICAgICAgICAgIGNvbG9yOiBPbmVtcnZhTWF0Q29sb3IuRVJST1IsXG4gICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2ZpbGUudXBsb2FkLnR5cGUubm90LnN1cHBvcnRlZCcsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIFRoaXMgdHJpY2sgY291cGxlZCB3aXRoIHRoZSBuZXh0IGZpbHRlciBpcyB1c2VkIHRvIGF2b2lkIGNhdGNoRXJyb3IsIHdoaWNoIHdvdWxkIGJyZWFrIHRoZSBlZmZlY3RcbiAgICAgICAgICByZXR1cm4geyAuLi5mLCBtZXNzYWdlOiAnRVJST1InIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcih4ID0+IHgubWVzc2FnZSAhPT0gJ0VSUk9SJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLm1heEZpbGVTaXplJCksXG5cbiAgICAgIG1hcCgoW3JlZkZpbGUsIG1heEZpbGVTaXplXSkgPT4ge1xuICAgICAgICAvLyBTdGVwIDMgLSBDaGVjayBmaWxlIHNpemVcbiAgICAgICAgaWYgKG1heEZpbGVTaXplICE9PSAwICYmIHJlZkZpbGUuc2l6ZSA+IG1heEZpbGVTaXplKSB7XG4gICAgICAgICAgdGhpcy5zZXRGYWlsKHtcbiAgICAgICAgICAgIHJlZjogcmVmRmlsZS5yZWYsXG4gICAgICAgICAgICBjb2xvcjogT25lbXJ2YU1hdENvbG9yLkVSUk9SLFxuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2ZpbGUudXBsb2FkLnRvby5iaWcnKSArXG4gICAgICAgICAgICAgICcgJyArXG4gICAgICAgICAgICAgIGZvcm1hdHRlZFNpemUocmVmRmlsZS5zaXplKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICAvLyBTYW1lIHRyaWNrIGZvciBlcnJvciBtYW5hZ2VtZW50XG4gICAgICAgICAgcmV0dXJuIHsgLi4ucmVmRmlsZSwgbWVzc2FnZTogJ0VSUk9SJyB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWZGaWxlO1xuICAgICAgfSksXG4gICAgICBmaWx0ZXIoeCA9PiB4Lm1lc3NhZ2UgIT09ICdFUlJPUicpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5maWxlcyQpLFxuICAgICAgbWFwKHRoaXMuZm4pLCAvLyBGb3IgY3VzdG9tIHZhbGlkYXRpb25zXG4gICAgICB0YXAoeCA9PiB7XG4gICAgICAgIGlmICghIXgubWVzc2FnZSAmJiB4Lm1lc3NhZ2Uuc3RhcnRzV2l0aCgnRVJST1I6JykpXG4gICAgICAgICAgdGhpcy5zZXRGaWxlVXBsb2FkRXJyb3IoeC5tZXNzYWdlLnJlcGxhY2UoJ0VSUk9SOicsICcnKS50cmltKCkpO1xuICAgICAgICBlbHNlIHRoaXMuY2xlYXJGaWxlVXBsb2FkRXJyb3IoKTtcbiAgICAgIH0pLFxuICAgICAgZmlsdGVyKHggPT4gIXgubWVzc2FnZS5zdGFydHNXaXRoKCdFUlJPUicpKSxcbiAgICApO1xuICB9O1xuXG4gIHByaXZhdGUgbG9hZFN0ZXAgPSAoZmlsZTogYW55KSA9PiB7XG4gICAgaWYgKGZpbGUuY29sb3IgPT09IE9uZW1ydmFNYXRDb2xvci5XQVJOKSB0aGlzLnJlc2V0KGZpbGUucmVmKTtcblxuICAgIHRoaXMuZW5hYmxlUHJvZ3Jlc3NCYXIoKTtcblxuICAgIHJldHVybiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnVwbG9hZChmaWxlKS5waXBlKFxuICAgICAgdGhyb3R0bGUoKCkgPT4gaW50ZXJ2YWwoMjAwKSwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICAgIHRhcCgoZXZlbnQ6IEh0dHBFdmVudDxhbnk+KSA9PiB7XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgICAgdGhpcy5zZXRQcm9ncmVzcyh7XG4gICAgICAgICAgICByZWY6IGZpbGUucmVmLFxuICAgICAgICAgICAgcHJvZ3Jlc3M6IE1hdGgucm91bmQoKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyBldmVudC50b3RhbCEpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcbiAgICAgICAgICB0aGlzLnNldFN1Y2Nlc3MoeyByZWY6IGZpbGUucmVmLCBib2R5OiBldmVudC5ib2R5IH0pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRha2VXaGlsZShcbiAgICAgICAgKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4gZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcyxcbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRGYWlsKHtcbiAgICAgICAgICByZWY6IGZpbGUucmVmLFxuICAgICAgICAgIGNvbG9yOiBPbmVtcnZhTWF0Q29sb3IuV0FSTixcbiAgICAgICAgICBtZXNzYWdlOiAnZmlsZS51cGxvYWQucmV0cnkuZXJyb3InLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuICAvKipcbiAgICogRm9yIGFkZGluZyBvbmUgZmlsZSBwYW5lbCAoY3JlYXRpb24gb2YgZmlsZSBwYW5lbCByZWZlcmVuY2Ugc2tpcHBlZCBpZiBhbHJlYWR5IGNyZWF0ZWQpIGF0IGEgdGltZS5cbiAgICogVXBsb2FkIHRvIEJFIG5vdCB0cmlnZ2VyZWRcbiAgICovXG4gIHJlYWRvbmx5IGFkZEZvclBvdGVudGlhbFVwbG9hZCA9IHRoaXMuZWZmZWN0KFxuICAgIChmaWxlJDogT2JzZXJ2YWJsZTxQcm9ncmVzc0ZpbGU+KSA9PiB0aGlzLnByb2dyZXNzRmlsZUNoZWNrZXIoZmlsZSQpLFxuICApO1xuXG4gIC8qKlxuICAgKiBGb3IgYWRkaW5nIGFuIGFycmF5IG9mIGZpbGUgcGFuZWxzIChjcmVhdGlvbiBvZiBmaWxlIHBhbmVscyByZWZlcmVuY2Ugc2tpcHBlZCBpZiBhbHJlYWR5IGNyZWF0ZWQpLlxuICAgKiBVcGxvYWRzIHRvIEJFIG5vdCB0cmlnZ2VyZWRcbiAgICovXG4gIHJlYWRvbmx5IGFkZFNldmVyYWxGb3JQb3RlbnRpYWxVcGxvYWQgPSB0aGlzLmVmZmVjdChcbiAgICAoZmlsZXMkOiBPYnNlcnZhYmxlPFByb2dyZXNzRmlsZVtdPikgPT5cbiAgICAgIGZpbGVzJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoZmlsZXMgPT5cbiAgICAgICAgICBmb3JrSm9pbihmaWxlcy5tYXAoZmlsZSA9PiB0aGlzLnByb2dyZXNzRmlsZUNoZWNrZXIob2YoZmlsZSkpKSksXG4gICAgICAgICksXG4gICAgICApLFxuICApO1xuXG4gIC8qKlxuICAgKiBGb3IgYWRkaW5nIGEgZmlsZSBwYW5lbCAoY3JlYXRpb24gb2YgZmlsZSBwYW5lbHMgcmVmZXJlbmNlIHNraXBwZWQgaWYgYWxyZWFkeSBjcmVhdGVkKSB0aGVuIHVwbG9hZGluZyBpdFxuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkRmlsZSA9IHRoaXMuZWZmZWN0KChmaWxlJDogT2JzZXJ2YWJsZTxQcm9ncmVzc0ZpbGU+KSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZ3Jlc3NGaWxlQ2hlY2tlcihmaWxlJCkucGlwZShtZXJnZU1hcCh0aGlzLmxvYWRTdGVwKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJldHJ5RmlsZSA9IHRoaXMuZWZmZWN0KFxuICAgIChmaWxlJDogT2JzZXJ2YWJsZTxSZWZlcmVuY2VkUHJvZ3Jlc3NGaWxlPikgPT5cbiAgICAgIHRoaXMucHJvZ3Jlc3NGaWxlQ2hlY2tlcihmaWxlJCkucGlwZShtZXJnZU1hcCh0aGlzLmxvYWRTdGVwKSksXG4gICk7XG5cbiAgLyoqXG4gICAqIEZvciBhZGRpbmcgc2V2ZXJhbCBmaWxlIHBhbmVscyAoY3JlYXRpb24gb2YgZmlsZSBwYW5lbHMgcmVmZXJlbmNlIHNraXBwZWQgaWYgYWxyZWFkeSBjcmVhdGVkKSB0aGVuIHVwbG9hZGluZyB0aGVtXG4gICAqL1xuICByZWFkb25seSB1cGxvYWRGaWxlcyA9IHRoaXMuZWZmZWN0KChmaWxlcyQ6IE9ic2VydmFibGU8UHJvZ3Jlc3NGaWxlW10+KSA9PlxuICAgIGZpbGVzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGZpbGVzID0+XG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgIC4uLmZpbGVzLm1hcChmaWxlID0+XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzRmlsZUNoZWNrZXIob2YoZmlsZSkpLnBpcGUoc3dpdGNoTWFwKHRoaXMubG9hZFN0ZXApKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICApO1xufVxuIl19
@@ -1,2 +1,3 @@
1
1
  export * from './date.adapter';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vc2hhcmVkL3NyYy9saWIvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF0ZS5hZGFwdGVyJztcbiJdfQ==
2
+ export * from './year-month.adapter';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vc2hhcmVkL3NyYy9saWIvYWRhcHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRlLmFkYXB0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi95ZWFyLW1vbnRoLmFkYXB0ZXInO1xuIl19
@@ -0,0 +1,64 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NativeDateAdapter } from '@angular/material/core';
3
+ import { DateTime } from 'luxon';
4
+ import { ONEMRVA_FORMAT } from '../constants/date.format';
5
+ import { Subject, takeUntil } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ngx-translate/core";
8
+ export class OnemrvaYearMonthAdapter extends NativeDateAdapter {
9
+ constructor(translateService) {
10
+ super();
11
+ this.translateService = translateService;
12
+ this.dateFormat = ONEMRVA_FORMAT.display.dateInput;
13
+ this.destroyNotifier$ = new Subject();
14
+ this.setLocale(this.translateService.currentLang);
15
+ this.translateService.onLangChange
16
+ .pipe(takeUntil(this.destroyNotifier$))
17
+ .subscribe(({ lang }) => {
18
+ this.setLocale(lang);
19
+ });
20
+ }
21
+ format(date) {
22
+ const dt = DateTime.fromJSDate(date);
23
+ console.log(dt.toFormat(this.dateFormat));
24
+ return dt.toFormat(this.dateFormat);
25
+ }
26
+ parse(value) {
27
+ if (value && typeof value === 'string') {
28
+ value = value.replace(/\D/g, '/');
29
+ }
30
+ console.warn('*****');
31
+ if (value === null || value === '') {
32
+ return null;
33
+ }
34
+ const dt = DateTime.fromFormat(value, this.dateFormat, {
35
+ locale: this.locale,
36
+ });
37
+ if (dt.isValid) {
38
+ return dt.toJSDate();
39
+ }
40
+ const formats = ['MMyyyy', 'M/yyyy', 'MM/yyyy'];
41
+ for (const format of formats) {
42
+ const parsed = DateTime.fromFormat(value, format, {
43
+ locale: this.locale,
44
+ });
45
+ if (parsed.isValid) {
46
+ return parsed.toJSDate();
47
+ }
48
+ }
49
+ return this.invalid();
50
+ }
51
+ getFirstDayOfWeek() {
52
+ return 1;
53
+ }
54
+ ngOnDestroy() {
55
+ this.destroyNotifier$.next();
56
+ this.destroyNotifier$.complete();
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: OnemrvaYearMonthAdapter, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: OnemrvaYearMonthAdapter }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: OnemrvaYearMonthAdapter, decorators: [{
62
+ type: Injectable
63
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1tb250aC5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lbXJ2YS9kZXNpZ24tc3lzdGVtL3NoYXJlZC9zcmMvbGliL2FkYXB0ZXJzL3llYXItbW9udGguYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHMUMsTUFBTSxPQUFPLHVCQUNYLFNBQVEsaUJBQWlCO0lBT3pCLFlBQW9CLGdCQUFrQztRQUNwRCxLQUFLLEVBQUUsQ0FBQztRQURVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFKOUMsZUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBRTlDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFLN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVk7YUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUN0QyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUSxNQUFNLENBQUMsSUFBVTtRQUN4QixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBVTtRQUN2QixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3JELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7UUFFSCxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBQ2hELE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTthQUNwQixDQUFDLENBQUM7WUFDSCxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVEsaUJBQWlCO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7OEdBL0RVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXRpdmVEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XG5cbmltcG9ydCB7IE9ORU1SVkFfRk9STUFUIH0gZnJvbSAnLi4vY29uc3RhbnRzL2RhdGUuZm9ybWF0JztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT25lbXJ2YVllYXJNb250aEFkYXB0ZXJcbiAgZXh0ZW5kcyBOYXRpdmVEYXRlQWRhcHRlclxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGRhdGVGb3JtYXQgPSBPTkVNUlZBX0ZPUk1BVC5kaXNwbGF5LmRhdGVJbnB1dDtcblxuICBwcml2YXRlIGRlc3Ryb3lOb3RpZmllciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnNldExvY2FsZSh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3lOb3RpZmllciQpKVxuICAgICAgLnN1YnNjcmliZSgoeyBsYW5nIH0pID0+IHtcbiAgICAgICAgdGhpcy5zZXRMb2NhbGUobGFuZyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGZvcm1hdChkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBkdCA9IERhdGVUaW1lLmZyb21KU0RhdGUoZGF0ZSk7XG4gICAgY29uc29sZS5sb2coZHQudG9Gb3JtYXQodGhpcy5kYXRlRm9ybWF0KSk7XG4gICAgcmV0dXJuIGR0LnRvRm9ybWF0KHRoaXMuZGF0ZUZvcm1hdCk7XG4gIH1cblxuICBvdmVycmlkZSBwYXJzZSh2YWx1ZTogYW55KTogRGF0ZSB8IG51bGwge1xuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1xcRC9nLCAnLycpO1xuICAgIH1cbiAgICBjb25zb2xlLndhcm4oJyoqKioqJyk7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkdCA9IERhdGVUaW1lLmZyb21Gb3JtYXQodmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCwge1xuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICB9KTtcblxuICAgIGlmIChkdC5pc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gZHQudG9KU0RhdGUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXRzID0gWydNTXl5eXknLCAnTS95eXl5JywgJ01NL3l5eXknXTtcbiAgICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBEYXRlVGltZS5mcm9tRm9ybWF0KHZhbHVlLCBmb3JtYXQsIHtcbiAgICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICAgIH0pO1xuICAgICAgaWYgKHBhcnNlZC5pc1ZhbGlkKSB7XG4gICAgICAgIHJldHVybiBwYXJzZWQudG9KU0RhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkKCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95Tm90aWZpZXIkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3lOb3RpZmllciQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -9,4 +9,16 @@ export const ONEMRVA_FORMAT = {
9
9
  monthYearA11yLabel: 'MMMM yyyy',
10
10
  },
11
11
  };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vc2hhcmVkL3NyYy9saWIvY29uc3RhbnRzL2RhdGUuZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsSUFBSTtLQUNoQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE9ORU1SVkFfRk9STUFUID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ0xMJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ2RkL01NL3l5eXknLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIHl5eXknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSB5eXl5JyxcbiAgfSxcbn07XG4iXX0=
12
+ // KEEP ?
13
+ export const ONEMRVA_YEAR_MONTH_FORMAT = {
14
+ parse: {
15
+ dateInput: 'LL/yyyy',
16
+ },
17
+ display: {
18
+ dateInput: 'LL/yyyy',
19
+ monthYearLabel: 'LL/yyyy',
20
+ dateA11yLabel: 'LL',
21
+ monthYearA11yLabel: 'LLL yyyy',
22
+ },
23
+ };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vc2hhcmVkL3NyYy9saWIvY29uc3RhbnRzL2RhdGUuZm9ybWF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsSUFBSTtLQUNoQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxVQUFVO1FBQzFCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO0FBQ0YsU0FBUztBQUNULE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFtQjtJQUN2RCxLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsU0FBUztLQUNyQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFVBQVU7S0FDL0I7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0RGF0ZUZvcm1hdHMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcblxuZXhwb3J0IGNvbnN0IE9ORU1SVkFfRk9STUFUID0ge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogJ0xMJyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ2RkL01NL3l5eXknLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIHl5eXknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSB5eXl5JyxcbiAgfSxcbn07XG4vLyBLRUVQID9cbmV4cG9ydCBjb25zdCBPTkVNUlZBX1lFQVJfTU9OVEhfRk9STUFUOiBNYXREYXRlRm9ybWF0cyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6ICdMTC95eXl5JyxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ0xML3l5eXknLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTEwveXl5eScsXG4gICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdMTEwgeXl5eScsXG4gIH0sXG59O1xuIl19
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ChangeDetectionStrategy, HostBinding, Input, Injectable, InjectionToken, Optional, Inject, EventEmitter, Directive, Output, HostListener, ViewChild, NgModule } from '@angular/core';
3
3
  import { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';
4
- import { of, interval, take, map, catchError, tap, mergeMap, withLatestFrom, filter, throttle, takeWhile, switchMap, forkJoin, merge } from 'rxjs';
4
+ import { of, BehaviorSubject, interval, take, map, catchError, tap, mergeMap, withLatestFrom, filter, throttle, takeWhile, switchMap, forkJoin, merge } from 'rxjs';
5
5
  import * as i1 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
7
  import * as i2 from '@angular/material/tooltip';
@@ -150,6 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
150
150
 
151
151
  class OnemrvaMatFileUploadService {
152
152
  constructor() {
153
+ this.isSending = new BehaviorSubject(false);
153
154
  alert("Don't forget to add a provider in your component with your own implementation of OnemrvaMatFileUploadInterface. Check out the demo to have an example of how to do it");
154
155
  }
155
156
  listUploadedFiles(_inputs) {
@@ -211,6 +212,7 @@ class OnemrvaMatFileUploadStore extends ComponentStore {
211
212
  this.fn = (x) => {
212
213
  return x[0];
213
214
  };
215
+ this.isSending = this.fileUploadService.isSending;
214
216
  /*
215
217
  * U P D A T E R S
216
218
  */