@rolster/react-forms 19.3.0 → 19.4.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.
@@ -748,4 +748,4 @@ exports.useFormControl = useFormControl;
748
748
  exports.useFormGroup = useFormGroup;
749
749
  exports.useInputControl = useInputControl;
750
750
  exports.useReactControl = useReactControl;
751
- //# sourceMappingURL=index.js.map
751
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../esm/form-array/form-array-control.js","../esm/utilities.js","../esm/form-array/form-array-group.js","../esm/form-array/form-array-list.js","../esm/form-array/form-array.js","../esm/form-control.js","../esm/form-group.js","../esm/helpers.js","../esm/hooks.js"],"sourcesContent":["import { createFormControlOptions, formControlIsValid, hasError, someErrors } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nexport class RolsterArrayControl {\n constructor(options) {\n this.uuid = options.uuid;\n this.defaultValue = options.defaultValue;\n this.value = options.value;\n this.focused = !!options.focused;\n this.unfocused = !this.focused;\n this.touched = !!options.touched;\n this.untouched = !this.touched;\n this.dirty = !!options.dirty;\n this.pristine = !this.dirty;\n this.disabled = !!options.disabled;\n this.enabled = !this.disabled;\n this.valid = this.isValid(options.errors);\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n this.errors = options.errors;\n this.error = this.errors[0];\n this.validators = options.validators;\n }\n focus() {\n this.unfocused && this.refresh('focused', { focused: true });\n }\n blur() {\n this.focused && this.refresh('focused', { focused: false, touched: true });\n }\n disable() {\n this.enabled && this.refresh('disabled', { disabled: true });\n }\n enable() {\n this.disabled && this.refresh('disabled', { disabled: false });\n }\n touch() {\n this.untouched && this.refresh('touched', { touched: true });\n }\n setDefaultValue(value) {\n if (value !== this.defaultValue) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { errors, defaultValue: value, value });\n }\n }\n setStartValue(value) {\n if (value !== this.value) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { errors, value });\n }\n }\n setValue(value) {\n if (value !== this.value) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { dirty: true, errors, value });\n }\n }\n setValidators(validators) {\n const errors = validators\n ? formControlIsValid({ value: this.value, validators })\n : [];\n this.refresh('validators', { errors, validators });\n }\n subscribe(subscriber) {\n this.subscriber = subscriber;\n }\n hasError(key) {\n return hasError(this.errors, key);\n }\n someErrors(keys) {\n return someErrors(this.errors, keys);\n }\n reset() {\n const errors = this.validators\n ? formControlIsValid({\n value: this.defaultValue,\n validators: this.validators\n })\n : [];\n this.refresh('reset', {\n dirty: false,\n errors,\n touched: false,\n value: this.defaultValue\n });\n }\n isValid(errors) {\n return errors.length === 0;\n }\n builder(options) {\n return new RolsterArrayControl({ ...this, ...options });\n }\n refresh(action, options) {\n this.subscriber && this.subscriber(action, this.builder(options));\n }\n}\nclass ReactRolsterArrayControl extends RolsterArrayControl {\n constructor(options) {\n const { value, validators } = options;\n const errors = validators ? formControlIsValid({ value, validators }) : [];\n super({ ...options, errors });\n }\n}\nfunction rolsterArrayControl(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n return new ReactRolsterArrayControl({\n ...formControl,\n defaultValue: formControl.value,\n uuid: uuid()\n });\n}\nexport function reactArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\nexport function formArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\nexport function inputArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\n//# sourceMappingURL=form-array-control.js.map","export function replaceControl(controls, control) {\n return Object.entries(controls).reduce((controls, [key, _control]) => {\n if (_control.uuid === control.uuid) {\n controls[key] = control;\n }\n return controls;\n }, controls);\n}\n//# sourceMappingURL=utilities.js.map","import { createFormGroupOptions } from '@rolster/forms/helpers';\nimport { controlsToValue, formGroupIsValid, verifyAllTrueInControls, verifyAnyTrueInControls } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nimport { replaceControl } from '../utilities';\nfunction refactorForValid(controls, validators) {\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')\n };\n}\nfunction refactorForControls(action, group, controls) {\n switch (action) {\n case 'focused':\n case 'touched':\n return {\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched')\n };\n case 'validators':\n return refactorForValid(controls, group.validators);\n case 'reset':\n return {\n ...refactorForValid(controls, group.validators),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched'),\n value: controlsToValue(controls)\n };\n case 'list':\n case 'value':\n return {\n ...refactorForValid(controls, group.validators),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n value: controlsToValue(controls)\n };\n default:\n return {};\n }\n}\nexport class RolsterArrayGroup {\n constructor(options) {\n this.uuid = options.uuid;\n this.controls = options.controls;\n this.value = options.value;\n this.resource = options.resource;\n this.dirty = !!options.dirty;\n this.dirties = !!options.dirties;\n this.pristine = !this.dirty;\n this.pristines = !this.dirties;\n this.touched = !!options.touched;\n this.toucheds = !!options.toucheds;\n this.untouched = !this.touched;\n this.untoucheds = !this.toucheds;\n this.valid = !!options.valid;\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n this.errors = options.errors;\n this.error = this.errors[0];\n this.validators = options.validators;\n this.subscriberControl = (action, control) => {\n const controls = replaceControl(this.controls, control);\n this.refresh(action, {\n ...refactorForControls(action, this, controls),\n controls\n });\n };\n }\n subscribe(subscriber) {\n this.subscriber = subscriber;\n Object.values(this.controls).forEach((control) => {\n control.subscribe(this.subscriberControl);\n });\n }\n setValidators(validators) {\n this.refresh('validators', {\n ...refactorForValid(this.controls, validators),\n validators\n });\n }\n setResource(resource) {\n this.refresh('resource', { resource });\n }\n refresh(action, options) {\n this.subscriber &&\n this.subscriber(action, new RolsterArrayGroup({ ...this, ...options }));\n }\n}\nclass ReactRolsterArrayGroup extends RolsterArrayGroup {\n constructor(options) {\n const { controls, validators } = options;\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n super({\n ...options,\n errors,\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched'),\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid'),\n value: controlsToValue(controls)\n });\n }\n}\nfunction valueIsGroupOptions(options) {\n return typeof options === 'object' && 'controls' in options;\n}\nexport function formArrayGroup(options, validators) {\n const _uuid = valueIsGroupOptions(options) ? options.uuid || uuid() : uuid();\n return new ReactRolsterArrayGroup({\n ...createFormGroupOptions(options, validators),\n uuid: _uuid\n });\n}\n//# sourceMappingURL=form-array-group.js.map","import { controlsToValue, formControlIsValid, verifyAllTrueInControls } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nimport { replaceControl } from '../utilities';\nimport { RolsterArrayControl } from './form-array-control';\nclass RolsterArrayList extends RolsterArrayControl {\n constructor(options) {\n const { controls, valueToControls, validators } = options;\n const value = controls.map(controlsToValue);\n const errors = validators ? formControlIsValid({ value, validators }) : [];\n super({ ...options, errors, value });\n this.valueToControls = valueToControls;\n this.controls = controls;\n this.valid =\n errors.length === 0 &&\n controls.reduce((valid, controls) => valid && verifyAllTrueInControls(controls, 'valid'), true);\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n controls.forEach((reactControls) => {\n this._subscribe(reactControls);\n });\n }\n setDefaultValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls),\n defaultValue: value\n });\n }\n setStartValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls)\n });\n }\n setValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls),\n dirty: true\n });\n }\n reset() {\n this.refresh('list', {\n controls: this.defaultValue.map(this.valueToControls),\n dirty: false,\n touched: false\n });\n }\n push(controls) {\n this.refresh('list', {\n controls: [...this.controls, controls]\n });\n }\n remove(controls) {\n this.refresh('list', {\n controls: this.controls.filter((_controls) => _controls !== controls)\n });\n }\n builder(options) {\n return new RolsterArrayList({\n ...this,\n ...options,\n valueToControls: this.valueToControls\n });\n }\n refresh(action, options) {\n super.refresh(action, options);\n }\n _subscribe(reactControls) {\n Object.values(reactControls).forEach((control) => {\n control.subscribe((action, _control) => {\n const _reactControls = this.controls.map((_controls) => reactControls !== _controls\n ? _controls\n : replaceControl(reactControls, _control));\n this.refresh(action, { controls: _reactControls });\n });\n });\n }\n}\nexport function formArrayList(options) {\n const value = options?.value || [];\n return new RolsterArrayList({\n ...options,\n controls: value.map((value) => options.valueToControls(value)),\n defaultValue: value,\n uuid: uuid()\n });\n}\n//# sourceMappingURL=form-array-list.js.map","import { controlsToValue, createFormArrayOptions, formArrayIsValid, hasError as rolsterHasError, someErrors as rolsterSomeErrors, verifyAllTrueInGroups } from '@rolster/forms/helpers';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nfunction refactorForValid(groups, validators) {\n const errors = validators ? formArrayIsValid({ groups, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInGroups(groups, 'valid')\n };\n}\nfunction refactorForGroups(groups, validators) {\n return {\n ...refactorForValid(groups, validators),\n groups,\n controls: groups.map(({ controls }) => controls),\n value: groups.map(({ controls }) => controlsToValue(controls))\n };\n}\nfunction refactorForControls(action, state, groups) {\n switch (action) {\n case 'validators':\n return refactorForValid(groups, state.validators);\n case 'reset':\n case 'list':\n case 'value':\n return refactorForGroups(groups, state.validators);\n default:\n return { groups };\n }\n}\nexport function useFormArray(options, validators) {\n const formArray = createFormArrayOptions(options, validators);\n const defaultValue = useRef(formArray.groups || []);\n const formGroups = useRef(new Map());\n const [state, setState] = useState(() => {\n return {\n ...refactorForValid(defaultValue.current, formArray.validators),\n controls: defaultValue.current.map(({ controls }) => controls),\n dirty: false,\n dirties: false,\n disabled: false,\n groups: defaultValue.current,\n touched: false,\n toucheds: false,\n value: defaultValue.current.map(({ controls }) => controlsToValue(controls)),\n validators: formArray.validators\n };\n });\n useEffect(() => {\n formGroups.current.clear();\n state.groups.forEach((group) => {\n formGroups.current.set(group.uuid, group);\n group.subscribe(subscriber);\n });\n }, [state.groups]);\n const subscriber = useCallback((action, group) => {\n setState((state) => {\n const groups = state.groups.map((currentGroup) => {\n return currentGroup.uuid === group.uuid ? group : currentGroup;\n });\n return {\n ...state,\n ...refactorForControls(action, state, groups)\n };\n });\n }, []);\n const disable = useCallback(() => {\n setState((state) => ({ ...state, disabled: true }));\n }, []);\n const enable = useCallback(() => {\n setState((state) => ({ ...state, disabled: false }));\n }, []);\n const setValue = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(groups, state.validators)\n }));\n }, []);\n const setDefaultValue = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(groups, state.validators)\n }));\n defaultValue.current = groups;\n }, []);\n const push = useCallback((group) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups([...state.groups, group], state.validators)\n }));\n }, []);\n const merge = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups([...state.groups, ...groups], state.validators)\n }));\n }, []);\n const remove = useCallback(({ uuid }) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(state.groups.filter((group) => group.uuid !== uuid), state.validators)\n }));\n }, []);\n const findByUuid = useCallback((uuid) => {\n return formGroups.current.get(uuid);\n }, [state.groups]);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n ...refactorForValid(state.groups, validators),\n validators\n }));\n }, []);\n const hasError = useCallback((key) => {\n return rolsterHasError(state.errors, key);\n }, [state.errors]);\n const someErrors = useCallback((keys) => {\n return rolsterSomeErrors(state.errors, keys);\n }, [state.errors]);\n const reset = useCallback(() => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(defaultValue.current, state.validators)\n }));\n }, []);\n return {\n ...state,\n disable,\n enable,\n enabled: !state.disabled,\n error: state.errors[0],\n findByUuid,\n hasError,\n invalid: !state.valid,\n merge,\n pristine: !state.dirty,\n pristines: !state.dirties,\n push,\n remove,\n reset,\n setDefaultValue,\n setValidators,\n setValue,\n someErrors,\n untouched: !state.touched,\n untoucheds: !state.toucheds,\n wrong: state.touched && !state.valid\n };\n}\n//# sourceMappingURL=form-array.js.map","import { createFormControlOptions, formControlIsValid, hasError as rolsterHasError, someErrors as rolsterSomeErrors } from '@rolster/forms/helpers';\nimport { useCallback, useRef, useState } from 'react';\nfunction errorsInControl(value, validators) {\n return validators ? formControlIsValid({ value, validators }) : [];\n}\nfunction useControl(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n const defaultValue = useRef(formControl.value);\n const [state, setState] = useState(() => {\n return {\n dirty: false,\n disabled: false,\n errors: errorsInControl(formControl.value, formControl.validators),\n focused: false,\n touched: !!formControl.touched,\n value: formControl.value,\n validators: formControl.validators\n };\n });\n const elementRef = useRef(null);\n const focus = useCallback(() => {\n setState((state) => ({ ...state, focused: true }));\n }, []);\n const blur = useCallback(() => {\n setState((state) => ({ ...state, focused: false, touched: true }));\n }, []);\n const disable = useCallback(() => {\n setState((state) => ({ ...state, disabled: true }));\n }, []);\n const enable = useCallback(() => {\n setState((state) => ({ ...state, disabled: false }));\n }, []);\n const touch = useCallback(() => {\n setState((state) => ({ ...state, touched: true }));\n }, []);\n const setDefaultValue = useCallback((value) => {\n defaultValue.current = value;\n setState((state) => ({\n ...state,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setStartValue = useCallback((value) => {\n setState((state) => ({\n ...state,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setValue = useCallback((value) => {\n setState((state) => ({\n ...state,\n dirty: true,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n errors: errorsInControl(state.value, validators),\n validators\n }));\n }, []);\n const reset = useCallback(() => {\n setState((state) => ({\n ...state,\n dirty: false,\n errors: errorsInControl(defaultValue.current, state.validators),\n value: defaultValue.current,\n touched: false\n }));\n }, []);\n const hasError = useCallback((key) => {\n return rolsterHasError(state.errors, key);\n }, [state.errors]);\n const someErrors = useCallback((keys) => {\n return rolsterSomeErrors(state.errors, keys);\n }, [state.errors]);\n const valid = state.errors.length === 0;\n return {\n ...state,\n blur,\n disable,\n elementRef,\n enable,\n enabled: !state.disabled,\n error: state.errors[0],\n focus,\n hasError,\n invalid: !valid,\n pristine: !state.dirty,\n reset,\n setDefaultValue,\n setStartValue,\n setValidators,\n setValue,\n someErrors,\n touch,\n unfocused: !state.focused,\n untouched: !state.touched,\n valid,\n wrong: state.touched && !valid\n };\n}\nexport function useReactControl(options, validators) {\n return useControl(options, validators);\n}\nexport function useFormControl(options, validators) {\n return useControl(options, validators);\n}\nexport function useInputControl(options, validators) {\n return useControl(options, validators);\n}\n//# sourceMappingURL=form-control.js.map","import { controlsToValue, createFormGroupOptions, formGroupIsValid, verifyAllTrueInControls } from '@rolster/forms/helpers';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nfunction refactorForValid(controls, validators) {\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')\n };\n}\nfunction checkAllSuccess(status) {\n return status.reduce((success, status) => success && status, true);\n}\nfunction checkPartialSuccess(status) {\n return status.reduce((success, status) => success || status, false);\n}\nexport function useFormGroup(options, validators) {\n const formGroup = createFormGroupOptions(options, validators);\n const formInitialized = useRef({\n dirty: false,\n touched: false,\n value: false,\n visual: false\n });\n const formGroupStatus = useMemo(() => {\n const dirty = [];\n const touched = [];\n const value = [];\n const visual = [];\n Object.values(formGroup.controls).forEach((control) => {\n dirty.push(control.dirty);\n touched.push(control.touched);\n value.push(control.value);\n visual.push(control.disabled);\n visual.push(control.focused);\n });\n return {\n dirty,\n touched,\n value,\n visual\n };\n }, [formGroup.controls]);\n const [state, setState] = useState(() => {\n return {\n ...refactorForValid(formGroup.controls, formGroup.validators),\n controls: formGroup.controls,\n dirties: checkAllSuccess(formGroupStatus.dirty),\n dirty: checkPartialSuccess(formGroupStatus.dirty),\n touched: checkPartialSuccess(formGroupStatus.touched),\n toucheds: checkAllSuccess(formGroupStatus.touched),\n validators: formGroup.validators,\n value: controlsToValue(formGroup.controls)\n };\n });\n useEffect(() => {\n if (formInitialized.current.value) {\n setState((state) => ({\n ...state,\n ...refactorForValid(formGroup.controls, state.validators),\n controls: formGroup.controls,\n value: controlsToValue(formGroup.controls)\n }));\n }\n else {\n formInitialized.current.value = true;\n }\n }, formGroupStatus.value);\n useEffect(() => {\n if (formInitialized.current.dirty) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls,\n dirty: checkPartialSuccess(formGroupStatus.dirty),\n dirties: checkAllSuccess(formGroupStatus.dirty)\n }));\n }\n else {\n formInitialized.current.dirty = true;\n }\n }, formGroupStatus.dirty);\n useEffect(() => {\n if (formInitialized.current.touched) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls,\n touched: checkPartialSuccess(formGroupStatus.touched),\n toucheds: checkAllSuccess(formGroupStatus.touched)\n }));\n }\n else {\n formInitialized.current.touched = true;\n }\n }, formGroupStatus.touched);\n useEffect(() => {\n if (formInitialized.current.visual) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls\n }));\n }\n else {\n formInitialized.current.visual = true;\n }\n }, formGroupStatus.visual);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n ...refactorForValid(state.controls, validators)\n }));\n }, []);\n const reset = useCallback(() => {\n Object.values(formGroup.controls).forEach((control) => {\n control.reset();\n });\n }, []);\n return {\n ...state,\n error: state.errors[0],\n invalid: !state.valid,\n pristine: !state.dirty,\n pristines: !state.dirties,\n reset,\n setValidators,\n untouched: !state.touched,\n untoucheds: !state.toucheds,\n wrong: state.touched && !state.valid\n };\n}\n//# sourceMappingURL=form-group.js.map","import { reduceControlsToArray } from '@rolster/forms/helpers';\nexport function reduceControlsToValues(controls) {\n return reduceControlsToArray(controls, 'value');\n}\nexport function reduceGroupToValues(group) {\n return reduceControlsToValues(group.controls);\n}\n//# sourceMappingURL=helpers.js.map","import { useMemo, useState } from 'react';\nexport function useFormArrayGroupSelect({ formArray }) {\n const [formSelect, setFormGroup] = useState();\n const formGroup = useMemo(() => {\n return (formSelect &&\n formArray.groups.find(({ uuid }) => formSelect.uuid === uuid));\n }, [formArray.value, formSelect]);\n return { formGroup, setFormGroup };\n}\n//# sourceMappingURL=hooks.js.map"],"names":["formControlIsValid","hasError","someErrors","createFormControlOptions","uuid","refactorForValid","formGroupIsValid","verifyAllTrueInControls","refactorForControls","verifyAnyTrueInControls","controlsToValue","createFormGroupOptions","formArrayIsValid","verifyAllTrueInGroups","createFormArrayOptions","useRef","useState","useEffect","useCallback","rolsterHasError","rolsterSomeErrors","useMemo","reduceControlsToArray"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolster/react-forms",
3
- "version": "19.3.0",
3
+ "version": "19.4.0",
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",
@@ -12,13 +12,13 @@
12
12
  }
13
13
  ],
14
14
  "types": "./dist/esm/index.d.ts",
15
- "main": "./dist/cjs/index.js",
15
+ "main": "./dist/cjs/index.cjs",
16
16
  "module": "./dist/esm/index.js",
17
17
  "exports": {
18
18
  ".": {
19
19
  "types": "./dist/esm/index.d.ts",
20
20
  "node": {
21
- "require": "./dist/cjs/index.js",
21
+ "require": "./dist/cjs/index.cjs",
22
22
  "import": "./dist/esm/index.js"
23
23
  },
24
24
  "default": "./dist/esm/index.js"
@@ -36,13 +36,13 @@
36
36
  "prepublishOnly": "npm run build"
37
37
  },
38
38
  "dependencies": {
39
- "@rolster/forms": "^4.0.0",
40
- "@rolster/validators": "^3.0.0",
39
+ "@rolster/forms": "^4.1.0",
40
+ "@rolster/validators": "^3.1.0",
41
41
  "react": "^19.2.0",
42
42
  "uuid": "^13.0.0"
43
43
  },
44
44
  "devDependencies": {
45
- "@rolster/rollup": "^1.1.0",
45
+ "@rolster/rollup": "^2.0.0",
46
46
  "@rolster/types": "^1.1.0",
47
47
  "@types/react": "^18.2.42",
48
48
  "@types/uuid": "^9.0.7",
@@ -51,7 +51,7 @@
51
51
  "jsdom": "^27.0.0",
52
52
  "prettier": "^3.8.1",
53
53
  "react-dom": "^19.2.0",
54
- "rimraf": "^3.0.2",
54
+ "rimraf": "^6.1.3",
55
55
  "rollup-plugin-peer-deps-external": "^2.2.4",
56
56
  "tslib": "^2.4.0",
57
57
  "typescript": "^5.7.2",
@@ -70,5 +70,8 @@
70
70
  ],
71
71
  "publishConfig": {
72
72
  "access": "public"
73
+ },
74
+ "engines": {
75
+ "node": ">=14.13"
73
76
  }
74
77
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../esm/form-array/form-array-control.js","../esm/utilities.js","../esm/form-array/form-array-group.js","../esm/form-array/form-array-list.js","../esm/form-array/form-array.js","../esm/form-control.js","../esm/form-group.js","../esm/helpers.js","../esm/hooks.js"],"sourcesContent":["import { createFormControlOptions, formControlIsValid, hasError, someErrors } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nexport class RolsterArrayControl {\n constructor(options) {\n this.uuid = options.uuid;\n this.defaultValue = options.defaultValue;\n this.value = options.value;\n this.focused = !!options.focused;\n this.unfocused = !this.focused;\n this.touched = !!options.touched;\n this.untouched = !this.touched;\n this.dirty = !!options.dirty;\n this.pristine = !this.dirty;\n this.disabled = !!options.disabled;\n this.enabled = !this.disabled;\n this.valid = this.isValid(options.errors);\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n this.errors = options.errors;\n this.error = this.errors[0];\n this.validators = options.validators;\n }\n focus() {\n this.unfocused && this.refresh('focused', { focused: true });\n }\n blur() {\n this.focused && this.refresh('focused', { focused: false, touched: true });\n }\n disable() {\n this.enabled && this.refresh('disabled', { disabled: true });\n }\n enable() {\n this.disabled && this.refresh('disabled', { disabled: false });\n }\n touch() {\n this.untouched && this.refresh('touched', { touched: true });\n }\n setDefaultValue(value) {\n if (value !== this.defaultValue) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { errors, defaultValue: value, value });\n }\n }\n setStartValue(value) {\n if (value !== this.value) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { errors, value });\n }\n }\n setValue(value) {\n if (value !== this.value) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { dirty: true, errors, value });\n }\n }\n setValidators(validators) {\n const errors = validators\n ? formControlIsValid({ value: this.value, validators })\n : [];\n this.refresh('validators', { errors, validators });\n }\n subscribe(subscriber) {\n this.subscriber = subscriber;\n }\n hasError(key) {\n return hasError(this.errors, key);\n }\n someErrors(keys) {\n return someErrors(this.errors, keys);\n }\n reset() {\n const errors = this.validators\n ? formControlIsValid({\n value: this.defaultValue,\n validators: this.validators\n })\n : [];\n this.refresh('reset', {\n dirty: false,\n errors,\n touched: false,\n value: this.defaultValue\n });\n }\n isValid(errors) {\n return errors.length === 0;\n }\n builder(options) {\n return new RolsterArrayControl({ ...this, ...options });\n }\n refresh(action, options) {\n this.subscriber && this.subscriber(action, this.builder(options));\n }\n}\nclass ReactRolsterArrayControl extends RolsterArrayControl {\n constructor(options) {\n const { value, validators } = options;\n const errors = validators ? formControlIsValid({ value, validators }) : [];\n super({ ...options, errors });\n }\n}\nfunction rolsterArrayControl(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n return new ReactRolsterArrayControl({\n ...formControl,\n defaultValue: formControl.value,\n uuid: uuid()\n });\n}\nexport function reactArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\nexport function formArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\nexport function inputArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\n//# sourceMappingURL=form-array-control.js.map","export function replaceControl(controls, control) {\n return Object.entries(controls).reduce((controls, [key, _control]) => {\n if (_control.uuid === control.uuid) {\n controls[key] = control;\n }\n return controls;\n }, controls);\n}\n//# sourceMappingURL=utilities.js.map","import { createFormGroupOptions } from '@rolster/forms/helpers';\nimport { controlsToValue, formGroupIsValid, verifyAllTrueInControls, verifyAnyTrueInControls } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nimport { replaceControl } from '../utilities';\nfunction refactorForValid(controls, validators) {\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')\n };\n}\nfunction refactorForControls(action, group, controls) {\n switch (action) {\n case 'focused':\n case 'touched':\n return {\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched')\n };\n case 'validators':\n return refactorForValid(controls, group.validators);\n case 'reset':\n return {\n ...refactorForValid(controls, group.validators),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched'),\n value: controlsToValue(controls)\n };\n case 'list':\n case 'value':\n return {\n ...refactorForValid(controls, group.validators),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n value: controlsToValue(controls)\n };\n default:\n return {};\n }\n}\nexport class RolsterArrayGroup {\n constructor(options) {\n this.uuid = options.uuid;\n this.controls = options.controls;\n this.value = options.value;\n this.resource = options.resource;\n this.dirty = !!options.dirty;\n this.dirties = !!options.dirties;\n this.pristine = !this.dirty;\n this.pristines = !this.dirties;\n this.touched = !!options.touched;\n this.toucheds = !!options.toucheds;\n this.untouched = !this.touched;\n this.untoucheds = !this.toucheds;\n this.valid = !!options.valid;\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n this.errors = options.errors;\n this.error = this.errors[0];\n this.validators = options.validators;\n this.subscriberControl = (action, control) => {\n const controls = replaceControl(this.controls, control);\n this.refresh(action, {\n ...refactorForControls(action, this, controls),\n controls\n });\n };\n }\n subscribe(subscriber) {\n this.subscriber = subscriber;\n Object.values(this.controls).forEach((control) => {\n control.subscribe(this.subscriberControl);\n });\n }\n setValidators(validators) {\n this.refresh('validators', {\n ...refactorForValid(this.controls, validators),\n validators\n });\n }\n setResource(resource) {\n this.refresh('resource', { resource });\n }\n refresh(action, options) {\n this.subscriber &&\n this.subscriber(action, new RolsterArrayGroup({ ...this, ...options }));\n }\n}\nclass ReactRolsterArrayGroup extends RolsterArrayGroup {\n constructor(options) {\n const { controls, validators } = options;\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n super({\n ...options,\n errors,\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched'),\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid'),\n value: controlsToValue(controls)\n });\n }\n}\nfunction valueIsGroupOptions(options) {\n return typeof options === 'object' && 'controls' in options;\n}\nexport function formArrayGroup(options, validators) {\n const _uuid = valueIsGroupOptions(options) ? options.uuid || uuid() : uuid();\n return new ReactRolsterArrayGroup({\n ...createFormGroupOptions(options, validators),\n uuid: _uuid\n });\n}\n//# sourceMappingURL=form-array-group.js.map","import { controlsToValue, formControlIsValid, verifyAllTrueInControls } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nimport { replaceControl } from '../utilities';\nimport { RolsterArrayControl } from './form-array-control';\nclass RolsterArrayList extends RolsterArrayControl {\n constructor(options) {\n const { controls, valueToControls, validators } = options;\n const value = controls.map(controlsToValue);\n const errors = validators ? formControlIsValid({ value, validators }) : [];\n super({ ...options, errors, value });\n this.valueToControls = valueToControls;\n this.controls = controls;\n this.valid =\n errors.length === 0 &&\n controls.reduce((valid, controls) => valid && verifyAllTrueInControls(controls, 'valid'), true);\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n controls.forEach((reactControls) => {\n this._subscribe(reactControls);\n });\n }\n setDefaultValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls),\n defaultValue: value\n });\n }\n setStartValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls)\n });\n }\n setValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls),\n dirty: true\n });\n }\n reset() {\n this.refresh('list', {\n controls: this.defaultValue.map(this.valueToControls),\n dirty: false,\n touched: false\n });\n }\n push(controls) {\n this.refresh('list', {\n controls: [...this.controls, controls]\n });\n }\n remove(controls) {\n this.refresh('list', {\n controls: this.controls.filter((_controls) => _controls !== controls)\n });\n }\n builder(options) {\n return new RolsterArrayList({\n ...this,\n ...options,\n valueToControls: this.valueToControls\n });\n }\n refresh(action, options) {\n super.refresh(action, options);\n }\n _subscribe(reactControls) {\n Object.values(reactControls).forEach((control) => {\n control.subscribe((action, _control) => {\n const _reactControls = this.controls.map((_controls) => reactControls !== _controls\n ? _controls\n : replaceControl(reactControls, _control));\n this.refresh(action, { controls: _reactControls });\n });\n });\n }\n}\nexport function formArrayList(options) {\n const value = options?.value || [];\n return new RolsterArrayList({\n ...options,\n controls: value.map((value) => options.valueToControls(value)),\n defaultValue: value,\n uuid: uuid()\n });\n}\n//# sourceMappingURL=form-array-list.js.map","import { controlsToValue, createFormArrayOptions, formArrayIsValid, hasError as rolsterHasError, someErrors as rolsterSomeErrors, verifyAllTrueInGroups } from '@rolster/forms/helpers';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nfunction refactorForValid(groups, validators) {\n const errors = validators ? formArrayIsValid({ groups, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInGroups(groups, 'valid')\n };\n}\nfunction refactorForGroups(groups, validators) {\n return {\n ...refactorForValid(groups, validators),\n groups,\n controls: groups.map(({ controls }) => controls),\n value: groups.map(({ controls }) => controlsToValue(controls))\n };\n}\nfunction refactorForControls(action, state, groups) {\n switch (action) {\n case 'validators':\n return refactorForValid(groups, state.validators);\n case 'reset':\n case 'list':\n case 'value':\n return refactorForGroups(groups, state.validators);\n default:\n return { groups };\n }\n}\nexport function useFormArray(options, validators) {\n const formArray = createFormArrayOptions(options, validators);\n const defaultValue = useRef(formArray.groups || []);\n const formGroups = useRef(new Map());\n const [state, setState] = useState(() => {\n return {\n ...refactorForValid(defaultValue.current, formArray.validators),\n controls: defaultValue.current.map(({ controls }) => controls),\n dirty: false,\n dirties: false,\n disabled: false,\n groups: defaultValue.current,\n touched: false,\n toucheds: false,\n value: defaultValue.current.map(({ controls }) => controlsToValue(controls)),\n validators: formArray.validators\n };\n });\n useEffect(() => {\n formGroups.current.clear();\n state.groups.forEach((group) => {\n formGroups.current.set(group.uuid, group);\n group.subscribe(subscriber);\n });\n }, [state.groups]);\n const subscriber = useCallback((action, group) => {\n setState((state) => {\n const groups = state.groups.map((currentGroup) => {\n return currentGroup.uuid === group.uuid ? group : currentGroup;\n });\n return {\n ...state,\n ...refactorForControls(action, state, groups)\n };\n });\n }, []);\n const disable = useCallback(() => {\n setState((state) => ({ ...state, disabled: true }));\n }, []);\n const enable = useCallback(() => {\n setState((state) => ({ ...state, disabled: false }));\n }, []);\n const setValue = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(groups, state.validators)\n }));\n }, []);\n const setDefaultValue = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(groups, state.validators)\n }));\n defaultValue.current = groups;\n }, []);\n const push = useCallback((group) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups([...state.groups, group], state.validators)\n }));\n }, []);\n const merge = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups([...state.groups, ...groups], state.validators)\n }));\n }, []);\n const remove = useCallback(({ uuid }) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(state.groups.filter((group) => group.uuid !== uuid), state.validators)\n }));\n }, []);\n const findByUuid = useCallback((uuid) => {\n return formGroups.current.get(uuid);\n }, [state.groups]);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n ...refactorForValid(state.groups, validators),\n validators\n }));\n }, []);\n const hasError = useCallback((key) => {\n return rolsterHasError(state.errors, key);\n }, [state.errors]);\n const someErrors = useCallback((keys) => {\n return rolsterSomeErrors(state.errors, keys);\n }, [state.errors]);\n const reset = useCallback(() => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(defaultValue.current, state.validators)\n }));\n }, []);\n return {\n ...state,\n disable,\n enable,\n enabled: !state.disabled,\n error: state.errors[0],\n findByUuid,\n hasError,\n invalid: !state.valid,\n merge,\n pristine: !state.dirty,\n pristines: !state.dirties,\n push,\n remove,\n reset,\n setDefaultValue,\n setValidators,\n setValue,\n someErrors,\n untouched: !state.touched,\n untoucheds: !state.toucheds,\n wrong: state.touched && !state.valid\n };\n}\n//# sourceMappingURL=form-array.js.map","import { createFormControlOptions, formControlIsValid, hasError as rolsterHasError, someErrors as rolsterSomeErrors } from '@rolster/forms/helpers';\nimport { useCallback, useRef, useState } from 'react';\nfunction errorsInControl(value, validators) {\n return validators ? formControlIsValid({ value, validators }) : [];\n}\nfunction useControl(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n const defaultValue = useRef(formControl.value);\n const [state, setState] = useState(() => {\n return {\n dirty: false,\n disabled: false,\n errors: errorsInControl(formControl.value, formControl.validators),\n focused: false,\n touched: !!formControl.touched,\n value: formControl.value,\n validators: formControl.validators\n };\n });\n const elementRef = useRef(null);\n const focus = useCallback(() => {\n setState((state) => ({ ...state, focused: true }));\n }, []);\n const blur = useCallback(() => {\n setState((state) => ({ ...state, focused: false, touched: true }));\n }, []);\n const disable = useCallback(() => {\n setState((state) => ({ ...state, disabled: true }));\n }, []);\n const enable = useCallback(() => {\n setState((state) => ({ ...state, disabled: false }));\n }, []);\n const touch = useCallback(() => {\n setState((state) => ({ ...state, touched: true }));\n }, []);\n const setDefaultValue = useCallback((value) => {\n defaultValue.current = value;\n setState((state) => ({\n ...state,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setStartValue = useCallback((value) => {\n setState((state) => ({\n ...state,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setValue = useCallback((value) => {\n setState((state) => ({\n ...state,\n dirty: true,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n errors: errorsInControl(state.value, validators),\n validators\n }));\n }, []);\n const reset = useCallback(() => {\n setState((state) => ({\n ...state,\n dirty: false,\n errors: errorsInControl(defaultValue.current, state.validators),\n value: defaultValue.current,\n touched: false\n }));\n }, []);\n const hasError = useCallback((key) => {\n return rolsterHasError(state.errors, key);\n }, [state.errors]);\n const someErrors = useCallback((keys) => {\n return rolsterSomeErrors(state.errors, keys);\n }, [state.errors]);\n const valid = state.errors.length === 0;\n return {\n ...state,\n blur,\n disable,\n elementRef,\n enable,\n enabled: !state.disabled,\n error: state.errors[0],\n focus,\n hasError,\n invalid: !valid,\n pristine: !state.dirty,\n reset,\n setDefaultValue,\n setStartValue,\n setValidators,\n setValue,\n someErrors,\n touch,\n unfocused: !state.focused,\n untouched: !state.touched,\n valid,\n wrong: state.touched && !valid\n };\n}\nexport function useReactControl(options, validators) {\n return useControl(options, validators);\n}\nexport function useFormControl(options, validators) {\n return useControl(options, validators);\n}\nexport function useInputControl(options, validators) {\n return useControl(options, validators);\n}\n//# sourceMappingURL=form-control.js.map","import { controlsToValue, createFormGroupOptions, formGroupIsValid, verifyAllTrueInControls } from '@rolster/forms/helpers';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nfunction refactorForValid(controls, validators) {\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')\n };\n}\nfunction checkAllSuccess(status) {\n return status.reduce((success, status) => success && status, true);\n}\nfunction checkPartialSuccess(status) {\n return status.reduce((success, status) => success || status, false);\n}\nexport function useFormGroup(options, validators) {\n const formGroup = createFormGroupOptions(options, validators);\n const formInitialized = useRef({\n dirty: false,\n touched: false,\n value: false,\n visual: false\n });\n const formGroupStatus = useMemo(() => {\n const dirty = [];\n const touched = [];\n const value = [];\n const visual = [];\n Object.values(formGroup.controls).forEach((control) => {\n dirty.push(control.dirty);\n touched.push(control.touched);\n value.push(control.value);\n visual.push(control.disabled);\n visual.push(control.focused);\n });\n return {\n dirty,\n touched,\n value,\n visual\n };\n }, [formGroup.controls]);\n const [state, setState] = useState(() => {\n return {\n ...refactorForValid(formGroup.controls, formGroup.validators),\n controls: formGroup.controls,\n dirties: checkAllSuccess(formGroupStatus.dirty),\n dirty: checkPartialSuccess(formGroupStatus.dirty),\n touched: checkPartialSuccess(formGroupStatus.touched),\n toucheds: checkAllSuccess(formGroupStatus.touched),\n validators: formGroup.validators,\n value: controlsToValue(formGroup.controls)\n };\n });\n useEffect(() => {\n if (formInitialized.current.value) {\n setState((state) => ({\n ...state,\n ...refactorForValid(formGroup.controls, state.validators),\n controls: formGroup.controls,\n value: controlsToValue(formGroup.controls)\n }));\n }\n else {\n formInitialized.current.value = true;\n }\n }, formGroupStatus.value);\n useEffect(() => {\n if (formInitialized.current.dirty) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls,\n dirty: checkPartialSuccess(formGroupStatus.dirty),\n dirties: checkAllSuccess(formGroupStatus.dirty)\n }));\n }\n else {\n formInitialized.current.dirty = true;\n }\n }, formGroupStatus.dirty);\n useEffect(() => {\n if (formInitialized.current.touched) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls,\n touched: checkPartialSuccess(formGroupStatus.touched),\n toucheds: checkAllSuccess(formGroupStatus.touched)\n }));\n }\n else {\n formInitialized.current.touched = true;\n }\n }, formGroupStatus.touched);\n useEffect(() => {\n if (formInitialized.current.visual) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls\n }));\n }\n else {\n formInitialized.current.visual = true;\n }\n }, formGroupStatus.visual);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n ...refactorForValid(state.controls, validators)\n }));\n }, []);\n const reset = useCallback(() => {\n Object.values(formGroup.controls).forEach((control) => {\n control.reset();\n });\n }, []);\n return {\n ...state,\n error: state.errors[0],\n invalid: !state.valid,\n pristine: !state.dirty,\n pristines: !state.dirties,\n reset,\n setValidators,\n untouched: !state.touched,\n untoucheds: !state.toucheds,\n wrong: state.touched && !state.valid\n };\n}\n//# sourceMappingURL=form-group.js.map","import { reduceControlsToArray } from '@rolster/forms/helpers';\nexport function reduceControlsToValues(controls) {\n return reduceControlsToArray(controls, 'value');\n}\nexport function reduceGroupToValues(group) {\n return reduceControlsToValues(group.controls);\n}\n//# sourceMappingURL=helpers.js.map","import { useMemo, useState } from 'react';\nexport function useFormArrayGroupSelect({ formArray }) {\n const [formSelect, setFormGroup] = useState();\n const formGroup = useMemo(() => {\n return (formSelect &&\n formArray.groups.find(({ uuid }) => formSelect.uuid === uuid));\n }, [formArray.value, formSelect]);\n return { formGroup, setFormGroup };\n}\n//# sourceMappingURL=hooks.js.map"],"names":["formControlIsValid","hasError","someErrors","createFormControlOptions","uuid","refactorForValid","formGroupIsValid","verifyAllTrueInControls","refactorForControls","verifyAnyTrueInControls","controlsToValue","createFormGroupOptions","formArrayIsValid","verifyAllTrueInGroups","createFormArrayOptions","useRef","useState","useEffect","useCallback","rolsterHasError","rolsterSomeErrors","useMemo","reduceControlsToArray"],"mappings":"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"}
package/dist/es/index.js DELETED
@@ -1,737 +0,0 @@
1
- import { createFormControlOptions, formControlIsValid, hasError, someErrors, createFormGroupOptions, formGroupIsValid, controlsToValue, verifyAllTrueInControls, verifyAnyTrueInControls, createFormArrayOptions, formArrayIsValid, verifyAllTrueInGroups, reduceControlsToArray } from '@rolster/forms/helpers';
2
- import { v4 } from 'uuid';
3
- import { useRef, useState, useEffect, useCallback, useMemo } from 'react';
4
-
5
- class RolsterArrayControl {
6
- constructor(options) {
7
- this.uuid = options.uuid;
8
- this.defaultValue = options.defaultValue;
9
- this.value = options.value;
10
- this.focused = !!options.focused;
11
- this.unfocused = !this.focused;
12
- this.touched = !!options.touched;
13
- this.untouched = !this.touched;
14
- this.dirty = !!options.dirty;
15
- this.pristine = !this.dirty;
16
- this.disabled = !!options.disabled;
17
- this.enabled = !this.disabled;
18
- this.valid = this.isValid(options.errors);
19
- this.invalid = !this.valid;
20
- this.wrong = this.touched && this.invalid;
21
- this.errors = options.errors;
22
- this.error = this.errors[0];
23
- this.validators = options.validators;
24
- }
25
- focus() {
26
- this.unfocused && this.refresh('focused', { focused: true });
27
- }
28
- blur() {
29
- this.focused && this.refresh('focused', { focused: false, touched: true });
30
- }
31
- disable() {
32
- this.enabled && this.refresh('disabled', { disabled: true });
33
- }
34
- enable() {
35
- this.disabled && this.refresh('disabled', { disabled: false });
36
- }
37
- touch() {
38
- this.untouched && this.refresh('touched', { touched: true });
39
- }
40
- setDefaultValue(value) {
41
- if (value !== this.defaultValue) {
42
- const errors = this.validators
43
- ? formControlIsValid({ value, validators: this.validators })
44
- : [];
45
- this.refresh('value', { errors, defaultValue: value, value });
46
- }
47
- }
48
- setStartValue(value) {
49
- if (value !== this.value) {
50
- const errors = this.validators
51
- ? formControlIsValid({ value, validators: this.validators })
52
- : [];
53
- this.refresh('value', { errors, value });
54
- }
55
- }
56
- setValue(value) {
57
- if (value !== this.value) {
58
- const errors = this.validators
59
- ? formControlIsValid({ value, validators: this.validators })
60
- : [];
61
- this.refresh('value', { dirty: true, errors, value });
62
- }
63
- }
64
- setValidators(validators) {
65
- const errors = validators
66
- ? formControlIsValid({ value: this.value, validators })
67
- : [];
68
- this.refresh('validators', { errors, validators });
69
- }
70
- subscribe(subscriber) {
71
- this.subscriber = subscriber;
72
- }
73
- hasError(key) {
74
- return hasError(this.errors, key);
75
- }
76
- someErrors(keys) {
77
- return someErrors(this.errors, keys);
78
- }
79
- reset() {
80
- const errors = this.validators
81
- ? formControlIsValid({
82
- value: this.defaultValue,
83
- validators: this.validators
84
- })
85
- : [];
86
- this.refresh('reset', {
87
- dirty: false,
88
- errors,
89
- touched: false,
90
- value: this.defaultValue
91
- });
92
- }
93
- isValid(errors) {
94
- return errors.length === 0;
95
- }
96
- builder(options) {
97
- return new RolsterArrayControl({ ...this, ...options });
98
- }
99
- refresh(action, options) {
100
- this.subscriber && this.subscriber(action, this.builder(options));
101
- }
102
- }
103
- class ReactRolsterArrayControl extends RolsterArrayControl {
104
- constructor(options) {
105
- const { value, validators } = options;
106
- const errors = validators ? formControlIsValid({ value, validators }) : [];
107
- super({ ...options, errors });
108
- }
109
- }
110
- function rolsterArrayControl(options, validators) {
111
- const formControl = createFormControlOptions(options, validators);
112
- return new ReactRolsterArrayControl({
113
- ...formControl,
114
- defaultValue: formControl.value,
115
- uuid: v4()
116
- });
117
- }
118
- function reactArrayControl(options, validators) {
119
- return rolsterArrayControl(options, validators);
120
- }
121
- function formArrayControl(options, validators) {
122
- return rolsterArrayControl(options, validators);
123
- }
124
- function inputArrayControl(options, validators) {
125
- return rolsterArrayControl(options, validators);
126
- }
127
-
128
- function replaceControl(controls, control) {
129
- return Object.entries(controls).reduce((controls, [key, _control]) => {
130
- if (_control.uuid === control.uuid) {
131
- controls[key] = control;
132
- }
133
- return controls;
134
- }, controls);
135
- }
136
-
137
- function refactorForValid$2(controls, validators) {
138
- const errors = validators ? formGroupIsValid({ controls, validators }) : [];
139
- return {
140
- errors,
141
- valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')
142
- };
143
- }
144
- function refactorForControls$1(action, group, controls) {
145
- switch (action) {
146
- case 'focused':
147
- case 'touched':
148
- return {
149
- touched: verifyAnyTrueInControls(controls, 'touched'),
150
- toucheds: verifyAllTrueInControls(controls, 'touched')
151
- };
152
- case 'validators':
153
- return refactorForValid$2(controls, group.validators);
154
- case 'reset':
155
- return {
156
- ...refactorForValid$2(controls, group.validators),
157
- dirty: verifyAnyTrueInControls(controls, 'dirty'),
158
- dirties: verifyAllTrueInControls(controls, 'dirty'),
159
- touched: verifyAnyTrueInControls(controls, 'touched'),
160
- toucheds: verifyAllTrueInControls(controls, 'touched'),
161
- value: controlsToValue(controls)
162
- };
163
- case 'list':
164
- case 'value':
165
- return {
166
- ...refactorForValid$2(controls, group.validators),
167
- dirty: verifyAnyTrueInControls(controls, 'dirty'),
168
- dirties: verifyAllTrueInControls(controls, 'dirty'),
169
- value: controlsToValue(controls)
170
- };
171
- default:
172
- return {};
173
- }
174
- }
175
- class RolsterArrayGroup {
176
- constructor(options) {
177
- this.uuid = options.uuid;
178
- this.controls = options.controls;
179
- this.value = options.value;
180
- this.resource = options.resource;
181
- this.dirty = !!options.dirty;
182
- this.dirties = !!options.dirties;
183
- this.pristine = !this.dirty;
184
- this.pristines = !this.dirties;
185
- this.touched = !!options.touched;
186
- this.toucheds = !!options.toucheds;
187
- this.untouched = !this.touched;
188
- this.untoucheds = !this.toucheds;
189
- this.valid = !!options.valid;
190
- this.invalid = !this.valid;
191
- this.wrong = this.touched && this.invalid;
192
- this.errors = options.errors;
193
- this.error = this.errors[0];
194
- this.validators = options.validators;
195
- this.subscriberControl = (action, control) => {
196
- const controls = replaceControl(this.controls, control);
197
- this.refresh(action, {
198
- ...refactorForControls$1(action, this, controls),
199
- controls
200
- });
201
- };
202
- }
203
- subscribe(subscriber) {
204
- this.subscriber = subscriber;
205
- Object.values(this.controls).forEach((control) => {
206
- control.subscribe(this.subscriberControl);
207
- });
208
- }
209
- setValidators(validators) {
210
- this.refresh('validators', {
211
- ...refactorForValid$2(this.controls, validators),
212
- validators
213
- });
214
- }
215
- setResource(resource) {
216
- this.refresh('resource', { resource });
217
- }
218
- refresh(action, options) {
219
- this.subscriber &&
220
- this.subscriber(action, new RolsterArrayGroup({ ...this, ...options }));
221
- }
222
- }
223
- class ReactRolsterArrayGroup extends RolsterArrayGroup {
224
- constructor(options) {
225
- const { controls, validators } = options;
226
- const errors = validators ? formGroupIsValid({ controls, validators }) : [];
227
- super({
228
- ...options,
229
- errors,
230
- dirties: verifyAllTrueInControls(controls, 'dirty'),
231
- dirty: verifyAnyTrueInControls(controls, 'dirty'),
232
- touched: verifyAnyTrueInControls(controls, 'touched'),
233
- toucheds: verifyAllTrueInControls(controls, 'touched'),
234
- valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid'),
235
- value: controlsToValue(controls)
236
- });
237
- }
238
- }
239
- function valueIsGroupOptions(options) {
240
- return typeof options === 'object' && 'controls' in options;
241
- }
242
- function formArrayGroup(options, validators) {
243
- const _uuid = valueIsGroupOptions(options) ? options.uuid || v4() : v4();
244
- return new ReactRolsterArrayGroup({
245
- ...createFormGroupOptions(options, validators),
246
- uuid: _uuid
247
- });
248
- }
249
-
250
- class RolsterArrayList extends RolsterArrayControl {
251
- constructor(options) {
252
- const { controls, valueToControls, validators } = options;
253
- const value = controls.map(controlsToValue);
254
- const errors = validators ? formControlIsValid({ value, validators }) : [];
255
- super({ ...options, errors, value });
256
- this.valueToControls = valueToControls;
257
- this.controls = controls;
258
- this.valid =
259
- errors.length === 0 &&
260
- controls.reduce((valid, controls) => valid && verifyAllTrueInControls(controls, 'valid'), true);
261
- this.invalid = !this.valid;
262
- this.wrong = this.touched && this.invalid;
263
- controls.forEach((reactControls) => {
264
- this._subscribe(reactControls);
265
- });
266
- }
267
- setDefaultValue(value) {
268
- this.refresh('list', {
269
- controls: value.map(this.valueToControls),
270
- defaultValue: value
271
- });
272
- }
273
- setStartValue(value) {
274
- this.refresh('list', {
275
- controls: value.map(this.valueToControls)
276
- });
277
- }
278
- setValue(value) {
279
- this.refresh('list', {
280
- controls: value.map(this.valueToControls),
281
- dirty: true
282
- });
283
- }
284
- reset() {
285
- this.refresh('list', {
286
- controls: this.defaultValue.map(this.valueToControls),
287
- dirty: false,
288
- touched: false
289
- });
290
- }
291
- push(controls) {
292
- this.refresh('list', {
293
- controls: [...this.controls, controls]
294
- });
295
- }
296
- remove(controls) {
297
- this.refresh('list', {
298
- controls: this.controls.filter((_controls) => _controls !== controls)
299
- });
300
- }
301
- builder(options) {
302
- return new RolsterArrayList({
303
- ...this,
304
- ...options,
305
- valueToControls: this.valueToControls
306
- });
307
- }
308
- refresh(action, options) {
309
- super.refresh(action, options);
310
- }
311
- _subscribe(reactControls) {
312
- Object.values(reactControls).forEach((control) => {
313
- control.subscribe((action, _control) => {
314
- const _reactControls = this.controls.map((_controls) => reactControls !== _controls
315
- ? _controls
316
- : replaceControl(reactControls, _control));
317
- this.refresh(action, { controls: _reactControls });
318
- });
319
- });
320
- }
321
- }
322
- function formArrayList(options) {
323
- const value = options?.value || [];
324
- return new RolsterArrayList({
325
- ...options,
326
- controls: value.map((value) => options.valueToControls(value)),
327
- defaultValue: value,
328
- uuid: v4()
329
- });
330
- }
331
-
332
- function refactorForValid$1(groups, validators) {
333
- const errors = validators ? formArrayIsValid({ groups, validators }) : [];
334
- return {
335
- errors,
336
- valid: errors.length === 0 && verifyAllTrueInGroups(groups, 'valid')
337
- };
338
- }
339
- function refactorForGroups(groups, validators) {
340
- return {
341
- ...refactorForValid$1(groups, validators),
342
- groups,
343
- controls: groups.map(({ controls }) => controls),
344
- value: groups.map(({ controls }) => controlsToValue(controls))
345
- };
346
- }
347
- function refactorForControls(action, state, groups) {
348
- switch (action) {
349
- case 'validators':
350
- return refactorForValid$1(groups, state.validators);
351
- case 'reset':
352
- case 'list':
353
- case 'value':
354
- return refactorForGroups(groups, state.validators);
355
- default:
356
- return { groups };
357
- }
358
- }
359
- function useFormArray(options, validators) {
360
- const formArray = createFormArrayOptions(options, validators);
361
- const defaultValue = useRef(formArray.groups || []);
362
- const formGroups = useRef(new Map());
363
- const [state, setState] = useState(() => {
364
- return {
365
- ...refactorForValid$1(defaultValue.current, formArray.validators),
366
- controls: defaultValue.current.map(({ controls }) => controls),
367
- dirty: false,
368
- dirties: false,
369
- disabled: false,
370
- groups: defaultValue.current,
371
- touched: false,
372
- toucheds: false,
373
- value: defaultValue.current.map(({ controls }) => controlsToValue(controls)),
374
- validators: formArray.validators
375
- };
376
- });
377
- useEffect(() => {
378
- formGroups.current.clear();
379
- state.groups.forEach((group) => {
380
- formGroups.current.set(group.uuid, group);
381
- group.subscribe(subscriber);
382
- });
383
- }, [state.groups]);
384
- const subscriber = useCallback((action, group) => {
385
- setState((state) => {
386
- const groups = state.groups.map((currentGroup) => {
387
- return currentGroup.uuid === group.uuid ? group : currentGroup;
388
- });
389
- return {
390
- ...state,
391
- ...refactorForControls(action, state, groups)
392
- };
393
- });
394
- }, []);
395
- const disable = useCallback(() => {
396
- setState((state) => ({ ...state, disabled: true }));
397
- }, []);
398
- const enable = useCallback(() => {
399
- setState((state) => ({ ...state, disabled: false }));
400
- }, []);
401
- const setValue = useCallback((groups) => {
402
- setState((state) => ({
403
- ...state,
404
- ...refactorForGroups(groups, state.validators)
405
- }));
406
- }, []);
407
- const setDefaultValue = useCallback((groups) => {
408
- setState((state) => ({
409
- ...state,
410
- ...refactorForGroups(groups, state.validators)
411
- }));
412
- defaultValue.current = groups;
413
- }, []);
414
- const push = useCallback((group) => {
415
- setState((state) => ({
416
- ...state,
417
- ...refactorForGroups([...state.groups, group], state.validators)
418
- }));
419
- }, []);
420
- const merge = useCallback((groups) => {
421
- setState((state) => ({
422
- ...state,
423
- ...refactorForGroups([...state.groups, ...groups], state.validators)
424
- }));
425
- }, []);
426
- const remove = useCallback(({ uuid }) => {
427
- setState((state) => ({
428
- ...state,
429
- ...refactorForGroups(state.groups.filter((group) => group.uuid !== uuid), state.validators)
430
- }));
431
- }, []);
432
- const findByUuid = useCallback((uuid) => {
433
- return formGroups.current.get(uuid);
434
- }, [state.groups]);
435
- const setValidators = useCallback((validators) => {
436
- setState((state) => ({
437
- ...state,
438
- ...refactorForValid$1(state.groups, validators),
439
- validators
440
- }));
441
- }, []);
442
- const hasError$1 = useCallback((key) => {
443
- return hasError(state.errors, key);
444
- }, [state.errors]);
445
- const someErrors$1 = useCallback((keys) => {
446
- return someErrors(state.errors, keys);
447
- }, [state.errors]);
448
- const reset = useCallback(() => {
449
- setState((state) => ({
450
- ...state,
451
- ...refactorForGroups(defaultValue.current, state.validators)
452
- }));
453
- }, []);
454
- return {
455
- ...state,
456
- disable,
457
- enable,
458
- enabled: !state.disabled,
459
- error: state.errors[0],
460
- findByUuid,
461
- hasError: hasError$1,
462
- invalid: !state.valid,
463
- merge,
464
- pristine: !state.dirty,
465
- pristines: !state.dirties,
466
- push,
467
- remove,
468
- reset,
469
- setDefaultValue,
470
- setValidators,
471
- setValue,
472
- someErrors: someErrors$1,
473
- untouched: !state.touched,
474
- untoucheds: !state.toucheds,
475
- wrong: state.touched && !state.valid
476
- };
477
- }
478
-
479
- function errorsInControl(value, validators) {
480
- return validators ? formControlIsValid({ value, validators }) : [];
481
- }
482
- function useControl(options, validators) {
483
- const formControl = createFormControlOptions(options, validators);
484
- const defaultValue = useRef(formControl.value);
485
- const [state, setState] = useState(() => {
486
- return {
487
- dirty: false,
488
- disabled: false,
489
- errors: errorsInControl(formControl.value, formControl.validators),
490
- focused: false,
491
- touched: !!formControl.touched,
492
- value: formControl.value,
493
- validators: formControl.validators
494
- };
495
- });
496
- const elementRef = useRef(null);
497
- const focus = useCallback(() => {
498
- setState((state) => ({ ...state, focused: true }));
499
- }, []);
500
- const blur = useCallback(() => {
501
- setState((state) => ({ ...state, focused: false, touched: true }));
502
- }, []);
503
- const disable = useCallback(() => {
504
- setState((state) => ({ ...state, disabled: true }));
505
- }, []);
506
- const enable = useCallback(() => {
507
- setState((state) => ({ ...state, disabled: false }));
508
- }, []);
509
- const touch = useCallback(() => {
510
- setState((state) => ({ ...state, touched: true }));
511
- }, []);
512
- const setDefaultValue = useCallback((value) => {
513
- defaultValue.current = value;
514
- setState((state) => ({
515
- ...state,
516
- errors: errorsInControl(value, state.validators),
517
- value
518
- }));
519
- }, []);
520
- const setStartValue = useCallback((value) => {
521
- setState((state) => ({
522
- ...state,
523
- errors: errorsInControl(value, state.validators),
524
- value
525
- }));
526
- }, []);
527
- const setValue = useCallback((value) => {
528
- setState((state) => ({
529
- ...state,
530
- dirty: true,
531
- errors: errorsInControl(value, state.validators),
532
- value
533
- }));
534
- }, []);
535
- const setValidators = useCallback((validators) => {
536
- setState((state) => ({
537
- ...state,
538
- errors: errorsInControl(state.value, validators),
539
- validators
540
- }));
541
- }, []);
542
- const reset = useCallback(() => {
543
- setState((state) => ({
544
- ...state,
545
- dirty: false,
546
- errors: errorsInControl(defaultValue.current, state.validators),
547
- value: defaultValue.current,
548
- touched: false
549
- }));
550
- }, []);
551
- const hasError$1 = useCallback((key) => {
552
- return hasError(state.errors, key);
553
- }, [state.errors]);
554
- const someErrors$1 = useCallback((keys) => {
555
- return someErrors(state.errors, keys);
556
- }, [state.errors]);
557
- const valid = state.errors.length === 0;
558
- return {
559
- ...state,
560
- blur,
561
- disable,
562
- elementRef,
563
- enable,
564
- enabled: !state.disabled,
565
- error: state.errors[0],
566
- focus,
567
- hasError: hasError$1,
568
- invalid: !valid,
569
- pristine: !state.dirty,
570
- reset,
571
- setDefaultValue,
572
- setStartValue,
573
- setValidators,
574
- setValue,
575
- someErrors: someErrors$1,
576
- touch,
577
- unfocused: !state.focused,
578
- untouched: !state.touched,
579
- valid,
580
- wrong: state.touched && !valid
581
- };
582
- }
583
- function useReactControl(options, validators) {
584
- return useControl(options, validators);
585
- }
586
- function useFormControl(options, validators) {
587
- return useControl(options, validators);
588
- }
589
- function useInputControl(options, validators) {
590
- return useControl(options, validators);
591
- }
592
-
593
- function refactorForValid(controls, validators) {
594
- const errors = validators ? formGroupIsValid({ controls, validators }) : [];
595
- return {
596
- errors,
597
- valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')
598
- };
599
- }
600
- function checkAllSuccess(status) {
601
- return status.reduce((success, status) => success && status, true);
602
- }
603
- function checkPartialSuccess(status) {
604
- return status.reduce((success, status) => success || status, false);
605
- }
606
- function useFormGroup(options, validators) {
607
- const formGroup = createFormGroupOptions(options, validators);
608
- const formInitialized = useRef({
609
- dirty: false,
610
- touched: false,
611
- value: false,
612
- visual: false
613
- });
614
- const formGroupStatus = useMemo(() => {
615
- const dirty = [];
616
- const touched = [];
617
- const value = [];
618
- const visual = [];
619
- Object.values(formGroup.controls).forEach((control) => {
620
- dirty.push(control.dirty);
621
- touched.push(control.touched);
622
- value.push(control.value);
623
- visual.push(control.disabled);
624
- visual.push(control.focused);
625
- });
626
- return {
627
- dirty,
628
- touched,
629
- value,
630
- visual
631
- };
632
- }, [formGroup.controls]);
633
- const [state, setState] = useState(() => {
634
- return {
635
- ...refactorForValid(formGroup.controls, formGroup.validators),
636
- controls: formGroup.controls,
637
- dirties: checkAllSuccess(formGroupStatus.dirty),
638
- dirty: checkPartialSuccess(formGroupStatus.dirty),
639
- touched: checkPartialSuccess(formGroupStatus.touched),
640
- toucheds: checkAllSuccess(formGroupStatus.touched),
641
- validators: formGroup.validators,
642
- value: controlsToValue(formGroup.controls)
643
- };
644
- });
645
- useEffect(() => {
646
- if (formInitialized.current.value) {
647
- setState((state) => ({
648
- ...state,
649
- ...refactorForValid(formGroup.controls, state.validators),
650
- controls: formGroup.controls,
651
- value: controlsToValue(formGroup.controls)
652
- }));
653
- }
654
- else {
655
- formInitialized.current.value = true;
656
- }
657
- }, formGroupStatus.value);
658
- useEffect(() => {
659
- if (formInitialized.current.dirty) {
660
- setState((state) => ({
661
- ...state,
662
- controls: formGroup.controls,
663
- dirty: checkPartialSuccess(formGroupStatus.dirty),
664
- dirties: checkAllSuccess(formGroupStatus.dirty)
665
- }));
666
- }
667
- else {
668
- formInitialized.current.dirty = true;
669
- }
670
- }, formGroupStatus.dirty);
671
- useEffect(() => {
672
- if (formInitialized.current.touched) {
673
- setState((state) => ({
674
- ...state,
675
- controls: formGroup.controls,
676
- touched: checkPartialSuccess(formGroupStatus.touched),
677
- toucheds: checkAllSuccess(formGroupStatus.touched)
678
- }));
679
- }
680
- else {
681
- formInitialized.current.touched = true;
682
- }
683
- }, formGroupStatus.touched);
684
- useEffect(() => {
685
- if (formInitialized.current.visual) {
686
- setState((state) => ({
687
- ...state,
688
- controls: formGroup.controls
689
- }));
690
- }
691
- else {
692
- formInitialized.current.visual = true;
693
- }
694
- }, formGroupStatus.visual);
695
- const setValidators = useCallback((validators) => {
696
- setState((state) => ({
697
- ...state,
698
- ...refactorForValid(state.controls, validators)
699
- }));
700
- }, []);
701
- const reset = useCallback(() => {
702
- Object.values(formGroup.controls).forEach((control) => {
703
- control.reset();
704
- });
705
- }, []);
706
- return {
707
- ...state,
708
- error: state.errors[0],
709
- invalid: !state.valid,
710
- pristine: !state.dirty,
711
- pristines: !state.dirties,
712
- reset,
713
- setValidators,
714
- untouched: !state.touched,
715
- untoucheds: !state.toucheds,
716
- wrong: state.touched && !state.valid
717
- };
718
- }
719
-
720
- function reduceControlsToValues(controls) {
721
- return reduceControlsToArray(controls, 'value');
722
- }
723
- function reduceGroupToValues(group) {
724
- return reduceControlsToValues(group.controls);
725
- }
726
-
727
- function useFormArrayGroupSelect({ formArray }) {
728
- const [formSelect, setFormGroup] = useState();
729
- const formGroup = useMemo(() => {
730
- return (formSelect &&
731
- formArray.groups.find(({ uuid }) => formSelect.uuid === uuid));
732
- }, [formArray.value, formSelect]);
733
- return { formGroup, setFormGroup };
734
- }
735
-
736
- export { formArrayControl, formArrayGroup, formArrayList, inputArrayControl, reactArrayControl, reduceControlsToValues, reduceGroupToValues, useFormArray, useFormArrayGroupSelect, useFormControl, useFormGroup, useInputControl, useReactControl };
737
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../esm/form-array/form-array-control.js","../esm/utilities.js","../esm/form-array/form-array-group.js","../esm/form-array/form-array-list.js","../esm/form-array/form-array.js","../esm/form-control.js","../esm/form-group.js","../esm/helpers.js","../esm/hooks.js"],"sourcesContent":["import { createFormControlOptions, formControlIsValid, hasError, someErrors } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nexport class RolsterArrayControl {\n constructor(options) {\n this.uuid = options.uuid;\n this.defaultValue = options.defaultValue;\n this.value = options.value;\n this.focused = !!options.focused;\n this.unfocused = !this.focused;\n this.touched = !!options.touched;\n this.untouched = !this.touched;\n this.dirty = !!options.dirty;\n this.pristine = !this.dirty;\n this.disabled = !!options.disabled;\n this.enabled = !this.disabled;\n this.valid = this.isValid(options.errors);\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n this.errors = options.errors;\n this.error = this.errors[0];\n this.validators = options.validators;\n }\n focus() {\n this.unfocused && this.refresh('focused', { focused: true });\n }\n blur() {\n this.focused && this.refresh('focused', { focused: false, touched: true });\n }\n disable() {\n this.enabled && this.refresh('disabled', { disabled: true });\n }\n enable() {\n this.disabled && this.refresh('disabled', { disabled: false });\n }\n touch() {\n this.untouched && this.refresh('touched', { touched: true });\n }\n setDefaultValue(value) {\n if (value !== this.defaultValue) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { errors, defaultValue: value, value });\n }\n }\n setStartValue(value) {\n if (value !== this.value) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { errors, value });\n }\n }\n setValue(value) {\n if (value !== this.value) {\n const errors = this.validators\n ? formControlIsValid({ value, validators: this.validators })\n : [];\n this.refresh('value', { dirty: true, errors, value });\n }\n }\n setValidators(validators) {\n const errors = validators\n ? formControlIsValid({ value: this.value, validators })\n : [];\n this.refresh('validators', { errors, validators });\n }\n subscribe(subscriber) {\n this.subscriber = subscriber;\n }\n hasError(key) {\n return hasError(this.errors, key);\n }\n someErrors(keys) {\n return someErrors(this.errors, keys);\n }\n reset() {\n const errors = this.validators\n ? formControlIsValid({\n value: this.defaultValue,\n validators: this.validators\n })\n : [];\n this.refresh('reset', {\n dirty: false,\n errors,\n touched: false,\n value: this.defaultValue\n });\n }\n isValid(errors) {\n return errors.length === 0;\n }\n builder(options) {\n return new RolsterArrayControl({ ...this, ...options });\n }\n refresh(action, options) {\n this.subscriber && this.subscriber(action, this.builder(options));\n }\n}\nclass ReactRolsterArrayControl extends RolsterArrayControl {\n constructor(options) {\n const { value, validators } = options;\n const errors = validators ? formControlIsValid({ value, validators }) : [];\n super({ ...options, errors });\n }\n}\nfunction rolsterArrayControl(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n return new ReactRolsterArrayControl({\n ...formControl,\n defaultValue: formControl.value,\n uuid: uuid()\n });\n}\nexport function reactArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\nexport function formArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\nexport function inputArrayControl(options, validators) {\n return rolsterArrayControl(options, validators);\n}\n//# sourceMappingURL=form-array-control.js.map","export function replaceControl(controls, control) {\n return Object.entries(controls).reduce((controls, [key, _control]) => {\n if (_control.uuid === control.uuid) {\n controls[key] = control;\n }\n return controls;\n }, controls);\n}\n//# sourceMappingURL=utilities.js.map","import { createFormGroupOptions } from '@rolster/forms/helpers';\nimport { controlsToValue, formGroupIsValid, verifyAllTrueInControls, verifyAnyTrueInControls } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nimport { replaceControl } from '../utilities';\nfunction refactorForValid(controls, validators) {\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')\n };\n}\nfunction refactorForControls(action, group, controls) {\n switch (action) {\n case 'focused':\n case 'touched':\n return {\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched')\n };\n case 'validators':\n return refactorForValid(controls, group.validators);\n case 'reset':\n return {\n ...refactorForValid(controls, group.validators),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched'),\n value: controlsToValue(controls)\n };\n case 'list':\n case 'value':\n return {\n ...refactorForValid(controls, group.validators),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n value: controlsToValue(controls)\n };\n default:\n return {};\n }\n}\nexport class RolsterArrayGroup {\n constructor(options) {\n this.uuid = options.uuid;\n this.controls = options.controls;\n this.value = options.value;\n this.resource = options.resource;\n this.dirty = !!options.dirty;\n this.dirties = !!options.dirties;\n this.pristine = !this.dirty;\n this.pristines = !this.dirties;\n this.touched = !!options.touched;\n this.toucheds = !!options.toucheds;\n this.untouched = !this.touched;\n this.untoucheds = !this.toucheds;\n this.valid = !!options.valid;\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n this.errors = options.errors;\n this.error = this.errors[0];\n this.validators = options.validators;\n this.subscriberControl = (action, control) => {\n const controls = replaceControl(this.controls, control);\n this.refresh(action, {\n ...refactorForControls(action, this, controls),\n controls\n });\n };\n }\n subscribe(subscriber) {\n this.subscriber = subscriber;\n Object.values(this.controls).forEach((control) => {\n control.subscribe(this.subscriberControl);\n });\n }\n setValidators(validators) {\n this.refresh('validators', {\n ...refactorForValid(this.controls, validators),\n validators\n });\n }\n setResource(resource) {\n this.refresh('resource', { resource });\n }\n refresh(action, options) {\n this.subscriber &&\n this.subscriber(action, new RolsterArrayGroup({ ...this, ...options }));\n }\n}\nclass ReactRolsterArrayGroup extends RolsterArrayGroup {\n constructor(options) {\n const { controls, validators } = options;\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n super({\n ...options,\n errors,\n dirties: verifyAllTrueInControls(controls, 'dirty'),\n dirty: verifyAnyTrueInControls(controls, 'dirty'),\n touched: verifyAnyTrueInControls(controls, 'touched'),\n toucheds: verifyAllTrueInControls(controls, 'touched'),\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid'),\n value: controlsToValue(controls)\n });\n }\n}\nfunction valueIsGroupOptions(options) {\n return typeof options === 'object' && 'controls' in options;\n}\nexport function formArrayGroup(options, validators) {\n const _uuid = valueIsGroupOptions(options) ? options.uuid || uuid() : uuid();\n return new ReactRolsterArrayGroup({\n ...createFormGroupOptions(options, validators),\n uuid: _uuid\n });\n}\n//# sourceMappingURL=form-array-group.js.map","import { controlsToValue, formControlIsValid, verifyAllTrueInControls } from '@rolster/forms/helpers';\nimport { v4 as uuid } from 'uuid';\nimport { replaceControl } from '../utilities';\nimport { RolsterArrayControl } from './form-array-control';\nclass RolsterArrayList extends RolsterArrayControl {\n constructor(options) {\n const { controls, valueToControls, validators } = options;\n const value = controls.map(controlsToValue);\n const errors = validators ? formControlIsValid({ value, validators }) : [];\n super({ ...options, errors, value });\n this.valueToControls = valueToControls;\n this.controls = controls;\n this.valid =\n errors.length === 0 &&\n controls.reduce((valid, controls) => valid && verifyAllTrueInControls(controls, 'valid'), true);\n this.invalid = !this.valid;\n this.wrong = this.touched && this.invalid;\n controls.forEach((reactControls) => {\n this._subscribe(reactControls);\n });\n }\n setDefaultValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls),\n defaultValue: value\n });\n }\n setStartValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls)\n });\n }\n setValue(value) {\n this.refresh('list', {\n controls: value.map(this.valueToControls),\n dirty: true\n });\n }\n reset() {\n this.refresh('list', {\n controls: this.defaultValue.map(this.valueToControls),\n dirty: false,\n touched: false\n });\n }\n push(controls) {\n this.refresh('list', {\n controls: [...this.controls, controls]\n });\n }\n remove(controls) {\n this.refresh('list', {\n controls: this.controls.filter((_controls) => _controls !== controls)\n });\n }\n builder(options) {\n return new RolsterArrayList({\n ...this,\n ...options,\n valueToControls: this.valueToControls\n });\n }\n refresh(action, options) {\n super.refresh(action, options);\n }\n _subscribe(reactControls) {\n Object.values(reactControls).forEach((control) => {\n control.subscribe((action, _control) => {\n const _reactControls = this.controls.map((_controls) => reactControls !== _controls\n ? _controls\n : replaceControl(reactControls, _control));\n this.refresh(action, { controls: _reactControls });\n });\n });\n }\n}\nexport function formArrayList(options) {\n const value = options?.value || [];\n return new RolsterArrayList({\n ...options,\n controls: value.map((value) => options.valueToControls(value)),\n defaultValue: value,\n uuid: uuid()\n });\n}\n//# sourceMappingURL=form-array-list.js.map","import { controlsToValue, createFormArrayOptions, formArrayIsValid, hasError as rolsterHasError, someErrors as rolsterSomeErrors, verifyAllTrueInGroups } from '@rolster/forms/helpers';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nfunction refactorForValid(groups, validators) {\n const errors = validators ? formArrayIsValid({ groups, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInGroups(groups, 'valid')\n };\n}\nfunction refactorForGroups(groups, validators) {\n return {\n ...refactorForValid(groups, validators),\n groups,\n controls: groups.map(({ controls }) => controls),\n value: groups.map(({ controls }) => controlsToValue(controls))\n };\n}\nfunction refactorForControls(action, state, groups) {\n switch (action) {\n case 'validators':\n return refactorForValid(groups, state.validators);\n case 'reset':\n case 'list':\n case 'value':\n return refactorForGroups(groups, state.validators);\n default:\n return { groups };\n }\n}\nexport function useFormArray(options, validators) {\n const formArray = createFormArrayOptions(options, validators);\n const defaultValue = useRef(formArray.groups || []);\n const formGroups = useRef(new Map());\n const [state, setState] = useState(() => {\n return {\n ...refactorForValid(defaultValue.current, formArray.validators),\n controls: defaultValue.current.map(({ controls }) => controls),\n dirty: false,\n dirties: false,\n disabled: false,\n groups: defaultValue.current,\n touched: false,\n toucheds: false,\n value: defaultValue.current.map(({ controls }) => controlsToValue(controls)),\n validators: formArray.validators\n };\n });\n useEffect(() => {\n formGroups.current.clear();\n state.groups.forEach((group) => {\n formGroups.current.set(group.uuid, group);\n group.subscribe(subscriber);\n });\n }, [state.groups]);\n const subscriber = useCallback((action, group) => {\n setState((state) => {\n const groups = state.groups.map((currentGroup) => {\n return currentGroup.uuid === group.uuid ? group : currentGroup;\n });\n return {\n ...state,\n ...refactorForControls(action, state, groups)\n };\n });\n }, []);\n const disable = useCallback(() => {\n setState((state) => ({ ...state, disabled: true }));\n }, []);\n const enable = useCallback(() => {\n setState((state) => ({ ...state, disabled: false }));\n }, []);\n const setValue = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(groups, state.validators)\n }));\n }, []);\n const setDefaultValue = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(groups, state.validators)\n }));\n defaultValue.current = groups;\n }, []);\n const push = useCallback((group) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups([...state.groups, group], state.validators)\n }));\n }, []);\n const merge = useCallback((groups) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups([...state.groups, ...groups], state.validators)\n }));\n }, []);\n const remove = useCallback(({ uuid }) => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(state.groups.filter((group) => group.uuid !== uuid), state.validators)\n }));\n }, []);\n const findByUuid = useCallback((uuid) => {\n return formGroups.current.get(uuid);\n }, [state.groups]);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n ...refactorForValid(state.groups, validators),\n validators\n }));\n }, []);\n const hasError = useCallback((key) => {\n return rolsterHasError(state.errors, key);\n }, [state.errors]);\n const someErrors = useCallback((keys) => {\n return rolsterSomeErrors(state.errors, keys);\n }, [state.errors]);\n const reset = useCallback(() => {\n setState((state) => ({\n ...state,\n ...refactorForGroups(defaultValue.current, state.validators)\n }));\n }, []);\n return {\n ...state,\n disable,\n enable,\n enabled: !state.disabled,\n error: state.errors[0],\n findByUuid,\n hasError,\n invalid: !state.valid,\n merge,\n pristine: !state.dirty,\n pristines: !state.dirties,\n push,\n remove,\n reset,\n setDefaultValue,\n setValidators,\n setValue,\n someErrors,\n untouched: !state.touched,\n untoucheds: !state.toucheds,\n wrong: state.touched && !state.valid\n };\n}\n//# sourceMappingURL=form-array.js.map","import { createFormControlOptions, formControlIsValid, hasError as rolsterHasError, someErrors as rolsterSomeErrors } from '@rolster/forms/helpers';\nimport { useCallback, useRef, useState } from 'react';\nfunction errorsInControl(value, validators) {\n return validators ? formControlIsValid({ value, validators }) : [];\n}\nfunction useControl(options, validators) {\n const formControl = createFormControlOptions(options, validators);\n const defaultValue = useRef(formControl.value);\n const [state, setState] = useState(() => {\n return {\n dirty: false,\n disabled: false,\n errors: errorsInControl(formControl.value, formControl.validators),\n focused: false,\n touched: !!formControl.touched,\n value: formControl.value,\n validators: formControl.validators\n };\n });\n const elementRef = useRef(null);\n const focus = useCallback(() => {\n setState((state) => ({ ...state, focused: true }));\n }, []);\n const blur = useCallback(() => {\n setState((state) => ({ ...state, focused: false, touched: true }));\n }, []);\n const disable = useCallback(() => {\n setState((state) => ({ ...state, disabled: true }));\n }, []);\n const enable = useCallback(() => {\n setState((state) => ({ ...state, disabled: false }));\n }, []);\n const touch = useCallback(() => {\n setState((state) => ({ ...state, touched: true }));\n }, []);\n const setDefaultValue = useCallback((value) => {\n defaultValue.current = value;\n setState((state) => ({\n ...state,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setStartValue = useCallback((value) => {\n setState((state) => ({\n ...state,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setValue = useCallback((value) => {\n setState((state) => ({\n ...state,\n dirty: true,\n errors: errorsInControl(value, state.validators),\n value\n }));\n }, []);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n errors: errorsInControl(state.value, validators),\n validators\n }));\n }, []);\n const reset = useCallback(() => {\n setState((state) => ({\n ...state,\n dirty: false,\n errors: errorsInControl(defaultValue.current, state.validators),\n value: defaultValue.current,\n touched: false\n }));\n }, []);\n const hasError = useCallback((key) => {\n return rolsterHasError(state.errors, key);\n }, [state.errors]);\n const someErrors = useCallback((keys) => {\n return rolsterSomeErrors(state.errors, keys);\n }, [state.errors]);\n const valid = state.errors.length === 0;\n return {\n ...state,\n blur,\n disable,\n elementRef,\n enable,\n enabled: !state.disabled,\n error: state.errors[0],\n focus,\n hasError,\n invalid: !valid,\n pristine: !state.dirty,\n reset,\n setDefaultValue,\n setStartValue,\n setValidators,\n setValue,\n someErrors,\n touch,\n unfocused: !state.focused,\n untouched: !state.touched,\n valid,\n wrong: state.touched && !valid\n };\n}\nexport function useReactControl(options, validators) {\n return useControl(options, validators);\n}\nexport function useFormControl(options, validators) {\n return useControl(options, validators);\n}\nexport function useInputControl(options, validators) {\n return useControl(options, validators);\n}\n//# sourceMappingURL=form-control.js.map","import { controlsToValue, createFormGroupOptions, formGroupIsValid, verifyAllTrueInControls } from '@rolster/forms/helpers';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nfunction refactorForValid(controls, validators) {\n const errors = validators ? formGroupIsValid({ controls, validators }) : [];\n return {\n errors,\n valid: errors.length === 0 && verifyAllTrueInControls(controls, 'valid')\n };\n}\nfunction checkAllSuccess(status) {\n return status.reduce((success, status) => success && status, true);\n}\nfunction checkPartialSuccess(status) {\n return status.reduce((success, status) => success || status, false);\n}\nexport function useFormGroup(options, validators) {\n const formGroup = createFormGroupOptions(options, validators);\n const formInitialized = useRef({\n dirty: false,\n touched: false,\n value: false,\n visual: false\n });\n const formGroupStatus = useMemo(() => {\n const dirty = [];\n const touched = [];\n const value = [];\n const visual = [];\n Object.values(formGroup.controls).forEach((control) => {\n dirty.push(control.dirty);\n touched.push(control.touched);\n value.push(control.value);\n visual.push(control.disabled);\n visual.push(control.focused);\n });\n return {\n dirty,\n touched,\n value,\n visual\n };\n }, [formGroup.controls]);\n const [state, setState] = useState(() => {\n return {\n ...refactorForValid(formGroup.controls, formGroup.validators),\n controls: formGroup.controls,\n dirties: checkAllSuccess(formGroupStatus.dirty),\n dirty: checkPartialSuccess(formGroupStatus.dirty),\n touched: checkPartialSuccess(formGroupStatus.touched),\n toucheds: checkAllSuccess(formGroupStatus.touched),\n validators: formGroup.validators,\n value: controlsToValue(formGroup.controls)\n };\n });\n useEffect(() => {\n if (formInitialized.current.value) {\n setState((state) => ({\n ...state,\n ...refactorForValid(formGroup.controls, state.validators),\n controls: formGroup.controls,\n value: controlsToValue(formGroup.controls)\n }));\n }\n else {\n formInitialized.current.value = true;\n }\n }, formGroupStatus.value);\n useEffect(() => {\n if (formInitialized.current.dirty) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls,\n dirty: checkPartialSuccess(formGroupStatus.dirty),\n dirties: checkAllSuccess(formGroupStatus.dirty)\n }));\n }\n else {\n formInitialized.current.dirty = true;\n }\n }, formGroupStatus.dirty);\n useEffect(() => {\n if (formInitialized.current.touched) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls,\n touched: checkPartialSuccess(formGroupStatus.touched),\n toucheds: checkAllSuccess(formGroupStatus.touched)\n }));\n }\n else {\n formInitialized.current.touched = true;\n }\n }, formGroupStatus.touched);\n useEffect(() => {\n if (formInitialized.current.visual) {\n setState((state) => ({\n ...state,\n controls: formGroup.controls\n }));\n }\n else {\n formInitialized.current.visual = true;\n }\n }, formGroupStatus.visual);\n const setValidators = useCallback((validators) => {\n setState((state) => ({\n ...state,\n ...refactorForValid(state.controls, validators)\n }));\n }, []);\n const reset = useCallback(() => {\n Object.values(formGroup.controls).forEach((control) => {\n control.reset();\n });\n }, []);\n return {\n ...state,\n error: state.errors[0],\n invalid: !state.valid,\n pristine: !state.dirty,\n pristines: !state.dirties,\n reset,\n setValidators,\n untouched: !state.touched,\n untoucheds: !state.toucheds,\n wrong: state.touched && !state.valid\n };\n}\n//# sourceMappingURL=form-group.js.map","import { reduceControlsToArray } from '@rolster/forms/helpers';\nexport function reduceControlsToValues(controls) {\n return reduceControlsToArray(controls, 'value');\n}\nexport function reduceGroupToValues(group) {\n return reduceControlsToValues(group.controls);\n}\n//# sourceMappingURL=helpers.js.map","import { useMemo, useState } from 'react';\nexport function useFormArrayGroupSelect({ formArray }) {\n const [formSelect, setFormGroup] = useState();\n const formGroup = useMemo(() => {\n return (formSelect &&\n formArray.groups.find(({ uuid }) => formSelect.uuid === uuid));\n }, [formArray.value, formSelect]);\n return { formGroup, setFormGroup };\n}\n//# sourceMappingURL=hooks.js.map"],"names":["uuid","refactorForValid","refactorForControls","hasError","rolsterHasError","someErrors","rolsterSomeErrors"],"mappings":"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"}