linear-react-components-ui 2.3.1-beta.3 → 2.3.1-beta.4

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.
@@ -129,5 +129,5 @@ export interface UseFormReturn<T> {
129
129
  * Define erros manualmente em campos do formulário, útil para erros externos (ex: backend).
130
130
  * @param errors - Objeto contendo mensagens de erro para campos.
131
131
  */
132
- setExternalErrors: (errors: Record<string, string[]>) => void;
132
+ setExternalErrors: (errors: Record<string, string[] | null | undefined>) => void;
133
133
  }
@@ -10,6 +10,7 @@ const useForm = ({
10
10
  }) => {
11
11
  const [values, setValues] = useState(initialValues);
12
12
  const [errors, setErrors] = useState({});
13
+ const [externalErrors, setExternalErrorsState] = useState({});
13
14
  const [changed, setChanged] = useState({});
14
15
  const [touched, setTouched] = useState({});
15
16
  const fieldsRef = useRef({});
@@ -54,18 +55,27 @@ const useForm = ({
54
55
  return fieldValidators_1.every((validator_1) => !validator_1(value_1, values));
55
56
  });
56
57
  };
58
+ const mergeErrors = (internalErrors, externalErrorsState) => {
59
+ const mergedErrors = _.cloneDeep(internalErrors);
60
+ const externalPaths = Object.keys(flattenValidators(externalErrorsState));
61
+ externalPaths.forEach((path_3) => {
62
+ const internalFieldErrors = _.get(mergedErrors, path_3) ?? [];
63
+ const externalFieldErrors = _.get(externalErrorsState, path_3) ?? [];
64
+ _.set(mergedErrors, path_3, [...internalFieldErrors, ...externalFieldErrors]);
65
+ });
66
+ return mergedErrors;
67
+ };
68
+ const allErrors = mergeErrors(errors, externalErrors);
57
69
  const getFieldError = (name) => {
58
- const fieldErrors_1 = _.get(errors, name) ?? [];
70
+ const fieldErrors_1 = _.get(allErrors, name) ?? [];
59
71
  return fieldErrors_1;
60
72
  };
61
- const setExternalErrors = (externalErrors) => {
62
- setErrors((prevStateErrors) => {
63
- const newErrorsState = _.cloneDeep(prevStateErrors);
64
- Object.entries(externalErrors).forEach(([key, value_2]) => {
65
- _.set(newErrorsState, key, value_2);
66
- });
67
- return newErrorsState;
73
+ const setExternalErrors = (newExternalErrors) => {
74
+ const newExternalErrorsState = {};
75
+ Object.entries(newExternalErrors ?? {}).forEach(([key, value_2]) => {
76
+ if (!_.isEmpty(value_2)) _.set(newExternalErrorsState, key, value_2);
68
77
  });
78
+ setExternalErrorsState(newExternalErrorsState);
69
79
  };
70
80
  const getFieldValue = (name_0) => {
71
81
  return _.get(values, name_0);
@@ -97,18 +107,21 @@ const useForm = ({
97
107
  const compareField = (name_3, valueToCompare_0) => {
98
108
  return _.isEqual(_.get(values, name_3), valueToCompare_0);
99
109
  };
100
- const cleanErrors = (fieldsToClean) => {
101
- if (!fieldsToClean) {
110
+ const unsetErrorPaths = (errorsState, fieldsToClean) => {
111
+ const newErrorsState = _.cloneDeep(errorsState);
112
+ fieldsToClean.forEach((key_0) => {
113
+ _.unset(newErrorsState, key_0);
114
+ });
115
+ return newErrorsState;
116
+ };
117
+ const cleanErrors = (fieldsToClean_0) => {
118
+ if (!fieldsToClean_0) {
102
119
  setErrors({});
120
+ setExternalErrorsState({});
103
121
  return;
104
122
  }
105
- setErrors((prevErrorsState_0) => {
106
- const newErrorsState_0 = _.cloneDeep(prevErrorsState_0);
107
- fieldsToClean.forEach((key_0) => {
108
- _.unset(newErrorsState_0, key_0);
109
- });
110
- return newErrorsState_0;
111
- });
123
+ setErrors((prevErrorsState_0) => unsetErrorPaths(prevErrorsState_0, fieldsToClean_0));
124
+ setExternalErrorsState((prevErrorsState_1) => unsetErrorPaths(prevErrorsState_1, fieldsToClean_0));
112
125
  };
113
126
  const reset = (inputsToReset, internalReset) => {
114
127
  const newValuesState = _.cloneDeep(values);
@@ -125,15 +138,11 @@ const useForm = ({
125
138
  setTouched(newTouchedState);
126
139
  setChanged(newChangedState);
127
140
  if (inputsToReset) {
128
- setErrors((prevErrorsState_1) => {
129
- const newErrorsState_1 = _.cloneDeep(prevErrorsState_1);
130
- inputsToReset.forEach((key_2) => {
131
- _.unset(newErrorsState_1, key_2);
132
- });
133
- return newErrorsState_1;
134
- });
141
+ setErrors((prevErrorsState_2) => unsetErrorPaths(prevErrorsState_2, inputsToReset));
142
+ setExternalErrorsState((prevErrorsState_3) => unsetErrorPaths(prevErrorsState_3, inputsToReset));
135
143
  } else {
136
144
  setErrors({});
145
+ setExternalErrorsState({});
137
146
  }
138
147
  if (!internalReset) {
139
148
  valuesToCompareInChangedRef.current = initialValuesRef.current;
@@ -159,7 +168,7 @@ const useForm = ({
159
168
  fieldsRef.current[name_4] = inputElement;
160
169
  }, ref),
161
170
  value: _.get(values, name_4, _.get(initialValuesRef.current, name_4, "")),
162
- errors: _.get(errors, name_4, []),
171
+ errors: _.get(allErrors, name_4, []),
163
172
  onChange: (event) => {
164
173
  const {
165
174
  value: value_4
@@ -208,7 +217,7 @@ const useForm = ({
208
217
  reset,
209
218
  changed,
210
219
  values,
211
- errors,
220
+ errors: allErrors,
212
221
  touched,
213
222
  isValid,
214
223
  formHasChange,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/lib/form2/useForm/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { ChangeEvent, FocusEvent, FormEvent, useRef, useState } from 'react';\nimport type {\n FieldErrors, FieldChanged, FieldTouched, FieldFocusOptions, UseFormProps,\n UseFormReturn, DeepPartial,\n RegisterOptions,\n} from '../types';\nimport { deepMergeValues, flattenValidators, mergeRefs } from '../helpers';\n\nconst useForm = <ValuesType extends Record<string, any>>({\n initialValues,\n validators = {},\n options = { validationMode: 'default' },\n}: UseFormProps<ValuesType>): UseFormReturn<ValuesType> => {\n const [values, setValues] = useState<ValuesType>(initialValues);\n const [errors, setErrors] = useState<FieldErrors<ValuesType>>({});\n const [changed, setChanged] = useState<FieldChanged<ValuesType>>({});\n const [touched, setTouched] = useState<FieldTouched<ValuesType>>({});\n const fieldsRef = useRef<Record<string, HTMLInputElement | HTMLTextAreaElement | null>>({});\n const initialValuesRef = useRef<ValuesType>(initialValues);\n const valuesToCompareInChangedRef = useRef<ValuesType>(initialValues);\n\n const flattenedValidators = flattenValidators(validators);\n\n const validateBatchOfFields = (\n valuesSnapshot: ValuesType,\n touchedFields: FieldTouched<ValuesType> = touched,\n errorsFields: FieldErrors<ValuesType> = errors,\n ) => {\n const fieldsToValidate = Object.keys(flattenedValidators).filter((path) => {\n const wasTouched = _.get(touchedFields, path);\n const hasErrors = !_.isEmpty(_.get(errorsFields, path));\n return Boolean(wasTouched || hasErrors);\n });\n\n if (!fieldsToValidate.length) return;\n\n setErrors((prevErrorsState) => {\n const updatedErrorsState = _.cloneDeep(prevErrorsState);\n\n fieldsToValidate.forEach((path) => {\n const value = _.get(valuesSnapshot, path);\n const fieldValidators = _.get(flattenedValidators, path) ?? [];\n const fieldErrors = fieldValidators\n .map((validator: any) => validator(value, valuesSnapshot))\n .filter((message: string) => Boolean(message));\n\n _.set(updatedErrorsState, path, fieldErrors);\n });\n\n return updatedErrorsState;\n });\n };\n\n const validateAllFields = () => {\n const allValidationErrors: FieldErrors<ValuesType> = {};\n\n Object.keys(flattenedValidators).forEach((path) => {\n const value = _.get(values, path);\n const fieldValidators = _.get(flattenedValidators, path) ?? [];\n const fieldErrors = fieldValidators\n .map((validator: any) => validator(value, values))\n .filter((message: string) => Boolean(message));\n\n if (fieldErrors.length) {\n _.set(allValidationErrors, path, fieldErrors);\n }\n });\n\n setErrors(allValidationErrors);\n return allValidationErrors;\n };\n\n const checkFormIsValid = () => {\n return Object.keys(flattenedValidators).every((path) => {\n const value = _.get(values, path);\n const fieldValidators = _.get(flattenedValidators, path) ?? [];\n return fieldValidators.every((validator: any) => !validator(value, values));\n });\n };\n\n const getFieldError = (name: string): string[] => {\n const fieldErrors = _.get(errors, name) as string[] ?? [];\n return fieldErrors;\n };\n\n const setExternalErrors = (externalErrors: Record<string, string[]>) => {\n setErrors((prevStateErrors) => {\n const newErrorsState = _.cloneDeep(prevStateErrors);\n Object.entries(externalErrors).forEach(([key, value]) => {\n _.set(newErrorsState, key, value);\n });\n return newErrorsState;\n });\n };\n\n const getFieldValue = (name: string): any => {\n return _.get(values, name);\n };\n\n const setFieldValue = (name: string, value: any) => {\n setValues((prevStateValues) => {\n const updatedValuesState = _.cloneDeep(prevStateValues);\n _.set(updatedValuesState, name, value);\n\n const valueToCompare = _.get(valuesToCompareInChangedRef.current, name);\n const hasChanged = !_.isEqual(valueToCompare, value);\n\n setChanged((prevStateChanged) => {\n const updatedChangedState = _.cloneDeep(prevStateChanged);\n _.set(updatedChangedState, name, hasChanged);\n return updatedChangedState;\n });\n\n if (options.validationMode === 'default') {\n validateBatchOfFields(updatedValuesState);\n }\n\n return updatedValuesState;\n });\n };\n\n const setFieldFocus = (name: string, fieldFocusOptions?: FieldFocusOptions) => {\n const field = fieldsRef.current[name];\n field?.focus?.();\n if (fieldFocusOptions?.shouldSelect) {\n field?.select?.();\n }\n };\n\n const compareField = (name: string, valueToCompare: any): boolean => {\n return _.isEqual(_.get(values, name), valueToCompare);\n };\n\n const cleanErrors = (fieldsToClean?: string[]) => {\n if (!fieldsToClean) {\n setErrors({});\n return;\n }\n\n setErrors((prevErrorsState) => {\n const newErrorsState = _.cloneDeep(prevErrorsState);\n fieldsToClean.forEach((key) => {\n _.unset(newErrorsState, key);\n });\n return newErrorsState;\n });\n };\n\n const reset = (inputsToReset?: string[], internalReset?: boolean) => {\n const newValuesState = _.cloneDeep(values);\n const newTouchedState = _.cloneDeep(touched);\n const newChangedState = _.cloneDeep(changed);\n const inputs = inputsToReset ?? Object.keys(initialValuesRef.current);\n\n inputs.forEach((key) => {\n const initialValue = _.get(initialValuesRef.current, key);\n _.set(newValuesState, key, initialValue);\n _.set(newTouchedState, key, false);\n _.set(newChangedState, key, false);\n });\n\n setValues(newValuesState);\n setTouched(newTouchedState);\n setChanged(newChangedState);\n\n if (inputsToReset) {\n setErrors((prevErrorsState) => {\n const newErrorsState = _.cloneDeep(prevErrorsState);\n inputsToReset.forEach((key) => {\n _.unset(newErrorsState, key);\n });\n return newErrorsState;\n });\n } else {\n setErrors({});\n }\n\n if (!internalReset) { valuesToCompareInChangedRef.current = initialValuesRef.current; }\n };\n\n const changeValues = (fieldValues: DeepPartial<ValuesType>) => {\n reset(undefined, true);\n setValues((prevStateValues) => {\n const newValuesState = deepMergeValues(prevStateValues, fieldValues);\n valuesToCompareInChangedRef.current = newValuesState;\n return newValuesState;\n });\n };\n\n const register = (\n name: string,\n registerOptions?: RegisterOptions,\n ) => {\n const { onChange, onBlur, ref } = registerOptions ?? {};\n return {\n name,\n ref: mergeRefs<HTMLInputElement | HTMLTextAreaElement>((inputElement: any) => {\n fieldsRef.current[name] = inputElement;\n }, ref),\n value: _.get(values, name, _.get(initialValuesRef.current, name, '')),\n errors: _.get(errors, name, []),\n onChange: (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const { value } = event.target;\n\n setValues((prevStateValues) => {\n const updatedValues = _.cloneDeep(prevStateValues);\n _.set(updatedValues, name, value);\n\n const hasChanged = !_.isEqual(_.get(valuesToCompareInChangedRef.current, name), value);\n setChanged((prevStateChanged) => {\n const updatedChangedState = _.cloneDeep(prevStateChanged);\n _.set(updatedChangedState, name, hasChanged);\n return updatedChangedState;\n });\n\n if (options.validationMode === 'default') {\n validateBatchOfFields(updatedValues, touched, errors);\n }\n\n return updatedValues;\n });\n\n onChange?.(event);\n },\n onBlur: (event: FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const touchedSnapshot = _.cloneDeep(touched);\n _.set(touchedSnapshot, name, true);\n\n setTouched((prevStateTouched) => {\n const updated = _.cloneDeep(prevStateTouched);\n _.set(updated, name, true);\n return updated;\n });\n\n if (options.validationMode === 'default') {\n validateBatchOfFields(values, touchedSnapshot, errors);\n }\n\n onBlur?.(event);\n },\n };\n };\n\n const handleSubmit = (callback: (data: ValuesType) => void) => (event: FormEvent) => {\n event.preventDefault();\n\n const validationErrors = validateAllFields();\n const hasErrors = !_.isEmpty(validationErrors);\n\n if (hasErrors) return;\n callback(values);\n };\n\n const isValid = checkFormIsValid();\n const formHasChange = Object.values(changed).some(Boolean);\n\n return {\n reset,\n changed,\n values,\n errors,\n touched,\n isValid,\n formHasChange,\n register,\n cleanErrors,\n changeValues,\n compareField,\n handleSubmit,\n getFieldValue,\n getFieldError,\n setFieldFocus,\n setFieldValue,\n setExternalErrors,\n initialValues: initialValuesRef.current,\n };\n};\n\nexport default useForm;\n"],"names":["useForm","initialValues","validators","options","validationMode","values","setValues","useState","errors","setErrors","changed","setChanged","touched","setTouched","fieldsRef","useRef","initialValuesRef","valuesToCompareInChangedRef","flattenedValidators","flattenValidators","validateBatchOfFields","valuesSnapshot","touchedFields","errorsFields","fieldsToValidate","Object","keys","filter","path","wasTouched","_","get","hasErrors","isEmpty","Boolean","length","prevErrorsState","updatedErrorsState","cloneDeep","forEach","value","fieldValidators","fieldErrors","map","validator","message","set","validateAllFields","allValidationErrors","checkFormIsValid","every","getFieldError","name","setExternalErrors","externalErrors","prevStateErrors","newErrorsState","entries","key","getFieldValue","setFieldValue","prevStateValues","updatedValuesState","valueToCompare","current","hasChanged","isEqual","prevStateChanged","updatedChangedState","setFieldFocus","fieldFocusOptions","field","focus","shouldSelect","select","compareField","cleanErrors","fieldsToClean","unset","reset","inputsToReset","internalReset","newValuesState","newTouchedState","newChangedState","inputs","initialValue","changeValues","fieldValues","undefined","deepMergeValues","register","registerOptions","onChange","onBlur","ref","mergeRefs","inputElement","event","target","updatedValues","touchedSnapshot","prevStateTouched","updated","handleSubmit","callback","preventDefault","validationErrors","isValid","formHasChange","some"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/form2/useForm/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { ChangeEvent, FocusEvent, FormEvent, useRef, useState } from 'react';\nimport type {\n FieldErrors, FieldChanged, FieldTouched, FieldFocusOptions, UseFormProps,\n UseFormReturn, DeepPartial,\n RegisterOptions,\n} from '../types';\nimport { deepMergeValues, flattenValidators, mergeRefs } from '../helpers';\n\nconst useForm = <ValuesType extends Record<string, any>>({\n initialValues,\n validators = {},\n options = { validationMode: 'default' },\n}: UseFormProps<ValuesType>): UseFormReturn<ValuesType> => {\n const [values, setValues] = useState<ValuesType>(initialValues);\n const [errors, setErrors] = useState<FieldErrors<ValuesType>>({});\n const [externalErrors, setExternalErrorsState] = useState<FieldErrors<ValuesType>>({});\n const [changed, setChanged] = useState<FieldChanged<ValuesType>>({});\n const [touched, setTouched] = useState<FieldTouched<ValuesType>>({});\n const fieldsRef = useRef<Record<string, HTMLInputElement | HTMLTextAreaElement | null>>({});\n const initialValuesRef = useRef<ValuesType>(initialValues);\n const valuesToCompareInChangedRef = useRef<ValuesType>(initialValues);\n\n const flattenedValidators = flattenValidators(validators);\n\n const validateBatchOfFields = (\n valuesSnapshot: ValuesType,\n touchedFields: FieldTouched<ValuesType> = touched,\n errorsFields: FieldErrors<ValuesType> = errors,\n ) => {\n const fieldsToValidate = Object.keys(flattenedValidators).filter((path) => {\n const wasTouched = _.get(touchedFields, path);\n const hasErrors = !_.isEmpty(_.get(errorsFields, path));\n return Boolean(wasTouched || hasErrors);\n });\n\n if (!fieldsToValidate.length) return;\n\n setErrors((prevErrorsState) => {\n const updatedErrorsState = _.cloneDeep(prevErrorsState);\n\n fieldsToValidate.forEach((path) => {\n const value = _.get(valuesSnapshot, path);\n const fieldValidators = _.get(flattenedValidators, path) ?? [];\n const fieldErrors = fieldValidators\n .map((validator: any) => validator(value, valuesSnapshot))\n .filter((message: string) => Boolean(message));\n\n _.set(updatedErrorsState, path, fieldErrors);\n });\n\n return updatedErrorsState;\n });\n };\n\n const validateAllFields = () => {\n const allValidationErrors: FieldErrors<ValuesType> = {};\n\n Object.keys(flattenedValidators).forEach((path) => {\n const value = _.get(values, path);\n const fieldValidators = _.get(flattenedValidators, path) ?? [];\n const fieldErrors = fieldValidators\n .map((validator: any) => validator(value, values))\n .filter((message: string) => Boolean(message));\n\n if (fieldErrors.length) {\n _.set(allValidationErrors, path, fieldErrors);\n }\n });\n\n setErrors(allValidationErrors);\n return allValidationErrors;\n };\n\n const checkFormIsValid = () => {\n return Object.keys(flattenedValidators).every((path) => {\n const value = _.get(values, path);\n const fieldValidators = _.get(flattenedValidators, path) ?? [];\n return fieldValidators.every((validator: any) => !validator(value, values));\n });\n };\n\n const mergeErrors = (\n internalErrors: FieldErrors<ValuesType>,\n externalErrorsState: FieldErrors<ValuesType>,\n ): FieldErrors<ValuesType> => {\n const mergedErrors = _.cloneDeep(internalErrors);\n const externalPaths = Object.keys(flattenValidators(externalErrorsState));\n\n externalPaths.forEach((path) => {\n const internalFieldErrors = (_.get(mergedErrors, path) as string[]) ?? [];\n const externalFieldErrors = (_.get(externalErrorsState, path) as string[]) ?? [];\n _.set(mergedErrors, path, [...internalFieldErrors, ...externalFieldErrors]);\n });\n\n return mergedErrors;\n };\n\n const allErrors = mergeErrors(errors, externalErrors);\n\n const getFieldError = (name: string): string[] => {\n const fieldErrors = _.get(allErrors, name) as string[] ?? [];\n return fieldErrors;\n };\n\n const setExternalErrors = (newExternalErrors: Record<string, string[] | null | undefined>) => {\n const newExternalErrorsState: FieldErrors<ValuesType> = {};\n Object.entries(newExternalErrors ?? {}).forEach(([key, value]) => {\n if (!_.isEmpty(value)) _.set(newExternalErrorsState, key, value);\n });\n setExternalErrorsState(newExternalErrorsState);\n };\n\n const getFieldValue = (name: string): any => {\n return _.get(values, name);\n };\n\n const setFieldValue = (name: string, value: any) => {\n setValues((prevStateValues) => {\n const updatedValuesState = _.cloneDeep(prevStateValues);\n _.set(updatedValuesState, name, value);\n\n const valueToCompare = _.get(valuesToCompareInChangedRef.current, name);\n const hasChanged = !_.isEqual(valueToCompare, value);\n\n setChanged((prevStateChanged) => {\n const updatedChangedState = _.cloneDeep(prevStateChanged);\n _.set(updatedChangedState, name, hasChanged);\n return updatedChangedState;\n });\n\n if (options.validationMode === 'default') {\n validateBatchOfFields(updatedValuesState);\n }\n\n return updatedValuesState;\n });\n };\n\n const setFieldFocus = (name: string, fieldFocusOptions?: FieldFocusOptions) => {\n const field = fieldsRef.current[name];\n field?.focus?.();\n if (fieldFocusOptions?.shouldSelect) {\n field?.select?.();\n }\n };\n\n const compareField = (name: string, valueToCompare: any): boolean => {\n return _.isEqual(_.get(values, name), valueToCompare);\n };\n\n const unsetErrorPaths = (\n errorsState: FieldErrors<ValuesType>,\n fieldsToClean: string[],\n ): FieldErrors<ValuesType> => {\n const newErrorsState = _.cloneDeep(errorsState);\n fieldsToClean.forEach((key) => {\n _.unset(newErrorsState, key);\n });\n return newErrorsState;\n };\n\n const cleanErrors = (fieldsToClean?: string[]) => {\n if (!fieldsToClean) {\n setErrors({});\n setExternalErrorsState({});\n return;\n }\n\n setErrors(prevErrorsState => unsetErrorPaths(prevErrorsState, fieldsToClean));\n setExternalErrorsState(prevErrorsState => unsetErrorPaths(prevErrorsState, fieldsToClean));\n };\n\n const reset = (inputsToReset?: string[], internalReset?: boolean) => {\n const newValuesState = _.cloneDeep(values);\n const newTouchedState = _.cloneDeep(touched);\n const newChangedState = _.cloneDeep(changed);\n const inputs = inputsToReset ?? Object.keys(initialValuesRef.current);\n\n inputs.forEach((key) => {\n const initialValue = _.get(initialValuesRef.current, key);\n _.set(newValuesState, key, initialValue);\n _.set(newTouchedState, key, false);\n _.set(newChangedState, key, false);\n });\n\n setValues(newValuesState);\n setTouched(newTouchedState);\n setChanged(newChangedState);\n\n if (inputsToReset) {\n setErrors(prevErrorsState => unsetErrorPaths(prevErrorsState, inputsToReset));\n setExternalErrorsState(prevErrorsState => unsetErrorPaths(prevErrorsState, inputsToReset));\n } else {\n setErrors({});\n setExternalErrorsState({});\n }\n\n if (!internalReset) { valuesToCompareInChangedRef.current = initialValuesRef.current; }\n };\n\n const changeValues = (fieldValues: DeepPartial<ValuesType>) => {\n reset(undefined, true);\n setValues((prevStateValues) => {\n const newValuesState = deepMergeValues(prevStateValues, fieldValues);\n valuesToCompareInChangedRef.current = newValuesState;\n return newValuesState;\n });\n };\n\n const register = (\n name: string,\n registerOptions?: RegisterOptions,\n ) => {\n const { onChange, onBlur, ref } = registerOptions ?? {};\n return {\n name,\n ref: mergeRefs<HTMLInputElement | HTMLTextAreaElement>((inputElement: any) => {\n fieldsRef.current[name] = inputElement;\n }, ref),\n value: _.get(values, name, _.get(initialValuesRef.current, name, '')),\n errors: _.get(allErrors, name, []),\n onChange: (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const { value } = event.target;\n\n setValues((prevStateValues) => {\n const updatedValues = _.cloneDeep(prevStateValues);\n _.set(updatedValues, name, value);\n\n const hasChanged = !_.isEqual(_.get(valuesToCompareInChangedRef.current, name), value);\n setChanged((prevStateChanged) => {\n const updatedChangedState = _.cloneDeep(prevStateChanged);\n _.set(updatedChangedState, name, hasChanged);\n return updatedChangedState;\n });\n\n if (options.validationMode === 'default') {\n validateBatchOfFields(updatedValues, touched, errors);\n }\n\n return updatedValues;\n });\n\n onChange?.(event);\n },\n onBlur: (event: FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const touchedSnapshot = _.cloneDeep(touched);\n _.set(touchedSnapshot, name, true);\n\n setTouched((prevStateTouched) => {\n const updated = _.cloneDeep(prevStateTouched);\n _.set(updated, name, true);\n return updated;\n });\n\n if (options.validationMode === 'default') {\n validateBatchOfFields(values, touchedSnapshot, errors);\n }\n\n onBlur?.(event);\n },\n };\n };\n\n const handleSubmit = (callback: (data: ValuesType) => void) => (event: FormEvent) => {\n event.preventDefault();\n\n const validationErrors = validateAllFields();\n const hasErrors = !_.isEmpty(validationErrors);\n\n if (hasErrors) return;\n callback(values);\n };\n\n const isValid = checkFormIsValid();\n const formHasChange = Object.values(changed).some(Boolean);\n\n return {\n reset,\n changed,\n values,\n errors: allErrors,\n touched,\n isValid,\n formHasChange,\n register,\n cleanErrors,\n changeValues,\n compareField,\n handleSubmit,\n getFieldValue,\n getFieldError,\n setFieldFocus,\n setFieldValue,\n setExternalErrors,\n initialValues: initialValuesRef.current,\n };\n};\n\nexport default useForm;\n"],"names":["useForm","initialValues","validators","options","validationMode","values","setValues","useState","errors","setErrors","externalErrors","setExternalErrorsState","changed","setChanged","touched","setTouched","fieldsRef","useRef","initialValuesRef","valuesToCompareInChangedRef","flattenedValidators","flattenValidators","validateBatchOfFields","valuesSnapshot","touchedFields","errorsFields","fieldsToValidate","Object","keys","filter","path","wasTouched","_","get","hasErrors","isEmpty","Boolean","length","prevErrorsState","updatedErrorsState","cloneDeep","forEach","value","fieldValidators","fieldErrors","map","validator","message","set","validateAllFields","allValidationErrors","checkFormIsValid","every","mergeErrors","internalErrors","externalErrorsState","mergedErrors","externalPaths","internalFieldErrors","externalFieldErrors","allErrors","getFieldError","name","setExternalErrors","newExternalErrors","newExternalErrorsState","entries","key","getFieldValue","setFieldValue","prevStateValues","updatedValuesState","valueToCompare","current","hasChanged","isEqual","prevStateChanged","updatedChangedState","setFieldFocus","fieldFocusOptions","field","focus","shouldSelect","select","compareField","unsetErrorPaths","errorsState","fieldsToClean","newErrorsState","unset","cleanErrors","reset","inputsToReset","internalReset","newValuesState","newTouchedState","newChangedState","inputs","initialValue","changeValues","fieldValues","undefined","deepMergeValues","register","registerOptions","onChange","onBlur","ref","mergeRefs","inputElement","event","target","updatedValues","touchedSnapshot","prevStateTouched","updated","handleSubmit","callback","preventDefault","validationErrors","isValid","formHasChange","some"],"mappings":"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"}
@@ -6,7 +6,9 @@ import { useIMask } from "react-imask";
6
6
  import { mergeRefs } from "../../form2/helpers.js";
7
7
  import { Input as Input$1 } from "../textfield/index.js";
8
8
  const Input = forwardRef((props, ref) => {
9
- const $ = compilerRuntimeExports.c(46);
9
+ const $ = compilerRuntimeExports.c(50);
10
+ let onAccept;
11
+ let onComplete;
10
12
  let rest;
11
13
  let t0;
12
14
  let t1;
@@ -32,34 +34,40 @@ const Input = forwardRef((props, ref) => {
32
34
  normalizeZeros: t8,
33
35
  padFractionalZeros: t9,
34
36
  mapToRadix: t10,
37
+ onComplete,
38
+ onAccept,
35
39
  ...rest
36
40
  } = props);
37
41
  $[0] = props;
38
- $[1] = rest;
39
- $[2] = t0;
40
- $[3] = t1;
41
- $[4] = t10;
42
- $[5] = t2;
43
- $[6] = t3;
44
- $[7] = t4;
45
- $[8] = t5;
46
- $[9] = t6;
47
- $[10] = t7;
48
- $[11] = t8;
49
- $[12] = t9;
42
+ $[1] = onAccept;
43
+ $[2] = onComplete;
44
+ $[3] = rest;
45
+ $[4] = t0;
46
+ $[5] = t1;
47
+ $[6] = t10;
48
+ $[7] = t2;
49
+ $[8] = t3;
50
+ $[9] = t4;
51
+ $[10] = t5;
52
+ $[11] = t6;
53
+ $[12] = t7;
54
+ $[13] = t8;
55
+ $[14] = t9;
50
56
  } else {
51
- rest = $[1];
52
- t0 = $[2];
53
- t1 = $[3];
54
- t10 = $[4];
55
- t2 = $[5];
56
- t3 = $[6];
57
- t4 = $[7];
58
- t5 = $[8];
59
- t6 = $[9];
60
- t7 = $[10];
61
- t8 = $[11];
62
- t9 = $[12];
57
+ onAccept = $[1];
58
+ onComplete = $[2];
59
+ rest = $[3];
60
+ t0 = $[4];
61
+ t1 = $[5];
62
+ t10 = $[6];
63
+ t2 = $[7];
64
+ t3 = $[8];
65
+ t4 = $[9];
66
+ t5 = $[10];
67
+ t6 = $[11];
68
+ t7 = $[12];
69
+ t8 = $[13];
70
+ t9 = $[14];
63
71
  }
64
72
  const mask = t0 === void 0 ? "" : t0;
65
73
  const unmask = t1 === void 0 ? true : t1;
@@ -72,17 +80,17 @@ const Input = forwardRef((props, ref) => {
72
80
  const normalizeZeros = t8 === void 0 ? false : t8;
73
81
  const padFractionalZeros = t9 === void 0 ? false : t9;
74
82
  let t11;
75
- if ($[13] !== t10) {
83
+ if ($[15] !== t10) {
76
84
  t11 = t10 === void 0 ? [] : t10;
77
- $[13] = t10;
78
- $[14] = t11;
85
+ $[15] = t10;
86
+ $[16] = t11;
79
87
  } else {
80
- t11 = $[14];
88
+ t11 = $[16];
81
89
  }
82
90
  const mapToRadix = t11;
83
91
  const t12 = mask;
84
92
  let t13;
85
- if ($[15] !== lazy || $[16] !== mapToRadix || $[17] !== normalizeZeros || $[18] !== padFractionalZeros || $[19] !== placeholderChar || $[20] !== radix || $[21] !== scale || $[22] !== t12) {
93
+ if ($[17] !== lazy || $[18] !== mapToRadix || $[19] !== normalizeZeros || $[20] !== padFractionalZeros || $[21] !== placeholderChar || $[22] !== radix || $[23] !== scale || $[24] !== t12) {
86
94
  t13 = {
87
95
  mask: t12,
88
96
  lazy,
@@ -93,30 +101,31 @@ const Input = forwardRef((props, ref) => {
93
101
  normalizeZeros,
94
102
  padFractionalZeros
95
103
  };
96
- $[15] = lazy;
97
- $[16] = mapToRadix;
98
- $[17] = normalizeZeros;
99
- $[18] = padFractionalZeros;
100
- $[19] = placeholderChar;
101
- $[20] = radix;
102
- $[21] = scale;
103
- $[22] = t12;
104
- $[23] = t13;
104
+ $[17] = lazy;
105
+ $[18] = mapToRadix;
106
+ $[19] = normalizeZeros;
107
+ $[20] = padFractionalZeros;
108
+ $[21] = placeholderChar;
109
+ $[22] = radix;
110
+ $[23] = scale;
111
+ $[24] = t12;
112
+ $[25] = t13;
105
113
  } else {
106
- t13 = $[23];
114
+ t13 = $[25];
107
115
  }
108
116
  let t14;
109
- if ($[24] !== rest) {
117
+ if ($[26] !== onComplete) {
110
118
  t14 = (imaskValue, ___, event) => {
111
- rest?.onComplete?.(imaskValue, event);
119
+ onComplete?.(imaskValue, event);
112
120
  };
113
- $[24] = rest;
114
- $[25] = t14;
121
+ $[26] = onComplete;
122
+ $[27] = t14;
115
123
  } else {
116
- t14 = $[25];
124
+ t14 = $[27];
117
125
  }
118
126
  const {
119
127
  ref: inputRef,
128
+ maskRef,
120
129
  value,
121
130
  unmaskedValue,
122
131
  setValue: t15
@@ -124,7 +133,7 @@ const Input = forwardRef((props, ref) => {
124
133
  onComplete: t14,
125
134
  onAccept: (acceptValue, imask, event_0) => {
126
135
  const valueToSet = unmask ? imask.unmaskedValue : imask.value;
127
- rest?.onAccept?.(valueToSet, event_0);
136
+ onAccept?.(valueToSet, event_0);
128
137
  setValue(acceptValue);
129
138
  props?.onChange?.({
130
139
  ...event_0,
@@ -138,20 +147,20 @@ const Input = forwardRef((props, ref) => {
138
147
  });
139
148
  const setValue = t15;
140
149
  let t16;
141
- if ($[26] !== autoCompleteMask || $[27] !== mask || $[28] !== rest || $[29] !== setValue || $[30] !== unmaskedValue) {
150
+ if ($[28] !== autoCompleteMask || $[29] !== mask || $[30] !== rest || $[31] !== setValue || $[32] !== unmaskedValue) {
142
151
  t16 = (event_1) => {
143
152
  if (unmaskedValue.trim().length && autoCompleteMask) {
144
153
  const currentValue = unmaskedValue;
145
154
  const sizeMask = mask?.toString().replace(/\D+/g, "").length;
146
155
  if (sizeMask && sizeMask > currentValue.length) {
147
- bb101: switch (autoCompleteMask) {
156
+ bb95: switch (autoCompleteMask) {
148
157
  case "left": {
149
158
  setValue(currentValue.padStart(sizeMask, "0"));
150
- break bb101;
159
+ break bb95;
151
160
  }
152
161
  case "right": {
153
162
  setValue(currentValue.padEnd(sizeMask, "0"));
154
- break bb101;
163
+ break bb95;
155
164
  }
156
165
  default: {
157
166
  setValue(currentValue);
@@ -161,60 +170,67 @@ const Input = forwardRef((props, ref) => {
161
170
  }
162
171
  rest?.onBlur?.(event_1);
163
172
  };
164
- $[26] = autoCompleteMask;
165
- $[27] = mask;
166
- $[28] = rest;
167
- $[29] = setValue;
168
- $[30] = unmaskedValue;
169
- $[31] = t16;
173
+ $[28] = autoCompleteMask;
174
+ $[29] = mask;
175
+ $[30] = rest;
176
+ $[31] = setValue;
177
+ $[32] = unmaskedValue;
178
+ $[33] = t16;
170
179
  } else {
171
- t16 = $[31];
180
+ t16 = $[33];
172
181
  }
173
182
  const handleBlur = t16;
174
183
  let t17;
175
- if ($[32] !== props.value || $[33] !== setValue) {
184
+ if ($[34] !== maskRef || $[35] !== props.value || $[36] !== setValue || $[37] !== unmask) {
176
185
  t17 = () => {
177
- if (!_.isNil(props?.value)) {
178
- setValue(_.toString(props?.value));
186
+ if (_.isNil(props?.value)) {
187
+ return;
188
+ }
189
+ const externalValue = _.toString(props.value);
190
+ const currentValue_0 = unmask ? maskRef.current?.unmaskedValue : maskRef.current?.value;
191
+ if (externalValue !== currentValue_0) {
192
+ setValue(externalValue);
179
193
  }
180
194
  };
181
- $[32] = props.value;
182
- $[33] = setValue;
183
- $[34] = t17;
195
+ $[34] = maskRef;
196
+ $[35] = props.value;
197
+ $[36] = setValue;
198
+ $[37] = unmask;
199
+ $[38] = t17;
184
200
  } else {
185
- t17 = $[34];
201
+ t17 = $[38];
186
202
  }
187
203
  const t18 = props?.value;
188
204
  let t19;
189
- if ($[35] !== t18) {
205
+ if ($[39] !== t18) {
190
206
  t19 = [t18];
191
- $[35] = t18;
192
- $[36] = t19;
207
+ $[39] = t18;
208
+ $[40] = t19;
193
209
  } else {
194
- t19 = $[36];
210
+ t19 = $[40];
195
211
  }
196
212
  useEffect(t17, t19);
197
213
  const t20 = inputRef;
198
214
  let t21;
199
- if ($[37] !== ref || $[38] !== t20) {
215
+ if ($[41] !== ref || $[42] !== t20) {
200
216
  t21 = mergeRefs(ref, t20);
201
- $[37] = ref;
202
- $[38] = t20;
203
- $[39] = t21;
217
+ $[41] = ref;
218
+ $[42] = t20;
219
+ $[43] = t21;
204
220
  } else {
205
- t21 = $[39];
221
+ t21 = $[43];
206
222
  }
207
223
  let t22;
208
- if ($[40] !== handleBlur || $[41] !== placeholder || $[42] !== rest || $[43] !== t21 || $[44] !== value) {
224
+ if ($[44] !== handleBlur || $[45] !== placeholder || $[46] !== rest || $[47] !== t21 || $[48] !== value) {
209
225
  t22 = /* @__PURE__ */ jsx(Input$1, { ...rest, type: "text", value, placeholder, onBlur: handleBlur, onChange: _temp, ref: t21 });
210
- $[40] = handleBlur;
211
- $[41] = placeholder;
212
- $[42] = rest;
213
- $[43] = t21;
214
- $[44] = value;
215
- $[45] = t22;
226
+ $[44] = handleBlur;
227
+ $[45] = placeholder;
228
+ $[46] = rest;
229
+ $[47] = t21;
230
+ $[48] = value;
231
+ $[49] = t22;
216
232
  } else {
217
- t22 = $[45];
233
+ t22 = $[49];
218
234
  }
219
235
  return t22;
220
236
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/lib/inputs2/mask/index.tsx"],"sourcesContent":["import React, { forwardRef, useEffect } from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { mergeRefs } from '../../form2/helpers';\nimport * as TextField from '../textfield';\nimport type { MaskFieldProps } from './types';\n\nconst Input = forwardRef<HTMLInputElement, MaskFieldProps>((props, ref) => {\n const { \n mask = '', unmask = true, lazy = true, placeholder = '', autoCompleteMask = undefined,\n radix = '', placeholderChar = '_', scale = 0, normalizeZeros = false, padFractionalZeros = false,\n mapToRadix = [], ...rest\n } = props;\n\n const { ref: inputRef, value, unmaskedValue, setValue } = useIMask({\n mask: mask as string,\n lazy,\n scale,\n radix,\n mapToRadix,\n placeholderChar,\n normalizeZeros,\n padFractionalZeros,\n }, {\n onComplete: (imaskValue, ___, event) => {\n rest?.onComplete?.(imaskValue, event);\n },\n onAccept: (acceptValue, imask, event) => {\n const valueToSet = unmask ? imask.unmaskedValue : imask.value;\n rest?.onAccept?.(valueToSet, event);\n setValue(acceptValue);\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: valueToSet,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n },\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (unmaskedValue.trim().length && autoCompleteMask) {\n const currentValue = unmaskedValue;\n const sizeMask = mask?.toString().replace(/\\D+/g, '').length;\n if (sizeMask && sizeMask > currentValue.length) {\n switch (autoCompleteMask) {\n case 'left':\n setValue(currentValue.padStart(sizeMask, '0'));\n break;\n case 'right':\n setValue(currentValue.padEnd(sizeMask, '0'));\n break;\n default:\n setValue(currentValue);\n break;\n }\n }\n }\n rest?.onBlur?.(event);\n };\n\n useEffect(() => {\n if (!_.isNil(props?.value)) { \n setValue(_.toString(props?.value)); \n }\n }, [props?.value]);\n\n return (\n <TextField.Input\n {...rest}\n type=\"text\"\n value={value}\n placeholder={placeholder}\n onBlur={handleBlur}\n onChange={() => { }}\n ref={mergeRefs(ref, inputRef as React.Ref<HTMLInputElement>)} />\n );\n});\n\nInput.displayName = 'MaskInputField';\nexport { Input };\nexport type { MaskFieldProps };\n"],"names":["Input","forwardRef","props","ref","$","_c","rest","t0","t1","t10","t2","t3","t4","t5","t6","t7","t8","t9","mask","unmask","lazy","placeholder","autoCompleteMask","radix","placeholderChar","scale","normalizeZeros","padFractionalZeros","mapToRadix","undefined","t11","t12","t13","t14","imaskValue","___","event","onComplete","inputRef","value","unmaskedValue","setValue","t15","useIMask","onAccept","acceptValue","imask","event_0","valueToSet","onChange","target","name","t16","event_1","trim","length","currentValue","sizeMask","toString","replace","bb101","padStart","padEnd","onBlur","handleBlur","t17","_","isNil","t18","t19","useEffect","t20","t21","mergeRefs","t22","TextField.Input","_temp","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/inputs2/mask/index.tsx"],"sourcesContent":["import React, { forwardRef, useEffect } from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { mergeRefs } from '../../form2/helpers';\nimport * as TextField from '../textfield';\nimport type { MaskFieldProps } from './types';\n\nconst Input = forwardRef<HTMLInputElement, MaskFieldProps>((props, ref) => {\n const { \n mask = '', unmask = true, lazy = true, placeholder = '', autoCompleteMask = undefined,\n radix = '', placeholderChar = '_', scale = 0, normalizeZeros = false, padFractionalZeros = false,\n mapToRadix = [], onComplete, onAccept, ...rest\n } = props;\n\n const { ref: inputRef, maskRef, value, unmaskedValue, setValue } = useIMask({\n mask: mask as string,\n lazy,\n scale,\n radix,\n mapToRadix,\n placeholderChar,\n normalizeZeros,\n padFractionalZeros,\n }, {\n onComplete: (imaskValue, ___, event) => {\n onComplete?.(imaskValue, event);\n },\n onAccept: (acceptValue, imask, event) => {\n const valueToSet = unmask ? imask.unmaskedValue : imask.value;\n onAccept?.(valueToSet, event);\n setValue(acceptValue);\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: valueToSet,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n },\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (unmaskedValue.trim().length && autoCompleteMask) {\n const currentValue = unmaskedValue;\n const sizeMask = mask?.toString().replace(/\\D+/g, '').length;\n if (sizeMask && sizeMask > currentValue.length) {\n switch (autoCompleteMask) {\n case 'left':\n setValue(currentValue.padStart(sizeMask, '0'));\n break;\n case 'right':\n setValue(currentValue.padEnd(sizeMask, '0'));\n break;\n default:\n setValue(currentValue);\n break;\n }\n }\n }\n rest?.onBlur?.(event);\n };\n\n useEffect(() => {\n if (_.isNil(props?.value)) return;\n const externalValue = _.toString(props.value);\n const currentValue = unmask ? maskRef.current?.unmaskedValue : maskRef.current?.value;\n if (externalValue !== currentValue) setValue(externalValue);\n }, [props?.value]);\n\n return (\n <TextField.Input\n {...rest}\n type=\"text\"\n value={value}\n placeholder={placeholder}\n onBlur={handleBlur}\n onChange={() => { }}\n ref={mergeRefs(ref, inputRef as React.Ref<HTMLInputElement>)} />\n );\n});\n\nInput.displayName = 'MaskInputField';\nexport { Input };\nexport type { MaskFieldProps };\n"],"names":["Input","forwardRef","props","ref","$","_c","onAccept","onComplete","rest","t0","t1","t10","t2","t3","t4","t5","t6","t7","t8","t9","mask","unmask","lazy","placeholder","autoCompleteMask","radix","placeholderChar","scale","normalizeZeros","padFractionalZeros","mapToRadix","undefined","t11","t12","t13","t14","imaskValue","___","event","inputRef","maskRef","value","unmaskedValue","setValue","t15","useIMask","acceptValue","imask","event_0","valueToSet","onChange","target","name","t16","event_1","trim","length","currentValue","sizeMask","toString","replace","bb95","padStart","padEnd","onBlur","handleBlur","t17","_","isNil","externalValue","currentValue_0","current","t18","t19","useEffect","t20","t21","mergeRefs","t22","TextField.Input","_temp","displayName"],"mappings":"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"}
@@ -2,13 +2,13 @@ import { ReactNode } from 'react';
2
2
  export declare const TreeTableContext: import('react').Context<import('./types').ITreeTableProps>;
3
3
  export declare const searchRootElements: (data: Array<{
4
4
  [key: string]: ReactNode;
5
- }>, parentPropName: string, rowLevel?: number) => {
5
+ }>, parentPropName: string, rowLevel?: number) => ({
6
+ [key: string]: ReactNode;
7
+ } & {
6
8
  rowLevel: number;
7
- }[];
9
+ })[];
8
10
  export declare const searchChildrensPerRow: (data: Array<{
9
11
  [key: string]: ReactNode;
10
12
  }>, parentPropName: string, rowId?: string | number, rowLevel?: number) => {
11
13
  [key: string]: ReactNode;
12
- }[] | {
13
- rowLevel: number;
14
14
  }[];
@@ -4,8 +4,7 @@ const searchRootElements = (data, parentPropName, rowLevel = 0) => {
4
4
  let dataFiltered;
5
5
  if (data) {
6
6
  dataFiltered = data.filter((item) => !item[parentPropName]);
7
- return dataFiltered.map((item) => ({
8
- ...item,
7
+ return dataFiltered.map((item) => Object.assign(item, {}, {
9
8
  rowLevel
10
9
  }));
11
10
  }
@@ -15,8 +14,7 @@ const searchChildrensPerRow = (data, parentPropName, rowId, rowLevel = 0) => {
15
14
  let dataFiltered;
16
15
  if (data && rowId) {
17
16
  dataFiltered = data.filter((item) => item[parentPropName] === Number(rowId));
18
- return dataFiltered.map((item) => ({
19
- ...item,
17
+ return dataFiltered.map((item) => Object.assign(item, {}, {
20
18
  rowLevel
21
19
  }));
22
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../src/lib/treetable/helpers.ts"],"sourcesContent":["import { createContext, ReactNode } from 'react';\nimport { ITreeTableContext } from './types';\n\nexport const TreeTableContext = createContext({} as ITreeTableContext);\n\nexport const searchRootElements = (\n data: Array<{\n [key: string]: ReactNode\n }>,\n parentPropName: string,\n rowLevel = 0,\n) => {\n let dataFiltered;\n if (data) {\n dataFiltered = data.filter(item => !item[parentPropName]);\n\n return dataFiltered.map(item => ({ ...item, rowLevel }));\n }\n\n return data;\n};\n\nexport const searchChildrensPerRow = (\n data: Array<{\n [key: string]: ReactNode\n }>,\n parentPropName: string,\n rowId?: string | number,\n rowLevel = 0,\n) => {\n let dataFiltered;\n if (data && rowId) {\n dataFiltered = data.filter(item => item[parentPropName] === Number(rowId));\n\n return dataFiltered.map(item => ({ ...item, rowLevel }));\n }\n\n return data;\n};\n"],"names":["TreeTableContext","createContext","searchRootElements","data","parentPropName","rowLevel","dataFiltered","filter","item","map","searchChildrensPerRow","rowId","Number"],"mappings":";AAGO,MAAMA,mBAAmBC,cAAc,CAAA,CAAuB;AAE9D,MAAMC,qBAAqBA,CAChCC,MAGAC,gBACAC,WAAW,MACR;AACH,MAAIC;AACJ,MAAIH,MAAM;AACRG,mBAAeH,KAAKI,OAAOC,CAAAA,SAAQ,CAACA,KAAKJ,cAAc,CAAC;AAExD,WAAOE,aAAaG,IAAID,CAAAA,UAAS;AAAA,MAAE,GAAGA;AAAAA,MAAMH;AAAAA,IAAAA,EAAW;AAAA,EACzD;AAEA,SAAOF;AACT;AAEO,MAAMO,wBAAwBA,CACnCP,MAGAC,gBACAO,OACAN,WAAW,MACR;AACH,MAAIC;AACJ,MAAIH,QAAQQ,OAAO;AACjBL,mBAAeH,KAAKI,OAAOC,CAAAA,SAAQA,KAAKJ,cAAc,MAAMQ,OAAOD,KAAK,CAAC;AAEzE,WAAOL,aAAaG,IAAID,CAAAA,UAAS;AAAA,MAAE,GAAGA;AAAAA,MAAMH;AAAAA,IAAAA,EAAW;AAAA,EACzD;AAEA,SAAOF;AACT;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../src/lib/treetable/helpers.ts"],"sourcesContent":["import { createContext, ReactNode } from 'react';\nimport { ITreeTableContext } from './types';\n\nexport const TreeTableContext = createContext({} as ITreeTableContext);\n\nexport const searchRootElements = (\n data: Array<{\n [key: string]: ReactNode\n }>,\n parentPropName: string,\n rowLevel = 0,\n) => {\n let dataFiltered;\n if (data) {\n dataFiltered = data.filter(item => !item[parentPropName]);\n\n return dataFiltered.map(item =>\n Object.assign(\n item,\n {},\n {\n rowLevel,\n },\n ));\n }\n\n return data;\n};\n\nexport const searchChildrensPerRow = (\n data: Array<{\n [key: string]: ReactNode\n }>,\n parentPropName: string,\n rowId?: string | number,\n rowLevel = 0,\n) => {\n let dataFiltered;\n if (data && rowId) {\n dataFiltered = data.filter(item => item[parentPropName] === Number(rowId));\n\n return dataFiltered.map(item =>\n Object.assign(\n item,\n {},\n {\n rowLevel,\n },\n ));\n }\n\n return data;\n};\n"],"names":["TreeTableContext","createContext","searchRootElements","data","parentPropName","rowLevel","dataFiltered","filter","item","map","Object","assign","searchChildrensPerRow","rowId","Number"],"mappings":";AAGO,MAAMA,mBAAmBC,cAAc,CAAA,CAAuB;AAE9D,MAAMC,qBAAqBA,CAChCC,MAGAC,gBACAC,WAAW,MACR;AACH,MAAIC;AACJ,MAAIH,MAAM;AACRG,mBAAeH,KAAKI,OAAOC,CAAAA,SAAQ,CAACA,KAAKJ,cAAc,CAAC;AAExD,WAAOE,aAAaG,IAAID,CAAAA,SACtBE,OAAOC,OACLH,MACA,IACA;AAAA,MACEH;AAAAA,IAAAA,CAEJ,CAAC;AAAA,EACL;AAEA,SAAOF;AACT;AAEO,MAAMS,wBAAwBA,CACnCT,MAGAC,gBACAS,OACAR,WAAW,MACR;AACH,MAAIC;AACJ,MAAIH,QAAQU,OAAO;AACjBP,mBAAeH,KAAKI,OAAOC,CAAAA,SAAQA,KAAKJ,cAAc,MAAMU,OAAOD,KAAK,CAAC;AAEzE,WAAOP,aAAaG,IAAID,CAAAA,SACtBE,OAAOC,OACLH,MACA,IACA;AAAA,MACEH;AAAAA,IAAAA,CAEJ,CAAC;AAAA,EACL;AAEA,SAAOF;AACT;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linear-react-components-ui",
3
- "version": "2.3.1-beta.3",
3
+ "version": "2.3.1-beta.4",
4
4
  "description": "Linear Sistemas ReactJs Components",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",