@owp/core 2.2.6 → 2.3.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/dist/_virtual/index11.js +2 -2
- package/dist/_virtual/index12.js +2 -2
- package/dist/_virtual/index13.js +2 -2
- package/dist/_virtual/index14.js +2 -2
- package/dist/_virtual/index16.js +5 -2
- package/dist/_virtual/index16.js.map +1 -1
- package/dist/_virtual/index17.js +2 -2
- package/dist/_virtual/index6.js +2 -5
- package/dist/_virtual/index6.js.map +1 -1
- package/dist/_virtual/index7.js +2 -2
- package/dist/components/OwpLayout/OwpLayout.js +29 -30
- package/dist/components/OwpLayout/OwpLayout.js.map +1 -1
- package/dist/components/OwpScrollbars/OwpScrollbars.js +16 -17
- package/dist/components/OwpScrollbars/OwpScrollbars.js.map +1 -1
- package/dist/components/OwpStyleProvider/OwpStyleProvider.js +28 -29
- package/dist/components/OwpStyleProvider/OwpStyleProvider.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +80 -74
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
- package/dist/contexts/OwpCoreProvider.js +22 -36
- package/dist/contexts/OwpCoreProvider.js.map +1 -1
- package/dist/contexts/OwpStoreProvider.js +9 -9
- package/dist/contexts/OwpStoreProvider.js.map +1 -1
- package/dist/hooks/useNavbar.js +24 -0
- package/dist/hooks/useNavbar.js.map +1 -0
- package/dist/hooks/useOwpSettings.js +21 -0
- package/dist/hooks/useOwpSettings.js.map +1 -0
- package/dist/hooks.js +75 -62
- package/dist/hooks.js.map +1 -1
- package/dist/layout/Layout.js +28 -29
- package/dist/layout/Layout.js.map +1 -1
- package/dist/layout/components/layouts/FooterLayout.js +15 -16
- package/dist/layout/components/layouts/FooterLayout.js.map +1 -1
- package/dist/layout/components/layouts/NavbarToggleFabLayout.js +21 -18
- package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
- package/dist/layout/components/layouts/NavbarWrapperLayout.js +20 -21
- package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
- package/dist/layout/components/navbar/NavbarPinToggleButton.js +10 -11
- package/dist/layout/components/navbar/NavbarPinToggleButton.js.map +1 -1
- package/dist/layout/components/navbar/NavbarToggleButton.js +31 -32
- package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
- package/dist/layout/components/navbar/style/NavbarStyle.js +36 -37
- package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
- package/dist/layout/components/navbar/style/NavbarStyleContent.js +29 -30
- package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
- package/dist/layout/components/navigation/Navigation.js +18 -22
- package/dist/layout/components/navigation/Navigation.js.map +1 -1
- package/dist/layout/components/toggles/NavigationSearchToggle.js +55 -60
- package/dist/layout/components/toggles/NavigationSearchToggle.js.map +1 -1
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js +44 -49
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
- package/dist/layout/components/toolbar/ToolbarLayout.js +26 -27
- package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
- package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/.pnpm/react-imask@7.6.1_react@19.2.4/node_modules/react-imask/esm/mixin.js +1 -1
- package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
- package/dist/store/atoms/navbarAtoms.js +84 -0
- package/dist/store/atoms/navbarAtoms.js.map +1 -0
- package/dist/store/atoms/owpSettingsAtoms.js +140 -0
- package/dist/store/atoms/owpSettingsAtoms.js.map +1 -0
- package/dist/store/atoms/owpStore.js +29 -0
- package/dist/store/atoms/owpStore.js.map +1 -0
- package/dist/store.js +44 -39
- package/dist/store.js.map +1 -1
- package/dist/types/components/OwpPicker/internal/DatePickerInput.d.ts +1 -1
- package/dist/types/components/OwpTable/OwpTable.d.ts +1 -1
- package/dist/types/components/OwpTabs/OwpTab.d.ts +1 -1
- package/dist/types/components/OwpTabs/OwpTabs.d.ts +1 -1
- package/dist/types/contexts/OwpCoreProvider.d.ts +2 -2
- package/dist/types/contexts/OwpStoreProvider.d.ts +4 -4
- package/dist/types/hooks/index.d.ts +2 -1
- package/dist/types/hooks/useNavbar.d.ts +19 -0
- package/dist/types/hooks/useOwpSettings.d.ts +79 -0
- package/dist/types/layout/components/navigation/Navigation.d.ts +6 -2
- package/dist/types/layout/components/toggles/NavigationSearchToggle.d.ts +5 -2
- package/dist/types/layout/components/toggles/NavigationShortcutsToggle.d.ts +5 -2
- package/dist/types/store/atoms/index.d.ts +3 -0
- package/dist/types/store/atoms/internal/types.d.ts +29 -0
- package/dist/types/store/atoms/navbarAtoms.d.ts +48 -0
- package/dist/types/store/atoms/owpSettingsAtoms.d.ts +89 -0
- package/dist/types/store/atoms/owpStore.d.ts +13 -0
- package/dist/types/store/index.d.ts +1 -3
- package/package.json +2 -6
- package/dist/hooks/useAppStore.js +0 -8
- package/dist/hooks/useAppStore.js.map +0 -1
- package/dist/store/generateReducersFromSlices.js +0 -18
- package/dist/store/generateReducersFromSlices.js.map +0 -1
- package/dist/store/lazyLoadedSlices.js +0 -16
- package/dist/store/lazyLoadedSlices.js.map +0 -1
- package/dist/store/middleware.js +0 -9
- package/dist/store/middleware.js.map +0 -1
- package/dist/store/navbarSlice.js +0 -71
- package/dist/store/navbarSlice.js.map +0 -1
- package/dist/store/navigationSlice.js +0 -46
- package/dist/store/navigationSlice.js.map +0 -1
- package/dist/store/owpSettingsSlice.js +0 -195
- package/dist/store/owpSettingsSlice.js.map +0 -1
- package/dist/store/store.js +0 -17
- package/dist/store/store.js.map +0 -1
- package/dist/store/withSlices.js +0 -27
- package/dist/store/withSlices.js.map +0 -1
- package/dist/types/hooks/useAppStore.d.ts +0 -7
- package/dist/types/store/generateReducersFromSlices.d.ts +0 -6
- package/dist/types/store/lazyLoadedSlices.d.ts +0 -9
- package/dist/types/store/middleware.d.ts +0 -17
- package/dist/types/store/navbarSlice.d.ts +0 -22
- package/dist/types/store/navigationSlice.d.ts +0 -93
- package/dist/types/store/owpSettingsSlice.d.ts +0 -112
- package/dist/types/store/store.d.ts +0 -13
- package/dist/types/store/withSlices.d.ts +0 -11
|
@@ -4,7 +4,7 @@ import { TREEGRID_INPUT_CELL_COLOR as L } from "../../../constants/treeGrid.js";
|
|
|
4
4
|
import { highlightTreeGridCellById as h } from "../../../utils/treeGridUtil.js";
|
|
5
5
|
import { applyTreeGridLayoutToGrid as x } from "./treeGridLayout.js";
|
|
6
6
|
import { measureTreeGridPerf as N } from "../utils/perf.js";
|
|
7
|
-
import { debounce as
|
|
7
|
+
import { debounce as R } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/debounce.js";
|
|
8
8
|
import { get as A } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/get.js";
|
|
9
9
|
import { isEmpty as k } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
|
|
10
10
|
const U = Number.parseInt(
|
|
@@ -13,154 +13,160 @@ const U = Number.parseInt(
|
|
|
13
13
|
), g = 300, _ = {
|
|
14
14
|
en: "/assets/vendors/Grid/TextEN.xml",
|
|
15
15
|
kr: "/assets/vendors/Grid/TextKR.xml"
|
|
16
|
-
}, E = /* @__PURE__ */ G((e) => `${e}?noCache=${Date.now()}`, "appendNoCacheQuery"), V = /* @__PURE__ */ G((e) => e === "kr" ? _.kr : _.en, "getTreeGridTextResourceUrl"),
|
|
16
|
+
}, E = /* @__PURE__ */ G((e) => `${e}?noCache=${Date.now()}`, "appendNoCacheQuery"), V = /* @__PURE__ */ G((e) => e === "kr" ? _.kr : _.en, "getTreeGridTextResourceUrl"), v = /* @__PURE__ */ G((e) => e != null && e.includes("assets") ? E(e) : (
|
|
17
17
|
// @ts-expect-error - API base URL env is provided by host app
|
|
18
18
|
`undefined/${e}?noCache=${Date.now()}`
|
|
19
|
-
), "resolveTreeGridDataUrl"),
|
|
19
|
+
), "resolveTreeGridDataUrl"), $ = /* @__PURE__ */ G((e, t, i) => e ? { Url: v(t) } : { Data: { Body: [k(i) ? [] : i] } }, "buildTreeGridDataSource"), H = /* @__PURE__ */ G(({
|
|
20
20
|
id: e,
|
|
21
21
|
layoutUrl: t,
|
|
22
|
-
dataUrl:
|
|
22
|
+
dataUrl: i,
|
|
23
23
|
bodyData: f,
|
|
24
|
-
useDataUrl:
|
|
25
|
-
width:
|
|
26
|
-
height:
|
|
27
|
-
languageId:
|
|
24
|
+
useDataUrl: s,
|
|
25
|
+
width: S,
|
|
26
|
+
height: O,
|
|
27
|
+
languageId: p
|
|
28
28
|
}) => ({
|
|
29
29
|
id: e,
|
|
30
30
|
Layout: { Url: E(t ?? "") },
|
|
31
|
-
Data:
|
|
31
|
+
Data: $(s, i, f),
|
|
32
32
|
Text: {
|
|
33
|
-
Url: V(
|
|
33
|
+
Url: V(p)
|
|
34
34
|
},
|
|
35
|
-
width:
|
|
36
|
-
height:
|
|
35
|
+
width: S,
|
|
36
|
+
height: O,
|
|
37
37
|
Debug: "Error"
|
|
38
|
-
}), "buildTreeGridInitializationOptions"), y = /* @__PURE__ */ G((e) => A(e, "Data.Data.Data.Body.0"), "getTreeGridBodyData"),
|
|
38
|
+
}), "buildTreeGridInitializationOptions"), y = /* @__PURE__ */ G((e) => A(e, "Data.Data.Data.Body.0"), "getTreeGridBodyData"), a = /* @__PURE__ */ G((e) => Array.isArray(e) ? e.length : 0, "getTreeGridBodyDataCount"), F = /* @__PURE__ */ G((e) => {
|
|
39
39
|
const t = e == null ? void 0 : e.Visible;
|
|
40
40
|
return !!e && t !== 0 && t !== !1 && t !== "0";
|
|
41
41
|
}, "isVisibleTreeGridRow"), P = /* @__PURE__ */ G((e) => {
|
|
42
42
|
const t = e == null ? void 0 : e.Added;
|
|
43
43
|
return !!e && t !== 0 && t !== !1 && t !== "0" && t !== void 0;
|
|
44
|
-
}, "isAddedTreeGridRow"),
|
|
45
|
-
const f = e.GetAttribute(t,
|
|
44
|
+
}, "isAddedTreeGridRow"), D = /* @__PURE__ */ G((e) => !e || e.Fixed === "Foot" || !F(e) ? !1 : e.Kind === "Data" || P(e), "isDisplayTreeGridRow"), K = /* @__PURE__ */ G((e, t, i) => !t || !i || !D(t) ? !1 : e.CanEdit(t, i) === 1, "isEditableTreeGridCell"), M = /* @__PURE__ */ G((e, t, i) => {
|
|
45
|
+
const f = e.GetAttribute(t, i, "Color");
|
|
46
46
|
return f != null && f !== "";
|
|
47
|
-
}, "hasExplicitTreeGridCellColor"), j = /* @__PURE__ */ G((e, t,
|
|
47
|
+
}, "hasExplicitTreeGridCellColor"), j = /* @__PURE__ */ G((e, t, i) => {
|
|
48
|
+
if (!(!t || !K(e, t, i) || M(e, t, i)))
|
|
49
|
+
return U;
|
|
50
|
+
}, "getEditableTreeGridCellDefaultColor"), ee = /* @__PURE__ */ G((e) => {
|
|
48
51
|
if (!e)
|
|
49
52
|
return !1;
|
|
50
53
|
if (typeof e.GetFirst == "function" && typeof e.GetNext == "function") {
|
|
51
54
|
let t = e.GetFirst();
|
|
52
55
|
for (; t; ) {
|
|
53
|
-
if (
|
|
56
|
+
if (D(t))
|
|
54
57
|
return !0;
|
|
55
58
|
t = e.GetNext(t);
|
|
56
59
|
}
|
|
57
60
|
return !1;
|
|
58
61
|
}
|
|
59
|
-
return Object.values(e.Rows ?? {}).some((t) =>
|
|
60
|
-
}, "hasTreeGridDisplayDataRows"), te = /* @__PURE__ */ G((e, t,
|
|
61
|
-
var
|
|
62
|
-
const f = (
|
|
62
|
+
return Object.values(e.Rows ?? {}).some((t) => D(t));
|
|
63
|
+
}, "hasTreeGridDisplayDataRows"), te = /* @__PURE__ */ G((e, t, i) => {
|
|
64
|
+
var s;
|
|
65
|
+
const f = (s = e.Data) == null ? void 0 : s.Data;
|
|
63
66
|
e.Data.Data = {
|
|
64
67
|
...f,
|
|
65
68
|
Data: { Body: [t || []] },
|
|
66
69
|
Url: ""
|
|
67
|
-
}, e.ReloadBody(
|
|
70
|
+
}, e.ReloadBody(i);
|
|
68
71
|
}, "replaceTreeGridBodyData"), oe = /* @__PURE__ */ G(({
|
|
69
72
|
id: e,
|
|
70
73
|
latestEventHandlersRef: t,
|
|
71
|
-
highlightEditableCellsRef:
|
|
74
|
+
highlightEditableCellsRef: i,
|
|
72
75
|
highlightChangedCellsRef: f,
|
|
73
|
-
treeGridInstanceRef:
|
|
74
|
-
treeGridInitStartedAtRef:
|
|
75
|
-
latestLayoutOverridesRef:
|
|
76
|
-
appliedLayoutOverridesRef:
|
|
76
|
+
treeGridInstanceRef: s,
|
|
77
|
+
treeGridInitStartedAtRef: S,
|
|
78
|
+
latestLayoutOverridesRef: O,
|
|
79
|
+
appliedLayoutOverridesRef: p,
|
|
77
80
|
appliedBodyDataPropRef: B,
|
|
78
|
-
hasAppliedInitialLayoutRef:
|
|
79
|
-
syncHasDisplayDataRows:
|
|
81
|
+
hasAppliedInitialLayoutRef: l,
|
|
82
|
+
syncHasDisplayDataRows: w,
|
|
80
83
|
setIsTreeGridReady: I
|
|
81
84
|
}) => {
|
|
82
85
|
const c = t.current;
|
|
83
|
-
window.TGSetEvent("OnRowAdd", e, (o,
|
|
84
|
-
var r,
|
|
85
|
-
|
|
86
|
+
window.TGSetEvent("OnRowAdd", e, (o, n) => {
|
|
87
|
+
var r, u;
|
|
88
|
+
n.CanEdit = 1, n.CanDelete = 1, (u = (r = t.current) == null ? void 0 : r.onRowAdd) == null || u.call(r, o, n);
|
|
86
89
|
}), window.TGSetEvent("OnRowAdded", e, (o) => {
|
|
87
|
-
|
|
90
|
+
w(o);
|
|
88
91
|
}), typeof (c == null ? void 0 : c.onRowClick) == "function" && window.TGSetEvent(
|
|
89
92
|
"OnClick",
|
|
90
93
|
e,
|
|
91
|
-
|
|
94
|
+
R((o, n, r, u, T, C) => {
|
|
92
95
|
var d, m;
|
|
93
96
|
(m = (d = t.current) == null ? void 0 : d.onRowClick) == null || m.call(
|
|
94
97
|
d,
|
|
95
98
|
o,
|
|
96
|
-
u,
|
|
97
|
-
r,
|
|
98
99
|
n,
|
|
99
|
-
|
|
100
|
+
r,
|
|
101
|
+
u,
|
|
102
|
+
T,
|
|
100
103
|
C
|
|
101
104
|
);
|
|
102
105
|
}, 300)
|
|
103
106
|
), typeof (c == null ? void 0 : c.onClickButton) == "function" && window.TGSetEvent(
|
|
104
107
|
"OnClickButton",
|
|
105
108
|
e,
|
|
106
|
-
|
|
107
|
-
var
|
|
108
|
-
(C = (
|
|
109
|
-
|
|
109
|
+
R((o, n, r, u) => {
|
|
110
|
+
var T, C;
|
|
111
|
+
(C = (T = t.current) == null ? void 0 : T.onClickButton) == null || C.call(
|
|
112
|
+
T,
|
|
110
113
|
o,
|
|
111
|
-
|
|
114
|
+
n,
|
|
112
115
|
r,
|
|
113
|
-
|
|
116
|
+
u
|
|
114
117
|
);
|
|
115
118
|
}, 300)
|
|
116
|
-
), typeof (c == null ? void 0 : c.onRowDelete) == "function" ? window.TGSetEvent("OnRowDelete", e, (o,
|
|
117
|
-
var
|
|
118
|
-
|
|
119
|
-
n,
|
|
120
|
-
o,
|
|
119
|
+
), typeof (c == null ? void 0 : c.onRowDelete) == "function" ? window.TGSetEvent("OnRowDelete", e, (o, n, r) => {
|
|
120
|
+
var u, T;
|
|
121
|
+
w(o), (T = (u = t.current) == null ? void 0 : u.onRowDelete) == null || T.call(
|
|
121
122
|
u,
|
|
123
|
+
o,
|
|
124
|
+
n,
|
|
122
125
|
r
|
|
123
126
|
);
|
|
124
127
|
}) : window.TGSetEvent("OnRowDelete", e, (o) => {
|
|
125
|
-
|
|
126
|
-
}), typeof (c == null ? void 0 : c.onRowUndelete) == "function" ? window.TGSetEvent("OnRowUndelete", e, (o,
|
|
127
|
-
var r,
|
|
128
|
-
|
|
128
|
+
w(o);
|
|
129
|
+
}), typeof (c == null ? void 0 : c.onRowUndelete) == "function" ? window.TGSetEvent("OnRowUndelete", e, (o, n) => {
|
|
130
|
+
var r, u;
|
|
131
|
+
w(o), (u = (r = t.current) == null ? void 0 : r.onRowUndelete) == null || u.call(r, o, n);
|
|
129
132
|
}) : window.TGSetEvent("OnRowUndelete", e, (o) => {
|
|
130
|
-
|
|
131
|
-
}), window.TGSetEvent("OnGetDefaultColor", e, (o,
|
|
133
|
+
w(o);
|
|
134
|
+
}), window.TGSetEvent("OnGetDefaultColor", e, (o, n, r) => {
|
|
135
|
+
if (!(!i.current || !D(n)))
|
|
136
|
+
return j(o, n, r);
|
|
137
|
+
}), window.TGSetEvent("OnAfterValueChanged", e, (o, n, r, u) => {
|
|
132
138
|
var C, d;
|
|
133
|
-
f.current && h(e, { row:
|
|
134
|
-
const
|
|
135
|
-
|
|
139
|
+
f.current && D(n) && h(e, { row: n, col: r });
|
|
140
|
+
const T = ((C = t.current) == null ? void 0 : C.onAfterValueChanged) ?? ((d = t.current) == null ? void 0 : d.onRowChange);
|
|
141
|
+
T == null || T(o, n, r, u);
|
|
136
142
|
}), typeof (c == null ? void 0 : c.onSelect) == "function" && window.TGSetEvent(
|
|
137
143
|
"OnSelect",
|
|
138
144
|
e,
|
|
139
|
-
|
|
140
|
-
var r,
|
|
141
|
-
const
|
|
142
|
-
(
|
|
145
|
+
R((o) => {
|
|
146
|
+
var r, u;
|
|
147
|
+
const n = o.GetSelRows() ?? [];
|
|
148
|
+
(u = (r = t.current) == null ? void 0 : r.onSelect) == null || u.call(r, n);
|
|
143
149
|
}, 100)
|
|
144
|
-
), typeof (c == null ? void 0 : c.onSave) == "function" && window.TGSetEvent("OnSave", e, (o,
|
|
145
|
-
var
|
|
146
|
-
(
|
|
147
|
-
n,
|
|
148
|
-
o,
|
|
150
|
+
), typeof (c == null ? void 0 : c.onSave) == "function" && window.TGSetEvent("OnSave", e, (o, n, r) => {
|
|
151
|
+
var u, T;
|
|
152
|
+
(T = (u = t.current) == null ? void 0 : u.onSave) == null || T.call(
|
|
149
153
|
u,
|
|
154
|
+
o,
|
|
155
|
+
n,
|
|
150
156
|
r
|
|
151
157
|
);
|
|
152
158
|
}), window.TGSetEvent(
|
|
153
159
|
"OnReady",
|
|
154
160
|
e,
|
|
155
|
-
|
|
156
|
-
var
|
|
157
|
-
if (!
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
bodyRowCount:
|
|
161
|
+
R((o) => {
|
|
162
|
+
var n, r;
|
|
163
|
+
if (!l.current) {
|
|
164
|
+
const u = O.current;
|
|
165
|
+
l.current = !0, x(o, u), s.current = o, p.current = u, B.current = y(o), w(o), I(!0), N(e, "TreeGrid init ready", S.current, {
|
|
166
|
+
bodyRowCount: a(
|
|
161
167
|
y(o)
|
|
162
168
|
)
|
|
163
|
-
}),
|
|
169
|
+
}), S.current = null, (r = (n = t.current) == null ? void 0 : n.onReady) == null || r.call(n, o);
|
|
164
170
|
}
|
|
165
171
|
}, 100)
|
|
166
172
|
);
|
|
@@ -169,7 +175,7 @@ export {
|
|
|
169
175
|
g as TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS,
|
|
170
176
|
oe as bindTreeGridEvents,
|
|
171
177
|
H as buildTreeGridInitializationOptions,
|
|
172
|
-
|
|
178
|
+
a as getTreeGridBodyDataCount,
|
|
173
179
|
ee as hasTreeGridDisplayDataRows,
|
|
174
180
|
te as replaceTreeGridBodyData
|
|
175
181
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"treeGridRuntime.js","sources":["../../../../src/components/OwpTreeGrid/internal/treeGridRuntime.ts"],"sourcesContent":["import { TREEGRID_INPUT_CELL_COLOR } from '@/constants/treeGrid';\nimport { highlightTreeGridCellById } from '@/utils/treeGridUtil';\nimport { debounce, get, isEmpty } from 'es-toolkit/compat';\nimport {\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {\n OwpTreeGridBodyData,\n OwpTreeGridLayoutConfig,\n OwpTreeGridProps,\n OwpTreeGridRowModel,\n OwpTreeGridSelectedRows,\n} from '../OwpTreeGrid';\nimport { applyTreeGridLayoutToGrid } from './treeGridLayout';\nimport {\n measureTreeGridPerf,\n} from '../utils/perf';\n\nconst TREE_GRID_INPUT_CELL_COLOR_VALUE = Number.parseInt(\n TREEGRID_INPUT_CELL_COLOR.replace('#', ''),\n 16,\n);\n\nexport const TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nexport type TreeGridEventHandlers<T> = Pick<\n OwpTreeGridProps<T>,\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n>;\n\nexport type TreeGridEventBindingOptions<T> = Pick<OwpTreeGridProps<T>, 'id'> & {\n latestEventHandlersRef: RefObject<TreeGridEventHandlers<T>>;\n highlightEditableCellsRef: RefObject<boolean>;\n highlightChangedCellsRef: RefObject<boolean>;\n treeGridInstanceRef: RefObject<TGrid>;\n treeGridInitStartedAtRef: RefObject<number | null>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n syncHasDisplayDataRows: (grid: TGrid | null) => void;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\nconst TREE_GRID_TEXT_RESOURCE_URLS = {\n en: '/assets/vendors/Grid/TextEN.xml',\n kr: '/assets/vendors/Grid/TextKR.xml',\n} as const;\n\nconst appendNoCacheQuery = (url: string) => {\n return `${url}?noCache=${Date.now()}`;\n};\n\nconst getTreeGridTextResourceUrl = (languageId: string) => {\n return languageId === 'kr' ? TREE_GRID_TEXT_RESOURCE_URLS.kr : TREE_GRID_TEXT_RESOURCE_URLS.en;\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n return dataUrl?.includes('assets')\n ? appendNoCacheQuery(dataUrl)\n : // @ts-expect-error - API base URL env is provided by host app\n `${import.meta.env.VITE_API_BASE_URL}/${dataUrl}?noCache=${Date.now()}`;\n};\n\nconst buildTreeGridDataSource = <T,>(\n useDataUrl: boolean | undefined,\n dataUrl: string | undefined,\n bodyData: OwpTreeGridBodyData<T>,\n) => {\n if (useDataUrl) {\n return { Url: resolveTreeGridDataUrl(dataUrl) };\n }\n\n return { Data: { Body: [isEmpty(bodyData) ? [] : bodyData] } };\n};\n\n/**\n * TreeGrid 초기화 옵션 생성\n * @param input 초기화 입력값\n */\nexport const buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: { Url: appendNoCacheQuery(layoutUrl ?? '') },\n Data: buildTreeGridDataSource(useDataUrl, dataUrl, bodyData),\n Text: {\n Url: getTreeGridTextResourceUrl(languageId),\n },\n width,\n height,\n Debug: 'Error',\n };\n};\n\nconst getTreeGridBodyData = (grid: TGrid | null) => {\n return get(grid, 'Data.Data.Data.Body.0');\n};\n\n/**\n * TreeGrid Body 데이터 건수\n * @param bodyData TreeGrid Body 데이터\n */\nexport const getTreeGridBodyDataCount = <T,>(bodyData: OwpTreeGridBodyData<T>) => {\n return Array.isArray(bodyData) ? bodyData.length : 0;\n};\n\nconst isVisibleTreeGridRow = (row: TRow | null | undefined) => {\n const visible = (row as { Visible?: unknown } | null)?.Visible;\n\n return !!row && visible !== 0 && visible !== false && visible !== '0';\n};\n\n/**\n * TreeGrid 추가 행 여부\n * @param row TreeGrid 행\n */\nconst isAddedTreeGridRow = (row: TRow | null | undefined) => {\n const added = (row as { Added?: unknown } | null)?.Added;\n\n return !!row && added !== 0 && added !== false && added !== '0' && added !== undefined;\n};\n\n/**\n * TreeGrid 본문 표시 행 여부\n * @param row TreeGrid 행\n */\nconst isDisplayTreeGridRow = (row: TRow | null | undefined) => {\n if (!row || row.Fixed === 'Foot' || !isVisibleTreeGridRow(row)) {\n return false;\n }\n\n return row.Kind === 'Data' || isAddedTreeGridRow(row);\n};\n\n/**\n * TreeGrid 셀 편집 가능 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isEditableTreeGridCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 1;\n};\n\n/**\n * TreeGrid 셀 명시 색상 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst hasExplicitTreeGridCellColor = (grid: TGrid, row: TRow, col: string) => {\n const color = grid.GetAttribute(row, col, 'Color');\n\n return color !== undefined && color !== null && color !== '';\n};\n\n/**\n * TreeGrid 입력 셀 기본 배경색 계산\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst getEditableTreeGridCellDefaultColor = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (\n !row ||\n !isEditableTreeGridCell(grid, row, col) ||\n hasExplicitTreeGridCellColor(grid, row, col)\n ) {\n return null;\n }\n\n return TREE_GRID_INPUT_CELL_COLOR_VALUE;\n};\n\n/**\n * TreeGrid 표시 데이터 행 존재 여부\n * @param grid TreeGrid 인스턴스\n */\nexport const hasTreeGridDisplayDataRows = (grid: TGrid | null) => {\n if (!grid) {\n return false;\n }\n\n if (typeof grid.GetFirst === 'function' && typeof grid.GetNext === 'function') {\n let row = grid.GetFirst();\n\n while (row) {\n if (isDisplayTreeGridRow(row)) {\n return true;\n }\n\n row = grid.GetNext(row);\n }\n\n return false;\n }\n\n return Object.values(grid.Rows ?? {}).some((row) => {\n return isDisplayTreeGridRow(row);\n });\n};\n\n/**\n * TreeGrid Body 데이터 교체 후 재로드\n * @param grid TreeGrid 인스턴스\n * @param bodyData 새 Body 데이터\n * @param onReloadFinish 재로드 완료 콜백\n */\nexport const replaceTreeGridBodyData = <T,>(\n grid: TGrid,\n bodyData: OwpTreeGridBodyData<T>,\n onReloadFinish?: (code: number) => void,\n) => {\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n const currentDataConfig = grid.Data?.Data;\n\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n grid.Data.Data = {\n ...currentDataConfig,\n Data: { Body: [bodyData || []] },\n Url: '',\n };\n\n grid.ReloadBody(onReloadFinish);\n};\n\n/**\n * TreeGrid 이벤트 바인딩\n * @param options 이벤트 바인딩 옵션\n */\nexport const bindTreeGridEvents = <T,>({\n id,\n latestEventHandlersRef,\n highlightEditableCellsRef,\n highlightChangedCellsRef,\n treeGridInstanceRef,\n treeGridInitStartedAtRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n syncHasDisplayDataRows,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const initialEventHandlers = latestEventHandlersRef.current;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n latestEventHandlersRef.current?.onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n window.TGSetEvent('OnRowAdded', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n\n if (typeof initialEventHandlers?.onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n latestEventHandlersRef.current?.onRowClick?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n x,\n y,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n latestEventHandlersRef.current?.onClickButton?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowDelete?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n deleteType,\n );\n });\n } else {\n window.TGSetEvent('OnRowDelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n if (typeof initialEventHandlers?.onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowUndelete?.(grid, row as OwpTreeGridRowModel<T>);\n });\n } else {\n window.TGSetEvent('OnRowUndelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n window.TGSetEvent('OnGetDefaultColor', id, (grid, row, col) => {\n if (!highlightEditableCellsRef.current) {\n return null;\n }\n\n return getEditableTreeGridCellDefaultColor(grid, row, col);\n });\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n if (highlightChangedCellsRef.current) {\n highlightTreeGridCellById(id, { row, col });\n }\n\n const valueChangedHandler =\n latestEventHandlersRef.current?.onAfterValueChanged ??\n latestEventHandlersRef.current?.onRowChange;\n\n valueChangedHandler?.(grid, row as OwpTreeGridRowModel<T>, col, value);\n });\n if (typeof initialEventHandlers?.onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n latestEventHandlersRef.current?.onSelect?.(selectedRows);\n }, 100),\n );\n }\n if (typeof initialEventHandlers?.onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n latestEventHandlersRef.current?.onSave?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n autoupdate,\n );\n });\n }\n\n window.TGSetEvent(\n 'OnReady',\n id,\n debounce((grid) => {\n if (!hasAppliedInitialLayoutRef.current) {\n const latestLayoutOverrides = latestLayoutOverridesRef.current;\n\n hasAppliedInitialLayoutRef.current = true;\n applyTreeGridLayoutToGrid(grid, latestLayoutOverrides);\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n syncHasDisplayDataRows(grid);\n setIsTreeGridReady(true);\n measureTreeGridPerf(id, 'TreeGrid init ready', treeGridInitStartedAtRef.current, {\n bodyRowCount: getTreeGridBodyDataCount(\n getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>,\n ),\n });\n treeGridInitStartedAtRef.current = null;\n latestEventHandlersRef.current?.onReady?.(grid);\n }\n }, 100),\n );\n};\n"],"names":["TREE_GRID_INPUT_CELL_COLOR_VALUE","TREEGRID_INPUT_CELL_COLOR","TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_TEXT_RESOURCE_URLS","appendNoCacheQuery","__name","url","getTreeGridTextResourceUrl","languageId","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","width","height","getTreeGridBodyData","grid","get","getTreeGridBodyDataCount","isVisibleTreeGridRow","row","visible","isAddedTreeGridRow","added","isDisplayTreeGridRow","isEditableTreeGridCell","col","hasExplicitTreeGridCellColor","color","getEditableTreeGridCellDefaultColor","hasTreeGridDisplayDataRows","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","latestEventHandlersRef","highlightEditableCellsRef","highlightChangedCellsRef","treeGridInstanceRef","treeGridInitStartedAtRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","hasAppliedInitialLayoutRef","syncHasDisplayDataRows","setIsTreeGridReady","initialEventHandlers","_b","debounce","x","y","event","deleteType","value","highlightTreeGridCellById","valueChangedHandler","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","measureTreeGridPerf"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"treeGridRuntime.js","sources":["../../../../src/components/OwpTreeGrid/internal/treeGridRuntime.ts"],"sourcesContent":["import { TREEGRID_INPUT_CELL_COLOR } from '@/constants/treeGrid';\nimport { highlightTreeGridCellById } from '@/utils/treeGridUtil';\nimport { debounce, get, isEmpty } from 'es-toolkit/compat';\nimport {\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {\n OwpTreeGridBodyData,\n OwpTreeGridLayoutConfig,\n OwpTreeGridProps,\n OwpTreeGridRowModel,\n OwpTreeGridSelectedRows,\n} from '../OwpTreeGrid';\nimport { applyTreeGridLayoutToGrid } from './treeGridLayout';\nimport {\n measureTreeGridPerf,\n} from '../utils/perf';\n\nconst TREE_GRID_INPUT_CELL_COLOR_VALUE = Number.parseInt(\n TREEGRID_INPUT_CELL_COLOR.replace('#', ''),\n 16,\n);\n\nexport const TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nexport type TreeGridEventHandlers<T> = Pick<\n OwpTreeGridProps<T>,\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n>;\n\nexport type TreeGridEventBindingOptions<T> = Pick<OwpTreeGridProps<T>, 'id'> & {\n latestEventHandlersRef: RefObject<TreeGridEventHandlers<T>>;\n highlightEditableCellsRef: RefObject<boolean>;\n highlightChangedCellsRef: RefObject<boolean>;\n treeGridInstanceRef: RefObject<TGrid>;\n treeGridInitStartedAtRef: RefObject<number | null>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n syncHasDisplayDataRows: (grid: TGrid | null) => void;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\nconst TREE_GRID_TEXT_RESOURCE_URLS = {\n en: '/assets/vendors/Grid/TextEN.xml',\n kr: '/assets/vendors/Grid/TextKR.xml',\n} as const;\n\nconst appendNoCacheQuery = (url: string) => {\n return `${url}?noCache=${Date.now()}`;\n};\n\nconst getTreeGridTextResourceUrl = (languageId: string) => {\n return languageId === 'kr' ? TREE_GRID_TEXT_RESOURCE_URLS.kr : TREE_GRID_TEXT_RESOURCE_URLS.en;\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n return dataUrl?.includes('assets')\n ? appendNoCacheQuery(dataUrl)\n : // @ts-expect-error - API base URL env is provided by host app\n `${import.meta.env.VITE_API_BASE_URL}/${dataUrl}?noCache=${Date.now()}`;\n};\n\nconst buildTreeGridDataSource = <T,>(\n useDataUrl: boolean | undefined,\n dataUrl: string | undefined,\n bodyData: OwpTreeGridBodyData<T>,\n) => {\n if (useDataUrl) {\n return { Url: resolveTreeGridDataUrl(dataUrl) };\n }\n\n return { Data: { Body: [isEmpty(bodyData) ? [] : bodyData] } };\n};\n\n/**\n * TreeGrid 초기화 옵션 생성\n * @param input 초기화 입력값\n */\nexport const buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: { Url: appendNoCacheQuery(layoutUrl ?? '') },\n Data: buildTreeGridDataSource(useDataUrl, dataUrl, bodyData),\n Text: {\n Url: getTreeGridTextResourceUrl(languageId),\n },\n width,\n height,\n Debug: 'Error',\n };\n};\n\nconst getTreeGridBodyData = (grid: TGrid | null) => {\n return get(grid, 'Data.Data.Data.Body.0');\n};\n\n/**\n * TreeGrid Body 데이터 건수\n * @param bodyData TreeGrid Body 데이터\n */\nexport const getTreeGridBodyDataCount = <T,>(bodyData: OwpTreeGridBodyData<T>) => {\n return Array.isArray(bodyData) ? bodyData.length : 0;\n};\n\nconst isVisibleTreeGridRow = (row: TRow | null | undefined) => {\n const visible = (row as { Visible?: unknown } | null)?.Visible;\n\n return !!row && visible !== 0 && visible !== false && visible !== '0';\n};\n\n/**\n * TreeGrid 추가 행 여부\n * @param row TreeGrid 행\n */\nconst isAddedTreeGridRow = (row: TRow | null | undefined) => {\n const added = (row as { Added?: unknown } | null)?.Added;\n\n return !!row && added !== 0 && added !== false && added !== '0' && added !== undefined;\n};\n\n/**\n * TreeGrid 본문 표시 행 여부\n * @param row TreeGrid 행\n */\nconst isDisplayTreeGridRow = (row: TRow | null | undefined) => {\n if (!row || row.Fixed === 'Foot' || !isVisibleTreeGridRow(row)) {\n return false;\n }\n\n return row.Kind === 'Data' || isAddedTreeGridRow(row);\n};\n\n/**\n * TreeGrid 셀 편집 가능 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isEditableTreeGridCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 1;\n};\n\n/**\n * TreeGrid 셀 명시 색상 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst hasExplicitTreeGridCellColor = (grid: TGrid, row: TRow, col: string) => {\n const color = grid.GetAttribute(row, col, 'Color');\n\n return color !== undefined && color !== null && color !== '';\n};\n\n/**\n * TreeGrid 입력 셀 기본 배경색 계산\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst getEditableTreeGridCellDefaultColor = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (\n !row ||\n !isEditableTreeGridCell(grid, row, col) ||\n hasExplicitTreeGridCellColor(grid, row, col)\n ) {\n return undefined;\n }\n\n return TREE_GRID_INPUT_CELL_COLOR_VALUE;\n};\n\n/**\n * TreeGrid 표시 데이터 행 존재 여부\n * @param grid TreeGrid 인스턴스\n */\nexport const hasTreeGridDisplayDataRows = (grid: TGrid | null) => {\n if (!grid) {\n return false;\n }\n\n if (typeof grid.GetFirst === 'function' && typeof grid.GetNext === 'function') {\n let row = grid.GetFirst();\n\n while (row) {\n if (isDisplayTreeGridRow(row)) {\n return true;\n }\n\n row = grid.GetNext(row);\n }\n\n return false;\n }\n\n return Object.values(grid.Rows ?? {}).some((row) => {\n return isDisplayTreeGridRow(row);\n });\n};\n\n/**\n * TreeGrid Body 데이터 교체 후 재로드\n * @param grid TreeGrid 인스턴스\n * @param bodyData 새 Body 데이터\n * @param onReloadFinish 재로드 완료 콜백\n */\nexport const replaceTreeGridBodyData = <T,>(\n grid: TGrid,\n bodyData: OwpTreeGridBodyData<T>,\n onReloadFinish?: (code: number) => void,\n) => {\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n const currentDataConfig = grid.Data?.Data;\n\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n grid.Data.Data = {\n ...currentDataConfig,\n Data: { Body: [bodyData || []] },\n Url: '',\n };\n\n grid.ReloadBody(onReloadFinish);\n};\n\n/**\n * TreeGrid 이벤트 바인딩\n * @param options 이벤트 바인딩 옵션\n */\nexport const bindTreeGridEvents = <T,>({\n id,\n latestEventHandlersRef,\n highlightEditableCellsRef,\n highlightChangedCellsRef,\n treeGridInstanceRef,\n treeGridInitStartedAtRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n syncHasDisplayDataRows,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const initialEventHandlers = latestEventHandlersRef.current;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n latestEventHandlersRef.current?.onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n window.TGSetEvent('OnRowAdded', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n\n if (typeof initialEventHandlers?.onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n latestEventHandlersRef.current?.onRowClick?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n x,\n y,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n latestEventHandlersRef.current?.onClickButton?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowDelete?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n deleteType,\n );\n });\n } else {\n window.TGSetEvent('OnRowDelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n if (typeof initialEventHandlers?.onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowUndelete?.(grid, row as OwpTreeGridRowModel<T>);\n });\n } else {\n window.TGSetEvent('OnRowUndelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n window.TGSetEvent('OnGetDefaultColor', id, (grid, row, col) => {\n if (!highlightEditableCellsRef.current || !isDisplayTreeGridRow(row)) {\n return undefined;\n }\n\n return getEditableTreeGridCellDefaultColor(grid, row, col);\n });\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n if (highlightChangedCellsRef.current && isDisplayTreeGridRow(row)) {\n highlightTreeGridCellById(id, { row, col });\n }\n\n const valueChangedHandler =\n latestEventHandlersRef.current?.onAfterValueChanged ??\n latestEventHandlersRef.current?.onRowChange;\n\n valueChangedHandler?.(grid, row as OwpTreeGridRowModel<T>, col, value);\n });\n if (typeof initialEventHandlers?.onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n latestEventHandlersRef.current?.onSelect?.(selectedRows);\n }, 100),\n );\n }\n if (typeof initialEventHandlers?.onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n latestEventHandlersRef.current?.onSave?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n autoupdate,\n );\n });\n }\n\n window.TGSetEvent(\n 'OnReady',\n id,\n debounce((grid) => {\n if (!hasAppliedInitialLayoutRef.current) {\n const latestLayoutOverrides = latestLayoutOverridesRef.current;\n\n hasAppliedInitialLayoutRef.current = true;\n applyTreeGridLayoutToGrid(grid, latestLayoutOverrides);\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n syncHasDisplayDataRows(grid);\n setIsTreeGridReady(true);\n measureTreeGridPerf(id, 'TreeGrid init ready', treeGridInitStartedAtRef.current, {\n bodyRowCount: getTreeGridBodyDataCount(\n getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>,\n ),\n });\n treeGridInitStartedAtRef.current = null;\n latestEventHandlersRef.current?.onReady?.(grid);\n }\n }, 100),\n );\n};\n"],"names":["TREE_GRID_INPUT_CELL_COLOR_VALUE","TREEGRID_INPUT_CELL_COLOR","TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_TEXT_RESOURCE_URLS","appendNoCacheQuery","__name","url","getTreeGridTextResourceUrl","languageId","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","width","height","getTreeGridBodyData","grid","get","getTreeGridBodyDataCount","isVisibleTreeGridRow","row","visible","isAddedTreeGridRow","added","isDisplayTreeGridRow","isEditableTreeGridCell","col","hasExplicitTreeGridCellColor","color","getEditableTreeGridCellDefaultColor","hasTreeGridDisplayDataRows","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","latestEventHandlersRef","highlightEditableCellsRef","highlightChangedCellsRef","treeGridInstanceRef","treeGridInitStartedAtRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","hasAppliedInitialLayoutRef","syncHasDisplayDataRows","setIsTreeGridReady","initialEventHandlers","_b","debounce","x","y","event","deleteType","value","highlightTreeGridCellById","valueChangedHandler","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","measureTreeGridPerf"],"mappings":"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"}
|
|
@@ -1,43 +1,29 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var u = Object.defineProperty;
|
|
2
|
+
var c = (e, t) => u(e, "name", { value: t, configurable: !0 });
|
|
3
3
|
import { jsx as r } from "../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
storePreloadedState: l,
|
|
4
|
+
import { StyledEngineProvider as l } from "@mui/material/styles";
|
|
5
|
+
import { QueryClient as g, QueryClientProvider as S } from "@tanstack/react-query";
|
|
6
|
+
import { useRef as m } from "react";
|
|
7
|
+
import { OwpAppProvider as v } from "./OwpAppProvider.js";
|
|
8
|
+
import { OwpStoreProvider as w } from "./OwpStoreProvider.js";
|
|
9
|
+
import { createOwpStoreState as a } from "../store/atoms/owpStore.js";
|
|
10
|
+
function E({
|
|
11
|
+
children: e,
|
|
12
|
+
queryClient: t,
|
|
13
|
+
queryClientConfig: f,
|
|
14
|
+
storePreloadedState: d,
|
|
16
15
|
styledEngineProviderProps: p = { injectFirst: !0 },
|
|
17
|
-
...
|
|
16
|
+
...o
|
|
18
17
|
}) {
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
n.current = m(
|
|
26
|
-
{},
|
|
27
|
-
{
|
|
28
|
-
owpSettings: {
|
|
29
|
-
initial: c,
|
|
30
|
-
defaults: m({}, c),
|
|
31
|
-
current: m({}, c)
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
l
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
return /* @__PURE__ */ r(h, { ...i, children: /* @__PURE__ */ r(C, { preloadedState: n.current, children: /* @__PURE__ */ r(v, { client: u, children: /* @__PURE__ */ r(S, { ...p, children: t }) }) }) });
|
|
18
|
+
const i = m(void 0), n = m(void 0), s = t ?? i.current ?? (i.current = new g(f));
|
|
19
|
+
return n.current || (n.current = a(
|
|
20
|
+
o.configs.settingsConfig,
|
|
21
|
+
o.configs.themesConfig,
|
|
22
|
+
d
|
|
23
|
+
)), /* @__PURE__ */ r(v, { ...o, children: /* @__PURE__ */ r(w, { preloadedState: n.current, children: /* @__PURE__ */ r(S, { client: s, children: /* @__PURE__ */ r(l, { ...p, children: e }) }) }) });
|
|
38
24
|
}
|
|
39
|
-
|
|
25
|
+
c(E, "OwpCoreProvider");
|
|
40
26
|
export {
|
|
41
|
-
|
|
27
|
+
E as OwpCoreProvider
|
|
42
28
|
};
|
|
43
29
|
//# sourceMappingURL=OwpCoreProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpCoreProvider.js","sources":["../../src/contexts/OwpCoreProvider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"OwpCoreProvider.js","sources":["../../src/contexts/OwpCoreProvider.tsx"],"sourcesContent":["import { createOwpStoreState } from '@/store/atoms';\nimport { 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, Jotai, React Query provider composition\n * @param queryClient 외부 QueryClient 인스턴스\n * @param queryClientConfig QueryClient 생성 옵션\n * @param storePreloadedState 초기 전역 상태\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 preloadedStateRef.current = createOwpStoreState(\n appProviderProps.configs.settingsConfig,\n appProviderProps.configs.themesConfig,\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"],"names":["OwpCoreProvider","children","queryClient","queryClientConfig","storePreloadedState","styledEngineProviderProps","appProviderProps","queryClientRef","useRef","preloadedStateRef","client","QueryClient","createOwpStoreState","OwpAppProvider","jsx","OwpStoreProvider","QueryClientProvider","StyledEngineProvider","__name"],"mappings":";;;;;;;;;AAuBO,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,IAAoBD,EAA4D,MAAS,GACzFE,IAASR,KAAgBK,EAAe,YAAfA,EAAe,UAAY,IAAII,EAAYR,CAAiB;AAE3F,SAAKM,EAAkB,YACrBA,EAAkB,UAAUG;AAAA,IAC1BN,EAAiB,QAAQ;AAAA,IACzBA,EAAiB,QAAQ;AAAA,IACzBF;AAAA,EAAA,sBAKDS,GAAA,EAAgB,GAAGP,GAClB,UAAA,gBAAAQ,EAACC,GAAA,EAAiB,gBAAgBN,EAAkB,SAClD,4BAACO,GAAA,EAAoB,QAAAN,GACnB,4BAACO,GAAA,EAAsB,GAAGZ,GAA4B,UAAAJ,EAAA,CAAS,GACjE,GACF,EAAA,CACF;AAEJ;AA7BgBiB,EAAAlB,GAAA;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
var i = Object.defineProperty;
|
|
2
2
|
var t = (r, o) => i(r, "name", { value: o, configurable: !0 });
|
|
3
|
-
import { jsx as
|
|
4
|
-
import {
|
|
5
|
-
import { Provider as
|
|
6
|
-
import {
|
|
7
|
-
function
|
|
8
|
-
const e =
|
|
9
|
-
return e.current || (e.current = p(o)), /* @__PURE__ */
|
|
3
|
+
import { jsx as f } from "../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
|
|
4
|
+
import { createOwpStore as m, createOwpStoreState as p } from "../store/atoms/owpStore.js";
|
|
5
|
+
import { Provider as c } from "jotai";
|
|
6
|
+
import { useRef as n } from "react";
|
|
7
|
+
function a({ children: r, preloadedState: o }) {
|
|
8
|
+
const e = n(void 0);
|
|
9
|
+
return e.current || (e.current = m(p(void 0, void 0, o))), /* @__PURE__ */ f(c, { store: e.current, children: r });
|
|
10
10
|
}
|
|
11
|
-
t(
|
|
11
|
+
t(a, "OwpStoreProvider");
|
|
12
12
|
export {
|
|
13
|
-
|
|
13
|
+
a as OwpStoreProvider
|
|
14
14
|
};
|
|
15
15
|
//# sourceMappingURL=OwpStoreProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpStoreProvider.js","sources":["../../src/contexts/OwpStoreProvider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"OwpStoreProvider.js","sources":["../../src/contexts/OwpStoreProvider.tsx"],"sourcesContent":["import { createOwpStoreState } from '@/store/atoms';\nimport { createOwpStore, type OwpStore } from '@/store/atoms/owpStore';\nimport type { OwpStorePreloadedState } from '@/store/atoms/internal/types';\nimport { Provider } from 'jotai';\nimport { ReactNode, useRef } from 'react';\n\nexport interface OwpStoreProviderProps {\n children?: ReactNode;\n preloadedState?: OwpStorePreloadedState;\n}\n\n/**\n * OWP Jotai store provider\n * @param children 하위 콘텐츠\n * @param preloadedState 초기 전역 상태\n */\nexport function OwpStoreProvider({ children, preloadedState }: OwpStoreProviderProps) {\n const storeRef = useRef<OwpStore | undefined>(undefined);\n\n if (!storeRef.current) {\n storeRef.current = createOwpStore(createOwpStoreState(undefined, undefined, preloadedState));\n }\n\n return <Provider store={storeRef.current}>{children}</Provider>;\n}\n"],"names":["OwpStoreProvider","children","preloadedState","storeRef","useRef","createOwpStore","createOwpStoreState","jsx","Provider","__name"],"mappings":";;;;;;AAgBO,SAASA,EAAiB,EAAE,UAAAC,GAAU,gBAAAC,KAAyC;AACpF,QAAMC,IAAWC,EAA6B,MAAS;AAEvD,SAAKD,EAAS,YACZA,EAAS,UAAUE,EAAeC,EAAoB,QAAW,QAAWJ,CAAc,CAAC,IAGtF,gBAAAK,EAACC,GAAA,EAAS,OAAOL,EAAS,SAAU,UAAAF,GAAS;AACtD;AARgBQ,EAAAT,GAAA;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var v = Object.defineProperty;
|
|
2
|
+
var n = (e, t) => v(e, "name", { value: t, configurable: !0 });
|
|
3
|
+
import { useAtomValue as d, useSetAtom as o } from "jotai";
|
|
4
|
+
import { navbarStateAtom as g, navbarToggleFoldedAtom as i, navbarOpenFoldedAtom as p, navbarCloseFoldedAtom as u, navbarToggleMobileAtom as F, navbarOpenMobileAtom as M, navbarCloseMobileAtom as C, navbarOpenAtom as N, navbarCloseAtom as O, navbarToggleAtom as T, resetNavbarAtom as f } from "../store/atoms/navbarAtoms.js";
|
|
5
|
+
const V = /* @__PURE__ */ n(() => d(g), "useGetNavbar"), h = /* @__PURE__ */ n(() => {
|
|
6
|
+
const e = o(i), t = o(p), a = o(u), l = o(F), s = o(M), r = o(C), b = o(N), m = o(O), c = o(T), A = o(f);
|
|
7
|
+
return {
|
|
8
|
+
toggleFolded: e,
|
|
9
|
+
openFolded: t,
|
|
10
|
+
closeFolded: a,
|
|
11
|
+
toggleMobile: l,
|
|
12
|
+
openMobile: s,
|
|
13
|
+
closeMobile: r,
|
|
14
|
+
open: b,
|
|
15
|
+
close: m,
|
|
16
|
+
toggle: c,
|
|
17
|
+
reset: A
|
|
18
|
+
};
|
|
19
|
+
}, "useNavbarActions");
|
|
20
|
+
export {
|
|
21
|
+
V as useGetNavbar,
|
|
22
|
+
h as useNavbarActions
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=useNavbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNavbar.js","sources":["../../src/hooks/useNavbar.ts"],"sourcesContent":["import {\n navbarCloseAtom,\n navbarCloseFoldedAtom,\n navbarCloseMobileAtom,\n navbarOpenAtom,\n navbarOpenFoldedAtom,\n navbarOpenMobileAtom,\n navbarStateAtom,\n navbarToggleAtom,\n navbarToggleFoldedAtom,\n navbarToggleMobileAtom,\n resetNavbarAtom,\n} from '@/store/atoms';\nimport { useAtomValue, useSetAtom } from 'jotai';\n\n/**\n * Navbar 상태 조회 훅\n */\nexport const useGetNavbar = () => {\n return useAtomValue(navbarStateAtom);\n};\n\n/**\n * Navbar 액션 훅\n */\nexport const useNavbarActions = () => {\n const toggleFolded = useSetAtom(navbarToggleFoldedAtom);\n const openFolded = useSetAtom(navbarOpenFoldedAtom);\n const closeFolded = useSetAtom(navbarCloseFoldedAtom);\n const toggleMobile = useSetAtom(navbarToggleMobileAtom);\n const openMobile = useSetAtom(navbarOpenMobileAtom);\n const closeMobile = useSetAtom(navbarCloseMobileAtom);\n const open = useSetAtom(navbarOpenAtom);\n const close = useSetAtom(navbarCloseAtom);\n const toggle = useSetAtom(navbarToggleAtom);\n const reset = useSetAtom(resetNavbarAtom);\n\n return {\n toggleFolded,\n openFolded,\n closeFolded,\n toggleMobile,\n openMobile,\n closeMobile,\n open,\n close,\n toggle,\n reset,\n };\n};\n"],"names":["useGetNavbar","__name","useAtomValue","navbarStateAtom","useNavbarActions","toggleFolded","useSetAtom","navbarToggleFoldedAtom","openFolded","navbarOpenFoldedAtom","closeFolded","navbarCloseFoldedAtom","toggleMobile","navbarToggleMobileAtom","openMobile","navbarOpenMobileAtom","closeMobile","navbarCloseMobileAtom","open","navbarOpenAtom","close","navbarCloseAtom","toggle","navbarToggleAtom","reset","resetNavbarAtom"],"mappings":";;;;AAkBO,MAAMA,IAAe,gBAAAC,EAAA,MACnBC,EAAaC,CAAe,GADT,iBAOfC,IAAmB,gBAAAH,EAAA,MAAM;AACpC,QAAMI,IAAeC,EAAWC,CAAsB,GAChDC,IAAaF,EAAWG,CAAoB,GAC5CC,IAAcJ,EAAWK,CAAqB,GAC9CC,IAAeN,EAAWO,CAAsB,GAChDC,IAAaR,EAAWS,CAAoB,GAC5CC,IAAcV,EAAWW,CAAqB,GAC9CC,IAAOZ,EAAWa,CAAc,GAChCC,IAAQd,EAAWe,CAAe,GAClCC,IAAShB,EAAWiB,CAAgB,GACpCC,IAAQlB,EAAWmB,CAAe;AAExC,SAAO;AAAA,IACL,cAAApB;AAAA,IACA,YAAAG;AAAA,IACA,aAAAE;AAAA,IACA,cAAAE;AAAA,IACA,YAAAE;AAAA,IACA,aAAAE;AAAA,IACA,MAAAE;AAAA,IACA,OAAAE;AAAA,IACA,QAAAE;AAAA,IACA,OAAAE;AAAA,EAAA;AAEJ,GAxBgC;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
var s = Object.defineProperty;
|
|
2
|
+
var t = (o, r) => s(o, "name", { value: r, configurable: !0 });
|
|
3
|
+
import { useAtomValue as e, useSetAtom as n } from "jotai";
|
|
4
|
+
import { owpSettingsAtom as u, currentSettingsAtom as m, defaultSettingsAtom as a, currentLayoutConfigAtom as c, mainThemeAtom as i, navbarThemeAtom as S, toolbarThemeAtom as g, footerThemeAtom as A, customScrollbarsEnabledAtom as l, setSettingsAtom as h, setDefaultSettingsAtom as T, resetSettingsAtom as f, changeOwpThemeAtom as G } from "../store/atoms/owpSettingsAtoms.js";
|
|
5
|
+
const w = /* @__PURE__ */ t(() => e(u), "useGetOwpSettings"), d = /* @__PURE__ */ t(() => e(m), "useGetCurrentSettings"), D = /* @__PURE__ */ t(() => e(a), "useGetDefaultSettings"), O = /* @__PURE__ */ t(() => e(c), "useGetCurrentLayoutConfig"), v = /* @__PURE__ */ t(() => e(i), "useGetMainTheme"), y = /* @__PURE__ */ t(() => e(S), "useGetNavbarTheme"), E = /* @__PURE__ */ t(() => e(g), "useGetToolbarTheme"), L = /* @__PURE__ */ t(() => e(A), "useGetFooterTheme"), x = /* @__PURE__ */ t(() => e(l), "useGetCustomScrollbarsEnabled"), F = /* @__PURE__ */ t(() => n(h), "useSetSettings"), M = /* @__PURE__ */ t(() => n(T), "useSetDefaultSettings"), N = /* @__PURE__ */ t(() => n(f), "useResetSettings"), R = /* @__PURE__ */ t(() => n(G), "useChangeOwpTheme");
|
|
6
|
+
export {
|
|
7
|
+
R as useChangeOwpTheme,
|
|
8
|
+
O as useGetCurrentLayoutConfig,
|
|
9
|
+
d as useGetCurrentSettings,
|
|
10
|
+
x as useGetCustomScrollbarsEnabled,
|
|
11
|
+
D as useGetDefaultSettings,
|
|
12
|
+
L as useGetFooterTheme,
|
|
13
|
+
v as useGetMainTheme,
|
|
14
|
+
y as useGetNavbarTheme,
|
|
15
|
+
w as useGetOwpSettings,
|
|
16
|
+
E as useGetToolbarTheme,
|
|
17
|
+
N as useResetSettings,
|
|
18
|
+
M as useSetDefaultSettings,
|
|
19
|
+
F as useSetSettings
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=useOwpSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOwpSettings.js","sources":["../../src/hooks/useOwpSettings.ts"],"sourcesContent":["import {\n changeOwpThemeAtom,\n currentLayoutConfigAtom,\n currentSettingsAtom,\n customScrollbarsEnabledAtom,\n defaultSettingsAtom,\n footerThemeAtom,\n mainThemeAtom,\n navbarThemeAtom,\n owpSettingsAtom,\n resetSettingsAtom,\n setDefaultSettingsAtom,\n setSettingsAtom,\n toolbarThemeAtom,\n} from '@/store/atoms';\nimport type { OwpSettingsConfigType } from '@/types/OwpSettingsTypes';\nimport type { OwpSettingsState } from '@/store/atoms/internal/types';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport type { PartialDeep } from 'type-fest';\n\n/**\n * OWP settings 원본 상태 조회 훅\n */\nexport const useGetOwpSettings = () => {\n return useAtomValue(owpSettingsAtom);\n};\n\n/**\n * 현재 settings 조회 훅\n */\nexport const useGetCurrentSettings = () => {\n return useAtomValue(currentSettingsAtom);\n};\n\n/**\n * 기본 settings 조회 훅\n */\nexport const useGetDefaultSettings = () => {\n return useAtomValue(defaultSettingsAtom);\n};\n\n/**\n * 현재 layout config 조회 훅\n */\nexport const useGetCurrentLayoutConfig = () => {\n return useAtomValue(currentLayoutConfigAtom);\n};\n\n/**\n * Main theme 조회 훅\n */\nexport const useGetMainTheme = () => {\n return useAtomValue(mainThemeAtom);\n};\n\n/**\n * Navbar theme 조회 훅\n */\nexport const useGetNavbarTheme = () => {\n return useAtomValue(navbarThemeAtom);\n};\n\n/**\n * Toolbar theme 조회 훅\n */\nexport const useGetToolbarTheme = () => {\n return useAtomValue(toolbarThemeAtom);\n};\n\n/**\n * Footer theme 조회 훅\n */\nexport const useGetFooterTheme = () => {\n return useAtomValue(footerThemeAtom);\n};\n\n/**\n * Custom scrollbar 사용 여부 조회 훅\n */\nexport const useGetCustomScrollbarsEnabled = () => {\n return useAtomValue(customScrollbarsEnabledAtom);\n};\n\n/**\n * 현재 settings 설정 훅\n */\nexport const useSetSettings = () => {\n return useSetAtom(setSettingsAtom);\n};\n\n/**\n * 기본 settings 설정 훅\n */\nexport const useSetDefaultSettings: () => (\n nextSettings: PartialDeep<OwpSettingsConfigType>,\n) => OwpSettingsState = () => {\n return useSetAtom(setDefaultSettingsAtom);\n};\n\n/**\n * Settings 초기화 훅\n */\nexport const useResetSettings = () => {\n return useSetAtom(resetSettingsAtom);\n};\n\n/**\n * Theme 설정 변경 훅\n */\nexport const useChangeOwpTheme = () => {\n return useSetAtom(changeOwpThemeAtom);\n};\n"],"names":["useGetOwpSettings","__name","useAtomValue","owpSettingsAtom","useGetCurrentSettings","currentSettingsAtom","useGetDefaultSettings","defaultSettingsAtom","useGetCurrentLayoutConfig","currentLayoutConfigAtom","useGetMainTheme","mainThemeAtom","useGetNavbarTheme","navbarThemeAtom","useGetToolbarTheme","toolbarThemeAtom","useGetFooterTheme","footerThemeAtom","useGetCustomScrollbarsEnabled","customScrollbarsEnabledAtom","useSetSettings","useSetAtom","setSettingsAtom","useSetDefaultSettings","setDefaultSettingsAtom","useResetSettings","resetSettingsAtom","useChangeOwpTheme","changeOwpThemeAtom"],"mappings":";;;;AAuBO,MAAMA,IAAoB,gBAAAC,EAAA,MACxBC,EAAaC,CAAe,GADJ,sBAOpBC,IAAwB,gBAAAH,EAAA,MAC5BC,EAAaG,CAAmB,GADJ,0BAOxBC,IAAwB,gBAAAL,EAAA,MAC5BC,EAAaK,CAAmB,GADJ,0BAOxBC,IAA4B,gBAAAP,EAAA,MAChCC,EAAaO,CAAuB,GADJ,8BAO5BC,IAAkB,gBAAAT,EAAA,MACtBC,EAAaS,CAAa,GADJ,oBAOlBC,IAAoB,gBAAAX,EAAA,MACxBC,EAAaW,CAAe,GADJ,sBAOpBC,IAAqB,gBAAAb,EAAA,MACzBC,EAAaa,CAAgB,GADJ,uBAOrBC,IAAoB,gBAAAf,EAAA,MACxBC,EAAae,CAAe,GADJ,sBAOpBC,IAAgC,gBAAAjB,EAAA,MACpCC,EAAaiB,CAA2B,GADJ,kCAOhCC,IAAiB,gBAAAnB,EAAA,MACrBoB,EAAWC,CAAe,GADL,mBAOjBC,IAEW,gBAAAtB,EAAA,MACfoB,EAAWG,CAAsB,GADlB,0BAOXC,IAAmB,gBAAAxB,EAAA,MACvBoB,EAAWK,CAAiB,GADL,qBAOnBC,IAAoB,gBAAA1B,EAAA,MACxBoB,EAAWO,CAAkB,GADL;"}
|