@owp/core 2.5.9 → 2.5.11

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 (91) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index12.js +2 -2
  3. package/dist/_virtual/index13.js +2 -2
  4. package/dist/_virtual/index14.js +2 -2
  5. package/dist/_virtual/index15.js +2 -2
  6. package/dist/_virtual/index16.js +4 -4
  7. package/dist/_virtual/index17.js +4 -4
  8. package/dist/_virtual/index18.js +4 -4
  9. package/dist/_virtual/index19.js +4 -4
  10. package/dist/_virtual/index20.js +2 -2
  11. package/dist/_virtual/index21.js +2 -2
  12. package/dist/_virtual/index22.js +2 -2
  13. package/dist/_virtual/index5.js +2 -2
  14. package/dist/components/OwpTable/OwpFieldTable.js +108 -92
  15. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  16. package/dist/components/OwpTable/OwpTable.js +161 -141
  17. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  18. package/dist/components/OwpTable/internal/FieldTableValue.js +43 -0
  19. package/dist/components/OwpTable/internal/FieldTableValue.js.map +1 -0
  20. package/dist/components/OwpTable/internal/defaultTableStyle.js +13 -10
  21. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
  22. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +170 -169
  23. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  24. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +195 -147
  25. package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
  26. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +79 -76
  27. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  28. package/dist/configs/defaultConfig.js +110 -70
  29. package/dist/configs/defaultConfig.js.map +1 -1
  30. package/dist/constants/tableTheme.js +7 -6
  31. package/dist/constants/tableTheme.js.map +1 -1
  32. package/dist/features/themePreview/components/ThemePreviewCanvas.js +275 -273
  33. package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
  34. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +552 -316
  35. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -1
  36. package/dist/features/themePreview/components/ThemePreviewColorField.js +227 -202
  37. package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -1
  38. package/dist/features/themePreview/components/ThemePreviewControls.js +270 -220
  39. package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -1
  40. package/dist/features/themePreview/components/themePreviewCanvas.shared.js +38 -38
  41. package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -1
  42. package/dist/features/themePreview/configs/settings.js +33 -20
  43. package/dist/features/themePreview/configs/settings.js.map +1 -1
  44. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +227 -220
  45. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
  46. package/dist/features/themePreview/hooks/useThemePreview.js +250 -226
  47. package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
  48. package/dist/features/themePreview/utils/themePreviewDefinitions.js +63 -30
  49. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
  50. package/dist/features/themePreview/utils/themePreviewSettings.js +188 -151
  51. package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -1
  52. package/dist/features/themePreview.js +18 -17
  53. package/dist/layout/components/navbar/NavbarToggleButton.js +46 -42
  54. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  55. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  56. package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/match/index.js +1 -1
  57. package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/parse/index.js +1 -1
  58. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  59. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  60. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  61. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  62. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  63. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  64. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  65. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  66. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  67. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  68. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  69. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  70. package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
  71. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  72. 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
  73. package/dist/owp-app.css +1 -1
  74. package/dist/types/components/OwpTable/OwpFieldTable.d.ts +7 -3
  75. package/dist/types/components/OwpTable/OwpTable.d.ts +3 -1
  76. package/dist/types/components/OwpTable/internal/FieldTableValue.d.ts +17 -0
  77. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +3 -0
  78. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +3 -1
  79. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +1 -1
  80. package/dist/types/configs/defaultConfig.d.ts +42 -3
  81. package/dist/types/constants/tableTheme.d.ts +1 -0
  82. package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +8 -0
  83. package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +3 -3
  84. package/dist/types/features/themePreview/configs/settings.d.ts +12 -0
  85. package/dist/types/features/themePreview/utils/index.d.ts +1 -1
  86. package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +11 -1
  87. package/dist/types/index.d.ts +1 -0
  88. package/dist/types/types/OwpMuiThemeTypes.d.ts +9 -0
  89. package/dist/types/types/OwpTableThemeTypes.d.ts +1 -0
  90. package/dist/types/types/index.d.ts +1 -0
  91. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- var a = {};
1
+ var r = {};
2
2
  export {
3
- a as __exports
3
+ r as __exports
4
4
  };
5
5
  //# sourceMappingURL=index10.js.map
@@ -1,5 +1,5 @@
1
- var r = {};
1
+ var a = {};
2
2
  export {
3
- r as __exports
3
+ a as __exports
4
4
  };
5
5
  //# sourceMappingURL=index12.js.map
@@ -1,5 +1,5 @@
1
- var e = {};
1
+ var r = {};
2
2
  export {
3
- e as __exports
3
+ r as __exports
4
4
  };
5
5
  //# sourceMappingURL=index13.js.map
@@ -1,5 +1,5 @@
1
- var r = {};
1
+ var e = {};
2
2
  export {
3
- r as __exports
3
+ e as __exports
4
4
  };
5
5
  //# sourceMappingURL=index14.js.map
@@ -1,5 +1,5 @@
1
- var e = { exports: {} };
1
+ var r = {};
2
2
  export {
3
- e as __module
3
+ r as __exports
4
4
  };
5
5
  //# sourceMappingURL=index15.js.map
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
- import { __require as t } from "../node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/match/index.js";
3
- var o = t();
4
- const m = /* @__PURE__ */ r(o);
2
+ import { __require as o } from "../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js";
3
+ var p = /* @__PURE__ */ o();
4
+ const s = /* @__PURE__ */ r(p);
5
5
  export {
6
- m as default
6
+ s as default
7
7
  };
8
8
  //# sourceMappingURL=index16.js.map
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
- import { __require as e } from "../node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/parse/index.js";
3
- var o = e();
4
- const s = /* @__PURE__ */ r(o);
2
+ import { __require as t } from "../node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/match/index.js";
3
+ var o = t();
4
+ const m = /* @__PURE__ */ r(o);
5
5
  export {
6
- s as default
6
+ m as default
7
7
  };
8
8
  //# sourceMappingURL=index17.js.map
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
- import { __require as t } from "../node_modules/.pnpm/react-autosuggest@10.1.0_react@19.2.4/node_modules/react-autosuggest/dist/index.js";
3
- var o = t();
4
- const i = /* @__PURE__ */ r(o);
2
+ import { __require as e } from "../node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/parse/index.js";
3
+ var o = e();
4
+ const s = /* @__PURE__ */ r(o);
5
5
  export {
6
- i as default
6
+ s as default
7
7
  };
8
8
  //# sourceMappingURL=index18.js.map
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
2
- import { __require as o } from "../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js";
3
- var p = /* @__PURE__ */ o();
4
- const s = /* @__PURE__ */ r(p);
2
+ import { __require as t } from "../node_modules/.pnpm/react-autosuggest@10.1.0_react@19.2.4/node_modules/react-autosuggest/dist/index.js";
3
+ var o = t();
4
+ const i = /* @__PURE__ */ r(o);
5
5
  export {
6
- s as default
6
+ i as default
7
7
  };
8
8
  //# sourceMappingURL=index19.js.map
@@ -1,5 +1,5 @@
1
- var a = { exports: {} };
1
+ var p = { exports: {} };
2
2
  export {
3
- a as __module
3
+ p as __module
4
4
  };
5
5
  //# sourceMappingURL=index20.js.map
@@ -1,5 +1,5 @@
1
- var e = { exports: {} };
1
+ var a = { exports: {} };
2
2
  export {
3
- e as __module
3
+ a as __module
4
4
  };
5
5
  //# sourceMappingURL=index21.js.map
@@ -1,5 +1,5 @@
1
- var p = { exports: {} };
1
+ var e = { exports: {} };
2
2
  export {
3
- p as __module
3
+ e as __module
4
4
  };
5
5
  //# sourceMappingURL=index22.js.map
@@ -1,5 +1,5 @@
1
- var r = {};
1
+ var e = { exports: {} };
2
2
  export {
3
- r as __exports
3
+ e as __module
4
4
  };
5
5
  //# sourceMappingURL=index5.js.map
@@ -1,47 +1,51 @@
1
- var M = Object.defineProperty;
2
- var i = (e, o) => M(e, "name", { value: o, configurable: !0 });
3
- import { jsxs as u, jsx as d, Fragment 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 H } from "../../constants/tableTheme.js";
5
- import { useGetCurrentSettings as B } from "../../hooks/useOwpSettings.js";
6
- import { TableCell as F, TableBody as E, Box as _, Checkbox as O } from "@mui/material";
7
- import { clsx as R } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
8
- import v from "dayjs";
9
- import { useMemo as L, Fragment as j } from "react";
10
- import { getDefaultTableHeaderCellSx as W } from "./internal/defaultTableStyle.js";
11
- import { TREEGRID_TABLE_FONT_FAMILY_STACK as $ } from "./internal/treeGridTableStyle.js";
12
- import { StyledTableRow as I, StyledTable as q } from "./OwpTable.js";
13
- import { isNaN as G } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNaN.js";
14
- import { toNumber as K } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/util/toNumber.js";
15
- const V = 28, P = {
1
+ var E = Object.defineProperty;
2
+ var a = (e, t) => E(e, "name", { value: t, configurable: !0 });
3
+ import { jsxs as p, jsx as m, Fragment as _ } 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 O } from "../../constants/tableTheme.js";
5
+ import { useGetCurrentSettings as R } from "../../hooks/useOwpSettings.js";
6
+ import { TableCell as D, TableBody as L, Checkbox as j } from "@mui/material";
7
+ import { clsx as V } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
8
+ import W from "dayjs";
9
+ import { useMemo as $, Fragment as I } from "react";
10
+ import { FieldTableNumberValue as q, FieldTableTextValue as G } from "./internal/FieldTableValue.js";
11
+ import { getDefaultTableHeaderCellSx as K } from "./internal/defaultTableStyle.js";
12
+ import { TREEGRID_TABLE_FONT_FAMILY_STACK as P } from "./internal/treeGridTableStyle.js";
13
+ import { StyledTableRow as X, StyledTable as Z } from "./OwpTable.js";
14
+ import { isNaN as J } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNaN.js";
15
+ import { toNumber as Q } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/util/toNumber.js";
16
+ const U = 28, N = {
17
+ dark: "rgba(241,245,249,.12)",
18
+ light: "#e2e8f0"
19
+ }, ee = {
16
20
  "&&": {
17
- fontFamily: $,
21
+ fontFamily: P,
18
22
  fontSize: "1.7rem",
19
23
  fontWeight: 600,
20
24
  lineHeight: "normal",
21
25
  minHeight: "unset",
22
26
  padding: "7px 10px"
23
27
  }
24
- }, X = {
28
+ }, re = {
25
29
  borderRadius: 0,
26
30
  overflow: "visible"
27
- }, k = {
31
+ }, Y = {
28
32
  borderTop: "1px solid #CDD8E4"
29
- }, Y = /* @__PURE__ */ i((e) => e ? (Array.isArray(e) ? e : [e]).filter(Boolean) : [], "normalizeTableCellSx"), w = /* @__PURE__ */ i((...e) => e.flatMap(Y).map(
30
- (o) => typeof o == "function" ? (n) => ({
31
- "&&&": o(n)
33
+ }, z = /* @__PURE__ */ a((e) => e ? (Array.isArray(e) ? e : [e]).filter(Boolean) : [], "normalizeTableCellSx"), y = /* @__PURE__ */ a((...e) => e.flatMap(z).map(
34
+ (t) => typeof t == "function" ? (n) => ({
35
+ "&&&": t(n)
32
36
  }) : {
33
- "&&&": o
37
+ "&&&": t
34
38
  }
35
- ), "getTreeGridCellOverrideSx"), Z = /* @__PURE__ */ i((e) => {
39
+ ), "getTreeGridCellOverrideSx"), oe = /* @__PURE__ */ a((e) => {
36
40
  if (!e)
37
41
  return;
38
- const o = Array.isArray(e) ? e : [e];
39
- for (let n = o.length - 1; n >= 0; n -= 1) {
40
- const t = o[n];
41
- if (!(!t || typeof t == "function" || Array.isArray(t)) && typeof t == "object" && "fontSize" in t)
42
- return t.fontSize;
42
+ const t = Array.isArray(e) ? e : [e];
43
+ for (let n = t.length - 1; n >= 0; n -= 1) {
44
+ const r = t[n];
45
+ if (!(!r || typeof r == "function" || Array.isArray(r)) && typeof r == "object" && "fontSize" in r)
46
+ return r.fontSize;
43
47
  }
44
- }, "getTableCellFontSize"), m = {
48
+ }, "getTableCellFontSize"), f = {
45
49
  header: {
46
50
  backgroundColor: "#eeeeee",
47
51
  color: "#111827",
@@ -52,107 +56,119 @@ const V = 28, P = {
52
56
  backgroundColor: "#FFFFFF",
53
57
  fontSize: "1.7rem"
54
58
  }
55
- }, J = /* @__PURE__ */ i((e) => /* @__PURE__ */ u(N, { children: [
59
+ }, te = /* @__PURE__ */ a((e) => /* @__PURE__ */ p(_, { children: [
56
60
  e,
57
- /* @__PURE__ */ d("span", { className: "ml-4 text-red-600", children: "*" })
58
- ] }), "getRequiredTitle"), Q = /* @__PURE__ */ i((e, o) => e == null ? void 0 : e[o], "getFieldTableValue"), U = /* @__PURE__ */ i((e, o) => typeof o == "function" ? o(e) : G(K(e)) ? e === "Y" : !!Number(e), "getCheckboxChecked"), ee = /* @__PURE__ */ i((e) => e.withTime ? "YYYY-MM-DD HH:mm" : e.withTimeAndSec ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD", "getDateFormat"), re = /* @__PURE__ */ i((e, o, n) => {
59
- const t = Q(o, e.key);
60
- if (typeof e.render == "function") {
61
- const l = e.render();
62
- return (e.contentType ?? "input") === "text" ? /* @__PURE__ */ d(_, { sx: { px: 1.25 }, children: l }) : l;
63
- }
64
- return e.useCheckbox ? /* @__PURE__ */ d(
65
- O,
61
+ /* @__PURE__ */ m("span", { className: "ml-4 text-red-600", children: "*" })
62
+ ] }), "getRequiredTitle"), ne = /* @__PURE__ */ a((e, t) => e == null ? void 0 : e[t], "getFieldTableValue"), ie = /* @__PURE__ */ a((e, t) => typeof t == "function" ? t(e) : J(Q(e)) ? e === "Y" : !!Number(e), "getCheckboxChecked"), ae = /* @__PURE__ */ a((e) => e.withTime ? "YYYY-MM-DD HH:mm" : e.withTimeAndSec ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD", "getDateFormat"), me = /* @__PURE__ */ a((e, t, n) => {
63
+ const r = ne(t, e.key);
64
+ return typeof e.render == "function" ? e.render() : e.useCheckbox ? /* @__PURE__ */ m(
65
+ j,
66
66
  {
67
- checked: U(t, e.validate),
67
+ checked: ie(r, e.validate),
68
68
  sx: {
69
69
  "& .MuiSvgIcon-root": {
70
- fontSize: Z(n) ?? V
70
+ fontSize: oe(n) ?? U
71
71
  }
72
72
  }
73
73
  }
74
- ) : e.useDate ? t && v(t).format(ee(e)) : e.disableLocaleString ? t : t == null ? void 0 : t.toLocaleString();
74
+ ) : e.useDate ? r && W(r).format(ae(e)) : e.contentType === "number" ? /* @__PURE__ */ m(
75
+ q,
76
+ {
77
+ value: r,
78
+ valueDecimals: e.valueDecimals,
79
+ className: e.valueClassName,
80
+ sx: e.valueSx
81
+ }
82
+ ) : e.contentType === "text" ? /* @__PURE__ */ m(
83
+ G,
84
+ {
85
+ value: r,
86
+ className: e.valueClassName,
87
+ sx: e.valueSx
88
+ }
89
+ ) : e.disableLocaleString ? r : r == null ? void 0 : r.toLocaleString();
75
90
  }, "renderFieldTableCellValue");
76
- function he({
91
+ function Se({
77
92
  layout: e,
78
- titleWidth: o,
93
+ titleWidth: t,
79
94
  titleSx: n,
80
- treeGridTitleCellSx: t,
81
- cellSx: l,
82
- data: c,
83
- colGroupSlot: D,
84
- className: y,
85
- tableLayout: z = "fixed",
86
- canUseTreeGridStyle: s = !1
95
+ treeGridTitleCellSx: r,
96
+ cellSx: u,
97
+ data: v,
98
+ colGroupSlot: A,
99
+ className: M,
100
+ tableLayout: B = "fixed",
101
+ canUseTreeGridStyle: d = !1
87
102
  }) {
88
- var g, C, T, S, x;
89
- const a = B(), h = ((x = (S = (T = (C = (g = a == null ? void 0 : a.theme) == null ? void 0 : g.main) == null ? void 0 : C.table) == null ? void 0 : T.field) == null ? void 0 : S.cell) == null ? void 0 : x.backgroundColor) ?? m.cell.backgroundColor, b = L(
103
+ var C, T, g, x, F, S, k, w;
104
+ const i = R(), b = ((g = (T = (C = i == null ? void 0 : i.theme) == null ? void 0 : C.main) == null ? void 0 : T.palette) == null ? void 0 : g.mode) === "dark" ? N.dark : N.light, h = ((w = (k = (S = (F = (x = i == null ? void 0 : i.theme) == null ? void 0 : x.main) == null ? void 0 : F.table) == null ? void 0 : S.field) == null ? void 0 : k.cell) == null ? void 0 : w.backgroundColor) ?? f.cell.backgroundColor, c = $(
90
105
  () => {
91
- var p, f, r;
92
- return H((r = (f = (p = a == null ? void 0 : a.theme) == null ? void 0 : p.main) == null ? void 0 : f.table) == null ? void 0 : r.field, {
106
+ var s, l, o;
107
+ return O((o = (l = (s = i == null ? void 0 : i.theme) == null ? void 0 : s.main) == null ? void 0 : l.table) == null ? void 0 : o.field, {
108
+ borderColor: b,
93
109
  header: {
94
- backgroundColor: m.header.backgroundColor,
95
- color: m.header.color,
96
- fontSize: m.header.fontSize,
97
- fontWeight: m.header.fontWeight
110
+ backgroundColor: f.header.backgroundColor,
111
+ color: f.header.color,
112
+ fontSize: f.header.fontSize,
113
+ fontWeight: f.header.fontWeight
98
114
  },
99
115
  cell: {
100
- backgroundColor: m.cell.backgroundColor,
101
- fontSize: m.cell.fontSize
116
+ backgroundColor: f.cell.backgroundColor,
117
+ fontSize: f.cell.fontSize
102
118
  }
103
119
  });
104
120
  },
105
- [a]
121
+ [i, b]
106
122
  );
107
- return /* @__PURE__ */ u(
108
- q,
123
+ return /* @__PURE__ */ p(
124
+ Z,
109
125
  {
110
- canUseTreeGridStyle: s,
111
- className: R("w-full", y),
126
+ canUseTreeGridStyle: d,
127
+ className: V("w-full", M),
112
128
  containerProps: {
113
129
  sx: [
114
- s ? X : void 0,
115
- !s && h ? { backgroundColor: h } : void 0
130
+ d ? re : void 0,
131
+ !d && h ? { backgroundColor: h } : void 0
116
132
  ]
117
133
  },
118
- tableTheme: b,
119
- tableLayout: z,
134
+ tableTheme: c,
135
+ tableLayout: B,
120
136
  children: [
121
- D,
122
- /* @__PURE__ */ d(E, { children: e.map((p, f) => /* @__PURE__ */ d(I, { children: p.map((r, A) => /* @__PURE__ */ u(j, { children: [
123
- /* @__PURE__ */ d(
124
- F,
137
+ A,
138
+ /* @__PURE__ */ m(L, { children: e.map((s, l) => /* @__PURE__ */ m(X, { children: s.map((o, H) => /* @__PURE__ */ p(I, { children: [
139
+ /* @__PURE__ */ m(
140
+ D,
125
141
  {
126
142
  component: "th",
127
143
  className: "whitespace-pre-wrap",
128
- width: o ?? 200,
129
- sx: s ? [
130
- P,
131
- f === 0 && k,
132
- ...w(t, n)
133
- ] : [W(b), ...Y(n)],
134
- rowSpan: r == null ? void 0 : r.rowSpan,
135
- children: r.required ? J(r.title) : r.title
144
+ width: t ?? 200,
145
+ sx: d ? [
146
+ ee,
147
+ l === 0 && Y,
148
+ ...y(r, n)
149
+ ] : [K(c), ...z(n)],
150
+ rowSpan: o == null ? void 0 : o.rowSpan,
151
+ children: o.required ? te(o.title) : o.title
136
152
  }
137
153
  ),
138
- /* @__PURE__ */ d(
139
- F,
154
+ /* @__PURE__ */ m(
155
+ D,
140
156
  {
141
157
  className: "whitespace-pre-wrap",
142
- sx: s ? [f === 0 && k, ...w(l)] : l,
143
- style: (r == null ? void 0 : r.style) ?? {},
144
- colSpan: r == null ? void 0 : r.colSpan,
145
- rowSpan: r == null ? void 0 : r.rowSpan,
146
- children: re(r, c, l)
158
+ sx: d ? [l === 0 && Y, ...y(u)] : u,
159
+ style: (o == null ? void 0 : o.style) ?? {},
160
+ colSpan: o == null ? void 0 : o.colSpan,
161
+ rowSpan: o == null ? void 0 : o.rowSpan,
162
+ children: me(o, v, u)
147
163
  }
148
164
  )
149
- ] }, `owp-field-cell-${f}-${A}`)) }, `owp-field-col-${f}`)) })
165
+ ] }, `owp-field-cell-${l}-${H}`)) }, `owp-field-col-${l}`)) })
150
166
  ]
151
167
  }
152
168
  );
153
169
  }
154
- i(he, "OwpFieldTable");
170
+ a(Se, "OwpFieldTable");
155
171
  export {
156
- he as OwpFieldTable
172
+ Se as OwpFieldTable
157
173
  };
158
174
  //# 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 { getDefaultTableHeaderCellSx } from './internal/defaultTableStyle';\nimport { TREEGRID_TABLE_FONT_FAMILY_STACK } from './internal/treeGridTableStyle';\nimport { StyledTable, StyledTableRow } from './OwpTable';\n\ntype OwpFieldTableCell = {\n title: string;\n key: string;\n contentType?: 'input' | 'text';\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) => boolean;\n};\n\ntype OwpFieldTableValue = string | number | '';\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 canUseTreeGridStyle?: boolean;\n}\n\nconst DEFAULT_CHECKBOX_FONT_SIZE = 28;\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 treeGridContainerSx = {\n borderRadius: 0,\n overflow: 'visible',\n} as const;\n\nconst treeGridFirstRowCellSx = {\n borderTop: '1px solid #CDD8E4',\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 header: {\n backgroundColor: '#eeeeee',\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 const renderedContent = cell.render();\n const contentType = cell.contentType ?? 'input';\n\n return contentType === 'text'\n ? <Box sx={{ px: 1.25 }}>{renderedContent}</Box>\n : renderedContent;\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.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 canUseTreeGridStyle TreeGrid 스타일 사용 여부\n */\nexport function OwpFieldTable({\n layout,\n titleWidth,\n titleSx,\n treeGridTitleCellSx,\n cellSx,\n data,\n colGroupSlot,\n className,\n tableLayout = 'fixed',\n canUseTreeGridStyle = false,\n}: OwpFieldTableProps) {\n const currentSettings = useGetCurrentSettings();\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 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],\n );\n\n return (\n <StyledTable\n canUseTreeGridStyle={canUseTreeGridStyle}\n className={clsx('w-full', className)}\n containerProps={{\n sx: [\n canUseTreeGridStyle ? treeGridContainerSx : undefined,\n !canUseTreeGridStyle && tableBackgroundColor\n ? { backgroundColor: tableBackgroundColor }\n : undefined,\n ],\n }}\n tableTheme={tableTheme}\n tableLayout={tableLayout}\n >\n {colGroupSlot}\n <TableBody>\n {layout.map((cols, rowIndex) => (\n <StyledTableRow key={`owp-field-col-${rowIndex}`}>\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 && 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 ? [rowIndex === 0 && treeGridFirstRowCellSx, ...getTreeGridCellOverrideSx(cellSx)]\n : cellSx\n }\n style={col?.style ?? {}}\n colSpan={col?.colSpan}\n rowSpan={col?.rowSpan}\n >\n {renderFieldTableCellValue(col, data, cellSx)}\n </TableCell>\n </Fragment>\n ))}\n </StyledTableRow>\n ))}\n </TableBody>\n </StyledTable>\n );\n}\n"],"names":["DEFAULT_CHECKBOX_FONT_SIZE","defaultTreeGridTitleCellSx","TREEGRID_TABLE_FONT_FAMILY_STACK","treeGridContainerSx","treeGridFirstRowCellSx","normalizeTableCellSx","__name","style","getTreeGridCellOverrideSx","styles","theme","getTableCellFontSize","styleItems","index","styleItem","defaultFieldTableTheme","getRequiredTitle","title","jsxs","Fragment","jsx","getFieldTableValue","data","key","getCheckboxChecked","value","validate","isNaN","toNumber","getDateFormat","cell","renderFieldTableCellValue","cellSx","renderedContent","Box","Checkbox","dayjs","OwpFieldTable","layout","titleWidth","titleSx","treeGridTitleCellSx","colGroupSlot","className","tableLayout","canUseTreeGridStyle","currentSettings","useGetCurrentSettings","tableBackgroundColor","_e","_d","_c","_b","_a","tableTheme","useMemo","resolveOwpTableTheme","StyledTable","clsx","TableBody","cols","rowIndex","StyledTableRow","col","colIndex","TableCell","getDefaultTableHeaderCellSx"],"mappings":"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"}
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 { 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 { getDefaultTableHeaderCellSx } from './internal/defaultTableStyle';\nimport { TREEGRID_TABLE_FONT_FAMILY_STACK } from './internal/treeGridTableStyle';\nimport { StyledTable, StyledTableRow } from './OwpTable';\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 canUseTreeGridStyle?: boolean;\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 treeGridContainerSx = {\n borderRadius: 0,\n overflow: 'visible',\n} as const;\n\nconst treeGridFirstRowCellSx = {\n borderTop: '1px solid #CDD8E4',\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: '#eeeeee',\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 canUseTreeGridStyle TreeGrid 스타일 사용 여부\n */\nexport function OwpFieldTable({\n layout,\n titleWidth,\n titleSx,\n treeGridTitleCellSx,\n cellSx,\n data,\n colGroupSlot,\n className,\n tableLayout = 'fixed',\n canUseTreeGridStyle = false,\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 <StyledTable\n canUseTreeGridStyle={canUseTreeGridStyle}\n className={clsx('w-full', className)}\n containerProps={{\n sx: [\n canUseTreeGridStyle ? treeGridContainerSx : undefined,\n !canUseTreeGridStyle && tableBackgroundColor\n ? { backgroundColor: tableBackgroundColor }\n : undefined,\n ],\n }}\n tableTheme={tableTheme}\n tableLayout={tableLayout}\n >\n {colGroupSlot}\n <TableBody>\n {layout.map((cols, rowIndex) => (\n <StyledTableRow key={`owp-field-col-${rowIndex}`}>\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 && 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 ? [rowIndex === 0 && treeGridFirstRowCellSx, ...getTreeGridCellOverrideSx(cellSx)]\n : cellSx\n }\n style={col?.style ?? {}}\n colSpan={col?.colSpan}\n rowSpan={col?.rowSpan}\n >\n {renderFieldTableCellValue(col, data, cellSx)}\n </TableCell>\n </Fragment>\n ))}\n </StyledTableRow>\n ))}\n </TableBody>\n </StyledTable>\n );\n}\n"],"names":["DEFAULT_CHECKBOX_FONT_SIZE","defaultTableBorderColorByMode","defaultTreeGridTitleCellSx","TREEGRID_TABLE_FONT_FAMILY_STACK","treeGridContainerSx","treeGridFirstRowCellSx","normalizeTableCellSx","__name","style","getTreeGridCellOverrideSx","styles","theme","getTableCellFontSize","styleItems","index","styleItem","defaultFieldTableTheme","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","canUseTreeGridStyle","currentSettings","useGetCurrentSettings","defaultTableBorderColor","_c","_b","_a","tableBackgroundColor","_h","_g","_f","_e","_d","tableTheme","useMemo","resolveOwpTableTheme","StyledTable","clsx","TableBody","cols","rowIndex","StyledTableRow","col","colIndex","TableCell","getDefaultTableHeaderCellSx"],"mappings":"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"}