@owp/core 1.28.0 → 1.30.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.
Files changed (94) hide show
  1. package/dist/{Close-DnXhM4Ms.js → Close-DnXyQZKh.js} +435 -378
  2. package/dist/Close-DnXyQZKh.js.map +1 -0
  3. package/dist/OwpStoreProvider-Bx5p7ooQ.js +30 -0
  4. package/dist/OwpStoreProvider-Bx5p7ooQ.js.map +1 -0
  5. package/dist/{OwpUtils-9lHSCdan.js → OwpUtils-C81bM1Gz.js} +2 -2
  6. package/dist/OwpUtils-C81bM1Gz.js.map +1 -0
  7. package/dist/{QuickPanel-BOgEYOAw.js → QuickPanel-CO7Tyc8C.js} +2 -2
  8. package/dist/{QuickPanel-BOgEYOAw.js.map → QuickPanel-CO7Tyc8C.js.map} +1 -1
  9. package/dist/colors.js +3 -18
  10. package/dist/colors.js.map +1 -1
  11. package/dist/constants.js +17 -20
  12. package/dist/constants.js.map +1 -1
  13. package/dist/context.js +64 -36
  14. package/dist/context.js.map +1 -1
  15. package/dist/hooks.js +70 -70
  16. package/dist/hooks.js.map +1 -1
  17. package/dist/{index-B8tZAW8i.js → index-KlA5Es4t.js} +11931 -12745
  18. package/dist/index-KlA5Es4t.js.map +1 -0
  19. package/dist/index.js +88 -115
  20. package/dist/{isTypedArray-xp-fB7W4.js → isTypedArray-DPyC49cI.js} +3 -3
  21. package/dist/{isTypedArray-xp-fB7W4.js.map → isTypedArray-DPyC49cI.js.map} +1 -1
  22. package/dist/{lazyLoadedSlices-BAbcXcEU.js → lazyLoadedSlices-DC7yg4GT.js} +885 -845
  23. package/dist/lazyLoadedSlices-DC7yg4GT.js.map +1 -0
  24. package/dist/localStorageKeys-Che0CNci.js +10 -0
  25. package/dist/localStorageKeys-Che0CNci.js.map +1 -0
  26. package/dist/owp-app.css +1 -1
  27. package/dist/owpDark-DAY0F6Ph.js +21 -0
  28. package/dist/owpDark-DAY0F6Ph.js.map +1 -0
  29. package/dist/storageKeys-C6xHFiTo.js +42 -0
  30. package/dist/storageKeys-C6xHFiTo.js.map +1 -0
  31. package/dist/store.js +37 -3
  32. package/dist/store.js.map +1 -1
  33. package/dist/{toUpper-CilZrxEa.js → toUpper-i_I6Tyuv.js} +2 -2
  34. package/dist/{toUpper-CilZrxEa.js.map → toUpper-i_I6Tyuv.js.map} +1 -1
  35. package/dist/treeGrid-DtKg-9uf.js +8 -0
  36. package/dist/treeGrid-DtKg-9uf.js.map +1 -0
  37. package/dist/{treeGridUtil-_FDvRzzt.js → treeGridUtil-WTM_djsN.js} +62 -61
  38. package/dist/{treeGridUtil-_FDvRzzt.js.map → treeGridUtil-WTM_djsN.js.map} +1 -1
  39. package/dist/types/components/OwpErrorBoundary/OwpErrorBoundary.d.ts +1 -1
  40. package/dist/types/components/OwpLayout/OwpLayout.d.ts +1 -1
  41. package/dist/types/components/OwpTable/OwpTable.d.ts +1 -1
  42. package/dist/types/components/OwpTabs/OwpTab.d.ts +1 -1
  43. package/dist/types/components/OwpTabs/OwpTabs.d.ts +1 -1
  44. package/dist/types/components/OwpThemeSelector/SchemePreview.d.ts +1 -1
  45. package/dist/types/components/OwpThemeSelector/ThemePreview.d.ts +1 -1
  46. package/dist/types/components/layouts/shared-components/navigation/store/navigationSlice.d.ts +5 -5
  47. package/dist/types/components/layouts/themeLayoutConfigs.d.ts +1 -1
  48. package/dist/types/context/OwpAppProvider.d.ts +4 -3
  49. package/dist/types/default-settings/OwpDefaultSettings.d.ts +25 -171
  50. package/dist/types/hooks/index.d.ts +1 -0
  51. package/dist/types/hooks/useAccessTokenGuard.d.ts +12 -0
  52. package/dist/types/hooks/useStorage.d.ts +0 -13
  53. package/dist/types/index.d.ts +1 -5
  54. package/dist/types/store/index.d.ts +1 -0
  55. package/dist/types/{components/OwpSettings → store}/owpSettingsSlice.d.ts +1 -456
  56. package/dist/types/{components/OwpSettings/OwpSettings.d.ts → types/OwpSettingsTypes.d.ts} +0 -12
  57. package/dist/types/utils/common/OwpUtils.d.ts +1 -1
  58. package/dist/usePageLockLoading-BUI_3PlR.js +39 -0
  59. package/dist/usePageLockLoading-BUI_3PlR.js.map +1 -0
  60. package/dist/useShortcuts-CCf98L8m.js +241 -0
  61. package/dist/useShortcuts-CCf98L8m.js.map +1 -0
  62. package/dist/useStorage-CuUmH4fD.js +50 -0
  63. package/dist/useStorage-CuUmH4fD.js.map +1 -0
  64. package/dist/useTreeGridExcelExport-N2nOKmkz.js +138 -0
  65. package/dist/useTreeGridExcelExport-N2nOKmkz.js.map +1 -0
  66. package/dist/utils.js +294 -293
  67. package/dist/utils.js.map +1 -1
  68. package/package.json +2 -11
  69. package/dist/Close-DnXhM4Ms.js.map +0 -1
  70. package/dist/OwpStoreProvider-B7W25pkq.js +0 -34
  71. package/dist/OwpStoreProvider-B7W25pkq.js.map +0 -1
  72. package/dist/OwpUtils-9lHSCdan.js.map +0 -1
  73. package/dist/index-B8tZAW8i.js.map +0 -1
  74. package/dist/language-CwsGUe4C.js +0 -5
  75. package/dist/language-CwsGUe4C.js.map +0 -1
  76. package/dist/lazyLoadedSlices-BAbcXcEU.js.map +0 -1
  77. package/dist/storageKeys-DRzte9LZ.js +0 -15
  78. package/dist/storageKeys-DRzte9LZ.js.map +0 -1
  79. package/dist/treeGrid-CjB04cBq.js +0 -35
  80. package/dist/treeGrid-CjB04cBq.js.map +0 -1
  81. package/dist/types/components/OwpSettings/OwpLayoutConfig.d.ts +0 -16
  82. package/dist/types/components/OwpSettings/OwpLayoutConfigs.d.ts +0 -14
  83. package/dist/types/components/OwpSettings/index.d.ts +0 -1
  84. package/dist/types/components/OwpSettings/palette-generator/PalettePreview.d.ts +0 -14
  85. package/dist/types/components/OwpSettings/palette-generator/PaletteSelector.d.ts +0 -15
  86. package/dist/types/components/OwpSettings/palette-generator/SectionPreview.d.ts +0 -12
  87. package/dist/types/store/apiService.d.ts +0 -6
  88. package/dist/useOwpTranslation-BelpX-fd.js +0 -174
  89. package/dist/useOwpTranslation-BelpX-fd.js.map +0 -1
  90. package/dist/useStorage-BA0D8KA7.js +0 -67
  91. package/dist/useStorage-BA0D8KA7.js.map +0 -1
  92. package/dist/useTreeGridExcelExport-QNcWzx5v.js +0 -195
  93. package/dist/useTreeGridExcelExport-QNcWzx5v.js.map +0 -1
  94. /package/dist/types/{components/OwpSettings → types}/ThemeFormConfigTypes.d.ts +0 -0
package/dist/context.js CHANGED
@@ -1,28 +1,55 @@
1
- var f = Object.defineProperty;
2
- var l = (i, m) => f(i, "name", { value: m, configurable: !0 });
3
- import { O as a, u as p, a as d, C as g } from "./Close-DnXhM4Ms.js";
4
- import { b as K } from "./Close-DnXhM4Ms.js";
5
- import { j as e, a as h } from "./emotion-react-jsx-runtime.browser.esm-Cb9H5d3i.js";
6
- import { StyledEngineProvider as O } from "@mui/material/styles";
7
- import { QueryClient as S, QueryClientProvider as w } from "@tanstack/react-query";
8
- import { useRef as x } from "react";
9
- import { O as F } from "./OwpStoreProvider-B7W25pkq.js";
10
- import C from "@mui/material/IconButton";
11
- import { DialogsProvider as y } from "@toolpad/core/useDialogs";
12
- import { SnackbarProvider as A, closeSnackbar as L } from "notistack";
13
- function R({
1
+ var d = Object.defineProperty;
2
+ var s = (i, m) => d(i, "name", { value: m, configurable: !0 });
3
+ import { O, u as S } from "./useShortcuts-CCf98L8m.js";
4
+ import { a as nt } from "./useShortcuts-CCf98L8m.js";
5
+ import { j as o, a as h } from "./emotion-react-jsx-runtime.browser.esm-Cb9H5d3i.js";
6
+ import { H as L } from "./lazyLoadedSlices-DC7yg4GT.js";
7
+ import { StyledEngineProvider as w } from "@mui/material/styles";
8
+ import { QueryClient as C, QueryClientProvider as x } from "@tanstack/react-query";
9
+ import { useRef as p } from "react";
10
+ import { O as F } from "./OwpStoreProvider-Bx5p7ooQ.js";
11
+ import { m as f } from "./OwpUtils-C81bM1Gz.js";
12
+ import { O as A, a as y, b as T, C as j } from "./Close-DnXyQZKh.js";
13
+ import { u as z, a as D } from "./usePageLockLoading-BUI_3PlR.js";
14
+ import "@mui/material";
15
+ import { DialogsProvider as H } from "@toolpad/core/useDialogs";
16
+ import "react-i18next";
17
+ import "./useStorage-CuUmH4fD.js";
18
+ import "dayjs";
19
+ import "exceljs";
20
+ import { SnackbarProvider as I, closeSnackbar as N } from "notistack";
21
+ import "./storageKeys-C6xHFiTo.js";
22
+ import R from "@mui/material/IconButton";
23
+ function tt({
14
24
  children: i,
15
25
  queryClient: m,
16
26
  queryClientConfig: t,
17
- storePreloadedState: o,
18
- styledEngineProviderProps: r = { injectFirst: !0 },
19
- ...u
27
+ storePreloadedState: e,
28
+ styledEngineProviderProps: u = { injectFirst: !0 },
29
+ ...r
20
30
  }) {
21
- const n = x(void 0), s = m ?? n.current ?? (n.current = new S(t));
22
- return /* @__PURE__ */ e(a, { ...u, children: /* @__PURE__ */ e(F, { preloadedState: o, children: /* @__PURE__ */ e(w, { client: s, children: /* @__PURE__ */ e(O, { ...r, children: i }) }) }) });
31
+ const c = p(void 0), n = p(void 0), a = m ?? c.current ?? (c.current = new C(t));
32
+ if (!n.current) {
33
+ const g = L(
34
+ r.configs.settingsConfig,
35
+ r.configs.themesConfig
36
+ );
37
+ n.current = f(
38
+ {},
39
+ {
40
+ owpSettings: {
41
+ initial: g,
42
+ defaults: f({}, g),
43
+ current: f({}, g)
44
+ }
45
+ },
46
+ e
47
+ );
48
+ }
49
+ return /* @__PURE__ */ o(O, { ...r, children: /* @__PURE__ */ o(F, { preloadedState: n.current, children: /* @__PURE__ */ o(x, { client: a, children: /* @__PURE__ */ o(w, { ...u, children: i }) }) }) });
23
50
  }
24
- l(R, "OwpCoreProvider");
25
- const c = {
51
+ s(tt, "OwpCoreProvider");
52
+ const l = {
26
53
  maxSnack: 5,
27
54
  autoHideDuration: 3e3,
28
55
  anchorOrigin: {
@@ -36,38 +63,39 @@ const c = {
36
63
  classes: {
37
64
  containerRoot: "bottom-0 right-0 mb-52 md:mb-68 mr-8 lg:mr-80"
38
65
  },
39
- action: /* @__PURE__ */ l((i) => /* @__PURE__ */ e(C, { onClick: /* @__PURE__ */ l(() => L(i), "onClick"), children: /* @__PURE__ */ e(g, { fontSize: "small", sx: { color: "#FFFFFF" } }) }), "action")
66
+ action: /* @__PURE__ */ s((i) => /* @__PURE__ */ o(R, { onClick: /* @__PURE__ */ s(() => N(i), "onClick"), children: /* @__PURE__ */ o(j, { fontSize: "small", sx: { color: "#FFFFFF" } }) }), "action")
40
67
  };
41
- function U({
68
+ function ot({
42
69
  children: i,
43
70
  dialogsProviderProps: m,
44
71
  snackbarProviderProps: t
45
72
  }) {
46
- const { env: o } = p(), r = {
47
- ...c,
73
+ const { env: e } = S(), u = z(), r = D(), c = {
74
+ ...l,
48
75
  ...t,
49
76
  style: {
50
- ...c.style,
77
+ ...l.style,
51
78
  ...t == null ? void 0 : t.style
52
79
  },
53
80
  classes: {
54
- ...c.classes,
81
+ ...l.classes,
55
82
  ...t == null ? void 0 : t.classes
56
83
  },
57
- action: (t == null ? void 0 : t.action) ?? c.action
58
- }, u = Number(o == null ? void 0 : o.autoLogoutTimeout), n = Number.isFinite(u) ? u : void 0;
59
- return /* @__PURE__ */ e(y, { ...m, children: /* @__PURE__ */ h(A, { ...r, children: [
84
+ action: (t == null ? void 0 : t.action) ?? l.action
85
+ }, n = Number(e == null ? void 0 : e.autoLogoutTimeout), a = Number.isFinite(n) ? n : void 0;
86
+ return r ? /* @__PURE__ */ o(A, { className: "min-h-screen" }) : /* @__PURE__ */ o(H, { ...m, children: /* @__PURE__ */ h(I, { ...c, children: [
60
87
  i,
61
- (o == null ? void 0 : o.isAutoLogoutEnabled) && /* @__PURE__ */ e(d, { timeout: n })
88
+ /* @__PURE__ */ o(y, { ...u }),
89
+ (e == null ? void 0 : e.isAutoLogoutEnabled) && /* @__PURE__ */ o(T, { timeout: a })
62
90
  ] }) });
63
91
  }
64
- l(U, "OwpUiProvider");
92
+ s(ot, "OwpUiProvider");
65
93
  export {
66
- K as OwpAppContext,
67
- a as OwpAppProvider,
68
- R as OwpCoreProvider,
94
+ nt as OwpAppContext,
95
+ O as OwpAppProvider,
96
+ tt as OwpCoreProvider,
69
97
  F as OwpStoreProvider,
70
- U as OwpUiProvider,
71
- p as useOwpAppContext
98
+ ot as OwpUiProvider,
99
+ S as useOwpAppContext
72
100
  };
73
101
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../src/context/OwpCoreProvider.tsx","../src/context/OwpUiProvider.tsx"],"sourcesContent":["import { StyledEngineProvider } from '@mui/material/styles';\nimport { QueryClient, QueryClientConfig, QueryClientProvider } from '@tanstack/react-query';\nimport { ComponentProps, useRef } from 'react';\nimport { OwpAppProvider, OwpAppProviderProps } from './OwpAppProvider';\nimport { OwpStoreProvider, OwpStoreProviderProps } from './OwpStoreProvider';\n\ntype OwpStyledEngineProviderProps = Omit<ComponentProps<typeof StyledEngineProvider>, 'children'>;\n\nexport interface OwpCoreProviderProps extends OwpAppProviderProps {\n queryClient?: QueryClient;\n queryClientConfig?: QueryClientConfig;\n storePreloadedState?: OwpStoreProviderProps['preloadedState'];\n styledEngineProviderProps?: OwpStyledEngineProviderProps;\n}\n\n/**\n * App, Redux, React Query provider composition\n * @param queryClient 외부 QueryClient 인스턴스\n * @param queryClientConfig QueryClient 생성 옵션\n * @param storePreloadedState 초기 Redux 상태\n * @param styledEngineProviderProps StyledEngineProvider 옵션\n */\nexport function OwpCoreProvider({\n children,\n queryClient,\n queryClientConfig,\n storePreloadedState,\n styledEngineProviderProps = { injectFirst: true },\n ...appProviderProps\n}: OwpCoreProviderProps) {\n const queryClientRef = useRef<QueryClient | undefined>(undefined);\n const client = queryClient ?? (queryClientRef.current ??= new QueryClient(queryClientConfig));\n\n return (\n <OwpAppProvider {...appProviderProps}>\n <OwpStoreProvider preloadedState={storePreloadedState}>\n <QueryClientProvider client={client}>\n <StyledEngineProvider {...styledEngineProviderProps}>{children}</StyledEngineProvider>\n </QueryClientProvider>\n </OwpStoreProvider>\n </OwpAppProvider>\n );\n}\n","import { OwpAutoLogoutDialog } from '@/components/OwpAutoLogoutDialog/OwpAutoLogoutDialog';\nimport CloseIcon from '@mui/icons-material/Close';\nimport IconButton from '@mui/material/IconButton';\nimport { DialogsProvider } from '@toolpad/core/useDialogs';\nimport { closeSnackbar, SnackbarKey, SnackbarProvider } from 'notistack';\nimport { ComponentProps, ReactNode } from 'react';\nimport { useOwpAppContext } from './OwpAppProvider';\n\ntype OwpDialogsProviderProps = Omit<ComponentProps<typeof DialogsProvider>, 'children'>;\ntype OwpSnackbarProviderProps = Omit<ComponentProps<typeof SnackbarProvider>, 'children'>;\n\nexport interface OwpUiProviderProps {\n children?: ReactNode;\n dialogsProviderProps?: OwpDialogsProviderProps;\n snackbarProviderProps?: OwpSnackbarProviderProps;\n}\n\nconst defaultSnackbarProviderProps: OwpSnackbarProviderProps = {\n maxSnack: 5,\n autoHideDuration: 3000,\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center',\n },\n style: {\n fontSize: '1.25rem',\n lineHeight: '1.75rem',\n },\n classes: {\n containerRoot: 'bottom-0 right-0 mb-52 md:mb-68 mr-8 lg:mr-80',\n },\n action: (snackbarKey: SnackbarKey) => (\n <IconButton onClick={() => closeSnackbar(snackbarKey)}>\n <CloseIcon fontSize=\"small\" sx={{ color: '#FFFFFF' }} />\n </IconButton>\n ),\n};\n\n/**\n * Dialog, snackbar provider composition\n * @param dialogsProviderProps DialogsProvider 옵션\n * @param snackbarProviderProps SnackbarProvider 옵션\n */\nexport function OwpUiProvider({\n children,\n dialogsProviderProps,\n snackbarProviderProps,\n}: OwpUiProviderProps) {\n const { env } = useOwpAppContext();\n const resolvedSnackbarProviderProps: OwpSnackbarProviderProps = {\n ...defaultSnackbarProviderProps,\n ...snackbarProviderProps,\n style: {\n ...defaultSnackbarProviderProps.style,\n ...snackbarProviderProps?.style,\n },\n classes: {\n ...defaultSnackbarProviderProps.classes,\n ...snackbarProviderProps?.classes,\n },\n action: snackbarProviderProps?.action ?? defaultSnackbarProviderProps.action,\n };\n const resolvedAutoLogoutTimeout = Number(env?.autoLogoutTimeout);\n const autoLogoutTimeout = Number.isFinite(resolvedAutoLogoutTimeout)\n ? resolvedAutoLogoutTimeout\n : undefined;\n\n return (\n <DialogsProvider {...dialogsProviderProps}>\n <SnackbarProvider {...resolvedSnackbarProviderProps}>\n {children}\n {env?.isAutoLogoutEnabled && <OwpAutoLogoutDialog timeout={autoLogoutTimeout} />}\n </SnackbarProvider>\n </DialogsProvider>\n );\n}\n"],"names":["OwpCoreProvider","children","queryClient","queryClientConfig","storePreloadedState","styledEngineProviderProps","appProviderProps","queryClientRef","useRef","client","QueryClient","OwpAppProvider","jsx","OwpStoreProvider","QueryClientProvider","StyledEngineProvider","__name","defaultSnackbarProviderProps","snackbarKey","IconButton","closeSnackbar","CloseIcon","OwpUiProvider","dialogsProviderProps","snackbarProviderProps","env","useOwpAppContext","resolvedSnackbarProviderProps","resolvedAutoLogoutTimeout","autoLogoutTimeout","DialogsProvider","jsxs","SnackbarProvider","OwpAutoLogoutDialog"],"mappings":";;;;;;;;;;;;AAsBO,SAASA,EAAgB;AAAA,EAC9B,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,2BAAAC,IAA4B,EAAE,aAAa,GAAA;AAAA,EAC3C,GAAGC;AACL,GAAyB;AACvB,QAAMC,IAAiBC,EAAgC,MAAS,GAC1DC,IAASP,KAAgBK,EAAe,YAAfA,EAAe,UAAY,IAAIG,EAAYP,CAAiB;AAE3F,2BACGQ,GAAA,EAAgB,GAAGL,GAClB,UAAA,gBAAAM,EAACC,GAAA,EAAiB,gBAAgBT,GAChC,UAAA,gBAAAQ,EAACE,GAAA,EAAoB,QAAAL,GACnB,4BAACM,GAAA,EAAsB,GAAGV,GAA4B,UAAAJ,EAAA,CAAS,GACjE,GACF,EAAA,CACF;AAEJ;AApBgBe,EAAAhB,GAAA;ACLhB,MAAMiB,IAAyD;AAAA,EAC7D,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,cAAc;AAAA,IACZ,UAAU;AAAA,IACV,YAAY;AAAA,EAAA;AAAA,EAEd,OAAO;AAAA,IACL,UAAU;AAAA,IACV,YAAY;AAAA,EAAA;AAAA,EAEd,SAAS;AAAA,IACP,eAAe;AAAA,EAAA;AAAA,EAEjB,QAAQ,gBAAAD,EAAA,CAACE,wBACNC,GAAA,EAAW,SAAS,gBAAAH,EAAA,MAAMI,EAAcF,CAAW,GAA/B,YACnB,UAAA,gBAAAN,EAACS,GAAA,EAAU,UAAS,SAAQ,IAAI,EAAE,OAAO,UAAA,GAAa,EAAA,CACxD,GAHM;AAKV;AAOO,SAASC,EAAc;AAAA,EAC5B,UAAArB;AAAA,EACA,sBAAAsB;AAAA,EACA,uBAAAC;AACF,GAAuB;AACrB,QAAM,EAAE,KAAAC,EAAA,IAAQC,EAAA,GACVC,IAA0D;AAAA,IAC9D,GAAGV;AAAA,IACH,GAAGO;AAAA,IACH,OAAO;AAAA,MACL,GAAGP,EAA6B;AAAA,MAChC,GAAGO,KAAA,gBAAAA,EAAuB;AAAA,IAAA;AAAA,IAE5B,SAAS;AAAA,MACP,GAAGP,EAA6B;AAAA,MAChC,GAAGO,KAAA,gBAAAA,EAAuB;AAAA,IAAA;AAAA,IAE5B,SAAQA,KAAA,gBAAAA,EAAuB,WAAUP,EAA6B;AAAA,EAAA,GAElEW,IAA4B,OAAOH,KAAA,gBAAAA,EAAK,iBAAiB,GACzDI,IAAoB,OAAO,SAASD,CAAyB,IAC/DA,IACA;AAEJ,2BACGE,GAAA,EAAiB,GAAGP,GACnB,UAAA,gBAAAQ,EAACC,GAAA,EAAkB,GAAGL,GACnB,UAAA;AAAA,IAAA1B;AAAA,KACAwB,KAAA,gBAAAA,EAAK,wBAAuB,gBAAAb,EAACqB,GAAA,EAAoB,SAASJ,EAAA,CAAmB;AAAA,EAAA,EAAA,CAChF,EAAA,CACF;AAEJ;AAhCgBb,EAAAM,GAAA;"}
1
+ {"version":3,"file":"context.js","sources":["../src/context/OwpCoreProvider.tsx","../src/context/OwpUiProvider.tsx"],"sourcesContent":["import { createInitialOwpSettings } from '@/default-settings/OwpDefaultSettings';\nimport { StyledEngineProvider } from '@mui/material/styles';\nimport { QueryClient, QueryClientConfig, QueryClientProvider } from '@tanstack/react-query';\nimport { merge } from 'es-toolkit/compat';\nimport { ComponentProps, useRef } from 'react';\nimport { OwpAppProvider, OwpAppProviderProps } from './OwpAppProvider';\nimport { OwpStoreProvider, OwpStoreProviderProps } from './OwpStoreProvider';\n\ntype OwpStyledEngineProviderProps = Omit<ComponentProps<typeof StyledEngineProvider>, 'children'>;\n\nexport interface OwpCoreProviderProps extends OwpAppProviderProps {\n queryClient?: QueryClient;\n queryClientConfig?: QueryClientConfig;\n storePreloadedState?: OwpStoreProviderProps['preloadedState'];\n styledEngineProviderProps?: OwpStyledEngineProviderProps;\n}\n\n/**\n * App, Redux, React Query provider composition\n * @param queryClient 외부 QueryClient 인스턴스\n * @param queryClientConfig QueryClient 생성 옵션\n * @param storePreloadedState 초기 Redux 상태\n * @param styledEngineProviderProps StyledEngineProvider 옵션\n */\nexport function OwpCoreProvider({\n children,\n queryClient,\n queryClientConfig,\n storePreloadedState,\n styledEngineProviderProps = { injectFirst: true },\n ...appProviderProps\n}: OwpCoreProviderProps) {\n const queryClientRef = useRef<QueryClient | undefined>(undefined);\n const preloadedStateRef = useRef<OwpStoreProviderProps['preloadedState'] | undefined>(undefined);\n const client = queryClient ?? (queryClientRef.current ??= new QueryClient(queryClientConfig));\n\n if (!preloadedStateRef.current) {\n const initialSettings = createInitialOwpSettings(\n appProviderProps.configs.settingsConfig,\n appProviderProps.configs.themesConfig,\n );\n\n preloadedStateRef.current = merge(\n {},\n {\n owpSettings: {\n initial: initialSettings,\n defaults: merge({}, initialSettings),\n current: merge({}, initialSettings),\n },\n },\n storePreloadedState,\n );\n }\n\n return (\n <OwpAppProvider {...appProviderProps}>\n <OwpStoreProvider preloadedState={preloadedStateRef.current}>\n <QueryClientProvider client={client}>\n <StyledEngineProvider {...styledEngineProviderProps}>{children}</StyledEngineProvider>\n </QueryClientProvider>\n </OwpStoreProvider>\n </OwpAppProvider>\n );\n}\n","import { OwpAutoLogoutDialog } from '@/components/OwpAutoLogoutDialog/OwpAutoLogoutDialog';\nimport { OwpLoading } from '@/components/OwpLoading';\nimport { OwpPageLockLoading } from '@/components/OwpPageLockLoading';\nimport { useAccessTokenGuard, useGetPageLockLoading } from '@/hooks';\nimport CloseIcon from '@mui/icons-material/Close';\nimport IconButton from '@mui/material/IconButton';\nimport { DialogsProvider } from '@toolpad/core/useDialogs';\nimport { closeSnackbar, SnackbarKey, SnackbarProvider } from 'notistack';\nimport { ComponentProps, ReactNode } from 'react';\nimport { useOwpAppContext } from './OwpAppProvider';\n\ntype OwpDialogsProviderProps = Omit<ComponentProps<typeof DialogsProvider>, 'children'>;\ntype OwpSnackbarProviderProps = Omit<ComponentProps<typeof SnackbarProvider>, 'children'>;\n\nexport interface OwpUiProviderProps {\n children?: ReactNode;\n dialogsProviderProps?: OwpDialogsProviderProps;\n snackbarProviderProps?: OwpSnackbarProviderProps;\n}\n\nconst defaultSnackbarProviderProps: OwpSnackbarProviderProps = {\n maxSnack: 5,\n autoHideDuration: 3000,\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center',\n },\n style: {\n fontSize: '1.25rem',\n lineHeight: '1.75rem',\n },\n classes: {\n containerRoot: 'bottom-0 right-0 mb-52 md:mb-68 mr-8 lg:mr-80',\n },\n action: (snackbarKey: SnackbarKey) => (\n <IconButton onClick={() => closeSnackbar(snackbarKey)}>\n <CloseIcon fontSize=\"small\" sx={{ color: '#FFFFFF' }} />\n </IconButton>\n ),\n};\n\n/**\n * Dialog, snackbar provider composition\n * @param dialogsProviderProps DialogsProvider 옵션\n * @param snackbarProviderProps SnackbarProvider 옵션\n */\nexport function OwpUiProvider({\n children,\n dialogsProviderProps,\n snackbarProviderProps,\n}: OwpUiProviderProps) {\n const { env } = useOwpAppContext();\n const pageLockLoadingProps = useGetPageLockLoading();\n const shouldRedirectToLogin = useAccessTokenGuard();\n const resolvedSnackbarProviderProps: OwpSnackbarProviderProps = {\n ...defaultSnackbarProviderProps,\n ...snackbarProviderProps,\n style: {\n ...defaultSnackbarProviderProps.style,\n ...snackbarProviderProps?.style,\n },\n classes: {\n ...defaultSnackbarProviderProps.classes,\n ...snackbarProviderProps?.classes,\n },\n action: snackbarProviderProps?.action ?? defaultSnackbarProviderProps.action,\n };\n const resolvedAutoLogoutTimeout = Number(env?.autoLogoutTimeout);\n const autoLogoutTimeout = Number.isFinite(resolvedAutoLogoutTimeout)\n ? resolvedAutoLogoutTimeout\n : undefined;\n\n if (shouldRedirectToLogin) {\n return <OwpLoading className=\"min-h-screen\" />;\n }\n\n return (\n <DialogsProvider {...dialogsProviderProps}>\n <SnackbarProvider {...resolvedSnackbarProviderProps}>\n {children}\n <OwpPageLockLoading {...pageLockLoadingProps} />\n {env?.isAutoLogoutEnabled && <OwpAutoLogoutDialog timeout={autoLogoutTimeout} />}\n </SnackbarProvider>\n </DialogsProvider>\n );\n}\n"],"names":["OwpCoreProvider","children","queryClient","queryClientConfig","storePreloadedState","styledEngineProviderProps","appProviderProps","queryClientRef","useRef","preloadedStateRef","client","QueryClient","initialSettings","createInitialOwpSettings","merge","OwpAppProvider","jsx","OwpStoreProvider","QueryClientProvider","StyledEngineProvider","__name","defaultSnackbarProviderProps","snackbarKey","IconButton","closeSnackbar","CloseIcon","OwpUiProvider","dialogsProviderProps","snackbarProviderProps","env","useOwpAppContext","pageLockLoadingProps","useGetPageLockLoading","shouldRedirectToLogin","useAccessTokenGuard","resolvedSnackbarProviderProps","resolvedAutoLogoutTimeout","autoLogoutTimeout","OwpLoading","DialogsProvider","jsxs","SnackbarProvider","OwpPageLockLoading","OwpAutoLogoutDialog"],"mappings":"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"}
package/dist/hooks.js CHANGED
@@ -1,82 +1,82 @@
1
- var M = Object.defineProperty;
2
- var s = (t, e) => M(t, "name", { value: e, configurable: !0 });
3
- import { u as f } from "./useTreeGridExcelExport-QNcWzx5v.js";
4
- import { g as y, i as B, j as F, h as $, c as q, e as w, b as z, k as Q, n as R, m as V, a as W, d as Y, f as H, l as J, o as Z, p as ee, q as se, r as te } from "./useTreeGridExcelExport-QNcWzx5v.js";
5
- import { u as oe, a as ue } from "./useOwpTranslation-BelpX-fd.js";
6
- import { S as c } from "./storageKeys-DRzte9LZ.js";
7
- import { useAtomValue as i, useSetAtom as O } from "jotai";
8
- import { atomWithStorage as p } from "jotai/utils";
9
- import { g as ae, s as me, u as Ce } from "./useStorage-BA0D8KA7.js";
10
- import { s as g } from "./treeGridUtil-_FDvRzzt.js";
11
- import { useEffect as C, useRef as I } from "react";
12
- import { F as ie } from "./language-CwsGUe4C.js";
13
- const L = p(
14
- c.currentUser,
15
- void 0
16
- ), _ = /* @__PURE__ */ s(() => i(L), "useGetCurrentUser"), h = /* @__PURE__ */ s(() => O(L), "useSetCurrentUser"), D = p(c.currentUserId, ""), l = /* @__PURE__ */ s(() => i(D), "useGetCurrentUserId"), x = /* @__PURE__ */ s(() => O(D), "useSetCurrentUserId"), S = p(
17
- c.lockLoadingProps,
18
- { loading: !1 }
19
- ), k = /* @__PURE__ */ s(() => i(S), "useGetPageLockLoading"), v = /* @__PURE__ */ s(() => ({ setLoading: O(S) }), "usePageLockLoading"), X = /* @__PURE__ */ s((t, e, u, r) => {
20
- const o = f(), n = o == null ? void 0 : o[u];
21
- C(() => {
22
- !r || !n || g(
23
- t,
1
+ var p = Object.defineProperty;
2
+ var n = (s, e) => p(s, "name", { value: e, configurable: !0 });
3
+ import { b as O } from "./useShortcuts-CCf98L8m.js";
4
+ import { d, f as P, h as T, j as x, e as _, l as h, o as X, n as k, c as A, g as U, i as b, k as v, m as j, p as l, q as y } from "./useShortcuts-CCf98L8m.js";
5
+ import { a as K, b as $, u as q, d as w, c as z } from "./usePageLockLoading-BUI_3PlR.js";
6
+ import { u as Q, b as H, c as J, a as R, d as V, e as W } from "./useTreeGridExcelExport-N2nOKmkz.js";
7
+ import { useRef as i, useEffect as a } from "react";
8
+ import { g as Z, s as ee, u as se } from "./useStorage-CuUmH4fD.js";
9
+ import { s as E } from "./treeGridUtil-WTM_djsN.js";
10
+ import { FALLBACK_LANGUAGE_LIST as te } from "./constants.js";
11
+ function M(s) {
12
+ const e = i();
13
+ return a(() => {
14
+ e.current = s;
15
+ }, [s]), e.current;
16
+ }
17
+ n(M, "usePrevious");
18
+ const G = /* @__PURE__ */ n((s, e, o, r) => {
19
+ const t = O(), u = t == null ? void 0 : t[o];
20
+ a(() => {
21
+ !r || !u || E(
22
+ s,
24
23
  e,
25
- n,
24
+ u,
26
25
  "IPX_COMMONCODE.CODEID",
27
26
  ["IPX_COMMONCODE.CODENM", "IPX_COMMONCODE.CODEID"]
28
27
  );
29
- }, [u, e, t, r, n]);
30
- }, "useTreeGridCommonCodeEnum"), K = /* @__PURE__ */ s((t, e, u) => {
31
- const r = f(), o = I(e), n = e.map(({ field: a, codeId: m }) => `${a}:${m}`).join("|");
32
- C(() => {
33
- o.current = e;
34
- }, [e]), C(() => {
35
- !u || !r || o.current.forEach(({ field: a, codeId: m }) => {
36
- const E = r[m];
37
- E && g(
38
- t,
39
- a,
40
- E,
28
+ }, [o, e, s, r, u]);
29
+ }, "useTreeGridCommonCodeEnum"), I = /* @__PURE__ */ n((s, e, o) => {
30
+ const r = O(), t = i(e), u = e.map(({ field: C, codeId: m }) => `${C}:${m}`).join("|");
31
+ a(() => {
32
+ t.current = e;
33
+ }, [e]), a(() => {
34
+ !o || !r || t.current.forEach(({ field: C, codeId: m }) => {
35
+ const c = r[m];
36
+ c && E(
37
+ s,
38
+ C,
39
+ c,
41
40
  "IPX_COMMONCODE.CODEID",
42
41
  ["IPX_COMMONCODE.CODENM", "IPX_COMMONCODE.CODEID"]
43
42
  );
44
43
  });
45
- }, [r, n, t, u]);
44
+ }, [r, u, s, o]);
46
45
  }, "useTreeGridCommonCodeEnums");
47
46
  export {
48
- ie as FALLBACK_LANGUAGE_LIST,
49
- ae as getEnv,
50
- me as setEnv,
51
- oe as useConfirm,
52
- y as useDebounce,
53
- B as useDeepCompareEffect,
54
- F as useDeepCompareEffectNoCheck,
55
- $ as useDeepCompareMemoize,
56
- f as useGetCommonCodeList,
57
- q as useGetCurrentLanguage,
58
- w as useGetCurrentLogoSrc,
59
- _ as useGetCurrentUser,
60
- l as useGetCurrentUserId,
61
- z as useGetLanguageList,
62
- Q as useGetNavigationList,
63
- k as useGetPageLockLoading,
64
- R as useGetShortcuts,
65
- ue as useOwpTranslation,
66
- v as usePageLockLoading,
67
- V as usePrevious,
68
- W as useSetCommonCodeList,
69
- Y as useSetCurrentLanguage,
70
- H as useSetCurrentLogoSrc,
71
- h as useSetCurrentUser,
72
- x as useSetCurrentUserId,
73
- J as useSetNavigationList,
74
- Z as useSetShortcuts,
75
- Ce as useStorage,
76
- ee as useThemeMediaQuery,
77
- se as useTimeout,
78
- X as useTreeGridCommonCodeEnum,
79
- K as useTreeGridCommonCodeEnums,
80
- te as useTreeGridExcelExport
47
+ te as FALLBACK_LANGUAGE_LIST,
48
+ Z as getEnv,
49
+ ee as setEnv,
50
+ K as useAccessTokenGuard,
51
+ d as useConfirm,
52
+ Q as useDebounce,
53
+ H as useDeepCompareEffect,
54
+ J as useDeepCompareEffectNoCheck,
55
+ R as useDeepCompareMemoize,
56
+ O as useGetCommonCodeList,
57
+ P as useGetCurrentLanguage,
58
+ T as useGetCurrentLogoSrc,
59
+ x as useGetCurrentUser,
60
+ $ as useGetCurrentUserId,
61
+ _ as useGetLanguageList,
62
+ h as useGetNavigationList,
63
+ q as useGetPageLockLoading,
64
+ X as useGetShortcuts,
65
+ k as useOwpTranslation,
66
+ w as usePageLockLoading,
67
+ M as usePrevious,
68
+ A as useSetCommonCodeList,
69
+ U as useSetCurrentLanguage,
70
+ b as useSetCurrentLogoSrc,
71
+ v as useSetCurrentUser,
72
+ z as useSetCurrentUserId,
73
+ j as useSetNavigationList,
74
+ l as useSetShortcuts,
75
+ se as useStorage,
76
+ V as useThemeMediaQuery,
77
+ y as useTimeout,
78
+ G as useTreeGridCommonCodeEnum,
79
+ I as useTreeGridCommonCodeEnums,
80
+ W as useTreeGridExcelExport
81
81
  };
82
82
  //# sourceMappingURL=hooks.js.map
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../src/hooks/useCurrentUser.ts","../src/hooks/useCurrentUserId.ts","../src/hooks/usePageLockLoading.ts","../src/hooks/useTreeGridCommonCodeEnum.ts","../src/hooks/useTreeGridCommonCodeEnums.ts"],"sourcesContent":["import { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\n\nexport interface CurrentUser {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any;\n}\n\nconst currentUserAtom = atomWithStorage<CurrentUser | undefined>(\n STORAGE_KEYS.currentUser,\n undefined,\n);\n\n/**\n * 현재 사용자 정보 조회\n */\nexport const useGetCurrentUser = () => {\n return useAtomValue(currentUserAtom);\n};\n\n/**\n * 현재 사용자 정보 설정\n */\nexport const useSetCurrentUser = () => {\n return useSetAtom(currentUserAtom);\n};\n","import { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\n\nconst currentUserIdAtom = atomWithStorage<string | ''>(STORAGE_KEYS.currentUserId, '');\n\n/**\n * 현재 사용자 ID 조회 훅\n */\nexport const useGetCurrentUserId = () => {\n return useAtomValue(currentUserIdAtom);\n};\n\n/**\n * 현재 사용자 ID 설정 훅\n */\nexport const useSetCurrentUserId = () => {\n return useSetAtom(currentUserIdAtom);\n};\n","import type { OwpPageLockLoadingProps } from '@/components/OwpPageLockLoading';\nimport { STORAGE_KEYS } from '@/constants/storageKeys';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport { atomWithStorage } from 'jotai/utils';\n\nconst currentLockLoadingAtom = atomWithStorage<OwpPageLockLoadingProps | undefined>(\n STORAGE_KEYS.lockLoadingProps,\n { loading: false },\n);\n\n/**\n * 페이지 잠금 로딩 상태 조회\n */\nexport const useGetPageLockLoading = () => {\n return useAtomValue(currentLockLoadingAtom);\n};\n\n/**\n * 페이지 잠금 로딩 상태 설정\n */\nexport const usePageLockLoading = () => {\n return { setLoading: useSetAtom(currentLockLoadingAtom) };\n};\n","import { useGetCommonCodeList } from '@/hooks/useCommonCodeList';\nimport { setTreeGridColumnEnumOptionsById } from '@/utils/treeGridUtil';\nimport { useEffect } from 'react';\n\n/**\n * TreeGrid 공통코드 Enum 옵션 반영\n * @param id TreeGrid 인스턴스 ID\n * @param field Enum을 반영할 컬럼명\n * @param codeId 공통코드 그룹 ID\n * @param isGridReady TreeGrid 준비 여부\n */\nexport const useTreeGridCommonCodeEnum = (\n id: string,\n field: string,\n codeId: string,\n isGridReady: boolean,\n) => {\n const commonCodeMap = useGetCommonCodeList();\n const options = commonCodeMap?.[codeId];\n\n useEffect(() => {\n if (!isGridReady || !options) {\n return;\n }\n\n setTreeGridColumnEnumOptionsById(\n id,\n field,\n options,\n 'IPX_COMMONCODE.CODEID',\n ['IPX_COMMONCODE.CODENM', 'IPX_COMMONCODE.CODEID'],\n );\n }, [codeId, field, id, isGridReady, options]);\n};\n","import { useGetCommonCodeList } from '@/hooks/useCommonCodeList';\nimport { setTreeGridColumnEnumOptionsById } from '@/utils/treeGridUtil';\nimport { useEffect, useRef } from 'react';\n\n/**\n * TreeGrid 공통코드 Enum 옵션 정보\n * @param field Enum을 반영할 컬럼명\n * @param codeId 공통코드 그룹 ID\n */\nexport interface TreeGridCommonCodeEnumConfig {\n field: string;\n codeId: string;\n}\n\n/**\n * TreeGrid 공통코드 Enum 옵션 일괄 반영\n * @param id TreeGrid 인스턴스 ID\n * @param configs Enum 반영 대상 목록\n * @param isGridReady TreeGrid 준비 여부\n */\nexport const useTreeGridCommonCodeEnums = (\n id: string,\n configs: TreeGridCommonCodeEnumConfig[],\n isGridReady: boolean,\n) => {\n const commonCodeMap = useGetCommonCodeList();\n const configsRef = useRef(configs);\n const configDependencyKey = configs.map(({ field, codeId }) => `${field}:${codeId}`).join('|');\n\n useEffect(() => {\n configsRef.current = configs;\n }, [configs]);\n\n useEffect(() => {\n if (!isGridReady || !commonCodeMap) {\n return;\n }\n\n configsRef.current.forEach(({ field, codeId }) => {\n const options = commonCodeMap[codeId];\n\n if (!options) {\n return;\n }\n\n setTreeGridColumnEnumOptionsById(\n id,\n field,\n options,\n 'IPX_COMMONCODE.CODEID',\n ['IPX_COMMONCODE.CODENM', 'IPX_COMMONCODE.CODEID'],\n );\n });\n }, [commonCodeMap, configDependencyKey, id, isGridReady]);\n};\n"],"names":["currentUserAtom","atomWithStorage","STORAGE_KEYS","useGetCurrentUser","__name","useAtomValue","useSetCurrentUser","useSetAtom","currentUserIdAtom","useGetCurrentUserId","useSetCurrentUserId","currentLockLoadingAtom","useGetPageLockLoading","usePageLockLoading","useTreeGridCommonCodeEnum","id","field","codeId","isGridReady","commonCodeMap","useGetCommonCodeList","options","useEffect","setTreeGridColumnEnumOptionsById","useTreeGridCommonCodeEnums","configs","configsRef","useRef","configDependencyKey"],"mappings":";;;;;;;;;;;;AASA,MAAMA,IAAkBC;AAAA,EACtBC,EAAa;AAAA,EACb;AACF,GAKaC,IAAoB,gBAAAC,EAAA,MACxBC,EAAaL,CAAe,GADJ,sBAOpBM,IAAoB,gBAAAF,EAAA,MACxBG,EAAWP,CAAe,GADF,sBCpB3BQ,IAAoBP,EAA6BC,EAAa,eAAe,EAAE,GAKxEO,IAAsB,gBAAAL,EAAA,MAC1BC,EAAaG,CAAiB,GADJ,wBAOtBE,IAAsB,gBAAAN,EAAA,MAC1BG,EAAWC,CAAiB,GADF,wBCX7BG,IAAyBV;AAAA,EAC7BC,EAAa;AAAA,EACb,EAAE,SAAS,GAAA;AACb,GAKaU,IAAwB,gBAAAR,EAAA,MAC5BC,EAAaM,CAAsB,GADP,0BAOxBE,IAAqB,gBAAAT,EAAA,OACzB,EAAE,YAAYG,EAAWI,CAAsB,EAAA,IADtB,uBCTrBG,IAA4B,gBAAAV,EAAA,CACvCW,GACAC,GACAC,GACAC,MACG;AACH,QAAMC,IAAgBC,EAAA,GAChBC,IAAUF,KAAA,gBAAAA,EAAgBF;AAEhC,EAAAK,EAAU,MAAM;AACd,IAAI,CAACJ,KAAe,CAACG,KAIrBE;AAAA,MACER;AAAA,MACAC;AAAA,MACAK;AAAA,MACA;AAAA,MACA,CAAC,yBAAyB,uBAAuB;AAAA,IAAA;AAAA,EAErD,GAAG,CAACJ,GAAQD,GAAOD,GAAIG,GAAaG,CAAO,CAAC;AAC9C,GAtByC,8BCS5BG,IAA6B,gBAAApB,EAAA,CACxCW,GACAU,GACAP,MACG;AACH,QAAMC,IAAgBC,EAAA,GAChBM,IAAaC,EAAOF,CAAO,GAC3BG,IAAsBH,EAAQ,IAAI,CAAC,EAAE,OAAAT,GAAO,QAAAC,EAAA,MAAa,GAAGD,CAAK,IAAIC,CAAM,EAAE,EAAE,KAAK,GAAG;AAE7F,EAAAK,EAAU,MAAM;AACd,IAAAI,EAAW,UAAUD;AAAA,EACvB,GAAG,CAACA,CAAO,CAAC,GAEZH,EAAU,MAAM;AACd,IAAI,CAACJ,KAAe,CAACC,KAIrBO,EAAW,QAAQ,QAAQ,CAAC,EAAE,OAAAV,GAAO,QAAAC,QAAa;AAChD,YAAMI,IAAUF,EAAcF,CAAM;AAEpC,MAAKI,KAILE;AAAA,QACER;AAAA,QACAC;AAAA,QACAK;AAAA,QACA;AAAA,QACA,CAAC,yBAAyB,uBAAuB;AAAA,MAAA;AAAA,IAErD,CAAC;AAAA,EACH,GAAG,CAACF,GAAeS,GAAqBb,GAAIG,CAAW,CAAC;AAC1D,GAlC0C;"}
1
+ {"version":3,"file":"hooks.js","sources":["../src/hooks/usePrevious.ts","../src/hooks/useTreeGridCommonCodeEnum.ts","../src/hooks/useTreeGridCommonCodeEnums.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\n/**\n * The usePrevious function is a custom hook that returns the previous value of a variable.\n * It takes in a value as a parameter and returns the previous value.\n */\nexport function usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T | undefined>();\n\n // Store current value in ref\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n // Return previous value (happens before update in useEffect above)\n return ref.current;\n}\n","import { useGetCommonCodeList } from '@/hooks/useCommonCodeList';\nimport { setTreeGridColumnEnumOptionsById } from '@/utils/treeGridUtil';\nimport { useEffect } from 'react';\n\n/**\n * TreeGrid 공통코드 Enum 옵션 반영\n * @param id TreeGrid 인스턴스 ID\n * @param field Enum을 반영할 컬럼명\n * @param codeId 공통코드 그룹 ID\n * @param isGridReady TreeGrid 준비 여부\n */\nexport const useTreeGridCommonCodeEnum = (\n id: string,\n field: string,\n codeId: string,\n isGridReady: boolean,\n) => {\n const commonCodeMap = useGetCommonCodeList();\n const options = commonCodeMap?.[codeId];\n\n useEffect(() => {\n if (!isGridReady || !options) {\n return;\n }\n\n setTreeGridColumnEnumOptionsById(\n id,\n field,\n options,\n 'IPX_COMMONCODE.CODEID',\n ['IPX_COMMONCODE.CODENM', 'IPX_COMMONCODE.CODEID'],\n );\n }, [codeId, field, id, isGridReady, options]);\n};\n","import { useGetCommonCodeList } from '@/hooks/useCommonCodeList';\nimport { setTreeGridColumnEnumOptionsById } from '@/utils/treeGridUtil';\nimport { useEffect, useRef } from 'react';\n\n/**\n * TreeGrid 공통코드 Enum 옵션 정보\n * @param field Enum을 반영할 컬럼명\n * @param codeId 공통코드 그룹 ID\n */\nexport interface TreeGridCommonCodeEnumConfig {\n field: string;\n codeId: string;\n}\n\n/**\n * TreeGrid 공통코드 Enum 옵션 일괄 반영\n * @param id TreeGrid 인스턴스 ID\n * @param configs Enum 반영 대상 목록\n * @param isGridReady TreeGrid 준비 여부\n */\nexport const useTreeGridCommonCodeEnums = (\n id: string,\n configs: TreeGridCommonCodeEnumConfig[],\n isGridReady: boolean,\n) => {\n const commonCodeMap = useGetCommonCodeList();\n const configsRef = useRef(configs);\n const configDependencyKey = configs.map(({ field, codeId }) => `${field}:${codeId}`).join('|');\n\n useEffect(() => {\n configsRef.current = configs;\n }, [configs]);\n\n useEffect(() => {\n if (!isGridReady || !commonCodeMap) {\n return;\n }\n\n configsRef.current.forEach(({ field, codeId }) => {\n const options = commonCodeMap[codeId];\n\n if (!options) {\n return;\n }\n\n setTreeGridColumnEnumOptionsById(\n id,\n field,\n options,\n 'IPX_COMMONCODE.CODEID',\n ['IPX_COMMONCODE.CODENM', 'IPX_COMMONCODE.CODEID'],\n );\n });\n }, [commonCodeMap, configDependencyKey, id, isGridReady]);\n};\n"],"names":["usePrevious","value","ref","useRef","useEffect","__name","useTreeGridCommonCodeEnum","id","field","codeId","isGridReady","commonCodeMap","useGetCommonCodeList","options","setTreeGridColumnEnumOptionsById","useTreeGridCommonCodeEnums","configs","configsRef","configDependencyKey"],"mappings":";;;;;;;;;;AAMO,SAASA,EAAeC,GAAyB;AACtD,QAAMC,IAAMC,EAAA;AAGZ,SAAAC,EAAU,MAAM;AACd,IAAAF,EAAI,UAAUD;AAAA,EAChB,GAAG,CAACA,CAAK,CAAC,GAGHC,EAAI;AACb;AAVgBG,EAAAL,GAAA;ACKT,MAAMM,IAA4B,gBAAAD,EAAA,CACvCE,GACAC,GACAC,GACAC,MACG;AACH,QAAMC,IAAgBC,EAAA,GAChBC,IAAUF,KAAA,gBAAAA,EAAgBF;AAEhC,EAAAL,EAAU,MAAM;AACd,IAAI,CAACM,KAAe,CAACG,KAIrBC;AAAA,MACEP;AAAA,MACAC;AAAA,MACAK;AAAA,MACA;AAAA,MACA,CAAC,yBAAyB,uBAAuB;AAAA,IAAA;AAAA,EAErD,GAAG,CAACJ,GAAQD,GAAOD,GAAIG,GAAaG,CAAO,CAAC;AAC9C,GAtByC,8BCS5BE,IAA6B,gBAAAV,EAAA,CACxCE,GACAS,GACAN,MACG;AACH,QAAMC,IAAgBC,EAAA,GAChBK,IAAad,EAAOa,CAAO,GAC3BE,IAAsBF,EAAQ,IAAI,CAAC,EAAE,OAAAR,GAAO,QAAAC,EAAA,MAAa,GAAGD,CAAK,IAAIC,CAAM,EAAE,EAAE,KAAK,GAAG;AAE7F,EAAAL,EAAU,MAAM;AACd,IAAAa,EAAW,UAAUD;AAAA,EACvB,GAAG,CAACA,CAAO,CAAC,GAEZZ,EAAU,MAAM;AACd,IAAI,CAACM,KAAe,CAACC,KAIrBM,EAAW,QAAQ,QAAQ,CAAC,EAAE,OAAAT,GAAO,QAAAC,QAAa;AAChD,YAAMI,IAAUF,EAAcF,CAAM;AAEpC,MAAKI,KAILC;AAAA,QACEP;AAAA,QACAC;AAAA,QACAK;AAAA,QACA;AAAA,QACA,CAAC,yBAAyB,uBAAuB;AAAA,MAAA;AAAA,IAErD,CAAC;AAAA,EACH,GAAG,CAACF,GAAeO,GAAqBX,GAAIG,CAAW,CAAC;AAC1D,GAlC0C;"}