@klippa/ngx-enhancy-forms 14.7.17 → 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/public-api.mjs +2 -1
- package/fesm2015/klippa-ngx-enhancy-forms.mjs +49 -40
- package/fesm2015/klippa-ngx-enhancy-forms.mjs.map +1 -1
- package/fesm2020/klippa-ngx-enhancy-forms.mjs +47 -38
- 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=
|
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;
|
|
@@ -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
|