ng-ipa-library 1.4.5 → 1.4.8

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.
@@ -22,17 +22,13 @@ export class ErrorInterceptor {
22
22
  };
23
23
  switch (response.statusCode) {
24
24
  case 500:
25
- const msg = response.innerException + ' ' + (response.stackTrace ?? '');
26
- const toastr = this.toastrService.error(msg, response.message, toastrConfig);
27
- toastr.onShown.subscribe(() => {
28
- this.addCopyButton(response.message + '\n' + msg);
29
- });
25
+ this.show500ErrorMsg(response, toastrConfig);
30
26
  break;
31
27
  default:
32
- this.toastrService.error('', response.message, toastrConfig);
28
+ this.showErrorMsg(response, toastrConfig);
33
29
  break;
34
30
  }
35
- return throwError(error);
31
+ return throwError(() => error);
36
32
  }));
37
33
  }
38
34
  isException(req) {
@@ -43,6 +39,26 @@ export class ErrorInterceptor {
43
39
  }
44
40
  return false;
45
41
  }
42
+ showErrorMsg(response, toastrConfig) {
43
+ if (response.errors && response.errors.length > 0) {
44
+ toastrConfig.enableHtml = true;
45
+ let msg = '';
46
+ response.errors.forEach((error) => {
47
+ msg += `<li>${error}</li>`;
48
+ });
49
+ this.toastrService.error(`<ul>${msg}</ul>`, response.message, toastrConfig);
50
+ }
51
+ else {
52
+ this.toastrService.error('', response.message, toastrConfig);
53
+ }
54
+ }
55
+ show500ErrorMsg(response, toastrConfig) {
56
+ const msg = response.innerException + ' ' + (response.stackTrace ?? '');
57
+ const toastr = this.toastrService.error(msg, response.message, toastrConfig);
58
+ toastr.onShown.subscribe(() => {
59
+ this.addCopyButton(response.message + '\n' + msg);
60
+ });
61
+ }
46
62
  addCopyButton(message) {
47
63
  const messageToast = document.getElementsByClassName('toast-message')[0];
48
64
  const icon = document.createElement('i');
@@ -64,4 +80,4 @@ ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
64
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ErrorInterceptor, decorators: [{
65
81
  type: Injectable
66
82
  }], ctorParameters: function () { return [{ type: i1.ErrorService }, { type: i2.ToastrService }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2Vycm9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNNUMsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLFlBQTBCLEVBQzFCLGFBQTRCO1FBRDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ25DLENBQUM7SUFFSixTQUFTLENBQ1AsR0FBeUIsRUFDekIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFxQixDQUFDO1lBQzdDLE1BQU0sWUFBWSxHQUE4QjtnQkFDOUMsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDO1lBQ0YsUUFBUSxRQUFRLENBQUMsVUFBVSxFQUFFO2dCQUMzQixLQUFLLEdBQUc7b0JBQ04sTUFBTSxHQUFHLEdBQ1AsUUFBUSxDQUFDLGNBQWMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FDckMsR0FBRyxFQUNILFFBQVEsQ0FBQyxPQUFPLEVBQ2hCLFlBQVksQ0FDYixDQUFDO29CQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTt3QkFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztvQkFDcEQsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsTUFBTTtnQkFFUjtvQkFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDN0QsTUFBTTthQUNUO1lBQ0QsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBcUI7UUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtZQUN4QyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNPLGFBQWEsQ0FBQyxPQUFlO1FBQ25DLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FDbEQsZUFBZSxDQUNoQixDQUFDLENBQUMsQ0FBbUIsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUFlO1FBQ3JDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLEVBQUUsRUFBRTtZQUMzRCxhQUFhLEVBQUUsb0JBQW9CO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7OzZHQXRFVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBIYW5kbGVyLFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVycm9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Vycm9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlFeGNlcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBpRXhjZXB0aW9uJztcclxuaW1wb3J0IHsgSW5kaXZpZHVhbENvbmZpZywgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXJyb3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBpbnRlcmNlcHQoXHJcbiAgICByZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xyXG4gICAgaWYgKHRoaXMuaXNFeGNlcHRpb24ocmVxKSkge1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gZXJyb3IuZXJyb3IgYXMgQXBpRXhjZXB0aW9uO1xyXG4gICAgICAgIGNvbnN0IHRvYXN0ckNvbmZpZzogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHtcclxuICAgICAgICAgIGRpc2FibGVUaW1lT3V0OiB0cnVlLFxyXG4gICAgICAgICAgY2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgICB0YXBUb0Rpc21pc3M6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXNDb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIDUwMDpcclxuICAgICAgICAgICAgY29uc3QgbXNnID1cclxuICAgICAgICAgICAgICByZXNwb25zZS5pbm5lckV4Y2VwdGlvbiArICcgJyArIChyZXNwb25zZS5zdGFja1RyYWNlID8/ICcnKTtcclxuICAgICAgICAgICAgY29uc3QgdG9hc3RyID0gdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIG1zZyxcclxuICAgICAgICAgICAgICByZXNwb25zZS5tZXNzYWdlLFxyXG4gICAgICAgICAgICAgIHRvYXN0ckNvbmZpZ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0b2FzdHIub25TaG93bi5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkQ29weUJ1dHRvbihyZXNwb25zZS5tZXNzYWdlICsgJ1xcbicgKyBtc2cpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKCcnLCByZXNwb25zZS5tZXNzYWdlLCB0b2FzdHJDb25maWcpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzRXhjZXB0aW9uKHJlcTogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChjb25zdCB1cmwgb2YgdGhpcy5lcnJvclNlcnZpY2UudXJscykge1xyXG4gICAgICBpZiAocmVxLnVybC5pbmNsdWRlcyh1cmwucGF0aCkgJiYgcmVxLm1ldGhvZCA9PT0gdXJsLm1ldGhvZCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIHByaXZhdGUgYWRkQ29weUJ1dHRvbihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VUb2FzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXHJcbiAgICAgICd0b2FzdC1tZXNzYWdlJ1xyXG4gICAgKVswXSBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpJyk7XHJcbiAgICBpY29uLmNsYXNzTGlzdC5hZGQoJ21zLTInLCAnZmFzJywgJ2ZhLWNvcHknKTtcclxuICAgIGljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29weVRvQ2xpcGJvYXJkKG1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgICBtZXNzYWdlVG9hc3QuYXBwZW5kQ2hpbGQoaWNvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvcHlUb0NsaXBib2FyZChtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG1lc3NhZ2UpO1xyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3MoJ9iq2YUg2YbYs9iuINin2YTYsdiz2KfZhNipINil2YTZiSDYp9mE2K3Yp9mB2LjYqScsICcnLCB7XHJcbiAgICAgIHBvc2l0aW9uQ2xhc3M6ICd0b2FzdC1ib3R0b20tcmlnaHQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2Vycm9yLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFPNUMsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLFlBQTBCLEVBQzFCLGFBQTRCO1FBRDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQ25DLENBQUM7SUFFSixTQUFTLENBQ1AsR0FBeUIsRUFDekIsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzFCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFxQixDQUFDO1lBQzdDLE1BQU0sWUFBWSxHQUE4QjtnQkFDOUMsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDO1lBQ0YsUUFBUSxRQUFRLENBQUMsVUFBVSxFQUFFO2dCQUMzQixLQUFLLEdBQUc7b0JBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQzdDLE1BQU07Z0JB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LENBQUM7SUFDTCxDQUFDOzs2R0E3RlUsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBIdHRwUmVxdWVzdCxcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFcnJvclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lcnJvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpRXhjZXB0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwaUV4Y2VwdGlvbic7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxDb25maWcsIFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBpUmVzcG9uc2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXJyb3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBpbnRlcmNlcHQoXHJcbiAgICByZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xyXG4gICAgaWYgKHRoaXMuaXNFeGNlcHRpb24ocmVxKSkge1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gZXJyb3IuZXJyb3IgYXMgQXBpRXhjZXB0aW9uO1xyXG4gICAgICAgIGNvbnN0IHRvYXN0ckNvbmZpZzogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPiA9IHtcclxuICAgICAgICAgIGRpc2FibGVUaW1lT3V0OiB0cnVlLFxyXG4gICAgICAgICAgY2xvc2VCdXR0b246IHRydWUsXHJcbiAgICAgICAgICB0YXBUb0Rpc21pc3M6IGZhbHNlLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXNDb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIDUwMDpcclxuICAgICAgICAgICAgdGhpcy5zaG93NTAwRXJyb3JNc2cocmVzcG9uc2UsIHRvYXN0ckNvbmZpZyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yTXNnKHJlc3BvbnNlLCB0b2FzdHJDb25maWcpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeGNlcHRpb24ocmVxOiBIdHRwUmVxdWVzdDxhbnk+KTogYm9vbGVhbiB7XHJcbiAgICBmb3IgKGNvbnN0IHVybCBvZiB0aGlzLmVycm9yU2VydmljZS51cmxzKSB7XHJcbiAgICAgIGlmIChyZXEudXJsLmluY2x1ZGVzKHVybC5wYXRoKSAmJiByZXEubWV0aG9kID09PSB1cmwubWV0aG9kKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd0Vycm9yTXNnKFxyXG4gICAgcmVzcG9uc2U6IEFwaVJlc3BvbnNlLFxyXG4gICAgdG9hc3RyQ29uZmlnOiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc+XHJcbiAgKSB7XHJcbiAgICBpZiAocmVzcG9uc2UuZXJyb3JzICYmIHJlc3BvbnNlLmVycm9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRvYXN0ckNvbmZpZy5lbmFibGVIdG1sID0gdHJ1ZTtcclxuICAgICAgbGV0IG1zZyA9ICcnO1xyXG4gICAgICByZXNwb25zZS5lcnJvcnMuZm9yRWFjaCgoZXJyb3IpID0+IHtcclxuICAgICAgICBtc2cgKz0gYDxsaT4ke2Vycm9yfTwvbGk+YDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcihgPHVsPiR7bXNnfTwvdWw+YCwgcmVzcG9uc2UubWVzc2FnZSwgdG9hc3RyQ29uZmlnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcignJywgcmVzcG9uc2UubWVzc2FnZSwgdG9hc3RyQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvdzUwMEVycm9yTXNnKFxyXG4gICAgcmVzcG9uc2U6IEFwaUV4Y2VwdGlvbixcclxuICAgIHRvYXN0ckNvbmZpZzogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPlxyXG4gICkge1xyXG4gICAgY29uc3QgbXNnID0gcmVzcG9uc2UuaW5uZXJFeGNlcHRpb24gKyAnICcgKyAocmVzcG9uc2Uuc3RhY2tUcmFjZSA/PyAnJyk7XHJcbiAgICBjb25zdCB0b2FzdHIgPSB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IoXHJcbiAgICAgIG1zZyxcclxuICAgICAgcmVzcG9uc2UubWVzc2FnZSxcclxuICAgICAgdG9hc3RyQ29uZmlnXHJcbiAgICApO1xyXG4gICAgdG9hc3RyLm9uU2hvd24uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5hZGRDb3B5QnV0dG9uKHJlc3BvbnNlLm1lc3NhZ2UgKyAnXFxuJyArIG1zZyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ29weUJ1dHRvbihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2VUb2FzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXHJcbiAgICAgICd0b2FzdC1tZXNzYWdlJ1xyXG4gICAgKVswXSBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpJyk7XHJcbiAgICBpY29uLmNsYXNzTGlzdC5hZGQoJ21zLTInLCAnZmFzJywgJ2ZhLWNvcHknKTtcclxuICAgIGljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29weVRvQ2xpcGJvYXJkKG1lc3NhZ2UpO1xyXG4gICAgfSk7XHJcbiAgICBtZXNzYWdlVG9hc3QuYXBwZW5kQ2hpbGQoaWNvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvcHlUb0NsaXBib2FyZChtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG1lc3NhZ2UpO1xyXG4gICAgdGhpcy50b2FzdHJTZXJ2aWNlLnN1Y2Nlc3MoJ9iq2YUg2YbYs9iuINin2YTYsdiz2KfZhNipINil2YTZiSDYp9mE2K3Yp9mB2LjYqScsICcnLCB7XHJcbiAgICAgIHBvc2l0aW9uQ2xhc3M6ICd0b2FzdC1ib3R0b20tcmlnaHQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -52,7 +52,7 @@ export class IPAFormService {
52
52
  static validHijriDate(control) {
53
53
  const date = control.value;
54
54
  const isValid = IPAFormService.checkHijriDateValid(date);
55
- return isValid
55
+ return isValid || !date
56
56
  ? null
57
57
  : {
58
58
  ngbDate: {
@@ -287,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
287
287
  providedIn: 'root',
288
288
  }]
289
289
  }], ctorParameters: function () { return [{ type: i1.NgbDateParserFormatter }]; } });
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhLWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sV0FBVyxNQUFNLGNBQWMsQ0FBQzs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtJQUFHLENBQUM7SUFFL0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLE1BQU0sV0FBVyxHQUNmLHVEQUF1RCxDQUFDLElBQUksQ0FDMUQsT0FBTyxDQUFDLEtBQUssQ0FDZCxDQUFDO1FBQ0osT0FBTyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxNQUFNLFdBQVcsR0FDZixrRkFBa0YsQ0FBQyxJQUFJLENBQ3JGLE9BQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztRQUNKLE9BQU8sV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sV0FB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgbW9tZW50SGlqcmkgZnJvbSAnbW9tZW50LWhpanJpJztcclxuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgTmdiRGF0ZSwgTmdiRGF0ZVBhcnNlckZvcm1hdHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJUEFGb3JtU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJzZXJGb3JtYXR0ZXI6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIpIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIGxpbmsgaXMgdmFsaWQuXHJcbiAgICovXHJcbiAgc3RhdGljIGxpbmtWYWxpZGF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGlzVmFsaWRMaW5rID1cclxuICAgICAgL14oKGh0dHBzPzpcXC9cXC8pW1xcdy1dKyhcXC5bYS16LV0rKStcXC4/KDpcXGQrKT8oXFwvXFxTKik/KSQvLnRlc3QoXHJcbiAgICAgICAgY29udHJvbC52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgbGluazogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgbXA0IGxpbmsgaXMgdmFsaWQuXHJcbiAgICovXHJcbiAgc3RhdGljIG1wNExpbmtWYWxpZGF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGlzVmFsaWRMaW5rID1cclxuICAgICAgL14oKGh0dHBzPzpcXC9cXC8pW1xcdy1dKyhcXC5bYS16LV0rKStcXC4/KDpcXGQrKT8oXFwvXFxTKik/KFxcL1tcXHdcXHUwNjAwLVxcdTA2RkZdK1xcLm1wNCkpJC8udGVzdChcclxuICAgICAgICBjb250cm9sLnZhbHVlXHJcbiAgICAgICk7XHJcbiAgICByZXR1cm4gaXNWYWxpZExpbmsgfHwgIWNvbnRyb2wudmFsdWUgPyBudWxsIDogeyBsaW5rTVA0OiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBtb2JpbGUgbnVtYmVyIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBtb2JpbGVObyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9IC9eMDVcXGR7OH0kLy50ZXN0KGNvbnRyb2wudmFsdWUpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgbW9iaWxlTm86IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIGVtYWlsIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBlbWFpbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKyhcXC5bXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdKykqKXwoXFxcIi4rXFxcIikpQCgoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXStcXC4pK1tePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl17Mix9KSQvLnRlc3QoXHJcbiAgICAgICAgY29udHJvbC52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgRW1haWw6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIG5hdGlvbmFsIElEIG9yIGlxYW1hIElEIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBjaGVja0lEKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGxldCBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICBpZiAoXHJcbiAgICAgIElQQUZvcm1TZXJ2aWNlLm5hdGlvbmFsSWRWYWxpZGF0ZSh2YWx1ZSkgfHxcclxuICAgICAgSVBBRm9ybVNlcnZpY2UuaXFhbWFJZFZhbGlkYXRlKHZhbHVlKVxyXG4gICAgKSB7XHJcbiAgICAgIGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzVmFsaWQgfHwgIXZhbHVlID8gbnVsbCA6IHsgY2hlY2tJZDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHZhbGlkSGlqcmlEYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnN0IGRhdGU6IE5nYkRhdGUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgY29uc3QgaXNWYWxpZCA9IElQQUZvcm1TZXJ2aWNlLmNoZWNrSGlqcmlEYXRlVmFsaWQoZGF0ZSk7XHJcbiAgICByZXR1cm4gaXNWYWxpZFxyXG4gICAgICA/IG51bGxcclxuICAgICAgOiB7XHJcbiAgICAgICAgICBuZ2JEYXRlOiB7XHJcbiAgICAgICAgICAgIGludmFsaWQ6XHJcbiAgICAgICAgICAgICAgZGF0ZT8ueWVhciArXHJcbiAgICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgICAoZGF0ZT8ubW9udGggPiAxMCA/IGRhdGU/Lm1vbnRoIDogJzAnICsgZGF0ZT8ubW9udGgpICtcclxuICAgICAgICAgICAgICAnLScgK1xyXG4gICAgICAgICAgICAgIChkYXRlPy5kYXkgPiAxMCA/IGRhdGU/LmRheSA6ICcwJyArIGRhdGU/LmRheSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoXHJcbiAgICBjb250cm9sOiBGb3JtQ29udHJvbCxcclxuICAgIHBhdHRlcm5FcnJvck1zZyA9ICcnLFxyXG4gICAgaXNBcmFiaWM6IGJvb2xlYW5cclxuICApOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIGNvbnRyb2w/LmVycm9ycykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgY29udHJvbD8uZXJyb3JzLmhhc093blByb3BlcnR5KHByb3BlcnR5TmFtZSkgJiZcclxuICAgICAgICAoY29udHJvbC50b3VjaGVkIHx8IGNvbnRyb2wuZGlydHkpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFZhbGlkYXRvckVycm9yTWVzc2FnZShcclxuICAgICAgICAgIHByb3BlcnR5TmFtZSxcclxuICAgICAgICAgIGNvbnRyb2wuZXJyb3JzW3Byb3BlcnR5TmFtZV0sXHJcbiAgICAgICAgICBwYXR0ZXJuRXJyb3JNc2csXHJcbiAgICAgICAgICBpc0FyYWJpY1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY29udmVydCBncmVnb3JpYW4gZGF0ZSB0byBoaWpyaSBkYXRlIChCYXNlZCBvbiBVbW0gYWwtUXVyYSBjYWxjdWxhdGlvbnMpLlxyXG4gICAqIEBwYXJhbSBkYXRlOiBncmVnb3JpYW4gZGF0ZVxyXG4gICAqIEBwYXJhbSBmb3JtYXQ6IGlERCA9PiBkYXk6INmh2aUsIGlNTSA9PiBtb250aDog2aDZpCwgaU1NTSA9PiBtb250aDog2LHYqNmK2Lkg2aIsXHJcbiAgICogICAgICAgICAgICAgICBpTU1NTSA9PiDYsdio2YrYuSDYp9mE2KvYp9mG2YosICBpWVkgPT4geWVhcjog2aTZoiwgaVlZWVkgPT4geWVhcjog2aHZpNmk2aIsXHJcbiAgICogICAgICAgICAgICAgICBkZCA9PiDZhiwgZGRkID0+INil2KvZhtmK2YYsIGRkZGQgPT4g2KfZhNil2KvZhtmK2YZcclxuICAgKiBAZXhhbXBsZSAnaVlZWVkvaU0vaUTZh9mAINin2YTZhdmI2KfZgdmCIFlZWVkvTS9E2YUnXHJcbiAgICogICAgICAgICAgICfZodmk2aTZoi/ZoNmkL9mh2aXZh9mAINin2YTZhdmI2KfZgdmCINmi2aDZotmgL9mh2aEv2aPZoCdcclxuICAgKi9cclxuICBjb252ZXJ0VG9IaWpyaURhdGUoXHJcbiAgICBkYXRlOiBzdHJpbmcsXHJcbiAgICBmb3JtYXQgPSAnaVlZWVktaU1NLWlERCcsXHJcbiAgICBsYW5nID0gJ2FyLVNBJ1xyXG4gICk6IHN0cmluZyB7XHJcbiAgICBtb21lbnRIaWpyaS5sb2NhbGUobGFuZyk7XHJcbiAgICByZXR1cm4gbW9tZW50SGlqcmkoZGF0ZSkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9HcmVnb3JpYW5EYXRlKFxyXG4gICAgZGF0ZTogTW9tZW50LFxyXG4gICAgZm9ybWF0ID0gJ1lZWVktTU0tREQnLFxyXG4gICAgbGFuZyA9ICdlbidcclxuICApOiBzdHJpbmcge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKGxhbmcpO1xyXG4gICAgY29uc3QgbSA9IG1vbWVudEhpanJpLmlDb252ZXJ0LnRvR3JlZ29yaWFuKFxyXG4gICAgICBkYXRlLnllYXIoKSxcclxuICAgICAgZGF0ZS5tb250aCgpLFxyXG4gICAgICBkYXRlLmRhdGUoKVxyXG4gICAgKTtcclxuICAgIHJldHVybiBtb21lbnRIaWpyaShuZXcgRGF0ZShtLmd5LCBtLmdtLCBtLmdkKSkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50SGlqcmlEYXRlKCkge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKCdlbicpO1xyXG4gICAgcmV0dXJuIG1vbWVudEhpanJpKCkuZm9ybWF0KCdpWVlZWS9pTU0vaUREJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFZhbGlkYXRvckVycm9yTWVzc2FnZShcclxuICAgIHZhbGlkYXRvck5hbWU6IHN0cmluZyxcclxuICAgIHZhbGlkYXRvclZhbHVlOiBhbnksXHJcbiAgICBwYXR0ZXJuRXJyb3JNc2c6IHN0cmluZyxcclxuICAgIGlzQXJhYmljOiBib29sZWFuXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWxpZGF0b3JOYW1lID09PSAncGF0dGVybicpIHtcclxuICAgICAgdmFsaWRhdG9yVmFsdWUgPSB0aGlzLmFkZFBhdHRlcm5Nc2codmFsaWRhdG9yVmFsdWUsIHBhdHRlcm5FcnJvck1zZyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWc6IGFueSA9IHtcclxuICAgICAgcmVxdWlyZWQ6IGlzQXJhYmljID8gJ9mH2LDYpyDYp9mE2K3ZgtmEINmF2LfZhNmI2KgnIDogJ3RoaXMgZmllbGQgcmVxdWlyZWQnLFxyXG4gICAgICBwYXR0ZXJuOiBgJHt2YWxpZGF0b3JWYWx1ZS5tZXNzYWdlfWAsXHJcbiAgICAgIEVtYWlsOlxyXG4gICAgICAgIChpc0FyYWJpYyA/ICfYrti32KMg2YHZiiDYp9mE2KjYsdmK2K8g2KfZhNin2YTZg9iq2LHZiNmG2YogJyA6ICdJbnZhbGlkIGVtYWlsICcpICtcclxuICAgICAgICAnKGV4YW1wbGVAZXhhbXBsZS5jb20pJyxcclxuICAgICAgbWF4bGVuZ3RoOiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNiq2KzYp9mI2LIg2LnYr9ivINin2YTYrdmC2YQg2KfZhNmF2LPZhdmI2K0g2KjZh9inICgke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSkg2K3YsdmBYFxyXG4gICAgICAgIDogYHRoaXMgZmllbGQgaXMgbW9yZSB0aGFuICgke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSkgbGV0dGVyYCxcclxuICAgICAgbWlubGVuZ3RoOiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNi52YTZiSDYp9mE2KPZgtmEINi52K/YryAke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSDYrdix2YFgXHJcbiAgICAgICAgOiBgdGhpcyBmaWVsZCBpcyBsZXNzIHRoYW4gKCR7dmFsaWRhdG9yVmFsdWUucmVxdWlyZWRMZW5ndGh9KSBsZXR0ZXJgLFxyXG4gICAgICBtaW46IGlzQXJhYmljXHJcbiAgICAgICAgPyBg2LHZgtmFINin2YPYqNixINmF2YYg2KPZiCDZitiz2KfZiNmKICR7dmFsaWRhdG9yVmFsdWUubWlufWBcclxuICAgICAgICA6IGBudW1iZXIgbW9yZSB0aGFuIG9yIGVxdWFsICgke3ZhbGlkYXRvclZhbHVlLm1pbn0pYCxcclxuICAgICAgbWF4OiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNix2YLZhSDYp9i12LrYsSDZhdmGINij2Ygg2YrYs9in2YjZiiAke3ZhbGlkYXRvclZhbHVlLm1heH1gXHJcbiAgICAgICAgOiBgbnVtYmVyIGxlc3MgdGhhbiBvciBlcXVhbCAoJHt2YWxpZGF0b3JWYWx1ZS5taW59KWAsXHJcbiAgICAgIG5nYkRhdGU6IHRoaXMuZ2V0TmdiRGF0ZXBpY2tlckVycm9yTXNnKHZhbGlkYXRvclZhbHVlKSxcclxuICAgICAgY2hlY2tJZDogaXNBcmFiaWNcclxuICAgICAgICA/ICfYsdmC2YUg2KfZhNmH2YjZitipINij2Ygg2KfZhNin2YLYp9mF2Kkg2LrZitixINi12K3ZititJ1xyXG4gICAgICAgIDogJ1dyb25nIElEIG9yIElxYW1hIG51bWJlcicsXHJcbiAgICAgIGxpbms6XHJcbiAgICAgICAgKGlzQXJhYmljID8gJ9in2YTYsdin2KjYtyDYutmK2LEg2LXYrdmK2K0gJyA6ICdXcm9uZyBsaW5rICcpICtcclxuICAgICAgICAnKGh0dHA6Ly9leGFtcGxlLmNvbSknLFxyXG4gICAgICBsaW5rTVA0OlxyXG4gICAgICAgIChpc0FyYWJpYyA/ICfYsdin2KjYtyBNUDQg2LrZitixINi12K3ZititICcgOiAnV3JvbmcgTVA0IGxpbmsgJykgK1xyXG4gICAgICAgICcoaHR0cDovL2V4YW1wbGUuY29tL2V4YW1wbGUubXA0KScsXHJcbiAgICAgIG1vYmlsZU5vOlxyXG4gICAgICAgIChpc0FyYWJpYyA/ICfYrti32KMg2YHZiiDYsdmC2YUg2KfZhNis2YjYp9mEICcgOiAnV3JvbmcgbW9iaWxlIG51bWJlciAnKSArXHJcbiAgICAgICAgJygwNXh4eHh4eHh4KScsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNvbmZpZ1t2YWxpZGF0b3JOYW1lXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUGF0dGVybk1zZyh2YWxpZGF0b3JWYWx1ZTogYW55LCBwYXR0ZXJuRXJyb3JNc2c6IHN0cmluZykge1xyXG4gICAgbGV0IHBhdHRlcm4gPSB7XHJcbiAgICAgIC4uLnZhbGlkYXRvclZhbHVlLFxyXG4gICAgICBtZXNzYWdlOiBwYXR0ZXJuRXJyb3JNc2csXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHBhdHRlcm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5nYkRhdGVwaWNrZXJFcnJvck1zZyh2YWxpZGF0b3JWYWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGxldCBtc2cgPSAnJztcclxuICAgIGlmICh2YWxpZGF0b3JWYWx1ZS5tYXhEYXRlKSB7XHJcbiAgICAgIG1zZyA9IGDYp9mE2KrYp9ix2YrYriDYp9mE2YXYr9iu2YQgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5tYXhEYXRlLmFjdHVhbFxyXG4gICAgICApfVwiINin2YPYqNixINmF2YYg2KrYp9ix2YrYriDYp9mE2YrZiNmFIFwiJHt0aGlzLnBhcnNlckZvcm1hdHRlci5mb3JtYXQoXHJcbiAgICAgICAgdmFsaWRhdG9yVmFsdWUubWF4RGF0ZS5tYXhEYXRlXHJcbiAgICAgICl9XCJgO1xyXG4gICAgfSBlbHNlIGlmICh2YWxpZGF0b3JWYWx1ZS5taW5EYXRlKSB7XHJcbiAgICAgIG1zZyA9IGDYp9mE2KrYp9ix2YrYriDYp9mE2YXYr9iu2YQgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5taW5EYXRlLmFjdHVhbFxyXG4gICAgICApfVwiINmK2KzYqCDYp9mGINmK2YPZiNmGINin2YPYqNixINmF2YYg2KPZiCDZitiz2KfZiNmKINiq2KfYsdmK2K4g2KfZhNio2K/Yp9mK2KkgXCIke3RoaXMucGFyc2VyRm9ybWF0dGVyLmZvcm1hdChcclxuICAgICAgICB2YWxpZGF0b3JWYWx1ZS5taW5EYXRlLm1pbkRhdGVcclxuICAgICAgKX1cImA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbGlkYXRvclZhbHVlLmludmFsaWQpIHtcclxuICAgICAgbXNnID0gYNin2YTYqtin2LHZitiuINin2YTZhdiv2K7ZhCDYutmK2LEg2LXYrdmK2K0gJHt2YWxpZGF0b3JWYWx1ZS5pbnZhbGlkfS5gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1zZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNoZWNrSGlqcmlEYXRlVmFsaWQoZGF0ZTogTmdiRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEoXHJcbiAgICAgIG1vbWVudEhpanJpLmlEYXlzSW5Nb250aChkYXRlPy55ZWFyLCBkYXRlPy5tb250aCAtIDEpIDwgZGF0ZT8uZGF5IHx8XHJcbiAgICAgIGRhdGU/LmRheSA8PSAwIHx8XHJcbiAgICAgIGRhdGU/Lm1vbnRoIDw9IDAgfHxcclxuICAgICAgZGF0ZT8ubW9udGggPiAxMiB8fFxyXG4gICAgICBkYXRlPy55ZWFyPy50b1N0cmluZygpLmxlbmd0aCAhPT0gNFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNvbnZlcnRUb0VuKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGxldCBuZXdWYWx1ZSA9ICcnO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgY2ggPSB2YWx1ZS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICBpZiAoY2ggPj0gMTU4NCAmJiBjaCA8PSAxNjUwKSB7XHJcbiAgICAgICAgbGV0IG5ld0NoYXIgPSBjaCAtIDE1ODQ7XHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdWYWx1ZSArIFN0cmluZy5mcm9tQ2hhckNvZGUobmV3Q2hhcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdWYWx1ZSArIFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBuYXRpb25hbElkVmFsaWRhdGUoY2l2aWxJZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoY2l2aWxJZCkge1xyXG4gICAgICBsZXQgc3RySUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBsZXQgZGlnaXRzID0gJyc7XHJcbiAgICAgIGxldCBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCA5KSB7XHJcbiAgICAgICAgaWYgKChjb3VudGVyICsgMSkgJSAyID09IDApIHtcclxuICAgICAgICAgIGRpZ2l0cyA9IGRpZ2l0cyArIHN0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRpZ2l0cyA9XHJcbiAgICAgICAgICAgIGRpZ2l0cyArICgrc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKSAqIDIpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW50U3VtID0gMDtcclxuICAgICAgbGV0IGludFN1bVRlbXAgPSAwO1xyXG4gICAgICBsZXQgc3RyU3VtO1xyXG4gICAgICBsZXQgaW50T2RkU3VtRGlnaXQ7XHJcbiAgICAgIGxldCBDaGVja0RpZ2l0O1xyXG4gICAgICBjb3VudGVyID0gMDtcclxuICAgICAgd2hpbGUgKGNvdW50ZXIgPCBkaWdpdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgaW50U3VtVGVtcCA9ICtkaWdpdHMuY2hhckF0KGNvdW50ZXIpICogMTtcclxuICAgICAgICBpbnRTdW0gKz0gaW50U3VtVGVtcDtcclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgc3RyU3VtID0gaW50U3VtLnRvU3RyaW5nKCk7XHJcbiAgICAgIGlmIChzdHJTdW0ubGVuZ3RoID09IDEpIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IGludFN1bTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpbnRPZGRTdW1EaWdpdCA9IHN0clN1bS5zdWJzdHJpbmcoc3RyU3VtLmxlbmd0aCwgc3RyU3VtLmxlbmd0aCAtIDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRPZGRTdW1EaWdpdCA9PSAwKSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9ICgxMCAtICtpbnRPZGRTdW1EaWdpdCkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgUHVibGljSUQgPSB0aGlzLmNvbnZlcnRUb0VuKGNpdmlsSWQpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgQ2hlY2tEaWdpdCA9PVxyXG4gICAgICAgICAgUHVibGljSUQuc3Vic3RyaW5nKFB1YmxpY0lELmxlbmd0aCAtIDEsIFB1YmxpY0lELmxlbmd0aCkgJiZcclxuICAgICAgICBzdHJJRC5sZW5ndGggPT0gMTAgJiZcclxuICAgICAgICBzdHJJRC5zdWJzdHJpbmcoMCwgMSkgPT0gJzEnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgaXFhbWFJZFZhbGlkYXRlKGNpdmlsSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGNpdmlsSWQpIHtcclxuICAgICAgbGV0IHN0cklEID0gdGhpcy5jb252ZXJ0VG9FbihjaXZpbElkKTtcclxuICAgICAgbGV0IGRpZ2l0cyA9ICcnO1xyXG4gICAgICBsZXQgY291bnRlciA9IDA7XHJcbiAgICAgIHdoaWxlIChjb3VudGVyIDwgOSkge1xyXG4gICAgICAgIGlmICgoY291bnRlciArIDEpICUgMiA9PSAwKSB7XHJcbiAgICAgICAgICBkaWdpdHMgPSBkaWdpdHMgKyBzdHJJRC5zdWJzdHJpbmcoY291bnRlciwgY291bnRlciArIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkaWdpdHMgPVxyXG4gICAgICAgICAgICBkaWdpdHMgKyAoK3N0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSkgKiAyKS50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGludFN1bSA9IDA7XHJcbiAgICAgIGxldCBpbnRTdW1UZW1wID0gMDtcclxuICAgICAgbGV0IHN0clN1bTtcclxuICAgICAgbGV0IGludE9kZFN1bURpZ2l0O1xyXG4gICAgICBsZXQgQ2hlY2tEaWdpdDtcclxuICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgIHdoaWxlIChjb3VudGVyIDwgZGlnaXRzLmxlbmd0aCkge1xyXG4gICAgICAgIGludFN1bVRlbXAgPSArZGlnaXRzLmNoYXJBdChjb3VudGVyKSAqIDE7XHJcbiAgICAgICAgaW50U3VtICs9IGludFN1bVRlbXA7XHJcbiAgICAgICAgY291bnRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIHN0clN1bSA9IGludFN1bS50b1N0cmluZygpO1xyXG4gICAgICBpZiAoc3RyU3VtLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgaW50T2RkU3VtRGlnaXQgPSBpbnRTdW07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW50T2RkU3VtRGlnaXQgPSBzdHJTdW0uc3Vic3RyaW5nKHN0clN1bS5sZW5ndGgsIHN0clN1bS5sZW5ndGggLSAxKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50T2RkU3VtRGlnaXQgPT0gMCkge1xyXG4gICAgICAgIENoZWNrRGlnaXQgPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIENoZWNrRGlnaXQgPSAoMTAgLSAraW50T2RkU3VtRGlnaXQpLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IFB1YmxpY0lEID0gdGhpcy5jb252ZXJ0VG9FbihjaXZpbElkKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIENoZWNrRGlnaXQgPT1cclxuICAgICAgICAgIFB1YmxpY0lELnN1YnN0cmluZyhQdWJsaWNJRC5sZW5ndGggLSAxLCBQdWJsaWNJRC5sZW5ndGgpICYmXHJcbiAgICAgICAgc3RySUQubGVuZ3RoID09IDEwICYmXHJcbiAgICAgICAgc3RySUQuc3Vic3RyaW5nKDAsIDEpID09ICcyJ1xyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXBhLWZvcm0uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sV0FBVyxNQUFNLGNBQWMsQ0FBQzs7O0FBT3ZDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtJQUFHLENBQUM7SUFFL0Q7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQXdCO1FBQzVDLE1BQU0sV0FBVyxHQUNmLHVEQUF1RCxDQUFDLElBQUksQ0FDMUQsT0FBTyxDQUFDLEtBQUssQ0FDZCxDQUFDO1FBQ0osT0FBTyxXQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxNQUFNLFdBQVcsR0FDZixrRkFBa0YsQ0FBQyxJQUFJLENBQ3JGLE9BQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztRQUNKLE9BQU8sV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQXdCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sV0FB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RSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IG1vbWVudEhpanJpIGZyb20gJ21vbWVudC1oaWpyaSc7XHJcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IE5nYkRhdGUsIE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSVBBRm9ybVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyc2VyRm9ybWF0dGVyOiBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBsaW5rIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBsaW5rVmFsaWRhdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChodHRwcz86XFwvXFwvKVtcXHctXSsoXFwuW2Etei1dKykrXFwuPyg6XFxkKyk/KFxcL1xcUyopPykkLy50ZXN0KFxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVcclxuICAgICAgKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IGxpbms6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrIG1wNCBsaW5rIGlzIHZhbGlkLlxyXG4gICAqL1xyXG4gIHN0YXRpYyBtcDRMaW5rVmFsaWRhdGlvbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBpc1ZhbGlkTGluayA9XHJcbiAgICAgIC9eKChodHRwcz86XFwvXFwvKVtcXHctXSsoXFwuW2Etei1dKykrXFwuPyg6XFxkKyk/KFxcL1xcUyopPyhcXC9bXFx3XFx1MDYwMC1cXHUwNkZGXStcXC5tcDQpKSQvLnRlc3QoXHJcbiAgICAgICAgY29udHJvbC52YWx1ZVxyXG4gICAgICApO1xyXG4gICAgcmV0dXJuIGlzVmFsaWRMaW5rIHx8ICFjb250cm9sLnZhbHVlID8gbnVsbCA6IHsgbGlua01QNDogdHJ1ZSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2sgbW9iaWxlIG51bWJlciBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgbW9iaWxlTm8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPSAvXjA1XFxkezh9JC8udGVzdChjb250cm9sLnZhbHVlKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IG1vYmlsZU5vOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBlbWFpbCBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgZW1haWwoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgY29uc3QgaXNWYWxpZExpbmsgPVxyXG4gICAgICAvXigoW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSsoXFwuW148PigpW1xcXVxcLiw7Olxcc0BcXFwiXSspKil8KFxcXCIuK1xcXCIpKUAoKFtePD4oKVtcXF1cXC4sOzpcXHNAXFxcIl0rXFwuKStbXjw+KClbXFxdXFwuLDs6XFxzQFxcXCJdezIsfSkkLy50ZXN0KFxyXG4gICAgICAgIGNvbnRyb2wudmFsdWVcclxuICAgICAgKTtcclxuICAgIHJldHVybiBpc1ZhbGlkTGluayB8fCAhY29udHJvbC52YWx1ZSA/IG51bGwgOiB7IEVtYWlsOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaGVjayBuYXRpb25hbCBJRCBvciBpcWFtYSBJRCBpcyB2YWxpZC5cclxuICAgKi9cclxuICBzdGF0aWMgY2hlY2tJRChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBsZXQgaXNWYWxpZCA9IGZhbHNlO1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgaWYgKFxyXG4gICAgICBJUEFGb3JtU2VydmljZS5uYXRpb25hbElkVmFsaWRhdGUodmFsdWUpIHx8XHJcbiAgICAgIElQQUZvcm1TZXJ2aWNlLmlxYW1hSWRWYWxpZGF0ZSh2YWx1ZSlcclxuICAgICkge1xyXG4gICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlzVmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBpc1ZhbGlkIHx8ICF2YWx1ZSA/IG51bGwgOiB7IGNoZWNrSWQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB2YWxpZEhpanJpRGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb25zdCBkYXRlOiBOZ2JEYXRlID0gY29udHJvbC52YWx1ZTtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSBJUEFGb3JtU2VydmljZS5jaGVja0hpanJpRGF0ZVZhbGlkKGRhdGUpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWQgfHwgIWRhdGVcclxuICAgICAgPyBudWxsXHJcbiAgICAgIDoge1xyXG4gICAgICAgICAgbmdiRGF0ZToge1xyXG4gICAgICAgICAgICBpbnZhbGlkOlxyXG4gICAgICAgICAgICAgIGRhdGU/LnllYXIgK1xyXG4gICAgICAgICAgICAgICctJyArXHJcbiAgICAgICAgICAgICAgKGRhdGU/Lm1vbnRoID4gMTAgPyBkYXRlPy5tb250aCA6ICcwJyArIGRhdGU/Lm1vbnRoKSArXHJcbiAgICAgICAgICAgICAgJy0nICtcclxuICAgICAgICAgICAgICAoZGF0ZT8uZGF5ID4gMTAgPyBkYXRlPy5kYXkgOiAnMCcgKyBkYXRlPy5kYXkpLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKFxyXG4gICAgY29udHJvbDogRm9ybUNvbnRyb2wsXHJcbiAgICBwYXR0ZXJuRXJyb3JNc2cgPSAnJyxcclxuICAgIGlzQXJhYmljOiBib29sZWFuXHJcbiAgKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBjb250cm9sPy5lcnJvcnMpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbnRyb2w/LmVycm9ycy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eU5hbWUpICYmXHJcbiAgICAgICAgKGNvbnRyb2wudG91Y2hlZCB8fCBjb250cm9sLmRpcnR5KVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JFcnJvck1lc3NhZ2UoXHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICBjb250cm9sLmVycm9yc1twcm9wZXJ0eU5hbWVdLFxyXG4gICAgICAgICAgcGF0dGVybkVycm9yTXNnLFxyXG4gICAgICAgICAgaXNBcmFiaWNcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbnZlcnQgZ3JlZ29yaWFuIGRhdGUgdG8gaGlqcmkgZGF0ZSAoQmFzZWQgb24gVW1tIGFsLVF1cmEgY2FsY3VsYXRpb25zKS5cclxuICAgKiBAcGFyYW0gZGF0ZTogZ3JlZ29yaWFuIGRhdGVcclxuICAgKiBAcGFyYW0gZm9ybWF0OiBpREQgPT4gZGF5OiDZodmlLCBpTU0gPT4gbW9udGg6INmg2aQsIGlNTU0gPT4gbW9udGg6INix2KjZiti5INmiLFxyXG4gICAqICAgICAgICAgICAgICAgaU1NTU0gPT4g2LHYqNmK2Lkg2KfZhNir2KfZhtmKLCAgaVlZID0+IHllYXI6INmk2aIsIGlZWVlZID0+IHllYXI6INmh2aTZpNmiLFxyXG4gICAqICAgICAgICAgICAgICAgZGQgPT4g2YYsIGRkZCA9PiDYpdir2YbZitmGLCBkZGRkID0+INin2YTYpdir2YbZitmGXHJcbiAgICogQGV4YW1wbGUgJ2lZWVlZL2lNL2lE2YfZgCDYp9mE2YXZiNin2YHZgiBZWVlZL00vRNmFJ1xyXG4gICAqICAgICAgICAgICAn2aHZpNmk2aIv2aDZpC/Zodml2YfZgCDYp9mE2YXZiNin2YHZgiDZotmg2aLZoC/ZodmhL9mj2aAnXHJcbiAgICovXHJcbiAgY29udmVydFRvSGlqcmlEYXRlKFxyXG4gICAgZGF0ZTogc3RyaW5nLFxyXG4gICAgZm9ybWF0ID0gJ2lZWVlZLWlNTS1pREQnLFxyXG4gICAgbGFuZyA9ICdhci1TQSdcclxuICApOiBzdHJpbmcge1xyXG4gICAgbW9tZW50SGlqcmkubG9jYWxlKGxhbmcpO1xyXG4gICAgcmV0dXJuIG1vbWVudEhpanJpKGRhdGUpLmZvcm1hdChmb3JtYXQpO1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvR3JlZ29yaWFuRGF0ZShcclxuICAgIGRhdGU6IE1vbWVudCxcclxuICAgIGZvcm1hdCA9ICdZWVlZLU1NLUREJyxcclxuICAgIGxhbmcgPSAnZW4nXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIG1vbWVudEhpanJpLmxvY2FsZShsYW5nKTtcclxuICAgIGNvbnN0IG0gPSBtb21lbnRIaWpyaS5pQ29udmVydC50b0dyZWdvcmlhbihcclxuICAgICAgZGF0ZS55ZWFyKCksXHJcbiAgICAgIGRhdGUubW9udGgoKSxcclxuICAgICAgZGF0ZS5kYXRlKClcclxuICAgICk7XHJcbiAgICByZXR1cm4gbW9tZW50SGlqcmkobmV3IERhdGUobS5neSwgbS5nbSwgbS5nZCkpLmZvcm1hdChmb3JtYXQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudEhpanJpRGF0ZSgpIHtcclxuICAgIG1vbWVudEhpanJpLmxvY2FsZSgnZW4nKTtcclxuICAgIHJldHVybiBtb21lbnRIaWpyaSgpLmZvcm1hdCgnaVlZWVkvaU1NL2lERCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JFcnJvck1lc3NhZ2UoXHJcbiAgICB2YWxpZGF0b3JOYW1lOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0b3JWYWx1ZTogYW55LFxyXG4gICAgcGF0dGVybkVycm9yTXNnOiBzdHJpbmcsXHJcbiAgICBpc0FyYWJpYzogYm9vbGVhblxyXG4gICk6IHN0cmluZyB7XHJcbiAgICBpZiAodmFsaWRhdG9yTmFtZSA9PT0gJ3BhdHRlcm4nKSB7XHJcbiAgICAgIHZhbGlkYXRvclZhbHVlID0gdGhpcy5hZGRQYXR0ZXJuTXNnKHZhbGlkYXRvclZhbHVlLCBwYXR0ZXJuRXJyb3JNc2cpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlnOiBhbnkgPSB7XHJcbiAgICAgIHJlcXVpcmVkOiBpc0FyYWJpYyA/ICfZh9iw2Kcg2KfZhNit2YLZhCDZhdi32YTZiNioJyA6ICd0aGlzIGZpZWxkIHJlcXVpcmVkJyxcclxuICAgICAgcGF0dGVybjogYCR7dmFsaWRhdG9yVmFsdWUubWVzc2FnZX1gLFxyXG4gICAgICBFbWFpbDpcclxuICAgICAgICAoaXNBcmFiaWMgPyAn2K7Yt9ijINmB2Yog2KfZhNio2LHZitivINin2YTYp9mE2YPYqtix2YjZhtmKICcgOiAnSW52YWxpZCBlbWFpbCAnKSArXHJcbiAgICAgICAgJyhleGFtcGxlQGV4YW1wbGUuY29tKScsXHJcbiAgICAgIG1heGxlbmd0aDogaXNBcmFiaWNcclxuICAgICAgICA/IGDYqtis2KfZiNiyINi52K/YryDYp9mE2K3ZgtmEINin2YTZhdiz2YXZiNitINio2YfYpyAoJHt2YWxpZGF0b3JWYWx1ZS5yZXF1aXJlZExlbmd0aH0pINit2LHZgWBcclxuICAgICAgICA6IGB0aGlzIGZpZWxkIGlzIG1vcmUgdGhhbiAoJHt2YWxpZGF0b3JWYWx1ZS5yZXF1aXJlZExlbmd0aH0pIGxldHRlcmAsXHJcbiAgICAgIG1pbmxlbmd0aDogaXNBcmFiaWNcclxuICAgICAgICA/IGDYudmE2Ykg2KfZhNij2YLZhCDYudiv2K8gJHt2YWxpZGF0b3JWYWx1ZS5yZXF1aXJlZExlbmd0aH0g2K3YsdmBYFxyXG4gICAgICAgIDogYHRoaXMgZmllbGQgaXMgbGVzcyB0aGFuICgke3ZhbGlkYXRvclZhbHVlLnJlcXVpcmVkTGVuZ3RofSkgbGV0dGVyYCxcclxuICAgICAgbWluOiBpc0FyYWJpY1xyXG4gICAgICAgID8gYNix2YLZhSDYp9mD2KjYsSDZhdmGINij2Ygg2YrYs9in2YjZiiAke3ZhbGlkYXRvclZhbHVlLm1pbn1gXHJcbiAgICAgICAgOiBgbnVtYmVyIG1vcmUgdGhhbiBvciBlcXVhbCAoJHt2YWxpZGF0b3JWYWx1ZS5taW59KWAsXHJcbiAgICAgIG1heDogaXNBcmFiaWNcclxuICAgICAgICA/IGDYsdmC2YUg2KfYtdi62LEg2YXZhiDYo9mIINmK2LPYp9mI2YogJHt2YWxpZGF0b3JWYWx1ZS5tYXh9YFxyXG4gICAgICAgIDogYG51bWJlciBsZXNzIHRoYW4gb3IgZXF1YWwgKCR7dmFsaWRhdG9yVmFsdWUubWlufSlgLFxyXG4gICAgICBuZ2JEYXRlOiB0aGlzLmdldE5nYkRhdGVwaWNrZXJFcnJvck1zZyh2YWxpZGF0b3JWYWx1ZSksXHJcbiAgICAgIGNoZWNrSWQ6IGlzQXJhYmljXHJcbiAgICAgICAgPyAn2LHZgtmFINin2YTZh9mI2YrYqSDYo9mIINin2YTYp9mC2KfZhdipINi62YrYsSDYtdit2YrYrSdcclxuICAgICAgICA6ICdXcm9uZyBJRCBvciBJcWFtYSBudW1iZXInLFxyXG4gICAgICBsaW5rOlxyXG4gICAgICAgIChpc0FyYWJpYyA/ICfYp9mE2LHYp9io2Lcg2LrZitixINi12K3ZititICcgOiAnV3JvbmcgbGluayAnKSArXHJcbiAgICAgICAgJyhodHRwOi8vZXhhbXBsZS5jb20pJyxcclxuICAgICAgbGlua01QNDpcclxuICAgICAgICAoaXNBcmFiaWMgPyAn2LHYp9io2LcgTVA0INi62YrYsSDYtdit2YrYrSAnIDogJ1dyb25nIE1QNCBsaW5rICcpICtcclxuICAgICAgICAnKGh0dHA6Ly9leGFtcGxlLmNvbS9leGFtcGxlLm1wNCknLFxyXG4gICAgICBtb2JpbGVObzpcclxuICAgICAgICAoaXNBcmFiaWMgPyAn2K7Yt9ijINmB2Yog2LHZgtmFINin2YTYrNmI2KfZhCAnIDogJ1dyb25nIG1vYmlsZSBudW1iZXIgJykgK1xyXG4gICAgICAgICcoMDV4eHh4eHh4eCknLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBjb25maWdbdmFsaWRhdG9yTmFtZV07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFBhdHRlcm5Nc2codmFsaWRhdG9yVmFsdWU6IGFueSwgcGF0dGVybkVycm9yTXNnOiBzdHJpbmcpIHtcclxuICAgIGxldCBwYXR0ZXJuID0ge1xyXG4gICAgICAuLi52YWxpZGF0b3JWYWx1ZSxcclxuICAgICAgbWVzc2FnZTogcGF0dGVybkVycm9yTXNnLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBwYXR0ZXJuO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXROZ2JEYXRlcGlja2VyRXJyb3JNc2codmFsaWRhdG9yVmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBsZXQgbXNnID0gJyc7XHJcbiAgICBpZiAodmFsaWRhdG9yVmFsdWUubWF4RGF0ZSkge1xyXG4gICAgICBtc2cgPSBg2KfZhNiq2KfYsdmK2K4g2KfZhNmF2K/YrtmEIFwiJHt0aGlzLnBhcnNlckZvcm1hdHRlci5mb3JtYXQoXHJcbiAgICAgICAgdmFsaWRhdG9yVmFsdWUubWF4RGF0ZS5hY3R1YWxcclxuICAgICAgKX1cIiDYp9mD2KjYsSDZhdmGINiq2KfYsdmK2K4g2KfZhNmK2YjZhSBcIiR7dGhpcy5wYXJzZXJGb3JtYXR0ZXIuZm9ybWF0KFxyXG4gICAgICAgIHZhbGlkYXRvclZhbHVlLm1heERhdGUubWF4RGF0ZVxyXG4gICAgICApfVwiYDtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRhdG9yVmFsdWUubWluRGF0ZSkge1xyXG4gICAgICBtc2cgPSBg2KfZhNiq2KfYsdmK2K4g2KfZhNmF2K/YrtmEIFwiJHt0aGlzLnBhcnNlckZvcm1hdHRlci5mb3JtYXQoXHJcbiAgICAgICAgdmFsaWRhdG9yVmFsdWUubWluRGF0ZS5hY3R1YWxcclxuICAgICAgKX1cIiDZitis2Kgg2KfZhiDZitmD2YjZhiDYp9mD2KjYsSDZhdmGINij2Ygg2YrYs9in2YjZiiDYqtin2LHZitiuINin2YTYqNiv2KfZitipIFwiJHt0aGlzLnBhcnNlckZvcm1hdHRlci5mb3JtYXQoXHJcbiAgICAgICAgdmFsaWRhdG9yVmFsdWUubWluRGF0ZS5taW5EYXRlXHJcbiAgICAgICl9XCJgO1xyXG4gICAgfSBlbHNlIGlmICh2YWxpZGF0b3JWYWx1ZS5pbnZhbGlkKSB7XHJcbiAgICAgIG1zZyA9IGDYp9mE2KrYp9ix2YrYriDYp9mE2YXYr9iu2YQg2LrZitixINi12K3ZititICR7dmFsaWRhdG9yVmFsdWUuaW52YWxpZH0uYDtcclxuICAgIH1cclxuICAgIHJldHVybiBtc2c7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjaGVja0hpanJpRGF0ZVZhbGlkKGRhdGU6IE5nYkRhdGUpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhKFxyXG4gICAgICBtb21lbnRIaWpyaS5pRGF5c0luTW9udGgoZGF0ZT8ueWVhciwgZGF0ZT8ubW9udGggLSAxKSA8IGRhdGU/LmRheSB8fFxyXG4gICAgICBkYXRlPy5kYXkgPD0gMCB8fFxyXG4gICAgICBkYXRlPy5tb250aCA8PSAwIHx8XHJcbiAgICAgIGRhdGU/Lm1vbnRoID4gMTIgfHxcclxuICAgICAgZGF0ZT8ueWVhcj8udG9TdHJpbmcoKS5sZW5ndGggIT09IDRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0VG9Fbih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgbmV3VmFsdWUgPSAnJztcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGNoID0gdmFsdWUuY2hhckNvZGVBdChpKTtcclxuICAgICAgaWYgKGNoID49IDE1ODQgJiYgY2ggPD0gMTY1MCkge1xyXG4gICAgICAgIGxldCBuZXdDaGFyID0gY2ggLSAxNTg0O1xyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKG5ld0NoYXIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3VmFsdWUgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmF0aW9uYWxJZFZhbGlkYXRlKGNpdmlsSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGNpdmlsSWQpIHtcclxuICAgICAgbGV0IHN0cklEID0gdGhpcy5jb252ZXJ0VG9FbihjaXZpbElkKTtcclxuICAgICAgbGV0IGRpZ2l0cyA9ICcnO1xyXG4gICAgICBsZXQgY291bnRlciA9IDA7XHJcbiAgICAgIHdoaWxlIChjb3VudGVyIDwgOSkge1xyXG4gICAgICAgIGlmICgoY291bnRlciArIDEpICUgMiA9PSAwKSB7XHJcbiAgICAgICAgICBkaWdpdHMgPSBkaWdpdHMgKyBzdHJJRC5zdWJzdHJpbmcoY291bnRlciwgY291bnRlciArIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkaWdpdHMgPVxyXG4gICAgICAgICAgICBkaWdpdHMgKyAoK3N0cklELnN1YnN0cmluZyhjb3VudGVyLCBjb3VudGVyICsgMSkgKiAyKS50b1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGludFN1bSA9IDA7XHJcbiAgICAgIGxldCBpbnRTdW1UZW1wID0gMDtcclxuICAgICAgbGV0IHN0clN1bTtcclxuICAgICAgbGV0IGludE9kZFN1bURpZ2l0O1xyXG4gICAgICBsZXQgQ2hlY2tEaWdpdDtcclxuICAgICAgY291bnRlciA9IDA7XHJcbiAgICAgIHdoaWxlIChjb3VudGVyIDwgZGlnaXRzLmxlbmd0aCkge1xyXG4gICAgICAgIGludFN1bVRlbXAgPSArZGlnaXRzLmNoYXJBdChjb3VudGVyKSAqIDE7XHJcbiAgICAgICAgaW50U3VtICs9IGludFN1bVRlbXA7XHJcbiAgICAgICAgY291bnRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIHN0clN1bSA9IGludFN1bS50b1N0cmluZygpO1xyXG4gICAgICBpZiAoc3RyU3VtLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgaW50T2RkU3VtRGlnaXQgPSBpbnRTdW07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW50T2RkU3VtRGlnaXQgPSBzdHJTdW0uc3Vic3RyaW5nKHN0clN1bS5sZW5ndGgsIHN0clN1bS5sZW5ndGggLSAxKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaW50T2RkU3VtRGlnaXQgPT0gMCkge1xyXG4gICAgICAgIENoZWNrRGlnaXQgPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIENoZWNrRGlnaXQgPSAoMTAgLSAraW50T2RkU3VtRGlnaXQpLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IFB1YmxpY0lEID0gdGhpcy5jb252ZXJ0VG9FbihjaXZpbElkKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIENoZWNrRGlnaXQgPT1cclxuICAgICAgICAgIFB1YmxpY0lELnN1YnN0cmluZyhQdWJsaWNJRC5sZW5ndGggLSAxLCBQdWJsaWNJRC5sZW5ndGgpICYmXHJcbiAgICAgICAgc3RySUQubGVuZ3RoID09IDEwICYmXHJcbiAgICAgICAgc3RySUQuc3Vic3RyaW5nKDAsIDEpID09ICcxJ1xyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGlxYW1hSWRWYWxpZGF0ZShjaXZpbElkOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmIChjaXZpbElkKSB7XHJcbiAgICAgIGxldCBzdHJJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGxldCBkaWdpdHMgPSAnJztcclxuICAgICAgbGV0IGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IDkpIHtcclxuICAgICAgICBpZiAoKGNvdW50ZXIgKyAxKSAlIDIgPT0gMCkge1xyXG4gICAgICAgICAgZGlnaXRzID0gZGlnaXRzICsgc3RySUQuc3Vic3RyaW5nKGNvdW50ZXIsIGNvdW50ZXIgKyAxKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZGlnaXRzID1cclxuICAgICAgICAgICAgZGlnaXRzICsgKCtzdHJJRC5zdWJzdHJpbmcoY291bnRlciwgY291bnRlciArIDEpICogMikudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY291bnRlcisrO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBpbnRTdW0gPSAwO1xyXG4gICAgICBsZXQgaW50U3VtVGVtcCA9IDA7XHJcbiAgICAgIGxldCBzdHJTdW07XHJcbiAgICAgIGxldCBpbnRPZGRTdW1EaWdpdDtcclxuICAgICAgbGV0IENoZWNrRGlnaXQ7XHJcbiAgICAgIGNvdW50ZXIgPSAwO1xyXG4gICAgICB3aGlsZSAoY291bnRlciA8IGRpZ2l0cy5sZW5ndGgpIHtcclxuICAgICAgICBpbnRTdW1UZW1wID0gK2RpZ2l0cy5jaGFyQXQoY291bnRlcikgKiAxO1xyXG4gICAgICAgIGludFN1bSArPSBpbnRTdW1UZW1wO1xyXG4gICAgICAgIGNvdW50ZXIrKztcclxuICAgICAgfVxyXG4gICAgICBzdHJTdW0gPSBpbnRTdW0udG9TdHJpbmcoKTtcclxuICAgICAgaWYgKHN0clN1bS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gaW50U3VtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGludE9kZFN1bURpZ2l0ID0gc3RyU3VtLnN1YnN0cmluZyhzdHJTdW0ubGVuZ3RoLCBzdHJTdW0ubGVuZ3RoIC0gMSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGludE9kZFN1bURpZ2l0ID09IDApIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBDaGVja0RpZ2l0ID0gKDEwIC0gK2ludE9kZFN1bURpZ2l0KS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBQdWJsaWNJRCA9IHRoaXMuY29udmVydFRvRW4oY2l2aWxJZCk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBDaGVja0RpZ2l0ID09XHJcbiAgICAgICAgICBQdWJsaWNJRC5zdWJzdHJpbmcoUHVibGljSUQubGVuZ3RoIC0gMSwgUHVibGljSUQubGVuZ3RoKSAmJlxyXG4gICAgICAgIHN0cklELmxlbmd0aCA9PSAxMCAmJlxyXG4gICAgICAgIHN0cklELnN1YnN0cmluZygwLCAxKSA9PSAnMidcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL21vZGVscy9hcGlSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZSB7XHJcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpUmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL21vZGVscy9hcGlSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBcGlSZXNwb25zZSB7XHJcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBlcnJvcnM/OiBzdHJpbmdbXTtcclxufVxyXG4iXX0=
@@ -9,13 +9,15 @@ export class ShareButtonComponent {
9
9
  }
10
10
  ngAfterViewInit() {
11
11
  const elements = document.getElementsByClassName('sb-show-icon');
12
- elements[0].setAttribute('type', 'button');
13
- elements[0].setAttribute('id', 'IPAShareBtn');
14
- const label = document.createElement('label');
15
- label.innerHTML = this.btnLabel;
16
- label.classList.add('sm-share-title');
17
- label.classList.add('me-1');
18
- elements[0].before(label);
12
+ if (!elements[0].getAttribute('id')) {
13
+ elements[0].setAttribute('type', 'button');
14
+ elements[0].setAttribute('id', 'IPAShareBtn');
15
+ const label = document.createElement('label');
16
+ label.innerHTML = this.btnLabel;
17
+ label.classList.add('sm-share-title');
18
+ label.classList.add('me-1');
19
+ elements[0].before(label);
20
+ }
19
21
  }
20
22
  }
21
23
  ShareButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -30,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
30
32
  }], btnLabel: [{
31
33
  type: Input
32
34
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjtRQUhTLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ1IsQ0FBQztJQUNoQixlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztpSEFkVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzSUNQakMsa05BRXFCOzJGREtSLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBS25CLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1zaGFyZS1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XHJcbiAgQElucHV0KCkgYnRuTGFiZWwgPSAnJztcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzYi1zaG93LWljb24nKTtcclxuICAgIGVsZW1lbnRzWzBdLnNldEF0dHJpYnV0ZSgndHlwZScsICdidXR0b24nKTtcclxuICAgIGVsZW1lbnRzWzBdLnNldEF0dHJpYnV0ZSgnaWQnLCAnSVBBU2hhcmVCdG4nKTtcclxuICAgIGNvbnN0IGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTtcclxuICAgIGxhYmVsLmlubmVySFRNTCA9IHRoaXMuYnRuTGFiZWw7XHJcbiAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKCdzbS1zaGFyZS10aXRsZScpO1xyXG4gICAgbGFiZWwuY2xhc3NMaXN0LmFkZCgnbWUtMScpO1xyXG4gICAgZWxlbWVudHNbMF0uYmVmb3JlKGxhYmVsKTtcclxuICB9XHJcbn1cclxuIiwiPHNoYXJlLXBvcHVwLWJ1dHRvbiBbdGl0bGVdPVwidGl0bGVcIiBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIiBbaWNvbl09XCInc2hhcmUtYWx0J1wiXHJcbiAgICBbaW5jbHVkZV09XCJbJ2ZhY2Vib29rJywndHdpdHRlcicsJ2xpbmtlZGluJywndGVsZWdyYW0nLCd3aGF0c2FwcCcsJ2VtYWlsJywnY29weSddXCI+XHJcbjwvc2hhcmUtcG9wdXAtYnV0dG9uPiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQjtRQUhTLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ1IsQ0FBQztJQUNoQixlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7O2lIQWhCVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixzSUNQakMsa05BRXFCOzJGREtSLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7MEVBS25CLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEFmdGVyVmlld0luaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1zaGFyZS1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XHJcbiAgQElucHV0KCkgYnRuTGFiZWwgPSAnJztcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdzYi1zaG93LWljb24nKTtcclxuICAgIGlmICghZWxlbWVudHNbMF0uZ2V0QXR0cmlidXRlKCdpZCcpKSB7XHJcbiAgICAgIGVsZW1lbnRzWzBdLnNldEF0dHJpYnV0ZSgndHlwZScsICdidXR0b24nKTtcclxuICAgICAgZWxlbWVudHNbMF0uc2V0QXR0cmlidXRlKCdpZCcsICdJUEFTaGFyZUJ0bicpO1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7XHJcbiAgICAgIGxhYmVsLmlubmVySFRNTCA9IHRoaXMuYnRuTGFiZWw7XHJcbiAgICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ3NtLXNoYXJlLXRpdGxlJyk7XHJcbiAgICAgIGxhYmVsLmNsYXNzTGlzdC5hZGQoJ21lLTEnKTtcclxuICAgICAgZWxlbWVudHNbMF0uYmVmb3JlKGxhYmVsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHNoYXJlLXBvcHVwLWJ1dHRvbiBbdGl0bGVdPVwidGl0bGVcIiBbZGVzY3JpcHRpb25dPVwiZGVzY3JpcHRpb25cIiBbaWNvbl09XCInc2hhcmUtYWx0J1wiXHJcbiAgICBbaW5jbHVkZV09XCJbJ2ZhY2Vib29rJywndHdpdHRlcicsJ2xpbmtlZGluJywndGVsZWdyYW0nLCd3aGF0c2FwcCcsJ2VtYWlsJywnY29weSddXCI+XHJcbjwvc2hhcmUtcG9wdXAtYnV0dG9uPiJdfQ==
@@ -108,7 +108,7 @@ class IPAFormService {
108
108
  static validHijriDate(control) {
109
109
  const date = control.value;
110
110
  const isValid = IPAFormService.checkHijriDateValid(date);
111
- return isValid
111
+ return isValid || !date
112
112
  ? null
113
113
  : {
114
114
  ngbDate: {
@@ -1143,13 +1143,15 @@ class ShareButtonComponent {
1143
1143
  }
1144
1144
  ngAfterViewInit() {
1145
1145
  const elements = document.getElementsByClassName('sb-show-icon');
1146
- elements[0].setAttribute('type', 'button');
1147
- elements[0].setAttribute('id', 'IPAShareBtn');
1148
- const label = document.createElement('label');
1149
- label.innerHTML = this.btnLabel;
1150
- label.classList.add('sm-share-title');
1151
- label.classList.add('me-1');
1152
- elements[0].before(label);
1146
+ if (!elements[0].getAttribute('id')) {
1147
+ elements[0].setAttribute('type', 'button');
1148
+ elements[0].setAttribute('id', 'IPAShareBtn');
1149
+ const label = document.createElement('label');
1150
+ label.innerHTML = this.btnLabel;
1151
+ label.classList.add('sm-share-title');
1152
+ label.classList.add('me-1');
1153
+ elements[0].before(label);
1154
+ }
1153
1155
  }
1154
1156
  }
1155
1157
  ShareButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -1379,7 +1381,6 @@ class ErrorInterceptor {
1379
1381
  return next.handle(req);
1380
1382
  }
1381
1383
  return next.handle(req).pipe(catchError((error) => {
1382
- var _a;
1383
1384
  const response = error.error;
1384
1385
  const toastrConfig = {
1385
1386
  disableTimeOut: true,
@@ -1388,17 +1389,13 @@ class ErrorInterceptor {
1388
1389
  };
1389
1390
  switch (response.statusCode) {
1390
1391
  case 500:
1391
- const msg = response.innerException + ' ' + ((_a = response.stackTrace) !== null && _a !== void 0 ? _a : '');
1392
- const toastr = this.toastrService.error(msg, response.message, toastrConfig);
1393
- toastr.onShown.subscribe(() => {
1394
- this.addCopyButton(response.message + '\n' + msg);
1395
- });
1392
+ this.show500ErrorMsg(response, toastrConfig);
1396
1393
  break;
1397
1394
  default:
1398
- this.toastrService.error('', response.message, toastrConfig);
1395
+ this.showErrorMsg(response, toastrConfig);
1399
1396
  break;
1400
1397
  }
1401
- return throwError(error);
1398
+ return throwError(() => error);
1402
1399
  }));
1403
1400
  }
1404
1401
  isException(req) {
@@ -1409,6 +1406,27 @@ class ErrorInterceptor {
1409
1406
  }
1410
1407
  return false;
1411
1408
  }
1409
+ showErrorMsg(response, toastrConfig) {
1410
+ if (response.errors && response.errors.length > 0) {
1411
+ toastrConfig.enableHtml = true;
1412
+ let msg = '';
1413
+ response.errors.forEach((error) => {
1414
+ msg += `<li>${error}</li>`;
1415
+ });
1416
+ this.toastrService.error(`<ul>${msg}</ul>`, response.message, toastrConfig);
1417
+ }
1418
+ else {
1419
+ this.toastrService.error('', response.message, toastrConfig);
1420
+ }
1421
+ }
1422
+ show500ErrorMsg(response, toastrConfig) {
1423
+ var _a;
1424
+ const msg = response.innerException + ' ' + ((_a = response.stackTrace) !== null && _a !== void 0 ? _a : '');
1425
+ const toastr = this.toastrService.error(msg, response.message, toastrConfig);
1426
+ toastr.onShown.subscribe(() => {
1427
+ this.addCopyButton(response.message + '\n' + msg);
1428
+ });
1429
+ }
1412
1430
  addCopyButton(message) {
1413
1431
  const messageToast = document.getElementsByClassName('toast-message')[0];
1414
1432
  const icon = document.createElement('i');