@klippa/ngx-enhancy-forms 14.15.0 → 14.16.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.
@@ -7,9 +7,9 @@ import * as i2 from "@angular/forms";
7
7
  export class ToggleComponent extends ValueAccessorBase {
8
8
  }
9
9
  ToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
- ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: ToggleComponent, selector: "klp-form-toggle", providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
10
+ ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: ToggleComponent, selector: "klp-form-toggle", providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative;padding-right:6px}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer;margin:0}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
11
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToggleComponent, decorators: [{
12
12
  type: Component,
13
- args: [{ selector: 'klp-form-toggle', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"] }]
13
+ args: [{ selector: 'klp-form-toggle', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative;padding-right:6px}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer;margin:0}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"] }]
14
14
  }] });
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDOzs7O0FBUXZGLE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUEwQjs7NEdBQWxELGVBQWU7Z0dBQWYsZUFBZSwwQ0FGaEIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyxpRENSckYsNlhBVUE7MkZEQWEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDQyxpQkFBaUIsYUFHaEIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1ZhbHVlQWNjZXNzb3JCYXNlfSBmcm9tICcuLi92YWx1ZS1hY2Nlc3Nvci1iYXNlL3ZhbHVlLWFjY2Vzc29yLWJhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAna2xwLWZvcm0tdG9nZ2xlJyxcblx0dGVtcGxhdGVVcmw6ICcuL3RvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3RvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxuXHRwcm92aWRlcnM6IFt7cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBUb2dnbGVDb21wb25lbnQsIG11bHRpOiB0cnVlfV0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZUNvbXBvbmVudCBleHRlbmRzIFZhbHVlQWNjZXNzb3JCYXNlPGJvb2xlYW4+IHtcbn1cbiIsIjxkaXYgY2xhc3M9XCJjb21wb25lbnRDb250YWluZXJcIiBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6IGRpc2FibGVkfVwiPlxuXHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJuYXRpdmVDaGVja2JveFwiXG5cdFx0WyhuZ01vZGVsKV09XCJpbm5lclZhbHVlXCJcblx0XHQoaW5wdXQpPVwic2V0SW5uZXJWYWx1ZUFuZE5vdGlmeSgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpOyB0b3VjaCgpXCJcblx0XHRbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuXHRcdFtuZ0NsYXNzXT1cIntzaG93RXJyb3JzOiBpc0luRXJyb3JTdGF0ZSgpfVwiXG5cdCAjbmF0aXZlSW5wdXRSZWZcblx0Lz5cblx0PGRpdiBjbGFzcz1cInRvZ2dsZVZpc3VhbFwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -96,10 +96,10 @@ export class FormElementComponent {
96
96
  }
97
97
  }
98
98
  FormElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormElementComponent, deps: [{ token: i1.FormComponent, optional: true }, { token: FORM_ERROR_MESSAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
99
- FormElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormElementComponent, selector: "klp-form-element", inputs: { caption: "caption", direction: "direction", captionSpacing: "captionSpacing", spaceDistribution: "spaceDistribution", swapInputAndCaption: "swapInputAndCaption", errorMessageAsTooltip: "errorMessageAsTooltip" }, viewQueries: [{ propertyName: "internalComponentRef", first: true, predicate: ["internalComponentRef"], descendants: true }], ngImport: i0, template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.WithTooltipDirective, selector: "[klpWithTooltip]", inputs: ["klpWithTooltip"] }] });
99
+ FormElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormElementComponent, selector: "klp-form-element", inputs: { caption: "caption", direction: "direction", captionSpacing: "captionSpacing", spaceDistribution: "spaceDistribution", swapInputAndCaption: "swapInputAndCaption", errorMessageAsTooltip: "errorMessageAsTooltip" }, viewQueries: [{ propertyName: "internalComponentRef", first: true, predicate: ["internalComponentRef"], descendants: true }], ngImport: i0, template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66',\n\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.fixedInputWidth{flex:1 1 0px;overflow:hidden}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.inputContainer.fixedInputWidth{flex:0 0 auto}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.WithTooltipDirective, selector: "[klpWithTooltip]", inputs: ["klpWithTooltip"] }] });
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormElementComponent, decorators: [{
101
101
  type: Component,
102
- args: [{ selector: 'klp-form-element', template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"] }]
102
+ args: [{ selector: 'klp-form-element', template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66',\n\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.fixedInputWidth{flex:1 1 0px;overflow:hidden}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.inputContainer.fixedInputWidth{flex:0 0 auto}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"] }]
103
103
  }], ctorParameters: function () { return [{ type: i1.FormComponent, decorators: [{
104
104
  type: Optional
105
105
  }] }, { type: undefined, decorators: [{
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
123
123
  type: ViewChild,
124
124
  args: ['internalComponentRef']
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXhHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFJN0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXNCO0lBQ3hELEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckMsR0FBRyxFQUFFLGlDQUFpQztJQUN0QyxRQUFRLEVBQUUsVUFBVTtJQUNwQixLQUFLLEVBQUUsMkJBQTJCO0lBQ2xDLFNBQVMsRUFBRSxnREFBZ0Q7SUFDM0QsU0FBUyxFQUFFLGlEQUFpRDtJQUM1RCxPQUFPLEVBQUUseUJBQXlCO0lBQ2xDLGFBQWEsRUFBRSxzQkFBc0I7SUFDckMsSUFBSSxFQUFFLG9CQUFvQjtDQUMxQixDQUFDO0FBT0YsTUFBTSxPQUFPLG9CQUFvQjtJQWVoQyxZQUNzQixNQUFxQixFQUNPLGNBQW1DO1FBRC9ELFdBQU0sR0FBTixNQUFNLENBQWU7UUFDTyxtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFkckUsY0FBUyxHQUE4QixZQUFZLENB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dCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtWYWx1ZUFjY2Vzc29yQmFzZX0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdmFsdWUtYWNjZXNzb3ItYmFzZS92YWx1ZS1hY2Nlc3Nvci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0N1c3RvbUVycm9yTWVzc2FnZXMsIEZvcm1FcnJvck1lc3NhZ2VzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge2lzVmFsdWVTZXR9IGZyb20gJy4uLy4uL3V0aWwvdmFsdWVzJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuXG5cbmV4cG9ydCBjb25zdCBGT1JNX0VSUk9SX01FU1NBR0VTID0gbmV3IEluamVjdGlvblRva2VuPEN1c3RvbUVycm9yTWVzc2FnZXM+KCdmb3JtLmVycm9yLm1lc3NhZ2VzJyk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VSUk9SX01FU1NBR0VTOiBGb3JtRXJyb3JNZXNzYWdlcyA9IHtcblx0bWluOiAnVXNlIGEgbnVtYmVyIGxhcmdlciB0aGFuICVtaW4lJyxcblx0bWF4OiAnVXNlIGEgbnVtYmVyIHNtYWxsZXIgdGhhbiAlbWF4JScsXG5cdHJlcXVpcmVkOiAnUmVxdWlyZWQnLFxuXHRlbWFpbDogJ1VzZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxuXHRtaW5MZW5ndGg6ICdIYXMgdG8gYmUgbG9uZ2VyIHRoYW4gJW1pbkxlbmd0aCUgY2hhcmFjdGVyKHMpJyxcblx0bWF4TGVuZ3RoOiAnSGFzIHRvIGJlIHNob3J0ZXIgdGhhbiAlbWF4TGVuZ3RoJSBjaGFyYWN0ZXIocyknLFxuXHRwYXR0ZXJuOiAnVGhpcyBpbnB1dCBpcyBub3QgdmFsaWQnLFxuXHRtYXRjaFBhc3N3b3JkOiAnUGFzc3dvcmRzIG11c3QgbWF0Y2gnLFxuXHRkYXRlOiAnRW50ZXIgYSB2YWxpZCBkYXRlJyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2tscC1mb3JtLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vZm9ybS1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FbGVtZW50Q29tcG9uZW50IHtcblx0cHVibGljIGF0dGFjaGVkQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuXHRASW5wdXQoKSBwdWJsaWMgY2FwdGlvbjogc3RyaW5nO1xuXHRASW5wdXQoKSBwdWJsaWMgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXHRASW5wdXQoKSBwdWJsaWMgY2FwdGlvblNwYWNpbmc6ICdwZXJjZW50YWdlcycgfCAnbm9uZScgPSAncGVyY2VudGFnZXMnO1xuXHRASW5wdXQoKSBwdWJsaWMgc3BhY2VEaXN0cmlidXRpb246ICc0MC02MCcgfCAnMzQtNjYnIHwgJzMwLTcwJyA9ICc0MC02MCc7XG5cdEBJbnB1dCgpIHB1YmxpYyBzd2FwSW5wdXRBbmRDYXB0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cdEBJbnB1dCgpIHB1YmxpYyBlcnJvck1lc3NhZ2VBc1Rvb2x0aXA6IGJvb2xlYW4gPSBmYWxzZTtcblx0QFZpZXdDaGlsZCgnaW50ZXJuYWxDb21wb25lbnRSZWYnKSBwdWJsaWMgaW50ZXJuYWxDb21wb25lbnRSZWY6IEVsZW1lbnRSZWY7XG5cblx0cHVibGljIGNhcHRpb25SZWY6IEVsZW1lbnRSZWY7XG5cdHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBGb3JtRXJyb3JNZXNzYWdlcyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVM7XG5cdHB1YmxpYyBjdXN0b21FcnJvckhhbmRsZXJzOiBBcnJheTx7IGVycm9yOiBzdHJpbmc7IHRlbXBsYXRlUmVmOiBFbGVtZW50UmVmIH0+ID0gW107XG5cdHByaXZhdGUgaW5wdXQ6IFZhbHVlQWNjZXNzb3JCYXNlPGFueT47XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0IEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50OiBGb3JtQ29tcG9uZW50LFxuXHRcdEBJbmplY3QoRk9STV9FUlJPUl9NRVNTQUdFUykgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjdXN0b21NZXNzYWdlczogQ3VzdG9tRXJyb3JNZXNzYWdlcyxcblx0KSB7fVxuXG5cdHB1YmxpYyBzaG91bGRTaG93RXJyb3JNZXNzYWdlcygpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5wYXJlbnQ/LnNob3dFcnJvck1lc3NhZ2VzICE9PSBmYWxzZTtcblx0fVxuXG5cdHB1YmxpYyBzdWJzdGl0dXRlUGFyYW1ldGVycyhtZXNzYWdlOiBzdHJpbmcsIHBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmcge1xuXHRcdHJldHVybiBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5yZWR1Y2UoKG1zZywga2V5KSA9PiB7XG5cdFx0XHRyZXR1cm4gbXNnLnJlcGxhY2UoYCUke2tleX0lYCwgcGFyYW1ldGVyc1trZXldKTtcblx0XHR9LCBtZXNzYWdlKTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCwgaW5wdXQ6IFZhbHVlQWNjZXNzb3JCYXNlPGFueT4gPSBudWxsKTogdm9pZCB7XG5cdFx0dGhpcy5hdHRhY2hlZENvbnRyb2wgPSBmb3JtQ29udHJvbDtcblx0XHR0aGlzLnBhcmVudC5yZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2wsIHRoaXMpO1xuXHRcdHRoaXMuaW5wdXQgPSBpbnB1dDtcblx0fVxuXG5cdHB1YmxpYyB1bnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogdm9pZCB7XG5cdFx0dGhpcy5hdHRhY2hlZENvbnRyb2wgPSBudWxsO1xuXHRcdHRoaXMucGFyZW50LnVucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRBdHRhY2hlZENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcblx0XHRyZXR1cm4gdGhpcy5hdHRhY2hlZENvbnRyb2w7XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJFcnJvckhhbmRsZXIoZXJyb3I6IHN0cmluZywgdGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcblx0XHR0aGlzLmN1c3RvbUVycm9ySGFuZGxlcnMucHVzaCh7ZXJyb3IsIHRlbXBsYXRlUmVmfSk7XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJDYXB0aW9uKHRlbXBsYXRlUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG5cdFx0dGhpcy5jYXB0aW9uUmVmID0gdGVtcGxhdGVSZWY7XG5cdH1cblxuXHRnZXRFcnJvclRvU2hvdygpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLmF0dGFjaGVkQ29udHJvbD8udG91Y2hlZCA9PT0gdHJ1ZSAmJiB0aGlzLmF0dGFjaGVkQ29udHJvbD8uZXJyb3JzKSB7XG5cdFx0XHRyZXR1cm4gT2JqZWN0LmtleXModGhpcy5hdHRhY2hlZENvbnRyb2w/LmVycm9ycylbMF07XG5cdFx0fVxuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Z2V0Q3VzdG9tRXJyb3JIYW5kbGVyKGVycm9yOiBzdHJpbmcpOiB7IGVycm9yOiBzdHJpbmc7IHRlbXBsYXRlUmVmOiBFbGVtZW50UmVmIH0ge1xuXHRcdHJldHVybiB0aGlzLmN1c3RvbUVycm9ySGFuZGxlcnMuZmluZCgoZSkgPT4gZS5lcnJvciA9PT0gZXJyb3IpO1xuXHR9XG5cblx0c2hvd0RlZmF1bHRFcnJvcihlcnJvcjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0RXJyb3JUb1Nob3coKSA9PT0gZXJyb3IgJiYgIXRoaXMuY3VzdG9tRXJyb3JIYW5kbGVycy5zb21lKChlKSA9PiBlLmVycm9yID09PSBlcnJvcik7XG5cdH1cblxuXHRnZXRTY3JvbGxhYmxlUGFyZW50KG5vZGUpOiBhbnkge1xuXHRcdGlmIChub2RlID09IG51bGwpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRpZiAobm9kZS5zY3JvbGxIZWlnaHQgPiBub2RlLmNsaWVudEhlaWdodCkge1xuXHRcdFx0cmV0dXJuIG5vZGU7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB0aGlzLmdldFNjcm9sbGFibGVQYXJlbnQobm9kZS5wYXJlbnROb2RlKTtcblx0XHR9XG5cdH1cblxuXHRzY3JvbGxUbygpOiB2b2lke1xuXHRcdHRoaXMuaW50ZXJuYWxDb21wb25lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh0cnVlKTtcblx0XHQvLyB0byBnaXZlIHNvbWUgYnJlYXRoaW5nIHJvb20sIHdlIHNjcm9sbCAxMDBweCBtb3JlIHRvIHRoZSB0b3Bcblx0XHR0aGlzLmdldFNjcm9sbGFibGVQYXJlbnQodGhpcy5pbnRlcm5hbENvbXBvbmVudFJlZi5uYXRpdmVFbGVtZW50KT8uc2Nyb2xsQnkoMCwgLTEwMCk7XG5cdH1cblxuXHRpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xuXHRcdGlmIChpc1ZhbHVlU2V0KHRoaXMuaW5wdXQpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5pbnB1dC5oYXNWYWxpZGF0b3IoJ3JlcXVpcmVkJyk7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGdldEVycm9yTWVzc2FnZShrZXk6IGtleW9mIEZvcm1FcnJvck1lc3NhZ2VzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5jdXN0b21NZXNzYWdlcz8uW2tleV0/LigpID8/IHRoaXMuZXJyb3JNZXNzYWdlc1trZXldO1xuXHR9XG5cblx0cHVibGljIGdldEVycm9yTG9jYXRpb24oKTogJ2JlbG93Q2FwdGlvbicgfCAncmlnaHRPZkNhcHRpb24nIHtcblx0XHRyZXR1cm4gdGhpcy5wYXJlbnQ/LmVycm9yTWVzc2FnZUxvY2F0aW9uID8/ICdiZWxvd0NhcHRpb24nO1xuXHR9XG59XG4iLCI8bmctdGVtcGxhdGUgI2Vycm9yUmVmPlxuXHQ8ZGl2ICpuZ0lmPVwic2hvdWxkU2hvd0Vycm9yTWVzc2FnZXMoKSAmJiBnZXRFcnJvclRvU2hvdygpXCIgY2xhc3M9XCJlcnJvckNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cIntoYXNDYXB0aW9uOiBjYXB0aW9uIHx8IGNhcHRpb25SZWYsICdkMzAtNzAnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJzMwLTcwJywgJ2QzNC02Nic6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzQtNjYnfVwiIFtrbHBXaXRoVG9vbHRpcF09XCIhZXJyb3JNZXNzYWdlQXNUb29sdGlwICYmIGdldEVycm9yTG9jYXRpb24oKSA9PT0gJ3JpZ2h0T2ZDYXB0aW9uJ1wiPlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdtaW4nKVwiPnt7c3Vic3RpdHV0ZVBhcmFtZXRlcnMoZ2V0RXJyb3JNZXNzYWdlKFwibWluXCIpLCB7bWluOiBhdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1pbi5taW59KX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ21heCcpXCI+e3tzdWJzdGl0dXRlUGFyYW1ldGVycyhnZXRFcnJvck1lc3NhZ2UoXCJtYXhcIiksIHttYXg6IGF0dGFjaGVkQ29udHJvbC5lcnJvcnMubWF4Lm1heH0pfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcigncmVxdWlyZWQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKFwicmVxdWlyZWRcIil9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdlbWFpbCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJlbWFpbFwiKX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ21pbmxlbmd0aCcpXCI+e3tzdWJzdGl0dXRlUGFyYW1ldGVycyhnZXRFcnJvck1lc3NhZ2UoXCJtaW5MZW5ndGhcIiksIHttaW5MZW5ndGg6IGF0dGFjaGVkQ29udHJvbC5lcnJvcnMubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RofSl9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdtYXhsZW5ndGgnKVwiPnt7c3Vic3RpdHV0ZVBhcmFtZXRlcnMoZ2V0RXJyb3JNZXNzYWdlKFwibWF4TGVuZ3RoXCIpLCB7bWF4TGVuZ3RoOiBhdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1heGxlbmd0aC5yZXF1aXJlZExlbmd0aH0pfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcigncGF0dGVybicpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJwYXR0ZXJuXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignTWF0Y2hQYXNzd29yZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJtYXRjaFBhc3N3b3JkXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignZGF0ZScpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJkYXRlXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignbWVzc2FnZScpXCI+e3thdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1lc3NhZ2UudmFsdWV9fTwvZGl2PlxuXHRcdDxkaXYgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2V0Q3VzdG9tRXJyb3JIYW5kbGVyKGdldEVycm9yVG9TaG93KCkpPy50ZW1wbGF0ZVJlZlwiPjwvZGl2PlxuXHQ8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyAmJiAhZXJyb3JNZXNzYWdlQXNUb29sdGlwXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JSZWZcIj48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImNvbXBvbmVudENvbnRhaW5lclwiIFtuZ0NsYXNzXT1cIntoYXNDYXB0aW9uOiBjYXB0aW9uIHx8IGNhcHRpb25SZWYsIHZlcnRpY2FsOiBkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcsIHJldmVyc2VPcmRlcjogc3dhcElucHV0QW5kQ2FwdGlvbn1cIiAjaW50ZXJuYWxDb21wb25lbnRSZWY+XG5cdDxkaXYgY2xhc3M9XCJjYXB0aW9uXCIgKm5nSWY9XCJjYXB0aW9uIHx8IGNhcHRpb25SZWZcIlxuXHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdGhhc0Vycm9yczogZ2V0RXJyb3JUb1Nob3coKSAmJiBhdHRhY2hlZENvbnRyb2wudG91Y2hlZCxcblx0XHRcdHBlcmNlbnRhZ2VTcGFjaW5nOiBjYXB0aW9uU3BhY2luZyA9PT0gJ3BlcmNlbnRhZ2VzJyxcblx0XHRcdCdkMzAtNzAnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJzMwLTcwJyxcblx0XHRcdCdkMzQtNjYnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJzM0LTY2Jyxcblx0XHRcdHdpdGhFcnJvclJpZ2h0T2ZDYXB0aW9uOiBnZXRFcnJvckxvY2F0aW9uKCkgPT09ICdyaWdodE9mQ2FwdGlvbidcblx0XHR9XCJcblx0PlxuXHRcdDxkaXYgKm5nSWY9XCJjYXB0aW9uUmVmXCIgY2xhc3M9XCJjYXB0aW9uUmVmQ29udGFpbmVyXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhcHRpb25SZWZcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdDxkaXYgKm5nSWY9XCJpc1JlcXVpcmVkKClcIj4mbmJzcDsqPC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIiFjYXB0aW9uUmVmXCIgY2xhc3M9XCJjYXB0aW9uVGV4dFwiPnt7Y2FwdGlvbn19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIj4mbmJzcDsqPC9zcGFuPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJyaWdodE9mQ2FwdGlvbkVycm9yXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZGlyZWN0aW9uID09PSAndmVydGljYWwnICYmIGdldEVycm9yTG9jYXRpb24oKSA9PT0gJ3JpZ2h0T2ZDYXB0aW9uJyAmJiAhZXJyb3JNZXNzYWdlQXNUb29sdGlwXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JSZWZcIj48L25nLWNvbnRhaW5lcj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcgJiYgZ2V0RXJyb3JMb2NhdGlvbigpID09PSAnYmVsb3dDYXB0aW9uJyAmJiAhZXJyb3JNZXNzYWdlQXNUb29sdGlwXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JSZWZcIj48L25nLWNvbnRhaW5lcj5cblx0PGRpdiBjbGFzcz1cImlucHV0Q29udGFpbmVyXCIgW25nQ2xhc3NdPVwie1xuXHRcdHBlcmNlbnRhZ2VTcGFjaW5nOiBjYXB0aW9uU3BhY2luZyA9PT0gJ3BlcmNlbnRhZ2VzJyxcblx0XHQnZDMwLTcwJzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczMC03MCcsXG5cdFx0J2QzNC02Nic6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzQtNjYnXG5cdH1cIj5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JNZXNzYWdlQXNUb29sdGlwICYmIHNob3VsZFNob3dFcnJvck1lc3NhZ2VzKCkgJiYgZ2V0RXJyb3JUb1Nob3coKVwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImVycm9yVG9vbHRpcFRyaWFuZ2xlXCI+PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZXJyb3JUb29sdGlwVHJpYW5nbGVXaGl0ZVwiPjwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImVycm9yVG9vbHRpcFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVycm9yUmVmXCI+PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXhHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFJN0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXNCO0lBQ3hELEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckMsR0FBRyxFQUFFLGlDQUFpQztJQUN0QyxRQUFRLEVBQUUsVUFBVTtJQUNwQixLQUFLLEVBQUUsMkJBQTJCO0lBQ2xDLFNBQVMsRUFBRSxnREFBZ0Q7SUFDM0QsU0FBUyxFQUFFLGlEQUFpRDtJQUM1RCxPQUFPLEVBQUUseUJBQXlCO0lBQ2xDLGFBQWEsRUFBRSxzQkFBc0I7SUFDckMsSUFBSSxFQUFFLG9CQUFvQjtDQUMxQixDQUFDO0FBT0YsTUFBTSxPQUFPLG9CQUFvQjtJQWVoQyxZQUNzQixNQUFxQixFQUNPLGNBQW1DO1FBRC9ELFdBQU0sR0FBTixNQUFNLENBQWU7UUFDTyxtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFkckUsY0FBUyxHQUE4QixZQUFZLENB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dCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtWYWx1ZUFjY2Vzc29yQmFzZX0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdmFsdWUtYWNjZXNzb3ItYmFzZS92YWx1ZS1hY2Nlc3Nvci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0N1c3RvbUVycm9yTWVzc2FnZXMsIEZvcm1FcnJvck1lc3NhZ2VzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge2lzVmFsdWVTZXR9IGZyb20gJy4uLy4uL3V0aWwvdmFsdWVzJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuXG5cbmV4cG9ydCBjb25zdCBGT1JNX0VSUk9SX01FU1NBR0VTID0gbmV3IEluamVjdGlvblRva2VuPEN1c3RvbUVycm9yTWVzc2FnZXM+KCdmb3JtLmVycm9yLm1lc3NhZ2VzJyk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VSUk9SX01FU1NBR0VTOiBGb3JtRXJyb3JNZXNzYWdlcyA9IHtcblx0bWluOiAnVXNlIGEgbnVtYmVyIGxhcmdlciB0aGFuICVtaW4lJyxcblx0bWF4OiAnVXNlIGEgbnVtYmVyIHNtYWxsZXIgdGhhbiAlbWF4JScsXG5cdHJlcXVpcmVkOiAnUmVxdWlyZWQnLFxuXHRlbWFpbDogJ1VzZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxuXHRtaW5MZW5ndGg6ICdIYXMgdG8gYmUgbG9uZ2VyIHRoYW4gJW1pbkxlbmd0aCUgY2hhcmFjdGVyKHMpJyxcblx0bWF4TGVuZ3RoOiAnSGFzIHRvIGJlIHNob3J0ZXIgdGhhbiAlbWF4TGVuZ3RoJSBjaGFyYWN0ZXIocyknLFxuXHRwYXR0ZXJuOiAnVGhpcyBpbnB1dCBpcyBub3QgdmFsaWQnLFxuXHRtYXRjaFBhc3N3b3JkOiAnUGFzc3dvcmRzIG11c3QgbWF0Y2gnLFxuXHRkYXRlOiAnRW50ZXIgYSB2YWxpZCBkYXRlJyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2tscC1mb3JtLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vZm9ybS1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FbGVtZW50Q29tcG9uZW50IHtcblx0cHVibGljIGF0dGFjaGVkQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuXHRASW5wdXQoKSBwdWJsaWMgY2FwdGlvbjogc3RyaW5nO1xuXHRASW5wdXQoKSBwdWJsaWMgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXHRASW5wdXQoKSBwdWJsaWMgY2FwdGlvblNwYWNpbmc6ICdwZXJjZW50YWdlcycgfCAnbm9uZScgPSAncGVyY2VudGFnZXMnO1xuXHRASW5wdXQoKSBwdWJsaWMgc3BhY2VEaXN0cmlidXRpb246ICc0MC02MCcgfCAnMzQtNjYnIHwgJzMwLTcwJyB8ICdmaXhlZElucHV0V2lkdGgnID0gJzQwLTYwJztcblx0QElucHV0KCkgcHVibGljIHN3YXBJbnB1dEFuZENhcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcblx0QElucHV0KCkgcHVibGljIGVycm9yTWVzc2FnZUFzVG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuXHRAVmlld0NoaWxkKCdpbnRlcm5hbENvbXBvbmVudFJlZicpIHB1YmxpYyBpbnRlcm5hbENvbXBvbmVudFJlZjogRWxlbWVudFJlZjtcblxuXHRwdWJsaWMgY2FwdGlvblJlZjogRWxlbWVudFJlZjtcblx0cHVibGljIGVycm9yTWVzc2FnZXM6IEZvcm1FcnJvck1lc3NhZ2VzID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUztcblx0cHVibGljIGN1c3RvbUVycm9ySGFuZGxlcnM6IEFycmF5PHsgZXJyb3I6IHN0cmluZzsgdGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYgfT4gPSBbXTtcblx0cHJpdmF0ZSBpbnB1dDogVmFsdWVBY2Nlc3NvckJhc2U8YW55PjtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHQgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnQ6IEZvcm1Db21wb25lbnQsXG5cdFx0QEluamVjdChGT1JNX0VSUk9SX01FU1NBR0VTKSBAT3B0aW9uYWwoKSBwcml2YXRlIGN1c3RvbU1lc3NhZ2VzOiBDdXN0b21FcnJvck1lc3NhZ2VzLFxuXHQpIHt9XG5cblx0cHVibGljIHNob3VsZFNob3dFcnJvck1lc3NhZ2VzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnBhcmVudD8uc2hvd0Vycm9yTWVzc2FnZXMgIT09IGZhbHNlO1xuXHR9XG5cblx0cHVibGljIHN1YnN0aXR1dGVQYXJhbWV0ZXJzKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZyB7XG5cdFx0cmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtZXRlcnMpLnJlZHVjZSgobXNnLCBrZXkpID0+IHtcblx0XHRcdHJldHVybiBtc2cucmVwbGFjZShgJSR7a2V5fSVgLCBwYXJhbWV0ZXJzW2tleV0pO1xuXHRcdH0sIG1lc3NhZ2UpO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sLCBpbnB1dDogVmFsdWVBY2Nlc3NvckJhc2U8YW55PiA9IG51bGwpOiB2b2lkIHtcblx0XHR0aGlzLmF0dGFjaGVkQ29udHJvbCA9IGZvcm1Db250cm9sO1xuXHRcdHRoaXMucGFyZW50LnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbCwgdGhpcyk7XG5cdFx0dGhpcy5pbnB1dCA9IGlucHV0O1xuXHR9XG5cblx0cHVibGljIHVucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpOiB2b2lkIHtcblx0XHR0aGlzLmF0dGFjaGVkQ29udHJvbCA9IG51bGw7XG5cdFx0dGhpcy5wYXJlbnQudW5yZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2wpO1xuXHR9XG5cblx0cHVibGljIGdldEF0dGFjaGVkQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuXHRcdHJldHVybiB0aGlzLmF0dGFjaGVkQ29udHJvbDtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckVycm9ySGFuZGxlcihlcnJvcjogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuXHRcdHRoaXMuY3VzdG9tRXJyb3JIYW5kbGVycy5wdXNoKHtlcnJvciwgdGVtcGxhdGVSZWZ9KTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckNhcHRpb24odGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcblx0XHR0aGlzLmNhcHRpb25SZWYgPSB0ZW1wbGF0ZVJlZjtcblx0fVxuXG5cdGdldEVycm9yVG9TaG93KCk6IHN0cmluZyB7XG5cdFx0aWYgKHRoaXMuYXR0YWNoZWRDb250cm9sPy50b3VjaGVkID09PSB0cnVlICYmIHRoaXMuYXR0YWNoZWRDb250cm9sPy5lcnJvcnMpIHtcblx0XHRcdHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmF0dGFjaGVkQ29udHJvbD8uZXJyb3JzKVswXTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRnZXRDdXN0b21FcnJvckhhbmRsZXIoZXJyb3I6IHN0cmluZyk6IHsgZXJyb3I6IHN0cmluZzsgdGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYgfSB7XG5cdFx0cmV0dXJuIHRoaXMuY3VzdG9tRXJyb3JIYW5kbGVycy5maW5kKChlKSA9PiBlLmVycm9yID09PSBlcnJvcik7XG5cdH1cblxuXHRzaG93RGVmYXVsdEVycm9yKGVycm9yOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRFcnJvclRvU2hvdygpID09PSBlcnJvciAmJiAhdGhpcy5jdXN0b21FcnJvckhhbmRsZXJzLnNvbWUoKGUpID0+IGUuZXJyb3IgPT09IGVycm9yKTtcblx0fVxuXG5cdGdldFNjcm9sbGFibGVQYXJlbnQobm9kZSk6IGFueSB7XG5cdFx0aWYgKG5vZGUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdGlmIChub2RlLnNjcm9sbEhlaWdodCA+IG5vZGUuY2xpZW50SGVpZ2h0KSB7XG5cdFx0XHRyZXR1cm4gbm9kZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0U2Nyb2xsYWJsZVBhcmVudChub2RlLnBhcmVudE5vZGUpO1xuXHRcdH1cblx0fVxuXG5cdHNjcm9sbFRvKCk6IHZvaWR7XG5cdFx0dGhpcy5pbnRlcm5hbENvbXBvbmVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHRydWUpO1xuXHRcdC8vIHRvIGdpdmUgc29tZSBicmVhdGhpbmcgcm9vbSwgd2Ugc2Nyb2xsIDEwMHB4IG1vcmUgdG8gdGhlIHRvcFxuXHRcdHRoaXMuZ2V0U2Nyb2xsYWJsZVBhcmVudCh0aGlzLmludGVybmFsQ29tcG9uZW50UmVmLm5hdGl2ZUVsZW1lbnQpPy5zY3JvbGxCeSgwLCAtMTAwKTtcblx0fVxuXG5cdGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG5cdFx0aWYgKGlzVmFsdWVTZXQodGhpcy5pbnB1dCkpIHtcblx0XHRcdHJldHVybiB0aGlzLmlucHV0Lmhhc1ZhbGlkYXRvcigncmVxdWlyZWQnKTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Z2V0RXJyb3JNZXNzYWdlKGtleToga2V5b2YgRm9ybUVycm9yTWVzc2FnZXMpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmN1c3RvbU1lc3NhZ2VzPy5ba2V5XT8uKCkgPz8gdGhpcy5lcnJvck1lc3NhZ2VzW2tleV07XG5cdH1cblxuXHRwdWJsaWMgZ2V0RXJyb3JMb2NhdGlvbigpOiAnYmVsb3dDYXB0aW9uJyB8ICdyaWdodE9mQ2FwdGlvbicge1xuXHRcdHJldHVybiB0aGlzLnBhcmVudD8uZXJyb3JNZXNzYWdlTG9jYXRpb24gPz8gJ2JlbG93Q2FwdGlvbic7XG5cdH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZXJyb3JSZWY+XG5cdDxkaXYgKm5nSWY9XCJzaG91bGRTaG93RXJyb3JNZXNzYWdlcygpICYmIGdldEVycm9yVG9TaG93KClcIiBjbGFzcz1cImVycm9yQ29udGFpbmVyXCIgW25nQ2xhc3NdPVwie2hhc0NhcHRpb246IGNhcHRpb24gfHwgY2FwdGlvblJlZiwgJ2QzMC03MCc6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzAtNzAnLCAnZDM0LTY2Jzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczNC02Nid9XCIgW2tscFdpdGhUb29sdGlwXT1cIiFlcnJvck1lc3NhZ2VBc1Rvb2x0aXAgJiYgZ2V0RXJyb3JMb2NhdGlvbigpID09PSAncmlnaHRPZkNhcHRpb24nXCI+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ21pbicpXCI+e3tzdWJzdGl0dXRlUGFyYW1ldGVycyhnZXRFcnJvck1lc3NhZ2UoXCJtaW5cIiksIHttaW46IGF0dGFjaGVkQ29udHJvbC5lcnJvcnMubWluLm1pbn0pfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignbWF4JylcIj57e3N1YnN0aXR1dGVQYXJhbWV0ZXJzKGdldEVycm9yTWVzc2FnZShcIm1heFwiKSwge21heDogYXR0YWNoZWRDb250cm9sLmVycm9ycy5tYXgubWF4fSl9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdyZXF1aXJlZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJyZXF1aXJlZFwiKX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ2VtYWlsJylcIj57e2dldEVycm9yTWVzc2FnZShcImVtYWlsXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignbWlubGVuZ3RoJylcIj57e3N1YnN0aXR1dGVQYXJhbWV0ZXJzKGdldEVycm9yTWVzc2FnZShcIm1pbkxlbmd0aFwiKSwge21pbkxlbmd0aDogYXR0YWNoZWRDb250cm9sLmVycm9ycy5taW5sZW5ndGgucmVxdWlyZWRMZW5ndGh9KX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ21heGxlbmd0aCcpXCI+e3tzdWJzdGl0dXRlUGFyYW1ldGVycyhnZXRFcnJvck1lc3NhZ2UoXCJtYXhMZW5ndGhcIiksIHttYXhMZW5ndGg6IGF0dGFjaGVkQ29udHJvbC5lcnJvcnMubWF4bGVuZ3RoLnJlcXVpcmVkTGVuZ3RofSl9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdwYXR0ZXJuJylcIj57e2dldEVycm9yTWVzc2FnZShcInBhdHRlcm5cIil9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdNYXRjaFBhc3N3b3JkJylcIj57e2dldEVycm9yTWVzc2FnZShcIm1hdGNoUGFzc3dvcmRcIil9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdkYXRlJylcIj57e2dldEVycm9yTWVzc2FnZShcImRhdGVcIil9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdtZXNzYWdlJylcIj57e2F0dGFjaGVkQ29udHJvbC5lcnJvcnMubWVzc2FnZS52YWx1ZX19PC9kaXY+XG5cdFx0PGRpdiBbbmdUZW1wbGF0ZU91dGxldF09XCJnZXRDdXN0b21FcnJvckhhbmRsZXIoZ2V0RXJyb3JUb1Nob3coKSk/LnRlbXBsYXRlUmVmXCI+PC9kaXY+XG5cdDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnICYmICFlcnJvck1lc3NhZ2VBc1Rvb2x0aXBcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvclJlZlwiPjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiY29tcG9uZW50Q29udGFpbmVyXCIgW25nQ2xhc3NdPVwie2hhc0NhcHRpb246IGNhcHRpb24gfHwgY2FwdGlvblJlZiwgdmVydGljYWw6IGRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJywgcmV2ZXJzZU9yZGVyOiBzd2FwSW5wdXRBbmRDYXB0aW9ufVwiICNpbnRlcm5hbENvbXBvbmVudFJlZj5cblx0PGRpdiBjbGFzcz1cImNhcHRpb25cIiAqbmdJZj1cImNhcHRpb24gfHwgY2FwdGlvblJlZlwiXG5cdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0aGFzRXJyb3JzOiBnZXRFcnJvclRvU2hvdygpICYmIGF0dGFjaGVkQ29udHJvbC50b3VjaGVkLFxuXHRcdFx0cGVyY2VudGFnZVNwYWNpbmc6IGNhcHRpb25TcGFjaW5nID09PSAncGVyY2VudGFnZXMnICYmIHNwYWNlRGlzdHJpYnV0aW9uICE9PSAnZml4ZWRJbnB1dFdpZHRoJyxcblx0XHRcdCdkMzAtNzAnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJzMwLTcwJyxcblx0XHRcdCdkMzQtNjYnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJzM0LTY2Jyxcblx0XHRcdCdmaXhlZElucHV0V2lkdGgnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJ2ZpeGVkSW5wdXRXaWR0aCcsXG5cdFx0XHR3aXRoRXJyb3JSaWdodE9mQ2FwdGlvbjogZ2V0RXJyb3JMb2NhdGlvbigpID09PSAncmlnaHRPZkNhcHRpb24nXG5cdFx0fVwiXG5cdD5cblx0XHQ8ZGl2ICpuZ0lmPVwiY2FwdGlvblJlZlwiIGNsYXNzPVwiY2FwdGlvblJlZkNvbnRhaW5lclwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjYXB0aW9uUmVmXCI+PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCI+Jm5ic3A7KjwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCIhY2FwdGlvblJlZlwiIGNsYXNzPVwiY2FwdGlvblRleHRcIj57e2NhcHRpb259fTxzcGFuICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCI+Jm5ic3A7Kjwvc3Bhbj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicmlnaHRPZkNhcHRpb25FcnJvclwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBnZXRFcnJvckxvY2F0aW9uKCkgPT09ICdyaWdodE9mQ2FwdGlvbicgJiYgIWVycm9yTWVzc2FnZUFzVG9vbHRpcFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVycm9yUmVmXCI+PC9uZy1jb250YWluZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwiZGlyZWN0aW9uID09PSAndmVydGljYWwnICYmIGdldEVycm9yTG9jYXRpb24oKSA9PT0gJ2JlbG93Q2FwdGlvbicgJiYgIWVycm9yTWVzc2FnZUFzVG9vbHRpcFwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVycm9yUmVmXCI+PC9uZy1jb250YWluZXI+XG5cdDxkaXYgY2xhc3M9XCJpbnB1dENvbnRhaW5lclwiIFtuZ0NsYXNzXT1cIntcblx0XHRwZXJjZW50YWdlU3BhY2luZzogY2FwdGlvblNwYWNpbmcgPT09ICdwZXJjZW50YWdlcycgJiYgc3BhY2VEaXN0cmlidXRpb24gIT09ICdmaXhlZElucHV0V2lkdGgnLFxuXHRcdCdkMzAtNzAnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJzMwLTcwJyxcblx0XHQnZDM0LTY2Jzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczNC02NicsXG5cdFx0J2ZpeGVkSW5wdXRXaWR0aCc6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnZml4ZWRJbnB1dFdpZHRoJ1xuXHR9XCI+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImVycm9yTWVzc2FnZUFzVG9vbHRpcCAmJiBzaG91bGRTaG93RXJyb3JNZXNzYWdlcygpICYmIGdldEVycm9yVG9TaG93KClcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJlcnJvclRvb2x0aXBUcmlhbmdsZVwiPjwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImVycm9yVG9vbHRpcFRyaWFuZ2xlV2hpdGVcIj48L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJlcnJvclRvb2x0aXBcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvclJlZlwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHQ8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -577,10 +577,10 @@ class FormElementComponent {
577
577
  }
578
578
  }
579
579
  FormElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormElementComponent, deps: [{ token: FormComponent, optional: true }, { token: FORM_ERROR_MESSAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component });
580
- FormElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormElementComponent, selector: "klp-form-element", inputs: { caption: "caption", direction: "direction", captionSpacing: "captionSpacing", spaceDistribution: "spaceDistribution", swapInputAndCaption: "swapInputAndCaption", errorMessageAsTooltip: "errorMessageAsTooltip" }, viewQueries: [{ propertyName: "internalComponentRef", first: true, predicate: ["internalComponentRef"], descendants: true }], ngImport: i0, template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: ["klpWithTooltip"] }] });
580
+ FormElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormElementComponent, selector: "klp-form-element", inputs: { caption: "caption", direction: "direction", captionSpacing: "captionSpacing", spaceDistribution: "spaceDistribution", swapInputAndCaption: "swapInputAndCaption", errorMessageAsTooltip: "errorMessageAsTooltip" }, viewQueries: [{ propertyName: "internalComponentRef", first: true, predicate: ["internalComponentRef"], descendants: true }], ngImport: i0, template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66',\n\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.fixedInputWidth{flex:1 1 0px;overflow:hidden}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.inputContainer.fixedInputWidth{flex:0 0 auto}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: ["klpWithTooltip"] }] });
581
581
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormElementComponent, decorators: [{
582
582
  type: Component,
583
- args: [{ selector: 'klp-form-element', template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"] }]
583
+ args: [{ selector: 'klp-form-element', template: "<ng-template #errorRef>\n\t<div *ngIf=\"shouldShowErrorMessages() && getErrorToShow()\" class=\"errorContainer\" [ngClass]=\"{hasCaption: caption || captionRef, 'd30-70': spaceDistribution === '30-70', 'd34-66': spaceDistribution === '34-66'}\" [klpWithTooltip]=\"!errorMessageAsTooltip && getErrorLocation() === 'rightOfCaption'\">\n\t\t<div *ngIf=\"showDefaultError('min')\">{{substituteParameters(getErrorMessage(\"min\"), {min: attachedControl.errors.min.min})}}</div>\n\t\t<div *ngIf=\"showDefaultError('max')\">{{substituteParameters(getErrorMessage(\"max\"), {max: attachedControl.errors.max.max})}}</div>\n\t\t<div *ngIf=\"showDefaultError('required')\">{{getErrorMessage(\"required\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('email')\">{{getErrorMessage(\"email\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('minlength')\">{{substituteParameters(getErrorMessage(\"minLength\"), {minLength: attachedControl.errors.minlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('maxlength')\">{{substituteParameters(getErrorMessage(\"maxLength\"), {maxLength: attachedControl.errors.maxlength.requiredLength})}}</div>\n\t\t<div *ngIf=\"showDefaultError('pattern')\">{{getErrorMessage(\"pattern\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('MatchPassword')\">{{getErrorMessage(\"matchPassword\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('date')\">{{getErrorMessage(\"date\")}}</div>\n\t\t<div *ngIf=\"showDefaultError('message')\">{{attachedControl.errors.message.value}}</div>\n\t\t<div [ngTemplateOutlet]=\"getCustomErrorHandler(getErrorToShow())?.templateRef\"></div>\n\t</div>\n</ng-template>\n\n<ng-container *ngIf=\"direction === 'horizontal' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\n<div class=\"componentContainer\" [ngClass]=\"{hasCaption: caption || captionRef, vertical: direction === 'vertical', reverseOrder: swapInputAndCaption}\" #internalComponentRef>\n\t<div class=\"caption\" *ngIf=\"caption || captionRef\"\n\t\t[ngClass]=\"{\n\t\t\thasErrors: getErrorToShow() && attachedControl.touched,\n\t\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t\t'd30-70': spaceDistribution === '30-70',\n\t\t\t'd34-66': spaceDistribution === '34-66',\n\t\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth',\n\t\t\twithErrorRightOfCaption: getErrorLocation() === 'rightOfCaption'\n\t\t}\"\n\t>\n\t\t<div *ngIf=\"captionRef\" class=\"captionRefContainer\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"captionRef\"></ng-container>\n\t\t\t<div *ngIf=\"isRequired()\">&nbsp;*</div>\n\t\t</div>\n\t\t<div *ngIf=\"!captionRef\" class=\"captionText\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption' && !errorMessageAsTooltip\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t<div class=\"inputContainer\" [ngClass]=\"{\n\t\tpercentageSpacing: captionSpacing === 'percentages' && spaceDistribution !== 'fixedInputWidth',\n\t\t'd30-70': spaceDistribution === '30-70',\n\t\t'd34-66': spaceDistribution === '34-66',\n\t\t'fixedInputWidth': spaceDistribution === 'fixedInputWidth'\n\t}\">\n\t\t<ng-container *ngIf=\"errorMessageAsTooltip && shouldShowErrorMessages() && getErrorToShow()\">\n\t\t\t<div class=\"errorTooltipTriangle\"></div>\n\t\t\t<div class=\"errorTooltipTriangleWhite\"></div>\n\t\t\t<div class=\"errorTooltip\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t\t</div>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t</div>\n</div>\n", styles: [":host{display:block}.componentContainer{display:flex;align-items:center;min-height:42px}.componentContainer:not(.hasCaption){display:block}.componentContainer:not(.hasCaption) .inputContainer{margin-top:0}.componentContainer.reverseOrder{flex-direction:row-reverse;justify-content:flex-end}.componentContainer.vertical{display:block}.componentContainer.vertical .inputContainer{margin-top:.3125rem}.componentContainer.vertical .errorContainer{margin-left:0}.componentContainer.vertical .caption{padding-right:0}.captionRefContainer{display:flex}.caption{font-weight:700;flex:0 0 auto;padding-right:1.25rem;color:#515365}.caption.percentageSpacing{flex:40}.caption.percentageSpacing.d30-70{flex:30}.caption.percentageSpacing.d34-66{flex:34}.caption.fixedInputWidth{flex:1 1 0px;overflow:hidden}.caption.hasErrors{color:#ff8000}.caption.hasErrors.withErrorRightOfCaption .rightOfCaptionError{display:block}.caption.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:1rem}.caption.withErrorRightOfCaption .captionText{flex:1 2 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caption.withErrorRightOfCaption .rightOfCaptionError{display:none;font-weight:400;overflow:hidden;flex:1 1 auto;text-align:right}.caption.withErrorRightOfCaption .rightOfCaptionError ::ng-deep *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{position:relative;flex:1}.inputContainer .errorTooltipTriangle{z-index:1;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid rgba(255,128,0,.125)}.inputContainer .errorTooltipTriangleWhite{z-index:3;position:absolute;display:none;right:0;transform:translate(-50%,calc(-100% + .1rem - 2px));width:0px;height:0px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:12px solid white}.inputContainer .errorTooltip{position:absolute;top:-.6rem;right:0;display:none;z-index:2;color:#515365;transform:translateY(-100%);max-width:20rem;white-space:break-spaces;background-color:#fff;border:1px solid rgba(255,128,0,.125);box-shadow:#ff800020 2px 3px 10px;padding:.3rem .5rem;box-sizing:border-box;border-radius:3px}.inputContainer .errorTooltip .errorContainer{margin-left:initial}.inputContainer:hover .errorTooltip,.inputContainer:hover .errorTooltipTriangle,.inputContainer:hover .errorTooltipTriangleWhite{display:block}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.inputContainer.fixedInputWidth{flex:0 0 auto}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:calc(40% + 1.25rem)}.errorContainer.hasCaption.d30-70{margin-left:calc(30% + 1.25rem)}.errorContainer.hasCaption.d34-66{margin-left:calc(34% + 1.25rem)}\n"] }]
584
584
  }], ctorParameters: function () {
585
585
  return [{ type: FormComponent, decorators: [{
586
586
  type: Optional
@@ -1345,10 +1345,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
1345
1345
  class ToggleComponent extends ValueAccessorBase {
1346
1346
  }
1347
1347
  ToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1348
- ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: ToggleComponent, selector: "klp-form-toggle", providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1348
+ ToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: ToggleComponent, selector: "klp-form-toggle", providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative;padding-right:6px}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer;margin:0}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
1349
1349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: ToggleComponent, decorators: [{
1350
1350
  type: Component,
1351
- args: [{ selector: 'klp-form-toggle', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"] }]
1351
+ args: [{ selector: 'klp-form-toggle', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: ToggleComponent, multi: true }], template: "<div class=\"componentContainer\" [ngClass]=\"{disabled: disabled}\">\n\t<input type=\"checkbox\" class=\"nativeCheckbox\"\n\t\t[(ngModel)]=\"innerValue\"\n\t\t(input)=\"setInnerValueAndNotify($event.target.checked); touch()\"\n\t\t[disabled]=\"disabled\"\n\t\t[ngClass]=\"{showErrors: isInErrorState()}\"\n\t #nativeInputRef\n\t/>\n\t<div class=\"toggleVisual\"></div>\n</div>\n", styles: [":host{display:block}.componentContainer{position:relative;padding-right:6px}.nativeCheckbox{position:absolute;opacity:0;top:0;left:0;width:35px;height:20px;cursor:pointer;margin:0}.toggleVisual{pointer-events:none;position:relative;display:block;transition:.4s ease;-webkit-transition:.4s ease;-moz-transition:.4s ease;-o-transition:.4s ease;-ms-transition:.4s ease;width:35px;height:20px;border:1px solid #e6ecf5;border-radius:35px}.toggleVisual:before{content:\"\";position:absolute;display:block;transition:.2s cubic-bezier(.24,0,.5,1);-webkit-transition:.2s cubic-bezier(.24,0,.5,1);-moz-transition:.2s cubic-bezier(.24,0,.5,1);-o-transition:.2s cubic-bezier(.24,0,.5,1);-ms-transition:.2s cubic-bezier(.24,0,.5,1);margin:1px;width:33px;height:18px;top:-1px;left:-1px;border-radius:30px}.toggleVisual:after{content:\"\";position:absolute;display:block;box-shadow:0 0 0 1px #0000001a,0 4px #0000000a,0 4px 9px #00000021,0 3px 3px #0000000d;transition:.35s cubic-bezier(.54,1.6,.5,1);-webkit-transition:.35s cubic-bezier(.54,1.6,.5,1);-moz-transition:.35s cubic-bezier(.54,1.6,.5,1);-o-transition:.35s cubic-bezier(.54,1.6,.5,1);-ms-transition:.35s cubic-bezier(.54,1.6,.5,1);background:#f7f7f7;height:20px;width:20px;top:-1px;left:0;border-radius:60px}.nativeCheckbox:checked+.toggleVisual:before{background:#37c936;transition:width .2s cubic-bezier(0,0,0,.1);-webkit-transition:width .2s cubic-bezier(0,0,0,.1);-moz-transition:width .2s cubic-bezier(0,0,0,.1);-o-transition:width .2s cubic-bezier(0,0,0,.1);-ms-transition:width .2s cubic-bezier(0,0,0,.1)}.nativeCheckbox:checked+.toggleVisual:after{left:18px}.disabled{opacity:.6}.showErrors+.toggleVisual:before{border:1px solid #ff8000}\n"] }]
1352
1352
  }] });
1353
1353
 
1354
1354
  class FormCaptionComponent {