@klippa/ngx-enhancy-forms 14.7.16 → 14.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.
- package/esm2020/lib/form/form-submit-button/form-submit-button.component.mjs +28 -43
- package/esm2020/lib/form/form-validation-error/form-validation-error.mjs +22 -0
- package/esm2020/lib/util/arrays.mjs +4 -1
- package/esm2020/lib/util/classes.mjs +2 -0
- package/esm2020/lib/withTooltip.component.mjs +2 -2
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/klippa-ngx-enhancy-forms.mjs +50 -41
- package/fesm2015/klippa-ngx-enhancy-forms.mjs.map +1 -1
- package/fesm2020/klippa-ngx-enhancy-forms.mjs +48 -39
- package/fesm2020/klippa-ngx-enhancy-forms.mjs.map +1 -1
- package/lib/form/form-submit-button/form-submit-button.component.d.ts +5 -6
- package/lib/form/form-validation-error/form-validation-error.d.ts +10 -0
- package/lib/util/arrays.d.ts +2 -0
- package/lib/util/classes.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,74 +1,59 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { invalidFieldsSymbol } from '../form.component';
|
|
3
|
-
import {
|
|
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 "
|
|
6
|
-
import * as i2 from "
|
|
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
|
-
constructor(
|
|
10
|
-
this.parentForm =
|
|
8
|
+
constructor() {
|
|
9
|
+
this.parentForm = inject(FormComponent, { host: true, optional: true });
|
|
10
|
+
this.handleError = inject(KLP_FORM_ERROR_HANDLER, { optional: true }) ?? DefaultErrorHandler;
|
|
11
11
|
this.isLoading = false;
|
|
12
12
|
this.fullWidth = false;
|
|
13
13
|
this.variant = 'greenFilled';
|
|
14
14
|
this.before = () => Promise.resolve();
|
|
15
15
|
this.after = () => Promise.resolve();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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.
|
|
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
|
-
|
|
45
|
-
|
|
32
|
+
this.handleError(e).forEach(this.setValidationError);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
46
35
|
await this.after();
|
|
47
36
|
}
|
|
48
37
|
}
|
|
49
|
-
FormSubmitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, deps: [
|
|
50
|
-
FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant",
|
|
38
|
+
FormSubmitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", 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"] }] });
|
|
51
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", 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
|
-
}],
|
|
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,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL2Zvcm0vZm9ybS1zdWJtaXQtYnV0dG9uL2Zvcm0tc3VibWl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0tc3VibWl0LWJ1dHRvbi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFckUsT0FBTyxFQUFFLG1CQUFtQixFQUF1QixzQkFBc0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7O0FBY2xJLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFNUyxlQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDakUsZ0JBQVcsR0FBRyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxtQkFBbUIsQ0FBQztRQUU5RSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2UsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNuRCxZQUFPLEdBQXdCLGFBQWEsQ0FBQztRQUU3QyxXQUFNLEdBQXVCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNyRCxVQUFLLEdBQXVCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUU1RCx1QkFBa0IsR0FBRyxDQUFDLENBQXNCLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQTtLQW9CRDtJQWxCQSxLQUFLLENBQUMsVUFBVTtRQUNmLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJO1lBQ0gsTUFBTSxDQUFDLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsY0FBYyxDQUFDO2lCQUNqRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUN4QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEtBQUssbUJBQW1CLEVBQUU7Z0JBQzlCLE9BQU8sQ0FBQyxpRkFBaUY7YUFDekY7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNyRCxPQUFPO1NBQ1A7UUFFRCxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQixDQUFDOztzSEFoQ1cseUJBQXlCOzBHQUF6Qix5QkFBeUIsa1JDakJ0QyxvU0FXQTsyRkRNYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Msd0JBQXdCOzhCQVFsQixTQUFTO3NCQUF4QixLQUFLO2dCQUMyQyxTQUFTO3NCQUF6RCxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDeEIsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUNvbXBvbmVudCwgaW52YWxpZEZpZWxkc1N5bWJvbH0gZnJvbSAnLi4vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uVmFyaWFudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRFcnJvckhhbmRsZXIsIEZvcm1WYWxpZGF0aW9uRXJyb3IsIEtMUF9GT1JNX0VSUk9SX0hBTkRMRVIgfSBmcm9tICcuLi9mb3JtLXZhbGlkYXRpb24tZXJyb3IvZm9ybS12YWxpZGF0aW9uLWVycm9yJztcblxuZXhwb3J0IHR5cGUgU3VibWl0QnV0dG9uVmFyaWFudCA9IEV4dHJhY3Q8QnV0dG9uVmFyaWFudCxcblx0fCAnZ3JlZW5GaWxsZWQnXG5cdHwgJ3JlZEZpbGxlZCdcblx0fCAnZ3JlZW5PdXRsaW5lZCdcblx0fCAnd2hpdGUnXG4+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
|
|
@@ -42,4 +42,7 @@ export function splitArrayByCondition(value, condition) {
|
|
|
42
42
|
return acc;
|
|
43
43
|
}, [[]]);
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
export function isArrayOf(arr, kind) {
|
|
46
|
+
return arr.reduce((acc, val) => acc && val instanceof kind, true);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvdXRpbC9hcnJheXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE1BQU0sVUFBVSx3Q0FBd0MsQ0FBQyxVQUF5QyxFQUFFLEdBQUcsTUFBYTtJQUNuSCxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7UUFDM0IsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDbEM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDL0IsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsT0FBTyxDQUFDLEtBQUssb0JBQW9CLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFJLEtBQWU7SUFDM0QsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzVCLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sQ0FBQyxLQUFLLG9CQUFvQixDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJO0lBQzdDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQVE7SUFDM0MsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQVU7SUFDakMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDZjtJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1gsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxLQUFlLEVBQUUsU0FBa0M7SUFDM0YsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2hDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDYjthQUFNO1lBQ04sR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDWixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1YsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUksR0FBbUIsRUFBRSxJQUFnQjtJQUNqRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxZQUFZLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBOZXdhYmxlIH0gZnJvbSAnLi9jbGFzc2VzJztcbmltcG9ydCB7IGlzVmFsdWVTZXQgfSBmcm9tICcuL3ZhbHVlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5c1dpdGhDb21wYXJhdG9yKGNvbXBhcmF0b3I6IChlMTogYW55LCBlMjogYW55KSA9PiBib29sZWFuLCAuLi5hcnJheXM6IGFueVtdKTogYW55IHtcblx0bGV0IGNvbWJpbmVkID0gW107XG5cblx0Zm9yIChjb25zdCBhcnJheSBvZiBhcnJheXMpIHtcblx0XHRjb21iaW5lZCA9IGNvbWJpbmVkLmNvbmNhdChhcnJheSk7XG5cdH1cblxuXHRyZXR1cm4gY29tYmluZWQuZmlsdGVyKChjLCBpKSA9PiB7XG5cdFx0Y29uc3QgZmlyc3RPY2N1cnJlbmNlSW5kZXggPSBjb21iaW5lZC5maW5kSW5kZXgoKGMyKSA9PiBjb21wYXJhdG9yKGMsIGMyKSk7XG5cdFx0cmV0dXJuIGkgPT09IGZpcnN0T2NjdXJyZW5jZUluZGV4O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXk8VD4oYXJyYXk6IEFycmF5PFQ+KTogQXJyYXk8VD4ge1xuXHRyZXR1cm4gYXJyYXkuZmlsdGVyKChjLCBpKSA9PiB7XG5cdFx0Y29uc3QgZmlyc3RPY2N1cnJlbmNlSW5kZXggPSBhcnJheS5maW5kSW5kZXgoKGMyKSA9PiBjMiA9PT0gYyk7XG5cdFx0cmV0dXJuIGkgPT09IGZpcnN0T2NjdXJyZW5jZUluZGV4O1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEF0SW5kZXgoYXJyLCBpbmRleCwgaXRlbSk6IHZvaWQge1xuXHRhcnIuc3BsaWNlKGluZGV4LCAwLCBpdGVtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SXNTZXRBbmRGaWxsZWQoYXJyOiBhbnkpOiBib29sZWFuIHtcblx0cmV0dXJuIGlzQXJyYXkoYXJyKSAmJiBhcnIgIT09IG51bGwgJiYgYXJyICE9PSB1bmRlZmluZWQgJiYgYXJyLmxlbmd0aCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc0FycmF5KHZhbHVlOiBhbnkpOiBBcnJheTxhbnk+IHtcblx0aWYgKGlzVmFsdWVTZXQodmFsdWUpKSB7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcdHJldHVybiBbdmFsdWVdO1xuXHR9XG5cdHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0QXJyYXlCeUNvbmRpdGlvbjxUPih2YWx1ZTogQXJyYXk8VD4sIGNvbmRpdGlvbjogKGN1cnJlbnQ6IFQpID0+IGJvb2xlYW4pOiBBcnJheTxBcnJheTxUPj4ge1xuXHRyZXR1cm4gdmFsdWUucmVkdWNlKChhY2MsIGN1cikgPT4ge1xuXHRcdGlmIChjb25kaXRpb24oY3VyKSkge1xuXHRcdFx0YWNjLnB1c2goW10pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhY2NbYWNjLmxlbmd0aCAtIDFdLnB1c2goY3VyKTtcblx0XHR9XG5cdFx0cmV0dXJuIGFjYztcblx0fSwgW1tdXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FycmF5T2Y8VD4oYXJyOiBBcnJheTxUIHwgYW55Piwga2luZDogTmV3YWJsZTxUPik6IGFyciBpcyBBcnJheTxUPiB7XG5cdHJldHVybiBhcnIucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICYmIHZhbCBpbnN0YW5jZW9mIGtpbmQsIHRydWUpO1xufVxuXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvbGliL3V0aWwvY2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTmV3YWJsZTxUPiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG4iXX0=
|
|
@@ -30,7 +30,7 @@ export class WithTooltipDirective {
|
|
|
30
30
|
this.triangle = document.createElement('div');
|
|
31
31
|
this.triangle.style.zIndex = '1';
|
|
32
32
|
this.triangle.style.position = 'fixed';
|
|
33
|
-
this.triangle.style.left =
|
|
33
|
+
this.triangle.style.left = `calc(${el.nativeElement.getBoundingClientRect().x + el.nativeElement.getBoundingClientRect().width}px - 3rem)`;
|
|
34
34
|
this.triangle.style.top = `${el.nativeElement.getBoundingClientRect().y}px`;
|
|
35
35
|
this.triangle.style.transform = `translate(-50%, calc(-100% + 0.1rem))`;
|
|
36
36
|
this.triangle.style.width = '0';
|
|
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
62
62
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { klpWithTooltip: [{
|
|
63
63
|
type: Input
|
|
64
64
|
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvd2l0aFRvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUszRCxNQUFNLE9BQU8sb0JBQW9CO0lBSWhDLFlBQVksRUFBYztRQURqQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUU5QixFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3pCLE9BQU87YUFDUDtZQUNELElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0JBQzdELEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7YUFDN0M7WUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztZQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FB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QWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzVDO1lBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRTtRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7O2lIQXBEVyxvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUhoQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQkFBa0I7aUJBQzVCO2lHQUlTLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1trbHBXaXRoVG9vbHRpcF0nXG59KVxuZXhwb3J0IGNsYXNzIFdpdGhUb29sdGlwRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSBkaXY6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIHRyaWFuZ2xlOiBIVE1MRWxlbWVudDtcblx0QElucHV0KCkga2xwV2l0aFRvb2x0aXAgPSB0cnVlO1xuXHRjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuXHRcdGVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHtcblx0XHRcdGlmICghdGhpcy5rbHBXaXRoVG9vbHRpcCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAoZ2V0Q29tcHV0ZWRTdHlsZShlbC5uYXRpdmVFbGVtZW50KS5wb3NpdGlvbiA9PT0gJ3N0YXRpYycpIHtcblx0XHRcdFx0ZWwubmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS56SW5kZXggPSAnMic7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS5jb2xvciA9ICcjNTE1MzY1Jztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLmxlZnQgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnh9cHhgO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUudG9wID0gYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55fXB4YDtcblx0XHRcdHRoaXMuZGl2LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoY2FsYygtMTAwJSArICR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weCksIGNhbGMoLTEwMCUgLSAwLjNyZW0pKWA7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS5tYXhXaWR0aCA9ICcyMDBweCc7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS53aGl0ZVNwYWNlID0gJ2JyZWFrLXNwYWNlcyc7XG5cdFx0XHR0aGlzLmRpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnd2hpdGUnO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCByZ2JhKDI1NSwgMTI4LCAwLCAwLjEyNTQ5MDE5NjEpJztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLmJveFNoYWRvdyA9IGAycHggM3B4IDEwcHggMHB4IHJnYmEoMjU1LCAxMjgsIDAsIDAuMTI1NDkwMTk2MSlgO1xuXHRcdFx0dGhpcy5kaXYuc3R5bGUucGFkZGluZyA9ICcwLjNyZW0gMC41cmVtJztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLmJveFNpemluZyA9ICdib3JkZXItYm94Jztcblx0XHRcdHRoaXMuZGl2LnN0eWxlLmJvcmRlclJhZGl1cyA9ICczcHgnO1xuXHRcdFx0dGhpcy5kaXYudGV4dENvbnRlbnQgPSBlbC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dDtcblx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQucHJlcGVuZCh0aGlzLmRpdik7XG5cblx0XHRcdHRoaXMudHJpYW5nbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuekluZGV4ID0gJzEnO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmxlZnQgPSBgY2FsYygke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCArIGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHggLSAzcmVtKWA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnRvcCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueX1weGA7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoLTUwJSwgY2FsYygtMTAwJSArIDAuMXJlbSkpYDtcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUud2lkdGggPSAnMCc7XG5cdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmhlaWdodCA9ICcwJztcblx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuYm9yZGVyTGVmdCA9ICcwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQnO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5ib3JkZXJSaWdodCA9ICcwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQnO1xuXHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5ib3JkZXJUb3AgPSAnMC44cmVtIHNvbGlkIHJnYmEoMjU1LCAxMjgsIDAsIDAuMTI1NDkwMTk2MSknO1xuXHRcdFx0ZWwubmF0aXZlRWxlbWVudC5wcmVwZW5kKHRoaXMudHJpYW5nbGUpO1xuXHRcdH0pO1xuXHRcdGVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCAoKSA9PiB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZGl2KTtcblx0XHRcdH0gY2F0Y2ggKGV4KSB7fVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLnRyaWFuZ2xlKTtcblx0XHRcdH0gY2F0Y2ggKGV4KSB7fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -27,6 +27,7 @@ export * from './lib/form/form-caption/form-caption.component';
|
|
|
27
27
|
export * from './lib/form/form-element/form-element.component';
|
|
28
28
|
export * from './lib/form/form-error/form-error.component';
|
|
29
29
|
export * from './lib/form/form-submit-button/form-submit-button.component';
|
|
30
|
+
export * from './lib/form/form-validation-error/form-validation-error';
|
|
30
31
|
export * from './lib/validators/dateValidator';
|
|
31
32
|
export * from './lib/types';
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tsaXBwYS9uZ3gtZW5oYW5jeS1mb3Jtcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywyRUFBMkUsQ0FBQztBQUUxRixjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHdEQUF3RCxDQUFDO0FBRXZFLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1lbmhhbmN5LWZvcm1zXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWVuaGFuY3ktZm9ybXMubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvZGF0ZS10aW1lLXBpY2tlci9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9lbWFpbC9lbWFpbC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvbG9hZGluZy1pbmRpY2F0b3IvbG9hZGluZy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL251bWJlci1pbnB1dC9udW1iZXItaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL3Bhc3N3b3JkLWZpZWxkL3Bhc3N3b3JkLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9zZWxlY3Qvc2VsZWN0LWZvb3Rlci9zZWxlY3QtZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy9zb3J0YWJsZS1pdGVtcy9zb3J0YWJsZS1pdGVtcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvc29ydGFibGUtZ3JvdXBlZC1pdGVtcy9zb3J0YWJsZS1ncm91cGVkLWl0ZW1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvaG91ci1taW51dGUtaW5wdXQvaG91ci1taW51dGUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzL3ZhbHVlLWFjY2Vzc29yLWJhc2UvdmFsdWUtYWNjZXNzb3ItYmFzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMvdmFsdWUtYWNjZXNzb3ItYmFzZS9tdWx0aXBsZS12YWx1ZS1hY2Nlc3Nvci1iYXNlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpdGhUb29sdGlwLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS9mb3JtLWNhcHRpb24vZm9ybS1jYXB0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtL2Zvcm0tc3VibWl0LWJ1dHRvbi9mb3JtLXN1Ym1pdC1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZm9ybS12YWxpZGF0aW9uLWVycm9yL2Zvcm0tdmFsaWRhdGlvbi1lcnJvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvZGF0ZVZhbGlkYXRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzJztcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, Input, Component, SkipSelf, Optional, InjectionToken, Inject, ViewChild, EventEmitter, Host, Output, HostBinding, TemplateRef, ContentChild, NgModule } from '@angular/core';
|
|
2
|
+
import { Directive, Input, Component, SkipSelf, Optional, InjectionToken, Inject, ViewChild, EventEmitter, Host, Output, HostBinding, TemplateRef, ContentChild, inject, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i2 from '@angular/forms';
|
|
@@ -86,6 +86,9 @@ function splitArrayByCondition(value, condition) {
|
|
|
86
86
|
return acc;
|
|
87
87
|
}, [[]]);
|
|
88
88
|
}
|
|
89
|
+
function isArrayOf(arr, kind) {
|
|
90
|
+
return arr.reduce((acc, val) => acc && val instanceof kind, true);
|
|
91
|
+
}
|
|
89
92
|
|
|
90
93
|
function mergeArray(arrA, arrB) {
|
|
91
94
|
var _a;
|
|
@@ -416,7 +419,7 @@ class WithTooltipDirective {
|
|
|
416
419
|
this.triangle = document.createElement('div');
|
|
417
420
|
this.triangle.style.zIndex = '1';
|
|
418
421
|
this.triangle.style.position = 'fixed';
|
|
419
|
-
this.triangle.style.left =
|
|
422
|
+
this.triangle.style.left = `calc(${el.nativeElement.getBoundingClientRect().x + el.nativeElement.getBoundingClientRect().width}px - 3rem)`;
|
|
420
423
|
this.triangle.style.top = `${el.nativeElement.getBoundingClientRect().y}px`;
|
|
421
424
|
this.triangle.style.transform = `translate(-50%, calc(-100% + 0.1rem))`;
|
|
422
425
|
this.triangle.style.width = '0';
|
|
@@ -1292,75 +1295,81 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
1292
1295
|
args: ['contentRef']
|
|
1293
1296
|
}] } });
|
|
1294
1297
|
|
|
1298
|
+
class FormValidationError extends Error {
|
|
1299
|
+
constructor(path, message) {
|
|
1300
|
+
super(message);
|
|
1301
|
+
this.name = 'FormValidationError';
|
|
1302
|
+
this.path = path;
|
|
1303
|
+
}
|
|
1304
|
+
}
|
|
1305
|
+
const KLP_FORM_ERROR_HANDLER = new InjectionToken('KLP_FORM_ERROR_HANDLER');
|
|
1306
|
+
const DefaultErrorHandler = (error) => {
|
|
1307
|
+
if (Array.isArray(error) && isArrayOf(error, FormValidationError)) {
|
|
1308
|
+
// If the error is an array of FormValidationErrors, then pass it along.
|
|
1309
|
+
return error;
|
|
1310
|
+
}
|
|
1311
|
+
else if (error instanceof FormValidationError) {
|
|
1312
|
+
// If the error is a FormValidationError, then wrap it and pass it on.
|
|
1313
|
+
return [error];
|
|
1314
|
+
}
|
|
1315
|
+
throw error;
|
|
1316
|
+
};
|
|
1317
|
+
|
|
1295
1318
|
class FormSubmitButtonComponent {
|
|
1296
|
-
constructor(
|
|
1297
|
-
|
|
1319
|
+
constructor() {
|
|
1320
|
+
var _a;
|
|
1321
|
+
this.parentForm = inject(FormComponent, { host: true, optional: true });
|
|
1322
|
+
this.handleError = (_a = inject(KLP_FORM_ERROR_HANDLER, { optional: true })) !== null && _a !== void 0 ? _a : DefaultErrorHandler;
|
|
1298
1323
|
this.isLoading = false;
|
|
1299
1324
|
this.fullWidth = false;
|
|
1300
1325
|
this.variant = 'greenFilled';
|
|
1301
1326
|
this.before = () => Promise.resolve();
|
|
1302
1327
|
this.after = () => Promise.resolve();
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1328
|
+
this.setValidationError = (e) => {
|
|
1329
|
+
var _a;
|
|
1330
|
+
(_a = this.parentForm.formGroup.get(e.path)) === null || _a === void 0 ? void 0 : _a.setErrors({ message: { value: e.message } });
|
|
1331
|
+
};
|
|
1306
1332
|
}
|
|
1307
1333
|
submitForm() {
|
|
1308
1334
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1335
|
+
yield this.before().catch(() => null);
|
|
1309
1336
|
try {
|
|
1310
|
-
yield this.
|
|
1337
|
+
const [renderedAndEnabledValues, renderedValues] = yield this.parentForm.trySubmit();
|
|
1338
|
+
this.isLoading = true;
|
|
1339
|
+
yield this.submitCallback(renderedAndEnabledValues, renderedValues)
|
|
1340
|
+
.finally(() => this.isLoading = false);
|
|
1311
1341
|
}
|
|
1312
1342
|
catch (e) {
|
|
1313
|
-
return;
|
|
1314
|
-
}
|
|
1315
|
-
this.parentForm
|
|
1316
|
-
.trySubmit()
|
|
1317
|
-
.then(([renderedAndEnabledValues, renderedValues]) => {
|
|
1318
|
-
this.isLoading = true;
|
|
1319
|
-
const submitCallbackResult = this.submitCallback(renderedAndEnabledValues, renderedValues);
|
|
1320
|
-
if (isNullOrUndefined(submitCallbackResult)) {
|
|
1321
|
-
throw new Error('No promise is returned in your submit function.');
|
|
1322
|
-
}
|
|
1323
|
-
return submitCallbackResult.then(() => (this.isLoading = false)).catch((e) => {
|
|
1324
|
-
this.isLoading = false;
|
|
1325
|
-
throw e;
|
|
1326
|
-
});
|
|
1327
|
-
})
|
|
1328
|
-
.catch((e) => {
|
|
1329
1343
|
if (e === invalidFieldsSymbol) {
|
|
1330
1344
|
return; // swallow the error, the framework will scroll to the field that needs attention
|
|
1331
1345
|
}
|
|
1332
|
-
|
|
1333
|
-
|
|
1346
|
+
this.handleError(e).forEach(this.setValidationError);
|
|
1347
|
+
return;
|
|
1348
|
+
}
|
|
1334
1349
|
yield this.after();
|
|
1335
1350
|
});
|
|
1336
1351
|
}
|
|
1337
1352
|
}
|
|
1338
|
-
FormSubmitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, deps: [
|
|
1339
|
-
FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: FormSubmitButtonComponent, selector: "klp-form-submit-button", inputs: { isLoading: "isLoading", fullWidth: "fullWidth", variant: "variant",
|
|
1353
|
+
FormSubmitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1354
|
+
FormSubmitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", 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: ButtonComponent, selector: "klp-form-button", inputs: ["variant", "size", "fullWidth", "hasBorder", "disabled", "isLoading", "type", "clickCallback"] }] });
|
|
1340
1355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: FormSubmitButtonComponent, decorators: [{
|
|
1341
1356
|
type: Component,
|
|
1342
1357
|
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"] }]
|
|
1343
|
-
}],
|
|
1344
|
-
return [{ type: FormComponent, decorators: [{
|
|
1345
|
-
type: Host
|
|
1346
|
-
}, {
|
|
1347
|
-
type: Optional
|
|
1348
|
-
}] }];
|
|
1349
|
-
}, propDecorators: { isLoading: [{
|
|
1358
|
+
}], propDecorators: { isLoading: [{
|
|
1350
1359
|
type: Input
|
|
1351
1360
|
}], fullWidth: [{
|
|
1352
1361
|
type: Input
|
|
1362
|
+
}, {
|
|
1363
|
+
type: HostBinding,
|
|
1364
|
+
args: ['class._fullWidth']
|
|
1353
1365
|
}], variant: [{
|
|
1354
1366
|
type: Input
|
|
1367
|
+
}], submitCallback: [{
|
|
1368
|
+
type: Input
|
|
1355
1369
|
}], before: [{
|
|
1356
1370
|
type: Input
|
|
1357
1371
|
}], after: [{
|
|
1358
1372
|
type: Input
|
|
1359
|
-
}], submitCallback: [{
|
|
1360
|
-
type: Input
|
|
1361
|
-
}], _: [{
|
|
1362
|
-
type: HostBinding,
|
|
1363
|
-
args: ['class._fullWidth']
|
|
1364
1373
|
}] } });
|
|
1365
1374
|
|
|
1366
1375
|
class MultipleValueAccessorBase extends ValueAccessorBase {
|
|
@@ -2253,5 +2262,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
|
|
|
2253
2262
|
* Generated bundle index. Do not edit.
|
|
2254
2263
|
*/
|
|
2255
2264
|
|
|
2256
|
-
export { ButtonComponent, CheckboxComponent, DATE_PICKER_LOCALE, DATE_PICKER_TRANSLATIONS, DATE_TIME_PICKER_TRANSLATIONS, DEFAULT_ERROR_MESSAGES, DatePickerComponent, DateTimePickerComponent, EmailInputComponent, FORM_ERROR_MESSAGES, FileInputComponent, FormCaptionComponent, FormComponent, FormElementComponent, FormErrorComponent, FormSubmitButtonComponent, HourMinuteInputComponent, KLP_DATE_FORMATS, KlpSelectOptionTemplateDirective, LoadingIndicatorComponent, MultipleValueAccessorBase, NgxEnhancyFormsModule, NumberInputComponent, Orientation, PasswordFieldComponent, RadioComponent, SELECT_TRANSLATIONS, SelectComponent, SelectFooterComponent, SortableGroupedItemsComponent, SortableItemsComponent, SubFormDirective, TextInputComponent, ToggleComponent, ValueAccessorBase, WithTooltipDirective, dateValidator, invalidDateKey, invalidFieldsSymbol, matDateFormatsFactory };
|
|
2265
|
+
export { ButtonComponent, CheckboxComponent, DATE_PICKER_LOCALE, DATE_PICKER_TRANSLATIONS, DATE_TIME_PICKER_TRANSLATIONS, DEFAULT_ERROR_MESSAGES, DatePickerComponent, DateTimePickerComponent, DefaultErrorHandler, EmailInputComponent, FORM_ERROR_MESSAGES, FileInputComponent, FormCaptionComponent, FormComponent, FormElementComponent, FormErrorComponent, FormSubmitButtonComponent, FormValidationError, HourMinuteInputComponent, KLP_DATE_FORMATS, KLP_FORM_ERROR_HANDLER, KlpSelectOptionTemplateDirective, LoadingIndicatorComponent, MultipleValueAccessorBase, NgxEnhancyFormsModule, NumberInputComponent, Orientation, PasswordFieldComponent, RadioComponent, SELECT_TRANSLATIONS, SelectComponent, SelectFooterComponent, SortableGroupedItemsComponent, SortableItemsComponent, SubFormDirective, TextInputComponent, ToggleComponent, ValueAccessorBase, WithTooltipDirective, dateValidator, invalidDateKey, invalidFieldsSymbol, matDateFormatsFactory };
|
|
2257
2266
|
//# sourceMappingURL=klippa-ngx-enhancy-forms.mjs.map
|