@1money/component-ui 0.0.71 → 0.0.74
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/es/components/ProForm/ProForm.d.ts +10 -2
- package/es/components/ProForm/ProForm.js +241 -55
- package/es/components/ProForm/ProFormDependency.d.ts +11 -2
- package/es/components/ProForm/ProFormDependency.js +29 -133
- package/es/components/ProForm/ProFormItem.js +146 -52
- package/es/components/ProForm/ProFormList.js +114 -62
- package/es/components/ProForm/SchemaForm.d.ts +7 -0
- package/es/components/ProForm/SchemaForm.js +103 -0
- package/es/components/ProForm/Submitter.js +26 -5
- package/es/components/ProForm/context.d.ts +30 -3
- package/es/components/ProForm/context.js +69 -10
- package/es/components/ProForm/core/constants.d.ts +12 -3
- package/es/components/ProForm/core/constants.js +18 -7
- package/es/components/ProForm/core/formStore.d.ts +24 -0
- package/es/components/ProForm/core/formStore.js +101 -0
- package/es/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/es/components/ProForm/core/hooks/useForm.js +336 -212
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/es/components/ProForm/core/hooks/useFormCore.js +151 -93
- package/es/components/ProForm/core/interface.d.ts +33 -12
- package/es/components/ProForm/core/runRules.d.ts +20 -8
- package/es/components/ProForm/core/runRules.js +105 -50
- package/es/components/ProForm/core/useFormItem.d.ts +10 -1
- package/es/components/ProForm/core/useFormItem.js +141 -56
- package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
- package/es/components/ProForm/fields/createProFormField.js +61 -32
- package/es/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +54 -9
- package/es/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/es/components/ProForm/hooks/useUrlSync.js +170 -0
- package/es/components/ProForm/index.d.ts +12 -5
- package/es/components/ProForm/index.js +7 -2
- package/es/components/ProForm/interface.d.ts +185 -28
- package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DialogForm.js +18 -7
- package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DrawerForm.js +17 -7
- package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/es/components/ProForm/layouts/QueryFilter.js +47 -71
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +27 -8
- package/es/components/ProForm/style/ProForm.css +4 -4
- package/es/components/ProForm/utils.d.ts +12 -1
- package/es/components/ProForm/utils.js +101 -28
- package/es/components/ProTable/ProTable.js +3 -3
- package/es/components/Tooltip/style/Tooltip.css +1 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/lib/components/ProForm/ProForm.d.ts +10 -2
- package/lib/components/ProForm/ProForm.js +239 -53
- package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
- package/lib/components/ProForm/ProFormDependency.js +30 -135
- package/lib/components/ProForm/ProFormItem.js +143 -48
- package/lib/components/ProForm/ProFormList.js +112 -60
- package/lib/components/ProForm/SchemaForm.d.ts +7 -0
- package/lib/components/ProForm/SchemaForm.js +110 -0
- package/lib/components/ProForm/Submitter.js +26 -5
- package/lib/components/ProForm/context.d.ts +30 -3
- package/lib/components/ProForm/context.js +69 -10
- package/lib/components/ProForm/core/constants.d.ts +12 -3
- package/lib/components/ProForm/core/constants.js +19 -8
- package/lib/components/ProForm/core/formStore.d.ts +24 -0
- package/lib/components/ProForm/core/formStore.js +110 -0
- package/lib/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/lib/components/ProForm/core/hooks/useForm.js +336 -212
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/lib/components/ProForm/core/hooks/useFormCore.js +150 -92
- package/lib/components/ProForm/core/interface.d.ts +33 -12
- package/lib/components/ProForm/core/runRules.d.ts +20 -8
- package/lib/components/ProForm/core/runRules.js +106 -50
- package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
- package/lib/components/ProForm/core/useFormItem.js +138 -53
- package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
- package/lib/components/ProForm/fields/createProFormField.js +61 -32
- package/lib/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +53 -8
- package/lib/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/lib/components/ProForm/hooks/useUrlSync.js +178 -0
- package/lib/components/ProForm/index.d.ts +12 -5
- package/lib/components/ProForm/index.js +16 -1
- package/lib/components/ProForm/interface.d.ts +185 -28
- package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DialogForm.js +18 -7
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +17 -7
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/lib/components/ProForm/layouts/QueryFilter.js +46 -70
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/lib/components/ProForm/layouts/useOverlayForm.js +30 -8
- package/lib/components/ProForm/style/ProForm.css +4 -4
- package/lib/components/ProForm/utils.d.ts +12 -1
- package/lib/components/ProForm/utils.js +104 -28
- package/lib/components/ProTable/ProTable.js +3 -3
- package/lib/components/Tooltip/style/Tooltip.css +1 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +13 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +90 -0
- package/scripts/mcp-server/index.generated.json +1866 -212
|
@@ -1,13 +1,40 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { FormStore } from './core/formStore';
|
|
2
|
+
import type { ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, FormListContextValue, ProFormFormInstance } from './interface';
|
|
3
|
+
export declare const ProFormStableContext: import("react").Context<ProFormStableContextValue | null>;
|
|
4
|
+
export declare const ProFormStateContext: import("react").Context<FormStore | null>;
|
|
5
|
+
/** Read ONLY the stable slice (config + dispatchers) — no per-keystroke re-renders. */
|
|
6
|
+
export declare const useProFormStable: () => ProFormStableContextValue;
|
|
7
|
+
/**
|
|
8
|
+
* Internal: the raw form store (identity-stable — reading it never causes
|
|
9
|
+
* re-renders by itself). Pair with `useStoreSelector` for fine-grained,
|
|
10
|
+
* per-field subscriptions. Throws when used outside `<ProForm>`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const useProFormStore: () => FormStore;
|
|
13
|
+
/** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
|
|
14
|
+
export declare const useProFormState: () => ProFormStateContextValue;
|
|
3
15
|
/**
|
|
4
16
|
* Read the unified ProForm context (merged form core + ProForm semantics).
|
|
17
|
+
* Subscribes to BOTH slices — re-renders whenever form values change.
|
|
5
18
|
* Throws when used outside `<ProForm>`.
|
|
6
19
|
*/
|
|
7
20
|
export declare const useProFormContext: () => ProFormContextValue;
|
|
8
21
|
/**
|
|
9
22
|
* Read the ProForm form instance (superset of FormCoreInstance with format helpers).
|
|
23
|
+
* Subscribes only to the stable slice — does NOT re-render per keystroke.
|
|
24
|
+
* Pass a `Values` type argument to get a typed instance.
|
|
25
|
+
*/
|
|
26
|
+
export declare const useFormInstance: <Values = Record<string, unknown>>() => ProFormFormInstance<Values>;
|
|
27
|
+
export interface UseFormWatch {
|
|
28
|
+
/** Watch a single field; dot-paths supported (e.g. `"address.city"`). */
|
|
29
|
+
(name: string): unknown;
|
|
30
|
+
/** Watch the whole values object. */
|
|
31
|
+
(): Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Watch a single field or the whole values object. Re-renders whenever the
|
|
35
|
+
* WATCHED value changes (unrelated fields no longer cause re-renders).
|
|
36
|
+
* Lighter alternative to the `ProForm.Dependency` render-prop.
|
|
10
37
|
*/
|
|
11
|
-
export declare const
|
|
38
|
+
export declare const useFormWatch: UseFormWatch;
|
|
12
39
|
export declare const FormListContext: import("react").Context<FormListContextValue>;
|
|
13
40
|
export declare const useFormListContext: () => FormListContextValue;
|
|
@@ -1,22 +1,81 @@
|
|
|
1
|
-
import { createContext, useContext } from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
2
|
+
import { resolveValue } from './core/pathUtils';
|
|
3
|
+
import { useStoreSelector } from './core/formStore';
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// The ProForm context is SPLIT in two so that consumers which only need
|
|
6
|
+
// configuration / dispatchers (Submitter, field factories) do not re-render
|
|
7
|
+
// on every keystroke:
|
|
8
|
+
// - StableContext: config + identity-stable dispatchers and form instance.
|
|
9
|
+
// - StateContext: holds the IDENTITY-STABLE form store, never a snapshot —
|
|
10
|
+
// per-keystroke updates reach subscribers through store subscriptions
|
|
11
|
+
// (useStoreSelector with per-field selectors), not context propagation.
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
export var ProFormStableContext = /*#__PURE__*/createContext(null);
|
|
14
|
+
ProFormStableContext.displayName = 'ProFormStableContext';
|
|
15
|
+
export var ProFormStateContext = /*#__PURE__*/createContext(null);
|
|
16
|
+
ProFormStateContext.displayName = 'ProFormStateContext';
|
|
17
|
+
var OUTSIDE_FORM_ERROR = 'useProFormContext must be used within a <ProForm> component';
|
|
18
|
+
/** Read ONLY the stable slice (config + dispatchers) — no per-keystroke re-renders. */
|
|
19
|
+
export var useProFormStable = function useProFormStable() {
|
|
20
|
+
var ctx = useContext(ProFormStableContext);
|
|
21
|
+
if (!ctx) {
|
|
22
|
+
throw new Error(OUTSIDE_FORM_ERROR);
|
|
23
|
+
}
|
|
24
|
+
return ctx;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Internal: the raw form store (identity-stable — reading it never causes
|
|
28
|
+
* re-renders by itself). Pair with `useStoreSelector` for fine-grained,
|
|
29
|
+
* per-field subscriptions. Throws when used outside `<ProForm>`.
|
|
30
|
+
*/
|
|
31
|
+
export var useProFormStore = function useProFormStore() {
|
|
32
|
+
var store = useContext(ProFormStateContext);
|
|
33
|
+
if (!store) {
|
|
34
|
+
throw new Error(OUTSIDE_FORM_ERROR);
|
|
35
|
+
}
|
|
36
|
+
return store;
|
|
37
|
+
};
|
|
38
|
+
var selectStateSnapshot = function selectStateSnapshot(state) {
|
|
39
|
+
return state;
|
|
40
|
+
};
|
|
41
|
+
/** Read ONLY the volatile slice (values/errors/…) — re-renders on every change. */
|
|
42
|
+
export var useProFormState = function useProFormState() {
|
|
43
|
+
var store = useProFormStore();
|
|
44
|
+
// Subscribe to every commit (the snapshot identity changes per commit) —
|
|
45
|
+
// that broad granularity is this hook's documented contract; fine-grained
|
|
46
|
+
// consumers use useStoreSelector with a narrower selector instead.
|
|
47
|
+
return useStoreSelector(store, selectStateSnapshot);
|
|
48
|
+
};
|
|
4
49
|
/**
|
|
5
50
|
* Read the unified ProForm context (merged form core + ProForm semantics).
|
|
51
|
+
* Subscribes to BOTH slices — re-renders whenever form values change.
|
|
6
52
|
* Throws when used outside `<ProForm>`.
|
|
7
53
|
*/
|
|
8
54
|
export var useProFormContext = function useProFormContext() {
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
55
|
+
var stable = useProFormStable();
|
|
56
|
+
var state = useProFormState();
|
|
57
|
+
return useMemo(function () {
|
|
58
|
+
return Object.assign(Object.assign({}, stable), state);
|
|
59
|
+
}, [stable, state]);
|
|
14
60
|
};
|
|
15
61
|
/**
|
|
16
62
|
* Read the ProForm form instance (superset of FormCoreInstance with format helpers).
|
|
63
|
+
* Subscribes only to the stable slice — does NOT re-render per keystroke.
|
|
64
|
+
* Pass a `Values` type argument to get a typed instance.
|
|
17
65
|
*/
|
|
18
66
|
export var useFormInstance = function useFormInstance() {
|
|
19
|
-
return
|
|
67
|
+
return useProFormStable().formInstance;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Watch a single field or the whole values object. Re-renders whenever the
|
|
71
|
+
* WATCHED value changes (unrelated fields no longer cause re-renders).
|
|
72
|
+
* Lighter alternative to the `ProForm.Dependency` render-prop.
|
|
73
|
+
*/
|
|
74
|
+
export var useFormWatch = function useFormWatch(name) {
|
|
75
|
+
var store = useProFormStore();
|
|
76
|
+
return useStoreSelector(store, function (state) {
|
|
77
|
+
return name === undefined ? state.values : resolveValue(state.values, name);
|
|
78
|
+
});
|
|
20
79
|
};
|
|
21
80
|
// ---------------------------------------------------------------------------
|
|
22
81
|
// FormListContext — provides list scope info to ProFormDependency
|
|
@@ -26,4 +85,4 @@ FormListContext.displayName = 'FormListContext';
|
|
|
26
85
|
export var useFormListContext = function useFormListContext() {
|
|
27
86
|
return useContext(FormListContext);
|
|
28
87
|
};
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9jb250ZXh0LnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvbnRleHQuanMiXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwicmVzb2x2ZVZhbHVlIiwidXNlU3RvcmVTZWxlY3RvciIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiZGlzcGxheU5hbWUiLCJQcm9Gb3JtU3RhdGVDb250ZXh0IiwiT1VUU0lERV9GT1JNX0VSUk9SIiwidXNlUHJvRm9ybVN0YWJsZSIsImN0eCIsIkVycm9yIiwidXNlUHJvRm9ybVN0b3JlIiwic3RvcmUiLCJzZWxlY3RTdGF0ZVNuYXBzaG90Iiwic3RhdGUiLCJ1c2VQcm9Gb3JtU3RhdGUiLCJ1c2VQcm9Gb3JtQ29udGV4dCIsInN0YWJsZSIsIk9iamVjdCIsImFzc2lnbiIsInVzZUZvcm1JbnN0YW5jZSIsImZvcm1JbnN0YW5jZSIsInVzZUZvcm1XYXRjaCIsIm5hbWUiLCJ1bmRlZmluZWQiLCJ2YWx1ZXMiLCJGb3JtTGlzdENvbnRleHQiLCJ1c2VGb3JtTGlzdENvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxPQUFPLFFBQVEsT0FBTztBQUMxRCxTQUFTQyxZQUFZLFFBQVEsa0JBQWtCO0FBQy9DLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQVVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG9CQUFvQixnQkFBR0wsYUFBYSxDQUFtQyxJQUFJLENBQUM7QUFDekZLLG9CQUFvQixDQUFDQyxXQUFXLEdBQUcsc0JBQXNCO0FBRXpELE9BQU8sSUFBTUMsbUJBQW1CLGdCQUFHUCxhQUFhLENBQW1CLElBQUksQ0FBQztBQUN4RU8sbUJBQW1CLENBQUNELFdBQVcsR0FBRyxxQkFBcUI7QUFFdkQsSUFBTUUsa0JBQWtCLEdBQUcsNkRBQTZEO0FBRXhGO0FBQ0EsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFBLEVBQW1DO0VBQzlELElBQU1DLEdBQUcsR0FBR1QsVUFBVSxDQUFDSSxvQkFBb0IsQ0FBQztFQUM1QyxJQUFJLENBQUNLLEdBQUcsRUFBRTtJQUNSLE1BQU0sSUFBSUMsS0FBSyxDQUFDSCxrQkFBa0IsQ0FBQztFQUNyQztFQUNBLE9BQU9FLEdBQUc7QUFDWixDQUFDO0FBRUQ7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBRGNBLE9BQU8sSUFBTUUsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQW1CO0VBQzdDLElBQU1DLEtBQUssR0FBR1osVUFBVSxDQUFDTSxtQkFBbUIsQ0FBQztFQUM3QyxJQUFJLENBQUNNLEtBQUssRUFBRTtJQUNWLE1BQU0sSUFBSUYsS0FBSyxDQUFDSCxrQkFBa0IsQ0FBQztFQUNyQztFQUNBLE9BQU9LLEtBQUs7QUFDZCxDQUFDO0FBRUQsSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsS0FBcUI7RUFBQSxPQUErQkEsS0FBSztBQUFBO0FBRXRGO0FBQ0EsT0FBTyxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUEsRUFBa0M7RUFDNUQsSUFBTUgsS0FBSyxHQUFHRCxlQUFlLENBQUEsQ0FBRTtFQUMvQjtFQUNBO0VBQ0E7RUFDQSxPQUFPUixnQkFBZ0IsQ0FBQ1MsS0FBSyxFQUFFQyxtQkFBbUIsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBRGlCQSxPQUFPLElBQU1HLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUEsRUFBNkI7RUFDekQsSUFBTUMsTUFBTSxHQUFHVCxnQkFBZ0IsQ0FBQSxDQUFFO0VBQ2pDLElBQU1NLEtBQUssR0FBR0MsZUFBZSxDQUFBLENBQUU7RUFDL0IsT0FBT2QsT0FBTyxDQUFDO0lBQUEsT0FBTWlCLE1BQUEsQ0FBQUMsTUFBQSxDQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBTUYsTUFBTSxDQUFBLEVBQUtILEtBQUssQ0FBQTtFQUFBLENBQUcsRUFBRSxDQUFDRyxNQUFNLEVBQUVILEtBQUssQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRDtBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBRGtCQSxPQUFPLElBQU1NLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUF1RTtFQUNqRyxPQUFPWixnQkFBZ0IsQ0FBQSxDQUFFLENBQUNhLFlBQTJDO0FBQ3ZFLENBQUM7QUFTRDtBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBRDBCQSxPQUFPLElBQU1DLFlBQVksR0FBa0IsU0FBOUJBLFlBQVlBLENBQW1CQyxJQUFhLEVBQUk7RUFDM0QsSUFBTVgsS0FBSyxHQUFHRCxlQUFlLENBQUEsQ0FBRTtFQUMvQixPQUFPUixnQkFBZ0IsQ0FBQ1MsS0FBSyxFQUFFLFVBQUNFLEtBQUs7SUFBQSxPQUNuQ1MsSUFBSSxLQUFLQyxTQUFTLEdBQUdWLEtBQUssQ0FBQ1csTUFBTSxHQUFHdkIsWUFBWSxDQUFDWSxLQUFLLENBQUNXLE1BQU0sRUFBRUYsSUFBSSxDQUFDO0VBQUEsRUFDckU7QUFDSCxDQUFrQjtBQUVsQjtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1HLGVBQWUsZ0JBQUczQixhQUFhLENBQXVCLENBQUEsQ0FBRSxDQUFDO0FBRXRFMkIsZUFBZSxDQUFDckIsV0FBVyxHQUFHLGlCQUFpQjtBQUUvQyxPQUFPLElBQU1zQixrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBO0VBQUEsT0FBK0IzQixVQUFVLENBQUMwQixlQUFlLENBQUM7QUFBQSIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3RvciB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUaGUgUHJvRm9ybSBjb250ZXh0IGlzIFNQTElUIGluIHR3byBzbyB0aGF0IGNvbnN1bWVycyB3aGljaCBvbmx5IG5lZWRcbi8vIGNvbmZpZ3VyYXRpb24gLyBkaXNwYXRjaGVycyAoU3VibWl0dGVyLCBmaWVsZCBmYWN0b3JpZXMpIGRvIG5vdCByZS1yZW5kZXJcbi8vIG9uIGV2ZXJ5IGtleXN0cm9rZTpcbi8vIC0gU3RhYmxlQ29udGV4dDogY29uZmlnICsgaWRlbnRpdHktc3RhYmxlIGRpc3BhdGNoZXJzIGFuZCBmb3JtIGluc3RhbmNlLlxuLy8gLSBTdGF0ZUNvbnRleHQ6IGhvbGRzIHRoZSBJREVOVElUWS1TVEFCTEUgZm9ybSBzdG9yZSwgbmV2ZXIgYSBzbmFwc2hvdCDigJRcbi8vICAgcGVyLWtleXN0cm9rZSB1cGRhdGVzIHJlYWNoIHN1YnNjcmliZXJzIHRocm91Z2ggc3RvcmUgc3Vic2NyaXB0aW9uc1xuLy8gICAodXNlU3RvcmVTZWxlY3RvciB3aXRoIHBlci1maWVsZCBzZWxlY3RvcnMpLCBub3QgY29udGV4dCBwcm9wYWdhdGlvbi5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1TdGFibGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGFibGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1TdGFibGVDb250ZXh0JztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtU3RhdGVDb250ZXh0ID0gY3JlYXRlQ29udGV4dChudWxsKTtcblByb0Zvcm1TdGF0ZUNvbnRleHQuZGlzcGxheU5hbWUgPSAnUHJvRm9ybVN0YXRlQ29udGV4dCc7XG5jb25zdCBPVVRTSURFX0ZPUk1fRVJST1IgPSAndXNlUHJvRm9ybUNvbnRleHQgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIDxQcm9Gb3JtPiBjb21wb25lbnQnO1xuLyoqIFJlYWQgT05MWSB0aGUgc3RhYmxlIHNsaWNlIChjb25maWcgKyBkaXNwYXRjaGVycykg4oCUIG5vIHBlci1rZXlzdHJva2UgcmUtcmVuZGVycy4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RhYmxlID0gKCkgPT4ge1xuICAgIGNvbnN0IGN0eCA9IHVzZUNvbnRleHQoUHJvRm9ybVN0YWJsZUNvbnRleHQpO1xuICAgIGlmICghY3R4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gY3R4O1xufTtcbi8qKlxuICogSW50ZXJuYWw6IHRoZSByYXcgZm9ybSBzdG9yZSAoaWRlbnRpdHktc3RhYmxlIOKAlCByZWFkaW5nIGl0IG5ldmVyIGNhdXNlc1xuICogcmUtcmVuZGVycyBieSBpdHNlbGYpLiBQYWlyIHdpdGggYHVzZVN0b3JlU2VsZWN0b3JgIGZvciBmaW5lLWdyYWluZWQsXG4gKiBwZXItZmllbGQgc3Vic2NyaXB0aW9ucy4gVGhyb3dzIHdoZW4gdXNlZCBvdXRzaWRlIGA8UHJvRm9ybT5gLlxuICovXG5leHBvcnQgY29uc3QgdXNlUHJvRm9ybVN0b3JlID0gKCkgPT4ge1xuICAgIGNvbnN0IHN0b3JlID0gdXNlQ29udGV4dChQcm9Gb3JtU3RhdGVDb250ZXh0KTtcbiAgICBpZiAoIXN0b3JlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihPVVRTSURFX0ZPUk1fRVJST1IpO1xuICAgIH1cbiAgICByZXR1cm4gc3RvcmU7XG59O1xuY29uc3Qgc2VsZWN0U3RhdGVTbmFwc2hvdCA9IChzdGF0ZSkgPT4gc3RhdGU7XG4vKiogUmVhZCBPTkxZIHRoZSB2b2xhdGlsZSBzbGljZSAodmFsdWVzL2Vycm9ycy/igKYpIOKAlCByZS1yZW5kZXJzIG9uIGV2ZXJ5IGNoYW5nZS4gKi9cbmV4cG9ydCBjb25zdCB1c2VQcm9Gb3JtU3RhdGUgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RvcmUgPSB1c2VQcm9Gb3JtU3RvcmUoKTtcbiAgICAvLyBTdWJzY3JpYmUgdG8gZXZlcnkgY29tbWl0ICh0aGUgc25hcHNob3QgaWRlbnRpdHkgY2hhbmdlcyBwZXIgY29tbWl0KSDigJRcbiAgICAvLyB0aGF0IGJyb2FkIGdyYW51bGFyaXR5IGlzIHRoaXMgaG9vaydzIGRvY3VtZW50ZWQgY29udHJhY3Q7IGZpbmUtZ3JhaW5lZFxuICAgIC8vIGNvbnN1bWVycyB1c2UgdXNlU3RvcmVTZWxlY3RvciB3aXRoIGEgbmFycm93ZXIgc2VsZWN0b3IgaW5zdGVhZC5cbiAgICByZXR1cm4gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgc2VsZWN0U3RhdGVTbmFwc2hvdCk7XG59O1xuLyoqXG4gKiBSZWFkIHRoZSB1bmlmaWVkIFByb0Zvcm0gY29udGV4dCAobWVyZ2VkIGZvcm0gY29yZSArIFByb0Zvcm0gc2VtYW50aWNzKS5cbiAqIFN1YnNjcmliZXMgdG8gQk9USCBzbGljZXMg4oCUIHJlLXJlbmRlcnMgd2hlbmV2ZXIgZm9ybSB2YWx1ZXMgY2hhbmdlLlxuICogVGhyb3dzIHdoZW4gdXNlZCBvdXRzaWRlIGA8UHJvRm9ybT5gLlxuICovXG5leHBvcnQgY29uc3QgdXNlUHJvRm9ybUNvbnRleHQgPSAoKSA9PiB7XG4gICAgY29uc3Qgc3RhYmxlID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0YXRlID0gdXNlUHJvRm9ybVN0YXRlKCk7XG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3RhYmxlKSwgc3RhdGUpKSwgW3N0YWJsZSwgc3RhdGVdKTtcbn07XG4vKipcbiAqIFJlYWQgdGhlIFByb0Zvcm0gZm9ybSBpbnN0YW5jZSAoc3VwZXJzZXQgb2YgRm9ybUNvcmVJbnN0YW5jZSB3aXRoIGZvcm1hdCBoZWxwZXJzKS5cbiAqIFN1YnNjcmliZXMgb25seSB0byB0aGUgc3RhYmxlIHNsaWNlIOKAlCBkb2VzIE5PVCByZS1yZW5kZXIgcGVyIGtleXN0cm9rZS5cbiAqIFBhc3MgYSBgVmFsdWVzYCB0eXBlIGFyZ3VtZW50IHRvIGdldCBhIHR5cGVkIGluc3RhbmNlLlxuICovXG5leHBvcnQgY29uc3QgdXNlRm9ybUluc3RhbmNlID0gKCkgPT4ge1xuICAgIHJldHVybiB1c2VQcm9Gb3JtU3RhYmxlKCkuZm9ybUluc3RhbmNlO1xufTtcbi8qKlxuICogV2F0Y2ggYSBzaW5nbGUgZmllbGQgb3IgdGhlIHdob2xlIHZhbHVlcyBvYmplY3QuIFJlLXJlbmRlcnMgd2hlbmV2ZXIgdGhlXG4gKiBXQVRDSEVEIHZhbHVlIGNoYW5nZXMgKHVucmVsYXRlZCBmaWVsZHMgbm8gbG9uZ2VyIGNhdXNlIHJlLXJlbmRlcnMpLlxuICogTGlnaHRlciBhbHRlcm5hdGl2ZSB0byB0aGUgYFByb0Zvcm0uRGVwZW5kZW5jeWAgcmVuZGVyLXByb3AuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VGb3JtV2F0Y2ggPSAoKG5hbWUpID0+IHtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIHJldHVybiB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCAoc3RhdGUpID0+IG5hbWUgPT09IHVuZGVmaW5lZCA/IHN0YXRlLnZhbHVlcyA6IHJlc29sdmVWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpKTtcbn0pO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBGb3JtTGlzdENvbnRleHQg4oCUIHByb3ZpZGVzIGxpc3Qgc2NvcGUgaW5mbyB0byBQcm9Gb3JtRGVwZW5kZW5jeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgY29uc3QgRm9ybUxpc3RDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7fSk7XG5Gb3JtTGlzdENvbnRleHQuZGlzcGxheU5hbWUgPSAnRm9ybUxpc3RDb250ZXh0JztcbmV4cG9ydCBjb25zdCB1c2VGb3JtTGlzdENvbnRleHQgPSAoKSA9PiB1c2VDb250ZXh0KEZvcm1MaXN0Q29udGV4dCk7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TypographyBodySize, TypographyColor, TypographyLabelSize } from "../../Typography";
|
|
2
|
-
export declare const FORM_SIZES: readonly ["large", "
|
|
2
|
+
export declare const FORM_SIZES: readonly ["large", "small"];
|
|
3
3
|
export declare const FORM_LAYOUTS: readonly ["vertical"];
|
|
4
4
|
export declare const LABEL_ALIGNS: readonly ["left", "right"];
|
|
5
5
|
export declare const VALIDATE_STATUSES: readonly ["success", "warning", "error", "validating"];
|
|
@@ -9,16 +9,25 @@ export type FormLayout = (typeof FORM_LAYOUTS)[number];
|
|
|
9
9
|
export type LabelAlign = (typeof LABEL_ALIGNS)[number];
|
|
10
10
|
export type ValidateStatus = (typeof VALIDATE_STATUSES)[number];
|
|
11
11
|
export type ValidateTrigger = (typeof VALIDATE_TRIGGERS)[number];
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const FORM_LABEL_SIZE: TypographyLabelSize;
|
|
12
|
+
export declare const FORM_LABEL_SIZES: Record<FormSize, TypographyLabelSize>;
|
|
14
13
|
export declare const FORM_LABEL_COLOR: TypographyColor;
|
|
15
14
|
export declare const FORM_ERROR_SIZE: TypographyBodySize;
|
|
16
15
|
export declare const FORM_ERROR_COLOR: TypographyColor;
|
|
16
|
+
export declare const FORM_WARNING_SIZE: TypographyBodySize;
|
|
17
|
+
export declare const FORM_WARNING_COLOR: TypographyColor;
|
|
17
18
|
export declare const FORM_DESCRIPTION_SIZE: TypographyBodySize;
|
|
18
19
|
export declare const FORM_DESCRIPTION_COLOR: TypographyColor;
|
|
19
20
|
export declare const FORM_FEEDBACK_SIZE: TypographyBodySize;
|
|
20
21
|
export declare const FORM_FEEDBACK_COLOR: TypographyColor;
|
|
21
22
|
export declare const FORM_COMPONENT_NAMES: readonly ["Input", "InputNumber", "InputPassword", "InputTextArea", "InputSearch", "InputOTP", "InputTrade", "InputAmount", "InputMask", "Select", "BaseSelect", "DatePicker", "TimePicker", "Calendar", "Checkbox", "CheckboxGroup", "Radio", "RadioGroup", "Switch", "Slider", "TextArea"];
|
|
23
|
+
/**
|
|
24
|
+
* Form controls that declare a `size` prop accepting `'large' | 'small'`.
|
|
25
|
+
* `injectField` cascades the form-level `size` into these as a DEFAULT — an
|
|
26
|
+
* explicit field-level `size` (own prop or via `fieldProps`) wins. Controls
|
|
27
|
+
* without a size prop (Checkbox, Switch, Slider, …) must stay off this list:
|
|
28
|
+
* an unknown `size` prop could leak onto the DOM element.
|
|
29
|
+
*/
|
|
30
|
+
export declare const SIZE_AWARE_COMPONENT_NAMES: readonly string[];
|
|
22
31
|
/**
|
|
23
32
|
* Text-like form controls whose empty value must default to '' (a controlled
|
|
24
33
|
* string input) rather than undefined. Used by `injectField` to pick a safe
|
|
@@ -1,26 +1,37 @@
|
|
|
1
|
-
export var FORM_SIZES = ['large', '
|
|
1
|
+
export var FORM_SIZES = ['large', 'small'];
|
|
2
2
|
export var FORM_LAYOUTS = ['vertical'];
|
|
3
3
|
export var LABEL_ALIGNS = ['left', 'right'];
|
|
4
4
|
export var VALIDATE_STATUSES = ['success', 'warning', 'error', 'validating'];
|
|
5
5
|
export var VALIDATE_TRIGGERS = ['onChange', 'onBlur'];
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
// Label typography pairs with the field control's text size for each form
|
|
7
|
+
// size: large control text is body/lg (16px) → label lg; small is body/md
|
|
8
|
+
// (14px) → label md.
|
|
9
|
+
export var FORM_LABEL_SIZES = {
|
|
10
|
+
large: 'lg',
|
|
11
|
+
small: 'md'
|
|
10
12
|
};
|
|
11
|
-
export var FORM_LABEL_SIZE = 'lg';
|
|
12
13
|
export var FORM_LABEL_COLOR = 'default';
|
|
13
14
|
export var FORM_ERROR_SIZE = 'sm';
|
|
14
15
|
export var FORM_ERROR_COLOR = 'danger';
|
|
16
|
+
export var FORM_WARNING_SIZE = 'sm';
|
|
17
|
+
export var FORM_WARNING_COLOR = 'warning';
|
|
15
18
|
export var FORM_DESCRIPTION_SIZE = 'md';
|
|
16
19
|
export var FORM_DESCRIPTION_COLOR = 'default-tertiary';
|
|
17
20
|
export var FORM_FEEDBACK_SIZE = 'sm';
|
|
18
21
|
export var FORM_FEEDBACK_COLOR = 'default-tertiary';
|
|
19
22
|
export var FORM_COMPONENT_NAMES = ['Input', 'InputNumber', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'Select', 'BaseSelect', 'DatePicker', 'TimePicker', 'Calendar', 'Checkbox', 'CheckboxGroup', 'Radio', 'RadioGroup', 'Switch', 'Slider', 'TextArea'];
|
|
23
|
+
/**
|
|
24
|
+
* Form controls that declare a `size` prop accepting `'large' | 'small'`.
|
|
25
|
+
* `injectField` cascades the form-level `size` into these as a DEFAULT — an
|
|
26
|
+
* explicit field-level `size` (own prop or via `fieldProps`) wins. Controls
|
|
27
|
+
* without a size prop (Checkbox, Switch, Slider, …) must stay off this list:
|
|
28
|
+
* an unknown `size` prop could leak onto the DOM element.
|
|
29
|
+
*/
|
|
30
|
+
export var SIZE_AWARE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputAmount', 'InputMask', 'Select', 'Calendar', 'Radio', 'RadioGroup'];
|
|
20
31
|
/**
|
|
21
32
|
* Text-like form controls whose empty value must default to '' (a controlled
|
|
22
33
|
* string input) rather than undefined. Used by `injectField` to pick a safe
|
|
23
34
|
* fallback value.
|
|
24
35
|
*/
|
|
25
36
|
export var TEXT_LIKE_COMPONENT_NAMES = ['Input', 'InputPassword', 'InputTextArea', 'InputSearch', 'InputOTP', 'InputTrade', 'InputAmount', 'InputMask', 'TextArea', 'InputNumber'];
|
|
26
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbIkZPUk1fU0laRVMiLCJGT1JNX0xBWU9VVFMiLCJMQUJFTF9BTElHTlMiLCJWQUxJREFURV9TVEFUVVNFUyIsIlZBTElEQVRFX1RSSUdHRVJTIiwiRk9STV9MQUJFTF9TSVpFUyIsImxhcmdlIiwic21hbGwiLCJGT1JNX0xBQkVMX0NPTE9SIiwiRk9STV9FUlJPUl9TSVpFIiwiRk9STV9FUlJPUl9DT0xPUiIsIkZPUk1fV0FSTklOR19TSVpFIiwiRk9STV9XQVJOSU5HX0NPTE9SIiwiRk9STV9ERVNDUklQVElPTl9TSVpFIiwiRk9STV9ERVNDUklQVElPTl9DT0xPUiIsIkZPUk1fRkVFREJBQ0tfU0laRSIsIkZPUk1fRkVFREJBQ0tfQ09MT1IiLCJGT1JNX0NPTVBPTkVOVF9OQU1FUyIsIlNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTIiwiVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxJQUFNQSxVQUFVLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFVO0FBQ3JELE9BQU8sSUFBTUMsWUFBWSxHQUFHLENBQUMsVUFBVSxDQUFVO0FBQ2pELE9BQU8sSUFBTUMsWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBVTtBQUN0RCxPQUFPLElBQU1DLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFVO0FBQ3ZGLE9BQU8sSUFBTUMsaUJBQWlCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFVO0FBUWhFO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsZ0JBQWdCLEdBQTBDO0VBQ3JFQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxLQUFLLEVBQUU7QUNSVCxDRFNDO0FBQ0QsT0FBTyxJQUFNQyxnQkFBZ0IsR0FBb0IsU0FBUztBQUMxRCxPQUFPLElBQU1DLGVBQWUsR0FBdUIsSUFBSTtBQUN2RCxPQUFPLElBQU1DLGdCQUFnQixHQUFvQixRQUFRO0FBQ3pELE9BQU8sSUFBTUMsaUJBQWlCLEdBQXVCLElBQUk7QUFDekQsT0FBTyxJQUFNQyxrQkFBa0IsR0FBb0IsU0FBUztBQUM1RCxPQUFPLElBQU1DLHFCQUFxQixHQUF1QixJQUFJO0FBQzdELE9BQU8sSUFBTUMsc0JBQXNCLEdBQW9CLGtCQUFrQjtBQUN6RSxPQUFPLElBQU1DLGtCQUFrQixHQUF1QixJQUFJO0FBQzFELE9BQU8sSUFBTUMsbUJBQW1CLEdBQW9CLGtCQUFrQjtBQUV0RSxPQUFPLElBQU1DLG9CQUFvQixHQUFHLENBQ2xDLE9BQU8sRUFDUCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsV0FBVyxFQUNYLFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLFlBQVksRUFDWixVQUFVLEVBQ1YsVUFBVSxFQUNWLGVBQWUsRUFDZixPQUFPLEVBQ1AsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1IsVUFBVSxDQUNGO0FBRVY7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QURZQSxPQUFPLElBQU1DLDBCQUEwQixHQUFzQixDQUMzRCxPQUFPLEVBQ1AsZUFBZSxFQUNmLGVBQWUsRUFDZixhQUFhLEVBQ2IsVUFBVSxFQUNWLGFBQWEsRUFDYixXQUFXLEVBQ1gsUUFBUSxFQUNSLFVBQVUsRUFDVixPQUFPLEVBQ1AsWUFBWSxDQUNiO0FBRUQ7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBRGFBLE9BQU8sSUFBTUMseUJBQXlCLEdBQXNCLENBQzFELE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsRUFDYixVQUFVLEVBQ1YsWUFBWSxFQUNaLGFBQWEsRUFDYixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsQ0FDZCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS9jb25zdGFudHMuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImV4cG9ydCBjb25zdCBGT1JNX1NJWkVTID0gWydsYXJnZScsICdzbWFsbCddO1xuZXhwb3J0IGNvbnN0IEZPUk1fTEFZT1VUUyA9IFsndmVydGljYWwnXTtcbmV4cG9ydCBjb25zdCBMQUJFTF9BTElHTlMgPSBbJ2xlZnQnLCAncmlnaHQnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9TVEFUVVNFUyA9IFsnc3VjY2VzcycsICd3YXJuaW5nJywgJ2Vycm9yJywgJ3ZhbGlkYXRpbmcnXTtcbmV4cG9ydCBjb25zdCBWQUxJREFURV9UUklHR0VSUyA9IFsnb25DaGFuZ2UnLCAnb25CbHVyJ107XG4vLyBMYWJlbCB0eXBvZ3JhcGh5IHBhaXJzIHdpdGggdGhlIGZpZWxkIGNvbnRyb2wncyB0ZXh0IHNpemUgZm9yIGVhY2ggZm9ybVxuLy8gc2l6ZTogbGFyZ2UgY29udHJvbCB0ZXh0IGlzIGJvZHkvbGcgKDE2cHgpIOKGkiBsYWJlbCBsZzsgc21hbGwgaXMgYm9keS9tZFxuLy8gKDE0cHgpIOKGkiBsYWJlbCBtZC5cbmV4cG9ydCBjb25zdCBGT1JNX0xBQkVMX1NJWkVTID0ge1xuICAgIGxhcmdlOiAnbGcnLFxuICAgIHNtYWxsOiAnbWQnLFxufTtcbmV4cG9ydCBjb25zdCBGT1JNX0xBQkVMX0NPTE9SID0gJ2RlZmF1bHQnO1xuZXhwb3J0IGNvbnN0IEZPUk1fRVJST1JfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9FUlJPUl9DT0xPUiA9ICdkYW5nZXInO1xuZXhwb3J0IGNvbnN0IEZPUk1fV0FSTklOR19TSVpFID0gJ3NtJztcbmV4cG9ydCBjb25zdCBGT1JNX1dBUk5JTkdfQ09MT1IgPSAnd2FybmluZyc7XG5leHBvcnQgY29uc3QgRk9STV9ERVNDUklQVElPTl9TSVpFID0gJ21kJztcbmV4cG9ydCBjb25zdCBGT1JNX0RFU0NSSVBUSU9OX0NPTE9SID0gJ2RlZmF1bHQtdGVydGlhcnknO1xuZXhwb3J0IGNvbnN0IEZPUk1fRkVFREJBQ0tfU0laRSA9ICdzbSc7XG5leHBvcnQgY29uc3QgRk9STV9GRUVEQkFDS19DT0xPUiA9ICdkZWZhdWx0LXRlcnRpYXJ5JztcbmV4cG9ydCBjb25zdCBGT1JNX0NPTVBPTkVOVF9OQU1FUyA9IFtcbiAgICAnSW5wdXQnLFxuICAgICdJbnB1dE51bWJlcicsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1NlbGVjdCcsXG4gICAgJ0Jhc2VTZWxlY3QnLFxuICAgICdEYXRlUGlja2VyJyxcbiAgICAnVGltZVBpY2tlcicsXG4gICAgJ0NhbGVuZGFyJyxcbiAgICAnQ2hlY2tib3gnLFxuICAgICdDaGVja2JveEdyb3VwJyxcbiAgICAnUmFkaW8nLFxuICAgICdSYWRpb0dyb3VwJyxcbiAgICAnU3dpdGNoJyxcbiAgICAnU2xpZGVyJyxcbiAgICAnVGV4dEFyZWEnLFxuXTtcbi8qKlxuICogRm9ybSBjb250cm9scyB0aGF0IGRlY2xhcmUgYSBgc2l6ZWAgcHJvcCBhY2NlcHRpbmcgYCdsYXJnZScgfCAnc21hbGwnYC5cbiAqIGBpbmplY3RGaWVsZGAgY2FzY2FkZXMgdGhlIGZvcm0tbGV2ZWwgYHNpemVgIGludG8gdGhlc2UgYXMgYSBERUZBVUxUIOKAlCBhblxuICogZXhwbGljaXQgZmllbGQtbGV2ZWwgYHNpemVgIChvd24gcHJvcCBvciB2aWEgYGZpZWxkUHJvcHNgKSB3aW5zLiBDb250cm9sc1xuICogd2l0aG91dCBhIHNpemUgcHJvcCAoQ2hlY2tib3gsIFN3aXRjaCwgU2xpZGVyLCDigKYpIG11c3Qgc3RheSBvZmYgdGhpcyBsaXN0OlxuICogYW4gdW5rbm93biBgc2l6ZWAgcHJvcCBjb3VsZCBsZWFrIG9udG8gdGhlIERPTSBlbGVtZW50LlxuICovXG5leHBvcnQgY29uc3QgU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMgPSBbXG4gICAgJ0lucHV0JyxcbiAgICAnSW5wdXRQYXNzd29yZCcsXG4gICAgJ0lucHV0VGV4dEFyZWEnLFxuICAgICdJbnB1dFNlYXJjaCcsXG4gICAgJ0lucHV0T1RQJyxcbiAgICAnSW5wdXRBbW91bnQnLFxuICAgICdJbnB1dE1hc2snLFxuICAgICdTZWxlY3QnLFxuICAgICdDYWxlbmRhcicsXG4gICAgJ1JhZGlvJyxcbiAgICAnUmFkaW9Hcm91cCcsXG5dO1xuLyoqXG4gKiBUZXh0LWxpa2UgZm9ybSBjb250cm9scyB3aG9zZSBlbXB0eSB2YWx1ZSBtdXN0IGRlZmF1bHQgdG8gJycgKGEgY29udHJvbGxlZFxuICogc3RyaW5nIGlucHV0KSByYXRoZXIgdGhhbiB1bmRlZmluZWQuIFVzZWQgYnkgYGluamVjdEZpZWxkYCB0byBwaWNrIGEgc2FmZVxuICogZmFsbGJhY2sgdmFsdWUuXG4gKi9cbmV4cG9ydCBjb25zdCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTID0gW1xuICAgICdJbnB1dCcsXG4gICAgJ0lucHV0UGFzc3dvcmQnLFxuICAgICdJbnB1dFRleHRBcmVhJyxcbiAgICAnSW5wdXRTZWFyY2gnLFxuICAgICdJbnB1dE9UUCcsXG4gICAgJ0lucHV0VHJhZGUnLFxuICAgICdJbnB1dEFtb3VudCcsXG4gICAgJ0lucHV0TWFzaycsXG4gICAgJ1RleHRBcmVhJyxcbiAgICAnSW5wdXROdW1iZXInLFxuXTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface FormStoreState {
|
|
2
|
+
values: Record<string, unknown>;
|
|
3
|
+
errors: Record<string, string>;
|
|
4
|
+
warnings: Record<string, string>;
|
|
5
|
+
touched: Record<string, boolean>;
|
|
6
|
+
validating: Record<string, boolean>;
|
|
7
|
+
}
|
|
8
|
+
export type FormStoreListener = () => void;
|
|
9
|
+
export interface FormStore {
|
|
10
|
+
getState: () => FormStoreState;
|
|
11
|
+
/** Shallow-merge a patch and synchronously notify every subscriber. */
|
|
12
|
+
setState: (patch: Partial<FormStoreState>) => void;
|
|
13
|
+
subscribe: (listener: FormStoreListener) => () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const createFormStore: (initialValues?: Record<string, unknown>) => FormStore;
|
|
16
|
+
export declare function useStoreSelector<T>(store: FormStore, selector: (state: FormStoreState) => T, isEqual?: (a: T, b: T) => boolean): T;
|
|
17
|
+
export declare const shallowEqualArrays: (a: readonly unknown[], b: readonly unknown[]) => boolean;
|
|
18
|
+
export declare const shallowEqualObjects: (a: Record<string, unknown> | undefined, b: Record<string, unknown> | undefined) => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Return a referentially-stable version of an (often inline-literal) props
|
|
21
|
+
* object: the previous reference is kept while the content stays
|
|
22
|
+
* shallow-equal, so downstream memo/context deps don't churn per render.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useShallowStable<T extends object | undefined>(value: T): T;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import { useEffect, useReducer, useRef } from 'react';
|
|
3
|
+
import useLatest from '@1money/hooks/useLatest';
|
|
4
|
+
export var createFormStore = function createFormStore() {
|
|
5
|
+
var initialValues = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
6
|
+
var state = {
|
|
7
|
+
values: initialValues,
|
|
8
|
+
errors: {},
|
|
9
|
+
warnings: {},
|
|
10
|
+
touched: {},
|
|
11
|
+
validating: {}
|
|
12
|
+
};
|
|
13
|
+
var listeners = new Set();
|
|
14
|
+
return {
|
|
15
|
+
getState: function getState() {
|
|
16
|
+
return state;
|
|
17
|
+
},
|
|
18
|
+
setState: function setState(patch) {
|
|
19
|
+
state = Object.assign(Object.assign({}, state), patch);
|
|
20
|
+
listeners.forEach(function (listener) {
|
|
21
|
+
return listener();
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
subscribe: function subscribe(listener) {
|
|
25
|
+
listeners.add(listener);
|
|
26
|
+
return function () {
|
|
27
|
+
listeners["delete"](listener);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// useStoreSelector — subscribe to a selected slice of the store.
|
|
34
|
+
//
|
|
35
|
+
// The component re-renders ONLY when `isEqual(prevSelected, nextSelected)` is
|
|
36
|
+
// false. The selector/equality/selected trio is re-captured in a ref on every
|
|
37
|
+
// render, so inline selectors (closing over the latest props) are safe.
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
export function useStoreSelector(store, selector) {
|
|
40
|
+
var isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Object.is;
|
|
41
|
+
var _useReducer = useReducer(function (count) {
|
|
42
|
+
return count + 1;
|
|
43
|
+
}, 0),
|
|
44
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
45
|
+
forceRender = _useReducer2[1];
|
|
46
|
+
var selected = selector(store.getState());
|
|
47
|
+
var latestRef = useLatest({
|
|
48
|
+
selector: selector,
|
|
49
|
+
isEqual: isEqual,
|
|
50
|
+
selected: selected
|
|
51
|
+
});
|
|
52
|
+
useEffect(function () {
|
|
53
|
+
var checkForUpdates = function checkForUpdates() {
|
|
54
|
+
var latest = latestRef.current;
|
|
55
|
+
var next = latest.selector(store.getState());
|
|
56
|
+
if (!latest.isEqual(latest.selected, next)) {
|
|
57
|
+
forceRender();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
// Catch commits that landed between render and subscription.
|
|
61
|
+
checkForUpdates();
|
|
62
|
+
return store.subscribe(checkForUpdates);
|
|
63
|
+
}, [store]);
|
|
64
|
+
return selected;
|
|
65
|
+
}
|
|
66
|
+
// ---------------------------------------------------------------------------
|
|
67
|
+
// Equality helpers for multi-value selectors / props stabilization
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
export var shallowEqualArrays = function shallowEqualArrays(a, b) {
|
|
70
|
+
if (a === b) return true;
|
|
71
|
+
if (a.length !== b.length) return false;
|
|
72
|
+
for (var i = 0; i < a.length; i++) {
|
|
73
|
+
if (!Object.is(a[i], b[i])) return false;
|
|
74
|
+
}
|
|
75
|
+
return true;
|
|
76
|
+
};
|
|
77
|
+
export var shallowEqualObjects = function shallowEqualObjects(a, b) {
|
|
78
|
+
if (a === b) return true;
|
|
79
|
+
if (!a || !b) return false;
|
|
80
|
+
var aKeys = Object.keys(a);
|
|
81
|
+
var bKeys = Object.keys(b);
|
|
82
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
83
|
+
for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {
|
|
84
|
+
var key = _aKeys[_i];
|
|
85
|
+
if (!Object.is(a[key], b[key])) return false;
|
|
86
|
+
}
|
|
87
|
+
return true;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Return a referentially-stable version of an (often inline-literal) props
|
|
91
|
+
* object: the previous reference is kept while the content stays
|
|
92
|
+
* shallow-equal, so downstream memo/context deps don't churn per render.
|
|
93
|
+
*/
|
|
94
|
+
export function useShallowStable(value) {
|
|
95
|
+
var ref = useRef(value);
|
|
96
|
+
if (!shallowEqualObjects(ref.current, value)) {
|
|
97
|
+
ref.current = value;
|
|
98
|
+
}
|
|
99
|
+
return ref.current;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvZm9ybVN0b3JlLmpzIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVJlZHVjZXIiLCJ1c2VSZWYiLCJ1c2VMYXRlc3QiLCJjcmVhdGVGb3JtU3RvcmUiLCJpbml0aWFsVmFsdWVzIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwic3RhdGUiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInRvdWNoZWQiLCJ2YWxpZGF0aW5nIiwibGlzdGVuZXJzIiwiU2V0IiwiZ2V0U3RhdGUiLCJzZXRTdGF0ZSIsInBhdGNoIiwiT2JqZWN0IiwiYXNzaWduIiwiZm9yRWFjaCIsImxpc3RlbmVyIiwic3Vic2NyaWJlIiwiYWRkIiwidXNlU3RvcmVTZWxlY3RvciIsInN0b3JlIiwic2VsZWN0b3IiLCJpc0VxdWFsIiwiaXMiLCJfdXNlUmVkdWNlciIsImNvdW50IiwiX3VzZVJlZHVjZXIyIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JjZVJlbmRlciIsInNlbGVjdGVkIiwibGF0ZXN0UmVmIiwiY2hlY2tGb3JVcGRhdGVzIiwibGF0ZXN0IiwiY3VycmVudCIsIm5leHQiLCJzaGFsbG93RXF1YWxBcnJheXMiLCJhIiwiYiIsImkiLCJzaGFsbG93RXF1YWxPYmplY3RzIiwiYUtleXMiLCJrZXlzIiwiYktleXMiLCJfaSIsIl9hS2V5cyIsImtleSIsInVzZVNoYWxsb3dTdGFibGUiLCJ2YWx1ZSIsInJlZiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUNyRCxPQUFPQyxTQUFTLE1BQU0seUJBQXlCO0FBOEIvQyxPQUFPLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBQSxFQUViO0VBQUEsSUFEYkMsYUFBQSxHQUFBQyxTQUFB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LElBQUk7QUFDYixDQUFDO0FBRUQ7QUN6Q0E7QUFDQTtBQUNBO0FBQ0E7QUQyQ0EsT0FBTSxTQUFVQyxnQkFBZ0JBLENBQStCQyxLQUFRLEVBQUE7RUFDckUsSUFBTUMsR0FBRyxHQUFHckQsTUFBTSxDQUFDb0QsS0FBSyxDQUFDO0VBQ3pCLElBQ0UsQ0FBQ1IsbUJBQW1CLENBQ2xCUyxHQUFHLENBQUNmLE9BQThDLEVBQ2xEYyxLQUE0QyxDQUM3QyxFQUNEO0lBQ0FDLEdBQUcsQ0FBQ2YsT0FBTyxHQUFHYyxLQUFLO0VBQ3JCO0VBQ0EsT0FBT0MsR0FBRyxDQUFDZixPQUFPO0FBQ3BCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2Zvcm1TdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmV4cG9ydCBjb25zdCBjcmVhdGVGb3JtU3RvcmUgPSAoaW5pdGlhbFZhbHVlcyA9IHt9KSA9PiB7XG4gICAgbGV0IHN0YXRlID0ge1xuICAgICAgICB2YWx1ZXM6IGluaXRpYWxWYWx1ZXMsXG4gICAgICAgIGVycm9yczoge30sXG4gICAgICAgIHdhcm5pbmdzOiB7fSxcbiAgICAgICAgdG91Y2hlZDoge30sXG4gICAgICAgIHZhbGlkYXRpbmc6IHt9LFxuICAgIH07XG4gICAgY29uc3QgbGlzdGVuZXJzID0gbmV3IFNldCgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldFN0YXRlOiAoKSA9PiBzdGF0ZSxcbiAgICAgICAgc2V0U3RhdGU6IChwYXRjaCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0YXRlKSwgcGF0Y2gpO1xuICAgICAgICAgICAgbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcigpKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3Vic2NyaWJlOiAobGlzdGVuZXIpID0+IHtcbiAgICAgICAgICAgIGxpc3RlbmVycy5hZGQobGlzdGVuZXIpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuZGVsZXRlKGxpc3RlbmVyKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgfTtcbn07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHVzZVN0b3JlU2VsZWN0b3Ig4oCUIHN1YnNjcmliZSB0byBhIHNlbGVjdGVkIHNsaWNlIG9mIHRoZSBzdG9yZS5cbi8vXG4vLyBUaGUgY29tcG9uZW50IHJlLXJlbmRlcnMgT05MWSB3aGVuIGBpc0VxdWFsKHByZXZTZWxlY3RlZCwgbmV4dFNlbGVjdGVkKWAgaXNcbi8vIGZhbHNlLiBUaGUgc2VsZWN0b3IvZXF1YWxpdHkvc2VsZWN0ZWQgdHJpbyBpcyByZS1jYXB0dXJlZCBpbiBhIHJlZiBvbiBldmVyeVxuLy8gcmVuZGVyLCBzbyBpbmxpbmUgc2VsZWN0b3JzIChjbG9zaW5nIG92ZXIgdGhlIGxhdGVzdCBwcm9wcykgYXJlIHNhZmUuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdG9yZVNlbGVjdG9yKHN0b3JlLCBzZWxlY3RvciwgaXNFcXVhbCA9IE9iamVjdC5pcykge1xuICAgIGNvbnN0IFssIGZvcmNlUmVuZGVyXSA9IHVzZVJlZHVjZXIoKGNvdW50KSA9PiBjb3VudCArIDEsIDApO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0b3Ioc3RvcmUuZ2V0U3RhdGUoKSk7XG4gICAgY29uc3QgbGF0ZXN0UmVmID0gdXNlTGF0ZXN0KHsgc2VsZWN0b3IsIGlzRXF1YWwsIHNlbGVjdGVkIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoZWNrRm9yVXBkYXRlcyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhdGVzdCA9IGxhdGVzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGxhdGVzdC5zZWxlY3RvcihzdG9yZS5nZXRTdGF0ZSgpKTtcbiAgICAgICAgICAgIGlmICghbGF0ZXN0LmlzRXF1YWwobGF0ZXN0LnNlbGVjdGVkLCBuZXh0KSkge1xuICAgICAgICAgICAgICAgIGZvcmNlUmVuZGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIENhdGNoIGNvbW1pdHMgdGhhdCBsYW5kZWQgYmV0d2VlbiByZW5kZXIgYW5kIHN1YnNjcmlwdGlvbi5cbiAgICAgICAgY2hlY2tGb3JVcGRhdGVzKCk7XG4gICAgICAgIHJldHVybiBzdG9yZS5zdWJzY3JpYmUoY2hlY2tGb3JVcGRhdGVzKTtcbiAgICB9LCBbc3RvcmVdKTtcbiAgICByZXR1cm4gc2VsZWN0ZWQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEVxdWFsaXR5IGhlbHBlcnMgZm9yIG11bHRpLXZhbHVlIHNlbGVjdG9ycyAvIHByb3BzIHN0YWJpbGl6YXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGNvbnN0IHNoYWxsb3dFcXVhbEFycmF5cyA9IChhLCBiKSA9PiB7XG4gICAgaWYgKGEgPT09IGIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKCFPYmplY3QuaXMoYVtpXSwgYltpXSkpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufTtcbmV4cG9ydCBjb25zdCBzaGFsbG93RXF1YWxPYmplY3RzID0gKGEsIGIpID0+IHtcbiAgICBpZiAoYSA9PT0gYilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKCFhIHx8ICFiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgYUtleXMgPSBPYmplY3Qua2V5cyhhKTtcbiAgICBjb25zdCBiS2V5cyA9IE9iamVjdC5rZXlzKGIpO1xuICAgIGlmIChhS2V5cy5sZW5ndGggIT09IGJLZXlzLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGFLZXlzKSB7XG4gICAgICAgIGlmICghT2JqZWN0LmlzKGFba2V5XSwgYltrZXldKSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59O1xuLyoqXG4gKiBSZXR1cm4gYSByZWZlcmVudGlhbGx5LXN0YWJsZSB2ZXJzaW9uIG9mIGFuIChvZnRlbiBpbmxpbmUtbGl0ZXJhbCkgcHJvcHNcbiAqIG9iamVjdDogdGhlIHByZXZpb3VzIHJlZmVyZW5jZSBpcyBrZXB0IHdoaWxlIHRoZSBjb250ZW50IHN0YXlzXG4gKiBzaGFsbG93LWVxdWFsLCBzbyBkb3duc3RyZWFtIG1lbW8vY29udGV4dCBkZXBzIGRvbid0IGNodXJuIHBlciByZW5kZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTaGFsbG93U3RhYmxlKHZhbHVlKSB7XG4gICAgY29uc3QgcmVmID0gdXNlUmVmKHZhbHVlKTtcbiAgICBpZiAoIXNoYWxsb3dFcXVhbE9iamVjdHMocmVmLmN1cnJlbnQsIHZhbHVlKSkge1xuICAgICAgICByZWYuY3VycmVudCA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gcmVmLmN1cnJlbnQ7XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import type { FormStore } from '../formStore';
|
|
1
2
|
import type { UseFormConfig, UseFormReturn } from '../interface';
|
|
2
|
-
export declare const useForm: (config?: UseFormConfig) => UseFormReturn
|
|
3
|
+
export declare const useForm: (config?: UseFormConfig) => UseFormReturn & {
|
|
4
|
+
store: FormStore;
|
|
5
|
+
};
|
|
3
6
|
export default useForm;
|