ng-ipa-library 1.3.10 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,16 +3,22 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "../services/auth.service";
4
4
  import * as i2 from "@angular/common/http";
5
5
  import * as i3 from "../services/loader.service";
6
+ import * as i4 from "../services/token.service";
6
7
  export class TokenInterceptor {
7
- constructor(authService, http, loaderService) {
8
+ constructor(authService, http, loaderService, tokenService) {
8
9
  this.authService = authService;
9
10
  this.http = http;
10
11
  this.loaderService = loaderService;
12
+ this.tokenService = tokenService;
11
13
  this.refresh = true;
12
14
  this.loaderService.addExceptionUrl({
13
15
  path: '/api/users?refresh',
14
16
  method: 'GET',
15
17
  });
18
+ this.tokenService.addExceptionUrl({
19
+ path: '/api/users?refresh',
20
+ method: 'GET',
21
+ });
16
22
  }
17
23
  intercept(request, next) {
18
24
  if (this.isException(request)) {
@@ -58,17 +64,18 @@ export class TokenInterceptor {
58
64
  }
59
65
  }
60
66
  }
61
- isException(request) {
62
- if (request.url.includes('/api/users?refresh') &&
63
- request.method === 'GET') {
64
- return true;
67
+ isException(req) {
68
+ for (const url of this.tokenService.urls) {
69
+ if (req.url.includes(url.path) && req.method === url.method) {
70
+ return true;
71
+ }
65
72
  }
66
73
  return false;
67
74
  }
68
75
  }
69
- TokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TokenInterceptor, deps: [{ token: i1.AuthService }, { token: i2.HttpClient }, { token: i3.LoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
76
+ TokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TokenInterceptor, deps: [{ token: i1.AuthService }, { token: i2.HttpClient }, { token: i3.LoaderService }, { token: i4.TokenService }], target: i0.ɵɵFactoryTarget.Injectable });
70
77
  TokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TokenInterceptor });
71
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TokenInterceptor, decorators: [{
72
79
  type: Injectable
73
- }], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.HttpClient }, { type: i3.LoaderService }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL3Rva2VuLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBZTNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFDVSxXQUF3QixFQUN4QixJQUFnQixFQUNoQixhQUE0QjtRQUY1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBSnRDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFNYixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztZQUNqQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FDUCxPQUE2QixFQUM3QixJQUFpQjtRQUVqQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7aUJBQ2pDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQWtCLENBQUM7UUFDeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDeEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUN2RCxPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7Z0JBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLElBQUk7eUJBQ04sR0FBRyxDQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLGVBQWUsRUFBRTt3QkFDNUQsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLFVBQVUsS0FBSyxFQUFFLEVBQUU7cUJBQzlDLENBQUM7eUJBQ0QsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ2xCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7d0JBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7d0JBQ3RCLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2lCQUNOO2FBQ0Y7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYixvR0FBb0csQ0FDckcsQ0FBQzthQUNIO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQXlCO1FBQzNDLElBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUM7WUFDMUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQ3hCO1lBQ0EsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBdEVVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEV2ZW50LFxyXG4gIEh0dHBJbnRlcmNlcHRvcixcclxuICBIdHRwQ2xpZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IERlY29kZWRUb2tlbiB9IGZyb20gJy4uLy4uL21vZGVscy9kZWNvZGVkVG9rZW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbG9hZGVyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcmVmcmVzaCA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbG9hZGVyU2VydmljZTogTG9hZGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmFkZEV4Y2VwdGlvblVybCh7XHJcbiAgICAgIHBhdGg6ICcvYXBpL3VzZXJzP3JlZnJlc2gnLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQoXHJcbiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPixcclxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXHJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcclxuICAgIGlmICh0aGlzLmlzRXhjZXB0aW9uKHJlcXVlc3QpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuKSB7XHJcbiAgICAgIHRoaXMuaXNUb2tlbkV4cGlyZWQodG9rZW4pO1xyXG4gICAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgc2V0SGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVG9rZW5FeHBpcmVkKHRva2VuOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJlZGlyZWN0UGF0aCA9IGxvY2F0aW9uLnBhdGhuYW1lO1xyXG4gICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5hdXRoU2VydmljZS5nZXREZWNvZGVkVG9rZW4oKSBhcyBEZWNvZGVkVG9rZW47XHJcbiAgICBjb25zdCBleHBEYXRlID0gbmV3IERhdGUoKGRlY29kZWRUb2tlbi5leHAgPz8gMCkgKiAxMDAwKTtcclxuICAgIGlmIChleHBEYXRlIDwgbmV3IERhdGUoKSkge1xyXG4gICAgICBsb2NhdGlvbi5yZXBsYWNlKCcvYXIvbG9naW4/cmVkaXJlY3Q9JyArIHJlZGlyZWN0UGF0aCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyVXJsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVmcmVzaCkge1xyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8VXNlcj4odGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlclVybCArIGB1c2Vycz9yZWZyZXNoYCwge1xyXG4gICAgICAgICAgICAgIGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAgfSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodXNlcikgPT4ge1xyXG4gICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd0b2tlbicsIHVzZXIudG9rZW4pO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVmcmVzaCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9LCA2MCAqIDEwMDApO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgXCJwcm92aWRlIGN1cnJlbnQgYmFzZSB1c2VyIGFwaSB1cmwgdXNpbmcgdGhpcyBmdW5jdGlvbiBhdXRoU2VydmljZS5zZXRDdXJyZW50VXNlclVybCgnaHR0cHM6Ly8uLi4nKVwiXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0V4Y2VwdGlvbihyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHJlcXVlc3QudXJsLmluY2x1ZGVzKCcvYXBpL3VzZXJzP3JlZnJlc2gnKSAmJlxyXG4gICAgICByZXF1ZXN0Lm1ldGhvZCA9PT0gJ0dFVCdcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
80
+ }], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.HttpClient }, { type: i3.LoaderService }, { type: i4.TokenService }]; } });
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL3Rva2VuLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQWdCM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUUzQixZQUNVLFdBQXdCLEVBQ3hCLElBQWdCLEVBQ2hCLGFBQTRCLEVBQzVCLFlBQTBCO1FBSDFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFMcEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQU9iLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDO1lBQ2pDLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztZQUNoQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FDUCxPQUE2QixFQUM3QixJQUFpQjtRQUVqQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7aUJBQ2pDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQWtCLENBQUM7UUFDeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDeEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxZQUFZLENBQUMsQ0FBQztZQUN2RCxPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7Z0JBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLElBQUk7eUJBQ04sR0FBRyxDQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLGVBQWUsRUFBRTt3QkFDNUQsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLFVBQVUsS0FBSyxFQUFFLEVBQUU7cUJBQzlDLENBQUM7eUJBQ0QsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ2xCLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7d0JBQ3JCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7d0JBQ3RCLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2lCQUNOO2FBQ0Y7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FDYixvR0FBb0csQ0FDckcsQ0FBQzthQUNIO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQXFCO1FBQy9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUU7WUFDeEMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUMzRCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OzZHQTFFVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBIYW5kbGVyLFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cENsaWVudCxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZWNvZGVkVG9rZW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvZGVjb2RlZFRva2VuLm1vZGVsJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLm1vZGVsJztcclxuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdG9rZW4uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUb2tlbkludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcclxuICByZWZyZXNoID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmFkZEV4Y2VwdGlvblVybCh7XHJcbiAgICAgIHBhdGg6ICcvYXBpL3VzZXJzP3JlZnJlc2gnLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRva2VuU2VydmljZS5hZGRFeGNlcHRpb25Vcmwoe1xyXG4gICAgICBwYXRoOiAnL2FwaS91c2Vycz9yZWZyZXNoJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJjZXB0KFxyXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sXHJcbiAgICBuZXh0OiBIdHRwSGFuZGxlclxyXG4gICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgICBpZiAodGhpcy5pc0V4Y2VwdGlvbihyZXF1ZXN0KSkge1xyXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW4oKTtcclxuICAgIGlmICh0b2tlbikge1xyXG4gICAgICB0aGlzLmlzVG9rZW5FeHBpcmVkKHRva2VuKTtcclxuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1Rva2VuRXhwaXJlZCh0b2tlbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCByZWRpcmVjdFBhdGggPSBsb2NhdGlvbi5wYXRobmFtZTtcclxuICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0RGVjb2RlZFRva2VuKCkgYXMgRGVjb2RlZFRva2VuO1xyXG4gICAgY29uc3QgZXhwRGF0ZSA9IG5ldyBEYXRlKChkZWNvZGVkVG9rZW4uZXhwID8/IDApICogMTAwMCk7XHJcbiAgICBpZiAoZXhwRGF0ZSA8IG5ldyBEYXRlKCkpIHtcclxuICAgICAgbG9jYXRpb24ucmVwbGFjZSgnL2FyL2xvZ2luP3JlZGlyZWN0PScgKyByZWRpcmVjdFBhdGgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlclVybCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlZnJlc2gpIHtcclxuICAgICAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PFVzZXI+KHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXJVcmwgKyBgdXNlcnM/cmVmcmVzaGAsIHtcclxuICAgICAgICAgICAgICBoZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG9rZW4nLCB1c2VyLnRva2VuKTtcclxuICAgICAgICAgICAgICB0aGlzLnJlZnJlc2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfSwgNjAgKiAxMDAwKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIFwicHJvdmlkZSBjdXJyZW50IGJhc2UgdXNlciBhcGkgdXJsIHVzaW5nIHRoaXMgZnVuY3Rpb24gYXV0aFNlcnZpY2Uuc2V0Q3VycmVudFVzZXJVcmwoJ2h0dHBzOi8vLi4uJylcIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRXhjZXB0aW9uKHJlcTogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xyXG4gICAgZm9yIChjb25zdCB1cmwgb2YgdGhpcy50b2tlblNlcnZpY2UudXJscykge1xyXG4gICAgICBpZiAocmVxLnVybC5pbmNsdWRlcyh1cmwucGF0aCkgJiYgcmVxLm1ldGhvZCA9PT0gdXJsLm1ldGhvZCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TokenService {
4
+ constructor() {
5
+ this.urls = [];
6
+ }
7
+ setExceptionUrls(urls) {
8
+ this.urls = urls;
9
+ }
10
+ addExceptionUrl(url) {
11
+ this.urls.push(url);
12
+ }
13
+ }
14
+ TokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TokenService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15
+ TokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TokenService, providedIn: 'root' });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TokenService, decorators: [{
17
+ type: Injectable,
18
+ args: [{
19
+ providedIn: 'root',
20
+ }]
21
+ }], ctorParameters: function () { return []; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvY29yZS9zZXJ2aWNlcy90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxZQUFZO0lBRXZCO1FBREEsU0FBSSxHQUFtQixFQUFFLENBQUM7SUFDWCxDQUFDO0lBRWhCLGdCQUFnQixDQUFDLElBQW9CO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBaUI7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQzs7eUdBVlUsWUFBWTs2R0FBWixZQUFZLGNBRlgsTUFBTTsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4Y2VwdGlvblVybCB9IGZyb20gJy4uLy4uL21vZGVscy9leGNlcHRpb25VcmwubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVG9rZW5TZXJ2aWNlIHtcbiAgdXJsczogRXhjZXB0aW9uVXJsW10gPSBbXTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHNldEV4Y2VwdGlvblVybHModXJsczogRXhjZXB0aW9uVXJsW10pIHtcbiAgICB0aGlzLnVybHMgPSB1cmxzO1xuICB9XG5cbiAgYWRkRXhjZXB0aW9uVXJsKHVybDogRXhjZXB0aW9uVXJsKSB7XG4gICAgdGhpcy51cmxzLnB1c2godXJsKTtcbiAgfVxufVxuIl19
@@ -24,6 +24,7 @@ export class GenerateFormComponent {
24
24
  this.fileDeleted = new EventEmitter();
25
25
  }
26
26
  ngOnInit() {
27
+ this.changeDataValueForEngForm();
27
28
  this.createForm();
28
29
  }
29
30
  getFormControls(formControlName) {
@@ -45,18 +46,35 @@ export class GenerateFormComponent {
45
46
  this.generateForm.controls[formControlName].patchValue(null);
46
47
  this.fileDeleted.emit(event);
47
48
  }
49
+ changeDataValueForEngForm() {
50
+ this.form.columns = this.form.columns.map((column) => {
51
+ return {
52
+ ...column,
53
+ data: column.data?.map((item) => {
54
+ const value = item[column.textField];
55
+ return {
56
+ ...item,
57
+ [column.textField]: this.isArabicForm
58
+ ? value.split(',')[0]
59
+ : value.split(',')[1],
60
+ };
61
+ }),
62
+ };
63
+ });
64
+ }
48
65
  createForm() {
49
66
  this.form.columns.forEach((column) => {
50
67
  if (column.type === 'checkbox') {
51
68
  this.addCheckboxControl(column);
52
69
  }
53
70
  else {
54
- this.generateForm.addControl(column.formControlName, new FormControl(null, [
71
+ this.generateForm.addControl(column.formControlName, new FormControl(column.type === 'file' && column.multipleFile > 1 ? [] : null, [
55
72
  column.required ? Validators.required : Validators.nullValidator,
56
73
  column.validationPattern
57
74
  ? Validators.pattern(column.validationPattern)
58
75
  : Validators.nullValidator,
59
- ['select', 'radio', 'file', 'recaptcha'].indexOf(column.type) <= -1
76
+ ['select', 'radio', 'file', 'recaptcha'].indexOf(column.type) <=
77
+ -1
60
78
  ? Validators.maxLength(column.size)
61
79
  : Validators.nullValidator,
62
80
  column.type === 'number'
@@ -93,10 +111,10 @@ export class GenerateFormComponent {
93
111
  }
94
112
  }
95
113
  GenerateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GenerateFormComponent, deps: [{ token: i1.IPAFormService }], target: i0.ɵɵFactoryTarget.Component });
96
- GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: i2.TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { type: i3.DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { type: i4.FileUploadComponent, selector: "ipa-file-upload", inputs: ["label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: i5.RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }, { type: i6.TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i7.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
114
+ GenerateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: GenerateFormComponent, selector: "ipa-generate-form", inputs: { generateForm: "generateForm", form: "form", isArabicForm: "isArabicForm", siteKey: "siteKey", recaptchaSize: "recaptchaSize", lang: "lang", recaptchaType: "recaptchaType", theme: "theme", useGlobalDomain: "useGlobalDomain" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, ngImport: i0, template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""], components: [{ type: i2.TextareaInputComponent, selector: "ipa-textarea-input", inputs: ["id", "placeholder", "label", "required", "patternErrorMsg", "pattern", "classes", "containerClasses", "isArabicForm"] }, { type: i3.DropdownInputComponent, selector: "ipa-dropdown-input", inputs: ["id", "label", "items", "textField", "valueField", "required", "firstItemLabel", "searchable", "notFoundText", "classes", "containerClasses", "isArabicForm", "fromGenerateForm"] }, { type: i4.FileUploadComponent, selector: "ipa-file-upload", inputs: ["isArabicForm", "label", "required", "acceptedFiles", "multiple", "maxFileSize", "method", "autoUpload", "apiUrl", "authorization"], outputs: ["successUpload", "fileAdded", "fileDeleted"] }, { type: i5.RecaptchaComponent, selector: "ipa-recaptcha", inputs: ["siteKey", "recaptchaSize", "lang", "recaptchaType", "theme", "useGlobalDomain"] }, { type: i6.TextInputComponent, selector: "ipa-text-input", inputs: ["id", "type", "placeholder", "label", "required", "patternErrorMsg", "onlyNumber", "pattern", "classes", "containerClasses", "isArabicForm"] }], directives: [{ type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i7.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
97
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: GenerateFormComponent, decorators: [{
98
116
  type: Component,
99
- args: [{ selector: 'ipa-generate-form', template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""] }]
117
+ args: [{ selector: 'ipa-generate-form', template: "<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\"\r\n [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>{{isArabicForm? column.arabicLabel : column.englishLabel}}</label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\"\r\n type=\"radio\" [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [acceptedFiles]=\"column.acceptedFiles!\" [multiple]=\"column.multipleFile!\"\r\n [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\" [autoUpload]=\"column.autoUploadFile!\"\r\n [apiUrl]=\"column.apiUrl?? 'apiUrl' \" [authorization]=\"column.authorization!\" ngDefaultControl\r\n [formControlName]=\"column.formControlName\" (successUpload)=\"SuccessUpload($event)\"\r\n (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [type]=\"column.type\" [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\"\r\n [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\"\r\n [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>", styles: [""] }]
100
118
  }], ctorParameters: function () { return [{ type: i1.IPAFormService }]; }, propDecorators: { generateForm: [{
101
119
  type: Input
102
120
  }], form: [{
@@ -122,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
122
140
  }], fileDeleted: [{
123
141
  type: Output
124
142
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBb0JoQyxZQUFvQixpQkFBaUM7UUFBakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFnQjtRQWpCNUMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFJcEIsa0JBQWEsR0FBeUIsUUFBUSxDQUFDO1FBQy9DLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQXNCLE9BQU8sQ0FBQztRQUMzQyxVQUFLLEdBQXFCLE9BQU8sQ0FBQztRQUNsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUVoQyxzQkFBc0I7UUFDWixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBSWEsQ0FBQztJQUV6RCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFlLENBQUMsZUFBdUI7UUFDckMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFjLENBQUM7SUFDdkUsQ0FBQztJQUVELGVBQWUsQ0FBQyxlQUF1QjtRQUNyQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDNUMsZUFBZSxDQUNELENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUNwRCxXQUFXLEVBQ1gsRUFBRSxFQUNGLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBUyxFQUFFLGVBQXVCO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVUsRUFBRSxlQUF1QjtRQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2pDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUMxQixNQUFNLENBQUMsZUFBZSxFQUN0QixJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUU7b0JBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhO29CQUNoRSxNQUFNLENBQUMsaUJBQWlCO3dCQUN0QixDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7d0JBQzlDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYTtvQkFDNUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDakUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUssQ0FBQzt3QkFDcEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhO29CQUM1QixNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVE7d0JBQ3RCLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDbkIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhO2lCQUM3QixDQUFDLENBQ0gsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBYztRQUN2QyxJQUFJLGFBQWEsR0FBRyxJQUFJLFNBQVMsQ0FDL0IsTUFBTSxDQUFDLElBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4QixPQUFPLElBQUksU0FBUyxDQUFDO2dCQUNuQixDQUFDLE1BQU0sQ0FBQyxVQUFXLENBQUMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVcsQ0FBQyxDQUFDO2dCQUMvRCxDQUFDLE1BQU0sQ0FBQyxTQUFVLENBQUMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVUsQ0FBQyxDQUFDO2dCQUM3RCxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FDMUIsTUFBTSxDQUFDLGVBQWUsRUFDdEIsSUFBSSxXQUFXLENBQ2IsSUFBSSxFQUNKLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQ2pFLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUMxQixPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFDaEMsYUFBYSxDQUNkLENBQUM7UUFDRixhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3BELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRCxJQUFJLGFBQWEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FDM0QsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFVLENBQUMsQ0FBQyxDQUMvQyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3BFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8seUJBQXlCLENBQUMsS0FBWTtRQUM1QyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsT0FBTyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDekQsQ0FBQzs7a0hBdEhVLHFCQUFxQjtzR0FBckIscUJBQXFCLHNZQ1ZsQyx3aE1BOEZPOzJGRHBGTSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3FHQUtwQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElQQUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vaXBhLWZvcm0vaXBhLWZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbHVtbiwgR2VuZXJhdGVGb3JtIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlRm9ybS5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1nZW5lcmF0ZS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJhdGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBnZW5lcmF0ZUZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybSE6IEdlbmVyYXRlRm9ybTtcclxuICBASW5wdXQoKSBpc0FyYWJpY0Zvcm0gPSB0cnVlO1xyXG5cclxuICAvLyByZWNhcHRjaGEgaW5wdXRzXHJcbiAgQElucHV0KCkgc2l0ZUtleSE6IHN0cmluZztcclxuICBASW5wdXQoKSByZWNhcHRjaGFTaXplOiAnY29tcGFjdCcgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xyXG4gIEBJbnB1dCgpIGxhbmc6ICdhcicgfCAnZW4nID0gJ2FyJztcclxuICBASW5wdXQoKSByZWNhcHRjaGFUeXBlOiAnaW1hZ2UnIHwgJ2F1ZGlvJyA9ICdpbWFnZSc7XHJcbiAgQElucHV0KCkgdGhlbWU6ICdsaWdodCcgfCAnZGFyaycgPSAnbGlnaHQnO1xyXG4gIEBJbnB1dCgpIHVzZUdsb2JhbERvbWFpbiA9IHRydWU7XHJcblxyXG4gIC8vIGZpbGUgdXBsb2FkIG91dHB1dHNcclxuICBAT3V0cHV0KCkgc3VjY2Vzc1VwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZXJyb3JNc2chOiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZhbGlkYXRpb25TZXJ2aWNlOiBJUEFGb3JtU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1Db250cm9scyhmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVGb3JtLmdldCgnaXRlbXMnICsgZm9ybUNvbnRyb2xOYW1lKSBhcyBGb3JtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZVxyXG4gICAgXSBhcyBGb3JtQ29udHJvbDtcclxuICAgIHRoaXMuZXJyb3JNc2cgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldEVycm9yTWVzc2FnZShcclxuICAgICAgZm9ybUNvbnRyb2wsXHJcbiAgICAgICcnLFxyXG4gICAgICB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLmVycm9yTXNnO1xyXG4gIH1cclxuXHJcbiAgU3VjY2Vzc1VwbG9hZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnN1Y2Nlc3NVcGxvYWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBGaWxlQWRkZWQoZmlsZTogYW55LCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKGZpbGUpO1xyXG4gICAgdGhpcy5maWxlQWRkZWQuZW1pdChmaWxlKTtcclxuICB9XHJcblxyXG4gIEZpbGVEZWxldGVkKGV2ZW50OiBhbnksIGZvcm1Db250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnBhdGNoVmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLmZpbGVEZWxldGVkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgIHRoaXMuYWRkQ2hlY2tib3hDb250cm9sKGNvbHVtbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAgIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUsXHJcbiAgICAgICAgICBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1xyXG4gICAgICAgICAgICBjb2x1bW4ucmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgICBjb2x1bW4udmFsaWRhdGlvblBhdHRlcm5cclxuICAgICAgICAgICAgICA/IFZhbGlkYXRvcnMucGF0dGVybihjb2x1bW4udmFsaWRhdGlvblBhdHRlcm4pXHJcbiAgICAgICAgICAgICAgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3IsXHJcbiAgICAgICAgICAgIFsnc2VsZWN0JywgJ3JhZGlvJywgJ2ZpbGUnLCAncmVjYXB0Y2hhJ10uaW5kZXhPZihjb2x1bW4udHlwZSkgPD0gLTFcclxuICAgICAgICAgICAgICA/IFZhbGlkYXRvcnMubWF4TGVuZ3RoKGNvbHVtbi5zaXplISlcclxuICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgY29sdW1uLnR5cGUgPT09ICdudW1iZXInXHJcbiAgICAgICAgICAgICAgPyBWYWxpZGF0b3JzLm1pbigxKVxyXG4gICAgICAgICAgICAgIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgXSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ2hlY2tib3hDb250cm9sKGNvbHVtbjogQ29sdW1uKSB7XHJcbiAgICBsZXQgY2hlY2tib3hHcm91cCA9IG5ldyBGb3JtQXJyYXkoXHJcbiAgICAgIGNvbHVtbi5kYXRhIS5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICAgICAgICBbY29sdW1uLnZhbHVlRmllbGQhXTogbmV3IEZvcm1Db250cm9sKGl0ZW1bY29sdW1uLnZhbHVlRmllbGQhXSksXHJcbiAgICAgICAgICBbY29sdW1uLnRleHRGaWVsZCFdOiBuZXcgRm9ybUNvbnRyb2woaXRlbVtjb2x1bW4udGV4dEZpZWxkIV0pLFxyXG4gICAgICAgICAgY2hlY2tib3g6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUsXHJcbiAgICAgIG5ldyBGb3JtQ29udHJvbChcclxuICAgICAgICBudWxsLFxyXG4gICAgICAgIGNvbHVtbi5yZXF1aXJlZCA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiBWYWxpZGF0b3JzLm51bGxWYWxpZGF0b3JcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICdpdGVtcycgKyBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgICBjaGVja2JveEdyb3VwXHJcbiAgICApO1xyXG4gICAgY2hlY2tib3hHcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZTogYW55W10pID0+IHtcclxuICAgICAgbGV0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLmdldENoZWNrYm94U2VsZWN0ZWRWYWx1ZXModmFsdWUpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtcykge1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2NvbHVtbi5mb3JtQ29udHJvbE5hbWVdLnBhdGNoVmFsdWUoXHJcbiAgICAgICAgICBzZWxlY3RlZEl0ZW1zLm1hcCgoeCkgPT4geFtjb2x1bW4udGV4dEZpZWxkIV0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKG51bGwpO1xyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2NvbHVtbi5mb3JtQ29udHJvbE5hbWVdLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENoZWNrYm94U2VsZWN0ZWRWYWx1ZXMoaXRlbXM6IGFueVtdKTogYW55W10gfCBudWxsIHtcclxuICAgIGxldCBzZWxlY3RlZEl0ZW1zID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmNoZWNrYm94KTtcclxuICAgIHJldHVybiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgPyBzZWxlY3RlZEl0ZW1zIDogbnVsbDtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJnZW5lcmF0ZUZvcm1cIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBmb3JtLmNvbHVtbnNcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJjb2x1bW4udHlwZVwiPlxyXG4gICAgICAgICAgICA8IS0tIFRFWFRBUkVBIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIndGV4dEFyZWEnXCI+XHJcbiAgICAgICAgICAgICAgICA8aXBhLXRleHRhcmVhLWlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiIFtpZF09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCIgW3JlcXVpcmVkXT1cImNvbHVtbi5yZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhdHRlcm5FcnJvck1zZ109XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5wYXR0ZXJuQXJFcnJvck1zZyEgOiBjb2x1bW4ucGF0dGVybkVuRXJyb3JNc2chXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJjb2x1bW4uaW5wdXRDbGFzc2VzIVwiIFtjb250YWluZXJDbGFzc2VzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzQXJhYmljRm9ybV09XCJpc0FyYWJpY0Zvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvaXBhLXRleHRhcmVhLWlucHV0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gRFJPUCBET1dOIExJU1QgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCI+XHJcbiAgICAgICAgICAgICAgICA8aXBhLWRyb3Bkb3duLWlucHV0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiIFtpZF09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCIgW2l0ZW1zXT1cImNvbHVtbi5kYXRhIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlRmllbGRdPVwiY29sdW1uLnZhbHVlRmllbGQhXCIgW3RleHRGaWVsZF09XCJjb2x1bW4udGV4dEZpZWxkIVwiIFtyZXF1aXJlZF09XCJjb2x1bW4ucmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzZWFyY2hhYmxlXT1cImNvbHVtbi5zZWFyY2hhYmxlIVwiIFtub3RGb3VuZFRleHRdPVwiY29sdW1uLm5vdEZvdW5kVGV4dCFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImNvbHVtbi5pbnB1dENsYXNzZXMhXCIgW2NvbnRhaW5lckNsYXNzZXNdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXMhXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiIFtmcm9tR2VuZXJhdGVGb3JtXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDwvaXBhLWRyb3Bkb3duLWlucHV0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQ0hFQ0tCT1ggLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIiBbY2xhc3NdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57e2lzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW2Zvcm1BcnJheU5hbWVdPVwiJ2l0ZW1zJysgY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgZ2V0Rm9ybUNvbnRyb2xzKGNvbHVtbi5mb3JtQ29udHJvbE5hbWUpLmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sge3tjb2x1bW4uaW5wdXRDbGFzc2VzfX1cIiBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZStjb250cm9sLnZhbHVlW2NvbHVtbi52YWx1ZUZpZWxkIV1cIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgZm9ybUNvbnRyb2xOYW1lPVwiY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWUrY29udHJvbC52YWx1ZVtjb2x1bW4udmFsdWVGaWVsZCFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvbnRyb2wudmFsdWVbY29sdW1uLnRleHRGaWVsZCFdfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEVycm9yTWVzc2FnZShjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ZXJyb3JNc2d9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBSQURJTyAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiIFtjbGFzc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7aXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW4uZGF0YTsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHt7Y29sdW1uLmlucHV0Q2xhc3Nlc319XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZStpdGVtW2NvbHVtbi52YWx1ZUZpZWxkIV1cIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCIgW3ZhbHVlXT1cIml0ZW1bY29sdW1uLnRleHRGaWVsZCFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBbZm9yXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWUraXRlbVtjb2x1bW4udmFsdWVGaWVsZCFdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW1bY29sdW1uLnRleHRGaWVsZCFdfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEVycm9yTWVzc2FnZShjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKSAhPT0gbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ZXJyb3JNc2d9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSBGSUxFIFVQTE9BRCAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2ZpbGUnXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8aXBhLWZpbGUtdXBsb2FkIFtsYWJlbF09XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthY2NlcHRlZEZpbGVzXT1cImNvbHVtbi5hY2NlcHRlZEZpbGVzIVwiIFttdWx0aXBsZV09XCJjb2x1bW4ubXVsdGlwbGVGaWxlIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heEZpbGVTaXplXT1cImNvbHVtbi5zaXplIVwiIFttZXRob2RdPVwiY29sdW1uLmFwaVVSbE1ldGhvZCFcIiBbYXV0b1VwbG9hZF09XCJjb2x1bW4uYXV0b1VwbG9hZEZpbGUhXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBpVXJsXT1cImNvbHVtbi5hcGlVcmw/PyAnYXBpVXJsJyBcIiBbYXV0aG9yaXphdGlvbl09XCJjb2x1bW4uYXV0aG9yaXphdGlvbiFcIiBuZ0RlZmF1bHRDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCIgKHN1Y2Nlc3NVcGxvYWQpPVwiU3VjY2Vzc1VwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZmlsZUFkZGVkKT1cIkZpbGVBZGRlZCgkZXZlbnQsIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZmlsZURlbGV0ZWQpPVwiRmlsZURlbGV0ZWQoJGV2ZW50LCBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtZmlsZS11cGxvYWQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSByZWNhcHRjaGEgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidyZWNhcHRjaGEnXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8aXBhLXJlY2FwdGNoYSBbcmVjYXB0Y2hhU2l6ZV09XCJyZWNhcHRjaGFTaXplXCIgW2xhbmddPVwiaXNBcmFiaWNGb3JtPyAnYXInOidlbidcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWNhcHRjaGFUeXBlXT1cInJlY2FwdGNoYVR5cGVcIiBbdXNlR2xvYmFsRG9tYWluXT1cInVzZUdsb2JhbERvbWFpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lfX1cIj5cclxuICAgICAgICAgICAgICAgIDwvaXBhLXJlY2FwdGNoYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIERFRkFVTFQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgIDxpcGEtdGV4dC1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29sdW1uLnR5cGVcIiBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiY29sdW1uLnJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGF0dGVybkVycm9yTXNnXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLnBhdHRlcm5BckVycm9yTXNnISA6IGNvbHVtbi5wYXR0ZXJuRW5FcnJvck1zZyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImNvbHVtbi5pbnB1dENsYXNzZXMhXCIgW2NvbnRhaW5lckNsYXNzZXNdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXMhXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtdGV4dC1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9mb3JtPiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBb0JoQyxZQUFvQixpQkFBaUM7UUFBakMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFnQjtRQWpCNUMsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFJcEIsa0JBQWEsR0FBeUIsUUFBUSxDQUFDO1FBQy9DLFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGtCQUFhLEdBQXNCLE9BQU8sQ0FBQztRQUMzQyxVQUFLLEdBQXFCLE9BQU8sQ0FBQztRQUNsQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUVoQyxzQkFBc0I7UUFDWixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBSWEsQ0FBQztJQUV6RCxRQUFRO1FBQ04sSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxlQUFl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U0FBUzsrQkFDRSxtQkFBbUI7cUdBS3BCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSVBBRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9pcGEtZm9ybS9pcGEtZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29sdW1uLCBHZW5lcmF0ZUZvcm0gfSBmcm9tICcuLi9tb2RlbHMvZ2VuZXJhdGVGb3JtLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaXBhLWdlbmVyYXRlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmF0ZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmF0ZS1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmF0ZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGdlbmVyYXRlRm9ybSE6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBmb3JtITogR2VuZXJhdGVGb3JtO1xyXG4gIEBJbnB1dCgpIGlzQXJhYmljRm9ybSA9IHRydWU7XHJcblxyXG4gIC8vIHJlY2FwdGNoYSBpbnB1dHNcclxuICBASW5wdXQoKSBzaXRlS2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlY2FwdGNoYVNpemU6ICdjb21wYWN0JyB8ICdub3JtYWwnID0gJ25vcm1hbCc7XHJcbiAgQElucHV0KCkgbGFuZzogJ2FyJyB8ICdlbicgPSAnYXInO1xyXG4gIEBJbnB1dCgpIHJlY2FwdGNoYVR5cGU6ICdpbWFnZScgfCAnYXVkaW8nID0gJ2ltYWdlJztcclxuICBASW5wdXQoKSB0aGVtZTogJ2xpZ2h0JyB8ICdkYXJrJyA9ICdsaWdodCc7XHJcbiAgQElucHV0KCkgdXNlR2xvYmFsRG9tYWluID0gdHJ1ZTtcclxuXHJcbiAgLy8gZmlsZSB1cGxvYWQgb3V0cHV0c1xyXG4gIEBPdXRwdXQoKSBzdWNjZXNzVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZpbGVEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBlcnJvck1zZyE6IHN0cmluZyB8IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IElQQUZvcm1TZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRGF0YVZhbHVlRm9yRW5nRm9ybSgpO1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtQ29udHJvbHMoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRm9ybS5nZXQoJ2l0ZW1zJyArIGZvcm1Db250cm9sTmFtZSkgYXMgRm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKGZvcm1Db250cm9sTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW1xyXG4gICAgICBmb3JtQ29udHJvbE5hbWVcclxuICAgIF0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoXHJcbiAgICAgIGZvcm1Db250cm9sLFxyXG4gICAgICAnJyxcclxuICAgICAgdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICk7XHJcbiAgICByZXR1cm4gdGhpcy5lcnJvck1zZztcclxuICB9XHJcblxyXG4gIFN1Y2Nlc3NVcGxvYWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zdWNjZXNzVXBsb2FkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgRmlsZUFkZGVkKGZpbGU6IGFueSwgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ2VuZXJhdGVGb3JtLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShmaWxlKTtcclxuICAgIHRoaXMuZmlsZUFkZGVkLmVtaXQoZmlsZSk7XHJcbiAgfVxyXG5cclxuICBGaWxlRGVsZXRlZChldmVudDogYW55LCBmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlRGVsZXRlZC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hhbmdlRGF0YVZhbHVlRm9yRW5nRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybS5jb2x1bW5zID0gdGhpcy5mb3JtLmNvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5jb2x1bW4sXHJcbiAgICAgICAgZGF0YTogY29sdW1uLmRhdGE/Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtW2NvbHVtbi50ZXh0RmllbGQhXTtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICAgIFtjb2x1bW4udGV4dEZpZWxkIV06IHRoaXMuaXNBcmFiaWNGb3JtXHJcbiAgICAgICAgICAgICAgPyB2YWx1ZS5zcGxpdCgnLCcpWzBdXHJcbiAgICAgICAgICAgICAgOiB2YWx1ZS5zcGxpdCgnLCcpWzFdLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9KSxcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoZWNrYm94Jykge1xyXG4gICAgICAgIHRoaXMuYWRkQ2hlY2tib3hDb250cm9sKGNvbHVtbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uYWRkQ29udHJvbChcclxuICAgICAgICAgIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUsXHJcbiAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woXHJcbiAgICAgICAgICAgIGNvbHVtbi50eXBlID09PSAnZmlsZScgJiYgY29sdW1uLm11bHRpcGxlRmlsZSEgPiAxID8gW10gOiBudWxsLFxyXG4gICAgICAgICAgICBbXHJcbiAgICAgICAgICAgICAgY29sdW1uLnJlcXVpcmVkID8gVmFsaWRhdG9ycy5yZXF1aXJlZCA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBjb2x1bW4udmFsaWRhdGlvblBhdHRlcm5cclxuICAgICAgICAgICAgICAgID8gVmFsaWRhdG9ycy5wYXR0ZXJuKGNvbHVtbi52YWxpZGF0aW9uUGF0dGVybilcclxuICAgICAgICAgICAgICAgIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgICAgIFsnc2VsZWN0JywgJ3JhZGlvJywgJ2ZpbGUnLCAncmVjYXB0Y2hhJ10uaW5kZXhPZihjb2x1bW4udHlwZSkgPD1cclxuICAgICAgICAgICAgICAtMVxyXG4gICAgICAgICAgICAgICAgPyBWYWxpZGF0b3JzLm1heExlbmd0aChjb2x1bW4uc2l6ZSEpXHJcbiAgICAgICAgICAgICAgICA6IFZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcixcclxuICAgICAgICAgICAgICBjb2x1bW4udHlwZSA9PT0gJ251bWJlcidcclxuICAgICAgICAgICAgICAgID8gVmFsaWRhdG9ycy5taW4oMSlcclxuICAgICAgICAgICAgICAgIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yLFxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENoZWNrYm94Q29udHJvbChjb2x1bW46IENvbHVtbikge1xyXG4gICAgbGV0IGNoZWNrYm94R3JvdXAgPSBuZXcgRm9ybUFycmF5KFxyXG4gICAgICBjb2x1bW4uZGF0YSEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgICAgICAgW2NvbHVtbi52YWx1ZUZpZWxkIV06IG5ldyBGb3JtQ29udHJvbChpdGVtW2NvbHVtbi52YWx1ZUZpZWxkIV0pLFxyXG4gICAgICAgICAgW2NvbHVtbi50ZXh0RmllbGQhXTogbmV3IEZvcm1Db250cm9sKGl0ZW1bY29sdW1uLnRleHRGaWVsZCFdKSxcclxuICAgICAgICAgIGNoZWNrYm94OiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lLFxyXG4gICAgICBuZXcgRm9ybUNvbnRyb2woXHJcbiAgICAgICAgbnVsbCxcclxuICAgICAgICBjb2x1bW4ucmVxdWlyZWQgPyBWYWxpZGF0b3JzLnJlcXVpcmVkIDogVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICB0aGlzLmdlbmVyYXRlRm9ybS5hZGRDb250cm9sKFxyXG4gICAgICAnaXRlbXMnICsgY29sdW1uLmZvcm1Db250cm9sTmFtZSxcclxuICAgICAgY2hlY2tib3hHcm91cFxyXG4gICAgKTtcclxuICAgIGNoZWNrYm94R3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueVtdKSA9PiB7XHJcbiAgICAgIGxldCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5nZXRDaGVja2JveFNlbGVjdGVkVmFsdWVzKHZhbHVlKTtcclxuICAgICAgaWYgKHNlbGVjdGVkSXRlbXMpIHtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXS5wYXRjaFZhbHVlKFxyXG4gICAgICAgICAgc2VsZWN0ZWRJdGVtcy5tYXAoKHgpID0+IHhbY29sdW1uLnRleHRGaWVsZCFdKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUZvcm0uY29udHJvbHNbY29sdW1uLmZvcm1Db250cm9sTmFtZV0ucGF0Y2hWYWx1ZShudWxsKTtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlRm9ybS5jb250cm9sc1tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDaGVja2JveFNlbGVjdGVkVmFsdWVzKGl0ZW1zOiBhbnlbXSk6IGFueVtdIHwgbnVsbCB7XHJcbiAgICBsZXQgc2VsZWN0ZWRJdGVtcyA9IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5jaGVja2JveCk7XHJcbiAgICByZXR1cm4gc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwID8gc2VsZWN0ZWRJdGVtcyA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZ2VuZXJhdGVGb3JtXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgZm9ybS5jb2x1bW5zXCI+XHJcbiAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIj5cclxuICAgICAgICAgICAgPCEtLSBURVhUQVJFQSAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRBcmVhJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGlwYS10ZXh0YXJlYS1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbFwiIFtyZXF1aXJlZF09XCJjb2x1bW4ucmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwYXR0ZXJuRXJyb3JNc2ddPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4ucGF0dGVybkFyRXJyb3JNc2chIDogY29sdW1uLnBhdHRlcm5FbkVycm9yTXNnIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiY29sdW1uLmlucHV0Q2xhc3NlcyFcIiBbY29udGFpbmVyQ2xhc3Nlc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3NlcyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0FyYWJpY0Zvcm1dPVwiaXNBcmFiaWNGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8L2lwYS10ZXh0YXJlYS1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIERST1AgRE9XTiBMSVNUIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiPlxyXG4gICAgICAgICAgICAgICAgPGlwYS1kcm9wZG93bi1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbFwiIFtpdGVtc109XCJjb2x1bW4uZGF0YSFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cImNvbHVtbi52YWx1ZUZpZWxkIVwiIFt0ZXh0RmllbGRdPVwiY29sdW1uLnRleHRGaWVsZCFcIiBbcmVxdWlyZWRdPVwiY29sdW1uLnJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2VhcmNoYWJsZV09XCJjb2x1bW4uc2VhcmNoYWJsZSFcIiBbbm90Rm91bmRUZXh0XT1cImNvbHVtbi5ub3RGb3VuZFRleHQhXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJjb2x1bW4uaW5wdXRDbGFzc2VzIVwiIFtjb250YWluZXJDbGFzc2VzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzQXJhYmljRm9ybV09XCJpc0FyYWJpY0Zvcm1cIiBbZnJvbUdlbmVyYXRlRm9ybV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2lwYS1kcm9wZG93bi1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIENIRUNLQk9YIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWx9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtQXJyYXlOYW1lXT1cIidpdGVtcycrIGNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGdldEZvcm1Db250cm9scyhjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHt7Y29sdW1uLmlucHV0Q2xhc3Nlc319XCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWUrY29udHJvbC52YWx1ZVtjb2x1bW4udmFsdWVGaWVsZCFdXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrYm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lK2NvbnRyb2wudmFsdWVbY29sdW1uLnZhbHVlRmllbGQhXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb250cm9sLnZhbHVlW2NvbHVtbi50ZXh0RmllbGQhXX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRFcnJvck1lc3NhZ2UoY29sdW1uLmZvcm1Db250cm9sTmFtZSkgIT09IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2Vycm9yTXNnfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gUkFESU8gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidyYWRpbydcIiBbY2xhc3NdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXNcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbD57e2lzQXJhYmljRm9ybT8gY29sdW1uLmFyYWJpY0xhYmVsIDogY29sdW1uLmVuZ2xpc2hMYWJlbH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sdW1uLmRhdGE7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayB7e2NvbHVtbi5pbnB1dENsYXNzZXN9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWUraXRlbVtjb2x1bW4udmFsdWVGaWVsZCFdXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiIFt2YWx1ZV09XCJpdGVtW2NvbHVtbi50ZXh0RmllbGQhXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgW2Zvcl09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lK2l0ZW1bY29sdW1uLnZhbHVlRmllbGQhXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtW2NvbHVtbi50ZXh0RmllbGQhXX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgc3R5bGU9XCJkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRFcnJvck1lc3NhZ2UoY29sdW1uLmZvcm1Db250cm9sTmFtZSkgIT09IG51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2Vycm9yTXNnfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gRklMRSBVUExPQUQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidmaWxlJ1wiIFtjbGFzc109XCJjb2x1bW4uY29udGFpbmVyQ2xhc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgPGlwYS1maWxlLXVwbG9hZCBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiIFtsYWJlbF09XCJpc0FyYWJpY0Zvcm0/IGNvbHVtbi5hcmFiaWNMYWJlbCA6IGNvbHVtbi5lbmdsaXNoTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthY2NlcHRlZEZpbGVzXT1cImNvbHVtbi5hY2NlcHRlZEZpbGVzIVwiIFttdWx0aXBsZV09XCJjb2x1bW4ubXVsdGlwbGVGaWxlIVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heEZpbGVTaXplXT1cImNvbHVtbi5zaXplIVwiIFttZXRob2RdPVwiY29sdW1uLmFwaVVSbE1ldGhvZCFcIiBbYXV0b1VwbG9hZF09XCJjb2x1bW4uYXV0b1VwbG9hZEZpbGUhXCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBpVXJsXT1cImNvbHVtbi5hcGlVcmw/PyAnYXBpVXJsJyBcIiBbYXV0aG9yaXphdGlvbl09XCJjb2x1bW4uYXV0aG9yaXphdGlvbiFcIiBuZ0RlZmF1bHRDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb2x1bW4uZm9ybUNvbnRyb2xOYW1lXCIgKHN1Y2Nlc3NVcGxvYWQpPVwiU3VjY2Vzc1VwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZmlsZUFkZGVkKT1cIkZpbGVBZGRlZCgkZXZlbnQsIGNvbHVtbi5mb3JtQ29udHJvbE5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAoZmlsZURlbGV0ZWQpPVwiRmlsZURlbGV0ZWQoJGV2ZW50LCBjb2x1bW4uZm9ybUNvbnRyb2xOYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtZmlsZS11cGxvYWQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSByZWNhcHRjaGEgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidyZWNhcHRjaGEnXCIgW2NsYXNzXT1cImNvbHVtbi5jb250YWluZXJDbGFzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICA8aXBhLXJlY2FwdGNoYSBbcmVjYXB0Y2hhU2l6ZV09XCJyZWNhcHRjaGFTaXplXCIgW2xhbmddPVwiaXNBcmFiaWNGb3JtPyAnYXInOidlbidcIiBbdGhlbWVdPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWNhcHRjaGFUeXBlXT1cInJlY2FwdGNoYVR5cGVcIiBbdXNlR2xvYmFsRG9tYWluXT1cInVzZUdsb2JhbERvbWFpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3tjb2x1bW4uZm9ybUNvbnRyb2xOYW1lfX1cIj5cclxuICAgICAgICAgICAgICAgIDwvaXBhLXJlY2FwdGNoYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIERFRkFVTFQgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgIDxpcGEtdGV4dC1pbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbHVtbi5mb3JtQ29udHJvbE5hbWVcIiBbaWRdPVwiY29sdW1uLmZvcm1Db250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29sdW1uLnR5cGVcIiBbbGFiZWxdPVwiaXNBcmFiaWNGb3JtPyBjb2x1bW4uYXJhYmljTGFiZWwgOiBjb2x1bW4uZW5nbGlzaExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiY29sdW1uLnJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGF0dGVybkVycm9yTXNnXT1cImlzQXJhYmljRm9ybT8gY29sdW1uLnBhdHRlcm5BckVycm9yTXNnISA6IGNvbHVtbi5wYXR0ZXJuRW5FcnJvck1zZyFcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImNvbHVtbi5pbnB1dENsYXNzZXMhXCIgW2NvbnRhaW5lckNsYXNzZXNdPVwiY29sdW1uLmNvbnRhaW5lckNsYXNzZXMhXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNBcmFiaWNGb3JtXT1cImlzQXJhYmljRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9pcGEtdGV4dC1pbnB1dD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9mb3JtPiJdfQ==
@@ -1,5 +1,5 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { DropzoneDirective } from 'ngx-dropzone-wrapper';
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { DropzoneDirective, } from 'ngx-dropzone-wrapper';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "ngx-toastr";
5
5
  import * as i2 from "ngx-dropzone-wrapper";
@@ -9,6 +9,7 @@ export class FileUploadComponent {
9
9
  // private authService: AuthService,
10
10
  toastrService) {
11
11
  this.toastrService = toastrService;
12
+ this.isArabicForm = true;
12
13
  this.label = '';
13
14
  this.required = false;
14
15
  this.acceptedFiles = '';
@@ -26,7 +27,7 @@ export class FileUploadComponent {
26
27
  this.currentFiles = [];
27
28
  }
28
29
  ngOnInit() {
29
- this.label = 'رفع ' + this.label;
30
+ this.label = this.isArabicForm ? 'رفع ' : 'Upload ' + this.label;
30
31
  this.config = {
31
32
  url: this.apiUrl,
32
33
  method: this.method,
@@ -36,12 +37,19 @@ export class FileUploadComponent {
36
37
  maxFilesize: this.maxFileSize,
37
38
  maxFiles: this.multiple,
38
39
  uploadMultiple: this.multiple > 1,
39
- dictInvalidFileType: 'صيغة الملف غير مسموح بها',
40
- dictFileTooBig: 'الحجم تجاوز الحد المسموح',
41
- dictMaxFilesExceeded: 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من رفع هذا الملف',
40
+ dictInvalidFileType: this.isArabicForm
41
+ ? 'صيغة الملف غير مسموح بها'
42
+ : 'the file format is not allowed',
43
+ dictFileTooBig: this.isArabicForm
44
+ ? 'الحجم تجاوز الحد المسموح'
45
+ : `the file size must be less than or equal (${this.maxFileSize}) MB`,
46
+ dictMaxFilesExceeded: this.isArabicForm
47
+ ? 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من رفع هذا الملف'
48
+ : 'Please delete existing files to be able to upload this file',
42
49
  acceptedFiles: this.acceptedFiles,
43
50
  autoProcessQueue: this.autoUpload,
44
51
  previewTemplate: '<span></span>',
52
+ dictRemoveFile: '',
45
53
  };
46
54
  }
47
55
  operationCompleted(e) {
@@ -56,7 +64,10 @@ export class FileUploadComponent {
56
64
  if (file.status === 'success') {
57
65
  this.filesAdded.push(file);
58
66
  }
59
- this.toastrService.success('تم تحميل المرفقات بنجاح');
67
+ const message = this.isArabicForm
68
+ ? 'تم تحميل المرفقات بنجاح'
69
+ : 'Attachments uploaded successfully';
70
+ this.toastrService.success(message);
60
71
  }
61
72
  onUploadError(e) {
62
73
  if (e[1]) {
@@ -89,13 +100,15 @@ export class FileUploadComponent {
89
100
  }
90
101
  }
91
102
  FileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FileUploadComponent, deps: [{ token: i1.ToastrService }], target: i0.ɵɵFactoryTarget.Component });
92
- FileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FileUploadComponent, selector: "ipa-file-upload", inputs: { label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n \u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:\r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n \u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"], directives: [{ type: i2.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
103
+ FileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: FileUploadComponent, selector: "ipa-file-upload", inputs: { isArabicForm: "isArabicForm", label: "label", required: "required", acceptedFiles: "acceptedFiles", multiple: "multiple", maxFileSize: "maxFileSize", method: "method", autoUpload: "autoUpload", apiUrl: "apiUrl", authorization: "authorization" }, outputs: { successUpload: "successUpload", fileAdded: "fileAdded", fileDeleted: "fileDeleted" }, viewQueries: [{ propertyName: "dropzoneDir", first: true, predicate: DropzoneDirective, descendants: true }], ngImport: i0, template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? '\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:' : 'Allowed format:'}} \r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"], directives: [{ type: i2.DropzoneDirective, selector: "[dropzone]", inputs: ["disabled", "dropzone"], outputs: ["init", "error", "success", "sending", "canceled", "complete", "processing", "drop", "dragStart", "dragEnd", "dragEnter", "dragOver", "dragLeave", "thumbnail", "addedFile", "addedFiles", "removedFile", "uploadProgress", "maxFilesReached", "maxFilesExceeded", "errorMultiple", "successMultiple", "sendingMultiple", "canceledMultiple", "completeMultiple", "processingMultiple", "reset", "queueComplete", "totalUploadProgress"], exportAs: ["ngxDropzone"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
93
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: FileUploadComponent, decorators: [{
94
105
  type: Component,
95
- args: [{ selector: 'ipa-file-upload', template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n \u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:\r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n \u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"] }]
106
+ args: [{ selector: 'ipa-file-upload', template: "<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"required\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? '\u0642\u0645 \u0628\u0633\u062D\u0628 \u0627\u0644\u0645\u0644\u0641 \u0623\u0648 \u0627\u0636\u063A\u0637 \u0647\u0646\u0627' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0644\u0635\u064A\u063A\u0629 \u0627\u0644\u0645\u0633\u0645\u0648\u062D \u0628\u0647\u0627:' : 'Allowed format:'}} \r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? '\u0627\u0642\u0635\u0649 \u062D\u062C\u0645 \u0644\u0644\u0645\u0631\u0641\u0642:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>", styles: [".subtitle{border-bottom:none;display:block;line-height:2}.file-upload{border:dashed 1px #ccc;display:block;min-height:150px;border-radius:15px;width:350px;cursor:pointer;position:relative;margin:auto}.upload-overlay{position:absolute;width:100%;height:100%}.upload-btn-wrapper{text-align:center}.upload-icon{margin-right:5px}.list-unstyled{margin:10px!important;padding:14px!important;list-style:none}.allowed-extensions{color:#4d7297}.required{color:#dc3545;font-size:20px}\n"] }]
96
107
  }], ctorParameters: function () { return [{ type: i1.ToastrService }]; }, propDecorators: { dropzoneDir: [{
97
108
  type: ViewChild,
98
109
  args: [DropzoneDirective, { static: false }]
110
+ }], isArabicForm: [{
111
+ type: Input
99
112
  }], label: [{
100
113
  type: Input
101
114
  }], required: [{
@@ -121,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
121
134
  }], fileDeleted: [{
122
135
  type: Output
123
136
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBMkIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFPbEYsTUFBTSxPQUFPLG1CQUFtQjtJQXFCOUI7SUFDRSxvQ0FBb0M7SUFDNUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFwQjdCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkUsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxRQUFRLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFFdEIsZUFB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UyxDQUFDO0lBRXRCLFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQzFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUNwRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOztnSEFsR1UsbUJBQW1CO29HQUFuQixtQkFBbUIsdWFBQ25CLGlCQUFpQixnRENWOUIsMmpFQW9DTTsyRkQzQk8sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjtvR0FNM0IsV0FBVztzQkFEVixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBEcm9wem9uZUNvbmZpZ0ludGVyZmFjZSwgRHJvcHpvbmVEaXJlY3RpdmUgfSBmcm9tICduZ3gtZHJvcHpvbmUtd3JhcHBlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lwYS1maWxlLXVwbG9hZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKERyb3B6b25lRGlyZWN0aXZlLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBkcm9wem9uZURpciE6IERyb3B6b25lRGlyZWN0aXZlO1xyXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhY2NlcHRlZEZpbGVzID0gJyc7XHJcbiAgQElucHV0KCkgbXVsdGlwbGUgPSAxOyAvLyBzZXQgbWF4RmlsZXMgKE5PVCB1cGxvYWRNdWx0aXBsZSlpbiB0aGUgY29uZmlnIG9iamVjdCxcclxuICBASW5wdXQoKSBtYXhGaWxlU2l6ZSA9IDI7XHJcbiAgQElucHV0KCkgbWV0aG9kID0gJ1BPU1QnO1xyXG4gIEBJbnB1dCgpIGF1dG9VcGxvYWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhcGlVcmwgPSAnYXBpVXJsJztcclxuICBASW5wdXQoKSBhdXRob3JpemF0aW9uITogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBzdWNjZXNzVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZpbGVEZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRyYWdFbnRlciA9IGZhbHNlO1xyXG4gIGVycm9yczogc3RyaW5nW10gPSBbXTtcclxuICBjb25maWchOiBEcm9wem9uZUNvbmZpZ0ludGVyZmFjZTtcclxuICBmaWxlc0FkZGVkOiBGaWxlW10gPSBbXTtcclxuICBjdXJyZW50RmlsZXM6IEZpbGVbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGFiZWwgPSAn2LHZgdi5ICcgKyB0aGlzLmxhYmVsO1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIHVybDogdGhpcy5hcGlVcmwsXHJcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhvcml6YXRpb24sXHJcbiAgICAgIH0sXHJcbiAgICAgIG1heEZpbGVzaXplOiB0aGlzLm1heEZpbGVTaXplLFxyXG4gICAgICBtYXhGaWxlczogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgdXBsb2FkTXVsdGlwbGU6IHRoaXMubXVsdGlwbGUgPiAxLFxyXG4gICAgICBkaWN0SW52YWxpZEZpbGVUeXBlOiAn2LXZiti62Kkg2KfZhNmF2YTZgSDYutmK2LEg2YXYs9mF2YjYrSDYqNmH2KcnLFxyXG4gICAgICBkaWN0RmlsZVRvb0JpZzogJ9in2YTYrdis2YUg2KrYrNin2YjYsiDYp9mE2K3YryDYp9mE2YXYs9mF2YjYrScsXHJcbiAgICAgIGRpY3RNYXhGaWxlc0V4Y2VlZGVkOlxyXG4gICAgICAgICfYp9mE2LHYrNin2KEg2K3YsNmBINin2YTZhdmE2YHYp9iqINin2YTZhdmI2KzZiNiv2Kkg2K3Yp9mE2YrYpyDZhNiq2KrZhdmD2YYg2YXZhiDYsdmB2Lkg2YfYsNinINin2YTZhdmE2YEnLFxyXG4gICAgICBhY2NlcHRlZEZpbGVzOiB0aGlzLmFjY2VwdGVkRmlsZXMsXHJcbiAgICAgIGF1dG9Qcm9jZXNzUXVldWU6IHRoaXMuYXV0b1VwbG9hZCxcclxuICAgICAgcHJldmlld1RlbXBsYXRlOiAnPHNwYW4+PC9zcGFuPicsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb3BlcmF0aW9uQ29tcGxldGVkKGU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsZXNBZGRlZC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc3VjY2Vzc1VwbG9hZC5lbWl0KHRoaXMuZmlsZXNBZGRlZCk7XHJcbiAgICAgIHRoaXMuZmlsZXNBZGRlZCA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kcm9wem9uZURpci5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWRTdWNjZXNzKGU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgZmlsZSA9IGVbMF07XHJcbiAgICBpZiAoZmlsZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xyXG4gICAgICB0aGlzLmZpbGVzQWRkZWQucHVzaChmaWxlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2Vzcygn2KrZhSDYqtit2YXZitmEINin2YTZhdix2YHZgtin2Kog2KjZhtis2KfYrScpO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWRFcnJvcihlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChlWzFdKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goYCR7ZVsxXX0gKCR7ZVswXS5uYW1lfSlgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbGVXYXNBZGRlZChlOiBGaWxlKTogdm9pZCB7XHJcbiAgICBjb25zdCBteURyb3B6b25lID0gdGhpcy5kcm9wem9uZURpci5kcm9wem9uZSgpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgPT09IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RmlsZXMgPSBbXTtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIGNvbnN0IGZpbGVzID0gbXlEcm9wem9uZS5maWxlcztcclxuICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBteURyb3B6b25lLnJlbW92ZUZpbGUoZmlsZXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRGaWxlcy5wdXNoKGUpO1xyXG4gICAgdGhpcy5maWxlQWRkZWQuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIHNlbmRpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoZTogYW55KTogdm9pZCB7fVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50RmlsZXMgPSB0aGlzLmN1cnJlbnRGaWxlcy5maWx0ZXIoXHJcbiAgICAgICh4KSA9PiB4Lm5hbWUgIT09IGZpbGUubmFtZSAmJiB4LnNpemUgIT09IGZpbGUuc2l6ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICB0aGlzLmZpbGVEZWxldGVkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLW92ZXJsYXlcIiBbZHJvcHpvbmVdPVwiY29uZmlnXCIgKGVycm9yKT1cIm9uVXBsb2FkRXJyb3IoJGV2ZW50KVwiXHJcbiAgICAgICAgKHF1ZXVlQ29tcGxldGUpPVwib3BlcmF0aW9uQ29tcGxldGVkKCRldmVudClcIiAoc3VjY2Vzcyk9XCJvblVwbG9hZFN1Y2Nlc3MoJGV2ZW50KVwiIChkcmFnZW50ZXIpPVwiZHJhZ0VudGVyID0gdHJ1ZVwiXHJcbiAgICAgICAgKGRyYWdMZWF2ZSk9XCJkcmFnRW50ZXIgPSBmYWxzZVwiIChkcm9wKT1cImRyYWdFbnRlciA9IGZhbHNlXCIgKGRyYWdFbmQpPVwiZHJhZ0VudGVyID0gZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmUtYm9yZGVyXT1cImRyYWdFbnRlclwiIChzZW5kaW5nKT1cInNlbmRpbmcoJGV2ZW50KVwiIChyZXNldCk9XCJyZXNldCgkZXZlbnQpXCJcclxuICAgICAgICAoYWRkZWRGaWxlKT1cImZpbGVXYXNBZGRlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtYnRuLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPtmC2YUg2KjYs9it2Kgg2KfZhNmF2YTZgSDYo9mIINin2LbYuti3INmH2YbYpzwvc3Bhbj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdXBsb2FkIHVwbG9hZC1pY29uIG1yLTJcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFjY2VwdGVkRmlsZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYWxsb3dlZC1leHRlbnNpb25zXCI+XHJcbiAgICAgICAgICAgINin2YTYtdmK2LrYqSDYp9mE2YXYs9mF2YjYrSDYqNmH2Kc6XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXh0ZW5zaW9uc1wiPnt7IGFjY2VwdGVkRmlsZXMgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFsbG93ZWQtZXh0ZW5zaW9uc1wiPlxyXG4gICAgICAgICAgICDYp9mC2LXZiSDYrdis2YUg2YTZhNmF2LHZgdmCOlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4dGVuc2lvbnNcIj57eyBtYXhGaWxlU2l6ZSB9fSBNQjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBpZD1cImF0dGFjaG1lbnQtc3RhdHVzXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IG1hcmdpbi10b3A6MTBweDtcIj5cclxuICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4OyBtYXJnaW46IGF1dG87IGZvbnQtd2VpZ2h0OmJvbGQ7XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgY3VycmVudEZpbGVzXCI+XHJcbiAgICAgICAge3sgZmlsZS5uYW1lIH19IDxpIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUpXCIgY2xhc3M9XCJmYXMgZmEtdHJhc2hcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImNvbG9yOmZpcmVicmljazsgY3Vyc29yOiBwb2ludGVyO1wiPjwvaT5cclxuICAgICAgICA8YnI+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwidGV4dC1kYW5nZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIiAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyb3JzXCI+e3tlcnJvcn19PC9saT5cclxuICAgIDwvdWw+XHJcbjwvZGl2PiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9pcGEtZm9ybS9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1pcGEtbGlicmFyeS9zcmMvbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFPOUIsTUFBTSxPQUFPLG1CQUFtQjtJQXNCOUI7SUFDRSxvQ0FBb0M7SUFDNUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFyQjdCLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDdkUsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFdBQU0sR0FBRyxRQUFRLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9CLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFdB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QXJCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7XHJcbiAgRHJvcHpvbmVDb25maWdJbnRlcmZhY2UsXHJcbiAgRHJvcHpvbmVEaXJlY3RpdmUsXHJcbn0gZnJvbSAnbmd4LWRyb3B6b25lLXdyYXBwZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpcGEtZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoRHJvcHpvbmVEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGRyb3B6b25lRGlyITogRHJvcHpvbmVEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgaXNBcmFiaWNGb3JtID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWNjZXB0ZWRGaWxlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gMTsgLy8gc2V0IG1heEZpbGVzIChOT1QgdXBsb2FkTXVsdGlwbGUpaW4gdGhlIGNvbmZpZyBvYmplY3QsXHJcbiAgQElucHV0KCkgbWF4RmlsZVNpemUgPSAyO1xyXG4gIEBJbnB1dCgpIG1ldGhvZCA9ICdQT1NUJztcclxuICBASW5wdXQoKSBhdXRvVXBsb2FkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYXBpVXJsID0gJ2FwaVVybCc7XHJcbiAgQElucHV0KCkgYXV0aG9yaXphdGlvbiE6IHN0cmluZztcclxuICBAT3V0cHV0KCkgc3VjY2Vzc1VwbG9hZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlRGVsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBkcmFnRW50ZXIgPSBmYWxzZTtcclxuICBlcnJvcnM6IHN0cmluZ1tdID0gW107XHJcbiAgY29uZmlnITogRHJvcHpvbmVDb25maWdJbnRlcmZhY2U7XHJcbiAgZmlsZXNBZGRlZDogRmlsZVtdID0gW107XHJcbiAgY3VycmVudEZpbGVzOiBGaWxlW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhYmVsID0gdGhpcy5pc0FyYWJpY0Zvcm0gPyAn2LHZgdi5ICcgOiAnVXBsb2FkICcgKyB0aGlzLmxhYmVsO1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIHVybDogdGhpcy5hcGlVcmwsXHJcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcgKyB0aGlzLmF1dGhvcml6YXRpb24sXHJcbiAgICAgIH0sXHJcbiAgICAgIG1heEZpbGVzaXplOiB0aGlzLm1heEZpbGVTaXplLFxyXG4gICAgICBtYXhGaWxlczogdGhpcy5tdWx0aXBsZSxcclxuICAgICAgdXBsb2FkTXVsdGlwbGU6IHRoaXMubXVsdGlwbGUgPiAxLFxyXG4gICAgICBkaWN0SW52YWxpZEZpbGVUeXBlOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9i12YrYutipINin2YTZhdmE2YEg2LrZitixINmF2LPZhdmI2K0g2KjZh9inJ1xyXG4gICAgICAgIDogJ3RoZSBmaWxlIGZvcm1hdCBpcyBub3QgYWxsb3dlZCcsXHJcbiAgICAgIGRpY3RGaWxlVG9vQmlnOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9in2YTYrdis2YUg2KrYrNin2YjYsiDYp9mE2K3YryDYp9mE2YXYs9mF2YjYrSdcclxuICAgICAgICA6IGB0aGUgZmlsZSBzaXplIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsICgke3RoaXMubWF4RmlsZVNpemV9KSBNQmAsXHJcbiAgICAgIGRpY3RNYXhGaWxlc0V4Y2VlZGVkOiB0aGlzLmlzQXJhYmljRm9ybVxyXG4gICAgICAgID8gJ9in2YTYsdis2KfYoSDYrdiw2YEg2KfZhNmF2YTZgdin2Kog2KfZhNmF2YjYrNmI2K/YqSDYrdin2YTZitinINmE2KrYqtmF2YPZhiDZhdmGINix2YHYuSDZh9iw2Kcg2KfZhNmF2YTZgSdcclxuICAgICAgICA6ICdQbGVhc2UgZGVsZXRlIGV4aXN0aW5nIGZpbGVzIHRvIGJlIGFibGUgdG8gdXBsb2FkIHRoaXMgZmlsZScsXHJcbiAgICAgIGFjY2VwdGVkRmlsZXM6IHRoaXMuYWNjZXB0ZWRGaWxlcyxcclxuICAgICAgYXV0b1Byb2Nlc3NRdWV1ZTogdGhpcy5hdXRvVXBsb2FkLFxyXG4gICAgICBwcmV2aWV3VGVtcGxhdGU6ICc8c3Bhbj48L3NwYW4+JyxcclxuICAgICAgZGljdFJlbW92ZUZpbGU6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9wZXJhdGlvbkNvbXBsZXRlZChlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbGVzQWRkZWQubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnN1Y2Nlc3NVcGxvYWQuZW1pdCh0aGlzLmZpbGVzQWRkZWQpO1xyXG4gICAgICB0aGlzLmZpbGVzQWRkZWQgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuZHJvcHpvbmVEaXIucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIG9uVXBsb2FkU3VjY2VzcyhlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbGUgPSBlWzBdO1xyXG4gICAgaWYgKGZpbGUuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkLnB1c2goZmlsZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5pc0FyYWJpY0Zvcm1cclxuICAgICAgPyAn2KrZhSDYqtit2YXZitmEINin2YTZhdix2YHZgtin2Kog2KjZhtis2KfYrSdcclxuICAgICAgOiAnQXR0YWNobWVudHMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5JztcclxuICAgIHRoaXMudG9hc3RyU2VydmljZS5zdWNjZXNzKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25VcGxvYWRFcnJvcihlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChlWzFdKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzLnB1c2goYCR7ZVsxXX0gKCR7ZVswXS5uYW1lfSlgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbGVXYXNBZGRlZChlOiBGaWxlKTogdm9pZCB7XHJcbiAgICBjb25zdCBteURyb3B6b25lID0gdGhpcy5kcm9wem9uZURpci5kcm9wem9uZSgpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgPT09IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RmlsZXMgPSBbXTtcclxuICAgICAgdGhpcy5maWxlc0FkZGVkID0gW107XHJcbiAgICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICAgIGNvbnN0IGZpbGVzID0gbXlEcm9wem9uZS5maWxlcztcclxuICAgICAgaWYgKGZpbGVzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBteURyb3B6b25lLnJlbW92ZUZpbGUoZmlsZXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRGaWxlcy5wdXNoKGUpO1xyXG4gICAgdGhpcy5maWxlQWRkZWQuZW1pdChlKTtcclxuICB9XHJcblxyXG4gIHNlbmRpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVycm9ycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoZTogYW55KTogdm9pZCB7fVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50RmlsZXMgPSB0aGlzLmN1cnJlbnRGaWxlcy5maWx0ZXIoXHJcbiAgICAgICh4KSA9PiB4Lm5hbWUgIT09IGZpbGUubmFtZSAmJiB4LnNpemUgIT09IGZpbGUuc2l6ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZXJyb3JzID0gW107XHJcbiAgICB0aGlzLmZpbGVEZWxldGVkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLW92ZXJsYXlcIiBbZHJvcHpvbmVdPVwiY29uZmlnXCIgKGVycm9yKT1cIm9uVXBsb2FkRXJyb3IoJGV2ZW50KVwiXHJcbiAgICAgICAgKHF1ZXVlQ29tcGxldGUpPVwib3BlcmF0aW9uQ29tcGxldGVkKCRldmVudClcIiAoc3VjY2Vzcyk9XCJvblVwbG9hZFN1Y2Nlc3MoJGV2ZW50KVwiIChkcmFnZW50ZXIpPVwiZHJhZ0VudGVyID0gdHJ1ZVwiXHJcbiAgICAgICAgKGRyYWdMZWF2ZSk9XCJkcmFnRW50ZXIgPSBmYWxzZVwiIChkcm9wKT1cImRyYWdFbnRlciA9IGZhbHNlXCIgKGRyYWdFbmQpPVwiZHJhZ0VudGVyID0gZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5hY3RpdmUtYm9yZGVyXT1cImRyYWdFbnRlclwiIChzZW5kaW5nKT1cInNlbmRpbmcoJGV2ZW50KVwiIChyZXNldCk9XCJyZXNldCgkZXZlbnQpXCJcclxuICAgICAgICAoYWRkZWRGaWxlKT1cImZpbGVXYXNBZGRlZCgkZXZlbnQpXCI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtYnRuLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAge3tsYWJlbH19XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPnt7aXNBcmFiaWNGb3JtPyAn2YLZhSDYqNiz2K3YqCDYp9mE2YXZhNmBINij2Ygg2KfYtti62Lcg2YfZhtinJyA6ICdkcmFnIG9yIGNsaWNrIGhlcmUnfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXVwbG9hZCB1cGxvYWQtaWNvbiBtci0yXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhY2NlcHRlZEZpbGVzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImFsbG93ZWQtZXh0ZW5zaW9uc1wiPlxyXG4gICAgICAgICAgIHt7aXNBcmFiaWNGb3JtPyAn2KfZhNi12YrYutipINin2YTZhdiz2YXZiNitINio2YfYpzonIDogJ0FsbG93ZWQgZm9ybWF0Oid9fSBcclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRlbnNpb25zXCI+e3sgYWNjZXB0ZWRGaWxlcyB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxsb3dlZC1leHRlbnNpb25zXCI+XHJcbiAgICAgICAgICAgIHt7aXNBcmFiaWNGb3JtPyAn2KfZgti12Ykg2K3YrNmFINmE2YTZhdix2YHZgjonIDogJ0F0dGFjaG1lbnQgU2l6ZTonfX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHRlbnNpb25zXCI+e3sgbWF4RmlsZVNpemUgfX0gTUI8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgaWQ9XCJhdHRhY2htZW50LXN0YXR1c1wiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7XCI+XHJcbiAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDsgbWFyZ2luOiBhdXRvOyBmb250LXdlaWdodDpib2xkO1wiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGN1cnJlbnRGaWxlc1wiPlxyXG4gICAgICAgIHt7IGZpbGUubmFtZSB9fSA8aSAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlKVwiIGNsYXNzPVwiZmFzIGZhLXRyYXNoXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjpmaXJlYnJpY2s7IGN1cnNvcjogcG9pbnRlcjtcIj48L2k+XHJcbiAgICAgICAgPGJyPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInRleHQtZGFuZ2VyXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCIgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9yc1wiPnt7ZXJyb3J9fTwvbGk+XHJcbiAgICA8L3VsPlxyXG48L2Rpdj4iXX0=
@@ -26,9 +26,10 @@ export * from './lib/core/interceptors/token.interceptor';
26
26
  export * from './lib/core/interceptors/myIPAToken.interceptor';
27
27
  // services
28
28
  export * from './lib/core/services/loader.service';
29
+ export * from './lib/core/services/error.service';
30
+ export * from './lib/core/services/token.service';
29
31
  export * from './lib/core/services/auth.service';
30
32
  export * from './lib/ipa-form/ipa-form.service';
31
- export * from './lib/core/services/error.service';
32
33
  export * from './lib/services/breadcrumbs.service';
33
34
  export * from './lib/services/common.service';
34
35
  //pipes
@@ -38,4 +39,4 @@ export * from './lib/models/pagedResult';
38
39
  export * from './lib/models/apiException';
39
40
  export * from './lib/models/apiResponse';
40
41
  export * from './lib/models/generateForm.model';
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsU0FBUztBQUNULGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsa0JBQWtCO0FBQ2xCLGNBQWMsaURBQWlELENBQUM7QUFFaEUsa0JBQWtCO0FBQ2xCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx1RUFBdUUsQ0FBQztBQUN0RixjQUFjLCtFQUErRSxDQUFDO0FBQzlGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGVBQWU7QUFDZixjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELFdBQVc7QUFDWCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxPQUFPO0FBQ1AsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxRQUFRO0FBQ1IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpcGEtbGlicmFyeVxyXG4gKi9cclxuLy8gbW9kdWxlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWlwYS1saWJyYXJ5Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJ25neC10b2FzdHInO1xyXG5leHBvcnQgKiBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24ubW9kdWxlJztcclxuXHJcbi8vIGNvcmUgY29tcG9uZW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcblxyXG4vLyBmb3JtIGNvbXBvbmVudHNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2Ryb3Bkb3duLWlucHV0L2Ryb3Bkb3duLWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZ3JlZ29yaWFuLWRhdGVwaWNrZXIvZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nZW5lcmF0ZS1mb3JtL2dlbmVyYXRlLWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuLy8gaW50ZXJjZXB0b3JzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvaW50ZXJjZXB0b3JzL2xvYWRpbmcuaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL2ludGVyY2VwdG9ycy9lcnJvci5pbnRlcmNlcHRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvaW50ZXJjZXB0b3JzL3Rva2VuLmludGVyY2VwdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9pbnRlcmNlcHRvcnMvbXlJUEFUb2tlbi5pbnRlcmNlcHRvcic7XHJcblxyXG4vLyBzZXJ2aWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pcGEtZm9ybS9pcGEtZm9ybS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9lcnJvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYnJlYWRjcnVtYnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuXHJcbi8vcGlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvaGlqcmktZGF0ZS5waXBlJztcclxuXHJcbi8vbW9kZWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wYWdlZFJlc3VsdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcGlFeGNlcHRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBpUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVGb3JtLm1vZGVsJztcclxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsU0FBUztBQUNULGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsa0JBQWtCO0FBQ2xCLGNBQWMsaURBQWlELENBQUM7QUFFaEUsa0JBQWtCO0FBQ2xCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx1RUFBdUUsQ0FBQztBQUN0RixjQUFjLCtFQUErRSxDQUFDO0FBQzlGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGVBQWU7QUFDZixjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELFdBQVc7QUFDWCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLE9BQU87QUFDUCxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLFFBQVE7QUFDUixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGlwYS1saWJyYXJ5XHJcbiAqL1xyXG4vLyBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmctaXBhLWxpYnJhcnkubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnbmd4LXRvYXN0cic7XHJcbmV4cG9ydCAqIGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvcGlwZXMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5tb2R1bGUnO1xyXG5cclxuLy8gY29yZSBjb21wb25lbnRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuXHJcbi8vIGZvcm0gY29tcG9uZW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pcGEtZm9ybS90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vdGV4dGFyZWEtaW5wdXQvdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vZHJvcGRvd24taW5wdXQvZHJvcGRvd24taW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vZGF0ZXBpY2tlci9ncmVnb3JpYW4tZGF0ZXBpY2tlci9ncmVnb3JpYW4tZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pcGEtZm9ybS9yZWNhcHRjaGEvcmVjYXB0Y2hhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dlbmVyYXRlLWZvcm0vZ2VuZXJhdGUtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZS1idXR0b24vc2hhcmUtYnV0dG9uLmNvbXBvbmVudCc7XHJcblxyXG4vLyBpbnRlcmNlcHRvcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9pbnRlcmNlcHRvcnMvbG9hZGluZy5pbnRlcmNlcHRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvaW50ZXJjZXB0b3JzL2Vycm9yLmludGVyY2VwdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9pbnRlcmNlcHRvcnMvdG9rZW4uaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL2ludGVyY2VwdG9ycy9teUlQQVRva2VuLmludGVyY2VwdG9yJztcclxuXHJcbi8vIHNlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvbG9hZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2Vycm9yLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL3Rva2VuLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2lwYS1mb3JtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9icmVhZGNydW1icy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xyXG5cclxuLy9waXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9oaWpyaS1kYXRlLnBpcGUnO1xyXG5cclxuLy9tb2RlbHNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3BhZ2VkUmVzdWx0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2FwaUV4Y2VwdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcGlSZXNwb25zZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZUZvcm0ubW9kZWwnO1xyXG4iXX0=