@rolster/react-forms 18.11.4 → 18.12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"form-array-group.js","sourceRoot":"","sources":["../../../src/form-array/form-array-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-array-group.js","sourceRoot":"","sources":["../../../src/form-array/form-array-group.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,11 @@
1
1
  import { ArrayControlsValue, ArrayListValueToControls } from '@rolster/forms';
2
2
  import { ValidatorFn } from '@rolster/validators';
3
- import { ReactArrayControls, ReactArrayList, ReactArrayListOptions } from '../types';
4
- import { RolsterReactArrayControl } from './form-array-control';
5
- type RolsterListOptions<C extends ReactArrayControls = ReactArrayControls> = Omit<ReactArrayListOptions<C>, 'value'>;
6
- export declare class RolsterArrayList<E extends HTMLElement = HTMLElement, C extends ReactArrayControls = ReactArrayControls> extends RolsterReactArrayControl<E, ArrayControlsValue<C>[]> implements ReactArrayList<C> {
7
- readonly controls: C[];
8
- readonly invalid: boolean;
9
- readonly valid: boolean;
10
- readonly wrong: boolean;
11
- protected valueToControls: ArrayListValueToControls<C>;
12
- constructor(options: RolsterListOptions<C>);
13
- setValue(value: ArrayControlsValue<C>[]): void;
14
- clone(options: ReactArrayListOptions<C>): RolsterArrayList<E, C>;
15
- push(controls: C): void;
16
- remove(controls: C): void;
17
- protected refresh(changes: Partial<ReactArrayListOptions<C>>): void;
18
- private subscribeControls;
19
- }
3
+ import { ReactArrayControls, ReactArrayList } from '../types';
20
4
  interface ReactListOptions<C extends ReactArrayControls = ReactArrayControls> {
5
+ valueToControls: ArrayListValueToControls<C>;
21
6
  touched?: boolean;
22
7
  validators?: ValidatorFn<ArrayControlsValue<C>[] | undefined>[];
23
8
  value?: ArrayControlsValue<C>[] | undefined;
24
9
  }
25
- export declare function formArrayList<C extends ReactArrayControls = ReactArrayControls>(valueToControls: ArrayListValueToControls<C>, options?: ReactListOptions<C>): ReactArrayList<C>;
10
+ export declare function formArrayList<C extends ReactArrayControls = ReactArrayControls>(options: ReactListOptions<C>): ReactArrayList<C>;
26
11
  export {};
@@ -1,65 +1,65 @@
1
- import { controlsAllChecked, controlsToValue } from '@rolster/forms/helpers';
1
+ import { controlIsValid, controlsAllChecked, controlsToValue } from '@rolster/forms/helpers';
2
2
  import { v4 as uuid } from 'uuid';
3
- import { RolsterReactArrayControl } from './form-array-control';
4
- export class RolsterArrayList extends RolsterReactArrayControl {
3
+ import { replaceControl } from '../utilities';
4
+ import { RolsterArrayControl } from './form-array-control';
5
+ class RolsterArrayList extends RolsterArrayControl {
5
6
  constructor(options) {
6
- const value = options.controls.map((controls) => controlsToValue(controls));
7
- super({ ...options, value });
8
- this.valueToControls = options.valueToControls;
9
- this.controls = options.controls;
7
+ const { controls, valueToControls, validators } = options;
8
+ const value = controls.map((controls) => controlsToValue(controls));
9
+ const errors = validators ? controlIsValid({ value, validators }) : [];
10
+ super({ ...options, errors, value });
11
+ this.valueToControls = valueToControls;
12
+ this.controls = controls;
10
13
  this.valid =
11
- this.errors.length === 0 &&
12
- this.controls.reduce((valid, controls) => valid && controlsAllChecked(controls, 'valid'), true);
14
+ errors.length === 0 &&
15
+ controls.reduce((valid, controls) => valid && controlsAllChecked(controls, 'valid'), true);
13
16
  this.invalid = !this.valid;
14
17
  this.wrong = this.touched && this.invalid;
15
- options.controls.forEach((controls) => {
16
- this.subscribeControls(controls);
18
+ controls.forEach((reactControls) => {
19
+ this._subscribe(reactControls);
17
20
  });
18
21
  }
19
22
  setValue(value) {
20
- this.refresh({
23
+ this.refresh('list', {
21
24
  controls: value.map((value) => this.valueToControls(value))
22
25
  });
23
26
  }
24
- clone(options) {
25
- return new RolsterArrayList(options);
26
- }
27
27
  push(controls) {
28
- this.refresh({
28
+ this.refresh('list', {
29
29
  controls: [...this.controls, controls]
30
30
  });
31
31
  }
32
32
  remove(controls) {
33
- this.refresh({
34
- controls: this.controls.filter((currentControls) => currentControls !== controls)
33
+ this.refresh('list', {
34
+ controls: this.controls.filter((_controls) => _controls !== controls)
35
+ });
36
+ }
37
+ builder(options) {
38
+ return new RolsterArrayList({
39
+ ...this,
40
+ ...options,
41
+ valueToControls: this.valueToControls
35
42
  });
36
43
  }
37
- refresh(changes) {
38
- super.refresh(changes);
44
+ refresh(action, options) {
45
+ super.refresh(action, options);
39
46
  }
40
- subscribeControls(newControls) {
41
- Object.values(newControls).forEach((control) => {
42
- control.subscribe((options) => {
43
- const controls = this.controls.map((_controls) => _controls !== newControls
47
+ _subscribe(reactControls) {
48
+ Object.values(reactControls).forEach((control) => {
49
+ control.subscribe((action, _control) => {
50
+ const _reactControls = this.controls.map((_controls) => reactControls !== _controls
44
51
  ? _controls
45
- : Object.entries(newControls).reduce((controls, [key, control]) => {
46
- controls[key] =
47
- control.uuid === options.uuid
48
- ? control.clone(options)
49
- : control;
50
- return controls;
51
- }, {}));
52
- this.refresh({ controls });
52
+ : replaceControl(reactControls, _control));
53
+ this.refresh(action, { controls: _reactControls });
53
54
  });
54
55
  });
55
56
  }
56
57
  }
57
- export function formArrayList(valueToControls, options) {
58
+ export function formArrayList(options) {
58
59
  const value = options?.value || [];
59
60
  return new RolsterArrayList({
60
61
  ...options,
61
- valueToControls,
62
- controls: value.map((value) => valueToControls(value)),
62
+ controls: value.map((value) => options.valueToControls(value)),
63
63
  initialValue: value,
64
64
  uuid: uuid()
65
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"form-array-list.js","sourceRoot":"","sources":["../../../src/form-array/form-array-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-array-list.js","sourceRoot":"","sources":["../../../src/form-array/form-array-list.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AASlC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAc3D,MAAM,gBAIJ,SAAQ,mBAA+C;IAavD,YAAY,OAA8B;QACxC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE1D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,KAAK;YACR,MAAM,CAAC,MAAM,KAAK,CAAC;gBACnB,QAAQ,CAAC,MAAM,CACb,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,IAAI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,EACnE,IAAI,CACL,CAAC;QAEJ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAE1C,QAAQ,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,QAAQ,CAAC,KAA8B;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAEM,IAAI,CAAC,QAAW;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,QAAW;QACvB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;IAES,OAAO,CACf,OAAmB;QAEnB,OAAO,IAAI,gBAAgB,CAAO;YAChC,GAAG,IAAI;YACP,GAAG,OAAO;YACV,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;IACL,CAAC;IAES,OAAO,CAAC,MAAwB,EAAE,OAAmB;QAC7D,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAEO,UAAU,CAAC,aAAgB;QACjC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/C,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;gBACrC,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACrD,aAAa,KAAK,SAAS;oBACzB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC5C,CAAC;gBAEF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AASD,MAAM,UAAU,aAAa,CAE3B,OAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IAEnC,OAAO,IAAI,gBAAgB,CAAiB;QAC1C,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9D,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE,IAAI,EAAE;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -1,32 +1,39 @@
1
1
  import { createFormArrayOptions } from '@rolster/forms/arguments';
2
2
  import { arrayIsValid, controlsToValue, groupAllChecked, hasError as rolsterHasError, someErrors as rolsterSomeErrors } from '@rolster/forms/helpers';
3
- import { i18nSubscribe } from '@rolster/i18n';
4
3
  import { useCallback, useEffect, useRef, useState } from 'react';
5
- import { RolsterArrayGroup } from './form-array-group';
6
- function errorsInArray(groups, validators) {
7
- return validators ? arrayIsValid({ groups, validators }) : [];
8
- }
9
- function validStateInArray(groups, validators) {
10
- const errors = errorsInArray(groups, validators);
4
+ function refactorForValid(groups, validators) {
5
+ const errors = validators ? arrayIsValid({ groups, validators }) : [];
11
6
  return {
12
7
  errors,
13
8
  valid: errors.length === 0 && groupAllChecked(groups, 'valid')
14
9
  };
15
10
  }
16
- function replaceStateInArray(groups, validators) {
11
+ function refactorForGroups(groups, validators) {
17
12
  return {
18
- ...validStateInArray(groups, validators),
13
+ ...refactorForValid(groups, validators),
19
14
  groups,
20
15
  controls: groups.map(({ controls }) => controls),
21
16
  value: groups.map(({ controls }) => controlsToValue(controls))
22
17
  };
23
18
  }
19
+ function refactorForControls(state, groups, action) {
20
+ switch (action) {
21
+ case 'validators':
22
+ return refactorForValid(groups, state.validators);
23
+ case 'reset':
24
+ case 'list':
25
+ case 'value':
26
+ return refactorForGroups(groups, state.validators);
27
+ default:
28
+ return { groups };
29
+ }
30
+ }
24
31
  export function useFormArray(options, validators) {
25
32
  const _options = createFormArrayOptions(options, validators);
26
33
  const groups = _options.groups || [];
27
34
  const initialValue = useRef(groups);
28
35
  const [state, setState] = useState({
29
- ...validStateInArray(groups, _options.validators),
36
+ ...refactorForValid(groups, _options.validators),
30
37
  controls: groups.map(({ controls }) => controls),
31
38
  dirty: false,
32
39
  dirties: false,
@@ -38,21 +45,14 @@ export function useFormArray(options, validators) {
38
45
  validators: _options.validators
39
46
  });
40
47
  useEffect(() => {
41
- return i18nSubscribe(() => {
42
- setState((state) => ({
43
- ...state,
44
- errors: errorsInArray(state.groups, state.validators)
45
- }));
46
- });
47
- }, []);
48
- useEffect(() => {
49
- const subscriber = (options) => {
50
- setState((state) => ({
51
- ...state,
52
- ...replaceStateInArray(state.groups.map((group) => group.uuid === options.uuid
53
- ? new RolsterArrayGroup(options)
54
- : group), state.validators)
55
- }));
48
+ const subscriber = (action, group) => {
49
+ setState((state) => {
50
+ const groups = state.groups.map((_group) => _group.uuid === group.uuid ? group : _group);
51
+ return {
52
+ ...state,
53
+ ...refactorForControls(state, groups, action)
54
+ };
55
+ });
56
56
  };
57
57
  state.groups.forEach((group) => {
58
58
  group.subscribe(subscriber);
@@ -67,49 +67,49 @@ export function useFormArray(options, validators) {
67
67
  const setValue = useCallback((groups) => {
68
68
  setState((state) => ({
69
69
  ...state,
70
- ...replaceStateInArray(groups, state.validators)
70
+ ...refactorForGroups(groups, state.validators)
71
71
  }));
72
72
  }, []);
73
73
  const setInitialValue = useCallback((groups) => {
74
74
  setState((state) => ({
75
75
  ...state,
76
- ...replaceStateInArray(groups, state.validators)
76
+ ...refactorForGroups(groups, state.validators)
77
77
  }));
78
78
  initialValue.current = groups;
79
79
  }, []);
80
80
  const push = useCallback((group) => {
81
81
  setState((state) => ({
82
82
  ...state,
83
- ...replaceStateInArray([...state.groups, group], state.validators)
83
+ ...refactorForGroups([...state.groups, group], state.validators)
84
84
  }));
85
85
  }, []);
86
86
  const merge = useCallback((groups) => {
87
87
  setState((state) => ({
88
88
  ...state,
89
- ...replaceStateInArray([...state.groups, ...groups], state.validators)
89
+ ...refactorForGroups([...state.groups, ...groups], state.validators)
90
90
  }));
91
91
  }, []);
92
92
  const remove = useCallback(({ uuid }) => {
93
93
  setState((state) => ({
94
94
  ...state,
95
- ...replaceStateInArray(state.groups.filter((group) => group.uuid !== uuid), state.validators)
96
- }));
97
- }, []);
98
- const reset = useCallback(() => {
99
- setState((state) => ({
100
- ...state,
101
- ...replaceStateInArray(initialValue.current, state.validators)
95
+ ...refactorForGroups(state.groups.filter((group) => group.uuid !== uuid), state.validators)
102
96
  }));
103
97
  }, []);
104
98
  const setValidators = useCallback((validators) => {
105
99
  setState((state) => ({
106
100
  ...state,
107
- ...validStateInArray(state.groups, validators),
101
+ ...refactorForValid(state.groups, validators),
108
102
  validators
109
103
  }));
110
104
  }, []);
111
105
  const hasError = useCallback((key) => rolsterHasError(state.errors, key), [state.errors]);
112
106
  const someErrors = useCallback((keys) => rolsterSomeErrors(state.errors, keys), [state.errors]);
107
+ const reset = useCallback(() => {
108
+ setState((state) => ({
109
+ ...state,
110
+ ...refactorForGroups(initialValue.current, state.validators)
111
+ }));
112
+ }, []);
113
113
  return {
114
114
  ...state,
115
115
  disable,
@@ -1 +1 @@
1
- {"version":3,"file":"form-array.js","sourceRoot":"","sources":["../../../src/form-array/form-array.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-array.js","sourceRoot":"","sources":["../../../src/form-array/form-array.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { createFormControlOptions } from '@rolster/forms/arguments';
2
2
  import { controlIsValid, hasError as rolsterHasError, someErrors as rolsterSomeErrors } from '@rolster/forms/helpers';
3
- import { i18nSubscribe } from '@rolster/i18n';
4
- import { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { useCallback, useRef, useState } from 'react';
5
4
  function errorsInControl(value, validators) {
6
5
  return validators ? controlIsValid({ value, validators }) : [];
7
6
  }
@@ -18,14 +17,6 @@ function useControl(options, validators) {
18
17
  validators: _options.validators
19
18
  });
20
19
  const elementRef = useRef(null);
21
- useEffect(() => {
22
- return i18nSubscribe(() => {
23
- setState((state) => ({
24
- ...state,
25
- errors: errorsInControl(state.value, state.validators)
26
- }));
27
- });
28
- }, []);
29
20
  const focus = useCallback(() => {
30
21
  setState((state) => ({ ...state, focused: true }));
31
22
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../src/form-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../src/form-control.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,8 @@
1
1
  import { createFormGroupOptions } from '@rolster/forms/arguments';
2
2
  import { controlsAllChecked, controlsPartialChecked, controlsToValue, groupIsValid, reduceControlsToArray } from '@rolster/forms/helpers';
3
- import { i18nSubscribe } from '@rolster/i18n';
4
- import { useCallback, useEffect, useState } from 'react';
5
- function errorsInGroup(controls, validators) {
6
- return validators ? groupIsValid({ controls, validators }) : [];
7
- }
8
- function validStateInGroup(controls, validators) {
9
- const errors = errorsInGroup(controls, validators);
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ function refactorForValid(controls, validators) {
5
+ const errors = validators ? groupIsValid({ controls, validators }) : [];
10
6
  return {
11
7
  errors,
12
8
  valid: errors.length === 0 && controlsAllChecked(controls, 'valid')
@@ -15,8 +11,14 @@ function validStateInGroup(controls, validators) {
15
11
  export function useFormGroup(options, validators) {
16
12
  const _options = createFormGroupOptions(options, validators);
17
13
  const { controls } = _options;
14
+ const firstEffects = useRef({
15
+ dirty: true,
16
+ disabledFocused: true,
17
+ touched: true,
18
+ value: true
19
+ });
18
20
  const [state, setState] = useState({
19
- ...validStateInGroup(controls, _options.validators),
21
+ ...refactorForValid(controls, _options.validators),
20
22
  controls,
21
23
  dirties: controlsAllChecked(controls, 'dirty'),
22
24
  dirty: controlsPartialChecked(controls, 'dirty'),
@@ -26,50 +28,62 @@ export function useFormGroup(options, validators) {
26
28
  validators: _options.validators
27
29
  });
28
30
  useEffect(() => {
29
- return i18nSubscribe(() => {
31
+ if (!firstEffects.current.value) {
30
32
  setState((state) => ({
31
33
  ...state,
32
- errors: errorsInGroup(state.controls, state.validators)
34
+ ...refactorForValid(controls, state.validators),
35
+ controls,
36
+ value: controlsToValue(controls)
33
37
  }));
34
- });
35
- }, []);
36
- useEffect(() => {
37
- setState((state) => ({
38
- ...state,
39
- ...validStateInGroup(controls, state.validators),
40
- controls,
41
- value: controlsToValue(controls)
42
- }));
38
+ }
39
+ else {
40
+ firstEffects.current.value = false;
41
+ }
43
42
  }, reduceControlsToArray(controls, 'value'));
44
43
  useEffect(() => {
45
- setState((state) => ({
46
- ...state,
47
- controls
48
- }));
44
+ if (!firstEffects.current.disabledFocused) {
45
+ setState((state) => ({
46
+ ...state,
47
+ controls
48
+ }));
49
+ }
50
+ else {
51
+ firstEffects.current.disabledFocused = false;
52
+ }
49
53
  }, [
50
54
  ...reduceControlsToArray(controls, 'disabled'),
51
55
  ...reduceControlsToArray(controls, 'focused')
52
56
  ]);
53
57
  useEffect(() => {
54
- setState((state) => ({
55
- ...state,
56
- controls,
57
- dirty: controlsPartialChecked(controls, 'dirty'),
58
- dirties: controlsAllChecked(controls, 'dirty')
59
- }));
58
+ if (!firstEffects.current.dirty) {
59
+ setState((state) => ({
60
+ ...state,
61
+ controls,
62
+ dirty: controlsPartialChecked(controls, 'dirty'),
63
+ dirties: controlsAllChecked(controls, 'dirty')
64
+ }));
65
+ }
66
+ else {
67
+ firstEffects.current.dirty = false;
68
+ }
60
69
  }, reduceControlsToArray(controls, 'dirty'));
61
70
  useEffect(() => {
62
- setState((state) => ({
63
- ...state,
64
- controls,
65
- touched: controlsPartialChecked(controls, 'touched'),
66
- toucheds: controlsAllChecked(controls, 'touched')
67
- }));
71
+ if (!firstEffects.current.touched) {
72
+ setState((state) => ({
73
+ ...state,
74
+ controls,
75
+ touched: controlsPartialChecked(controls, 'touched'),
76
+ toucheds: controlsAllChecked(controls, 'touched')
77
+ }));
78
+ }
79
+ else {
80
+ firstEffects.current.touched = false;
81
+ }
68
82
  }, reduceControlsToArray(controls, 'touched'));
69
83
  const setValidators = useCallback((validators) => {
70
84
  setState((state) => ({
71
85
  ...state,
72
- ...validStateInGroup(state.controls, validators)
86
+ ...refactorForValid(state.controls, validators)
73
87
  }));
74
88
  }, []);
75
89
  const reset = useCallback(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../src/form-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-group.js","sourceRoot":"","sources":["../../src/form-group.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AbstractArray, AbstractArrayControl, AbstractArrayControls, AbstractArrayGroup, AbstractArrayList, AbstractControls, AbstractFormControl, AbstractFormGroup, ArrayControlsValue, ArrayListValueToControls, FormArrayControlOptions, FormArrayGroupOptions } from '@rolster/forms';
1
+ import { AbstractArray, AbstractArrayControl, AbstractArrayControls, AbstractArrayGroup, AbstractArrayList, AbstractControls, AbstractFormControl, AbstractFormGroup, ArrayControlsValue, ArrayListValueToControls, FormArrayControlOptions } from '@rolster/forms';
2
2
  import { ValidatorFn } from '@rolster/validators';
3
3
  import { RefObject } from 'react';
4
4
  import { ReactAbstractControl } from './definitions';
@@ -17,17 +17,17 @@ export interface ReactArrayControlOptions<T = any> extends FormArrayControlOptio
17
17
  focused?: boolean;
18
18
  touched?: boolean;
19
19
  }
20
- export type ReactSubscriberControl<T = any> = (options: ReactArrayControlOptions<T>) => void;
21
20
  export interface ReactArrayListOptions<C extends ReactArrayControls = ReactArrayControls> extends ReactArrayControlOptions<ArrayControlsValue<C>[]> {
22
21
  controls: C[];
23
22
  valueToControls: ArrayListValueToControls<C>;
24
23
  }
24
+ export type ReactArrayAction = 'focused' | 'disabled' | 'touched' | 'value' | 'validators' | 'reset' | 'list';
25
25
  export interface ReactArrayControl<E extends HTMLElement = HTMLElement, T = any> extends AbstractArrayControl<T> {
26
- clone(options: ReactArrayControlOptions<T>): ReactArrayControl<E, T>;
27
- subscribe: (subscriber: ReactSubscriberControl<T>) => void;
26
+ subscribe: (subscriber: ReactArrayControlSubscriber<E, T>) => void;
28
27
  elementRef?: RefObject<E>;
29
28
  validators?: ValidatorFn<T>[];
30
29
  }
30
+ export type ReactArrayControlSubscriber<E extends HTMLElement = HTMLElement, T = any> = (action: ReactArrayAction, control: ReactArrayControl<E, T>) => void;
31
31
  export type ReactArrayVoid<E extends HTMLElement = HTMLElement, T = any> = ReactArrayControl<E, T | undefined>;
32
32
  export type ReactHtmlArrayControl<T = any> = ReactArrayControl<HTMLElement, T>;
33
33
  export type ReactHtmlArrayVoid<T = any> = ReactArrayVoid<HTMLElement, T>;
@@ -36,10 +36,10 @@ export type ReactInputArrayVoid<T = any> = ReactArrayVoid<HTMLInputElement, T>;
36
36
  export type ReactArrayControls<T extends ReactArrayControl = ReactArrayControl> = AbstractArrayControls<T>;
37
37
  export interface ReactArrayList<C extends ReactArrayControls = ReactArrayControls> extends ReactArrayControl<HTMLElement, ArrayControlsValue<C>[]>, AbstractArrayList<C> {
38
38
  }
39
- export type ReactSubscriberGroup<C extends ReactArrayControls = ReactArrayControls, R = any> = (options: FormArrayGroupOptions<C, R>) => void;
40
39
  export interface ReactArrayGroup<C extends ReactArrayControls, R = any> extends AbstractArrayGroup<C, R> {
41
- subscribe: (subscriber: ReactSubscriberGroup<C, R>) => void;
40
+ subscribe: (subscriber: ReactArrayGroupSubscriber<C, R>) => void;
42
41
  }
42
+ export type ReactArrayGroupSubscriber<C extends ReactArrayControls, R = any> = (action: ReactArrayAction, control: ReactArrayGroup<C, R>) => void;
43
43
  export interface ReactFormArray<C extends ReactArrayControls = ReactArrayControls, R = any, G extends ReactArrayGroup<C, R> = ReactArrayGroup<C, R>> extends AbstractArray<C, R, G> {
44
44
  elementRef?: RefObject<HTMLElement>;
45
45
  }
@@ -0,0 +1,2 @@
1
+ import { ReactArrayControl, ReactArrayControls } from './types';
2
+ export declare function replaceControl<C extends ReactArrayControls>(controls: C, control: ReactArrayControl): C;
@@ -0,0 +1,9 @@
1
+ export function replaceControl(controls, control) {
2
+ return Object.entries(controls).reduce((controls, [key, _control]) => {
3
+ if (_control.uuid === control.uuid) {
4
+ controls[key] = control;
5
+ }
6
+ return controls;
7
+ }, controls);
8
+ }
9
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAC5B,QAAW,EACX,OAA0B;IAE1B,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE;QACnE,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;YAClC,QAAgB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACnC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC"}