@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.
Files changed (173) hide show
  1. package/dist/_virtual/index15.js +2 -2
  2. package/dist/_virtual/index16.js +4 -4
  3. package/dist/_virtual/index17.js +4 -4
  4. package/dist/_virtual/index18.js +4 -4
  5. package/dist/_virtual/index19.js +4 -4
  6. package/dist/_virtual/index5.js +2 -2
  7. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js +15 -13
  8. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js.map +1 -1
  9. package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js +21 -19
  10. package/dist/components/OwpCommonCode/OwpCommonCodeSelector.js.map +1 -1
  11. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js +1 -1
  12. package/dist/components/OwpExportExcelButton/OwpExportExcelButton.js.map +1 -1
  13. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js +1 -1
  14. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js.map +1 -1
  15. package/dist/components/OwpLoading/OwpLoading.js +1 -1
  16. package/dist/components/OwpLoading/OwpLoading.js.map +1 -1
  17. package/dist/components/OwpMrtTable/OwpMrtTable.js +21 -21
  18. package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
  19. package/dist/components/OwpOptionSelector/OwpOptionSelector.js +14 -12
  20. package/dist/components/OwpOptionSelector/OwpOptionSelector.js.map +1 -1
  21. package/dist/components/OwpPageTitle/OwpPageTitle.js +1 -1
  22. package/dist/components/OwpPageTitle/OwpPageTitle.js.map +1 -1
  23. package/dist/components/OwpPicker/OwpDatePicker.js +81 -82
  24. package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
  25. package/dist/components/OwpPicker/OwpTimePicker.js +82 -83
  26. package/dist/components/OwpPicker/OwpTimePicker.js.map +1 -1
  27. package/dist/components/OwpPicker/OwpWeekDatePicker.js +24 -25
  28. package/dist/components/OwpPicker/OwpWeekDatePicker.js.map +1 -1
  29. package/dist/components/OwpSearchFilter/OwpSearchFilter.js +1 -1
  30. package/dist/components/OwpSearchFilter/OwpSearchFilter.js.map +1 -1
  31. package/dist/components/OwpSection/OwpSection.js +1 -1
  32. package/dist/components/OwpSection/OwpSection.js.map +1 -1
  33. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +155 -157
  34. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  35. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +95 -81
  36. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
  37. package/dist/components/OwpSuspense/OwpSuspense.js +43 -43
  38. package/dist/components/OwpSuspense/OwpSuspense.js.map +1 -1
  39. package/dist/components/OwpTable/OwpDataTable.js +13 -12
  40. package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
  41. package/dist/components/OwpTable/OwpFieldTable.js +64 -78
  42. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  43. package/dist/components/OwpTable/OwpTable.js +56 -55
  44. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  45. package/dist/components/OwpTable/internal/OwpTableBase.js +20 -19
  46. package/dist/components/OwpTable/internal/OwpTableBase.js.map +1 -1
  47. package/dist/components/OwpTable/internal/defaultTableStyle.js +6 -7
  48. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
  49. package/dist/components/OwpTable/utils/tableSx.js +16 -6
  50. package/dist/components/OwpTable/utils/tableSx.js.map +1 -1
  51. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +105 -104
  52. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  53. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js +55 -56
  54. package/dist/components/OwpTreeGrid/internal/hooks/useOwpTreeGridDatePickerEditor.js.map +1 -1
  55. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +10 -10
  56. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +253 -252
  57. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  58. package/dist/constants/table.js +5 -0
  59. package/dist/constants/table.js.map +1 -0
  60. package/dist/constants.js +25 -23
  61. package/dist/constants.js.map +1 -1
  62. package/dist/contexts/OwpUiProvider.js +5 -5
  63. package/dist/contexts/OwpUiProvider.js.map +1 -1
  64. package/dist/hooks/{useAccessTokenGuard.js → internal/useAccessTokenGuard.js} +2 -2
  65. package/dist/hooks/internal/useAccessTokenGuard.js.map +1 -0
  66. package/dist/hooks/{useCurrentLanguage.js → internal/useCurrentLanguage.js} +2 -2
  67. package/dist/hooks/internal/useCurrentLanguage.js.map +1 -0
  68. package/dist/hooks/internal/useHeaderWrapState.js.map +1 -0
  69. package/dist/hooks/internal/useNavbar.js +24 -0
  70. package/dist/hooks/internal/useNavbar.js.map +1 -0
  71. package/dist/hooks/{useNavigationActiveRouteRemount.js → internal/useNavigationActiveRouteRemount.js} +1 -1
  72. package/dist/hooks/internal/useNavigationActiveRouteRemount.js.map +1 -0
  73. package/dist/hooks/{useShortcuts.js → internal/useShortcuts.js} +3 -3
  74. package/dist/hooks/internal/useShortcuts.js.map +1 -0
  75. package/dist/hooks/internal/useThemeMediaQuery.js.map +1 -0
  76. package/dist/hooks/internal/useTimeout.js.map +1 -0
  77. package/dist/hooks/useInitApp.js.map +1 -1
  78. package/dist/hooks.js +53 -81
  79. package/dist/hooks.js.map +1 -1
  80. package/dist/layout/Layout.js +1 -1
  81. package/dist/layout/Layout.js.map +1 -1
  82. package/dist/layout/components/layouts/NavbarToggleFabLayout.js +2 -2
  83. package/dist/layout/components/layouts/NavbarToggleFabLayout.js.map +1 -1
  84. package/dist/layout/components/layouts/NavbarWrapperLayout.js +2 -2
  85. package/dist/layout/components/layouts/NavbarWrapperLayout.js.map +1 -1
  86. package/dist/layout/components/navbar/NavbarToggleButton.js +2 -2
  87. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  88. package/dist/layout/components/navbar/style/NavbarStyle.js +1 -1
  89. package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
  90. package/dist/layout/components/navbar/style/NavbarStyleContent.js +1 -1
  91. package/dist/layout/components/navbar/style/NavbarStyleContent.js.map +1 -1
  92. package/dist/layout/components/navigation/Navigation.js +2 -2
  93. package/dist/layout/components/navigation/Navigation.js.map +1 -1
  94. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js +1 -1
  95. package/dist/layout/components/navigation/vertical/types/NavVerticalCollapse.js.map +1 -1
  96. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js +1 -1
  97. package/dist/layout/components/navigation/vertical/types/NavVerticalGroup.js.map +1 -1
  98. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js +1 -1
  99. package/dist/layout/components/navigation/vertical/types/NavVerticalItem.js.map +1 -1
  100. package/dist/layout/components/toggles/LanguageSwitcherToggle.js +1 -1
  101. package/dist/layout/components/toggles/LanguageSwitcherToggle.js.map +1 -1
  102. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  103. package/dist/layout/components/toggles/NavigationShortcutsToggle.js +1 -1
  104. package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
  105. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  106. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  107. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  108. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  109. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  110. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  111. 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
  112. package/dist/owp-app.css +1 -1
  113. package/dist/types/components/OwpCommonCode/OwpCommonCodeQuerySelector.d.ts +5 -3
  114. package/dist/types/components/OwpCommonCode/OwpCommonCodeSelector.d.ts +5 -3
  115. package/dist/types/components/OwpOptionSelector/OwpOptionSelector.d.ts +4 -1
  116. package/dist/types/components/OwpSelectorBase/types/index.d.ts +1 -1
  117. package/dist/types/components/OwpSelectorBase/types/types.d.ts +3 -0
  118. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +0 -1
  119. package/dist/types/components/OwpTable/utils/tableSx.d.ts +15 -0
  120. package/dist/types/constants/index.d.ts +1 -0
  121. package/dist/types/constants/table.d.ts +1 -0
  122. package/dist/types/hooks/index.d.ts +0 -10
  123. package/dist/types/hooks/{useNavbar.d.ts → internal/useNavbar.d.ts} +1 -1
  124. package/dist/types/utils/treeGridUtil.d.ts +0 -14
  125. package/dist/utils/{exceljsBrowser.js → internal/exceljsBrowser.js} +1 -1
  126. package/dist/utils/internal/exceljsBrowser.js.map +1 -0
  127. package/dist/utils/internal/jszipBrowser.js.map +1 -0
  128. package/dist/utils/internal/treeGridBodyRowsEvent.js.map +1 -0
  129. package/dist/utils/treeGridExportExcelUtil.js +1 -1
  130. package/dist/utils/treeGridExportExcelUtil.js.map +1 -1
  131. package/dist/utils/treeGridUtil.js +1 -6
  132. package/dist/utils/treeGridUtil.js.map +1 -1
  133. package/dist/utils/zipUtil.js +1 -1
  134. package/dist/utils/zipUtil.js.map +1 -1
  135. package/dist/utils.js +70 -75
  136. package/package.json +1 -1
  137. package/dist/hooks/useAccessTokenGuard.js.map +0 -1
  138. package/dist/hooks/useCurrentLanguage.js.map +0 -1
  139. package/dist/hooks/useDebounce.js +0 -24
  140. package/dist/hooks/useDebounce.js.map +0 -1
  141. package/dist/hooks/useDeepCompareEffect.js +0 -38
  142. package/dist/hooks/useDeepCompareEffect.js.map +0 -1
  143. package/dist/hooks/useHeaderWrapState.js.map +0 -1
  144. package/dist/hooks/useNavbar.js +0 -24
  145. package/dist/hooks/useNavbar.js.map +0 -1
  146. package/dist/hooks/useNavigationActiveRouteRemount.js.map +0 -1
  147. package/dist/hooks/usePrevious.js +0 -14
  148. package/dist/hooks/usePrevious.js.map +0 -1
  149. package/dist/hooks/useShortcuts.js.map +0 -1
  150. package/dist/hooks/useThemeMediaQuery.js.map +0 -1
  151. package/dist/hooks/useTimeout.js.map +0 -1
  152. package/dist/types/hooks/useDebounce.d.ts +0 -7
  153. package/dist/types/hooks/useDeepCompareEffect.d.ts +0 -22
  154. package/dist/types/hooks/usePrevious.d.ts +0 -5
  155. package/dist/types/utils/dayjsBrowser.d.ts +0 -1
  156. package/dist/utils/exceljsBrowser.js.map +0 -1
  157. package/dist/utils/jszipBrowser.js.map +0 -1
  158. package/dist/utils/treeGridBodyRowsEvent.js.map +0 -1
  159. /package/dist/hooks/{useHeaderWrapState.js → internal/useHeaderWrapState.js} +0 -0
  160. /package/dist/hooks/{useThemeMediaQuery.js → internal/useThemeMediaQuery.js} +0 -0
  161. /package/dist/hooks/{useTimeout.js → internal/useTimeout.js} +0 -0
  162. /package/dist/types/hooks/{useAccessTokenGuard.d.ts → internal/useAccessTokenGuard.d.ts} +0 -0
  163. /package/dist/types/hooks/{useCurrentLanguage.d.ts → internal/useCurrentLanguage.d.ts} +0 -0
  164. /package/dist/types/hooks/{useHeaderWrapState.d.ts → internal/useHeaderWrapState.d.ts} +0 -0
  165. /package/dist/types/hooks/{useNavigationActiveRouteRemount.d.ts → internal/useNavigationActiveRouteRemount.d.ts} +0 -0
  166. /package/dist/types/hooks/{useShortcuts.d.ts → internal/useShortcuts.d.ts} +0 -0
  167. /package/dist/types/hooks/{useThemeMediaQuery.d.ts → internal/useThemeMediaQuery.d.ts} +0 -0
  168. /package/dist/types/hooks/{useTimeout.d.ts → internal/useTimeout.d.ts} +0 -0
  169. /package/dist/types/utils/{exceljsBrowser.d.ts → internal/exceljsBrowser.d.ts} +0 -0
  170. /package/dist/types/utils/{jszipBrowser.d.ts → internal/jszipBrowser.d.ts} +0 -0
  171. /package/dist/types/utils/{treeGridBodyRowsEvent.d.ts → internal/treeGridBodyRowsEvent.d.ts} +0 -0
  172. /package/dist/utils/{jszipBrowser.js → internal/jszipBrowser.js} +0 -0
  173. /package/dist/utils/{treeGridBodyRowsEvent.js → internal/treeGridBodyRowsEvent.js} +0 -0
@@ -1,22 +1,24 @@
1
1
  var v = Object.defineProperty;
2
- var i = (e, t) => v(e, "name", { value: t, configurable: !0 });
3
- import { jsxs as h, jsx as l, 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 $ } from "../../constants/tableTheme.js";
5
- import { useGetCurrentSettings as V } from "../../hooks/useOwpSettings.js";
6
- import { TableCell as k, Box as j, TableBody as W, Checkbox as G } from "@mui/material";
7
- import { clsx as K } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
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 q, Fragment as X } from "react";
10
- import { FieldTableNumberValue as Z, FieldTableTextValue as J } from "./internal/FieldTableValue.js";
11
- import { OwpTableBaseRow as Q, OwpTableBase as U } from "./internal/OwpTableBase.js";
12
- import { getDefaultTableHeaderCellSx as ee, DEFAULT_TABLE_RADIUS as re, DEFAULT_TABLE_HEADER_BACKGROUND_COLOR as oe } from "./internal/defaultTableStyle.js";
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 { isNaN as ne } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNaN.js";
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 ie = 28, le = "calc(0.75rem * 1.66 + 3px)", w = {
18
+ const me = 28, k = {
17
19
  dark: "rgba(241,245,249,.12)",
18
20
  light: "#e2e8f0"
19
- }, me = {
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
- }, N = {
30
+ }, E = {
29
31
  borderTop: "1px solid #CDD8E4"
30
- }, c = "owp-field-table-cell-content", fe = {
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__ */ i((e) => {
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__ */ i((e) => /* @__PURE__ */ h(I, { children: [
58
+ }, de = /* @__PURE__ */ a((e) => /* @__PURE__ */ b(I, { children: [
66
59
  e,
67
- /* @__PURE__ */ l("span", { className: "ml-4 text-red-600", children: "*" })
68
- ] }), "getRequiredTitle"), pe = /* @__PURE__ */ i((e, t) => e == null ? void 0 : e[t], "getFieldTableValue"), ue = /* @__PURE__ */ i((e, t) => typeof t == "function" ? t(e) : ne(ae(e)) ? e === "Y" : !!Number(e), "getCheckboxChecked"), he = /* @__PURE__ */ i((e) => e.withTime ? "YYYY-MM-DD HH:mm" : e.withTimeAndSec ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD", "getDateFormat"), ce = /* @__PURE__ */ i((e, t, n) => {
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__ */ l(
71
- G,
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) ?? ie
69
+ fontSize: se(n) ?? me
77
70
  }
78
71
  }
79
72
  }
80
- ) : e.useDate ? r && P(r).format(he(e)) : e.contentType === "number" ? /* @__PURE__ */ l(
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 Le({
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: M,
104
- colGroupSlot: Y,
105
- className: y,
106
- tableLayout: H = "fixed",
107
- canTableRadiusZero: z = !1,
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: O = re
96
+ tableBorderRadius: H = V
111
97
  }) {
112
- var g, F, x, E, S, D, A, _;
113
- const a = V(), T = ((x = (F = (g = a == null ? void 0 : a.theme) == null ? void 0 : g.main) == null ? void 0 : F.palette) == null ? void 0 : x.mode) === "dark" ? w.dark : w.light, b = ((_ = (A = (D = (S = (E = a == null ? void 0 : a.theme) == null ? void 0 : E.main) == null ? void 0 : S.table) == null ? void 0 : D.field) == null ? void 0 : A.cell) == null ? void 0 : _.backgroundColor) ?? f.cell.backgroundColor, C = q(
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, m, o;
116
- return $((o = (m = (d = a == null ? void 0 : a.theme) == null ? void 0 : d.main) == null ? void 0 : m.table) == null ? void 0 : o.field, {
117
- borderColor: T,
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
- [a, T]
116
+ [i, h]
131
117
  );
132
- return /* @__PURE__ */ h(
133
- U,
118
+ return /* @__PURE__ */ b(
119
+ ee,
134
120
  {
135
- canTableRadiusZero: z,
121
+ canTableRadiusZero: y,
136
122
  canUseTableRadius: u,
137
123
  canUseTreeGridStyle: s,
138
- className: K("w-full", y),
124
+ className: q("w-full", M),
139
125
  containerProps: {
140
- sx: !s && b ? { backgroundColor: b } : void 0
126
+ sx: !s && T ? { backgroundColor: T } : void 0
141
127
  },
142
- tableTheme: C,
143
- tableLayout: H,
144
- tableBorderRadius: O,
128
+ tableTheme: c,
129
+ tableLayout: O,
130
+ tableBorderRadius: H,
145
131
  children: [
146
- Y,
147
- /* @__PURE__ */ l(W, { children: e.map((d, m) => /* @__PURE__ */ l(Q, { sx: fe, children: d.map((o, R) => /* @__PURE__ */ h(X, { children: [
148
- /* @__PURE__ */ l(
149
- k,
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
- me,
156
- m === 0 && !u && N,
157
- ...L(r, n)
158
- ] : [ee(C), ...B(n)],
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__ */ l(
164
- k,
149
+ /* @__PURE__ */ m(
150
+ N,
165
151
  {
166
152
  className: "whitespace-pre-wrap",
167
153
  sx: s ? [
168
- m === 0 && !u && N,
169
- ...L(p)
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__ */ l(j, { className: c, children: ce(o, M, p) })
160
+ children: /* @__PURE__ */ m($, { className: B, children: he(o, Y, p) })
175
161
  }
176
162
  )
177
- ] }, `owp-field-cell-${m}-${R}`)) }, `owp-field-col-${m}`)) })
163
+ ] }, `owp-field-cell-${l}-${R}`)) }, `owp-field-col-${l}`)) })
178
164
  ]
179
165
  }
180
166
  );
181
167
  }
182
- i(Le, "OwpFieldTable");
168
+ a(Ye, "OwpFieldTable");
183
169
  export {
184
- Le as OwpFieldTable
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":";;;;;;;;;;;;;;;;;AA0DA,MAAMA,KAA6B,IAC7BC,IAAgC;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AACT,GAEMC,KAA6B;AAAA,EACjC,MAAM;AAAA,IACJ,YAAYC;AAAA,IACZ,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAEb,GAEMC,IAAyB;AAAA,EAC7B,WAAW;AACb,GAEMC,IAAsC,gCAEtCC,KAAkBC,GAAwBF,CAAmC,GAI7EG,IAAuB,gBAAAC,EAAA,CAACC,MACvBA,KAIG,MAAM,QAAQA,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAAG,OAAO,OAAO,IAHrD,CAAA,GAFkB,yBAQvBC,IAA4B,gBAAAF,EAAA,IAC7BG,MAEHA,EAAO,QAAQJ,CAAoB,EAAE;AAAA,EAAI,CAACE,MACxC,OAAOA,KAAU,aACb,CAACG,OAAkB;AAAA,IACjB,OAAOH,EAAMG,CAAK;AAAA,EAAA,KAEpB;AAAA,IACE,OAAOH;AAAA,EAAA;AAEf,GAXgC,8BAa5BI,KAAuB,gBAAAL,EAAA,CAACC,MAA8D;AAC1F,MAAI,CAACA;AACH;AAGF,QAAMK,IAAa,MAAM,QAAQL,CAAK,IAAIA,IAAQ,CAACA,CAAK;AAExD,WAASM,IAAQD,EAAW,SAAS,GAAGC,KAAS,GAAGA,KAAS,GAAG;AAC9D,UAAMC,IAAYF,EAAWC,CAAK;AAElC,QAAI,GAACC,KAAa,OAAOA,KAAc,cAAc,MAAM,QAAQA,CAAS,MAIxE,OAAOA,KAAc,YAAY,cAAcA;AACjD,aAAOA,EAAU;AAAA,EAErB;AAGF,GApB6B,yBAsBvBC,IAAyB;AAAA,EAE7B,QAAQ;AAAA,IACN,iBAAiBC;AAAA,IACjB,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,EAAA;AAAA,EAEd,MAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,UAAU;AAAA,EAAA;AAEd,GAGMC,KAAmB,gBAAAX,EAAA,CAACY,MACxB,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,EAAAF;AAAA,EACD,gBAAAG,EAAC,QAAA,EAAK,WAAU,qBAAoB,UAAA,IAAA,CAAC;AAAA,GACvC,GAJuB,qBAOnBC,KAAqB,gBAAAhB,EAAA,CAACiB,GAAkCC,MACrDD,KAAA,gBAAAA,EAAOC,IADW,uBAIrBC,KAAqB,gBAAAnB,EAAA,CACzBoB,GACAC,MAEI,OAAOA,KAAa,aACfA,EAASD,CAAK,IAGnBE,GAAMC,GAASH,CAAK,CAAC,IAChBA,MAAU,MAGZ,EAAQ,OAAOA,CAAK,GAZF,uBAerBI,KAAgB,gBAAAxB,EAAA,CAACyB,MACjBA,EAAK,WACA,qBAGLA,EAAK,iBACA,wBAGF,cATa,kBAYhBC,KAA4B,gBAAA1B,EAAA,CAChCyB,GACAR,GACAU,MACc;AACd,QAAMP,IAAQJ,GAAmBC,GAAMQ,EAAK,GAAG;AAE/C,SAAI,OAAOA,EAAK,UAAW,aAClBA,EAAK,OAAA,IAGVA,EAAK,cAEL,gBAAAV;AAAA,IAACa;AAAA,IAAA;AAAA,MACC,SAAST,GAAmBC,GAAOK,EAAK,QAAQ;AAAA,MAChD,IAAI;AAAA,QACF,sBAAsB;AAAA,UACpB,UAAUpB,GAAqBsB,CAAM,KAAKpC;AAAA,QAAA;AAAA,MAC5C;AAAA,IACF;AAAA,EAAA,IAKFkC,EAAK,UACAL,KAAQS,EAAMT,CAAK,EAAE,OAAOI,GAAcC,CAAI,CAAC,IAGpDA,EAAK,gBAAgB,WAErB,gBAAAV;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,OAAAV;AAAA,MACA,eAAeK,EAAK;AAAA,MACpB,WAAWA,EAAK;AAAA,MAChB,IAAIA,EAAK;AAAA,IAAA;AAAA,EAAA,IAKXA,EAAK,gBAAgB,SAChB,gBAAAV,EAACgB,KAAoB,OAAAX,GAAc,WAAWK,EAAK,gBAAgB,IAAIA,EAAK,SAAS,IAG1FA,EAAK,sBACAL,IAGFA,KAAA,gBAAAA,EAAO;AAChB,GAhDkC;AAkE3B,SAASY,GAAc;AAAA,EAC5B,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,QAAAT;AAAA,EACA,MAAAV;AAAA,EACA,cAAAoB;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,oBAAAC,IAAqB;AAAA,EACrB,mBAAAC,IAAoB;AAAA,EACpB,qBAAAC,IAAsB;AAAA,EACtB,mBAAAC,IAAoBC;AACtB,GAAuB;;AACrB,QAAMC,IAAkBC,EAAA,GAClBC,MACJC,KAAAC,KAAAC,IAAAL,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAK,EAAwB,SAAxB,gBAAAD,EAA8B,YAA9B,gBAAAD,EAAuC,UAAS,SAC5CxD,EAA8B,OAC9BA,EAA8B,OAC9B2D,MACJC,KAAAC,KAAAC,KAAAC,KAAAC,IAAAX,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAW,EAAwB,SAAxB,gBAAAD,EAA8B,UAA9B,gBAAAD,EAAqC,UAArC,gBAAAD,EAA4C,SAA5C,gBAAAD,EAAkD,oBAClD3C,EAAuB,KAAK,iBACxBgD,IAAaC;AAAA,IACjB,MAAA;;AACE,aAAAC,GAAqBX,KAAAC,KAAAC,IAAAL,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAK,EAAwB,SAAxB,gBAAAD,EAA8B,UAA9B,gBAAAD,EAAqC,OAAO;AAAA,QAC/D,aAAaD;AAAA,QACb,QAAQ;AAAA,UACN,iBAAiBtC,EAAuB,OAAO;AAAA,UAC/C,OAAOA,EAAuB,OAAO;AAAA,UACrC,UAAUA,EAAuB,OAAO;AAAA,UACxC,YAAYA,EAAuB,OAAO;AAAA,QAAA;AAAA,QAE5C,MAAM;AAAA,UACJ,iBAAiBA,EAAuB,KAAK;AAAA,UAC7C,UAAUA,EAAuB,KAAK;AAAA,QAAA;AAAA,MACxC,CACD;AAAA;AAAA,IACH,CAACoC,GAAiBE,CAAuB;AAAA,EAAA;AAG3C,SACE,gBAAAlC;AAAA,IAAC+C;AAAA,IAAA;AAAA,MACC,oBAAApB;AAAA,MACA,mBAAAC;AAAA,MACA,qBAAAC;AAAA,MACA,WAAWmB,EAAK,UAAUvB,CAAS;AAAA,MACnC,gBAAgB;AAAA,QACd,IACE,CAACI,KAAuBS,IACpB,EAAE,iBAAiBA,MACnB;AAAA,MAAA;AAAA,MAER,YAAAM;AAAA,MACA,aAAAlB;AAAA,MACA,mBAAAI;AAAA,MAEC,UAAA;AAAA,QAAAN;AAAA,0BACAyB,GAAA,EACE,UAAA7B,EAAO,IAAI,CAAC8B,GAAMC,MACjB,gBAAAjD,EAACkD,GAAA,EAAkD,IAAIpE,IACpD,YAAK,IAAI,CAACqE,GAAKC,MACd,gBAAAtD,EAACC,GAAA,EACC,UAAA;AAAA,UAAA,gBAAAC;AAAA,YAACqD;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,WAAU;AAAA,cACV,OAAOlC,KAAc;AAAA,cACrB,IACEQ,IACI;AAAA,gBACEjD;AAAA,gBACAuE,MAAa,KAAK,CAACvB,KAAqB9C;AAAA,gBACxC,GAAGO,EAA0BkC,GAAqBD,CAAO;AAAA,cAAA,IAE3D,CAACkC,GAA4BZ,CAAU,GAAG,GAAG1D,EAAqBoC,CAAO,CAAC;AAAA,cAEhF,SAAS+B,KAAA,gBAAAA,EAAK;AAAA,cAEb,YAAI,WAAWvD,GAAiBuD,EAAI,KAAK,IAAIA,EAAI;AAAA,YAAA;AAAA,UAAA;AAAA,UAEpD,gBAAAnD;AAAA,YAACqD;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IACE1B,IACI;AAAA,gBACEsB,MAAa,KAAK,CAACvB,KAAqB9C;AAAA,gBACxC,GAAGO,EAA0ByB,CAAM;AAAA,cAAA,IAErCA;AAAA,cAEN,QAAOuC,KAAA,gBAAAA,EAAK,UAAS,CAAA;AAAA,cACrB,SAASA,KAAA,gBAAAA,EAAK;AAAA,cACd,SAASA,KAAA,gBAAAA,EAAK;AAAA,cAEd,UAAA,gBAAAnD,EAACuD,KAAI,WAAW1E,GACb,aAA0BsE,GAAKjD,GAAMU,CAAM,EAAA,CAC9C;AAAA,YAAA;AAAA,UAAA;AAAA,QACF,EAAA,GAnCa,kBAAkBqC,CAAQ,IAAIG,CAAQ,EAoCrD,CACD,EAAA,GAvCmB,iBAAiBH,CAAQ,EAwC/C,CACD,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;AAzGgBhE,EAAAgC,IAAA;"}
@@ -1,102 +1,103 @@
1
- var M = Object.defineProperty;
2
- var i = (e, o) => M(e, "name", { value: o, configurable: !0 });
3
- import { jsxs as U, jsx as n } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
4
- import { resolveOwpTableTheme as k } from "../../constants/tableTheme.js";
5
- import { useGetCurrentSettings as A } from "../../hooks/useOwpSettings.js";
6
- import { clsx as E } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
7
- import q from "@mui/material/TableBody";
8
- import B from "@mui/material/TableCell";
9
- import z from "@mui/material/TableHead";
10
- import { useMemo as b } from "react";
11
- import { getDefaultTableHeaderCellSx as F, defaultStyledTableTheme as I } from "./internal/defaultTableStyle.js";
12
- import { OwpTableBaseRow as y, OwpTableBase as J } from "./internal/OwpTableBase.js";
13
- import { OwpTableTotalCount as Q } from "./internal/OwpTableTotalCount.js";
14
- import { mergeSx as O } from "./utils/tableSx.js";
15
- import { isArray as v } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isArray.js";
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__ */ i((e) => e ? Object.keys(e).filter((o) => !o.includes("Span")) : [], "getTableColumnKeys"), j = /* @__PURE__ */ i((e, o) => e[`${o}Sx`] ?? {}, "getTableCellSx"), G = /* @__PURE__ */ i((e, o, c) => e[`${o}${c}`] ?? void 0, "getTableCellSpan"), H = {
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 no({
21
+ }, A = "owp-table-cell-content", X = Q(A);
22
+ function fo({
22
23
  canTotalCountRow: e = !1,
23
24
  headers: o,
24
- rows: c,
25
+ rows: i,
25
26
  totalCount: d,
26
27
  ...t
27
28
  }) {
28
- var w, C, T, h, g, x, S, $;
29
- const l = A(), s = ((T = (C = (w = l == null ? void 0 : l.theme) == null ? void 0 : w.main) == null ? void 0 : C.palette) == null ? void 0 : T.mode) === "dark" ? H.dark : H.light, p = b(
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 ?? k((a = (r = l == null ? void 0 : l.theme) == null ? void 0 : r.main) == null ? void 0 : a.table, {
33
- ...I,
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
- ), K = b(
39
- () => v(o) ? o : V(o) ? [] : [o],
39
+ ), H = f(
40
+ () => L(o) ? o : V(o) ? [] : [o],
40
41
  [o]
41
- ), L = b(
42
- () => R(v(o) ? o[0] : o),
42
+ ), j = f(
43
+ () => R(L(o) ? o[0] : o),
43
44
  [o]
44
- ), u = (S = (x = (g = (h = l == null ? void 0 : l.theme) == null ? void 0 : h.main) == null ? void 0 : g.table) == null ? void 0 : x.row) == null ? void 0 : S.backgroundColor;
45
- return /* @__PURE__ */ U(
46
- J,
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: O(
52
- !t.canUseTreeGridStyle && u && { backgroundColor: u },
53
- ($ = t.containerProps) == null ? void 0 : $.sx
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__ */ n(
57
- Q,
57
+ footerSlot: e ? /* @__PURE__ */ m(
58
+ J,
58
59
  {
59
60
  borderColor: p.borderColor,
60
- totalCount: typeof d > "u" ? c.length : d
61
+ totalCount: typeof d > "u" ? i.length : d
61
62
  }
62
63
  ) : void 0,
63
- className: E(t.tableLayout && "w-full", t.className),
64
+ className: U(t.tableLayout && "w-full", t.className),
64
65
  tableTheme: p,
65
66
  children: [
66
- /* @__PURE__ */ n(z, { children: K.map((r, a) => /* @__PURE__ */ n(y, { children: R(r).map((m) => /* @__PURE__ */ n(
67
- B,
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: O(
71
- !t.canUseTreeGridStyle && F(p),
72
- j(r, m)
71
+ sx: y(
72
+ !t.canUseTreeGridStyle && z(p),
73
+ E(r, n)
73
74
  ),
74
- colSpan: G(r, m, "ColSpan"),
75
- rowSpan: G(r, m, "RowSpan"),
75
+ colSpan: _(r, n, "ColSpan"),
76
+ rowSpan: _(r, n, "RowSpan"),
76
77
  align: "center",
77
- children: r[m]
78
+ children: r[n]
78
79
  },
79
- `table-header-${a}-${m}`
80
+ `table-header-${a}-${n}`
80
81
  )) }, `table-header-${a}`)) }),
81
- /* @__PURE__ */ n(q, { children: c.map((r, a) => {
82
- const m = r;
83
- return /* @__PURE__ */ n(y, { children: L.map((f) => /* @__PURE__ */ n(
84
- B,
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: j(m, f),
88
+ sx: E(n, b),
88
89
  align: "center",
89
- children: m[f]
90
+ children: /* @__PURE__ */ m(k, { className: A, children: n[b] })
90
91
  },
91
- `table-row-cell-${a}-${f}`
92
+ `table-row-cell-${a}-${b}`
92
93
  )) }, `table-row-${a}`);
93
94
  }) })
94
95
  ]
95
96
  }
96
97
  );
97
98
  }
98
- i(no, "OwpTable");
99
+ c(fo, "OwpTable");
99
100
  export {
100
- no as OwpTable
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 {\n defaultStyledTableTheme,\n getDefaultTableHeaderCellSx,\n} from './internal/defaultTableStyle';\nimport {\n OwpTableBase,\n type OwpTableBaseProps,\n OwpTableBaseRow,\n} from './internal/OwpTableBase';\nimport { OwpTableTotalCount } from './internal/OwpTableTotalCount';\nimport { 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\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}`}>\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 </OwpTableBaseRow>\n );\n })}\n </TableBody>\n </OwpTableBase>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","defaultTableBorderColorByMode","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"],"mappings":"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"}
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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"}