mmhglobal-dynamicform 2.8.0 → 2.9.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.
package/README.md CHANGED
@@ -3,6 +3,10 @@
3
3
  This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.13.
4
4
 
5
5
  ## Changelog
6
+ `2.9.0`<br/>
7
+ removed component-error-handler-service.<br/>
8
+ [input-error-message, mainservice, component.debug, zmodal, zudf, zworkflow] changed to import ComponentErrorHandlerService from zcore and also renamed variable to componentErrorHandlerService.
9
+
6
10
  `2.8.0`<br/>
7
11
  [znumeric] - Auto disable Min and Max value validator if component is not visible.<br/>
8
12
  [field-base] - Avoid registering component for parent class: zinput-container.<br/>
@@ -8,15 +8,14 @@ import { FieldBase } from "../components/fieldbase.component";
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../services/zcomponent.service";
10
10
  import * as i2 from "mmhglobal-zcore";
11
- import * as i3 from "../services/component-error-handler.service";
12
- import * as i4 from "@ionic/angular";
13
- import * as i5 from "@angular/common";
11
+ import * as i3 from "@ionic/angular";
12
+ import * as i4 from "@angular/common";
14
13
  export class InputErrorMessageComponent extends FieldBase {
15
- constructor(componentService, fontAweSomeService, componentErrorHandler, translationService) {
14
+ constructor(componentService, fontAweSomeService, componentErrorHandlerService, translationService) {
16
15
  super(componentService);
17
16
  this.componentService = componentService;
18
17
  this.fontAweSomeService = fontAweSomeService;
19
- this.componentErrorHandler = componentErrorHandler;
18
+ this.componentErrorHandlerService = componentErrorHandlerService;
20
19
  this.translationService = translationService;
21
20
  this.errMsgList = [];
22
21
  }
@@ -32,7 +31,7 @@ export class InputErrorMessageComponent extends FieldBase {
32
31
  }
33
32
  const isShow = !control.valid && !control.untouched;
34
33
  if (isShow) {
35
- of(this.componentErrorHandler.getErrorMessageForInvalidInput(this.group, null, this.data.Value)).pipe(switchMap((errMessageTranslationInput) => {
34
+ of(this.componentErrorHandlerService.getErrorMessageForInvalidInput(this.group, null, this.data.Value)).pipe(switchMap((errMessageTranslationInput) => {
36
35
  const obs = new Array();
37
36
  errMessageTranslationInput.forEach(data => {
38
37
  obs.push(this.translationService.$translateText(data.errorMessage, { translationVariables: data.translationVariables }));
@@ -45,10 +44,10 @@ export class InputErrorMessageComponent extends FieldBase {
45
44
  return isShow;
46
45
  }
47
46
  }
48
- InputErrorMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputErrorMessageComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }, { token: i3.ComponentErrorHandlerService }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
49
- InputErrorMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputErrorMessageComponent, selector: "app-error", usesInheritance: true, ngImport: i0, template: "<div class=\"inputfield-error-msg\" *ngIf=\"IsShow()\">\r\n <div *ngFor=\"let errMsg of errMsgList\">\r\n <span #warning class=\"k-icon k-i-warning validation_icon\"></span>\r\n <ion-label>{{errMsg}}</ion-label>\r\n </div>\r\n</div>\r\n", styles: [".inputfield-error-msg{margin-top:5px;font-size:calc(var(--content-font-size) - 1px);color:var(--ion-color-danger)}.inputfield-error-msg span{margin:0 4px 0 2px;font-size:calc(var(--content-font-size) + 1px);top:-1px}\n"], components: [{ type: i4.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
47
+ InputErrorMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputErrorMessageComponent, deps: [{ token: i1.ZComponentService }, { token: i2.FontAweSomeService }, { token: i2.ComponentErrorHandlerService }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
48
+ InputErrorMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputErrorMessageComponent, selector: "app-error", usesInheritance: true, ngImport: i0, template: "<div class=\"inputfield-error-msg\" *ngIf=\"IsShow()\">\r\n <div *ngFor=\"let errMsg of errMsgList\">\r\n <span #warning class=\"k-icon k-i-warning validation_icon\"></span>\r\n <ion-label>{{errMsg}}</ion-label>\r\n </div>\r\n</div>\r\n", styles: [".inputfield-error-msg{margin-top:5px;font-size:calc(var(--content-font-size) - 1px);color:var(--ion-color-danger)}.inputfield-error-msg span{margin:0 4px 0 2px;font-size:calc(var(--content-font-size) + 1px);top:-1px}\n"], components: [{ type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
50
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputErrorMessageComponent, decorators: [{
51
50
  type: Component,
52
51
  args: [{ selector: "app-error", template: "<div class=\"inputfield-error-msg\" *ngIf=\"IsShow()\">\r\n <div *ngFor=\"let errMsg of errMsgList\">\r\n <span #warning class=\"k-icon k-i-warning validation_icon\"></span>\r\n <ion-label>{{errMsg}}</ion-label>\r\n </div>\r\n</div>\r\n", styles: [".inputfield-error-msg{margin-top:5px;font-size:calc(var(--content-font-size) - 1px);color:var(--ion-color-danger)}.inputfield-error-msg span{margin:0 4px 0 2px;font-size:calc(var(--content-font-size) + 1px);top:-1px}\n"] }]
53
- }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }, { type: i3.ComponentErrorHandlerService }, { type: i2.TranslationService }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9pbnB1dC1lcnJvci1tZXNzYWdlL2lucHV0LWVycm9yLW1lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvaW5wdXQtZXJyb3ItbWVzc2FnZS9pbnB1dC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBZTlELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxTQUFTO0lBQ3ZELFlBQ1MsZ0JBQW1DLEVBQ25DLGtCQUFzQyxFQUNyQyxxQkFBbUQsRUFDbkQsa0JBQXNDO1FBRTlDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBTGpCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNyQywwQkFBcUIsR0FBckIscUJBQXFCLENBQThCO1FBQ25ELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFLekMsZUFBVSxHQUFHLEVBQUUsQ0FBQztJQUZ2QixDQUFDO0lBSUQsUUFBUSxLQUFLLENBQUM7SUFFUCxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN2QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BELElBQUksTUFBTSxFQUFFO1lBQ1YsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuRyxTQUFTLENBQUMsQ0FBQywwQkFBMEIsRUFBRSxFQUFFO2dCQUN2QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBbUIsQ0FBQztnQkFDekMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUN4QyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0gsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNmO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7dUhBekNVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHdFQ3hCdkMsc1BBTUE7MkZEa0JhLDBCQUEwQjtrQkFOdEMsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKioqKioqKioqKiBJb25pYyAqKioqKioqKioqL1xyXG5cclxuLyoqKioqKioqKiogUGx1Z2luICoqKioqKioqKiovXHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9maWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2NvbXBvbmVudC1lcnJvci1oYW5kbGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICBGb250QXdlU29tZVNlcnZpY2UsXHJcbiAgVHJhbnNsYXRpb25TZXJ2aWNlLCBaQ29tcG9uZW50XHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtZXJyb3JcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2lucHV0LWVycm9yLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5wdXQtZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIElucHV0RXJyb3JNZXNzYWdlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb21wb25lbnRTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBmb250QXdlU29tZVNlcnZpY2U6IEZvbnRBd2VTb21lU2VydmljZSxcclxuICAgIHByaXZhdGUgY29tcG9uZW50RXJyb3JIYW5kbGVyOiBDb21wb25lbnRFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXJyTXNnTGlzdCA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICBwdWJsaWMgSXNTaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZm9ybS51bnRvdWNoZWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5kYXRhLlZhbHVlXTtcclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhgVW5hYmxlIHRvIGZpbmQgZm9ybSBjb250cm9sOiAnICR7dGhpcy5kYXRhLlZhbHVlfWApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNTaG93ID0gIWNvbnRyb2wudmFsaWQgJiYgIWNvbnRyb2wudW50b3VjaGVkO1xyXG4gICAgaWYgKGlzU2hvdykge1xyXG4gICAgICBvZih0aGlzLmNvbXBvbmVudEVycm9ySGFuZGxlci5nZXRFcnJvck1lc3NhZ2VGb3JJbnZhbGlkSW5wdXQodGhpcy5ncm91cCwgbnVsbCwgdGhpcy5kYXRhLlZhbHVlKSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoKGVyck1lc3NhZ2VUcmFuc2xhdGlvbklucHV0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvYnMgPSBuZXcgQXJyYXk8T2JzZXJ2YWJsZTxhbnk+PigpO1xyXG4gICAgICAgICAgZXJyTWVzc2FnZVRyYW5zbGF0aW9uSW5wdXQuZm9yRWFjaChkYXRhID0+IHtcclxuICAgICAgICAgICAgb2JzLnB1c2godGhpcy50cmFuc2xhdGlvblNlcnZpY2UuJHRyYW5zbGF0ZVRleHQoZGF0YS5lcnJvck1lc3NhZ2UsIHsgdHJhbnNsYXRpb25WYXJpYWJsZXM6IGRhdGEudHJhbnNsYXRpb25WYXJpYWJsZXMgfSkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiBmb3JrSm9pbihvYnMpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHRhcChmaWVsZEVycm9yTWVzc2FnZXMgPT4ge1xyXG4gICAgICAgICAgdGhpcy5lcnJNc2dMaXN0ID0gZmllbGRFcnJvck1lc3NhZ2VzO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNTaG93O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXRmaWVsZC1lcnJvci1tc2dcIiAqbmdJZj1cIklzU2hvdygpXCI+XHJcbiAgPGRpdiAqbmdGb3I9XCJsZXQgZXJyTXNnIG9mIGVyck1zZ0xpc3RcIj5cclxuICAgIDxzcGFuICN3YXJuaW5nIGNsYXNzPVwiay1pY29uIGstaS13YXJuaW5nIHZhbGlkYXRpb25faWNvblwiPjwvc3Bhbj5cclxuICAgIDxpb24tbGFiZWw+e3tlcnJNc2d9fTwvaW9uLWxhYmVsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
52
+ }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.FontAweSomeService }, { type: i2.ComponentErrorHandlerService }, { type: i2.TranslationService }]; } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9pbnB1dC1lcnJvci1tZXNzYWdlL2lucHV0LWVycm9yLW1lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvaW5wdXQtZXJyb3ItbWVzc2FnZS9pbnB1dC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFjOUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLFNBQVM7SUFDdkQsWUFDUyxnQkFBbUMsRUFDbkMsa0JBQXNDLEVBQ3JDLDRCQUEwRCxFQUMxRCxrQkFBc0M7UUFFOUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFMakIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3JDLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUFDMUQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUt6QyxlQUFVLEdBQUcsRUFBRSxDQUFDO0lBRnZCLENBQUM7SUFJRCxRQUFRLEtBQUssQ0FBQztJQUVQLE1BQU07UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDakUsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDcEQsSUFBSSxNQUFNLEVBQUU7WUFDVixFQUFFLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFHLFNBQVMsQ0FBQyxDQUFDLDBCQUEwQixFQUFFLEVBQUU7Z0JBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFtQixDQUFDO2dCQUN6QywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3hDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzSCxDQUFDLENBQUMsQ0FBQTtnQkFDRixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzt1SEF6Q1UsMEJBQTBCOzJHQUExQiwwQkFBMEIsd0VDdkJ2QyxzUEFNQTsyRkRpQmEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gXCIuLi9jb21wb25lbnRzL2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7IFxyXG5pbXBvcnQge1xyXG4gIEZvbnRBd2VTb21lU2VydmljZSwgVHJhbnNsYXRpb25TZXJ2aWNlLCBDb21wb25lbnRFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gIFpDb21wb25lbnRcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1lcnJvclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5wdXQtZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbnB1dC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgSW5wdXRFcnJvck1lc3NhZ2VDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNvbXBvbmVudFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGZvbnRBd2VTb21lU2VydmljZTogRm9udEF3ZVNvbWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRFcnJvckhhbmRsZXJTZXJ2aWNlOiBDb21wb25lbnRFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoY29tcG9uZW50U2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXJyTXNnTGlzdCA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHsgfVxyXG5cclxuICBwdWJsaWMgSXNTaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuZm9ybS51bnRvdWNoZWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5kYXRhLlZhbHVlXTtcclxuICAgIGlmICghY29udHJvbCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhgVW5hYmxlIHRvIGZpbmQgZm9ybSBjb250cm9sOiAnICR7dGhpcy5kYXRhLlZhbHVlfWApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNTaG93ID0gIWNvbnRyb2wudmFsaWQgJiYgIWNvbnRyb2wudW50b3VjaGVkO1xyXG4gICAgaWYgKGlzU2hvdykge1xyXG4gICAgICBvZih0aGlzLmNvbXBvbmVudEVycm9ySGFuZGxlclNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlRm9ySW52YWxpZElucHV0KHRoaXMuZ3JvdXAsIG51bGwsIHRoaXMuZGF0YS5WYWx1ZSkpLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKChlcnJNZXNzYWdlVHJhbnNsYXRpb25JbnB1dCkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgb2JzID0gbmV3IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcclxuICAgICAgICAgIGVyck1lc3NhZ2VUcmFuc2xhdGlvbklucHV0LmZvckVhY2goZGF0YSA9PiB7XHJcbiAgICAgICAgICAgIG9icy5wdXNoKHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVUZXh0KGRhdGEuZXJyb3JNZXNzYWdlLCB7IHRyYW5zbGF0aW9uVmFyaWFibGVzOiBkYXRhLnRyYW5zbGF0aW9uVmFyaWFibGVzIH0pKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ob2JzKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICB0YXAoZmllbGRFcnJvck1lc3NhZ2VzID0+IHtcclxuICAgICAgICAgIHRoaXMuZXJyTXNnTGlzdCA9IGZpZWxkRXJyb3JNZXNzYWdlcztcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzU2hvdztcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImlucHV0ZmllbGQtZXJyb3ItbXNnXCIgKm5nSWY9XCJJc1Nob3coKVwiPlxyXG4gIDxkaXYgKm5nRm9yPVwibGV0IGVyck1zZyBvZiBlcnJNc2dMaXN0XCI+XHJcbiAgICA8c3BhbiAjd2FybmluZyBjbGFzcz1cImstaWNvbiBrLWktd2FybmluZyB2YWxpZGF0aW9uX2ljb25cIj48L3NwYW4+XHJcbiAgICA8aW9uLWxhYmVsPnt7ZXJyTXNnfX08L2lvbi1sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==