@owp/core 2.5.11 → 2.5.13

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 (31) hide show
  1. package/dist/_virtual/index3.js +2 -2
  2. package/dist/_virtual/index4.js +2 -2
  3. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js +78 -0
  4. package/dist/components/OwpCommonCode/OwpCommonCodeQuerySelector.js.map +1 -0
  5. package/dist/components/OwpSearchFilter/OwpSearchFilter.js +42 -26
  6. package/dist/components/OwpSearchFilter/OwpSearchFilter.js.map +1 -1
  7. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +79 -77
  8. package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
  9. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js +51 -51
  10. package/dist/components/OwpSelectorBase/OwpSelectorSelect.js.map +1 -1
  11. package/dist/components/OwpTable/OwpFieldTable.js +74 -65
  12. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  13. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +151 -144
  14. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  15. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +215 -150
  16. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  17. package/dist/index.js +68 -65
  18. package/dist/index.js.map +1 -1
  19. package/dist/node_modules/.pnpm/inko@1.1.1/node_modules/inko/index.js +1 -1
  20. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  21. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
  22. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  23. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  24. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/index.js +1 -1
  25. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  26. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  27. package/dist/types/components/OwpCommonCode/OwpCommonCodeQuerySelector.d.ts +32 -0
  28. package/dist/types/components/OwpCommonCode/index.d.ts +2 -0
  29. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +5 -1
  30. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +4 -2
  31. package/package.json +1 -1
@@ -1,42 +1,51 @@
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";
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
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 = {
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
17
  dark: "rgba(241,245,249,.12)",
18
18
  light: "#e2e8f0"
19
- }, ee = {
19
+ }, te = {
20
20
  "&&": {
21
- fontFamily: P,
21
+ fontFamily: Z,
22
22
  fontSize: "1.7rem",
23
23
  fontWeight: 600,
24
24
  lineHeight: "normal",
25
25
  minHeight: "unset",
26
26
  padding: "7px 10px"
27
27
  }
28
- }, re = {
28
+ }, ne = {
29
29
  borderRadius: 0,
30
30
  overflow: "visible"
31
- }, Y = {
31
+ }, _ = {
32
32
  borderTop: "1px solid #CDD8E4"
33
- }, z = /* @__PURE__ */ a((e) => e ? (Array.isArray(e) ? e : [e]).filter(Boolean) : [], "normalizeTableCellSx"), y = /* @__PURE__ */ a((...e) => e.flatMap(z).map(
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(
34
43
  (t) => typeof t == "function" ? (n) => ({
35
44
  "&&&": t(n)
36
45
  }) : {
37
46
  "&&&": t
38
47
  }
39
- ), "getTreeGridCellOverrideSx"), oe = /* @__PURE__ */ a((e) => {
48
+ ), "getTreeGridCellOverrideSx"), ae = /* @__PURE__ */ a((e) => {
40
49
  if (!e)
41
50
  return;
42
51
  const t = Array.isArray(e) ? e : [e];
@@ -56,31 +65,31 @@ const U = 28, N = {
56
65
  backgroundColor: "#FFFFFF",
57
66
  fontSize: "1.7rem"
58
67
  }
59
- }, te = /* @__PURE__ */ a((e) => /* @__PURE__ */ p(_, { children: [
68
+ }, le = /* @__PURE__ */ a((e) => /* @__PURE__ */ p(v, { children: [
60
69
  e,
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,
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: ie(r, e.validate),
76
+ checked: fe(r, e.validate),
68
77
  sx: {
69
78
  "& .MuiSvgIcon-root": {
70
- fontSize: oe(n) ?? U
79
+ fontSize: ae(n) ?? re
71
80
  }
72
81
  }
73
82
  }
74
- ) : e.useDate ? r && W(r).format(ae(e)) : e.contentType === "number" ? /* @__PURE__ */ m(
75
- q,
83
+ ) : e.useDate ? r && W(r).format(de(e)) : e.contentType === "number" ? /* @__PURE__ */ l(
84
+ G,
76
85
  {
77
86
  value: r,
78
87
  valueDecimals: e.valueDecimals,
79
88
  className: e.valueClassName,
80
89
  sx: e.valueSx
81
90
  }
82
- ) : e.contentType === "text" ? /* @__PURE__ */ m(
83
- G,
91
+ ) : e.contentType === "text" ? /* @__PURE__ */ l(
92
+ K,
84
93
  {
85
94
  value: r,
86
95
  className: e.valueClassName,
@@ -88,24 +97,24 @@ const U = 28, N = {
88
97
  }
89
98
  ) : e.disableLocaleString ? r : r == null ? void 0 : r.toLocaleString();
90
99
  }, "renderFieldTableCellValue");
91
- function Se({
100
+ function we({
92
101
  layout: e,
93
102
  titleWidth: t,
94
103
  titleSx: n,
95
104
  treeGridTitleCellSx: r,
96
105
  cellSx: u,
97
- data: v,
98
- colGroupSlot: A,
99
- className: M,
100
- tableLayout: B = "fixed",
106
+ data: y,
107
+ colGroupSlot: Y,
108
+ className: L,
109
+ tableLayout: z = "fixed",
101
110
  canUseTreeGridStyle: d = !1
102
111
  }) {
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 = $(
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(
105
114
  () => {
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,
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,
109
118
  header: {
110
119
  backgroundColor: f.header.backgroundColor,
111
120
  color: f.header.color,
@@ -118,57 +127,57 @@ function Se({
118
127
  }
119
128
  });
120
129
  },
121
- [i, b]
130
+ [i, c]
122
131
  );
123
132
  return /* @__PURE__ */ p(
124
- Z,
133
+ Q,
125
134
  {
126
135
  canUseTreeGridStyle: d,
127
- className: V("w-full", M),
136
+ className: j("w-full", L),
128
137
  containerProps: {
129
138
  sx: [
130
- d ? re : void 0,
139
+ d ? ne : void 0,
131
140
  !d && h ? { backgroundColor: h } : void 0
132
141
  ]
133
142
  },
134
- tableTheme: c,
135
- tableLayout: B,
143
+ tableTheme: T,
144
+ tableLayout: z,
136
145
  children: [
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,
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,
141
150
  {
142
151
  component: "th",
143
152
  className: "whitespace-pre-wrap",
144
153
  width: t ?? 200,
145
154
  sx: d ? [
146
- ee,
147
- l === 0 && Y,
148
- ...y(r, n)
149
- ] : [K(c), ...z(n)],
155
+ te,
156
+ m === 0 && _,
157
+ ...A(r, n)
158
+ ] : [X(T), ...M(n)],
150
159
  rowSpan: o == null ? void 0 : o.rowSpan,
151
- children: o.required ? te(o.title) : o.title
160
+ children: o.required ? le(o.title) : o.title
152
161
  }
153
162
  ),
154
- /* @__PURE__ */ m(
155
- D,
163
+ /* @__PURE__ */ l(
164
+ w,
156
165
  {
157
166
  className: "whitespace-pre-wrap",
158
- sx: d ? [l === 0 && Y, ...y(u)] : u,
167
+ sx: d ? [m === 0 && _, ...A(u)] : u,
159
168
  style: (o == null ? void 0 : o.style) ?? {},
160
169
  colSpan: o == null ? void 0 : o.colSpan,
161
170
  rowSpan: o == null ? void 0 : o.rowSpan,
162
- children: me(o, v, u)
171
+ children: /* @__PURE__ */ l($, { className: b, children: se(o, y, u) })
163
172
  }
164
173
  )
165
- ] }, `owp-field-cell-${l}-${H}`)) }, `owp-field-col-${l}`)) })
174
+ ] }, `owp-field-cell-${m}-${B}`)) }, `owp-field-col-${m}`)) })
166
175
  ]
167
176
  }
168
177
  );
169
178
  }
170
- a(Se, "OwpFieldTable");
179
+ a(we, "OwpFieldTable");
171
180
  export {
172
- Se as OwpFieldTable
181
+ we as OwpFieldTable
173
182
  };
174
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 { 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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"}
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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"}