@owp/core 2.1.7 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index10.js +2 -2
- package/dist/_virtual/index11.js +2 -2
- package/dist/_virtual/index13.js +2 -2
- package/dist/_virtual/index14.js +2 -2
- package/dist/_virtual/index15.js +5 -2
- package/dist/_virtual/index15.js.map +1 -1
- package/dist/_virtual/index16.js +2 -2
- package/dist/_virtual/index17.js +2 -2
- package/dist/_virtual/index5.js +2 -5
- package/dist/_virtual/index5.js.map +1 -1
- package/dist/_virtual/index6.js +2 -2
- package/dist/_virtual/index7.js +2 -2
- package/dist/components/OwpTable/OwpTable.js +21 -21
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +187 -127
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.js +28 -0
- package/dist/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.js.map +1 -0
- package/dist/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.js +44 -0
- package/dist/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.js.map +1 -0
- package/dist/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.js +84 -0
- package/dist/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.js.map +1 -0
- package/dist/components/OwpTreeGrid/{utils.js → utils/index.js} +2 -2
- package/dist/components/OwpTreeGrid/utils/index.js.map +1 -0
- package/dist/contexts/OwpAppProvider.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/constants.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-is@16.13.1/node_modules/react-is/index.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/owp-app.css +1 -1
- package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +3 -7
- package/dist/types/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.d.ts +10 -0
- package/dist/types/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.d.ts +14 -0
- package/dist/types/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.d.ts +22 -0
- package/dist/types/components/OwpTreeGrid/{utils.d.ts → utils/index.d.ts} +1 -1
- package/dist/types/contexts/OwpAppProvider.d.ts +1 -0
- package/dist/utils/rebuildValue.js +41 -39
- package/dist/utils/rebuildValue.js.map +1 -1
- package/dist/utils/treeGridUtil.js +1 -1
- package/package.json +1 -3
- package/dist/components/OwpTreeGrid/utils.js.map +0 -1
|
@@ -1,186 +1,246 @@
|
|
|
1
|
-
var
|
|
2
|
-
var i = (e, n) =>
|
|
3
|
-
import { jsx as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
1
|
+
var ye = Object.defineProperty;
|
|
2
|
+
var i = (e, n) => ye(e, "name", { value: n, configurable: !0 });
|
|
3
|
+
import { jsxs as Ge, jsx as Y } 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 { useOwpTranslation as De } from "../../hooks/useOwpTranslation.js";
|
|
5
|
+
import { useGetCurrentLanguage as Re } from "../../hooks/useCurrentLanguage.js";
|
|
6
|
+
import { useRef as o, useState as ce, useEffect as Z, useLayoutEffect as we } from "react";
|
|
7
|
+
import { useOwpTreeGridOverlayFrame as Ee } from "./hooks/useOwpTreeGridOverlayFrame.js";
|
|
8
|
+
import { OwpTreeGridLoadingOverlay as Oe } from "./OwpTreeGridLoadingOverlay.js";
|
|
9
|
+
import { OwpTreeGridNoDataOverlay as ge } from "./OwpTreeGridNoDataOverlay.js";
|
|
10
|
+
import { applyTreeGridLayoutToGrid as fe } from "./utils/index.js";
|
|
11
|
+
import { isEmpty as B } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
|
|
12
|
+
import { delay as be } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/delay.js";
|
|
13
|
+
import { isEqual as Be } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
|
|
14
|
+
import { omit as Ie } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/omit.js";
|
|
15
|
+
import { debounce as $ } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/debounce.js";
|
|
16
|
+
import { get as Se } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/get.js";
|
|
17
|
+
const Le = 300, ae = {
|
|
14
18
|
en: "/assets/vendors/Grid/TextEN.xml",
|
|
15
19
|
kr: "/assets/vendors/Grid/TextKR.xml"
|
|
16
|
-
},
|
|
20
|
+
}, de = /* @__PURE__ */ i((e) => `${e}?noCache=${Date.now()}`, "appendNoCacheQuery"), xe = /* @__PURE__ */ i((e) => e === "kr" ? ae.kr : ae.en, "getTreeGridTextResourceUrl"), Ce = /* @__PURE__ */ i((e) => e != null && e.includes("assets") ? de(e) : (
|
|
17
21
|
// @ts-expect-error - API base URL env is provided by host app
|
|
18
22
|
`undefined/${e}?noCache=${Date.now()}`
|
|
19
|
-
), "resolveTreeGridDataUrl"),
|
|
23
|
+
), "resolveTreeGridDataUrl"), _e = /* @__PURE__ */ i((e, n, s) => e ? { Url: Ce(n) } : { Data: { Body: [B(s) ? [] : s] } }, "buildTreeGridDataSource"), Ne = /* @__PURE__ */ i(({
|
|
20
24
|
id: e,
|
|
21
25
|
layoutUrl: n,
|
|
22
|
-
dataUrl:
|
|
23
|
-
bodyData:
|
|
24
|
-
useDataUrl:
|
|
25
|
-
width:
|
|
26
|
+
dataUrl: s,
|
|
27
|
+
bodyData: f,
|
|
28
|
+
useDataUrl: d,
|
|
29
|
+
width: p,
|
|
26
30
|
height: y,
|
|
27
31
|
languageId: G
|
|
28
32
|
}) => ({
|
|
29
33
|
id: e,
|
|
30
|
-
Layout: { Url:
|
|
31
|
-
Data:
|
|
34
|
+
Layout: { Url: de(n ?? "") },
|
|
35
|
+
Data: _e(d, s, f),
|
|
32
36
|
Text: {
|
|
33
|
-
Url:
|
|
37
|
+
Url: xe(G)
|
|
34
38
|
},
|
|
35
|
-
width:
|
|
39
|
+
width: p,
|
|
36
40
|
height: y,
|
|
37
41
|
Debug: "Error"
|
|
38
|
-
}), "buildTreeGridInitializationOptions"),
|
|
39
|
-
var
|
|
40
|
-
const
|
|
42
|
+
}), "buildTreeGridInitializationOptions"), Ve = /* @__PURE__ */ i((e) => Se(e, "Data.Data.Data.Body.0"), "getTreeGridBodyData"), Pe = /* @__PURE__ */ i((e, n, s) => {
|
|
43
|
+
var d;
|
|
44
|
+
const f = (d = e.Data) == null ? void 0 : d.Data;
|
|
41
45
|
e.Data.Data = {
|
|
42
|
-
...
|
|
46
|
+
...f,
|
|
43
47
|
Data: { Body: [n || []] },
|
|
44
48
|
Url: ""
|
|
45
|
-
}, e.ReloadBody();
|
|
46
|
-
}, "replaceTreeGridBodyData"),
|
|
49
|
+
}, e.ReloadBody(s);
|
|
50
|
+
}, "replaceTreeGridBodyData"), $e = /* @__PURE__ */ i(({
|
|
47
51
|
id: e,
|
|
48
52
|
onSelect: n,
|
|
49
|
-
onRowClick:
|
|
50
|
-
onRowAdd:
|
|
51
|
-
onRowDelete:
|
|
52
|
-
onRowUndelete:
|
|
53
|
+
onRowClick: s,
|
|
54
|
+
onRowAdd: f,
|
|
55
|
+
onRowDelete: d,
|
|
56
|
+
onRowUndelete: p,
|
|
53
57
|
onRowChange: y,
|
|
54
58
|
onClickButton: G,
|
|
55
|
-
onSave:
|
|
56
|
-
onReady:
|
|
57
|
-
onAfterValueChanged:
|
|
58
|
-
treeGridInstanceRef:
|
|
59
|
-
latestLayoutOverridesRef:
|
|
60
|
-
appliedLayoutOverridesRef:
|
|
61
|
-
appliedBodyDataPropRef:
|
|
62
|
-
hasAppliedInitialLayoutRef:
|
|
63
|
-
setIsTreeGridReady:
|
|
59
|
+
onSave: I,
|
|
60
|
+
onReady: m,
|
|
61
|
+
onAfterValueChanged: a,
|
|
62
|
+
treeGridInstanceRef: A,
|
|
63
|
+
latestLayoutOverridesRef: M,
|
|
64
|
+
appliedLayoutOverridesRef: k,
|
|
65
|
+
appliedBodyDataPropRef: q,
|
|
66
|
+
hasAppliedInitialLayoutRef: S,
|
|
67
|
+
setIsTreeGridReady: H
|
|
64
68
|
}) => {
|
|
65
|
-
const
|
|
69
|
+
const L = a ?? y;
|
|
66
70
|
window.TGSetEvent("OnRowAdd", e, (t, r) => {
|
|
67
|
-
r.CanEdit = 1, r.CanDelete = 1,
|
|
68
|
-
}), typeof
|
|
71
|
+
r.CanEdit = 1, r.CanDelete = 1, f == null || f(t, r);
|
|
72
|
+
}), typeof s == "function" && window.TGSetEvent(
|
|
69
73
|
"OnClick",
|
|
70
74
|
e,
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
$((t, r, u, v, h, c) => {
|
|
76
|
+
s(t, r, u, v, h, c);
|
|
73
77
|
}, 300)
|
|
74
78
|
), typeof G == "function" && window.TGSetEvent(
|
|
75
79
|
"OnClickButton",
|
|
76
80
|
e,
|
|
77
|
-
|
|
78
|
-
G(t, r,
|
|
81
|
+
$((t, r, u, v) => {
|
|
82
|
+
G(t, r, u, v);
|
|
79
83
|
}, 300)
|
|
80
|
-
), typeof
|
|
81
|
-
|
|
82
|
-
}), typeof
|
|
83
|
-
|
|
84
|
-
}), typeof
|
|
85
|
-
|
|
84
|
+
), typeof d == "function" && window.TGSetEvent("OnRowDelete", e, (t, r, u) => {
|
|
85
|
+
d(t, r, u);
|
|
86
|
+
}), typeof p == "function" && window.TGSetEvent("OnRowUndelete", e, (t, r) => {
|
|
87
|
+
p(t, r);
|
|
88
|
+
}), typeof L == "function" && window.TGSetEvent("OnAfterValueChanged", e, (t, r, u, v) => {
|
|
89
|
+
L(t, r, u, v);
|
|
86
90
|
}), typeof n == "function" && window.TGSetEvent(
|
|
87
91
|
"OnSelect",
|
|
88
92
|
e,
|
|
89
|
-
|
|
93
|
+
$((t) => {
|
|
90
94
|
const r = t.GetSelRows() ?? [];
|
|
91
95
|
n(r);
|
|
92
96
|
}, 100)
|
|
93
|
-
), typeof
|
|
94
|
-
|
|
97
|
+
), typeof I == "function" && window.TGSetEvent("OnSave", e, (t, r, u) => {
|
|
98
|
+
I(t, r, u);
|
|
95
99
|
}), window.TGSetEvent(
|
|
96
100
|
"OnReady",
|
|
97
101
|
e,
|
|
98
|
-
|
|
99
|
-
if (!
|
|
100
|
-
const r =
|
|
101
|
-
|
|
102
|
+
$((t) => {
|
|
103
|
+
if (!S.current) {
|
|
104
|
+
const r = M.current;
|
|
105
|
+
S.current = !0, fe(t, r), A.current = t, k.current = r, q.current = Ve(t), H(!0), m == null || m(t);
|
|
102
106
|
}
|
|
103
107
|
}, 100)
|
|
104
108
|
);
|
|
105
|
-
}, "bindTreeGridEvents"),
|
|
109
|
+
}, "bindTreeGridEvents"), Ze = /* @__PURE__ */ i(({
|
|
106
110
|
id: e = "treeGridWrapper",
|
|
107
111
|
containerStyle: n,
|
|
108
|
-
containerClassName:
|
|
109
|
-
className:
|
|
110
|
-
style:
|
|
111
|
-
height:
|
|
112
|
+
containerClassName: s,
|
|
113
|
+
className: f,
|
|
114
|
+
style: d,
|
|
115
|
+
height: p = "100%",
|
|
112
116
|
width: y = "100%",
|
|
113
117
|
layoutUrl: G,
|
|
114
|
-
dataUrl:
|
|
115
|
-
layoutOverrides:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
onAfterValueChanged: X
|
|
118
|
+
dataUrl: I,
|
|
119
|
+
layoutOverrides: m,
|
|
120
|
+
data: a,
|
|
121
|
+
useDataUrl: A,
|
|
122
|
+
onSelect: M,
|
|
123
|
+
onRowClick: k,
|
|
124
|
+
onRowAdd: q,
|
|
125
|
+
onRowDelete: S,
|
|
126
|
+
onRowUndelete: H,
|
|
127
|
+
onRowChange: L,
|
|
128
|
+
onClickButton: t,
|
|
129
|
+
onSave: r,
|
|
130
|
+
onReady: u,
|
|
131
|
+
onAfterValueChanged: v,
|
|
132
|
+
loading: h,
|
|
133
|
+
showLoading: c = !0
|
|
131
134
|
}) => {
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
const { t: le } = De(), l = o(null), ee = o(null), j = o(m), te = o(a), w = o(void 0), F = o(!1), x = o(void 0), C = o(void 0), pe = o(!1), E = o(0), D = o(null), O = o(void 0), g = o(void 0), [U, me] = ce(!1), [ve, b] = ce(!1), _ = Re(), re = o(_.id), Te = c && a !== void 0 && U && C.current !== a, z = c && h === !0 || c && (ve || Te), K = !z && a !== void 0 && B(a);
|
|
136
|
+
j.current = m, te.current = a;
|
|
137
|
+
const ne = Ee({
|
|
138
|
+
visible: z || K,
|
|
139
|
+
containerRef: ee,
|
|
140
|
+
treeGridInstanceRef: l
|
|
141
|
+
}), N = /* @__PURE__ */ i(() => {
|
|
142
|
+
O.current !== void 0 && (window.clearTimeout(O.current), O.current = void 0);
|
|
143
|
+
}, "clearBindingLoadingHideTimeout"), Q = /* @__PURE__ */ i(() => {
|
|
144
|
+
g.current !== void 0 && (window.clearTimeout(g.current), g.current = void 0);
|
|
145
|
+
}, "clearBodyReloadStartTimeout");
|
|
146
|
+
Z(() => {
|
|
147
|
+
c || (Q(), N(), D.current = null, b(!1));
|
|
148
|
+
}, [c]), Z(() => {
|
|
149
|
+
var R;
|
|
150
|
+
if (_.id !== re.current && !B(l.current) && ((R = l.current) == null || R.Dispose(), l.current = null, re.current = _.id), !!B(l.current))
|
|
151
|
+
return $e({
|
|
152
|
+
id: e,
|
|
153
|
+
onSelect: M,
|
|
154
|
+
onRowClick: k,
|
|
155
|
+
onRowAdd: q,
|
|
156
|
+
onRowDelete: S,
|
|
157
|
+
onRowUndelete: H,
|
|
158
|
+
onRowChange: L,
|
|
159
|
+
onClickButton: t,
|
|
160
|
+
onSave: r,
|
|
161
|
+
onReady: u,
|
|
162
|
+
onAfterValueChanged: v,
|
|
163
|
+
treeGridInstanceRef: l,
|
|
164
|
+
latestLayoutOverridesRef: j,
|
|
165
|
+
appliedLayoutOverridesRef: x,
|
|
166
|
+
appliedBodyDataPropRef: C,
|
|
167
|
+
hasAppliedInitialLayoutRef: pe,
|
|
168
|
+
setIsTreeGridReady: me
|
|
169
|
+
}), window.TreeGrid(
|
|
170
|
+
Ne({
|
|
140
171
|
id: e,
|
|
141
|
-
layoutUrl:
|
|
142
|
-
dataUrl:
|
|
143
|
-
bodyData:
|
|
144
|
-
useDataUrl:
|
|
172
|
+
layoutUrl: G,
|
|
173
|
+
dataUrl: I,
|
|
174
|
+
bodyData: a,
|
|
175
|
+
useDataUrl: A,
|
|
145
176
|
width: y,
|
|
146
|
-
height:
|
|
147
|
-
languageId:
|
|
177
|
+
height: p,
|
|
178
|
+
languageId: _.id
|
|
148
179
|
}),
|
|
149
180
|
e,
|
|
150
181
|
e
|
|
151
|
-
),
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
onRowAdd: w,
|
|
156
|
-
onRowDelete: t,
|
|
157
|
-
onRowUndelete: r,
|
|
158
|
-
onRowChange: s,
|
|
159
|
-
onClickButton: a,
|
|
160
|
-
onSave: I,
|
|
161
|
-
onReady: U,
|
|
162
|
-
onAfterValueChanged: X,
|
|
163
|
-
treeGridInstanceRef: f,
|
|
164
|
-
latestLayoutOverridesRef: $,
|
|
165
|
-
appliedLayoutOverridesRef: O,
|
|
166
|
-
appliedBodyDataPropRef: _,
|
|
167
|
-
hasAppliedInitialLayoutRef: J,
|
|
168
|
-
setIsTreeGridReady: M
|
|
169
|
-
}), () => {
|
|
170
|
-
te(() => {
|
|
171
|
-
var d;
|
|
172
|
-
(d = f.current) == null || d.Dispose();
|
|
182
|
+
), () => {
|
|
183
|
+
be(() => {
|
|
184
|
+
var T;
|
|
185
|
+
(T = l.current) == null || T.Dispose();
|
|
173
186
|
}, 200);
|
|
174
187
|
};
|
|
175
|
-
}, []),
|
|
176
|
-
const
|
|
177
|
-
if (R
|
|
188
|
+
}, []), we(() => {
|
|
189
|
+
const R = l.current, T = j.current, V = te.current;
|
|
190
|
+
if (B(R) || !U)
|
|
178
191
|
return;
|
|
179
|
-
const
|
|
180
|
-
!
|
|
181
|
-
|
|
192
|
+
const oe = x.current !== T && !Be(x.current, T), X = C.current !== V && (!F.current || w.current !== V);
|
|
193
|
+
if (!(!oe && !X) && (oe && (fe(R, T, X), x.current = T), X)) {
|
|
194
|
+
const P = E.current + 1, ie = /* @__PURE__ */ i(() => {
|
|
195
|
+
const J = w.current;
|
|
196
|
+
g.current = void 0, Pe(R, J, () => {
|
|
197
|
+
if (E.current !== P)
|
|
198
|
+
return;
|
|
199
|
+
C.current = J, w.current === J && (w.current = void 0, F.current = !1);
|
|
200
|
+
const se = D.current;
|
|
201
|
+
if (!c || se === null) {
|
|
202
|
+
D.current = null, b(!1);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const ue = Math.max(
|
|
206
|
+
0,
|
|
207
|
+
Le - (Date.now() - se)
|
|
208
|
+
);
|
|
209
|
+
if (N(), ue === 0) {
|
|
210
|
+
D.current = null, b(!1);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
O.current = window.setTimeout(() => {
|
|
214
|
+
E.current === P && (O.current = void 0, D.current = null, b(!1));
|
|
215
|
+
}, ue);
|
|
216
|
+
});
|
|
217
|
+
}, "runBodyReload");
|
|
218
|
+
E.current = P, w.current = V, F.current = !0, c && V !== void 0 ? (Q(), N(), D.current = Date.now(), b(!0), g.current = window.setTimeout(() => {
|
|
219
|
+
E.current === P && ie();
|
|
220
|
+
}, 0)) : ie();
|
|
221
|
+
}
|
|
222
|
+
}, [U, m, a, c]), Z(() => () => {
|
|
223
|
+
Q(), N();
|
|
224
|
+
}, []);
|
|
225
|
+
const W = {
|
|
226
|
+
height: p,
|
|
227
|
+
width: y,
|
|
228
|
+
...n
|
|
229
|
+
};
|
|
230
|
+
return (c || K) && (W.position = n != null && n.position && n.position !== "static" ? n.position : "relative", W.isolation = "isolate"), /* @__PURE__ */ Ge("div", { ref: ee, className: s, style: W, children: [
|
|
231
|
+
/* @__PURE__ */ Y("div", { id: e, className: f, style: Ie(d, ["height", "width"]) }),
|
|
232
|
+
/* @__PURE__ */ Y(
|
|
233
|
+
ge,
|
|
234
|
+
{
|
|
235
|
+
visible: K,
|
|
236
|
+
message: le("Message.조회된 결과가 없습니다."),
|
|
237
|
+
overlayFrame: ne
|
|
238
|
+
}
|
|
239
|
+
),
|
|
240
|
+
/* @__PURE__ */ Y(Oe, { visible: z, overlayFrame: ne })
|
|
241
|
+
] });
|
|
182
242
|
}, "OwpTreeGrid");
|
|
183
243
|
export {
|
|
184
|
-
|
|
244
|
+
Ze as OwpTreeGrid
|
|
185
245
|
};
|
|
186
246
|
//# sourceMappingURL=OwpTreeGrid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpTreeGrid.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGrid.tsx"],"sourcesContent":["import { useGetCurrentLanguage } from '@/hooks/useCurrentLanguage';\nimport { debounce, delay, get, isEmpty, isEqual, omit } from 'es-toolkit/compat';\nimport {\n type CSSProperties,\n type Dispatch,\n type MutableRefObject,\n type SetStateAction,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { applyTreeGridLayoutToGrid } from './utils';\n\ntype TreeGridLayoutScalarValue = string | number;\ntype TreeGridNestedLayoutFields = Record<string, TreeGridLayoutScalarValue>;\ntype TreeGridLayoutFields = Record<string, TreeGridLayoutScalarValue | TreeGridNestedLayoutFields>;\ntype TreeGridSectionFields = Record<string, TreeGridLayoutScalarValue>;\n\nexport interface OwpTreeGridLayout {\n Header?: TreeGridLayoutFields;\n Toolbar?: TreeGridSectionFields;\n Foot?: TreeGridSectionFields;\n}\n\nexport type OwpTreeGridLayoutConfig = OwpTreeGridLayout;\nexport type THeader = OwpTreeGridLayoutConfig;\nexport type OwpTreeGridBodyData<T> = Record<string, never> | [] | undefined | T[];\nexport type OwpTreeGridData<T> = OwpTreeGridBodyData<T>;\nexport type TData<T> = OwpTreeGridBodyData<T>;\nexport type OwpTreeGridRowModel<T> = TRow & T;\nexport type OwpTreeGridSelectedRows<T> = OwpTreeGridRowModel<T>[];\n\ntype OwpTreeGridSelectHandler<T> = (selectedRows: OwpTreeGridSelectedRows<T>) => void;\ntype OwpTreeGridRowAddHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridRowDeleteHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n deleteType: number,\n) => void;\ntype OwpTreeGridRowUndeleteHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridButtonClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n event: Event,\n) => void;\ntype OwpTreeGridRowClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n x: number,\n y: number,\n event: Event,\n) => void;\ntype OwpTreeGridSaveHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n autoupdate: boolean | number,\n) => void;\ntype OwpTreeGridCellValue = unknown;\ntype OwpTreeGridAfterValueChangedHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n value: OwpTreeGridCellValue,\n) => void;\n\nexport interface OwpTreeGridProps<T> {\n id: string;\n className?: string;\n containerStyle?: CSSProperties;\n containerClassName?: string;\n layoutUrl?: string;\n dataUrl?: string;\n layoutOverrides?: OwpTreeGridLayoutConfig;\n /** @deprecated use layoutUrl */\n LayoutUrl?: string;\n /** @deprecated use dataUrl */\n DataUrl?: string;\n data?: OwpTreeGridBodyData<T>;\n /** @deprecated use layoutOverrides */\n layout?: OwpTreeGridLayoutConfig;\n style?: CSSProperties;\n height?: string | number;\n width?: string | number;\n useDataUrl?: boolean;\n onSelect?: OwpTreeGridSelectHandler<T>;\n onRowAdd?: OwpTreeGridRowAddHandler<T>;\n onRowDelete?: OwpTreeGridRowDeleteHandler<T>;\n onRowUndelete?: OwpTreeGridRowUndeleteHandler<T>;\n onRowChange?: OwpTreeGridAfterValueChangedHandler<T>;\n onClickButton?: OwpTreeGridButtonClickHandler<T>;\n onReady?: (grid: TGrid) => void;\n onRowClick?: OwpTreeGridRowClickHandler<T>;\n onSave?: OwpTreeGridSaveHandler<T>;\n onAfterValueChanged?: OwpTreeGridAfterValueChangedHandler<T>;\n}\n\ntype TreeGridEventBindingOptions<T> = Pick<\n OwpTreeGridProps<T>,\n | 'id'\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n> & {\n treeGridInstanceRef: MutableRefObject<TGrid | null>;\n latestLayoutOverridesRef: MutableRefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: MutableRefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: MutableRefObject<OwpTreeGridBodyData<T>>;\n hasAppliedInitialLayoutRef: MutableRefObject<boolean>;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\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\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\nconst 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\nconst replaceTreeGridBodyData = <T,>(grid: TGrid, bodyData: OwpTreeGridBodyData<T>) => {\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();\n};\n\nconst bindTreeGridEvents = <T,>({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const valueChangedHandler = onAfterValueChanged ?? onRowChange;\n\n \n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n\n if (typeof onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n onRowClick(grid, row as OwpTreeGridRowModel<T>, col, x, y, event);\n }, 300),\n );\n }\n\n if (typeof onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n onClickButton(grid, row as OwpTreeGridRowModel<T>, col, event);\n }, 300),\n );\n }\n\n if (typeof onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n onRowDelete(grid, row as OwpTreeGridRowModel<T>, deleteType);\n });\n }\n if (typeof onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n onRowUndelete(grid, row as OwpTreeGridRowModel<T>);\n });\n }\n if (typeof valueChangedHandler === 'function') {\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n valueChangedHandler(grid, row as OwpTreeGridRowModel<T>, col, value);\n });\n }\n if (typeof onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n onSelect(selectedRows);\n }, 100),\n );\n }\n if (typeof onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n onSave(grid, row as OwpTreeGridRowModel<T>, autoupdate);\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 setIsTreeGridReady(true);\n onReady?.(grid);\n }\n }, 100),\n );\n};\n\n/**\n * OwpTreeGrid 컴포넌트\n * @param id 식별자\n * @param containerStyle containerStyle 값\n * @param containerClassName containerClassName 값\n * @param className CSS 클래스명\n * @param style 스타일 객체\n * @param height height 값\n */\nconst OwpTreeGrid = <T,>({\n id = 'treeGridWrapper',\n containerStyle,\n containerClassName,\n className,\n style,\n height = '100%',\n width = '100%',\n layoutUrl,\n dataUrl,\n layoutOverrides,\n LayoutUrl,\n DataUrl,\n data,\n layout,\n useDataUrl,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n}: OwpTreeGridProps<T>) => {\n const resolvedLayoutUrl = layoutUrl ?? LayoutUrl;\n const resolvedDataUrl = dataUrl ?? DataUrl;\n const resolvedLayoutOverrides = layoutOverrides ?? layout;\n const treeGridInstanceRef = useRef<TGrid>(null);\n const latestLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(\n resolvedLayoutOverrides,\n );\n const latestBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(data);\n const appliedLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(undefined);\n const appliedBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(undefined);\n const hasAppliedInitialLayoutRef = useRef(false);\n const [isTreeGridReady, setIsTreeGridReady] = useState(false);\n const currentLanguage = useGetCurrentLanguage();\n const currentLanguageIdRef = useRef(currentLanguage.id);\n\n latestLayoutOverridesRef.current = resolvedLayoutOverrides;\n latestBodyDataPropRef.current = data;\n\n useEffect(() => {\n if (\n currentLanguage.id !== currentLanguageIdRef.current &&\n !isEmpty(treeGridInstanceRef.current)\n ) {\n treeGridInstanceRef.current?.Dispose();\n treeGridInstanceRef.current = null;\n currentLanguageIdRef.current = currentLanguage.id;\n }\n\n if (!isEmpty(treeGridInstanceRef.current)) {\n return;\n }\n\n window.TreeGrid(\n buildTreeGridInitializationOptions({\n id,\n layoutUrl: resolvedLayoutUrl,\n dataUrl: resolvedDataUrl,\n bodyData: data,\n useDataUrl,\n width,\n height,\n languageId: currentLanguage.id,\n }),\n id,\n id,\n );\n\n bindTreeGridEvents({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n });\n\n return () => {\n delay(() => {\n treeGridInstanceRef.current?.Dispose();\n }, 200);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const treeGrid = treeGridInstanceRef.current;\n const nextLayoutOverrides = latestLayoutOverridesRef.current;\n const nextBodyData = latestBodyDataPropRef.current;\n\n if (isEmpty(treeGrid) || !isTreeGridReady) {\n return;\n }\n\n const shouldApplyLayoutOverrides =\n appliedLayoutOverridesRef.current !== nextLayoutOverrides &&\n !isEqual(appliedLayoutOverridesRef.current, nextLayoutOverrides);\n const shouldApplyBodyData = appliedBodyDataPropRef.current !== nextBodyData;\n\n if (!shouldApplyLayoutOverrides && !shouldApplyBodyData) {\n return;\n }\n\n if (shouldApplyLayoutOverrides) {\n applyTreeGridLayoutToGrid(treeGrid, nextLayoutOverrides, shouldApplyBodyData);\n appliedLayoutOverridesRef.current = nextLayoutOverrides;\n }\n\n if (shouldApplyBodyData) {\n replaceTreeGridBodyData(treeGrid, nextBodyData);\n appliedBodyDataPropRef.current = nextBodyData;\n }\n }, [isTreeGridReady, resolvedLayoutOverrides, data]);\n\n return (\n <div className={containerClassName} style={{ height, width, ...containerStyle }}>\n <div id={id} className={className} style={omit(style, ['height', 'width'])} />\n </div>\n );\n};\n\nexport { OwpTreeGrid };\n"],"names":["TREE_GRID_TEXT_RESOURCE_URLS","appendNoCacheQuery","__name","url","getTreeGridTextResourceUrl","languageId","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","width","height","getTreeGridBodyData","grid","get","replaceTreeGridBodyData","currentDataConfig","_a","bindTreeGridEvents","onSelect","onRowClick","onRowAdd","onRowDelete","onRowUndelete","onRowChange","onClickButton","onSave","onReady","onAfterValueChanged","treeGridInstanceRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","hasAppliedInitialLayoutRef","setIsTreeGridReady","valueChangedHandler","row","debounce","col","x","y","event","deleteType","value","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","OwpTreeGrid","containerStyle","containerClassName","className","style","layoutOverrides","LayoutUrl","DataUrl","data","layout","resolvedLayoutUrl","resolvedDataUrl","resolvedLayoutOverrides","useRef","latestBodyDataPropRef","isTreeGridReady","useState","currentLanguage","useGetCurrentLanguage","currentLanguageIdRef","useEffect","delay","treeGrid","nextLayoutOverrides","nextBodyData","shouldApplyLayoutOverrides","isEqual","shouldApplyBodyData","jsx","omit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OwpTreeGrid.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGrid.tsx"],"sourcesContent":["import { useOwpTranslation } from '@/hooks/useOwpTranslation';\nimport { useGetCurrentLanguage } from '@/hooks/useCurrentLanguage';\nimport { debounce, delay, get, isEmpty, isEqual, omit } from 'es-toolkit/compat';\nimport {\n type CSSProperties,\n type Dispatch,\n type RefObject,\n type SetStateAction,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { useOwpTreeGridOverlayFrame } from './hooks/useOwpTreeGridOverlayFrame';\nimport { OwpTreeGridLoadingOverlay } from './OwpTreeGridLoadingOverlay';\nimport { OwpTreeGridNoDataOverlay } from './OwpTreeGridNoDataOverlay';\nimport { applyTreeGridLayoutToGrid } from './utils';\n\ntype TreeGridLayoutScalarValue = string | number;\ntype TreeGridNestedLayoutFields = Record<string, TreeGridLayoutScalarValue>;\ntype TreeGridLayoutFields = Record<string, TreeGridLayoutScalarValue | TreeGridNestedLayoutFields>;\ntype TreeGridSectionFields = Record<string, TreeGridLayoutScalarValue>;\n\nconst TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\nexport interface OwpTreeGridLayout {\n Header?: TreeGridLayoutFields;\n Toolbar?: TreeGridSectionFields;\n Foot?: TreeGridSectionFields;\n}\n\nexport type OwpTreeGridLayoutConfig = OwpTreeGridLayout;\nexport type THeader = OwpTreeGridLayoutConfig;\nexport type OwpTreeGridBodyData<T> = Record<string, never> | [] | undefined | T[];\nexport type OwpTreeGridData<T> = OwpTreeGridBodyData<T>;\nexport type TData<T> = OwpTreeGridBodyData<T>;\nexport type OwpTreeGridRowModel<T> = TRow & T;\nexport type OwpTreeGridSelectedRows<T> = OwpTreeGridRowModel<T>[];\n\ntype OwpTreeGridSelectHandler<T> = (selectedRows: OwpTreeGridSelectedRows<T>) => void;\ntype OwpTreeGridRowAddHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridRowDeleteHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n deleteType: number,\n) => void;\ntype OwpTreeGridRowUndeleteHandler<T> = (grid: TGrid, row: OwpTreeGridRowModel<T>) => void;\ntype OwpTreeGridButtonClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n event: Event,\n) => void;\ntype OwpTreeGridRowClickHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n x: number,\n y: number,\n event: Event,\n) => void;\ntype OwpTreeGridSaveHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n autoupdate: boolean | number,\n) => void;\ntype OwpTreeGridCellValue = unknown;\ntype OwpTreeGridAfterValueChangedHandler<T> = (\n grid: TGrid,\n row: OwpTreeGridRowModel<T>,\n col: string,\n value: OwpTreeGridCellValue,\n) => void;\n\nexport interface OwpTreeGridProps<T> {\n id: string;\n className?: string;\n containerStyle?: CSSProperties;\n containerClassName?: string;\n layoutUrl?: string;\n dataUrl?: string;\n layoutOverrides?: OwpTreeGridLayoutConfig;\n data?: OwpTreeGridBodyData<T>;\n style?: CSSProperties;\n height?: string | number;\n width?: string | number;\n useDataUrl?: boolean;\n onSelect?: OwpTreeGridSelectHandler<T>;\n onRowAdd?: OwpTreeGridRowAddHandler<T>;\n onRowDelete?: OwpTreeGridRowDeleteHandler<T>;\n onRowUndelete?: OwpTreeGridRowUndeleteHandler<T>;\n onRowChange?: OwpTreeGridAfterValueChangedHandler<T>;\n onClickButton?: OwpTreeGridButtonClickHandler<T>;\n onReady?: (grid: TGrid) => void;\n onRowClick?: OwpTreeGridRowClickHandler<T>;\n onSave?: OwpTreeGridSaveHandler<T>;\n onAfterValueChanged?: OwpTreeGridAfterValueChangedHandler<T>;\n loading?: boolean;\n showLoading?: boolean;\n}\n\ntype TreeGridEventBindingOptions<T> = Pick<\n OwpTreeGridProps<T>,\n | 'id'\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n> & {\n treeGridInstanceRef: RefObject<TGrid>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\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\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\nconst 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\nconst 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\nconst bindTreeGridEvents = <T,>({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const valueChangedHandler = onAfterValueChanged ?? onRowChange;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n\n if (typeof onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n onRowClick(grid, row as OwpTreeGridRowModel<T>, col, x, y, event);\n }, 300),\n );\n }\n\n if (typeof onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n onClickButton(grid, row as OwpTreeGridRowModel<T>, col, event);\n }, 300),\n );\n }\n\n if (typeof onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n onRowDelete(grid, row as OwpTreeGridRowModel<T>, deleteType);\n });\n }\n if (typeof onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n onRowUndelete(grid, row as OwpTreeGridRowModel<T>);\n });\n }\n if (typeof valueChangedHandler === 'function') {\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n valueChangedHandler(grid, row as OwpTreeGridRowModel<T>, col, value);\n });\n }\n if (typeof onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n onSelect(selectedRows);\n }, 100),\n );\n }\n if (typeof onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n onSave(grid, row as OwpTreeGridRowModel<T>, autoupdate);\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 setIsTreeGridReady(true);\n onReady?.(grid);\n }\n }, 100),\n );\n};\n\n/**\n * OwpTreeGrid 컴포넌트\n * @param id 식별자\n * @param containerStyle containerStyle 값\n * @param containerClassName containerClassName 값\n * @param className CSS 클래스명\n * @param style 스타일 객체\n * @param height height 값\n */\nconst OwpTreeGrid = <T,>({\n id = 'treeGridWrapper',\n containerStyle,\n containerClassName,\n className,\n style,\n height = '100%',\n width = '100%',\n layoutUrl,\n dataUrl,\n layoutOverrides,\n data,\n useDataUrl,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n loading,\n showLoading = true,\n}: OwpTreeGridProps<T>) => {\n const { t } = useOwpTranslation();\n const treeGridInstanceRef = useRef<TGrid>(null);\n const treeGridContainerRef = useRef<HTMLDivElement | null>(null);\n const latestLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(layoutOverrides);\n const latestBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(data);\n const stagedBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(undefined);\n const hasStagedBodyDataPropRef = useRef(false);\n const appliedLayoutOverridesRef = useRef<OwpTreeGridLayoutConfig | undefined>(undefined);\n const appliedBodyDataPropRef = useRef<OwpTreeGridBodyData<T>>(undefined);\n const hasAppliedInitialLayoutRef = useRef(false);\n const bodyReloadSequenceRef = useRef(0);\n const bindingLoadingStartedAtRef = useRef<number | null>(null);\n const bindingLoadingHideTimeoutRef = useRef<number | undefined>(undefined);\n const bodyReloadStartTimeoutRef = useRef<number | undefined>(undefined);\n const [isTreeGridReady, setIsTreeGridReady] = useState(false);\n const [isBindingLoadingVisible, setIsBindingLoadingVisible] = useState(false);\n const currentLanguage = useGetCurrentLanguage();\n const currentLanguageIdRef = useRef(currentLanguage.id);\n const isPendingBodyReload =\n showLoading &&\n data !== undefined &&\n isTreeGridReady &&\n appliedBodyDataPropRef.current !== data;\n const isInternalLoadingVisible = showLoading && (isBindingLoadingVisible || isPendingBodyReload);\n const isLoadingOverlayVisible = (showLoading && loading === true) || isInternalLoadingVisible;\n const isNoDataVisible = !isLoadingOverlayVisible && data !== undefined && isEmpty(data);\n\n latestLayoutOverridesRef.current = layoutOverrides;\n latestBodyDataPropRef.current = data;\n\n const overlayFrame = useOwpTreeGridOverlayFrame({\n visible: isLoadingOverlayVisible || isNoDataVisible,\n containerRef: treeGridContainerRef,\n treeGridInstanceRef,\n });\n\n const clearBindingLoadingHideTimeout = () => {\n if (bindingLoadingHideTimeoutRef.current !== undefined) {\n window.clearTimeout(bindingLoadingHideTimeoutRef.current);\n bindingLoadingHideTimeoutRef.current = undefined;\n }\n };\n\n const clearBodyReloadStartTimeout = () => {\n if (bodyReloadStartTimeoutRef.current !== undefined) {\n window.clearTimeout(bodyReloadStartTimeoutRef.current);\n bodyReloadStartTimeoutRef.current = undefined;\n }\n };\n\n useEffect(() => {\n if (!showLoading) {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n }\n }, [showLoading]);\n\n useEffect(() => {\n if (\n currentLanguage.id !== currentLanguageIdRef.current &&\n !isEmpty(treeGridInstanceRef.current)\n ) {\n treeGridInstanceRef.current?.Dispose();\n treeGridInstanceRef.current = null;\n currentLanguageIdRef.current = currentLanguage.id;\n }\n\n if (!isEmpty(treeGridInstanceRef.current)) {\n return;\n }\n\n bindTreeGridEvents({\n id,\n onSelect,\n onRowClick,\n onRowAdd,\n onRowDelete,\n onRowUndelete,\n onRowChange,\n onClickButton,\n onSave,\n onReady,\n onAfterValueChanged,\n treeGridInstanceRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n setIsTreeGridReady,\n });\n\n window.TreeGrid(\n buildTreeGridInitializationOptions({\n id,\n layoutUrl,\n dataUrl,\n bodyData: data,\n useDataUrl,\n width,\n height,\n languageId: currentLanguage.id,\n }),\n id,\n id,\n );\n\n return () => {\n delay(() => {\n treeGridInstanceRef.current?.Dispose();\n }, 200);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useLayoutEffect(() => {\n const treeGrid = treeGridInstanceRef.current;\n const nextLayoutOverrides = latestLayoutOverridesRef.current;\n const nextBodyData = latestBodyDataPropRef.current;\n\n if (isEmpty(treeGrid) || !isTreeGridReady) {\n return;\n }\n\n const shouldApplyLayoutOverrides =\n appliedLayoutOverridesRef.current !== nextLayoutOverrides &&\n !isEqual(appliedLayoutOverridesRef.current, nextLayoutOverrides);\n const shouldApplyBodyData =\n appliedBodyDataPropRef.current !== nextBodyData &&\n (!hasStagedBodyDataPropRef.current || stagedBodyDataPropRef.current !== nextBodyData);\n\n if (!shouldApplyLayoutOverrides && !shouldApplyBodyData) {\n return;\n }\n\n if (shouldApplyLayoutOverrides) {\n applyTreeGridLayoutToGrid(treeGrid, nextLayoutOverrides, shouldApplyBodyData);\n appliedLayoutOverridesRef.current = nextLayoutOverrides;\n }\n\n if (shouldApplyBodyData) {\n const reloadSequence = bodyReloadSequenceRef.current + 1;\n const runBodyReload = () => {\n const bodyDataToApply = stagedBodyDataPropRef.current;\n\n bodyReloadStartTimeoutRef.current = undefined;\n\n replaceTreeGridBodyData(treeGrid, bodyDataToApply, () => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n appliedBodyDataPropRef.current = bodyDataToApply;\n\n if (stagedBodyDataPropRef.current === bodyDataToApply) {\n stagedBodyDataPropRef.current = undefined;\n hasStagedBodyDataPropRef.current = false;\n }\n\n const startedAt = bindingLoadingStartedAtRef.current;\n\n if (!showLoading || startedAt === null) {\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n return;\n }\n\n const remainingVisibleTime = Math.max(\n 0,\n TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS - (Date.now() - startedAt),\n );\n\n clearBindingLoadingHideTimeout();\n\n if (remainingVisibleTime === 0) {\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n return;\n }\n\n bindingLoadingHideTimeoutRef.current = window.setTimeout(() => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n bindingLoadingHideTimeoutRef.current = undefined;\n bindingLoadingStartedAtRef.current = null;\n setIsBindingLoadingVisible(false);\n }, remainingVisibleTime);\n });\n };\n\n bodyReloadSequenceRef.current = reloadSequence;\n stagedBodyDataPropRef.current = nextBodyData;\n hasStagedBodyDataPropRef.current = true;\n\n if (showLoading && nextBodyData !== undefined) {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n bindingLoadingStartedAtRef.current = Date.now();\n setIsBindingLoadingVisible(true);\n bodyReloadStartTimeoutRef.current = window.setTimeout(() => {\n if (bodyReloadSequenceRef.current !== reloadSequence) {\n return;\n }\n\n runBodyReload();\n }, 0);\n } else {\n runBodyReload();\n }\n }\n }, [isTreeGridReady, layoutOverrides, data, showLoading]);\n\n useEffect(() => {\n return () => {\n clearBodyReloadStartTimeout();\n clearBindingLoadingHideTimeout();\n };\n }, []);\n\n const resolvedContainerStyle: CSSProperties = {\n height,\n width,\n ...containerStyle,\n };\n\n if (showLoading || isNoDataVisible) {\n resolvedContainerStyle.position =\n containerStyle?.position && containerStyle.position !== 'static'\n ? containerStyle.position\n : 'relative';\n resolvedContainerStyle.isolation = 'isolate';\n }\n\n return (\n <div ref={treeGridContainerRef} className={containerClassName} style={resolvedContainerStyle}>\n <div id={id} className={className} style={omit(style, ['height', 'width'])} />\n <OwpTreeGridNoDataOverlay\n visible={isNoDataVisible}\n message={t('Message.조회된 결과가 없습니다.')}\n overlayFrame={overlayFrame}\n />\n <OwpTreeGridLoadingOverlay visible={isLoadingOverlayVisible} overlayFrame={overlayFrame} />\n </div>\n );\n};\n\nexport { OwpTreeGrid };\n"],"names":["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","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","onSelect","onRowClick","onRowAdd","onRowDelete","onRowUndelete","onRowChange","onClickButton","onSave","onReady","onAfterValueChanged","treeGridInstanceRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","hasAppliedInitialLayoutRef","setIsTreeGridReady","valueChangedHandler","row","debounce","col","x","y","event","deleteType","value","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","OwpTreeGrid","containerStyle","containerClassName","className","style","layoutOverrides","data","loading","showLoading","t","useOwpTranslation","useRef","treeGridContainerRef","latestBodyDataPropRef","stagedBodyDataPropRef","hasStagedBodyDataPropRef","bodyReloadSequenceRef","bindingLoadingStartedAtRef","bindingLoadingHideTimeoutRef","bodyReloadStartTimeoutRef","isTreeGridReady","useState","isBindingLoadingVisible","setIsBindingLoadingVisible","currentLanguage","useGetCurrentLanguage","currentLanguageIdRef","isPendingBodyReload","isLoadingOverlayVisible","isNoDataVisible","overlayFrame","useOwpTreeGridOverlayFrame","clearBindingLoadingHideTimeout","clearBodyReloadStartTimeout","useEffect","delay","useLayoutEffect","treeGrid","nextLayoutOverrides","nextBodyData","shouldApplyLayoutOverrides","isEqual","shouldApplyBodyData","reloadSequence","runBodyReload","bodyDataToApply","startedAt","remainingVisibleTime","resolvedContainerStyle","jsx","omit","OwpTreeGridNoDataOverlay","OwpTreeGridLoadingOverlay"],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
var r = Object.defineProperty;
|
|
2
|
+
var i = (e, t) => r(e, "name", { value: t, configurable: !0 });
|
|
3
|
+
import { jsx as n } 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 o from "@mui/material/CircularProgress";
|
|
5
|
+
import { TREE_GRID_LOADING_OVERLAY_Z_INDEX as s } from "./hooks/useOwpTreeGridOverlayFrame.js";
|
|
6
|
+
const c = /* @__PURE__ */ i(({ visible: e, overlayFrame: t }) => e ? /* @__PURE__ */ n(
|
|
7
|
+
"div",
|
|
8
|
+
{
|
|
9
|
+
"aria-hidden": "true",
|
|
10
|
+
style: {
|
|
11
|
+
position: "absolute",
|
|
12
|
+
left: t.left,
|
|
13
|
+
top: t.top,
|
|
14
|
+
width: t.width,
|
|
15
|
+
height: t.height,
|
|
16
|
+
zIndex: s,
|
|
17
|
+
display: "flex",
|
|
18
|
+
alignItems: "center",
|
|
19
|
+
justifyContent: "center",
|
|
20
|
+
pointerEvents: "none"
|
|
21
|
+
},
|
|
22
|
+
children: /* @__PURE__ */ n(o, { color: "secondary", size: 44, thickness: 3.6 })
|
|
23
|
+
}
|
|
24
|
+
) : null, "OwpTreeGridLoadingOverlay");
|
|
25
|
+
export {
|
|
26
|
+
c as OwpTreeGridLoadingOverlay
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=OwpTreeGridLoadingOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwpTreeGridLoadingOverlay.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.tsx"],"sourcesContent":["import CircularProgress from '@mui/material/CircularProgress';\nimport {\n type OwpTreeGridOverlayFrame,\n TREE_GRID_LOADING_OVERLAY_Z_INDEX,\n} from './hooks/useOwpTreeGridOverlayFrame';\n\ntype OwpTreeGridLoadingOverlayProps = {\n visible: boolean;\n overlayFrame: OwpTreeGridOverlayFrame;\n};\n\n/**\n * TreeGrid loading overlay\n */\nconst OwpTreeGridLoadingOverlay = ({ visible, overlayFrame }: OwpTreeGridLoadingOverlayProps) => {\n if (!visible) {\n return null;\n }\n\n return (\n <div\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n left: overlayFrame.left,\n top: overlayFrame.top,\n width: overlayFrame.width,\n height: overlayFrame.height,\n zIndex: TREE_GRID_LOADING_OVERLAY_Z_INDEX,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'none',\n }}\n >\n <CircularProgress color=\"secondary\" size={44} thickness={3.6} />\n </div>\n );\n};\n\nexport { OwpTreeGridLoadingOverlay };\n"],"names":["OwpTreeGridLoadingOverlay","__name","visible","overlayFrame","jsx","TREE_GRID_LOADING_OVERLAY_Z_INDEX","CircularProgress"],"mappings":";;;;;AAcA,MAAMA,IAA4B,gBAAAC,EAAA,CAAC,EAAE,SAAAC,GAAS,cAAAC,QACvCD,IAKH,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,OAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAMD,EAAa;AAAA,MACnB,KAAKA,EAAa;AAAA,MAClB,OAAOA,EAAa;AAAA,MACpB,QAAQA,EAAa;AAAA,MACrB,QAAQE;AAAA,MACR,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,eAAe;AAAA,IAAA;AAAA,IAGjB,4BAACC,GAAA,EAAiB,OAAM,aAAY,MAAM,IAAI,WAAW,IAAA,CAAK;AAAA,EAAA;AAAA,IAnBzD,MAFuB;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var r = Object.defineProperty;
|
|
2
|
+
var n = (e, i) => r(e, "name", { value: i, configurable: !0 });
|
|
3
|
+
import { jsx as o } 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 p from "@mui/material/Typography";
|
|
5
|
+
import { TREE_GRID_NO_DATA_OVERLAY_Z_INDEX as l } from "./hooks/useOwpTreeGridOverlayFrame.js";
|
|
6
|
+
const c = /* @__PURE__ */ n(({
|
|
7
|
+
visible: e,
|
|
8
|
+
message: i,
|
|
9
|
+
overlayFrame: t
|
|
10
|
+
}) => e ? /* @__PURE__ */ o(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
"aria-hidden": "true",
|
|
14
|
+
style: {
|
|
15
|
+
position: "absolute",
|
|
16
|
+
left: t.left,
|
|
17
|
+
top: t.top,
|
|
18
|
+
width: t.width,
|
|
19
|
+
height: t.height,
|
|
20
|
+
zIndex: l,
|
|
21
|
+
display: "flex",
|
|
22
|
+
alignItems: "center",
|
|
23
|
+
justifyContent: "center",
|
|
24
|
+
pointerEvents: "none"
|
|
25
|
+
},
|
|
26
|
+
children: /* @__PURE__ */ o(
|
|
27
|
+
p,
|
|
28
|
+
{
|
|
29
|
+
sx: {
|
|
30
|
+
color: "#111112",
|
|
31
|
+
fontFamily: "RobotoLight, sans-serif",
|
|
32
|
+
fontSize: "14px",
|
|
33
|
+
lineHeight: "16px",
|
|
34
|
+
letterSpacing: "0.04em"
|
|
35
|
+
},
|
|
36
|
+
children: i
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
) : null, "OwpTreeGridNoDataOverlay");
|
|
41
|
+
export {
|
|
42
|
+
c as OwpTreeGridNoDataOverlay
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=OwpTreeGridNoDataOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OwpTreeGridNoDataOverlay.js","sources":["../../../src/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography';\nimport {\n type OwpTreeGridOverlayFrame,\n TREE_GRID_NO_DATA_OVERLAY_Z_INDEX,\n} from './hooks/useOwpTreeGridOverlayFrame';\n\ntype OwpTreeGridNoDataOverlayProps = {\n visible: boolean;\n message: string;\n overlayFrame: OwpTreeGridOverlayFrame;\n};\n\n/**\n * TreeGrid no-data overlay\n * @param visible overlay visibility\n * @param message no-data message\n * @param overlayFrame overlay frame\n */\nconst OwpTreeGridNoDataOverlay = ({\n visible,\n message,\n overlayFrame,\n}: OwpTreeGridNoDataOverlayProps) => {\n if (!visible) {\n return null;\n }\n\n return (\n <div\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n left: overlayFrame.left,\n top: overlayFrame.top,\n width: overlayFrame.width,\n height: overlayFrame.height,\n zIndex: TREE_GRID_NO_DATA_OVERLAY_Z_INDEX,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'none',\n }}\n >\n <Typography\n sx={{\n color: '#111112',\n fontFamily: 'RobotoLight, sans-serif',\n fontSize: '14px',\n lineHeight: '16px',\n letterSpacing: '0.04em',\n }}\n >\n {message}\n </Typography>\n </div>\n );\n};\n\nexport { OwpTreeGridNoDataOverlay };\n"],"names":["OwpTreeGridNoDataOverlay","__name","visible","message","overlayFrame","jsx","TREE_GRID_NO_DATA_OVERLAY_Z_INDEX","Typography"],"mappings":";;;;;AAkBA,MAAMA,IAA2B,gBAAAC,EAAA,CAAC;AAAA,EAChC,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,cAAAC;AACF,MACOF,IAKH,gBAAAG;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,eAAY;AAAA,IACZ,OAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAMD,EAAa;AAAA,MACnB,KAAKA,EAAa;AAAA,MAClB,OAAOA,EAAa;AAAA,MACpB,QAAQA,EAAa;AAAA,MACrB,QAAQE;AAAA,MACR,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,eAAe;AAAA,IAAA;AAAA,IAGjB,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,eAAe;AAAA,QAAA;AAAA,QAGhB,UAAAJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACH;AAAA,IA7BK,MANsB;"}
|