@owp/core 2.5.8 → 2.5.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index10.js +2 -2
- package/dist/_virtual/index12.js +2 -2
- package/dist/_virtual/index13.js +2 -2
- package/dist/_virtual/index14.js +2 -2
- package/dist/_virtual/index15.js +2 -2
- package/dist/_virtual/index16.js +4 -4
- package/dist/_virtual/index17.js +4 -4
- package/dist/_virtual/index18.js +4 -4
- package/dist/_virtual/index19.js +4 -4
- package/dist/_virtual/index20.js +2 -2
- package/dist/_virtual/index21.js +2 -2
- package/dist/_virtual/index22.js +2 -2
- package/dist/_virtual/index5.js +2 -2
- package/dist/components/OwpDialog/OwpDialog.js +67 -46
- package/dist/components/OwpDialog/OwpDialog.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +162 -153
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
- package/dist/components/OwpTable/OwpDataTable.js +297 -283
- package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
- package/dist/components/OwpTable/OwpFieldTable.js +98 -86
- package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
- package/dist/components/OwpTable/OwpTable.js +145 -127
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTable/internal/defaultTableStyle.js +21 -15
- package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
- package/dist/constants/tableTheme.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewCanvas.js +300 -263
- package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +148 -141
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewColorField.js +169 -138
- package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewControls.js +370 -212
- package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -1
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js +145 -125
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -1
- package/dist/features/themePreview/configs/table.js +4 -2
- package/dist/features/themePreview/configs/table.js.map +1 -1
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +124 -118
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
- package/dist/features/themePreview/hooks/useThemePreview.js +257 -190
- package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
- package/dist/features/themePreview/utils/themePreviewDefinitions.js +8 -0
- package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
- package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
- package/dist/layout/components/toolbar/ToolbarLayout.js +36 -35
- package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
- 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
- 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
- package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/match/index.js +1 -1
- package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/parse/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
- package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
- package/dist/owp-app.css +1 -1
- package/dist/types/components/OwpDialog/OwpDialog.d.ts +2 -0
- package/dist/types/components/OwpTable/OwpFieldTable.d.ts +3 -2
- package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +2 -0
- package/dist/types/constants/tableTheme.d.ts +1 -0
- package/dist/types/features/themePreview/components/ThemePreviewColorField.d.ts +3 -1
- package/dist/types/features/themePreview/components/ThemePreviewControls.d.ts +4 -1
- package/dist/types/features/themePreview/configs/settings.d.ts +2 -0
- package/dist/types/features/themePreview/configs/table.d.ts +2 -0
- package/dist/types/features/themePreview/hooks/useThemePreview.d.ts +3 -0
- package/dist/types/types/OwpTableThemeTypes.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
import { jsxs as u, jsx as
|
|
4
|
-
import { resolveOwpGridTheme as
|
|
5
|
-
import { resolveOwpTableTheme as
|
|
6
|
-
import { getTreeGridFontFaceStyles as
|
|
7
|
-
import { useGetCurrentSettings as
|
|
8
|
-
import { Typography as
|
|
9
|
-
import { clsx as
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import { useMemo as
|
|
19
|
-
import { getTreeGridContainerSx as
|
|
20
|
-
import { getDefaultTableHeaderCellSx as
|
|
21
|
-
import { isNumber as
|
|
22
|
-
import { isArray as
|
|
23
|
-
import { isEmpty as
|
|
24
|
-
const
|
|
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
|
|
30
|
-
return /* @__PURE__ */ u(
|
|
31
|
-
/* @__PURE__ */
|
|
32
|
-
/* @__PURE__ */ u(
|
|
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
|
-
|
|
34
|
+
re(o) ? o.toLocaleString() : 0,
|
|
35
35
|
" 건"
|
|
36
36
|
] })
|
|
37
37
|
] });
|
|
38
38
|
}
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
canBodyFullHeight:
|
|
39
|
+
n(me, "OwpTableTotalCount");
|
|
40
|
+
const ae = /* @__PURE__ */ n(({
|
|
41
|
+
canBodyFullHeight: o,
|
|
42
42
|
canUseTreeGridStyle: e,
|
|
43
|
-
children:
|
|
44
|
-
className:
|
|
45
|
-
containerProps:
|
|
46
|
-
footerSlot:
|
|
47
|
-
tableTheme:
|
|
48
|
-
tableLayout:
|
|
49
|
-
...
|
|
43
|
+
children: t,
|
|
44
|
+
className: s,
|
|
45
|
+
containerProps: r,
|
|
46
|
+
footerSlot: l,
|
|
47
|
+
tableTheme: d,
|
|
48
|
+
tableLayout: x,
|
|
49
|
+
...g
|
|
50
50
|
}) => {
|
|
51
|
-
const
|
|
51
|
+
const i = D(), T = h(
|
|
52
52
|
() => {
|
|
53
|
-
var
|
|
54
|
-
return
|
|
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
|
-
[
|
|
57
|
-
),
|
|
56
|
+
[i]
|
|
57
|
+
), R = h(
|
|
58
58
|
() => {
|
|
59
|
-
var
|
|
60
|
-
return
|
|
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
|
-
[
|
|
62
|
+
[i, d]
|
|
63
63
|
);
|
|
64
|
-
return /* @__PURE__ */ u(
|
|
65
|
-
e && /* @__PURE__ */
|
|
64
|
+
return /* @__PURE__ */ u(L, { children: [
|
|
65
|
+
e && /* @__PURE__ */ a(Y, { styles: F() }),
|
|
66
66
|
/* @__PURE__ */ u(
|
|
67
|
-
|
|
67
|
+
Q,
|
|
68
68
|
{
|
|
69
|
-
component:
|
|
69
|
+
component: q,
|
|
70
70
|
variant: "outlined",
|
|
71
|
-
...
|
|
72
|
-
sx:
|
|
73
|
-
e &&
|
|
74
|
-
e &&
|
|
75
|
-
|
|
76
|
-
|
|
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__ */
|
|
80
|
-
|
|
79
|
+
/* @__PURE__ */ a(
|
|
80
|
+
ne,
|
|
81
81
|
{
|
|
82
|
-
...
|
|
83
|
-
canBodyFullHeight:
|
|
82
|
+
...g,
|
|
83
|
+
canBodyFullHeight: o,
|
|
84
84
|
canUseTreeGridStyle: e,
|
|
85
|
-
tableTheme:
|
|
86
|
-
treeGridTheme:
|
|
87
|
-
className:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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:
|
|
92
|
+
children: t
|
|
93
93
|
}
|
|
94
94
|
),
|
|
95
|
-
|
|
95
|
+
l
|
|
96
96
|
]
|
|
97
97
|
}
|
|
98
98
|
)
|
|
99
99
|
] });
|
|
100
|
-
}, "StyledTable"),
|
|
101
|
-
shouldForwardProp: /* @__PURE__ */
|
|
100
|
+
}, "StyledTable"), ne = A(z, {
|
|
101
|
+
shouldForwardProp: /* @__PURE__ */ n((o) => o !== "canBodyFullHeight" && o !== "canUseTreeGridStyle" && o !== "tableTheme" && o !== "treeGridTheme", "shouldForwardProp")
|
|
102
102
|
})(
|
|
103
|
-
({ theme:
|
|
104
|
-
const
|
|
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":
|
|
118
|
-
...
|
|
119
|
-
} :
|
|
120
|
-
|
|
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 ${
|
|
122
|
+
borderLeft: `1px solid ${o.palette.divider}`
|
|
125
123
|
}
|
|
126
124
|
},
|
|
127
|
-
"& th":
|
|
128
|
-
...
|
|
125
|
+
"& th": t ? {
|
|
126
|
+
...ee(l),
|
|
129
127
|
"&:first-of-type": {
|
|
130
|
-
borderLeft: `1px solid ${
|
|
128
|
+
borderLeft: `1px solid ${P}`
|
|
131
129
|
}
|
|
132
130
|
} : {
|
|
133
|
-
...
|
|
131
|
+
...H(d, o.palette.grey[200])
|
|
134
132
|
},
|
|
135
|
-
"& td":
|
|
136
|
-
...
|
|
133
|
+
"& td": t ? {
|
|
134
|
+
...U(l),
|
|
137
135
|
"&:first-of-type": {
|
|
138
|
-
borderLeft: `1px solid ${
|
|
136
|
+
borderLeft: `1px solid ${k}`
|
|
139
137
|
}
|
|
140
|
-
} : {
|
|
141
|
-
|
|
142
|
-
|
|
138
|
+
} : {
|
|
139
|
+
...te(d)
|
|
140
|
+
},
|
|
141
|
+
...t && {
|
|
142
|
+
"& tbody > .MuiTableRow-root": Z(l)
|
|
143
143
|
},
|
|
144
|
-
...
|
|
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
|
-
),
|
|
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
|
|
161
|
-
canTotalCountRow:
|
|
160
|
+
function Le({
|
|
161
|
+
canTotalCountRow: o = !1,
|
|
162
162
|
headers: e,
|
|
163
|
-
rows:
|
|
164
|
-
totalCount:
|
|
165
|
-
...
|
|
163
|
+
rows: t,
|
|
164
|
+
totalCount: s,
|
|
165
|
+
...r
|
|
166
166
|
}) {
|
|
167
|
-
|
|
168
|
-
|
|
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
|
-
),
|
|
171
|
-
() =>
|
|
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
|
-
|
|
182
|
+
ae,
|
|
176
183
|
{
|
|
177
|
-
...
|
|
178
|
-
|
|
179
|
-
|
|
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__ */
|
|
182
|
-
|
|
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:
|
|
186
|
-
|
|
187
|
-
|
|
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:
|
|
207
|
+
children: m[c]
|
|
190
208
|
},
|
|
191
|
-
`table-header-${
|
|
192
|
-
)) }, `table-header-${
|
|
193
|
-
/* @__PURE__ */
|
|
194
|
-
const
|
|
195
|
-
return /* @__PURE__ */
|
|
196
|
-
|
|
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:
|
|
217
|
+
sx: E(c, w),
|
|
200
218
|
align: "center",
|
|
201
|
-
children:
|
|
219
|
+
children: c[w]
|
|
202
220
|
},
|
|
203
|
-
`table-row-cell-${
|
|
204
|
-
)) }, `table-row-${
|
|
221
|
+
`table-row-cell-${p}-${w}`
|
|
222
|
+
)) }, `table-row-${p}`);
|
|
205
223
|
}) })
|
|
206
224
|
]
|
|
207
225
|
}
|
|
208
226
|
);
|
|
209
227
|
}
|
|
210
|
-
|
|
228
|
+
n(Le, "OwpTable");
|
|
211
229
|
export {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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
|
|
2
|
-
var e = (o, r) =>
|
|
3
|
-
import { grey as
|
|
4
|
-
const
|
|
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
|
-
},
|
|
15
|
-
|
|
16
|
-
padding: n,
|
|
15
|
+
}, t = /* @__PURE__ */ e(() => ({
|
|
16
|
+
padding: a,
|
|
17
17
|
borderLeft: "none",
|
|
18
18
|
borderRight: "none"
|
|
19
|
-
}), "
|
|
20
|
-
...
|
|
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"),
|
|
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"),
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
|
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;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableTheme.js","sources":["../../src/constants/tableTheme.ts"],"sourcesContent":["import type { OwpTableVariantThemeConfigType } from '@/types/OwpTableThemeTypes';\n\nexport type OwpResolvedTableThemeConfigType = {\n header: {\n backgroundColor: string;\n color: string;\n fontSize: number | string;\n fontWeight: number | string;\n };\n cell: {\n fontSize: number | string;\n };\n};\n\n/**\n * Table theme 토큰 기본값 병합\n * @param tableTheme 앱 theme table 설정\n * @param fallbackTheme 컴포넌트 기본값\n */\nexport const resolveOwpTableTheme = (\n tableTheme: OwpTableVariantThemeConfigType | null | undefined,\n fallbackTheme: OwpResolvedTableThemeConfigType,\n): OwpResolvedTableThemeConfigType => {\n return {\n header: {\n ...fallbackTheme.header,\n ...(tableTheme?.header ?? {}),\n },\n cell: {\n ...fallbackTheme.cell,\n ...(tableTheme?.cell ?? {}),\n },\n };\n};\n"],"names":["resolveOwpTableTheme","__name","tableTheme","fallbackTheme"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"tableTheme.js","sources":["../../src/constants/tableTheme.ts"],"sourcesContent":["import type { OwpTableVariantThemeConfigType } from '@/types/OwpTableThemeTypes';\n\nexport type OwpResolvedTableThemeConfigType = {\n header: {\n backgroundColor: string;\n color: string;\n fontSize: number | string;\n fontWeight: number | string;\n };\n cell: {\n backgroundColor?: string;\n fontSize: number | string;\n };\n};\n\n/**\n * Table theme 토큰 기본값 병합\n * @param tableTheme 앱 theme table 설정\n * @param fallbackTheme 컴포넌트 기본값\n */\nexport const resolveOwpTableTheme = (\n tableTheme: OwpTableVariantThemeConfigType | null | undefined,\n fallbackTheme: OwpResolvedTableThemeConfigType,\n): OwpResolvedTableThemeConfigType => {\n return {\n header: {\n ...fallbackTheme.header,\n ...(tableTheme?.header ?? {}),\n },\n cell: {\n ...fallbackTheme.cell,\n ...(tableTheme?.cell ?? {}),\n },\n };\n};\n"],"names":["resolveOwpTableTheme","__name","tableTheme","fallbackTheme"],"mappings":";;AAoBO,MAAMA,IAAuB,gBAAAC,EAAA,CAClCC,GACAC,OAEO;AAAA,EACL,QAAQ;AAAA,IACN,GAAGA,EAAc;AAAA,IACjB,IAAID,KAAA,gBAAAA,EAAY,WAAU,CAAA;AAAA,EAAC;AAAA,EAE7B,MAAM;AAAA,IACJ,GAAGC,EAAc;AAAA,IACjB,IAAID,KAAA,gBAAAA,EAAY,SAAQ,CAAA;AAAA,EAAC;AAC3B,IAZgC;"}
|