@owp/core 2.5.22 → 2.5.24
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/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/index5.js +2 -2
- package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js +15 -13
- package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js.map +1 -1
- package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js +21 -19
- package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js.map +1 -1
- package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js +1 -1
- package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js.map +1 -1
- package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js +1 -1
- package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js.map +1 -1
- package/dist/components/OwpLoading/OwpLoading.js +1 -1
- package/dist/components/OwpLoading/OwpLoading.js.map +1 -1
- package/dist/components/OwpMrtTable/OwpMrtTable.js +21 -21
- package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
- package/dist/components/OwpOptionSelector/OwpOptionSelector.js +14 -12
- package/dist/components/OwpOptionSelector/OwpOptionSelector.js.map +1 -1
- package/dist/components/OwpPageTitle/OwpPageTitle.js +1 -1
- package/dist/components/OwpPageTitle/OwpPageTitle.js.map +1 -1
- package/dist/components/OwpPicker/OwpDatePicker.js +81 -82
- package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpTimePicker.js +82 -83
- package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
- package/dist/components/OwpPicker/OwpWeekDatePicker.js +24 -25
- package/dist/components/OwpPicker/OwpWeekDatePicker.js.map +1 -1
- package/dist/components/OwpSearchFilter/OwpSearchFilter.js +1 -1
- package/dist/components/OwpSearchFilter/OwpSearchFilter.js.map +1 -1
- package/dist/components/OwpSection/OwpSection.js +1 -1
- package/dist/components/OwpSection/OwpSection.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +155 -157
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +95 -81
- package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
- package/dist/components/OwpSuspense/OwpSuspense.js +43 -43
- package/dist/components/OwpSuspense/OwpSuspense.js.map +1 -1
- package/dist/components/OwpTable/OwpDataTable.js +13 -12
- package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
- package/dist/components/OwpTable/OwpFieldTable.js +64 -78
- package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
- package/dist/components/OwpTable/OwpTable.js +56 -55
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTable/internal/OwpTableBase.js +20 -19
- package/dist/components/OwpTable/internal/OwpTableBase.js.map +1 -1
- package/dist/components/OwpTable/internal/defaultTableStyle.js +6 -7
- package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
- package/dist/components/OwpTable/utils/tableSx.js +16 -6
- package/dist/components/OwpTable/utils/tableSx.js.map +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +105 -104
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +55 -56
- package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +10 -10
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +253 -252
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
- package/dist/constants/table.js +5 -0
- package/dist/constants/table.js.map +1 -0
- package/dist/constants.js +25 -23
- package/dist/constants.js.map +1 -1
- package/dist/contexts/OwpUiProvider.js +5 -5
- package/dist/contexts/OwpUiProvider.js.map +1 -1
- package/dist/hooks/{useAccessTokenGuard.js → internal/useAccessTokenGuard.js} +2 -2
- package/dist/hooks/internal/useAccessTokenGuard.js.map +1 -0
- package/dist/hooks/{useCurrentLanguage.js → internal/useCurrentLanguage.js} +2 -2
- package/dist/hooks/internal/useCurrentLanguage.js.map +1 -0
- package/dist/hooks/internal/useHeaderWrapState.js.map +1 -0
- package/dist/hooks/internal/useNavbar.js +24 -0
- package/dist/hooks/internal/useNavbar.js.map +1 -0
- package/dist/hooks/{useNavigationActiveRouteRemount.js → internal/useNavigationActiveRouteRemount.js} +1 -1
- package/dist/hooks/internal/useNavigationActiveRouteRemount.js.map +1 -0
- package/dist/hooks/{useShortcuts.js → internal/useShortcuts.js} +3 -3
- package/dist/hooks/internal/useShortcuts.js.map +1 -0
- package/dist/hooks/internal/useThemeMediaQuery.js.map +1 -0
- package/dist/hooks/internal/useTimeout.js.map +1 -0
- package/dist/hooks/useInitApp.js.map +1 -1
- package/dist/hooks.js +53 -81
- package/dist/hooks.js.map +1 -1
- package/dist/layout/Layout.js +1 -1
- package/dist/layout/Layout.js.map +1 -1
- package/dist/layout/components/layouts/NavbarToggleFabLayout.js +2 -2
- package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
- package/dist/layout/components/layouts/NavbarWrapperLayout.js +2 -2
- package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
- package/dist/layout/components/navbar/NavbarToggleButton.js +2 -2
- package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
- package/dist/layout/components/navbar/style/NavbarStyle.js +1 -1
- package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
- package/dist/layout/components/navbar/style/NavbarStyleContent.js +1 -1
- package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
- package/dist/layout/components/navigation/Navigation.js +2 -2
- package/dist/layout/components/navigation/Navigation.js.map +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js.map +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js.map +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js +1 -1
- package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js.map +1 -1
- package/dist/layout/components/toggles/LanguageSwitcherToggle.js +1 -1
- package/dist/layout/components/toggles/LanguageSwitcherToggle.js.map +1 -1
- package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js +1 -1
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.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/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/OwpCommonCode/OwpCommonCodeQuerySelector.d.ts +5 -3
- package/dist/types/components/OwpCommonCode/OwpCommonCodeSelector.d.ts +5 -3
- package/dist/types/components/OwpOptionSelector/OwpOptionSelector.d.ts +4 -1
- package/dist/types/components/OwpSelectorBase/types/index.d.ts +1 -1
- package/dist/types/components/OwpSelectorBase/types/types.d.ts +3 -0
- package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +0 -1
- package/dist/types/components/OwpTable/utils/tableSx.d.ts +15 -0
- package/dist/types/constants/index.d.ts +1 -0
- package/dist/types/constants/table.d.ts +1 -0
- package/dist/types/hooks/index.d.ts +0 -10
- package/dist/types/hooks/{useNavbar.d.ts → internal/useNavbar.d.ts} +1 -1
- package/dist/types/utils/treeGridUtil.d.ts +0 -14
- package/dist/utils/{exceljsBrowser.js → internal/exceljsBrowser.js} +1 -1
- package/dist/utils/internal/exceljsBrowser.js.map +1 -0
- package/dist/utils/internal/jszipBrowser.js.map +1 -0
- package/dist/utils/internal/treeGridBodyRowsEvent.js.map +1 -0
- package/dist/utils/treeGridExportExcelUtil.js +1 -1
- package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
- package/dist/utils/treeGridUtil.js +1 -6
- package/dist/utils/treeGridUtil.js.map +1 -1
- package/dist/utils/zipUtil.js +1 -1
- package/dist/utils/zipUtil.js.map +1 -1
- package/dist/utils.js +70 -75
- package/package.json +1 -1
- package/dist/hooks/useAccessTokenGuard.js.map +0 -1
- package/dist/hooks/useCurrentLanguage.js.map +0 -1
- package/dist/hooks/useDebounce.js +0 -24
- package/dist/hooks/useDebounce.js.map +0 -1
- package/dist/hooks/useDeepCompareEffect.js +0 -38
- package/dist/hooks/useDeepCompareEffect.js.map +0 -1
- package/dist/hooks/useHeaderWrapState.js.map +0 -1
- package/dist/hooks/useNavbar.js +0 -24
- package/dist/hooks/useNavbar.js.map +0 -1
- package/dist/hooks/useNavigationActiveRouteRemount.js.map +0 -1
- package/dist/hooks/usePrevious.js +0 -14
- package/dist/hooks/usePrevious.js.map +0 -1
- package/dist/hooks/useShortcuts.js.map +0 -1
- package/dist/hooks/useThemeMediaQuery.js.map +0 -1
- package/dist/hooks/useTimeout.js.map +0 -1
- package/dist/types/hooks/useDebounce.d.ts +0 -7
- package/dist/types/hooks/useDeepCompareEffect.d.ts +0 -22
- package/dist/types/hooks/usePrevious.d.ts +0 -5
- package/dist/types/utils/dayjsBrowser.d.ts +0 -1
- package/dist/utils/exceljsBrowser.js.map +0 -1
- package/dist/utils/jszipBrowser.js.map +0 -1
- package/dist/utils/treeGridBodyRowsEvent.js.map +0 -1
- /package/dist/hooks/{useHeaderWrapState.js → internal/useHeaderWrapState.js} +0 -0
- /package/dist/hooks/{useThemeMediaQuery.js → internal/useThemeMediaQuery.js} +0 -0
- /package/dist/hooks/{useTimeout.js → internal/useTimeout.js} +0 -0
- /package/dist/types/hooks/{useAccessTokenGuard.d.ts → internal/useAccessTokenGuard.d.ts} +0 -0
- /package/dist/types/hooks/{useCurrentLanguage.d.ts → internal/useCurrentLanguage.d.ts} +0 -0
- /package/dist/types/hooks/{useHeaderWrapState.d.ts → internal/useHeaderWrapState.d.ts} +0 -0
- /package/dist/types/hooks/{useNavigationActiveRouteRemount.d.ts → internal/useNavigationActiveRouteRemount.d.ts} +0 -0
- /package/dist/types/hooks/{useShortcuts.d.ts → internal/useShortcuts.d.ts} +0 -0
- /package/dist/types/hooks/{useThemeMediaQuery.d.ts → internal/useThemeMediaQuery.d.ts} +0 -0
- /package/dist/types/hooks/{useTimeout.d.ts → internal/useTimeout.d.ts} +0 -0
- /package/dist/types/utils/{exceljsBrowser.d.ts → internal/exceljsBrowser.d.ts} +0 -0
- /package/dist/types/utils/{jszipBrowser.d.ts → internal/jszipBrowser.d.ts} +0 -0
- /package/dist/types/utils/{treeGridBodyRowsEvent.d.ts → internal/treeGridBodyRowsEvent.d.ts} +0 -0
- /package/dist/utils/{jszipBrowser.js → internal/jszipBrowser.js} +0 -0
- /package/dist/utils/{treeGridBodyRowsEvent.js → internal/treeGridBodyRowsEvent.js} +0 -0
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
var v = Object.defineProperty;
|
|
2
|
-
var
|
|
3
|
-
import { jsxs as
|
|
4
|
-
import { resolveOwpTableTheme as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
2
|
+
var a = (e, t) => v(e, "name", { value: t, configurable: !0 });
|
|
3
|
+
import { jsxs as b, jsx as m, Fragment as I } 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 { resolveOwpTableTheme as j } from "../../constants/tableTheme.js";
|
|
5
|
+
import { DEFAULT_TABLE_RADIUS as V } from "../../constants/table.js";
|
|
6
|
+
import { useGetCurrentSettings as W } from "../../hooks/useOwpSettings.js";
|
|
7
|
+
import { TableCell as N, Box as $, TableBody as G, Checkbox as K } from "@mui/material";
|
|
8
|
+
import { clsx as q } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
8
9
|
import { owpDayjs as P } from "../../dayjs.js";
|
|
9
|
-
import { useMemo as
|
|
10
|
-
import { FieldTableNumberValue as
|
|
11
|
-
import { OwpTableBaseRow as
|
|
12
|
-
import { getDefaultTableHeaderCellSx as
|
|
10
|
+
import { useMemo as X, Fragment as Z } from "react";
|
|
11
|
+
import { FieldTableNumberValue as J, FieldTableTextValue as Q } from "./internal/FieldTableValue.js";
|
|
12
|
+
import { OwpTableBaseRow as U, OwpTableBase as ee } from "./internal/OwpTableBase.js";
|
|
13
|
+
import { getDefaultTableHeaderCellSx as re, DEFAULT_TABLE_HEADER_BACKGROUND_COLOR as oe } from "./internal/defaultTableStyle.js";
|
|
13
14
|
import { TREEGRID_TABLE_FONT_FAMILY_STACK as te } from "./internal/treeGridTableStyle.js";
|
|
14
|
-
import {
|
|
15
|
+
import { getTableHelperTextRowSx as ne } from "./utils/tableSx.js";
|
|
16
|
+
import { isNaN as ie } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNaN.js";
|
|
15
17
|
import { toNumber as ae } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/util/toNumber.js";
|
|
16
|
-
const
|
|
18
|
+
const me = 28, k = {
|
|
17
19
|
dark: "rgba(241,245,249,.12)",
|
|
18
20
|
light: "#e2e8f0"
|
|
19
|
-
},
|
|
21
|
+
}, le = {
|
|
20
22
|
"&&": {
|
|
21
23
|
fontFamily: te,
|
|
22
24
|
fontSize: "1.7rem",
|
|
@@ -25,24 +27,15 @@ const ie = 28, le = "calc(0.75rem * 1.66 + 3px)", w = {
|
|
|
25
27
|
minHeight: "unset",
|
|
26
28
|
padding: "7px 10px"
|
|
27
29
|
}
|
|
28
|
-
},
|
|
30
|
+
}, E = {
|
|
29
31
|
borderTop: "1px solid #CDD8E4"
|
|
30
|
-
},
|
|
31
|
-
[`&:has(.MuiFormHelperText-root) .${c}::after`]: {
|
|
32
|
-
content: '""',
|
|
33
|
-
display: "block",
|
|
34
|
-
height: le
|
|
35
|
-
},
|
|
36
|
-
[`&:has(.MuiFormHelperText-root) .${c}:has(.MuiFormHelperText-root)::after`]: {
|
|
37
|
-
display: "none"
|
|
38
|
-
}
|
|
39
|
-
}, B = /* @__PURE__ */ i((e) => e ? (Array.isArray(e) ? e : [e]).filter(Boolean) : [], "normalizeTableCellSx"), L = /* @__PURE__ */ i((...e) => e.flatMap(B).map(
|
|
32
|
+
}, B = "owp-field-table-cell-content", fe = ne(B), L = /* @__PURE__ */ a((e) => e ? (Array.isArray(e) ? e : [e]).filter(Boolean) : [], "normalizeTableCellSx"), _ = /* @__PURE__ */ a((...e) => e.flatMap(L).map(
|
|
40
33
|
(t) => typeof t == "function" ? (n) => ({
|
|
41
34
|
"&&&": t(n)
|
|
42
35
|
}) : {
|
|
43
36
|
"&&&": t
|
|
44
37
|
}
|
|
45
|
-
), "getTreeGridCellOverrideSx"), se = /* @__PURE__ */
|
|
38
|
+
), "getTreeGridCellOverrideSx"), se = /* @__PURE__ */ a((e) => {
|
|
46
39
|
if (!e)
|
|
47
40
|
return;
|
|
48
41
|
const t = Array.isArray(e) ? e : [e];
|
|
@@ -62,59 +55,52 @@ const ie = 28, le = "calc(0.75rem * 1.66 + 3px)", w = {
|
|
|
62
55
|
backgroundColor: "#FFFFFF",
|
|
63
56
|
fontSize: "1.7rem"
|
|
64
57
|
}
|
|
65
|
-
}, de = /* @__PURE__ */
|
|
58
|
+
}, de = /* @__PURE__ */ a((e) => /* @__PURE__ */ b(I, { children: [
|
|
66
59
|
e,
|
|
67
|
-
/* @__PURE__ */
|
|
68
|
-
] }), "getRequiredTitle"), pe = /* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ m("span", { className: "ml-4 text-red-600", children: "*" })
|
|
61
|
+
] }), "getRequiredTitle"), pe = /* @__PURE__ */ a((e, t) => e == null ? void 0 : e[t], "getFieldTableValue"), ue = /* @__PURE__ */ a((e, t) => typeof t == "function" ? t(e) : ie(ae(e)) ? e === "Y" : !!Number(e), "getCheckboxChecked"), be = /* @__PURE__ */ a((e) => e.withTime ? "YYYY-MM-DD HH:mm" : e.withTimeAndSec ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD", "getDateFormat"), he = /* @__PURE__ */ a((e, t, n) => {
|
|
69
62
|
const r = pe(t, e.key);
|
|
70
|
-
return typeof e.render == "function" ? e.render() : e.useCheckbox ? /* @__PURE__ */
|
|
71
|
-
|
|
63
|
+
return typeof e.render == "function" ? e.render() : e.useCheckbox ? /* @__PURE__ */ m(
|
|
64
|
+
K,
|
|
72
65
|
{
|
|
73
66
|
checked: ue(r, e.validate),
|
|
74
67
|
sx: {
|
|
75
68
|
"& .MuiSvgIcon-root": {
|
|
76
|
-
fontSize: se(n) ??
|
|
69
|
+
fontSize: se(n) ?? me
|
|
77
70
|
}
|
|
78
71
|
}
|
|
79
72
|
}
|
|
80
|
-
) : e.useDate ? r && P(r).format(
|
|
81
|
-
Z,
|
|
82
|
-
{
|
|
83
|
-
value: r,
|
|
84
|
-
valueDecimals: e.valueDecimals,
|
|
85
|
-
className: e.valueClassName,
|
|
86
|
-
sx: e.valueSx
|
|
87
|
-
}
|
|
88
|
-
) : e.contentType === "text" ? /* @__PURE__ */ l(
|
|
73
|
+
) : e.useDate ? r && P(r).format(be(e)) : e.contentType === "number" ? /* @__PURE__ */ m(
|
|
89
74
|
J,
|
|
90
75
|
{
|
|
91
76
|
value: r,
|
|
77
|
+
valueDecimals: e.valueDecimals,
|
|
92
78
|
className: e.valueClassName,
|
|
93
79
|
sx: e.valueSx
|
|
94
80
|
}
|
|
95
|
-
) : e.disableLocaleString ? r : r == null ? void 0 : r.toLocaleString();
|
|
81
|
+
) : e.contentType === "text" ? /* @__PURE__ */ m(Q, { value: r, className: e.valueClassName, sx: e.valueSx }) : e.disableLocaleString ? r : r == null ? void 0 : r.toLocaleString();
|
|
96
82
|
}, "renderFieldTableCellValue");
|
|
97
|
-
function
|
|
83
|
+
function Ye({
|
|
98
84
|
layout: e,
|
|
99
85
|
titleWidth: t,
|
|
100
86
|
titleSx: n,
|
|
101
87
|
treeGridTitleCellSx: r,
|
|
102
88
|
cellSx: p,
|
|
103
|
-
data:
|
|
104
|
-
colGroupSlot:
|
|
105
|
-
className:
|
|
106
|
-
tableLayout:
|
|
107
|
-
canTableRadiusZero:
|
|
89
|
+
data: Y,
|
|
90
|
+
colGroupSlot: z,
|
|
91
|
+
className: M,
|
|
92
|
+
tableLayout: O = "fixed",
|
|
93
|
+
canTableRadiusZero: y = !1,
|
|
108
94
|
canUseTableRadius: u = !1,
|
|
109
95
|
canUseTreeGridStyle: s = !1,
|
|
110
|
-
tableBorderRadius:
|
|
96
|
+
tableBorderRadius: H = V
|
|
111
97
|
}) {
|
|
112
|
-
var
|
|
113
|
-
const
|
|
98
|
+
var C, g, x, F, S, D, w, A;
|
|
99
|
+
const i = W(), h = ((x = (g = (C = i == null ? void 0 : i.theme) == null ? void 0 : C.main) == null ? void 0 : g.palette) == null ? void 0 : x.mode) === "dark" ? k.dark : k.light, T = ((A = (w = (D = (S = (F = i == null ? void 0 : i.theme) == null ? void 0 : F.main) == null ? void 0 : S.table) == null ? void 0 : D.field) == null ? void 0 : w.cell) == null ? void 0 : A.backgroundColor) ?? f.cell.backgroundColor, c = X(
|
|
114
100
|
() => {
|
|
115
|
-
var d,
|
|
116
|
-
return
|
|
117
|
-
borderColor:
|
|
101
|
+
var d, l, o;
|
|
102
|
+
return j((o = (l = (d = i == null ? void 0 : i.theme) == null ? void 0 : d.main) == null ? void 0 : l.table) == null ? void 0 : o.field, {
|
|
103
|
+
borderColor: h,
|
|
118
104
|
header: {
|
|
119
105
|
backgroundColor: f.header.backgroundColor,
|
|
120
106
|
color: f.header.color,
|
|
@@ -127,60 +113,60 @@ function Le({
|
|
|
127
113
|
}
|
|
128
114
|
});
|
|
129
115
|
},
|
|
130
|
-
[
|
|
116
|
+
[i, h]
|
|
131
117
|
);
|
|
132
|
-
return /* @__PURE__ */
|
|
133
|
-
|
|
118
|
+
return /* @__PURE__ */ b(
|
|
119
|
+
ee,
|
|
134
120
|
{
|
|
135
|
-
canTableRadiusZero:
|
|
121
|
+
canTableRadiusZero: y,
|
|
136
122
|
canUseTableRadius: u,
|
|
137
123
|
canUseTreeGridStyle: s,
|
|
138
|
-
className:
|
|
124
|
+
className: q("w-full", M),
|
|
139
125
|
containerProps: {
|
|
140
|
-
sx: !s &&
|
|
126
|
+
sx: !s && T ? { backgroundColor: T } : void 0
|
|
141
127
|
},
|
|
142
|
-
tableTheme:
|
|
143
|
-
tableLayout:
|
|
144
|
-
tableBorderRadius:
|
|
128
|
+
tableTheme: c,
|
|
129
|
+
tableLayout: O,
|
|
130
|
+
tableBorderRadius: H,
|
|
145
131
|
children: [
|
|
146
|
-
|
|
147
|
-
/* @__PURE__ */
|
|
148
|
-
/* @__PURE__ */
|
|
149
|
-
|
|
132
|
+
z,
|
|
133
|
+
/* @__PURE__ */ m(G, { children: e.map((d, l) => /* @__PURE__ */ m(U, { sx: fe, children: d.map((o, R) => /* @__PURE__ */ b(Z, { children: [
|
|
134
|
+
/* @__PURE__ */ m(
|
|
135
|
+
N,
|
|
150
136
|
{
|
|
151
137
|
component: "th",
|
|
152
138
|
className: "whitespace-pre-wrap",
|
|
153
139
|
width: t ?? 200,
|
|
154
140
|
sx: s ? [
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
...
|
|
158
|
-
] : [
|
|
141
|
+
le,
|
|
142
|
+
l === 0 && !u && E,
|
|
143
|
+
..._(r, n)
|
|
144
|
+
] : [re(c), ...L(n)],
|
|
159
145
|
rowSpan: o == null ? void 0 : o.rowSpan,
|
|
160
146
|
children: o.required ? de(o.title) : o.title
|
|
161
147
|
}
|
|
162
148
|
),
|
|
163
|
-
/* @__PURE__ */
|
|
164
|
-
|
|
149
|
+
/* @__PURE__ */ m(
|
|
150
|
+
N,
|
|
165
151
|
{
|
|
166
152
|
className: "whitespace-pre-wrap",
|
|
167
153
|
sx: s ? [
|
|
168
|
-
|
|
169
|
-
...
|
|
154
|
+
l === 0 && !u && E,
|
|
155
|
+
..._(p)
|
|
170
156
|
] : p,
|
|
171
157
|
style: (o == null ? void 0 : o.style) ?? {},
|
|
172
158
|
colSpan: o == null ? void 0 : o.colSpan,
|
|
173
159
|
rowSpan: o == null ? void 0 : o.rowSpan,
|
|
174
|
-
children: /* @__PURE__ */
|
|
160
|
+
children: /* @__PURE__ */ m($, { className: B, children: he(o, Y, p) })
|
|
175
161
|
}
|
|
176
162
|
)
|
|
177
|
-
] }, `owp-field-cell-${
|
|
163
|
+
] }, `owp-field-cell-${l}-${R}`)) }, `owp-field-col-${l}`)) })
|
|
178
164
|
]
|
|
179
165
|
}
|
|
180
166
|
);
|
|
181
167
|
}
|
|
182
|
-
|
|
168
|
+
a(Ye, "OwpFieldTable");
|
|
183
169
|
export {
|
|
184
|
-
|
|
170
|
+
Ye as OwpFieldTable
|
|
185
171
|
};
|
|
186
172
|
//# sourceMappingURL=OwpFieldTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpFieldTable.js","sources":["../../../src/components/OwpTable/OwpFieldTable.tsx"],"sourcesContent":["import {\n resolveOwpTableTheme,\n} from '@/constants/tableTheme';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport type { OwpTableVariantThemeConfigType } from '@/types/OwpTableThemeTypes';\nimport { Box, Checkbox, TableBody, TableCell, type TableCellProps } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport dayjs from '@/dayjs';\nimport { isNaN, toNumber } from 'es-toolkit/compat';\nimport { Fragment, type CSSProperties, type ReactNode, useMemo } from 'react';\nimport { FieldTableNumberValue, FieldTableTextValue } from './internal/FieldTableValue';\nimport { OwpTableBase, OwpTableBaseRow } from './internal/OwpTableBase';\nimport {\n DEFAULT_TABLE_HEADER_BACKGROUND_COLOR,\n DEFAULT_TABLE_RADIUS,\n getDefaultTableHeaderCellSx,\n} from './internal/defaultTableStyle';\nimport { TREEGRID_TABLE_FONT_FAMILY_STACK } from './internal/treeGridTableStyle';\n\ntype OwpFieldTableCell = {\n title: string;\n key: string;\n contentType?: 'input' | 'text' | 'number' | (string & {});\n required?: boolean;\n disableLocaleString?: boolean;\n useDate?: boolean;\n withTime?: boolean;\n withTimeAndSec?: boolean;\n useCheckbox?: boolean;\n colSpan?: number;\n rowSpan?: number;\n style?: CSSProperties;\n render?: () => ReactNode;\n validate?: (v?: number | string | null) => boolean;\n valueClassName?: string;\n valueSx?: SxProps<Theme>;\n valueDecimals?: number;\n};\n\ntype OwpFieldTableValue = string | number | '' | null;\ntype OwpFieldTableDataRecord = Record<string, OwpFieldTableValue | undefined>;\n\ninterface OwpFieldTableProps {\n layout: OwpFieldTableCell[][];\n data?: OwpFieldTableDataRecord;\n titleSx?: TableCellProps['sx'];\n treeGridTitleCellSx?: TableCellProps['sx'];\n cellSx?: TableCellProps['sx'];\n titleWidth?: number | string;\n colGroupSlot?: ReactNode;\n className?: string;\n tableLayout?: 'auto' | 'fixed';\n canTableRadiusZero?: boolean;\n canUseTableRadius?: boolean;\n canUseTreeGridStyle?: boolean;\n tableBorderRadius?: string | number;\n}\n\nconst DEFAULT_CHECKBOX_FONT_SIZE = 28;\nconst FIELD_TABLE_HELPER_TEXT_RESERVED_SPACE = 'calc(0.75rem * 1.66 + 3px)';\nconst defaultTableBorderColorByMode = {\n dark: 'rgba(241,245,249,.12)',\n light: '#e2e8f0',\n} as const;\n\nconst defaultTreeGridTitleCellSx = {\n '&&': {\n fontFamily: TREEGRID_TABLE_FONT_FAMILY_STACK,\n fontSize: '1.7rem',\n fontWeight: 600,\n lineHeight: 'normal',\n minHeight: 'unset',\n padding: '7px 10px',\n },\n} as const;\n\nconst treeGridFirstRowCellSx = {\n borderTop: '1px solid #CDD8E4',\n} as const;\n\nconst FIELD_TABLE_CELL_CONTENT_CLASS_NAME = 'owp-field-table-cell-content';\n\n/** 필드 테이블 row helper text 보정 */\nconst fieldTableRowSx = {\n [`&:has(.MuiFormHelperText-root) .${FIELD_TABLE_CELL_CONTENT_CLASS_NAME}::after`]: {\n content: '\"\"',\n display: 'block',\n height: FIELD_TABLE_HELPER_TEXT_RESERVED_SPACE,\n },\n [`&:has(.MuiFormHelperText-root) .${FIELD_TABLE_CELL_CONTENT_CLASS_NAME}:has(.MuiFormHelperText-root)::after`]: {\n display: 'none',\n },\n} as const;\n\ntype TableCellSxItem = Exclude<SxProps<Theme>, readonly unknown[] | false | null | undefined>;\n\nconst normalizeTableCellSx = (\n style?: TableCellProps['sx'],\n): TableCellSxItem[] => {\n if (!style) {\n return [];\n }\n\n return (Array.isArray(style) ? style : [style]).filter(Boolean) as TableCellSxItem[];\n};\n\nconst getTreeGridCellOverrideSx = (\n ...styles: Array<TableCellProps['sx'] | undefined>\n): TableCellSxItem[] =>\n styles.flatMap(normalizeTableCellSx).map((style) =>\n typeof style === 'function'\n ? (theme: Theme) => ({\n '&&&': style(theme),\n })\n : {\n '&&&': style,\n },\n );\n\nconst getTableCellFontSize = (\n style?: TableCellProps['sx'],\n): number | string | undefined => {\n if (!style) {\n return undefined;\n }\n\n const styleItems = Array.isArray(style) ? style : [style];\n\n for (let index = styleItems.length - 1; index >= 0; index -= 1) {\n const styleItem = styleItems[index];\n\n if (!styleItem || typeof styleItem === 'function' || Array.isArray(styleItem)) {\n continue;\n }\n\n if (typeof styleItem === 'object' && 'fontSize' in styleItem) {\n return styleItem.fontSize as number | string | undefined;\n }\n }\n\n return undefined;\n};\n\nconst defaultFieldTableTheme = {\n borderColor: '#e2e8f0',\n header: {\n backgroundColor: DEFAULT_TABLE_HEADER_BACKGROUND_COLOR,\n color: '#111827',\n fontSize: '1.7rem',\n fontWeight: 600,\n },\n cell: {\n backgroundColor: '#FFFFFF',\n fontSize: '1.7rem',\n },\n} satisfies OwpTableVariantThemeConfigType;\n\n/** 필수 헤더 타이틀 */\nconst getRequiredTitle = (title: string) => (\n <>\n {title}\n <span className=\"ml-4 text-red-600\">*</span>\n </>\n);\n\nconst getFieldTableValue = (data: OwpFieldTableProps['data'], key: string) => {\n return data?.[key];\n};\n\nconst getCheckboxChecked = (\n value: OwpFieldTableValue | undefined,\n validate?: OwpFieldTableCell['validate'],\n) => {\n if (typeof validate === 'function') {\n return validate(value);\n }\n\n if (isNaN(toNumber(value))) {\n return value === 'Y';\n }\n\n return Boolean(Number(value));\n};\n\nconst getDateFormat = (cell: OwpFieldTableCell) => {\n if (cell.withTime) {\n return 'YYYY-MM-DD HH:mm';\n }\n\n if (cell.withTimeAndSec) {\n return 'YYYY-MM-DD HH:mm:ss';\n }\n\n return 'YYYY-MM-DD';\n};\n\nconst renderFieldTableCellValue = (\n cell: OwpFieldTableCell,\n data: OwpFieldTableProps['data'],\n cellSx?: OwpFieldTableProps['cellSx'],\n): ReactNode => {\n const value = getFieldTableValue(data, cell.key);\n\n if (typeof cell.render === 'function') {\n return cell.render();\n }\n\n if (cell.useCheckbox) {\n return (\n <Checkbox\n checked={getCheckboxChecked(value, cell.validate)}\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: getTableCellFontSize(cellSx) ?? DEFAULT_CHECKBOX_FONT_SIZE,\n },\n }}\n />\n );\n }\n\n if (cell.useDate) {\n return value ? dayjs(value).format(getDateFormat(cell)) : value;\n }\n\n if (cell.contentType === 'number') {\n return (\n <FieldTableNumberValue\n value={value}\n valueDecimals={cell.valueDecimals}\n className={cell.valueClassName}\n sx={cell.valueSx}\n />\n );\n }\n\n if (cell.contentType === 'text') {\n return (\n <FieldTableTextValue\n value={value}\n className={cell.valueClassName}\n sx={cell.valueSx}\n />\n );\n }\n\n if (cell.disableLocaleString) {\n return value;\n }\n\n return value?.toLocaleString();\n};\n\n/**\n * OwpFieldTable 컴포넌트\n * @param layout layout 값\n * @param titleWidth titleWidth 값\n * @param titleSx titleSx 값\n * @param treeGridTitleCellSx TreeGrid title cell sx 값\n * @param cellSx cellSx 값\n * @param data 데이터\n * @param colGroupSlot colGroupSlot 값\n * @param className className 값\n * @param tableLayout tableLayout 값\n * @param canTableRadiusZero 테이블 radius 0 사용 여부\n * @param canUseTableRadius 테이블 radius 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param tableBorderRadius 테이블 radius 값\n */\nexport function OwpFieldTable({\n layout,\n titleWidth,\n titleSx,\n treeGridTitleCellSx,\n cellSx,\n data,\n colGroupSlot,\n className,\n tableLayout = 'fixed',\n canTableRadiusZero = false,\n canUseTableRadius = false,\n canUseTreeGridStyle = false,\n tableBorderRadius = DEFAULT_TABLE_RADIUS,\n}: OwpFieldTableProps) {\n const currentSettings = useGetCurrentSettings();\n const defaultTableBorderColor =\n currentSettings?.theme?.main?.palette?.mode === 'dark'\n ? defaultTableBorderColorByMode.dark\n : defaultTableBorderColorByMode.light;\n const tableBackgroundColor =\n currentSettings?.theme?.main?.table?.field?.cell?.backgroundColor ??\n defaultFieldTableTheme.cell.backgroundColor;\n const tableTheme = useMemo(\n () =>\n resolveOwpTableTheme(currentSettings?.theme?.main?.table?.field, {\n borderColor: defaultTableBorderColor,\n header: {\n backgroundColor: defaultFieldTableTheme.header.backgroundColor,\n color: defaultFieldTableTheme.header.color,\n fontSize: defaultFieldTableTheme.header.fontSize,\n fontWeight: defaultFieldTableTheme.header.fontWeight,\n },\n cell: {\n backgroundColor: defaultFieldTableTheme.cell.backgroundColor,\n fontSize: defaultFieldTableTheme.cell.fontSize,\n },\n }),\n [currentSettings, defaultTableBorderColor],\n );\n\n return (\n <OwpTableBase\n canTableRadiusZero={canTableRadiusZero}\n canUseTableRadius={canUseTableRadius}\n canUseTreeGridStyle={canUseTreeGridStyle}\n className={clsx('w-full', className)}\n containerProps={{\n sx:\n !canUseTreeGridStyle && tableBackgroundColor\n ? { backgroundColor: tableBackgroundColor }\n : undefined,\n }}\n tableTheme={tableTheme}\n tableLayout={tableLayout}\n tableBorderRadius={tableBorderRadius}\n >\n {colGroupSlot}\n <TableBody>\n {layout.map((cols, rowIndex) => (\n <OwpTableBaseRow key={`owp-field-col-${rowIndex}`} sx={fieldTableRowSx}>\n {cols.map((col, colIndex) => (\n <Fragment key={`owp-field-cell-${rowIndex}-${colIndex}`}>\n <TableCell\n component=\"th\"\n className=\"whitespace-pre-wrap\"\n width={titleWidth ?? 200}\n sx={\n canUseTreeGridStyle\n ? [\n defaultTreeGridTitleCellSx,\n rowIndex === 0 && !canUseTableRadius && treeGridFirstRowCellSx,\n ...getTreeGridCellOverrideSx(treeGridTitleCellSx, titleSx),\n ]\n : [getDefaultTableHeaderCellSx(tableTheme), ...normalizeTableCellSx(titleSx)]\n }\n rowSpan={col?.rowSpan}\n >\n {col.required ? getRequiredTitle(col.title) : col.title}\n </TableCell>\n <TableCell\n className=\"whitespace-pre-wrap\"\n sx={\n canUseTreeGridStyle\n ? [\n rowIndex === 0 && !canUseTableRadius && treeGridFirstRowCellSx,\n ...getTreeGridCellOverrideSx(cellSx),\n ]\n : cellSx\n }\n style={col?.style ?? {}}\n colSpan={col?.colSpan}\n rowSpan={col?.rowSpan}\n >\n <Box className={FIELD_TABLE_CELL_CONTENT_CLASS_NAME}>\n {renderFieldTableCellValue(col, data, cellSx)}\n </Box>\n </TableCell>\n </Fragment>\n ))}\n </OwpTableBaseRow>\n ))}\n </TableBody>\n </OwpTableBase>\n );\n}\n"],"names":["DEFAULT_CHECKBOX_FONT_SIZE","FIELD_TABLE_HELPER_TEXT_RESERVED_SPACE","defaultTableBorderColorByMode","defaultTreeGridTitleCellSx","TREEGRID_TABLE_FONT_FAMILY_STACK","treeGridFirstRowCellSx","FIELD_TABLE_CELL_CONTENT_CLASS_NAME","fieldTableRowSx","normalizeTableCellSx","__name","style","getTreeGridCellOverrideSx","styles","theme","getTableCellFontSize","styleItems","index","styleItem","defaultFieldTableTheme","DEFAULT_TABLE_HEADER_BACKGROUND_COLOR","getRequiredTitle","title","jsxs","Fragment","jsx","getFieldTableValue","data","key","getCheckboxChecked","value","validate","isNaN","toNumber","getDateFormat","cell","renderFieldTableCellValue","cellSx","Checkbox","dayjs","FieldTableNumberValue","FieldTableTextValue","OwpFieldTable","layout","titleWidth","titleSx","treeGridTitleCellSx","colGroupSlot","className","tableLayout","canTableRadiusZero","canUseTableRadius","canUseTreeGridStyle","tableBorderRadius","DEFAULT_TABLE_RADIUS","currentSettings","useGetCurrentSettings","defaultTableBorderColor","_c","_b","_a","tableBackgroundColor","_h","_g","_f","_e","_d","tableTheme","useMemo","resolveOwpTableTheme","OwpTableBase","clsx","TableBody","cols","rowIndex","OwpTableBaseRow","col","colIndex","TableCell","getDefaultTableHeaderCellSx","Box"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OwpFieldTable.js","sources":["../../../src/components/OwpTable/OwpFieldTable.tsx"],"sourcesContent":["import { resolveOwpTableTheme } from '@/constants/tableTheme';\nimport { DEFAULT_TABLE_RADIUS } from '@/constants/table';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport type { OwpTableVariantThemeConfigType } from '@/types/OwpTableThemeTypes';\nimport { Box, Checkbox, TableBody, TableCell, type TableCellProps } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\nimport clsx from 'clsx';\nimport dayjs from '@/dayjs';\nimport { isNaN, toNumber } from 'es-toolkit/compat';\nimport { Fragment, type CSSProperties, type ReactNode, useMemo } from 'react';\nimport { FieldTableNumberValue, FieldTableTextValue } from './internal/FieldTableValue';\nimport { OwpTableBase, OwpTableBaseRow } from './internal/OwpTableBase';\nimport {\n DEFAULT_TABLE_HEADER_BACKGROUND_COLOR,\n getDefaultTableHeaderCellSx,\n} from './internal/defaultTableStyle';\nimport { TREEGRID_TABLE_FONT_FAMILY_STACK } from './internal/treeGridTableStyle';\nimport { getTableHelperTextRowSx } from './utils/tableSx';\n\ntype OwpFieldTableCell = {\n title: string;\n key: string;\n contentType?: 'input' | 'text' | 'number' | (string & {});\n required?: boolean;\n disableLocaleString?: boolean;\n useDate?: boolean;\n withTime?: boolean;\n withTimeAndSec?: boolean;\n useCheckbox?: boolean;\n colSpan?: number;\n rowSpan?: number;\n style?: CSSProperties;\n render?: () => ReactNode;\n validate?: (v?: number | string | null) => boolean;\n valueClassName?: string;\n valueSx?: SxProps<Theme>;\n valueDecimals?: number;\n};\n\ntype OwpFieldTableValue = string | number | '' | null;\ntype OwpFieldTableDataRecord = Record<string, OwpFieldTableValue | undefined>;\n\ninterface OwpFieldTableProps {\n layout: OwpFieldTableCell[][];\n data?: OwpFieldTableDataRecord;\n titleSx?: TableCellProps['sx'];\n treeGridTitleCellSx?: TableCellProps['sx'];\n cellSx?: TableCellProps['sx'];\n titleWidth?: number | string;\n colGroupSlot?: ReactNode;\n className?: string;\n tableLayout?: 'auto' | 'fixed';\n canTableRadiusZero?: boolean;\n canUseTableRadius?: boolean;\n canUseTreeGridStyle?: boolean;\n tableBorderRadius?: string | number;\n}\n\nconst DEFAULT_CHECKBOX_FONT_SIZE = 28;\nconst defaultTableBorderColorByMode = {\n dark: 'rgba(241,245,249,.12)',\n light: '#e2e8f0',\n} as const;\n\nconst defaultTreeGridTitleCellSx = {\n '&&': {\n fontFamily: TREEGRID_TABLE_FONT_FAMILY_STACK,\n fontSize: '1.7rem',\n fontWeight: 600,\n lineHeight: 'normal',\n minHeight: 'unset',\n padding: '7px 10px',\n },\n} as const;\n\nconst treeGridFirstRowCellSx = {\n borderTop: '1px solid #CDD8E4',\n} as const;\n\nconst FIELD_TABLE_CELL_CONTENT_CLASS_NAME = 'owp-field-table-cell-content';\n\nconst fieldTableRowSx = getTableHelperTextRowSx(FIELD_TABLE_CELL_CONTENT_CLASS_NAME);\n\ntype TableCellSxItem = Exclude<SxProps<Theme>, readonly unknown[] | false | null | undefined>;\n\nconst normalizeTableCellSx = (style?: TableCellProps['sx']): TableCellSxItem[] => {\n if (!style) {\n return [];\n }\n\n return (Array.isArray(style) ? style : [style]).filter(Boolean) as TableCellSxItem[];\n};\n\nconst getTreeGridCellOverrideSx = (\n ...styles: Array<TableCellProps['sx'] | undefined>\n): TableCellSxItem[] =>\n styles.flatMap(normalizeTableCellSx).map((style) =>\n typeof style === 'function'\n ? (theme: Theme) => ({\n '&&&': style(theme),\n })\n : {\n '&&&': style,\n },\n );\n\nconst getTableCellFontSize = (style?: TableCellProps['sx']): number | string | undefined => {\n if (!style) {\n return undefined;\n }\n\n const styleItems = Array.isArray(style) ? style : [style];\n\n for (let index = styleItems.length - 1; index >= 0; index -= 1) {\n const styleItem = styleItems[index];\n\n if (!styleItem || typeof styleItem === 'function' || Array.isArray(styleItem)) {\n continue;\n }\n\n if (typeof styleItem === 'object' && 'fontSize' in styleItem) {\n return styleItem.fontSize as number | string | undefined;\n }\n }\n\n return undefined;\n};\n\nconst defaultFieldTableTheme = {\n borderColor: '#e2e8f0',\n header: {\n backgroundColor: DEFAULT_TABLE_HEADER_BACKGROUND_COLOR,\n color: '#111827',\n fontSize: '1.7rem',\n fontWeight: 600,\n },\n cell: {\n backgroundColor: '#FFFFFF',\n fontSize: '1.7rem',\n },\n} satisfies OwpTableVariantThemeConfigType;\n\n/** 필수 헤더 타이틀 */\nconst getRequiredTitle = (title: string) => (\n <>\n {title}\n <span className=\"ml-4 text-red-600\">*</span>\n </>\n);\n\nconst getFieldTableValue = (data: OwpFieldTableProps['data'], key: string) => {\n return data?.[key];\n};\n\nconst getCheckboxChecked = (\n value: OwpFieldTableValue | undefined,\n validate?: OwpFieldTableCell['validate'],\n) => {\n if (typeof validate === 'function') {\n return validate(value);\n }\n\n if (isNaN(toNumber(value))) {\n return value === 'Y';\n }\n\n return Boolean(Number(value));\n};\n\nconst getDateFormat = (cell: OwpFieldTableCell) => {\n if (cell.withTime) {\n return 'YYYY-MM-DD HH:mm';\n }\n\n if (cell.withTimeAndSec) {\n return 'YYYY-MM-DD HH:mm:ss';\n }\n\n return 'YYYY-MM-DD';\n};\n\nconst renderFieldTableCellValue = (\n cell: OwpFieldTableCell,\n data: OwpFieldTableProps['data'],\n cellSx?: OwpFieldTableProps['cellSx'],\n): ReactNode => {\n const value = getFieldTableValue(data, cell.key);\n\n if (typeof cell.render === 'function') {\n return cell.render();\n }\n\n if (cell.useCheckbox) {\n return (\n <Checkbox\n checked={getCheckboxChecked(value, cell.validate)}\n sx={{\n '& .MuiSvgIcon-root': {\n fontSize: getTableCellFontSize(cellSx) ?? DEFAULT_CHECKBOX_FONT_SIZE,\n },\n }}\n />\n );\n }\n\n if (cell.useDate) {\n return value ? dayjs(value).format(getDateFormat(cell)) : value;\n }\n\n if (cell.contentType === 'number') {\n return (\n <FieldTableNumberValue\n value={value}\n valueDecimals={cell.valueDecimals}\n className={cell.valueClassName}\n sx={cell.valueSx}\n />\n );\n }\n\n if (cell.contentType === 'text') {\n return <FieldTableTextValue value={value} className={cell.valueClassName} sx={cell.valueSx} />;\n }\n\n if (cell.disableLocaleString) {\n return value;\n }\n\n return value?.toLocaleString();\n};\n\n/**\n * OwpFieldTable 컴포넌트\n * @param layout layout 값\n * @param titleWidth titleWidth 값\n * @param titleSx titleSx 값\n * @param treeGridTitleCellSx TreeGrid title cell sx 값\n * @param cellSx cellSx 값\n * @param data 데이터\n * @param colGroupSlot colGroupSlot 값\n * @param className className 값\n * @param tableLayout tableLayout 값\n * @param canTableRadiusZero 테이블 radius 0 사용 여부\n * @param canUseTableRadius 테이블 radius 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param tableBorderRadius 테이블 radius 값\n */\nexport function OwpFieldTable({\n layout,\n titleWidth,\n titleSx,\n treeGridTitleCellSx,\n cellSx,\n data,\n colGroupSlot,\n className,\n tableLayout = 'fixed',\n canTableRadiusZero = false,\n canUseTableRadius = false,\n canUseTreeGridStyle = false,\n tableBorderRadius = DEFAULT_TABLE_RADIUS,\n}: OwpFieldTableProps) {\n const currentSettings = useGetCurrentSettings();\n const defaultTableBorderColor =\n currentSettings?.theme?.main?.palette?.mode === 'dark'\n ? defaultTableBorderColorByMode.dark\n : defaultTableBorderColorByMode.light;\n const tableBackgroundColor =\n currentSettings?.theme?.main?.table?.field?.cell?.backgroundColor ??\n defaultFieldTableTheme.cell.backgroundColor;\n const tableTheme = useMemo(\n () =>\n resolveOwpTableTheme(currentSettings?.theme?.main?.table?.field, {\n borderColor: defaultTableBorderColor,\n header: {\n backgroundColor: defaultFieldTableTheme.header.backgroundColor,\n color: defaultFieldTableTheme.header.color,\n fontSize: defaultFieldTableTheme.header.fontSize,\n fontWeight: defaultFieldTableTheme.header.fontWeight,\n },\n cell: {\n backgroundColor: defaultFieldTableTheme.cell.backgroundColor,\n fontSize: defaultFieldTableTheme.cell.fontSize,\n },\n }),\n [currentSettings, defaultTableBorderColor],\n );\n\n return (\n <OwpTableBase\n canTableRadiusZero={canTableRadiusZero}\n canUseTableRadius={canUseTableRadius}\n canUseTreeGridStyle={canUseTreeGridStyle}\n className={clsx('w-full', className)}\n containerProps={{\n sx:\n !canUseTreeGridStyle && tableBackgroundColor\n ? { backgroundColor: tableBackgroundColor }\n : undefined,\n }}\n tableTheme={tableTheme}\n tableLayout={tableLayout}\n tableBorderRadius={tableBorderRadius}\n >\n {colGroupSlot}\n <TableBody>\n {layout.map((cols, rowIndex) => (\n <OwpTableBaseRow key={`owp-field-col-${rowIndex}`} sx={fieldTableRowSx}>\n {cols.map((col, colIndex) => (\n <Fragment key={`owp-field-cell-${rowIndex}-${colIndex}`}>\n <TableCell\n component=\"th\"\n className=\"whitespace-pre-wrap\"\n width={titleWidth ?? 200}\n sx={\n canUseTreeGridStyle\n ? [\n defaultTreeGridTitleCellSx,\n rowIndex === 0 && !canUseTableRadius && treeGridFirstRowCellSx,\n ...getTreeGridCellOverrideSx(treeGridTitleCellSx, titleSx),\n ]\n : [getDefaultTableHeaderCellSx(tableTheme), ...normalizeTableCellSx(titleSx)]\n }\n rowSpan={col?.rowSpan}\n >\n {col.required ? getRequiredTitle(col.title) : col.title}\n </TableCell>\n <TableCell\n className=\"whitespace-pre-wrap\"\n sx={\n canUseTreeGridStyle\n ? [\n rowIndex === 0 && !canUseTableRadius && treeGridFirstRowCellSx,\n ...getTreeGridCellOverrideSx(cellSx),\n ]\n : cellSx\n }\n style={col?.style ?? {}}\n colSpan={col?.colSpan}\n rowSpan={col?.rowSpan}\n >\n <Box className={FIELD_TABLE_CELL_CONTENT_CLASS_NAME}>\n {renderFieldTableCellValue(col, data, cellSx)}\n </Box>\n </TableCell>\n </Fragment>\n ))}\n </OwpTableBaseRow>\n ))}\n </TableBody>\n </OwpTableBase>\n );\n}\n"],"names":["DEFAULT_CHECKBOX_FONT_SIZE","defaultTableBorderColorByMode","defaultTreeGridTitleCellSx","TREEGRID_TABLE_FONT_FAMILY_STACK","treeGridFirstRowCellSx","FIELD_TABLE_CELL_CONTENT_CLASS_NAME","fieldTableRowSx","getTableHelperTextRowSx","normalizeTableCellSx","__name","style","getTreeGridCellOverrideSx","styles","theme","getTableCellFontSize","styleItems","index","styleItem","defaultFieldTableTheme","DEFAULT_TABLE_HEADER_BACKGROUND_COLOR","getRequiredTitle","title","jsxs","Fragment","jsx","getFieldTableValue","data","key","getCheckboxChecked","value","validate","isNaN","toNumber","getDateFormat","cell","renderFieldTableCellValue","cellSx","Checkbox","dayjs","FieldTableNumberValue","FieldTableTextValue","OwpFieldTable","layout","titleWidth","titleSx","treeGridTitleCellSx","colGroupSlot","className","tableLayout","canTableRadiusZero","canUseTableRadius","canUseTreeGridStyle","tableBorderRadius","DEFAULT_TABLE_RADIUS","currentSettings","useGetCurrentSettings","defaultTableBorderColor","_c","_b","_a","tableBackgroundColor","_h","_g","_f","_e","_d","tableTheme","useMemo","resolveOwpTableTheme","OwpTableBase","clsx","TableBody","cols","rowIndex","OwpTableBaseRow","col","colIndex","TableCell","getDefaultTableHeaderCellSx","Box"],"mappings":"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"}
|
|
@@ -1,102 +1,103 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
import { jsxs as
|
|
4
|
-
import { resolveOwpTableTheme as
|
|
5
|
-
import { useGetCurrentSettings as
|
|
6
|
-
import { clsx as
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
1
|
+
var G = Object.defineProperty;
|
|
2
|
+
var c = (e, o) => G(e, "name", { value: o, configurable: !0 });
|
|
3
|
+
import { jsxs as M, jsx as m } 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 { resolveOwpTableTheme as K } from "../../constants/tableTheme.js";
|
|
5
|
+
import { useGetCurrentSettings as N } from "../../hooks/useOwpSettings.js";
|
|
6
|
+
import { clsx as U } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
7
|
+
import k from "@mui/material/Box";
|
|
8
|
+
import W from "@mui/material/TableBody";
|
|
9
|
+
import $ from "@mui/material/TableCell";
|
|
10
|
+
import q from "@mui/material/TableHead";
|
|
11
|
+
import { useMemo as f } from "react";
|
|
12
|
+
import { getDefaultTableHeaderCellSx as z, defaultStyledTableTheme as F } from "./internal/defaultTableStyle.js";
|
|
13
|
+
import { OwpTableBaseRow as O, OwpTableBase as I } from "./internal/OwpTableBase.js";
|
|
14
|
+
import { OwpTableTotalCount as J } from "./internal/OwpTableTotalCount.js";
|
|
15
|
+
import { mergeSx as y, getTableHelperTextRowSx as Q } from "./utils/tableSx.js";
|
|
16
|
+
import { isArray as L } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isArray.js";
|
|
16
17
|
import { isEmpty as V } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
|
|
17
|
-
const R = /* @__PURE__ */
|
|
18
|
+
const R = /* @__PURE__ */ c((e) => e ? Object.keys(e).filter((o) => !o.includes("Span")) : [], "getTableColumnKeys"), E = /* @__PURE__ */ c((e, o) => e[`${o}Sx`] ?? {}, "getTableCellSx"), _ = /* @__PURE__ */ c((e, o, i) => e[`${o}${i}`] ?? void 0, "getTableCellSpan"), v = {
|
|
18
19
|
dark: "rgba(241,245,249,.12)",
|
|
19
20
|
light: "#e2e8f0"
|
|
20
|
-
};
|
|
21
|
-
function
|
|
21
|
+
}, A = "owp-table-cell-content", X = Q(A);
|
|
22
|
+
function fo({
|
|
22
23
|
canTotalCountRow: e = !1,
|
|
23
24
|
headers: o,
|
|
24
|
-
rows:
|
|
25
|
+
rows: i,
|
|
25
26
|
totalCount: d,
|
|
26
27
|
...t
|
|
27
28
|
}) {
|
|
28
|
-
var w, C,
|
|
29
|
-
const l =
|
|
29
|
+
var u, w, C, x, S, h, g, B;
|
|
30
|
+
const l = N(), s = ((C = (w = (u = l == null ? void 0 : l.theme) == null ? void 0 : u.main) == null ? void 0 : w.palette) == null ? void 0 : C.mode) === "dark" ? v.dark : v.light, p = f(
|
|
30
31
|
() => {
|
|
31
32
|
var r, a;
|
|
32
|
-
return t.tableTheme ??
|
|
33
|
-
...
|
|
33
|
+
return t.tableTheme ?? K((a = (r = l == null ? void 0 : l.theme) == null ? void 0 : r.main) == null ? void 0 : a.table, {
|
|
34
|
+
...F,
|
|
34
35
|
borderColor: s
|
|
35
36
|
});
|
|
36
37
|
},
|
|
37
38
|
[l, s, t.tableTheme]
|
|
38
|
-
),
|
|
39
|
-
() =>
|
|
39
|
+
), H = f(
|
|
40
|
+
() => L(o) ? o : V(o) ? [] : [o],
|
|
40
41
|
[o]
|
|
41
|
-
),
|
|
42
|
-
() => R(
|
|
42
|
+
), j = f(
|
|
43
|
+
() => R(L(o) ? o[0] : o),
|
|
43
44
|
[o]
|
|
44
|
-
),
|
|
45
|
-
return /* @__PURE__ */
|
|
46
|
-
|
|
45
|
+
), T = (g = (h = (S = (x = l == null ? void 0 : l.theme) == null ? void 0 : x.main) == null ? void 0 : S.table) == null ? void 0 : h.row) == null ? void 0 : g.backgroundColor;
|
|
46
|
+
return /* @__PURE__ */ M(
|
|
47
|
+
I,
|
|
47
48
|
{
|
|
48
49
|
...t,
|
|
49
50
|
containerProps: {
|
|
50
51
|
...t.containerProps,
|
|
51
|
-
sx:
|
|
52
|
-
!t.canUseTreeGridStyle &&
|
|
53
|
-
(
|
|
52
|
+
sx: y(
|
|
53
|
+
!t.canUseTreeGridStyle && T && { backgroundColor: T },
|
|
54
|
+
(B = t.containerProps) == null ? void 0 : B.sx
|
|
54
55
|
)
|
|
55
56
|
},
|
|
56
|
-
footerSlot: e ? /* @__PURE__ */
|
|
57
|
-
|
|
57
|
+
footerSlot: e ? /* @__PURE__ */ m(
|
|
58
|
+
J,
|
|
58
59
|
{
|
|
59
60
|
borderColor: p.borderColor,
|
|
60
|
-
totalCount: typeof d > "u" ?
|
|
61
|
+
totalCount: typeof d > "u" ? i.length : d
|
|
61
62
|
}
|
|
62
63
|
) : void 0,
|
|
63
|
-
className:
|
|
64
|
+
className: U(t.tableLayout && "w-full", t.className),
|
|
64
65
|
tableTheme: p,
|
|
65
66
|
children: [
|
|
66
|
-
/* @__PURE__ */
|
|
67
|
-
|
|
67
|
+
/* @__PURE__ */ m(q, { children: H.map((r, a) => /* @__PURE__ */ m(O, { children: R(r).map((n) => /* @__PURE__ */ m(
|
|
68
|
+
$,
|
|
68
69
|
{
|
|
69
70
|
className: "whitespace-pre-wrap",
|
|
70
|
-
sx:
|
|
71
|
-
!t.canUseTreeGridStyle &&
|
|
72
|
-
|
|
71
|
+
sx: y(
|
|
72
|
+
!t.canUseTreeGridStyle && z(p),
|
|
73
|
+
E(r, n)
|
|
73
74
|
),
|
|
74
|
-
colSpan:
|
|
75
|
-
rowSpan:
|
|
75
|
+
colSpan: _(r, n, "ColSpan"),
|
|
76
|
+
rowSpan: _(r, n, "RowSpan"),
|
|
76
77
|
align: "center",
|
|
77
|
-
children: r[
|
|
78
|
+
children: r[n]
|
|
78
79
|
},
|
|
79
|
-
`table-header-${a}-${
|
|
80
|
+
`table-header-${a}-${n}`
|
|
80
81
|
)) }, `table-header-${a}`)) }),
|
|
81
|
-
/* @__PURE__ */
|
|
82
|
-
const
|
|
83
|
-
return /* @__PURE__ */
|
|
84
|
-
|
|
82
|
+
/* @__PURE__ */ m(W, { children: i.map((r, a) => {
|
|
83
|
+
const n = r;
|
|
84
|
+
return /* @__PURE__ */ m(O, { sx: X, children: j.map((b) => /* @__PURE__ */ m(
|
|
85
|
+
$,
|
|
85
86
|
{
|
|
86
87
|
className: "whitespace-pre-wrap h-64",
|
|
87
|
-
sx:
|
|
88
|
+
sx: E(n, b),
|
|
88
89
|
align: "center",
|
|
89
|
-
children: m[
|
|
90
|
+
children: /* @__PURE__ */ m(k, { className: A, children: n[b] })
|
|
90
91
|
},
|
|
91
|
-
`table-row-cell-${a}-${
|
|
92
|
+
`table-row-cell-${a}-${b}`
|
|
92
93
|
)) }, `table-row-${a}`);
|
|
93
94
|
}) })
|
|
94
95
|
]
|
|
95
96
|
}
|
|
96
97
|
);
|
|
97
98
|
}
|
|
98
|
-
|
|
99
|
+
c(fo, "OwpTable");
|
|
99
100
|
export {
|
|
100
|
-
|
|
101
|
+
fo as OwpTable
|
|
101
102
|
};
|
|
102
103
|
//# sourceMappingURL=OwpTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.tsx"],"sourcesContent":["import { resolveOwpTableTheme } from '@/constants/tableTheme';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport type { SxProps, Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport { isArray, isEmpty } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.tsx"],"sourcesContent":["import { resolveOwpTableTheme } from '@/constants/tableTheme';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport type { SxProps, Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport Box from '@mui/material/Box';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport { isArray, isEmpty } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\nimport { defaultStyledTableTheme, getDefaultTableHeaderCellSx } from './internal/defaultTableStyle';\nimport { OwpTableBase, type OwpTableBaseProps, OwpTableBaseRow } from './internal/OwpTableBase';\nimport { OwpTableTotalCount } from './internal/OwpTableTotalCount';\nimport { getTableHelperTextRowSx, mergeSx } from './utils/tableSx';\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 defaultTableBorderColorByMode = {\n dark: 'rgba(241,245,249,.12)',\n light: '#e2e8f0',\n} as const;\n\nconst OWP_TABLE_CELL_CONTENT_CLASS_NAME = 'owp-table-cell-content';\nconst tableRowSx = getTableHelperTextRowSx(OWP_TABLE_CELL_CONTENT_CLASS_NAME);\n\ninterface OwpTableProps<T> extends Omit<OwpTableBaseProps, '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 canTableRadiusZero 테이블 radius 0 사용 여부\n * @param canUseTableRadius 테이블 radius 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param headers headers 값\n * @param rows 행 데이터 목록\n * @param tableBorderRadius 테이블 radius 값\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 defaultTableBorderColor =\n currentSettings?.theme?.main?.palette?.mode === 'dark'\n ? defaultTableBorderColorByMode.dark\n : defaultTableBorderColorByMode.light;\n const tableTheme = useMemo(\n () =>\n restTableProps.tableTheme ??\n resolveOwpTableTheme(currentSettings?.theme?.main?.table, {\n ...defaultStyledTableTheme,\n borderColor: defaultTableBorderColor,\n }),\n [currentSettings, defaultTableBorderColor, 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 <OwpTableBase\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\n borderColor={tableTheme.borderColor}\n totalCount={typeof totalCount === 'undefined' ? rows.length : totalCount}\n />\n ) : undefined\n }\n className={clsx(restTableProps.tableLayout && 'w-full', restTableProps.className)}\n tableTheme={tableTheme}\n >\n <TableHead>\n {resolvedHeaderRows.map((headerData, index) => (\n <OwpTableBaseRow 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 </OwpTableBaseRow>\n ))}\n </TableHead>\n <TableBody>\n {rows.map((row, index) => {\n const currentRow = row as OwpTableRowData;\n\n return (\n <OwpTableBaseRow key={`table-row-${index}`} sx={tableRowSx}>\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 <Box className={OWP_TABLE_CELL_CONTENT_CLASS_NAME}>\n {currentRow[keyName] as ReactNode}\n </Box>\n </TableCell>\n ))}\n </OwpTableBaseRow>\n );\n })}\n </TableBody>\n </OwpTableBase>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","defaultTableBorderColorByMode","OWP_TABLE_CELL_CONTENT_CLASS_NAME","tableRowSx","getTableHelperTextRowSx","OwpTable","canTotalCountRow","headers","rows","totalCount","restTableProps","currentSettings","useGetCurrentSettings","defaultTableBorderColor","_c","_b","_a","tableTheme","useMemo","resolveOwpTableTheme","defaultStyledTableTheme","resolvedHeaderRows","isArray","isEmpty","commonKeyListData","tableBackgroundColor","_g","_f","_e","_d","jsxs","OwpTableBase","mergeSx","_h","jsx","OwpTableTotalCount","clsx","TableHead","headerData","index","OwpTableBaseRow","TableCell","getDefaultTableHeaderCellSx","TableBody","currentRow","Box"],"mappings":"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"}
|