@ngxs/form-plugin 3.8.2-dev.master-e0981de → 3.8.2-dev.master-9f0fcb0
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/src/actions.mjs +61 -0
- package/esm2022/src/directive.mjs +176 -0
- package/{esm2020 → esm2022}/src/form.module.mjs +5 -5
- package/{esm2020 → esm2022}/src/form.plugin.mjs +4 -4
- package/{fesm2020 → fesm2022}/ngxs-form-plugin.mjs +32 -32
- package/{fesm2015 → fesm2022}/ngxs-form-plugin.mjs.map +1 -1
- package/package.json +5 -11
- package/src/directive.d.ts +1 -1
- package/esm2020/src/actions.mjs +0 -61
- package/esm2020/src/directive.mjs +0 -176
- package/fesm2015/ngxs-form-plugin.mjs +0 -331
- package/fesm2020/ngxs-form-plugin.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/ngxs-form-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/src/public_api.mjs +0 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngxs/form-plugin",
|
|
3
3
|
"description": "form plugin for @ngxs/store",
|
|
4
|
-
"version": "3.8.2-dev.master-
|
|
4
|
+
"version": "3.8.2-dev.master-9f0fcb0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"@angular/core": ">=12.0.0 <18.0.0",
|
|
@@ -9,11 +9,7 @@
|
|
|
9
9
|
"@ngxs/store": "^3.8.2 || ^3.8.2-dev",
|
|
10
10
|
"rxjs": ">=6.5.5"
|
|
11
11
|
},
|
|
12
|
-
"module": "
|
|
13
|
-
"es2020": "fesm2020/ngxs-form-plugin.mjs",
|
|
14
|
-
"esm2020": "esm2020/ngxs-form-plugin.mjs",
|
|
15
|
-
"fesm2020": "fesm2020/ngxs-form-plugin.mjs",
|
|
16
|
-
"fesm2015": "fesm2015/ngxs-form-plugin.mjs",
|
|
12
|
+
"module": "fesm2022/ngxs-form-plugin.mjs",
|
|
17
13
|
"typings": "index.d.ts",
|
|
18
14
|
"exports": {
|
|
19
15
|
"./package.json": {
|
|
@@ -21,11 +17,9 @@
|
|
|
21
17
|
},
|
|
22
18
|
".": {
|
|
23
19
|
"types": "./index.d.ts",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"node": "./fesm2015/ngxs-form-plugin.mjs",
|
|
28
|
-
"default": "./fesm2020/ngxs-form-plugin.mjs"
|
|
20
|
+
"esm2022": "./esm2022/ngxs-form-plugin.mjs",
|
|
21
|
+
"esm": "./esm2022/ngxs-form-plugin.mjs",
|
|
22
|
+
"default": "./fesm2022/ngxs-form-plugin.mjs"
|
|
29
23
|
}
|
|
30
24
|
},
|
|
31
25
|
"dependencies": {
|
package/src/directive.d.ts
CHANGED
|
@@ -24,5 +24,5 @@ export declare class NgxsFormDirective implements OnInit, OnDestroy {
|
|
|
24
24
|
private get form();
|
|
25
25
|
private getStateStream;
|
|
26
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsFormDirective, never>;
|
|
27
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxsFormDirective, "[ngxsForm]", never, { "path": "ngxsForm"; "debounce": "ngxsFormDebounce"; "clearDestroy": "ngxsFormClearOnDestroy"; }, {}, never, never, true, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgxsFormDirective, "[ngxsForm]", never, { "path": { "alias": "ngxsForm"; "required": false; }; "debounce": { "alias": "ngxsFormDebounce"; "required": false; }; "clearDestroy": { "alias": "ngxsFormClearOnDestroy"; "required": false; }; }, {}, never, never, true, never>;
|
|
28
28
|
}
|
package/esm2020/src/actions.mjs
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
export class UpdateFormStatus {
|
|
2
|
-
constructor(payload) {
|
|
3
|
-
this.payload = payload;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
UpdateFormStatus.type = '[Forms] Update Form Status';
|
|
7
|
-
export class UpdateFormValue {
|
|
8
|
-
constructor(payload) {
|
|
9
|
-
this.payload = payload;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
UpdateFormValue.type = '[Forms] Update Form Value';
|
|
13
|
-
export class UpdateForm {
|
|
14
|
-
constructor(payload) {
|
|
15
|
-
this.payload = payload;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
UpdateForm.type = '[Forms] Update Form';
|
|
19
|
-
export class UpdateFormDirty {
|
|
20
|
-
constructor(payload) {
|
|
21
|
-
this.payload = payload;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
UpdateFormDirty.type = '[Forms] Update Form Dirty';
|
|
25
|
-
export class SetFormDirty {
|
|
26
|
-
constructor(payload) {
|
|
27
|
-
this.payload = payload;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
SetFormDirty.type = '[Forms] Set Form Dirty';
|
|
31
|
-
export class SetFormPristine {
|
|
32
|
-
constructor(payload) {
|
|
33
|
-
this.payload = payload;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
SetFormPristine.type = '[Forms] Set Form Pristine';
|
|
37
|
-
export class UpdateFormErrors {
|
|
38
|
-
constructor(payload) {
|
|
39
|
-
this.payload = payload;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
UpdateFormErrors.type = '[Forms] Update Form Errors';
|
|
43
|
-
export class SetFormDisabled {
|
|
44
|
-
constructor(payload) {
|
|
45
|
-
this.payload = payload;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
SetFormDisabled.type = '[Forms] Set Form Disabled';
|
|
49
|
-
export class SetFormEnabled {
|
|
50
|
-
constructor(payload) {
|
|
51
|
-
this.payload = payload;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
SetFormEnabled.type = '[Forms] Set Form Enabled';
|
|
55
|
-
export class ResetForm {
|
|
56
|
-
constructor(payload) {
|
|
57
|
-
this.payload = payload;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
ResetForm.type = '[Forms] Reset Form';
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2Zvcm0tcGx1Z2luL3NyYy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFDUyxPQUdOO1FBSE0sWUFBTyxHQUFQLE9BQU8sQ0FHYjtJQUNBLENBQUM7O0FBUFkscUJBQUksR0FBRyw0QkFBNEIsQ0FBQztBQVV0RCxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFtQixPQUE0RDtRQUE1RCxZQUFPLEdBQVAsT0FBTyxDQUFxRDtJQUFHLENBQUM7O0FBRm5FLG9CQUFJLEdBQUcsMkJBQTJCLENBQUM7QUFLckQsTUFBTSxPQUFPLFVBQVU7SUFHckIsWUFDUyxPQU1OO1FBTk0sWUFBTyxHQUFQLE9BQU8sQ0FNYjtJQUNBLENBQUM7O0FBVlksZUFBSSxHQUFHLHFCQUFxQixDQUFDO0FBYS9DLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW1CLE9BQWdEO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQXlDO0lBQUcsQ0FBQzs7QUFGdkQsb0JBQUksR0FBRywyQkFBMkIsQ0FBQztBQUtyRCxNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7O0FBRnRCLGlCQUFJLEdBQUcsd0JBQXdCLENBQUM7QUFLbEQsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDOztBQUZ0QixvQkFBSSxHQUFHLDJCQUEyQixDQUFDO0FBS3JELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBbUIsT0FBaUU7UUFBakUsWUFBTyxHQUFQLE9BQU8sQ0FBMEQ7SUFBRyxDQUFDOztBQUZ4RSxxQkFBSSxHQUFHLDRCQUE0QixDQUFDO0FBS3RELE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW1CLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQzs7QUFGdEIsb0JBQUksR0FBRywyQkFBMkIsQ0FBQztBQUtyRCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFtQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7O0FBRnRCLG1CQUFJLEdBQUcsMEJBQTBCLENBQUM7QUFLcEQsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFBbUIsT0FBc0M7UUFBdEMsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7SUFBRyxDQUFDOztBQUY3QyxjQUFJLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVXBkYXRlRm9ybVN0YXR1cyB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tGb3Jtc10gVXBkYXRlIEZvcm0gU3RhdHVzJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGF5bG9hZDoge1xuICAgICAgc3RhdHVzOiBzdHJpbmcgfCBudWxsO1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgIH1cbiAgKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlRm9ybVZhbHVlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0Zvcm1zXSBVcGRhdGUgRm9ybSBWYWx1ZSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgdmFsdWU6IGFueTsgcGF0aDogc3RyaW5nOyBwcm9wZXJ0eVBhdGg/OiBzdHJpbmcgfSkge31cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZUZvcm0ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbRm9ybXNdIFVwZGF0ZSBGb3JtJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcGF5bG9hZDoge1xuICAgICAgdmFsdWU6IGFueTtcbiAgICAgIGVycm9yczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gfCBudWxsO1xuICAgICAgZGlydHk6IGJvb2xlYW4gfCBudWxsO1xuICAgICAgc3RhdHVzOiBzdHJpbmcgfCBudWxsO1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgIH1cbiAgKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlRm9ybURpcnR5IHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnW0Zvcm1zXSBVcGRhdGUgRm9ybSBEaXJ0eSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgZGlydHk6IGJvb2xlYW4gfCBudWxsOyBwYXRoOiBzdHJpbmcgfSkge31cbn1cblxuZXhwb3J0IGNsYXNzIFNldEZvcm1EaXJ0eSB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tGb3Jtc10gU2V0IEZvcm0gRGlydHknO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRGb3JtUHJpc3RpbmUge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbRm9ybXNdIFNldCBGb3JtIFByaXN0aW5lJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlRm9ybUVycm9ycyB7XG4gIHN0YXRpYyByZWFkb25seSB0eXBlID0gJ1tGb3Jtc10gVXBkYXRlIEZvcm0gRXJyb3JzJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogeyBlcnJvcnM6IHsgW2s6IHN0cmluZ106IHN0cmluZyB9IHwgbnVsbDsgcGF0aDogc3RyaW5nIH0pIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBTZXRGb3JtRGlzYWJsZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbRm9ybXNdIFNldCBGb3JtIERpc2FibGVkJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogc3RyaW5nKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgU2V0Rm9ybUVuYWJsZWQge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbRm9ybXNdIFNldCBGb3JtIEVuYWJsZWQnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBzdHJpbmcpIHt9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXNldEZvcm0ge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdbRm9ybXNdIFJlc2V0IEZvcm0nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiB7IHBhdGg6IHN0cmluZzsgdmFsdWU/OiBhbnkgfSkge31cbn1cbiJdfQ==
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Directive, Input } from '@angular/core';
|
|
2
|
-
import { FormGroupDirective } from '@angular/forms';
|
|
3
|
-
import { Actions, getValue, ofActionDispatched, Store } from '@ngxs/store';
|
|
4
|
-
import { ReplaySubject } from 'rxjs';
|
|
5
|
-
import { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { ResetForm, UpdateForm, UpdateFormDirty, UpdateFormErrors, UpdateFormStatus, UpdateFormValue } from './actions';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@ngxs/store";
|
|
9
|
-
import * as i2 from "@angular/forms";
|
|
10
|
-
export class NgxsFormDirective {
|
|
11
|
-
constructor(_actions$, _store, _formGroupDirective, _cd) {
|
|
12
|
-
this._actions$ = _actions$;
|
|
13
|
-
this._store = _store;
|
|
14
|
-
this._formGroupDirective = _formGroupDirective;
|
|
15
|
-
this._cd = _cd;
|
|
16
|
-
this.path = null;
|
|
17
|
-
this._debounce = 100;
|
|
18
|
-
this._clearDestroy = false;
|
|
19
|
-
this._updating = false;
|
|
20
|
-
this._destroy$ = new ReplaySubject(1);
|
|
21
|
-
}
|
|
22
|
-
set debounce(debounce) {
|
|
23
|
-
this._debounce = Number(debounce);
|
|
24
|
-
}
|
|
25
|
-
get debounce() {
|
|
26
|
-
return this._debounce;
|
|
27
|
-
}
|
|
28
|
-
set clearDestroy(val) {
|
|
29
|
-
this._clearDestroy = val != null && `${val}` !== 'false';
|
|
30
|
-
}
|
|
31
|
-
get clearDestroy() {
|
|
32
|
-
return this._clearDestroy;
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
this._actions$
|
|
36
|
-
.pipe(ofActionDispatched(ResetForm), filter((action) => action.payload.path === this.path), takeUntil(this._destroy$))
|
|
37
|
-
.subscribe(({ payload: { value } }) => {
|
|
38
|
-
this.form.reset(value);
|
|
39
|
-
this.updateFormStateWithRawValue(true);
|
|
40
|
-
this._cd.markForCheck();
|
|
41
|
-
});
|
|
42
|
-
this.getStateStream(`${this.path}.model`).subscribe(model => {
|
|
43
|
-
if (this._updating || !model) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
this.form.patchValue(model);
|
|
47
|
-
this._cd.markForCheck();
|
|
48
|
-
});
|
|
49
|
-
this.getStateStream(`${this.path}.dirty`).subscribe(dirty => {
|
|
50
|
-
if (this.form.dirty === dirty || typeof dirty !== 'boolean') {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (dirty) {
|
|
54
|
-
this.form.markAsDirty();
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
this.form.markAsPristine();
|
|
58
|
-
}
|
|
59
|
-
this._cd.markForCheck();
|
|
60
|
-
});
|
|
61
|
-
// On first state change, sync form model, status and dirty with state
|
|
62
|
-
this._store
|
|
63
|
-
.selectOnce(state => getValue(state, this.path))
|
|
64
|
-
.subscribe(() => {
|
|
65
|
-
this._store.dispatch([
|
|
66
|
-
new UpdateFormValue({
|
|
67
|
-
path: this.path,
|
|
68
|
-
value: this.form.getRawValue()
|
|
69
|
-
}),
|
|
70
|
-
new UpdateFormStatus({
|
|
71
|
-
path: this.path,
|
|
72
|
-
status: this.form.status
|
|
73
|
-
}),
|
|
74
|
-
new UpdateFormDirty({
|
|
75
|
-
path: this.path,
|
|
76
|
-
dirty: this.form.dirty
|
|
77
|
-
})
|
|
78
|
-
]);
|
|
79
|
-
});
|
|
80
|
-
this.getStateStream(`${this.path}.disabled`).subscribe(disabled => {
|
|
81
|
-
if (this.form.disabled === disabled || typeof disabled !== 'boolean') {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (disabled) {
|
|
85
|
-
this.form.disable();
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
this.form.enable();
|
|
89
|
-
}
|
|
90
|
-
this._cd.markForCheck();
|
|
91
|
-
});
|
|
92
|
-
this._formGroupDirective
|
|
93
|
-
.valueChanges.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), this.debounceChange())
|
|
94
|
-
.subscribe(() => {
|
|
95
|
-
this.updateFormStateWithRawValue();
|
|
96
|
-
});
|
|
97
|
-
this._formGroupDirective
|
|
98
|
-
.statusChanges.pipe(distinctUntilChanged(), this.debounceChange())
|
|
99
|
-
.subscribe((status) => {
|
|
100
|
-
this._store.dispatch(new UpdateFormStatus({
|
|
101
|
-
status,
|
|
102
|
-
path: this.path
|
|
103
|
-
}));
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
updateFormStateWithRawValue(withFormStatus) {
|
|
107
|
-
if (this._updating)
|
|
108
|
-
return;
|
|
109
|
-
const value = this._formGroupDirective.control.getRawValue();
|
|
110
|
-
const actions = [
|
|
111
|
-
new UpdateFormValue({
|
|
112
|
-
path: this.path,
|
|
113
|
-
value
|
|
114
|
-
}),
|
|
115
|
-
new UpdateFormDirty({
|
|
116
|
-
path: this.path,
|
|
117
|
-
dirty: this._formGroupDirective.dirty
|
|
118
|
-
}),
|
|
119
|
-
new UpdateFormErrors({
|
|
120
|
-
path: this.path,
|
|
121
|
-
errors: this._formGroupDirective.errors
|
|
122
|
-
})
|
|
123
|
-
];
|
|
124
|
-
if (withFormStatus) {
|
|
125
|
-
actions.push(new UpdateFormStatus({
|
|
126
|
-
path: this.path,
|
|
127
|
-
status: this._formGroupDirective.status
|
|
128
|
-
}));
|
|
129
|
-
}
|
|
130
|
-
this._updating = true;
|
|
131
|
-
this._store.dispatch(actions).subscribe({
|
|
132
|
-
error: () => (this._updating = false),
|
|
133
|
-
complete: () => (this._updating = false)
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
ngOnDestroy() {
|
|
137
|
-
this._destroy$.next();
|
|
138
|
-
if (this.clearDestroy) {
|
|
139
|
-
this._store.dispatch(new UpdateForm({
|
|
140
|
-
path: this.path,
|
|
141
|
-
value: null,
|
|
142
|
-
dirty: null,
|
|
143
|
-
status: null,
|
|
144
|
-
errors: null
|
|
145
|
-
}));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
debounceChange() {
|
|
149
|
-
const skipDebounceTime = this._formGroupDirective.control.updateOn !== 'change' || this._debounce < 0;
|
|
150
|
-
return skipDebounceTime
|
|
151
|
-
? (change) => change.pipe(takeUntil(this._destroy$))
|
|
152
|
-
: (change) => change.pipe(debounceTime(this._debounce), takeUntil(this._destroy$));
|
|
153
|
-
}
|
|
154
|
-
get form() {
|
|
155
|
-
return this._formGroupDirective.form;
|
|
156
|
-
}
|
|
157
|
-
getStateStream(path) {
|
|
158
|
-
return this._store.select(state => getValue(state, path)).pipe(takeUntil(this._destroy$));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/** @nocollapse */ NgxsFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormDirective, deps: [{ token: i1.Actions }, { token: i1.Store }, { token: i2.FormGroupDirective }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
162
|
-
/** @nocollapse */ NgxsFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.4", type: NgxsFormDirective, isStandalone: true, selector: "[ngxsForm]", inputs: { path: ["ngxsForm", "path"], debounce: ["ngxsFormDebounce", "debounce"], clearDestroy: ["ngxsFormClearOnDestroy", "clearDestroy"] }, ngImport: i0 });
|
|
163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormDirective, decorators: [{
|
|
164
|
-
type: Directive,
|
|
165
|
-
args: [{ selector: '[ngxsForm]', standalone: true }]
|
|
166
|
-
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i1.Store }, { type: i2.FormGroupDirective }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { path: [{
|
|
167
|
-
type: Input,
|
|
168
|
-
args: ['ngxsForm']
|
|
169
|
-
}], debounce: [{
|
|
170
|
-
type: Input,
|
|
171
|
-
args: ['ngxsFormDebounce']
|
|
172
|
-
}], clearDestroy: [{
|
|
173
|
-
type: Input,
|
|
174
|
-
args: ['ngxsFormClearOnDestroy']
|
|
175
|
-
}] } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvZm9ybS1wbHVnaW4vc3JjL2RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNFLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNoQixNQUFNLFdBQVcsQ0FBQzs7OztBQUduQixNQUFNLE9BQU8saUJBQWlCO0lBMEI1QixZQUNVLFNBQWtCLEVBQ2xCLE1BQWEsRUFDYixtQkFBdUMsRUFDdkMsR0FBc0I7UUFIdEIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVCaEMsU0FBSSxHQUFXLElBQUssQ0FBQztRQVNiLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFTaEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFdEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVULGNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztJQU9yRCxDQUFDO0lBM0JKLElBQ0ksUUFBUSxD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SSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDOztpSUFoTVUsaUJBQWlCO3FIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTttTEFHckQsSUFBSTtzQkFESCxLQUFLO3VCQUFDLFVBQVU7Z0JBSWIsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLGtCQUFrQjtnQkFVckIsWUFBWTtzQkFEZixLQUFLO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3Rpb25zLCBnZXRWYWx1ZSwgb2ZBY3Rpb25EaXNwYXRjaGVkLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgUmVzZXRGb3JtLFxuICBVcGRhdGVGb3JtLFxuICBVcGRhdGVGb3JtRGlydHksXG4gIFVwZGF0ZUZvcm1FcnJvcnMsXG4gIFVwZGF0ZUZvcm1TdGF0dXMsXG4gIFVwZGF0ZUZvcm1WYWx1ZVxufSBmcm9tICcuL2FjdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbbmd4c0Zvcm1dJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5neHNGb3JtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoJ25neHNGb3JtJylcbiAgcGF0aDogc3RyaW5nID0gbnVsbCE7XG5cbiAgQElucHV0KCduZ3hzRm9ybURlYm91bmNlJylcbiAgc2V0IGRlYm91bmNlKGRlYm91bmNlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLl9kZWJvdW5jZSA9IE51bWJlcihkZWJvdW5jZSk7XG4gIH1cbiAgZ2V0IGRlYm91bmNlKCkge1xuICAgIHJldHVybiB0aGlzLl9kZWJvdW5jZTtcbiAgfVxuICBwcml2YXRlIF9kZWJvdW5jZSA9IDEwMDtcblxuICBASW5wdXQoJ25neHNGb3JtQ2xlYXJPbkRlc3Ryb3knKVxuICBzZXQgY2xlYXJEZXN0cm95KHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX2NsZWFyRGVzdHJveSA9IHZhbCAhPSBudWxsICYmIGAke3ZhbH1gICE9PSAnZmFsc2UnO1xuICB9XG4gIGdldCBjbGVhckRlc3Ryb3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NsZWFyRGVzdHJveTtcbiAgfVxuICBwcml2YXRlIF9jbGVhckRlc3Ryb3kgPSBmYWxzZTtcblxuICBwcml2YXRlIF91cGRhdGluZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgX2Zvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlLFxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fYWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBvZkFjdGlvbkRpc3BhdGNoZWQoUmVzZXRGb3JtKSxcbiAgICAgICAgZmlsdGVyKChhY3Rpb246IFJlc2V0Rm9ybSkgPT4gYWN0aW9uLnBheWxvYWQucGF0aCA9PT0gdGhpcy5wYXRoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoeyBwYXlsb2FkOiB7IHZhbHVlIH0gfTogUmVzZXRGb3JtKSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh2YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlRm9ybVN0YXRlV2l0aFJhd1ZhbHVlKHRydWUpO1xuICAgICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5nZXRTdGF0ZVN0cmVhbShgJHt0aGlzLnBhdGh9Lm1vZGVsYCkuc3Vic2NyaWJlKG1vZGVsID0+IHtcbiAgICAgIGlmICh0aGlzLl91cGRhdGluZyB8fCAhbW9kZWwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZ2V0U3RhdGVTdHJlYW0oYCR7dGhpcy5wYXRofS5kaXJ0eWApLnN1YnNjcmliZShkaXJ0eSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtLmRpcnR5ID09PSBkaXJ0eSB8fCB0eXBlb2YgZGlydHkgIT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXJ0eSkge1xuICAgICAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIC8vIE9uIGZpcnN0IHN0YXRlIGNoYW5nZSwgc3luYyBmb3JtIG1vZGVsLCBzdGF0dXMgYW5kIGRpcnR5IHdpdGggc3RhdGVcbiAgICB0aGlzLl9zdG9yZVxuICAgICAgLnNlbGVjdE9uY2Uoc3RhdGUgPT4gZ2V0VmFsdWUoc3RhdGUsIHRoaXMucGF0aCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goW1xuICAgICAgICAgIG5ldyBVcGRhdGVGb3JtVmFsdWUoe1xuICAgICAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IFVwZGF0ZUZvcm1TdGF0dXMoe1xuICAgICAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgICAgc3RhdHVzOiB0aGlzLmZvcm0uc3RhdHVzXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IFVwZGF0ZUZvcm1EaXJ0eSh7XG4gICAgICAgICAgICBwYXRoOiB0aGlzLnBhdGgsXG4gICAgICAgICAgICBkaXJ0eTogdGhpcy5mb3JtLmRpcnR5XG4gICAgICAgICAgfSlcbiAgICAgICAgXSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZ2V0U3RhdGVTdHJlYW0oYCR7dGhpcy5wYXRofS5kaXNhYmxlZGApLnN1YnNjcmliZShkaXNhYmxlZCA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtLmRpc2FibGVkID09PSBkaXNhYmxlZCB8fCB0eXBlb2YgZGlzYWJsZWQgIT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1Hcm91cERpcmVjdGl2ZVxuICAgICAgLnZhbHVlQ2hhbmdlcyEucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IEpTT04uc3RyaW5naWZ5KGEpID09PSBKU09OLnN0cmluZ2lmeShiKSksXG4gICAgICAgIHRoaXMuZGVib3VuY2VDaGFuZ2UoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlRm9ybVN0YXRlV2l0aFJhd1ZhbHVlKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2Zvcm1Hcm91cERpcmVjdGl2ZVxuICAgICAgLnN0YXR1c0NoYW5nZXMhLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGhpcy5kZWJvdW5jZUNoYW5nZSgpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgbmV3IFVwZGF0ZUZvcm1TdGF0dXMoe1xuICAgICAgICAgICAgc3RhdHVzLFxuICAgICAgICAgICAgcGF0aDogdGhpcy5wYXRoXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRm9ybVN0YXRlV2l0aFJhd1ZhbHVlKHdpdGhGb3JtU3RhdHVzPzogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl91cGRhdGluZykgcmV0dXJuO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9mb3JtR3JvdXBEaXJlY3RpdmUuY29udHJvbC5nZXRSYXdWYWx1ZSgpO1xuXG4gICAgY29uc3QgYWN0aW9uczogYW55W10gPSBbXG4gICAgICBuZXcgVXBkYXRlRm9ybVZhbHVlKHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICB2YWx1ZVxuICAgICAgfSksXG4gICAgICBuZXcgVXBkYXRlRm9ybURpcnR5KHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICBkaXJ0eTogdGhpcy5fZm9ybUdyb3VwRGlyZWN0aXZlLmRpcnR5XG4gICAgICB9KSxcbiAgICAgIG5ldyBVcGRhdGVGb3JtRXJyb3JzKHtcbiAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICBlcnJvcnM6IHRoaXMuX2Zvcm1Hcm91cERpcmVjdGl2ZS5lcnJvcnNcbiAgICAgIH0pXG4gICAgXTtcblxuICAgIGlmICh3aXRoRm9ybVN0YXR1cykge1xuICAgICAgYWN0aW9ucy5wdXNoKFxuICAgICAgICBuZXcgVXBkYXRlRm9ybVN0YXR1cyh7XG4gICAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgIHN0YXR1czogdGhpcy5fZm9ybUdyb3VwRGlyZWN0aXZlLnN0YXR1c1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl91cGRhdGluZyA9IHRydWU7XG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goYWN0aW9ucykuc3Vic2NyaWJlKHtcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5fdXBkYXRpbmcgPSBmYWxzZSksXG4gICAgICBjb21wbGV0ZTogKCkgPT4gKHRoaXMuX3VwZGF0aW5nID0gZmFsc2UpXG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG5cbiAgICBpZiAodGhpcy5jbGVhckRlc3Ryb3kpIHtcbiAgICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKFxuICAgICAgICBuZXcgVXBkYXRlRm9ybSh7XG4gICAgICAgICAgcGF0aDogdGhpcy5wYXRoLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIGRpcnR5OiBudWxsLFxuICAgICAgICAgIHN0YXR1czogbnVsbCxcbiAgICAgICAgICBlcnJvcnM6IG51bGxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkZWJvdW5jZUNoYW5nZSgpIHtcbiAgICBjb25zdCBza2lwRGVib3VuY2VUaW1lID1cbiAgICAgIHRoaXMuX2Zvcm1Hcm91cERpcmVjdGl2ZS5jb250cm9sLnVwZGF0ZU9uICE9PSAnY2hhbmdlJyB8fCB0aGlzLl9kZWJvdW5jZSA8IDA7XG5cbiAgICByZXR1cm4gc2tpcERlYm91bmNlVGltZVxuICAgICAgPyAoY2hhbmdlOiBPYnNlcnZhYmxlPGFueT4pID0+IGNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICA6IChjaGFuZ2U6IE9ic2VydmFibGU8YW55PikgPT5cbiAgICAgICAgICBjaGFuZ2UucGlwZShkZWJvdW5jZVRpbWUodGhpcy5fZGVib3VuY2UpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZvcm0oKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwRGlyZWN0aXZlLmZvcm07XG4gIH1cblxuICBwcml2YXRlIGdldFN0YXRlU3RyZWFtKHBhdGg6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZS5zZWxlY3Qoc3RhdGUgPT4gZ2V0VmFsdWUoc3RhdGUsIHBhdGgpKS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,331 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Directive, Input, NgModule, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
-
import * as i1 from '@ngxs/store';
|
|
4
|
-
import { getActionTypeFromInstance, setValue, getValue, ofActionDispatched, NGXS_PLUGINS, withNgxsPlugin } from '@ngxs/store';
|
|
5
|
-
import { ReplaySubject } from 'rxjs';
|
|
6
|
-
import { filter, takeUntil, distinctUntilChanged, debounceTime } from 'rxjs/operators';
|
|
7
|
-
import * as i2 from '@angular/forms';
|
|
8
|
-
|
|
9
|
-
class UpdateFormStatus {
|
|
10
|
-
constructor(payload) {
|
|
11
|
-
this.payload = payload;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
UpdateFormStatus.type = '[Forms] Update Form Status';
|
|
15
|
-
class UpdateFormValue {
|
|
16
|
-
constructor(payload) {
|
|
17
|
-
this.payload = payload;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
UpdateFormValue.type = '[Forms] Update Form Value';
|
|
21
|
-
class UpdateForm {
|
|
22
|
-
constructor(payload) {
|
|
23
|
-
this.payload = payload;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
UpdateForm.type = '[Forms] Update Form';
|
|
27
|
-
class UpdateFormDirty {
|
|
28
|
-
constructor(payload) {
|
|
29
|
-
this.payload = payload;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
UpdateFormDirty.type = '[Forms] Update Form Dirty';
|
|
33
|
-
class SetFormDirty {
|
|
34
|
-
constructor(payload) {
|
|
35
|
-
this.payload = payload;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
SetFormDirty.type = '[Forms] Set Form Dirty';
|
|
39
|
-
class SetFormPristine {
|
|
40
|
-
constructor(payload) {
|
|
41
|
-
this.payload = payload;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
SetFormPristine.type = '[Forms] Set Form Pristine';
|
|
45
|
-
class UpdateFormErrors {
|
|
46
|
-
constructor(payload) {
|
|
47
|
-
this.payload = payload;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
UpdateFormErrors.type = '[Forms] Update Form Errors';
|
|
51
|
-
class SetFormDisabled {
|
|
52
|
-
constructor(payload) {
|
|
53
|
-
this.payload = payload;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
SetFormDisabled.type = '[Forms] Set Form Disabled';
|
|
57
|
-
class SetFormEnabled {
|
|
58
|
-
constructor(payload) {
|
|
59
|
-
this.payload = payload;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
SetFormEnabled.type = '[Forms] Set Form Enabled';
|
|
63
|
-
class ResetForm {
|
|
64
|
-
constructor(payload) {
|
|
65
|
-
this.payload = payload;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
ResetForm.type = '[Forms] Reset Form';
|
|
69
|
-
|
|
70
|
-
class NgxsFormPlugin {
|
|
71
|
-
handle(state, event, next) {
|
|
72
|
-
const type = getActionTypeFromInstance(event);
|
|
73
|
-
let nextState = state;
|
|
74
|
-
if (type === UpdateFormValue.type || type === UpdateForm.type || type === ResetForm.type) {
|
|
75
|
-
const { value } = event.payload;
|
|
76
|
-
const payloadValue = Array.isArray(value)
|
|
77
|
-
? value.slice()
|
|
78
|
-
: isObjectLike(value)
|
|
79
|
-
? Object.assign({}, value) : value;
|
|
80
|
-
const path = this.joinPathWithPropertyPath(event);
|
|
81
|
-
nextState = setValue(nextState, path, payloadValue);
|
|
82
|
-
}
|
|
83
|
-
if (type === ResetForm.type) {
|
|
84
|
-
const model = getValue(nextState, `${event.payload.path}.model`);
|
|
85
|
-
nextState = setValue(nextState, `${event.payload.path}`, { model: model });
|
|
86
|
-
}
|
|
87
|
-
if (type === UpdateFormStatus.type || type === UpdateForm.type) {
|
|
88
|
-
nextState = setValue(nextState, `${event.payload.path}.status`, event.payload.status);
|
|
89
|
-
}
|
|
90
|
-
if (type === UpdateFormErrors.type || type === UpdateForm.type) {
|
|
91
|
-
nextState = setValue(nextState, `${event.payload.path}.errors`, Object.assign({}, event.payload.errors));
|
|
92
|
-
}
|
|
93
|
-
if (type === UpdateFormDirty.type || type === UpdateForm.type) {
|
|
94
|
-
nextState = setValue(nextState, `${event.payload.path}.dirty`, event.payload.dirty);
|
|
95
|
-
}
|
|
96
|
-
if (type === SetFormDirty.type) {
|
|
97
|
-
nextState = setValue(nextState, `${event.payload}.dirty`, true);
|
|
98
|
-
}
|
|
99
|
-
if (type === SetFormPristine.type) {
|
|
100
|
-
nextState = setValue(nextState, `${event.payload}.dirty`, false);
|
|
101
|
-
}
|
|
102
|
-
if (type === SetFormDisabled.type) {
|
|
103
|
-
nextState = setValue(nextState, `${event.payload}.disabled`, true);
|
|
104
|
-
}
|
|
105
|
-
if (type === SetFormEnabled.type) {
|
|
106
|
-
nextState = setValue(nextState, `${event.payload}.disabled`, false);
|
|
107
|
-
}
|
|
108
|
-
return next(nextState, event);
|
|
109
|
-
}
|
|
110
|
-
joinPathWithPropertyPath({ payload }) {
|
|
111
|
-
let path = `${payload.path}.model`;
|
|
112
|
-
if (payload.propertyPath) {
|
|
113
|
-
path += `.${payload.propertyPath}`;
|
|
114
|
-
}
|
|
115
|
-
return path;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/** @nocollapse */ NgxsFormPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormPlugin, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
119
|
-
/** @nocollapse */ NgxsFormPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormPlugin });
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormPlugin, decorators: [{
|
|
121
|
-
type: Injectable
|
|
122
|
-
}] });
|
|
123
|
-
function isObjectLike(target) {
|
|
124
|
-
return target !== null && typeof target === 'object';
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
class NgxsFormDirective {
|
|
128
|
-
constructor(_actions$, _store, _formGroupDirective, _cd) {
|
|
129
|
-
this._actions$ = _actions$;
|
|
130
|
-
this._store = _store;
|
|
131
|
-
this._formGroupDirective = _formGroupDirective;
|
|
132
|
-
this._cd = _cd;
|
|
133
|
-
this.path = null;
|
|
134
|
-
this._debounce = 100;
|
|
135
|
-
this._clearDestroy = false;
|
|
136
|
-
this._updating = false;
|
|
137
|
-
this._destroy$ = new ReplaySubject(1);
|
|
138
|
-
}
|
|
139
|
-
set debounce(debounce) {
|
|
140
|
-
this._debounce = Number(debounce);
|
|
141
|
-
}
|
|
142
|
-
get debounce() {
|
|
143
|
-
return this._debounce;
|
|
144
|
-
}
|
|
145
|
-
set clearDestroy(val) {
|
|
146
|
-
this._clearDestroy = val != null && `${val}` !== 'false';
|
|
147
|
-
}
|
|
148
|
-
get clearDestroy() {
|
|
149
|
-
return this._clearDestroy;
|
|
150
|
-
}
|
|
151
|
-
ngOnInit() {
|
|
152
|
-
this._actions$
|
|
153
|
-
.pipe(ofActionDispatched(ResetForm), filter((action) => action.payload.path === this.path), takeUntil(this._destroy$))
|
|
154
|
-
.subscribe(({ payload: { value } }) => {
|
|
155
|
-
this.form.reset(value);
|
|
156
|
-
this.updateFormStateWithRawValue(true);
|
|
157
|
-
this._cd.markForCheck();
|
|
158
|
-
});
|
|
159
|
-
this.getStateStream(`${this.path}.model`).subscribe(model => {
|
|
160
|
-
if (this._updating || !model) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
this.form.patchValue(model);
|
|
164
|
-
this._cd.markForCheck();
|
|
165
|
-
});
|
|
166
|
-
this.getStateStream(`${this.path}.dirty`).subscribe(dirty => {
|
|
167
|
-
if (this.form.dirty === dirty || typeof dirty !== 'boolean') {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
if (dirty) {
|
|
171
|
-
this.form.markAsDirty();
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
this.form.markAsPristine();
|
|
175
|
-
}
|
|
176
|
-
this._cd.markForCheck();
|
|
177
|
-
});
|
|
178
|
-
// On first state change, sync form model, status and dirty with state
|
|
179
|
-
this._store
|
|
180
|
-
.selectOnce(state => getValue(state, this.path))
|
|
181
|
-
.subscribe(() => {
|
|
182
|
-
this._store.dispatch([
|
|
183
|
-
new UpdateFormValue({
|
|
184
|
-
path: this.path,
|
|
185
|
-
value: this.form.getRawValue()
|
|
186
|
-
}),
|
|
187
|
-
new UpdateFormStatus({
|
|
188
|
-
path: this.path,
|
|
189
|
-
status: this.form.status
|
|
190
|
-
}),
|
|
191
|
-
new UpdateFormDirty({
|
|
192
|
-
path: this.path,
|
|
193
|
-
dirty: this.form.dirty
|
|
194
|
-
})
|
|
195
|
-
]);
|
|
196
|
-
});
|
|
197
|
-
this.getStateStream(`${this.path}.disabled`).subscribe(disabled => {
|
|
198
|
-
if (this.form.disabled === disabled || typeof disabled !== 'boolean') {
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
if (disabled) {
|
|
202
|
-
this.form.disable();
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
this.form.enable();
|
|
206
|
-
}
|
|
207
|
-
this._cd.markForCheck();
|
|
208
|
-
});
|
|
209
|
-
this._formGroupDirective
|
|
210
|
-
.valueChanges.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), this.debounceChange())
|
|
211
|
-
.subscribe(() => {
|
|
212
|
-
this.updateFormStateWithRawValue();
|
|
213
|
-
});
|
|
214
|
-
this._formGroupDirective
|
|
215
|
-
.statusChanges.pipe(distinctUntilChanged(), this.debounceChange())
|
|
216
|
-
.subscribe((status) => {
|
|
217
|
-
this._store.dispatch(new UpdateFormStatus({
|
|
218
|
-
status,
|
|
219
|
-
path: this.path
|
|
220
|
-
}));
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
updateFormStateWithRawValue(withFormStatus) {
|
|
224
|
-
if (this._updating)
|
|
225
|
-
return;
|
|
226
|
-
const value = this._formGroupDirective.control.getRawValue();
|
|
227
|
-
const actions = [
|
|
228
|
-
new UpdateFormValue({
|
|
229
|
-
path: this.path,
|
|
230
|
-
value
|
|
231
|
-
}),
|
|
232
|
-
new UpdateFormDirty({
|
|
233
|
-
path: this.path,
|
|
234
|
-
dirty: this._formGroupDirective.dirty
|
|
235
|
-
}),
|
|
236
|
-
new UpdateFormErrors({
|
|
237
|
-
path: this.path,
|
|
238
|
-
errors: this._formGroupDirective.errors
|
|
239
|
-
})
|
|
240
|
-
];
|
|
241
|
-
if (withFormStatus) {
|
|
242
|
-
actions.push(new UpdateFormStatus({
|
|
243
|
-
path: this.path,
|
|
244
|
-
status: this._formGroupDirective.status
|
|
245
|
-
}));
|
|
246
|
-
}
|
|
247
|
-
this._updating = true;
|
|
248
|
-
this._store.dispatch(actions).subscribe({
|
|
249
|
-
error: () => (this._updating = false),
|
|
250
|
-
complete: () => (this._updating = false)
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
ngOnDestroy() {
|
|
254
|
-
this._destroy$.next();
|
|
255
|
-
if (this.clearDestroy) {
|
|
256
|
-
this._store.dispatch(new UpdateForm({
|
|
257
|
-
path: this.path,
|
|
258
|
-
value: null,
|
|
259
|
-
dirty: null,
|
|
260
|
-
status: null,
|
|
261
|
-
errors: null
|
|
262
|
-
}));
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
debounceChange() {
|
|
266
|
-
const skipDebounceTime = this._formGroupDirective.control.updateOn !== 'change' || this._debounce < 0;
|
|
267
|
-
return skipDebounceTime
|
|
268
|
-
? (change) => change.pipe(takeUntil(this._destroy$))
|
|
269
|
-
: (change) => change.pipe(debounceTime(this._debounce), takeUntil(this._destroy$));
|
|
270
|
-
}
|
|
271
|
-
get form() {
|
|
272
|
-
return this._formGroupDirective.form;
|
|
273
|
-
}
|
|
274
|
-
getStateStream(path) {
|
|
275
|
-
return this._store.select(state => getValue(state, path)).pipe(takeUntil(this._destroy$));
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
/** @nocollapse */ NgxsFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormDirective, deps: [{ token: i1.Actions }, { token: i1.Store }, { token: i2.FormGroupDirective }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
279
|
-
/** @nocollapse */ NgxsFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.4", type: NgxsFormDirective, isStandalone: true, selector: "[ngxsForm]", inputs: { path: ["ngxsForm", "path"], debounce: ["ngxsFormDebounce", "debounce"], clearDestroy: ["ngxsFormClearOnDestroy", "clearDestroy"] }, ngImport: i0 });
|
|
280
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormDirective, decorators: [{
|
|
281
|
-
type: Directive,
|
|
282
|
-
args: [{ selector: '[ngxsForm]', standalone: true }]
|
|
283
|
-
}], ctorParameters: function () { return [{ type: i1.Actions }, { type: i1.Store }, { type: i2.FormGroupDirective }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { path: [{
|
|
284
|
-
type: Input,
|
|
285
|
-
args: ['ngxsForm']
|
|
286
|
-
}], debounce: [{
|
|
287
|
-
type: Input,
|
|
288
|
-
args: ['ngxsFormDebounce']
|
|
289
|
-
}], clearDestroy: [{
|
|
290
|
-
type: Input,
|
|
291
|
-
args: ['ngxsFormClearOnDestroy']
|
|
292
|
-
}] } });
|
|
293
|
-
|
|
294
|
-
class NgxsFormPluginModule {
|
|
295
|
-
static forRoot() {
|
|
296
|
-
return {
|
|
297
|
-
ngModule: NgxsFormPluginModule,
|
|
298
|
-
providers: [
|
|
299
|
-
{
|
|
300
|
-
provide: NGXS_PLUGINS,
|
|
301
|
-
useClass: NgxsFormPlugin,
|
|
302
|
-
multi: true
|
|
303
|
-
}
|
|
304
|
-
]
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
/** @nocollapse */ NgxsFormPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
309
|
-
/** @nocollapse */ NgxsFormPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormPluginModule, imports: [NgxsFormDirective], exports: [NgxsFormDirective] });
|
|
310
|
-
/** @nocollapse */ NgxsFormPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormPluginModule });
|
|
311
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: NgxsFormPluginModule, decorators: [{
|
|
312
|
-
type: NgModule,
|
|
313
|
-
args: [{
|
|
314
|
-
imports: [NgxsFormDirective],
|
|
315
|
-
exports: [NgxsFormDirective]
|
|
316
|
-
}]
|
|
317
|
-
}] });
|
|
318
|
-
function withNgxsFormPlugin() {
|
|
319
|
-
return makeEnvironmentProviders([withNgxsPlugin(NgxsFormPlugin)]);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* The public api for consumers of @ngxs/form-plugin
|
|
324
|
-
*/
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* Generated bundle index. Do not edit.
|
|
328
|
-
*/
|
|
329
|
-
|
|
330
|
-
export { NgxsFormDirective, NgxsFormPlugin, NgxsFormPluginModule, ResetForm, SetFormDirty, SetFormDisabled, SetFormEnabled, SetFormPristine, UpdateForm, UpdateFormDirty, UpdateFormErrors, UpdateFormStatus, UpdateFormValue, withNgxsFormPlugin };
|
|
331
|
-
//# sourceMappingURL=ngxs-form-plugin.mjs.map
|