linear-react-components-ui 1.1.26-beta.22 → 1.1.26-beta.24
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/assets/styles/datepicker2.css +1 -1
- package/lib/assets/styles/radiofield.css +1 -1
- package/lib/assets/styles/selectfield.css +1 -1
- package/lib/assets/styles/textfield.css +1 -1
- package/lib/buttons/DefaultButton.js +1 -1
- package/lib/calendar/base/index.js +2 -2
- package/lib/dialog/base/Content.d.ts +1 -1
- package/lib/dialog/base/Content.js +8 -7
- package/lib/dialog/base/Content.js.map +1 -1
- package/lib/dialog/form/index.js +23 -23
- package/lib/dialog/form/index.js.map +1 -1
- package/lib/dialog/types.d.ts +2 -1
- package/lib/dialog/wizard/index.js +4 -4
- package/lib/form/Field.js.map +1 -1
- package/lib/form/FieldArray.js +18 -18
- package/lib/form/FieldArray.js.map +1 -1
- package/lib/form/FieldNumber.js +42 -39
- package/lib/form/FieldNumber.js.map +1 -1
- package/lib/form/FieldPeriod.js +27 -27
- package/lib/form/FieldPeriod.js.map +1 -1
- package/lib/form/helpers.d.ts +5 -1
- package/lib/form/helpers.js.map +1 -1
- package/lib/form/withFormSecurity.js +3 -3
- package/lib/form2/useForm/index.js +95 -87
- package/lib/form2/useForm/index.js.map +1 -1
- package/lib/icons/index.js +1 -1
- package/lib/inputs/base/InputTextBase.js +1 -1
- package/lib/inputs/date/index.js +1 -1
- package/lib/inputs/number/Currency.d.ts +1 -1
- package/lib/inputs/number/Currency.js +79 -18
- package/lib/inputs/number/Currency.js.map +1 -1
- package/lib/inputs/number/Decimal.d.ts +2 -2
- package/lib/inputs/number/Decimal.js +78 -8
- package/lib/inputs/number/Decimal.js.map +1 -1
- package/lib/inputs/number/format_number.js +11 -5
- package/lib/inputs/number/format_number.js.map +1 -1
- package/lib/inputs/number/index.d.ts +1 -1
- package/lib/inputs/number/index.js +75 -31
- package/lib/inputs/number/index.js.map +1 -1
- package/lib/inputs/number/types.d.ts +9 -0
- package/lib/inputs/period/PeriodList.js +3 -3
- package/lib/inputs2/checkboxfield/base.js +1 -1
- package/lib/inputs2/date/datefield/base.js +1 -1
- package/lib/inputs2/date/datefield/types.d.ts +2 -2
- package/lib/inputs2/date/dateperiodfield/base.js +1 -1
- package/lib/inputs2/date/dateperiodfield/types.d.ts +2 -2
- package/lib/inputs2/filefield/index.js.map +1 -1
- package/lib/inputs2/index.d.ts +3 -2
- package/lib/inputs2/index.js +11 -8
- package/lib/inputs2/index.js.map +1 -1
- package/lib/inputs2/mask/Cnpj.d.ts +6 -3
- package/lib/inputs2/mask/Cnpj.js +107 -43
- package/lib/inputs2/mask/Cnpj.js.map +1 -1
- package/lib/inputs2/mask/Cpf.d.ts +6 -3
- package/lib/inputs2/mask/Cpf.js +87 -37
- package/lib/inputs2/mask/Cpf.js.map +1 -1
- package/lib/inputs2/mask/Phone.d.ts +5 -3
- package/lib/inputs2/mask/Phone.js +19 -18
- package/lib/inputs2/mask/Phone.js.map +1 -1
- package/lib/inputs2/mask/ZipCode.d.ts +6 -2
- package/lib/inputs2/mask/ZipCode.js +18 -16
- package/lib/inputs2/mask/ZipCode.js.map +1 -1
- package/lib/inputs2/mask/index.d.ts +6 -0
- package/lib/inputs2/mask/index.js +113 -0
- package/lib/inputs2/mask/index.js.map +1 -0
- package/lib/inputs2/mask/types.d.ts +16 -0
- package/lib/inputs2/numberfield/currency.d.ts +2 -1
- package/lib/inputs2/numberfield/currency.js +93 -75
- package/lib/inputs2/numberfield/currency.js.map +1 -1
- package/lib/inputs2/numberfield/decimal.d.ts +2 -1
- package/lib/inputs2/numberfield/decimal.js +87 -68
- package/lib/inputs2/numberfield/decimal.js.map +1 -1
- package/lib/inputs2/numberfield/helpers.js +10 -10
- package/lib/inputs2/numberfield/helpers.js.map +1 -1
- package/lib/inputs2/numberfield/index.d.ts +3 -2
- package/lib/inputs2/numberfield/index.js +26 -25
- package/lib/inputs2/numberfield/index.js.map +1 -1
- package/lib/inputs2/radiofield/base.js +76 -80
- package/lib/inputs2/radiofield/base.js.map +1 -1
- package/lib/inputs2/radiofield/index.js.map +1 -1
- package/lib/inputs2/selectfield/base.d.ts +1 -2
- package/lib/inputs2/selectfield/base.js +300 -300
- package/lib/inputs2/selectfield/base.js.map +1 -1
- package/lib/inputs2/selectfield/context.d.ts +1 -1
- package/lib/inputs2/selectfield/context.js.map +1 -1
- package/lib/inputs2/selectfield/index.d.ts +2 -1
- package/lib/inputs2/selectfield/index.js +20 -18
- package/lib/inputs2/selectfield/index.js.map +1 -1
- package/lib/inputs2/selectfield/listbox.d.ts +1 -0
- package/lib/inputs2/selectfield/listbox.js +34 -33
- package/lib/inputs2/selectfield/listbox.js.map +1 -1
- package/lib/inputs2/selectfield/selections.d.ts +1 -1
- package/lib/inputs2/selectfield/selections.js +11 -11
- package/lib/inputs2/selectfield/selections.js.map +1 -1
- package/lib/inputs2/selectfield/simple.d.ts +9 -0
- package/lib/inputs2/selectfield/simple.js +24 -0
- package/lib/inputs2/selectfield/simple.js.map +1 -0
- package/lib/inputs2/selectfield/triggers.js +15 -15
- package/lib/inputs2/selectfield/triggers.js.map +1 -1
- package/lib/inputs2/selectfield/types.d.ts +1 -0
- package/lib/inputs2/selectfield/types.js.map +1 -1
- package/lib/inputs2/textareafield/base.js +1 -1
- package/lib/inputs2/textfield/base.js +1 -1
- package/lib/labels/DefaultLabel.js +1 -1
- package/lib/list/Item.js +1 -1
- package/lib/menus/sidenav/MenuLink.js +1 -1
- package/lib/menus/sidenav/NavMenuItem.js +1 -1
- package/lib/permissionValidations.js +1 -2
- package/lib/textContent/index.js +1 -1
- package/package.json +6 -1
- package/lib/inputs/number/BaseNumber.d.ts +0 -3
- package/lib/inputs/number/BaseNumber.js +0 -60
- package/lib/inputs/number/BaseNumber.js.map +0 -1
- package/lib/inputs2/mask/BaseMask.d.ts +0 -13
- package/lib/inputs2/mask/BaseMask.js +0 -79
- package/lib/inputs2/mask/BaseMask.js.map +0 -1
package/lib/form/FieldPeriod.js
CHANGED
|
@@ -6,15 +6,15 @@ import B from "./withFieldHOC.js";
|
|
|
6
6
|
import { getErrorMessages as j } from "./helpers.js";
|
|
7
7
|
const G = (s) => {
|
|
8
8
|
const e = T.c(43), {
|
|
9
|
-
data:
|
|
9
|
+
data: l,
|
|
10
10
|
nameDateInitial: a,
|
|
11
11
|
nameDateFinal: n,
|
|
12
12
|
handlerFieldChange: g,
|
|
13
13
|
handlerFieldValidate: c,
|
|
14
|
-
fieldErrors:
|
|
14
|
+
fieldErrors: $,
|
|
15
15
|
externalMessagesErrors: v,
|
|
16
|
-
onChange:
|
|
17
|
-
validators:
|
|
16
|
+
onChange: u,
|
|
17
|
+
validators: E,
|
|
18
18
|
originalData: b,
|
|
19
19
|
component: h,
|
|
20
20
|
name: t,
|
|
@@ -24,25 +24,25 @@ const G = (s) => {
|
|
|
24
24
|
let S = null;
|
|
25
25
|
const [D, I] = k(!1);
|
|
26
26
|
let F;
|
|
27
|
-
e[0] !==
|
|
28
|
-
const
|
|
29
|
-
let M;
|
|
30
|
-
e[3] !== t || e[4] !== b ? (M = r.get(b, t), e[3] = t, e[4] = b, e[5] = M) : M = e[5];
|
|
31
|
-
const V = M;
|
|
27
|
+
e[0] !== l || e[1] !== t ? (F = r.get(l, t), e[0] = l, e[1] = t, e[2] = F) : F = e[2];
|
|
28
|
+
const i = F;
|
|
32
29
|
let _;
|
|
33
|
-
e[
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
e[3] !== t || e[4] !== b ? (_ = r.get(b, t), e[3] = t, e[4] = b, e[5] = _) : _ = e[5];
|
|
31
|
+
const M = _;
|
|
32
|
+
let V;
|
|
33
|
+
e[6] !== i || e[7] !== l || e[8] !== M ? (V = () => {
|
|
34
|
+
!r.isEqual(i, M) && i && (i || i === 0 || Array.isArray(i) && i.length > 0) ? I(!0) : (r.isEmpty(l) || r.every(l, r.isEmpty) || r.isEqual(i, M)) && I(!1);
|
|
35
|
+
}, e[6] = i, e[7] = l, e[8] = M, e[9] = V) : V = e[9];
|
|
38
36
|
let x;
|
|
39
|
-
e[
|
|
37
|
+
e[10] !== i ? (x = [i], e[10] = i, e[11] = x) : x = e[11], z(V, x);
|
|
38
|
+
let y;
|
|
39
|
+
e[12] !== w || e[13] !== v || e[14] !== $ || e[15] !== t || e[16] !== D ? (y = j({
|
|
40
40
|
name: t,
|
|
41
|
-
fieldErrors: D ?
|
|
41
|
+
fieldErrors: D ? $ : {},
|
|
42
42
|
externalFieldErrors: w,
|
|
43
43
|
externalMessagesErrors: v
|
|
44
|
-
}), e[12] = w, e[13] = v, e[14] =
|
|
45
|
-
const O =
|
|
44
|
+
}), e[12] = w, e[13] = v, e[14] = $, e[15] = t, e[16] = D, e[17] = y) : y = e[17];
|
|
45
|
+
const O = y, p = j({
|
|
46
46
|
...s,
|
|
47
47
|
fieldErrors: s.fieldErrors
|
|
48
48
|
});
|
|
@@ -52,15 +52,15 @@ const G = (s) => {
|
|
|
52
52
|
hasErrors: !!p.length
|
|
53
53
|
}), h) {
|
|
54
54
|
let o;
|
|
55
|
-
e[18] !== g || e[19] !== c || e[20] !== t || e[21] !== n || e[22] !== a || e[23] !==
|
|
55
|
+
e[18] !== g || e[19] !== c || e[20] !== t || e[21] !== n || e[22] !== a || e[23] !== u || e[24] !== E ? (o = (J, K, H) => {
|
|
56
56
|
const {
|
|
57
57
|
initial: q,
|
|
58
58
|
final: A
|
|
59
59
|
} = H;
|
|
60
|
-
|
|
60
|
+
E && c && (c(a, {
|
|
61
61
|
[a]: q,
|
|
62
62
|
[n]: A
|
|
63
|
-
},
|
|
63
|
+
}, E), I(!0)), g && g({
|
|
64
64
|
target: {
|
|
65
65
|
name: t,
|
|
66
66
|
value: {
|
|
@@ -68,22 +68,22 @@ const G = (s) => {
|
|
|
68
68
|
[n]: A
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
}),
|
|
71
|
+
}), u && u({
|
|
72
72
|
initial: q,
|
|
73
73
|
final: A
|
|
74
74
|
});
|
|
75
|
-
}, e[18] = g, e[19] = c, e[20] = t, e[21] = n, e[22] = a, e[23] =
|
|
75
|
+
}, e[18] = g, e[19] = c, e[20] = t, e[21] = n, e[22] = a, e[23] = u, e[24] = E, e[25] = o) : o = e[25];
|
|
76
76
|
let f;
|
|
77
|
-
e[26] !==
|
|
77
|
+
e[26] !== l || e[27] !== t || e[28] !== a ? (f = r.get(l, `${t}.${a}`), e[26] = l, e[27] = t, e[28] = a, e[29] = f) : f = e[29];
|
|
78
78
|
let d;
|
|
79
|
-
e[30] !==
|
|
79
|
+
e[30] !== l || e[31] !== t || e[32] !== n ? (d = r.get(l, `${t}.${n}`), e[30] = l, e[31] = t, e[32] = n, e[33] = d) : d = e[33];
|
|
80
80
|
let m;
|
|
81
81
|
e[34] !== f || e[35] !== d ? (m = {
|
|
82
82
|
initial: f,
|
|
83
83
|
final: d
|
|
84
84
|
}, e[34] = f, e[35] = d, e[36] = m) : m = e[36];
|
|
85
|
-
let
|
|
86
|
-
e[37] !== h || e[38] !== O || e[39] !== s || e[40] !== o || e[41] !== m ? (
|
|
85
|
+
let C;
|
|
86
|
+
e[37] !== h || e[38] !== O || e[39] !== s || e[40] !== o || e[41] !== m ? (C = /* @__PURE__ */ R(h, { ...s, errorMessages: O, onChange: o, value: m }), e[37] = h, e[38] = O, e[39] = s, e[40] = o, e[41] = m, e[42] = C) : C = e[42], S = C;
|
|
87
87
|
}
|
|
88
88
|
return S;
|
|
89
89
|
}, Y = B(G);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldPeriod.js","sources":["../../src/lib/form/FieldPeriod.tsx"],"sourcesContent":["import { JSX, useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport withFieldHOC from './withFieldHOC';\nimport { getErrorMessages } from './helpers';\nimport { IFieldPeriodProps, PeriodChangeEvent } from './types';\nimport { CustomInputEvent } from '../inputs/base/types';\n\nconst FieldPeriod = (props: IFieldPeriodProps) => {\n const {\n data,\n nameDateInitial,\n nameDateFinal,\n handlerFieldChange,\n handlerFieldValidate: handlerFieldValidate,\n fieldErrors,\n externalMessagesErrors,\n onChange,\n validators,\n originalData,\n component: Component,\n name,\n externalFieldErrors,\n handleValidationErrorsOnTab,\n } = props;\n let content: JSX.Element | null = null;\n const [showValidateMessages, setShowValidateMessages] = useState(false);\n const currentValue = _.get(data, name);\n const originalValue = _.get(originalData, name);\n\n useEffect(() => {\n if (!_.isEqual(currentValue, originalValue) && currentValue && (!!currentValue ||\n currentValue === 0 || (Array.isArray(currentValue) && currentValue.length > 0))) {\n setShowValidateMessages(true);\n } else if ((_.isEmpty(data) || _.every(data, _.isEmpty))\n || _.isEqual(currentValue, originalValue)) {\n setShowValidateMessages(false);\n }\n }, [currentValue]);\n\n const errorMessages = getErrorMessages({\n name,\n fieldErrors: showValidateMessages ? fieldErrors : {},\n externalFieldErrors,\n externalMessagesErrors,\n });\n\n const hasErrorsMessagesOnField = getErrorMessages({\n ...props, fieldErrors: props.fieldErrors,\n });\n\n if (handleValidationErrorsOnTab) handleValidationErrorsOnTab({\n name: name,\n tabId: props.tabId,\n hasErrors: !!hasErrorsMessagesOnField.length,\n });\n\n if (Component) {\n content = (\n <Component\n {...props}\n errorMessages={errorMessages}\n onChange={(\n __: CustomInputEvent,\n ___: string,\n { initial, final }: PeriodChangeEvent,\n ) => {\n if (validators && handlerFieldValidate) {\n handlerFieldValidate(nameDateInitial, {\n [nameDateInitial]: initial,\n [nameDateFinal]: final,\n }, validators);\n setShowValidateMessages(true);\n }\n if (handlerFieldChange) {\n handlerFieldChange({\n target: {\n name,\n value: {\n [nameDateInitial]: initial,\n [nameDateFinal]: final,\n },\n },\n });\n }\n if (onChange) onChange({ initial, final });\n }}\n value={{\n initial: _.get(data, `${name}.${nameDateInitial}`),\n final: _.get(data, `${name}.${nameDateFinal}`),\n }} />\n );\n }\n\n return (content);\n};\n\nexport default withFieldHOC(FieldPeriod);\n"],"names":["FieldPeriod","props","$","_c","data","nameDateInitial","nameDateFinal","handlerFieldChange","handlerFieldValidate","fieldErrors","externalMessagesErrors","onChange","validators","originalData","component","Component","name","externalFieldErrors","handleValidationErrorsOnTab","content","showValidateMessages","setShowValidateMessages","useState","t0","_","get","currentValue","t1","originalValue","t2","isEqual","Array","isArray","length","isEmpty","every","t3","useEffect","t4","getErrorMessages","errorMessages","hasErrorsMessagesOnField","tabId","hasErrors","t5","__","___","t6","initial","final","target","value","t7","t8","t9","jsx","
|
|
1
|
+
{"version":3,"file":"FieldPeriod.js","sources":["../../src/lib/form/FieldPeriod.tsx"],"sourcesContent":["import { JSX, useEffect, useState } from 'react';\nimport _ from 'lodash';\nimport withFieldHOC from './withFieldHOC';\nimport { getErrorMessages } from './helpers';\nimport { IFieldPeriodProps, PeriodChangeEvent } from './types';\nimport { CustomInputEvent } from '../inputs/base/types';\n\nconst FieldPeriod = (props: IFieldPeriodProps) => {\n const {\n data,\n nameDateInitial,\n nameDateFinal,\n handlerFieldChange,\n handlerFieldValidate: handlerFieldValidate,\n fieldErrors,\n externalMessagesErrors,\n onChange,\n validators,\n originalData,\n component: Component,\n name,\n externalFieldErrors,\n handleValidationErrorsOnTab,\n } = props;\n let content: JSX.Element | null = null;\n const [showValidateMessages, setShowValidateMessages] = useState(false);\n const currentValue = _.get(data, name);\n const originalValue = _.get(originalData, name);\n\n useEffect(() => {\n if (!_.isEqual(currentValue, originalValue) && currentValue && (!!currentValue ||\n currentValue === 0 || (Array.isArray(currentValue) && currentValue.length > 0))) {\n setShowValidateMessages(true);\n } else if ((_.isEmpty(data) || _.every(data, _.isEmpty))\n || _.isEqual(currentValue, originalValue)) {\n setShowValidateMessages(false);\n }\n }, [currentValue]);\n\n const errorMessages = getErrorMessages({\n name,\n fieldErrors: showValidateMessages ? fieldErrors : {},\n externalFieldErrors,\n externalMessagesErrors,\n });\n\n const hasErrorsMessagesOnField = getErrorMessages({\n ...props, fieldErrors: props.fieldErrors,\n });\n\n if (handleValidationErrorsOnTab) handleValidationErrorsOnTab({\n name: name,\n tabId: props.tabId,\n hasErrors: !!hasErrorsMessagesOnField.length,\n });\n\n if (Component) {\n content = (\n <Component\n {...props}\n errorMessages={errorMessages}\n onChange={(\n __: CustomInputEvent,\n ___: string,\n { initial, final }: PeriodChangeEvent,\n ) => {\n if (validators && handlerFieldValidate) {\n handlerFieldValidate(nameDateInitial, {\n [nameDateInitial]: initial,\n [nameDateFinal]: final,\n }, validators);\n setShowValidateMessages(true);\n }\n if (handlerFieldChange) {\n handlerFieldChange({\n target: {\n name,\n value: {\n [nameDateInitial]: initial,\n [nameDateFinal]: final,\n },\n },\n });\n }\n if (onChange) onChange({ initial, final });\n }}\n value={{\n initial: _.get(data, `${name}.${nameDateInitial}`),\n final: _.get(data, `${name}.${nameDateFinal}`),\n }} />\n );\n }\n\n return (content);\n};\n\nexport default withFieldHOC(FieldPeriod);\n"],"names":["FieldPeriod","props","$","_c","data","nameDateInitial","nameDateFinal","handlerFieldChange","handlerFieldValidate","fieldErrors","externalMessagesErrors","onChange","validators","originalData","component","Component","name","externalFieldErrors","handleValidationErrorsOnTab","content","showValidateMessages","setShowValidateMessages","useState","t0","_","get","currentValue","t1","originalValue","t2","isEqual","Array","isArray","length","isEmpty","every","t3","useEffect","t4","getErrorMessages","errorMessages","hasErrorsMessagesOnField","tabId","hasErrors","t5","__","___","t6","initial","final","target","value","t7","t8","t9","jsx","FieldPeriod_default","withFieldHOC"],"mappings":"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"}
|
package/lib/form/helpers.d.ts
CHANGED
|
@@ -2,6 +2,10 @@ import { FormContextProps, IGetErrorMessagesParams, IWithFieldContext, Validator
|
|
|
2
2
|
export declare const securityBeforeUnload = "securityBeforeUnload";
|
|
3
3
|
export declare const FormContext: import('react').Context<FormContextProps>;
|
|
4
4
|
export declare const withFieldContext: import('react').Context<IWithFieldContext>;
|
|
5
|
-
|
|
5
|
+
type FieldTarget = Omit<HTMLInputElement, 'value'> & {
|
|
6
|
+
value: string | number;
|
|
7
|
+
};
|
|
8
|
+
export declare const changeValue: (data: object, target: FieldTarget) => any;
|
|
6
9
|
export declare const getErrorMessages: ({ name, fieldErrors, externalFieldErrors, externalMessagesErrors, }: IGetErrorMessagesParams) => string[];
|
|
7
10
|
export declare const getValidatorsArray: (validators?: Validator | Validator[], validatorFromComponent?: Validator | Validator[]) => Validator[];
|
|
11
|
+
export {};
|
package/lib/form/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../src/lib/form/helpers.tsx"],"sourcesContent":["import _ from 'lodash';\nimport { createContext } from 'react';\nimport { FormContextProps, IGetErrorMessagesParams, IWithFieldContext, Validator } from './types';\n\nexport const securityBeforeUnload = 'securityBeforeUnload';\n\nexport const FormContext = createContext({} as FormContextProps);\n\nexport const withFieldContext = createContext({} as IWithFieldContext);\n\nexport const changeValue = (data: object, target:
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../src/lib/form/helpers.tsx"],"sourcesContent":["import _ from 'lodash';\nimport { createContext } from 'react';\nimport { FormContextProps, IGetErrorMessagesParams, IWithFieldContext, Validator } from './types';\n\nexport const securityBeforeUnload = 'securityBeforeUnload';\n\nexport const FormContext = createContext({} as FormContextProps);\n\nexport const withFieldContext = createContext({} as IWithFieldContext);\n\ntype FieldTarget = Omit<HTMLInputElement, 'value'> & { value: string | number };\n\nexport const changeValue = (data: object, target: FieldTarget) => {\n const { name, value } = target;\n return _.set(JSON.parse(JSON.stringify(data)), name, value);\n};\n\nexport const getErrorMessages = ({\n name,\n fieldErrors,\n externalFieldErrors,\n externalMessagesErrors,\n}: IGetErrorMessagesParams) => {\n let errors = externalMessagesErrors ? [...externalMessagesErrors] : [];\n if (fieldErrors && fieldErrors[name]) {\n errors = [...errors, ...fieldErrors[name]];\n }\n if (externalFieldErrors && externalFieldErrors[name]) {\n errors = [...errors, ...externalFieldErrors[name]];\n }\n return errors;\n};\n\nexport const getValidatorsArray = (\n validators?: Validator | Validator[],\n validatorFromComponent?: Validator | Validator[],\n) => {\n let validatorsArray: Validator[] = [];\n\n if (validators && validatorFromComponent) {\n validatorsArray = !_.isArray(validators) ? [validators] : validators;\n validatorsArray = !_.isArray(validatorFromComponent)\n ? [...validatorsArray, validatorFromComponent]\n : [...validatorsArray, ...validatorFromComponent];\n } else if (validatorFromComponent) {\n validatorsArray = !_.isArray(validatorFromComponent)\n ? [validatorFromComponent]\n : validatorFromComponent;\n } else if (validators) {\n validatorsArray = (!(validators instanceof Array)) ? [validators] : validators;\n }\n\n return validatorsArray;\n};\n"],"names":["FormContext","createContext","withFieldContext","changeValue","data","target","name","value","_","set","JSON","parse","stringify","getErrorMessages","fieldErrors","externalFieldErrors","externalMessagesErrors","errors","getValidatorsArray","validators","validatorFromComponent","validatorsArray","isArray","Array"],"mappings":";;AAMO,MAAMA,IAAcC,EAAc,CAAA,CAAsB,GAElDC,IAAmBD,EAAc,CAAA,CAAuB,GAIxDE,IAAcA,CAACC,GAAcC,MAAwB;AAChE,QAAM;AAAA,IAAEC,MAAAA;AAAAA,IAAMC,OAAAA;AAAAA,EAAAA,IAAUF;AACxB,SAAOG,EAAEC,IAAIC,KAAKC,MAAMD,KAAKE,UAAUR,CAAI,CAAC,GAAGE,GAAMC,CAAK;AAC5D,GAEaM,IAAmBA,CAAC;AAAA,EAC/BP,MAAAA;AAAAA,EACAQ,aAAAA;AAAAA,EACAC,qBAAAA;AAAAA,EACAC,wBAAAA;AACuB,MAAM;AAC7B,MAAIC,IAASD,IAAyB,CAAC,GAAGA,CAAsB,IAAI,CAAA;AACpE,SAAIF,KAAeA,EAAYR,CAAI,MACjCW,IAAS,CAAC,GAAGA,GAAQ,GAAGH,EAAYR,CAAI,CAAC,IAEvCS,KAAuBA,EAAoBT,CAAI,MACjDW,IAAS,CAAC,GAAGA,GAAQ,GAAGF,EAAoBT,CAAI,CAAC,IAE5CW;AACT,GAEaC,IAAqBA,CAChCC,GACAC,MACG;AACH,MAAIC,IAA+B,CAAA;AAEnC,SAAIF,KAAcC,KAChBC,IAAmBb,EAAEc,QAAQH,CAAU,IAAmBA,IAAf,CAACA,CAAU,GACtDE,IAAmBb,EAAEc,QAAQF,CAAsB,IAE/C,CAAC,GAAGC,GAAiB,GAAGD,CAAsB,IAD9C,CAAC,GAAGC,GAAiBD,CAAsB,KAEtCA,IACTC,IAAmBb,EAAEc,QAAQF,CAAsB,IAE/CA,IADA,CAACA,CAAsB,IAElBD,MACTE,IAAqBF,aAAsBI,QAAyBJ,IAAf,CAACA,CAAU,IAG3DE;AACT;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
const m =
|
|
2
|
+
import { useRef as i, useState as d, createContext as h } from "react";
|
|
3
|
+
const m = h({}), w = (l) => (r) => {
|
|
4
4
|
const {
|
|
5
5
|
onOpenChange: e,
|
|
6
6
|
handlerClose: n
|
|
7
|
-
} = r, c = i(!1), o = i(!1), [f, s] =
|
|
7
|
+
} = r, c = i(!1), o = i(!1), [f, s] = d(!1), u = () => {
|
|
8
8
|
c.current && o.current ? s(!0) : e ? e(!1) : n && n();
|
|
9
9
|
}, C = {
|
|
10
10
|
onChangedData: (t) => {
|
|
@@ -1,121 +1,129 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useState as
|
|
1
|
+
import e from "../../_virtual/lodash.js";
|
|
2
|
+
import { useState as D, useRef as O } from "react";
|
|
3
3
|
import { flattenValidators as Q, deepMergeValues as U, mergeRefs as W } from "../helpers.js";
|
|
4
4
|
const $ = ({
|
|
5
|
-
initialValues:
|
|
6
|
-
validators:
|
|
7
|
-
options:
|
|
5
|
+
initialValues: S,
|
|
6
|
+
validators: M = {},
|
|
7
|
+
options: C = {
|
|
8
8
|
validationMode: "default"
|
|
9
9
|
}
|
|
10
10
|
}) => {
|
|
11
|
-
const [
|
|
12
|
-
const n =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return t.set(o, e, n), o;
|
|
11
|
+
const [u, V] = D(S), [d, g] = D({}), [F, m] = D({}), [E, j] = D({}), B = O({}), h = O(S), v = O(S), f = Q(M), b = (t, r = E, s = d) => {
|
|
12
|
+
const n = Object.keys(f).filter((c) => {
|
|
13
|
+
const o = e.get(r, c), a = !e.isEmpty(e.get(s, c));
|
|
14
|
+
return !!(o || a);
|
|
16
15
|
});
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
n.length && g((c) => {
|
|
17
|
+
const o = e.cloneDeep(c);
|
|
18
|
+
return n.forEach((a) => {
|
|
19
|
+
const l = e.get(t, a), w = (e.get(f, a) ?? []).map((p) => p(l, t)).filter((p) => !!p);
|
|
20
|
+
e.set(o, a, w);
|
|
21
|
+
}), o;
|
|
22
|
+
});
|
|
23
|
+
}, R = () => {
|
|
24
|
+
const t = {};
|
|
25
|
+
return Object.keys(f).forEach((r) => {
|
|
26
|
+
const s = e.get(u, r), c = (e.get(f, r) ?? []).map((o) => o(s, u)).filter((o) => !!o);
|
|
27
|
+
c.length && e.set(t, r, c);
|
|
28
|
+
}), g(t), t;
|
|
29
|
+
}, q = () => Object.keys(f).every((t) => {
|
|
30
|
+
const r = e.get(u, t);
|
|
31
|
+
return (e.get(f, t) ?? []).every((n) => !n(r, u));
|
|
32
|
+
}), k = (t) => e.get(d, t) ?? [], x = (t) => {
|
|
33
|
+
g((r) => {
|
|
34
|
+
const s = e.cloneDeep(r);
|
|
35
|
+
return Object.entries(t).forEach(([n, c]) => {
|
|
36
|
+
e.set(s, n, c);
|
|
31
37
|
}), s;
|
|
32
38
|
});
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
const n =
|
|
36
|
-
|
|
37
|
-
const c =
|
|
38
|
-
return
|
|
39
|
-
const
|
|
40
|
-
return
|
|
41
|
-
}), n;
|
|
39
|
+
}, I = (t) => e.get(u, t), A = (t, r) => {
|
|
40
|
+
V((s) => {
|
|
41
|
+
const n = e.cloneDeep(s);
|
|
42
|
+
e.set(n, t, r);
|
|
43
|
+
const c = e.get(v.current, t), o = !e.isEqual(c, r);
|
|
44
|
+
return m((a) => {
|
|
45
|
+
const l = e.cloneDeep(a);
|
|
46
|
+
return e.set(l, t, o), l;
|
|
47
|
+
}), C.validationMode === "default" && b(n), n;
|
|
42
48
|
});
|
|
43
|
-
},
|
|
44
|
-
const s =
|
|
49
|
+
}, H = (t, r) => {
|
|
50
|
+
const s = B.current[t];
|
|
45
51
|
s?.focus?.(), r?.shouldSelect && s?.select?.();
|
|
46
|
-
},
|
|
47
|
-
const r =
|
|
48
|
-
(
|
|
49
|
-
|
|
50
|
-
}),
|
|
51
|
-
},
|
|
52
|
-
const s =
|
|
53
|
-
(
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
}),
|
|
57
|
-
},
|
|
58
|
-
|
|
59
|
-
const s = U(r,
|
|
60
|
-
return
|
|
52
|
+
}, z = (t, r) => e.isEqual(e.get(u, t), r), G = (t) => {
|
|
53
|
+
const r = e.cloneDeep(d);
|
|
54
|
+
(t ?? Object.keys(d)).forEach((n) => {
|
|
55
|
+
e.set(r, n, []);
|
|
56
|
+
}), g(r);
|
|
57
|
+
}, T = (t, r) => {
|
|
58
|
+
const s = e.cloneDeep(u), n = e.cloneDeep(E), c = e.cloneDeep(F), o = e.cloneDeep(d);
|
|
59
|
+
(t ?? Object.keys(h.current)).forEach((l) => {
|
|
60
|
+
const i = e.get(h.current, l);
|
|
61
|
+
e.set(s, l, i), e.set(n, l, !1), e.set(c, l, !1), e.set(o, l, []);
|
|
62
|
+
}), V(s), j(n), m(c), g(o), r || (v.current = h.current);
|
|
63
|
+
}, J = (t) => {
|
|
64
|
+
T(void 0, !0), V((r) => {
|
|
65
|
+
const s = U(r, t);
|
|
66
|
+
return v.current = s, s;
|
|
61
67
|
});
|
|
62
|
-
},
|
|
68
|
+
}, K = (t, r) => {
|
|
63
69
|
const {
|
|
64
70
|
onChange: s,
|
|
65
71
|
onBlur: n,
|
|
66
72
|
ref: c
|
|
67
73
|
} = r ?? {};
|
|
68
74
|
return {
|
|
69
|
-
name:
|
|
75
|
+
name: t,
|
|
70
76
|
ref: W((o) => {
|
|
71
|
-
|
|
77
|
+
B.current[t] = o;
|
|
72
78
|
}, c),
|
|
73
|
-
value:
|
|
79
|
+
value: e.get(u, t, e.get(h.current, t, "")),
|
|
80
|
+
errors: e.get(d, t, []),
|
|
74
81
|
onChange: (o) => {
|
|
75
82
|
const {
|
|
76
|
-
value:
|
|
83
|
+
value: a
|
|
77
84
|
} = o.target;
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
const
|
|
82
|
-
return
|
|
83
|
-
const
|
|
84
|
-
return
|
|
85
|
-
}),
|
|
85
|
+
V((l) => {
|
|
86
|
+
const i = e.cloneDeep(l);
|
|
87
|
+
e.set(i, t, a);
|
|
88
|
+
const w = !e.isEqual(e.get(v.current, t), a);
|
|
89
|
+
return m((p) => {
|
|
90
|
+
const y = e.cloneDeep(p);
|
|
91
|
+
return e.set(y, t, w), y;
|
|
92
|
+
}), C.validationMode === "default" && b(i, E, d), i;
|
|
86
93
|
}), s?.(o);
|
|
87
94
|
},
|
|
88
95
|
onBlur: (o) => {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
96
|
+
const a = e.cloneDeep(E);
|
|
97
|
+
e.set(a, t, !0), j((l) => {
|
|
98
|
+
const i = e.cloneDeep(l);
|
|
99
|
+
return e.set(i, t, !0), i;
|
|
100
|
+
}), C.validationMode === "default" && b(u, a, d), n?.(o);
|
|
93
101
|
}
|
|
94
102
|
};
|
|
95
|
-
},
|
|
103
|
+
}, L = (t) => (r) => {
|
|
96
104
|
r.preventDefault();
|
|
97
|
-
const s =
|
|
98
|
-
|
|
99
|
-
},
|
|
105
|
+
const s = R();
|
|
106
|
+
e.isEmpty(s) && t(u);
|
|
107
|
+
}, N = q(), P = Object.values(F).some(Boolean);
|
|
100
108
|
return {
|
|
101
|
-
reset:
|
|
109
|
+
reset: T,
|
|
102
110
|
changed: F,
|
|
103
|
-
values:
|
|
111
|
+
values: u,
|
|
104
112
|
errors: d,
|
|
105
|
-
touched:
|
|
106
|
-
isValid:
|
|
107
|
-
formHasChange:
|
|
108
|
-
register:
|
|
109
|
-
cleanErrors:
|
|
110
|
-
changeValues:
|
|
111
|
-
compareField:
|
|
112
|
-
handleSubmit:
|
|
113
|
-
getFieldValue:
|
|
114
|
-
getFieldError:
|
|
115
|
-
setFieldFocus:
|
|
116
|
-
setFieldValue:
|
|
117
|
-
setExternalErrors:
|
|
118
|
-
initialValues:
|
|
113
|
+
touched: E,
|
|
114
|
+
isValid: N,
|
|
115
|
+
formHasChange: P,
|
|
116
|
+
register: K,
|
|
117
|
+
cleanErrors: G,
|
|
118
|
+
changeValues: J,
|
|
119
|
+
compareField: z,
|
|
120
|
+
handleSubmit: L,
|
|
121
|
+
getFieldValue: I,
|
|
122
|
+
getFieldError: k,
|
|
123
|
+
setFieldFocus: H,
|
|
124
|
+
setFieldValue: A,
|
|
125
|
+
setExternalErrors: x,
|
|
126
|
+
initialValues: h.current
|
|
119
127
|
};
|
|
120
128
|
};
|
|
121
129
|
export {
|
|
@@ -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 validateField = (name: string, value: any) => {\n const validatorsForField = _.get(flattenedValidators, name) ?? [];\n const fieldErrors = validatorsForField\n .map((validator: any) => validator(value, values))\n .filter((message: string) => Boolean(message));\n\n setErrors((prevErrorsState) => {\n const updatedErrorsState = _.cloneDeep(prevErrorsState);\n _.set(updatedErrorsState, name, fieldErrors);\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 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 const newErrorsState = _.cloneDeep(errors);\n const fields = fieldsToClean ?? Object.keys(errors);\n\n fields.forEach((key) => {\n _.set(newErrorsState, key, []);\n });\n\n setErrors(newErrorsState);\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 newErrorsState = _.cloneDeep(errors);\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 _.set(newErrorsState, key, []);\n });\n\n setValues(newValuesState);\n setTouched(newTouchedState);\n setChanged(newChangedState);\n setErrors(newErrorsState);\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 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' && _.get(touched, name)) {\n validateField(name, value);\n }\n\n return updatedValues;\n });\n onChange?.(event);\n },\n onBlur: (event: FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setTouched((prevStateTouched) => {\n const updated = _.cloneDeep(prevStateTouched);\n _.set(updated, name, true);\n return updated;\n });\n\n if (options.validationMode === 'default') {\n validateField(name, _.get(values, name));\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","validateField","name","value","fieldErrors","_","get","map","validator","filter","message","Boolean","prevErrorsState","updatedErrorsState","cloneDeep","set","validateAllFields","allValidationErrors","Object","keys","forEach","path","length","checkFormIsValid","every","getFieldError","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","fields","reset","inputsToReset","internalReset","newValuesState","newTouchedState","newChangedState","inputs","initialValue","changeValues","fieldValues","undefined","deepMergeValues","register","registerOptions","onChange","onBlur","ref","mergeRefs","inputElement","event","target","updatedValues","prevStateTouched","updated","handleSubmit","callback","preventDefault","validationErrors","isEmpty","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 [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 const newErrorsState = _.cloneDeep(errors);\n const fields = fieldsToClean ?? Object.keys(errors);\n\n fields.forEach((key) => {\n _.set(newErrorsState, key, []);\n });\n\n setErrors(newErrorsState);\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 newErrorsState = _.cloneDeep(errors);\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 _.set(newErrorsState, key, []);\n });\n\n setValues(newValuesState);\n setTouched(newTouchedState);\n setChanged(newChangedState);\n setErrors(newErrorsState);\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","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","fields","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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"}
|
package/lib/icons/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { c as L } from "../_virtual/compiler-runtime.js";
|
|
|
3
3
|
import { useRef as D, Fragment as M } from "react";
|
|
4
4
|
import Q from "./helper.js";
|
|
5
5
|
import '../assets/styles/icon.css';/* empty css */
|
|
6
|
-
import V from "../tooltip/index.js";
|
|
6
|
+
import { Tooltip as V } from "../tooltip/index.js";
|
|
7
7
|
const G = Q, X = "rgb(193, 193, 193)", rt = (m) => {
|
|
8
8
|
const t = L.c(39), {
|
|
9
9
|
name: o,
|
|
@@ -9,7 +9,7 @@ import Re from "../../hint/index.js";
|
|
|
9
9
|
import { ErrorMessage as We } from "../errorMessage/index.js";
|
|
10
10
|
import H from "../../textContent/index.js";
|
|
11
11
|
import Be from "../../popover/index.js";
|
|
12
|
-
import Te from "../../tooltip/index.js";
|
|
12
|
+
import { Tooltip as Te } from "../../tooltip/index.js";
|
|
13
13
|
import Ee from "../../popover/PopoverText.js";
|
|
14
14
|
const Le = (t) => {
|
|
15
15
|
const {
|
package/lib/inputs/date/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as m, jsxs as ue } from "react/jsx-runtime";
|
|
2
2
|
import '../../assets/styles/button.css';import '../../assets/styles/datepicker.css';/* empty css */
|
|
3
3
|
import { useState as g, useRef as C, useEffect as w } from "react";
|
|
4
4
|
import a from "../../node_modules/moment/dist/moment.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ICurrencyProps } from './types';
|
|
2
|
-
declare const CurrencyField: (
|
|
2
|
+
declare const CurrencyField: (props: ICurrencyProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default CurrencyField;
|