@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.
Files changed (54) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index11.js +2 -2
  3. package/dist/_virtual/index13.js +2 -2
  4. package/dist/_virtual/index14.js +2 -2
  5. package/dist/_virtual/index15.js +5 -2
  6. package/dist/_virtual/index15.js.map +1 -1
  7. package/dist/_virtual/index16.js +2 -2
  8. package/dist/_virtual/index17.js +2 -2
  9. package/dist/_virtual/index5.js +2 -5
  10. package/dist/_virtual/index5.js.map +1 -1
  11. package/dist/_virtual/index6.js +2 -2
  12. package/dist/_virtual/index7.js +2 -2
  13. package/dist/components/OwpTable/OwpTable.js +21 -21
  14. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  15. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +187 -127
  16. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  17. package/dist/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.js +28 -0
  18. package/dist/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.js.map +1 -0
  19. package/dist/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.js +44 -0
  20. package/dist/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.js.map +1 -0
  21. package/dist/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.js +84 -0
  22. package/dist/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.js.map +1 -0
  23. package/dist/components/OwpTreeGrid/{utils.js → utils/index.js} +2 -2
  24. package/dist/components/OwpTreeGrid/utils/index.js.map +1 -0
  25. package/dist/contexts/OwpAppProvider.js.map +1 -1
  26. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  27. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  28. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  29. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  30. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  31. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  32. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  33. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  34. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  35. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  36. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  37. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  38. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  39. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  40. package/dist/node_modules/.pnpm/react-imask@7.6.1_react@19.2.4/node_modules/react-imask/esm/mixin.js +1 -1
  41. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  42. 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
  43. package/dist/owp-app.css +1 -1
  44. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +3 -7
  45. package/dist/types/components/OwpTreeGrid/OwpTreeGridLoadingOverlay.d.ts +10 -0
  46. package/dist/types/components/OwpTreeGrid/OwpTreeGridNoDataOverlay.d.ts +14 -0
  47. package/dist/types/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.d.ts +22 -0
  48. package/dist/types/components/OwpTreeGrid/{utils.d.ts → utils/index.d.ts} +1 -1
  49. package/dist/types/contexts/OwpAppProvider.d.ts +1 -0
  50. package/dist/utils/rebuildValue.js +41 -39
  51. package/dist/utils/rebuildValue.js.map +1 -1
  52. package/dist/utils/treeGridUtil.js +1 -1
  53. package/package.json +1 -3
  54. package/dist/components/OwpTreeGrid/utils.js.map +0 -1
@@ -1,186 +1,246 @@
1
- var Y = Object.defineProperty;
2
- var i = (e, n) => Y(e, "name", { value: n, configurable: !0 });
3
- import { jsx as H } 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 { useGetCurrentLanguage as Z } from "../../hooks/useCurrentLanguage.js";
5
- import { useRef as l, useState as ee, useEffect as K } from "react";
6
- import { applyTreeGridLayoutToGrid as V } from "./utils.js";
7
- import { isEmpty as R } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
8
- import { delay as te } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/delay.js";
9
- import { isEqual as re } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
10
- import { omit as ne } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/omit.js";
11
- import { debounce as L } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/debounce.js";
12
- import { get as oe } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/get.js";
13
- const Q = {
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
- }, W = /* @__PURE__ */ i((e) => `${e}?noCache=${Date.now()}`, "appendNoCacheQuery"), se = /* @__PURE__ */ i((e) => e === "kr" ? Q.kr : Q.en, "getTreeGridTextResourceUrl"), ue = /* @__PURE__ */ i((e) => e != null && e.includes("assets") ? W(e) : (
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"), ie = /* @__PURE__ */ i((e, n, o) => e ? { Url: ue(n) } : { Data: { Body: [R(o) ? [] : o] } }, "buildTreeGridDataSource"), ce = /* @__PURE__ */ i(({
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: o,
23
- bodyData: u,
24
- useDataUrl: p,
25
- width: c,
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: W(n ?? "") },
31
- Data: ie(p, o, u),
34
+ Layout: { Url: de(n ?? "") },
35
+ Data: _e(d, s, f),
32
36
  Text: {
33
- Url: se(G)
37
+ Url: xe(G)
34
38
  },
35
- width: c,
39
+ width: p,
36
40
  height: y,
37
41
  Debug: "Error"
38
- }), "buildTreeGridInitializationOptions"), ae = /* @__PURE__ */ i((e) => oe(e, "Data.Data.Data.Body.0"), "getTreeGridBodyData"), fe = /* @__PURE__ */ i((e, n) => {
39
- var u;
40
- const o = (u = e.Data) == null ? void 0 : u.Data;
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
- ...o,
46
+ ...f,
43
47
  Data: { Body: [n || []] },
44
48
  Url: ""
45
- }, e.ReloadBody();
46
- }, "replaceTreeGridBodyData"), de = /* @__PURE__ */ i(({
49
+ }, e.ReloadBody(s);
50
+ }, "replaceTreeGridBodyData"), $e = /* @__PURE__ */ i(({
47
51
  id: e,
48
52
  onSelect: n,
49
- onRowClick: o,
50
- onRowAdd: u,
51
- onRowDelete: p,
52
- onRowUndelete: c,
53
+ onRowClick: s,
54
+ onRowAdd: f,
55
+ onRowDelete: d,
56
+ onRowUndelete: p,
53
57
  onRowChange: y,
54
58
  onClickButton: G,
55
- onSave: m,
56
- onReady: D,
57
- onAfterValueChanged: g,
58
- treeGridInstanceRef: x,
59
- latestLayoutOverridesRef: T,
60
- appliedLayoutOverridesRef: B,
61
- appliedBodyDataPropRef: C,
62
- hasAppliedInitialLayoutRef: E,
63
- setIsTreeGridReady: h
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 w = g ?? y;
69
+ const L = a ?? y;
66
70
  window.TGSetEvent("OnRowAdd", e, (t, r) => {
67
- r.CanEdit = 1, r.CanDelete = 1, u == null || u(t, r);
68
- }), typeof o == "function" && window.TGSetEvent(
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
- L((t, r, s, a, I, U) => {
72
- o(t, r, s, a, I, U);
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
- L((t, r, s, a) => {
78
- G(t, r, s, a);
81
+ $((t, r, u, v) => {
82
+ G(t, r, u, v);
79
83
  }, 300)
80
- ), typeof p == "function" && window.TGSetEvent("OnRowDelete", e, (t, r, s) => {
81
- p(t, r, s);
82
- }), typeof c == "function" && window.TGSetEvent("OnRowUndelete", e, (t, r) => {
83
- c(t, r);
84
- }), typeof w == "function" && window.TGSetEvent("OnAfterValueChanged", e, (t, r, s, a) => {
85
- w(t, r, s, a);
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
- L((t) => {
93
+ $((t) => {
90
94
  const r = t.GetSelRows() ?? [];
91
95
  n(r);
92
96
  }, 100)
93
- ), typeof m == "function" && window.TGSetEvent("OnSave", e, (t, r, s) => {
94
- m(t, r, s);
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
- L((t) => {
99
- if (!E.current) {
100
- const r = T.current;
101
- E.current = !0, V(t, r), x.current = t, B.current = r, C.current = ae(t), h(!0), D == null || D(t);
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"), Se = /* @__PURE__ */ i(({
109
+ }, "bindTreeGridEvents"), Ze = /* @__PURE__ */ i(({
106
110
  id: e = "treeGridWrapper",
107
111
  containerStyle: n,
108
- containerClassName: o,
109
- className: u,
110
- style: p,
111
- height: c = "100%",
112
+ containerClassName: s,
113
+ className: f,
114
+ style: d,
115
+ height: p = "100%",
112
116
  width: y = "100%",
113
117
  layoutUrl: G,
114
- dataUrl: m,
115
- layoutOverrides: D,
116
- LayoutUrl: g,
117
- DataUrl: x,
118
- data: T,
119
- layout: B,
120
- useDataUrl: C,
121
- onSelect: E,
122
- onRowClick: h,
123
- onRowAdd: w,
124
- onRowDelete: t,
125
- onRowUndelete: r,
126
- onRowChange: s,
127
- onClickButton: a,
128
- onSave: I,
129
- onReady: U,
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 A = G ?? g, F = m ?? x, b = D ?? B, f = l(null), $ = l(
133
- b
134
- ), P = l(T), O = l(void 0), _ = l(void 0), J = l(!1), [j, M] = ee(!1), S = Z(), q = l(S.id);
135
- return $.current = b, P.current = T, K(() => {
136
- var v;
137
- if (S.id !== q.current && !R(f.current) && ((v = f.current) == null || v.Dispose(), f.current = null, q.current = S.id), !!R(f.current))
138
- return window.TreeGrid(
139
- ce({
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: A,
142
- dataUrl: F,
143
- bodyData: T,
144
- useDataUrl: C,
172
+ layoutUrl: G,
173
+ dataUrl: I,
174
+ bodyData: a,
175
+ useDataUrl: A,
145
176
  width: y,
146
- height: c,
147
- languageId: S.id
177
+ height: p,
178
+ languageId: _.id
148
179
  }),
149
180
  e,
150
181
  e
151
- ), de({
152
- id: e,
153
- onSelect: E,
154
- onRowClick: h,
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
- }, []), K(() => {
176
- const v = f.current, d = $.current, k = P.current;
177
- if (R(v) || !j)
188
+ }, []), we(() => {
189
+ const R = l.current, T = j.current, V = te.current;
190
+ if (B(R) || !U)
178
191
  return;
179
- const z = O.current !== d && !re(O.current, d), N = _.current !== k;
180
- !z && !N || (z && (V(v, d, N), O.current = d), N && (fe(v, k), _.current = k));
181
- }, [j, b, T]), /* @__PURE__ */ H("div", { className: o, style: { height: c, width: y, ...n }, children: /* @__PURE__ */ H("div", { id: e, className: u, style: ne(p, ["height", "width"]) }) });
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
- Se as OwpTreeGrid
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;"}