@ehfuse/forma 2.3.2 → 3.0.1
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 +75 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/src/contexts/GlobalFormaContext.d.ts +2 -5
- package/dist/esm/src/contexts/GlobalFormaContext.d.ts.map +1 -1
- package/dist/esm/src/contexts/GlobalFormaContext.js +8 -10
- package/dist/esm/src/contexts/GlobalFormaContext.js.map +1 -1
- package/dist/esm/src/hooks/useBreakpoint.d.ts.map +1 -1
- package/dist/esm/src/hooks/useBreakpoint.js +27 -6
- package/dist/esm/src/hooks/useBreakpoint.js.map +1 -1
- package/dist/esm/src/hooks/useForm.d.ts.map +1 -1
- package/dist/esm/src/hooks/useForm.js +56 -3
- package/dist/esm/src/hooks/useForm.js.map +1 -1
- package/dist/esm/src/hooks/useFormaState.d.ts +7 -0
- package/dist/esm/src/hooks/useFormaState.d.ts.map +1 -1
- package/dist/esm/src/hooks/useFormaState.js +56 -3
- package/dist/esm/src/hooks/useFormaState.js.map +1 -1
- package/dist/esm/src/hooks/useGlobalForm.js +2 -1
- package/dist/esm/src/hooks/useGlobalForm.js.map +1 -1
- package/dist/esm/src/hooks/useGlobalFormaState.js +2 -2
- package/dist/esm/src/hooks/useGlobalFormaState.js.map +1 -1
- package/dist/esm/src/hooks/useLocalStorage.d.ts +102 -0
- package/dist/esm/src/hooks/useLocalStorage.d.ts.map +1 -0
- package/dist/esm/src/hooks/useLocalStorage.js +233 -0
- package/dist/esm/src/hooks/useLocalStorage.js.map +1 -0
- package/dist/esm/src/hooks/useModal.d.ts.map +1 -1
- package/dist/esm/src/hooks/useModal.js +1 -1
- package/dist/esm/src/hooks/useModal.js.map +1 -1
- package/dist/esm/src/types/breakpoint.d.ts +24 -12
- package/dist/esm/src/types/breakpoint.d.ts.map +1 -1
- package/dist/esm/src/types/form.d.ts +13 -4
- package/dist/esm/src/types/form.d.ts.map +1 -1
- package/dist/esm/src/types/globalForm.d.ts +11 -3
- package/dist/esm/src/types/globalForm.d.ts.map +1 -1
- package/dist/esm/src/types/globalForm.js.map +1 -1
- package/dist/esm/src/utils/environment.d.ts +7 -0
- package/dist/esm/src/utils/environment.d.ts.map +1 -1
- package/dist/esm/src/utils/environment.js +11 -0
- package/dist/esm/src/utils/environment.js.map +1 -1
- package/dist/esm/src/utils/index.d.ts +2 -0
- package/dist/esm/src/utils/index.d.ts.map +1 -1
- package/dist/esm/src/utils/index.js +1 -0
- package/dist/esm/src/utils/index.js.map +1 -1
- package/dist/esm/src/utils/persist.d.ts +67 -0
- package/dist/esm/src/utils/persist.d.ts.map +1 -0
- package/dist/esm/src/utils/persist.js +154 -0
- package/dist/esm/src/utils/persist.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/contexts/GlobalFormaContext.d.ts +2 -5
- package/dist/src/contexts/GlobalFormaContext.d.ts.map +1 -1
- package/dist/src/contexts/GlobalFormaContext.js +7 -9
- package/dist/src/contexts/GlobalFormaContext.js.map +1 -1
- package/dist/src/hooks/useBreakpoint.d.ts.map +1 -1
- package/dist/src/hooks/useBreakpoint.js +27 -6
- package/dist/src/hooks/useBreakpoint.js.map +1 -1
- package/dist/src/hooks/useForm.d.ts.map +1 -1
- package/dist/src/hooks/useForm.js +55 -2
- package/dist/src/hooks/useForm.js.map +1 -1
- package/dist/src/hooks/useFormaState.d.ts +7 -0
- package/dist/src/hooks/useFormaState.d.ts.map +1 -1
- package/dist/src/hooks/useFormaState.js +54 -1
- package/dist/src/hooks/useFormaState.js.map +1 -1
- package/dist/src/hooks/useGlobalForm.js +2 -1
- package/dist/src/hooks/useGlobalForm.js.map +1 -1
- package/dist/src/hooks/useGlobalFormaState.js +2 -2
- package/dist/src/hooks/useGlobalFormaState.js.map +1 -1
- package/dist/src/hooks/useLocalStorage.d.ts +102 -0
- package/dist/src/hooks/useLocalStorage.d.ts.map +1 -0
- package/dist/src/hooks/useLocalStorage.js +237 -0
- package/dist/src/hooks/useLocalStorage.js.map +1 -0
- package/dist/src/hooks/useModal.d.ts.map +1 -1
- package/dist/src/hooks/useModal.js.map +1 -1
- package/dist/src/types/breakpoint.d.ts +24 -12
- package/dist/src/types/breakpoint.d.ts.map +1 -1
- package/dist/src/types/form.d.ts +13 -4
- package/dist/src/types/form.d.ts.map +1 -1
- package/dist/src/types/globalForm.d.ts +11 -3
- package/dist/src/types/globalForm.d.ts.map +1 -1
- package/dist/src/types/globalForm.js.map +1 -1
- package/dist/src/utils/environment.d.ts +7 -0
- package/dist/src/utils/environment.d.ts.map +1 -1
- package/dist/src/utils/environment.js +12 -0
- package/dist/src/utils/environment.js.map +1 -1
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +7 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/persist.d.ts +67 -0
- package/dist/src/utils/persist.d.ts.map +1 -0
- package/dist/src/utils/persist.js +163 -0
- package/dist/src/utils/persist.js.map +1 -0
- package/package.json +1 -1
|
@@ -27,13 +27,15 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import { ReactNode } from "react";
|
|
29
29
|
import { FieldStore } from "../core/FieldStore";
|
|
30
|
-
import { UseFormReturn, Actions, ActionContext } from "./form";
|
|
30
|
+
import { UseFormReturn, Actions, ActionContext, PersistConfig } from "./form";
|
|
31
31
|
import { UseFormaStateReturn } from "../hooks/useFormaState";
|
|
32
32
|
/**
|
|
33
33
|
* 글로벌 Forma Provider Props | Global Forma provider props
|
|
34
34
|
*/
|
|
35
35
|
export interface GlobalFormaProviderProps {
|
|
36
36
|
children: ReactNode;
|
|
37
|
+
/** localStorage 키 prefix (앱별 구분용) | localStorage key prefix (for app separation) */
|
|
38
|
+
storagePrefix?: string;
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
39
41
|
* useGlobalForm 훅의 Props 타입 | useGlobalForm hook Props type
|
|
@@ -56,6 +58,8 @@ export interface UseGlobalFormProps<T extends Record<string, any>> {
|
|
|
56
58
|
actions?: Actions<T> | Actions<T>[];
|
|
57
59
|
/** 필드 변경 감시 | Watch field changes */
|
|
58
60
|
watch?: WatchConfig<T>;
|
|
61
|
+
/** localStorage/sessionStorage 영속성 설정 | localStorage/sessionStorage persistence config */
|
|
62
|
+
persist?: PersistConfig;
|
|
59
63
|
}
|
|
60
64
|
/**
|
|
61
65
|
* Watch Handler 타입 | Watch handler type
|
|
@@ -82,6 +86,8 @@ export interface UseGlobalFormaStateProps<T extends Record<string, any>> {
|
|
|
82
86
|
actions?: Actions<T> | Actions<T>[];
|
|
83
87
|
/** 필드 변경 감시 | Watch field changes */
|
|
84
88
|
watch?: WatchConfig<T>;
|
|
89
|
+
/** localStorage/sessionStorage 영속성 설정 | localStorage/sessionStorage persistence config */
|
|
90
|
+
persist?: PersistConfig;
|
|
85
91
|
}
|
|
86
92
|
/**
|
|
87
93
|
* useGlobalForm 훅의 반환 타입 | useGlobalForm hook return type
|
|
@@ -364,6 +370,8 @@ export interface GlobalFormHandlers<T extends Record<string, any>> {
|
|
|
364
370
|
* 폼 스토어 관리와 모달 스택 관리 기능을 제공
|
|
365
371
|
*/
|
|
366
372
|
export interface GlobalFormaContextType {
|
|
373
|
+
/** localStorage/sessionStorage 키 prefix | Storage key prefix */
|
|
374
|
+
storagePrefix?: string;
|
|
367
375
|
getOrCreateStore: <T extends Record<string, any>>(formId: string) => FieldStore<T>;
|
|
368
376
|
registerStore: <T extends Record<string, any>>(formId: string, store: FieldStore<T>) => void;
|
|
369
377
|
unregisterStore: (formId: string) => boolean;
|
|
@@ -379,9 +387,9 @@ export interface GlobalFormaContextType {
|
|
|
379
387
|
/** 글로벌 폼 핸들러 조회 | Get global form handlers */
|
|
380
388
|
getHandlers: <T extends Record<string, any>>(formId: string) => GlobalFormHandlers<T> | undefined;
|
|
381
389
|
/** 글로벌 actions 등록 | Register global actions */
|
|
382
|
-
registerActions:
|
|
390
|
+
registerActions: (formId: string, actions: any) => void;
|
|
383
391
|
/** 글로벌 actions 조회 | Get global actions */
|
|
384
|
-
getActions:
|
|
392
|
+
getActions: (formId: string) => any | undefined;
|
|
385
393
|
/** 글로벌 actions 제거 | Remove global actions */
|
|
386
394
|
unregisterActions: (formId: string) => void;
|
|
387
395
|
/** 모달을 스택에 추가 | Add modal to stack */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalForm.d.ts","sourceRoot":"","sources":["../../../src/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,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"globalForm.d.ts","sourceRoot":"","sources":["../../../src/types/globalForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalForm.js","sourceRoot":"","sources":["../../../src/types/globalForm.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;
|
|
1
|
+
{"version":3,"file":"globalForm.js","sourceRoot":"","sources":["../../../src/types/globalForm.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AA2QH;;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"}
|
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
* @author KIM YOUNG JIN (ehfuse@gmail.com)
|
|
8
8
|
* @license MIT License
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Check if the current environment is a browser
|
|
12
|
+
* 현재 환경이 브라우저 환경인지 확인
|
|
13
|
+
*
|
|
14
|
+
* @returns {boolean} true if browser environment, false otherwise
|
|
15
|
+
*/
|
|
16
|
+
export declare function isBrowser(): boolean;
|
|
10
17
|
/**
|
|
11
18
|
* Check if the current environment is development
|
|
12
19
|
* 현재 환경이 개발 환경인지 확인
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,OAAO,CA8BvC;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI7D;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI9D;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI5D"}
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAMnC;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,OAAO,CA8BvC;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI7D;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI9D;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAI5D"}
|
|
@@ -9,10 +9,22 @@
|
|
|
9
9
|
* @license MIT License
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.isBrowser = isBrowser;
|
|
12
13
|
exports.isDevelopment = isDevelopment;
|
|
13
14
|
exports.devWarn = devWarn;
|
|
14
15
|
exports.devError = devError;
|
|
15
16
|
exports.devLog = devLog;
|
|
17
|
+
/**
|
|
18
|
+
* Check if the current environment is a browser
|
|
19
|
+
* 현재 환경이 브라우저 환경인지 확인
|
|
20
|
+
*
|
|
21
|
+
* @returns {boolean} true if browser environment, false otherwise
|
|
22
|
+
*/
|
|
23
|
+
function isBrowser() {
|
|
24
|
+
return (typeof window !== "undefined" &&
|
|
25
|
+
typeof window.document !== "undefined" &&
|
|
26
|
+
typeof window.localStorage !== "undefined");
|
|
27
|
+
}
|
|
16
28
|
/**
|
|
17
29
|
* Check if the current environment is development
|
|
18
30
|
* 현재 환경이 개발 환경인지 확인
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAQH,sCA8BC;AASD,0BAIC;AASD,4BAIC;AASD,wBAIC;
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAQH,8BAMC;AAQD,sCA8BC;AASD,0BAIC;AASD,4BAIC;AASD,wBAIC;AAzFD;;;;;GAKG;AACH,SAAgB,SAAS;IACrB,OAAO,CACH,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW;QACtC,OAAO,MAAM,CAAC,YAAY,KAAK,WAAW,CAC7C,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa;IACzB,IAAI,CAAC;QACD,4BAA4B;QAC5B,IACI,OAAQ,UAAkB,CAAC,OAAO,KAAK,WAAW;YACjD,UAAkB,CAAC,OAAO,CAAC,GAAG,EACjC,CAAC;YACC,OAAQ,UAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;QACrE,CAAC;QAED,4BAA4B;QAC5B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1C,MAAM,KAAK,GACP,QAAQ,KAAK,WAAW;gBACxB,QAAQ,KAAK,WAAW;gBACxB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxB,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC;YAEhC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,4CAA4C;QAC5C,OAAO,KAAK,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACL,yCAAyC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,OAAe,EAAE,GAAG,IAAW;IACnD,IAAI,aAAa,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,OAAe,EAAE,GAAG,IAAW;IACpD,IAAI,aAAa,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,OAAe,EAAE,GAAG,IAAW;IAClD,IAAI,aAAa,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC;AACL,CAAC"}
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
*/
|
|
26
26
|
export { getNestedValue, setNestedValue } from "./dotNotation";
|
|
27
27
|
export { isDevelopment, devWarn, devError, devLog } from "./environment";
|
|
28
|
+
export { loadPersistedData, savePersistedData, clearPersistedData, hasPersistedData, normalizePersistConfig, } from "./persist";
|
|
29
|
+
export type { PersistOptions, PersistConfig } from "./persist";
|
|
28
30
|
/**
|
|
29
31
|
* Actions 배열을 단일 객체로 병합
|
|
30
32
|
* Merge actions array into single object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACtD,OAAO,CAAC,EACF,OAAO,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,GAClC,OAAO,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAC3C,OAAO,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAQhD"}
|
package/dist/src/utils/index.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* SOFTWARE.
|
|
26
26
|
*/
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.devLog = exports.devError = exports.devWarn = exports.isDevelopment = exports.setNestedValue = exports.getNestedValue = void 0;
|
|
28
|
+
exports.normalizePersistConfig = exports.hasPersistedData = exports.clearPersistedData = exports.savePersistedData = exports.loadPersistedData = exports.devLog = exports.devError = exports.devWarn = exports.isDevelopment = exports.setNestedValue = exports.getNestedValue = void 0;
|
|
29
29
|
exports.mergeActions = mergeActions;
|
|
30
30
|
var dotNotation_1 = require("./dotNotation");
|
|
31
31
|
Object.defineProperty(exports, "getNestedValue", { enumerable: true, get: function () { return dotNotation_1.getNestedValue; } });
|
|
@@ -35,6 +35,12 @@ Object.defineProperty(exports, "isDevelopment", { enumerable: true, get: functio
|
|
|
35
35
|
Object.defineProperty(exports, "devWarn", { enumerable: true, get: function () { return environment_1.devWarn; } });
|
|
36
36
|
Object.defineProperty(exports, "devError", { enumerable: true, get: function () { return environment_1.devError; } });
|
|
37
37
|
Object.defineProperty(exports, "devLog", { enumerable: true, get: function () { return environment_1.devLog; } });
|
|
38
|
+
var persist_1 = require("./persist");
|
|
39
|
+
Object.defineProperty(exports, "loadPersistedData", { enumerable: true, get: function () { return persist_1.loadPersistedData; } });
|
|
40
|
+
Object.defineProperty(exports, "savePersistedData", { enumerable: true, get: function () { return persist_1.savePersistedData; } });
|
|
41
|
+
Object.defineProperty(exports, "clearPersistedData", { enumerable: true, get: function () { return persist_1.clearPersistedData; } });
|
|
42
|
+
Object.defineProperty(exports, "hasPersistedData", { enumerable: true, get: function () { return persist_1.hasPersistedData; } });
|
|
43
|
+
Object.defineProperty(exports, "normalizePersistConfig", { enumerable: true, get: function () { return persist_1.normalizePersistConfig; } });
|
|
38
44
|
/**
|
|
39
45
|
* Actions 배열을 단일 객체로 병합
|
|
40
46
|
* Merge actions array into single object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAoBH,oCAYC;AA9BD,6CAA+D;AAAtD,6GAAA,cAAc,OAAA;AAAE,6GAAA,cAAc,OAAA;AACvC,6CAAyE;AAAhE,4GAAA,aAAa,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,qGAAA,MAAM,OAAA;AACjD,qCAMmB;AALf,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AACjB,6GAAA,kBAAkB,OAAA;AAClB,2GAAA,gBAAgB,OAAA;AAChB,iHAAA,sBAAsB,OAAA;AAI1B;;;;;;GAMG;AACH,SAAgB,YAAY,CACxB,OAE0C;IAE1C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,gBAAgB;IAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAE5C,8BAA8B;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* persist.ts
|
|
3
|
+
*
|
|
4
|
+
* Forma - localStorage/sessionStorage 영속성 유틸리티
|
|
5
|
+
* Persistence utilities for localStorage/sessionStorage
|
|
6
|
+
*
|
|
7
|
+
* @license MIT License
|
|
8
|
+
* @copyright 2025 KIM YOUNG JIN (Kim Young Jin)
|
|
9
|
+
* @author KIM YOUNG JIN (ehfuse@gmail.com)
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Persist 옵션 타입 | Persist options type
|
|
13
|
+
*/
|
|
14
|
+
export interface PersistOptions {
|
|
15
|
+
/** localStorage 키 | localStorage key */
|
|
16
|
+
key: string;
|
|
17
|
+
/** 저장 디바운스 시간 (ms, 기본값: 300) | Debounce time for saving (ms, default: 300) */
|
|
18
|
+
debounce?: number;
|
|
19
|
+
/** 저장에서 제외할 필드 | Fields to exclude from saving */
|
|
20
|
+
exclude?: string[];
|
|
21
|
+
/** 스토리지 타입 (기본값: 'localStorage') | Storage type (default: 'localStorage') */
|
|
22
|
+
storage?: "localStorage" | "sessionStorage";
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Persist 설정 타입 (string 또는 옵션 객체)
|
|
26
|
+
* Persist configuration type (string or options object)
|
|
27
|
+
*/
|
|
28
|
+
export type PersistConfig = string | PersistOptions;
|
|
29
|
+
/**
|
|
30
|
+
* PersistConfig를 PersistOptions로 정규화
|
|
31
|
+
* Normalize PersistConfig to PersistOptions
|
|
32
|
+
*/
|
|
33
|
+
export declare function normalizePersistConfig(config: PersistConfig): PersistOptions;
|
|
34
|
+
/**
|
|
35
|
+
* storagePrefix가 적용된 전체 키 생성 | Generate full key with storagePrefix
|
|
36
|
+
*/
|
|
37
|
+
export declare function getFullStorageKey(key: string, storagePrefix?: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* localStorage에서 데이터 불러오기 | Load data from localStorage
|
|
40
|
+
* @param config persist 설정 | persist configuration
|
|
41
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
42
|
+
*/
|
|
43
|
+
export declare function loadPersistedData<T extends Record<string, any>>(config: PersistConfig, storagePrefix?: string): Partial<T> | null;
|
|
44
|
+
/**
|
|
45
|
+
* localStorage에 데이터 저장 | Save data to localStorage
|
|
46
|
+
* @param config persist 설정 | persist configuration
|
|
47
|
+
* @param values 저장할 값 | values to save
|
|
48
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
49
|
+
*/
|
|
50
|
+
export declare function savePersistedData<T extends Record<string, any>>(config: PersistConfig, values: T, storagePrefix?: string): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* localStorage에서 데이터 삭제 | Clear persisted data from localStorage
|
|
53
|
+
* @param config persist 설정 | persist configuration
|
|
54
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
55
|
+
*/
|
|
56
|
+
export declare function clearPersistedData(config: PersistConfig, storagePrefix?: string): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* 저장된 데이터가 있는지 확인 | Check if persisted data exists
|
|
59
|
+
* @param config persist 설정 | persist configuration
|
|
60
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
61
|
+
*/
|
|
62
|
+
export declare function hasPersistedData(config: PersistConfig, storagePrefix?: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 디바운스 유틸리티 | Debounce utility
|
|
65
|
+
*/
|
|
66
|
+
export declare function debounce<T extends (...args: any[]) => any>(fn: T, delay: number): (...args: Parameters<T>) => void;
|
|
67
|
+
//# sourceMappingURL=persist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persist.d.ts","sourceRoot":"","sources":["../../../src/utils/persist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,GAAG,gBAAgB,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,cAAc,CAAC;AAYpD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAK5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7E;AAqBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAiBnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3D,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,CAAC,EACT,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CA4BT;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAC9B,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAcT;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAYT;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACtD,EAAE,EAAE,CAAC,EACL,KAAK,EAAE,MAAM,GACd,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAYlC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* persist.ts
|
|
4
|
+
*
|
|
5
|
+
* Forma - localStorage/sessionStorage 영속성 유틸리티
|
|
6
|
+
* Persistence utilities for localStorage/sessionStorage
|
|
7
|
+
*
|
|
8
|
+
* @license MIT License
|
|
9
|
+
* @copyright 2025 KIM YOUNG JIN (Kim Young Jin)
|
|
10
|
+
* @author KIM YOUNG JIN (ehfuse@gmail.com)
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.normalizePersistConfig = normalizePersistConfig;
|
|
14
|
+
exports.getFullStorageKey = getFullStorageKey;
|
|
15
|
+
exports.loadPersistedData = loadPersistedData;
|
|
16
|
+
exports.savePersistedData = savePersistedData;
|
|
17
|
+
exports.clearPersistedData = clearPersistedData;
|
|
18
|
+
exports.hasPersistedData = hasPersistedData;
|
|
19
|
+
exports.debounce = debounce;
|
|
20
|
+
const environment_1 = require("./environment");
|
|
21
|
+
/**
|
|
22
|
+
* PersistConfig를 PersistOptions로 정규화
|
|
23
|
+
* Normalize PersistConfig to PersistOptions
|
|
24
|
+
*/
|
|
25
|
+
function normalizePersistConfig(config) {
|
|
26
|
+
if (typeof config === "string") {
|
|
27
|
+
return { key: config };
|
|
28
|
+
}
|
|
29
|
+
return config;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* storagePrefix가 적용된 전체 키 생성 | Generate full key with storagePrefix
|
|
33
|
+
*/
|
|
34
|
+
function getFullStorageKey(key, storagePrefix) {
|
|
35
|
+
return storagePrefix ? `${storagePrefix}:${key}` : key;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 스토리지 객체 가져오기 | Get storage object
|
|
39
|
+
*/
|
|
40
|
+
function getStorage(type = "localStorage") {
|
|
41
|
+
if (typeof window === "undefined") {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
return type === "sessionStorage"
|
|
46
|
+
? window.sessionStorage
|
|
47
|
+
: window.localStorage;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
(0, environment_1.devWarn)("Storage is not available");
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* localStorage에서 데이터 불러오기 | Load data from localStorage
|
|
56
|
+
* @param config persist 설정 | persist configuration
|
|
57
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
58
|
+
*/
|
|
59
|
+
function loadPersistedData(config, storagePrefix) {
|
|
60
|
+
const options = normalizePersistConfig(config);
|
|
61
|
+
const storage = getStorage(options.storage);
|
|
62
|
+
const fullKey = getFullStorageKey(options.key, storagePrefix);
|
|
63
|
+
if (!storage)
|
|
64
|
+
return null;
|
|
65
|
+
try {
|
|
66
|
+
const stored = storage.getItem(fullKey);
|
|
67
|
+
if (!stored)
|
|
68
|
+
return null;
|
|
69
|
+
const parsed = JSON.parse(stored);
|
|
70
|
+
return parsed.values;
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
(0, environment_1.devWarn)(`Failed to load persisted data for key "${fullKey}":`, e);
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* localStorage에 데이터 저장 | Save data to localStorage
|
|
79
|
+
* @param config persist 설정 | persist configuration
|
|
80
|
+
* @param values 저장할 값 | values to save
|
|
81
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
82
|
+
*/
|
|
83
|
+
function savePersistedData(config, values, storagePrefix) {
|
|
84
|
+
const options = normalizePersistConfig(config);
|
|
85
|
+
const storage = getStorage(options.storage);
|
|
86
|
+
const fullKey = getFullStorageKey(options.key, storagePrefix);
|
|
87
|
+
if (!storage)
|
|
88
|
+
return false;
|
|
89
|
+
try {
|
|
90
|
+
// exclude 필드 제외
|
|
91
|
+
let dataToSave = values;
|
|
92
|
+
if (options.exclude && options.exclude.length > 0) {
|
|
93
|
+
dataToSave = { ...values };
|
|
94
|
+
for (const field of options.exclude) {
|
|
95
|
+
delete dataToSave[field];
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const data = {
|
|
99
|
+
values: dataToSave,
|
|
100
|
+
savedAt: Date.now(),
|
|
101
|
+
};
|
|
102
|
+
storage.setItem(fullKey, JSON.stringify(data));
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
(0, environment_1.devWarn)(`Failed to save persisted data for key "${fullKey}":`, e);
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* localStorage에서 데이터 삭제 | Clear persisted data from localStorage
|
|
112
|
+
* @param config persist 설정 | persist configuration
|
|
113
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
114
|
+
*/
|
|
115
|
+
function clearPersistedData(config, storagePrefix) {
|
|
116
|
+
const options = normalizePersistConfig(config);
|
|
117
|
+
const storage = getStorage(options.storage);
|
|
118
|
+
const fullKey = getFullStorageKey(options.key, storagePrefix);
|
|
119
|
+
if (!storage)
|
|
120
|
+
return false;
|
|
121
|
+
try {
|
|
122
|
+
storage.removeItem(fullKey);
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
catch (e) {
|
|
126
|
+
(0, environment_1.devWarn)(`Failed to clear persisted data for key "${fullKey}":`, e);
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* 저장된 데이터가 있는지 확인 | Check if persisted data exists
|
|
132
|
+
* @param config persist 설정 | persist configuration
|
|
133
|
+
* @param storagePrefix 스토리지 키 prefix (GlobalFormaProvider에서 제공) | Storage key prefix (from GlobalFormaProvider)
|
|
134
|
+
*/
|
|
135
|
+
function hasPersistedData(config, storagePrefix) {
|
|
136
|
+
const options = normalizePersistConfig(config);
|
|
137
|
+
const storage = getStorage(options.storage);
|
|
138
|
+
const fullKey = getFullStorageKey(options.key, storagePrefix);
|
|
139
|
+
if (!storage)
|
|
140
|
+
return false;
|
|
141
|
+
try {
|
|
142
|
+
return storage.getItem(fullKey) !== null;
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 디바운스 유틸리티 | Debounce utility
|
|
150
|
+
*/
|
|
151
|
+
function debounce(fn, delay) {
|
|
152
|
+
let timeoutId = null;
|
|
153
|
+
return (...args) => {
|
|
154
|
+
if (timeoutId) {
|
|
155
|
+
clearTimeout(timeoutId);
|
|
156
|
+
}
|
|
157
|
+
timeoutId = setTimeout(() => {
|
|
158
|
+
fn(...args);
|
|
159
|
+
timeoutId = null;
|
|
160
|
+
}, delay);
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=persist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../src/utils/persist.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAsCH,wDAKC;AAKD,8CAEC;AA0BD,8CAoBC;AAQD,8CAgCC;AAOD,gDAiBC;AAOD,4CAeC;AAKD,4BAeC;AAxMD,+CAAwC;AAgCxC;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,MAAqB;IACxD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,GAAW,EAAE,aAAsB;IACjE,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CACf,OAA0C,cAAc;IAExD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACD,OAAO,IAAI,KAAK,gBAAgB;YAC5B,CAAC,CAAC,MAAM,CAAC,cAAc;YACvB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACL,IAAA,qBAAO,EAAC,0BAA0B,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC7B,MAAqB,EACrB,aAAsB;IAEtB,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,MAAM,GAAqB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAA,qBAAO,EAAC,0CAA0C,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC7B,MAAqB,EACrB,MAAS,EACT,aAAsB;IAEtB,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,IAAI,CAAC;QACD,gBAAgB;QAChB,IAAI,UAAU,GAAG,MAAM,CAAC;QACxB,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClC,OAAQ,UAAkB,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAqB;YAC3B,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAA,qBAAO,EAAC,0CAA0C,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAC9B,MAAqB,EACrB,aAAsB;IAEtB,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,IAAI,CAAC;QACD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAA,qBAAO,EAAC,2CAA2C,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAC5B,MAAqB,EACrB,aAAsB;IAEtB,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE9D,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,IAAI,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CACpB,EAAK,EACL,KAAa;IAEb,IAAI,SAAS,GAAyC,IAAI,CAAC;IAE3D,OAAO,CAAC,GAAG,IAAmB,EAAE,EAAE;QAC9B,IAAI,SAAS,EAAE,CAAC;YACZ,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;QACD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACZ,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC,EAAE,KAAK,CAAC,CAAC;IACd,CAAC,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ehfuse/forma",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
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",
|