@recursyve/ngx-material-components 18.0.0-beta.2 → 18.0.0-beta.3
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/esm2022/form-field-error/constant.mjs +4 -0
- package/esm2022/form-field-error/error-transformer.mjs +51 -0
- package/esm2022/form-field-error/error-translater.mjs +2 -0
- package/esm2022/form-field-error/form-field-error.directive.mjs +79 -0
- package/esm2022/form-field-error/form-field-error.mjs +57 -0
- package/esm2022/form-field-error/index.mjs +6 -0
- package/esm2022/form-field-error/options.mjs +2 -0
- package/esm2022/form-field-error/provider.mjs +18 -0
- package/esm2022/form-field-error/recursyve-ngx-material-components-form-field-error.mjs +5 -0
- package/esm2022/loading/constant.mjs +3 -0
- package/esm2022/loading/index.mjs +4 -0
- package/esm2022/loading/loading-spinner.mjs +15 -0
- package/esm2022/loading/loading.mjs +45 -0
- package/esm2022/loading/options.mjs +2 -0
- package/esm2022/loading/provider.mjs +8 -0
- package/esm2022/loading/recursyve-ngx-material-components-loading.mjs +5 -0
- package/fesm2022/recursyve-ngx-material-components-form-field-error.mjs +208 -0
- package/fesm2022/recursyve-ngx-material-components-form-field-error.mjs.map +1 -0
- package/fesm2022/recursyve-ngx-material-components-loading.mjs +72 -0
- package/fesm2022/recursyve-ngx-material-components-loading.mjs.map +1 -0
- package/form-field-error/constant.d.ts +3 -0
- package/form-field-error/error-transformer.d.ts +13 -0
- package/form-field-error/error-translater.d.ts +1 -0
- package/form-field-error/form-field-error.d.ts +8 -0
- package/form-field-error/form-field-error.directive.d.ts +17 -0
- package/form-field-error/index.d.ts +5 -0
- package/form-field-error/options.d.ts +9 -0
- package/form-field-error/provider.d.ts +3 -0
- package/loading/constant.d.ts +2 -0
- package/loading/index.d.ts +3 -0
- package/loading/loading-spinner.d.ts +9 -0
- package/loading/loading.d.ts +11 -0
- package/loading/options.d.ts +4 -0
- package/loading/provider.d.ts +3 -0
- package/package.json +13 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const NICE_FORM_FIELD_ERROR_TRANSFORMERS = new InjectionToken("nice_form_field_error_transformers");
|
|
3
|
+
export const NICE_FORM_FIELD_ERROR_TRANSLATER = new InjectionToken("nice_form_field_error_translater");
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9mb3JtLWZpZWxkLWVycm9yL2NvbnN0YW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQUMsb0NBQW9DLENBQUMsQ0FBQztBQUMzRyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLGNBQWMsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgTklDRV9GT1JNX0ZJRUxEX0VSUk9SX1RSQU5TRk9STUVSUyA9IG5ldyBJbmplY3Rpb25Ub2tlbihcIm5pY2VfZm9ybV9maWVsZF9lcnJvcl90cmFuc2Zvcm1lcnNcIik7XG5leHBvcnQgY29uc3QgTklDRV9GT1JNX0ZJRUxEX0VSUk9SX1RSQU5TTEFURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJuaWNlX2Zvcm1fZmllbGRfZXJyb3JfdHJhbnNsYXRlclwiKTtcbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const PatternErrorTransformer = (error, details) => {
|
|
2
|
+
if (details["requiredPattern"]) {
|
|
3
|
+
return {
|
|
4
|
+
key: details["requiredPattern"]
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
return { key: error };
|
|
8
|
+
};
|
|
9
|
+
export const MaskErrorTransformer = (error, details) => {
|
|
10
|
+
if (details["requiredMask"]) {
|
|
11
|
+
return {
|
|
12
|
+
key: details["requiredMask"]
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return { key: error };
|
|
16
|
+
};
|
|
17
|
+
export const LengthErrorTransformer = (error, details) => {
|
|
18
|
+
return {
|
|
19
|
+
key: error,
|
|
20
|
+
params: {
|
|
21
|
+
value: details["requiredLength"]
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export const MinErrorTransformer = (error, details) => {
|
|
26
|
+
return {
|
|
27
|
+
key: error,
|
|
28
|
+
params: {
|
|
29
|
+
min: details["min"],
|
|
30
|
+
actual: details["actual"]
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export const MaxErrorTransformer = (error, details) => {
|
|
35
|
+
return {
|
|
36
|
+
key: error,
|
|
37
|
+
params: {
|
|
38
|
+
max: details["max"],
|
|
39
|
+
actual: details["actual"]
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export const DefaultErrorTransformers = {
|
|
44
|
+
pattern: PatternErrorTransformer,
|
|
45
|
+
mask: MaskErrorTransformer,
|
|
46
|
+
minlength: LengthErrorTransformer,
|
|
47
|
+
maxlength: LengthErrorTransformer,
|
|
48
|
+
min: MinErrorTransformer,
|
|
49
|
+
max: MaxErrorTransformer
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItdHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9mb3JtLWZpZWxkLWVycm9yL2Vycm9yLXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFxQixDQUFDLEtBQWEsRUFBRSxPQUF5QixFQUFFLEVBQUU7SUFDbEcsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU87WUFDSCxHQUFHLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1NBQ2xDLENBQUE7SUFDTCxDQUFDO0lBRUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBcUIsQ0FBQyxLQUFhLEVBQUUsT0FBeUIsRUFBRSxFQUFFO0lBQy9GLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTztZQUNILEdBQUcsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDO1NBQy9CLENBQUE7SUFDTCxDQUFDO0lBRUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBcUIsQ0FBQyxLQUFhLEVBQUUsT0FBeUIsRUFBRSxFQUFFO0lBQ2pHLE9BQU87UUFDSCxHQUFHLEVBQUUsS0FBSztRQUNWLE1BQU0sRUFBRTtZQUNKLEtBQUssRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDbkM7S0FDSixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXFCLENBQUMsS0FBYSxFQUFFLE9BQXlCLEVBQUUsRUFBRTtJQUM5RixPQUFPO1FBQ0gsR0FBRyxFQUFFLEtBQUs7UUFDVixNQUFNLEVBQUU7WUFDSixHQUFHLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuQixNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUM1QjtLQUNKLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBcUIsQ0FBQyxLQUFhLEVBQUUsT0FBeUIsRUFBRSxFQUFFO0lBQzlGLE9BQU87UUFDSCxHQUFHLEVBQUUsS0FBSztRQUNWLE1BQU0sRUFBRTtZQUNKLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ25CLE1BQU0sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDO1NBQzVCO0tBQ0osQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFzQjtJQUN2RCxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLElBQUksRUFBRSxvQkFBb0I7SUFDMUIsU0FBUyxFQUFFLHNCQUFzQjtJQUNqQyxTQUFTLEVBQUUsc0JBQXNCO0lBQ2pDLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsR0FBRyxFQUFFLG1CQUFtQjtDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc2Zvcm1lZEVycm9yID0geyBrZXk6IHN0cmluZzsgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9O1xuZXhwb3J0IHR5cGUgRXJyb3JUcmFuc2Zvcm1lciA9IChlcnJvcjogc3RyaW5nLCBkZXRhaWxzOiBWYWxpZGF0aW9uRXJyb3JzKSA9PiBUcmFuc2Zvcm1lZEVycm9yO1xuZXhwb3J0IHR5cGUgRXJyb3JUcmFuc2Zvcm1lcnMgPSBSZWNvcmQ8c3RyaW5nLCBFcnJvclRyYW5zZm9ybWVyPjtcblxuZXhwb3J0IGNvbnN0IFBhdHRlcm5FcnJvclRyYW5zZm9ybWVyOiBFcnJvclRyYW5zZm9ybWVyID0gKGVycm9yOiBzdHJpbmcsIGRldGFpbHM6IFZhbGlkYXRpb25FcnJvcnMpID0+IHtcbiAgICBpZiAoZGV0YWlsc1tcInJlcXVpcmVkUGF0dGVyblwiXSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBkZXRhaWxzW1wicmVxdWlyZWRQYXR0ZXJuXCJdXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBrZXk6IGVycm9yIH07XG59O1xuXG5leHBvcnQgY29uc3QgTWFza0Vycm9yVHJhbnNmb3JtZXI6IEVycm9yVHJhbnNmb3JtZXIgPSAoZXJyb3I6IHN0cmluZywgZGV0YWlsczogVmFsaWRhdGlvbkVycm9ycykgPT4ge1xuICAgIGlmIChkZXRhaWxzW1wicmVxdWlyZWRNYXNrXCJdKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6IGRldGFpbHNbXCJyZXF1aXJlZE1hc2tcIl1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGtleTogZXJyb3IgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBMZW5ndGhFcnJvclRyYW5zZm9ybWVyOiBFcnJvclRyYW5zZm9ybWVyID0gKGVycm9yOiBzdHJpbmcsIGRldGFpbHM6IFZhbGlkYXRpb25FcnJvcnMpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGVycm9yLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIHZhbHVlOiBkZXRhaWxzW1wicmVxdWlyZWRMZW5ndGhcIl1cbiAgICAgICAgfVxuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgTWluRXJyb3JUcmFuc2Zvcm1lcjogRXJyb3JUcmFuc2Zvcm1lciA9IChlcnJvcjogc3RyaW5nLCBkZXRhaWxzOiBWYWxpZGF0aW9uRXJyb3JzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBlcnJvcixcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBtaW46IGRldGFpbHNbXCJtaW5cIl0sXG4gICAgICAgICAgICBhY3R1YWw6IGRldGFpbHNbXCJhY3R1YWxcIl1cbiAgICAgICAgfVxuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgTWF4RXJyb3JUcmFuc2Zvcm1lcjogRXJyb3JUcmFuc2Zvcm1lciA9IChlcnJvcjogc3RyaW5nLCBkZXRhaWxzOiBWYWxpZGF0aW9uRXJyb3JzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBlcnJvcixcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBtYXg6IGRldGFpbHNbXCJtYXhcIl0sXG4gICAgICAgICAgICBhY3R1YWw6IGRldGFpbHNbXCJhY3R1YWxcIl1cbiAgICAgICAgfVxuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEVycm9yVHJhbnNmb3JtZXJzOiBFcnJvclRyYW5zZm9ybWVycyA9IHtcbiAgICBwYXR0ZXJuOiBQYXR0ZXJuRXJyb3JUcmFuc2Zvcm1lcixcbiAgICBtYXNrOiBNYXNrRXJyb3JUcmFuc2Zvcm1lcixcbiAgICBtaW5sZW5ndGg6IExlbmd0aEVycm9yVHJhbnNmb3JtZXIsXG4gICAgbWF4bGVuZ3RoOiBMZW5ndGhFcnJvclRyYW5zZm9ybWVyLFxuICAgIG1pbjogTWluRXJyb3JUcmFuc2Zvcm1lcixcbiAgICBtYXg6IE1heEVycm9yVHJhbnNmb3JtZXJcbn07XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItdHJhbnNsYXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1jb21wb25lbnRzL2Zvcm0tZmllbGQtZXJyb3IvZXJyb3ItdHJhbnNsYXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRXJyb3JUcmFuc2xhdGVyID0gKGtleTogc3RyaW5nLCBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA9PiBzdHJpbmc7XG4iXX0=
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { DestroyRef, Directive, ElementRef, inject, ViewContainerRef } from "@angular/core";
|
|
2
|
+
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
|
|
3
|
+
import { MatFormField } from "@angular/material/form-field";
|
|
4
|
+
import { combineLatest } from "rxjs";
|
|
5
|
+
import { NiceFormErrorComponent } from "./form-field-error";
|
|
6
|
+
import { NICE_FORM_FIELD_ERROR_TRANSFORMERS, NICE_FORM_FIELD_ERROR_TRANSLATER } from "./constant";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class NiceFormFieldErrorDirective {
|
|
9
|
+
destroyRef = inject(DestroyRef);
|
|
10
|
+
elementRef = inject(ElementRef);
|
|
11
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
12
|
+
formField = inject(MatFormField);
|
|
13
|
+
transformers = inject(NICE_FORM_FIELD_ERROR_TRANSFORMERS);
|
|
14
|
+
translater = inject(NICE_FORM_FIELD_ERROR_TRANSLATER);
|
|
15
|
+
ref = null;
|
|
16
|
+
control = null;
|
|
17
|
+
onChange = () => {
|
|
18
|
+
if (this.control === null || this.control.pending) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (this.control.valid || this.control.untouched) {
|
|
22
|
+
this.setError("", {});
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
for (const error in this.control.errors) {
|
|
26
|
+
const details = this.control.errors[error];
|
|
27
|
+
if (typeof details !== "object") {
|
|
28
|
+
this.setError(`errors.${error}`, {});
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const transformer = this.transformers[error];
|
|
32
|
+
if (!transformer) {
|
|
33
|
+
this.setError(`errors.${error}`, {});
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const { key, params } = transformer(error, details);
|
|
37
|
+
this.setError(`errors.${key}`, params ?? {});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
ngAfterViewInit() {
|
|
41
|
+
this.control = this.formField._control.ngControl;
|
|
42
|
+
if (this.control !== null && this.control.statusChanges !== null) {
|
|
43
|
+
combineLatest([this.formField._control.stateChanges, this.control.statusChanges])
|
|
44
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
45
|
+
.subscribe(() => this.onChange());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
setError(text, params) {
|
|
49
|
+
if (!this.ref) {
|
|
50
|
+
this.ref = this.viewContainerRef.createComponent(NiceFormErrorComponent);
|
|
51
|
+
if (this.elementRef.nativeElement.getElementsByClassName("mat-mdc-form-field-subscript-wrapper").item(0)) {
|
|
52
|
+
const hint = this.elementRef.nativeElement.getElementsByClassName("mat-mdc-form-field-hint").item(0);
|
|
53
|
+
this.ref.location.nativeElement.style.position = "absolute";
|
|
54
|
+
this.ref.location.nativeElement.style.top = hint ? "16px" : "0";
|
|
55
|
+
const wrapper = this.elementRef.nativeElement
|
|
56
|
+
.getElementsByClassName("mat-mdc-form-field-subscript-wrapper")
|
|
57
|
+
.item(0);
|
|
58
|
+
if (hint) {
|
|
59
|
+
wrapper.classList.add("override-height");
|
|
60
|
+
}
|
|
61
|
+
wrapper.prepend(this.ref.location.nativeElement);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (text) {
|
|
65
|
+
this.elementRef.nativeElement.classList.add("form-error-show");
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.elementRef.nativeElement.classList.remove("form-error-show");
|
|
69
|
+
}
|
|
70
|
+
this.ref.instance.error = this.translater(text, params);
|
|
71
|
+
}
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormFieldErrorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
73
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NiceFormFieldErrorDirective, isStandalone: true, selector: "[niceFormFieldError]", ngImport: i0 });
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormFieldErrorDirective, decorators: [{
|
|
76
|
+
type: Directive,
|
|
77
|
+
args: [{ selector: "[niceFormFieldError]", standalone: true }]
|
|
78
|
+
}] });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzVELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFHbEcsTUFBTSxPQUFPLDJCQUEyQjtJQUNuQixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqQyxZQUFZLEdBQUcsTUFBTSxDQUFvQixrQ0FBa0MsQ0FBQyxDQUFDO0lBQzdFLFVBQVUsR0FBRyxNQUFNLENBQWtCLGdDQUFnQyxDQUFDLENBQUM7SUFFaEYsR0FBRyxHQUFnRCxJQUFJLENBQUU7SUFDekQsT0FBTyxHQUFnRCxJQUFJLENBQUM7SUFFN0QsUUFBUSxHQUFHLEdBQUcsRUFBRTtRQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJ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Q0FBQyxzQ0FBc0MsQ0FBQztxQkFDOUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1AsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDN0MsQ0FBQztnQkFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7d0dBM0VRLDJCQUEyQjs0RkFBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IE5pY2VGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tIFwiLi9mb3JtLWZpZWxkLWVycm9yXCI7XG5pbXBvcnQgeyBFcnJvclRyYW5zZm9ybWVycyB9IGZyb20gXCIuL2Vycm9yLXRyYW5zZm9ybWVyXCI7XG5pbXBvcnQgeyBFcnJvclRyYW5zbGF0ZXIgfSBmcm9tIFwiLi9lcnJvci10cmFuc2xhdGVyXCI7XG5pbXBvcnQgeyBOSUNFX0ZPUk1fRklFTERfRVJST1JfVFJBTlNGT1JNRVJTLCBOSUNFX0ZPUk1fRklFTERfRVJST1JfVFJBTlNMQVRFUiB9IGZyb20gXCIuL2NvbnN0YW50XCI7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogXCJbbmljZUZvcm1GaWVsZEVycm9yXVwiLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmljZUZvcm1GaWVsZEVycm9yRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRmllbGQgPSBpbmplY3QoTWF0Rm9ybUZpZWxkKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zZm9ybWVycyA9IGluamVjdDxFcnJvclRyYW5zZm9ybWVycz4oTklDRV9GT1JNX0ZJRUxEX0VSUk9SX1RSQU5TRk9STUVSUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVyID0gaW5qZWN0PEVycm9yVHJhbnNsYXRlcj4oTklDRV9GT1JNX0ZJRUxEX0VSUk9SX1RSQU5TTEFURVIpO1xuXG4gICAgcHJpdmF0ZSByZWY6IENvbXBvbmVudFJlZjxOaWNlRm9ybUVycm9yQ29tcG9uZW50PiB8IG51bGwgPSBudWxsIDtcbiAgICBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgcHVibGljIG9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb250cm9sID09PSBudWxsIHx8IHRoaXMuY29udHJvbC5wZW5kaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb250cm9sLnZhbGlkIHx8IHRoaXMuY29udHJvbC51bnRvdWNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyb3IoXCJcIiwge30pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBlcnJvciBpbiB0aGlzLmNvbnRyb2wuZXJyb3JzKSB7XG4gICAgICAgICAgICBjb25zdCBkZXRhaWxzID0gdGhpcy5jb250cm9sLmVycm9yc1tlcnJvcl07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRldGFpbHMgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEVycm9yKGBlcnJvcnMuJHtlcnJvcn1gLCB7fSk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gdGhpcy50cmFuc2Zvcm1lcnNbZXJyb3JdO1xuICAgICAgICAgICAgaWYgKCF0cmFuc2Zvcm1lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RXJyb3IoYGVycm9ycy4ke2Vycm9yfWAsIHt9KTtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgeyBrZXksIHBhcmFtcyB9ID0gdHJhbnNmb3JtZXIoZXJyb3IsIGRldGFpbHMpO1xuICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihgZXJyb3JzLiR7a2V5fWAsIHBhcmFtcyA/PyB7fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmZvcm1GaWVsZC5fY29udHJvbC5uZ0NvbnRyb2w7XG5cbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCAhPT0gbnVsbCAmJiB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5mb3JtRmllbGQuX2NvbnRyb2wuc3RhdGVDaGFuZ2VzLCB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlc10pXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2hhbmdlKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldEVycm9yKHRleHQ6IHN0cmluZywgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yZWYpIHtcbiAgICAgICAgICAgIHRoaXMucmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChOaWNlRm9ybUVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwibWF0LW1kYy1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyXCIpLml0ZW0oMCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoaW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcIm1hdC1tZGMtZm9ybS1maWVsZC1oaW50XCIpLml0ZW0oMCk7XG4gICAgICAgICAgICAgICAgKHRoaXMucmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuICAgICAgICAgICAgICAgICh0aGlzLnJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS50b3AgPSBoaW50ID8gXCIxNnB4XCIgOiBcIjBcIjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcIm1hdC1tZGMtZm9ybS1maWVsZC1zdWJzY3JpcHQtd3JhcHBlclwiKVxuICAgICAgICAgICAgICAgICAgICAuaXRlbSgwKTtcbiAgICAgICAgICAgICAgICBpZiAoaGludCkge1xuICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoXCJvdmVycmlkZS1oZWlnaHRcIik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgd3JhcHBlci5wcmVwZW5kKHRoaXMucmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJmb3JtLWVycm9yLXNob3dcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiZm9ybS1lcnJvci1zaG93XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yZWYuaW5zdGFuY2UuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZXIodGV4dCwgcGFyYW1zKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { animate, style, transition, trigger } from "@angular/animations";
|
|
2
|
+
import { Component, Input, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
import { MatError } from "@angular/material/form-field";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NiceFormErrorComponent {
|
|
6
|
+
message = "";
|
|
7
|
+
increment = 0;
|
|
8
|
+
set error(value) {
|
|
9
|
+
if (value) {
|
|
10
|
+
if (this.message !== value) {
|
|
11
|
+
this.increment++;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
this.message = value;
|
|
15
|
+
}
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NiceFormErrorComponent, isStandalone: true, selector: "nice-form-field-error", inputs: { error: "error" }, ngImport: i0, template: `
|
|
18
|
+
@if (message) {
|
|
19
|
+
<div [@animation]="increment">
|
|
20
|
+
<mat-error>{{ message }}</mat-error>
|
|
21
|
+
</div>
|
|
22
|
+
}
|
|
23
|
+
`, isInline: true, styles: [".form-error-show .mat-mdc-form-field-subscript-wrapper.override-height:before{height:32px!important}\n"], dependencies: [{ kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }], animations: [
|
|
24
|
+
trigger("animation", [
|
|
25
|
+
transition(":increment", [style({ opacity: 0 }), animate("200ms ease-in", style({ opacity: 1 }))]),
|
|
26
|
+
transition(":enter", [
|
|
27
|
+
style({ opacity: 0, transform: "translateY(-1rem)" }),
|
|
28
|
+
animate("200ms ease-in", style({ opacity: 1, transform: "translateY(0)" }))
|
|
29
|
+
]),
|
|
30
|
+
transition(":leave", [animate("200ms ease-out", style({ opacity: 0, transform: "translateY(-1rem)" }))])
|
|
31
|
+
])
|
|
32
|
+
], encapsulation: i0.ViewEncapsulation.None });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormErrorComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: "nice-form-field-error", template: `
|
|
37
|
+
@if (message) {
|
|
38
|
+
<div [@animation]="increment">
|
|
39
|
+
<mat-error>{{ message }}</mat-error>
|
|
40
|
+
</div>
|
|
41
|
+
}
|
|
42
|
+
`, animations: [
|
|
43
|
+
trigger("animation", [
|
|
44
|
+
transition(":increment", [style({ opacity: 0 }), animate("200ms ease-in", style({ opacity: 1 }))]),
|
|
45
|
+
transition(":enter", [
|
|
46
|
+
style({ opacity: 0, transform: "translateY(-1rem)" }),
|
|
47
|
+
animate("200ms ease-in", style({ opacity: 1, transform: "translateY(0)" }))
|
|
48
|
+
]),
|
|
49
|
+
transition(":leave", [animate("200ms ease-out", style({ opacity: 0, transform: "translateY(-1rem)" }))])
|
|
50
|
+
])
|
|
51
|
+
], encapsulation: ViewEncapsulation.None, imports: [
|
|
52
|
+
MatError
|
|
53
|
+
], standalone: true, styles: [".form-error-show .mat-mdc-form-field-subscript-wrapper.override-height:before{height:32px!important}\n"] }]
|
|
54
|
+
}], propDecorators: { error: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}] } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1jb21wb25lbnRzL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQTRCeEQsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2IsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUVyQixJQUNXLEtBQUssQ0FBQyxLQUFhO1FBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7d0dBWlEsc0JBQXNCOzRGQUF0QixzQkFBc0IsNkdBeEJyQjs7Ozs7O0tBTVQsZ0xBY0csUUFBUSxvRUFaQTtZQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pCLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEcsVUFBVSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztvQkFDckQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO2lCQUM5RSxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzRyxDQUFDO1NBQ0w7OzRGQU9RLHNCQUFzQjtrQkExQmxDLFNBQVM7K0JBQ0ksdUJBQXVCLFlBQ3ZCOzs7Ozs7S0FNVCxjQUVXO3dCQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7NEJBQ2pCLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDbEcsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQ0FDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztnQ0FDckQsT0FBTyxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzZCQUM5RSxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDM0csQ0FBQztxQkFDTCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNMLFFBQVE7cUJBQ1gsY0FDVyxJQUFJOzhCQU9MLEtBQUs7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1hdEVycm9yIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1mb3JtLWZpZWxkLWVycm9yXCIsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgICA8ZGl2IFtAYW5pbWF0aW9uXT1cImluY3JlbWVudFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+e3sgbWVzc2FnZSB9fTwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsczogW1wiLi9mb3JtLWZpZWxkLWVycm9yLnNjc3NcIl0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKFwiYW5pbWF0aW9uXCIsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6aW5jcmVtZW50XCIsIFtzdHlsZSh7IG9wYWNpdHk6IDAgfSksIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluXCIsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgb3BhY2l0eTogMCwgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVkoLTFyZW0pXCIgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW5cIiwgc3R5bGUoeyBvcGFjaXR5OiAxLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgwKVwiIH0pKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFthbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIiwgc3R5bGUoeyBvcGFjaXR5OiAwLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtMXJlbSlcIiB9KSldKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdEVycm9yXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VGb3JtRXJyb3JDb21wb25lbnQge1xuICAgIHB1YmxpYyBtZXNzYWdlID0gXCJcIjtcbiAgICBwdWJsaWMgaW5jcmVtZW50ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBlcnJvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluY3JlbWVudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IHZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./error-transformer";
|
|
2
|
+
export * from "./error-translater";
|
|
3
|
+
export * from "./form-field-error.directive";
|
|
4
|
+
export * from "./form-field-error";
|
|
5
|
+
export * from "./provider";
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9mb3JtLWZpZWxkLWVycm9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9lcnJvci10cmFuc2Zvcm1lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3ItdHJhbnNsYXRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybS1maWVsZC1lcnJvci5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm0tZmllbGQtZXJyb3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVyXCI7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1jb21wb25lbnRzL2Zvcm0tZmllbGQtZXJyb3Ivb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFjdG9yeVByb3ZpZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEVycm9yVHJhbnNsYXRlciB9IGZyb20gXCIuL2Vycm9yLXRyYW5zbGF0ZXJcIjtcbmltcG9ydCB7IEVycm9yVHJhbnNmb3JtZXJzIH0gZnJvbSBcIi4vZXJyb3ItdHJhbnNmb3JtZXJcIjtcblxuZXhwb3J0IHR5cGUgTmljZUZvcm1GaWVsZEVycm9yc09wdGlvbnMgPSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB0cmFuc2xhdGVyOiBPbWl0PEZhY3RvcnlQcm92aWRlciwgXCJwcm92aWRlXCIgfCBcIm11bHRpXCI+ICYgeyB1c2VGYWN0b3J5OiAoLi4uYXJnczogYW55W10pID0+IEVycm9yVHJhbnNsYXRlciB9O1xuICAgIGVycm9yVHJhbnNmb3JtZXJzPzogRXJyb3JUcmFuc2Zvcm1lcnM7XG59O1xuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NICE_FORM_FIELD_ERROR_TRANSFORMERS, NICE_FORM_FIELD_ERROR_TRANSLATER } from "./constant";
|
|
2
|
+
import { DefaultErrorTransformers } from "./error-transformer";
|
|
3
|
+
export function provideFormFieldError(options) {
|
|
4
|
+
return [
|
|
5
|
+
{
|
|
6
|
+
provide: NICE_FORM_FIELD_ERROR_TRANSFORMERS,
|
|
7
|
+
useValue: {
|
|
8
|
+
...DefaultErrorTransformers,
|
|
9
|
+
...options.errorTransformers
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
provide: NICE_FORM_FIELD_ERROR_TRANSLATER,
|
|
14
|
+
...options.translater
|
|
15
|
+
}
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9mb3JtLWZpZWxkLWVycm9yL3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVsRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBbUM7SUFDckUsT0FBTztRQUNIO1lBQ0ksT0FBTyxFQUFFLGtDQUFrQztZQUMzQyxRQUFRLEVBQUU7Z0JBQ04sR0FBRyx3QkFBd0I7Z0JBQzNCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQjthQUMvQjtTQUNKO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLEdBQUcsT0FBTyxDQUFDLFVBQVU7U0FDeEI7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE5JQ0VfRk9STV9GSUVMRF9FUlJPUl9UUkFOU0ZPUk1FUlMsIE5JQ0VfRk9STV9GSUVMRF9FUlJPUl9UUkFOU0xBVEVSIH0gZnJvbSBcIi4vY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VGb3JtRmllbGRFcnJvcnNPcHRpb25zIH0gZnJvbSBcIi4vb3B0aW9uc1wiO1xuaW1wb3J0IHsgRGVmYXVsdEVycm9yVHJhbnNmb3JtZXJzIH0gZnJvbSBcIi4vZXJyb3ItdHJhbnNmb3JtZXJcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVGb3JtRmllbGRFcnJvcihvcHRpb25zOiBOaWNlRm9ybUZpZWxkRXJyb3JzT3B0aW9ucyk6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5JQ0VfRk9STV9GSUVMRF9FUlJPUl9UUkFOU0ZPUk1FUlMsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICAgIC4uLkRlZmF1bHRFcnJvclRyYW5zZm9ybWVycyxcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLmVycm9yVHJhbnNmb3JtZXJzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5JQ0VfRk9STV9GSUVMRF9FUlJPUl9UUkFOU0xBVEVSLFxuICAgICAgICAgICAgLi4ub3B0aW9ucy50cmFuc2xhdGVyXG4gICAgICAgIH1cbiAgICBdO1xufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzeXZlLW5neC1tYXRlcmlhbC1jb21wb25lbnRzLWZvcm0tZmllbGQtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9mb3JtLWZpZWxkLWVycm9yL3JlY3Vyc3l2ZS1uZ3gtbWF0ZXJpYWwtY29tcG9uZW50cy1mb3JtLWZpZWxkLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const NICE_LOADING_OPTIONS = new InjectionToken("nice_loading_options");
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9sb2FkaW5nL2NvbnN0YW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQUMsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IE5JQ0VfTE9BRElOR19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKFwibmljZV9sb2FkaW5nX29wdGlvbnNcIik7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./loading";
|
|
2
|
+
export * from "./loading-spinner";
|
|
3
|
+
export * from "./provider";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9sb2FkaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9sb2FkaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sb2FkaW5nLXNwaW5uZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVyXCI7XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Component, input } from "@angular/core";
|
|
2
|
+
import { MatProgressSpinner } from "@angular/material/progress-spinner";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NiceLoadingSpinner {
|
|
5
|
+
loading = input(false);
|
|
6
|
+
mode = input("indeterminate");
|
|
7
|
+
diameter = input(50);
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: NiceLoadingSpinner, isStandalone: true, selector: "nice-loading-spinner", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-spinner [diameter]=\"diameter()\" [mode]=\"mode()\"></mat-spinner>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingSpinner, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: "nice-loading-spinner", imports: [MatProgressSpinner], standalone: true, template: "<mat-spinner [diameter]=\"diameter()\" [mode]=\"mode()\"></mat-spinner>\n", styles: [":host{display:inline-block}\n"] }]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zcGlubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWNvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLXNwaW5uZXIudHMiLCIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3Bpbm5lci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFTN0YsTUFBTSxPQUFPLGtCQUFrQjtJQUNYLE9BQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEMsSUFBSSxHQUFHLEtBQUssQ0FBc0IsZUFBZSxDQUFDLENBQUM7SUFDbkQsUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzt3R0FINUIsa0JBQWtCOzRGQUFsQixrQkFBa0IsZ2RDVi9CLDJFQUNBLHVGRE1jLGtCQUFrQjs7NEZBR25CLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDSSxzQkFBc0IsV0FHdkIsQ0FBQyxrQkFBa0IsQ0FBQyxjQUNqQixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIsIFByb2dyZXNzU3Bpbm5lck1vZGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLWxvYWRpbmctc3Bpbm5lclwiLFxuICAgIHRlbXBsYXRlVXJsOiBcImxvYWRpbmctc3Bpbm5lci5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2xvYWRpbmctc3Bpbm5lci5zY3NzXCJdLFxuICAgIGltcG9ydHM6IFtNYXRQcm9ncmVzc1NwaW5uZXJdLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmljZUxvYWRpbmdTcGlubmVyIHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZSA9IGlucHV0PFByb2dyZXNzU3Bpbm5lck1vZGU+KFwiaW5kZXRlcm1pbmF0ZVwiKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlhbWV0ZXIgPSBpbnB1dCg1MCk7XG59XG4iLCI8bWF0LXNwaW5uZXIgW2RpYW1ldGVyXT1cImRpYW1ldGVyKClcIiBbbW9kZV09XCJtb2RlKClcIj48L21hdC1zcGlubmVyPlxuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Overlay } from "@angular/cdk/overlay";
|
|
2
|
+
import { ComponentPortal } from "@angular/cdk/portal";
|
|
3
|
+
import { Directive, effect, inject, input } from "@angular/core";
|
|
4
|
+
import { NICE_LOADING_OPTIONS } from "./constant";
|
|
5
|
+
import { NiceLoadingSpinner } from "./loading-spinner";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class NiceLoadingDirective {
|
|
8
|
+
options = inject(NICE_LOADING_OPTIONS, { optional: true });
|
|
9
|
+
overlay = inject(Overlay);
|
|
10
|
+
loading = input(null, { alias: "niceLoadingOverlay" });
|
|
11
|
+
overlayRef = null;
|
|
12
|
+
_loading = false;
|
|
13
|
+
constructor() {
|
|
14
|
+
effect(() => {
|
|
15
|
+
if (this.loading() === this._loading) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this._loading = this.loading() ?? false;
|
|
19
|
+
if (!this.overlayRef) {
|
|
20
|
+
this.overlayRef = this.overlay.create({
|
|
21
|
+
positionStrategy: this.overlay
|
|
22
|
+
.position()
|
|
23
|
+
.global()
|
|
24
|
+
.centerHorizontally()
|
|
25
|
+
.centerVertically(),
|
|
26
|
+
hasBackdrop: true,
|
|
27
|
+
panelClass: "nice-loading-overlay"
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
if (this._loading) {
|
|
31
|
+
this.overlayRef.attach(new ComponentPortal(this.options?.customLoading ?? NiceLoadingSpinner));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.overlayRef.detach();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
39
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: NiceLoadingDirective, isStandalone: true, selector: "[niceLoadingOverlay]", inputs: { loading: { classPropertyName: "loading", publicName: "niceLoadingOverlay", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingDirective, decorators: [{
|
|
42
|
+
type: Directive,
|
|
43
|
+
args: [{ selector: "[niceLoadingOverlay]", standalone: true }]
|
|
44
|
+
}], ctorParameters: () => [] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUl2RCxNQUFNLE9BQU8sb0JBQW9CO0lBQ1osT0FBTyxHQUFHLE1BQU0sQ0FBcUIsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXBDLE9BQU8sR0FBRyxLQUFLLENBQWlCLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFFdEUsVUFBVSxHQUFzQixJQUFJLENBQUM7SUFDckMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUV6QjtRQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25DLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksS0FBSyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7b0JBQ2xDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPO3lCQUN6QixRQUFRLEVBQUU7eUJBQ1YsTUFBTSxFQUFFO3lCQUNSLGtCQUFrQixFQUFFO3lCQUNwQixnQkFBZ0IsRUFBRTtvQkFDdkIsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLFVBQVUsRUFBRSxzQkFBc0I7aUJBQ3JDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1lBQ25HLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBbENRLG9CQUFvQjs0RkFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTklDRV9MT0FESU5HX09QVElPTlMgfSBmcm9tIFwiLi9jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUxvYWRpbmdTcGlubmVyIH0gZnJvbSBcIi4vbG9hZGluZy1zcGlubmVyXCI7XG5pbXBvcnQgeyBOaWNlTG9hZGluZ09wdGlvbnMgfSBmcm9tIFwiLi9vcHRpb25zXCI7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogXCJbbmljZUxvYWRpbmdPdmVybGF5XVwiLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmljZUxvYWRpbmdEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9ucyA9IGluamVjdDxOaWNlTG9hZGluZ09wdGlvbnM+KE5JQ0VfTE9BRElOR19PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcblxuICAgIHB1YmxpYyBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiB8IG51bGw+KG51bGwsIHsgYWxpYXM6IFwibmljZUxvYWRpbmdPdmVybGF5XCIgfSk7XG5cbiAgICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmxvYWRpbmcoKSA9PT0gdGhpcy5fbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fbG9hZGluZyA9IHRoaXMubG9hZGluZygpID8/IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAgICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmdsb2JhbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuY2VudGVySG9yaXpvbnRhbGx5KClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jZW50ZXJWZXJ0aWNhbGx5KCksXG4gICAgICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBwYW5lbENsYXNzOiBcIm5pY2UtbG9hZGluZy1vdmVybGF5XCJcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX2xvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5vcHRpb25zPy5jdXN0b21Mb2FkaW5nID8/IE5pY2VMb2FkaW5nU3Bpbm5lcikpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC1jb21wb25lbnRzL2xvYWRpbmcvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIE5pY2VMb2FkaW5nT3B0aW9ucyA9IHtcbiAgICBjdXN0b21Mb2FkaW5nPzogVHlwZTx1bmtub3duPjtcbn07XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { NICE_LOADING_OPTIONS } from "./constant";
|
|
2
|
+
export function provideNiceLoadingOptions(options) {
|
|
3
|
+
return {
|
|
4
|
+
provide: NICE_LOADING_OPTIONS,
|
|
5
|
+
useValue: options
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9sb2FkaW5nL3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVsRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsT0FBMkI7SUFDakUsT0FBTztRQUNILE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsUUFBUSxFQUFFLE9BQU87S0FDcEIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlTG9hZGluZ09wdGlvbnMgfSBmcm9tIFwiLi9vcHRpb25zXCI7XG5pbXBvcnQgeyBOSUNFX0xPQURJTkdfT1BUSU9OUyB9IGZyb20gXCIuL2NvbnN0YW50XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTmljZUxvYWRpbmdPcHRpb25zKG9wdGlvbnM6IE5pY2VMb2FkaW5nT3B0aW9ucyk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBOSUNFX0xPQURJTkdfT1BUSU9OUyxcbiAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgICB9O1xufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzeXZlLW5neC1tYXRlcmlhbC1jb21wb25lbnRzLWxvYWRpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwtY29tcG9uZW50cy9sb2FkaW5nL3JlY3Vyc3l2ZS1uZ3gtbWF0ZXJpYWwtY29tcG9uZW50cy1sb2FkaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, Input, InjectionToken, inject, DestroyRef, ElementRef, ViewContainerRef, Directive } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { MatError, MatFormField } from '@angular/material/form-field';
|
|
5
|
+
import { combineLatest } from 'rxjs';
|
|
6
|
+
import { trigger, transition, style, animate } from '@angular/animations';
|
|
7
|
+
|
|
8
|
+
const PatternErrorTransformer = (error, details) => {
|
|
9
|
+
if (details["requiredPattern"]) {
|
|
10
|
+
return {
|
|
11
|
+
key: details["requiredPattern"]
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return { key: error };
|
|
15
|
+
};
|
|
16
|
+
const MaskErrorTransformer = (error, details) => {
|
|
17
|
+
if (details["requiredMask"]) {
|
|
18
|
+
return {
|
|
19
|
+
key: details["requiredMask"]
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return { key: error };
|
|
23
|
+
};
|
|
24
|
+
const LengthErrorTransformer = (error, details) => {
|
|
25
|
+
return {
|
|
26
|
+
key: error,
|
|
27
|
+
params: {
|
|
28
|
+
value: details["requiredLength"]
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const MinErrorTransformer = (error, details) => {
|
|
33
|
+
return {
|
|
34
|
+
key: error,
|
|
35
|
+
params: {
|
|
36
|
+
min: details["min"],
|
|
37
|
+
actual: details["actual"]
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
const MaxErrorTransformer = (error, details) => {
|
|
42
|
+
return {
|
|
43
|
+
key: error,
|
|
44
|
+
params: {
|
|
45
|
+
max: details["max"],
|
|
46
|
+
actual: details["actual"]
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
const DefaultErrorTransformers = {
|
|
51
|
+
pattern: PatternErrorTransformer,
|
|
52
|
+
mask: MaskErrorTransformer,
|
|
53
|
+
minlength: LengthErrorTransformer,
|
|
54
|
+
maxlength: LengthErrorTransformer,
|
|
55
|
+
min: MinErrorTransformer,
|
|
56
|
+
max: MaxErrorTransformer
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
class NiceFormErrorComponent {
|
|
60
|
+
message = "";
|
|
61
|
+
increment = 0;
|
|
62
|
+
set error(value) {
|
|
63
|
+
if (value) {
|
|
64
|
+
if (this.message !== value) {
|
|
65
|
+
this.increment++;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
this.message = value;
|
|
69
|
+
}
|
|
70
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NiceFormErrorComponent, isStandalone: true, selector: "nice-form-field-error", inputs: { error: "error" }, ngImport: i0, template: `
|
|
72
|
+
@if (message) {
|
|
73
|
+
<div [@animation]="increment">
|
|
74
|
+
<mat-error>{{ message }}</mat-error>
|
|
75
|
+
</div>
|
|
76
|
+
}
|
|
77
|
+
`, isInline: true, styles: [".form-error-show .mat-mdc-form-field-subscript-wrapper.override-height:before{height:32px!important}\n"], dependencies: [{ kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }], animations: [
|
|
78
|
+
trigger("animation", [
|
|
79
|
+
transition(":increment", [style({ opacity: 0 }), animate("200ms ease-in", style({ opacity: 1 }))]),
|
|
80
|
+
transition(":enter", [
|
|
81
|
+
style({ opacity: 0, transform: "translateY(-1rem)" }),
|
|
82
|
+
animate("200ms ease-in", style({ opacity: 1, transform: "translateY(0)" }))
|
|
83
|
+
]),
|
|
84
|
+
transition(":leave", [animate("200ms ease-out", style({ opacity: 0, transform: "translateY(-1rem)" }))])
|
|
85
|
+
])
|
|
86
|
+
], encapsulation: i0.ViewEncapsulation.None });
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormErrorComponent, decorators: [{
|
|
89
|
+
type: Component,
|
|
90
|
+
args: [{ selector: "nice-form-field-error", template: `
|
|
91
|
+
@if (message) {
|
|
92
|
+
<div [@animation]="increment">
|
|
93
|
+
<mat-error>{{ message }}</mat-error>
|
|
94
|
+
</div>
|
|
95
|
+
}
|
|
96
|
+
`, animations: [
|
|
97
|
+
trigger("animation", [
|
|
98
|
+
transition(":increment", [style({ opacity: 0 }), animate("200ms ease-in", style({ opacity: 1 }))]),
|
|
99
|
+
transition(":enter", [
|
|
100
|
+
style({ opacity: 0, transform: "translateY(-1rem)" }),
|
|
101
|
+
animate("200ms ease-in", style({ opacity: 1, transform: "translateY(0)" }))
|
|
102
|
+
]),
|
|
103
|
+
transition(":leave", [animate("200ms ease-out", style({ opacity: 0, transform: "translateY(-1rem)" }))])
|
|
104
|
+
])
|
|
105
|
+
], encapsulation: ViewEncapsulation.None, imports: [
|
|
106
|
+
MatError
|
|
107
|
+
], standalone: true, styles: [".form-error-show .mat-mdc-form-field-subscript-wrapper.override-height:before{height:32px!important}\n"] }]
|
|
108
|
+
}], propDecorators: { error: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}] } });
|
|
111
|
+
|
|
112
|
+
const NICE_FORM_FIELD_ERROR_TRANSFORMERS = new InjectionToken("nice_form_field_error_transformers");
|
|
113
|
+
const NICE_FORM_FIELD_ERROR_TRANSLATER = new InjectionToken("nice_form_field_error_translater");
|
|
114
|
+
|
|
115
|
+
class NiceFormFieldErrorDirective {
|
|
116
|
+
destroyRef = inject(DestroyRef);
|
|
117
|
+
elementRef = inject(ElementRef);
|
|
118
|
+
viewContainerRef = inject(ViewContainerRef);
|
|
119
|
+
formField = inject(MatFormField);
|
|
120
|
+
transformers = inject(NICE_FORM_FIELD_ERROR_TRANSFORMERS);
|
|
121
|
+
translater = inject(NICE_FORM_FIELD_ERROR_TRANSLATER);
|
|
122
|
+
ref = null;
|
|
123
|
+
control = null;
|
|
124
|
+
onChange = () => {
|
|
125
|
+
if (this.control === null || this.control.pending) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (this.control.valid || this.control.untouched) {
|
|
129
|
+
this.setError("", {});
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
for (const error in this.control.errors) {
|
|
133
|
+
const details = this.control.errors[error];
|
|
134
|
+
if (typeof details !== "object") {
|
|
135
|
+
this.setError(`errors.${error}`, {});
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const transformer = this.transformers[error];
|
|
139
|
+
if (!transformer) {
|
|
140
|
+
this.setError(`errors.${error}`, {});
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
const { key, params } = transformer(error, details);
|
|
144
|
+
this.setError(`errors.${key}`, params ?? {});
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
ngAfterViewInit() {
|
|
148
|
+
this.control = this.formField._control.ngControl;
|
|
149
|
+
if (this.control !== null && this.control.statusChanges !== null) {
|
|
150
|
+
combineLatest([this.formField._control.stateChanges, this.control.statusChanges])
|
|
151
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
152
|
+
.subscribe(() => this.onChange());
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
setError(text, params) {
|
|
156
|
+
if (!this.ref) {
|
|
157
|
+
this.ref = this.viewContainerRef.createComponent(NiceFormErrorComponent);
|
|
158
|
+
if (this.elementRef.nativeElement.getElementsByClassName("mat-mdc-form-field-subscript-wrapper").item(0)) {
|
|
159
|
+
const hint = this.elementRef.nativeElement.getElementsByClassName("mat-mdc-form-field-hint").item(0);
|
|
160
|
+
this.ref.location.nativeElement.style.position = "absolute";
|
|
161
|
+
this.ref.location.nativeElement.style.top = hint ? "16px" : "0";
|
|
162
|
+
const wrapper = this.elementRef.nativeElement
|
|
163
|
+
.getElementsByClassName("mat-mdc-form-field-subscript-wrapper")
|
|
164
|
+
.item(0);
|
|
165
|
+
if (hint) {
|
|
166
|
+
wrapper.classList.add("override-height");
|
|
167
|
+
}
|
|
168
|
+
wrapper.prepend(this.ref.location.nativeElement);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (text) {
|
|
172
|
+
this.elementRef.nativeElement.classList.add("form-error-show");
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
this.elementRef.nativeElement.classList.remove("form-error-show");
|
|
176
|
+
}
|
|
177
|
+
this.ref.instance.error = this.translater(text, params);
|
|
178
|
+
}
|
|
179
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormFieldErrorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
180
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NiceFormFieldErrorDirective, isStandalone: true, selector: "[niceFormFieldError]", ngImport: i0 });
|
|
181
|
+
}
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFormFieldErrorDirective, decorators: [{
|
|
183
|
+
type: Directive,
|
|
184
|
+
args: [{ selector: "[niceFormFieldError]", standalone: true }]
|
|
185
|
+
}] });
|
|
186
|
+
|
|
187
|
+
function provideFormFieldError(options) {
|
|
188
|
+
return [
|
|
189
|
+
{
|
|
190
|
+
provide: NICE_FORM_FIELD_ERROR_TRANSFORMERS,
|
|
191
|
+
useValue: {
|
|
192
|
+
...DefaultErrorTransformers,
|
|
193
|
+
...options.errorTransformers
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
provide: NICE_FORM_FIELD_ERROR_TRANSLATER,
|
|
198
|
+
...options.translater
|
|
199
|
+
}
|
|
200
|
+
];
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Generated bundle index. Do not edit.
|
|
205
|
+
*/
|
|
206
|
+
|
|
207
|
+
export { DefaultErrorTransformers, LengthErrorTransformer, MaskErrorTransformer, MaxErrorTransformer, MinErrorTransformer, NiceFormErrorComponent, NiceFormFieldErrorDirective, PatternErrorTransformer, provideFormFieldError };
|
|
208
|
+
//# sourceMappingURL=recursyve-ngx-material-components-form-field-error.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recursyve-ngx-material-components-form-field-error.mjs","sources":["../../../src/material-components/form-field-error/error-transformer.ts","../../../src/material-components/form-field-error/form-field-error.ts","../../../src/material-components/form-field-error/constant.ts","../../../src/material-components/form-field-error/form-field-error.directive.ts","../../../src/material-components/form-field-error/provider.ts","../../../src/material-components/form-field-error/recursyve-ngx-material-components-form-field-error.ts"],"sourcesContent":["import { ValidationErrors } from \"@angular/forms\";\n\nexport type TransformedError = { key: string; params?: Record<string, string> };\nexport type ErrorTransformer = (error: string, details: ValidationErrors) => TransformedError;\nexport type ErrorTransformers = Record<string, ErrorTransformer>;\n\nexport const PatternErrorTransformer: ErrorTransformer = (error: string, details: ValidationErrors) => {\n if (details[\"requiredPattern\"]) {\n return {\n key: details[\"requiredPattern\"]\n }\n }\n\n return { key: error };\n};\n\nexport const MaskErrorTransformer: ErrorTransformer = (error: string, details: ValidationErrors) => {\n if (details[\"requiredMask\"]) {\n return {\n key: details[\"requiredMask\"]\n }\n }\n\n return { key: error };\n};\n\nexport const LengthErrorTransformer: ErrorTransformer = (error: string, details: ValidationErrors) => {\n return {\n key: error,\n params: {\n value: details[\"requiredLength\"]\n }\n };\n};\n\nexport const MinErrorTransformer: ErrorTransformer = (error: string, details: ValidationErrors) => {\n return {\n key: error,\n params: {\n min: details[\"min\"],\n actual: details[\"actual\"]\n }\n };\n};\n\nexport const MaxErrorTransformer: ErrorTransformer = (error: string, details: ValidationErrors) => {\n return {\n key: error,\n params: {\n max: details[\"max\"],\n actual: details[\"actual\"]\n }\n };\n};\n\nexport const DefaultErrorTransformers: ErrorTransformers = {\n pattern: PatternErrorTransformer,\n mask: MaskErrorTransformer,\n minlength: LengthErrorTransformer,\n maxlength: LengthErrorTransformer,\n min: MinErrorTransformer,\n max: MaxErrorTransformer\n};\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { Component, Input, ViewEncapsulation } from \"@angular/core\";\nimport { MatError } from \"@angular/material/form-field\";\n\n@Component({\n selector: \"nice-form-field-error\",\n template: `\n @if (message) {\n <div [@animation]=\"increment\">\n <mat-error>{{ message }}</mat-error>\n </div>\n }\n `,\n styleUrls: [\"./form-field-error.scss\"],\n animations: [\n trigger(\"animation\", [\n transition(\":increment\", [style({ opacity: 0 }), animate(\"200ms ease-in\", style({ opacity: 1 }))]),\n transition(\":enter\", [\n style({ opacity: 0, transform: \"translateY(-1rem)\" }),\n animate(\"200ms ease-in\", style({ opacity: 1, transform: \"translateY(0)\" }))\n ]),\n transition(\":leave\", [animate(\"200ms ease-out\", style({ opacity: 0, transform: \"translateY(-1rem)\" }))])\n ])\n ],\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatError\n ],\n standalone: true\n})\nexport class NiceFormErrorComponent {\n public message = \"\";\n public increment = 0;\n\n @Input()\n public set error(value: string) {\n if (value) {\n if (this.message !== value) {\n this.increment++;\n }\n }\n this.message = value;\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_FORM_FIELD_ERROR_TRANSFORMERS = new InjectionToken(\"nice_form_field_error_transformers\");\nexport const NICE_FORM_FIELD_ERROR_TRANSLATER = new InjectionToken(\"nice_form_field_error_translater\");\n","import {\n AfterViewInit,\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n ViewContainerRef\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { AbstractControlDirective, NgControl } from \"@angular/forms\";\nimport { MatFormField } from \"@angular/material/form-field\";\nimport { combineLatest } from \"rxjs\";\nimport { NiceFormErrorComponent } from \"./form-field-error\";\nimport { ErrorTransformers } from \"./error-transformer\";\nimport { ErrorTranslater } from \"./error-translater\";\nimport { NICE_FORM_FIELD_ERROR_TRANSFORMERS, NICE_FORM_FIELD_ERROR_TRANSLATER } from \"./constant\";\n\n@Directive({ selector: \"[niceFormFieldError]\", standalone: true })\nexport class NiceFormFieldErrorDirective implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject(ElementRef);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly formField = inject(MatFormField);\n private readonly transformers = inject<ErrorTransformers>(NICE_FORM_FIELD_ERROR_TRANSFORMERS);\n private readonly translater = inject<ErrorTranslater>(NICE_FORM_FIELD_ERROR_TRANSLATER);\n\n private ref: ComponentRef<NiceFormErrorComponent> | null = null ;\n private control: NgControl | AbstractControlDirective | null = null;\n\n public onChange = () => {\n if (this.control === null || this.control.pending) {\n return;\n }\n\n if (this.control.valid || this.control.untouched) {\n this.setError(\"\", {});\n return;\n }\n\n for (const error in this.control.errors) {\n const details = this.control.errors[error];\n if (typeof details !== \"object\") {\n this.setError(`errors.${error}`, {});\n continue;\n }\n\n const transformer = this.transformers[error];\n if (!transformer) {\n this.setError(`errors.${error}`, {});\n continue;\n }\n\n const { key, params } = transformer(error, details);\n this.setError(`errors.${key}`, params ?? {});\n }\n }\n\n public ngAfterViewInit(): void {\n this.control = this.formField._control.ngControl;\n\n if (this.control !== null && this.control.statusChanges !== null) {\n combineLatest([this.formField._control.stateChanges, this.control.statusChanges])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.onChange());\n }\n }\n\n public setError(text: string, params: Record<string, string>): void {\n if (!this.ref) {\n this.ref = this.viewContainerRef.createComponent(NiceFormErrorComponent);\n if (this.elementRef.nativeElement.getElementsByClassName(\"mat-mdc-form-field-subscript-wrapper\").item(0)) {\n const hint = this.elementRef.nativeElement.getElementsByClassName(\"mat-mdc-form-field-hint\").item(0);\n (this.ref.location.nativeElement as HTMLDivElement).style.position = \"absolute\";\n (this.ref.location.nativeElement as HTMLDivElement).style.top = hint ? \"16px\" : \"0\";\n\n const wrapper = this.elementRef.nativeElement\n .getElementsByClassName(\"mat-mdc-form-field-subscript-wrapper\")\n .item(0);\n if (hint) {\n wrapper.classList.add(\"override-height\");\n }\n\n wrapper.prepend(this.ref.location.nativeElement);\n }\n }\n\n if (text) {\n this.elementRef.nativeElement.classList.add(\"form-error-show\");\n } else {\n this.elementRef.nativeElement.classList.remove(\"form-error-show\");\n }\n\n this.ref.instance.error = this.translater(text, params);\n }\n}\n","import { Provider } from \"@angular/core\";\nimport { NICE_FORM_FIELD_ERROR_TRANSFORMERS, NICE_FORM_FIELD_ERROR_TRANSLATER } from \"./constant\";\nimport { NiceFormFieldErrorsOptions } from \"./options\";\nimport { DefaultErrorTransformers } from \"./error-transformer\";\n\nexport function provideFormFieldError(options: NiceFormFieldErrorsOptions): Provider[] {\n return [\n {\n provide: NICE_FORM_FIELD_ERROR_TRANSFORMERS,\n useValue: {\n ...DefaultErrorTransformers,\n ...options.errorTransformers\n }\n },\n {\n provide: NICE_FORM_FIELD_ERROR_TRANSLATER,\n ...options.translater\n }\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAMa,uBAAuB,GAAqB,CAAC,KAAa,EAAE,OAAyB,KAAI;AAClG,IAAA,IAAI,OAAO,CAAC,iBAAiB,CAAC,EAAE;QAC5B,OAAO;AACH,YAAA,GAAG,EAAE,OAAO,CAAC,iBAAiB,CAAC;SAClC,CAAA;KACJ;AAED,IAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC1B,EAAE;MAEW,oBAAoB,GAAqB,CAAC,KAAa,EAAE,OAAyB,KAAI;AAC/F,IAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;QACzB,OAAO;AACH,YAAA,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC;SAC/B,CAAA;KACJ;AAED,IAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAC1B,EAAE;MAEW,sBAAsB,GAAqB,CAAC,KAAa,EAAE,OAAyB,KAAI;IACjG,OAAO;AACH,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,MAAM,EAAE;AACJ,YAAA,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC;AACnC,SAAA;KACJ,CAAC;AACN,EAAE;MAEW,mBAAmB,GAAqB,CAAC,KAAa,EAAE,OAAyB,KAAI;IAC9F,OAAO;AACH,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,MAAM,EAAE;AACJ,YAAA,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AACnB,YAAA,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;AAC5B,SAAA;KACJ,CAAC;AACN,EAAE;MAEW,mBAAmB,GAAqB,CAAC,KAAa,EAAE,OAAyB,KAAI;IAC9F,OAAO;AACH,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,MAAM,EAAE;AACJ,YAAA,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AACnB,YAAA,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;AAC5B,SAAA;KACJ,CAAC;AACN,EAAE;AAEW,MAAA,wBAAwB,GAAsB;AACvD,IAAA,OAAO,EAAE,uBAAuB;AAChC,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,SAAS,EAAE,sBAAsB;AACjC,IAAA,SAAS,EAAE,sBAAsB;AACjC,IAAA,GAAG,EAAE,mBAAmB;AACxB,IAAA,GAAG,EAAE,mBAAmB;;;MC/Bf,sBAAsB,CAAA;IACxB,OAAO,GAAG,EAAE,CAAC;IACb,SAAS,GAAG,CAAC,CAAC;IAErB,IACW,KAAK,CAAC,KAAa,EAAA;QAC1B,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;aACpB;SACJ;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACxB;wGAZQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAxBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAMT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAcG,QAAQ,EAZA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,WAAW,EAAE;gBACjB,UAAU,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClG,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;AACrD,oBAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;iBAC9E,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC;aAC3G,CAAC;AACL,SAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAOQ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA1BlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACvB,QAAA,EAAA,CAAA;;;;;;KAMT,EAEW,UAAA,EAAA;wBACR,OAAO,CAAC,WAAW,EAAE;4BACjB,UAAU,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;4BAClG,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;AACrD,gCAAA,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;6BAC9E,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC;yBAC3G,CAAC;qBACL,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA;wBACL,QAAQ;AACX,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,MAAA,EAAA,CAAA,wGAAA,CAAA,EAAA,CAAA;8BAOL,KAAK,EAAA,CAAA;sBADf,KAAK;;;AChCH,MAAM,kCAAkC,GAAG,IAAI,cAAc,CAAC,oCAAoC,CAAC,CAAC;AACpG,MAAM,gCAAgC,GAAG,IAAI,cAAc,CAAC,kCAAkC,CAAC;;MCgBzF,2BAA2B,CAAA;AACnB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAChC,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAChC,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC5C,IAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACjC,IAAA,YAAY,GAAG,MAAM,CAAoB,kCAAkC,CAAC,CAAC;AAC7E,IAAA,UAAU,GAAG,MAAM,CAAkB,gCAAgC,CAAC,CAAC;IAEhF,GAAG,GAAgD,IAAI,CAAE;IACzD,OAAO,GAAgD,IAAI,CAAC;IAE7D,QAAQ,GAAG,MAAK;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAC/C,OAAO;SACV;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;AAC9C,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACtB,OAAO;SACV;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3C,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC7B,IAAI,CAAC,QAAQ,CAAC,CAAA,OAAA,EAAU,KAAK,CAAE,CAAA,EAAE,EAAE,CAAC,CAAC;gBACrC,SAAS;aACZ;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE;gBACd,IAAI,CAAC,QAAQ,CAAC,CAAA,OAAA,EAAU,KAAK,CAAE,CAAA,EAAE,EAAE,CAAC,CAAC;gBACrC,SAAS;aACZ;AAED,YAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,CAAU,OAAA,EAAA,GAAG,CAAE,CAAA,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;SAChD;AACL,KAAC,CAAA;IAEM,eAAe,GAAA;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;AAEjD,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE;AAC9D,YAAA,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5E,iBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACzC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SACzC;KACJ;IAEM,QAAQ,CAAC,IAAY,EAAE,MAA8B,EAAA;AACxD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACX,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACzE,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACtG,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpG,gBAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAgC,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;gBAC/E,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAgC,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC;AAEpF,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;qBACxC,sBAAsB,CAAC,sCAAsC,CAAC;qBAC9D,IAAI,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,IAAI,EAAE;AACN,oBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;iBAC5C;gBAED,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;aACpD;SACJ;QAED,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;SAClE;aAAM;YACH,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SACrE;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC3D;wGA3EQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;;;ACb3D,SAAU,qBAAqB,CAAC,OAAmC,EAAA;IACrE,OAAO;AACH,QAAA;AACI,YAAA,OAAO,EAAE,kCAAkC;AAC3C,YAAA,QAAQ,EAAE;AACN,gBAAA,GAAG,wBAAwB;gBAC3B,GAAG,OAAO,CAAC,iBAAiB;AAC/B,aAAA;AACJ,SAAA;AACD,QAAA;AACI,YAAA,OAAO,EAAE,gCAAgC;YACzC,GAAG,OAAO,CAAC,UAAU;AACxB,SAAA;KACJ,CAAC;AACN;;ACnBA;;AAEG;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
2
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { InjectionToken, input, Component, inject, effect, Directive } from '@angular/core';
|
|
5
|
+
import { MatProgressSpinner } from '@angular/material/progress-spinner';
|
|
6
|
+
|
|
7
|
+
const NICE_LOADING_OPTIONS = new InjectionToken("nice_loading_options");
|
|
8
|
+
|
|
9
|
+
class NiceLoadingSpinner {
|
|
10
|
+
loading = input(false);
|
|
11
|
+
mode = input("indeterminate");
|
|
12
|
+
diameter = input(50);
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingSpinner, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: NiceLoadingSpinner, isStandalone: true, selector: "nice-loading-spinner", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-spinner [diameter]=\"diameter()\" [mode]=\"mode()\"></mat-spinner>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingSpinner, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: "nice-loading-spinner", imports: [MatProgressSpinner], standalone: true, template: "<mat-spinner [diameter]=\"diameter()\" [mode]=\"mode()\"></mat-spinner>\n", styles: [":host{display:inline-block}\n"] }]
|
|
19
|
+
}] });
|
|
20
|
+
|
|
21
|
+
class NiceLoadingDirective {
|
|
22
|
+
options = inject(NICE_LOADING_OPTIONS, { optional: true });
|
|
23
|
+
overlay = inject(Overlay);
|
|
24
|
+
loading = input(null, { alias: "niceLoadingOverlay" });
|
|
25
|
+
overlayRef = null;
|
|
26
|
+
_loading = false;
|
|
27
|
+
constructor() {
|
|
28
|
+
effect(() => {
|
|
29
|
+
if (this.loading() === this._loading) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this._loading = this.loading() ?? false;
|
|
33
|
+
if (!this.overlayRef) {
|
|
34
|
+
this.overlayRef = this.overlay.create({
|
|
35
|
+
positionStrategy: this.overlay
|
|
36
|
+
.position()
|
|
37
|
+
.global()
|
|
38
|
+
.centerHorizontally()
|
|
39
|
+
.centerVertically(),
|
|
40
|
+
hasBackdrop: true,
|
|
41
|
+
panelClass: "nice-loading-overlay"
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (this._loading) {
|
|
45
|
+
this.overlayRef.attach(new ComponentPortal(this.options?.customLoading ?? NiceLoadingSpinner));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.overlayRef.detach();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: NiceLoadingDirective, isStandalone: true, selector: "[niceLoadingOverlay]", inputs: { loading: { classPropertyName: "loading", publicName: "niceLoadingOverlay", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceLoadingDirective, decorators: [{
|
|
56
|
+
type: Directive,
|
|
57
|
+
args: [{ selector: "[niceLoadingOverlay]", standalone: true }]
|
|
58
|
+
}], ctorParameters: () => [] });
|
|
59
|
+
|
|
60
|
+
function provideNiceLoadingOptions(options) {
|
|
61
|
+
return {
|
|
62
|
+
provide: NICE_LOADING_OPTIONS,
|
|
63
|
+
useValue: options
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Generated bundle index. Do not edit.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
export { NiceLoadingDirective, NiceLoadingSpinner, provideNiceLoadingOptions };
|
|
72
|
+
//# sourceMappingURL=recursyve-ngx-material-components-loading.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recursyve-ngx-material-components-loading.mjs","sources":["../../../src/material-components/loading/constant.ts","../../../src/material-components/loading/loading-spinner.ts","../../../src/material-components/loading/loading-spinner.html","../../../src/material-components/loading/loading.ts","../../../src/material-components/loading/provider.ts","../../../src/material-components/loading/recursyve-ngx-material-components-loading.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport const NICE_LOADING_OPTIONS = new InjectionToken(\"nice_loading_options\");\n","import { Component, input } from \"@angular/core\";\nimport { MatProgressSpinner, ProgressSpinnerMode } from \"@angular/material/progress-spinner\";\n\n@Component({\n selector: \"nice-loading-spinner\",\n templateUrl: \"loading-spinner.html\",\n styleUrls: [\"./loading-spinner.scss\"],\n imports: [MatProgressSpinner],\n standalone: true\n})\nexport class NiceLoadingSpinner {\n public readonly loading = input<boolean>(false);\n public readonly mode = input<ProgressSpinnerMode>(\"indeterminate\");\n public readonly diameter = input(50);\n}\n","<mat-spinner [diameter]=\"diameter()\" [mode]=\"mode()\"></mat-spinner>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Directive, effect, ElementRef, inject, input } from \"@angular/core\";\nimport { NICE_LOADING_OPTIONS } from \"./constant\";\nimport { NiceLoadingSpinner } from \"./loading-spinner\";\nimport { NiceLoadingOptions } from \"./options\";\n\n@Directive({ selector: \"[niceLoadingOverlay]\", standalone: true })\nexport class NiceLoadingDirective {\n private readonly options = inject<NiceLoadingOptions>(NICE_LOADING_OPTIONS, { optional: true });\n private readonly overlay = inject(Overlay);\n\n public loading = input<boolean | null>(null, { alias: \"niceLoadingOverlay\" });\n\n private overlayRef: OverlayRef | null = null;\n private _loading = false;\n\n constructor() {\n effect(() => {\n if (this.loading() === this._loading) {\n return;\n }\n\n this._loading = this.loading() ?? false;\n if (!this.overlayRef) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically(),\n hasBackdrop: true,\n panelClass: \"nice-loading-overlay\"\n });\n }\n\n if (this._loading) {\n this.overlayRef.attach(new ComponentPortal(this.options?.customLoading ?? NiceLoadingSpinner));\n } else {\n this.overlayRef.detach();\n }\n });\n }\n}\n","import { Provider } from \"@angular/core\";\nimport { NiceLoadingOptions } from \"./options\";\nimport { NICE_LOADING_OPTIONS } from \"./constant\";\n\nexport function provideNiceLoadingOptions(options: NiceLoadingOptions): Provider {\n return {\n provide: NICE_LOADING_OPTIONS,\n useValue: options\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ValidationErrors } from "@angular/forms";
|
|
2
|
+
export type TransformedError = {
|
|
3
|
+
key: string;
|
|
4
|
+
params?: Record<string, string>;
|
|
5
|
+
};
|
|
6
|
+
export type ErrorTransformer = (error: string, details: ValidationErrors) => TransformedError;
|
|
7
|
+
export type ErrorTransformers = Record<string, ErrorTransformer>;
|
|
8
|
+
export declare const PatternErrorTransformer: ErrorTransformer;
|
|
9
|
+
export declare const MaskErrorTransformer: ErrorTransformer;
|
|
10
|
+
export declare const LengthErrorTransformer: ErrorTransformer;
|
|
11
|
+
export declare const MinErrorTransformer: ErrorTransformer;
|
|
12
|
+
export declare const MaxErrorTransformer: ErrorTransformer;
|
|
13
|
+
export declare const DefaultErrorTransformers: ErrorTransformers;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ErrorTranslater = (key: string, params?: Record<string, string>) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class NiceFormErrorComponent {
|
|
3
|
+
message: string;
|
|
4
|
+
increment: number;
|
|
5
|
+
set error(value: string);
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NiceFormErrorComponent, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NiceFormErrorComponent, "nice-form-field-error", never, { "error": { "alias": "error"; "required": false; }; }, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AfterViewInit } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NiceFormFieldErrorDirective implements AfterViewInit {
|
|
4
|
+
private readonly destroyRef;
|
|
5
|
+
private readonly elementRef;
|
|
6
|
+
private readonly viewContainerRef;
|
|
7
|
+
private readonly formField;
|
|
8
|
+
private readonly transformers;
|
|
9
|
+
private readonly translater;
|
|
10
|
+
private ref;
|
|
11
|
+
private control;
|
|
12
|
+
onChange: () => void;
|
|
13
|
+
ngAfterViewInit(): void;
|
|
14
|
+
setError(text: string, params: Record<string, string>): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NiceFormFieldErrorDirective, never>;
|
|
16
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NiceFormFieldErrorDirective, "[niceFormFieldError]", never, {}, {}, never, never, true, never>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FactoryProvider } from "@angular/core";
|
|
2
|
+
import { ErrorTranslater } from "./error-translater";
|
|
3
|
+
import { ErrorTransformers } from "./error-transformer";
|
|
4
|
+
export type NiceFormFieldErrorsOptions = {
|
|
5
|
+
translater: Omit<FactoryProvider, "provide" | "multi"> & {
|
|
6
|
+
useFactory: (...args: any[]) => ErrorTranslater;
|
|
7
|
+
};
|
|
8
|
+
errorTransformers?: ErrorTransformers;
|
|
9
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ProgressSpinnerMode } from "@angular/material/progress-spinner";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class NiceLoadingSpinner {
|
|
4
|
+
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
5
|
+
readonly mode: import("@angular/core").InputSignal<ProgressSpinnerMode>;
|
|
6
|
+
readonly diameter: import("@angular/core").InputSignal<number>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NiceLoadingSpinner, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NiceLoadingSpinner, "nice-loading-spinner", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "diameter": { "alias": "diameter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class NiceLoadingDirective {
|
|
3
|
+
private readonly options;
|
|
4
|
+
private readonly overlay;
|
|
5
|
+
loading: import("@angular/core").InputSignal<boolean | null>;
|
|
6
|
+
private overlayRef;
|
|
7
|
+
private _loading;
|
|
8
|
+
constructor();
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NiceLoadingDirective, never>;
|
|
10
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NiceLoadingDirective, "[niceLoadingOverlay]", never, { "loading": { "alias": "niceLoadingOverlay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@recursyve/ngx-material-components",
|
|
3
|
-
"version": "18.0.0-beta.
|
|
3
|
+
"version": "18.0.0-beta.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^18.2.0",
|
|
6
6
|
"@angular/core": "^18.2.0"
|
|
@@ -21,6 +21,18 @@
|
|
|
21
21
|
"esm": "./esm2022/recursyve-ngx-material-components.mjs",
|
|
22
22
|
"default": "./fesm2022/recursyve-ngx-material-components.mjs"
|
|
23
23
|
},
|
|
24
|
+
"./form-field-error": {
|
|
25
|
+
"types": "./form-field-error/index.d.ts",
|
|
26
|
+
"esm2022": "./esm2022/form-field-error/recursyve-ngx-material-components-form-field-error.mjs",
|
|
27
|
+
"esm": "./esm2022/form-field-error/recursyve-ngx-material-components-form-field-error.mjs",
|
|
28
|
+
"default": "./fesm2022/recursyve-ngx-material-components-form-field-error.mjs"
|
|
29
|
+
},
|
|
30
|
+
"./loading": {
|
|
31
|
+
"types": "./loading/index.d.ts",
|
|
32
|
+
"esm2022": "./esm2022/loading/recursyve-ngx-material-components-loading.mjs",
|
|
33
|
+
"esm": "./esm2022/loading/recursyve-ngx-material-components-loading.mjs",
|
|
34
|
+
"default": "./fesm2022/recursyve-ngx-material-components-loading.mjs"
|
|
35
|
+
},
|
|
24
36
|
"./typeahead": {
|
|
25
37
|
"types": "./typeahead/index.d.ts",
|
|
26
38
|
"esm2022": "./esm2022/typeahead/recursyve-ngx-material-components-typeahead.mjs",
|