@rolster/react-forms 18.0.7 → 18.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.
Files changed (36) hide show
  1. package/dist/cjs/index.js +208 -107
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/es/index.js +207 -106
  4. package/dist/es/index.js.map +1 -1
  5. package/dist/esm/form-array/form-array-control.hook.d.ts +49 -0
  6. package/dist/esm/form-array/form-array-control.hook.js +88 -0
  7. package/dist/esm/form-array/form-array-control.hook.js.map +1 -0
  8. package/dist/esm/form-array/form-array-group.hook.d.ts +31 -0
  9. package/dist/esm/form-array/form-array-group.hook.js +46 -0
  10. package/dist/esm/form-array/form-array-group.hook.js.map +1 -0
  11. package/dist/esm/form-array/form-array.hook.d.ts +8 -0
  12. package/dist/esm/form-array/form-array.hook.js +107 -0
  13. package/dist/esm/form-array/form-array.hook.js.map +1 -0
  14. package/dist/esm/form-array/index.d.ts +3 -0
  15. package/dist/esm/form-array/index.js +4 -0
  16. package/dist/esm/form-array/index.js.map +1 -0
  17. package/dist/esm/form-array/types.d.ts +23 -0
  18. package/dist/esm/form-array/types.js +2 -0
  19. package/dist/esm/form-array/types.js.map +1 -0
  20. package/dist/esm/form-control.hook.d.ts +13 -4
  21. package/dist/esm/form-control.hook.js +23 -5
  22. package/dist/esm/form-control.hook.js.map +1 -1
  23. package/dist/esm/form-group.hook.d.ts +2 -1
  24. package/dist/esm/form-group.hook.js +12 -1
  25. package/dist/esm/form-group.hook.js.map +1 -1
  26. package/dist/esm/form-ref.hook.d.ts +17 -0
  27. package/dist/esm/form-ref.hook.js +45 -0
  28. package/dist/esm/form-ref.hook.js.map +1 -0
  29. package/dist/esm/index.d.ts +4 -3
  30. package/dist/esm/index.js +4 -3
  31. package/dist/esm/index.js.map +1 -1
  32. package/dist/esm/types.d.ts +3 -3
  33. package/package.json +4 -4
  34. package/dist/esm/form-array.hook.d.ts +0 -36
  35. package/dist/esm/form-array.hook.js +0 -206
  36. package/dist/esm/form-array.hook.js.map +0 -1
@@ -1,206 +0,0 @@
1
- import { arrayIsValid, controlIsValid, controlsAllChecked, controlsPartialChecked, controlsToState, controlsToValue, groupAllChecked, groupIsValid, groupPartialChecked } from '@rolster/helpers-forms/helpers';
2
- import { useEffect, useState } from 'react';
3
- import { v4 as uuid } from 'uuid';
4
- class RolsterArrayControl {
5
- constructor(props) {
6
- const { uuid, focused, dirty, disabled, initialState, state, touched, validators } = props;
7
- this.uuid = uuid;
8
- this.focused = focused || false;
9
- this.unfocused = !this.focused;
10
- this.touched = touched || false;
11
- this.untouched = !this.touched;
12
- this.dirty = dirty || false;
13
- this.pristine = !this.dirty;
14
- this.disabled = disabled || false;
15
- this.enabled = !this.disabled;
16
- this.state = state;
17
- this.validators = validators;
18
- this.initialState = initialState;
19
- this.errors = validators ? controlIsValid({ state, validators }) : [];
20
- this.error = this.errors[0];
21
- this.valid = this.errors.length === 0;
22
- this.invalid = !this.valid;
23
- this.wrong = this.touched && this.invalid;
24
- this.value = state;
25
- }
26
- focus() {
27
- if (!this.focused) {
28
- this.update({ focused: true });
29
- }
30
- }
31
- blur() {
32
- if (this.focused) {
33
- this.update({ focused: false });
34
- }
35
- }
36
- touch() {
37
- if (!this.touched) {
38
- this.update({ touched: true });
39
- }
40
- }
41
- untouch() {
42
- if (this.touched) {
43
- this.update({ touched: false });
44
- }
45
- }
46
- disable() {
47
- if (!this.disabled) {
48
- this.update({ disabled: true });
49
- }
50
- }
51
- enable() {
52
- if (this.disabled) {
53
- this.update({ disabled: false });
54
- }
55
- }
56
- setState(state) {
57
- this.update({ state });
58
- }
59
- setValidators(validators) {
60
- this.update({ validators });
61
- }
62
- reset() {
63
- this.update({ state: this.initialState });
64
- }
65
- update(changes) {
66
- this.group?.parent?.refreshControl(this, {
67
- ...changes,
68
- initialState: this.initialState
69
- });
70
- }
71
- }
72
- class RolsterArrayGroup {
73
- constructor(props) {
74
- const { controls, resource, uuid, validators } = props;
75
- Object.values(controls).forEach((control) => (control.group = this));
76
- this.uuid = uuid;
77
- this.controls = controls;
78
- this.validators = validators;
79
- this.resource = resource;
80
- this.errors = validators ? groupIsValid({ controls, validators }) : [];
81
- this.error = this.errors[0];
82
- this.valid =
83
- this.errors.length === 0 && controlsAllChecked(controls, 'valid');
84
- this.invalid = !this.valid;
85
- this.touched = controlsPartialChecked(controls, 'touched');
86
- this.toucheds = controlsAllChecked(controls, 'touched');
87
- this.dirty = controlsPartialChecked(controls, 'dirty');
88
- this.dirties = controlsAllChecked(controls, 'dirty');
89
- this.untouched = !this.touched;
90
- this.untoucheds = !this.toucheds;
91
- this.pristine = !this.dirty;
92
- this.pristines = !this.dirties;
93
- this.wrong = this.touched && this.invalid;
94
- this.state = controlsToState(controls);
95
- this.value = controlsToValue(controls);
96
- }
97
- setValidators(validators) {
98
- this.parent?.refreshGroup(this, { validators });
99
- }
100
- }
101
- export function cloneFormArrayControl(control, changes) {
102
- return new RolsterArrayControl({ ...control, ...changes });
103
- }
104
- export function cloneFormArrayGroup(group, changes) {
105
- return new RolsterArrayGroup({ ...group, ...changes });
106
- }
107
- export function useFormArrayControl(props) {
108
- return new RolsterArrayControl({
109
- ...props,
110
- uuid: uuid(),
111
- initialState: props.state
112
- });
113
- }
114
- export function useInputArrayControl(props) {
115
- return new RolsterArrayControl({
116
- ...props,
117
- uuid: uuid(),
118
- initialState: props.state
119
- });
120
- }
121
- export function useFormArrayGroup(props) {
122
- return new RolsterArrayGroup({ ...props, uuid: uuid() });
123
- }
124
- function cloneFormControlForArrayGroup(group, control, changes) {
125
- const newControl = cloneFormArrayControl(control, changes);
126
- const { uuid } = newControl;
127
- const controls = Object.entries(group.controls).reduce((controls, [key, control]) => {
128
- controls[key] = control.uuid === uuid ? newControl : control;
129
- return controls;
130
- }, {});
131
- return new RolsterArrayGroup({ ...group, controls });
132
- }
133
- export function useFormArray(props) {
134
- const [currentState] = useState(props.groups);
135
- const [state, setState] = useState([]);
136
- const [validators, setValidators] = useState(props.validators);
137
- const [controls, setControls] = useState([]);
138
- const [groups, setGroups] = useState(props.groups || []);
139
- useEffect(() => {
140
- setControls(groups.map(({ controls }) => controls));
141
- setState(groups.map(({ controls }) => controlsToState(controls)));
142
- }, [groups]);
143
- const errors = validators ? arrayIsValid({ groups, validators }) : [];
144
- const error = errors[0];
145
- const valid = errors.length === 0 && groupAllChecked(groups, 'valid');
146
- const touched = groupPartialChecked(groups, 'touched');
147
- const toucheds = groupAllChecked(groups, 'touched');
148
- const dirties = groupAllChecked(groups, 'dirty');
149
- const dirty = groupPartialChecked(groups, 'dirty');
150
- function push(group) {
151
- setGroups([...groups, group]);
152
- }
153
- function merge(newGroups) {
154
- setGroups([...groups, ...newGroups]);
155
- }
156
- function set(groups) {
157
- setGroups(groups);
158
- }
159
- function refreshControl(control, changes) {
160
- if (control.group) {
161
- const group = cloneFormControlForArrayGroup(control.group, control, changes);
162
- setGroups(groups.map((currentGroup) => currentGroup.uuid === group.uuid ? group : currentGroup));
163
- }
164
- }
165
- function refreshGroup(group, changes) {
166
- const newGroup = cloneFormArrayGroup(group, changes);
167
- const { uuid } = newGroup;
168
- setGroups(groups.map((currentGroup) => currentGroup.uuid === uuid ? newGroup : currentGroup));
169
- }
170
- function remove(group) {
171
- setGroups(groups.filter(({ uuid }) => group.uuid !== uuid));
172
- }
173
- function reset() {
174
- setGroups(currentState || []);
175
- }
176
- const formArray = {
177
- controls,
178
- dirty,
179
- dirties,
180
- error,
181
- errors,
182
- groups,
183
- invalid: !valid,
184
- merge,
185
- pristine: !dirty,
186
- pristines: !dirties,
187
- push,
188
- refreshControl,
189
- refreshGroup,
190
- remove,
191
- reset,
192
- set,
193
- setValidators,
194
- state,
195
- touched,
196
- toucheds,
197
- untouched: !touched,
198
- untoucheds: !toucheds,
199
- valid,
200
- value: state,
201
- wrong: touched && !valid
202
- };
203
- groups.forEach((group) => (group.parent = formArray));
204
- return formArray;
205
- }
206
- //# sourceMappingURL=form-array.hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-array.hook.js","sourceRoot":"","sources":["../../src/form-array.hook.ts"],"names":[],"mappings":"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"}