@owp/core 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) 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 +2 -2
  6. package/dist/_virtual/index16.js +5 -2
  7. package/dist/_virtual/index16.js.map +1 -1
  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/OwpLayout/OwpLayout.js +39 -39
  14. package/dist/components/OwpLayout/OwpLayout.js.map +1 -1
  15. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +169 -148
  16. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  17. package/dist/components/OwpTreeGrid/internal/OwpTreeGridLoadingOverlay.js +1 -1
  18. package/dist/components/OwpTreeGrid/internal/OwpTreeGridLoadingOverlay.js.map +1 -1
  19. package/dist/components/OwpTreeGrid/internal/OwpTreeGridNoDataOverlay.js +1 -1
  20. package/dist/components/OwpTreeGrid/internal/OwpTreeGridNoDataOverlay.js.map +1 -1
  21. package/dist/components/OwpTreeGrid/{hooks → internal/hooks}/useOwpTreeGridOverlayFrame.js +1 -1
  22. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridOverlayFrame.js.map +1 -0
  23. package/dist/components/OwpTreeGrid/internal/treeGridColumnEditRules.js +84 -0
  24. package/dist/components/OwpTreeGrid/internal/treeGridColumnEditRules.js.map +1 -0
  25. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +114 -103
  26. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  27. package/dist/components/OwpTreeGrid/internal/utils/perf.js.map +1 -0
  28. package/dist/layout/Layout.js +24 -24
  29. package/dist/layout/Layout.js.map +1 -1
  30. package/dist/layout/themeLayouts.js.map +1 -1
  31. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  32. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  33. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  34. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  35. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  36. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  37. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  38. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  39. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  40. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  41. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  42. package/dist/node_modules/.pnpm/react-imask@7.6.1_react@19.2.4/node_modules/react-imask/esm/mixin.js +1 -1
  43. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  44. 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
  45. package/dist/owp-app.css +1 -1
  46. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +7 -1
  47. package/dist/types/components/OwpTreeGrid/index.d.ts +1 -1
  48. package/dist/types/components/OwpTreeGrid/internal/OwpTreeGridLoadingOverlay.d.ts +1 -1
  49. package/dist/types/components/OwpTreeGrid/internal/OwpTreeGridNoDataOverlay.d.ts +1 -1
  50. package/dist/types/components/OwpTreeGrid/internal/treeGridColumnEditRules.d.ts +60 -0
  51. package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +7 -2
  52. package/dist/types/layout/Layout.d.ts +2 -0
  53. package/dist/types/layout/themeLayouts.d.ts +2 -0
  54. package/package.json +2 -2
  55. package/dist/components/OwpTreeGrid/hooks/useOwpTreeGridOverlayFrame.js.map +0 -1
  56. package/dist/components/OwpTreeGrid/utils/perf.js.map +0 -1
  57. /package/dist/components/OwpTreeGrid/{utils → internal/utils}/perf.js +0 -0
  58. /package/dist/types/components/OwpTreeGrid/{hooks → internal/hooks}/useOwpTreeGridOverlayFrame.d.ts +0 -0
  59. /package/dist/types/components/OwpTreeGrid/{utils → internal/utils}/perf.d.ts +0 -0
@@ -1,182 +1,193 @@
1
- var b = Object.defineProperty;
2
- var G = (e, t) => b(e, "name", { value: t, configurable: !0 });
3
- import { TREEGRID_INPUT_CELL_COLOR as L } from "../../../constants/treeGrid.js";
4
- import { highlightTreeGridCellById as h } from "../../../utils/treeGridUtil.js";
5
- import { applyTreeGridLayoutToGrid as x } from "./treeGridLayout.js";
6
- import { measureTreeGridPerf as N } from "../utils/perf.js";
7
- import { debounce as R } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/debounce.js";
8
- import { get as A } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/get.js";
9
- import { isEmpty as k } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
10
- const U = Number.parseInt(
11
- L.replace("#", ""),
1
+ var A = Object.defineProperty;
2
+ var i = (e, t) => A(e, "name", { value: t, configurable: !0 });
3
+ import { TREEGRID_INPUT_CELL_COLOR as v } from "../../../constants/treeGrid.js";
4
+ import { highlightTreeGridCellById as U } from "../../../utils/treeGridUtil.js";
5
+ import { enqueueSnackbar as V } from "notistack";
6
+ import { applyTreeGridLayoutToGrid as $ } from "./treeGridLayout.js";
7
+ import { resolveTreeGridColumnEditValue as F, resetTreeGridColumnEditRulesState as P, syncTreeGridColumnEditRules as K } from "./treeGridColumnEditRules.js";
8
+ import { measureTreeGridPerf as M } from "./utils/perf.js";
9
+ import { debounce as p } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/debounce.js";
10
+ import { get as j } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/get.js";
11
+ import { isEmpty as q } from "../../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
12
+ const z = Number.parseInt(
13
+ v.replace("#", ""),
12
14
  16
13
- ), g = 300, _ = {
15
+ ), Ce = 300, B = {
14
16
  en: "/assets/vendors/Grid/TextEN.xml",
15
17
  kr: "/assets/vendors/Grid/TextKR.xml"
16
- }, E = /* @__PURE__ */ G((e) => `${e}?noCache=${Date.now()}`, "appendNoCacheQuery"), V = /* @__PURE__ */ G((e) => e === "kr" ? _.kr : _.en, "getTreeGridTextResourceUrl"), v = /* @__PURE__ */ G((e) => e != null && e.includes("assets") ? E(e) : (
18
+ }, L = /* @__PURE__ */ i((e) => `${e}?noCache=${Date.now()}`, "appendNoCacheQuery"), Q = /* @__PURE__ */ i((e) => e === "kr" ? B.kr : B.en, "getTreeGridTextResourceUrl"), X = /* @__PURE__ */ i((e) => e != null && e.includes("assets") ? L(e) : (
17
19
  // @ts-expect-error - API base URL env is provided by host app
18
20
  `undefined/${e}?noCache=${Date.now()}`
19
- ), "resolveTreeGridDataUrl"), $ = /* @__PURE__ */ G((e, t, i) => e ? { Url: v(t) } : { Data: { Body: [k(i) ? [] : i] } }, "buildTreeGridDataSource"), H = /* @__PURE__ */ G(({
21
+ ), "resolveTreeGridDataUrl"), J = /* @__PURE__ */ i((e, t, G) => e ? { Url: X(t) } : { Data: { Body: [q(G) ? [] : G] } }, "buildTreeGridDataSource"), de = /* @__PURE__ */ i(({
20
22
  id: e,
21
23
  layoutUrl: t,
22
- dataUrl: i,
23
- bodyData: f,
24
+ dataUrl: G,
25
+ bodyData: C,
24
26
  useDataUrl: s,
25
- width: S,
26
- height: O,
27
- languageId: p
27
+ width: w,
28
+ height: l,
29
+ languageId: O
28
30
  }) => ({
29
31
  id: e,
30
- Layout: { Url: E(t ?? "") },
31
- Data: $(s, i, f),
32
+ Layout: { Url: L(t ?? "") },
33
+ Data: J(s, G, C),
32
34
  Text: {
33
- Url: V(p)
35
+ Url: Q(O)
34
36
  },
35
- width: S,
36
- height: O,
37
+ width: w,
38
+ height: l,
37
39
  Debug: "Error"
38
- }), "buildTreeGridInitializationOptions"), y = /* @__PURE__ */ G((e) => A(e, "Data.Data.Data.Body.0"), "getTreeGridBodyData"), a = /* @__PURE__ */ G((e) => Array.isArray(e) ? e.length : 0, "getTreeGridBodyDataCount"), F = /* @__PURE__ */ G((e) => {
40
+ }), "buildTreeGridInitializationOptions"), I = /* @__PURE__ */ i((e) => j(e, "Data.Data.Data.Body.0"), "getTreeGridBodyData"), W = /* @__PURE__ */ i((e) => Array.isArray(e) ? e.length : 0, "getTreeGridBodyDataCount"), Y = /* @__PURE__ */ i((e) => {
39
41
  const t = e == null ? void 0 : e.Visible;
40
42
  return !!e && t !== 0 && t !== !1 && t !== "0";
41
- }, "isVisibleTreeGridRow"), P = /* @__PURE__ */ G((e) => {
43
+ }, "isVisibleTreeGridRow"), Z = /* @__PURE__ */ i((e) => {
42
44
  const t = e == null ? void 0 : e.Added;
43
45
  return !!e && t !== 0 && t !== !1 && t !== "0" && t !== void 0;
44
- }, "isAddedTreeGridRow"), D = /* @__PURE__ */ G((e) => !e || e.Fixed === "Foot" || !F(e) ? !1 : e.Kind === "Data" || P(e), "isDisplayTreeGridRow"), K = /* @__PURE__ */ G((e, t, i) => !t || !i || !D(t) ? !1 : e.CanEdit(t, i) === 1, "isEditableTreeGridCell"), M = /* @__PURE__ */ G((e, t, i) => {
45
- const f = e.GetAttribute(t, i, "Color");
46
- return f != null && f !== "";
47
- }, "hasExplicitTreeGridCellColor"), j = /* @__PURE__ */ G((e, t, i) => {
48
- if (!(!t || !K(e, t, i) || M(e, t, i)))
49
- return U;
50
- }, "getEditableTreeGridCellDefaultColor"), ee = /* @__PURE__ */ G((e) => {
46
+ }, "isAddedTreeGridRow"), S = /* @__PURE__ */ i((e) => !e || e.Fixed === "Foot" || !Y(e) ? !1 : e.Kind === "Data" || Z(e), "isDisplayTreeGridRow"), g = /* @__PURE__ */ i((e, t, G) => !t || !G || !S(t) ? !1 : e.CanEdit(t, G) === 1, "isEditableTreeGridCell"), H = /* @__PURE__ */ i((e, t, G) => {
47
+ const C = e.GetAttribute(t, G, "Color");
48
+ return C != null && C !== "";
49
+ }, "hasExplicitTreeGridCellColor"), ee = /* @__PURE__ */ i((e, t, G) => {
50
+ if (!(!t || !g(e, t, G) || H(e, t, G)))
51
+ return z;
52
+ }, "getEditableTreeGridCellDefaultColor"), se = /* @__PURE__ */ i((e) => {
51
53
  if (!e)
52
54
  return !1;
53
55
  if (typeof e.GetFirst == "function" && typeof e.GetNext == "function") {
54
56
  let t = e.GetFirst();
55
57
  for (; t; ) {
56
- if (D(t))
58
+ if (S(t))
57
59
  return !0;
58
60
  t = e.GetNext(t);
59
61
  }
60
62
  return !1;
61
63
  }
62
- return Object.values(e.Rows ?? {}).some((t) => D(t));
63
- }, "hasTreeGridDisplayDataRows"), te = /* @__PURE__ */ G((e, t, i) => {
64
+ return Object.values(e.Rows ?? {}).some((t) => S(t));
65
+ }, "hasTreeGridDisplayDataRows"), me = /* @__PURE__ */ i((e, t, G) => {
64
66
  var s;
65
- const f = (s = e.Data) == null ? void 0 : s.Data;
67
+ const C = (s = e.Data) == null ? void 0 : s.Data;
66
68
  e.Data.Data = {
67
- ...f,
69
+ ...C,
68
70
  Data: { Body: [t || []] },
69
71
  Url: ""
70
- }, e.ReloadBody(i);
71
- }, "replaceTreeGridBodyData"), oe = /* @__PURE__ */ G(({
72
+ }, e.ReloadBody(G);
73
+ }, "replaceTreeGridBodyData"), Se = /* @__PURE__ */ i(({
72
74
  id: e,
73
75
  latestEventHandlersRef: t,
74
- highlightEditableCellsRef: i,
75
- highlightChangedCellsRef: f,
76
+ highlightEditableCellsRef: G,
77
+ highlightChangedCellsRef: C,
76
78
  treeGridInstanceRef: s,
77
- treeGridInitStartedAtRef: S,
78
- latestLayoutOverridesRef: O,
79
- appliedLayoutOverridesRef: p,
80
- appliedBodyDataPropRef: B,
81
- hasAppliedInitialLayoutRef: l,
82
- syncHasDisplayDataRows: w,
83
- setIsTreeGridReady: I
79
+ treeGridInitStartedAtRef: w,
80
+ latestLayoutOverridesRef: l,
81
+ appliedLayoutOverridesRef: O,
82
+ appliedBodyDataPropRef: a,
83
+ latestColumnEditRulesRef: h,
84
+ latestColumnEditRuleLookupRef: y,
85
+ appliedColumnEditRulesRef: N,
86
+ columnEditRulesStateRef: _,
87
+ hasAppliedInitialLayoutRef: E,
88
+ syncHasDisplayDataRows: m,
89
+ setIsTreeGridReady: k
84
90
  }) => {
85
91
  const c = t.current;
86
- window.TGSetEvent("OnRowAdd", e, (o, n) => {
87
- var r, u;
88
- n.CanEdit = 1, n.CanDelete = 1, (u = (r = t.current) == null ? void 0 : r.onRowAdd) == null || u.call(r, o, n);
89
- }), window.TGSetEvent("OnRowAdded", e, (o) => {
90
- w(o);
92
+ window.TGSetEvent("OnRowAdd", e, (r, o) => {
93
+ var n, u;
94
+ o.CanEdit = 1, o.CanDelete = 1, (u = (n = t.current) == null ? void 0 : n.onRowAdd) == null || u.call(n, r, o);
95
+ }), window.TGSetEvent("OnRowAdded", e, (r) => {
96
+ m(r);
91
97
  }), typeof (c == null ? void 0 : c.onRowClick) == "function" && window.TGSetEvent(
92
98
  "OnClick",
93
99
  e,
94
- R((o, n, r, u, T, C) => {
95
- var d, m;
96
- (m = (d = t.current) == null ? void 0 : d.onRowClick) == null || m.call(
100
+ p((r, o, n, u, T, f) => {
101
+ var d, D;
102
+ (D = (d = t.current) == null ? void 0 : d.onRowClick) == null || D.call(
97
103
  d,
104
+ r,
98
105
  o,
99
106
  n,
100
- r,
101
107
  u,
102
108
  T,
103
- C
109
+ f
104
110
  );
105
111
  }, 300)
106
112
  ), typeof (c == null ? void 0 : c.onClickButton) == "function" && window.TGSetEvent(
107
113
  "OnClickButton",
108
114
  e,
109
- R((o, n, r, u) => {
110
- var T, C;
111
- (C = (T = t.current) == null ? void 0 : T.onClickButton) == null || C.call(
115
+ p((r, o, n, u) => {
116
+ var T, f;
117
+ (f = (T = t.current) == null ? void 0 : T.onClickButton) == null || f.call(
112
118
  T,
119
+ r,
113
120
  o,
114
121
  n,
115
- r,
116
122
  u
117
123
  );
118
124
  }, 300)
119
- ), typeof (c == null ? void 0 : c.onRowDelete) == "function" ? window.TGSetEvent("OnRowDelete", e, (o, n, r) => {
125
+ ), typeof (c == null ? void 0 : c.onRowDelete) == "function" ? window.TGSetEvent("OnRowDelete", e, (r, o, n) => {
120
126
  var u, T;
121
- w(o), (T = (u = t.current) == null ? void 0 : u.onRowDelete) == null || T.call(
127
+ m(r), (T = (u = t.current) == null ? void 0 : u.onRowDelete) == null || T.call(
122
128
  u,
129
+ r,
123
130
  o,
124
- n,
125
- r
131
+ n
126
132
  );
127
- }) : window.TGSetEvent("OnRowDelete", e, (o) => {
128
- w(o);
129
- }), typeof (c == null ? void 0 : c.onRowUndelete) == "function" ? window.TGSetEvent("OnRowUndelete", e, (o, n) => {
130
- var r, u;
131
- w(o), (u = (r = t.current) == null ? void 0 : r.onRowUndelete) == null || u.call(r, o, n);
132
- }) : window.TGSetEvent("OnRowUndelete", e, (o) => {
133
- w(o);
134
- }), window.TGSetEvent("OnGetDefaultColor", e, (o, n, r) => {
135
- if (!(!i.current || !D(n)))
136
- return j(o, n, r);
137
- }), window.TGSetEvent("OnAfterValueChanged", e, (o, n, r, u) => {
138
- var C, d;
139
- f.current && D(n) && h(e, { row: n, col: r });
140
- const T = ((C = t.current) == null ? void 0 : C.onAfterValueChanged) ?? ((d = t.current) == null ? void 0 : d.onRowChange);
141
- T == null || T(o, n, r, u);
133
+ }) : window.TGSetEvent("OnRowDelete", e, (r) => {
134
+ m(r);
135
+ }), typeof (c == null ? void 0 : c.onRowUndelete) == "function" ? window.TGSetEvent("OnRowUndelete", e, (r, o) => {
136
+ var n, u;
137
+ m(r), (u = (n = t.current) == null ? void 0 : n.onRowUndelete) == null || u.call(n, r, o);
138
+ }) : window.TGSetEvent("OnRowUndelete", e, (r) => {
139
+ m(r);
140
+ }), window.TGSetEvent("OnGetDefaultColor", e, (r, o, n) => {
141
+ if (!(!G.current || !S(o)))
142
+ return ee(r, o, n);
143
+ }), window.TGSetEvent("OnAfterValueChanged", e, (r, o, n, u) => {
144
+ var x, b;
145
+ const T = y.current, f = T ? F(T, n, u) : void 0, d = f == null ? void 0 : f.value, D = d ?? u;
146
+ f != null && f.invalidText && V(f.invalidText, { variant: "warning" }), d !== void 0 && r.SetValue(o, n, d, 1), C.current && S(o) && U(e, { row: o, col: n });
147
+ const R = ((x = t.current) == null ? void 0 : x.onAfterValueChanged) ?? ((b = t.current) == null ? void 0 : b.onRowChange);
148
+ R == null || R(r, o, n, D);
142
149
  }), typeof (c == null ? void 0 : c.onSelect) == "function" && window.TGSetEvent(
143
150
  "OnSelect",
144
151
  e,
145
- R((o) => {
146
- var r, u;
147
- const n = o.GetSelRows() ?? [];
148
- (u = (r = t.current) == null ? void 0 : r.onSelect) == null || u.call(r, n);
152
+ p((r) => {
153
+ var n, u;
154
+ const o = r.GetSelRows() ?? [];
155
+ (u = (n = t.current) == null ? void 0 : n.onSelect) == null || u.call(n, o);
149
156
  }, 100)
150
- ), typeof (c == null ? void 0 : c.onSave) == "function" && window.TGSetEvent("OnSave", e, (o, n, r) => {
157
+ ), typeof (c == null ? void 0 : c.onSave) == "function" && window.TGSetEvent("OnSave", e, (r, o, n) => {
151
158
  var u, T;
152
159
  (T = (u = t.current) == null ? void 0 : u.onSave) == null || T.call(
153
160
  u,
161
+ r,
154
162
  o,
155
- n,
156
- r
163
+ n
157
164
  );
158
165
  }), window.TGSetEvent(
159
166
  "OnReady",
160
167
  e,
161
- R((o) => {
162
- var n, r;
163
- if (!l.current) {
164
- const u = O.current;
165
- l.current = !0, x(o, u), s.current = o, p.current = u, B.current = y(o), w(o), I(!0), N(e, "TreeGrid init ready", S.current, {
166
- bodyRowCount: a(
167
- y(o)
168
+ p((r) => {
169
+ var o, n;
170
+ if (!E.current) {
171
+ const u = l.current;
172
+ E.current = !0, $(r, u), P(_.current), K(
173
+ r,
174
+ y.current,
175
+ _.current
176
+ ), s.current = r, O.current = u, a.current = I(r), N.current = h.current, m(r), k(!0), M(e, "TreeGrid init ready", w.current, {
177
+ bodyRowCount: W(
178
+ I(r)
168
179
  )
169
- }), S.current = null, (r = (n = t.current) == null ? void 0 : n.onReady) == null || r.call(n, o);
180
+ }), w.current = null, (n = (o = t.current) == null ? void 0 : o.onReady) == null || n.call(o, r);
170
181
  }
171
182
  }, 100)
172
183
  );
173
184
  }, "bindTreeGridEvents");
174
185
  export {
175
- g as TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS,
176
- oe as bindTreeGridEvents,
177
- H as buildTreeGridInitializationOptions,
178
- a as getTreeGridBodyDataCount,
179
- ee as hasTreeGridDisplayDataRows,
180
- te as replaceTreeGridBodyData
186
+ Ce as TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS,
187
+ Se as bindTreeGridEvents,
188
+ de as buildTreeGridInitializationOptions,
189
+ W as getTreeGridBodyDataCount,
190
+ se as hasTreeGridDisplayDataRows,
191
+ me as replaceTreeGridBodyData
181
192
  };
182
193
  //# sourceMappingURL=treeGridRuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"treeGridRuntime.js","sources":["../../../../src/components/OwpTreeGrid/internal/treeGridRuntime.ts"],"sourcesContent":["import { TREEGRID_INPUT_CELL_COLOR } from '@/constants/treeGrid';\nimport { highlightTreeGridCellById } from '@/utils/treeGridUtil';\nimport { debounce, get, isEmpty } from 'es-toolkit/compat';\nimport {\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {\n OwpTreeGridBodyData,\n OwpTreeGridLayoutConfig,\n OwpTreeGridProps,\n OwpTreeGridRowModel,\n OwpTreeGridSelectedRows,\n} from '../OwpTreeGrid';\nimport { applyTreeGridLayoutToGrid } from './treeGridLayout';\nimport {\n measureTreeGridPerf,\n} from '../utils/perf';\n\nconst TREE_GRID_INPUT_CELL_COLOR_VALUE = Number.parseInt(\n TREEGRID_INPUT_CELL_COLOR.replace('#', ''),\n 16,\n);\n\nexport const TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nexport type TreeGridEventHandlers<T> = Pick<\n OwpTreeGridProps<T>,\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n>;\n\nexport type TreeGridEventBindingOptions<T> = Pick<OwpTreeGridProps<T>, 'id'> & {\n latestEventHandlersRef: RefObject<TreeGridEventHandlers<T>>;\n highlightEditableCellsRef: RefObject<boolean>;\n highlightChangedCellsRef: RefObject<boolean>;\n treeGridInstanceRef: RefObject<TGrid>;\n treeGridInitStartedAtRef: RefObject<number | null>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n syncHasDisplayDataRows: (grid: TGrid | null) => void;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\nconst TREE_GRID_TEXT_RESOURCE_URLS = {\n en: '/assets/vendors/Grid/TextEN.xml',\n kr: '/assets/vendors/Grid/TextKR.xml',\n} as const;\n\nconst appendNoCacheQuery = (url: string) => {\n return `${url}?noCache=${Date.now()}`;\n};\n\nconst getTreeGridTextResourceUrl = (languageId: string) => {\n return languageId === 'kr' ? TREE_GRID_TEXT_RESOURCE_URLS.kr : TREE_GRID_TEXT_RESOURCE_URLS.en;\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n return dataUrl?.includes('assets')\n ? appendNoCacheQuery(dataUrl)\n : // @ts-expect-error - API base URL env is provided by host app\n `${import.meta.env.VITE_API_BASE_URL}/${dataUrl}?noCache=${Date.now()}`;\n};\n\nconst buildTreeGridDataSource = <T,>(\n useDataUrl: boolean | undefined,\n dataUrl: string | undefined,\n bodyData: OwpTreeGridBodyData<T>,\n) => {\n if (useDataUrl) {\n return { Url: resolveTreeGridDataUrl(dataUrl) };\n }\n\n return { Data: { Body: [isEmpty(bodyData) ? [] : bodyData] } };\n};\n\n/**\n * TreeGrid 초기화 옵션 생성\n * @param input 초기화 입력값\n */\nexport const buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: { Url: appendNoCacheQuery(layoutUrl ?? '') },\n Data: buildTreeGridDataSource(useDataUrl, dataUrl, bodyData),\n Text: {\n Url: getTreeGridTextResourceUrl(languageId),\n },\n width,\n height,\n Debug: 'Error',\n };\n};\n\nconst getTreeGridBodyData = (grid: TGrid | null) => {\n return get(grid, 'Data.Data.Data.Body.0');\n};\n\n/**\n * TreeGrid Body 데이터 건수\n * @param bodyData TreeGrid Body 데이터\n */\nexport const getTreeGridBodyDataCount = <T,>(bodyData: OwpTreeGridBodyData<T>) => {\n return Array.isArray(bodyData) ? bodyData.length : 0;\n};\n\nconst isVisibleTreeGridRow = (row: TRow | null | undefined) => {\n const visible = (row as { Visible?: unknown } | null)?.Visible;\n\n return !!row && visible !== 0 && visible !== false && visible !== '0';\n};\n\n/**\n * TreeGrid 추가 행 여부\n * @param row TreeGrid 행\n */\nconst isAddedTreeGridRow = (row: TRow | null | undefined) => {\n const added = (row as { Added?: unknown } | null)?.Added;\n\n return !!row && added !== 0 && added !== false && added !== '0' && added !== undefined;\n};\n\n/**\n * TreeGrid 본문 표시 행 여부\n * @param row TreeGrid 행\n */\nconst isDisplayTreeGridRow = (row: TRow | null | undefined) => {\n if (!row || row.Fixed === 'Foot' || !isVisibleTreeGridRow(row)) {\n return false;\n }\n\n return row.Kind === 'Data' || isAddedTreeGridRow(row);\n};\n\n/**\n * TreeGrid 셀 편집 가능 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isEditableTreeGridCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 1;\n};\n\n/**\n * TreeGrid 셀 명시 색상 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst hasExplicitTreeGridCellColor = (grid: TGrid, row: TRow, col: string) => {\n const color = grid.GetAttribute(row, col, 'Color');\n\n return color !== undefined && color !== null && color !== '';\n};\n\n/**\n * TreeGrid 입력 셀 기본 배경색 계산\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst getEditableTreeGridCellDefaultColor = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (\n !row ||\n !isEditableTreeGridCell(grid, row, col) ||\n hasExplicitTreeGridCellColor(grid, row, col)\n ) {\n return undefined;\n }\n\n return TREE_GRID_INPUT_CELL_COLOR_VALUE;\n};\n\n/**\n * TreeGrid 표시 데이터 행 존재 여부\n * @param grid TreeGrid 인스턴스\n */\nexport const hasTreeGridDisplayDataRows = (grid: TGrid | null) => {\n if (!grid) {\n return false;\n }\n\n if (typeof grid.GetFirst === 'function' && typeof grid.GetNext === 'function') {\n let row = grid.GetFirst();\n\n while (row) {\n if (isDisplayTreeGridRow(row)) {\n return true;\n }\n\n row = grid.GetNext(row);\n }\n\n return false;\n }\n\n return Object.values(grid.Rows ?? {}).some((row) => {\n return isDisplayTreeGridRow(row);\n });\n};\n\n/**\n * TreeGrid Body 데이터 교체 후 재로드\n * @param grid TreeGrid 인스턴스\n * @param bodyData 새 Body 데이터\n * @param onReloadFinish 재로드 완료 콜백\n */\nexport const replaceTreeGridBodyData = <T,>(\n grid: TGrid,\n bodyData: OwpTreeGridBodyData<T>,\n onReloadFinish?: (code: number) => void,\n) => {\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n const currentDataConfig = grid.Data?.Data;\n\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n grid.Data.Data = {\n ...currentDataConfig,\n Data: { Body: [bodyData || []] },\n Url: '',\n };\n\n grid.ReloadBody(onReloadFinish);\n};\n\n/**\n * TreeGrid 이벤트 바인딩\n * @param options 이벤트 바인딩 옵션\n */\nexport const bindTreeGridEvents = <T,>({\n id,\n latestEventHandlersRef,\n highlightEditableCellsRef,\n highlightChangedCellsRef,\n treeGridInstanceRef,\n treeGridInitStartedAtRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n hasAppliedInitialLayoutRef,\n syncHasDisplayDataRows,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const initialEventHandlers = latestEventHandlersRef.current;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n latestEventHandlersRef.current?.onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n window.TGSetEvent('OnRowAdded', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n\n if (typeof initialEventHandlers?.onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n latestEventHandlersRef.current?.onRowClick?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n x,\n y,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n latestEventHandlersRef.current?.onClickButton?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowDelete?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n deleteType,\n );\n });\n } else {\n window.TGSetEvent('OnRowDelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n if (typeof initialEventHandlers?.onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowUndelete?.(grid, row as OwpTreeGridRowModel<T>);\n });\n } else {\n window.TGSetEvent('OnRowUndelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n window.TGSetEvent('OnGetDefaultColor', id, (grid, row, col) => {\n if (!highlightEditableCellsRef.current || !isDisplayTreeGridRow(row)) {\n return undefined;\n }\n\n return getEditableTreeGridCellDefaultColor(grid, row, col);\n });\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n if (highlightChangedCellsRef.current && isDisplayTreeGridRow(row)) {\n highlightTreeGridCellById(id, { row, col });\n }\n\n const valueChangedHandler =\n latestEventHandlersRef.current?.onAfterValueChanged ??\n latestEventHandlersRef.current?.onRowChange;\n\n valueChangedHandler?.(grid, row as OwpTreeGridRowModel<T>, col, value);\n });\n if (typeof initialEventHandlers?.onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n latestEventHandlersRef.current?.onSelect?.(selectedRows);\n }, 100),\n );\n }\n if (typeof initialEventHandlers?.onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n latestEventHandlersRef.current?.onSave?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n autoupdate,\n );\n });\n }\n\n window.TGSetEvent(\n 'OnReady',\n id,\n debounce((grid) => {\n if (!hasAppliedInitialLayoutRef.current) {\n const latestLayoutOverrides = latestLayoutOverridesRef.current;\n\n hasAppliedInitialLayoutRef.current = true;\n applyTreeGridLayoutToGrid(grid, latestLayoutOverrides);\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n syncHasDisplayDataRows(grid);\n setIsTreeGridReady(true);\n measureTreeGridPerf(id, 'TreeGrid init ready', treeGridInitStartedAtRef.current, {\n bodyRowCount: getTreeGridBodyDataCount(\n getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>,\n ),\n });\n treeGridInitStartedAtRef.current = null;\n latestEventHandlersRef.current?.onReady?.(grid);\n }\n }, 100),\n );\n};\n"],"names":["TREE_GRID_INPUT_CELL_COLOR_VALUE","TREEGRID_INPUT_CELL_COLOR","TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_TEXT_RESOURCE_URLS","appendNoCacheQuery","__name","url","getTreeGridTextResourceUrl","languageId","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","width","height","getTreeGridBodyData","grid","get","getTreeGridBodyDataCount","isVisibleTreeGridRow","row","visible","isAddedTreeGridRow","added","isDisplayTreeGridRow","isEditableTreeGridCell","col","hasExplicitTreeGridCellColor","color","getEditableTreeGridCellDefaultColor","hasTreeGridDisplayDataRows","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","latestEventHandlersRef","highlightEditableCellsRef","highlightChangedCellsRef","treeGridInstanceRef","treeGridInitStartedAtRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","hasAppliedInitialLayoutRef","syncHasDisplayDataRows","setIsTreeGridReady","initialEventHandlers","_b","debounce","x","y","event","deleteType","value","highlightTreeGridCellById","valueChangedHandler","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","measureTreeGridPerf"],"mappings":"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"}
1
+ {"version":3,"file":"treeGridRuntime.js","sources":["../../../../src/components/OwpTreeGrid/internal/treeGridRuntime.ts"],"sourcesContent":["import { TREEGRID_INPUT_CELL_COLOR } from '@/constants/treeGrid';\nimport { highlightTreeGridCellById } from '@/utils/treeGridUtil';\nimport { debounce, get, isEmpty } from 'es-toolkit/compat';\nimport { enqueueSnackbar } from 'notistack';\nimport {\n type Dispatch,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {\n OwpTreeGridBodyData,\n OwpTreeGridColumnEditRule,\n OwpTreeGridLayoutConfig,\n OwpTreeGridProps,\n OwpTreeGridRowModel,\n OwpTreeGridSelectedRows,\n} from '../OwpTreeGrid';\nimport { applyTreeGridLayoutToGrid } from './treeGridLayout';\nimport {\n resetTreeGridColumnEditRulesState,\n resolveTreeGridColumnEditValue,\n syncTreeGridColumnEditRules,\n type TreeGridColumnEditRuleLookup,\n type TreeGridColumnEditRulesState,\n} from './treeGridColumnEditRules';\nimport {\n measureTreeGridPerf,\n} from './utils/perf';\n\nconst TREE_GRID_INPUT_CELL_COLOR_VALUE = Number.parseInt(\n TREEGRID_INPUT_CELL_COLOR.replace('#', ''),\n 16,\n);\n\nexport const TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS = 300;\n\ntype TreeGridInitializationInput<T> = {\n id: string;\n layoutUrl?: string;\n dataUrl?: string;\n bodyData: OwpTreeGridBodyData<T>;\n useDataUrl?: boolean;\n width?: string | number;\n height?: string | number;\n languageId: string;\n};\n\nexport type TreeGridEventHandlers<T> = Pick<\n OwpTreeGridProps<T>,\n | 'onSelect'\n | 'onRowClick'\n | 'onRowAdd'\n | 'onRowDelete'\n | 'onRowUndelete'\n | 'onRowChange'\n | 'onClickButton'\n | 'onSave'\n | 'onReady'\n | 'onAfterValueChanged'\n>;\n\nexport type TreeGridEventBindingOptions<T> = Pick<OwpTreeGridProps<T>, 'id'> & {\n latestEventHandlersRef: RefObject<TreeGridEventHandlers<T>>;\n highlightEditableCellsRef: RefObject<boolean>;\n highlightChangedCellsRef: RefObject<boolean>;\n treeGridInstanceRef: RefObject<TGrid>;\n treeGridInitStartedAtRef: RefObject<number | null>;\n latestLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedLayoutOverridesRef: RefObject<OwpTreeGridLayoutConfig | undefined>;\n appliedBodyDataPropRef: RefObject<OwpTreeGridBodyData<T>>;\n latestColumnEditRulesRef: RefObject<readonly OwpTreeGridColumnEditRule[] | undefined>;\n latestColumnEditRuleLookupRef: RefObject<TreeGridColumnEditRuleLookup | undefined>;\n appliedColumnEditRulesRef: RefObject<readonly OwpTreeGridColumnEditRule[] | undefined>;\n columnEditRulesStateRef: RefObject<TreeGridColumnEditRulesState>;\n hasAppliedInitialLayoutRef: RefObject<boolean>;\n syncHasDisplayDataRows: (grid: TGrid | null) => void;\n setIsTreeGridReady: Dispatch<SetStateAction<boolean>>;\n};\n\nconst TREE_GRID_TEXT_RESOURCE_URLS = {\n en: '/assets/vendors/Grid/TextEN.xml',\n kr: '/assets/vendors/Grid/TextKR.xml',\n} as const;\n\nconst appendNoCacheQuery = (url: string) => {\n return `${url}?noCache=${Date.now()}`;\n};\n\nconst getTreeGridTextResourceUrl = (languageId: string) => {\n return languageId === 'kr' ? TREE_GRID_TEXT_RESOURCE_URLS.kr : TREE_GRID_TEXT_RESOURCE_URLS.en;\n};\n\nconst resolveTreeGridDataUrl = (dataUrl?: string) => {\n return dataUrl?.includes('assets')\n ? appendNoCacheQuery(dataUrl)\n : // @ts-expect-error - API base URL env is provided by host app\n `${import.meta.env.VITE_API_BASE_URL}/${dataUrl}?noCache=${Date.now()}`;\n};\n\nconst buildTreeGridDataSource = <T,>(\n useDataUrl: boolean | undefined,\n dataUrl: string | undefined,\n bodyData: OwpTreeGridBodyData<T>,\n) => {\n if (useDataUrl) {\n return { Url: resolveTreeGridDataUrl(dataUrl) };\n }\n\n return { Data: { Body: [isEmpty(bodyData) ? [] : bodyData] } };\n};\n\n/**\n * TreeGrid 초기화 옵션 생성\n * @param input 초기화 입력값\n */\nexport const buildTreeGridInitializationOptions = <T,>({\n id,\n layoutUrl,\n dataUrl,\n bodyData,\n useDataUrl,\n width,\n height,\n languageId,\n}: TreeGridInitializationInput<T>) => {\n return {\n id,\n Layout: { Url: appendNoCacheQuery(layoutUrl ?? '') },\n Data: buildTreeGridDataSource(useDataUrl, dataUrl, bodyData),\n Text: {\n Url: getTreeGridTextResourceUrl(languageId),\n },\n width,\n height,\n Debug: 'Error',\n };\n};\n\nconst getTreeGridBodyData = (grid: TGrid | null) => {\n return get(grid, 'Data.Data.Data.Body.0');\n};\n\n/**\n * TreeGrid Body 데이터 건수\n * @param bodyData TreeGrid Body 데이터\n */\nexport const getTreeGridBodyDataCount = <T,>(bodyData: OwpTreeGridBodyData<T>) => {\n return Array.isArray(bodyData) ? bodyData.length : 0;\n};\n\nconst isVisibleTreeGridRow = (row: TRow | null | undefined) => {\n const visible = (row as { Visible?: unknown } | null)?.Visible;\n\n return !!row && visible !== 0 && visible !== false && visible !== '0';\n};\n\n/**\n * TreeGrid 추가 행 여부\n * @param row TreeGrid 행\n */\nconst isAddedTreeGridRow = (row: TRow | null | undefined) => {\n const added = (row as { Added?: unknown } | null)?.Added;\n\n return !!row && added !== 0 && added !== false && added !== '0' && added !== undefined;\n};\n\n/**\n * TreeGrid 본문 표시 행 여부\n * @param row TreeGrid 행\n */\nconst isDisplayTreeGridRow = (row: TRow | null | undefined) => {\n if (!row || row.Fixed === 'Foot' || !isVisibleTreeGridRow(row)) {\n return false;\n }\n\n return row.Kind === 'Data' || isAddedTreeGridRow(row);\n};\n\n/**\n * TreeGrid 셀 편집 가능 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst isEditableTreeGridCell = (grid: TGrid, row: TRow | null | undefined, col: string) => {\n if (!row || !col || !isDisplayTreeGridRow(row)) {\n return false;\n }\n\n return grid.CanEdit(row, col) === 1;\n};\n\n/**\n * TreeGrid 셀 명시 색상 여부\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst hasExplicitTreeGridCellColor = (grid: TGrid, row: TRow, col: string) => {\n const color = grid.GetAttribute(row, col, 'Color');\n\n return color !== undefined && color !== null && color !== '';\n};\n\n/**\n * TreeGrid 입력 셀 기본 배경색 계산\n * @param grid TreeGrid 인스턴스\n * @param row TreeGrid 행\n * @param col TreeGrid 컬럼 키\n */\nconst getEditableTreeGridCellDefaultColor = (\n grid: TGrid,\n row: TRow | null | undefined,\n col: string,\n) => {\n if (\n !row ||\n !isEditableTreeGridCell(grid, row, col) ||\n hasExplicitTreeGridCellColor(grid, row, col)\n ) {\n return undefined;\n }\n\n return TREE_GRID_INPUT_CELL_COLOR_VALUE;\n};\n\n/**\n * TreeGrid 표시 데이터 행 존재 여부\n * @param grid TreeGrid 인스턴스\n */\nexport const hasTreeGridDisplayDataRows = (grid: TGrid | null) => {\n if (!grid) {\n return false;\n }\n\n if (typeof grid.GetFirst === 'function' && typeof grid.GetNext === 'function') {\n let row = grid.GetFirst();\n\n while (row) {\n if (isDisplayTreeGridRow(row)) {\n return true;\n }\n\n row = grid.GetNext(row);\n }\n\n return false;\n }\n\n return Object.values(grid.Rows ?? {}).some((row) => {\n return isDisplayTreeGridRow(row);\n });\n};\n\n/**\n * TreeGrid Body 데이터 교체 후 재로드\n * @param grid TreeGrid 인스턴스\n * @param bodyData 새 Body 데이터\n * @param onReloadFinish 재로드 완료 콜백\n */\nexport const replaceTreeGridBodyData = <T,>(\n grid: TGrid,\n bodyData: OwpTreeGridBodyData<T>,\n onReloadFinish?: (code: number) => void,\n) => {\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n const currentDataConfig = grid.Data?.Data;\n\n // @ts-expect-error - TreeGrid Data.Data shape is not reflected in bundled types\n grid.Data.Data = {\n ...currentDataConfig,\n Data: { Body: [bodyData || []] },\n Url: '',\n };\n\n grid.ReloadBody(onReloadFinish);\n};\n\n/**\n * TreeGrid 이벤트 바인딩\n * @param options 이벤트 바인딩 옵션\n */\nexport const bindTreeGridEvents = <T,>({\n id,\n latestEventHandlersRef,\n highlightEditableCellsRef,\n highlightChangedCellsRef,\n treeGridInstanceRef,\n treeGridInitStartedAtRef,\n latestLayoutOverridesRef,\n appliedLayoutOverridesRef,\n appliedBodyDataPropRef,\n latestColumnEditRulesRef,\n latestColumnEditRuleLookupRef,\n appliedColumnEditRulesRef,\n columnEditRulesStateRef,\n hasAppliedInitialLayoutRef,\n syncHasDisplayDataRows,\n setIsTreeGridReady,\n}: TreeGridEventBindingOptions<T>) => {\n const initialEventHandlers = latestEventHandlersRef.current;\n\n window.TGSetEvent('OnRowAdd', id, (grid, row) => {\n row.CanEdit = 1;\n row.CanDelete = 1;\n\n latestEventHandlersRef.current?.onRowAdd?.(grid, row as OwpTreeGridRowModel<T>);\n });\n window.TGSetEvent('OnRowAdded', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n\n if (typeof initialEventHandlers?.onRowClick === 'function') {\n window.TGSetEvent(\n 'OnClick',\n id,\n debounce((grid, row, col, x, y, event) => {\n latestEventHandlersRef.current?.onRowClick?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n x,\n y,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onClickButton === 'function') {\n window.TGSetEvent(\n 'OnClickButton',\n id,\n debounce((grid, row, col, event) => {\n latestEventHandlersRef.current?.onClickButton?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n col,\n event,\n );\n }, 300),\n );\n }\n\n if (typeof initialEventHandlers?.onRowDelete === 'function') {\n window.TGSetEvent('OnRowDelete', id, (grid, row, deleteType) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowDelete?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n deleteType,\n );\n });\n } else {\n window.TGSetEvent('OnRowDelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n if (typeof initialEventHandlers?.onRowUndelete === 'function') {\n window.TGSetEvent('OnRowUndelete', id, (grid, row) => {\n syncHasDisplayDataRows(grid);\n latestEventHandlersRef.current?.onRowUndelete?.(grid, row as OwpTreeGridRowModel<T>);\n });\n } else {\n window.TGSetEvent('OnRowUndelete', id, (grid) => {\n syncHasDisplayDataRows(grid);\n });\n }\n window.TGSetEvent('OnGetDefaultColor', id, (grid, row, col) => {\n if (!highlightEditableCellsRef.current || !isDisplayTreeGridRow(row)) {\n return undefined;\n }\n\n return getEditableTreeGridCellDefaultColor(grid, row, col);\n });\n window.TGSetEvent('OnAfterValueChanged', id, (grid, row, col, value) => {\n const columnEditRuleLookup = latestColumnEditRuleLookupRef.current;\n const resolvedEditValue = columnEditRuleLookup\n ? resolveTreeGridColumnEditValue(columnEditRuleLookup, col, value)\n : undefined;\n const nextValue = resolvedEditValue?.value;\n const resolvedValue = nextValue ?? value;\n\n if (resolvedEditValue?.invalidText) {\n enqueueSnackbar(resolvedEditValue.invalidText, { variant: 'warning' });\n }\n\n if (nextValue !== undefined) {\n grid.SetValue(row, col, nextValue, 1);\n }\n\n if (highlightChangedCellsRef.current && isDisplayTreeGridRow(row)) {\n highlightTreeGridCellById(id, { row, col });\n }\n\n const valueChangedHandler =\n latestEventHandlersRef.current?.onAfterValueChanged ??\n latestEventHandlersRef.current?.onRowChange;\n\n valueChangedHandler?.(grid, row as OwpTreeGridRowModel<T>, col, resolvedValue);\n });\n if (typeof initialEventHandlers?.onSelect === 'function') {\n window.TGSetEvent(\n 'OnSelect',\n id,\n debounce((grid) => {\n const selectedRows = (grid.GetSelRows() ?? []) as OwpTreeGridSelectedRows<T>;\n latestEventHandlersRef.current?.onSelect?.(selectedRows);\n }, 100),\n );\n }\n if (typeof initialEventHandlers?.onSave === 'function') {\n window.TGSetEvent('OnSave', id, (grid, row, autoupdate) => {\n latestEventHandlersRef.current?.onSave?.(\n grid,\n row as OwpTreeGridRowModel<T>,\n autoupdate,\n );\n });\n }\n\n window.TGSetEvent(\n 'OnReady',\n id,\n debounce((grid) => {\n if (!hasAppliedInitialLayoutRef.current) {\n const latestLayoutOverrides = latestLayoutOverridesRef.current;\n\n hasAppliedInitialLayoutRef.current = true;\n applyTreeGridLayoutToGrid(grid, latestLayoutOverrides);\n resetTreeGridColumnEditRulesState(columnEditRulesStateRef.current);\n syncTreeGridColumnEditRules(\n grid,\n latestColumnEditRuleLookupRef.current,\n columnEditRulesStateRef.current,\n );\n treeGridInstanceRef.current = grid;\n appliedLayoutOverridesRef.current = latestLayoutOverrides;\n appliedBodyDataPropRef.current = getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>;\n appliedColumnEditRulesRef.current = latestColumnEditRulesRef.current;\n syncHasDisplayDataRows(grid);\n setIsTreeGridReady(true);\n measureTreeGridPerf(id, 'TreeGrid init ready', treeGridInitStartedAtRef.current, {\n bodyRowCount: getTreeGridBodyDataCount(\n getTreeGridBodyData(grid) as OwpTreeGridBodyData<T>,\n ),\n });\n treeGridInitStartedAtRef.current = null;\n latestEventHandlersRef.current?.onReady?.(grid);\n }\n }, 100),\n );\n};\n"],"names":["TREE_GRID_INPUT_CELL_COLOR_VALUE","TREEGRID_INPUT_CELL_COLOR","TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS","TREE_GRID_TEXT_RESOURCE_URLS","appendNoCacheQuery","__name","url","getTreeGridTextResourceUrl","languageId","resolveTreeGridDataUrl","dataUrl","buildTreeGridDataSource","useDataUrl","bodyData","isEmpty","buildTreeGridInitializationOptions","id","layoutUrl","width","height","getTreeGridBodyData","grid","get","getTreeGridBodyDataCount","isVisibleTreeGridRow","row","visible","isAddedTreeGridRow","added","isDisplayTreeGridRow","isEditableTreeGridCell","col","hasExplicitTreeGridCellColor","color","getEditableTreeGridCellDefaultColor","hasTreeGridDisplayDataRows","replaceTreeGridBodyData","onReloadFinish","currentDataConfig","_a","bindTreeGridEvents","latestEventHandlersRef","highlightEditableCellsRef","highlightChangedCellsRef","treeGridInstanceRef","treeGridInitStartedAtRef","latestLayoutOverridesRef","appliedLayoutOverridesRef","appliedBodyDataPropRef","latestColumnEditRulesRef","latestColumnEditRuleLookupRef","appliedColumnEditRulesRef","columnEditRulesStateRef","hasAppliedInitialLayoutRef","syncHasDisplayDataRows","setIsTreeGridReady","initialEventHandlers","_b","debounce","x","y","event","deleteType","value","columnEditRuleLookup","resolvedEditValue","resolveTreeGridColumnEditValue","nextValue","resolvedValue","enqueueSnackbar","highlightTreeGridCellById","valueChangedHandler","selectedRows","autoupdate","latestLayoutOverrides","applyTreeGridLayoutToGrid","resetTreeGridColumnEditRulesState","syncTreeGridColumnEditRules","measureTreeGridPerf"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf.js","sources":["../../../../../src/components/OwpTreeGrid/internal/utils/perf.ts"],"sourcesContent":["/** Temporary TreeGrid perf instrumentation. Remove after profiling is no longer needed. */\ntype TreeGridPerfWindow = Window & {\n __OWP_TREE_GRID_PERF__?: boolean;\n};\n\nexport const TREE_GRID_PERF_FLAG = '__OWP_TREE_GRID_PERF__';\n\n/**\n * TreeGrid 성능 계측 활성 여부\n */\nexport const isTreeGridPerfEnabled = () => {\n return typeof window !== 'undefined' && Boolean((window as TreeGridPerfWindow)[TREE_GRID_PERF_FLAG]);\n};\n\n/**\n * TreeGrid 성능 계측 타임스탬프 반환\n */\nexport const getTreeGridPerfTimestamp = () => {\n return typeof performance !== 'undefined' ? performance.now() : Date.now();\n};\n\n/**\n * TreeGrid 성능 계측 카운트 로그\n * @param gridId TreeGrid 인스턴스 ID\n * @param label 계측 라벨\n */\nexport const countTreeGridPerf = (gridId: string, label: string) => {\n if (!isTreeGridPerfEnabled()) {\n return;\n }\n\n console.count(`[OwpTreeGrid:${gridId}] ${label}`);\n};\n\n/**\n * TreeGrid 성능 계측 디버그 로그\n * @param gridId TreeGrid 인스턴스 ID\n * @param label 계측 라벨\n * @param payload 부가 정보\n */\nexport const logTreeGridPerf = (\n gridId: string,\n label: string,\n payload?: Record<string, unknown>,\n) => {\n if (!isTreeGridPerfEnabled()) {\n return;\n }\n\n if (payload) {\n console.info(`[OwpTreeGrid:${gridId}] ${label}`, payload);\n return;\n }\n\n console.info(`[OwpTreeGrid:${gridId}] ${label}`);\n};\n\n/**\n * TreeGrid 성능 계측 측정 로그\n * @param gridId TreeGrid 인스턴스 ID\n * @param label 계측 라벨\n * @param startedAt 시작 시각\n * @param payload 부가 정보\n */\nexport const measureTreeGridPerf = (\n gridId: string,\n label: string,\n startedAt: number | null,\n payload?: Record<string, unknown>,\n) => {\n if (!isTreeGridPerfEnabled() || startedAt === null) {\n return;\n }\n\n const durationMs = Number((getTreeGridPerfTimestamp() - startedAt).toFixed(1));\n\n if (payload) {\n console.info(`[OwpTreeGrid:${gridId}] ${label}`, { durationMs, ...payload });\n return;\n }\n\n console.info(`[OwpTreeGrid:${gridId}] ${label}`, { durationMs });\n};\n"],"names":["TREE_GRID_PERF_FLAG","isTreeGridPerfEnabled","__name","getTreeGridPerfTimestamp","countTreeGridPerf","gridId","label","logTreeGridPerf","payload","measureTreeGridPerf","startedAt","durationMs"],"mappings":";;AAKO,MAAMA,IAAsB,0BAKtBC,IAAwB,gBAAAC,EAAA,MAC5B,OAAO,SAAW,OAAe,EAAS,OAA8BF,CAAmB,GAD/D,0BAOxBG,IAA2B,gBAAAD,EAAA,MAC/B,OAAO,cAAgB,MAAc,YAAY,IAAA,IAAQ,KAAK,IAAA,GAD/B,6BAS3BE,IAAoB,gBAAAF,EAAA,CAACG,GAAgBC,MAAkB;AAClE,EAAKL,OAIL,QAAQ,MAAM,gBAAgBI,CAAM,KAAKC,CAAK,EAAE;AAClD,GANiC,sBAcpBC,IAAkB,gBAAAL,EAAA,CAC7BG,GACAC,GACAE,MACG;AACH,MAAKP,KAIL;AAAA,QAAIO,GAAS;AACX,cAAQ,KAAK,gBAAgBH,CAAM,KAAKC,CAAK,IAAIE,CAAO;AACxD;AAAA,IACF;AAEA,YAAQ,KAAK,gBAAgBH,CAAM,KAAKC,CAAK,EAAE;AAAA;AACjD,GAf+B,oBAwBlBG,IAAsB,gBAAAP,EAAA,CACjCG,GACAC,GACAI,GACAF,MACG;AACH,MAAI,CAACP,EAAA,KAA2BS,MAAc;AAC5C;AAGF,QAAMC,IAAa,QAAQR,EAAA,IAA6BO,GAAW,QAAQ,CAAC,CAAC;AAE7E,MAAIF,GAAS;AACX,YAAQ,KAAK,gBAAgBH,CAAM,KAAKC,CAAK,IAAI,EAAE,YAAAK,GAAY,GAAGH,EAAA,CAAS;AAC3E;AAAA,EACF;AAEA,UAAQ,KAAK,gBAAgBH,CAAM,KAAKC,CAAK,IAAI,EAAE,YAAAK,GAAY;AACjE,GAlBmC;"}
@@ -1,18 +1,18 @@
1
- var m = Object.defineProperty;
2
- var r = (a, e) => m(a, "name", { value: e, configurable: !0 });
1
+ var d = Object.defineProperty;
2
+ var r = (a, e) => d(a, "name", { value: e, configurable: !0 });
3
3
  import { jsxs as i, jsx as t } 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 { useGetCurrentLayoutConfig as f } from "../hooks/useOwpSettings.js";
5
- import { LinearProgress as d } from "@mui/material";
6
- import { styled as p } from "@mui/material/styles";
7
- import { useIsFetching as c, useIsMutating as u } from "@tanstack/react-query";
8
- import { memo as x } from "react";
9
- import { Outlet as h } from "react-router-dom";
10
- import y from "./components/layouts/FooterLayout.js";
11
- import b from "./components/layouts/LeftSideLayout.js";
4
+ import { useGetCurrentLayoutConfig as p } from "../hooks/useOwpSettings.js";
5
+ import { LinearProgress as c } from "@mui/material";
6
+ import { styled as u } from "@mui/material/styles";
7
+ import { useIsFetching as x, useIsMutating as h } from "@tanstack/react-query";
8
+ import { memo as y } from "react";
9
+ import { Outlet as g } from "react-router-dom";
10
+ import b from "./components/layouts/FooterLayout.js";
11
+ import L from "./components/layouts/LeftSideLayout.js";
12
12
  import l from "./components/layouts/NavbarWrapperLayout.js";
13
- import g from "./components/toolbar/ToolbarLayout.js";
14
- import { OwpSuspense as v } from "../components/OwpSuspense/OwpSuspense.js";
15
- const L = p("div")(({ config: a }) => ({
13
+ import v from "./components/toolbar/ToolbarLayout.js";
14
+ import { OwpSuspense as w } from "../components/OwpSuspense/OwpSuspense.js";
15
+ const N = u("div")(({ config: a }) => ({
16
16
  ...a.mode === "boxed" && {
17
17
  clipPath: "inset(0)",
18
18
  maxWidth: a.containerWidth,
@@ -29,28 +29,28 @@ const L = p("div")(({ config: a }) => ({
29
29
  }
30
30
  }
31
31
  }));
32
- function w(a) {
33
- const { children: e } = a, o = f(), n = c(), s = u();
34
- return /* @__PURE__ */ i(L, { id: "owp-layout", config: o, className: "flex w-full", children: [
35
- o.leftSidePanel.display && /* @__PURE__ */ t(b, {}),
32
+ function W(a) {
33
+ const { children: e, layoutConfig: n } = a, s = p(), o = n ?? s, m = x(), f = h();
34
+ return /* @__PURE__ */ i(N, { id: "owp-layout", config: o, className: "flex w-full", children: [
35
+ o.leftSidePanel.display && /* @__PURE__ */ t(L, {}),
36
36
  /* @__PURE__ */ i("div", { className: "flex min-w-0 flex-auto", children: [
37
37
  o.navbar.display && o.navbar.position === "left" && /* @__PURE__ */ t(l, {}),
38
38
  /* @__PURE__ */ i("main", { id: "owp-main", className: "relative z-10 flex min-h-full min-w-0 flex-auto flex-col", children: [
39
- o.toolbar.display && /* @__PURE__ */ t(g, { className: o.toolbar.style === "fixed" ? "sticky top-0" : "" }),
40
- !!(n || s) && /* @__PURE__ */ t("div", { className: "fixed top-0 left-0 z-30 w-full", children: /* @__PURE__ */ t(d, { color: "secondary" }) }),
39
+ o.toolbar.display && /* @__PURE__ */ t(v, { className: o.toolbar.style === "fixed" ? "sticky top-0" : "" }),
40
+ !!(m || f) && /* @__PURE__ */ t("div", { className: "fixed top-0 left-0 z-30 w-full", children: /* @__PURE__ */ t(c, { color: "secondary" }) }),
41
41
  /* @__PURE__ */ i("div", { className: "relative z-10 flex min-h-0 flex-auto flex-col", children: [
42
- /* @__PURE__ */ t(v, { children: /* @__PURE__ */ t(h, {}) }),
42
+ /* @__PURE__ */ t(w, { children: /* @__PURE__ */ t(g, {}) }),
43
43
  e
44
44
  ] }),
45
- o.footer.display && /* @__PURE__ */ t(y, { className: o.footer.style === "fixed" ? "sticky bottom-0" : "" })
45
+ o.footer.display && /* @__PURE__ */ t(b, { className: o.footer.style === "fixed" ? "sticky bottom-0" : "" })
46
46
  ] }),
47
47
  o.navbar.display && o.navbar.position === "right" && /* @__PURE__ */ t(l, {})
48
48
  ] })
49
49
  ] });
50
50
  }
51
- r(w, "Layout");
52
- const B = x(w);
51
+ r(W, "Layout");
52
+ const T = y(W);
53
53
  export {
54
- B as default
54
+ T as default
55
55
  };
56
56
  //# sourceMappingURL=Layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","sources":["../../src/layout/Layout.tsx"],"sourcesContent":["import { LayoutConfigDefaultsType } from '@/configs/layoutConfig';\nimport { OwpSuspense } from '@/components/OwpSuspense';\nimport { useGetCurrentLayoutConfig } from '@/hooks/useOwpSettings';\nimport { LinearProgress } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport { useIsFetching, useIsMutating } from '@tanstack/react-query';\nimport { memo, ReactNode } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport FooterLayout from './components/layouts/FooterLayout';\nimport LeftSideLayout from './components/layouts/LeftSideLayout';\nimport NavbarWrapperLayout from './components/layouts/NavbarWrapperLayout';\nimport ToolbarLayout from './components/toolbar/ToolbarLayout';\n\nconst Root = styled('div')(({ config }: { config: LayoutConfigDefaultsType }) => ({\n ...(config.mode === 'boxed' && {\n clipPath: 'inset(0)',\n maxWidth: config.containerWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n }),\n ...(config.mode === 'container' && {\n '& .container': {\n maxWidth: config.containerWidth,\n width: '100%',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n }),\n}));\n\ntype LayoutProps = {\n children?: ReactNode;\n};\n\n/**\n * The layout.\n */\nfunction Layout(props: LayoutProps) {\n const { children } = props;\n const config = useGetCurrentLayoutConfig() as LayoutConfigDefaultsType;\n const isFetching = useIsFetching();\n const isMutating = useIsMutating();\n\n return (\n <Root id=\"owp-layout\" config={config} className=\"flex w-full\">\n {config.leftSidePanel.display && <LeftSideLayout />}\n\n <div className=\"flex min-w-0 flex-auto\">\n {config.navbar.display && config.navbar.position === 'left' && <NavbarWrapperLayout />}\n\n <main id=\"owp-main\" className=\"relative z-10 flex min-h-full min-w-0 flex-auto flex-col\">\n {config.toolbar.display && (\n <ToolbarLayout className={config.toolbar.style === 'fixed' ? 'sticky top-0' : ''} />\n )}\n {Boolean(isFetching || isMutating) && (\n <div className=\"fixed top-0 left-0 z-30 w-full\">\n <LinearProgress color=\"secondary\" />\n </div>\n )}\n\n <div className=\"relative z-10 flex min-h-0 flex-auto flex-col\">\n <OwpSuspense>\n <Outlet />\n </OwpSuspense>\n {children}\n </div>\n\n {config.footer.display && (\n <FooterLayout className={config.footer.style === 'fixed' ? 'sticky bottom-0' : ''} />\n )}\n </main>\n\n {config.navbar.display && config.navbar.position === 'right' && <NavbarWrapperLayout />}\n </div>\n </Root>\n );\n}\n\nexport default memo(Layout);\n"],"names":["Root","styled","config","Layout","props","children","useGetCurrentLayoutConfig","isFetching","useIsFetching","isMutating","useIsMutating","jsx","LeftSideLayout","jsxs","NavbarWrapperLayout","ToolbarLayout","LinearProgress","OwpSuspense","Outlet","FooterLayout","__name","Layout$1","memo"],"mappings":";;;;;;;;;;;;;;AAaA,MAAMA,IAAOC,EAAO,KAAK,EAAE,CAAC,EAAE,QAAAC,SAAoD;AAAA,EAChF,GAAIA,EAAO,SAAS,WAAW;AAAA,IAC7B,UAAU;AAAA,IACV,UAAUA,EAAO;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,EAAA;AAAA,EAEb,GAAIA,EAAO,SAAS,eAAe;AAAA,IACjC,gBAAgB;AAAA,MACd,UAAUA,EAAO;AAAA,MACjB,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,EAAE;AASF,SAASC,EAAOC,GAAoB;AAClC,QAAM,EAAE,UAAAC,MAAaD,GACfF,IAASI,EAAA,GACTC,IAAaC,EAAA,GACbC,IAAaC,EAAA;AAEnB,2BACGV,GAAA,EAAK,IAAG,cAAa,QAAAE,GAAgB,WAAU,eAC7C,UAAA;AAAA,IAAAA,EAAO,cAAc,WAAW,gBAAAS,EAACC,GAAA,CAAA,CAAe;AAAA,IAEjD,gBAAAC,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAA;AAAA,MAAAX,EAAO,OAAO,WAAWA,EAAO,OAAO,aAAa,4BAAWY,GAAA,EAAoB;AAAA,MAEpF,gBAAAD,EAAC,QAAA,EAAK,IAAG,YAAW,WAAU,4DAC3B,UAAA;AAAA,QAAAX,EAAO,QAAQ,WACd,gBAAAS,EAACI,GAAA,EAAc,WAAWb,EAAO,QAAQ,UAAU,UAAU,iBAAiB,GAAA,CAAI;AAAA,QAEnF,GAAQK,KAAcE,MACrB,gBAAAE,EAAC,OAAA,EAAI,WAAU,kCACb,UAAA,gBAAAA,EAACK,GAAA,EAAe,OAAM,YAAA,CAAY,GACpC;AAAA,QAGF,gBAAAH,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,UAAA,gBAAAF,EAACM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,CAAA,CAAO,GACV;AAAA,UACCb;AAAA,QAAA,GACH;AAAA,QAECH,EAAO,OAAO,WACb,gBAAAS,EAACQ,GAAA,EAAa,WAAWjB,EAAO,OAAO,UAAU,UAAU,oBAAoB,GAAA,CAAI;AAAA,MAAA,GAEvF;AAAA,MAECA,EAAO,OAAO,WAAWA,EAAO,OAAO,aAAa,6BAAYY,GAAA,CAAA,CAAoB;AAAA,IAAA,EAAA,CACvF;AAAA,EAAA,GACF;AAEJ;AAvCSM,EAAAjB,GAAA;AAyCT,MAAAkB,IAAeC,EAAKnB,CAAM;"}
1
+ {"version":3,"file":"Layout.js","sources":["../../src/layout/Layout.tsx"],"sourcesContent":["import { LayoutConfigDefaultsType } from '@/configs/layoutConfig';\nimport { OwpSuspense } from '@/components/OwpSuspense';\nimport { useGetCurrentLayoutConfig } from '@/hooks/useOwpSettings';\nimport { LinearProgress } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport { useIsFetching, useIsMutating } from '@tanstack/react-query';\nimport { memo, ReactNode } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport FooterLayout from './components/layouts/FooterLayout';\nimport LeftSideLayout from './components/layouts/LeftSideLayout';\nimport NavbarWrapperLayout from './components/layouts/NavbarWrapperLayout';\nimport ToolbarLayout from './components/toolbar/ToolbarLayout';\n\nconst Root = styled('div')(({ config }: { config: LayoutConfigDefaultsType }) => ({\n ...(config.mode === 'boxed' && {\n clipPath: 'inset(0)',\n maxWidth: config.containerWidth,\n marginLeft: 'auto',\n marginRight: 'auto',\n boxShadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n }),\n ...(config.mode === 'container' && {\n '& .container': {\n maxWidth: config.containerWidth,\n width: '100%',\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n }),\n}));\n\ntype LayoutProps = {\n layoutConfig?: LayoutConfigDefaultsType;\n children?: ReactNode;\n};\n\n/**\n * The layout.\n */\nfunction Layout(props: LayoutProps) {\n const { children, layoutConfig } = props;\n const currentLayoutConfig = useGetCurrentLayoutConfig() as LayoutConfigDefaultsType;\n const config = layoutConfig ?? currentLayoutConfig;\n const isFetching = useIsFetching();\n const isMutating = useIsMutating();\n\n return (\n <Root id=\"owp-layout\" config={config} className=\"flex w-full\">\n {config.leftSidePanel.display && <LeftSideLayout />}\n\n <div className=\"flex min-w-0 flex-auto\">\n {config.navbar.display && config.navbar.position === 'left' && <NavbarWrapperLayout />}\n\n <main id=\"owp-main\" className=\"relative z-10 flex min-h-full min-w-0 flex-auto flex-col\">\n {config.toolbar.display && (\n <ToolbarLayout className={config.toolbar.style === 'fixed' ? 'sticky top-0' : ''} />\n )}\n {Boolean(isFetching || isMutating) && (\n <div className=\"fixed top-0 left-0 z-30 w-full\">\n <LinearProgress color=\"secondary\" />\n </div>\n )}\n\n <div className=\"relative z-10 flex min-h-0 flex-auto flex-col\">\n <OwpSuspense>\n <Outlet />\n </OwpSuspense>\n {children}\n </div>\n\n {config.footer.display && (\n <FooterLayout className={config.footer.style === 'fixed' ? 'sticky bottom-0' : ''} />\n )}\n </main>\n\n {config.navbar.display && config.navbar.position === 'right' && <NavbarWrapperLayout />}\n </div>\n </Root>\n );\n}\n\nexport default memo(Layout);\n"],"names":["Root","styled","config","Layout","props","children","layoutConfig","currentLayoutConfig","useGetCurrentLayoutConfig","isFetching","useIsFetching","isMutating","useIsMutating","jsx","LeftSideLayout","jsxs","NavbarWrapperLayout","ToolbarLayout","LinearProgress","OwpSuspense","Outlet","FooterLayout","__name","Layout$1","memo"],"mappings":";;;;;;;;;;;;;;AAaA,MAAMA,IAAOC,EAAO,KAAK,EAAE,CAAC,EAAE,QAAAC,SAAoD;AAAA,EAChF,GAAIA,EAAO,SAAS,WAAW;AAAA,IAC7B,UAAU;AAAA,IACV,UAAUA,EAAO;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,EAAA;AAAA,EAEb,GAAIA,EAAO,SAAS,eAAe;AAAA,IACjC,gBAAgB;AAAA,MACd,UAAUA,EAAO;AAAA,MACjB,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,EAAE;AAUF,SAASC,EAAOC,GAAoB;AAClC,QAAM,EAAE,UAAAC,GAAU,cAAAC,EAAA,IAAiBF,GAC7BG,IAAsBC,EAAA,GACtBN,IAASI,KAAgBC,GACzBE,IAAaC,EAAA,GACbC,IAAaC,EAAA;AAEnB,2BACGZ,GAAA,EAAK,IAAG,cAAa,QAAAE,GAAgB,WAAU,eAC7C,UAAA;AAAA,IAAAA,EAAO,cAAc,WAAW,gBAAAW,EAACC,GAAA,CAAA,CAAe;AAAA,IAEjD,gBAAAC,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAA;AAAA,MAAAb,EAAO,OAAO,WAAWA,EAAO,OAAO,aAAa,4BAAWc,GAAA,EAAoB;AAAA,MAEpF,gBAAAD,EAAC,QAAA,EAAK,IAAG,YAAW,WAAU,4DAC3B,UAAA;AAAA,QAAAb,EAAO,QAAQ,WACd,gBAAAW,EAACI,GAAA,EAAc,WAAWf,EAAO,QAAQ,UAAU,UAAU,iBAAiB,GAAA,CAAI;AAAA,QAEnF,GAAQO,KAAcE,MACrB,gBAAAE,EAAC,OAAA,EAAI,WAAU,kCACb,UAAA,gBAAAA,EAACK,GAAA,EAAe,OAAM,YAAA,CAAY,GACpC;AAAA,QAGF,gBAAAH,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,UAAA,gBAAAF,EAACM,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,CAAA,CAAO,GACV;AAAA,UACCf;AAAA,QAAA,GACH;AAAA,QAECH,EAAO,OAAO,WACb,gBAAAW,EAACQ,GAAA,EAAa,WAAWnB,EAAO,OAAO,UAAU,UAAU,oBAAoB,GAAA,CAAI;AAAA,MAAA,GAEvF;AAAA,MAECA,EAAO,OAAO,WAAWA,EAAO,OAAO,aAAa,6BAAYc,GAAA,CAAA,CAAoB;AAAA,IAAA,EAAA,CACvF;AAAA,EAAA,GACF;AAEJ;AAxCSM,EAAAnB,GAAA;AA0CT,MAAAoB,IAAeC,EAAKrB,CAAM;"}
@@ -1 +1 @@
1
- {"version":3,"file":"themeLayouts.js","sources":["../../src/layout/themeLayouts.ts"],"sourcesContent":["import type { ComponentType, ReactNode } from 'react';\nimport Layout from './Layout';\n\n/**\n * The type definition for the theme layouts.\n */\nexport type themeLayoutsType = {\n [key: string]: ComponentType<{ children?: ReactNode }>;\n};\n\n/**\n * The theme layouts.\n */\nexport const themeLayouts: themeLayoutsType = {\n layout: Layout,\n};\n"],"names":["themeLayouts","Layout"],"mappings":";AAaO,MAAMA,IAAiC;AAAA,EAC5C,QAAQC;AACV;"}
1
+ {"version":3,"file":"themeLayouts.js","sources":["../../src/layout/themeLayouts.ts"],"sourcesContent":["import type { LayoutConfigDefaultsType } from '@/configs/layoutConfig';\nimport type { ComponentType, ReactNode } from 'react';\nimport Layout from './Layout';\n\n/**\n * The type definition for the theme layouts.\n */\nexport type themeLayoutsType = {\n [key: string]: ComponentType<{ children?: ReactNode; layoutConfig?: LayoutConfigDefaultsType }>;\n};\n\n/**\n * The theme layouts.\n */\nexport const themeLayouts: themeLayoutsType = {\n layout: Layout,\n};\n"],"names":["themeLayouts","Layout"],"mappings":";AAcO,MAAMA,IAAiC;AAAA,EAC5C,QAAQC;AACV;"}
@@ -1,6 +1,6 @@
1
1
  var q = Object.defineProperty;
2
2
  var O = (C, _) => q(C, "name", { value: _, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../../_virtual/index9.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/index6.js";
4
4
  import { __require as d } from "./CODE128_AUTO.js";
5
5
  import { __require as n } from "./CODE128A.js";
6
6
  import { __require as m } from "./CODE128B.js";
@@ -1,6 +1,6 @@
1
1
  var w = Object.defineProperty;
2
2
  var n = (f, a) => w(f, "name", { value: a, configurable: !0 });
3
- import { __exports as i } from "../../../../../../../../_virtual/index8.js";
3
+ import { __exports as i } from "../../../../../../../../_virtual/index5.js";
4
4
  import { __require as k } from "../Barcode.js";
5
5
  var _;
6
6
  function P() {
@@ -1,6 +1,6 @@
1
1
  var D = Object.defineProperty;
2
2
  var C = (u, t) => D(u, "name", { value: t, configurable: !0 });
3
- import { __exports as e } from "../../../../../../../../_virtual/index15.js";
3
+ import { __exports as e } from "../../../../../../../../_virtual/index12.js";
4
4
  import { __require as O } from "./CODE93.js";
5
5
  import { __require as E } from "./CODE93FullASCII.js";
6
6
  var l;
@@ -1,6 +1,6 @@
1
1
  var C = Object.defineProperty;
2
2
  var i = (u, a) => C(u, "name", { value: a, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../../_virtual/index10.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/index7.js";
4
4
  import { __require as U } from "./EAN13.js";
5
5
  import { __require as s } from "./EAN8.js";
6
6
  import { __require as l } from "./EAN5.js";
@@ -1,6 +1,6 @@
1
1
  var b = Object.defineProperty;
2
2
  var r = (a, f) => b(a, "name", { value: f, configurable: !0 });
3
- import { __exports as u } from "../../../../../../../../_virtual/index16.js";
3
+ import { __exports as u } from "../../../../../../../../_virtual/index13.js";
4
4
  import { __require as p } from "../Barcode.js";
5
5
  var c;
6
6
  function w() {
@@ -1,6 +1,6 @@
1
1
  var T = Object.defineProperty;
2
2
  var i = (u, t) => T(u, "name", { value: t, configurable: !0 });
3
- import { __exports as e } from "../../../../../../../../_virtual/index11.js";
3
+ import { __exports as e } from "../../../../../../../../_virtual/index8.js";
4
4
  import { __require as f } from "./ITF.js";
5
5
  import { __require as n } from "./ITF14.js";
6
6
  var a;
@@ -1,6 +1,6 @@
1
1
  var v = Object.defineProperty;
2
2
  var I = (M, _) => v(M, "name", { value: _, configurable: !0 });
3
- import { __exports as r } from "../../../../../../../../_virtual/index12.js";
3
+ import { __exports as r } from "../../../../../../../../_virtual/index9.js";
4
4
  import { __require as n } from "./MSI.js";
5
5
  import { __require as s } from "./MSI10.js";
6
6
  import { __require as l } from "./MSI11.js";
@@ -1,6 +1,6 @@
1
1
  var p = Object.defineProperty;
2
2
  var a = (f, c) => p(f, "name", { value: c, configurable: !0 });
3
- import { __exports as i } from "../../../../../../../../_virtual/index14.js";
3
+ import { __exports as i } from "../../../../../../../../_virtual/index11.js";
4
4
  import { __require as g } from "../Barcode.js";
5
5
  var h;
6
6
  function w() {
@@ -1,6 +1,6 @@
1
1
  var v = Object.defineProperty;
2
2
  var i = (u, f) => v(u, "name", { value: f, configurable: !0 });
3
- import { __exports as a } from "../../../../../../../../_virtual/index13.js";
3
+ import { __exports as a } from "../../../../../../../../_virtual/index10.js";
4
4
  import { __require as y } from "../Barcode.js";
5
5
  var c;
6
6
  function q() {