ets-fe-ng-sdk 17.0.418 → 17.0.419

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.
@@ -12,7 +12,6 @@ import { InfoIconComponent } from '../info-icon/info-icon.component';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "../../../Services/utility.service";
14
14
  import * as i2 from "@angular/common";
15
- import * as i3 from "@angular/material/tooltip";
16
15
  export class FormErrorComponent {
17
16
  constructor(el, uS) {
18
17
  this.el = el;
@@ -76,7 +75,7 @@ export class FormErrorComponent {
76
75
  // console.log('message', this.message);
77
76
  }
78
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, deps: [{ token: i0.ElementRef }, { token: i1.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <div class=\"\" [matTooltip]=\"item.parent\">Parent</div>\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
80
79
  }
81
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, decorators: [{
82
81
  type: Component,
@@ -87,7 +86,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
87
86
  BtnComponent,
88
87
  MatTooltipModule,
89
88
  InfoIconComponent,
90
- ], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <div class=\"\" [matTooltip]=\"item.parent\">Parent</div>\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"] }]
89
+ ], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"] }]
91
90
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.UtilityService }] });
92
91
  function hasError(control) {
93
92
  if (control?.pending)
@@ -98,4 +97,4 @@ function hasError(control) {
98
97
  return true;
99
98
  return false;
100
99
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBSVQsUUFBUSxFQUVSLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFpQnJFLE1BQU0sT0FBTyxrQkFBa0I7SUFz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QUN2RSxDQUNGLENBQUM7YUFDSDtRQUNILE9BQU8sUUFBUSxDQUFDO1FBQ2hCLFlBQVk7UUFDWix3Q0FBd0M7SUFDMUMsQ0FBQzs4R0E1R1Usa0JBQWtCO2tHQUFsQixrQkFBa0IsNGNDdEMvQiw0c0NBb0NBLCtPRE5JLFlBQVksNElBQ1osZ0JBQWdCLHFEQUNoQiwwQkFBMEIsMk5BQzFCLFlBQVksa2dCQUNaLGdCQUFnQiw2VEFDaEIsaUJBQWlCOzsyRkFHUixrQkFBa0I7a0JBZjlCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FJUDt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsMEJBQTBCO3dCQUMxQixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3FCQUNsQjs7QUFrSEgsU0FBUyxRQUFRLENBQUMsT0FBd0I7SUFDeEMsSUFBSSxPQUFPLEVBQUUsT0FBTztRQUFFLE9BQU8sSUFBSSxDQUFDO1NBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFDO1NBQ25DLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3pELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgU2lnbmFsLFxuICBjb21wdXRlZCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgbWVyZ2UsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L3ZhbGlkYXRpb24tbWVzc2FnZS92YWxpZGF0aW9uLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ0bkNvbXBvbmVudCB9IGZyb20gJy4uL2J0bi9idG4uY29tcG9uZW50JztcbmltcG9ydCB7IFNES1RyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90cmFuc2xhdGUucGlwZSc7XG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL1NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyB1bmlxQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEluZm9JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5mby1pY29uL2luZm8taWNvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtLWVycm9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWVycm9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTREtUcmFuc2xhdGVQaXBlLFxuICAgIFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50LFxuICAgIEJ0bkNvbXBvbmVudCxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIEluZm9JY29uQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRXJyb3JDb21wb25lbnQge1xuICAvLyByZWFkb25seSBlcnJvcnMgPSBzaWduYWw8eyBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sOyBsYWJlbDogc3RyaW5nOyBwYXJlbnQ/OiBzdHJpbmcgfVtdPihbXSk7XG4gIHJlYWRvbmx5IGZvcm0gPSBpbnB1dDxGb3JtIHwgRm9ybVtdPigpO1xuICByZWFkb25seSBlcnJvcnMgPSB0b1NpZ25hbDxJRXJyb3I+KFxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmZvcm0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKHYpID0+ICEhdiksXG4gICAgICBzd2l0Y2hNYXAoKHYpID0+XG4gICAgICAgIEFycmF5LmlzQXJyYXkodilcbiAgICAgICAgICA/IG1lcmdlKC4uLnYubWFwKChmKSA9PiBmLnN0YXR1c0NoYW5nZXMpKS5waXBlKFxuICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoNjAwKSxcbiAgICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZm9ybVN0YXR1cyA9PSAnSU5WQUxJRCcgfHxcbiAgICAgICAgICAgICAgICAgIGZvcm1TdGF0dXMgPT0gJ1BFTkRJTkcnIHx8XG4gICAgICAgICAgICAgICAgICB2LnNvbWUoKGYpID0+IGYuc3RhdHVzID09ICdJTlZBTElEJyB8fCBmLnN0YXR1cyA9PSAnUEVORElORycpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgdW5pcUJ5KFxuICAgICAgICAgICAgICAgICAgICAgIHYuZmxhdE1hcCgoZikgPT4gdGhpcy5nZXRFcnJvck1lc3NhZ2VzKGYpKSxcbiAgICAgICAgICAgICAgICAgICAgICAnbWVzc2FnZScsXG4gICAgICAgICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHYuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoNjAwKSxcbiAgICAgICAgICAgICAgbWFwKChmb3JtU3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgZm9ybVN0YXR1cyA9PSAnSU5WQUxJRCcgfHxcbiAgICAgICAgICAgICAgICAgIGZvcm1TdGF0dXMgPT0gJ1BFTkRJTkcnIHx8XG4gICAgICAgICAgICAgICAgICB2LnN0YXR1cyA9PSAnSU5WQUxJRCcgfHxcbiAgICAgICAgICAgICAgICAgIHYuc3RhdHVzID09ICdQRU5ESU5HJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVycm9yTWVzc2FnZXModik7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICApLFxuICAgICAgZGVib3VuY2VUaW1lKDYwMCksXG4gICAgKSxcbiAgKTtcblxuICAvLyBwcm90ZWN0ZWQgZm9ybT86IEZvcm07XG4gIC8vIHByb3RlY3RlZCBmb3Jtcz86IEZvcm1bXTtcbiAgcmVhZG9ubHkgbGdHcmlkTm8gPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KDIpO1xuICByZWFkb25seSB4eGxHcmlkTm8gPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KDMpO1xuXG4gIHJlYWRvbmx5IGhhc0Vycm9yID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5lcnJvcnMoKT8ubGVuZ3RoID4gMCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwdWJsaWMgdVM6IFV0aWxpdHlTZXJ2aWNlLFxuICApIHt9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlcyhcbiAgICBmb3JtOiBGb3JtIHwgQWJzdHJhY3RDb250cm9sLFxuICAgIGZvcm1OYW1lPzogc3RyaW5nLFxuICAgIF9pbmRleD86IG51bWJlcixcbiAgICBwYXJlbnQ/OiBzdHJpbmcsXG4gICk6IElFcnJvciB7XG4gICAgLy8gZGVidWdnZXI7XG4gICAgbGV0IG1lc3NhZ2VzOiBJRXJyb3IgPSBbXTtcbiAgICBpZiAoaGFzRXJyb3IoZm9ybSkpIHtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgbWVzc2FnZXMucHVzaCh7XG4gICAgICAgIGZvcm1Db250cm9sOiBmb3JtLFxuICAgICAgICBsYWJlbDpcbiAgICAgICAgICAoX2luZGV4ID8gYEl0ZW0gJHtfaW5kZXh9OiBgIDogJycpICtcbiAgICAgICAgICAoZm9ybS5sYWJlbFZhbHVlIHx8XG4gICAgICAgICAgICAoZm9ybU5hbWUgPyB0aGlzLnVTLmZvcm1hdEZpZWxkKGZvcm1OYW1lKSA6IGZvcm1OYW1lPy50b1NlbnRlbmNlQ2FzZSgpKSksXG4gICAgICAgIHBhcmVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cClcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm0uY29udHJvbHMpIHtcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtLmNvbnRyb2xzLCBrZXkpKSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNba2V5XTtcbiAgICAgICAgICBtZXNzYWdlcy5wdXNoKFxuICAgICAgICAgICAgLi4udGhpcy5nZXRFcnJvck1lc3NhZ2VzKFxuICAgICAgICAgICAgICBjb250cm9sLFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIF9pbmRleCxcbiAgICAgICAgICAgICAgZm9ybS5sYWJlbFZhbHVlIHx8IChmb3JtTmFtZSA/IHRoaXMudVMuZm9ybWF0RmllbGQoZm9ybU5hbWUpIDogcGFyZW50KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGVsc2UgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtQXJyYXkpXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZm9ybS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNbaW5kZXhdO1xuICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgbWVzc2FnZXMucHVzaChcbiAgICAgICAgICAuLi50aGlzLmdldEVycm9yTWVzc2FnZXMoXG4gICAgICAgICAgICBjb250cm9sLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgaW5kZXggKyAxLFxuICAgICAgICAgICAgZm9ybS5sYWJlbFZhbHVlIHx8IChmb3JtTmFtZSA/IHRoaXMudVMuZm9ybWF0RmllbGQoZm9ybU5hbWUpIDogcGFyZW50KSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIHJldHVybiBtZXNzYWdlcztcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICAvLyBjb25zb2xlLmxvZygnbWVzc2FnZScsIHRoaXMubWVzc2FnZSk7XG4gIH1cbn1cbnR5cGUgRm9ybSA9IEZvcm1Hcm91cCB8IEZvcm1Db250cm9sIHwgRm9ybUFycmF5O1xudHlwZSBJRXJyb3IgPSB7IGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7IGxhYmVsOiBzdHJpbmc7IHBhcmVudDogc3RyaW5nIHwgbnVsbCB9W107XG5mdW5jdGlvbiBoYXNFcnJvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgaWYgKGNvbnRyb2w/LnBlbmRpbmcpIHJldHVybiB0cnVlO1xuICBlbHNlIGlmICghY29udHJvbD8uZXJyb3JzKSByZXR1cm4gZmFsc2U7XG4gIGVsc2UgaWYgKE9iamVjdC5rZXlzKGNvbnRyb2wuZXJyb3JzKS5sZW5ndGgpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59XG4iLCJAaWYgKGhhc0Vycm9yKCkpIHtcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG10LTJcIj5cbiAgICA8YXBwLWJ0blxuICAgICAgdGV4dD1cIkZvcm0gRXJyb3JzXCJcbiAgICAgIGljb249XCJpbmZvXCJcbiAgICAgIHR5cGU9XCJjbGVhclwiXG4gICAgICBtY2xhc3M9XCJidG4tb3V0bGluZS13YXJuaW5nXCJcbiAgICAgIChtY2xpY2spPVwiZXJyQ29udC5oaWRkZW4gPSAhZXJyQ29udC5oaWRkZW5cIiAvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlciBmb3JtLWVycm9yLWNvbnRhaW5lciBwLTMgbXQtMlwiICNlcnJDb250IFtoaWRkZW5dPVwidHJ1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgcm93LWNvbHMtbGcte3sgbGdHcmlkTm8oKSB9fSByb3ctY29scy14eGwte3sgeHhsR3JpZE5vKCkgfX1cIj5cbiAgICAgIEBpZiAoZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlLTNcIj57eyAnRm9ybSBlcnJvcnMnIHwgYXBwVHJhbnNsYXRlIHwgYXN5bmMgfX08L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPGhyIGNsYXNzPVwibXktMFwiPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChpdGVtIG9mIGVycm9ycygpOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBpZiAoaXRlbS5mb3JtQ29udHJvbCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1pdGVtLWNhc2VcIj5cbiAgICAgICAgICAgIEBpZiAoaXRlbS5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgPGFwcC1pbmZvLWljb24gdGV4dD1cIkdyb3VwOiB7eyBpdGVtLnBhcmVudCB9fVwiIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIiBbbWF0VG9vbHRpcF09XCJpdGVtLnBhcmVudFwiPlBhcmVudDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGFwcC12YWxpZGF0aW9uLW1lc3NhZ2VcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWwgfCB0aXRsZWNhc2VcIlxuICAgICAgICAgICAgICBbaWdub3JlRGlydGluZXNzXT1cInRydWVcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJpdGVtLmZvcm1Db250cm9sXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBSVQsUUFBUSxFQUVSLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQW1CLFNBQVMsRUFBZSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWlCckUsTUFBTSxPQUFPLGtCQUFrQjtJQXNE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Q3ZFLENBQ0YsQ0FBQzthQUNIO1FBQ0gsT0FBTyxRQUFRLENBQUM7UUFDaEIsWUFBWTtRQUNaLHdDQUF3QztJQUMxQyxDQUFDOzhHQTVHVSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw0Y0N0Qy9CLHF0Q0FvQ0EsK09ETkksWUFBWSw0SUFDWixnQkFBZ0IscURBQ2hCLDBCQUEwQiwyTkFDMUIsWUFBWSxrZ0JBQ1osZ0JBQWdCLCtCQUNoQixpQkFBaUI7OzJGQUdSLGtCQUFrQjtrQkFmOUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUlQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBQzFCLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixpQkFBaUI7cUJBQ2xCOztBQWtISCxTQUFTLFFBQVEsQ0FBQyxPQUF3QjtJQUN4QyxJQUFJLE9BQU8sRUFBRSxPQUFPO1FBQUUsT0FBTyxJQUFJLENBQUM7U0FDN0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7U0FDbkMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDekQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBtZXJnZSwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU0RLVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IHVuaXFCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5mb0ljb25Db21wb25lbnQgfSBmcm9tICcuLi9pbmZvLWljb24vaW5mby1pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNES1RyYW5zbGF0ZVBpcGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQnRuQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgSW5mb0ljb25Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCB7XG4gIC8vIHJlYWRvbmx5IGVycm9ycyA9IHNpZ25hbDx7IGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7IGxhYmVsOiBzdHJpbmc7IHBhcmVudD86IHN0cmluZyB9W10+KFtdKTtcbiAgcmVhZG9ubHkgZm9ybSA9IGlucHV0PEZvcm0gfCBGb3JtW10+KCk7XG4gIHJlYWRvbmx5IGVycm9ycyA9IHRvU2lnbmFsPElFcnJvcj4oXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuZm9ybSkucGlwZShcbiAgICAgIGZpbHRlcigodikgPT4gISF2KSxcbiAgICAgIHN3aXRjaE1hcCgodikgPT5cbiAgICAgICAgQXJyYXkuaXNBcnJheSh2KVxuICAgICAgICAgID8gbWVyZ2UoLi4udi5tYXAoKGYpID0+IGYuc3RhdHVzQ2hhbmdlcykpLnBpcGUoXG4gICAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgICBtYXAoKGZvcm1TdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBmb3JtU3RhdHVzID09ICdJTlZBTElEJyB8fFxuICAgICAgICAgICAgICAgICAgZm9ybVN0YXR1cyA9PSAnUEVORElORycgfHxcbiAgICAgICAgICAgICAgICAgIHYuc29tZSgoZikgPT4gZi5zdGF0dXMgPT0gJ0lOVkFMSUQnIHx8IGYuc3RhdHVzID09ICdQRU5ESU5HJylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICB1bmlxQnkoXG4gICAgICAgICAgICAgICAgICAgICAgdi5mbGF0TWFwKChmKSA9PiB0aGlzLmdldEVycm9yTWVzc2FnZXMoZikpLFxuICAgICAgICAgICAgICAgICAgICAgICdtZXNzYWdlJyxcbiAgICAgICAgICAgICAgICAgICAgKSB8fCBbXVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogdi5zdGF0dXNDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgIGRlYm91bmNlVGltZSg2MDApLFxuICAgICAgICAgICAgICBtYXAoKGZvcm1TdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBmb3JtU3RhdHVzID09ICdJTlZBTElEJyB8fFxuICAgICAgICAgICAgICAgICAgZm9ybVN0YXR1cyA9PSAnUEVORElORycgfHxcbiAgICAgICAgICAgICAgICAgIHYuc3RhdHVzID09ICdJTlZBTElEJyB8fFxuICAgICAgICAgICAgICAgICAgdi5zdGF0dXMgPT0gJ1BFTkRJTkcnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXJyb3JNZXNzYWdlcyh2KTtcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICksXG4gICAgICBkZWJvdW5jZVRpbWUoNjAwKSxcbiAgICApLFxuICApO1xuXG4gIC8vIHByb3RlY3RlZCBmb3JtPzogRm9ybTtcbiAgLy8gcHJvdGVjdGVkIGZvcm1zPzogRm9ybVtdO1xuICByZWFkb25seSBsZ0dyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMik7XG4gIHJlYWRvbmx5IHh4bEdyaWRObyA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oMyk7XG5cbiAgcmVhZG9ubHkgaGFzRXJyb3IgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLmVycm9ycygpPy5sZW5ndGggPiAwKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHB1YmxpYyB1UzogVXRpbGl0eVNlcnZpY2UsXG4gICkge31cblxuICBnZXRFcnJvck1lc3NhZ2VzKFxuICAgIGZvcm06IEZvcm0gfCBBYnN0cmFjdENvbnRyb2wsXG4gICAgZm9ybU5hbWU/OiBzdHJpbmcsXG4gICAgX2luZGV4PzogbnVtYmVyLFxuICAgIHBhcmVudD86IHN0cmluZyxcbiAgKTogSUVycm9yIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBsZXQgbWVzc2FnZXM6IElFcnJvciA9IFtdO1xuICAgIGlmIChoYXNFcnJvcihmb3JtKSkge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICBtZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgZm9ybUNvbnRyb2w6IGZvcm0sXG4gICAgICAgIGxhYmVsOlxuICAgICAgICAgIChfaW5kZXggPyBgSXRlbSAke19pbmRleH06IGAgOiAnJykgK1xuICAgICAgICAgIChmb3JtLmxhYmVsVmFsdWUgfHxcbiAgICAgICAgICAgIChmb3JtTmFtZSA/IHRoaXMudVMuZm9ybWF0RmllbGQoZm9ybU5hbWUpIDogZm9ybU5hbWU/LnRvU2VudGVuY2VDYXNlKCkpKSxcbiAgICAgICAgcGFyZW50LFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUdyb3VwKVxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybS5jb250cm9scykge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZvcm0uY29udHJvbHMsIGtleSkpIHtcbiAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5jb250cm9sc1trZXldO1xuICAgICAgICAgIG1lc3NhZ2VzLnB1c2goXG4gICAgICAgICAgICAuLi50aGlzLmdldEVycm9yTWVzc2FnZXMoXG4gICAgICAgICAgICAgIGNvbnRyb2wsXG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgX2luZGV4LFxuICAgICAgICAgICAgICBmb3JtLmxhYmVsVmFsdWUgfHwgKGZvcm1OYW1lID8gdGhpcy51Uy5mb3JtYXRGaWVsZChmb3JtTmFtZSkgOiBwYXJlbnQpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgZWxzZSBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1BcnJheSlcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmb3JtLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybS5jb250cm9sc1tpbmRleF07XG4gICAgICAgIGRlYnVnZ2VyO1xuICAgICAgICBtZXNzYWdlcy5wdXNoKFxuICAgICAgICAgIC4uLnRoaXMuZ2V0RXJyb3JNZXNzYWdlcyhcbiAgICAgICAgICAgIGNvbnRyb2wsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBpbmRleCArIDEsXG4gICAgICAgICAgICBmb3JtLmxhYmVsVmFsdWUgfHwgKGZvcm1OYW1lID8gdGhpcy51Uy5mb3JtYXRGaWVsZChmb3JtTmFtZSkgOiBwYXJlbnQpLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIC8vIGNvbnNvbGUubG9nKCdtZXNzYWdlJywgdGhpcy5tZXNzYWdlKTtcbiAgfVxufVxudHlwZSBGb3JtID0gRm9ybUdyb3VwIHwgRm9ybUNvbnRyb2wgfCBGb3JtQXJyYXk7XG50eXBlIElFcnJvciA9IHsgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgbGFiZWw6IHN0cmluZzsgcGFyZW50OiBzdHJpbmcgfCBudWxsIH1bXTtcbmZ1bmN0aW9uIGhhc0Vycm9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICBpZiAoY29udHJvbD8ucGVuZGluZykgcmV0dXJuIHRydWU7XG4gIGVsc2UgaWYgKCFjb250cm9sPy5lcnJvcnMpIHJldHVybiBmYWxzZTtcbiAgZWxzZSBpZiAoT2JqZWN0LmtleXMoY29udHJvbC5lcnJvcnMpLmxlbmd0aCkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBmYWxzZTtcbn1cbiIsIkBpZiAoaGFzRXJyb3IoKSkge1xuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmQgbXQtMlwiPlxuICAgIDxhcHAtYnRuXG4gICAgICB0ZXh0PVwiRm9ybSBFcnJvcnNcIlxuICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgdHlwZT1cImNsZWFyXCJcbiAgICAgIG1jbGFzcz1cImJ0bi1vdXRsaW5lLXdhcm5pbmdcIlxuICAgICAgKG1jbGljayk9XCJlcnJDb250LmhpZGRlbiA9ICFlcnJDb250LmhpZGRlblwiIC8+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGZvcm0tZXJyb3ItY29udGFpbmVyIHAtMyBtdC0yXCIgI2VyckNvbnQgW2hpZGRlbl09XCJ0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy1sZy17eyBsZ0dyaWRObygpIH19IHJvdy1jb2xzLXh4bC17eyB4eGxHcmlkTm8oKSB9fVwiPlxuICAgICAgQGlmIChmYWxzZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIGQtZmxleFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGUtM1wiPnt7ICdGb3JtIGVycm9ycycgfCBhcHBUcmFuc2xhdGUgfCBhc3luYyB9fTwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8aHIgY2xhc3M9XCJteS0wXCI+IC0tPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZXJyb3JzKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgQGlmIChpdGVtLmZvcm1Db250cm9sKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWl0ZW0tY2FzZVwiPlxuICAgICAgICAgICAgQGlmIChpdGVtLnBhcmVudCkge1xuICAgICAgICAgICAgICA8YXBwLWluZm8taWNvbiB0ZXh0PVwiR3JvdXA6IHt7IGl0ZW0ucGFyZW50IH19XCIgLz5cbiAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiXCIgW21hdFRvb2x0aXBdPVwiaXRlbS5wYXJlbnRcIj5QYXJlbnQ8L2Rpdj4gLS0+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8YXBwLXZhbGlkYXRpb24tbWVzc2FnZVxuICAgICAgICAgICAgICBbbGFiZWxdPVwiaXRlbS5sYWJlbCB8IHRpdGxlY2FzZVwiXG4gICAgICAgICAgICAgIFtpZ25vcmVEaXJ0aW5lc3NdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtjb250cm9sXT1cIml0ZW0uZm9ybUNvbnRyb2xcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuIl19
@@ -12703,7 +12703,7 @@ class FormErrorComponent {
12703
12703
  // console.log('message', this.message);
12704
12704
  }
12705
12705
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, deps: [{ token: i0.ElementRef }, { token: UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
12706
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <div class=\"\" [matTooltip]=\"item.parent\">Parent</div>\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
12706
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: FormErrorComponent, isStandalone: true, selector: "form-error", inputs: { form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, lgGridNo: { classPropertyName: "lgGridNo", publicName: "lgGridNo", isSignal: true, isRequired: false, transformFunction: null }, xxlGridNo: { classPropertyName: "xxlGridNo", publicName: "xxlGridNo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SDKTranslatePipe, name: "appTranslate" }, { kind: "component", type: ValidationMessageComponent, selector: "app-validation-message", inputs: ["debug", "label", "hideOverflow", "minLength", "maxLength", "ignoreDirtiness", "customMessage", "control", "input"], outputs: ["labelChange"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "verbose", "loading", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "form", "forms", "help", "iconBtn", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid", "disabled"], outputs: ["loadingChange", "leftCustomIconChange", "mclick", "disabledChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "component", type: InfoIconComponent, selector: "app-info-icon", inputs: ["text", "coloured", "left", "right"] }] }); }
12707
12707
  }
12708
12708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormErrorComponent, decorators: [{
12709
12709
  type: Component,
@@ -12714,7 +12714,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
12714
12714
  BtnComponent,
12715
12715
  MatTooltipModule,
12716
12716
  InfoIconComponent,
12717
- ], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <div class=\"\" [matTooltip]=\"item.parent\">Parent</div>\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"] }]
12717
+ ], template: "@if (hasError()) {\n <div class=\"d-flex justify-content-end mt-2\">\n <app-btn\n text=\"Form Errors\"\n icon=\"info\"\n type=\"clear\"\n mclass=\"btn-outline-warning\"\n (mclick)=\"errCont.hidden = !errCont.hidden\" />\n </div>\n <div class=\"border form-error-container p-3 mt-2\" #errCont [hidden]=\"true\">\n <div class=\"row row-cols-lg-{{ lgGridNo() }} row-cols-xxl-{{ xxlGridNo() }}\">\n @if (false) {\n <div class=\"col-lg-12 d-flex\">\n <div>\n <div class=\"pe-3\">{{ 'Form errors' | appTranslate | async }}</div>\n <!-- <hr class=\"my-0\"> -->\n </div>\n </div>\n }\n @for (item of errors(); track item) {\n @if (item.formControl) {\n <div class=\"error-item-case\">\n @if (item.parent) {\n <app-info-icon text=\"Group: {{ item.parent }}\" />\n <!-- <div class=\"\" [matTooltip]=\"item.parent\">Parent</div> -->\n }\n <app-validation-message\n [label]=\"item.label | titlecase\"\n [ignoreDirtiness]=\"true\"\n [control]=\"item.formControl\" />\n </div>\n }\n }\n </div>\n </div>\n}\n", styles: [":host ::ng-deep .errormssg{color:#870000}:host .form-error-container{border-radius:10px}:host app-info-icon{margin-right:5px}:host .error-item-case{display:flex;align-items:center}\n"] }]
12718
12718
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: UtilityService }] });
12719
12719
  function hasError(control) {
12720
12720
  if (control?.pending)