@mantine/form 9.0.0-alpha.5 → 9.0.0-alpha.7
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/cjs/FormProvider/FormProvider.cjs +26 -21
- package/cjs/FormProvider/FormProvider.cjs.map +1 -1
- package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
- package/cjs/actions/actions.cjs +86 -117
- package/cjs/actions/actions.cjs.map +1 -1
- package/cjs/form-index.cjs +5 -5
- package/cjs/form-index.cjs.map +1 -1
- package/cjs/get-input-on-change/get-input-on-change.cjs +15 -25
- package/cjs/get-input-on-change/get-input-on-change.cjs.map +1 -1
- package/cjs/get-status/get-status.cjs +11 -11
- package/cjs/get-status/get-status.cjs.map +1 -1
- package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs +11 -15
- package/cjs/hooks/use-form-errors/filter-errors/filter-errors.cjs.map +1 -1
- package/cjs/hooks/use-form-errors/use-form-errors.cjs +39 -48
- package/cjs/hooks/use-form-errors/use-form-errors.cjs.map +1 -1
- package/cjs/hooks/use-form-list/use-form-list.cjs +47 -51
- package/cjs/hooks/use-form-list/use-form-list.cjs.map +1 -1
- package/cjs/hooks/use-form-status/use-form-status.cjs +95 -128
- package/cjs/hooks/use-form-status/use-form-status.cjs.map +1 -1
- package/cjs/hooks/use-form-validating/use-form-validating.cjs +49 -51
- package/cjs/hooks/use-form-validating/use-form-validating.cjs.map +1 -1
- package/cjs/hooks/use-form-values/use-form-values.cjs +92 -107
- package/cjs/hooks/use-form-values/use-form-values.cjs.map +1 -1
- package/cjs/hooks/use-form-watch/use-form-watch.cjs +41 -57
- package/cjs/hooks/use-form-watch/use-form-watch.cjs.map +1 -1
- package/cjs/index.cjs +35 -38
- package/cjs/lists/change-error-indices.cjs +34 -41
- package/cjs/lists/change-error-indices.cjs.map +1 -1
- package/cjs/lists/clear-list-state.cjs +11 -15
- package/cjs/lists/clear-list-state.cjs.map +1 -1
- package/cjs/lists/reorder-errors.cjs +30 -32
- package/cjs/lists/reorder-errors.cjs.map +1 -1
- package/cjs/paths/get-data-path.cjs +6 -6
- package/cjs/paths/get-data-path.cjs.map +1 -1
- package/cjs/paths/get-path.cjs +14 -19
- package/cjs/paths/get-path.cjs.map +1 -1
- package/cjs/paths/get-splitted-path.cjs +7 -9
- package/cjs/paths/get-splitted-path.cjs.map +1 -1
- package/cjs/paths/insert-path.cjs +12 -15
- package/cjs/paths/insert-path.cjs.map +1 -1
- package/cjs/paths/remove-path.cjs +10 -17
- package/cjs/paths/remove-path.cjs.map +1 -1
- package/cjs/paths/reorder-path.cjs +14 -17
- package/cjs/paths/reorder-path.cjs.map +1 -1
- package/cjs/paths/replace-path.cjs +13 -18
- package/cjs/paths/replace-path.cjs.map +1 -1
- package/cjs/paths/set-path.cjs +22 -26
- package/cjs/paths/set-path.cjs.map +1 -1
- package/cjs/schema-resolver.cjs +24 -0
- package/cjs/schema-resolver.cjs.map +1 -0
- package/cjs/use-field.cjs +94 -131
- package/cjs/use-field.cjs.map +1 -1
- package/cjs/use-form.cjs +316 -379
- package/cjs/use-form.cjs.map +1 -1
- package/cjs/validate/get-rule-for-path.cjs +16 -24
- package/cjs/validate/get-rule-for-path.cjs.map +1 -1
- package/cjs/validate/should-validate-on-change.cjs +10 -17
- package/cjs/validate/should-validate-on-change.cjs.map +1 -1
- package/cjs/validate/validate-field-value.cjs +58 -54
- package/cjs/validate/validate-field-value.cjs.map +1 -1
- package/cjs/validate/validate-values.cjs +77 -108
- package/cjs/validate/validate-values.cjs.map +1 -1
- package/cjs/validators/has-length/has-length.cjs +17 -27
- package/cjs/validators/has-length/has-length.cjs.map +1 -1
- package/cjs/validators/is-email/is-email.cjs +7 -8
- package/cjs/validators/is-email/is-email.cjs.map +1 -1
- package/cjs/validators/is-in-range/is-in-range.cjs +13 -19
- package/cjs/validators/is-in-range/is-in-range.cjs.map +1 -1
- package/cjs/validators/is-json-string/is-json-string.cjs +15 -17
- package/cjs/validators/is-json-string/is-json-string.cjs.map +1 -1
- package/cjs/validators/is-not-empty/is-not-empty.cjs +13 -21
- package/cjs/validators/is-not-empty/is-not-empty.cjs.map +1 -1
- package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs +11 -13
- package/cjs/validators/is-not-empty-html/is-not-empty-html.cjs.map +1 -1
- package/cjs/validators/is-one-of/is-one-of.cjs +9 -9
- package/cjs/validators/is-one-of/is-one-of.cjs.map +1 -1
- package/cjs/validators/is-url/is-url.cjs +25 -33
- package/cjs/validators/is-url/is-url.cjs.map +1 -1
- package/cjs/validators/matches/matches.cjs +10 -12
- package/cjs/validators/matches/matches.cjs.map +1 -1
- package/cjs/validators/matches-field/matches-field.cjs +10 -12
- package/cjs/validators/matches-field/matches-field.cjs.map +1 -1
- package/esm/FormProvider/FormProvider.mjs +25 -19
- package/esm/FormProvider/FormProvider.mjs.map +1 -1
- package/esm/actions/actions.mjs +85 -114
- package/esm/actions/actions.mjs.map +1 -1
- package/esm/form-index.mjs +5 -3
- package/esm/form-index.mjs.map +1 -1
- package/esm/get-input-on-change/get-input-on-change.mjs +15 -23
- package/esm/get-input-on-change/get-input-on-change.mjs.map +1 -1
- package/esm/get-status/get-status.mjs +11 -9
- package/esm/get-status/get-status.mjs.map +1 -1
- package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs +11 -13
- package/esm/hooks/use-form-errors/filter-errors/filter-errors.mjs.map +1 -1
- package/esm/hooks/use-form-errors/use-form-errors.mjs +38 -46
- package/esm/hooks/use-form-errors/use-form-errors.mjs.map +1 -1
- package/esm/hooks/use-form-list/use-form-list.mjs +46 -49
- package/esm/hooks/use-form-list/use-form-list.mjs.map +1 -1
- package/esm/hooks/use-form-status/use-form-status.mjs +93 -122
- package/esm/hooks/use-form-status/use-form-status.mjs.map +1 -1
- package/esm/hooks/use-form-validating/use-form-validating.mjs +48 -49
- package/esm/hooks/use-form-validating/use-form-validating.mjs.map +1 -1
- package/esm/hooks/use-form-values/use-form-values.mjs +91 -105
- package/esm/hooks/use-form-values/use-form-values.mjs.map +1 -1
- package/esm/hooks/use-form-watch/use-form-watch.mjs +40 -55
- package/esm/hooks/use-form-watch/use-form-watch.mjs.map +1 -1
- package/esm/index.mjs +18 -17
- package/esm/lists/change-error-indices.mjs +34 -39
- package/esm/lists/change-error-indices.mjs.map +1 -1
- package/esm/lists/clear-list-state.mjs +11 -13
- package/esm/lists/clear-list-state.mjs.map +1 -1
- package/esm/lists/reorder-errors.mjs +30 -30
- package/esm/lists/reorder-errors.mjs.map +1 -1
- package/esm/paths/get-data-path.mjs +6 -4
- package/esm/paths/get-data-path.mjs.map +1 -1
- package/esm/paths/get-path.mjs +14 -17
- package/esm/paths/get-path.mjs.map +1 -1
- package/esm/paths/get-splitted-path.mjs +7 -7
- package/esm/paths/get-splitted-path.mjs.map +1 -1
- package/esm/paths/insert-path.mjs +12 -13
- package/esm/paths/insert-path.mjs.map +1 -1
- package/esm/paths/remove-path.mjs +10 -15
- package/esm/paths/remove-path.mjs.map +1 -1
- package/esm/paths/reorder-path.mjs +14 -15
- package/esm/paths/reorder-path.mjs.map +1 -1
- package/esm/paths/replace-path.mjs +13 -16
- package/esm/paths/replace-path.mjs.map +1 -1
- package/esm/paths/set-path.mjs +21 -24
- package/esm/paths/set-path.mjs.map +1 -1
- package/esm/schema-resolver.mjs +24 -0
- package/esm/schema-resolver.mjs.map +1 -0
- package/esm/use-field.mjs +93 -129
- package/esm/use-field.mjs.map +1 -1
- package/esm/use-form.mjs +315 -377
- package/esm/use-form.mjs.map +1 -1
- package/esm/validate/get-rule-for-path.mjs +16 -22
- package/esm/validate/get-rule-for-path.mjs.map +1 -1
- package/esm/validate/should-validate-on-change.mjs +10 -15
- package/esm/validate/should-validate-on-change.mjs.map +1 -1
- package/esm/validate/validate-field-value.mjs +58 -52
- package/esm/validate/validate-field-value.mjs.map +1 -1
- package/esm/validate/validate-values.mjs +77 -106
- package/esm/validate/validate-values.mjs.map +1 -1
- package/esm/validators/has-length/has-length.mjs +17 -25
- package/esm/validators/has-length/has-length.mjs.map +1 -1
- package/esm/validators/is-email/is-email.mjs +7 -6
- package/esm/validators/is-email/is-email.mjs.map +1 -1
- package/esm/validators/is-in-range/is-in-range.mjs +13 -17
- package/esm/validators/is-in-range/is-in-range.mjs.map +1 -1
- package/esm/validators/is-json-string/is-json-string.mjs +15 -15
- package/esm/validators/is-json-string/is-json-string.mjs.map +1 -1
- package/esm/validators/is-not-empty/is-not-empty.mjs +13 -19
- package/esm/validators/is-not-empty/is-not-empty.mjs.map +1 -1
- package/esm/validators/is-not-empty-html/is-not-empty-html.mjs +11 -11
- package/esm/validators/is-not-empty-html/is-not-empty-html.mjs.map +1 -1
- package/esm/validators/is-one-of/is-one-of.mjs +9 -7
- package/esm/validators/is-one-of/is-one-of.mjs.map +1 -1
- package/esm/validators/is-url/is-url.mjs +25 -31
- package/esm/validators/is-url/is-url.mjs.map +1 -1
- package/esm/validators/matches/matches.mjs +10 -10
- package/esm/validators/matches/matches.mjs.map +1 -1
- package/esm/validators/matches-field/matches-field.mjs +10 -10
- package/esm/validators/matches-field/matches-field.mjs.map +1 -1
- package/lib/hooks/use-form-status/use-form-status.d.ts +2 -2
- package/lib/hooks/use-form-values/use-form-values.d.ts +9 -9
- package/lib/hooks/use-form-watch/use-form-watch.d.ts +5 -5
- package/lib/index.d.mts +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/schema-resolver.d.ts +5 -0
- package/lib/types.d.ts +19 -18
- package/package.json +5 -1
- package/cjs/index.cjs.map +0 -1
- package/esm/index.mjs.map +0 -1
|
@@ -1,54 +1,52 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
let react = require("react");
|
|
4
|
+
//#region packages/@mantine/form/src/hooks/use-form-validating/use-form-validating.ts
|
|
6
5
|
function useFormValidating() {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
clearValidating
|
|
50
|
-
};
|
|
6
|
+
const [validatingFields, setValidatingFields] = (0, react.useState)({});
|
|
7
|
+
const [formValidating, setFormValidatingState] = (0, react.useState)(false);
|
|
8
|
+
const validatingRef = (0, react.useRef)({});
|
|
9
|
+
const formValidatingRef = (0, react.useRef)(false);
|
|
10
|
+
const abortControllers = (0, react.useRef)({});
|
|
11
|
+
const setFieldValidating = (0, react.useCallback)((path, value) => {
|
|
12
|
+
validatingRef.current = {
|
|
13
|
+
...validatingRef.current,
|
|
14
|
+
[path]: value
|
|
15
|
+
};
|
|
16
|
+
setValidatingFields({ ...validatingRef.current });
|
|
17
|
+
}, []);
|
|
18
|
+
const setFormValidating = (0, react.useCallback)((value) => {
|
|
19
|
+
formValidatingRef.current = value;
|
|
20
|
+
setFormValidatingState(value);
|
|
21
|
+
}, []);
|
|
22
|
+
const isValidating = (0, react.useCallback)((path) => {
|
|
23
|
+
if (path) return !!validatingRef.current[path];
|
|
24
|
+
if (formValidatingRef.current) return true;
|
|
25
|
+
return Object.values(validatingRef.current).some(Boolean);
|
|
26
|
+
}, []);
|
|
27
|
+
const getAbortSignal = (0, react.useCallback)((path) => {
|
|
28
|
+
abortControllers.current[path]?.abort();
|
|
29
|
+
abortControllers.current[path] = new AbortController();
|
|
30
|
+
return abortControllers.current[path].signal;
|
|
31
|
+
}, []);
|
|
32
|
+
const clearValidating = (0, react.useCallback)(() => {
|
|
33
|
+
validatingRef.current = {};
|
|
34
|
+
setValidatingFields({});
|
|
35
|
+
formValidatingRef.current = false;
|
|
36
|
+
setFormValidatingState(false);
|
|
37
|
+
Object.values(abortControllers.current).forEach((c) => c.abort());
|
|
38
|
+
abortControllers.current = {};
|
|
39
|
+
}, []);
|
|
40
|
+
return {
|
|
41
|
+
validating: formValidating || Object.values(validatingFields).some(Boolean),
|
|
42
|
+
isValidating,
|
|
43
|
+
setFieldValidating,
|
|
44
|
+
setFormValidating,
|
|
45
|
+
getAbortSignal,
|
|
46
|
+
clearValidating
|
|
47
|
+
};
|
|
51
48
|
}
|
|
52
|
-
|
|
49
|
+
//#endregion
|
|
53
50
|
exports.useFormValidating = useFormValidating;
|
|
54
|
-
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=use-form-validating.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form-validating.cjs","sources":["../../../src/hooks/use-form-validating/use-form-validating.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport interface $FormValidating {\n validating: boolean;\n isValidating: (path?: string) => boolean;\n setFieldValidating: (path: string, validating: boolean) => void;\n setFormValidating: (validating: boolean) => void;\n getAbortSignal: (path: string) => AbortSignal;\n clearValidating: () => void;\n}\n\nexport function useFormValidating(): $FormValidating {\n const [validatingFields, setValidatingFields] = useState<Record<string, boolean>>({});\n const [formValidating, setFormValidatingState] = useState(false);\n const validatingRef = useRef<Record<string, boolean>>({});\n const formValidatingRef = useRef(false);\n const abortControllers = useRef<Record<string, AbortController>>({});\n\n const setFieldValidating = useCallback((path: string, value: boolean) => {\n validatingRef.current = { ...validatingRef.current, [path]: value };\n setValidatingFields({ ...validatingRef.current });\n }, []);\n\n const setFormValidating = useCallback((value: boolean) => {\n formValidatingRef.current = value;\n setFormValidatingState(value);\n }, []);\n\n const isValidating = useCallback((path?: string) => {\n if (path) {\n return !!validatingRef.current[path];\n }\n if (formValidatingRef.current) {\n return true;\n }\n return Object.values(validatingRef.current).some(Boolean);\n }, []);\n\n const getAbortSignal = useCallback((path: string) => {\n abortControllers.current[path]?.abort();\n abortControllers.current[path] = new AbortController();\n return abortControllers.current[path].signal;\n }, []);\n\n const clearValidating = useCallback(() => {\n validatingRef.current = {};\n setValidatingFields({});\n formValidatingRef.current = false;\n setFormValidatingState(false);\n Object.values(abortControllers.current).forEach((c) => c.abort());\n abortControllers.current = {};\n }, []);\n\n const validating = formValidating || Object.values(validatingFields).some(Boolean);\n\n return {\n validating,\n isValidating,\n setFieldValidating,\n setFormValidating,\n getAbortSignal,\n clearValidating,\n };\n}\n"],"
|
|
1
|
+
{"version":3,"file":"use-form-validating.cjs","names":[],"sources":["../../../src/hooks/use-form-validating/use-form-validating.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\n\nexport interface $FormValidating {\n validating: boolean;\n isValidating: (path?: string) => boolean;\n setFieldValidating: (path: string, validating: boolean) => void;\n setFormValidating: (validating: boolean) => void;\n getAbortSignal: (path: string) => AbortSignal;\n clearValidating: () => void;\n}\n\nexport function useFormValidating(): $FormValidating {\n const [validatingFields, setValidatingFields] = useState<Record<string, boolean>>({});\n const [formValidating, setFormValidatingState] = useState(false);\n const validatingRef = useRef<Record<string, boolean>>({});\n const formValidatingRef = useRef(false);\n const abortControllers = useRef<Record<string, AbortController>>({});\n\n const setFieldValidating = useCallback((path: string, value: boolean) => {\n validatingRef.current = { ...validatingRef.current, [path]: value };\n setValidatingFields({ ...validatingRef.current });\n }, []);\n\n const setFormValidating = useCallback((value: boolean) => {\n formValidatingRef.current = value;\n setFormValidatingState(value);\n }, []);\n\n const isValidating = useCallback((path?: string) => {\n if (path) {\n return !!validatingRef.current[path];\n }\n if (formValidatingRef.current) {\n return true;\n }\n return Object.values(validatingRef.current).some(Boolean);\n }, []);\n\n const getAbortSignal = useCallback((path: string) => {\n abortControllers.current[path]?.abort();\n abortControllers.current[path] = new AbortController();\n return abortControllers.current[path].signal;\n }, []);\n\n const clearValidating = useCallback(() => {\n validatingRef.current = {};\n setValidatingFields({});\n formValidatingRef.current = false;\n setFormValidatingState(false);\n Object.values(abortControllers.current).forEach((c) => c.abort());\n abortControllers.current = {};\n }, []);\n\n const validating = formValidating || Object.values(validatingFields).some(Boolean);\n\n return {\n validating,\n isValidating,\n setFieldValidating,\n setFormValidating,\n getAbortSignal,\n clearValidating,\n };\n}\n"],"mappings":";;;;AAWA,SAAgB,oBAAqC;CACnD,MAAM,CAAC,kBAAkB,wBAAA,GAAA,MAAA,UAAyD,EAAE,CAAC;CACrF,MAAM,CAAC,gBAAgB,2BAAA,GAAA,MAAA,UAAmC,MAAM;CAChE,MAAM,iBAAA,GAAA,MAAA,QAAgD,EAAE,CAAC;CACzD,MAAM,qBAAA,GAAA,MAAA,QAA2B,MAAM;CACvC,MAAM,oBAAA,GAAA,MAAA,QAA2D,EAAE,CAAC;CAEpE,MAAM,sBAAA,GAAA,MAAA,cAAkC,MAAc,UAAmB;AACvE,gBAAc,UAAU;GAAE,GAAG,cAAc;IAAU,OAAO;GAAO;AACnE,sBAAoB,EAAE,GAAG,cAAc,SAAS,CAAC;IAChD,EAAE,CAAC;CAEN,MAAM,qBAAA,GAAA,MAAA,cAAiC,UAAmB;AACxD,oBAAkB,UAAU;AAC5B,yBAAuB,MAAM;IAC5B,EAAE,CAAC;CAEN,MAAM,gBAAA,GAAA,MAAA,cAA4B,SAAkB;AAClD,MAAI,KACF,QAAO,CAAC,CAAC,cAAc,QAAQ;AAEjC,MAAI,kBAAkB,QACpB,QAAO;AAET,SAAO,OAAO,OAAO,cAAc,QAAQ,CAAC,KAAK,QAAQ;IACxD,EAAE,CAAC;CAEN,MAAM,kBAAA,GAAA,MAAA,cAA8B,SAAiB;AACnD,mBAAiB,QAAQ,OAAO,OAAO;AACvC,mBAAiB,QAAQ,QAAQ,IAAI,iBAAiB;AACtD,SAAO,iBAAiB,QAAQ,MAAM;IACrC,EAAE,CAAC;CAEN,MAAM,mBAAA,GAAA,MAAA,mBAAoC;AACxC,gBAAc,UAAU,EAAE;AAC1B,sBAAoB,EAAE,CAAC;AACvB,oBAAkB,UAAU;AAC5B,yBAAuB,MAAM;AAC7B,SAAO,OAAO,iBAAiB,QAAQ,CAAC,SAAS,MAAM,EAAE,OAAO,CAAC;AACjE,mBAAiB,UAAU,EAAE;IAC5B,EAAE,CAAC;AAIN,QAAO;EACL,YAHiB,kBAAkB,OAAO,OAAO,iBAAiB,CAAC,KAAK,QAAQ;EAIhF;EACA;EACA;EACA;EACA;EACD"}
|
|
@@ -1,109 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
[setFieldValue, mode]
|
|
91
|
-
);
|
|
92
|
-
return {
|
|
93
|
-
initialized,
|
|
94
|
-
stateValues,
|
|
95
|
-
refValues,
|
|
96
|
-
valuesSnapshot,
|
|
97
|
-
setValues,
|
|
98
|
-
setFieldValue,
|
|
99
|
-
resetValues,
|
|
100
|
-
setValuesSnapshot,
|
|
101
|
-
initialize,
|
|
102
|
-
getValues,
|
|
103
|
-
getValuesSnapshot,
|
|
104
|
-
resetField
|
|
105
|
-
};
|
|
1
|
+
"use client";
|
|
2
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_get_path = require("../../paths/get-path.cjs");
|
|
4
|
+
const require_set_path = require("../../paths/set-path.cjs");
|
|
5
|
+
let react = require("react");
|
|
6
|
+
//#region packages/@mantine/form/src/hooks/use-form-values/use-form-values.ts
|
|
7
|
+
function useFormValues({ initialValues, onValuesChange, mode }) {
|
|
8
|
+
const initialized = (0, react.useRef)(false);
|
|
9
|
+
const [stateValues, setStateValues] = (0, react.useState)(initialValues || {});
|
|
10
|
+
const refValues = (0, react.useRef)(stateValues);
|
|
11
|
+
const valuesSnapshot = (0, react.useRef)(stateValues);
|
|
12
|
+
const setValues = (0, react.useCallback)(({ values, subscribers, updateState = true, mergeWithPreviousValues = true }) => {
|
|
13
|
+
const previousValues = refValues.current;
|
|
14
|
+
const resolvedValues = values instanceof Function ? values(refValues.current) : values;
|
|
15
|
+
const updatedValues = mergeWithPreviousValues ? {
|
|
16
|
+
...previousValues,
|
|
17
|
+
...resolvedValues
|
|
18
|
+
} : resolvedValues;
|
|
19
|
+
refValues.current = updatedValues;
|
|
20
|
+
if (updateState) {
|
|
21
|
+
setStateValues(updatedValues);
|
|
22
|
+
if (mode === "uncontrolled") refValues.current = updatedValues;
|
|
23
|
+
}
|
|
24
|
+
onValuesChange?.(updatedValues, previousValues);
|
|
25
|
+
subscribers?.filter(Boolean).forEach((subscriber) => subscriber({
|
|
26
|
+
updatedValues,
|
|
27
|
+
previousValues
|
|
28
|
+
}));
|
|
29
|
+
}, [onValuesChange]);
|
|
30
|
+
const setFieldValue = (0, react.useCallback)((payload) => {
|
|
31
|
+
const currentValue = require_get_path.getPath(payload.path, refValues.current);
|
|
32
|
+
const updatedValue = payload.value instanceof Function ? payload.value(currentValue) : payload.value;
|
|
33
|
+
if (currentValue !== updatedValue) {
|
|
34
|
+
const previousValues = refValues.current;
|
|
35
|
+
const updatedValues = require_set_path.setPath(payload.path, updatedValue, refValues.current);
|
|
36
|
+
setValues({
|
|
37
|
+
values: updatedValues,
|
|
38
|
+
updateState: payload.updateState
|
|
39
|
+
});
|
|
40
|
+
payload.subscribers?.filter(Boolean).forEach((subscriber) => subscriber({
|
|
41
|
+
path: payload.path,
|
|
42
|
+
updatedValues,
|
|
43
|
+
previousValues
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
}, [setValues]);
|
|
47
|
+
const setValuesSnapshot = (0, react.useCallback)((payload) => {
|
|
48
|
+
valuesSnapshot.current = payload;
|
|
49
|
+
}, []);
|
|
50
|
+
const initialize = (0, react.useCallback)((values, onInitialize) => {
|
|
51
|
+
if (!initialized.current) {
|
|
52
|
+
initialized.current = true;
|
|
53
|
+
setValues({
|
|
54
|
+
values,
|
|
55
|
+
updateState: mode === "controlled"
|
|
56
|
+
});
|
|
57
|
+
setValuesSnapshot(values);
|
|
58
|
+
onInitialize();
|
|
59
|
+
}
|
|
60
|
+
}, [setValues]);
|
|
61
|
+
return {
|
|
62
|
+
initialized,
|
|
63
|
+
stateValues,
|
|
64
|
+
refValues,
|
|
65
|
+
valuesSnapshot,
|
|
66
|
+
setValues,
|
|
67
|
+
setFieldValue,
|
|
68
|
+
resetValues: (0, react.useCallback)(() => {
|
|
69
|
+
setValues({
|
|
70
|
+
values: valuesSnapshot.current,
|
|
71
|
+
updateState: true,
|
|
72
|
+
mergeWithPreviousValues: false
|
|
73
|
+
});
|
|
74
|
+
}, [setValues]),
|
|
75
|
+
setValuesSnapshot,
|
|
76
|
+
initialize,
|
|
77
|
+
getValues: (0, react.useCallback)(() => refValues.current, []),
|
|
78
|
+
getValuesSnapshot: (0, react.useCallback)(() => valuesSnapshot.current, []),
|
|
79
|
+
resetField: (0, react.useCallback)((path, subscribers) => {
|
|
80
|
+
const snapshotValue = require_get_path.getPath(path, valuesSnapshot.current);
|
|
81
|
+
if (typeof snapshotValue === "undefined") return;
|
|
82
|
+
setFieldValue({
|
|
83
|
+
path,
|
|
84
|
+
value: snapshotValue,
|
|
85
|
+
updateState: mode === "controlled",
|
|
86
|
+
subscribers
|
|
87
|
+
});
|
|
88
|
+
}, [setFieldValue, mode])
|
|
89
|
+
};
|
|
106
90
|
}
|
|
107
|
-
|
|
91
|
+
//#endregion
|
|
108
92
|
exports.useFormValues = useFormValues;
|
|
109
|
-
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=use-form-values.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form-values.cjs","sources":["../../../src/hooks/use-form-values/use-form-values.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { getPath, setPath } from '../../paths';\nimport { FormMode } from '../../types';\n\nexport interface $FormValues<Values extends Record<PropertyKey, any>> {\n initialized: React.RefObject<boolean>;\n stateValues: Values;\n refValues: React.RefObject<Values>;\n valuesSnapshot: React.RefObject<Values>;\n setValues: (payload: SetValuesInput<Values>) => void;\n setFieldValue: (payload: SetFieldValueInput<Values>) => void;\n resetValues: () => void;\n setValuesSnapshot: (payload: Values) => void;\n initialize: (values: Values, onInitialize: () => void) => void;\n getValues: () => Values;\n getValuesSnapshot: () => Values;\n resetField: (\n path: PropertyKey,\n subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[]\n ) => void;\n}\n\nexport interface SetValuesSubscriberPayload<Values> {\n path?: PropertyKey;\n updatedValues: Values;\n previousValues: Values;\n}\n\nexport interface SetValuesInput<Values> {\n values: Partial<Values> | ((values: Values) => Partial<Values>);\n mergeWithPreviousValues?: boolean;\n updateState?: boolean;\n subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[];\n}\n\nexport type SetFieldValueSubscriber<Values> = (payload: SetValuesSubscriberPayload<Values>) => void;\n\nexport interface SetFieldValueInput<Values> {\n path: PropertyKey;\n value: any;\n updateState?: boolean;\n subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[];\n}\n\ninterface UseFormValuesInput<Values extends Record<PropertyKey, any>> {\n initialValues: Values | undefined;\n mode: FormMode;\n onValuesChange?: ((values: Values, previousValues: Values) => void) | undefined;\n}\n\nexport function useFormValues<Values extends Record<PropertyKey, any>>({\n initialValues,\n onValuesChange,\n mode,\n}: UseFormValuesInput<Values>): $FormValues<Values> {\n const initialized = useRef(false);\n const [stateValues, setStateValues] = useState<Values>(initialValues || ({} as Values));\n const refValues = useRef(stateValues);\n const valuesSnapshot = useRef(stateValues);\n\n const setValues = useCallback(\n ({\n values,\n subscribers,\n updateState = true,\n mergeWithPreviousValues = true,\n }: SetValuesInput<Values>) => {\n const previousValues = refValues.current;\n const resolvedValues = values instanceof Function ? values(refValues.current) : values;\n const updatedValues = mergeWithPreviousValues\n ? { ...previousValues, ...resolvedValues }\n : (resolvedValues as Values);\n refValues.current = updatedValues;\n if (updateState) {\n setStateValues(updatedValues);\n if (mode === 'uncontrolled') {\n refValues.current = updatedValues;\n }\n }\n onValuesChange?.(updatedValues, previousValues);\n subscribers\n ?.filter(Boolean)\n .forEach((subscriber) => subscriber!({ updatedValues, previousValues }));\n },\n [onValuesChange]\n );\n\n const setFieldValue = useCallback(\n (payload: SetFieldValueInput<Values>) => {\n const currentValue = getPath(payload.path, refValues.current);\n const updatedValue =\n payload.value instanceof Function ? payload.value(currentValue) : payload.value;\n\n if (currentValue !== updatedValue) {\n const previousValues = refValues.current;\n const updatedValues = setPath(payload.path, updatedValue, refValues.current);\n setValues({ values: updatedValues, updateState: payload.updateState });\n\n payload.subscribers\n ?.filter(Boolean)\n .forEach((subscriber) =>\n subscriber!({ path: payload.path, updatedValues, previousValues })\n );\n }\n },\n [setValues]\n );\n\n const setValuesSnapshot = useCallback((payload: Values) => {\n valuesSnapshot.current = payload;\n }, []);\n\n const initialize = useCallback(\n (values: Values, onInitialize: () => void) => {\n if (!initialized.current) {\n initialized.current = true;\n setValues({ values, updateState: mode === 'controlled' });\n setValuesSnapshot(values);\n onInitialize();\n }\n },\n [setValues]\n );\n\n const resetValues = useCallback(() => {\n setValues({\n values: valuesSnapshot.current,\n updateState: true,\n mergeWithPreviousValues: false,\n });\n }, [setValues]);\n\n const getValues = useCallback(() => refValues.current, []);\n const getValuesSnapshot = useCallback(() => valuesSnapshot.current, []);\n\n const resetField = useCallback(\n (path: PropertyKey, subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[]) => {\n const snapshotValue = getPath(path, valuesSnapshot.current);\n if (typeof snapshotValue === 'undefined') {\n return;\n }\n setFieldValue({\n path,\n value: snapshotValue,\n updateState: mode === 'controlled',\n subscribers,\n });\n },\n [setFieldValue, mode]\n );\n\n return {\n initialized,\n stateValues,\n refValues,\n valuesSnapshot,\n setValues,\n setFieldValue,\n resetValues,\n setValuesSnapshot,\n initialize,\n getValues,\n getValuesSnapshot,\n resetField,\n };\n}\n"],"names":["useRef","useState","useCallback","getPath","setPath"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-form-values.cjs","names":["getPath","setPath"],"sources":["../../../src/hooks/use-form-values/use-form-values.ts"],"sourcesContent":["import { useCallback, useRef, useState } from 'react';\nimport { getPath, setPath } from '../../paths';\nimport { FormMode } from '../../types';\n\nexport interface $FormValues<out Values extends Record<PropertyKey, any>> {\n initialized: React.RefObject<boolean>;\n stateValues: Values;\n refValues: React.RefObject<Values>;\n valuesSnapshot: React.RefObject<Values>;\n setValues: <TValues extends Values>(payload: SetValuesInput<TValues>) => void;\n setFieldValue: <TValues extends Values>(payload: SetFieldValueInput<TValues>) => void;\n resetValues: () => void;\n setValuesSnapshot: <TValues extends Values>(payload: TValues) => void;\n initialize: <TValues extends Values>(values: TValues, onInitialize: () => void) => void;\n getValues: () => Values;\n getValuesSnapshot: () => Values;\n resetField: <TValues extends Values>(\n path: PropertyKey,\n subscribers?: (SetFieldValueSubscriber<TValues> | null | undefined)[]\n ) => void;\n}\n\nexport interface SetValuesSubscriberPayload<Values> {\n path?: PropertyKey;\n updatedValues: Values;\n previousValues: Values;\n}\n\nexport interface SetValuesInput<out Values = Record<string, any>> {\n values: Partial<Values> | (<TValues extends Values>(values: TValues) => Partial<TValues>);\n mergeWithPreviousValues?: boolean;\n updateState?: boolean;\n subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[];\n}\n\nexport type SetFieldValueSubscriber<out Values> = <TValues extends Values>(\n payload: SetValuesSubscriberPayload<TValues>\n) => void;\n\nexport interface SetFieldValueInput<Values> {\n path: PropertyKey;\n value: any;\n updateState?: boolean;\n subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[];\n}\n\ninterface UseFormValuesInput<Values extends Record<PropertyKey, any>> {\n initialValues: Values | undefined;\n mode: FormMode;\n onValuesChange?: ((values: Values, previousValues: Values) => void) | undefined;\n}\n\nexport function useFormValues<Values extends Record<PropertyKey, any>>({\n initialValues,\n onValuesChange,\n mode,\n}: UseFormValuesInput<Values>): $FormValues<Values> {\n const initialized = useRef(false);\n const [stateValues, setStateValues] = useState<Values>(initialValues || ({} as Values));\n const refValues = useRef(stateValues);\n const valuesSnapshot = useRef(stateValues);\n\n const setValues = useCallback(\n ({\n values,\n subscribers,\n updateState = true,\n mergeWithPreviousValues = true,\n }: SetValuesInput<Values>) => {\n const previousValues = refValues.current;\n const resolvedValues = values instanceof Function ? values(refValues.current) : values;\n const updatedValues = mergeWithPreviousValues\n ? { ...previousValues, ...resolvedValues }\n : (resolvedValues as Values);\n refValues.current = updatedValues;\n if (updateState) {\n setStateValues(updatedValues);\n if (mode === 'uncontrolled') {\n refValues.current = updatedValues;\n }\n }\n onValuesChange?.(updatedValues, previousValues);\n subscribers\n ?.filter(Boolean)\n .forEach((subscriber) => subscriber!({ updatedValues, previousValues }));\n },\n [onValuesChange]\n );\n\n const setFieldValue = useCallback(\n (payload: SetFieldValueInput<Values>) => {\n const currentValue = getPath(payload.path, refValues.current);\n const updatedValue =\n payload.value instanceof Function ? payload.value(currentValue) : payload.value;\n\n if (currentValue !== updatedValue) {\n const previousValues = refValues.current;\n const updatedValues = setPath(payload.path, updatedValue, refValues.current);\n setValues({ values: updatedValues, updateState: payload.updateState });\n\n payload.subscribers\n ?.filter(Boolean)\n .forEach((subscriber) =>\n subscriber!({ path: payload.path, updatedValues, previousValues })\n );\n }\n },\n [setValues]\n );\n\n const setValuesSnapshot = useCallback((payload: Values) => {\n valuesSnapshot.current = payload;\n }, []);\n\n const initialize = useCallback(\n (values: Values, onInitialize: () => void) => {\n if (!initialized.current) {\n initialized.current = true;\n setValues({ values, updateState: mode === 'controlled' });\n setValuesSnapshot(values);\n onInitialize();\n }\n },\n [setValues]\n );\n\n const resetValues = useCallback(() => {\n setValues({\n values: valuesSnapshot.current,\n updateState: true,\n mergeWithPreviousValues: false,\n });\n }, [setValues]);\n\n const getValues = useCallback(() => refValues.current, []);\n const getValuesSnapshot = useCallback(() => valuesSnapshot.current, []);\n\n const resetField = useCallback(\n (path: PropertyKey, subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[]) => {\n const snapshotValue = getPath(path, valuesSnapshot.current);\n if (typeof snapshotValue === 'undefined') {\n return;\n }\n setFieldValue({\n path,\n value: snapshotValue,\n updateState: mode === 'controlled',\n subscribers,\n });\n },\n [setFieldValue, mode]\n );\n\n return {\n initialized,\n stateValues,\n refValues,\n valuesSnapshot,\n setValues,\n setFieldValue,\n resetValues,\n setValuesSnapshot,\n initialize,\n getValues,\n getValuesSnapshot,\n resetField,\n };\n}\n"],"mappings":";;;;;;AAoDA,SAAgB,cAAuD,EACrE,eACA,gBACA,QACkD;CAClD,MAAM,eAAA,GAAA,MAAA,QAAqB,MAAM;CACjC,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,UAAmC,iBAAkB,EAAE,CAAY;CACvF,MAAM,aAAA,GAAA,MAAA,QAAmB,YAAY;CACrC,MAAM,kBAAA,GAAA,MAAA,QAAwB,YAAY;CAE1C,MAAM,aAAA,GAAA,MAAA,cACH,EACC,QACA,aACA,cAAc,MACd,0BAA0B,WACE;EAC5B,MAAM,iBAAiB,UAAU;EACjC,MAAM,iBAAiB,kBAAkB,WAAW,OAAO,UAAU,QAAQ,GAAG;EAChF,MAAM,gBAAgB,0BAClB;GAAE,GAAG;GAAgB,GAAG;GAAgB,GACvC;AACL,YAAU,UAAU;AACpB,MAAI,aAAa;AACf,kBAAe,cAAc;AAC7B,OAAI,SAAS,eACX,WAAU,UAAU;;AAGxB,mBAAiB,eAAe,eAAe;AAC/C,eACI,OAAO,QAAQ,CAChB,SAAS,eAAe,WAAY;GAAE;GAAe;GAAgB,CAAC,CAAC;IAE5E,CAAC,eAAe,CACjB;CAED,MAAM,iBAAA,GAAA,MAAA,cACH,YAAwC;EACvC,MAAM,eAAeA,iBAAAA,QAAQ,QAAQ,MAAM,UAAU,QAAQ;EAC7D,MAAM,eACJ,QAAQ,iBAAiB,WAAW,QAAQ,MAAM,aAAa,GAAG,QAAQ;AAE5E,MAAI,iBAAiB,cAAc;GACjC,MAAM,iBAAiB,UAAU;GACjC,MAAM,gBAAgBC,iBAAAA,QAAQ,QAAQ,MAAM,cAAc,UAAU,QAAQ;AAC5E,aAAU;IAAE,QAAQ;IAAe,aAAa,QAAQ;IAAa,CAAC;AAEtE,WAAQ,aACJ,OAAO,QAAQ,CAChB,SAAS,eACR,WAAY;IAAE,MAAM,QAAQ;IAAM;IAAe;IAAgB,CAAC,CACnE;;IAGP,CAAC,UAAU,CACZ;CAED,MAAM,qBAAA,GAAA,MAAA,cAAiC,YAAoB;AACzD,iBAAe,UAAU;IACxB,EAAE,CAAC;CAEN,MAAM,cAAA,GAAA,MAAA,cACH,QAAgB,iBAA6B;AAC5C,MAAI,CAAC,YAAY,SAAS;AACxB,eAAY,UAAU;AACtB,aAAU;IAAE;IAAQ,aAAa,SAAS;IAAc,CAAC;AACzD,qBAAkB,OAAO;AACzB,iBAAc;;IAGlB,CAAC,UAAU,CACZ;AA6BD,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA,cAAA,GAAA,MAAA,mBAlCoC;AACpC,aAAU;IACR,QAAQ,eAAe;IACvB,aAAa;IACb,yBAAyB;IAC1B,CAAC;KACD,CAAC,UAAU,CAAC;EA6Bb;EACA;EACA,YAAA,GAAA,MAAA,mBA7BkC,UAAU,SAAS,EAAE,CAAC;EA8BxD,oBAAA,GAAA,MAAA,mBA7B0C,eAAe,SAAS,EAAE,CAAC;EA8BrE,aAAA,GAAA,MAAA,cA3BC,MAAmB,gBAAyE;GAC3F,MAAM,gBAAgBD,iBAAAA,QAAQ,MAAM,eAAe,QAAQ;AAC3D,OAAI,OAAO,kBAAkB,YAC3B;AAEF,iBAAc;IACZ;IACA,OAAO;IACP,aAAa,SAAS;IACtB;IACD,CAAC;KAEJ,CAAC,eAAe,KAAK,CACtB;EAeA"}
|
|
@@ -1,59 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
previousValue: getPath.getPath(subscriptionKey, input.previousValues),
|
|
40
|
-
value: getPath.getPath(subscriptionKey, input.updatedValues),
|
|
41
|
-
touched: $status.isTouched(subscriptionKey),
|
|
42
|
-
dirty: $status.isDirty(subscriptionKey)
|
|
43
|
-
})
|
|
44
|
-
)
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
}, []);
|
|
51
|
-
return {
|
|
52
|
-
subscribers,
|
|
53
|
-
watch,
|
|
54
|
-
getFieldSubscribers
|
|
55
|
-
};
|
|
1
|
+
"use client";
|
|
2
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_get_path = require("../../paths/get-path.cjs");
|
|
4
|
+
let react = require("react");
|
|
5
|
+
//#region packages/@mantine/form/src/hooks/use-form-watch/use-form-watch.ts
|
|
6
|
+
function useFormWatch({ $status, cascadeUpdates }) {
|
|
7
|
+
const subscribers = (0, react.useRef)({});
|
|
8
|
+
return {
|
|
9
|
+
subscribers,
|
|
10
|
+
watch: (0, react.useCallback)((path, callback) => {
|
|
11
|
+
(0, react.useEffect)(() => {
|
|
12
|
+
subscribers.current[path] = subscribers.current[path] || [];
|
|
13
|
+
subscribers.current[path].push(callback);
|
|
14
|
+
return () => {
|
|
15
|
+
subscribers.current[path] = subscribers.current[path].filter((cb) => cb !== callback);
|
|
16
|
+
};
|
|
17
|
+
}, [callback]);
|
|
18
|
+
}, []),
|
|
19
|
+
getFieldSubscribers: (0, react.useCallback)((path) => {
|
|
20
|
+
const result = subscribers.current[path]?.map((callback) => (input) => callback({
|
|
21
|
+
previousValue: require_get_path.getPath(path, input.previousValues),
|
|
22
|
+
value: require_get_path.getPath(path, input.updatedValues),
|
|
23
|
+
touched: $status.isTouched(path),
|
|
24
|
+
dirty: $status.isDirty(path)
|
|
25
|
+
})) ?? [];
|
|
26
|
+
for (const subscriptionKey in subscribers.current) {
|
|
27
|
+
const isParent = String(path).startsWith(`${subscriptionKey}.`);
|
|
28
|
+
const isChild = String(subscriptionKey).startsWith(`${path}.`);
|
|
29
|
+
if (isParent || cascadeUpdates && isChild) result.push(...subscribers.current[subscriptionKey].map((cb) => (input) => cb({
|
|
30
|
+
previousValue: require_get_path.getPath(subscriptionKey, input.previousValues),
|
|
31
|
+
value: require_get_path.getPath(subscriptionKey, input.updatedValues),
|
|
32
|
+
touched: $status.isTouched(subscriptionKey),
|
|
33
|
+
dirty: $status.isDirty(subscriptionKey)
|
|
34
|
+
})));
|
|
35
|
+
}
|
|
36
|
+
return result;
|
|
37
|
+
}, [])
|
|
38
|
+
};
|
|
56
39
|
}
|
|
57
|
-
|
|
40
|
+
//#endregion
|
|
58
41
|
exports.useFormWatch = useFormWatch;
|
|
59
|
-
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=use-form-watch.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form-watch.cjs","sources":["../../../src/hooks/use-form-watch/use-form-watch.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport { getPath } from '../../paths';\nimport { LooseKeys } from '../../paths.types';\nimport { FormFieldSubscriber, Watch } from '../../types';\nimport { $FormStatus } from '../use-form-status/use-form-status';\nimport { SetValuesSubscriberPayload } from '../use-form-values/use-form-values';\n\ninterface UseFormWatchInput<Values extends Record<
|
|
1
|
+
{"version":3,"file":"use-form-watch.cjs","names":["getPath"],"sources":["../../../src/hooks/use-form-watch/use-form-watch.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\nimport { getPath } from '../../paths';\nimport { LooseKeys } from '../../paths.types';\nimport { FormFieldSubscriber, Watch } from '../../types';\nimport { $FormStatus } from '../use-form-status/use-form-status';\nimport { SetValuesSubscriberPayload } from '../use-form-values/use-form-values';\n\ninterface UseFormWatchInput<out Values extends Record<PropertyKey, any>> {\n $status: $FormStatus<Values>;\n cascadeUpdates?: boolean;\n}\n\nexport function useFormWatch<\n Values extends Record<PropertyKey, any>,\n Field extends LooseKeys<Values> = LooseKeys<Values>,\n>({ $status, cascadeUpdates }: UseFormWatchInput<Values>) {\n const subscribers = useRef<Record<Field, FormFieldSubscriber<Values, Field>[]>>({} as any);\n\n const watch: Watch<Values, Field> = useCallback((path, callback) => {\n useEffect(() => {\n subscribers.current[path] = subscribers.current[path] || [];\n subscribers.current[path].push(callback);\n\n return () => {\n subscribers.current[path] = subscribers.current[path].filter((cb) => cb !== callback);\n };\n }, [callback]);\n }, []);\n\n const getFieldSubscribers = useCallback((path: Field) => {\n const result: ((input: SetValuesSubscriberPayload<Values>) => void)[] =\n subscribers.current[path]?.map(\n (callback) => (input: SetValuesSubscriberPayload<Values>) =>\n callback({\n previousValue: getPath(path, input.previousValues) as any,\n value: getPath(path, input.updatedValues) as any,\n touched: $status.isTouched(path),\n dirty: $status.isDirty(path),\n })\n ) ?? [];\n\n for (const subscriptionKey in subscribers.current) {\n const isParent = String(path).startsWith(`${subscriptionKey}.`);\n const isChild = String(subscriptionKey).startsWith(`${path}.`);\n\n if (isParent || (cascadeUpdates && isChild)) {\n result.push(\n ...subscribers.current[subscriptionKey].map(\n (cb) => (input: SetValuesSubscriberPayload<Values>) =>\n cb({\n previousValue: getPath(subscriptionKey, input.previousValues) as any,\n value: getPath(subscriptionKey, input.updatedValues) as any,\n touched: $status.isTouched(subscriptionKey),\n dirty: $status.isDirty(subscriptionKey),\n })\n )\n );\n }\n }\n\n return result;\n }, []);\n\n return {\n subscribers,\n watch,\n getFieldSubscribers,\n };\n}\n"],"mappings":";;;;;AAYA,SAAgB,aAGd,EAAE,SAAS,kBAA6C;CACxD,MAAM,eAAA,GAAA,MAAA,QAA0E,EAAE,CAAQ;AA+C1F,QAAO;EACL;EACA,QAAA,GAAA,MAAA,cA/C+C,MAAM,aAAa;AAClE,IAAA,GAAA,MAAA,iBAAgB;AACd,gBAAY,QAAQ,QAAQ,YAAY,QAAQ,SAAS,EAAE;AAC3D,gBAAY,QAAQ,MAAM,KAAK,SAAS;AAExC,iBAAa;AACX,iBAAY,QAAQ,QAAQ,YAAY,QAAQ,MAAM,QAAQ,OAAO,OAAO,SAAS;;MAEtF,CAAC,SAAS,CAAC;KACb,EAAE,CAAC;EAuCJ,sBAAA,GAAA,MAAA,cArCuC,SAAgB;GACvD,MAAM,SACJ,YAAY,QAAQ,OAAO,KACxB,cAAc,UACb,SAAS;IACP,eAAeA,iBAAAA,QAAQ,MAAM,MAAM,eAAe;IAClD,OAAOA,iBAAAA,QAAQ,MAAM,MAAM,cAAc;IACzC,SAAS,QAAQ,UAAU,KAAK;IAChC,OAAO,QAAQ,QAAQ,KAAK;IAC7B,CAAC,CACL,IAAI,EAAE;AAET,QAAK,MAAM,mBAAmB,YAAY,SAAS;IACjD,MAAM,WAAW,OAAO,KAAK,CAAC,WAAW,GAAG,gBAAgB,GAAG;IAC/D,MAAM,UAAU,OAAO,gBAAgB,CAAC,WAAW,GAAG,KAAK,GAAG;AAE9D,QAAI,YAAa,kBAAkB,QACjC,QAAO,KACL,GAAG,YAAY,QAAQ,iBAAiB,KACrC,QAAQ,UACP,GAAG;KACD,eAAeA,iBAAAA,QAAQ,iBAAiB,MAAM,eAAe;KAC7D,OAAOA,iBAAAA,QAAQ,iBAAiB,MAAM,cAAc;KACpD,SAAS,QAAQ,UAAU,gBAAgB;KAC3C,OAAO,QAAQ,QAAQ,gBAAgB;KACxC,CAAC,CACL,CACF;;AAIL,UAAO;KACN,EAAE,CAAC;EAML"}
|