@owp/core 2.5.8 → 2.5.10

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 (66) hide show
  1. package/dist/_virtual/index16.js +4 -4
  2. package/dist/_virtual/index17.js +4 -4
  3. package/dist/_virtual/index18.js +4 -4
  4. package/dist/_virtual/index19.js +4 -4
  5. package/dist/components/OwpDialog/OwpDialog.js +67 -46
  6. package/dist/components/OwpDialog/OwpDialog.js.map +1 -1
  7. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +162 -153
  8. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  9. package/dist/components/OwpTable/OwpDataTable.js +297 -283
  10. package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
  11. package/dist/components/OwpTable/OwpFieldTable.js +98 -86
  12. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  13. package/dist/components/OwpTable/OwpTable.js +145 -127
  14. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  15. package/dist/components/OwpTable/internal/defaultTableStyle.js +21 -15
  16. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
  17. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +195 -147
  18. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  19. package/dist/constants/tableTheme.js.map +1 -1
  20. package/dist/features/themePreview/components/ThemePreviewCanvas.js +300 -263
  21. package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
  22. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +148 -141
  23. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -1
  24. package/dist/features/themePreview/components/ThemePreviewColorField.js +168 -138
  25. package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -1
  26. package/dist/features/themePreview/components/ThemePreviewControls.js +410 -218
  27. package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -1
  28. package/dist/features/themePreview/components/themePreviewCanvas.shared.js +145 -125
  29. package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -1
  30. package/dist/features/themePreview/configs/table.js +4 -2
  31. package/dist/features/themePreview/configs/table.js.map +1 -1
  32. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +124 -118
  33. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
  34. package/dist/features/themePreview/hooks/useThemePreview.js +275 -193
  35. package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
  36. package/dist/features/themePreview/utils/themePreviewDefinitions.js +8 -0
  37. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
  38. package/dist/features/themePreview/utils/themePreviewSettings.js +188 -151
  39. package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -1
  40. package/dist/features/themePreview.js +18 -17
  41. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  42. package/dist/layout/components/toolbar/ToolbarLayout.js +36 -35
  43. package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
  44. package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestartAltOutlined.js +9 -0
  45. package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestartAltOutlined.js.map +1 -0
  46. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  47. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  48. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  49. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  50. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  51. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  52. 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
  53. package/dist/owp-app.css +1 -1
  54. package/dist/types/components/OwpDialog/OwpDialog.d.ts +2 -0
  55. package/dist/types/components/OwpTable/OwpFieldTable.d.ts +3 -2
  56. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +2 -0
  57. package/dist/types/constants/tableTheme.d.ts +1 -0
  58. package/dist/types/features/themePreview/components/ThemePreviewColorField.d.ts +3 -1
  59. package/dist/types/features/themePreview/components/ThemePreviewControls.d.ts +4 -1
  60. package/dist/types/features/themePreview/configs/settings.d.ts +2 -0
  61. package/dist/types/features/themePreview/configs/table.d.ts +2 -0
  62. package/dist/types/features/themePreview/hooks/useThemePreview.d.ts +3 -0
  63. package/dist/types/features/themePreview/utils/index.d.ts +1 -1
  64. package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +11 -1
  65. package/dist/types/types/OwpTableThemeTypes.d.ts +8 -0
  66. package/package.json +1 -1
@@ -1,107 +1,107 @@
1
- var L = Object.defineProperty;
2
- var a = (t, e) => L(t, "name", { value: e, configurable: !0 });
3
- import { jsxs as u, jsx as m, Fragment as S } 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 { resolveOwpGridTheme as y } from "../../constants/gridTheme.js";
5
- import { resolveOwpTableTheme as B } from "../../constants/tableTheme.js";
6
- import { getTreeGridFontFaceStyles as M } from "../../constants/treeGrid.js";
7
- import { useGetCurrentSettings as G } from "../../hooks/useOwpSettings.js";
8
- import { Typography as _, styled as v, Divider as D } from "@mui/material";
9
- import { clsx as O } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
10
- import A from "@mui/material/GlobalStyles";
11
- import j from "@mui/material/Paper";
12
- import H from "@mui/material/Table";
13
- import I from "@mui/material/TableBody";
14
- import R from "@mui/material/TableCell";
15
- import F from "@mui/material/TableContainer";
16
- import K from "@mui/material/TableHead";
17
- import N from "@mui/material/TableRow";
18
- import { useMemo as c } from "react";
19
- import { getTreeGridContainerSx as Y, getTreeGridBodyRowSx as q, TREEGRID_TABLE_BODY_BORDER_COLOR as z, getTreeGridBodyCellSx as J, TREEGRID_TABLE_HEADER_BORDER_COLOR as Q, getTreeGridHeaderCellSx as V, getTreeGridCellBaseSx as W } from "./internal/treeGridTableStyle.js";
20
- import { getDefaultTableHeaderCellSx as X, getDefaultTableCellSx as Z, defaultStyledTableTheme as $ } from "./internal/defaultTableStyle.js";
21
- import { isNumber as k } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNumber.js";
22
- import { isArray as h } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isArray.js";
23
- import { isEmpty as P } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
24
- const g = /* @__PURE__ */ a((t) => t ? Object.keys(t).filter((e) => !e.includes("Span")) : [], "getTableColumnKeys"), w = /* @__PURE__ */ a((t, e) => t[`${e}Sx`] ?? {}, "getTableCellSx"), x = /* @__PURE__ */ a((t, e, o) => t[`${e}${o}`] ?? void 0, "getTableCellSpan"), U = /* @__PURE__ */ a((...t) => t.reduce((e, o) => o ? [...e, ...h(o) ? o : [o]] : e, []), "mergeSx"), ee = {
1
+ var I = Object.defineProperty;
2
+ var n = (o, e) => I(o, "name", { value: e, configurable: !0 });
3
+ import { jsxs as u, jsx as a, Fragment as L } 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 { resolveOwpGridTheme as M } from "../../constants/gridTheme.js";
5
+ import { resolveOwpTableTheme as _ } from "../../constants/tableTheme.js";
6
+ import { getTreeGridFontFaceStyles as F } from "../../constants/treeGrid.js";
7
+ import { useGetCurrentSettings as D } from "../../hooks/useOwpSettings.js";
8
+ import { Typography as K, styled as A, Divider as N } from "@mui/material";
9
+ import { clsx as j } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
10
+ import Y from "@mui/material/GlobalStyles";
11
+ import q from "@mui/material/Paper";
12
+ import z from "@mui/material/Table";
13
+ import J from "@mui/material/TableBody";
14
+ import O from "@mui/material/TableCell";
15
+ import Q from "@mui/material/TableContainer";
16
+ import V from "@mui/material/TableHead";
17
+ import W from "@mui/material/TableRow";
18
+ import { useMemo as h } from "react";
19
+ import { getTreeGridContainerSx as X, getTreeGridBodyRowSx as Z, TREEGRID_TABLE_BODY_BORDER_COLOR as k, getTreeGridBodyCellSx as U, TREEGRID_TABLE_HEADER_BORDER_COLOR as P, getTreeGridHeaderCellSx as ee, getTreeGridCellBaseSx as oe } from "./internal/treeGridTableStyle.js";
20
+ import { getDefaultTableHeaderCellSx as H, getDefaultTableCellSx as te, defaultStyledTableTheme as S } from "./internal/defaultTableStyle.js";
21
+ import { isNumber as re } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNumber.js";
22
+ import { isArray as C } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isArray.js";
23
+ import { isEmpty as le } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
24
+ const $ = /* @__PURE__ */ n((o) => o ? Object.keys(o).filter((e) => !e.includes("Span")) : [], "getTableColumnKeys"), E = /* @__PURE__ */ n((o, e) => o[`${e}Sx`] ?? {}, "getTableCellSx"), B = /* @__PURE__ */ n((o, e, t) => o[`${e}${t}`] ?? void 0, "getTableCellSpan"), y = /* @__PURE__ */ n((...o) => o.reduce((e, t) => t ? [...e, ...C(t) ? t : [t]] : e, []), "mergeSx"), ie = {
25
25
  border: 0,
26
26
  borderRadius: 0,
27
27
  overflow: "visible"
28
28
  };
29
- function te({ totalCount: t }) {
30
- return /* @__PURE__ */ u(S, { children: [
31
- /* @__PURE__ */ m(D, {}),
32
- /* @__PURE__ */ u(_, { className: "w-full py-8 pr-12", align: "right", children: [
29
+ function me({ totalCount: o }) {
30
+ return /* @__PURE__ */ u(L, { children: [
31
+ /* @__PURE__ */ a(N, {}),
32
+ /* @__PURE__ */ u(K, { className: "w-full py-8 pr-12", align: "right", children: [
33
33
  "전체: ",
34
- k(t) ? t.toLocaleString() : 0,
34
+ re(o) ? o.toLocaleString() : 0,
35
35
  " 건"
36
36
  ] })
37
37
  ] });
38
38
  }
39
- a(te, "OwpTableTotalCount");
40
- const oe = /* @__PURE__ */ a(({
41
- canBodyFullHeight: t,
39
+ n(me, "OwpTableTotalCount");
40
+ const ae = /* @__PURE__ */ n(({
41
+ canBodyFullHeight: o,
42
42
  canUseTreeGridStyle: e,
43
- children: o,
44
- className: b,
45
- containerProps: l,
46
- footerSlot: d,
47
- tableTheme: f,
48
- tableLayout: i,
49
- ...n
43
+ children: t,
44
+ className: s,
45
+ containerProps: r,
46
+ footerSlot: l,
47
+ tableTheme: d,
48
+ tableLayout: x,
49
+ ...g
50
50
  }) => {
51
- const r = G(), p = c(
51
+ const i = D(), T = h(
52
52
  () => {
53
- var s, T;
54
- return y((T = (s = r == null ? void 0 : r.theme) == null ? void 0 : s.main) == null ? void 0 : T.grid);
53
+ var f, b;
54
+ return M((b = (f = i == null ? void 0 : i.theme) == null ? void 0 : f.main) == null ? void 0 : b.grid);
55
55
  },
56
- [r]
57
- ), E = c(
56
+ [i]
57
+ ), R = h(
58
58
  () => {
59
- var s, T;
60
- return f ?? B((T = (s = r == null ? void 0 : r.theme) == null ? void 0 : s.main) == null ? void 0 : T.table, $);
59
+ var f, b;
60
+ return d ?? _((b = (f = i == null ? void 0 : i.theme) == null ? void 0 : f.main) == null ? void 0 : b.table, S);
61
61
  },
62
- [r, f]
62
+ [i, d]
63
63
  );
64
- return /* @__PURE__ */ u(S, { children: [
65
- e && /* @__PURE__ */ m(A, { styles: M() }),
64
+ return /* @__PURE__ */ u(L, { children: [
65
+ e && /* @__PURE__ */ a(Y, { styles: F() }),
66
66
  /* @__PURE__ */ u(
67
- F,
67
+ Q,
68
68
  {
69
- component: j,
69
+ component: q,
70
70
  variant: "outlined",
71
- ...l,
72
- sx: U(
73
- e && ee,
74
- e && Y(p),
75
- t && { height: "100%" },
76
- l == null ? void 0 : l.sx
71
+ ...r,
72
+ sx: y(
73
+ e && ie,
74
+ e && X(T),
75
+ o && { height: "100%" },
76
+ r == null ? void 0 : r.sx
77
77
  ),
78
78
  children: [
79
- /* @__PURE__ */ m(
80
- re,
79
+ /* @__PURE__ */ a(
80
+ ne,
81
81
  {
82
- ...n,
83
- canBodyFullHeight: t,
82
+ ...g,
83
+ canBodyFullHeight: o,
84
84
  canUseTreeGridStyle: e,
85
- tableTheme: E,
86
- treeGridTheme: p,
87
- className: O(
88
- t && "h-full",
89
- i === "fixed" ? "table-fixed" : i === "auto" ? "table-auto" : "",
90
- b
85
+ tableTheme: R,
86
+ treeGridTheme: T,
87
+ className: j(
88
+ o && "h-full",
89
+ x === "fixed" ? "table-fixed" : x === "auto" ? "table-auto" : "",
90
+ s
91
91
  ),
92
- children: o
92
+ children: t
93
93
  }
94
94
  ),
95
- d
95
+ l
96
96
  ]
97
97
  }
98
98
  )
99
99
  ] });
100
- }, "StyledTable"), re = v(H, {
101
- shouldForwardProp: /* @__PURE__ */ a((t) => t !== "canBodyFullHeight" && t !== "canUseTreeGridStyle" && t !== "tableTheme" && t !== "treeGridTheme", "shouldForwardProp")
100
+ }, "StyledTable"), ne = A(z, {
101
+ shouldForwardProp: /* @__PURE__ */ n((o) => o !== "canBodyFullHeight" && o !== "canUseTreeGridStyle" && o !== "tableTheme" && o !== "treeGridTheme", "shouldForwardProp")
102
102
  })(
103
- ({ theme: t, canBodyFullHeight: e, canUseTreeGridStyle: o, tableTheme: b, treeGridTheme: l }) => {
104
- const d = l ?? y(), f = b ?? $;
103
+ ({ theme: o, canBodyFullHeight: e, canUseTreeGridStyle: t, tableTheme: s, treeGridTheme: r }) => {
104
+ const l = r ?? M(), d = s ?? S;
105
105
  return {
106
106
  ...e && {
107
107
  height: "100%"
@@ -114,34 +114,34 @@ const oe = /* @__PURE__ */ a(({
114
114
  height: "100%"
115
115
  }
116
116
  },
117
- "& .MuiTableCell-root": o ? {
118
- ...W(d)
119
- } : {
120
- ...Z(f)
121
- },
122
- ...!o && {
117
+ "& .MuiTableCell-root": t ? {
118
+ ...oe(l)
119
+ } : void 0,
120
+ ...!t && {
123
121
  "& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root": {
124
- borderLeft: `1px solid ${t.palette.divider}`
122
+ borderLeft: `1px solid ${o.palette.divider}`
125
123
  }
126
124
  },
127
- "& th": o ? {
128
- ...V(d),
125
+ "& th": t ? {
126
+ ...ee(l),
129
127
  "&:first-of-type": {
130
- borderLeft: `1px solid ${Q}`
128
+ borderLeft: `1px solid ${P}`
131
129
  }
132
130
  } : {
133
- ...X(f, t.palette.grey[200])
131
+ ...H(d, o.palette.grey[200])
134
132
  },
135
- "& td": o ? {
136
- ...J(d),
133
+ "& td": t ? {
134
+ ...U(l),
137
135
  "&:first-of-type": {
138
- borderLeft: `1px solid ${z}`
136
+ borderLeft: `1px solid ${k}`
139
137
  }
140
- } : {},
141
- ...o && {
142
- "& tbody > .MuiTableRow-root": q(d)
138
+ } : {
139
+ ...te(d)
140
+ },
141
+ ...t && {
142
+ "& tbody > .MuiTableRow-root": Z(l)
143
143
  },
144
- ...o && {
144
+ ...t && {
145
145
  "& tbody > tr:first-of-type > th:first-of-type": {
146
146
  borderTopLeftRadius: "inherit"
147
147
  },
@@ -151,67 +151,85 @@ const oe = /* @__PURE__ */ a(({
151
151
  }
152
152
  };
153
153
  }
154
- ), C = v(N)`
154
+ ), G = A(W)`
155
155
  /* &:last-child th,
156
156
  &:last-child td {
157
157
  border-bottom: 0;
158
158
  } */
159
159
  `;
160
- function Oe({
161
- canTotalCountRow: t = !1,
160
+ function Le({
161
+ canTotalCountRow: o = !1,
162
162
  headers: e,
163
- rows: o,
164
- totalCount: b,
165
- ...l
163
+ rows: t,
164
+ totalCount: s,
165
+ ...r
166
166
  }) {
167
- const d = c(
168
- () => h(e) ? e : P(e) ? [] : [e],
167
+ var T, R, f, b, v;
168
+ const l = D(), d = h(
169
+ () => {
170
+ var m, p;
171
+ return r.tableTheme ?? _((p = (m = l == null ? void 0 : l.theme) == null ? void 0 : m.main) == null ? void 0 : p.table, S);
172
+ },
173
+ [l, r.tableTheme]
174
+ ), x = h(
175
+ () => C(e) ? e : le(e) ? [] : [e],
169
176
  [e]
170
- ), f = c(
171
- () => g(h(e) ? e[0] : e),
177
+ ), g = h(
178
+ () => $(C(e) ? e[0] : e),
172
179
  [e]
173
- );
180
+ ), i = (b = (f = (R = (T = l == null ? void 0 : l.theme) == null ? void 0 : T.main) == null ? void 0 : R.table) == null ? void 0 : f.row) == null ? void 0 : b.backgroundColor;
174
181
  return /* @__PURE__ */ u(
175
- oe,
182
+ ae,
176
183
  {
177
- ...l,
178
- footerSlot: t ? /* @__PURE__ */ m(te, { totalCount: typeof b > "u" ? o.length : b }) : void 0,
179
- className: O(l.tableLayout && "w-full", l.className),
184
+ ...r,
185
+ containerProps: {
186
+ ...r.containerProps,
187
+ sx: y(
188
+ !r.canUseTreeGridStyle && i && { backgroundColor: i },
189
+ (v = r.containerProps) == null ? void 0 : v.sx
190
+ )
191
+ },
192
+ footerSlot: o ? /* @__PURE__ */ a(me, { totalCount: typeof s > "u" ? t.length : s }) : void 0,
193
+ className: j(r.tableLayout && "w-full", r.className),
194
+ tableTheme: d,
180
195
  children: [
181
- /* @__PURE__ */ m(K, { children: d.map((i, n) => /* @__PURE__ */ m(C, { children: g(i).map((r) => /* @__PURE__ */ m(
182
- R,
196
+ /* @__PURE__ */ a(V, { children: x.map((m, p) => /* @__PURE__ */ a(G, { children: $(m).map((c) => /* @__PURE__ */ a(
197
+ O,
183
198
  {
184
199
  className: "whitespace-pre-wrap",
185
- sx: w(i, r),
186
- colSpan: x(i, r, "ColSpan"),
187
- rowSpan: x(i, r, "RowSpan"),
200
+ sx: y(
201
+ !r.canUseTreeGridStyle && H(d),
202
+ E(m, c)
203
+ ),
204
+ colSpan: B(m, c, "ColSpan"),
205
+ rowSpan: B(m, c, "RowSpan"),
188
206
  align: "center",
189
- children: i[r]
207
+ children: m[c]
190
208
  },
191
- `table-header-${n}-${r}`
192
- )) }, `table-header-${n}`)) }),
193
- /* @__PURE__ */ m(I, { children: o.map((i, n) => {
194
- const r = i;
195
- return /* @__PURE__ */ m(C, { children: f.map((p) => /* @__PURE__ */ m(
196
- R,
209
+ `table-header-${p}-${c}`
210
+ )) }, `table-header-${p}`)) }),
211
+ /* @__PURE__ */ a(J, { children: t.map((m, p) => {
212
+ const c = m;
213
+ return /* @__PURE__ */ a(G, { children: g.map((w) => /* @__PURE__ */ a(
214
+ O,
197
215
  {
198
216
  className: "whitespace-pre-wrap h-64",
199
- sx: w(r, p),
217
+ sx: E(c, w),
200
218
  align: "center",
201
- children: r[p]
219
+ children: c[w]
202
220
  },
203
- `table-row-cell-${n}-${p}`
204
- )) }, `table-row-${n}`);
221
+ `table-row-cell-${p}-${w}`
222
+ )) }, `table-row-${p}`);
205
223
  }) })
206
224
  ]
207
225
  }
208
226
  );
209
227
  }
210
- a(Oe, "OwpTable");
228
+ n(Le, "OwpTable");
211
229
  export {
212
- Oe as OwpTable,
213
- te as OwpTableTotalCount,
214
- oe as StyledTable,
215
- C as StyledTableRow
230
+ Le as OwpTable,
231
+ me as OwpTableTotalCount,
232
+ ae as StyledTable,
233
+ G as StyledTableRow
216
234
  };
217
235
  //# sourceMappingURL=OwpTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.tsx"],"sourcesContent":["import {\n resolveOwpGridTheme,\n type OwpResolvedGridThemeConfigType,\n} from '@/constants/gridTheme';\nimport {\n resolveOwpTableTheme,\n type OwpResolvedTableThemeConfigType,\n} from '@/constants/tableTheme';\nimport { getTreeGridFontFaceStyles } from '@/constants/treeGrid';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport { Divider, styled, Typography, type SxProps, type Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport Paper from '@mui/material/Paper';\nimport Table, { type TableProps } from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer, { type TableContainerProps } from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport { isArray, isEmpty, isNumber } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\nimport {\n getTreeGridBodyCellSx,\n getTreeGridBodyRowSx,\n getTreeGridCellBaseSx,\n getTreeGridContainerSx,\n getTreeGridHeaderCellSx,\n TREEGRID_TABLE_BODY_BORDER_COLOR,\n TREEGRID_TABLE_HEADER_BORDER_COLOR,\n} from './internal/treeGridTableStyle';\nimport {\n defaultStyledTableTheme,\n getDefaultTableCellSx,\n getDefaultTableHeaderCellSx,\n} from './internal/defaultTableStyle';\n\ntype OwpTableCellValue = string | number;\ntype OwpTableHeaderRow = Record<string, OwpTableCellValue>;\ntype OwpTableRowData = Record<string, unknown>;\n\nconst getTableColumnKeys = (row?: Record<string, unknown>) => {\n if (!row) {\n return [];\n }\n\n return Object.keys(row).filter((keyName) => !keyName.includes('Span'));\n};\n\nconst getTableCellSx = (row: Record<string, unknown>, keyName: string) => {\n return (row[`${keyName}Sx`] as SxProps<Theme>) ?? {};\n};\n\nconst getTableCellSpan = (\n row: Record<string, unknown>,\n keyName: string,\n spanType: 'ColSpan' | 'RowSpan',\n) => {\n return (row[`${keyName}${spanType}`] as number | undefined) ?? undefined;\n};\n\nconst mergeSx = (...styles: Array<SxProps<Theme> | undefined | false>): SxProps<Theme> =>\n styles.reduce<Array<Exclude<SxProps<Theme>, readonly unknown[]>>>((acc, style) => {\n if (!style) {\n return acc;\n }\n\n return [...acc, ...(isArray(style) ? style : [style])];\n }, []) as SxProps<Theme>;\n\nconst treeGridContainerSx = {\n border: 0,\n borderRadius: 0,\n overflow: 'visible',\n} as const;\n\ninterface StyledTableProps extends TableProps {\n canBodyFullHeight?: boolean;\n canUseTreeGridStyle?: boolean;\n containerProps?: TableContainerProps;\n footerSlot?: ReactNode;\n tableTheme?: OwpResolvedTableThemeConfigType;\n tableLayout?: 'auto' | 'fixed';\n treeGridTheme?: OwpResolvedGridThemeConfigType;\n title?: string;\n children: ReactNode;\n}\n\ntype StyledTableInnerProps = Pick<\n StyledTableProps,\n 'canBodyFullHeight' | 'canUseTreeGridStyle' | 'tableTheme' | 'treeGridTheme'\n>;\n\n/**\n * 총 row 수 표시 영역\n * @param totalCount 전체 row 수\n */\nexport function OwpTableTotalCount({ totalCount }: { totalCount?: number }) {\n return (\n <>\n <Divider />\n <Typography className=\"w-full py-8 pr-12\" align=\"right\">\n 전체: {isNumber(totalCount) ? totalCount.toLocaleString() : 0} 건\n </Typography>\n </>\n );\n}\n\n/**\n * StyledTable 스타일 컴포넌트\n * @param canBodyFullHeight body full height 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param children 하위 콘텐츠\n * @param containerProps containerProps props\n * @param footerSlot footer 영역\n * @param tableLayout tableLayout 값\n */\nexport const StyledTable = ({\n canBodyFullHeight,\n canUseTreeGridStyle,\n children,\n className,\n containerProps,\n footerSlot,\n tableTheme: tableThemeProp,\n tableLayout,\n ...tableProps\n}: StyledTableProps) => {\n const currentSettings = useGetCurrentSettings();\n const treeGridTheme = useMemo(\n () => resolveOwpGridTheme(currentSettings?.theme?.main?.grid),\n [currentSettings],\n );\n const tableTheme = useMemo(\n () =>\n tableThemeProp ??\n resolveOwpTableTheme(currentSettings?.theme?.main?.table, defaultStyledTableTheme),\n [currentSettings, tableThemeProp],\n );\n\n return (\n <>\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n component={Paper}\n variant=\"outlined\"\n {...containerProps}\n sx={mergeSx(\n canUseTreeGridStyle && treeGridContainerSx,\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n canBodyFullHeight && { height: '100%' },\n containerProps?.sx,\n )}\n >\n <StyledTableInner\n {...tableProps}\n canBodyFullHeight={canBodyFullHeight}\n canUseTreeGridStyle={canUseTreeGridStyle}\n tableTheme={tableTheme}\n treeGridTheme={treeGridTheme}\n className={clsx(\n canBodyFullHeight && 'h-full',\n tableLayout === 'fixed' ? 'table-fixed' : tableLayout === 'auto' ? 'table-auto' : '',\n className,\n )}\n >\n {children}\n </StyledTableInner>\n {footerSlot}\n </TableContainer>\n </>\n );\n};\n\nconst StyledTableInner = styled(Table, {\n shouldForwardProp: (prop) =>\n prop !== 'canBodyFullHeight' &&\n prop !== 'canUseTreeGridStyle' &&\n prop !== 'tableTheme' &&\n prop !== 'treeGridTheme',\n})<StyledTableInnerProps>(\n ({ theme, canBodyFullHeight, canUseTreeGridStyle, tableTheme, treeGridTheme }) => {\n const resolvedTreeGridTheme = treeGridTheme ?? resolveOwpGridTheme();\n const resolvedTableTheme = tableTheme ?? defaultStyledTableTheme;\n\n return {\n ...(canBodyFullHeight && {\n height: '100%',\n }),\n ...(canBodyFullHeight && {\n '& .MuiTableBody-root': {\n height: '100%',\n },\n '& .MuiTableBody-root > .MuiTableRow-root': {\n height: '100%',\n },\n }),\n '& .MuiTableCell-root': canUseTreeGridStyle\n ? {\n ...getTreeGridCellBaseSx(resolvedTreeGridTheme),\n }\n : {\n ...getDefaultTableCellSx(resolvedTableTheme),\n },\n ...(!canUseTreeGridStyle && {\n '& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root': {\n borderLeft: `1px solid ${theme.palette.divider}`,\n },\n }),\n '& th': canUseTreeGridStyle\n ? {\n ...getTreeGridHeaderCellSx(resolvedTreeGridTheme),\n '&:first-of-type': {\n borderLeft: `1px solid ${TREEGRID_TABLE_HEADER_BORDER_COLOR}`,\n },\n }\n : {\n ...getDefaultTableHeaderCellSx(resolvedTableTheme, theme.palette.grey[200]),\n },\n '& td': canUseTreeGridStyle\n ? {\n ...getTreeGridBodyCellSx(resolvedTreeGridTheme),\n '&:first-of-type': {\n borderLeft: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n },\n }\n : {},\n ...(canUseTreeGridStyle && {\n '& tbody > .MuiTableRow-root': getTreeGridBodyRowSx(resolvedTreeGridTheme),\n }),\n ...(canUseTreeGridStyle && {\n '& tbody > tr:first-of-type > th:first-of-type': {\n borderTopLeftRadius: 'inherit',\n },\n '& tbody > tr:first-of-type > td:last-of-type': {\n borderTopRightRadius: 'inherit',\n },\n }),\n };\n },\n);\n\nexport const StyledTableRow = styled(TableRow)`\n /* &:last-child th,\n &:last-child td {\n border-bottom: 0;\n } */\n`;\n\ninterface OwpTableProps<T> extends Omit<StyledTableProps, 'children'> {\n canTotalCountRow?: boolean;\n headers: OwpTableHeaderRow | OwpTableHeaderRow[];\n rows: T[];\n totalCount?: number;\n}\n\n/**\n * OwpTable 컴포넌트\n * @param canTotalCountRow 전체 row 수 표시 여부\n * @param headers headers 값\n * @param rows 행 데이터 목록\n * @param totalCount 전체 row 수\n */\nexport function OwpTable<T>({\n canTotalCountRow = false,\n headers,\n rows,\n totalCount,\n ...restTableProps\n}: OwpTableProps<T>) {\n const resolvedHeaderRows = useMemo(\n () => (isArray(headers) ? headers : isEmpty(headers) ? [] : [headers]),\n [headers],\n );\n const commonKeyListData = useMemo(\n () => getTableColumnKeys(isArray(headers) ? headers[0] : headers),\n [headers],\n );\n\n return (\n <StyledTable\n {...restTableProps}\n footerSlot={\n canTotalCountRow ? (\n <OwpTableTotalCount totalCount={typeof totalCount === 'undefined' ? rows.length : totalCount} />\n ) : undefined\n }\n className={clsx(restTableProps.tableLayout && 'w-full', restTableProps.className)}\n >\n <TableHead>\n {resolvedHeaderRows.map((headerData, index) => (\n <StyledTableRow key={`table-header-${index}`}>\n {getTableColumnKeys(headerData).map((keyName) => (\n <TableCell\n key={`table-header-${index}-${keyName}`}\n className=\"whitespace-pre-wrap\"\n sx={getTableCellSx(headerData, keyName)}\n colSpan={getTableCellSpan(headerData, keyName, 'ColSpan')}\n rowSpan={getTableCellSpan(headerData, keyName, 'RowSpan')}\n align=\"center\"\n >\n {headerData[keyName]}\n </TableCell>\n ))}\n </StyledTableRow>\n ))}\n </TableHead>\n <TableBody>\n {rows.map((row, index) => {\n const currentRow = row as OwpTableRowData;\n\n return (\n <StyledTableRow key={`table-row-${index}`}>\n {commonKeyListData.map((keyName) => (\n <TableCell\n key={`table-row-cell-${index}-${keyName}`}\n className=\"whitespace-pre-wrap h-64\"\n sx={getTableCellSx(currentRow, keyName)}\n align=\"center\"\n >\n {currentRow[keyName] as ReactNode}\n </TableCell>\n ))}\n </StyledTableRow>\n );\n })}\n </TableBody>\n </StyledTable>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","mergeSx","styles","acc","style","isArray","treeGridContainerSx","OwpTableTotalCount","totalCount","jsxs","Fragment","jsx","Divider","Typography","isNumber","StyledTable","canBodyFullHeight","canUseTreeGridStyle","children","className","containerProps","footerSlot","tableThemeProp","tableLayout","tableProps","currentSettings","useGetCurrentSettings","treeGridTheme","useMemo","resolveOwpGridTheme","_b","_a","tableTheme","resolveOwpTableTheme","defaultStyledTableTheme","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","Paper","getTreeGridContainerSx","StyledTableInner","clsx","styled","Table","prop","theme","resolvedTreeGridTheme","resolvedTableTheme","getTreeGridCellBaseSx","getDefaultTableCellSx","getTreeGridHeaderCellSx","TREEGRID_TABLE_HEADER_BORDER_COLOR","getDefaultTableHeaderCellSx","getTreeGridBodyCellSx","TREEGRID_TABLE_BODY_BORDER_COLOR","getTreeGridBodyRowSx","StyledTableRow","TableRow","OwpTable","canTotalCountRow","headers","rows","restTableProps","resolvedHeaderRows","isEmpty","commonKeyListData","TableHead","headerData","index","TableCell","TableBody","currentRow"],"mappings":"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"}
1
+ {"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.tsx"],"sourcesContent":["import {\n resolveOwpGridTheme,\n type OwpResolvedGridThemeConfigType,\n} from '@/constants/gridTheme';\nimport {\n resolveOwpTableTheme,\n type OwpResolvedTableThemeConfigType,\n} from '@/constants/tableTheme';\nimport { getTreeGridFontFaceStyles } from '@/constants/treeGrid';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport { Divider, styled, Typography, type SxProps, type Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport Paper from '@mui/material/Paper';\nimport Table, { type TableProps } from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer, { type TableContainerProps } from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport { isArray, isEmpty, isNumber } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\nimport {\n getTreeGridBodyCellSx,\n getTreeGridBodyRowSx,\n getTreeGridCellBaseSx,\n getTreeGridContainerSx,\n getTreeGridHeaderCellSx,\n TREEGRID_TABLE_BODY_BORDER_COLOR,\n TREEGRID_TABLE_HEADER_BORDER_COLOR,\n} from './internal/treeGridTableStyle';\nimport {\n defaultStyledTableTheme,\n getDefaultTableCellSx,\n getDefaultTableHeaderCellSx,\n} from './internal/defaultTableStyle';\n\ntype OwpTableCellValue = string | number;\ntype OwpTableHeaderRow = Record<string, OwpTableCellValue>;\ntype OwpTableRowData = Record<string, unknown>;\n\nconst getTableColumnKeys = (row?: Record<string, unknown>) => {\n if (!row) {\n return [];\n }\n\n return Object.keys(row).filter((keyName) => !keyName.includes('Span'));\n};\n\nconst getTableCellSx = (row: Record<string, unknown>, keyName: string) => {\n return (row[`${keyName}Sx`] as SxProps<Theme>) ?? {};\n};\n\nconst getTableCellSpan = (\n row: Record<string, unknown>,\n keyName: string,\n spanType: 'ColSpan' | 'RowSpan',\n) => {\n return (row[`${keyName}${spanType}`] as number | undefined) ?? undefined;\n};\n\nconst mergeSx = (...styles: Array<SxProps<Theme> | undefined | false>): SxProps<Theme> =>\n styles.reduce<Array<Exclude<SxProps<Theme>, readonly unknown[]>>>((acc, style) => {\n if (!style) {\n return acc;\n }\n\n return [...acc, ...(isArray(style) ? style : [style])];\n }, []) as SxProps<Theme>;\n\nconst treeGridContainerSx = {\n border: 0,\n borderRadius: 0,\n overflow: 'visible',\n} as const;\n\ninterface StyledTableProps extends TableProps {\n canBodyFullHeight?: boolean;\n canUseTreeGridStyle?: boolean;\n containerProps?: TableContainerProps;\n footerSlot?: ReactNode;\n tableTheme?: OwpResolvedTableThemeConfigType;\n tableLayout?: 'auto' | 'fixed';\n treeGridTheme?: OwpResolvedGridThemeConfigType;\n title?: string;\n children: ReactNode;\n}\n\ntype StyledTableInnerProps = Pick<\n StyledTableProps,\n 'canBodyFullHeight' | 'canUseTreeGridStyle' | 'tableTheme' | 'treeGridTheme'\n>;\n\n/**\n * 총 row 수 표시 영역\n * @param totalCount 전체 row 수\n */\nexport function OwpTableTotalCount({ totalCount }: { totalCount?: number }) {\n return (\n <>\n <Divider />\n <Typography className=\"w-full py-8 pr-12\" align=\"right\">\n 전체: {isNumber(totalCount) ? totalCount.toLocaleString() : 0} 건\n </Typography>\n </>\n );\n}\n\n/**\n * StyledTable 스타일 컴포넌트\n * @param canBodyFullHeight body full height 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param children 하위 콘텐츠\n * @param containerProps containerProps props\n * @param footerSlot footer 영역\n * @param tableLayout tableLayout 값\n */\nexport const StyledTable = ({\n canBodyFullHeight,\n canUseTreeGridStyle,\n children,\n className,\n containerProps,\n footerSlot,\n tableTheme: tableThemeProp,\n tableLayout,\n ...tableProps\n}: StyledTableProps) => {\n const currentSettings = useGetCurrentSettings();\n const treeGridTheme = useMemo(\n () => resolveOwpGridTheme(currentSettings?.theme?.main?.grid),\n [currentSettings],\n );\n const tableTheme = useMemo(\n () =>\n tableThemeProp ??\n resolveOwpTableTheme(currentSettings?.theme?.main?.table, defaultStyledTableTheme),\n [currentSettings, tableThemeProp],\n );\n\n return (\n <>\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n component={Paper}\n variant=\"outlined\"\n {...containerProps}\n sx={mergeSx(\n canUseTreeGridStyle && treeGridContainerSx,\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n canBodyFullHeight && { height: '100%' },\n containerProps?.sx,\n )}\n >\n <StyledTableInner\n {...tableProps}\n canBodyFullHeight={canBodyFullHeight}\n canUseTreeGridStyle={canUseTreeGridStyle}\n tableTheme={tableTheme}\n treeGridTheme={treeGridTheme}\n className={clsx(\n canBodyFullHeight && 'h-full',\n tableLayout === 'fixed' ? 'table-fixed' : tableLayout === 'auto' ? 'table-auto' : '',\n className,\n )}\n >\n {children}\n </StyledTableInner>\n {footerSlot}\n </TableContainer>\n </>\n );\n};\n\nconst StyledTableInner = styled(Table, {\n shouldForwardProp: (prop) =>\n prop !== 'canBodyFullHeight' &&\n prop !== 'canUseTreeGridStyle' &&\n prop !== 'tableTheme' &&\n prop !== 'treeGridTheme',\n})<StyledTableInnerProps>(\n ({ theme, canBodyFullHeight, canUseTreeGridStyle, tableTheme, treeGridTheme }) => {\n const resolvedTreeGridTheme = treeGridTheme ?? resolveOwpGridTheme();\n const resolvedTableTheme = tableTheme ?? defaultStyledTableTheme;\n\n return {\n ...(canBodyFullHeight && {\n height: '100%',\n }),\n ...(canBodyFullHeight && {\n '& .MuiTableBody-root': {\n height: '100%',\n },\n '& .MuiTableBody-root > .MuiTableRow-root': {\n height: '100%',\n },\n }),\n '& .MuiTableCell-root': canUseTreeGridStyle\n ? {\n ...getTreeGridCellBaseSx(resolvedTreeGridTheme),\n }\n : undefined,\n ...(!canUseTreeGridStyle && {\n '& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root': {\n borderLeft: `1px solid ${theme.palette.divider}`,\n },\n }),\n '& th': canUseTreeGridStyle\n ? {\n ...getTreeGridHeaderCellSx(resolvedTreeGridTheme),\n '&:first-of-type': {\n borderLeft: `1px solid ${TREEGRID_TABLE_HEADER_BORDER_COLOR}`,\n },\n }\n : {\n ...getDefaultTableHeaderCellSx(resolvedTableTheme, theme.palette.grey[200]),\n },\n '& td': canUseTreeGridStyle\n ? {\n ...getTreeGridBodyCellSx(resolvedTreeGridTheme),\n '&:first-of-type': {\n borderLeft: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n },\n }\n : {\n ...getDefaultTableCellSx(resolvedTableTheme),\n },\n ...(canUseTreeGridStyle && {\n '& tbody > .MuiTableRow-root': getTreeGridBodyRowSx(resolvedTreeGridTheme),\n }),\n ...(canUseTreeGridStyle && {\n '& tbody > tr:first-of-type > th:first-of-type': {\n borderTopLeftRadius: 'inherit',\n },\n '& tbody > tr:first-of-type > td:last-of-type': {\n borderTopRightRadius: 'inherit',\n },\n }),\n };\n },\n);\n\nexport const StyledTableRow = styled(TableRow)`\n /* &:last-child th,\n &:last-child td {\n border-bottom: 0;\n } */\n`;\n\ninterface OwpTableProps<T> extends Omit<StyledTableProps, 'children'> {\n canTotalCountRow?: boolean;\n headers: OwpTableHeaderRow | OwpTableHeaderRow[];\n rows: T[];\n totalCount?: number;\n}\n\n/**\n * OwpTable 컴포넌트\n * @param canTotalCountRow 전체 row 수 표시 여부\n * @param headers headers 값\n * @param rows 행 데이터 목록\n * @param totalCount 전체 row 수\n */\nexport function OwpTable<T>({\n canTotalCountRow = false,\n headers,\n rows,\n totalCount,\n ...restTableProps\n}: OwpTableProps<T>) {\n const currentSettings = useGetCurrentSettings();\n const tableTheme = useMemo(\n () =>\n restTableProps.tableTheme ??\n resolveOwpTableTheme(currentSettings?.theme?.main?.table, defaultStyledTableTheme),\n [currentSettings, restTableProps.tableTheme],\n );\n const resolvedHeaderRows = useMemo(\n () => (isArray(headers) ? headers : isEmpty(headers) ? [] : [headers]),\n [headers],\n );\n const commonKeyListData = useMemo(\n () => getTableColumnKeys(isArray(headers) ? headers[0] : headers),\n [headers],\n );\n const tableBackgroundColor = currentSettings?.theme?.main?.table?.row?.backgroundColor;\n\n return (\n <StyledTable\n {...restTableProps}\n containerProps={{\n ...restTableProps.containerProps,\n sx: mergeSx(\n !restTableProps.canUseTreeGridStyle &&\n tableBackgroundColor && { backgroundColor: tableBackgroundColor },\n restTableProps.containerProps?.sx,\n ),\n }}\n footerSlot={\n canTotalCountRow ? (\n <OwpTableTotalCount totalCount={typeof totalCount === 'undefined' ? rows.length : totalCount} />\n ) : undefined\n }\n className={clsx(restTableProps.tableLayout && 'w-full', restTableProps.className)}\n tableTheme={tableTheme}\n >\n <TableHead>\n {resolvedHeaderRows.map((headerData, index) => (\n <StyledTableRow key={`table-header-${index}`}>\n {getTableColumnKeys(headerData).map((keyName) => (\n <TableCell\n key={`table-header-${index}-${keyName}`}\n className=\"whitespace-pre-wrap\"\n sx={mergeSx(\n !restTableProps.canUseTreeGridStyle && getDefaultTableHeaderCellSx(tableTheme),\n getTableCellSx(headerData, keyName),\n )}\n colSpan={getTableCellSpan(headerData, keyName, 'ColSpan')}\n rowSpan={getTableCellSpan(headerData, keyName, 'RowSpan')}\n align=\"center\"\n >\n {headerData[keyName]}\n </TableCell>\n ))}\n </StyledTableRow>\n ))}\n </TableHead>\n <TableBody>\n {rows.map((row, index) => {\n const currentRow = row as OwpTableRowData;\n\n return (\n <StyledTableRow key={`table-row-${index}`}>\n {commonKeyListData.map((keyName) => (\n <TableCell\n key={`table-row-cell-${index}-${keyName}`}\n className=\"whitespace-pre-wrap h-64\"\n sx={getTableCellSx(currentRow, keyName)}\n align=\"center\"\n >\n {currentRow[keyName] as ReactNode}\n </TableCell>\n ))}\n </StyledTableRow>\n );\n })}\n </TableBody>\n </StyledTable>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","mergeSx","styles","acc","style","isArray","treeGridContainerSx","OwpTableTotalCount","totalCount","jsxs","Fragment","jsx","Divider","Typography","isNumber","StyledTable","canBodyFullHeight","canUseTreeGridStyle","children","className","containerProps","footerSlot","tableThemeProp","tableLayout","tableProps","currentSettings","useGetCurrentSettings","treeGridTheme","useMemo","resolveOwpGridTheme","_b","_a","tableTheme","resolveOwpTableTheme","defaultStyledTableTheme","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","Paper","getTreeGridContainerSx","StyledTableInner","clsx","styled","Table","prop","theme","resolvedTreeGridTheme","resolvedTableTheme","getTreeGridCellBaseSx","getTreeGridHeaderCellSx","TREEGRID_TABLE_HEADER_BORDER_COLOR","getDefaultTableHeaderCellSx","getTreeGridBodyCellSx","TREEGRID_TABLE_BODY_BORDER_COLOR","getDefaultTableCellSx","getTreeGridBodyRowSx","StyledTableRow","TableRow","OwpTable","canTotalCountRow","headers","rows","restTableProps","resolvedHeaderRows","isEmpty","commonKeyListData","tableBackgroundColor","_d","_c","_e","TableHead","headerData","index","TableCell","TableBody","currentRow"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- var t = Object.defineProperty;
2
- var e = (o, r) => t(o, "name", { value: r, configurable: !0 });
3
- import { grey as l } from "@mui/material/colors";
4
- const n = "7px 10px", d = {
1
+ var l = Object.defineProperty;
2
+ var e = (o, r) => l(o, "name", { value: r, configurable: !0 });
3
+ import { grey as n } from "@mui/material/colors";
4
+ const a = "7px 10px", d = {
5
5
  header: {
6
6
  backgroundColor: "",
7
7
  color: "inherit",
@@ -9,24 +9,30 @@ const n = "7px 10px", d = {
9
9
  fontWeight: 600
10
10
  },
11
11
  cell: {
12
+ backgroundColor: "",
12
13
  fontSize: "1.7rem"
13
14
  }
14
- }, i = /* @__PURE__ */ e((o) => ({
15
- fontSize: o.cell.fontSize,
16
- padding: n,
15
+ }, t = /* @__PURE__ */ e(() => ({
16
+ padding: a,
17
17
  borderLeft: "none",
18
18
  borderRight: "none"
19
- }), "getDefaultTableCellSx"), f = /* @__PURE__ */ e((o, r = l[200]) => ({
20
- ...i(o),
19
+ }), "getDefaultTableCellBaseSx"), f = /* @__PURE__ */ e((o) => ({
20
+ ...t(),
21
+ ...o.cell.backgroundColor && {
22
+ backgroundColor: o.cell.backgroundColor
23
+ },
24
+ fontSize: o.cell.fontSize
25
+ }), "getDefaultTableCellSx"), g = /* @__PURE__ */ e((o, r = n[200]) => ({
26
+ ...t(),
21
27
  backgroundColor: o.header.backgroundColor || r,
22
28
  color: o.header.color,
23
29
  fontSize: o.header.fontSize,
24
30
  fontWeight: o.header.fontWeight
25
- }), "getDefaultTableHeaderCellSx"), S = /* @__PURE__ */ e((o) => ({
31
+ }), "getDefaultTableHeaderCellSx"), u = /* @__PURE__ */ e((o) => ({
26
32
  color: o.header.color,
27
33
  fontSize: o.header.fontSize,
28
34
  fontWeight: o.header.fontWeight
29
- }), "getDefaultTableHeaderLabelSx"), g = {
35
+ }), "getDefaultTableHeaderLabelSx"), S = {
30
36
  "&.MuiTableSortLabel-root": {
31
37
  color: "inherit"
32
38
  },
@@ -42,9 +48,9 @@ const n = "7px 10px", d = {
42
48
  };
43
49
  export {
44
50
  d as defaultStyledTableTheme,
45
- g as defaultTableSortLabelSx,
46
- i as getDefaultTableCellSx,
47
- f as getDefaultTableHeaderCellSx,
48
- S as getDefaultTableHeaderLabelSx
51
+ S as defaultTableSortLabelSx,
52
+ f as getDefaultTableCellSx,
53
+ g as getDefaultTableHeaderCellSx,
54
+ u as getDefaultTableHeaderLabelSx
49
55
  };
50
56
  //# sourceMappingURL=defaultTableStyle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultTableStyle.js","sources":["../../../../src/components/OwpTable/internal/defaultTableStyle.ts"],"sourcesContent":["import type { OwpResolvedTableThemeConfigType } from '@/constants/tableTheme';\nimport { grey } from '@mui/material/colors';\n\nconst DEFAULT_TABLE_CELL_PADDING = '7px 10px';\n\nexport const defaultStyledTableTheme = {\n header: {\n backgroundColor: '',\n color: 'inherit',\n fontSize: '1.7rem',\n fontWeight: 600,\n },\n cell: {\n fontSize: '1.7rem',\n },\n} satisfies OwpResolvedTableThemeConfigType;\n\n/** 기본 table cell sx */\nexport const getDefaultTableCellSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n fontSize: tableTheme.cell.fontSize,\n padding: DEFAULT_TABLE_CELL_PADDING,\n borderLeft: 'none',\n borderRight: 'none',\n }) as const;\n\n/** 기본 table header cell sx */\nexport const getDefaultTableHeaderCellSx = (\n tableTheme: OwpResolvedTableThemeConfigType,\n fallbackBackgroundColor: string = grey[200],\n) =>\n ({\n ...getDefaultTableCellSx(tableTheme),\n backgroundColor: tableTheme.header.backgroundColor || fallbackBackgroundColor,\n color: tableTheme.header.color,\n fontSize: tableTheme.header.fontSize,\n fontWeight: tableTheme.header.fontWeight,\n }) as const;\n\n/** 기본 table header label sx */\nexport const getDefaultTableHeaderLabelSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n color: tableTheme.header.color,\n fontSize: tableTheme.header.fontSize,\n fontWeight: tableTheme.header.fontWeight,\n }) as const;\n\nexport const defaultTableSortLabelSx = {\n '&.MuiTableSortLabel-root': {\n color: 'inherit',\n },\n '&.MuiTableSortLabel-root:hover': {\n color: 'inherit',\n },\n '&.Mui-active': {\n color: 'inherit',\n },\n '& .MuiTableSortLabel-icon': {\n color: 'currentColor !important',\n },\n} as const;\n"],"names":["DEFAULT_TABLE_CELL_PADDING","defaultStyledTableTheme","getDefaultTableCellSx","__name","tableTheme","getDefaultTableHeaderCellSx","fallbackBackgroundColor","grey","getDefaultTableHeaderLabelSx","defaultTableSortLabelSx"],"mappings":";;;AAGA,MAAMA,IAA6B,YAEtBC,IAA0B;AAAA,EACrC,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,EAAA;AAAA,EAEd,MAAM;AAAA,IACJ,UAAU;AAAA,EAAA;AAEd,GAGaC,IAAwB,gBAAAC,EAAA,CAACC,OACnC;AAAA,EACC,UAAUA,EAAW,KAAK;AAAA,EAC1B,SAASJ;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AACf,IANmC,0BASxBK,IAA8B,gBAAAF,EAAA,CACzCC,GACAE,IAAkCC,EAAK,GAAG,OAEzC;AAAA,EACC,GAAGL,EAAsBE,CAAU;AAAA,EACnC,iBAAiBA,EAAW,OAAO,mBAAmBE;AAAA,EACtD,OAAOF,EAAW,OAAO;AAAA,EACzB,UAAUA,EAAW,OAAO;AAAA,EAC5B,YAAYA,EAAW,OAAO;AAChC,IAVyC,gCAa9BI,IAA+B,gBAAAL,EAAA,CAACC,OAC1C;AAAA,EACC,OAAOA,EAAW,OAAO;AAAA,EACzB,UAAUA,EAAW,OAAO;AAAA,EAC5B,YAAYA,EAAW,OAAO;AAChC,IAL0C,iCAO/BK,IAA0B;AAAA,EACrC,4BAA4B;AAAA,IAC1B,OAAO;AAAA,EAAA;AAAA,EAET,kCAAkC;AAAA,IAChC,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,OAAO;AAAA,EAAA;AAAA,EAET,6BAA6B;AAAA,IAC3B,OAAO;AAAA,EAAA;AAEX;"}
1
+ {"version":3,"file":"defaultTableStyle.js","sources":["../../../../src/components/OwpTable/internal/defaultTableStyle.ts"],"sourcesContent":["import type { OwpResolvedTableThemeConfigType } from '@/constants/tableTheme';\nimport { grey } from '@mui/material/colors';\n\nconst DEFAULT_TABLE_CELL_PADDING = '7px 10px';\n\nexport const defaultStyledTableTheme = {\n header: {\n backgroundColor: '',\n color: 'inherit',\n fontSize: '1.7rem',\n fontWeight: 600,\n },\n cell: {\n backgroundColor: '',\n fontSize: '1.7rem',\n },\n} satisfies OwpResolvedTableThemeConfigType;\n\nconst getDefaultTableCellBaseSx = () =>\n ({\n padding: DEFAULT_TABLE_CELL_PADDING,\n borderLeft: 'none',\n borderRight: 'none',\n }) as const;\n\n/** 기본 table cell sx */\nexport const getDefaultTableCellSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n ...getDefaultTableCellBaseSx(),\n ...(tableTheme.cell.backgroundColor && {\n backgroundColor: tableTheme.cell.backgroundColor,\n }),\n fontSize: tableTheme.cell.fontSize,\n }) as const;\n\n/** 기본 table header cell sx */\nexport const getDefaultTableHeaderCellSx = (\n tableTheme: OwpResolvedTableThemeConfigType,\n fallbackBackgroundColor: string = grey[200],\n) =>\n ({\n ...getDefaultTableCellBaseSx(),\n backgroundColor: tableTheme.header.backgroundColor || fallbackBackgroundColor,\n color: tableTheme.header.color,\n fontSize: tableTheme.header.fontSize,\n fontWeight: tableTheme.header.fontWeight,\n }) as const;\n\n/** 기본 table header label sx */\nexport const getDefaultTableHeaderLabelSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n color: tableTheme.header.color,\n fontSize: tableTheme.header.fontSize,\n fontWeight: tableTheme.header.fontWeight,\n }) as const;\n\nexport const defaultTableSortLabelSx = {\n '&.MuiTableSortLabel-root': {\n color: 'inherit',\n },\n '&.MuiTableSortLabel-root:hover': {\n color: 'inherit',\n },\n '&.Mui-active': {\n color: 'inherit',\n },\n '& .MuiTableSortLabel-icon': {\n color: 'currentColor !important',\n },\n} as const;\n"],"names":["DEFAULT_TABLE_CELL_PADDING","defaultStyledTableTheme","getDefaultTableCellBaseSx","__name","getDefaultTableCellSx","tableTheme","getDefaultTableHeaderCellSx","fallbackBackgroundColor","grey","getDefaultTableHeaderLabelSx","defaultTableSortLabelSx"],"mappings":";;;AAGA,MAAMA,IAA6B,YAEtBC,IAA0B;AAAA,EACrC,QAAQ;AAAA,IACN,iBAAiB;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,EAAA;AAAA,EAEd,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,UAAU;AAAA,EAAA;AAEd,GAEMC,IAA4B,gBAAAC,EAAA,OAC/B;AAAA,EACC,SAASH;AAAA,EACT,YAAY;AAAA,EACZ,aAAa;AACf,IALgC,8BAQrBI,IAAwB,gBAAAD,EAAA,CAACE,OACnC;AAAA,EACC,GAAGH,EAAA;AAAA,EACH,GAAIG,EAAW,KAAK,mBAAmB;AAAA,IACrC,iBAAiBA,EAAW,KAAK;AAAA,EAAA;AAAA,EAEnC,UAAUA,EAAW,KAAK;AAC5B,IAPmC,0BAUxBC,IAA8B,gBAAAH,EAAA,CACzCE,GACAE,IAAkCC,EAAK,GAAG,OAEzC;AAAA,EACC,GAAGN,EAAA;AAAA,EACH,iBAAiBG,EAAW,OAAO,mBAAmBE;AAAA,EACtD,OAAOF,EAAW,OAAO;AAAA,EACzB,UAAUA,EAAW,OAAO;AAAA,EAC5B,YAAYA,EAAW,OAAO;AAChC,IAVyC,gCAa9BI,IAA+B,gBAAAN,EAAA,CAACE,OAC1C;AAAA,EACC,OAAOA,EAAW,OAAO;AAAA,EACzB,UAAUA,EAAW,OAAO;AAAA,EAC5B,YAAYA,EAAW,OAAO;AAChC,IAL0C,iCAO/BK,IAA0B;AAAA,EACrC,4BAA4B;AAAA,IAC1B,OAAO;AAAA,EAAA;AAAA,EAET,kCAAkC;AAAA,IAChC,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,OAAO;AAAA,EAAA;AAAA,EAET,6BAA6B;AAAA,IAC3B,OAAO;AAAA,EAAA;AAEX;"}