@3kles/kles-material-dynamicforms 17.11.1 → 17.11.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.
|
@@ -2,6 +2,8 @@ import { UntypedFormGroup } from "@angular/forms";
|
|
|
2
2
|
import { KlesFormControl } from "./default.control";
|
|
3
3
|
import { componentMapper } from "../decorators/component.decorator";
|
|
4
4
|
import { klesFieldControlFactory } from "../factories/field.factory";
|
|
5
|
+
import { concat, of } from "rxjs";
|
|
6
|
+
import { catchError, map, take } from "rxjs/operators";
|
|
5
7
|
export class KlesFormGroup extends KlesFormControl {
|
|
6
8
|
create() {
|
|
7
9
|
const subGroup = new UntypedFormGroup({});
|
|
@@ -22,7 +24,26 @@ export class KlesFormGroup extends KlesFormControl {
|
|
|
22
24
|
if (this.field.disabled) {
|
|
23
25
|
subGroup.disable();
|
|
24
26
|
}
|
|
27
|
+
if (this.field.asyncValue) {
|
|
28
|
+
concat(of({ value: null, pending: true }), this.field.asyncValue.pipe(take(1), catchError((err) => {
|
|
29
|
+
console.error(err);
|
|
30
|
+
return of(null);
|
|
31
|
+
}), map((value) => ({ value, pending: false })))).subscribe((response) => {
|
|
32
|
+
this.field.pending = response.pending;
|
|
33
|
+
this.field.collections.forEach((col) => col.pending = response.pending);
|
|
34
|
+
if (response.pending) {
|
|
35
|
+
subGroup.disable({ emitEvent: false });
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
if (!this.field.disabled) {
|
|
39
|
+
subGroup.enable({ emitEvent: false });
|
|
40
|
+
}
|
|
41
|
+
subGroup.patchValue(response.value);
|
|
42
|
+
this.field.value = response.value;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
25
46
|
return subGroup;
|
|
26
47
|
}
|
|
27
48
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvY29udHJvbHMvZ3JvdXAuY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThCLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxNQUFNLE9BQU8sYUFBYyxTQUFRLGVBQWU7SUFFdkMsTUFBTTtRQUNULE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLE9BQU8sQ0FBQztnQkFDWixJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7b0JBQ2YsT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7MkJBQ3RKLHVCQUF1QixDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3pIO3FCQUFNO29CQUNILE9BQU8sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzsyQkFDdEosdUJBQXVCLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDekg7Z0JBRUQsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDdkIsTUFBTSxDQUNGLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUM5QyxDQUNKLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3hFLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtvQkFDbEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUMxQztxQkFBTTtvQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7d0JBQ3RCLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztxQkFDekM7b0JBQ0QsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7aUJBQ3JDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBLbGVzRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi9kZWZhdWx0LmNvbnRyb2xcIjtcbmltcG9ydCB7IGNvbXBvbmVudE1hcHBlciB9IGZyb20gXCIuLi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5IH0gZnJvbSBcIi4uL2ZhY3Rvcmllcy9maWVsZC5mYWN0b3J5XCI7XG5pbXBvcnQgeyBjb25jYXQsIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1Hcm91cCBleHRlbmRzIEtsZXNGb3JtQ29udHJvbCB7XG5cbiAgICBwdWJsaWMgY3JlYXRlKCk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBzdWJHcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcblxuICAgICAgICBpZiAodGhpcy5maWVsZC5jb2xsZWN0aW9ucyAmJiBBcnJheS5pc0FycmF5KHRoaXMuZmllbGQuY29sbGVjdGlvbnMpKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjb250cm9sO1xuICAgICAgICAgICAgICAgIGlmIChzdWJmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMudHlwZSA9PT0gc3ViZmllbGQudHlwZSk/LmZhY3RvcnkoeyAuLi5zdWJmaWVsZCwgdmFsdWU6IHN1YmZpZWxkLnZhbHVlIHx8IHRoaXMuZmllbGQudmFsdWU/LltzdWJmaWVsZC5uYW1lXSB9LCB0aGlzLnJlZilcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSwgdGhpcy5yZWYpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMuY29tcG9uZW50ID09PSBzdWJmaWVsZC5jb21wb25lbnQpPy5mYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSwgdGhpcy5yZWYpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN1Ykdyb3VwLmFkZENvbnRyb2woc3ViZmllbGQubmFtZSwgY29udHJvbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBzdWJHcm91cC5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5maWVsZC5hc3luY1ZhbHVlKSB7XG4gICAgICAgICAgICBjb25jYXQoXG4gICAgICAgICAgICAgICAgb2YoeyB2YWx1ZTogbnVsbCwgcGVuZGluZzogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmFzeW5jVmFsdWUucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAoeyB2YWx1ZSwgcGVuZGluZzogZmFsc2UgfSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5wZW5kaW5nID0gcmVzcG9uc2UucGVuZGluZztcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbCkgPT4gY29sLnBlbmRpbmcgPSByZXNwb25zZS5wZW5kaW5nKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucGVuZGluZykge1xuICAgICAgICAgICAgICAgICAgICBzdWJHcm91cC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Ykdyb3VwLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3ViR3JvdXAucGF0Y2hWYWx1ZShyZXNwb25zZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSByZXNwb25zZS52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWJHcm91cDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -5,7 +5,8 @@ import { FieldMapper } from '../decorators/component.decorator';
|
|
|
5
5
|
import { EnumType } from '../enums/type.enum';
|
|
6
6
|
import { KlesFieldAbstract } from './field.abstract';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "
|
|
8
|
+
import * as i1 from "@angular/material/tooltip";
|
|
9
|
+
import * as i2 from "../directive/dynamic-field.directive";
|
|
9
10
|
let KlesFormGroupComponent = class KlesFormGroupComponent extends KlesFieldAbstract {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
@@ -42,13 +43,17 @@ let KlesFormGroupComponent = class KlesFormGroupComponent extends KlesFieldAbstr
|
|
|
42
43
|
}
|
|
43
44
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
45
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: KlesFormGroupComponent, selector: "kles-group", host: { properties: { "formGroup": "group", "formGroupName": "field.name", "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: `
|
|
46
|
+
@if(field.label){
|
|
47
|
+
<h4><span [matTooltip]="field.tooltip || ''" >{{field.label}}</span></h4>
|
|
48
|
+
}
|
|
49
|
+
|
|
45
50
|
@for (subfield of field.collections; track subfield.name) {
|
|
46
51
|
@if (subfield.visible !== false) {
|
|
47
52
|
<ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="field.collections">
|
|
48
53
|
</ng-container>
|
|
49
54
|
}
|
|
50
55
|
}
|
|
51
|
-
`, isInline: true, styles: ["mat-form-field{width:100%}\n", ":host.group-container{display:flex;flex-direction:inherit;width:inherit;justify-content:inherit}\n", ":host.group-container-column{display:flex;flex-direction:column;justify-content:inherit}\n", ":host.group-container-column>*{width:100%}\n", ":host.group-container-row{display:inline-flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:inherit}\n", ":host.group-container-row>*{width:100%}\n", ":host.group-container-grid{display:grid}\n", ":host.group-container-inline-grid{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: i1.KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: ["field", "group", "siblingFields"] }] }); }
|
|
56
|
+
`, isInline: true, styles: ["mat-form-field{width:100%}\n", ":host.group-container{display:flex;flex-direction:inherit;width:inherit;justify-content:inherit}\n", ":host.group-container-column{display:flex;flex-direction:column;justify-content:inherit}\n", ":host.group-container-column>*{width:100%}\n", ":host.group-container-row{display:inline-flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:inherit}\n", ":host.group-container-row>*{width:100%}\n", ":host.group-container-grid{display:grid}\n", ":host.group-container-inline-grid{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i2.KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: ["field", "group", "siblingFields"] }] }); }
|
|
52
57
|
};
|
|
53
58
|
KlesFormGroupComponent = __decorate([
|
|
54
59
|
FieldMapper({ type: EnumType.group, factory: (field) => (new KlesFormGroup(field).create()) })
|
|
@@ -57,6 +62,10 @@ export { KlesFormGroupComponent };
|
|
|
57
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormGroupComponent, decorators: [{
|
|
58
63
|
type: Component,
|
|
59
64
|
args: [{ host: { '[formGroup]': 'group', '[formGroupName]': 'field.name' }, selector: 'kles-group', template: `
|
|
65
|
+
@if(field.label){
|
|
66
|
+
<h4><span [matTooltip]="field.tooltip || ''" >{{field.label}}</span></h4>
|
|
67
|
+
}
|
|
68
|
+
|
|
60
69
|
@for (subfield of field.collections; track subfield.name) {
|
|
61
70
|
@if (subfield.visible !== false) {
|
|
62
71
|
<ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="field.collections">
|
|
@@ -68,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
68
77
|
type: HostBinding,
|
|
69
78
|
args: ['class']
|
|
70
79
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9maWVsZHMvZ3JvdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBMEQsTUFBTSxlQUFlLENBQUM7QUFFL0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUE2QjlDLElBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXVCLFNBQVEsaUJBQWlCO0lBQXREOztRQUVILHFCQUFnQixHQUlzQixpQkFBaUIsQ0FBQztLQXFDM0Q7SUFuQ0csSUFBMEIsU0FBUztRQUMvQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBSUQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQXFCLENBQUM7UUFDekUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUN0QixRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUMxQixLQUFLLFFBQVE7b0JBQ1QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDO29CQUNqRCxNQUFNO2dCQUNWLEtBQUssS0FBSztvQkFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcscUJBQXFCLENBQUM7b0JBQzlDLE1BQU07Z0JBQ1YsS0FBSyxNQUFNO29CQUNQLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBQztvQkFDL0MsTUFBTTtnQkFDVixLQUFLLGFBQWE7b0JBQ2QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDO29CQUN0RCxNQUFNO2FBQ2I7U0FDSjtJQUVMLENBQUM7K0dBMUNRLHNCQUFzQjttR0FBdEIsc0JBQXNCLG1MQXZCckI7Ozs7Ozs7Ozs7O0NBV2I7O0FBWVksc0JBQXNCO0lBM0JsQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0dBMkJsRixzQkFBc0IsQ0EyQ2xDOzs0RkEzQ1ksc0JBQXNCO2tCQTFCbEMsU0FBUzsyQkFDQSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFlBQ3ZELFlBQVksWUFDWjs7Ozs7Ozs7Ozs7Q0FXYjs4QkFvQjZCLFNBQVM7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q29udGFpbmVyUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEtsZXNGb3JtR3JvdXAgfSBmcm9tICcuLi9jb250cm9scy9ncm91cC5jb250cm9sJztcbmltcG9ydCB7IEZpZWxkTWFwcGVyIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9jb21wb25lbnQuZGVjb3JhdG9yJztcbmltcG9ydCB7IEVudW1UeXBlIH0gZnJvbSAnLi4vZW51bXMvdHlwZS5lbnVtJztcbmltcG9ydCB7IEtsZXNGaWVsZEFic3RyYWN0IH0gZnJvbSAnLi9maWVsZC5hYnN0cmFjdCc7XG5cbkBGaWVsZE1hcHBlcih7IHR5cGU6IEVudW1UeXBlLmdyb3VwLCBmYWN0b3J5OiAoZmllbGQpID0+IChuZXcgS2xlc0Zvcm1Hcm91cChmaWVsZCkuY3JlYXRlKCkpIH0pXG5AQ29tcG9uZW50KHtcbiAgICBob3N0OiB7ICdbZm9ybUdyb3VwXSc6ICdncm91cCcsICdbZm9ybUdyb3VwTmFtZV0nOiAnZmllbGQubmFtZScgfSxcbiAgICBzZWxlY3RvcjogJ2tsZXMtZ3JvdXAnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIEBpZihmaWVsZC5sYWJlbCl7XG4gICAgICAgICA8aDQ+PHNwYW4gW21hdFRvb2x0aXBdPVwiZmllbGQudG9vbHRpcCB8fCAnJ1wiID57e2ZpZWxkLmxhYmVsfX08L3NwYW4+PC9oND5cbiAgICAgICAgfVxuICAgICAgIFxuICAgICAgICBAZm9yIChzdWJmaWVsZCBvZiBmaWVsZC5jb2xsZWN0aW9uczsgdHJhY2sgc3ViZmllbGQubmFtZSkge1xuICAgICAgICAgICAgQGlmIChzdWJmaWVsZC52aXNpYmxlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIga2xlc0R5bmFtaWNGaWVsZCBbZmllbGRdPVwic3ViZmllbGRcIiBbZ3JvdXBdPVwic3ViR3JvdXBcIiBbc2libGluZ0ZpZWxkc109XCJmaWVsZC5jb2xsZWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5gLFxuICAgIHN0eWxlczogW1xuICAgICAgICAnIG1hdC1mb3JtLWZpZWxkIHt3aWR0aDogY2FsYygxMDAlKX0nLFxuICAgICAgICAnOmhvc3QuZ3JvdXAtY29udGFpbmVyIHtkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOiBpbmhlcml0OyB3aWR0aDogaW5oZXJpdDsganVzdGlmeS1jb250ZW50OmluaGVyaXQ7IH0nLFxuICAgICAgICAnOmhvc3QuZ3JvdXAtY29udGFpbmVyLWNvbHVtbiB7IGRpc3BsYXk6IGZsZXg7ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OmluaGVyaXQ7IH0nLFxuICAgICAgICAnOmhvc3QuZ3JvdXAtY29udGFpbmVyLWNvbHVtbiA+ICogeyB3aWR0aDogMTAwJTsgfScsXG4gICAgICAgICc6aG9zdC5ncm91cC1jb250YWluZXItcm93IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGZsZXgtd3JhcDp3cmFwOyBnYXA6MTBweDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBqdXN0aWZ5LWNvbnRlbnQ6aW5oZXJpdDsgfScsXG4gICAgICAgICc6aG9zdC5ncm91cC1jb250YWluZXItcm93ID4gKiB7IHdpZHRoOiAxMDAlOyB9JyxcbiAgICAgICAgJzpob3N0Lmdyb3VwLWNvbnRhaW5lci1ncmlkIHsgZGlzcGxheTogZ3JpZDsgfScsXG4gICAgICAgICc6aG9zdC5ncm91cC1jb250YWluZXItaW5saW5lLWdyaWQgeyBkaXNwbGF5OiBpbmxpbmUtZ3JpZDsgfScsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1Hcm91cENvbXBvbmVudCBleHRlbmRzIEtsZXNGaWVsZEFic3RyYWN0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgb3JpZW50YXRpb25DbGFzczogJ2dyb3VwLWNvbnRhaW5lcidcbiAgICAgICAgfCAnZ3JvdXAtY29udGFpbmVyLWNvbHVtbidcbiAgICAgICAgfCAnZ3JvdXAtY29udGFpbmVyLXJvdydcbiAgICAgICAgfCAnZ3JvdXAtY29udGFpbmVyLWdyaWQnXG4gICAgICAgIHwgJ2dyb3VwLWNvbnRhaW5lci1pbmxpbmUtZ3JpZCcgPSAnZ3JvdXAtY29udGFpbmVyJztcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbkNsYXNzO1xuICAgIH1cblxuICAgIHN1Ykdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc3ViR3JvdXAgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQubmFtZV0gYXMgVW50eXBlZEZvcm1Hcm91cDtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXRPcmllbnRhdGlvbkNsYXNzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPcmllbnRhdGlvbkNsYXNzKCkge1xuICAgICAgICBpZiAodGhpcy5maWVsZC5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5maWVsZC5kaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjb2x1bW4nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uQ2xhc3MgPSAnZ3JvdXAtY29udGFpbmVyLWNvbHVtbic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3Jvdyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3JpZW50YXRpb25DbGFzcyA9ICdncm91cC1jb250YWluZXItcm93JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZ3JpZCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3JpZW50YXRpb25DbGFzcyA9ICdncm91cC1jb250YWluZXItZ3JpZCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2lubGluZS1ncmlkJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmllbnRhdGlvbkNsYXNzID0gJ2dyb3VwLWNvbnRhaW5lci1pbmxpbmUtZ3JpZCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG59XG4iXX0=
|
|
@@ -2680,6 +2680,25 @@ class KlesFormGroup extends KlesFormControl {
|
|
|
2680
2680
|
if (this.field.disabled) {
|
|
2681
2681
|
subGroup.disable();
|
|
2682
2682
|
}
|
|
2683
|
+
if (this.field.asyncValue) {
|
|
2684
|
+
concat(of({ value: null, pending: true }), this.field.asyncValue.pipe(take(1), catchError((err) => {
|
|
2685
|
+
console.error(err);
|
|
2686
|
+
return of(null);
|
|
2687
|
+
}), map((value) => ({ value, pending: false })))).subscribe((response) => {
|
|
2688
|
+
this.field.pending = response.pending;
|
|
2689
|
+
this.field.collections.forEach((col) => col.pending = response.pending);
|
|
2690
|
+
if (response.pending) {
|
|
2691
|
+
subGroup.disable({ emitEvent: false });
|
|
2692
|
+
}
|
|
2693
|
+
else {
|
|
2694
|
+
if (!this.field.disabled) {
|
|
2695
|
+
subGroup.enable({ emitEvent: false });
|
|
2696
|
+
}
|
|
2697
|
+
subGroup.patchValue(response.value);
|
|
2698
|
+
this.field.value = response.value;
|
|
2699
|
+
}
|
|
2700
|
+
});
|
|
2701
|
+
}
|
|
2683
2702
|
return subGroup;
|
|
2684
2703
|
}
|
|
2685
2704
|
}
|
|
@@ -2720,13 +2739,17 @@ let KlesFormGroupComponent = class KlesFormGroupComponent extends KlesFieldAbstr
|
|
|
2720
2739
|
}
|
|
2721
2740
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
2722
2741
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: KlesFormGroupComponent, selector: "kles-group", host: { properties: { "formGroup": "group", "formGroupName": "field.name", "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: `
|
|
2742
|
+
@if(field.label){
|
|
2743
|
+
<h4><span [matTooltip]="field.tooltip || ''" >{{field.label}}</span></h4>
|
|
2744
|
+
}
|
|
2745
|
+
|
|
2723
2746
|
@for (subfield of field.collections; track subfield.name) {
|
|
2724
2747
|
@if (subfield.visible !== false) {
|
|
2725
2748
|
<ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="field.collections">
|
|
2726
2749
|
</ng-container>
|
|
2727
2750
|
}
|
|
2728
2751
|
}
|
|
2729
|
-
`, isInline: true, styles: ["mat-form-field{width:100%}\n", ":host.group-container{display:flex;flex-direction:inherit;width:inherit;justify-content:inherit}\n", ":host.group-container-column{display:flex;flex-direction:column;justify-content:inherit}\n", ":host.group-container-column>*{width:100%}\n", ":host.group-container-row{display:inline-flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:inherit}\n", ":host.group-container-row>*{width:100%}\n", ":host.group-container-grid{display:grid}\n", ":host.group-container-inline-grid{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: ["field", "group", "siblingFields"] }] }); }
|
|
2752
|
+
`, isInline: true, styles: ["mat-form-field{width:100%}\n", ":host.group-container{display:flex;flex-direction:inherit;width:inherit;justify-content:inherit}\n", ":host.group-container-column{display:flex;flex-direction:column;justify-content:inherit}\n", ":host.group-container-column>*{width:100%}\n", ":host.group-container-row{display:inline-flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:inherit}\n", ":host.group-container-row>*{width:100%}\n", ":host.group-container-grid{display:grid}\n", ":host.group-container-inline-grid{display:inline-grid}\n"], dependencies: [{ kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: KlesDynamicFieldDirective, selector: "[klesDynamicField]", inputs: ["field", "group", "siblingFields"] }] }); }
|
|
2730
2753
|
};
|
|
2731
2754
|
KlesFormGroupComponent = __decorate([
|
|
2732
2755
|
FieldMapper({ type: EnumType.group, factory: (field) => (new KlesFormGroup(field).create()) })
|
|
@@ -2734,6 +2757,10 @@ KlesFormGroupComponent = __decorate([
|
|
|
2734
2757
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesFormGroupComponent, decorators: [{
|
|
2735
2758
|
type: Component,
|
|
2736
2759
|
args: [{ host: { '[formGroup]': 'group', '[formGroupName]': 'field.name' }, selector: 'kles-group', template: `
|
|
2760
|
+
@if(field.label){
|
|
2761
|
+
<h4><span [matTooltip]="field.tooltip || ''" >{{field.label}}</span></h4>
|
|
2762
|
+
}
|
|
2763
|
+
|
|
2737
2764
|
@for (subfield of field.collections; track subfield.name) {
|
|
2738
2765
|
@if (subfield.visible !== false) {
|
|
2739
2766
|
<ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="field.collections">
|