@rolster/react-forms 19.4.3 → 19.4.7
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/index.cjs +159 -95
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/form-array/form-array-control.type.d.ts +2 -0
- package/dist/esm/form-array/form-array-group.d.ts +1 -0
- package/dist/esm/form-array/form-array-group.helper.js +1 -1
- package/dist/esm/form-array/form-array-group.helper.js.map +1 -1
- package/dist/esm/form-array/form-array-group.js +5 -0
- package/dist/esm/form-array/form-array-group.js.map +1 -1
- package/dist/esm/form-array/form-array-group.type.d.ts +1 -0
- package/dist/esm/form-array/form-array-list.d.ts +2 -1
- package/dist/esm/form-array/form-array-list.js +37 -6
- package/dist/esm/form-array/form-array-list.js.map +1 -1
- package/dist/esm/form-array/form-array-list.type.d.ts +5 -0
- package/dist/esm/form-array/form-array.js +29 -17
- package/dist/esm/form-array/form-array.js.map +1 -1
- package/dist/esm/form-control/form-control.type.d.ts +2 -0
- package/dist/esm/form-group/form-group.js +65 -64
- package/dist/esm/form-group/form-group.js.map +1 -1
- package/dist/esm/form-ref/form-ref.js +23 -8
- package/dist/esm/form-ref/form-ref.js.map +1 -1
- package/package.json +3 -3
|
@@ -29,29 +29,22 @@ function refactorForControls(action, state, groups) {
|
|
|
29
29
|
}
|
|
30
30
|
export function useFormArray(options, validators) {
|
|
31
31
|
const formArray = createFormArrayOptions(options, validators);
|
|
32
|
-
const
|
|
33
|
-
const
|
|
32
|
+
const refArrayValue = useRef(formArray.groups || []);
|
|
33
|
+
const refArrayGroups = useRef(new Map());
|
|
34
34
|
const [state, setState] = useState(() => {
|
|
35
35
|
return {
|
|
36
|
-
...refactorForValid(
|
|
37
|
-
controls:
|
|
36
|
+
...refactorForValid(refArrayValue.current, formArray.validators),
|
|
37
|
+
controls: refArrayValue.current.map(({ controls }) => controls),
|
|
38
38
|
dirty: false,
|
|
39
39
|
dirties: false,
|
|
40
40
|
disabled: false,
|
|
41
|
-
groups:
|
|
41
|
+
groups: refArrayValue.current,
|
|
42
42
|
touched: false,
|
|
43
43
|
toucheds: false,
|
|
44
|
-
value:
|
|
44
|
+
value: refArrayValue.current.map(({ controls }) => controlsToValue(controls)),
|
|
45
45
|
validators: formArray.validators
|
|
46
46
|
};
|
|
47
47
|
});
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
formGroups.current.clear();
|
|
50
|
-
state.groups.forEach((group) => {
|
|
51
|
-
formGroups.current.set(group.uuid, group);
|
|
52
|
-
group.subscribe(subscriber);
|
|
53
|
-
});
|
|
54
|
-
}, [state.groups]);
|
|
55
48
|
const subscriber = useCallback((action, group) => {
|
|
56
49
|
setState((state) => {
|
|
57
50
|
const groups = state.groups.map((currentGroup) => {
|
|
@@ -63,6 +56,17 @@ export function useFormArray(options, validators) {
|
|
|
63
56
|
};
|
|
64
57
|
});
|
|
65
58
|
}, []);
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
const previousGroups = refArrayGroups.current;
|
|
61
|
+
const currentGroups = new Map();
|
|
62
|
+
state.groups.forEach((group) => {
|
|
63
|
+
currentGroups.set(group.uuid, group);
|
|
64
|
+
if (previousGroups.get(group.uuid) !== group) {
|
|
65
|
+
group.subscribe(subscriber);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
refArrayGroups.current = currentGroups;
|
|
69
|
+
}, [state.groups]);
|
|
66
70
|
const disable = useCallback(() => {
|
|
67
71
|
setState((state) => ({ ...state, disabled: true }));
|
|
68
72
|
}, []);
|
|
@@ -86,29 +90,36 @@ export function useFormArray(options, validators) {
|
|
|
86
90
|
...state,
|
|
87
91
|
...refactorForGroups(groups, state.validators)
|
|
88
92
|
}));
|
|
89
|
-
|
|
93
|
+
refArrayValue.current = groups;
|
|
90
94
|
}, []);
|
|
91
95
|
const push = useCallback((group) => {
|
|
96
|
+
refArrayGroups.current.set(group.uuid, group);
|
|
97
|
+
group.subscribe(subscriber);
|
|
92
98
|
setState((state) => ({
|
|
93
99
|
...state,
|
|
94
100
|
...refactorForGroups([...state.groups, group], state.validators)
|
|
95
101
|
}));
|
|
96
102
|
}, []);
|
|
97
103
|
const merge = useCallback((groups) => {
|
|
104
|
+
groups.forEach((group) => {
|
|
105
|
+
group.subscribe(subscriber);
|
|
106
|
+
refArrayGroups.current.set(group.uuid, group);
|
|
107
|
+
});
|
|
98
108
|
setState((state) => ({
|
|
99
109
|
...state,
|
|
100
110
|
...refactorForGroups([...state.groups, ...groups], state.validators)
|
|
101
111
|
}));
|
|
102
112
|
}, []);
|
|
103
113
|
const remove = useCallback(({ uuid }) => {
|
|
114
|
+
refArrayGroups.current.delete(uuid);
|
|
104
115
|
setState((state) => ({
|
|
105
116
|
...state,
|
|
106
117
|
...refactorForGroups(state.groups.filter((group) => group.uuid !== uuid), state.validators)
|
|
107
118
|
}));
|
|
108
119
|
}, []);
|
|
109
120
|
const findByUuid = useCallback((uuid) => {
|
|
110
|
-
return
|
|
111
|
-
}, [
|
|
121
|
+
return refArrayGroups.current.get(uuid);
|
|
122
|
+
}, []);
|
|
112
123
|
const setValidators = useCallback((validators) => {
|
|
113
124
|
setState((state) => ({
|
|
114
125
|
...state,
|
|
@@ -123,9 +134,10 @@ export function useFormArray(options, validators) {
|
|
|
123
134
|
return someErrors(state.errors, keys);
|
|
124
135
|
}, [state.errors]);
|
|
125
136
|
const reset = useCallback(() => {
|
|
137
|
+
refArrayValue.current.forEach((group) => group.reset());
|
|
126
138
|
setState((state) => ({
|
|
127
139
|
...state,
|
|
128
|
-
...refactorForGroups(
|
|
140
|
+
...refactorForGroups(refArrayValue.current, state.validators)
|
|
129
141
|
}));
|
|
130
142
|
}, []);
|
|
131
143
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-array.js","sourceRoot":"","sources":["../../../src/form-array/form-array.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAuBjE,SAAS,gBAAgB,CACvB,MAA+B,EAC/B,UAAqC;IAErC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1E,OAAO;QACL,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAIxB,MAAW,EAAE,UAAqC;IAClD,OAAO;QACL,GAAG,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC;QACvC,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;QAChD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAI1B,MAAwB,EAAE,KAA+B,EAAE,MAAW;IACtE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAEpD,KAAK,OAAO,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAErD;YACE,OAAO,EAAE,MAAM,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAoBD,MAAM,UAAU,YAAY,CAK1B,OAA6D,EAC7D,UAAqC;IAErC,MAAM,SAAS,GAAG,sBAAsB,CACtC,OAAO,EACP,UAAU,CACX,CAAC;IAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"form-array.js","sourceRoot":"","sources":["../../../src/form-array/form-array.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,6 @@ export type ReactFormVoid<E extends HTMLElement = HTMLElement, T = any> = ReactF
|
|
|
10
10
|
export type ReactHtmlControl<T = any> = ReactFormControl<HTMLElement, T>;
|
|
11
11
|
export type ReactHtmlVoid<T = any> = ReactFormVoid<HTMLElement, T>;
|
|
12
12
|
export type ReactInputControl<T = any> = ReactFormControl<HTMLInputElement, T>;
|
|
13
|
+
export type ReactAreaControl = ReactFormControl<HTMLTextAreaElement, string>;
|
|
13
14
|
export type ReactInputVoid<T = any> = ReactFormVoid<HTMLInputElement, T>;
|
|
15
|
+
export type ReactAreaVoid = ReactFormVoid<HTMLTextAreaElement, string>;
|
|
@@ -8,42 +8,53 @@ function refactorForValid(controls, validators) {
|
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
function checkAllSuccess(status) {
|
|
11
|
-
return status.
|
|
11
|
+
return status.every((value) => value);
|
|
12
12
|
}
|
|
13
13
|
function checkPartialSuccess(status) {
|
|
14
|
-
return status.
|
|
14
|
+
return status.some((value) => value);
|
|
15
|
+
}
|
|
16
|
+
function arraysShallowEqual(a, b) {
|
|
17
|
+
if (a === b) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
if (a.length !== b.length) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
for (let i = 0; i < a.length; i++) {
|
|
24
|
+
if (a[i] !== b[i]) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return true;
|
|
15
29
|
}
|
|
16
30
|
export function useFormGroup(options, validators) {
|
|
17
31
|
const formGroup = createFormGroupOptions(options, validators);
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
touched: false,
|
|
21
|
-
value: false,
|
|
22
|
-
visual: false
|
|
23
|
-
});
|
|
32
|
+
const refControls = useRef(formGroup.controls);
|
|
33
|
+
refControls.current = formGroup.controls;
|
|
24
34
|
const formGroupStatus = useMemo(() => {
|
|
25
35
|
const dirty = [];
|
|
36
|
+
const disabled = [];
|
|
37
|
+
const focused = [];
|
|
26
38
|
const touched = [];
|
|
27
39
|
const value = [];
|
|
28
|
-
const visual = [];
|
|
29
40
|
Object.values(formGroup.controls).forEach((control) => {
|
|
30
41
|
dirty.push(control.dirty);
|
|
42
|
+
disabled.push(control.disabled);
|
|
43
|
+
focused.push(control.focused);
|
|
31
44
|
touched.push(control.touched);
|
|
32
45
|
value.push(control.value);
|
|
33
|
-
visual.push(control.disabled);
|
|
34
|
-
visual.push(control.focused);
|
|
35
46
|
});
|
|
36
47
|
return {
|
|
37
48
|
dirty,
|
|
49
|
+
disabled,
|
|
50
|
+
focused,
|
|
38
51
|
touched,
|
|
39
|
-
value
|
|
40
|
-
visual
|
|
52
|
+
value
|
|
41
53
|
};
|
|
42
54
|
}, [formGroup.controls]);
|
|
43
55
|
const [state, setState] = useState(() => {
|
|
44
56
|
return {
|
|
45
57
|
...refactorForValid(formGroup.controls, formGroup.validators),
|
|
46
|
-
controls: formGroup.controls,
|
|
47
58
|
dirties: checkAllSuccess(formGroupStatus.dirty),
|
|
48
59
|
dirty: checkPartialSuccess(formGroupStatus.dirty),
|
|
49
60
|
touched: checkPartialSuccess(formGroupStatus.touched),
|
|
@@ -52,75 +63,65 @@ export function useFormGroup(options, validators) {
|
|
|
52
63
|
value: controlsToValue(formGroup.controls)
|
|
53
64
|
};
|
|
54
65
|
});
|
|
66
|
+
const refPrevFormGroupStatus = useRef(null);
|
|
55
67
|
useEffect(() => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
controls: formGroup.controls,
|
|
61
|
-
value: controlsToValue(formGroup.controls)
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
formInitialized.current.value = true;
|
|
66
|
-
}
|
|
67
|
-
}, formGroupStatus.value);
|
|
68
|
-
useEffect(() => {
|
|
69
|
-
if (formInitialized.current.dirty) {
|
|
70
|
-
setState((state) => ({
|
|
71
|
-
...state,
|
|
72
|
-
controls: formGroup.controls,
|
|
73
|
-
dirty: checkPartialSuccess(formGroupStatus.dirty),
|
|
74
|
-
dirties: checkAllSuccess(formGroupStatus.dirty)
|
|
75
|
-
}));
|
|
68
|
+
const formGroupPrev = refPrevFormGroupStatus.current;
|
|
69
|
+
refPrevFormGroupStatus.current = formGroupStatus;
|
|
70
|
+
if (!formGroupPrev) {
|
|
71
|
+
return;
|
|
76
72
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}));
|
|
73
|
+
const valueChanged = !arraysShallowEqual(formGroupPrev.value, formGroupStatus.value);
|
|
74
|
+
const dirtyChanged = !arraysShallowEqual(formGroupPrev.dirty, formGroupStatus.dirty);
|
|
75
|
+
const touchedChanged = !arraysShallowEqual(formGroupPrev.touched, formGroupStatus.touched);
|
|
76
|
+
const disabledChanged = !arraysShallowEqual(formGroupPrev.disabled, formGroupStatus.disabled);
|
|
77
|
+
const focusedChanged = !arraysShallowEqual(formGroupPrev.focused, formGroupStatus.focused);
|
|
78
|
+
if (!valueChanged &&
|
|
79
|
+
!dirtyChanged &&
|
|
80
|
+
!touchedChanged &&
|
|
81
|
+
!disabledChanged &&
|
|
82
|
+
!focusedChanged) {
|
|
83
|
+
return;
|
|
89
84
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
85
|
+
setState((state) => {
|
|
86
|
+
const next = { ...state };
|
|
87
|
+
if (valueChanged) {
|
|
88
|
+
const validResult = refactorForValid(refControls.current, state.validators);
|
|
89
|
+
next.errors = validResult.errors;
|
|
90
|
+
next.valid = validResult.valid;
|
|
91
|
+
next.value = controlsToValue(refControls.current);
|
|
92
|
+
}
|
|
93
|
+
if (dirtyChanged) {
|
|
94
|
+
next.dirty = checkPartialSuccess(formGroupStatus.dirty);
|
|
95
|
+
next.dirties = checkAllSuccess(formGroupStatus.dirty);
|
|
96
|
+
}
|
|
97
|
+
if (touchedChanged) {
|
|
98
|
+
next.touched = checkPartialSuccess(formGroupStatus.touched);
|
|
99
|
+
next.toucheds = checkAllSuccess(formGroupStatus.touched);
|
|
100
|
+
}
|
|
101
|
+
return next;
|
|
102
|
+
});
|
|
103
|
+
});
|
|
105
104
|
const setValidators = useCallback((validators) => {
|
|
106
105
|
setState((state) => ({
|
|
107
106
|
...state,
|
|
108
|
-
...refactorForValid(
|
|
107
|
+
...refactorForValid(refControls.current, validators),
|
|
108
|
+
validators
|
|
109
109
|
}));
|
|
110
110
|
}, []);
|
|
111
111
|
const setValue = useCallback((value) => {
|
|
112
112
|
Object.entries(value).forEach(([key, valueControl]) => {
|
|
113
|
-
const formControl =
|
|
113
|
+
const formControl = refControls.current[key];
|
|
114
114
|
formControl?.setValue(valueControl);
|
|
115
115
|
});
|
|
116
116
|
}, []);
|
|
117
117
|
const reset = useCallback(() => {
|
|
118
|
-
Object.values(
|
|
118
|
+
Object.values(refControls.current).forEach((control) => {
|
|
119
119
|
control.reset();
|
|
120
120
|
});
|
|
121
121
|
}, []);
|
|
122
122
|
return {
|
|
123
123
|
...state,
|
|
124
|
+
controls: formGroup.controls,
|
|
124
125
|
error: state.errors[0],
|
|
125
126
|
invalid: !state.valid,
|
|
126
127
|
pristine: !state.dirty,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../../src/form-group/form-group.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAsB1E,SAAS,gBAAgB,CACvB,QAAW,EACX,UAAkC;IAElC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5E,OAAO;QACL,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC;KACzE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAiB;IACxC,OAAO,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../../src/form-group/form-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,33 @@
|
|
|
1
1
|
import { createFormControlOptions } from '@rolster/forms/helpers';
|
|
2
|
-
import { useEffect } from 'react';
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
3
|
import { useInputControl } from '../form-control/form-control';
|
|
4
4
|
function useInputRefControl(options) {
|
|
5
5
|
const formRef = useInputControl(options);
|
|
6
|
+
const setValueRef = useRef(options.setValue);
|
|
7
|
+
setValueRef.current = options.setValue;
|
|
6
8
|
useEffect(() => {
|
|
7
|
-
formRef.elementRef?.current
|
|
9
|
+
const element = formRef.elementRef?.current;
|
|
10
|
+
if (!element) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const handleFocus = () => {
|
|
8
14
|
formRef.focus();
|
|
9
|
-
}
|
|
10
|
-
|
|
15
|
+
};
|
|
16
|
+
const handleBlur = () => {
|
|
11
17
|
formRef.blur();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
};
|
|
19
|
+
const handleChange = (event) => {
|
|
20
|
+
const target = event.target;
|
|
21
|
+
setValueRef.current(formRef, target.value);
|
|
22
|
+
};
|
|
23
|
+
element.addEventListener('focus', handleFocus);
|
|
24
|
+
element.addEventListener('blur', handleBlur);
|
|
25
|
+
element.addEventListener('change', handleChange);
|
|
26
|
+
return () => {
|
|
27
|
+
element.removeEventListener('focus', handleFocus);
|
|
28
|
+
element.removeEventListener('blur', handleBlur);
|
|
29
|
+
element.removeEventListener('change', handleChange);
|
|
30
|
+
};
|
|
16
31
|
}, []);
|
|
17
32
|
return formRef;
|
|
18
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-ref.js","sourceRoot":"","sources":["../../../src/form-ref/form-ref.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"form-ref.js","sourceRoot":"","sources":["../../../src/form-ref/form-ref.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAY/D,SAAS,kBAAkB,CAAU,OAA2B;IAC9D,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;YAEhD,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC;QAEF,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/C,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC7C,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEjD,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAClD,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAChD,OAAO,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,OAAO,CAAC;AACjB,CAAC;AAUD,MAAM,UAAU,iBAAiB,CAC/B,OAAiC,EACjC,UAAkC;IAElC,OAAO,kBAAkB,CAAC;QACxB,GAAG,wBAAwB,CACzB,OAAO,EACP,UAAU,CACX;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,mBAAmB,CACjC,OAAmC,EACnC,UAAkC;IAElC,OAAO,kBAAkB,CAAC;QACxB,GAAG,wBAAwB,CACzB,OAAO,EACP,UAAU,CACX;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC3B,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rolster/react-forms",
|
|
3
|
-
"version": "19.4.
|
|
3
|
+
"version": "19.4.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "It implements a set of classes that allow managing the control of states of the input components in React",
|
|
6
6
|
"license": "MIT",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"prepublishOnly": "npm run build"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@rolster/forms": "^4.1.
|
|
39
|
+
"@rolster/forms": "^4.1.3",
|
|
40
40
|
"@rolster/validators": "^3.1.0",
|
|
41
41
|
"react": "^19.2.0",
|
|
42
|
-
"uuid": "^
|
|
42
|
+
"uuid": "^14.0.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@rolster/rollup": "^2.0.0",
|