@ehfuse/forma 2.0.9 → 2.1.0
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/README.md +333 -185
- package/dist/contexts/GlobalFormaContext.js +16 -8
- package/dist/contexts/GlobalFormaContext.js.map +1 -1
- package/dist/core/FieldStore.d.ts +41 -0
- package/dist/core/FieldStore.d.ts.map +1 -1
- package/dist/core/FieldStore.js +121 -7
- package/dist/core/FieldStore.js.map +1 -1
- package/dist/esm/contexts/GlobalFormaContext.js +16 -8
- package/dist/esm/contexts/GlobalFormaContext.js.map +1 -1
- package/dist/esm/core/FieldStore.d.ts +41 -0
- package/dist/esm/core/FieldStore.d.ts.map +1 -1
- package/dist/esm/core/FieldStore.js +121 -7
- package/dist/esm/core/FieldStore.js.map +1 -1
- package/dist/esm/hooks/useForm.js +6 -3
- package/dist/esm/hooks/useForm.js.map +1 -1
- package/dist/esm/hooks/useFormaState.d.ts +3 -1
- package/dist/esm/hooks/useFormaState.d.ts.map +1 -1
- package/dist/esm/hooks/useFormaState.js +31 -3
- package/dist/esm/hooks/useFormaState.js.map +1 -1
- package/dist/esm/hooks/useGlobalForm.d.ts +8 -12
- package/dist/esm/hooks/useGlobalForm.d.ts.map +1 -1
- package/dist/esm/hooks/useGlobalForm.js +36 -2
- package/dist/esm/hooks/useGlobalForm.js.map +1 -1
- package/dist/esm/hooks/useGlobalFormaState.d.ts +8 -72
- package/dist/esm/hooks/useGlobalFormaState.d.ts.map +1 -1
- package/dist/esm/hooks/useGlobalFormaState.js +8 -2
- package/dist/esm/hooks/useGlobalFormaState.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -44
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/form.d.ts +18 -0
- package/dist/esm/types/form.d.ts.map +1 -1
- package/dist/esm/types/globalForm.d.ts +23 -2
- package/dist/esm/types/globalForm.d.ts.map +1 -1
- package/dist/esm/types/globalForm.js.map +1 -1
- package/dist/hooks/useForm.js +6 -3
- package/dist/hooks/useForm.js.map +1 -1
- package/dist/hooks/useFormaState.d.ts +3 -1
- package/dist/hooks/useFormaState.d.ts.map +1 -1
- package/dist/hooks/useFormaState.js +31 -3
- package/dist/hooks/useFormaState.js.map +1 -1
- package/dist/hooks/useGlobalForm.d.ts +8 -12
- package/dist/hooks/useGlobalForm.d.ts.map +1 -1
- package/dist/hooks/useGlobalForm.js +36 -2
- package/dist/hooks/useGlobalForm.js.map +1 -1
- package/dist/hooks/useGlobalFormaState.d.ts +8 -72
- package/dist/hooks/useGlobalFormaState.d.ts.map +1 -1
- package/dist/hooks/useGlobalFormaState.js +8 -2
- package/dist/hooks/useGlobalFormaState.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -67
- package/dist/index.js.map +1 -1
- package/dist/types/form.d.ts +18 -0
- package/dist/types/form.d.ts.map +1 -1
- package/dist/types/globalForm.d.ts +23 -2
- package/dist/types/globalForm.d.ts.map +1 -1
- package/dist/types/globalForm.js.map +1 -1
- package/package.json +4 -10
- package/dist/esm/index.min.js +0 -28
- package/dist/index.min.js +0 -28
|
@@ -44,10 +44,15 @@ const utils_1 = require("../utils");
|
|
|
44
44
|
* Focuses only on data sharing; initial values and submission/validation logic handled by individual components
|
|
45
45
|
*
|
|
46
46
|
* @template T 폼 데이터의 타입 / Form data type
|
|
47
|
-
* @param
|
|
47
|
+
* @param propsOrFormId 글로벌 폼 설정 옵션 또는 formId 문자열 / Global form configuration options or formId string
|
|
48
48
|
* @returns 글로벌 폼 관리 API 객체 / Global form management API object
|
|
49
49
|
*/
|
|
50
|
-
function useGlobalForm(
|
|
50
|
+
function useGlobalForm(propsOrFormId) {
|
|
51
|
+
// 문자열로 전달된 경우 props 객체로 변환
|
|
52
|
+
const props = typeof propsOrFormId === "string"
|
|
53
|
+
? { formId: propsOrFormId }
|
|
54
|
+
: propsOrFormId;
|
|
55
|
+
const { formId, initialValues, autoCleanup = true, onSubmit, onValidate, onComplete, actions, watch, } = props;
|
|
51
56
|
const context = (0, react_1.useContext)(GlobalFormaContext_1.GlobalFormaContext);
|
|
52
57
|
// Context가 제대로 설정되지 않았을 때 명확한 에러 표시
|
|
53
58
|
// Show clear error when Context is not properly configured
|
|
@@ -135,6 +140,35 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (formId: ${f
|
|
|
135
140
|
}
|
|
136
141
|
return undefined;
|
|
137
142
|
}, [formId, autoCleanup, incrementRef, decrementRef]);
|
|
143
|
+
// Watch 등록 / Register watchers
|
|
144
|
+
(0, react_1.useEffect)(() => {
|
|
145
|
+
if (!watch)
|
|
146
|
+
return;
|
|
147
|
+
const unsubscribers = [];
|
|
148
|
+
Object.entries(watch).forEach(([path, handler]) => {
|
|
149
|
+
const actionContext = {
|
|
150
|
+
getValue: (p) => store.getValue(p),
|
|
151
|
+
setValue: (p, value) => store.setValue(p, value),
|
|
152
|
+
getValues: () => store.getValues(),
|
|
153
|
+
setValues: (values) => store.setValues(values),
|
|
154
|
+
reset: () => store.reset(),
|
|
155
|
+
submit: form.submit,
|
|
156
|
+
values: store.getValues(),
|
|
157
|
+
actions: globalActions || {},
|
|
158
|
+
};
|
|
159
|
+
const unsubscribe = store.watch(path, (value, prevValue) => {
|
|
160
|
+
// context 업데이트 (최신 값) / Update context with latest values
|
|
161
|
+
actionContext.values = store.getValues();
|
|
162
|
+
actionContext.actions = getActions(formId) || {};
|
|
163
|
+
handler(actionContext, value, prevValue);
|
|
164
|
+
});
|
|
165
|
+
unsubscribers.push(unsubscribe);
|
|
166
|
+
});
|
|
167
|
+
// cleanup
|
|
168
|
+
return () => {
|
|
169
|
+
unsubscribers.forEach((unsub) => unsub());
|
|
170
|
+
};
|
|
171
|
+
}, [formId, watch, store, globalActions, getActions, form.submit]);
|
|
138
172
|
return {
|
|
139
173
|
...form,
|
|
140
174
|
formId, // 글로벌 폼 ID 추가 제공 / Provide additional global form ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalForm.js","sourceRoot":"","sources":["../../hooks/useGlobalForm.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;
|
|
1
|
+
{"version":3,"file":"useGlobalForm.js","sourceRoot":"","sources":["../../hooks/useGlobalForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,77 +29,13 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { UseGlobalFormaStateProps, UseGlobalFormaStateReturn } from "../types/globalForm";
|
|
31
31
|
/**
|
|
32
|
-
* 글로벌 FormaState 관리 훅
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* @template T FormaState 데이터의 타입 / FormaState data type
|
|
41
|
-
* @param props 글로벌 FormaState 설정 옵션 / Global FormaState configuration options
|
|
42
|
-
* @returns 글로벌 FormaState 관리 API 객체 / Global FormaState management API object
|
|
43
|
-
*
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* // 글로벌 상태 정의
|
|
47
|
-
* interface AppState {
|
|
48
|
-
* user: { name: string; email: string };
|
|
49
|
-
* settings: { theme: 'light' | 'dark'; notifications: boolean };
|
|
50
|
-
* cart: { items: any[]; total: number };
|
|
51
|
-
* }
|
|
52
|
-
*
|
|
53
|
-
* // 컴포넌트 A - 사용자 정보만 구독
|
|
54
|
-
* function UserProfile() {
|
|
55
|
-
* const state = useGlobalFormaState<AppState>({ stateId: 'app-state' });
|
|
56
|
-
* const userName = state.useValue('user.name'); // name 변경시만 리렌더
|
|
57
|
-
* const userEmail = state.useValue('user.email'); // email 변경시만 리렌더
|
|
58
|
-
*
|
|
59
|
-
* return (
|
|
60
|
-
* <div>
|
|
61
|
-
* <h1>{userName}</h1>
|
|
62
|
-
* <p>{userEmail}</p>
|
|
63
|
-
* <button onClick={() => state.setValue('user.name', 'New Name')}>
|
|
64
|
-
* Update Name
|
|
65
|
-
* </button>
|
|
66
|
-
* </div>
|
|
67
|
-
* );
|
|
68
|
-
* }
|
|
69
|
-
*
|
|
70
|
-
* // 컴포넌트 B - 설정만 구독
|
|
71
|
-
* function Settings() {
|
|
72
|
-
* const state = useGlobalFormaState<AppState>({ stateId: 'app-state' });
|
|
73
|
-
* const theme = state.useValue('settings.theme'); // theme 변경시만 리렌더
|
|
74
|
-
* const notifications = state.useValue('settings.notifications'); // notifications 변경시만 리렌더
|
|
75
|
-
*
|
|
76
|
-
* return (
|
|
77
|
-
* <div>
|
|
78
|
-
* <select
|
|
79
|
-
* value={theme}
|
|
80
|
-
* onChange={(e) => state.setValue('settings.theme', e.target.value)}
|
|
81
|
-
* >
|
|
82
|
-
* <option value="light">Light</option>
|
|
83
|
-
* <option value="dark">Dark</option>
|
|
84
|
-
* </select>
|
|
85
|
-
* </div>
|
|
86
|
-
* );
|
|
87
|
-
* }
|
|
88
|
-
*
|
|
89
|
-
* // 컴포넌트 C - 장바구니만 구독
|
|
90
|
-
* function Cart() {
|
|
91
|
-
* const state = useGlobalFormaState<AppState>({ stateId: 'app-state' });
|
|
92
|
-
* const cartItems = state.useValue('cart.items'); // cart.items 변경시만 리렌더
|
|
93
|
-
* const cartTotal = state.useValue('cart.total'); // cart.total 변경시만 리렌더
|
|
94
|
-
*
|
|
95
|
-
* return (
|
|
96
|
-
* <div>
|
|
97
|
-
* <h2>Cart ({cartItems.length} items)</h2>
|
|
98
|
-
* <p>Total: ${cartTotal}</p>
|
|
99
|
-
* </div>
|
|
100
|
-
* );
|
|
101
|
-
* }
|
|
102
|
-
* ```
|
|
32
|
+
* 글로벌 FormaState 관리 훅 (오버로드 1: 전체 옵션)
|
|
33
|
+
* Global FormaState management hook (Overload 1: Full options)
|
|
34
|
+
*/
|
|
35
|
+
export declare function useGlobalFormaState<T extends Record<string, any>>(props: UseGlobalFormaStateProps<T>): UseGlobalFormaStateReturn<T>;
|
|
36
|
+
/**
|
|
37
|
+
* 글로벌 FormaState 관리 훅 (오버로드 2: stateId만)
|
|
38
|
+
* Global FormaState management hook (Overload 2: stateId only)
|
|
103
39
|
*/
|
|
104
|
-
export declare function useGlobalFormaState<T extends Record<string, any>>(
|
|
40
|
+
export declare function useGlobalFormaState<T extends Record<string, any>>(stateId: string): UseGlobalFormaStateReturn<T>;
|
|
105
41
|
//# sourceMappingURL=useGlobalFormaState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalFormaState.d.ts","sourceRoot":"","sources":["../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EACH,wBAAwB,EACxB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"useGlobalFormaState.d.ts","sourceRoot":"","sources":["../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EACH,wBAAwB,EACxB,yBAAyB,EAE5B,MAAM,qBAAqB,CAAC;AAI7B;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7D,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,GACnC,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7D,OAAO,EAAE,MAAM,GAChB,yBAAyB,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -44,7 +44,7 @@ const utils_1 = require("../utils");
|
|
|
44
44
|
* Focuses only on data sharing and provides optimized rendering by subscribing only to necessary fields in each component
|
|
45
45
|
*
|
|
46
46
|
* @template T FormaState 데이터의 타입 / FormaState data type
|
|
47
|
-
* @param
|
|
47
|
+
* @param propsOrStateId 글로벌 FormaState 설정 옵션 또는 stateId 문자열 / Global FormaState configuration options or stateId string
|
|
48
48
|
* @returns 글로벌 FormaState 관리 API 객체 / Global FormaState management API object
|
|
49
49
|
*
|
|
50
50
|
* @example
|
|
@@ -107,7 +107,12 @@ const utils_1 = require("../utils");
|
|
|
107
107
|
* }
|
|
108
108
|
* ```
|
|
109
109
|
*/
|
|
110
|
-
function useGlobalFormaState(
|
|
110
|
+
function useGlobalFormaState(propsOrStateId) {
|
|
111
|
+
// 문자열로 전달된 경우 props 객체로 변환
|
|
112
|
+
const props = typeof propsOrStateId === "string"
|
|
113
|
+
? { stateId: propsOrStateId }
|
|
114
|
+
: propsOrStateId;
|
|
115
|
+
const { stateId, initialValues, autoCleanup = true, actions, watch, } = props;
|
|
111
116
|
const context = (0, react_1.useContext)(GlobalFormaContext_1.GlobalFormaContext);
|
|
112
117
|
// 참조 등록 상태를 추적하는 ref 추가 + 컴포넌트 고유 ID
|
|
113
118
|
const isRegisteredRef = (0, react_1.useRef)(false);
|
|
@@ -161,6 +166,7 @@ Details: GlobalFormaContext must be used within GlobalFormaProvider (stateId: ${
|
|
|
161
166
|
const formaState = (0, useFormaState_1.useFormaState)(initialValues || {}, {
|
|
162
167
|
_externalStore: store,
|
|
163
168
|
actions: effectiveActions,
|
|
169
|
+
watch, // watch 옵션 전달
|
|
164
170
|
});
|
|
165
171
|
// 초기값이 있고 스토어가 비어있다면 초기값 설정 (올바른 방법으로)
|
|
166
172
|
// Set initial values if provided and store is empty (using proper method)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGlobalFormaState.js","sourceRoot":"","sources":["../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;
|
|
1
|
+
{"version":3,"file":"useGlobalFormaState.js","sourceRoot":"","sources":["../../hooks/useGlobalFormaState.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export { getNestedValue, setNestedValue } from "./utils/dotNotation";
|
|
|
42
42
|
export { isDevelopment, devWarn, devError, devLog } from "./utils/environment";
|
|
43
43
|
export type { UseFormProps, UseFormReturn, FormValidationResult, FormChangeEvent, ActionContext, Actions, } from "./types/form";
|
|
44
44
|
export type { UseFormaStateOptions, UseFormaStateReturn, } from "./hooks/useFormaState";
|
|
45
|
-
export type { UseGlobalFormProps, UseGlobalFormReturn, UseGlobalFormaStateProps, UseGlobalFormaStateReturn, UseRegisterGlobalFormProps, UseRegisterGlobalFormReturn, UseRegisterGlobalFormaStateProps, UseRegisterGlobalFormaStateReturn, UseUnregisterGlobalFormReturn, UseUnregisterGlobalFormaStateReturn, GlobalFormaProviderProps, GlobalFormaContextType, GlobalFormStoreMap, GlobalFormMetadata, GlobalFormEvent, GlobalFormEventListener, GlobalFormConfig, GlobalFormMiddleware, ExtendedGlobalFormaProviderProps, } from "./types/globalForm";
|
|
45
|
+
export type { UseGlobalFormProps, UseGlobalFormReturn, UseGlobalFormaStateProps, UseGlobalFormaStateSimpleProps, UseGlobalFormaStateReturn, UseRegisterGlobalFormProps, UseRegisterGlobalFormReturn, UseRegisterGlobalFormaStateProps, UseRegisterGlobalFormaStateReturn, UseUnregisterGlobalFormReturn, UseUnregisterGlobalFormaStateReturn, GlobalFormaProviderProps, GlobalFormaContextType, GlobalFormStoreMap, GlobalFormMetadata, GlobalFormEvent, GlobalFormEventListener, GlobalFormConfig, GlobalFormMiddleware, ExtendedGlobalFormaProviderProps, } from "./types/globalForm";
|
|
46
46
|
export type { BreakpointState, UseBreakpointReturn } from "./types/breakpoint";
|
|
47
47
|
/**
|
|
48
48
|
* Forma library version
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI/E,YAAY,EACR,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,OAAO,GACV,MAAM,cAAc,CAAC;AAGtB,YAAY,EACR,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,mCAAmC,EACnC,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,gCAAgC,GACnC,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAejB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EACH,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI/E,YAAY,EACR,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,OAAO,GACV,MAAM,cAAc,CAAC;AAGtB,YAAY,EACR,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACR,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,mCAAmC,EACnC,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,gCAAgC,GACnC,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAejB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
"use strict"
|
|
2
|
-
/**
|
|
1
|
+
"use strict";/**
|
|
3
2
|
* index.ts
|
|
4
3
|
*
|
|
5
4
|
* Forma - Advanced React form state management library
|
|
@@ -26,68 +25,4 @@
|
|
|
26
25
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
26
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
27
|
* SOFTWARE.
|
|
29
|
-
*/
|
|
30
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.FORMA_METADATA = exports.FORMA_VERSION = exports.devLog = exports.devError = exports.devWarn = exports.isDevelopment = exports.setNestedValue = exports.getNestedValue = exports.FieldStore = exports.GlobalFormaProvider = exports.GlobalFormaContext = exports.useBreakpoint = exports.useModal = exports.useUnregisterGlobalFormaState = exports.useRegisterGlobalFormaState = exports.useGlobalFormaState = exports.useFieldSubscription = exports.useFormaState = exports.useUnregisterGlobalForm = exports.useRegisterGlobalForm = exports.useGlobalForm = exports.useForm = void 0;
|
|
32
|
-
// ===== Core Hooks =====
|
|
33
|
-
var useForm_1 = require("./hooks/useForm");
|
|
34
|
-
Object.defineProperty(exports, "useForm", { enumerable: true, get: function () { return useForm_1.useForm; } });
|
|
35
|
-
var useGlobalForm_1 = require("./hooks/useGlobalForm");
|
|
36
|
-
Object.defineProperty(exports, "useGlobalForm", { enumerable: true, get: function () { return useGlobalForm_1.useGlobalForm; } });
|
|
37
|
-
var useRegisterGlobalForm_1 = require("./hooks/useRegisterGlobalForm");
|
|
38
|
-
Object.defineProperty(exports, "useRegisterGlobalForm", { enumerable: true, get: function () { return useRegisterGlobalForm_1.useRegisterGlobalForm; } });
|
|
39
|
-
var useUnregisterGlobalForm_1 = require("./hooks/useUnregisterGlobalForm");
|
|
40
|
-
Object.defineProperty(exports, "useUnregisterGlobalForm", { enumerable: true, get: function () { return useUnregisterGlobalForm_1.useUnregisterGlobalForm; } });
|
|
41
|
-
var useFormaState_1 = require("./hooks/useFormaState");
|
|
42
|
-
Object.defineProperty(exports, "useFormaState", { enumerable: true, get: function () { return useFormaState_1.useFormaState; } });
|
|
43
|
-
Object.defineProperty(exports, "useFieldSubscription", { enumerable: true, get: function () { return useFormaState_1.useFieldSubscription; } });
|
|
44
|
-
var useGlobalFormaState_1 = require("./hooks/useGlobalFormaState");
|
|
45
|
-
Object.defineProperty(exports, "useGlobalFormaState", { enumerable: true, get: function () { return useGlobalFormaState_1.useGlobalFormaState; } });
|
|
46
|
-
var useRegisterGlobalFormaState_1 = require("./hooks/useRegisterGlobalFormaState");
|
|
47
|
-
Object.defineProperty(exports, "useRegisterGlobalFormaState", { enumerable: true, get: function () { return useRegisterGlobalFormaState_1.useRegisterGlobalFormaState; } });
|
|
48
|
-
var useUnregisterGlobalFormaState_1 = require("./hooks/useUnregisterGlobalFormaState");
|
|
49
|
-
Object.defineProperty(exports, "useUnregisterGlobalFormaState", { enumerable: true, get: function () { return useUnregisterGlobalFormaState_1.useUnregisterGlobalFormaState; } });
|
|
50
|
-
var useModal_1 = require("./hooks/useModal");
|
|
51
|
-
Object.defineProperty(exports, "useModal", { enumerable: true, get: function () { return useModal_1.useModal; } });
|
|
52
|
-
var useBreakpoint_1 = require("./hooks/useBreakpoint");
|
|
53
|
-
Object.defineProperty(exports, "useBreakpoint", { enumerable: true, get: function () { return useBreakpoint_1.useBreakpoint; } });
|
|
54
|
-
// ===== Context & Providers =====
|
|
55
|
-
var GlobalFormaContext_1 = require("./contexts/GlobalFormaContext");
|
|
56
|
-
Object.defineProperty(exports, "GlobalFormaContext", { enumerable: true, get: function () { return GlobalFormaContext_1.GlobalFormaContext; } });
|
|
57
|
-
Object.defineProperty(exports, "GlobalFormaProvider", { enumerable: true, get: function () { return GlobalFormaContext_1.GlobalFormaProvider; } });
|
|
58
|
-
// ===== Core Classes =====
|
|
59
|
-
var FieldStore_1 = require("./core/FieldStore");
|
|
60
|
-
Object.defineProperty(exports, "FieldStore", { enumerable: true, get: function () { return FieldStore_1.FieldStore; } });
|
|
61
|
-
// ===== Utility Functions =====
|
|
62
|
-
var dotNotation_1 = require("./utils/dotNotation");
|
|
63
|
-
Object.defineProperty(exports, "getNestedValue", { enumerable: true, get: function () { return dotNotation_1.getNestedValue; } });
|
|
64
|
-
Object.defineProperty(exports, "setNestedValue", { enumerable: true, get: function () { return dotNotation_1.setNestedValue; } });
|
|
65
|
-
var environment_1 = require("./utils/environment");
|
|
66
|
-
Object.defineProperty(exports, "isDevelopment", { enumerable: true, get: function () { return environment_1.isDevelopment; } });
|
|
67
|
-
Object.defineProperty(exports, "devWarn", { enumerable: true, get: function () { return environment_1.devWarn; } });
|
|
68
|
-
Object.defineProperty(exports, "devError", { enumerable: true, get: function () { return environment_1.devError; } });
|
|
69
|
-
Object.defineProperty(exports, "devLog", { enumerable: true, get: function () { return environment_1.devLog; } });
|
|
70
|
-
/**
|
|
71
|
-
* Forma library version
|
|
72
|
-
*/
|
|
73
|
-
exports.FORMA_VERSION = "1.0.0";
|
|
74
|
-
/**
|
|
75
|
-
* Forma library metadata
|
|
76
|
-
*/
|
|
77
|
-
exports.FORMA_METADATA = {
|
|
78
|
-
name: "Forma",
|
|
79
|
-
version: exports.FORMA_VERSION,
|
|
80
|
-
description: "Advanced React form state management library",
|
|
81
|
-
author: "KIM YOUNG JIN (Kim Young Jin)",
|
|
82
|
-
email: "ehfuse@gmail.com",
|
|
83
|
-
license: "MIT",
|
|
84
|
-
features: [
|
|
85
|
-
"Optimized re-rendering with individual field subscriptions",
|
|
86
|
-
"Nested object handling with dot notation support",
|
|
87
|
-
"Full compatibility with MUI components",
|
|
88
|
-
"Global form state management",
|
|
89
|
-
"Complete TypeScript support",
|
|
90
|
-
"Leveraging latest React 19 features",
|
|
91
|
-
],
|
|
92
|
-
};
|
|
93
|
-
//# sourceMappingURL=index.js.map
|
|
28
|
+
*/Object.defineProperty(exports,"__esModule",{value:!0}),exports.FORMA_METADATA=exports.FORMA_VERSION=exports.devLog=exports.devError=exports.devWarn=exports.isDevelopment=exports.setNestedValue=exports.getNestedValue=exports.FieldStore=exports.GlobalFormaProvider=exports.GlobalFormaContext=exports.useBreakpoint=exports.useModal=exports.useUnregisterGlobalFormaState=exports.useRegisterGlobalFormaState=exports.useGlobalFormaState=exports.useFieldSubscription=exports.useFormaState=exports.useUnregisterGlobalForm=exports.useRegisterGlobalForm=exports.useGlobalForm=exports.useForm=void 0;var useForm_1=require("./hooks/useForm");Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return useForm_1.useForm}});var useGlobalForm_1=require("./hooks/useGlobalForm");Object.defineProperty(exports,"useGlobalForm",{enumerable:!0,get:function(){return useGlobalForm_1.useGlobalForm}});var useRegisterGlobalForm_1=require("./hooks/useRegisterGlobalForm");Object.defineProperty(exports,"useRegisterGlobalForm",{enumerable:!0,get:function(){return useRegisterGlobalForm_1.useRegisterGlobalForm}});var useUnregisterGlobalForm_1=require("./hooks/useUnregisterGlobalForm");Object.defineProperty(exports,"useUnregisterGlobalForm",{enumerable:!0,get:function(){return useUnregisterGlobalForm_1.useUnregisterGlobalForm}});var useFormaState_1=require("./hooks/useFormaState");Object.defineProperty(exports,"useFormaState",{enumerable:!0,get:function(){return useFormaState_1.useFormaState}}),Object.defineProperty(exports,"useFieldSubscription",{enumerable:!0,get:function(){return useFormaState_1.useFieldSubscription}});var useGlobalFormaState_1=require("./hooks/useGlobalFormaState");Object.defineProperty(exports,"useGlobalFormaState",{enumerable:!0,get:function(){return useGlobalFormaState_1.useGlobalFormaState}});var useRegisterGlobalFormaState_1=require("./hooks/useRegisterGlobalFormaState");Object.defineProperty(exports,"useRegisterGlobalFormaState",{enumerable:!0,get:function(){return useRegisterGlobalFormaState_1.useRegisterGlobalFormaState}});var useUnregisterGlobalFormaState_1=require("./hooks/useUnregisterGlobalFormaState");Object.defineProperty(exports,"useUnregisterGlobalFormaState",{enumerable:!0,get:function(){return useUnregisterGlobalFormaState_1.useUnregisterGlobalFormaState}});var useModal_1=require("./hooks/useModal");Object.defineProperty(exports,"useModal",{enumerable:!0,get:function(){return useModal_1.useModal}});var useBreakpoint_1=require("./hooks/useBreakpoint");Object.defineProperty(exports,"useBreakpoint",{enumerable:!0,get:function(){return useBreakpoint_1.useBreakpoint}});var GlobalFormaContext_1=require("./contexts/GlobalFormaContext");Object.defineProperty(exports,"GlobalFormaContext",{enumerable:!0,get:function(){return GlobalFormaContext_1.GlobalFormaContext}}),Object.defineProperty(exports,"GlobalFormaProvider",{enumerable:!0,get:function(){return GlobalFormaContext_1.GlobalFormaProvider}});var FieldStore_1=require("./core/FieldStore");Object.defineProperty(exports,"FieldStore",{enumerable:!0,get:function(){return FieldStore_1.FieldStore}});var dotNotation_1=require("./utils/dotNotation");Object.defineProperty(exports,"getNestedValue",{enumerable:!0,get:function(){return dotNotation_1.getNestedValue}}),Object.defineProperty(exports,"setNestedValue",{enumerable:!0,get:function(){return dotNotation_1.setNestedValue}});var environment_1=require("./utils/environment");Object.defineProperty(exports,"isDevelopment",{enumerable:!0,get:function(){return environment_1.isDevelopment}}),Object.defineProperty(exports,"devWarn",{enumerable:!0,get:function(){return environment_1.devWarn}}),Object.defineProperty(exports,"devError",{enumerable:!0,get:function(){return environment_1.devError}}),Object.defineProperty(exports,"devLog",{enumerable:!0,get:function(){return environment_1.devLog}}),exports.FORMA_VERSION="1.0.0",exports.FORMA_METADATA={name:"Forma",version:exports.FORMA_VERSION,description:"Advanced React form state management library",author:"KIM YOUNG JIN (Kim Young Jin)",email:"ehfuse@gmail.com",license:"MIT",features:["Optimized re-rendering with individual field subscriptions","Nested object handling with dot notation support","Full compatibility with MUI components","Global form state management","Complete TypeScript support","Leveraging latest React 19 features"]};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAEH,yBAAyB;AACzB,2CAA0C;AAAjC,kGAAA,OAAO,OAAA;AAChB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AACtB,uEAAsE;AAA7D,8HAAA,qBAAqB,OAAA;AAC9B,2EAA0E;AAAjE,kIAAA,uBAAuB,OAAA;AAChC,uDAA4E;AAAnE,8GAAA,aAAa,OAAA;AAAE,qHAAA,oBAAoB,OAAA;AAC5C,mEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAC5B,mFAAkF;AAAzE,0IAAA,2BAA2B,OAAA;AACpC,uFAAsF;AAA7E,8IAAA,6BAA6B,OAAA;AACtC,6CAA4C;AAAnC,oGAAA,QAAQ,OAAA;AACjB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAEtB,kCAAkC;AAClC,oEAGuC;AAFnC,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AAGvB,2BAA2B;AAC3B,gDAA+C;AAAtC,wGAAA,UAAU,OAAA;AAEnB,gCAAgC;AAChC,mDAAqE;AAA5D,6GAAA,cAAc,OAAA;AAAE,6GAAA,cAAc,OAAA;AACvC,mDAA+E;AAAtE,4GAAA,aAAa,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,qGAAA,MAAM,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAEH,yBAAyB;AACzB,2CAA0C;AAAjC,kGAAA,OAAO,OAAA;AAChB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AACtB,uEAAsE;AAA7D,8HAAA,qBAAqB,OAAA;AAC9B,2EAA0E;AAAjE,kIAAA,uBAAuB,OAAA;AAChC,uDAA4E;AAAnE,8GAAA,aAAa,OAAA;AAAE,qHAAA,oBAAoB,OAAA;AAC5C,mEAAkE;AAAzD,0HAAA,mBAAmB,OAAA;AAC5B,mFAAkF;AAAzE,0IAAA,2BAA2B,OAAA;AACpC,uFAAsF;AAA7E,8IAAA,6BAA6B,OAAA;AACtC,6CAA4C;AAAnC,oGAAA,QAAQ,OAAA;AACjB,uDAAsD;AAA7C,8GAAA,aAAa,OAAA;AAEtB,kCAAkC;AAClC,oEAGuC;AAFnC,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AAGvB,2BAA2B;AAC3B,gDAA+C;AAAtC,wGAAA,UAAU,OAAA;AAEnB,gCAAgC;AAChC,mDAAqE;AAA5D,6GAAA,cAAc,OAAA;AAAE,6GAAA,cAAc,OAAA;AACvC,mDAA+E;AAAtE,4GAAA,aAAa,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,qGAAA,MAAM,OAAA;AA8CjD;;GAEG;AACU,QAAA,aAAa,GAAG,OAAO,CAAC;AAErC;;GAEG;AACU,QAAA,cAAc,GAAG;IAC1B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,qBAAa;IACtB,WAAW,EAAE,8CAA8C;IAC3D,MAAM,EAAE,+BAA+B;IACvC,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE;QACN,4DAA4D;QAC5D,kDAAkD;QAClD,wCAAwC;QACxC,8BAA8B;QAC9B,6BAA6B;QAC7B,qCAAqC;KACxC;CACK,CAAC"}
|
package/dist/types/form.d.ts
CHANGED
|
@@ -63,6 +63,8 @@ export interface UseFormProps<T extends Record<string, any>> {
|
|
|
63
63
|
onComplete?: (values: T) => void;
|
|
64
64
|
/** 사용자 정의 액션 함수들 (객체 또는 배열로 전달 가능) | User-defined action functions (can be object or array) */
|
|
65
65
|
actions?: Actions<T> | Actions<T>[];
|
|
66
|
+
/** Watch 콜백 - 특정 경로 변경 감지 (와일드카드 지원) | Watch callbacks - Detect specific path changes (wildcard supported) */
|
|
67
|
+
watch?: WatchOptions<T>;
|
|
66
68
|
/** 내부 API - 전역 상태용 외부 스토어 | Internal API - external store for global state */
|
|
67
69
|
_externalStore?: FieldStore<T>;
|
|
68
70
|
}
|
|
@@ -80,6 +82,8 @@ export interface UseFormPropsOptional<T extends Record<string, any> = Record<str
|
|
|
80
82
|
onComplete?: (values: T) => void;
|
|
81
83
|
/** 사용자 정의 액션 함수들 (객체 또는 배열로 전달 가능) | User-defined action functions (can be object or array) */
|
|
82
84
|
actions?: Actions<T> | Actions<T>[];
|
|
85
|
+
/** Watch 콜백 - 특정 경로 변경 감지 (와일드카드 지원) | Watch callbacks - Detect specific path changes (wildcard supported) */
|
|
86
|
+
watch?: WatchOptions<T>;
|
|
83
87
|
/** 내부 API - 전역 상태용 외부 스토어 | Internal API - external store for global state */
|
|
84
88
|
_externalStore?: FieldStore<T>;
|
|
85
89
|
}
|
|
@@ -137,6 +141,20 @@ export interface FormValidationResult {
|
|
|
137
141
|
/** 전체 에러 메시지 | Overall error message */
|
|
138
142
|
message?: string;
|
|
139
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Watch Callback - 특정 경로의 값이 변경될 때 호출되는 콜백
|
|
146
|
+
* Watch callback - Called when a value at a specific path changes
|
|
147
|
+
*/
|
|
148
|
+
export type WatchCallback<T extends Record<string, any>> = (context: ActionContext<T>, value: any, prevValue: any) => void | Promise<void>;
|
|
149
|
+
/**
|
|
150
|
+
* Watch Options - 경로별 watch 콜백 설정
|
|
151
|
+
* Watch options - Watch callbacks by path
|
|
152
|
+
*
|
|
153
|
+
* Supports wildcard patterns:
|
|
154
|
+
* - "todos.*.completed" matches todos.0.completed, todos.1.completed, etc.
|
|
155
|
+
* - "*" matches all paths
|
|
156
|
+
*/
|
|
157
|
+
export type WatchOptions<T extends Record<string, any>> = Record<string, WatchCallback<T>>;
|
|
140
158
|
/**
|
|
141
159
|
* Action Context - actions 함수에 전달되는 컨텍스트 객체
|
|
142
160
|
* Context object passed to action functions
|
package/dist/types/form.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../types/form.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../types/form.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import { ReactNode } from "react";
|
|
29
29
|
import { FieldStore } from "../core/FieldStore";
|
|
30
|
-
import { UseFormReturn, Actions } from "./form";
|
|
30
|
+
import { UseFormReturn, Actions, ActionContext } from "./form";
|
|
31
31
|
import { UseFormaStateReturn } from "../hooks/useFormaState";
|
|
32
32
|
/**
|
|
33
33
|
* 글로벌 Forma Provider Props | Global Forma provider props
|
|
@@ -54,9 +54,21 @@ export interface UseGlobalFormProps<T extends Record<string, any>> {
|
|
|
54
54
|
onComplete?: (values: T) => void;
|
|
55
55
|
/** 커스텀 액션 (computed getter 및 handler) - 객체 또는 배열로 전달 가능 | Custom actions (computed getters and handlers) - can be object or array */
|
|
56
56
|
actions?: Actions<T> | Actions<T>[];
|
|
57
|
+
/** 필드 변경 감시 | Watch field changes */
|
|
58
|
+
watch?: WatchConfig<T>;
|
|
57
59
|
}
|
|
58
60
|
/**
|
|
59
|
-
*
|
|
61
|
+
* Watch Handler 타입 | Watch handler type
|
|
62
|
+
*/
|
|
63
|
+
export type WatchHandler<T extends Record<string, any>> = (context: ActionContext<T>, value: any, prevValue: any | undefined) => void | Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Watch Config 타입 | Watch config type
|
|
66
|
+
*/
|
|
67
|
+
export type WatchConfig<T extends Record<string, any>> = {
|
|
68
|
+
[path: string]: WatchHandler<T>;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* useGlobalFormaState 훅의 Props 타입 (전체 옵션) | useGlobalFormaState hook Props type (full options)
|
|
60
72
|
* 글로벌 FormaState는 개별 필드 구독 기반 전역 상태 관리에 집중 | Global FormaState focuses on global state management with individual field subscriptions
|
|
61
73
|
*/
|
|
62
74
|
export interface UseGlobalFormaStateProps<T extends Record<string, any>> {
|
|
@@ -68,6 +80,15 @@ export interface UseGlobalFormaStateProps<T extends Record<string, any>> {
|
|
|
68
80
|
autoCleanup?: boolean;
|
|
69
81
|
/** 커스텀 액션 (computed getter 및 handler) - 객체 또는 배열로 전달 가능 | Custom actions (computed getters and handlers) - can be object or array */
|
|
70
82
|
actions?: Actions<T> | Actions<T>[];
|
|
83
|
+
/** 필드 변경 감시 | Watch field changes */
|
|
84
|
+
watch?: WatchConfig<T>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* useGlobalFormaState 훅의 Props 타입 (간단 버전 - stateId만) | useGlobalFormaState hook Props type (simple version - stateId only)
|
|
88
|
+
*/
|
|
89
|
+
export interface UseGlobalFormaStateSimpleProps {
|
|
90
|
+
/** 전역에서 상태를 식별하는 고유 ID | Unique ID to identify state globally */
|
|
91
|
+
stateId: string;
|
|
71
92
|
}
|
|
72
93
|
/**
|
|
73
94
|
* useGlobalForm 훅의 반환 타입 | useGlobalForm hook return type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalForm.d.ts","sourceRoot":"","sources":["../../types/globalForm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"globalForm.d.ts","sourceRoot":"","sources":["../../types/globalForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalForm.js","sourceRoot":"","sources":["../../types/globalForm.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;
|
|
1
|
+
{"version":3,"file":"globalForm.js","sourceRoot":"","sources":["../../types/globalForm.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AA6QH;;GAEG;AACH,MAAa,eAAgB,SAAQ,KAAK;IACtC,YACI,OAAe,EACR,MAAe,EACf,SAAkB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,WAAM,GAAN,MAAM,CAAS;QACf,cAAS,GAAT,SAAS,CAAS;QAGzB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAClC,CAAC;CACJ;AATD,0CASC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ehfuse/forma",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Advanced React state management library with individual field subscriptions - supports both forms and general state management with useFormaState",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -10,11 +10,6 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/esm/index.js",
|
|
12
12
|
"require": "./dist/index.js"
|
|
13
|
-
},
|
|
14
|
-
"./min": {
|
|
15
|
-
"types": "./dist/index.d.ts",
|
|
16
|
-
"import": "./dist/esm/index.min.js",
|
|
17
|
-
"require": "./dist/index.min.js"
|
|
18
13
|
}
|
|
19
14
|
},
|
|
20
15
|
"files": [
|
|
@@ -24,12 +19,11 @@
|
|
|
24
19
|
],
|
|
25
20
|
"scripts": {
|
|
26
21
|
"build": "npm run clean && npm run build:cjs && npm run build:esm && npm run build:types",
|
|
27
|
-
"build:cjs": "tsc -p tsconfig.build.json",
|
|
28
|
-
"build:esm": "tsc -p tsconfig.build.json --module esnext --outDir dist/esm",
|
|
22
|
+
"build:cjs": "tsc -p tsconfig.build.json && esbuild dist/index.js --minify --outfile=dist/index.js --allow-overwrite",
|
|
23
|
+
"build:esm": "tsc -p tsconfig.build.json --module esnext --outDir dist/esm && esbuild dist/esm/index.js --minify --outfile=dist/esm/index.js --allow-overwrite",
|
|
29
24
|
"build:types": "tsc -p tsconfig.build.json --declaration --emitDeclarationOnly --outDir dist",
|
|
30
|
-
"build:min": "esbuild dist/index.js --minify --outfile=dist/index.min.js && esbuild dist/esm/index.js --minify --outfile=dist/esm/index.min.js",
|
|
31
25
|
"clean": "rm -rf dist",
|
|
32
|
-
"prepublishOnly": "npm run build
|
|
26
|
+
"prepublishOnly": "npm run build",
|
|
33
27
|
"test": "echo \"Tests will be added\" && exit 0",
|
|
34
28
|
"lint": "eslint . --ext .ts,.tsx",
|
|
35
29
|
"format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"",
|
package/dist/esm/index.min.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* index.ts
|
|
3
|
-
*
|
|
4
|
-
* Forma - Advanced React form state management library
|
|
5
|
-
* Main entry point and API exports
|
|
6
|
-
*
|
|
7
|
-
* @license MIT License
|
|
8
|
-
* @copyright 2025 KIM YOUNG JIN (Kim Young Jin)
|
|
9
|
-
* @author KIM YOUNG JIN (ehfuse@gmail.com)
|
|
10
|
-
*
|
|
11
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
13
|
-
* in the Software without restriction, including without limitation the rights
|
|
14
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
16
|
-
* furnished to do so, subject to the following conditions:
|
|
17
|
-
*
|
|
18
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
19
|
-
* copies or substantial portions of the Software.
|
|
20
|
-
*
|
|
21
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
-
* SOFTWARE.
|
|
28
|
-
*/export{useForm}from"./hooks/useForm";export{useGlobalForm}from"./hooks/useGlobalForm";export{useRegisterGlobalForm}from"./hooks/useRegisterGlobalForm";export{useUnregisterGlobalForm}from"./hooks/useUnregisterGlobalForm";export{useFormaState,useFieldSubscription}from"./hooks/useFormaState";export{useGlobalFormaState}from"./hooks/useGlobalFormaState";export{useRegisterGlobalFormaState}from"./hooks/useRegisterGlobalFormaState";export{useUnregisterGlobalFormaState}from"./hooks/useUnregisterGlobalFormaState";export{useModal}from"./hooks/useModal";export{useBreakpoint}from"./hooks/useBreakpoint";export{GlobalFormaContext,GlobalFormaProvider}from"./contexts/GlobalFormaContext";export{FieldStore}from"./core/FieldStore";export{getNestedValue,setNestedValue}from"./utils/dotNotation";export{isDevelopment,devWarn,devError,devLog}from"./utils/environment";export const FORMA_VERSION="1.0.0",FORMA_METADATA={name:"Forma",version:FORMA_VERSION,description:"Advanced React form state management library",author:"KIM YOUNG JIN (Kim Young Jin)",email:"ehfuse@gmail.com",license:"MIT",features:["Optimized re-rendering with individual field subscriptions","Nested object handling with dot notation support","Full compatibility with MUI components","Global form state management","Complete TypeScript support","Leveraging latest React 19 features"]};
|
package/dist/index.min.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* index.ts
|
|
3
|
-
*
|
|
4
|
-
* Forma - Advanced React form state management library
|
|
5
|
-
* Main entry point and API exports
|
|
6
|
-
*
|
|
7
|
-
* @license MIT License
|
|
8
|
-
* @copyright 2025 KIM YOUNG JIN (Kim Young Jin)
|
|
9
|
-
* @author KIM YOUNG JIN (ehfuse@gmail.com)
|
|
10
|
-
*
|
|
11
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
13
|
-
* in the Software without restriction, including without limitation the rights
|
|
14
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
16
|
-
* furnished to do so, subject to the following conditions:
|
|
17
|
-
*
|
|
18
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
19
|
-
* copies or substantial portions of the Software.
|
|
20
|
-
*
|
|
21
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
-
* SOFTWARE.
|
|
28
|
-
*/Object.defineProperty(exports,"__esModule",{value:!0}),exports.FORMA_METADATA=exports.FORMA_VERSION=exports.devLog=exports.devError=exports.devWarn=exports.isDevelopment=exports.setNestedValue=exports.getNestedValue=exports.FieldStore=exports.GlobalFormaProvider=exports.GlobalFormaContext=exports.useBreakpoint=exports.useModal=exports.useUnregisterGlobalFormaState=exports.useRegisterGlobalFormaState=exports.useGlobalFormaState=exports.useFieldSubscription=exports.useFormaState=exports.useUnregisterGlobalForm=exports.useRegisterGlobalForm=exports.useGlobalForm=exports.useForm=void 0;var useForm_1=require("./hooks/useForm");Object.defineProperty(exports,"useForm",{enumerable:!0,get:function(){return useForm_1.useForm}});var useGlobalForm_1=require("./hooks/useGlobalForm");Object.defineProperty(exports,"useGlobalForm",{enumerable:!0,get:function(){return useGlobalForm_1.useGlobalForm}});var useRegisterGlobalForm_1=require("./hooks/useRegisterGlobalForm");Object.defineProperty(exports,"useRegisterGlobalForm",{enumerable:!0,get:function(){return useRegisterGlobalForm_1.useRegisterGlobalForm}});var useUnregisterGlobalForm_1=require("./hooks/useUnregisterGlobalForm");Object.defineProperty(exports,"useUnregisterGlobalForm",{enumerable:!0,get:function(){return useUnregisterGlobalForm_1.useUnregisterGlobalForm}});var useFormaState_1=require("./hooks/useFormaState");Object.defineProperty(exports,"useFormaState",{enumerable:!0,get:function(){return useFormaState_1.useFormaState}}),Object.defineProperty(exports,"useFieldSubscription",{enumerable:!0,get:function(){return useFormaState_1.useFieldSubscription}});var useGlobalFormaState_1=require("./hooks/useGlobalFormaState");Object.defineProperty(exports,"useGlobalFormaState",{enumerable:!0,get:function(){return useGlobalFormaState_1.useGlobalFormaState}});var useRegisterGlobalFormaState_1=require("./hooks/useRegisterGlobalFormaState");Object.defineProperty(exports,"useRegisterGlobalFormaState",{enumerable:!0,get:function(){return useRegisterGlobalFormaState_1.useRegisterGlobalFormaState}});var useUnregisterGlobalFormaState_1=require("./hooks/useUnregisterGlobalFormaState");Object.defineProperty(exports,"useUnregisterGlobalFormaState",{enumerable:!0,get:function(){return useUnregisterGlobalFormaState_1.useUnregisterGlobalFormaState}});var useModal_1=require("./hooks/useModal");Object.defineProperty(exports,"useModal",{enumerable:!0,get:function(){return useModal_1.useModal}});var useBreakpoint_1=require("./hooks/useBreakpoint");Object.defineProperty(exports,"useBreakpoint",{enumerable:!0,get:function(){return useBreakpoint_1.useBreakpoint}});var GlobalFormaContext_1=require("./contexts/GlobalFormaContext");Object.defineProperty(exports,"GlobalFormaContext",{enumerable:!0,get:function(){return GlobalFormaContext_1.GlobalFormaContext}}),Object.defineProperty(exports,"GlobalFormaProvider",{enumerable:!0,get:function(){return GlobalFormaContext_1.GlobalFormaProvider}});var FieldStore_1=require("./core/FieldStore");Object.defineProperty(exports,"FieldStore",{enumerable:!0,get:function(){return FieldStore_1.FieldStore}});var dotNotation_1=require("./utils/dotNotation");Object.defineProperty(exports,"getNestedValue",{enumerable:!0,get:function(){return dotNotation_1.getNestedValue}}),Object.defineProperty(exports,"setNestedValue",{enumerable:!0,get:function(){return dotNotation_1.setNestedValue}});var environment_1=require("./utils/environment");Object.defineProperty(exports,"isDevelopment",{enumerable:!0,get:function(){return environment_1.isDevelopment}}),Object.defineProperty(exports,"devWarn",{enumerable:!0,get:function(){return environment_1.devWarn}}),Object.defineProperty(exports,"devError",{enumerable:!0,get:function(){return environment_1.devError}}),Object.defineProperty(exports,"devLog",{enumerable:!0,get:function(){return environment_1.devLog}}),exports.FORMA_VERSION="1.0.0",exports.FORMA_METADATA={name:"Forma",version:exports.FORMA_VERSION,description:"Advanced React form state management library",author:"KIM YOUNG JIN (Kim Young Jin)",email:"ehfuse@gmail.com",license:"MIT",features:["Optimized re-rendering with individual field subscriptions","Nested object handling with dot notation support","Full compatibility with MUI components","Global form state management","Complete TypeScript support","Leveraging latest React 19 features"]};
|