@rolster/forms 2.0.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/helpers.js +20 -21
- package/dist/cjs/helpers.js.map +1 -1
- package/dist/cjs/index.js +76 -56
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/helpers.js +21 -21
- package/dist/es/helpers.js.map +1 -1
- package/dist/es/index.js +69 -54
- package/dist/es/index.js.map +1 -1
- package/dist/esm/arguments.d.ts +10 -10
- package/dist/esm/arguments.js +21 -12
- package/dist/esm/arguments.js.map +1 -1
- package/dist/esm/form-array/form-array-control.d.ts +10 -4
- package/dist/esm/form-array/form-array-control.js +6 -3
- package/dist/esm/form-array/form-array-control.js.map +1 -1
- package/dist/esm/form-array/form-array-group.d.ts +6 -4
- package/dist/esm/form-array/form-array-group.js +6 -3
- package/dist/esm/form-array/form-array-group.js.map +1 -1
- package/dist/esm/form-array/form-array.d.ts +7 -5
- package/dist/esm/form-array/form-array.js +6 -6
- package/dist/esm/form-array/form-array.js.map +1 -1
- package/dist/esm/form-array/index.d.ts +3 -3
- package/dist/esm/form-array/index.js +3 -3
- package/dist/esm/form-array/index.js.map +1 -1
- package/dist/esm/form-control.d.ts +10 -7
- package/dist/esm/form-control.js +5 -5
- package/dist/esm/form-control.js.map +1 -1
- package/dist/esm/form-group.d.ts +4 -3
- package/dist/esm/form-group.js +7 -7
- package/dist/esm/form-group.js.map +1 -1
- package/dist/esm/helpers.d.ts +13 -14
- package/dist/esm/helpers.js +11 -23
- package/dist/esm/helpers.js.map +1 -1
- package/dist/esm/index.d.ts +4 -4
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +23 -36
- package/package.json +1 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
|
2
|
-
import {
|
|
2
|
+
import { createFormGroupOptions } from '../arguments';
|
|
3
3
|
import { FormGroup } from '../form-group';
|
|
4
4
|
export class FormArrayGroup extends FormGroup {
|
|
5
|
-
constructor(
|
|
6
|
-
const { controls, resource, validators } =
|
|
5
|
+
constructor(groupOptions, groupValidators) {
|
|
6
|
+
const { controls, resource, validators } = createFormGroupOptions(groupOptions, groupValidators);
|
|
7
7
|
super(controls, validators);
|
|
8
8
|
this.uuid = uuid();
|
|
9
9
|
this.resource = resource;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
export function formArrayGroup(options, validators) {
|
|
13
|
+
return new FormArrayGroup(createFormGroupOptions(options, validators));
|
|
14
|
+
}
|
|
12
15
|
//# sourceMappingURL=form-array-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-array-group.js","sourceRoot":"","sources":["../../../src/form-array/form-array-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"form-array-group.js","sourceRoot":"","sources":["../../../src/form-array/form-array-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAkB1C,MAAM,OAAO,cAIX,SAAQ,SAAY;IASpB,YACE,YAAsC,EACtC,eAAuC;QAEvC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,sBAAsB,CAG/D,YAAY,EAAE,eAAe,CAAC,CAAC;QAEjC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AASD,MAAM,UAAU,cAAc,CAC5B,OAAiC,EACjC,UAAkC;IAElC,OAAO,IAAI,cAAc,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ValidatorError } from '@rolster/validators';
|
|
2
|
-
import { AbstractArray, AbstractArrayControl, AbstractArrayGroup,
|
|
3
|
-
type FormControls<T extends AbstractArrayControl = AbstractArrayControl> =
|
|
4
|
-
type
|
|
2
|
+
import { AbstractArray, AbstractArrayControl, AbstractArrayGroup, AbstractArrayControls, ArrayStateGroup, FormArrayOptions, SubscriberControl, ValidatorArrayFn } from '../types';
|
|
3
|
+
type FormControls<T extends AbstractArrayControl = AbstractArrayControl> = AbstractArrayControls<T>;
|
|
4
|
+
type ArrayOptions<G extends FormControls, R> = FormArrayOptions<G, R, AbstractArrayGroup<G, R>>;
|
|
5
5
|
type SubscriberArray<G extends FormControls> = SubscriberControl<ArrayStateGroup<G>[]>;
|
|
6
6
|
export declare class FormArray<G extends FormControls = FormControls, R = any> implements AbstractArray<G, R> {
|
|
7
7
|
private currentGroups;
|
|
@@ -13,7 +13,7 @@ export declare class FormArray<G extends FormControls = FormControls, R = any> i
|
|
|
13
13
|
private observable;
|
|
14
14
|
private unsusbcriptions;
|
|
15
15
|
constructor();
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(options: ArrayOptions<G, R>);
|
|
17
17
|
constructor(groups: AbstractArrayGroup<G, R>[], validators?: ValidatorArrayFn<G, R>[]);
|
|
18
18
|
get groups(): AbstractArrayGroup<G, R>[];
|
|
19
19
|
get controls(): G[];
|
|
@@ -28,7 +28,6 @@ export declare class FormArray<G extends FormControls = FormControls, R = any> i
|
|
|
28
28
|
get valid(): boolean;
|
|
29
29
|
get invalid(): boolean;
|
|
30
30
|
get state(): ArrayStateGroup<G>[];
|
|
31
|
-
get value(): ArrayValueGroup<G>[];
|
|
32
31
|
get error(): ValidatorError | undefined;
|
|
33
32
|
get errors(): ValidatorError[];
|
|
34
33
|
get wrong(): boolean;
|
|
@@ -43,4 +42,7 @@ export declare class FormArray<G extends FormControls = FormControls, R = any> i
|
|
|
43
42
|
private updateValidityStatus;
|
|
44
43
|
private refresh;
|
|
45
44
|
}
|
|
45
|
+
export declare function formArray<G extends FormControls = FormControls, R = any>(): FormArray<G, R>;
|
|
46
|
+
export declare function formArray<G extends FormControls = FormControls, R = any>(options: ArrayOptions<G, R>): FormArray<G, R>;
|
|
47
|
+
export declare function formArray<G extends FormControls = FormControls, R = any>(groups: AbstractArrayGroup<G, R>[], validators?: ValidatorArrayFn<G, R>[]): FormArray<G, R>;
|
|
46
48
|
export {};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { observable } from '@rolster/commons';
|
|
2
|
-
import {
|
|
2
|
+
import { createFormArrayOptions } from '../arguments';
|
|
3
3
|
import { arrayIsValid, groupAllChecked, groupPartialChecked } from '../helpers';
|
|
4
4
|
export class FormArray {
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(arrayOptions, arrayValidators) {
|
|
6
6
|
this.currentGroups = [];
|
|
7
7
|
this.currentValid = true;
|
|
8
8
|
this.currentErrors = [];
|
|
9
|
-
const { groups, validators } =
|
|
9
|
+
const { groups, validators } = createFormArrayOptions(arrayOptions, arrayValidators);
|
|
10
10
|
this.unsusbcriptions = new Map();
|
|
11
11
|
this.initialState = groups;
|
|
12
12
|
this.validators = validators;
|
|
@@ -55,9 +55,6 @@ export class FormArray {
|
|
|
55
55
|
get state() {
|
|
56
56
|
return this.groups.map(({ state }) => state);
|
|
57
57
|
}
|
|
58
|
-
get value() {
|
|
59
|
-
return this.groups.map(({ value }) => value);
|
|
60
|
-
}
|
|
61
58
|
get error() {
|
|
62
59
|
return this.currentError;
|
|
63
60
|
}
|
|
@@ -124,4 +121,7 @@ export class FormArray {
|
|
|
124
121
|
this.updateValidityStatus(groups, this.validators);
|
|
125
122
|
}
|
|
126
123
|
}
|
|
124
|
+
export function formArray(options, validators) {
|
|
125
|
+
return new FormArray(createFormArrayOptions(options, validators));
|
|
126
|
+
}
|
|
127
127
|
//# sourceMappingURL=form-array.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-array.js","sourceRoot":"","sources":["../../../src/form-array/form-array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"form-array.js","sourceRoot":"","sources":["../../../src/form-array/form-array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { FormArray } from './form-array';
|
|
2
|
-
export { FormArrayControl } from './form-array-control';
|
|
3
|
-
export { FormArrayControls, FormArrayGroup } from './form-array-group';
|
|
1
|
+
export { FormArray, formArray } from './form-array';
|
|
2
|
+
export { FormArrayControl, formArrayControl } from './form-array-control';
|
|
3
|
+
export { FormArrayControls, FormArrayGroup, formArrayGroup } from './form-array-group';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { FormArray } from './form-array';
|
|
2
|
-
export { FormArrayControl } from './form-array-control';
|
|
3
|
-
export { FormArrayGroup } from './form-array-group';
|
|
1
|
+
export { FormArray, formArray } from './form-array';
|
|
2
|
+
export { FormArrayControl, formArrayControl } from './form-array-control';
|
|
3
|
+
export { FormArrayGroup, formArrayGroup } from './form-array-group';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/form-array/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/form-array/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAEL,cAAc,EACd,cAAc,EACf,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ValidatorError, ValidatorFn } from '@rolster/validators';
|
|
2
|
-
import { AbstractControl,
|
|
2
|
+
import { AbstractControl, FormControlOptions, FormStateOptions, FormValidatorsOptions, SubscriberControl } from './types';
|
|
3
3
|
export declare class FormControl<T = any> implements AbstractControl<T> {
|
|
4
4
|
private currentFocused;
|
|
5
5
|
private currentTouched;
|
|
@@ -7,14 +7,14 @@ export declare class FormControl<T = any> implements AbstractControl<T> {
|
|
|
7
7
|
private currentDisabled;
|
|
8
8
|
private currentValid;
|
|
9
9
|
private initialState;
|
|
10
|
-
private currentState
|
|
10
|
+
private currentState;
|
|
11
11
|
private currentError?;
|
|
12
12
|
private currentErrors;
|
|
13
13
|
private validators?;
|
|
14
14
|
private observable;
|
|
15
15
|
constructor();
|
|
16
|
-
constructor(props:
|
|
17
|
-
constructor(state:
|
|
16
|
+
constructor(props: FormControlOptions<T>);
|
|
17
|
+
constructor(state: T, validators?: ValidatorFn<T>[]);
|
|
18
18
|
get focused(): boolean;
|
|
19
19
|
get unfocused(): boolean;
|
|
20
20
|
get touched(): boolean;
|
|
@@ -25,8 +25,7 @@ export declare class FormControl<T = any> implements AbstractControl<T> {
|
|
|
25
25
|
get enabled(): boolean;
|
|
26
26
|
get valid(): boolean;
|
|
27
27
|
get invalid(): boolean;
|
|
28
|
-
get state():
|
|
29
|
-
get value(): T;
|
|
28
|
+
get state(): T;
|
|
30
29
|
get errors(): ValidatorError[];
|
|
31
30
|
get error(): ValidatorError | undefined;
|
|
32
31
|
get wrong(): boolean;
|
|
@@ -37,8 +36,12 @@ export declare class FormControl<T = any> implements AbstractControl<T> {
|
|
|
37
36
|
untouch(): void;
|
|
38
37
|
disable(): void;
|
|
39
38
|
enable(): void;
|
|
40
|
-
setState(state
|
|
39
|
+
setState(state: T): void;
|
|
41
40
|
setValidators(validators?: ValidatorFn<T>[]): void;
|
|
42
41
|
subscribe(subscriber: SubscriberControl<T>): Unsubscription;
|
|
43
42
|
private updateValueAndValidity;
|
|
44
43
|
}
|
|
44
|
+
export declare function formControl<T>(): FormControl<T | undefined>;
|
|
45
|
+
export declare function formControl<T>(options: FormStateOptions<T>): FormControl<T>;
|
|
46
|
+
export declare function formControl<T>(options: FormValidatorsOptions<T>): FormControl<T | undefined>;
|
|
47
|
+
export declare function formControl<T>(state: T, validators?: ValidatorFn<T>[]): FormControl<T>;
|
package/dist/esm/form-control.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { observable } from '@rolster/commons';
|
|
2
|
-
import {
|
|
2
|
+
import { createFormControlOptions } from './arguments';
|
|
3
3
|
import { controlIsValid } from './helpers';
|
|
4
4
|
export class FormControl {
|
|
5
5
|
constructor(controlProps, controlValidators) {
|
|
@@ -9,7 +9,7 @@ export class FormControl {
|
|
|
9
9
|
this.currentDisabled = false;
|
|
10
10
|
this.currentValid = true;
|
|
11
11
|
this.currentErrors = [];
|
|
12
|
-
const { state, validators } =
|
|
12
|
+
const { state, validators } = createFormControlOptions(controlProps, controlValidators);
|
|
13
13
|
this.observable = observable(state);
|
|
14
14
|
this.initialState = state;
|
|
15
15
|
this.validators = validators;
|
|
@@ -49,9 +49,6 @@ export class FormControl {
|
|
|
49
49
|
get state() {
|
|
50
50
|
return this.currentState;
|
|
51
51
|
}
|
|
52
|
-
get value() {
|
|
53
|
-
return this.currentState;
|
|
54
|
-
}
|
|
55
52
|
get errors() {
|
|
56
53
|
return this.currentErrors;
|
|
57
54
|
}
|
|
@@ -111,4 +108,7 @@ export class FormControl {
|
|
|
111
108
|
}
|
|
112
109
|
}
|
|
113
110
|
}
|
|
111
|
+
export function formControl(options, validators) {
|
|
112
|
+
return new FormControl(createFormControlOptions(options, validators));
|
|
113
|
+
}
|
|
114
114
|
//# sourceMappingURL=form-control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../src/form-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../src/form-control.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/form-group.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ValidatorError } from '@rolster/validators';
|
|
2
|
-
import { AbstractControl,
|
|
2
|
+
import { AbstractControl, AbstractFormGroup, AbstractControls, FormGroupOptions, StateGroup, SubscriberGroup, ValidatorGroupFn } from './types';
|
|
3
3
|
export type FormControls<T extends AbstractControl = AbstractControl> = AbstractControls<T>;
|
|
4
4
|
export declare class FormGroup<C extends FormControls = FormControls> implements AbstractFormGroup<C> {
|
|
5
5
|
protected currentControls: C;
|
|
@@ -8,7 +8,7 @@ export declare class FormGroup<C extends FormControls = FormControls> implements
|
|
|
8
8
|
private currentValid;
|
|
9
9
|
private validators?;
|
|
10
10
|
private observable;
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(options: FormGroupOptions<C>);
|
|
12
12
|
constructor(controls: C, validators?: ValidatorGroupFn<C>[]);
|
|
13
13
|
get controls(): C;
|
|
14
14
|
get touched(): boolean;
|
|
@@ -22,7 +22,6 @@ export declare class FormGroup<C extends FormControls = FormControls> implements
|
|
|
22
22
|
get valid(): boolean;
|
|
23
23
|
get invalid(): boolean;
|
|
24
24
|
get state(): StateGroup<C>;
|
|
25
|
-
get value(): ValueGroup<C>;
|
|
26
25
|
get errors(): ValidatorError[];
|
|
27
26
|
get error(): ValidatorError | undefined;
|
|
28
27
|
get wrong(): boolean;
|
|
@@ -31,3 +30,5 @@ export declare class FormGroup<C extends FormControls = FormControls> implements
|
|
|
31
30
|
subscribe(subscriber: SubscriberGroup<C>): Unsubscription;
|
|
32
31
|
private updateValueAndValidity;
|
|
33
32
|
}
|
|
33
|
+
export declare function formGroup<C extends FormControls = FormControls>(options: FormGroupOptions<C>): FormGroup<C>;
|
|
34
|
+
export declare function formGroup<C extends FormControls = FormControls>(controls: C, validators?: ValidatorGroupFn<C>[]): FormGroup<C>;
|
package/dist/esm/form-group.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { observable } from '@rolster/commons';
|
|
2
|
-
import {
|
|
3
|
-
import { controlsAllChecked, controlsPartialChecked, controlsToState,
|
|
2
|
+
import { createFormGroupOptions } from './arguments';
|
|
3
|
+
import { controlsAllChecked, controlsPartialChecked, controlsToState, groupIsValid } from './helpers';
|
|
4
4
|
export class FormGroup {
|
|
5
|
-
constructor(
|
|
5
|
+
constructor(groupOptions, groupValidators) {
|
|
6
6
|
this.currentErrors = [];
|
|
7
7
|
this.currentValid = true;
|
|
8
|
-
const { controls, validators } =
|
|
8
|
+
const { controls, validators } = createFormGroupOptions(groupOptions, groupValidators);
|
|
9
9
|
this.currentControls = controls;
|
|
10
10
|
this.validators = validators;
|
|
11
11
|
this.updateValueAndValidity(controls, validators);
|
|
@@ -53,9 +53,6 @@ export class FormGroup {
|
|
|
53
53
|
get state() {
|
|
54
54
|
return controlsToState(this.controls);
|
|
55
55
|
}
|
|
56
|
-
get value() {
|
|
57
|
-
return controlsToValue(this.controls);
|
|
58
|
-
}
|
|
59
56
|
get errors() {
|
|
60
57
|
return this.currentErrors;
|
|
61
58
|
}
|
|
@@ -91,4 +88,7 @@ export class FormGroup {
|
|
|
91
88
|
}
|
|
92
89
|
}
|
|
93
90
|
}
|
|
91
|
+
export function formGroup(options, validators) {
|
|
92
|
+
return new FormGroup(createFormGroupOptions(options, validators));
|
|
93
|
+
}
|
|
94
94
|
//# sourceMappingURL=form-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../src/form-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../src/form-group.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/helpers.d.ts
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import { ValidatorError, ValidatorFn } from '@rolster/validators';
|
|
2
|
-
import {
|
|
3
|
-
interface
|
|
4
|
-
state:
|
|
2
|
+
import { AbstractControl, AbstractArrayGroup, AbstractArrayControls, AbstractGroup, AbstractControls, StateGroup, ValidatorArrayFn, ValidatorGroupFn } from './types';
|
|
3
|
+
interface ControlValidOptions<T> {
|
|
4
|
+
state: T;
|
|
5
5
|
validators: ValidatorFn<T>[];
|
|
6
6
|
}
|
|
7
|
-
interface
|
|
7
|
+
interface GroupValidOptions<T extends AbstractControls> {
|
|
8
8
|
controls: T;
|
|
9
9
|
validators: ValidatorGroupFn<T>[];
|
|
10
10
|
}
|
|
11
|
-
interface
|
|
11
|
+
interface ArrayValidOptions<T extends AbstractArrayControls = AbstractArrayControls, R = any, G extends AbstractArrayGroup<T, R> = AbstractArrayGroup<T, R>> {
|
|
12
12
|
groups: G[];
|
|
13
13
|
validators: ValidatorArrayFn<T, R>[];
|
|
14
14
|
}
|
|
15
|
-
export declare const controlIsValid: <T>(
|
|
16
|
-
export declare const controlsAllChecked: <T extends
|
|
17
|
-
export declare const controlsPartialChecked: <T extends
|
|
18
|
-
export declare const controlsToState: <C extends
|
|
19
|
-
export declare const
|
|
20
|
-
export declare
|
|
21
|
-
export declare function
|
|
22
|
-
export declare
|
|
23
|
-
export declare const arrayIsValid: <C extends AbstractArrayGroupControls<import("./types").AbstractArrayControl<any>> = AbstractArrayGroupControls<import("./types").AbstractArrayControl<any>>, R = any>({ groups, validators }: ArrayValidProps<C, R, AbstractArrayGroup<C, R>>) => ValidatorError[];
|
|
15
|
+
export declare const controlIsValid: <T>({ state, validators }: ControlValidOptions<T>) => ValidatorError[];
|
|
16
|
+
export declare const controlsAllChecked: <T extends AbstractControl<any>>(controls: AbstractControls<T>, key: keyof T) => boolean;
|
|
17
|
+
export declare const controlsPartialChecked: <T extends AbstractControl<any>>(controls: AbstractControls<T>, key: keyof T) => boolean;
|
|
18
|
+
export declare const controlsToState: <C extends AbstractControls<AbstractControl<any>>>(controls: C) => StateGroup<C>;
|
|
19
|
+
export declare const groupIsValid: <C extends AbstractControls<AbstractControl<any>>>({ controls, validators }: GroupValidOptions<C>) => ValidatorError[];
|
|
20
|
+
export declare function groupAllChecked<C extends AbstractControls>(groups: AbstractGroup<C>[], key: keyof AbstractGroup<C>): boolean;
|
|
21
|
+
export declare function groupPartialChecked<C extends AbstractControls>(groups: AbstractGroup<C>[], key: keyof AbstractGroup<C>): boolean;
|
|
22
|
+
export declare const arrayIsValid: <C extends AbstractArrayControls<import("./types").AbstractArrayControl<any>> = AbstractArrayControls<import("./types").AbstractArrayControl<any>>, R = any>({ groups, validators }: ArrayValidOptions<C, R, AbstractArrayGroup<C, R>>) => ValidatorError[];
|
|
24
23
|
export {};
|
package/dist/esm/helpers.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return !(!(typeof value !== 'undefined' && value !== null) ||
|
|
4
|
-
value === false ||
|
|
5
|
-
FALSY_VALUE.includes(value));
|
|
6
|
-
}
|
|
7
|
-
export const controlIsValid = (props) => {
|
|
8
|
-
const { state, validators } = props;
|
|
1
|
+
import { parseBoolean } from '@rolster/commons';
|
|
2
|
+
export const controlIsValid = ({ state, validators }) => {
|
|
9
3
|
return validators.reduce((errors, validator) => {
|
|
10
4
|
const error = validator(state);
|
|
11
5
|
if (error) {
|
|
@@ -14,22 +8,16 @@ export const controlIsValid = (props) => {
|
|
|
14
8
|
return errors;
|
|
15
9
|
}, []);
|
|
16
10
|
};
|
|
17
|
-
export const controlsAllChecked = (controls,
|
|
18
|
-
return Object.values(controls).reduce((value, control) => value &&
|
|
11
|
+
export const controlsAllChecked = (controls, key) => {
|
|
12
|
+
return Object.values(controls).reduce((value, control) => value && parseBoolean(control[key]), true);
|
|
19
13
|
};
|
|
20
|
-
export const controlsPartialChecked = (controls,
|
|
21
|
-
return Object.values(controls).reduce((value, control) => value ||
|
|
14
|
+
export const controlsPartialChecked = (controls, key) => {
|
|
15
|
+
return Object.values(controls).reduce((value, control) => value || parseBoolean(control[key]), false);
|
|
22
16
|
};
|
|
23
17
|
export const controlsToState = (controls) => {
|
|
24
|
-
return Object.entries(controls).reduce((
|
|
25
|
-
|
|
26
|
-
return
|
|
27
|
-
}, {});
|
|
28
|
-
};
|
|
29
|
-
export const controlsToValue = (controls) => {
|
|
30
|
-
return Object.entries(controls).reduce((json, [key, { value }]) => {
|
|
31
|
-
json[key] = value;
|
|
32
|
-
return json;
|
|
18
|
+
return Object.entries(controls).reduce((result, [key, { state }]) => {
|
|
19
|
+
result[key] = state;
|
|
20
|
+
return result;
|
|
33
21
|
}, {});
|
|
34
22
|
};
|
|
35
23
|
export const groupIsValid = ({ controls, validators }) => {
|
|
@@ -42,10 +30,10 @@ export const groupIsValid = ({ controls, validators }) => {
|
|
|
42
30
|
}, []);
|
|
43
31
|
};
|
|
44
32
|
export function groupAllChecked(groups, key) {
|
|
45
|
-
return groups.reduce((value, group) => value &&
|
|
33
|
+
return groups.reduce((value, group) => value && parseBoolean(group[key]), true);
|
|
46
34
|
}
|
|
47
35
|
export function groupPartialChecked(groups, key) {
|
|
48
|
-
return groups.reduce((value, group) => value ||
|
|
36
|
+
return groups.reduce((value, group) => value || parseBoolean(group[key]), false);
|
|
49
37
|
}
|
|
50
38
|
export const arrayIsValid = ({ groups, validators }) => {
|
|
51
39
|
return validators.reduce((errors, validator) => {
|
package/dist/esm/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { FormArray, FormArrayControl, FormArrayControls, FormArrayGroup } from './form-array';
|
|
3
|
-
export { FormControl } from './form-control';
|
|
4
|
-
export { FormControls, FormGroup } from './form-group';
|
|
1
|
+
export { createFormArrayOptions, createFormControlOptions, createFormGroupOptions } from './arguments';
|
|
2
|
+
export { FormArray, FormArrayControl, FormArrayControls, FormArrayGroup, formArray, formArrayControl, formArrayGroup } from './form-array';
|
|
3
|
+
export { FormControl, formControl } from './form-control';
|
|
4
|
+
export { FormControls, FormGroup, formGroup } from './form-group';
|
|
5
5
|
export * from './types';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { FormArray, FormArrayControl, FormArrayGroup } from './form-array';
|
|
3
|
-
export { FormControl } from './form-control';
|
|
4
|
-
export { FormGroup } from './form-group';
|
|
1
|
+
export { createFormArrayOptions, createFormControlOptions, createFormGroupOptions } from './arguments';
|
|
2
|
+
export { FormArray, FormArrayControl, FormArrayGroup, formArray, formArrayControl, formArrayGroup } from './form-array';
|
|
3
|
+
export { FormControl, formControl } from './form-control';
|
|
4
|
+
export { FormGroup, formGroup } from './form-group';
|
|
5
5
|
export * from './types';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,SAAS,EACT,gBAAgB,EAEhB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAgB,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAClE,cAAc,SAAS,CAAC"}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ValidatorError, ValidatorFn, ValidatorResult } from '@rolster/validators';
|
|
2
|
-
export type FormState<T = any> = T | undefined | null;
|
|
3
2
|
export type ValidationFormType = 'control' | 'group' | 'array';
|
|
4
3
|
export interface ValidationFormError<T = any> extends ValidatorError<T> {
|
|
5
4
|
type: ValidationFormType;
|
|
6
5
|
}
|
|
7
|
-
export type SubscriberControl<T> = (state
|
|
6
|
+
export type SubscriberControl<T> = (state: T) => void;
|
|
8
7
|
export interface AbstractBaseControl<T = any> {
|
|
9
8
|
dirty: boolean;
|
|
10
9
|
errors: ValidatorError[];
|
|
@@ -13,17 +12,15 @@ export interface AbstractBaseControl<T = any> {
|
|
|
13
12
|
touched: boolean;
|
|
14
13
|
untouched: boolean;
|
|
15
14
|
valid: boolean;
|
|
16
|
-
value: T;
|
|
17
15
|
wrong: boolean;
|
|
18
16
|
error?: ValidatorError;
|
|
19
|
-
state?:
|
|
17
|
+
state?: T;
|
|
20
18
|
}
|
|
21
|
-
export type AbstractControls<T extends AbstractBaseControl = AbstractBaseControl> = Record<string, T>;
|
|
22
19
|
export interface AbstractControl<T = any> extends AbstractBaseControl<T> {
|
|
23
20
|
reset: () => void;
|
|
24
21
|
subscribe: (subscriber: SubscriberControl<T>) => Unsubscription;
|
|
25
22
|
}
|
|
26
|
-
export interface
|
|
23
|
+
export interface AbstractFormControl<T = any> extends AbstractControl<T> {
|
|
27
24
|
blur: () => void;
|
|
28
25
|
disable: () => void;
|
|
29
26
|
disabled: boolean;
|
|
@@ -31,16 +28,14 @@ export interface AbstractFunctionalControl<T = any> extends AbstractControl<T> {
|
|
|
31
28
|
enabled: boolean;
|
|
32
29
|
focus: () => void;
|
|
33
30
|
focused: boolean;
|
|
34
|
-
setState: (state
|
|
31
|
+
setState: (state: T) => void;
|
|
35
32
|
touch: () => void;
|
|
36
33
|
unfocused: boolean;
|
|
37
34
|
untouch: () => void;
|
|
38
|
-
}
|
|
39
|
-
export interface AbstractFormControl<T = any> extends AbstractFunctionalControl<T> {
|
|
40
35
|
setValidators: (validators?: ValidatorFn<T>[]) => void;
|
|
41
36
|
}
|
|
42
|
-
export type
|
|
43
|
-
export interface AbstractGroup<T extends
|
|
37
|
+
export type AbstractControls<T extends AbstractControl = AbstractControl> = Record<string, T>;
|
|
38
|
+
export interface AbstractGroup<T extends AbstractControls = AbstractControls> {
|
|
44
39
|
controls: T;
|
|
45
40
|
dirty: boolean;
|
|
46
41
|
dirties: boolean;
|
|
@@ -56,41 +51,33 @@ export interface AbstractGroup<T extends AbstractGroupControls = AbstractGroupCo
|
|
|
56
51
|
wrong: boolean;
|
|
57
52
|
error?: ValidatorError;
|
|
58
53
|
}
|
|
59
|
-
export type StateGroup<C extends
|
|
54
|
+
export type StateGroup<C extends AbstractControls = AbstractControls> = {
|
|
60
55
|
[K in keyof C]: C[K]['state'];
|
|
61
56
|
};
|
|
62
|
-
export type
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
export type ValidatorGroupFn<C extends AbstractGroupControls = AbstractGroupControls, V = any> = (controls: C) => ValidatorResult<V>;
|
|
66
|
-
export type SubscriberGroup<C extends AbstractGroupControls = AbstractGroupControls> = (state: StateGroup<C>) => void;
|
|
67
|
-
export interface AbstractFormGroup<C extends AbstractGroupControls = AbstractGroupControls> extends AbstractGroup<C> {
|
|
57
|
+
export type ValidatorGroupFn<C extends AbstractControls = AbstractControls, V = any> = (controls: C) => ValidatorResult<V>;
|
|
58
|
+
export type SubscriberGroup<C extends AbstractControls = AbstractControls> = (state: StateGroup<C>) => void;
|
|
59
|
+
export interface AbstractFormGroup<C extends AbstractControls = AbstractControls> extends AbstractGroup<C> {
|
|
68
60
|
reset: () => void;
|
|
69
61
|
setValidators: (validators: ValidatorGroupFn<C>[]) => void;
|
|
70
62
|
state: StateGroup<C>;
|
|
71
63
|
subscribe: (subscriber: SubscriberGroup<C>) => Unsubscription;
|
|
72
|
-
value: ValueGroup<C>;
|
|
73
64
|
}
|
|
74
65
|
export interface AbstractArrayControl<T = any> extends AbstractFormControl<T> {
|
|
75
66
|
uuid: string;
|
|
76
67
|
}
|
|
77
|
-
export type
|
|
78
|
-
export interface AbstractArrayGroup<C extends
|
|
68
|
+
export type AbstractArrayControls<T extends AbstractArrayControl = AbstractArrayControl> = AbstractControls<T>;
|
|
69
|
+
export interface AbstractArrayGroup<C extends AbstractArrayControls, R = any> extends AbstractGroup<C> {
|
|
79
70
|
setValidators: (validators: ValidatorGroupFn<C>[]) => void;
|
|
80
71
|
state: ArrayStateGroup<C>;
|
|
81
72
|
subscribe: (subscriber: SubscriberGroup<C>) => Unsubscription;
|
|
82
73
|
uuid: string;
|
|
83
|
-
value: ArrayValueGroup<C>;
|
|
84
74
|
resource?: R;
|
|
85
75
|
}
|
|
86
|
-
export type ArrayStateGroup<C extends
|
|
76
|
+
export type ArrayStateGroup<C extends AbstractArrayControls> = {
|
|
87
77
|
[K in keyof C]: C[K]['state'];
|
|
88
78
|
};
|
|
89
|
-
export type
|
|
90
|
-
|
|
91
|
-
};
|
|
92
|
-
export type ValidatorArrayFn<T extends AbstractArrayGroupControls = AbstractArrayGroupControls, R = any, G extends AbstractArrayGroup<T, R> = AbstractArrayGroup<T, R>, V = any> = (groups: G[]) => ValidatorResult<V>;
|
|
93
|
-
export interface AbstractArray<T extends AbstractArrayGroupControls = AbstractArrayGroupControls, R = any, G extends AbstractArrayGroup<T, R> = AbstractArrayGroup<T, R>> extends AbstractControl<ArrayStateGroup<T>[]> {
|
|
79
|
+
export type ValidatorArrayFn<T extends AbstractArrayControls = AbstractArrayControls, R = any, G extends AbstractArrayGroup<T, R> = AbstractArrayGroup<T, R>, V = any> = (groups: G[]) => ValidatorResult<V>;
|
|
80
|
+
export interface AbstractArray<T extends AbstractArrayControls = AbstractArrayControls, R = any, G extends AbstractArrayGroup<T, R> = AbstractArrayGroup<T, R>> extends AbstractControl<ArrayStateGroup<T>[]> {
|
|
94
81
|
controls: T[];
|
|
95
82
|
dirties: boolean;
|
|
96
83
|
groups: G[];
|
|
@@ -100,28 +87,28 @@ export interface AbstractArray<T extends AbstractArrayGroupControls = AbstractAr
|
|
|
100
87
|
remove: (group: G) => void;
|
|
101
88
|
set: (groups: G[]) => void;
|
|
102
89
|
setValidators: (validators: ValidatorArrayFn<T, R>[]) => void;
|
|
103
|
-
state: ArrayStateGroup<T>[];
|
|
104
90
|
toucheds: boolean;
|
|
105
91
|
untoucheds: boolean;
|
|
106
|
-
value: ArrayValueGroup<T>[];
|
|
107
92
|
wrong: boolean;
|
|
108
93
|
}
|
|
109
|
-
export interface
|
|
110
|
-
state
|
|
94
|
+
export interface FormControlOptions<T = any> {
|
|
95
|
+
state: T;
|
|
111
96
|
validators?: ValidatorFn<T>[];
|
|
112
97
|
}
|
|
113
|
-
export
|
|
98
|
+
export type FormStateOptions<T> = Omit<FormControlOptions<T>, 'validators'>;
|
|
99
|
+
export type FormValidatorsOptions<T> = Omit<FormControlOptions<T>, 'state'>;
|
|
100
|
+
export interface FormGroupOptions<C extends AbstractControls = AbstractControls> {
|
|
114
101
|
controls: C;
|
|
115
102
|
validators?: ValidatorGroupFn<C>[];
|
|
116
103
|
}
|
|
117
|
-
export interface
|
|
104
|
+
export interface FormArrayControlOptions<T = any> extends FormControlOptions<T> {
|
|
118
105
|
uuid: string;
|
|
119
106
|
}
|
|
120
|
-
export interface
|
|
107
|
+
export interface FormArrayGroupOptions<C extends AbstractArrayControls = AbstractArrayControls, R = any> extends FormGroupOptions<C> {
|
|
121
108
|
uuid: string;
|
|
122
109
|
resource?: R;
|
|
123
110
|
}
|
|
124
|
-
export interface
|
|
111
|
+
export interface FormArrayOptions<C extends AbstractArrayControls = AbstractArrayControls, R = any, G extends AbstractArrayGroup<C, R> = AbstractArrayGroup<C, R>> {
|
|
125
112
|
groups?: G[];
|
|
126
113
|
validators?: ValidatorArrayFn<C, R>[];
|
|
127
114
|
}
|
package/package.json
CHANGED