linear-react-components-ui 2.3.1-beta.3 → 2.3.1-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/form2/types.d.ts +1 -1
- package/lib/form2/useForm/index.js +35 -26
- package/lib/form2/useForm/index.js.map +1 -1
- package/lib/inputs2/mask/index.js +101 -84
- package/lib/inputs2/mask/index.js.map +1 -1
- package/lib/treetable/helpers.d.ts +4 -4
- package/lib/treetable/helpers.js +2 -4
- package/lib/treetable/helpers.js.map +1 -1
- package/package.json +1 -1
package/lib/form2/types.d.ts
CHANGED
|
@@ -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(
|
|
70
|
+
const fieldErrors_1 = _.get(allErrors, name) ?? [];
|
|
59
71
|
return fieldErrors_1;
|
|
60
72
|
};
|
|
61
|
-
const setExternalErrors = (
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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
|
|
101
|
-
|
|
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
|
-
|
|
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((
|
|
129
|
-
|
|
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(
|
|
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(
|
|
9
|
+
const $ = compilerRuntimeExports.c(51);
|
|
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] =
|
|
39
|
-
$[2] =
|
|
40
|
-
$[3] =
|
|
41
|
-
$[4] =
|
|
42
|
-
$[5] =
|
|
43
|
-
$[6] =
|
|
44
|
-
$[7] =
|
|
45
|
-
$[8] =
|
|
46
|
-
$[9] =
|
|
47
|
-
$[10] =
|
|
48
|
-
$[11] =
|
|
49
|
-
$[12] =
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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 ($[
|
|
83
|
+
if ($[15] !== t10) {
|
|
76
84
|
t11 = t10 === void 0 ? [] : t10;
|
|
77
|
-
$[
|
|
78
|
-
$[
|
|
85
|
+
$[15] = t10;
|
|
86
|
+
$[16] = t11;
|
|
79
87
|
} else {
|
|
80
|
-
t11 = $[
|
|
88
|
+
t11 = $[16];
|
|
81
89
|
}
|
|
82
90
|
const mapToRadix = t11;
|
|
83
91
|
const t12 = mask;
|
|
84
92
|
let t13;
|
|
85
|
-
if ($[
|
|
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,38 +101,40 @@ const Input = forwardRef((props, ref) => {
|
|
|
93
101
|
normalizeZeros,
|
|
94
102
|
padFractionalZeros
|
|
95
103
|
};
|
|
96
|
-
$[
|
|
97
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
-
$[
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
104
|
-
$[
|
|
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 = $[
|
|
114
|
+
t13 = $[25];
|
|
107
115
|
}
|
|
108
116
|
let t14;
|
|
109
|
-
if ($[
|
|
110
|
-
t14 = (imaskValue,
|
|
111
|
-
|
|
117
|
+
if ($[26] !== onComplete || $[27] !== unmask) {
|
|
118
|
+
t14 = (imaskValue, imask, event) => {
|
|
119
|
+
onComplete?.(unmask ? imask.unmaskedValue : imaskValue, event);
|
|
112
120
|
};
|
|
113
|
-
$[
|
|
114
|
-
$[
|
|
121
|
+
$[26] = onComplete;
|
|
122
|
+
$[27] = unmask;
|
|
123
|
+
$[28] = t14;
|
|
115
124
|
} else {
|
|
116
|
-
t14 = $[
|
|
125
|
+
t14 = $[28];
|
|
117
126
|
}
|
|
118
127
|
const {
|
|
119
128
|
ref: inputRef,
|
|
129
|
+
maskRef,
|
|
120
130
|
value,
|
|
121
131
|
unmaskedValue,
|
|
122
132
|
setValue: t15
|
|
123
133
|
} = useIMask(t13, {
|
|
124
134
|
onComplete: t14,
|
|
125
|
-
onAccept: (acceptValue,
|
|
126
|
-
const valueToSet = unmask ?
|
|
127
|
-
|
|
135
|
+
onAccept: (acceptValue, imask_0, event_0) => {
|
|
136
|
+
const valueToSet = unmask ? imask_0.unmaskedValue : imask_0.value;
|
|
137
|
+
onAccept?.(valueToSet, event_0);
|
|
128
138
|
setValue(acceptValue);
|
|
129
139
|
props?.onChange?.({
|
|
130
140
|
...event_0,
|
|
@@ -138,20 +148,20 @@ const Input = forwardRef((props, ref) => {
|
|
|
138
148
|
});
|
|
139
149
|
const setValue = t15;
|
|
140
150
|
let t16;
|
|
141
|
-
if ($[
|
|
151
|
+
if ($[29] !== autoCompleteMask || $[30] !== mask || $[31] !== rest || $[32] !== setValue || $[33] !== unmaskedValue) {
|
|
142
152
|
t16 = (event_1) => {
|
|
143
153
|
if (unmaskedValue.trim().length && autoCompleteMask) {
|
|
144
154
|
const currentValue = unmaskedValue;
|
|
145
155
|
const sizeMask = mask?.toString().replace(/\D+/g, "").length;
|
|
146
156
|
if (sizeMask && sizeMask > currentValue.length) {
|
|
147
|
-
|
|
157
|
+
bb99: switch (autoCompleteMask) {
|
|
148
158
|
case "left": {
|
|
149
159
|
setValue(currentValue.padStart(sizeMask, "0"));
|
|
150
|
-
break
|
|
160
|
+
break bb99;
|
|
151
161
|
}
|
|
152
162
|
case "right": {
|
|
153
163
|
setValue(currentValue.padEnd(sizeMask, "0"));
|
|
154
|
-
break
|
|
164
|
+
break bb99;
|
|
155
165
|
}
|
|
156
166
|
default: {
|
|
157
167
|
setValue(currentValue);
|
|
@@ -161,60 +171,67 @@ const Input = forwardRef((props, ref) => {
|
|
|
161
171
|
}
|
|
162
172
|
rest?.onBlur?.(event_1);
|
|
163
173
|
};
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
166
|
-
$[
|
|
167
|
-
$[
|
|
168
|
-
$[
|
|
169
|
-
$[
|
|
174
|
+
$[29] = autoCompleteMask;
|
|
175
|
+
$[30] = mask;
|
|
176
|
+
$[31] = rest;
|
|
177
|
+
$[32] = setValue;
|
|
178
|
+
$[33] = unmaskedValue;
|
|
179
|
+
$[34] = t16;
|
|
170
180
|
} else {
|
|
171
|
-
t16 = $[
|
|
181
|
+
t16 = $[34];
|
|
172
182
|
}
|
|
173
183
|
const handleBlur = t16;
|
|
174
184
|
let t17;
|
|
175
|
-
if ($[
|
|
185
|
+
if ($[35] !== maskRef || $[36] !== props.value || $[37] !== setValue || $[38] !== unmask) {
|
|
176
186
|
t17 = () => {
|
|
177
|
-
if (
|
|
178
|
-
|
|
187
|
+
if (_.isNil(props?.value)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
const externalValue = _.toString(props.value);
|
|
191
|
+
const currentValue_0 = unmask ? maskRef.current?.unmaskedValue : maskRef.current?.value;
|
|
192
|
+
if (externalValue !== currentValue_0) {
|
|
193
|
+
setValue(externalValue);
|
|
179
194
|
}
|
|
180
195
|
};
|
|
181
|
-
$[
|
|
182
|
-
$[
|
|
183
|
-
$[
|
|
196
|
+
$[35] = maskRef;
|
|
197
|
+
$[36] = props.value;
|
|
198
|
+
$[37] = setValue;
|
|
199
|
+
$[38] = unmask;
|
|
200
|
+
$[39] = t17;
|
|
184
201
|
} else {
|
|
185
|
-
t17 = $[
|
|
202
|
+
t17 = $[39];
|
|
186
203
|
}
|
|
187
204
|
const t18 = props?.value;
|
|
188
205
|
let t19;
|
|
189
|
-
if ($[
|
|
206
|
+
if ($[40] !== t18) {
|
|
190
207
|
t19 = [t18];
|
|
191
|
-
$[
|
|
192
|
-
$[
|
|
208
|
+
$[40] = t18;
|
|
209
|
+
$[41] = t19;
|
|
193
210
|
} else {
|
|
194
|
-
t19 = $[
|
|
211
|
+
t19 = $[41];
|
|
195
212
|
}
|
|
196
213
|
useEffect(t17, t19);
|
|
197
214
|
const t20 = inputRef;
|
|
198
215
|
let t21;
|
|
199
|
-
if ($[
|
|
216
|
+
if ($[42] !== ref || $[43] !== t20) {
|
|
200
217
|
t21 = mergeRefs(ref, t20);
|
|
201
|
-
$[
|
|
202
|
-
$[
|
|
203
|
-
$[
|
|
218
|
+
$[42] = ref;
|
|
219
|
+
$[43] = t20;
|
|
220
|
+
$[44] = t21;
|
|
204
221
|
} else {
|
|
205
|
-
t21 = $[
|
|
222
|
+
t21 = $[44];
|
|
206
223
|
}
|
|
207
224
|
let t22;
|
|
208
|
-
if ($[
|
|
225
|
+
if ($[45] !== handleBlur || $[46] !== placeholder || $[47] !== rest || $[48] !== t21 || $[49] !== value) {
|
|
209
226
|
t22 = /* @__PURE__ */ jsx(Input$1, { ...rest, type: "text", value, placeholder, onBlur: handleBlur, onChange: _temp, ref: t21 });
|
|
210
|
-
$[
|
|
211
|
-
$[
|
|
212
|
-
$[
|
|
213
|
-
$[
|
|
214
|
-
$[
|
|
215
|
-
$[
|
|
227
|
+
$[45] = handleBlur;
|
|
228
|
+
$[46] = placeholder;
|
|
229
|
+
$[47] = rest;
|
|
230
|
+
$[48] = t21;
|
|
231
|
+
$[49] = value;
|
|
232
|
+
$[50] = t22;
|
|
216
233
|
} else {
|
|
217
|
-
t22 = $[
|
|
234
|
+
t22 = $[50];
|
|
218
235
|
}
|
|
219
236
|
return t22;
|
|
220
237
|
});
|
|
@@ -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,
|
|
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, imask, event) => {\n onComplete?.(unmask ? imask.unmaskedValue : 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","imask","event","unmaskedValue","inputRef","maskRef","value","setValue","t15","useIMask","acceptValue","imask_0","event_0","valueToSet","onChange","target","name","t16","event_1","trim","length","currentValue","sizeMask","toString","replace","bb99","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
|
}[];
|
package/lib/treetable/helpers.js
CHANGED
|
@@ -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
|
|
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;"}
|