jconsumer-shared 0.0.3 → 1.0.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.
Files changed (85) hide show
  1. package/esm2022/lib/account-service.mjs +156 -7
  2. package/esm2022/lib/auth-service.mjs +9 -1
  3. package/esm2022/lib/booking-service.mjs +480 -0
  4. package/esm2022/lib/common.service.mjs +155 -5
  5. package/esm2022/lib/confirm/confirm-box.component.mjs +159 -0
  6. package/esm2022/lib/confirm/confirm-box.module.mjs +62 -0
  7. package/esm2022/lib/consumer-service.mjs +780 -0
  8. package/esm2022/lib/currency-service.mjs +12 -0
  9. package/esm2022/lib/environment.service.mjs +23 -0
  10. package/esm2022/lib/error-message.module.mjs +23 -0
  11. package/esm2022/lib/file-service.mjs +23 -17
  12. package/esm2022/lib/form-message/field-error-display/field-error-display.component.mjs +21 -0
  13. package/esm2022/lib/form-message/form-message-display.module.mjs +35 -0
  14. package/esm2022/lib/form-message/form-message-display.service.mjs +44 -0
  15. package/esm2022/lib/form-message/form-success-display/form-success-display.component.mjs +18 -0
  16. package/esm2022/lib/injector-resolver.mjs +28 -0
  17. package/esm2022/lib/media-service.mjs +49 -0
  18. package/esm2022/lib/order.service.mjs +16 -1
  19. package/esm2022/lib/payment/modes/payment-modes.component.mjs +35 -0
  20. package/esm2022/lib/payment/modes/payment-modes.module.mjs +24 -0
  21. package/esm2022/lib/payment/payment.module.mjs +26 -0
  22. package/esm2022/lib/paytm.service.mjs +131 -0
  23. package/esm2022/lib/phone-input/phone-input.component.mjs +48 -44
  24. package/esm2022/lib/pipes/autolink/autolink.module.mjs +20 -0
  25. package/esm2022/lib/pipes/date-format/date-format.module.mjs +19 -0
  26. package/esm2022/lib/pipes/date-format/date-format.pipe.mjs +42 -0
  27. package/esm2022/lib/project-constants.mjs +310 -0
  28. package/esm2022/lib/questionaire/edit/questionnaire.component.mjs +20 -15
  29. package/esm2022/lib/questionaire/edit/questionnaire.module.mjs +5 -4
  30. package/esm2022/lib/razorpay.service.mjs +157 -0
  31. package/esm2022/lib/request-dialog/request-dialog.component.mjs +29 -0
  32. package/esm2022/lib/request-dialog/request-dialog.module.mjs +24 -0
  33. package/esm2022/lib/shared-account.guard.mjs +41 -0
  34. package/esm2022/lib/shared-account.resolver.mjs +22 -0
  35. package/esm2022/lib/shared.service.mjs +85 -10
  36. package/esm2022/lib/showuploadfile/showuploadfile.component.mjs +3 -3
  37. package/esm2022/lib/theme.service.mjs +30 -0
  38. package/esm2022/lib/timezone-converter.mjs +49 -0
  39. package/esm2022/lib/toast.service.mjs +2 -2
  40. package/esm2022/lib/twilio-service.mjs +466 -0
  41. package/esm2022/public-api.mjs +32 -1
  42. package/fesm2022/jconsumer-shared.mjs +3852 -398
  43. package/fesm2022/jconsumer-shared.mjs.map +1 -1
  44. package/jconsumer-shared-1.0.0.tgz +0 -0
  45. package/lib/account-service.d.ts +41 -2
  46. package/lib/auth-service.d.ts +1 -0
  47. package/lib/booking-service.d.ts +101 -0
  48. package/lib/common.service.d.ts +12 -1
  49. package/lib/confirm/confirm-box.component.d.ts +43 -0
  50. package/lib/confirm/confirm-box.module.d.ts +16 -0
  51. package/lib/consumer-service.d.ts +178 -0
  52. package/lib/currency-service.d.ts +4 -0
  53. package/lib/environment.service.d.ts +9 -0
  54. package/lib/error-message.module.d.ts +7 -0
  55. package/lib/file-service.d.ts +5 -2
  56. package/lib/form-message/field-error-display/field-error-display.component.d.ts +8 -0
  57. package/lib/form-message/form-message-display.module.d.ts +10 -0
  58. package/lib/form-message/form-message-display.service.d.ts +13 -0
  59. package/lib/form-message/form-success-display/form-success-display.component.d.ts +7 -0
  60. package/lib/injector-resolver.d.ts +2 -0
  61. package/lib/media-service.d.ts +9 -0
  62. package/lib/order.service.d.ts +4 -0
  63. package/lib/payment/modes/payment-modes.component.d.ts +15 -0
  64. package/lib/payment/modes/payment-modes.module.d.ts +9 -0
  65. package/lib/payment/payment.module.d.ts +7 -0
  66. package/lib/paytm.service.d.ts +13 -0
  67. package/lib/phone-input/phone-input.component.d.ts +5 -3
  68. package/lib/pipes/autolink/autolink.module.d.ts +8 -0
  69. package/lib/pipes/date-format/date-format.module.d.ts +8 -0
  70. package/lib/pipes/date-format/date-format.pipe.d.ts +12 -0
  71. package/lib/project-constants.d.ts +227 -0
  72. package/lib/questionaire/edit/questionnaire.component.d.ts +4 -1
  73. package/lib/questionaire/edit/questionnaire.module.d.ts +3 -2
  74. package/lib/razorpay.service.d.ts +26 -0
  75. package/lib/request-dialog/request-dialog.component.d.ts +11 -0
  76. package/lib/request-dialog/request-dialog.module.d.ts +9 -0
  77. package/lib/shared-account.guard.d.ts +11 -0
  78. package/lib/shared-account.resolver.d.ts +10 -0
  79. package/lib/shared.service.d.ts +31 -4
  80. package/lib/theme.service.d.ts +10 -0
  81. package/lib/timezone-converter.d.ts +8 -0
  82. package/lib/twilio-service.d.ts +60 -0
  83. package/package.json +1 -1
  84. package/public-api.d.ts +31 -0
  85. package/jconsumer-shared-0.0.3.tgz +0 -0
@@ -0,0 +1,12 @@
1
+ import { Injectable } from "@angular/core";
2
+ Injectable({
3
+ providedIn: 'root'
4
+ });
5
+ export class CurrencyService {
6
+ constructor() {
7
+ }
8
+ print_PricewithCurrency(price) {
9
+ return '₹' + ' ' + price.toFixed(2);
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9jdXJyZW5jeS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsVUFBVSxDQUFDO0lBQ1AsVUFBVSxFQUFFLE1BQU07Q0FDckIsQ0FBQyxDQUFBO0FBRUYsTUFBTSxPQUFPLGVBQWU7SUFFeEI7SUFDQSxDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBVTtRQUM5QixPQUFPLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIH1cclxuXHJcbiAgICBwcmludF9QcmljZXdpdGhDdXJyZW5jeShwcmljZTogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuICfDouKAmsK5JyArICcgJyArIHByaWNlLnRvRml4ZWQoMik7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class EnvironmentService {
4
+ constructor() { }
5
+ environment = {};
6
+ // Set environment variables dynamically
7
+ setEnvironment(environment) {
8
+ this.environment = environment;
9
+ }
10
+ // Get environment variable by key
11
+ getEnvironment(key) {
12
+ return this.environment[key];
13
+ }
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: EnvironmentService, providedIn: 'root' });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: EnvironmentService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }], ctorParameters: () => [] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9lbnZpcm9ubWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsZ0JBQWdCLENBQUM7SUFFVCxXQUFXLEdBQVEsRUFBRSxDQUFDO0lBRTlCLHdDQUF3QztJQUN4QyxjQUFjLENBQUMsV0FBZ0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztJQUVDLGtDQUFrQztJQUNsQyxjQUFjLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt1R0FkVSxrQkFBa0I7MkdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnRTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudDogYW55ID0ge307XHJcblxyXG4gIC8vIFNldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZHluYW1pY2FsbHlcclxuICBzZXRFbnZpcm9ubWVudChlbnZpcm9ubWVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVudmlyb25tZW50ID0gZW52aXJvbm1lbnQ7XHJcbn1cclxuXHJcbiAgLy8gR2V0IGVudmlyb25tZW50IHZhcmlhYmxlIGJ5IGtleVxyXG4gIGdldEVudmlyb25tZW50KGtleTogc3RyaW5nKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50W2tleV07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ErrorMessagingService } from './error-message.service';
4
+ import * as i0 from "@angular/core";
5
+ export class ErrrorMessageModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ErrrorMessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: ErrrorMessageModule, imports: [CommonModule] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ErrrorMessageModule, providers: [
9
+ ErrorMessagingService
10
+ ], imports: [CommonModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ErrrorMessageModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [],
16
+ imports: [CommonModule],
17
+ exports: [],
18
+ providers: [
19
+ ErrorMessagingService
20
+ ]
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvZXJyb3ItbWVzc2FnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBWWhFLE1BQU0sT0FBTyxtQkFBbUI7dUdBQW5CLG1CQUFtQjt3R0FBbkIsbUJBQW1CLFlBTm5CLFlBQVk7d0dBTVosbUJBQW1CLGFBSm5CO1lBQ1QscUJBQXFCO1NBQ3RCLFlBSlUsWUFBWTs7MkZBTVosbUJBQW1CO2tCQVIvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBRSxZQUFZLENBQUU7b0JBQ3pCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRTt3QkFDVCxxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdpbmdTZXJ2aWNlIH0gZnJvbSAnLi9lcnJvci1tZXNzYWdlLnNlcnZpY2UnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW10sXHJcbiAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgXSxcclxuICBleHBvcnRzOiBbXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEVycm9yTWVzc2FnaW5nU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVycnJvck1lc3NhZ2VNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -1,9 +1,11 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ import * as i1 from "./shared.service";
3
4
  /**
4
5
  *
5
6
  */
6
7
  export class FileService {
8
+ sharedService;
7
9
  // Supported images types
8
10
  IMAGE_FORMATS = [
9
11
  'image/gif',
@@ -33,9 +35,13 @@ export class FileService {
33
35
  'docx',
34
36
  'doc'
35
37
  ];
38
+ cdnPath = '';
36
39
  imageSize = 15000000;
37
40
  FILE_MAX_SIZE = 10000000;
38
- constructor() { }
41
+ constructor(sharedService) {
42
+ this.sharedService = sharedService;
43
+ this.cdnPath = this.sharedService.getCDNPath();
44
+ }
39
45
  /**
40
46
  * Method returns supported formats of files which has to be uploaded
41
47
  * @param source image/file
@@ -101,22 +107,22 @@ export class FileService {
101
107
  // console.log("File Name :", file.name.includes('docx'))
102
108
  if (file.type) {
103
109
  if (file.type == 'application/pdf') {
104
- return './assets/images/pdf.png';
110
+ return (this.cdnPath + 'assets/images/pdf.png');
105
111
  }
106
112
  else if (file.type == 'application/vnd.ms-excel' || file.type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
107
- return './assets/images/xls.png';
113
+ return (this.cdnPath + 'assets/images/xls.png');
108
114
  }
109
115
  else if (file.type == 'audio/mp3' || file.type == 'audio/mpeg' || file.type == 'audio/ogg') {
110
- return './assets/images/audio.png';
116
+ return (this.cdnPath + 'assets/images/audio.png');
111
117
  }
112
118
  else if (file.type == 'video/mp4' || file.type == 'video/mpeg') {
113
- return './assets/images/video.png';
119
+ return (this.cdnPath + 'assets/images/video.png');
114
120
  }
115
121
  else if (file.type == 'application/msword' || file.type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || file.type.includes('docx') || file.type.includes('doc')) {
116
- return './assets/images/ImgeFileIcon/wordDocsBgWhite.jpg';
122
+ return (this.cdnPath + 'assets/images/ImgeFileIcon/wordDocsBgWhite.jpg');
117
123
  }
118
124
  else if (file.type.includes('txt')) {
119
- return './assets/images/ImgeFileIcon/docTxt.png';
125
+ return (this.cdnPath + 'assets/images/ImgeFileIcon/docTxt.png');
120
126
  }
121
127
  else {
122
128
  return url;
@@ -126,25 +132,25 @@ export class FileService {
126
132
  }
127
133
  getImageByType(type) {
128
134
  if (type == 'pdf') {
129
- return './assets/images/pdf.png';
135
+ return (this.cdnPath + 'assets/images/pdf.png');
130
136
  }
131
137
  else if (type == 'vnd.ms-excel' || type == 'vnd.openxmlformats-officedocument.spreadsheetml.sheet' || type == 'xls' || type == 'xlsx') {
132
- return './assets/images/xls.png';
138
+ return (this.cdnPath + 'assets/images/xls.png');
133
139
  }
134
140
  else if (type == 'mp3' || type == 'mpeg' || type == 'ogg') {
135
- return './assets/images/audio.png';
141
+ return (this.cdnPath + 'assets/images/audio.png');
136
142
  }
137
143
  else if (type == 'mp4' || type == 'mpeg') {
138
- return './assets/images/video.png';
144
+ return (this.cdnPath + 'assets/images/video.png');
139
145
  }
140
146
  else if (type == 'application/msword' || type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || type == 'docx' || type == 'doc' || type == 'msword') {
141
- return './assets/images/ImgeFileIcon/wordDocsBgWhite.jpg';
147
+ return (this.cdnPath + 'assets/images/ImgeFileIcon/wordDocsBgWhite.jpg');
142
148
  }
143
149
  else if (type == 'txt') {
144
- return './assets/images/ImgeFileIcon/docTxt.png';
150
+ return (this.cdnPath + 'assets/images/ImgeFileIcon/docTxt.png');
145
151
  }
146
152
  else {
147
- return './assets/images/img_uplod.png';
153
+ return (this.cdnPath + 'assets/images/img_uplod.png');
148
154
  }
149
155
  }
150
156
  filesSelected(event, selectedMessage) {
@@ -217,7 +223,7 @@ export class FileService {
217
223
  }
218
224
  });
219
225
  }
220
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
226
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileService, deps: [{ token: i1.SharedService }], target: i0.ɵɵFactoryTarget.Injectable });
221
227
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileService, providedIn: 'root' });
222
228
  }
223
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FileService, decorators: [{
@@ -225,5 +231,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
225
231
  args: [{
226
232
  providedIn: 'root'
227
233
  }]
228
- }], ctorParameters: () => [] });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvamNvbnN1bWVyLXNoYXJlZC9zcmMvbGliL2ZpbGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQzs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBQ3RCLHlCQUF5QjtJQUN6QixhQUFhLEdBQUc7UUFDZCxXQUFXO1FBQ1gsV0FBVztRQUNYLFlBQVk7UUFDWixXQUFXO1FBQ1gsWUFBWTtLQUNiLENBQUM7SUFFRixnQkFBZ0IsR0FBRztRQUNqQixXQUFXO1FBQ1gsV0FBVztRQUNYLFlBQVk7UUFDWixXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsWUFBWTtRQUNaLFlBQVk7UUFDWixXQUFXO1FBQ1gsV0FBVztRQUNYLDBCQUEwQjtRQUMxQixtRUFBbUU7UUFDbkUsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIseUVBQXlFO1FBQ3pFLE1BQU07UUFDTixLQUFLO0tBQ04sQ0FBQztJQUVGLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDckIsYUFBYSxHQUFHLFFBQVEsQ0FBQztJQUN6QixnQkFBZ0IsQ0FBQztJQUVqQjs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsTUFBVztRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN0QixPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUM3Qiw0QkFBNEI7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQ2hDLCtCQUErQjtRQUNqQyxDQUFD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QzlCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ3pCLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ2xELE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO29CQUM3QyxDQUFDO3lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQzNDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRTs0QkFDekIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDOzRCQUNoRCxLQUFLLEVBQUUsQ0FBQzs0QkFDUixJQUFJLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztnQ0FDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNoQixDQUFDO3dCQUNILENBQUMsQ0FBQzt3QkFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3QixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO3VHQXhNVSxXQUFXOzJHQUFYLFdBQVcsY0FOVixNQUFNOzsyRkFNUCxXQUFXO2tCQVB2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuXHJcbi8qKlxyXG4gKiBcclxuICovXHJcbmV4cG9ydCBjbGFzcyBGaWxlU2VydmljZSB7XHJcbiAgLy8gU3VwcG9ydGVkIGltYWdlcyB0eXBlc1xyXG4gIElNQUdFX0ZPUk1BVFMgPSBbXHJcbiAgICAnaW1hZ2UvZ2lmJyxcclxuICAgICdpbWFnZS9wbmcnLFxyXG4gICAgJ2ltYWdlL2pwZWcnLFxyXG4gICAgJ2ltYWdlL2JtcCcsXHJcbiAgICAnaW1hZ2Uvd2VicCdcclxuICBdO1xyXG5cclxuICBGSUxFVFlQRVNfVVBMT0FEID0gW1xyXG4gICAgJ2ltYWdlL2pwZycsXHJcbiAgICAnaW1hZ2UvcG5nJyxcclxuICAgICdpbWFnZS9qcGVnJyxcclxuICAgICdpbWFnZS9ibXAnLFxyXG4gICAgJ2FwcGxpY2F0aW9uL3BkZicsXHJcbiAgICAnYXBwbGljYXRpb24vamZpZicsXHJcbiAgICAndmlkZW8vbXA0JyxcclxuICAgICd2aWRlby9tcGVnJyxcclxuICAgICdhdWRpby9tcGVnJyxcclxuICAgICdhdWRpby9tcDMnLFxyXG4gICAgJ2F1ZGlvL29nZycsXHJcbiAgICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcclxuICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXHJcbiAgICAnYXBwbGljYXRpb24vZG9jJyxcclxuICAgICdhcHBsaWNhdGlvbi9tcy1kb2MnLFxyXG4gICAgJ2FwcGxpY2F0aW9uL21zd29yZCcsXHJcbiAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxyXG4gICAgJ2RvY3gnLFxyXG4gICAgJ2RvYydcclxuICBdO1xyXG5cclxuICBpbWFnZVNpemUgPSAxNTAwMDAwMDtcclxuICBGSUxFX01BWF9TSVpFID0gMTAwMDAwMDA7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHJldHVybnMgc3VwcG9ydGVkIGZvcm1hdHMgb2YgZmlsZXMgd2hpY2ggaGFzIHRvIGJlIHVwbG9hZGVkXHJcbiAgICogQHBhcmFtIHNvdXJjZSBpbWFnZS9maWxlXHJcbiAgICogQHJldHVybnMgYXZhaWxhYmxlIGZvcm1hdHNcclxuICAgKi9cclxuICBnZXRTdXBwb3J0ZWRGb3JtYXRzKHNvdXJjZTogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZyhzb3VyY2UpO1xyXG4gICAgbGV0IGZvcm1hdHMgPSBbXTtcclxuICAgIGlmIChzb3VyY2UgPT0gJ2ltYWdlJykge1xyXG4gICAgICBmb3JtYXRzID0gdGhpcy5JTUFHRV9GT1JNQVRTO1xyXG4gICAgICAvL3JldHVybiB0aGlzLklNQUdFX0ZPUk1BVFM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3JtYXRzID0gdGhpcy5GSUxFVFlQRVNfVVBMT0FEO1xyXG4gICAgICAvL3JldHVybiB0aGlzLkZJTEVUWVBFU19VUExPQUQ7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhmb3JtYXRzKTtcclxuICAgIHJldHVybiBmb3JtYXRzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHdpbGwgcmV0dXJuIHRoZSBtYXhpbXVtIHVwbG9hZGFibGUgc2l6ZSBvZiBhIGZpbGUvaW1hZ2VcclxuICAgKiBAcmV0dXJucyBNYXhpbXVtIHNpemUgb2YgdGhlIGltYWdlIHRvIHVwbG9hZFxyXG4gICAqL1xyXG4gIGdldE1heGltdW1JbWFnZVNpemUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbWFnZVNpemU7XHJcbiAgfVxyXG5cclxuICBpbWFnZVZhbGlkYXRpb24oZmlsZTogYW55LCBzb3VyY2U/OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiSW4gSW1hZ2UgVmFsaWRhdGlvbjpcIiwgc291cmNlKTtcclxuICAgIGxldCBmaWxlX3R5cGVzID0gW107XHJcbiAgICBpZiAoc291cmNlID09PSAnYXR0YWNobWVudCcgfHwgc291cmNlID09PSAnY29uc3VtZXJpbWFnZXMnKSB7XHJcbiAgICAgIGZpbGVfdHlwZXMgPSB0aGlzLmdldFN1cHBvcnRlZEZvcm1hdHMoJ2ZpbGUnKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbGVfdHlwZXMgPSB0aGlzLmdldFN1cHBvcnRlZEZvcm1hdHMoJ2ltYWdlJyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbWFnZV9tYXhfc2l6ZSA9IHRoaXMuZ2V0TWF4aW11bUltYWdlU2l6ZSgpO1xyXG4gICAgY29uc3QgZXJyb3I6IGFueSA9IFtdO1xyXG4gICAgY29uc29sZS5sb2coZmlsZV90eXBlcyk7XHJcbiAgICBjb25zb2xlLmxvZyhmaWxlLnR5cGUpO1xyXG4gICAgbGV0IGlzX2Vycm9yID0gZmFsc2U7XHJcbiAgICBpZiAoIWZpbGUudHlwZSB8fCAoZmlsZS50eXBlICYmIGZpbGVfdHlwZXMuaW5kZXhPZihmaWxlLnR5cGUpID09PSAtMSkpIHtcclxuICAgICAgZXJyb3JbJ3R5cGUnXSA9IHRydWU7XHJcbiAgICAgIGlzX2Vycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChmaWxlLnNpemUgJiYgZmlsZS5zaXplID4gaW1hZ2VfbWF4X3NpemUpIHtcclxuICAgICAgZXJyb3JbJ3NpemUnXSA9IHRydWU7XHJcbiAgICAgIGlzX2Vycm9yID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChpc19lcnJvciA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEltYWdlKHVybDogYW55LCBmaWxlT2JqOiBhbnkpIHtcclxuICAgIGxldCBmaWxlID0gZmlsZU9iajtcclxuICAgIGlmIChmaWxlT2JqICYmIGZpbGVPYmpbJ21pbWVUeXBlJ10pIHtcclxuICAgICAgZmlsZVsndHlwZSddID0gZmlsZU9ialsnbWltZVR5cGUnXTtcclxuICAgIH1cclxuICAgIC8vIGNvbnNvbGUubG9nKFwiRmlsZSA6XCIsIGZpbGUpO1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJGaWxlIFR5cGUgOlwiLCBmaWxlLnR5cGUpXHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIkZpbGUgTmFtZSA6XCIsIGZpbGUubmFtZS5pbmNsdWRlcygnZG9jeCcpKVxyXG4gICAgaWYgKGZpbGUudHlwZSkge1xyXG4gICAgICBpZiAoZmlsZS50eXBlID09ICdhcHBsaWNhdGlvbi9wZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuICcuL2Fzc2V0cy9pbWFnZXMvcGRmLnBuZyc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09ICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnIHx8IGZpbGUudHlwZSA9PSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnKSB7XHJcbiAgICAgICAgcmV0dXJuICcuL2Fzc2V0cy9pbWFnZXMveGxzLnBuZyc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09ICdhdWRpby9tcDMnIHx8IGZpbGUudHlwZSA9PSAnYXVkaW8vbXBlZycgfHwgZmlsZS50eXBlID09ICdhdWRpby9vZ2cnKSB7XHJcbiAgICAgICAgcmV0dXJuICcuL2Fzc2V0cy9pbWFnZXMvYXVkaW8ucG5nJztcclxuICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT0gJ3ZpZGVvL21wNCcgfHwgZmlsZS50eXBlID09ICd2aWRlby9tcGVnJykge1xyXG4gICAgICAgIHJldHVybiAnLi9hc3NldHMvaW1hZ2VzL3ZpZGVvLnBuZyc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlID09ICdhcHBsaWNhdGlvbi9tc3dvcmQnIHx8IGZpbGUudHlwZSA9PSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnIHx8IGZpbGUudHlwZS5pbmNsdWRlcygnZG9jeCcpIHx8IGZpbGUudHlwZS5pbmNsdWRlcygnZG9jJykpIHtcclxuICAgICAgICByZXR1cm4gJy4vYXNzZXRzL2ltYWdlcy9JbWdlRmlsZUljb24vd29yZERvY3NCZ1doaXRlLmpwZyc7XHJcbiAgICAgIH0gZWxzZSBpZiAoZmlsZS50eXBlLmluY2x1ZGVzKCd0eHQnKSkge1xyXG4gICAgICAgIHJldHVybiAnLi9hc3NldHMvaW1hZ2VzL0ltZ2VGaWxlSWNvbi9kb2NUeHQucG5nJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdXJsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxuICBnZXRJbWFnZUJ5VHlwZSh0eXBlOiBhbnkpIHtcclxuICAgIGlmICh0eXBlID09ICdwZGYnKSB7XHJcbiAgICAgIHJldHVybiAnLi9hc3NldHMvaW1hZ2VzL3BkZi5wbmcnO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09ICd2bmQubXMtZXhjZWwnIHx8IHR5cGUgPT0gJ3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyB8fCB0eXBlID09ICd4bHMnIHx8IHR5cGUgPT0gJ3hsc3gnKSB7XHJcbiAgICAgIHJldHVybiAnLi9hc3NldHMvaW1hZ2VzL3hscy5wbmcnO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09ICdtcDMnIHx8IHR5cGUgPT0gJ21wZWcnIHx8IHR5cGUgPT0gJ29nZycpIHtcclxuICAgICAgcmV0dXJuICcuL2Fzc2V0cy9pbWFnZXMvYXVkaW8ucG5nJztcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnbXA0JyB8fCB0eXBlID09ICdtcGVnJykge1xyXG4gICAgICByZXR1cm4gJy4vYXNzZXRzL2ltYWdlcy92aWRlby5wbmcnO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09ICdhcHBsaWNhdGlvbi9tc3dvcmQnIHx8IHR5cGUgPT0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyB8fCB0eXBlID09ICdkb2N4JyB8fCB0eXBlID09ICdkb2MnIHx8IHR5cGUgPT0gJ21zd29yZCcpIHtcclxuICAgICAgcmV0dXJuICcuL2Fzc2V0cy9pbWFnZXMvSW1nZUZpbGVJY29uL3dvcmREb2NzQmdXaGl0ZS5qcGcnO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09ICd0eHQnKSB7XHJcbiAgICAgIHJldHVybiAnLi9hc3NldHMvaW1hZ2VzL0ltZ2VGaWxlSWNvbi9kb2NUeHQucG5nJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnLi9hc3NldHMvaW1hZ2VzL2ltZ191cGxvZC5wbmcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsZXNTZWxlY3RlZChldmVudDogYW55LCBzZWxlY3RlZE1lc3NhZ2U6IGFueSkge1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgLy8gY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICAgIGxldCBpbnB1dCA9IGV2ZW50LmZpbGVzO1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5maWxlcykge1xyXG4gICAgICAgIGlucHV0ID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRmlsZSBTZWxlY3RlZCA6XCIsIGlucHV0KTtcclxuICAgICAgaWYgKGlucHV0KSB7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBsZXQgZmlsZXNDb3VudCA9IGlucHV0Lmxlbmd0aDtcclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgaW5wdXQpIHtcclxuICAgICAgICAgIGlmIChfdGhpcy5GSUxFVFlQRVNfVVBMT0FELmluZGV4T2YoZmlsZS50eXBlKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgcmVqZWN0KFwiU2VsZWN0ZWQgZmlsZSB0eXBlIG5vdCBzdXBwb3J0ZWRcIik7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGZpbGUuc2l6ZSA+IF90aGlzLkZJTEVfTUFYX1NJWkUpIHtcclxuICAgICAgICAgICAgcmVqZWN0KFwiUGxlYXNlIHVwbG9hZCBmaWxlcyB3aXRoIHNpemUgPCAxMG1iXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2VsZWN0ZWRNZXNzYWdlLmZpbGVzLnB1c2goZmlsZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRNZXNzYWdlLmJhc2U2NC5wdXNoKGUudGFyZ2V0W1wicmVzdWx0XCJdKTtcclxuICAgICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgICAgIGlmIChjb3VudCA9PT0gZmlsZXNDb3VudCkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZmlsZXNzU2VsZWN0ZWQoZXZlbnQ6IGFueSwgc2VsZWN0ZWRNZXNzYWdlOiBhbnkpIHtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgIC8vIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgICBsZXQgaW5wdXQgPSBldmVudC5maWxlcztcclxuICAgICAgaWYgKGV2ZW50LnRhcmdldCAmJiBldmVudC50YXJnZXQuZmlsZXMpIHtcclxuICAgICAgICBpbnB1dCA9IGV2ZW50LnRhcmdldC5maWxlcztcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcIkZpbGUgU2VsZWN0ZWQgOlwiLCBpbnB1dCk7XHJcbiAgICAgIGlmIChpbnB1dCkge1xyXG4gICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgbGV0IGZpbGVzQ291bnQgPSBpbnB1dC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGlucHV0KSB7XHJcbiAgICAgICAgICBpZiAoX3RoaXMuSU1BR0VfRk9STUFUUy5pbmRleE9mKGZpbGUudHlwZSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgIHJlamVjdChcIlNlbGVjdGVkIGZpbGUgdHlwZSBub3Qgc3VwcG9ydGVkXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChmaWxlLnNpemUgPiBfdGhpcy5GSUxFX01BWF9TSVpFKSB7XHJcbiAgICAgICAgICAgIHJlamVjdChcIlBsZWFzZSB1cGxvYWQgZmlsZXMgd2l0aCBzaXplIDwgMTBtYlwiKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkTWVzc2FnZS5maWxlcy5wdXNoKGZpbGUpO1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHNlbGVjdGVkTWVzc2FnZS5iYXNlNjQucHVzaChlLnRhcmdldFtcInJlc3VsdFwiXSk7XHJcbiAgICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgICAgICBpZiAoY291bnQgPT09IGZpbGVzQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
234
+ }], ctorParameters: () => [{ type: i1.SharedService }] });
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvamNvbnN1bWVyLXNoYXJlZC9zcmMvbGliL2ZpbGUtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQWtDRjtJQWpDcEIseUJBQXlCO0lBQ3pCLGFBQWEsR0FBRztRQUNkLFdBQVc7UUFDWCxXQUFXO1FBQ1gsWUFBWTtRQUNaLFdBQVc7UUFDWCxZQUFZO0tBQ2IsQ0FBQztJQUVGLGdCQUFnQixHQUFHO1FBQ2pCLFdBQVc7UUFDWCxXQUFXO1FBQ1gsWUFBWTtRQUNaLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLFdBQVc7UUFDWCxZQUFZO1FBQ1osWUFBWTtRQUNaLFdBQVc7UUFDWCxXQUFXO1FBQ1gsMEJBQTBCO1FBQzFCLG1FQUFtRTtRQUNuRSxpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLG9CQUFvQjtRQUNwQix5RUFBeUU7UUFDekUsTUFBTTtRQUNOLEtBQUs7S0FDTixDQUFDO0lBQ0YsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQ3JCLGFBQWEsR0FBRyxRQUFRLENBQUM7SUFDekIsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsTUFBVztRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN0QixPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUM3Qiw0QkFBNEI7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQ2hDLCtCQUErQjtRQUNqQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVMsRUFBRSxNQUFZO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksTUFBTSxLQUFLLFlBQVksSUFBSSxNQUFNLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUMzRCxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ04sVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNyQixRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUM1QyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQztRQUNELElBQUksUUFBUSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBQ0QsUUFBUSxDQUFDLEdBQVEsRUFBRSxPQUFZO1FBQzdCLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNuQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCwrQkFBK0I7UUFDL0Isd0NBQXdDO1FBQ3hDLHlEQUF5RDtRQUN6RCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xELENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLDBCQUEwQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksbUVBQW1FLEVBQUUsQ0FBQztnQkFDdkksT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsdUJBQXVCLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDN0YsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcseUJBQXlCLENBQUMsQ0FBQztZQUNwRCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcseUJBQXlCLENBQUMsQ0FBQztZQUNwRCxDQUFDO2lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxvQkFBb0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLHlFQUF5RSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xNLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLGdEQUFnRCxDQUFDLENBQUM7WUFDM0UsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLHVDQUF1QyxDQUFDLENBQUM7WUFDbEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxjQUFjLENBQUMsSUFBUztRQUN0QixJQUFJLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7YUFBTSxJQUFJLElBQUksSUFBSSxjQUFjLElBQUksSUFBSSxJQUFJLHVEQUF1RCxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3hJLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLHVCQUF1QixDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLElBQUksSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUM1RCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3BELENBQUM7YUFBTSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLHlCQUF5QixDQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLElBQUksSUFBSSxJQUFJLG9CQUFvQixJQUFJLElBQUksSUFBSSx5RUFBeUUsSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3BMLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLGdEQUFnRCxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLHVDQUF1QyxDQUFDLENBQUM7UUFDbEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVUsRUFBRSxlQUFvQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbkIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLE9BQU8sRUFBRSxNQUFNO1lBQzFDLG9DQUFvQztZQUNwQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN2QyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDN0IsQ0FBQztZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDOUIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNyRCxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztvQkFDN0MsQ0FBQzt5QkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUMzQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQztvQkFDakQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7NEJBQ3pCLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLENBQUM7NEJBQ1IsSUFBSSxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7Z0NBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDaEIsQ0FBQzt3QkFDSCxDQUFDLENBQUM7d0JBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGNBQWMsQ0FBQyxLQUFVLEVBQUUsZUFBb0I7UUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxPQUFPLEVBQUUsTUFBTTtZQUMxQyxvQ0FBb0M7WUFDcEMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdkMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzdCLENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzlCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ3pCLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ2xELE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO29CQUM3QyxDQUFDO3lCQUFNLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQzNDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO29CQUNqRCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRTs0QkFDekIsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDOzRCQUNoRCxLQUFLLEVBQUUsQ0FBQzs0QkFDUixJQUFJLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztnQ0FDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNoQixDQUFDO3dCQUNILENBQUMsQ0FBQzt3QkFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3QixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO3VHQTFNVSxXQUFXOzJHQUFYLFdBQVcsY0FOVixNQUFNOzsyRkFNUCxXQUFXO2tCQVB2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4vc2hhcmVkLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuLyoqXHJcbiAqIFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZpbGVTZXJ2aWNlIHtcclxuICAvLyBTdXBwb3J0ZWQgaW1hZ2VzIHR5cGVzXHJcbiAgSU1BR0VfRk9STUFUUyA9IFtcclxuICAgICdpbWFnZS9naWYnLFxyXG4gICAgJ2ltYWdlL3BuZycsXHJcbiAgICAnaW1hZ2UvanBlZycsXHJcbiAgICAnaW1hZ2UvYm1wJyxcclxuICAgICdpbWFnZS93ZWJwJ1xyXG4gIF07XHJcblxyXG4gIEZJTEVUWVBFU19VUExPQUQgPSBbXHJcbiAgICAnaW1hZ2UvanBnJyxcclxuICAgICdpbWFnZS9wbmcnLFxyXG4gICAgJ2ltYWdlL2pwZWcnLFxyXG4gICAgJ2ltYWdlL2JtcCcsXHJcbiAgICAnYXBwbGljYXRpb24vcGRmJyxcclxuICAgICdhcHBsaWNhdGlvbi9qZmlmJyxcclxuICAgICd2aWRlby9tcDQnLFxyXG4gICAgJ3ZpZGVvL21wZWcnLFxyXG4gICAgJ2F1ZGlvL21wZWcnLFxyXG4gICAgJ2F1ZGlvL21wMycsXHJcbiAgICAnYXVkaW8vb2dnJyxcclxuICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxyXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcclxuICAgICdhcHBsaWNhdGlvbi9kb2MnLFxyXG4gICAgJ2FwcGxpY2F0aW9uL21zLWRvYycsXHJcbiAgICAnYXBwbGljYXRpb24vbXN3b3JkJyxcclxuICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXHJcbiAgICAnZG9jeCcsXHJcbiAgICAnZG9jJ1xyXG4gIF07XHJcbiAgY2RuUGF0aDogc3RyaW5nID0gJyc7XHJcbiAgaW1hZ2VTaXplID0gMTUwMDAwMDA7XHJcbiAgRklMRV9NQVhfU0laRSA9IDEwMDAwMDAwO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSkgeyBcclxuICAgIHRoaXMuY2RuUGF0aCA9IHRoaXMuc2hhcmVkU2VydmljZS5nZXRDRE5QYXRoKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgcmV0dXJucyBzdXBwb3J0ZWQgZm9ybWF0cyBvZiBmaWxlcyB3aGljaCBoYXMgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gc291cmNlIGltYWdlL2ZpbGVcclxuICAgKiBAcmV0dXJucyBhdmFpbGFibGUgZm9ybWF0c1xyXG4gICAqL1xyXG4gIGdldFN1cHBvcnRlZEZvcm1hdHMoc291cmNlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKHNvdXJjZSk7XHJcbiAgICBsZXQgZm9ybWF0cyA9IFtdO1xyXG4gICAgaWYgKHNvdXJjZSA9PSAnaW1hZ2UnKSB7XHJcbiAgICAgIGZvcm1hdHMgPSB0aGlzLklNQUdFX0ZPUk1BVFM7XHJcbiAgICAgIC8vcmV0dXJuIHRoaXMuSU1BR0VfRk9STUFUUztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvcm1hdHMgPSB0aGlzLkZJTEVUWVBFU19VUExPQUQ7XHJcbiAgICAgIC8vcmV0dXJuIHRoaXMuRklMRVRZUEVTX1VQTE9BRDtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKGZvcm1hdHMpO1xyXG4gICAgcmV0dXJuIGZvcm1hdHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2Qgd2lsbCByZXR1cm4gdGhlIG1heGltdW0gdXBsb2FkYWJsZSBzaXplIG9mIGEgZmlsZS9pbWFnZVxyXG4gICAqIEByZXR1cm5zIE1heGltdW0gc2l6ZSBvZiB0aGUgaW1hZ2UgdG8gdXBsb2FkXHJcbiAgICovXHJcbiAgZ2V0TWF4aW11bUltYWdlU2l6ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmltYWdlU2l6ZTtcclxuICB9XHJcblxyXG4gIGltYWdlVmFsaWRhdGlvbihmaWxlOiBhbnksIHNvdXJjZT86IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJJbiBJbWFnZSBWYWxpZGF0aW9uOlwiLCBzb3VyY2UpO1xyXG4gICAgbGV0IGZpbGVfdHlwZXMgPSBbXTtcclxuICAgIGlmIChzb3VyY2UgPT09ICdhdHRhY2htZW50JyB8fCBzb3VyY2UgPT09ICdjb25zdW1lcmltYWdlcycpIHtcclxuICAgICAgZmlsZV90eXBlcyA9IHRoaXMuZ2V0U3VwcG9ydGVkRm9ybWF0cygnZmlsZScpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsZV90eXBlcyA9IHRoaXMuZ2V0U3VwcG9ydGVkRm9ybWF0cygnaW1hZ2UnKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGltYWdlX21heF9zaXplID0gdGhpcy5nZXRNYXhpbXVtSW1hZ2VTaXplKCk7XHJcbiAgICBjb25zdCBlcnJvcjogYW55ID0gW107XHJcbiAgICBjb25zb2xlLmxvZyhmaWxlX3R5cGVzKTtcclxuICAgIGNvbnNvbGUubG9nKGZpbGUudHlwZSk7XHJcbiAgICBsZXQgaXNfZXJyb3IgPSBmYWxzZTtcclxuICAgIGlmICghZmlsZS50eXBlIHx8IChmaWxlLnR5cGUgJiYgZmlsZV90eXBlcy5pbmRleE9mKGZpbGUudHlwZSkgPT09IC0xKSkge1xyXG4gICAgICBlcnJvclsndHlwZSddID0gdHJ1ZTtcclxuICAgICAgaXNfZXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpbGUuc2l6ZSAmJiBmaWxlLnNpemUgPiBpbWFnZV9tYXhfc2l6ZSkge1xyXG4gICAgICBlcnJvclsnc2l6ZSddID0gdHJ1ZTtcclxuICAgICAgaXNfZXJyb3IgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzX2Vycm9yID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SW1hZ2UodXJsOiBhbnksIGZpbGVPYmo6IGFueSkge1xyXG4gICAgbGV0IGZpbGUgPSBmaWxlT2JqO1xyXG4gICAgaWYgKGZpbGVPYmogJiYgZmlsZU9ialsnbWltZVR5cGUnXSkge1xyXG4gICAgICBmaWxlWyd0eXBlJ10gPSBmaWxlT2JqWydtaW1lVHlwZSddO1xyXG4gICAgfVxyXG4gICAgLy8gY29uc29sZS5sb2coXCJGaWxlIDpcIiwgZmlsZSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcIkZpbGUgVHlwZSA6XCIsIGZpbGUudHlwZSlcclxuICAgIC8vIGNvbnNvbGUubG9nKFwiRmlsZSBOYW1lIDpcIiwgZmlsZS5uYW1lLmluY2x1ZGVzKCdkb2N4JykpXHJcbiAgICBpZiAoZmlsZS50eXBlKSB7XHJcbiAgICAgIGlmIChmaWxlLnR5cGUgPT0gJ2FwcGxpY2F0aW9uL3BkZicpIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuY2RuUGF0aCArICdhc3NldHMvaW1hZ2VzL3BkZi5wbmcnKTtcclxuICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT0gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcgfHwgZmlsZS50eXBlID09ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcpIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuY2RuUGF0aCArICdhc3NldHMvaW1hZ2VzL3hscy5wbmcnKTtcclxuICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT0gJ2F1ZGlvL21wMycgfHwgZmlsZS50eXBlID09ICdhdWRpby9tcGVnJyB8fCBmaWxlLnR5cGUgPT0gJ2F1ZGlvL29nZycpIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuY2RuUGF0aCArICdhc3NldHMvaW1hZ2VzL2F1ZGlvLnBuZycpO1xyXG4gICAgICB9IGVsc2UgaWYgKGZpbGUudHlwZSA9PSAndmlkZW8vbXA0JyB8fCBmaWxlLnR5cGUgPT0gJ3ZpZGVvL21wZWcnKSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmNkblBhdGggKyAnYXNzZXRzL2ltYWdlcy92aWRlby5wbmcnKTtcclxuICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUgPT0gJ2FwcGxpY2F0aW9uL21zd29yZCcgfHwgZmlsZS50eXBlID09ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcgfHwgZmlsZS50eXBlLmluY2x1ZGVzKCdkb2N4JykgfHwgZmlsZS50eXBlLmluY2x1ZGVzKCdkb2MnKSkge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5jZG5QYXRoICsgJ2Fzc2V0cy9pbWFnZXMvSW1nZUZpbGVJY29uL3dvcmREb2NzQmdXaGl0ZS5qcGcnKTtcclxuICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5jbHVkZXMoJ3R4dCcpKSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmNkblBhdGggKyAnYXNzZXRzL2ltYWdlcy9JbWdlRmlsZUljb24vZG9jVHh0LnBuZycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB1cmw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB1cmw7XHJcbiAgfVxyXG4gIGdldEltYWdlQnlUeXBlKHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT0gJ3BkZicpIHtcclxuICAgICAgcmV0dXJuICh0aGlzLmNkblBhdGggKyAnYXNzZXRzL2ltYWdlcy9wZGYucG5nJyk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ3ZuZC5tcy1leGNlbCcgfHwgdHlwZSA9PSAndm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnIHx8IHR5cGUgPT0gJ3hscycgfHwgdHlwZSA9PSAneGxzeCcpIHtcclxuICAgICAgcmV0dXJuICh0aGlzLmNkblBhdGggKyAnYXNzZXRzL2ltYWdlcy94bHMucG5nJyk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ21wMycgfHwgdHlwZSA9PSAnbXBlZycgfHwgdHlwZSA9PSAnb2dnJykge1xyXG4gICAgICByZXR1cm4gKHRoaXMuY2RuUGF0aCArICdhc3NldHMvaW1hZ2VzL2F1ZGlvLnBuZycpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09ICdtcDQnIHx8IHR5cGUgPT0gJ21wZWcnKSB7XHJcbiAgICAgIHJldHVybiAodGhpcy5jZG5QYXRoICsgJ2Fzc2V0cy9pbWFnZXMvdmlkZW8ucG5nJyk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2FwcGxpY2F0aW9uL21zd29yZCcgfHwgdHlwZSA9PSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnIHx8IHR5cGUgPT0gJ2RvY3gnIHx8IHR5cGUgPT0gJ2RvYycgfHwgdHlwZSA9PSAnbXN3b3JkJykge1xyXG4gICAgICByZXR1cm4gKHRoaXMuY2RuUGF0aCArICdhc3NldHMvaW1hZ2VzL0ltZ2VGaWxlSWNvbi93b3JkRG9jc0JnV2hpdGUuanBnJyk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ3R4dCcpIHtcclxuICAgICAgcmV0dXJuICh0aGlzLmNkblBhdGggKyAnYXNzZXRzL2ltYWdlcy9JbWdlRmlsZUljb24vZG9jVHh0LnBuZycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICh0aGlzLmNkblBhdGggKyAnYXNzZXRzL2ltYWdlcy9pbWdfdXBsb2QucG5nJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWxlc1NlbGVjdGVkKGV2ZW50OiBhbnksIHNlbGVjdGVkTWVzc2FnZTogYW55KSB7XHJcbiAgICBjb25zdCBfdGhpcyA9IHRoaXM7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAvLyBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldC5maWxlcztcclxuICAgICAgbGV0IGlucHV0ID0gZXZlbnQuZmlsZXM7XHJcbiAgICAgIGlmIChldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0LmZpbGVzKSB7XHJcbiAgICAgICAgaW5wdXQgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coXCJGaWxlIFNlbGVjdGVkIDpcIiwgaW5wdXQpO1xyXG4gICAgICBpZiAoaW5wdXQpIHtcclxuICAgICAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgICAgIGxldCBmaWxlc0NvdW50ID0gaW5wdXQubGVuZ3RoO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBpbnB1dCkge1xyXG4gICAgICAgICAgaWYgKF90aGlzLkZJTEVUWVBFU19VUExPQUQuaW5kZXhPZihmaWxlLnR5cGUpID09PSAtMSkge1xyXG4gICAgICAgICAgICByZWplY3QoXCJTZWxlY3RlZCBmaWxlIHR5cGUgbm90IHN1cHBvcnRlZFwiKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZS5zaXplID4gX3RoaXMuRklMRV9NQVhfU0laRSkge1xyXG4gICAgICAgICAgICByZWplY3QoXCJQbGVhc2UgdXBsb2FkIGZpbGVzIHdpdGggc2l6ZSA8IDEwbWJcIik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZWxlY3RlZE1lc3NhZ2UuZmlsZXMucHVzaChmaWxlKTtcclxuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBzZWxlY3RlZE1lc3NhZ2UuYmFzZTY0LnB1c2goZS50YXJnZXRbXCJyZXN1bHRcIl0pO1xyXG4gICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgICAgaWYgKGNvdW50ID09PSBmaWxlc0NvdW50KSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBmaWxlc3NTZWxlY3RlZChldmVudDogYW55LCBzZWxlY3RlZE1lc3NhZ2U6IGFueSkge1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgLy8gY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICAgIGxldCBpbnB1dCA9IGV2ZW50LmZpbGVzO1xyXG4gICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5maWxlcykge1xyXG4gICAgICAgIGlucHV0ID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRmlsZSBTZWxlY3RlZCA6XCIsIGlucHV0KTtcclxuICAgICAgaWYgKGlucHV0KSB7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBsZXQgZmlsZXNDb3VudCA9IGlucHV0Lmxlbmd0aDtcclxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgaW5wdXQpIHtcclxuICAgICAgICAgIGlmIChfdGhpcy5JTUFHRV9GT1JNQVRTLmluZGV4T2YoZmlsZS50eXBlKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgcmVqZWN0KFwiU2VsZWN0ZWQgZmlsZSB0eXBlIG5vdCBzdXBwb3J0ZWRcIik7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGZpbGUuc2l6ZSA+IF90aGlzLkZJTEVfTUFYX1NJWkUpIHtcclxuICAgICAgICAgICAgcmVqZWN0KFwiUGxlYXNlIHVwbG9hZCBmaWxlcyB3aXRoIHNpemUgPCAxMG1iXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgc2VsZWN0ZWRNZXNzYWdlLmZpbGVzLnB1c2goZmlsZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRNZXNzYWdlLmJhc2U2NC5wdXNoKGUudGFyZ2V0W1wicmVzdWx0XCJdKTtcclxuICAgICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgICAgIGlmIChjb3VudCA9PT0gZmlsZXNDb3VudCkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class FieldErrorDisplayComponent {
5
+ errorMsg;
6
+ displayError;
7
+ errorMsgs;
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FieldErrorDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FieldErrorDisplayComponent, selector: "app-field-error-display", inputs: { errorMsg: "errorMsg", displayError: "displayError", errorMsgs: "errorMsgs" }, ngImport: i0, template: "<div *ngIf=\"displayError\" tabindex=\"-1\">\r\n <div class=\"sts-msg error\">{{ errorMsg || errorMsgs }}</div>\r\n</div>\r\n\r\n", styles: [".error-msg{color:#a94442}.fix-error-icon{top:27px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FieldErrorDisplayComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'app-field-error-display', template: "<div *ngIf=\"displayError\" tabindex=\"-1\">\r\n <div class=\"sts-msg error\">{{ errorMsg || errorMsgs }}</div>\r\n</div>\r\n\r\n", styles: [".error-msg{color:#a94442}.fix-error-icon{top:27px}\n"] }]
14
+ }], propDecorators: { errorMsg: [{
15
+ type: Input
16
+ }], displayError: [{
17
+ type: Input
18
+ }], errorMsgs: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZXJyb3ItZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvZm9ybS1tZXNzYWdlL2ZpZWxkLWVycm9yLWRpc3BsYXkvZmllbGQtZXJyb3ItZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvZm9ybS1tZXNzYWdlL2ZpZWxkLWVycm9yLWRpc3BsYXkvZmllbGQtZXJyb3ItZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT2pELE1BQU0sT0FBTywwQkFBMEI7SUFFNUIsUUFBUSxDQUFxQjtJQUM3QixZQUFZLENBQXNCO0lBQ2xDLFNBQVMsQ0FBcUI7dUdBSjVCLDBCQUEwQjsyRkFBMUIsMEJBQTBCLHVKQ1B2QyxvSUFJQTs7MkZER2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFNMUIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1maWVsZC1lcnJvci1kaXNwbGF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZXJyb3ItZGlzcGxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGQtZXJyb3ItZGlzcGxheS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpZWxkRXJyb3JEaXNwbGF5Q29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgZXJyb3JNc2c6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBkaXNwbGF5RXJyb3I6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZXJyb3JNc2dzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG59XHJcblxyXG4iLCI8ZGl2ICpuZ0lmPVwiZGlzcGxheUVycm9yXCIgdGFiaW5kZXg9XCItMVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzdHMtbXNnIGVycm9yXCI+e3sgZXJyb3JNc2cgfHwgZXJyb3JNc2dzIH19PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuIl19
@@ -0,0 +1,35 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import { FieldErrorDisplayComponent } from './field-error-display/field-error-display.component';
5
+ import { FormSuccessDisplayComponent } from './form-success-display/form-success-display.component';
6
+ import { FormMessageDisplayService } from './form-message-display.service';
7
+ import * as i0 from "@angular/core";
8
+ export class FormMessageDisplayModule {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormMessageDisplayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: FormMessageDisplayModule, declarations: [FieldErrorDisplayComponent,
11
+ FormSuccessDisplayComponent], imports: [CommonModule,
12
+ RouterModule], exports: [FieldErrorDisplayComponent,
13
+ FormSuccessDisplayComponent] });
14
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormMessageDisplayModule, providers: [
15
+ FormMessageDisplayService
16
+ ], imports: [CommonModule,
17
+ RouterModule] });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormMessageDisplayModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ imports: [
23
+ CommonModule,
24
+ RouterModule
25
+ ],
26
+ declarations: [FieldErrorDisplayComponent,
27
+ FormSuccessDisplayComponent],
28
+ exports: [FieldErrorDisplayComponent,
29
+ FormSuccessDisplayComponent],
30
+ providers: [
31
+ FormMessageDisplayService
32
+ ]
33
+ }]
34
+ }] });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXNzYWdlLWRpc3BsYXkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvamNvbnN1bWVyLXNoYXJlZC9zcmMvbGliL2Zvcm0tbWVzc2FnZS9mb3JtLW1lc3NhZ2UtZGlzcGxheS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQWMzRSxNQUFNLE9BQU8sd0JBQXdCO3VHQUF4Qix3QkFBd0I7d0dBQXhCLHdCQUF3QixpQkFScEIsMEJBQTBCO1lBQ3ZDLDJCQUEyQixhQUozQixZQUFZO1lBQ1osWUFBWSxhQUlKLDBCQUEwQjtZQUNsQywyQkFBMkI7d0dBS2xCLHdCQUF3QixhQUp4QjtZQUNULHlCQUF5QjtTQUMxQixZQVRDLFlBQVk7WUFDWixZQUFZOzsyRkFVSCx3QkFBd0I7a0JBYnBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQywwQkFBMEI7d0JBQ3ZDLDJCQUEyQixDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQywwQkFBMEI7d0JBQ2xDLDJCQUEyQixDQUFDO29CQUM5QixTQUFTLEVBQUU7d0JBQ1QseUJBQXlCO3FCQUMxQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEVycm9yRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4vZmllbGQtZXJyb3ItZGlzcGxheS9maWVsZC1lcnJvci1kaXNwbGF5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1TdWNjZXNzRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1zdWNjZXNzLWRpc3BsYXkvZm9ybS1zdWNjZXNzLWRpc3BsYXkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybU1lc3NhZ2VEaXNwbGF5U2VydmljZSB9IGZyb20gJy4vZm9ybS1tZXNzYWdlLWRpc3BsYXkuc2VydmljZSc7XHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtGaWVsZEVycm9yRGlzcGxheUNvbXBvbmVudCxcclxuICAgIEZvcm1TdWNjZXNzRGlzcGxheUNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW0ZpZWxkRXJyb3JEaXNwbGF5Q29tcG9uZW50LFxyXG4gICAgRm9ybVN1Y2Nlc3NEaXNwbGF5Q29tcG9uZW50XSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1NZXNzYWdlRGlzcGxheVNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtTWVzc2FnZURpc3BsYXlNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ // Import RxJs required methods
5
+ export class FormMessageDisplayService {
6
+ // form: FormGroup, field: string
7
+ isFieldValid(form, field) {
8
+ return !form.get(field).valid && form.get(field).touched;
9
+ }
10
+ displayFieldCss(form, field) {
11
+ return {
12
+ 'has-error': this.isFieldValid(form, field),
13
+ 'has-feedback': this.isFieldValid(form, field)
14
+ };
15
+ }
16
+ validateAllFormFields(formGroup) {
17
+ Object.keys(formGroup.controls).forEach(field => {
18
+ const control = formGroup.get(field);
19
+ if (control instanceof UntypedFormControl) {
20
+ control.markAsTouched({ onlySelf: true });
21
+ }
22
+ else if (control instanceof UntypedFormGroup) {
23
+ this.validateAllFormFields(control);
24
+ }
25
+ });
26
+ }
27
+ getErrorMessage(form, field, errorMsgs) {
28
+ const error_ob = form.get(field).errors;
29
+ if (error_ob == null) {
30
+ return null;
31
+ }
32
+ const keys = Object.keys(error_ob);
33
+ const errors = keys.map(key => {
34
+ return errorMsgs[key] || '';
35
+ });
36
+ return errors[0];
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormMessageDisplayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormMessageDisplayService });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormMessageDisplayService, decorators: [{
42
+ type: Injectable
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXNzYWdlLWRpc3BsYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9mb3JtLW1lc3NhZ2UvZm9ybS1tZXNzYWdlLWRpc3BsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUV0RSwrQkFBK0I7QUFHL0IsTUFBTSxPQUFPLHlCQUF5QjtJQUVwQyxpQ0FBaUM7SUFDakMsWUFBWSxDQUFDLElBQVMsRUFBRSxLQUFhO1FBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUMzRCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQXNCLEVBQUUsS0FBYTtRQUNuRCxPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztZQUMzQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1NBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBMkI7UUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxPQUFPLFlBQVksa0JBQWtCLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLENBQUM7aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUyxFQUFFLEtBQWEsRUFBRSxTQUFjO1FBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3hDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO3VHQW5DVSx5QkFBeUI7MkdBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLy8gSW1wb3J0IFJ4SnMgcmVxdWlyZWQgbWV0aG9kc1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRm9ybU1lc3NhZ2VEaXNwbGF5U2VydmljZSB7XHJcblxyXG4gIC8vIGZvcm06IEZvcm1Hcm91cCwgZmllbGQ6IHN0cmluZ1xyXG4gIGlzRmllbGRWYWxpZChmb3JtOiBhbnksIGZpZWxkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiAhZm9ybS5nZXQoZmllbGQpLnZhbGlkICYmIGZvcm0uZ2V0KGZpZWxkKS50b3VjaGVkO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheUZpZWxkQ3NzKGZvcm06IFVudHlwZWRGb3JtR3JvdXAsIGZpZWxkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdoYXMtZXJyb3InOiB0aGlzLmlzRmllbGRWYWxpZChmb3JtLCBmaWVsZCksXHJcbiAgICAgICdoYXMtZmVlZGJhY2snOiB0aGlzLmlzRmllbGRWYWxpZChmb3JtLCBmaWVsZClcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvck1lc3NhZ2UoZm9ybTogYW55LCBmaWVsZDogc3RyaW5nLCBlcnJvck1zZ3M6IGFueSkge1xyXG4gICAgY29uc3QgZXJyb3Jfb2IgPSBmb3JtLmdldChmaWVsZCkuZXJyb3JzO1xyXG4gICAgaWYgKGVycm9yX29iID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoZXJyb3Jfb2IpO1xyXG4gICAgY29uc3QgZXJyb3JzID0ga2V5cy5tYXAoa2V5ID0+IHtcclxuICAgICAgcmV0dXJuIGVycm9yTXNnc1trZXldIHx8ICcnO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZXJyb3JzWzBdO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class FormSuccessDisplayComponent {
5
+ successMsg;
6
+ displayMsg;
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormSuccessDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: FormSuccessDisplayComponent, selector: "app-form-success-display", inputs: { successMsg: "successMsg", displayMsg: "displayMsg" }, ngImport: i0, template: "<div *ngIf=\"displayMsg\" >\r\n <div class=\"sts-msg success\">\r\n {{ successMsg }}\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: FormSuccessDisplayComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'app-form-success-display', template: "<div *ngIf=\"displayMsg\" >\r\n <div class=\"sts-msg success\">\r\n {{ successMsg }}\r\n </div>\r\n</div>\r\n" }]
13
+ }], propDecorators: { successMsg: [{
14
+ type: Input
15
+ }], displayMsg: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWNjZXNzLWRpc3BsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvamNvbnN1bWVyLXNoYXJlZC9zcmMvbGliL2Zvcm0tbWVzc2FnZS9mb3JtLXN1Y2Nlc3MtZGlzcGxheS9mb3JtLXN1Y2Nlc3MtZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvZm9ybS1tZXNzYWdlL2Zvcm0tc3VjY2Vzcy1kaXNwbGF5L2Zvcm0tc3VjY2Vzcy1kaXNwbGF5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLDJCQUEyQjtJQUU3QixVQUFVLENBQXFCO0lBQy9CLFVBQVUsQ0FBc0I7dUdBSDlCLDJCQUEyQjsyRkFBM0IsMkJBQTJCLGdJQ1B4QyxvSEFLQTs7MkZERWEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs4QkFNM0IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZm9ybS1zdWNjZXNzLWRpc3BsYXknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXN1Y2Nlc3MtZGlzcGxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1zdWNjZXNzLWRpc3BsYXkuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU3VjY2Vzc0Rpc3BsYXlDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBzdWNjZXNzTXNnOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGlzcGxheU1zZzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbn1cclxuXHJcbiIsIjxkaXYgKm5nSWY9XCJkaXNwbGF5TXNnXCIgPlxyXG4gIDxkaXYgY2xhc3M9XCJzdHMtbXNnIHN1Y2Nlc3NcIj5cclxuICAgIHt7IHN1Y2Nlc3NNc2cgfX1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { ENVIRONMENT_INITIALIZER, inject, Injector, runInInjectionContext } from "@angular/core";
2
+ export function setupInjectionContextForLoadChildren(route) {
3
+ let injector = undefined;
4
+ const injectorInitializerProvider = {
5
+ provide: ENVIRONMENT_INITIALIZER,
6
+ multi: true,
7
+ useFactory: (instance = inject(Injector)) => () => {
8
+ injector = instance;
9
+ },
10
+ };
11
+ const transformRoute = (child) => {
12
+ if (!child.loadChildren)
13
+ return child;
14
+ const loadChildren = child.loadChildren;
15
+ child.loadChildren = (...args) => {
16
+ if (!injector)
17
+ throw new Error('Missing injector');
18
+ return runInInjectionContext(injector, () => loadChildren(...args));
19
+ };
20
+ return child;
21
+ };
22
+ return {
23
+ path: '',
24
+ providers: [injectorInitializerProvider],
25
+ children: [transformRoute(route)],
26
+ };
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0b3ItcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9qY29uc3VtZXItc2hhcmVkL3NyYy9saWIvaW5qZWN0b3ItcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVkscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0csTUFBTSxVQUFVLG9DQUFvQyxDQUFDLEtBQVk7SUFDN0QsSUFBSSxRQUFRLEdBQXlCLFNBQVMsQ0FBQztJQUMvQyxNQUFNLDJCQUEyQixHQUFhO1FBQzVDLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQ1IsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FDaEMsR0FBRyxFQUFFO1lBQ0gsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN0QixDQUFDO0tBQ0osQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN4QyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsUUFBUTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkQsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO1FBQ3hDLFFBQVEsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLCBpbmplY3QsIEluamVjdG9yLCBQcm92aWRlciwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBJbmplY3Rpb25Db250ZXh0Rm9yTG9hZENoaWxkcmVuKHJvdXRlOiBSb3V0ZSk6IFJvdXRlIHtcclxuICAgIGxldCBpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBpbmplY3RvckluaXRpYWxpemVyUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xyXG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUZhY3Rvcnk6XHJcbiAgICAgICAgKGluc3RhbmNlID0gaW5qZWN0KEluamVjdG9yKSkgPT5cclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBpbmplY3RvciA9IGluc3RhbmNlO1xyXG4gICAgICAgIH0sXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgY29uc3QgdHJhbnNmb3JtUm91dGUgPSAoY2hpbGQ6IFJvdXRlKSA9PiB7XHJcbiAgICAgIGlmICghY2hpbGQubG9hZENoaWxkcmVuKSByZXR1cm4gY2hpbGQ7XHJcbiAgICAgIGNvbnN0IGxvYWRDaGlsZHJlbiA9IGNoaWxkLmxvYWRDaGlsZHJlbjtcclxuICAgICAgY2hpbGQubG9hZENoaWxkcmVuID0gKC4uLmFyZ3MpID0+IHtcclxuICAgICAgICBpZiAoIWluamVjdG9yKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgaW5qZWN0b3InKTtcclxuICAgICAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiBsb2FkQ2hpbGRyZW4oLi4uYXJncykpO1xyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gY2hpbGQ7XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcGF0aDogJycsXHJcbiAgICAgIHByb3ZpZGVyczogW2luamVjdG9ySW5pdGlhbGl6ZXJQcm92aWRlcl0sXHJcbiAgICAgIGNoaWxkcmVuOiBbdHJhbnNmb3JtUm91dGUocm91dGUpXSxcclxuICAgIH07XHJcbiAgfSJdfQ==
@@ -0,0 +1,49 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./service-meta";
4
+ export class MediaService {
5
+ serviceMeta;
6
+ constructor(serviceMeta) {
7
+ this.serviceMeta = serviceMeta;
8
+ }
9
+ getMediaDevices() {
10
+ return new Promise(function (resolve, reject) {
11
+ let media = {};
12
+ navigator.mediaDevices.enumerateDevices().then(devices => {
13
+ let videoDevices = [];
14
+ let audioDevices = [];
15
+ let count = devices.length;
16
+ console.log(count);
17
+ if (count > 0) {
18
+ console.log(devices);
19
+ devices.forEach(device => {
20
+ if (device.kind === 'videoinput') {
21
+ videoDevices.push(device);
22
+ }
23
+ else if (device.kind === 'audioinput') {
24
+ audioDevices.push(device);
25
+ }
26
+ count--;
27
+ if (count === 0) {
28
+ media['videoDevices'] = videoDevices;
29
+ media['audioDevices'] = audioDevices;
30
+ resolve(media);
31
+ }
32
+ });
33
+ }
34
+ else {
35
+ reject(media);
36
+ }
37
+ });
38
+ });
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MediaService, deps: [{ token: i1.ServiceMeta }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MediaService, providedIn: 'root' });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: MediaService, decorators: [{
44
+ type: Injectable,
45
+ args: [{
46
+ providedIn: 'root'
47
+ }]
48
+ }], ctorParameters: () => [{ type: i1.ServiceMeta }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9tZWRpYS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sWUFBWTtJQUdUO0lBRFosWUFDWSxXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUNoQyxDQUFDO0lBRUwsZUFBZTtRQUNYLE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBVSxPQUFPLEVBQUUsTUFBTTtZQUN4QyxJQUFJLEtBQUssR0FBUSxFQUFFLENBQUM7WUFDcEIsU0FBUyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDckQsSUFBSSxZQUFZLEdBQVEsRUFBRSxDQUFDO2dCQUMzQixJQUFJLFlBQVksR0FBUSxFQUFFLENBQUM7Z0JBQzNCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25CLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3JCLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ3JCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQzs0QkFDL0IsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDOUIsQ0FBQzs2QkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssWUFBWSxFQUFFLENBQUM7NEJBQ3RDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzlCLENBQUM7d0JBQ0QsS0FBSyxFQUFFLENBQUM7d0JBQ1IsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7NEJBQ2QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFlBQVksQ0FBQzs0QkFDckMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFlBQVksQ0FBQzs0QkFDckMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNuQixDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7cUJBQU0sQ0FBQztvQkFDSixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzt1R0FsQ1EsWUFBWTsyR0FBWixZQUFZLGNBRlQsTUFBTTs7MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2VydmljZU1ldGEgfSBmcm9tIFwiLi9zZXJ2aWNlLW1ldGFcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVkaWFTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHNlcnZpY2VNZXRhOiBTZXJ2aWNlTWV0YVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBnZXRNZWRpYURldmljZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgbGV0IG1lZGlhOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5lbnVtZXJhdGVEZXZpY2VzKCkudGhlbihkZXZpY2VzID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCB2aWRlb0RldmljZXM6IGFueSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgbGV0IGF1ZGlvRGV2aWNlczogYW55ID0gW107XHJcbiAgICAgICAgICAgICAgICBsZXQgY291bnQgPSBkZXZpY2VzLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGNvdW50KTtcclxuICAgICAgICAgICAgICAgIGlmIChjb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkZXZpY2VzKTtcclxuICAgICAgICAgICAgICAgICAgICBkZXZpY2VzLmZvckVhY2goZGV2aWNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRldmljZS5raW5kID09PSAndmlkZW9pbnB1dCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlcy5wdXNoKGRldmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGV2aWNlLmtpbmQgPT09ICdhdWRpb2lucHV0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9EZXZpY2VzLnB1c2goZGV2aWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudC0tO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhWyd2aWRlb0RldmljZXMnXSA9IHZpZGVvRGV2aWNlcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlhWydhdWRpb0RldmljZXMnXSA9IGF1ZGlvRGV2aWNlcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUobWVkaWEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChtZWRpYSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbn1cclxuIl19
@@ -101,6 +101,21 @@ export class OrderService {
101
101
  const url = 'consumer/sorder/questionnaire/submit/' + uuid;
102
102
  return this.servicemeta.httpPost(url, body);
103
103
  }
104
+ getShipmentDetails(orderId) {
105
+ const url = 'consumer/sorder/' + orderId + '/shipment/track';
106
+ return this.servicemeta.httpPut(url);
107
+ }
108
+ getInvoiceByOrderYnwuuid(accountId, orderUid) {
109
+ const url = 'consumer/so/invoice/' + accountId + '/' + orderUid;
110
+ return this.servicemeta.httpGet(url, null);
111
+ }
112
+ getOrders(filter) {
113
+ return this.servicemeta.httpGet('consumer/sorder', null, filter);
114
+ }
115
+ getRequireOTPForAddingToCart(accountId) {
116
+ const url = 'consumer/sorder/settings/' + accountId;
117
+ return this.servicemeta.httpGet(url);
118
+ }
104
119
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: OrderService, deps: [{ token: i1.ServiceMeta }, { token: i2.SharedService }], target: i0.ɵɵFactoryTarget.Injectable });
105
120
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: OrderService, providedIn: 'root' });
106
121
  }
@@ -110,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
110
125
  providedIn: 'root'
111
126
  }]
112
127
  }], ctorParameters: () => [{ type: i1.ServiceMeta }, { type: i2.SharedService }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0MsTUFBTSxPQUFPLFlBQVk7SUFHYjtJQUNBO0lBRlYsWUFDVSxXQUF3QixFQUN4QixhQUE0QjtRQUQ1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNsQyxDQUFDO0lBRUwsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQ25CLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBTSxHQUFHLEVBQUU7UUFDOUIsTUFBTSxHQUFHLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsRUFBRTtRQUNuQyxNQUFNLEdBQUcsR0FBRyxnQ0FBZ0MsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxD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QUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTLEVBQUUsSUFBWTtRQUNwQyxNQUFNLEdBQUcsR0FBRyx1Q0FBdUMsR0FBRyxJQUFJLENBQUU7UUFDNUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQzt1R0F4SFksWUFBWTsyR0FBWixZQUFZLGNBRlgsTUFBTTs7MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU1ldGEgfSBmcm9tICcuL3NlcnZpY2UtbWV0YSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZW1ldGE6IFNlcnZpY2VNZXRhLFxyXG4gICAgcHJpdmF0ZSBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgZ2V0U3RvcmVzKGZpbHRlciA9IHt9KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc3RvcmUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUNhdGFsb2dJdGVtcyhmaWx0ZXIgPSB7fSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvL2NhdGFsb2cvaXRlbSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCwgZmlsdGVyKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlQ2F0YWxvZ0l0ZW1zQ291bnQoZmlsdGVyID0ge30pIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9jYXRhbG9nL2l0ZW0vY291bnQnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVDYXJ0KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFBvc3QodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldENhcnQoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvcHJvY29uLycgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdldENhcnRJdGVtcyhjYXJ0VWlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9nZXRpdGVtcyc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVJdGVtRnJvbUNhcnQoaXRlbVVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC9pdGVtLycgKyBpdGVtVWlkO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cERlbGV0ZSh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2FydEl0ZW1zKGNhcnRVaWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC8nICsgY2FydFVpZCArICcvdXBkYXRlaXRlbXMnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2FydChjYXJ0VWlkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvdXBkYXRlLycgKyBjYXJ0VWlkO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tvdXRDYXJ0SXRlbXMoY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9jaGVja291dCc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUG9zdCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JkZXJCeVVpZChvcmRlclVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyLycgKyBvcmRlclVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdldFNvQ2F0YWxvZ0l0ZW1CeUlkKGFjY291bnRJZDogc3RyaW5nLCBpdGVtRW5jaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvL2NhdGFsb2cvJyArIGFjY291bnRJZCArICcvaXRlbS8nICsgaXRlbUVuY2lkO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW52b2ljZUJ5T3JkZXJVaWQoYWNjb3VudElkOiBzdHJpbmcsIG9yZGVyVWlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9pbnZvaWNlLycgKyBhY2NvdW50SWQgKyAnL29yZGVyLycgKyBvcmRlclVpZCArICcvaW52b2ljZSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb25zdW1lcmFkZHJlc3MoKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvZGVsaXZlcnlBZGRyZXNzJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNvbnN1bWVyYWRkcmVzcyhkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9kZWxpdmVyeUFkZHJlc3MnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY29uc3VtZXJTb1BheW1lbnQoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vcGF5JztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQb3N0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtQ2F0ZWdvcnkoYWNjb3VudElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zcGl0ZW0vc2V0dGluZ3MvJythY2NvdW50SWQgKyAnL2NhdGVnb3J5P3N0YXR1cy1lcT1FbmFibGUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9hcHBseS9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUHV0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb0NvdXBvbnMoY2F0YWxvZ0lkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXRhbG9nSWQgKyAnL2dldC9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9yZW1vdmUvcHJvdmlkZXJjb3Vwb24nO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoU3BJdGVtKGFjY291bnRJZDogYW55LCB2YWx1ZTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0U0FQYXRoKCkgK2BzZWFyY2hkZXRhaWxzLyR7YWNjb3VudElkfS9zb3JkZXJjYXRhbG9nL2l0ZW0vc3VnZ2VzdGlvbi9zZWFyY2g/bmFtZT0ke3ZhbHVlfSpgO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwpO1xyXG4gIH1cclxuICBnZXRRbnJPcmRlcihpdGVtSWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3F1ZXN0aW9ubmFpcmUvc29yZGVyL2l0ZW0vJyArIGl0ZW1JZCArICcvT05MSU5FJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsKTtcclxufVxyXG5cclxuc3VibWl0UW5yT3JkZXIoYm9keTogYW55LCB1dWlkOiBzdHJpbmcpIHtcclxuICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyL3F1ZXN0aW9ubmFpcmUvc3VibWl0LycgKyB1dWlkIDtcclxuICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUG9zdCh1cmwsIGJvZHkpO1xyXG59XHJcbn1cclxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2pjb25zdW1lci1zaGFyZWQvc3JjL2xpYi9vcmRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0MsTUFBTSxPQUFPLFlBQVk7SUFHYjtJQUNBO0lBRlYsWUFDVSxXQUF3QixFQUN4QixhQUE0QjtRQUQ1QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtJQUNsQyxDQUFDO0lBRUwsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFO1FBQ25CLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsTUFBTSxHQUFHLEVBQUU7UUFDOUIsTUFBTSxHQUFHLEdBQUcsMEJBQTBCLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsRUFBRTtRQUNuQyxNQUFNLEdBQUcsR0FBRyxnQ0FBZ0MsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxD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QUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTLEVBQUUsSUFBWTtRQUNwQyxNQUFNLEdBQUcsR0FBRyx1Q0FBdUMsR0FBRyxJQUFJLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELGtCQUFrQixDQUFDLE9BQU87UUFDeEIsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLEdBQUcsT0FBTyxHQUFHLGlCQUFpQixDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELHdCQUF3QixDQUFDLFNBQVMsRUFBRSxRQUFRO1FBQzFDLE1BQU0sR0FBRyxHQUFHLHNCQUFzQixHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxTQUFTLENBQUMsTUFBTTtRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCw0QkFBNEIsQ0FBQyxTQUFTO1FBQ3BDLE1BQU0sR0FBRyxHQUFHLDJCQUEyQixHQUFHLFNBQVMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7dUdBdklVLFlBQVk7MkdBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VNZXRhIH0gZnJvbSAnLi9zZXJ2aWNlLW1ldGEnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgT3JkZXJTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2VtZXRhOiBTZXJ2aWNlTWV0YSxcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGdldFN0b3JlcyhmaWx0ZXIgPSB7fSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3N0b3JlJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsLCBmaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVDYXRhbG9nSXRlbXMoZmlsdGVyID0ge30pIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9jYXRhbG9nL2l0ZW0nO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUNhdGFsb2dJdGVtc0NvdW50KGZpbHRlciA9IHt9KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vY2F0YWxvZy9pdGVtL2NvdW50JztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsLCBmaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ2FydChkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0JztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQb3N0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0L3Byb2Nvbi8nICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0SXRlbXMoY2FydFVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC8nICsgY2FydFVpZCArICcvZ2V0aXRlbXMnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlSXRlbUZyb21DYXJ0KGl0ZW1VaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvaXRlbS8nICsgaXRlbVVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBEZWxldGUodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNhcnRJdGVtcyhjYXJ0VWlkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2NhcnQvJyArIGNhcnRVaWQgKyAnL3VwZGF0ZWl0ZW1zJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNhcnQoY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0L3VwZGF0ZS8nICsgY2FydFVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGNoZWNrb3V0Q2FydEl0ZW1zKGNhcnRVaWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvY2FydC8nICsgY2FydFVpZCArICcvY2hlY2tvdXQnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFBvc3QodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE9yZGVyQnlVaWQob3JkZXJVaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvcmRlci8nICsgb3JkZXJVaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBnZXRTb0NhdGFsb2dJdGVtQnlJZChhY2NvdW50SWQ6IHN0cmluZywgaXRlbUVuY2lkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9zby9jYXRhbG9nLycgKyBhY2NvdW50SWQgKyAnL2l0ZW0vJyArIGl0ZW1FbmNpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIGdldEludm9pY2VCeU9yZGVyVWlkKGFjY291bnRJZDogc3RyaW5nLCBvcmRlclVpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vaW52b2ljZS8nICsgYWNjb3VudElkICsgJy9vcmRlci8nICsgb3JkZXJVaWQgKyAnL2ludm9pY2UnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29uc3VtZXJhZGRyZXNzKCkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL2RlbGl2ZXJ5QWRkcmVzcyc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb25zdW1lcmFkZHJlc3MoZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvZGVsaXZlcnlBZGRyZXNzJztcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQdXQodXJsLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGNvbnN1bWVyU29QYXltZW50KGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvL3BheSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUG9zdCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUNhdGVnb3J5KGFjY291bnRJZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc3BpdGVtL3NldHRpbmdzLycgKyBhY2NvdW50SWQgKyAnL2NhdGVnb3J5P3N0YXR1cy1lcT1FbmFibGUnO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cEdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9hcHBseS9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUHV0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb0NvdXBvbnMoY2F0YWxvZ0lkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXRhbG9nSWQgKyAnL2dldC9wcm92aWRlcmNvdXBvbic7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb3Vwb24oY2FydFVpZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9jYXJ0LycgKyBjYXJ0VWlkICsgJy9yZW1vdmUvcHJvdmlkZXJjb3Vwb24nO1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZW1ldGEuaHR0cFB1dCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoU3BJdGVtKGFjY291bnRJZDogYW55LCB2YWx1ZTogYW55KSB7XHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0U0FQYXRoKCkgKyBgc2VhcmNoZGV0YWlscy8ke2FjY291bnRJZH0vc29yZGVyY2F0YWxvZy9pdGVtL3N1Z2dlc3Rpb24vc2VhcmNoP25hbWU9JHt2YWx1ZX0qYDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQodXJsKTtcclxuICB9XHJcbiAgZ2V0UW5yT3JkZXIoaXRlbUlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9ICdjb25zdW1lci9xdWVzdGlvbm5haXJlL3NvcmRlci9pdGVtLycgKyBpdGVtSWQgKyAnL09OTElORSc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRRbnJPcmRlcihib2R5OiBhbnksIHV1aWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdXJsID0gJ2NvbnN1bWVyL3NvcmRlci9xdWVzdGlvbm5haXJlL3N1Ym1pdC8nICsgdXVpZDtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBQb3N0KHVybCwgYm9keSk7XHJcbiAgfVxyXG4gIGdldFNoaXBtZW50RGV0YWlscyhvcmRlcklkKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyLycgKyBvcmRlcklkICsgJy9zaGlwbWVudC90cmFjayc7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwUHV0KHVybCk7XHJcbiAgfVxyXG4gIGdldEludm9pY2VCeU9yZGVyWW53dXVpZChhY2NvdW50SWQsIG9yZGVyVWlkKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc28vaW52b2ljZS8nICsgYWNjb3VudElkICsgJy8nICsgb3JkZXJVaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCwgbnVsbCk7XHJcbiAgfVxyXG4gIGdldE9yZGVycyhmaWx0ZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VtZXRhLmh0dHBHZXQoJ2NvbnN1bWVyL3NvcmRlcicsIG51bGwsIGZpbHRlcik7XHJcbiAgfVxyXG4gIGdldFJlcXVpcmVPVFBGb3JBZGRpbmdUb0NhcnQoYWNjb3VudElkKSB7XHJcbiAgICBjb25zdCB1cmwgPSAnY29uc3VtZXIvc29yZGVyL3NldHRpbmdzLycgKyBhY2NvdW50SWQ7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlbWV0YS5odHRwR2V0KHVybCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==