@3kles/kles-material-dynamicforms 17.11.1 → 17.11.2
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvY29udHJvbHMvZ3JvdXAuY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThCLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxNQUFNLE9BQU8sYUFBYyxTQUFRLGVBQWU7SUFFdkMsTUFBTTtRQUNULE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLE9BQU8sQ0FBQztnQkFDWixJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7b0JBQ2YsT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFB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Q3JDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBLbGVzRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi9kZWZhdWx0LmNvbnRyb2xcIjtcbmltcG9ydCB7IGNvbXBvbmVudE1hcHBlciB9IGZyb20gXCIuLi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5IH0gZnJvbSBcIi4uL2ZhY3Rvcmllcy9maWVsZC5mYWN0b3J5XCI7XG5pbXBvcnQgeyBjb25jYXQsIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1Hcm91cCBleHRlbmRzIEtsZXNGb3JtQ29udHJvbCB7XG5cbiAgICBwdWJsaWMgY3JlYXRlKCk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBzdWJHcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcblxuICAgICAgICBpZiAodGhpcy5maWVsZC5jb2xsZWN0aW9ucyAmJiBBcnJheS5pc0FycmF5KHRoaXMuZmllbGQuY29sbGVjdGlvbnMpKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBjb250cm9sO1xuICAgICAgICAgICAgICAgIGlmIChzdWJmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMudHlwZSA9PT0gc3ViZmllbGQudHlwZSk/LmZhY3RvcnkoeyAuLi5zdWJmaWVsZCwgdmFsdWU6IHN1YmZpZWxkLnZhbHVlIHx8IHRoaXMuZmllbGQudmFsdWU/LltzdWJmaWVsZC5uYW1lXSB9LCB0aGlzLnJlZilcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSwgdGhpcy5yZWYpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMuY29tcG9uZW50ID09PSBzdWJmaWVsZC5jb21wb25lbnQpPy5mYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSwgdGhpcy5yZWYpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHN1Ykdyb3VwLmFkZENvbnRyb2woc3ViZmllbGQubmFtZSwgY29udHJvbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBzdWJHcm91cC5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5maWVsZC5hc3luY1ZhbHVlKSB7XG4gICAgICAgICAgICBjb25jYXQoXG4gICAgICAgICAgICAgICAgb2YoeyB2YWx1ZTogbnVsbCwgcGVuZGluZzogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmFzeW5jVmFsdWUucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAoeyB2YWx1ZSwgcGVuZGluZzogZmFsc2UgfSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC5wZW5kaW5nID0gcmVzcG9uc2UucGVuZGluZztcbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbCkgPT4gY29sLnBlbmRpbmcgPSByZXNwb25zZS5wZW5kaW5nKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucGVuZGluZykge1xuICAgICAgICAgICAgICAgICAgICBzdWJHcm91cC5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZmllbGQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Ykdyb3VwLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3ViR3JvdXAucGF0Y2hWYWx1ZShyZXNwb25zZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQudmFsdWUgPSByZXNwb25zZS52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWJHcm91cDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -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
|
}
|