@owp/core 2.5.10 → 2.5.12

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 (71) hide show
  1. package/dist/_virtual/index11.js +2 -2
  2. package/dist/_virtual/index13.js +2 -2
  3. package/dist/_virtual/index14.js +2 -2
  4. package/dist/_virtual/index15.js +2 -2
  5. package/dist/components/OwpSearchFilter/OwpSearchFilter.js +42 -26
  6. package/dist/components/OwpSearchFilter/OwpSearchFilter.js.map +1 -1
  7. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +51 -51
  8. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
  9. package/dist/components/OwpTable/OwpFieldTable.js +115 -90
  10. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  11. package/dist/components/OwpTable/OwpTable.js +161 -141
  12. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  13. package/dist/components/OwpTable/internal/FieldTableValue.js +43 -0
  14. package/dist/components/OwpTable/internal/FieldTableValue.js.map +1 -0
  15. package/dist/components/OwpTable/internal/defaultTableStyle.js +13 -10
  16. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
  17. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +176 -168
  18. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  19. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +215 -147
  20. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  21. package/dist/configs/defaultConfig.js +110 -70
  22. package/dist/configs/defaultConfig.js.map +1 -1
  23. package/dist/constants/tableTheme.js +7 -6
  24. package/dist/constants/tableTheme.js.map +1 -1
  25. package/dist/features/themePreview/components/ThemePreviewCanvas.js +275 -273
  26. package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
  27. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +552 -316
  28. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -1
  29. package/dist/features/themePreview/components/ThemePreviewColorField.js +227 -201
  30. package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -1
  31. package/dist/features/themePreview/components/ThemePreviewControls.js +176 -160
  32. package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -1
  33. package/dist/features/themePreview/components/themePreviewCanvas.shared.js +38 -38
  34. package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -1
  35. package/dist/features/themePreview/configs/settings.js +33 -20
  36. package/dist/features/themePreview/configs/settings.js.map +1 -1
  37. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +227 -220
  38. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
  39. package/dist/features/themePreview/hooks/useThemePreview.js +213 -204
  40. package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
  41. package/dist/features/themePreview/utils/themePreviewDefinitions.js +63 -30
  42. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
  43. package/dist/layout/components/navbar/NavbarToggleButton.js +46 -42
  44. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  45. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  46. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  47. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  48. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  49. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  50. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  51. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  52. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  53. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  54. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  55. package/dist/owp-app.css +1 -1
  56. package/dist/types/components/OwpTable/OwpFieldTable.d.ts +7 -3
  57. package/dist/types/components/OwpTable/OwpTable.d.ts +3 -1
  58. package/dist/types/components/OwpTable/internal/FieldTableValue.d.ts +17 -0
  59. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +3 -0
  60. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +7 -1
  61. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +4 -2
  62. package/dist/types/configs/defaultConfig.d.ts +42 -3
  63. package/dist/types/constants/tableTheme.d.ts +1 -0
  64. package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +8 -0
  65. package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +3 -3
  66. package/dist/types/features/themePreview/configs/settings.d.ts +12 -0
  67. package/dist/types/index.d.ts +1 -0
  68. package/dist/types/types/OwpMuiThemeTypes.d.ts +9 -0
  69. package/dist/types/types/OwpTableThemeTypes.d.ts +1 -0
  70. package/dist/types/types/index.d.ts +1 -0
  71. package/package.json +1 -1
@@ -1,47 +1,60 @@
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 H = Object.defineProperty;
2
+ var a = (e, t) => H(e, "name", { value: t, configurable: !0 });
3
+ import { jsxs as p, jsx as l, Fragment as v } 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 R } from "../../constants/tableTheme.js";
5
+ import { useGetCurrentSettings as O } from "../../hooks/useOwpSettings.js";
6
+ import { TableCell as w, Box as $, TableBody as I, Checkbox as V } from "@mui/material";
7
+ import { clsx as j } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
8
+ import W from "dayjs";
9
+ import { useMemo as P, Fragment as q } from "react";
10
+ import { FieldTableNumberValue as G, FieldTableTextValue as K } from "./internal/FieldTableValue.js";
11
+ import { getDefaultTableHeaderCellSx as X } from "./internal/defaultTableStyle.js";
12
+ import { TREEGRID_TABLE_FONT_FAMILY_STACK as Z } from "./internal/treeGridTableStyle.js";
13
+ import { StyledTableRow as J, StyledTable as Q } from "./OwpTable.js";
14
+ import { isNaN as U } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNaN.js";
15
+ import { toNumber as ee } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/util/toNumber.js";
16
+ const re = 28, oe = "calc(0.75rem * 1.66 + 3px)", D = {
17
+ dark: "rgba(241,245,249,.12)",
18
+ light: "#e2e8f0"
19
+ }, te = {
16
20
  "&&": {
17
- fontFamily: $,
21
+ fontFamily: Z,
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
+ }, ne = {
25
29
  borderRadius: 0,
26
30
  overflow: "visible"
27
- }, k = {
31
+ }, _ = {
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
+ }, b = "owp-field-table-cell-content", ie = {
34
+ [`&:has(.MuiFormHelperText-root) .${b}::after`]: {
35
+ content: '""',
36
+ display: "block",
37
+ height: oe
38
+ },
39
+ [`&:has(.MuiFormHelperText-root) .${b}:has(.MuiFormHelperText-root)::after`]: {
40
+ display: "none"
41
+ }
42
+ }, M = /* @__PURE__ */ a((e) => e ? (Array.isArray(e) ? e : [e]).filter(Boolean) : [], "normalizeTableCellSx"), A = /* @__PURE__ */ a((...e) => e.flatMap(M).map(
43
+ (t) => typeof t == "function" ? (n) => ({
44
+ "&&&": t(n)
32
45
  }) : {
33
- "&&&": o
46
+ "&&&": t
34
47
  }
35
- ), "getTreeGridCellOverrideSx"), Z = /* @__PURE__ */ i((e) => {
48
+ ), "getTreeGridCellOverrideSx"), ae = /* @__PURE__ */ a((e) => {
36
49
  if (!e)
37
50
  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;
51
+ const t = Array.isArray(e) ? e : [e];
52
+ for (let n = t.length - 1; n >= 0; n -= 1) {
53
+ const r = t[n];
54
+ if (!(!r || typeof r == "function" || Array.isArray(r)) && typeof r == "object" && "fontSize" in r)
55
+ return r.fontSize;
43
56
  }
44
- }, "getTableCellFontSize"), m = {
57
+ }, "getTableCellFontSize"), f = {
45
58
  header: {
46
59
  backgroundColor: "#eeeeee",
47
60
  color: "#111827",
@@ -52,107 +65,119 @@ const V = 28, P = {
52
65
  backgroundColor: "#FFFFFF",
53
66
  fontSize: "1.7rem"
54
67
  }
55
- }, J = /* @__PURE__ */ i((e) => /* @__PURE__ */ u(N, { children: [
68
+ }, le = /* @__PURE__ */ a((e) => /* @__PURE__ */ p(v, { children: [
56
69
  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,
70
+ /* @__PURE__ */ l("span", { className: "ml-4 text-red-600", children: "*" })
71
+ ] }), "getRequiredTitle"), me = /* @__PURE__ */ a((e, t) => e == null ? void 0 : e[t], "getFieldTableValue"), fe = /* @__PURE__ */ a((e, t) => typeof t == "function" ? t(e) : U(ee(e)) ? e === "Y" : !!Number(e), "getCheckboxChecked"), de = /* @__PURE__ */ a((e) => e.withTime ? "YYYY-MM-DD HH:mm" : e.withTimeAndSec ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD", "getDateFormat"), se = /* @__PURE__ */ a((e, t, n) => {
72
+ const r = me(t, e.key);
73
+ return typeof e.render == "function" ? e.render() : e.useCheckbox ? /* @__PURE__ */ l(
74
+ V,
66
75
  {
67
- checked: U(t, e.validate),
76
+ checked: fe(r, e.validate),
68
77
  sx: {
69
78
  "& .MuiSvgIcon-root": {
70
- fontSize: Z(n) ?? V
79
+ fontSize: ae(n) ?? re
71
80
  }
72
81
  }
73
82
  }
74
- ) : e.useDate ? t && v(t).format(ee(e)) : e.disableLocaleString ? t : t == null ? void 0 : t.toLocaleString();
83
+ ) : e.useDate ? r && W(r).format(de(e)) : e.contentType === "number" ? /* @__PURE__ */ l(
84
+ G,
85
+ {
86
+ value: r,
87
+ valueDecimals: e.valueDecimals,
88
+ className: e.valueClassName,
89
+ sx: e.valueSx
90
+ }
91
+ ) : e.contentType === "text" ? /* @__PURE__ */ l(
92
+ K,
93
+ {
94
+ value: r,
95
+ className: e.valueClassName,
96
+ sx: e.valueSx
97
+ }
98
+ ) : e.disableLocaleString ? r : r == null ? void 0 : r.toLocaleString();
75
99
  }, "renderFieldTableCellValue");
76
- function he({
100
+ function we({
77
101
  layout: e,
78
- titleWidth: o,
102
+ titleWidth: t,
79
103
  titleSx: n,
80
- treeGridTitleCellSx: t,
81
- cellSx: l,
82
- data: c,
83
- colGroupSlot: D,
84
- className: y,
104
+ treeGridTitleCellSx: r,
105
+ cellSx: u,
106
+ data: y,
107
+ colGroupSlot: Y,
108
+ className: L,
85
109
  tableLayout: z = "fixed",
86
- canUseTreeGridStyle: s = !1
110
+ canUseTreeGridStyle: d = !1
87
111
  }) {
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(
112
+ var C, g, x, F, S, E, k, N;
113
+ const i = O(), c = ((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" ? D.dark : D.light, h = ((N = (k = (E = (S = (F = i == null ? void 0 : i.theme) == null ? void 0 : F.main) == null ? void 0 : S.table) == null ? void 0 : E.field) == null ? void 0 : k.cell) == null ? void 0 : N.backgroundColor) ?? f.cell.backgroundColor, T = P(
90
114
  () => {
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, {
115
+ var s, m, o;
116
+ return R((o = (m = (s = i == null ? void 0 : i.theme) == null ? void 0 : s.main) == null ? void 0 : m.table) == null ? void 0 : o.field, {
117
+ borderColor: c,
93
118
  header: {
94
- backgroundColor: m.header.backgroundColor,
95
- color: m.header.color,
96
- fontSize: m.header.fontSize,
97
- fontWeight: m.header.fontWeight
119
+ backgroundColor: f.header.backgroundColor,
120
+ color: f.header.color,
121
+ fontSize: f.header.fontSize,
122
+ fontWeight: f.header.fontWeight
98
123
  },
99
124
  cell: {
100
- backgroundColor: m.cell.backgroundColor,
101
- fontSize: m.cell.fontSize
125
+ backgroundColor: f.cell.backgroundColor,
126
+ fontSize: f.cell.fontSize
102
127
  }
103
128
  });
104
129
  },
105
- [a]
130
+ [i, c]
106
131
  );
107
- return /* @__PURE__ */ u(
108
- q,
132
+ return /* @__PURE__ */ p(
133
+ Q,
109
134
  {
110
- canUseTreeGridStyle: s,
111
- className: R("w-full", y),
135
+ canUseTreeGridStyle: d,
136
+ className: j("w-full", L),
112
137
  containerProps: {
113
138
  sx: [
114
- s ? X : void 0,
115
- !s && h ? { backgroundColor: h } : void 0
139
+ d ? ne : void 0,
140
+ !d && h ? { backgroundColor: h } : void 0
116
141
  ]
117
142
  },
118
- tableTheme: b,
143
+ tableTheme: T,
119
144
  tableLayout: z,
120
145
  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,
146
+ Y,
147
+ /* @__PURE__ */ l(I, { children: e.map((s, m) => /* @__PURE__ */ l(J, { sx: ie, children: s.map((o, B) => /* @__PURE__ */ p(q, { children: [
148
+ /* @__PURE__ */ l(
149
+ w,
125
150
  {
126
151
  component: "th",
127
152
  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
153
+ width: t ?? 200,
154
+ sx: d ? [
155
+ te,
156
+ m === 0 && _,
157
+ ...A(r, n)
158
+ ] : [X(T), ...M(n)],
159
+ rowSpan: o == null ? void 0 : o.rowSpan,
160
+ children: o.required ? le(o.title) : o.title
136
161
  }
137
162
  ),
138
- /* @__PURE__ */ d(
139
- F,
163
+ /* @__PURE__ */ l(
164
+ w,
140
165
  {
141
166
  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)
167
+ sx: d ? [m === 0 && _, ...A(u)] : u,
168
+ style: (o == null ? void 0 : o.style) ?? {},
169
+ colSpan: o == null ? void 0 : o.colSpan,
170
+ rowSpan: o == null ? void 0 : o.rowSpan,
171
+ children: /* @__PURE__ */ l($, { className: b, children: se(o, y, u) })
147
172
  }
148
173
  )
149
- ] }, `owp-field-cell-${f}-${A}`)) }, `owp-field-col-${f}`)) })
174
+ ] }, `owp-field-cell-${m}-${B}`)) }, `owp-field-col-${m}`)) })
150
175
  ]
151
176
  }
152
177
  );
153
178
  }
154
- i(he, "OwpFieldTable");
179
+ a(we, "OwpFieldTable");
155
180
  export {
156
- he as OwpFieldTable
181
+ we as OwpFieldTable
157
182
  };
158
183
  //# 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 { 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 { 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 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 treeGridContainerSx = {\n borderRadius: 0,\n overflow: 'visible',\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: '#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}`} 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 && 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 <Box className={FIELD_TABLE_CELL_CONTENT_CLASS_NAME}>\n {renderFieldTableCellValue(col, data, cellSx)}\n </Box>\n </TableCell>\n </Fragment>\n ))}\n </StyledTableRow>\n ))}\n </TableBody>\n </StyledTable>\n );\n}\n"],"names":["DEFAULT_CHECKBOX_FONT_SIZE","FIELD_TABLE_HELPER_TEXT_RESERVED_SPACE","defaultTableBorderColorByMode","defaultTreeGridTitleCellSx","TREEGRID_TABLE_FONT_FAMILY_STACK","treeGridContainerSx","treeGridFirstRowCellSx","FIELD_TABLE_CELL_CONTENT_CLASS_NAME","fieldTableRowSx","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","Box"],"mappings":"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"}