@klippa/ngx-enhancy-forms 16.7.6 → 16.8.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.
@@ -24,6 +24,7 @@ export class ValueAccessorBase {
24
24
  // we support both providing just the formControlName and the full formControl
25
25
  this.formControlName = null;
26
26
  this.formControl = null;
27
+ this.inErrorState = false;
27
28
  this.onTouch = new EventEmitter();
28
29
  this.focus = () => {
29
30
  if (isValueSet(this.nativeInputRef?.nativeElement)) {
@@ -53,6 +54,9 @@ export class ValueAccessorBase {
53
54
  }
54
55
  }
55
56
  isInErrorState() {
57
+ if (this.inErrorState) {
58
+ return true;
59
+ }
56
60
  return this.attachedFormControl && this.attachedFormControl.status === 'INVALID' && this.attachedFormControl.touched;
57
61
  }
58
62
  ngOnDestroy() {
@@ -113,7 +117,7 @@ export class ValueAccessorBase {
113
117
  return false;
114
118
  }
115
119
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValueAccessorBase, deps: [{ token: i1.FormElementComponent, host: true, optional: true }, { token: i2.ControlContainer, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ValueAccessorBase, selector: "ng-component", inputs: { disabled: "disabled", innerValueChangeInterceptor: "innerValueChangeInterceptor", formControlName: "formControlName", formControl: "formControl" }, outputs: { onTouch: "onTouch" }, viewQueries: [{ propertyName: "nativeInputRef", first: true, predicate: ["nativeInputRef"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ValueAccessorBase, selector: "ng-component", inputs: { disabled: "disabled", innerValueChangeInterceptor: "innerValueChangeInterceptor", formControlName: "formControlName", formControl: "formControl", inErrorState: "inErrorState" }, outputs: { onTouch: "onTouch" }, viewQueries: [{ propertyName: "nativeInputRef", first: true, predicate: ["nativeInputRef"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
117
121
  }
118
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValueAccessorBase, decorators: [{
119
123
  type: Component,
@@ -137,10 +141,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
137
141
  type: Input
138
142
  }], formControl: [{
139
143
  type: Input
144
+ }], inErrorState: [{
145
+ type: Input
140
146
  }], onTouch: [{
141
147
  type: Output
142
148
  }], nativeInputRef: [{
143
149
  type: ViewChild,
144
150
  args: ['nativeInputRef']
145
151
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYWNjZXNzb3ItYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9lbGVtZW50cy92YWx1ZS1hY2Nlc3Nvci1iYXNlL3ZhbHVlLWFjY2Vzc29yLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9ILE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUV4RDs7Ozs7Ozs7R0FRRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFrQjdCLFlBQytCLE1BQTRCLEVBQzVCLGdCQUFrQztRQURsQyxXQUFNLEdBQU4sTUFBTSxDQUFzQjtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEIxRCxZQUFPLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7UUFDekMsWUFBTyxHQUFHLElBQUksS0FBSyxFQUFjLENBQUM7UUFDbEMsY0FBUyxHQUFNLElBQUksQ0FBQztRQUVaLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakMsOEVBQThFO1FBQzlELG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQStGN0MsVUFBSyxHQUFHLEdBQVMsRUFBRTtZQUN6QixJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxFQUFDO2dCQUNsRCxJ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QUUsRUFBRTtpQkFDWjs7MEJBb0JFLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixJQUFJOzswQkFBSSxRQUFROzRDQWRGLFFBQVE7c0JBQXZCLEtBQUs7Z0JBR0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUVVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVyxPQUFPO3NCQUF2QixNQUFNO2dCQUNzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udHJvbENvbnRhaW5lciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtRWxlbWVudENvbXBvbmVudH0gZnJvbSAnLi4vLi4vZm9ybS9mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkLCBpc1ZhbHVlU2V0LCBzdHJpbmdJc1NldEFuZEZpbGxlZH0gZnJvbSAnLi4vLi4vdXRpbC92YWx1ZXMnO1xuaW1wb3J0IHsgYXJyYXlJc1NldEFuZEZpbGxlZCB9IGZyb20gJy4uLy4uL3V0aWwvYXJyYXlzJztcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBhIGJhc2UgaW4gb3JkZXIgdG8gY3JlYXRlIGEgY29tcG9uZW50IHRoYXQgc3VwcG9ydHMgbmdNb2RlbC5cbiAqIFNvbWUgaW1wb3J0YW50IHRoaW5ncyB0byBrbm93IGFib3V0IGl0OlxuICpcbiAqIGlubmVyVmFsdWUgPSB5b3VyIG93biBpbm5lciBzdGF0ZSwgd2hpY2ggeW91IHNob3VsZCB1c2UgdG8gc3RvcmUgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hhdCBuZ01vZGVsIHNob3VsZCBiZS5cbiAqIHdyaXRlVmFsdWUoKSA9IGNhbGxlZCBieSBhbmd1bGFyLCB3aGVuIG5nTW9kZWwgaXMgY2hhbmdlZCBmcm9tIE9VVFNJREUgb2YgdGhlIGNvbXBvbmVudC4gRmVlbCBmcmVlIHRvIHBhdGNoIHRoaXMgbWV0aG9kIGlmIHlvdSBuZWVkIGlubmVyIGxvZ2ljIHRvIGhhcHBlbiB3aGVuIG5nTW9kZWwgaXMgYWx0ZXJlZCBmcm9tIHRoZSBvdXRzaWRlLiBBbHdheXMgcmVtZW1iZXIgdG8gYWxzbyBjYWxsIHRoZSBzdXBlci53cml0ZVZhbHVlIGlmIHlvdSBkbyFcbiAqIHNldElubmVyVmFsdWVBbmROb3RpZnkoKSA9IGNhbGwgdGhpcyB3aGVuIHlvdSB3YW50IHlvdXIgbmdNb2RlbCB0byBiZSB1cGRhdGVkIGZyb20gSU5TSURFIG9mIHlvdXIgY29tcG9uZW50LCBhbmQgcHJvdmlkZSBpdCB0byB0aGUgT1VUU0lERS5cbiAqIG5nT25Jbml0KCkgPSBVc2VkIHRvIHN1cHBvcnQgdGhlIGFuZ3VsYXIgcmVhY3RpdmUgZm9ybXMgZnJhbWV3b3JrLiBJZiB5b3UgdXNlIG5nT25Jbml0IGluIHlvdXIgb3duIGNvbXBvbmVudCAod2hpY2ggaGFwcGVucyBmYWlybHkgb2Z0ZW4pIHlvdSBtdXN0IG5vdCBmb3JnZXQgdG8gY2FsbCB0aGUgc3VwZXIubmdPbkluaXQoKSBtZXRob2QuXG4gKi9cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnJyxcblx0dGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBjbGFzcyBWYWx1ZUFjY2Vzc29yQmFzZTxUPiBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XG5cdHB1YmxpYyBpbm5lclZhbHVlOiBUO1xuXHRwdWJsaWMgY2hhbmdlZCA9IG5ldyBBcnJheTwodmFsdWU6IFQpID0+IHZvaWQ+KCk7XG5cdHByaXZhdGUgdG91Y2hlZCA9IG5ldyBBcnJheTwoKSA9PiB2b2lkPigpO1xuXHRwcml2YXRlIHByZXZWYWx1ZTogVCA9IG51bGw7XG5cblx0QElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cdC8vIG5lZWRlZCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9uc1xuXHRwcml2YXRlIGxhdGVzdElubmVyVmFsdWVDaGFuZ2VkSW50ZXJjZXB0b3JQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuXHRASW5wdXQoKSBpbm5lclZhbHVlQ2hhbmdlSW50ZXJjZXB0b3I6IChwcmV2OiBULCBjdXI6IFQpID0+IFByb21pc2U8dm9pZD47XG5cdC8vIHdlIHN1cHBvcnQgYm90aCBwcm92aWRpbmcganVzdCB0aGUgZm9ybUNvbnRyb2xOYW1lIGFuZCB0aGUgZnVsbCBmb3JtQ29udHJvbFxuXHRASW5wdXQoKSBwdWJsaWMgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcgPSBudWxsO1xuXHRASW5wdXQoKSBwdWJsaWMgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG51bGw7XG5cdEBPdXRwdXQoKSBwdWJsaWMgb25Ub3VjaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblx0QFZpZXdDaGlsZCgnbmF0aXZlSW5wdXRSZWYnKSBuYXRpdmVJbnB1dFJlZjogRWxlbWVudFJlZjtcblxuXHRwcml2YXRlIGF0dGFjaGVkRm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRASG9zdCgpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBwYXJlbnQ6IEZvcm1FbGVtZW50Q29tcG9uZW50LFxuXHRcdEBIb3N0KCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXJcblx0KSB7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuXHRcdFx0dGhpcy5hdHRhY2hlZEZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbDtcblx0XHR9IGVsc2UgaWYgKHN0cmluZ0lzU2V0QW5kRmlsbGVkKHRoaXMuZm9ybUNvbnRyb2xOYW1lKSkge1xuXHRcdFx0dGhpcy5hdHRhY2hlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sQ29udGFpbmVyPy5jb250cm9sLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSkgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuXHRcdFx0aWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbCkpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBGb3JtIGVsZW1lbnQgJyR7dGhpcy5mb3JtQ29udHJvbE5hbWV9JyB3aXRoIGNhcHRpb24gJyR7dGhpcy5wYXJlbnQ/LmNhcHRpb259JyBpcyBub3QgZGVjbGFyZWQgaW4geW91ciBGb3JtR3JvdXAuYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wpIHtcblx0XHRcdHRoaXMuZGlzYWJsZWQgPSB0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wuZGlzYWJsZWQ7XG5cdFx0XHR0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmRpc2FibGVkID0gdGhpcy5hdHRhY2hlZEZvcm1Db250cm9sLmRpc2FibGVkO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnBhcmVudD8ucmVnaXN0ZXJDb250cm9sKHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbCwgdGhpcyk7XG5cdFx0fVxuXHR9XG5cblx0aXNJbkVycm9yU3RhdGUoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbCAmJiB0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcgJiYgdGhpcy5hdHRhY2hlZEZvcm1Db250cm9sLnRvdWNoZWQ7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5hdHRhY2hlZEZvcm1Db250cm9sKSB7XG5cdFx0XHR0aGlzLnBhcmVudD8udW5yZWdpc3RlckNvbnRyb2wodGhpcy5hdHRhY2hlZEZvcm1Db250cm9sKTtcblx0XHR9XG5cdH1cblxuXHR0b3VjaCgpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQuZm9yRWFjaCgoZikgPT4gZigpKTtcblx0fVxuXG5cdHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcblx0XHR0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcblx0XHR0aGlzLnByZXZWYWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0dGhpcy5jaGFuZ2VkLnB1c2goZm4pO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQucHVzaChmbik7XG5cdH1cblxuXHRzZXRJbm5lclZhbHVlQW5kTm90aWZ5KHZhbHVlOiBUKTogdm9pZCB7XG5cdFx0Y29uc3QgYWN0dWFsbHlTZXRWYWx1ZSA9ICh2YWx1ZVRvU2V0OiBUKTogdm9pZCA9PiB7XG5cdFx0XHR0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZVRvU2V0O1xuXHRcdFx0dGhpcy5wcmV2VmFsdWUgPSB2YWx1ZVRvU2V0O1xuXHRcdFx0dGhpcy5jaGFuZ2VkLmZvckVhY2goKGZuKSA9PiBmbih2YWx1ZVRvU2V0KSk7XG5cdFx0fTtcblx0XHRpZiAoaXNWYWx1ZVNldCh0aGlzLmlubmVyVmFsdWVDaGFuZ2VJbnRlcmNlcHRvcikpIHtcblx0XHRcdHRoaXMubGF0ZXN0SW5uZXJWYWx1ZUNoYW5nZWRJbnRlcmNlcHRvclByb21pc2UgPSB0aGlzLmlubmVyVmFsdWVDaGFuZ2VJbnRlcmNlcHRvcih0aGlzLnByZXZWYWx1ZSwgdmFsdWUpO1xuXHRcdFx0Y29uc3QgbXlQcm9taXNlID0gdGhpcy5sYXRlc3RJbm5lclZhbHVlQ2hhbmdlZEludGVyY2VwdG9yUHJvbWlzZTtcblx0XHRcdHRoaXMubGF0ZXN0SW5uZXJWYWx1ZUNoYW5nZWRJbnRlcmNlcHRvclByb21pc2UudGhlbigoKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmxhdGVzdElubmVyVmFsdWVDaGFuZ2VkSW50ZXJjZXB0b3JQcm9taXNlID09PSBteVByb21pc2UpIHtcblx0XHRcdFx0XHRhY3R1YWxseVNldFZhbHVlKHZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBpZ25vcmUgb3V0ZGF0ZWQgcHJvbWlzZXNcblx0XHRcdFx0fVxuXHRcdFx0fSkuY2F0Y2goKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5sYXRlc3RJbm5lclZhbHVlQ2hhbmdlZEludGVyY2VwdG9yUHJvbWlzZSA9PT0gbXlQcm9taXNlKSB7XG5cdFx0XHRcdFx0YWN0dWFsbHlTZXRWYWx1ZSh0aGlzLnByZXZWYWx1ZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gaWdub3JlIG91dGRhdGVkIHByb21pc2VzXG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhY3R1YWxseVNldFZhbHVlKHZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRyZXNldFRvTnVsbCgpOiB2b2lkIHtcblx0XHR0aGlzLnNldElubmVyVmFsdWVBbmROb3RpZnkobnVsbCk7XG5cdH1cblxuXHRoYXNWYWxpZGF0b3IodmFsaWRhdG9yTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgdmFsaWRhdG9ycyA9IE9iamVjdC5rZXlzKHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbD8udmFsaWRhdG9yPy4oe30gYXMgYW55KSA/PyB7fSk7XG5cdFx0aWYgKGFycmF5SXNTZXRBbmRGaWxsZWQodmFsaWRhdG9ycykpIHtcblx0XHRcdHJldHVybiB2YWxpZGF0b3JzLmluY2x1ZGVzKHZhbGlkYXRvck5hbWUpO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgZm9jdXMgPSAoKTogdm9pZCA9PiB7XG5cdFx0aWYgKGlzVmFsdWVTZXQodGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudCkpe1xuXHRcdFx0dGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcblx0XHR9ZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ3RoZSBmb2N1cygpIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBlbGVtZW50IScpO1xuXHRcdH1cblx0fVxufVxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYWNjZXNzb3ItYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9lbGVtZW50cy92YWx1ZS1hY2Nlc3Nvci1iYXNlL3ZhbHVlLWFjY2Vzc29yLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9ILE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUV4RDs7Ozs7Ozs7R0FRRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFtQjdCLFlBQytCLE1BQTRCLEVBQzVCLGdCQUFrQztRQURsQyxXQUFNLEdBQU4sTUFBTSxDQUFzQjtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbkIxRCxZQUFPLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7UUFDekMsWUFBTyxHQUFHLElBQUksS0FBSyxFQUFjLENBQUM7UUFDbEMsY0FBUyxHQUFNLElBQUksQ0FBQztRQUVaLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakMsOEVBQThFO1FBQzlELG9CQUFlLEdBQVcsSUFBSSxDQUFDO1FBQy9CLGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUN2QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWtHN0MsVUFBSyxHQUFHLEdBQVMsRUFBRTtZQUN6QixJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxF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QUFpQixtWUFGbkIsRUFBRTs7MkZBRUEsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxFQUFFO29CQUNaLFFBQVEsRUFBRSxFQUFFO2lCQUNaOzswQkFxQkUsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLElBQUk7OzBCQUFJLFFBQVE7NENBZkYsUUFBUTtzQkFBdkIsS0FBSztnQkFHRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBRVUsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1csT0FBTztzQkFBdkIsTUFBTTtnQkFDc0IsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRyb2xDb250YWluZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUVsZW1lbnRDb21wb25lbnR9IGZyb20gJy4uLy4uL2Zvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtpc051bGxPclVuZGVmaW5lZCwgaXNWYWx1ZVNldCwgc3RyaW5nSXNTZXRBbmRGaWxsZWR9IGZyb20gJy4uLy4uL3V0aWwvdmFsdWVzJztcbmltcG9ydCB7IGFycmF5SXNTZXRBbmRGaWxsZWQgfSBmcm9tICcuLi8uLi91dGlsL2FycmF5cyc7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaXMgYSBiYXNlIGluIG9yZGVyIHRvIGNyZWF0ZSBhIGNvbXBvbmVudCB0aGF0IHN1cHBvcnRzIG5nTW9kZWwuXG4gKiBTb21lIGltcG9ydGFudCB0aGluZ3MgdG8ga25vdyBhYm91dCBpdDpcbiAqXG4gKiBpbm5lclZhbHVlID0geW91ciBvd24gaW5uZXIgc3RhdGUsIHdoaWNoIHlvdSBzaG91bGQgdXNlIHRvIHN0b3JlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHdoYXQgbmdNb2RlbCBzaG91bGQgYmUuXG4gKiB3cml0ZVZhbHVlKCkgPSBjYWxsZWQgYnkgYW5ndWxhciwgd2hlbiBuZ01vZGVsIGlzIGNoYW5nZWQgZnJvbSBPVVRTSURFIG9mIHRoZSBjb21wb25lbnQuIEZlZWwgZnJlZSB0byBwYXRjaCB0aGlzIG1ldGhvZCBpZiB5b3UgbmVlZCBpbm5lciBsb2dpYyB0byBoYXBwZW4gd2hlbiBuZ01vZGVsIGlzIGFsdGVyZWQgZnJvbSB0aGUgb3V0c2lkZS4gQWx3YXlzIHJlbWVtYmVyIHRvIGFsc28gY2FsbCB0aGUgc3VwZXIud3JpdGVWYWx1ZSBpZiB5b3UgZG8hXG4gKiBzZXRJbm5lclZhbHVlQW5kTm90aWZ5KCkgPSBjYWxsIHRoaXMgd2hlbiB5b3Ugd2FudCB5b3VyIG5nTW9kZWwgdG8gYmUgdXBkYXRlZCBmcm9tIElOU0lERSBvZiB5b3VyIGNvbXBvbmVudCwgYW5kIHByb3ZpZGUgaXQgdG8gdGhlIE9VVFNJREUuXG4gKiBuZ09uSW5pdCgpID0gVXNlZCB0byBzdXBwb3J0IHRoZSBhbmd1bGFyIHJlYWN0aXZlIGZvcm1zIGZyYW1ld29yay4gSWYgeW91IHVzZSBuZ09uSW5pdCBpbiB5b3VyIG93biBjb21wb25lbnQgKHdoaWNoIGhhcHBlbnMgZmFpcmx5IG9mdGVuKSB5b3UgbXVzdCBub3QgZm9yZ2V0IHRvIGNhbGwgdGhlIHN1cGVyLm5nT25Jbml0KCkgbWV0aG9kLlxuICovXG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJycsXG5cdHRlbXBsYXRlOiAnJyxcbn0pXG5leHBvcnQgY2xhc3MgVmFsdWVBY2Nlc3NvckJhc2U8VD4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuXHRwdWJsaWMgaW5uZXJWYWx1ZTogVDtcblx0cHVibGljIGNoYW5nZWQgPSBuZXcgQXJyYXk8KHZhbHVlOiBUKSA9PiB2b2lkPigpO1xuXHRwcml2YXRlIHRvdWNoZWQgPSBuZXcgQXJyYXk8KCkgPT4gdm9pZD4oKTtcblx0cHJpdmF0ZSBwcmV2VmFsdWU6IFQgPSBudWxsO1xuXG5cdEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXHQvLyBuZWVkZWQgdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbnNcblx0cHJpdmF0ZSBsYXRlc3RJbm5lclZhbHVlQ2hhbmdlZEludGVyY2VwdG9yUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblx0QElucHV0KCkgaW5uZXJWYWx1ZUNoYW5nZUludGVyY2VwdG9yOiAocHJldjogVCwgY3VyOiBUKSA9PiBQcm9taXNlPHZvaWQ+O1xuXHQvLyB3ZSBzdXBwb3J0IGJvdGggcHJvdmlkaW5nIGp1c3QgdGhlIGZvcm1Db250cm9sTmFtZSBhbmQgdGhlIGZ1bGwgZm9ybUNvbnRyb2xcblx0QElucHV0KCkgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nID0gbnVsbDtcblx0QElucHV0KCkgcHVibGljIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBudWxsO1xuXHRASW5wdXQoKSBwdWJsaWMgaW5FcnJvclN0YXRlID0gZmFsc2U7XG5cdEBPdXRwdXQoKSBwdWJsaWMgb25Ub3VjaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblx0QFZpZXdDaGlsZCgnbmF0aXZlSW5wdXRSZWYnKSBuYXRpdmVJbnB1dFJlZjogRWxlbWVudFJlZjtcblxuXHRwcml2YXRlIGF0dGFjaGVkRm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRASG9zdCgpIEBPcHRpb25hbCgpIHByb3RlY3RlZCBwYXJlbnQ6IEZvcm1FbGVtZW50Q29tcG9uZW50LFxuXHRcdEBIb3N0KCkgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXJcblx0KSB7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuXHRcdFx0dGhpcy5hdHRhY2hlZEZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbDtcblx0XHR9IGVsc2UgaWYgKHN0cmluZ0lzU2V0QW5kRmlsbGVkKHRoaXMuZm9ybUNvbnRyb2xOYW1lKSkge1xuXHRcdFx0dGhpcy5hdHRhY2hlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sQ29udGFpbmVyPy5jb250cm9sLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSkgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuXHRcdFx0aWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbCkpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBGb3JtIGVsZW1lbnQgJyR7dGhpcy5mb3JtQ29udHJvbE5hbWV9JyB3aXRoIGNhcHRpb24gJyR7dGhpcy5wYXJlbnQ/LmNhcHRpb259JyBpcyBub3QgZGVjbGFyZWQgaW4geW91ciBGb3JtR3JvdXAuYCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICh0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wpIHtcblx0XHRcdHRoaXMuZGlzYWJsZWQgPSB0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wuZGlzYWJsZWQ7XG5cdFx0XHR0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLmRpc2FibGVkID0gdGhpcy5hdHRhY2hlZEZvcm1Db250cm9sLmRpc2FibGVkO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLnBhcmVudD8ucmVnaXN0ZXJDb250cm9sKHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbCwgdGhpcyk7XG5cdFx0fVxuXHR9XG5cblx0aXNJbkVycm9yU3RhdGUoKTogYm9vbGVhbiB7XG5cdFx0aWYgKHRoaXMuaW5FcnJvclN0YXRlKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbCAmJiB0aGlzLmF0dGFjaGVkRm9ybUNvbnRyb2wuc3RhdHVzID09PSAnSU5WQUxJRCcgJiYgdGhpcy5hdHRhY2hlZEZvcm1Db250cm9sLnRvdWNoZWQ7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5hdHRhY2hlZEZvcm1Db250cm9sKSB7XG5cdFx0XHR0aGlzLnBhcmVudD8udW5yZWdpc3RlckNvbnRyb2wodGhpcy5hdHRhY2hlZEZvcm1Db250cm9sKTtcblx0XHR9XG5cdH1cblxuXHR0b3VjaCgpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQuZm9yRWFjaCgoZikgPT4gZigpKTtcblx0fVxuXG5cdHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcblx0XHR0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZTtcblx0XHR0aGlzLnByZXZWYWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0dGhpcy5jaGFuZ2VkLnB1c2goZm4pO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLnRvdWNoZWQucHVzaChmbik7XG5cdH1cblxuXHRzZXRJbm5lclZhbHVlQW5kTm90aWZ5KHZhbHVlOiBUKTogdm9pZCB7XG5cdFx0Y29uc3QgYWN0dWFsbHlTZXRWYWx1ZSA9ICh2YWx1ZVRvU2V0OiBUKTogdm9pZCA9PiB7XG5cdFx0XHR0aGlzLmlubmVyVmFsdWUgPSB2YWx1ZVRvU2V0O1xuXHRcdFx0dGhpcy5wcmV2VmFsdWUgPSB2YWx1ZVRvU2V0O1xuXHRcdFx0dGhpcy5jaGFuZ2VkLmZvckVhY2goKGZuKSA9PiBmbih2YWx1ZVRvU2V0KSk7XG5cdFx0fTtcblx0XHRpZiAoaXNWYWx1ZVNldCh0aGlzLmlubmVyVmFsdWVDaGFuZ2VJbnRlcmNlcHRvcikpIHtcblx0XHRcdHRoaXMubGF0ZXN0SW5uZXJWYWx1ZUNoYW5nZWRJbnRlcmNlcHRvclByb21pc2UgPSB0aGlzLmlubmVyVmFsdWVDaGFuZ2VJbnRlcmNlcHRvcih0aGlzLnByZXZWYWx1ZSwgdmFsdWUpO1xuXHRcdFx0Y29uc3QgbXlQcm9taXNlID0gdGhpcy5sYXRlc3RJbm5lclZhbHVlQ2hhbmdlZEludGVyY2VwdG9yUHJvbWlzZTtcblx0XHRcdHRoaXMubGF0ZXN0SW5uZXJWYWx1ZUNoYW5nZWRJbnRlcmNlcHRvclByb21pc2UudGhlbigoKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLmxhdGVzdElubmVyVmFsdWVDaGFuZ2VkSW50ZXJjZXB0b3JQcm9taXNlID09PSBteVByb21pc2UpIHtcblx0XHRcdFx0XHRhY3R1YWxseVNldFZhbHVlKHZhbHVlKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBpZ25vcmUgb3V0ZGF0ZWQgcHJvbWlzZXNcblx0XHRcdFx0fVxuXHRcdFx0fSkuY2F0Y2goKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy5sYXRlc3RJbm5lclZhbHVlQ2hhbmdlZEludGVyY2VwdG9yUHJvbWlzZSA9PT0gbXlQcm9taXNlKSB7XG5cdFx0XHRcdFx0YWN0dWFsbHlTZXRWYWx1ZSh0aGlzLnByZXZWYWx1ZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gaWdub3JlIG91dGRhdGVkIHByb21pc2VzXG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhY3R1YWxseVNldFZhbHVlKHZhbHVlKTtcblx0XHR9XG5cdH1cblxuXHRyZXNldFRvTnVsbCgpOiB2b2lkIHtcblx0XHR0aGlzLnNldElubmVyVmFsdWVBbmROb3RpZnkobnVsbCk7XG5cdH1cblxuXHRoYXNWYWxpZGF0b3IodmFsaWRhdG9yTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0Y29uc3QgdmFsaWRhdG9ycyA9IE9iamVjdC5rZXlzKHRoaXMuYXR0YWNoZWRGb3JtQ29udHJvbD8udmFsaWRhdG9yPy4oe30gYXMgYW55KSA/PyB7fSk7XG5cdFx0aWYgKGFycmF5SXNTZXRBbmRGaWxsZWQodmFsaWRhdG9ycykpIHtcblx0XHRcdHJldHVybiB2YWxpZGF0b3JzLmluY2x1ZGVzKHZhbGlkYXRvck5hbWUpO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgZm9jdXMgPSAoKTogdm9pZCA9PiB7XG5cdFx0aWYgKGlzVmFsdWVTZXQodGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudCkpe1xuXHRcdFx0dGhpcy5uYXRpdmVJbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcblx0XHR9ZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ3RoZSBmb2N1cygpIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBlbGVtZW50IScpO1xuXHRcdH1cblx0fVxufVxuIl19
@@ -3,6 +3,7 @@ import { isValueSet } from '../../util/values';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../form.component";
5
5
  import * as i2 from "@angular/common";
6
+ import * as i3 from "../../withTooltip.component";
6
7
  export const FORM_ERROR_MESSAGES = new InjectionToken('form.error.messages');
7
8
  export const DEFAULT_ERROR_MESSAGES = {
8
9
  min: 'Use a number larger than %min%',
@@ -93,11 +94,11 @@ export class FormElementComponent {
93
94
  return this.parent?.errorMessageLocation ?? 'belowCaption';
94
95
  }
95
96
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormElementComponent, deps: [{ token: i1.FormComponent, optional: true }, { token: FORM_ERROR_MESSAGES, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormElementComponent, selector: "klp-form-element", inputs: { caption: "caption", direction: "direction", captionSpacing: "captionSpacing", spaceDistribution: "spaceDistribution", swapInputAndCaption: "swapInputAndCaption" }, 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'}\">\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'\" [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\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption'\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption'\" [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-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.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:2.5rem}.caption.withErrorRightOfCaption .rightOfCaptionError{font-weight:400;overflow:hidden}.caption.withErrorRightOfCaption .rightOfCaptionError *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{flex:1}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:40%}.errorContainer.hasCaption.d30-70{margin-left:30%}.errorContainer.hasCaption.d34-66{margin-left:34%}\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"] }] }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormElementComponent, selector: "klp-form-element", inputs: { caption: "caption", direction: "direction", captionSpacing: "captionSpacing", spaceDistribution: "spaceDistribution", swapInputAndCaption: "swapInputAndCaption" }, 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]=\"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'\" [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'\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption'\" [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-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{flex:1}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:40%}.errorContainer.hasCaption.d30-70{margin-left:30%}.errorContainer.hasCaption.d34-66{margin-left:34%}\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"] }] }); }
97
98
  }
98
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormElementComponent, decorators: [{
99
100
  type: Component,
100
- 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'}\">\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'\" [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\">{{caption}}<span *ngIf=\"isRequired()\">&nbsp;*</span></div>\n\t\t<div class=\"rightOfCaptionError\">\n\t\t\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'rightOfCaption'\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption'\" [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-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.withErrorRightOfCaption{display:flex;justify-content:space-between;gap:2.5rem}.caption.withErrorRightOfCaption .rightOfCaptionError{font-weight:400;overflow:hidden}.caption.withErrorRightOfCaption .rightOfCaptionError *{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inputContainer{flex:1}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:40%}.errorContainer.hasCaption.d30-70{margin-left:30%}.errorContainer.hasCaption.d34-66{margin-left:34%}\n"] }]
101
+ 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]=\"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'\" [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'\" [ngTemplateOutlet]=\"errorRef\"></ng-container>\n\t\t</div>\n\t</div>\n\t<ng-container *ngIf=\"direction === 'vertical' && getErrorLocation() === 'belowCaption'\" [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-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{flex:1}.inputContainer.percentageSpacing{flex:60}.inputContainer.percentageSpacing.d30-70{flex:70}.inputContainer.percentageSpacing.d34-66{flex:66}.errorContainer{color:#ff8000}.errorContainer.hasCaption{margin-left:40%}.errorContainer.hasCaption.d30-70{margin-left:30%}.errorContainer.hasCaption.d34-66{margin-left:34%}\n"] }]
101
102
  }], ctorParameters: function () { return [{ type: i1.FormComponent, decorators: [{
102
103
  type: Optional
103
104
  }] }, { type: undefined, decorators: [{
@@ -119,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
119
120
  type: ViewChild,
120
121
  args: ['internalComponentRef']
121
122
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBK0IsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUtqSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFFL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHFCQUFxQixDQUFDLENBQUM7QUFFbEcsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXNCO0lBQ3hELEdBQUcsRUFBRSxnQ0FBZ0M7SUFDckMsR0FBRyxFQUFFLGlDQUFpQztJQUN0QyxRQUFRLEVBQUUsd0JBQXdCO0lBQ2xDLEtBQUssRUFBRSwyQkFBMkI7SUFDbEMsU0FBUyxFQUFFLGdEQUFnRDtJQUMzRCxTQUFTLEVBQUUsaURBQWlEO0lBQzVELE9BQU8sRUFBRSx5QkFBeUI7SUFDbEMsYUFBYSxFQUFFLHNCQUFzQjtJQUNyQyxJQUFJLEVBQUUsb0JBQW9CO0NBQzFCLENBQUM7QUFPRixNQUFNLE9BQU8sb0JBQW9CO0lBY2hDLFlBQ3NCLE1BQXFCLEVBQ08sY0FBbUM7UUFEL0QsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNPLG1CQUFjLEdBQWQsY0FBYyxDQUFxQjtRQWJyRSxjQUFTLEdBQThCLFlBQVks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LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1Db21wb25lbnR9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7Q3VzdG9tRXJyb3JNZXNzYWdlcywgRm9ybUVycm9yTWVzc2FnZXN9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFZhbHVlQWNjZXNzb3JCYXNlIH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvdmFsdWUtYWNjZXNzb3ItYmFzZS92YWx1ZS1hY2Nlc3Nvci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpc1ZhbHVlU2V0IH0gZnJvbSAnLi4vLi4vdXRpbC92YWx1ZXMnO1xuXG5leHBvcnQgY29uc3QgRk9STV9FUlJPUl9NRVNTQUdFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDdXN0b21FcnJvck1lc3NhZ2VzPignZm9ybS5lcnJvci5tZXNzYWdlcycpO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFUzogRm9ybUVycm9yTWVzc2FnZXMgPSB7XG5cdG1pbjogJ1VzZSBhIG51bWJlciBsYXJnZXIgdGhhbiAlbWluJScsXG5cdG1heDogJ1VzZSBhIG51bWJlciBzbWFsbGVyIHRoYW4gJW1heCUnLFxuXHRyZXF1aXJlZDogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnLFxuXHRlbWFpbDogJ1VzZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxuXHRtaW5MZW5ndGg6ICdIYXMgdG8gYmUgbG9uZ2VyIHRoYW4gJW1pbkxlbmd0aCUgY2hhcmFjdGVyKHMpJyxcblx0bWF4TGVuZ3RoOiAnSGFzIHRvIGJlIHNob3J0ZXIgdGhhbiAlbWF4TGVuZ3RoJSBjaGFyYWN0ZXIocyknLFxuXHRwYXR0ZXJuOiAnVGhpcyBpbnB1dCBpcyBub3QgdmFsaWQnLFxuXHRtYXRjaFBhc3N3b3JkOiAnUGFzc3dvcmRzIG11c3QgbWF0Y2gnLFxuXHRkYXRlOiAnRW50ZXIgYSB2YWxpZCBkYXRlJyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2tscC1mb3JtLWVsZW1lbnQnLFxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vZm9ybS1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FbGVtZW50Q29tcG9uZW50IHtcblx0cHVibGljIGF0dGFjaGVkQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuXHRASW5wdXQoKSBwdWJsaWMgY2FwdGlvbjogc3RyaW5nO1xuXHRASW5wdXQoKSBwdWJsaWMgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXHRASW5wdXQoKSBwdWJsaWMgY2FwdGlvblNwYWNpbmc6ICdwZXJjZW50YWdlcycgfCAnbm9uZScgPSAncGVyY2VudGFnZXMnO1xuXHRASW5wdXQoKSBwdWJsaWMgc3BhY2VEaXN0cmlidXRpb246ICc0MC02MCcgfCAnMzQtNjYnIHwgJzMwLTcwJyA9ICc0MC02MCc7XG5cdEBJbnB1dCgpIHB1YmxpYyBzd2FwSW5wdXRBbmRDYXB0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cdEBWaWV3Q2hpbGQoJ2ludGVybmFsQ29tcG9uZW50UmVmJykgcHVibGljIGludGVybmFsQ29tcG9uZW50UmVmOiBFbGVtZW50UmVmO1xuXG5cdHB1YmxpYyBjYXB0aW9uUmVmOiBFbGVtZW50UmVmO1xuXHRwdWJsaWMgZXJyb3JNZXNzYWdlczogRm9ybUVycm9yTWVzc2FnZXMgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTO1xuXHRwdWJsaWMgY3VzdG9tRXJyb3JIYW5kbGVyczogQXJyYXk8eyBlcnJvcjogc3RyaW5nOyB0ZW1wbGF0ZVJlZjogRWxlbWVudFJlZiB9PiA9IFtdO1xuXHRwcml2YXRlIGlucHV0OiBWYWx1ZUFjY2Vzc29yQmFzZTxhbnk+O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdCBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudDogRm9ybUNvbXBvbmVudCxcblx0XHRASW5qZWN0KEZPUk1fRVJST1JfTUVTU0FHRVMpIEBPcHRpb25hbCgpIHByaXZhdGUgY3VzdG9tTWVzc2FnZXM6IEN1c3RvbUVycm9yTWVzc2FnZXMsXG5cdCkge31cblxuXHRwdWJsaWMgc2hvdWxkU2hvd0Vycm9yTWVzc2FnZXMoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMucGFyZW50Py5zaG93RXJyb3JNZXNzYWdlcyAhPT0gZmFsc2U7XG5cdH1cblxuXHRwdWJsaWMgc3Vic3RpdHV0ZVBhcmFtZXRlcnMobWVzc2FnZTogc3RyaW5nLCBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gT2JqZWN0LmtleXMocGFyYW1ldGVycykucmVkdWNlKChtc2csIGtleSkgPT4ge1xuXHRcdFx0cmV0dXJuIG1zZy5yZXBsYWNlKGAlJHtrZXl9JWAsIHBhcmFtZXRlcnNba2V5XSk7XG5cdFx0fSwgbWVzc2FnZSk7XG5cdH1cblxuXHRwdWJsaWMgcmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wsIGlucHV0OiBWYWx1ZUFjY2Vzc29yQmFzZTxhbnk+ID0gbnVsbCk6IHZvaWQge1xuXHRcdHRoaXMuYXR0YWNoZWRDb250cm9sID0gZm9ybUNvbnRyb2w7XG5cdFx0dGhpcy5wYXJlbnQucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sLCB0aGlzKTtcblx0XHR0aGlzLmlucHV0ID0gaW5wdXQ7XG5cdH1cblxuXHRwdWJsaWMgdW5yZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCk6IHZvaWQge1xuXHRcdHRoaXMuYXR0YWNoZWRDb250cm9sID0gbnVsbDtcblx0XHR0aGlzLnBhcmVudC51bnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0QXR0YWNoZWRDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG5cdFx0cmV0dXJuIHRoaXMuYXR0YWNoZWRDb250cm9sO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyRXJyb3JIYW5kbGVyKGVycm9yOiBzdHJpbmcsIHRlbXBsYXRlUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG5cdFx0dGhpcy5jdXN0b21FcnJvckhhbmRsZXJzLnB1c2goe2Vycm9yLCB0ZW1wbGF0ZVJlZn0pO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyQ2FwdGlvbih0ZW1wbGF0ZVJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuXHRcdHRoaXMuY2FwdGlvblJlZiA9IHRlbXBsYXRlUmVmO1xuXHR9XG5cblx0Z2V0RXJyb3JUb1Nob3coKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5hdHRhY2hlZENvbnRyb2w/LnRvdWNoZWQgPT09IHRydWUgJiYgdGhpcy5hdHRhY2hlZENvbnRyb2w/LmVycm9ycykge1xuXHRcdFx0cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYXR0YWNoZWRDb250cm9sPy5lcnJvcnMpWzBdO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdGdldEN1c3RvbUVycm9ySGFuZGxlcihlcnJvcjogc3RyaW5nKTogeyBlcnJvcjogc3RyaW5nOyB0ZW1wbGF0ZVJlZjogRWxlbWVudFJlZiB9IHtcblx0XHRyZXR1cm4gdGhpcy5jdXN0b21FcnJvckhhbmRsZXJzLmZpbmQoKGUpID0+IGUuZXJyb3IgPT09IGVycm9yKTtcblx0fVxuXG5cdHNob3dEZWZhdWx0RXJyb3IoZXJyb3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmdldEVycm9yVG9TaG93KCkgPT09IGVycm9yICYmICF0aGlzLmN1c3RvbUVycm9ySGFuZGxlcnMuc29tZSgoZSkgPT4gZS5lcnJvciA9PT0gZXJyb3IpO1xuXHR9XG5cblx0Z2V0U2Nyb2xsYWJsZVBhcmVudChub2RlKTogYW55IHtcblx0XHRpZiAobm9kZSA9PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0aWYgKG5vZGUuc2Nyb2xsSGVpZ2h0ID4gbm9kZS5jbGllbnRIZWlnaHQpIHtcblx0XHRcdHJldHVybiBub2RlO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRTY3JvbGxhYmxlUGFyZW50KG5vZGUucGFyZW50Tm9kZSk7XG5cdFx0fVxuXHR9XG5cblx0c2Nyb2xsVG8oKTogdm9pZHtcblx0XHR0aGlzLmludGVybmFsQ29tcG9uZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7XG5cdFx0Ly8gdG8gZ2l2ZSBzb21lIGJyZWF0aGluZyByb29tLCB3ZSBzY3JvbGwgMTAwcHggbW9yZSB0byB0aGUgdG9wXG5cdFx0dGhpcy5nZXRTY3JvbGxhYmxlUGFyZW50KHRoaXMuaW50ZXJuYWxDb21wb25lbnRSZWYubmF0aXZlRWxlbWVudCk/LnNjcm9sbEJ5KDAsIC0xMDApO1xuXHR9XG5cblx0aXNSZXF1aXJlZCgpOiBib29sZWFuIHtcblx0XHRpZiAoaXNWYWx1ZVNldCh0aGlzLmlucHV0KSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuaW5wdXQuaGFzVmFsaWRhdG9yKCdyZXF1aXJlZCcpO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRnZXRFcnJvck1lc3NhZ2Uoa2V5OiBrZXlvZiBGb3JtRXJyb3JNZXNzYWdlcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuY3VzdG9tTWVzc2FnZXM/LltrZXldPy4oKSA/PyB0aGlzLmVycm9yTWVzc2FnZXNba2V5XTtcblx0fVxuXG5cdHB1YmxpYyBnZXRFcnJvckxvY2F0aW9uKCk6ICdiZWxvd0NhcHRpb24nIHwgJ3JpZ2h0T2ZDYXB0aW9uJyB7XG5cdFx0cmV0dXJuIHRoaXMucGFyZW50Py5lcnJvck1lc3NhZ2VMb2NhdGlvbiA/PyAnYmVsb3dDYXB0aW9uJztcblx0fVxufVxuIiwiPG5nLXRlbXBsYXRlICNlcnJvclJlZj5cblx0PGRpdiAqbmdJZj1cInNob3VsZFNob3dFcnJvck1lc3NhZ2VzKCkgJiYgZ2V0RXJyb3JUb1Nob3coKVwiIGNsYXNzPVwiZXJyb3JDb250YWluZXJcIiBbbmdDbGFzc109XCJ7aGFzQ2FwdGlvbjogY2FwdGlvbiB8fCBjYXB0aW9uUmVmLCAnZDMwLTcwJzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczMC03MCcsICdkMzQtNjYnOiBzcGFjZURpc3RyaWJ1dGlvbiA9PT0gJzM0LTY2J31cIj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignbWluJylcIj57e3N1YnN0aXR1dGVQYXJhbWV0ZXJzKGdldEVycm9yTWVzc2FnZShcIm1pblwiKSwge21pbjogYXR0YWNoZWRDb250cm9sLmVycm9ycy5taW4ubWlufSl9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdtYXgnKVwiPnt7c3Vic3RpdHV0ZVBhcmFtZXRlcnMoZ2V0RXJyb3JNZXNzYWdlKFwibWF4XCIpLCB7bWF4OiBhdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1heC5tYXh9KX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ3JlcXVpcmVkJylcIj57e2dldEVycm9yTWVzc2FnZShcInJlcXVpcmVkXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignZW1haWwnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKFwiZW1haWxcIil9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdtaW5sZW5ndGgnKVwiPnt7c3Vic3RpdHV0ZVBhcmFtZXRlcnMoZ2V0RXJyb3JNZXNzYWdlKFwibWluTGVuZ3RoXCIpLCB7bWluTGVuZ3RoOiBhdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1pbmxlbmd0aC5yZXF1aXJlZExlbmd0aH0pfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignbWF4bGVuZ3RoJylcIj57e3N1YnN0aXR1dGVQYXJhbWV0ZXJzKGdldEVycm9yTWVzc2FnZShcIm1heExlbmd0aFwiKSwge21heExlbmd0aDogYXR0YWNoZWRDb250cm9sLmVycm9ycy5tYXhsZW5ndGgucmVxdWlyZWRMZW5ndGh9KX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ3BhdHRlcm4nKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKFwicGF0dGVyblwiKX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ01hdGNoUGFzc3dvcmQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKFwibWF0Y2hQYXNzd29yZFwiKX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ2RhdGUnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKFwiZGF0ZVwiKX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ21lc3NhZ2UnKVwiPnt7YXR0YWNoZWRDb250cm9sLmVycm9ycy5tZXNzYWdlLnZhbHVlfX08L2Rpdj5cblx0XHQ8ZGl2IFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEN1c3RvbUVycm9ySGFuZGxlcihnZXRFcnJvclRvU2hvdygpKT8udGVtcGxhdGVSZWZcIj48L2Rpdj5cblx0PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCdcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvclJlZlwiPjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiY29tcG9uZW50Q29udGFpbmVyXCIgW25nQ2xhc3NdPVwie2hhc0NhcHRpb246IGNhcHRpb24gfHwgY2FwdGlvblJlZiwgdmVydGljYWw6IGRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJywgcmV2ZXJzZU9yZGVyOiBzd2FwSW5wdXRBbmRDYXB0aW9ufVwiICNpbnRlcm5hbENvbXBvbmVudFJlZj5cblx0PGRpdiBjbGFzcz1cImNhcHRpb25cIiAqbmdJZj1cImNhcHRpb24gfHwgY2FwdGlvblJlZlwiXG5cdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0aGFzRXJyb3JzOiBnZXRFcnJvclRvU2hvdygpICYmIGF0dGFjaGVkQ29udHJvbC50b3VjaGVkLFxuXHRcdFx0cGVyY2VudGFnZVNwYWNpbmc6IGNhcHRpb25TcGFjaW5nID09PSAncGVyY2VudGFnZXMnLFxuXHRcdFx0J2QzMC03MCc6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzAtNzAnLFxuXHRcdFx0J2QzNC02Nic6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzQtNjYnLFxuXHRcdFx0d2l0aEVycm9yUmlnaHRPZkNhcHRpb246IGdldEVycm9yTG9jYXRpb24oKSA9PT0gJ3JpZ2h0T2ZDYXB0aW9uJ1xuXHRcdH1cIlxuXHQ+XG5cdFx0PGRpdiAqbmdJZj1cImNhcHRpb25SZWZcIiBjbGFzcz1cImNhcHRpb25SZWZDb250YWluZXJcIj5cblx0XHRcdDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FwdGlvblJlZlwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0PGRpdiAqbmdJZj1cImlzUmVxdWlyZWQoKVwiPiZuYnNwOyo8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwiIWNhcHRpb25SZWZcIj57e2NhcHRpb259fTxzcGFuICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCI+Jm5ic3A7Kjwvc3Bhbj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicmlnaHRPZkNhcHRpb25FcnJvclwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBnZXRFcnJvckxvY2F0aW9uKCkgPT09ICdyaWdodE9mQ2FwdGlvbidcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvclJlZlwiPjwvbmctY29udGFpbmVyPlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBnZXRFcnJvckxvY2F0aW9uKCkgPT09ICdiZWxvd0NhcHRpb24nXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JSZWZcIj48L25nLWNvbnRhaW5lcj5cblx0PGRpdiBjbGFzcz1cImlucHV0Q29udGFpbmVyXCIgW25nQ2xhc3NdPVwie1xuXHRcdHBlcmNlbnRhZ2VTcGFjaW5nOiBjYXB0aW9uU3BhY2luZyA9PT0gJ3BlcmNlbnRhZ2VzJyxcblx0XHQnZDMwLTcwJzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczMC03MCcsXG5cdFx0J2QzNC02Nic6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzQtNjYnXG5cdH1cIj5cblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBK0IsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUtqSSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBRS9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDO0FBRWxHLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFzQjtJQUN4RCxHQUFHLEVBQUUsZ0NBQWdDO0lBQ3JDLEdBQUcsRUFBRSxpQ0FBaUM7SUFDdEMsUUFBUSxFQUFFLHdCQUF3QjtJQUNsQyxLQUFLLEVBQUUsMkJBQTJCO0lBQ2xDLFNBQVMsRUFBRSxnREFBZ0Q7SUFDM0QsU0FBUyxFQUFFLGlEQUFpRDtJQUM1RCxPQUFPLEVBQUUseUJBQXlCO0lBQ2xDLGFBQWEsRUFBRSxzQkFBc0I7SUFDckMsSUFBSSxFQUFFLG9CQUFvQjtDQUMxQixDQUFDO0FBT0YsTUFBTSxPQUFPLG9CQUFvQjtJQWNoQyxZQUNzQixNQUFxQixFQUNPLGNBQW1DO1FBRC9ELFdBQU0sR0FBTixNQUFNLENBQWU7UUFDTyxtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFickUsY0FBUyxHQUE4QixZQUFZ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dCwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge0N1c3RvbUVycm9yTWVzc2FnZXMsIEZvcm1FcnJvck1lc3NhZ2VzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yQmFzZSB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3ZhbHVlLWFjY2Vzc29yLWJhc2UvdmFsdWUtYWNjZXNzb3ItYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNWYWx1ZVNldCB9IGZyb20gJy4uLy4uL3V0aWwvdmFsdWVzJztcblxuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfTUVTU0FHRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q3VzdG9tRXJyb3JNZXNzYWdlcz4oJ2Zvcm0uZXJyb3IubWVzc2FnZXMnKTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVJST1JfTUVTU0FHRVM6IEZvcm1FcnJvck1lc3NhZ2VzID0ge1xuXHRtaW46ICdVc2UgYSBudW1iZXIgbGFyZ2VyIHRoYW4gJW1pbiUnLFxuXHRtYXg6ICdVc2UgYSBudW1iZXIgc21hbGxlciB0aGFuICVtYXglJyxcblx0cmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyxcblx0ZW1haWw6ICdVc2UgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyxcblx0bWluTGVuZ3RoOiAnSGFzIHRvIGJlIGxvbmdlciB0aGFuICVtaW5MZW5ndGglIGNoYXJhY3RlcihzKScsXG5cdG1heExlbmd0aDogJ0hhcyB0byBiZSBzaG9ydGVyIHRoYW4gJW1heExlbmd0aCUgY2hhcmFjdGVyKHMpJyxcblx0cGF0dGVybjogJ1RoaXMgaW5wdXQgaXMgbm90IHZhbGlkJyxcblx0bWF0Y2hQYXNzd29yZDogJ1Bhc3N3b3JkcyBtdXN0IG1hdGNoJyxcblx0ZGF0ZTogJ0VudGVyIGEgdmFsaWQgZGF0ZScsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdrbHAtZm9ybS1lbGVtZW50Jyxcblx0dGVtcGxhdGVVcmw6ICcuL2Zvcm0tZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2Zvcm0tZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRWxlbWVudENvbXBvbmVudCB7XG5cdHB1YmxpYyBhdHRhY2hlZENvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcblx0QElucHV0KCkgcHVibGljIGNhcHRpb246IHN0cmluZztcblx0QElucHV0KCkgcHVibGljIGRpcmVjdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcblx0QElucHV0KCkgcHVibGljIGNhcHRpb25TcGFjaW5nOiAncGVyY2VudGFnZXMnIHwgJ25vbmUnID0gJ3BlcmNlbnRhZ2VzJztcblx0QElucHV0KCkgcHVibGljIHNwYWNlRGlzdHJpYnV0aW9uOiAnNDAtNjAnIHwgJzM0LTY2JyB8ICczMC03MCcgPSAnNDAtNjAnO1xuXHRASW5wdXQoKSBwdWJsaWMgc3dhcElucHV0QW5kQ2FwdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXHRAVmlld0NoaWxkKCdpbnRlcm5hbENvbXBvbmVudFJlZicpIHB1YmxpYyBpbnRlcm5hbENvbXBvbmVudFJlZjogRWxlbWVudFJlZjtcblxuXHRwdWJsaWMgY2FwdGlvblJlZjogRWxlbWVudFJlZjtcblx0cHVibGljIGVycm9yTWVzc2FnZXM6IEZvcm1FcnJvck1lc3NhZ2VzID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUztcblx0cHVibGljIGN1c3RvbUVycm9ySGFuZGxlcnM6IEFycmF5PHsgZXJyb3I6IHN0cmluZzsgdGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYgfT4gPSBbXTtcblx0cHJpdmF0ZSBpbnB1dDogVmFsdWVBY2Nlc3NvckJhc2U8YW55PjtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHQgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnQ6IEZvcm1Db21wb25lbnQsXG5cdFx0QEluamVjdChGT1JNX0VSUk9SX01FU1NBR0VTKSBAT3B0aW9uYWwoKSBwcml2YXRlIGN1c3RvbU1lc3NhZ2VzOiBDdXN0b21FcnJvck1lc3NhZ2VzLFxuXHQpIHt9XG5cblx0cHVibGljIHNob3VsZFNob3dFcnJvck1lc3NhZ2VzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLnBhcmVudD8uc2hvd0Vycm9yTWVzc2FnZXMgIT09IGZhbHNlO1xuXHR9XG5cblx0cHVibGljIHN1YnN0aXR1dGVQYXJhbWV0ZXJzKG1lc3NhZ2U6IHN0cmluZywgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZyB7XG5cdFx0cmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtZXRlcnMpLnJlZHVjZSgobXNnLCBrZXkpID0+IHtcblx0XHRcdHJldHVybiBtc2cucmVwbGFjZShgJSR7a2V5fSVgLCBwYXJhbWV0ZXJzW2tleV0pO1xuXHRcdH0sIG1lc3NhZ2UpO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sLCBpbnB1dDogVmFsdWVBY2Nlc3NvckJhc2U8YW55PiA9IG51bGwpOiB2b2lkIHtcblx0XHR0aGlzLmF0dGFjaGVkQ29udHJvbCA9IGZvcm1Db250cm9sO1xuXHRcdHRoaXMucGFyZW50LnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbCwgdGhpcyk7XG5cdFx0dGhpcy5pbnB1dCA9IGlucHV0O1xuXHR9XG5cblx0cHVibGljIHVucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpOiB2b2lkIHtcblx0XHR0aGlzLmF0dGFjaGVkQ29udHJvbCA9IG51bGw7XG5cdFx0dGhpcy5wYXJlbnQudW5yZWdpc3RlckNvbnRyb2woZm9ybUNvbnRyb2wpO1xuXHR9XG5cblx0cHVibGljIGdldEF0dGFjaGVkQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuXHRcdHJldHVybiB0aGlzLmF0dGFjaGVkQ29udHJvbDtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckVycm9ySGFuZGxlcihlcnJvcjogc3RyaW5nLCB0ZW1wbGF0ZVJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuXHRcdHRoaXMuY3VzdG9tRXJyb3JIYW5kbGVycy5wdXNoKHtlcnJvciwgdGVtcGxhdGVSZWZ9KTtcblx0fVxuXG5cdHB1YmxpYyByZWdpc3RlckNhcHRpb24odGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcblx0XHR0aGlzLmNhcHRpb25SZWYgPSB0ZW1wbGF0ZVJlZjtcblx0fVxuXG5cdGdldEVycm9yVG9TaG93KCk6IHN0cmluZyB7XG5cdFx0aWYgKHRoaXMuYXR0YWNoZWRDb250cm9sPy50b3VjaGVkID09PSB0cnVlICYmIHRoaXMuYXR0YWNoZWRDb250cm9sPy5lcnJvcnMpIHtcblx0XHRcdHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmF0dGFjaGVkQ29udHJvbD8uZXJyb3JzKVswXTtcblx0XHR9XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHRnZXRDdXN0b21FcnJvckhhbmRsZXIoZXJyb3I6IHN0cmluZyk6IHsgZXJyb3I6IHN0cmluZzsgdGVtcGxhdGVSZWY6IEVsZW1lbnRSZWYgfSB7XG5cdFx0cmV0dXJuIHRoaXMuY3VzdG9tRXJyb3JIYW5kbGVycy5maW5kKChlKSA9PiBlLmVycm9yID09PSBlcnJvcik7XG5cdH1cblxuXHRzaG93RGVmYXVsdEVycm9yKGVycm9yOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRFcnJvclRvU2hvdygpID09PSBlcnJvciAmJiAhdGhpcy5jdXN0b21FcnJvckhhbmRsZXJzLnNvbWUoKGUpID0+IGUuZXJyb3IgPT09IGVycm9yKTtcblx0fVxuXG5cdGdldFNjcm9sbGFibGVQYXJlbnQobm9kZSk6IGFueSB7XG5cdFx0aWYgKG5vZGUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHRcdGlmIChub2RlLnNjcm9sbEhlaWdodCA+IG5vZGUuY2xpZW50SGVpZ2h0KSB7XG5cdFx0XHRyZXR1cm4gbm9kZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0U2Nyb2xsYWJsZVBhcmVudChub2RlLnBhcmVudE5vZGUpO1xuXHRcdH1cblx0fVxuXG5cdHNjcm9sbFRvKCk6IHZvaWR7XG5cdFx0dGhpcy5pbnRlcm5hbENvbXBvbmVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHRydWUpO1xuXHRcdC8vIHRvIGdpdmUgc29tZSBicmVhdGhpbmcgcm9vbSwgd2Ugc2Nyb2xsIDEwMHB4IG1vcmUgdG8gdGhlIHRvcFxuXHRcdHRoaXMuZ2V0U2Nyb2xsYWJsZVBhcmVudCh0aGlzLmludGVybmFsQ29tcG9uZW50UmVmLm5hdGl2ZUVsZW1lbnQpPy5zY3JvbGxCeSgwLCAtMTAwKTtcblx0fVxuXG5cdGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XG5cdFx0aWYgKGlzVmFsdWVTZXQodGhpcy5pbnB1dCkpIHtcblx0XHRcdHJldHVybiB0aGlzLmlucHV0Lmhhc1ZhbGlkYXRvcigncmVxdWlyZWQnKTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0Z2V0RXJyb3JNZXNzYWdlKGtleToga2V5b2YgRm9ybUVycm9yTWVzc2FnZXMpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmN1c3RvbU1lc3NhZ2VzPy5ba2V5XT8uKCkgPz8gdGhpcy5lcnJvck1lc3NhZ2VzW2tleV07XG5cdH1cblxuXHRwdWJsaWMgZ2V0RXJyb3JMb2NhdGlvbigpOiAnYmVsb3dDYXB0aW9uJyB8ICdyaWdodE9mQ2FwdGlvbicge1xuXHRcdHJldHVybiB0aGlzLnBhcmVudD8uZXJyb3JNZXNzYWdlTG9jYXRpb24gPz8gJ2JlbG93Q2FwdGlvbic7XG5cdH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZXJyb3JSZWY+XG5cdDxkaXYgKm5nSWY9XCJzaG91bGRTaG93RXJyb3JNZXNzYWdlcygpICYmIGdldEVycm9yVG9TaG93KClcIiBjbGFzcz1cImVycm9yQ29udGFpbmVyXCIgW25nQ2xhc3NdPVwie2hhc0NhcHRpb246IGNhcHRpb24gfHwgY2FwdGlvblJlZiwgJ2QzMC03MCc6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzAtNzAnLCAnZDM0LTY2Jzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczNC02Nid9XCIgW2tscFdpdGhUb29sdGlwXT1cImdldEVycm9yTG9jYXRpb24oKSA9PT0gJ3JpZ2h0T2ZDYXB0aW9uJ1wiPlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdtaW4nKVwiPnt7c3Vic3RpdHV0ZVBhcmFtZXRlcnMoZ2V0RXJyb3JNZXNzYWdlKFwibWluXCIpLCB7bWluOiBhdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1pbi5taW59KX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ21heCcpXCI+e3tzdWJzdGl0dXRlUGFyYW1ldGVycyhnZXRFcnJvck1lc3NhZ2UoXCJtYXhcIiksIHttYXg6IGF0dGFjaGVkQ29udHJvbC5lcnJvcnMubWF4Lm1heH0pfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcigncmVxdWlyZWQnKVwiPnt7Z2V0RXJyb3JNZXNzYWdlKFwicmVxdWlyZWRcIil9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdlbWFpbCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJlbWFpbFwiKX19PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cInNob3dEZWZhdWx0RXJyb3IoJ21pbmxlbmd0aCcpXCI+e3tzdWJzdGl0dXRlUGFyYW1ldGVycyhnZXRFcnJvck1lc3NhZ2UoXCJtaW5MZW5ndGhcIiksIHttaW5MZW5ndGg6IGF0dGFjaGVkQ29udHJvbC5lcnJvcnMubWlubGVuZ3RoLnJlcXVpcmVkTGVuZ3RofSl9fTwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCJzaG93RGVmYXVsdEVycm9yKCdtYXhsZW5ndGgnKVwiPnt7c3Vic3RpdHV0ZVBhcmFtZXRlcnMoZ2V0RXJyb3JNZXNzYWdlKFwibWF4TGVuZ3RoXCIpLCB7bWF4TGVuZ3RoOiBhdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1heGxlbmd0aC5yZXF1aXJlZExlbmd0aH0pfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcigncGF0dGVybicpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJwYXR0ZXJuXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignTWF0Y2hQYXNzd29yZCcpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJtYXRjaFBhc3N3b3JkXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignZGF0ZScpXCI+e3tnZXRFcnJvck1lc3NhZ2UoXCJkYXRlXCIpfX08L2Rpdj5cblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0RlZmF1bHRFcnJvcignbWVzc2FnZScpXCI+e3thdHRhY2hlZENvbnRyb2wuZXJyb3JzLm1lc3NhZ2UudmFsdWV9fTwvZGl2PlxuXHRcdDxkaXYgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2V0Q3VzdG9tRXJyb3JIYW5kbGVyKGdldEVycm9yVG9TaG93KCkpPy50ZW1wbGF0ZVJlZlwiPjwvZGl2PlxuXHQ8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJ1wiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVycm9yUmVmXCI+PC9uZy1jb250YWluZXI+XG5cbjxkaXYgY2xhc3M9XCJjb21wb25lbnRDb250YWluZXJcIiBbbmdDbGFzc109XCJ7aGFzQ2FwdGlvbjogY2FwdGlvbiB8fCBjYXB0aW9uUmVmLCB2ZXJ0aWNhbDogZGlyZWN0aW9uID09PSAndmVydGljYWwnLCByZXZlcnNlT3JkZXI6IHN3YXBJbnB1dEFuZENhcHRpb259XCIgI2ludGVybmFsQ29tcG9uZW50UmVmPlxuXHQ8ZGl2IGNsYXNzPVwiY2FwdGlvblwiICpuZ0lmPVwiY2FwdGlvbiB8fCBjYXB0aW9uUmVmXCJcblx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRoYXNFcnJvcnM6IGdldEVycm9yVG9TaG93KCkgJiYgYXR0YWNoZWRDb250cm9sLnRvdWNoZWQsXG5cdFx0XHRwZXJjZW50YWdlU3BhY2luZzogY2FwdGlvblNwYWNpbmcgPT09ICdwZXJjZW50YWdlcycsXG5cdFx0XHQnZDMwLTcwJzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczMC03MCcsXG5cdFx0XHQnZDM0LTY2Jzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczNC02NicsXG5cdFx0XHR3aXRoRXJyb3JSaWdodE9mQ2FwdGlvbjogZ2V0RXJyb3JMb2NhdGlvbigpID09PSAncmlnaHRPZkNhcHRpb24nXG5cdFx0fVwiXG5cdD5cblx0XHQ8ZGl2ICpuZ0lmPVwiY2FwdGlvblJlZlwiIGNsYXNzPVwiY2FwdGlvblJlZkNvbnRhaW5lclwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjYXB0aW9uUmVmXCI+PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCI+Jm5ic3A7KjwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgKm5nSWY9XCIhY2FwdGlvblJlZlwiIGNsYXNzPVwiY2FwdGlvblRleHRcIj57e2NhcHRpb259fTxzcGFuICpuZ0lmPVwiaXNSZXF1aXJlZCgpXCI+Jm5ic3A7Kjwvc3Bhbj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwicmlnaHRPZkNhcHRpb25FcnJvclwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBnZXRFcnJvckxvY2F0aW9uKCkgPT09ICdyaWdodE9mQ2FwdGlvbidcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvclJlZlwiPjwvbmctY29udGFpbmVyPlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRpcmVjdGlvbiA9PT0gJ3ZlcnRpY2FsJyAmJiBnZXRFcnJvckxvY2F0aW9uKCkgPT09ICdiZWxvd0NhcHRpb24nXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JSZWZcIj48L25nLWNvbnRhaW5lcj5cblx0PGRpdiBjbGFzcz1cImlucHV0Q29udGFpbmVyXCIgW25nQ2xhc3NdPVwie1xuXHRcdHBlcmNlbnRhZ2VTcGFjaW5nOiBjYXB0aW9uU3BhY2luZyA9PT0gJ3BlcmNlbnRhZ2VzJyxcblx0XHQnZDMwLTcwJzogc3BhY2VEaXN0cmlidXRpb24gPT09ICczMC03MCcsXG5cdFx0J2QzNC02Nic6IHNwYWNlRGlzdHJpYnV0aW9uID09PSAnMzQtNjYnXG5cdH1cIj5cblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -2,6 +2,7 @@ import { Component, Host, Input, Optional, ViewChild } from '@angular/core';
2
2
  import { isNullOrUndefined } from "../../util/values";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../form-element/form-element.component";
5
+ import * as i2 from "@angular/common";
5
6
  export class FormErrorComponent {
6
7
  constructor(parent) {
7
8
  this.parent = parent;
@@ -20,12 +21,15 @@ export class FormErrorComponent {
20
21
  }
21
22
  });
22
23
  }
24
+ getErrorValueMessage() {
25
+ return this.parent.getAttachedControl().errors[this.error];
26
+ }
23
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormErrorComponent, deps: [{ token: i1.FormElementComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormErrorComponent, selector: "klp-form-error", inputs: { error: "error" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["contentRef"], descendants: true }], ngImport: i0, template: "<ng-template #contentRef>\n\t<ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:block}\n"] }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormErrorComponent, selector: "klp-form-error", inputs: { error: "error" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["contentRef"], descendants: true }], ngImport: i0, template: "<ng-template #contentRef>\n\t<ng-content *ngIf=\"error !== 'async'\"></ng-content>\n\t<div *ngIf=\"error === 'async'\">{{getErrorValueMessage()}}</div>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
25
29
  }
26
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormErrorComponent, decorators: [{
27
31
  type: Component,
28
- args: [{ selector: 'klp-form-error', template: "<ng-template #contentRef>\n\t<ng-content></ng-content>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
32
+ args: [{ selector: 'klp-form-error', template: "<ng-template #contentRef>\n\t<ng-content *ngIf=\"error !== 'async'\"></ng-content>\n\t<div *ngIf=\"error === 'async'\">{{getErrorValueMessage()}}</div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
29
33
  }], ctorParameters: function () { return [{ type: i1.FormElementComponent, decorators: [{
30
34
  type: Host
31
35
  }, {
@@ -36,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
36
40
  type: ViewChild,
37
41
  args: ['contentRef']
38
42
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLElBQUksRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBUXBELE1BQU0sT0FBTyxrQkFBa0I7SUFJOUIsWUFBd0MsTUFBNEI7UUFBNUIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFGN0QsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUU4QyxDQUFDO0lBRXhFLFFBQVE7UUFDUCx1R0FBdUc7UUFDdkcscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQiw4SEFBOEg7UUFDOUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNmLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlELElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQzthQUNyRjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FsQlcsa0JBQWtCO2tHQUFsQixrQkFBa0IsNExDVi9CLDBFQUdBOzsyRkRPYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0MsZ0JBQWdCOzswQkFRYixJQUFJOzswQkFBSSxRQUFROzRDQUhwQixLQUFLO3NCQUFiLEtBQUs7Z0JBRTBCLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtRWxlbWVudENvbXBvbmVudH0gZnJvbSBcIi4uL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50XCI7XG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkfSBmcm9tIFwiLi4vLi4vdXRpbC92YWx1ZXNcIjtcbmltcG9ydCB7RXJyb3JUeXBlc30gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2tscC1mb3JtLWVycm9yJyxcblx0dGVtcGxhdGVVcmw6ICcuL2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9mb3JtLWVycm9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgpIGVycm9yOiBFcnJvclR5cGVzO1xuXHRwdWJsaWMgc2hvd0Vycm9yID0gZmFsc2U7XG5cdEBWaWV3Q2hpbGQoJ2NvbnRlbnRSZWYnKSBwdWJsaWMgY29udGVudFJlZjogRWxlbWVudFJlZjtcblx0Y29uc3RydWN0b3IoQEhvc3QoKSBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudDogRm9ybUVsZW1lbnRDb21wb25lbnQpIHt9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0Ly8gdGhpcyBpcyBiZWluZyBydW4gbmV4dCBjeWNsZSwgYmVjYXVzZSB3ZSBkb250IHdhbnQgdG8gZmFpbCBpZiB0aGUgb3JkZXIgb2YgY29tcG9uZW50cyBpcyBhcyBmb2xsb3dzOlxuXHRcdC8vIDxhcHAtZm9ybS1lcnJvciAvPlxuXHRcdC8vIDxzb21lLWlucHV0IC8+XG5cdFx0Ly8gVGhhdCB3b3VsZCBmYWlsLCBiZWNhdXNlIHRoZSBsb2dpYyBvZiB0aGUgZm9ybSBlcnJvciBpcyBydW4gZmlyc3QsIGFuZCBhdCB0aGF0IG1vbWVudCwgdGhlIGBzb21lLWlucHV0YCBpc250IHJlZ2lzdGVyZWQgeWV0XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRjb25zdCBhdHRhY2hlZENvbnRyb2wgPSB0aGlzLnBhcmVudC5nZXRBdHRhY2hlZENvbnRyb2woKTtcblx0XHRcdHRoaXMucGFyZW50LnJlZ2lzdGVyRXJyb3JIYW5kbGVyKHRoaXMuZXJyb3IsIHRoaXMuY29udGVudFJlZik7XG5cdFx0XHRpZiAoaXNOdWxsT3JVbmRlZmluZWQoYXR0YWNoZWRDb250cm9sKSkge1xuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBhZGRlZCBhIEZvcm0gRXJyb3IgY29tcG9uZW50IHdpdGhvdXQgYW4gYXR0YWNoZWQgRm9ybSBDb250cm9sJyk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudFJlZj5cblx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLElBQUksRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQVFwRCxNQUFNLE9BQU8sa0JBQWtCO0lBSTlCLFlBQXdDLE1BQTRCO1FBQTVCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBRjdELGNBQVMsR0FBRyxLQUFLLENBQUM7SUFFOEMsQ0FBQztJQUV4RSxRQUFRO1FBQ1AsdUdBQXVHO1FBQ3ZHLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsOEhBQThIO1FBQzlILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5RCxJQUFJLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7YUFDckY7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxvQkFBb0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQXRCVyxrQkFBa0I7a0dBQWxCLGtCQUFrQiw0TENWL0IsMktBSUE7OzJGRE1hLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDQyxnQkFBZ0I7OzBCQVFiLElBQUk7OzBCQUFJLFFBQVE7NENBSHBCLEtBQUs7c0JBQWIsS0FBSztnQkFFMEIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1FbGVtZW50Q29tcG9uZW50fSBmcm9tIFwiLi4vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCIuLi8uLi91dGlsL3ZhbHVlc1wiO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAna2xwLWZvcm0tZXJyb3InLFxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2Zvcm0tZXJyb3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblx0QElucHV0KCkgZXJyb3I6IEVycm9yVHlwZXM7XG5cdHB1YmxpYyBzaG93RXJyb3IgPSBmYWxzZTtcblx0QFZpZXdDaGlsZCgnY29udGVudFJlZicpIHB1YmxpYyBjb250ZW50UmVmOiBFbGVtZW50UmVmO1xuXHRjb25zdHJ1Y3RvcihASG9zdCgpIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50OiBGb3JtRWxlbWVudENvbXBvbmVudCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHQvLyB0aGlzIGlzIGJlaW5nIHJ1biBuZXh0IGN5Y2xlLCBiZWNhdXNlIHdlIGRvbnQgd2FudCB0byBmYWlsIGlmIHRoZSBvcmRlciBvZiBjb21wb25lbnRzIGlzIGFzIGZvbGxvd3M6XG5cdFx0Ly8gPGFwcC1mb3JtLWVycm9yIC8+XG5cdFx0Ly8gPHNvbWUtaW5wdXQgLz5cblx0XHQvLyBUaGF0IHdvdWxkIGZhaWwsIGJlY2F1c2UgdGhlIGxvZ2ljIG9mIHRoZSBmb3JtIGVycm9yIGlzIHJ1biBmaXJzdCwgYW5kIGF0IHRoYXQgbW9tZW50LCB0aGUgYHNvbWUtaW5wdXRgIGlzbnQgcmVnaXN0ZXJlZCB5ZXRcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdGNvbnN0IGF0dGFjaGVkQ29udHJvbCA9IHRoaXMucGFyZW50LmdldEF0dGFjaGVkQ29udHJvbCgpO1xuXHRcdFx0dGhpcy5wYXJlbnQucmVnaXN0ZXJFcnJvckhhbmRsZXIodGhpcy5lcnJvciwgdGhpcy5jb250ZW50UmVmKTtcblx0XHRcdGlmIChpc051bGxPclVuZGVmaW5lZChhdHRhY2hlZENvbnRyb2wpKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignWW91IGFkZGVkIGEgRm9ybSBFcnJvciBjb21wb25lbnQgd2l0aG91dCBhbiBhdHRhY2hlZCBGb3JtIENvbnRyb2wnKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBnZXRFcnJvclZhbHVlTWVzc2FnZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLnBhcmVudC5nZXRBdHRhY2hlZENvbnRyb2woKS5lcnJvcnNbdGhpcy5lcnJvcl07XG5cdH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudFJlZj5cblx0PG5nLWNvbnRlbnQgKm5nSWY9XCJlcnJvciAhPT0gJ2FzeW5jJ1wiPjwvbmctY29udGVudD5cblx0PGRpdiAqbmdJZj1cImVycm9yID09PSAnYXN5bmMnXCI+e3tnZXRFcnJvclZhbHVlTWVzc2FnZSgpfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,74 +1,59 @@
1
- import { Component, Host, HostBinding, Input, Optional } from '@angular/core';
2
- import { invalidFieldsSymbol } from '../form.component';
3
- import { isNullOrUndefined } from '../../util/values';
1
+ import { Component, HostBinding, inject, Input } from '@angular/core';
2
+ import { FormComponent, invalidFieldsSymbol } from '../form.component';
3
+ import { DefaultErrorHandler, KLP_FORM_ERROR_HANDLER } from '../form-validation-error/form-validation-error';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../form.component";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "../../elements/button/button.component";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../../elements/button/button.component";
8
7
  export class FormSubmitButtonComponent {
9
- get _() {
10
- return this.fullWidth;
11
- }
12
- constructor(parentForm) {
13
- this.parentForm = parentForm;
8
+ constructor() {
9
+ this.parentForm = inject(FormComponent, { host: true, optional: true });
10
+ this.handleError = inject(KLP_FORM_ERROR_HANDLER, { optional: true }) ?? DefaultErrorHandler;
14
11
  this.isLoading = false;
15
12
  this.fullWidth = false;
16
13
  this.variant = 'greenFilled';
17
14
  this.before = () => Promise.resolve();
18
15
  this.after = () => Promise.resolve();
16
+ this.setValidationError = (e) => {
17
+ this.parentForm.formGroup.get(e.path)?.setErrors({ message: { value: e.message } });
18
+ };
19
19
  }
20
20
  async submitForm() {
21
+ await this.before().catch(() => null);
21
22
  try {
22
- await this.before();
23
+ const [renderedAndEnabledValues, renderedValues] = await this.parentForm.trySubmit();
24
+ this.isLoading = true;
25
+ await this.submitCallback(renderedAndEnabledValues, renderedValues)
26
+ .finally(() => this.isLoading = false);
23
27
  }
24
28
  catch (e) {
25
- return;
26
- }
27
- this.parentForm
28
- .trySubmit()
29
- .then(([renderedAndEnabledValues, renderedValues]) => {
30
- this.isLoading = true;
31
- const submitCallbackResult = this.submitCallback(renderedAndEnabledValues, renderedValues);
32
- if (isNullOrUndefined(submitCallbackResult)) {
33
- throw new Error('No promise is returned in your submit function.');
34
- }
35
- return submitCallbackResult.then(() => (this.isLoading = false)).catch((e) => {
36
- this.isLoading = false;
37
- throw e;
38
- });
39
- })
40
- .catch((e) => {
41
29
  if (e === invalidFieldsSymbol) {
42
30
  return; // swallow the error, the framework will scroll to the field that needs attention
43
31
  }
44
- throw e;
45
- });
32
+ this.handleError(e).forEach(this.setValidationError);
33
+ return;
34
+ }
46
35
  await this.after();
47
36
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormSubmitButtonComponent, deps: [{ token: i1.FormComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant", before: "before", after: "after", submitCallback: "submitCallback" }, host: { properties: { "class._fullWidth": "this._" } }, ngImport: i0, template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.ButtonComponent, selector: "klp-form-button", inputs: ["variant", "size", "fullWidth", "hasBorder", "disabled", "isLoading", "type", "clickCallback"] }] }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormSubmitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant", submitCallback: "submitCallback", before: "before", after: "after" }, host: { properties: { "class._fullWidth": "this.fullWidth" } }, ngImport: i0, template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.ButtonComponent, selector: "klp-form-button", inputs: ["variant", "size", "fullWidth", "hasBorder", "disabled", "isLoading", "type", "clickCallback"] }] }); }
50
39
  }
51
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormSubmitButtonComponent, decorators: [{
52
41
  type: Component,
53
42
  args: [{ selector: 'klp-form-submit-button', template: "<klp-form-button\n\t\t[variant]=\"variant\"\n\t\t(click)=\"submitForm()\"\n\t\t[disabled]=\"isLoading\"\n\t\t[isLoading]=\"isLoading\"\n\t\t[fullWidth]=\"fullWidth\"\n\t\ttype=\"submit\"\n\t\t[ngClass]=\"fullWidth ? 'fullWidth' : ''\"\n\t>\n\t<ng-content></ng-content>\n</klp-form-button>\n", styles: [":host{display:inline-block}:host._fullWidth{display:block}.fullWidth{width:100%}\n"] }]
54
- }], ctorParameters: function () { return [{ type: i1.FormComponent, decorators: [{
55
- type: Host
56
- }, {
57
- type: Optional
58
- }] }]; }, propDecorators: { isLoading: [{
43
+ }], propDecorators: { isLoading: [{
59
44
  type: Input
60
45
  }], fullWidth: [{
61
46
  type: Input
47
+ }, {
48
+ type: HostBinding,
49
+ args: ['class._fullWidth']
62
50
  }], variant: [{
63
51
  type: Input
52
+ }], submitCallback: [{
53
+ type: Input
64
54
  }], before: [{
65
55
  type: Input
66
56
  }], after: [{
67
57
  type: Input
68
- }], submitCallback: [{
69
- type: Input
70
- }], _: [{
71
- type: HostBinding,
72
- args: ['class._fullWidth']
73
58
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1zdWJtaXQtYnV0dG9uL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tc3VibWl0LWJ1dHRvbi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFnQixtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7OztBQWVwRCxNQUFNLE9BQU8seUJBQXlCO0lBUXJDLElBQXFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUF3QyxVQUF5QjtRQUF6QixlQUFVLEdBQVYsVUFBVSxDQUFlO1FBWGpELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixZQUFPLEdBQXdCLGFBQWEsQ0FBQztRQUN0QyxXQUFNLEdBQXVCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxVQUFLLEdBQXVCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQU9BLENBQUM7SUFFckUsS0FBSyxDQUFDLFVBQVU7UUFDZixJQUFJO1lBQ0gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDcEI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxVQUFVO2FBQ2IsU0FBUyxFQUFFO2FBQ1gsSUFBSSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUMzRixJQUFJLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNuRTtZQUNELE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM1RSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsTUFBTSxDQUFDLENBQUM7WUFDVCxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxpRkFBaUY7YUFDekY7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0osTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs4R0F4Q1cseUJBQXlCO2tHQUF6Qix5QkFBeUIsMFFDakJ0QyxvU0FXQTs7MkZETWEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNDLHdCQUF3Qjs7MEJBZ0JyQixJQUFJOzswQkFBSSxRQUFROzRDQVhiLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBRStCLENBQUM7c0JBQXJDLFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBIb3N0QmluZGluZywgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db21wb25lbnQsIGludmFsaWRGaWVsZHNTeW1ib2x9IGZyb20gJy4uL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gJy4uLy4uL3V0aWwvdmFsdWVzJztcbmltcG9ydCB7IEJ1dHRvblZhcmlhbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIFN1Ym1pdEJ1dHRvblZhcmlhbnQgPSBFeHRyYWN0PEJ1dHRvblZhcmlhbnQsXG5cdHwgJ2dyZWVuRmlsbGVkJ1xuXHR8ICdyZWRGaWxsZWQnXG5cdHwgJ2dyZWVuT3V0bGluZWQnXG5cdHwgJ3doaXRlJ1xuPjtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAna2xwLWZvcm0tc3VibWl0LWJ1dHRvbicsXG5cdHRlbXBsYXRlVXJsOiAnLi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVN1Ym1pdEJ1dHRvbkNvbXBvbmVudCB7XG5cdEBJbnB1dCgpIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblx0QElucHV0KCkgZnVsbFdpZHRoID0gZmFsc2U7XG5cdEBJbnB1dCgpIHZhcmlhbnQ6IFN1Ym1pdEJ1dHRvblZhcmlhbnQgPSAnZ3JlZW5GaWxsZWQnO1xuXHRASW5wdXQoKSBwdWJsaWMgYmVmb3JlOiAoKSA9PiBQcm9taXNlPGFueT4gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcblx0QElucHV0KCkgcHVibGljIGFmdGVyOiAoKSA9PiBQcm9taXNlPGFueT4gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcblx0QElucHV0KCkgcHVibGljIHN1Ym1pdENhbGxiYWNrOiAocmVuZGVyZWRBbmRFbmFibGVkVmFsdWVzOiBvYmplY3QsIHJlbmRlcmVkQnV0RGlzYWJsZWRWYWx1ZXM6IG9iamVjdCkgPT4gUHJvbWlzZTxhbnk+O1xuXG5cdEBIb3N0QmluZGluZygnY2xhc3MuX2Z1bGxXaWR0aCcpIGdldCBfKCkge1xuXHRcdHJldHVybiB0aGlzLmZ1bGxXaWR0aDtcblx0fVxuXG5cdGNvbnN0cnVjdG9yKEBIb3N0KCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRGb3JtOiBGb3JtQ29tcG9uZW50KSB7fVxuXG5cdGFzeW5jIHN1Ym1pdEZvcm0oKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IHRoaXMuYmVmb3JlKCk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLnBhcmVudEZvcm1cblx0XHRcdC50cnlTdWJtaXQoKVxuXHRcdFx0LnRoZW4oKFtyZW5kZXJlZEFuZEVuYWJsZWRWYWx1ZXMsIHJlbmRlcmVkVmFsdWVzXSkgPT4ge1xuXHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cdFx0XHRcdGNvbnN0IHN1Ym1pdENhbGxiYWNrUmVzdWx0ID0gdGhpcy5zdWJtaXRDYWxsYmFjayhyZW5kZXJlZEFuZEVuYWJsZWRWYWx1ZXMsIHJlbmRlcmVkVmFsdWVzKTtcblx0XHRcdFx0aWYgKGlzTnVsbE9yVW5kZWZpbmVkKHN1Ym1pdENhbGxiYWNrUmVzdWx0KSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignTm8gcHJvbWlzZSBpcyByZXR1cm5lZCBpbiB5b3VyIHN1Ym1pdCBmdW5jdGlvbi4nKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gc3VibWl0Q2FsbGJhY2tSZXN1bHQudGhlbigoKSA9PiAodGhpcy5pc0xvYWRpbmcgPSBmYWxzZSkpLmNhdGNoKChlKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGUpID0+IHtcblx0XHRcdFx0aWYgKGUgPT09IGludmFsaWRGaWVsZHNTeW1ib2wpIHtcblx0XHRcdFx0XHRyZXR1cm47IC8vIHN3YWxsb3cgdGhlIGVycm9yLCB0aGUgZnJhbWV3b3JrIHdpbGwgc2Nyb2xsIHRvIHRoZSBmaWVsZCB0aGF0IG5lZWRzIGF0dGVudGlvblxuXHRcdFx0XHR9XG5cdFx0XHRcdHRocm93IGU7XG5cdFx0XHR9KTtcblx0XHRhd2FpdCB0aGlzLmFmdGVyKCk7XG5cdH1cbn1cbiIsIjxrbHAtZm9ybS1idXR0b25cblx0XHRbdmFyaWFudF09XCJ2YXJpYW50XCJcblx0XHQoY2xpY2spPVwic3VibWl0Rm9ybSgpXCJcblx0XHRbZGlzYWJsZWRdPVwiaXNMb2FkaW5nXCJcblx0XHRbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiXG5cdFx0W2Z1bGxXaWR0aF09XCJmdWxsV2lkdGhcIlxuXHRcdHR5cGU9XCJzdWJtaXRcIlxuXHRcdFtuZ0NsYXNzXT1cImZ1bGxXaWR0aCA/ICdmdWxsV2lkdGgnIDogJydcIlxuXHQ+XG5cdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwva2xwLWZvcm0tYnV0dG9uPlxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1zdWJtaXQtYnV0dG9uL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tc3VibWl0LWJ1dHRvbi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFckUsT0FBTyxFQUFFLG1CQUFtQixFQUF1QixzQkFBc0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7O0FBY2xJLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFNUyxlQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDakUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztRQUU5RSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2UsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNuRCxZQUFPLEdBQXdCLGFBQWEsQ0FBQztRQUU3QyxXQUFNLEdBQXVCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxVQUFLLEdBQXVCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU1RCx1QkFBa0IsR0FBRyxDQUFDLENBQXNCLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQTtLQW9CRDtJQWxCQSxLQUFLLENBQUMsVUFBVTtRQUNmLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJO1lBQ0gsTUFBTSxDQUFDLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsY0FBYyxDQUFDO2lCQUNqRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUN4QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxpRkFBaUY7YUFDekY7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNyRCxPQUFPO1NBQ1A7UUFFRCxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixDQUFDOzhHQWhDVyx5QkFBeUI7a0dBQXpCLHlCQUF5QixrUkNqQnRDLG9TQVdBOzsyRkRNYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Msd0JBQXdCOzhCQVFsQixTQUFTO3NCQUF4QixLQUFLO2dCQUMyQyxTQUFTO3NCQUF6RCxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDeEIsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudCwgaW52YWxpZEZpZWxkc1N5bWJvbH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uVmFyaWFudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRFcnJvckhhbmRsZXIsIEZvcm1WYWxpZGF0aW9uRXJyb3IsIEtMUF9GT1JNX0VSUk9SX0hBTkRMRVIgfSBmcm9tICcuLi9mb3JtLXZhbGlkYXRpb24tZXJyb3IvZm9ybS12YWxpZGF0aW9uLWVycm9yJztcblxuZXhwb3J0IHR5cGUgU3VibWl0QnV0dG9uVmFyaWFudCA9IEV4dHJhY3Q8QnV0dG9uVmFyaWFudCxcblx0fCAnZ3JlZW5GaWxsZWQnXG5cdHwgJ3JlZEZpbGxlZCdcblx0fCAnZ3JlZW5PdXRsaW5lZCdcblx0fCAnd2hpdGUnXG4+O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdrbHAtZm9ybS1zdWJtaXQtYnV0dG9uJyxcblx0dGVtcGxhdGVVcmw6ICcuL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtU3VibWl0QnV0dG9uQ29tcG9uZW50IHtcblx0cHJpdmF0ZSBwYXJlbnRGb3JtID0gaW5qZWN0KEZvcm1Db21wb25lbnQsIHtob3N0OiB0cnVlLCBvcHRpb25hbDogdHJ1ZX0pO1xuXHRwcml2YXRlIGhhbmRsZUVycm9yID0gaW5qZWN0KEtMUF9GT1JNX0VSUk9SX0hBTkRMRVIsIHtvcHRpb25hbDogdHJ1ZX0pID8/IERlZmF1bHRFcnJvckhhbmRsZXI7XG5cblx0QElucHV0KCkgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXHRASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLl9mdWxsV2lkdGgnKSBwdWJsaWMgZnVsbFdpZHRoID0gZmFsc2U7XG5cdEBJbnB1dCgpIHB1YmxpYyB2YXJpYW50OiBTdWJtaXRCdXR0b25WYXJpYW50ID0gJ2dyZWVuRmlsbGVkJztcblx0QElucHV0KCkgcHVibGljIHN1Ym1pdENhbGxiYWNrOiAocmVuZGVyZWRBbmRFbmFibGVkVmFsdWVzOiBvYmplY3QsIHJlbmRlcmVkQnV0RGlzYWJsZWRWYWx1ZXM6IG9iamVjdCkgPT4gUHJvbWlzZTxhbnk+O1xuXHRASW5wdXQoKSBwdWJsaWMgYmVmb3JlOiAoKSA9PiBQcm9taXNlPGFueT4gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcblx0QElucHV0KCkgcHVibGljIGFmdGVyOiAoKSA9PiBQcm9taXNlPGFueT4gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcblxuXHRwcml2YXRlIHNldFZhbGlkYXRpb25FcnJvciA9IChlOiBGb3JtVmFsaWRhdGlvbkVycm9yKSA9PiB7XG5cdFx0dGhpcy5wYXJlbnRGb3JtLmZvcm1Hcm91cC5nZXQoZS5wYXRoKT8uc2V0RXJyb3JzKHsgbWVzc2FnZTogeyB2YWx1ZTogZS5tZXNzYWdlIH19KTtcblx0fVxuXG5cdGFzeW5jIHN1Ym1pdEZvcm0oKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy5iZWZvcmUoKS5jYXRjaCgoKSA9PiBudWxsKTtcblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBbcmVuZGVyZWRBbmRFbmFibGVkVmFsdWVzLCByZW5kZXJlZFZhbHVlc10gPSBhd2FpdCB0aGlzLnBhcmVudEZvcm0udHJ5U3VibWl0KCk7XG5cdFx0XHR0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cdFx0XHRhd2FpdCB0aGlzLnN1Ym1pdENhbGxiYWNrKHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlcywgcmVuZGVyZWRWYWx1ZXMpXG5cdFx0XHRcdC5maW5hbGx5KCgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdGlmIChlID09PSBpbnZhbGlkRmllbGRzU3ltYm9sKSB7XG5cdFx0XHRcdHJldHVybjsgLy8gc3dhbGxvdyB0aGUgZXJyb3IsIHRoZSBmcmFtZXdvcmsgd2lsbCBzY3JvbGwgdG8gdGhlIGZpZWxkIHRoYXQgbmVlZHMgYXR0ZW50aW9uXG5cdFx0XHR9XG5cdFx0XHR0aGlzLmhhbmRsZUVycm9yKGUpLmZvckVhY2godGhpcy5zZXRWYWxpZGF0aW9uRXJyb3IpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGF3YWl0IHRoaXMuYWZ0ZXIoKTtcblx0fVxufVxuIiwiPGtscC1mb3JtLWJ1dHRvblxuXHRcdFt2YXJpYW50XT1cInZhcmlhbnRcIlxuXHRcdChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuXHRcdFtkaXNhYmxlZF09XCJpc0xvYWRpbmdcIlxuXHRcdFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcblx0XHRbZnVsbFdpZHRoXT1cImZ1bGxXaWR0aFwiXG5cdFx0dHlwZT1cInN1Ym1pdFwiXG5cdFx0W25nQ2xhc3NdPVwiZnVsbFdpZHRoID8gJ2Z1bGxXaWR0aCcgOiAnJ1wiXG5cdD5cblx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9rbHAtZm9ybS1idXR0b24+XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { isArrayOf } from '../../util/arrays';
3
+ export class FormValidationError extends Error {
4
+ constructor(path, message) {
5
+ super(message);
6
+ this.name = 'FormValidationError';
7
+ this.path = path;
8
+ }
9
+ }
10
+ export const KLP_FORM_ERROR_HANDLER = new InjectionToken('KLP_FORM_ERROR_HANDLER');
11
+ export const DefaultErrorHandler = (error) => {
12
+ if (Array.isArray(error) && isArrayOf(error, FormValidationError)) {
13
+ // If the error is an array of FormValidationErrors, then pass it along.
14
+ return error;
15
+ }
16
+ else if (error instanceof FormValidationError) {
17
+ // If the error is a FormValidationError, then wrap it and pass it on.
18
+ return [error];
19
+ }
20
+ throw error;
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvZm9ybS9mb3JtLXZhbGlkYXRpb24tZXJyb3IvZm9ybS12YWxpZGF0aW9uLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxLQUFLO0lBSTdDLFlBQVksSUFBWSxFQUFFLE9BQWU7UUFDeEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSkEsU0FBSSxHQUFHLHFCQUFxQixDQUFDO1FBSzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLENBQUM7Q0FDRDtBQU1ELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUFtQix3QkFBd0IsQ0FBQyxDQUFDO0FBR3JHLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFxQixDQUFDLEtBQVUsRUFBRSxFQUFFO0lBQ25FLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLEVBQUU7UUFDbEUsd0VBQXdFO1FBQ3hFLE9BQU8sS0FBSyxDQUFDO0tBQ2I7U0FBTSxJQUFJLEtBQUssWUFBWSxtQkFBbUIsRUFBRTtRQUNoRCxzRUFBc0U7UUFDdEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2Y7SUFFRCxNQUFNLEtBQUssQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0FycmF5T2YgfSBmcm9tICcuLi8uLi91dGlsL2FycmF5cyc7XG5cbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuXHRwdWJsaWMgcmVhZG9ubHkgbmFtZSA9ICdGb3JtVmFsaWRhdGlvbkVycm9yJztcblx0cHVibGljIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcblxuXHRjb25zdHJ1Y3RvcihwYXRoOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xuXHRcdHN1cGVyKG1lc3NhZ2UpO1xuXHRcdHRoaXMucGF0aCA9IHBhdGg7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgRm9ybVZhbGlkYXRpb25FcnJvcnMgPSBBcnJheTxGb3JtVmFsaWRhdGlvbkVycm9yPjtcblxuZXhwb3J0IHR5cGUgRm9ybUVycm9ySGFuZGxlciA9IChlcnJvcjogYW55KSA9PiBGb3JtVmFsaWRhdGlvbkVycm9ycztcblxuZXhwb3J0IGNvbnN0IEtMUF9GT1JNX0VSUk9SX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48Rm9ybUVycm9ySGFuZGxlcj4oJ0tMUF9GT1JNX0VSUk9SX0hBTkRMRVInKTtcblxuXG5leHBvcnQgY29uc3QgRGVmYXVsdEVycm9ySGFuZGxlcjogRm9ybUVycm9ySGFuZGxlciA9IChlcnJvcjogYW55KSA9PiB7XG5cdGlmIChBcnJheS5pc0FycmF5KGVycm9yKSAmJiBpc0FycmF5T2YoZXJyb3IsIEZvcm1WYWxpZGF0aW9uRXJyb3IpKSB7XG5cdFx0Ly8gSWYgdGhlIGVycm9yIGlzIGFuIGFycmF5IG9mIEZvcm1WYWxpZGF0aW9uRXJyb3JzLCB0aGVuIHBhc3MgaXQgYWxvbmcuXG5cdFx0cmV0dXJuIGVycm9yO1xuXHR9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRm9ybVZhbGlkYXRpb25FcnJvcikge1xuXHRcdC8vIElmIHRoZSBlcnJvciBpcyBhIEZvcm1WYWxpZGF0aW9uRXJyb3IsIHRoZW4gd3JhcCBpdCBhbmQgcGFzcyBpdCBvbi5cblx0XHRyZXR1cm4gW2Vycm9yXTtcblx0fVxuXG5cdHRocm93IGVycm9yO1xufTtcblxuIl19