@rolster/forms 2.1.0 → 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 +17 -11
- package/dist/cjs/helpers.js.map +1 -1
- package/dist/cjs/index.js +63 -48
- package/dist/cjs/index.js.map +1 -1
- package/dist/es/helpers.js +17 -11
- package/dist/es/helpers.js.map +1 -1
- package/dist/es/index.js +61 -46
- 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 +7 -7
- package/dist/esm/form-array/form-array-control.js +5 -5
- package/dist/esm/form-array/form-array-control.js.map +1 -1
- package/dist/esm/form-array/form-array-group.d.ts +5 -5
- package/dist/esm/form-array/form-array-group.js +5 -5
- package/dist/esm/form-array/form-array-group.js.map +1 -1
- package/dist/esm/form-array/form-array.d.ts +5 -5
- package/dist/esm/form-array/form-array.js +5 -5
- package/dist/esm/form-array/form-array.js.map +1 -1
- package/dist/esm/form-control.d.ts +4 -4
- package/dist/esm/form-control.js +4 -4
- package/dist/esm/form-control.js.map +1 -1
- package/dist/esm/form-group.d.ts +3 -3
- package/dist/esm/form-group.js +5 -5
- package/dist/esm/form-group.js.map +1 -1
- package/dist/esm/helpers.d.ts +12 -12
- package/dist/esm/helpers.js +8 -14
- package/dist/esm/helpers.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +19 -23
- package/package.json +1 -1
|
@@ -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;
|
|
@@ -121,7 +121,7 @@ export class FormArray {
|
|
|
121
121
|
this.updateValidityStatus(groups, this.validators);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
export function formArray(
|
|
125
|
-
return new FormArray(
|
|
124
|
+
export function formArray(options, validators) {
|
|
125
|
+
return new FormArray(createFormArrayOptions(options, validators));
|
|
126
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,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;
|
|
@@ -13,7 +13,7 @@ export declare class FormControl<T = any> implements AbstractControl<T> {
|
|
|
13
13
|
private validators?;
|
|
14
14
|
private observable;
|
|
15
15
|
constructor();
|
|
16
|
-
constructor(props:
|
|
16
|
+
constructor(props: FormControlOptions<T>);
|
|
17
17
|
constructor(state: T, validators?: ValidatorFn<T>[]);
|
|
18
18
|
get focused(): boolean;
|
|
19
19
|
get unfocused(): boolean;
|
|
@@ -42,6 +42,6 @@ export declare class FormControl<T = any> implements AbstractControl<T> {
|
|
|
42
42
|
private updateValueAndValidity;
|
|
43
43
|
}
|
|
44
44
|
export declare function formControl<T>(): FormControl<T | undefined>;
|
|
45
|
-
export declare function formControl<T>(
|
|
46
|
-
export declare function formControl<T>(
|
|
45
|
+
export declare function formControl<T>(options: FormStateOptions<T>): FormControl<T>;
|
|
46
|
+
export declare function formControl<T>(options: FormValidatorsOptions<T>): FormControl<T | undefined>;
|
|
47
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;
|
|
@@ -108,7 +108,7 @@ export class FormControl {
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
export function formControl(
|
|
112
|
-
return new FormControl(
|
|
111
|
+
export function formControl(options, validators) {
|
|
112
|
+
return new FormControl(createFormControlOptions(options, validators));
|
|
113
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;
|
|
@@ -30,5 +30,5 @@ export declare class FormGroup<C extends FormControls = FormControls> implements
|
|
|
30
30
|
subscribe(subscriber: SubscriberGroup<C>): Unsubscription;
|
|
31
31
|
private updateValueAndValidity;
|
|
32
32
|
}
|
|
33
|
-
export declare function formGroup<C extends FormControls = FormControls>(
|
|
33
|
+
export declare function formGroup<C extends FormControls = FormControls>(options: FormGroupOptions<C>): FormGroup<C>;
|
|
34
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 {
|
|
2
|
+
import { createFormGroupOptions } from './arguments';
|
|
3
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);
|
|
@@ -88,7 +88,7 @@ export class FormGroup {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
-
export function formGroup(
|
|
92
|
-
return new FormGroup(
|
|
91
|
+
export function formGroup(options, validators) {
|
|
92
|
+
return new FormGroup(createFormGroupOptions(options, validators));
|
|
93
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,23 +1,23 @@
|
|
|
1
1
|
import { ValidatorError, ValidatorFn } from '@rolster/validators';
|
|
2
|
-
import {
|
|
3
|
-
interface
|
|
2
|
+
import { AbstractControl, AbstractArrayGroup, AbstractArrayControls, AbstractGroup, AbstractControls, StateGroup, ValidatorArrayFn, ValidatorGroupFn } from './types';
|
|
3
|
+
interface ControlValidOptions<T> {
|
|
4
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 groupIsValid: <C extends
|
|
20
|
-
export declare function groupAllChecked<C extends
|
|
21
|
-
export declare function groupPartialChecked<C extends
|
|
22
|
-
export declare const arrayIsValid: <C extends
|
|
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[];
|
|
23
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,11 +8,11 @@ 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
18
|
return Object.entries(controls).reduce((result, [key, { state }]) => {
|
|
@@ -36,10 +30,10 @@ export const groupIsValid = ({ controls, validators }) => {
|
|
|
36
30
|
}, []);
|
|
37
31
|
};
|
|
38
32
|
export function groupAllChecked(groups, key) {
|
|
39
|
-
return groups.reduce((value, group) => value &&
|
|
33
|
+
return groups.reduce((value, group) => value && parseBoolean(group[key]), true);
|
|
40
34
|
}
|
|
41
35
|
export function groupPartialChecked(groups, key) {
|
|
42
|
-
return groups.reduce((value, group) => value ||
|
|
36
|
+
return groups.reduce((value, group) => value || parseBoolean(group[key]), false);
|
|
43
37
|
}
|
|
44
38
|
export const arrayIsValid = ({ groups, validators }) => {
|
|
45
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,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createFormArrayOptions, createFormControlOptions, createFormGroupOptions } from './arguments';
|
|
2
2
|
export { FormArray, FormArrayControl, FormArrayControls, FormArrayGroup, formArray, formArrayControl, formArrayGroup } from './form-array';
|
|
3
3
|
export { FormControl, formControl } from './form-control';
|
|
4
4
|
export { FormControls, FormGroup, formGroup } from './form-group';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createFormArrayOptions, createFormControlOptions, createFormGroupOptions } from './arguments';
|
|
2
2
|
export { FormArray, FormArrayControl, FormArrayGroup, formArray, formArrayControl, formArrayGroup } from './form-array';
|
|
3
3
|
export { FormControl, formControl } from './form-control';
|
|
4
4
|
export { FormGroup, formGroup } from './form-group';
|
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
|
@@ -16,12 +16,11 @@ export interface AbstractBaseControl<T = any> {
|
|
|
16
16
|
error?: ValidatorError;
|
|
17
17
|
state?: T;
|
|
18
18
|
}
|
|
19
|
-
export type AbstractControls<T extends AbstractBaseControl = AbstractBaseControl> = Record<string, T>;
|
|
20
19
|
export interface AbstractControl<T = any> extends AbstractBaseControl<T> {
|
|
21
20
|
reset: () => void;
|
|
22
21
|
subscribe: (subscriber: SubscriberControl<T>) => Unsubscription;
|
|
23
22
|
}
|
|
24
|
-
export interface
|
|
23
|
+
export interface AbstractFormControl<T = any> extends AbstractControl<T> {
|
|
25
24
|
blur: () => void;
|
|
26
25
|
disable: () => void;
|
|
27
26
|
disabled: boolean;
|
|
@@ -33,12 +32,10 @@ export interface AbstractFunctionalControl<T = any> extends AbstractControl<T> {
|
|
|
33
32
|
touch: () => void;
|
|
34
33
|
unfocused: boolean;
|
|
35
34
|
untouch: () => void;
|
|
36
|
-
}
|
|
37
|
-
export interface AbstractFormControl<T = any> extends AbstractFunctionalControl<T> {
|
|
38
35
|
setValidators: (validators?: ValidatorFn<T>[]) => void;
|
|
39
36
|
}
|
|
40
|
-
export type
|
|
41
|
-
export interface AbstractGroup<T extends
|
|
37
|
+
export type AbstractControls<T extends AbstractControl = AbstractControl> = Record<string, T>;
|
|
38
|
+
export interface AbstractGroup<T extends AbstractControls = AbstractControls> {
|
|
42
39
|
controls: T;
|
|
43
40
|
dirty: boolean;
|
|
44
41
|
dirties: boolean;
|
|
@@ -54,12 +51,12 @@ export interface AbstractGroup<T extends AbstractGroupControls = AbstractGroupCo
|
|
|
54
51
|
wrong: boolean;
|
|
55
52
|
error?: ValidatorError;
|
|
56
53
|
}
|
|
57
|
-
export type StateGroup<C extends
|
|
54
|
+
export type StateGroup<C extends AbstractControls = AbstractControls> = {
|
|
58
55
|
[K in keyof C]: C[K]['state'];
|
|
59
56
|
};
|
|
60
|
-
export type ValidatorGroupFn<C extends
|
|
61
|
-
export type SubscriberGroup<C extends
|
|
62
|
-
export interface AbstractFormGroup<C extends
|
|
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> {
|
|
63
60
|
reset: () => void;
|
|
64
61
|
setValidators: (validators: ValidatorGroupFn<C>[]) => void;
|
|
65
62
|
state: StateGroup<C>;
|
|
@@ -68,19 +65,19 @@ export interface AbstractFormGroup<C extends AbstractGroupControls = AbstractGro
|
|
|
68
65
|
export interface AbstractArrayControl<T = any> extends AbstractFormControl<T> {
|
|
69
66
|
uuid: string;
|
|
70
67
|
}
|
|
71
|
-
export type
|
|
72
|
-
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> {
|
|
73
70
|
setValidators: (validators: ValidatorGroupFn<C>[]) => void;
|
|
74
71
|
state: ArrayStateGroup<C>;
|
|
75
72
|
subscribe: (subscriber: SubscriberGroup<C>) => Unsubscription;
|
|
76
73
|
uuid: string;
|
|
77
74
|
resource?: R;
|
|
78
75
|
}
|
|
79
|
-
export type ArrayStateGroup<C extends
|
|
76
|
+
export type ArrayStateGroup<C extends AbstractArrayControls> = {
|
|
80
77
|
[K in keyof C]: C[K]['state'];
|
|
81
78
|
};
|
|
82
|
-
export type ValidatorArrayFn<T extends
|
|
83
|
-
export interface AbstractArray<T extends
|
|
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>[]> {
|
|
84
81
|
controls: T[];
|
|
85
82
|
dirties: boolean;
|
|
86
83
|
groups: G[];
|
|
@@ -90,29 +87,28 @@ export interface AbstractArray<T extends AbstractArrayGroupControls = AbstractAr
|
|
|
90
87
|
remove: (group: G) => void;
|
|
91
88
|
set: (groups: G[]) => void;
|
|
92
89
|
setValidators: (validators: ValidatorArrayFn<T, R>[]) => void;
|
|
93
|
-
state: ArrayStateGroup<T>[];
|
|
94
90
|
toucheds: boolean;
|
|
95
91
|
untoucheds: boolean;
|
|
96
92
|
wrong: boolean;
|
|
97
93
|
}
|
|
98
|
-
export interface
|
|
94
|
+
export interface FormControlOptions<T = any> {
|
|
99
95
|
state: T;
|
|
100
96
|
validators?: ValidatorFn<T>[];
|
|
101
97
|
}
|
|
102
|
-
export type
|
|
103
|
-
export type
|
|
104
|
-
export interface
|
|
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> {
|
|
105
101
|
controls: C;
|
|
106
102
|
validators?: ValidatorGroupFn<C>[];
|
|
107
103
|
}
|
|
108
|
-
export interface
|
|
104
|
+
export interface FormArrayControlOptions<T = any> extends FormControlOptions<T> {
|
|
109
105
|
uuid: string;
|
|
110
106
|
}
|
|
111
|
-
export interface
|
|
107
|
+
export interface FormArrayGroupOptions<C extends AbstractArrayControls = AbstractArrayControls, R = any> extends FormGroupOptions<C> {
|
|
112
108
|
uuid: string;
|
|
113
109
|
resource?: R;
|
|
114
110
|
}
|
|
115
|
-
export interface
|
|
111
|
+
export interface FormArrayOptions<C extends AbstractArrayControls = AbstractArrayControls, R = any, G extends AbstractArrayGroup<C, R> = AbstractArrayGroup<C, R>> {
|
|
116
112
|
groups?: G[];
|
|
117
113
|
validators?: ValidatorArrayFn<C, R>[];
|
|
118
114
|
}
|
package/package.json
CHANGED