@owp/core 2.5.33 → 2.5.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index16.js +4 -4
- package/dist/_virtual/index17.js +4 -4
- package/dist/_virtual/index18.js +4 -4
- package/dist/_virtual/index19.js +4 -4
- package/dist/_virtual/index20.js +2 -2
- package/dist/_virtual/index21.js +2 -2
- package/dist/_virtual/index22.js +2 -2
- package/dist/_virtual/index3.js +2 -2
- package/dist/_virtual/index4.js +2 -2
- package/dist/components/OwpAutoLogoutDialog/OwpAutoLogoutDialog.js +68 -62
- package/dist/components/OwpAutoLogoutDialog/OwpAutoLogoutDialog.js.map +1 -1
- package/dist/components/OwpDialog/OwpAlertDialog.js +19 -18
- package/dist/components/OwpDialog/OwpAlertDialog.js.map +1 -1
- package/dist/components/OwpDialog/OwpDialog.js +34 -31
- package/dist/components/OwpDialog/OwpDialog.js.map +1 -1
- package/dist/components/OwpDialog/internal/useDialogOpenFocusCleanup.js +18 -0
- package/dist/components/OwpDialog/internal/useDialogOpenFocusCleanup.js.map +1 -0
- package/dist/components/OwpErrorBoundary/OwpErrorBoundary.js +25 -15
- package/dist/components/OwpErrorBoundary/OwpErrorBoundary.js.map +1 -1
- package/dist/components/OwpLayout/OwpLayout.js.map +1 -1
- package/dist/components/OwpNumberField/OwpNumberField.js +45 -24
- package/dist/components/OwpNumberField/OwpNumberField.js.map +1 -1
- package/dist/components/OwpPicker/OwpDatePicker.js +103 -103
- package/dist/components/OwpPicker/OwpDatePicker.js.map +1 -1
- package/dist/components/OwpScrollbars/OwpScrollbars.js +79 -52
- package/dist/components/OwpScrollbars/OwpScrollbars.js.map +1 -1
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js +157 -157
- package/dist/components/OwpSelectorBase/OwpSelectorAutocomplete.js.map +1 -1
- package/dist/components/OwpTable/OwpDataTable.js +377 -342
- package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
- package/dist/components/OwpTable/OwpTable.js +20 -19
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTable/internal/OwpTableBase.js +81 -78
- package/dist/components/OwpTable/internal/OwpTableBase.js.map +1 -1
- package/dist/components/OwpTable/internal/treeGridTableStyle.js +88 -31
- package/dist/components/OwpTable/internal/treeGridTableStyle.js.map +1 -1
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +304 -262
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +229 -222
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +282 -277
- package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
- package/dist/configs/layoutConfig.js +0 -6
- package/dist/configs/layoutConfig.js.map +1 -1
- package/dist/constants/treeGrid.js +59 -46
- package/dist/constants/treeGrid.js.map +1 -1
- package/dist/constants.js +18 -18
- package/dist/constants.js.map +1 -1
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +15 -15
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
- package/dist/hooks/internal/useNavbar.js +4 -4
- package/dist/hooks/useConfirm.js +1 -1
- package/dist/hooks/useConfirm.js.map +1 -1
- package/dist/hooks/useOwpDialogs.js +19 -0
- package/dist/hooks/useOwpDialogs.js.map +1 -0
- package/dist/hooks.js +34 -32
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +69 -71
- package/dist/index.js.map +1 -1
- package/dist/layout/Layout.js +23 -27
- package/dist/layout/Layout.js.map +1 -1
- package/dist/layout/components/layouts/FooterLayout.js.map +1 -1
- package/dist/layout/components/menus/PasswordChangeMenu.js +25 -25
- package/dist/layout/components/menus/PasswordChangeMenu.js.map +1 -1
- package/dist/layout/components/toggles/NavigationSearchToggle.js +4 -4
- package/dist/layout/components/toggles/NavigationSearchToggle.js.map +1 -1
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js +1 -1
- package/dist/layout/components/toggles/NavigationShortcutsToggle.js.map +1 -1
- package/dist/layout/components/toggles/ThemePreviewToggle.js +14 -14
- package/dist/layout/components/toggles/ThemePreviewToggle.js.map +1 -1
- package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/match/index.js +1 -1
- package/dist/node_modules/.pnpm/autosuggest-highlight@3.3.4/node_modules/autosuggest-highlight/parse/index.js +1 -1
- package/dist/node_modules/.pnpm/inko@1.1.1/node_modules/inko/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/index.js +1 -1
- package/dist/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
- package/dist/owp-app.css +1 -1
- package/dist/types/components/OwpAutoLogoutDialog/OwpAutoLogoutDialog.d.ts +5 -3
- package/dist/types/components/OwpDialog/OwpAlertDialog.d.ts +1 -1
- package/dist/types/components/OwpDialog/internal/useDialogOpenFocusCleanup.d.ts +5 -0
- package/dist/types/components/OwpErrorBoundary/OwpErrorBoundary.d.ts +8 -14
- package/dist/types/components/OwpNumberField/OwpNumberField.d.ts +18 -4
- package/dist/types/components/OwpScrollbars/OwpScrollbars.d.ts +28 -14
- package/dist/types/components/OwpTable/internal/OwpTableBase.d.ts +3 -1
- package/dist/types/components/OwpTable/internal/treeGridTableStyle.d.ts +61 -2
- package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +2 -1
- package/dist/types/configs/layoutConfig.d.ts +0 -6
- package/dist/types/constants/index.d.ts +0 -1
- package/dist/types/constants/treeGrid.d.ts +9 -0
- package/dist/types/features/themePreview/dialogs/ThemePreviewDialog.d.ts +1 -1
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/useOwpDialogs.d.ts +5 -0
- package/dist/types/hooks/useOwpSettings.d.ts +0 -6
- package/dist/types/index.d.ts +0 -1
- package/dist/types/store/atoms/owpSettingsAtoms.d.ts +0 -6
- package/dist/types/types/OwpDialogTypes.d.ts +1 -0
- package/dist/types/types/OwpRouteTypes.d.ts +25 -0
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/internal/blurActiveElement.d.ts +4 -0
- package/dist/utils/internal/blurActiveElement.js +12 -0
- package/dist/utils/internal/blurActiveElement.js.map +1 -0
- package/dist/utils/{navigationUtils.js → internal/navigationUtils.js} +3 -3
- package/dist/utils/internal/navigationUtils.js.map +1 -0
- package/dist/utils.js +23 -25
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/OwpEventEmitter/OwpEventEmitter.js +0 -51
- package/dist/components/OwpEventEmitter/OwpEventEmitter.js.map +0 -1
- package/dist/layout/components/layouts/LeftSideLayout.js +0 -13
- package/dist/layout/components/layouts/LeftSideLayout.js.map +0 -1
- package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/array/some.js +0 -66
- package/dist/node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/array/some.js.map +0 -1
- package/dist/node_modules/.pnpm/perfect-scrollbar@1.5.6/node_modules/perfect-scrollbar/css/perfect-scrollbar.css +0 -1
- package/dist/types/components/OwpEventEmitter/OwpEventEmitter.d.ts +0 -27
- package/dist/types/components/OwpEventEmitter/index.d.ts +0 -1
- package/dist/types/layout/components/layouts/LeftSideLayout.d.ts +0 -6
- package/dist/types/utils/common/OwpUtils.d.ts +0 -119
- package/dist/types/utils/common/index.d.ts +0 -1
- package/dist/utils/common/OwpUtils.js +0 -196
- package/dist/utils/common/OwpUtils.js.map +0 -1
- package/dist/utils/navigationUtils.js.map +0 -1
- /package/dist/types/utils/{navigationUtils.d.ts → internal/navigationUtils.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpDataTable.js","sources":["../../../src/components/OwpTable/OwpDataTable.tsx"],"sourcesContent":["import {\n resolveOwpGridTheme,\n type OwpResolvedGridThemeConfigType,\n} from '@/constants/gridTheme';\nimport {\n resolveOwpTableTheme,\n type OwpResolvedTableThemeConfigType,\n} from '@/constants/tableTheme';\nimport { DEFAULT_TABLE_RADIUS } from '@/constants/table';\nimport {\n getTreeGridFontFaceStyles,\n} from '@/constants/treeGrid';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport { TextField, Typography, TypographyProps } from '@mui/material';\nimport Checkbox, { checkboxClasses } from '@mui/material/Checkbox';\nimport { grey } from '@mui/material/colors';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport Paper from '@mui/material/Paper';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell, { TableCellProps } from '@mui/material/TableCell';\nimport TableContainer, { TableContainerProps } from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport TableSortLabel from '@mui/material/TableSortLabel';\nimport { type SxProps, type Theme } from '@mui/material/styles';\nimport { isArray, isBoolean, isEmpty, isEqual, isNumber, uniqueId } from 'es-toolkit/compat';\nimport { ChangeEvent, MouseEvent, ReactNode, useEffect, useMemo, useRef, useState } from 'react';\nimport { OwpNumberField } from '../OwpNumberField';\nimport {\n getTreeGridBodyCellSx,\n getTreeGridBodyRowSx,\n getTreeGridContainerSx,\n getTreeGridHeaderCellSx,\n TREEGRID_TABLE_BODY_BORDER_COLOR,\n TREEGRID_TABLE_HEADER_BORDER_COLOR,\n} from './internal/treeGridTableStyle';\nimport {\n DEFAULT_TABLE_HEADER_BACKGROUND_COLOR,\n defaultStyledTableTheme,\n defaultTableSortLabelSx,\n getDefaultTableCellSx,\n getDefaultTableHeaderCellSx,\n getDefaultTableHeaderLabelSx,\n} from './internal/defaultTableStyle';\nimport { OwpTableTotalCount } from './internal/OwpTableTotalCount';\nimport { toTableRadiusCssValue } from './utils/tableSx';\n\ntype Row = object;\ntype TableCellAlign = NonNullable<TableCellProps['align']>;\n\ninterface HeadCell {\n enablePadding?: boolean;\n id: string;\n label: string;\n sx?: TypographyProps['sx'];\n inputLabel?: string;\n rangeKey?: string;\n rangeLabel?: { start: string; end: string };\n align?: string;\n valueAlign?: string;\n canTextField?: boolean;\n textFieldType?: string;\n}\n\ninterface DataTableHeadProps {\n sx?: TableCellProps['sx'];\n headCells: HeadCell[];\n numSelected: number;\n onRequestSort: (event: MouseEvent<unknown>, property: string) => void;\n onSelectAllClick: (event: ChangeEvent<HTMLInputElement>) => void;\n order: Order;\n orderBy: string;\n rowCount: number;\n canCheckbox?: boolean;\n canUseOrderBy?: boolean;\n canTableRadiusZero?: boolean;\n canUseTreeGridStyle?: boolean;\n gridTheme: OwpResolvedGridThemeConfigType;\n tableTheme: OwpResolvedTableThemeConfigType;\n}\n\ninterface OwpDataTableProps<T extends Row = Row> {\n className?: string;\n sx?: TableContainerProps['sx'];\n headSx?: TableCellProps['sx'];\n headCells: HeadCell[];\n rows?: T[];\n canCheckbox?: boolean;\n canTotalCountRow?: boolean;\n selected?: T[];\n onSelect?: (rows: T[] | []) => void;\n onBlur?: (evt: OwpDataTableBlurEvent, dataIndex: number) => void;\n canSelectingSingle?: boolean;\n canUseOrderBy?: boolean;\n canTableRadiusZero?: boolean;\n canUseTableRadius?: boolean;\n canUseTreeGridStyle?: boolean;\n tableBorderRadius?: string | number;\n fixedRowCount?: number;\n}\n\nconst defaultHeadCellsSx = (\n tableTheme: OwpResolvedTableThemeConfigType,\n fallbackBackgroundColor: string,\n) =>\n ({\n ...getDefaultTableHeaderCellSx(tableTheme, fallbackBackgroundColor),\n borderBottom: `1px solid ${tableTheme.borderColor}`,\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n }) as const;\n\nconst headerBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_HEADER_BORDER_COLOR}`,\n};\n\n/** 기본 body cell 우측선 sx */\nconst getDefaultRowBorderRightSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n borderRight: `1px solid ${tableTheme.borderColor}`,\n }) as const;\n\nconst treeGridRowBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n};\n\nconst treeGridContainerFrameSx = {\n borderLeft: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n boxSizing: 'border-box',\n} as const;\n\nconst getDefaultTableBodyCellSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n ...getDefaultTableCellSx(tableTheme),\n }) as const;\n\n/** 기본 header cell 구분선 sx */\nconst getDefaultHeaderDividerSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n borderRight: `1px solid ${tableTheme.borderColor}`,\n }) as const;\n\nconst tableRadiusZeroSx = {\n borderRadius: 0,\n} as const;\nconst defaultTableRadiusSx = {\n borderRadius: DEFAULT_TABLE_RADIUS,\n} as const;\n\nconst lastRowRadiusZeroSx = {\n '& > th, & > td': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n} as const;\n\nconst defaultLastRowBottomBorderNoneSx = {\n '& > th, & > td': {\n borderBottom: 'none',\n },\n} as const;\n\nconst treeGridSortLabelSx = {\n '&.MuiTableSortLabel-root': {\n color: 'inherit',\n display: 'flex',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n justifyContent: 'center',\n lineHeight: 'inherit',\n overflow: 'hidden',\n position: 'relative',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n width: '100%',\n },\n '&.MuiTableSortLabel-root:hover': {\n color: 'inherit',\n },\n '&.Mui-active': {\n color: 'inherit',\n },\n '& .MuiTableSortLabel-icon': {\n color: 'currentColor !important',\n margin: 0,\n position: 'absolute',\n right: 0,\n },\n} as const;\n\n/**\n * sx 병합 유틸\n * @param styles 병합 대상 sx 목록\n */\nconst mergeSx = (...styles: Array<SxProps<Theme> | undefined | false>): SxProps<Theme> =>\n styles.reduce<Array<Exclude<SxProps<Theme>, readonly unknown[]>>>((acc, style) => {\n if (!style) {\n return acc;\n }\n\n return [...acc, ...(isArray(style) ? style : [style])];\n }, []) as SxProps<Theme>;\n\n/**\n * 고정 row 수 계산\n * @param fixedRowCount 고정 row 수\n */\nconst getFixedRowCount = (fixedRowCount?: number) => {\n if (!isNumber(fixedRowCount) || fixedRowCount < 1) {\n return undefined;\n }\n\n return fixedRowCount;\n};\n\n/**\n * 빈 row 목록 생성\n * @param count 생성 수\n */\nconst createEmptyRows = (count: number) => Array.from({ length: count }, () => ({}) as Row);\n\n/**\n * TableCell align 정규화\n * @param align align 값\n * @param fallback 기본 align 값\n */\nconst getTableCellAlign = (align: string | undefined, fallback: TableCellAlign): TableCellAlign => {\n switch (align) {\n case 'center':\n case 'right':\n case 'left':\n case 'inherit':\n case 'justify':\n return align;\n default:\n return fallback;\n }\n};\n\n/**\n * row 값 조회\n * @param row row 값\n * @param key 조회 key\n */\nconst getRowValue = (row: Row, key?: string) => {\n if (!key) {\n return undefined;\n }\n\n return (row as Record<string, unknown>)?.[key];\n};\n\nconst getComparableValue = (value: unknown) => {\n if (typeof value === 'string' || isNumber(value)) {\n return value;\n }\n\n return undefined;\n};\n\nfunction descendingComparator(a: Row, b: Row, orderBy: string) {\n const aValue = getComparableValue(getRowValue(a, orderBy));\n const bValue = getComparableValue(getRowValue(b, orderBy));\n\n if (bValue == null && aValue == null) {\n return 0;\n }\n if (bValue == null) {\n return -1;\n }\n if (aValue == null) {\n return 1;\n }\n if (bValue < aValue) {\n return -1;\n }\n if (bValue > aValue) {\n return 1;\n }\n return 0;\n}\n\ntype Order = 'asc' | 'desc';\ntype OwpDataTableBlurEvent = Record<string, unknown> & {\n target: {\n value: string | number | undefined;\n };\n};\n\nfunction getComparator(order: Order, orderBy: string): (a: Row, b: Row) => number {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\ntype RowRangeValue = {\n start?: string | number;\n end?: string | number;\n};\n\nconst getRowRangeValue = (row: Row, rangeKey?: string) => {\n if (!rangeKey) {\n return undefined;\n }\n\n return getRowValue(row, rangeKey) as RowRangeValue | undefined;\n};\n\nconst getRangeLabel = (row: Row, cell: HeadCell) => {\n if (!(cell.inputLabel ?? cell.rangeKey)) {\n return '';\n }\n\n const rangeValue = getRowRangeValue(row, cell.rangeKey);\n\n return `${cell.rangeLabel?.start ? `${cell.rangeLabel?.start}: ` : ''}${rangeValue?.start} ~ ${cell.rangeLabel?.end ? `${cell.rangeLabel?.end}: ` : ''}${rangeValue?.end}`;\n};\n\nconst getRowTabIndex = (row: Row, fallbackIndex: number) => {\n const rowIndex = getRowValue(row, 'index');\n\n return isNumber(rowIndex) ? rowIndex : fallbackIndex;\n};\n\nconst getEditableCellSx = (\n valueAlign?: HeadCell['valueAlign'],\n fontSize?: number | string,\n) => ({\n '& input': {\n fontSize,\n textAlign: valueAlign ?? 'center',\n },\n '& .MuiInputBase-input': {\n fontSize,\n },\n height: 34,\n});\n\nfunction DataTableHead(props: DataTableHeadProps) {\n const {\n sx,\n headCells,\n onSelectAllClick,\n order,\n orderBy,\n numSelected,\n rowCount,\n onRequestSort,\n canCheckbox,\n canUseOrderBy = true,\n canTableRadiusZero,\n canUseTreeGridStyle,\n gridTheme,\n tableTheme,\n } = props;\n const createSortHandler = (property: string) => (event: MouseEvent<unknown>) => {\n onRequestSort(event, property);\n };\n\n return (\n <TableHead sx={mergeSx(canTableRadiusZero && tableRadiusZeroSx)}>\n <TableRow\n sx={mergeSx(\n canUseTreeGridStyle && { height: gridTheme.header.height },\n canTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {canCheckbox && (\n <TableCell\n padding=\"checkbox\"\n sx={mergeSx(\n {\n ...defaultHeadCellsSx(tableTheme, DEFAULT_TABLE_HEADER_BACKGROUND_COLOR),\n },\n !canUseTreeGridStyle && getDefaultHeaderDividerSx(tableTheme),\n canUseTreeGridStyle && headerBorderRight,\n canUseTreeGridStyle && getTreeGridHeaderCellSx(gridTheme),\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n )}\n >\n <Checkbox\n color=\"default\"\n sx={mergeSx(\n {\n [`&, &.${checkboxClasses.checked}`]: canUseTreeGridStyle\n ? { color: grey[50] }\n : { color: 'inherit' },\n },\n canUseTreeGridStyle && { p: 0 },\n )}\n indeterminate={numSelected > 0 && numSelected < rowCount}\n checked={rowCount > 0 && numSelected === rowCount}\n onChange={onSelectAllClick}\n />\n </TableCell>\n )}\n {headCells.map((headCell, index) => (\n <TableCell\n className={canUseTreeGridStyle ? undefined : 'pl-20'}\n key={headCell.id}\n align={getTableCellAlign(headCell.align, 'center')}\n padding={headCell.enablePadding ? 'normal' : 'none'}\n sortDirection={orderBy === headCell.id ? order : false}\n sx={mergeSx(\n {\n ...defaultHeadCellsSx(tableTheme, DEFAULT_TABLE_HEADER_BACKGROUND_COLOR),\n },\n !canUseTreeGridStyle &&\n headCells.length - 1 !== index &&\n getDefaultHeaderDividerSx(tableTheme),\n canUseTreeGridStyle && headCells.length - 1 !== index && headerBorderRight,\n canUseTreeGridStyle && getTreeGridHeaderCellSx(gridTheme),\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n canUseTreeGridStyle && headCell?.sx,\n )}\n >\n {canUseOrderBy ? (\n <TableSortLabel\n sx={canUseTreeGridStyle ? treeGridSortLabelSx : defaultTableSortLabelSx}\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : 'asc'}\n onClick={createSortHandler(headCell.id)}\n >\n {canUseTreeGridStyle ? (\n headCell.label\n ) : (\n <Typography sx={mergeSx(getDefaultTableHeaderLabelSx(tableTheme), headCell?.sx)}>\n {headCell.label}\n </Typography>\n )}\n </TableSortLabel>\n ) : canUseTreeGridStyle ? (\n headCell.label\n ) : (\n <Typography sx={mergeSx(getDefaultTableHeaderLabelSx(tableTheme), headCell?.sx)}>\n {headCell.label}\n </Typography>\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n}\n\n/**\n * OwpDataTable 컴포넌트\n * @param className CSS 클래스명\n * @param sx sx 값\n * @param headSx headSx 값\n * @param headCells headCells 값\n * @param rows 행 데이터 목록\n * @param selected selected 값\n * @param canTableRadiusZero 테이블 radius 0 사용 여부\n * @param canUseTableRadius 테이블 radius 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param tableBorderRadius 테이블 radius 값\n * @param fixedRowCount 고정 row 수\n */\nexport function OwpDataTable<T extends Row = Row>({\n className,\n sx,\n headSx,\n headCells,\n rows,\n selected,\n canCheckbox,\n canTotalCountRow,\n canSelectingSingle,\n canUseOrderBy = true,\n canTableRadiusZero,\n canUseTableRadius = false,\n canUseTreeGridStyle = false,\n tableBorderRadius = DEFAULT_TABLE_RADIUS,\n fixedRowCount,\n onSelect,\n onBlur,\n}: OwpDataTableProps<T>) {\n const currentSettings = useGetCurrentSettings();\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<string>('');\n const [selectedRows, setSelectedRows] = useState<T[] | []>([]);\n const tableIdRef = useRef(uniqueId('owp-data-table'));\n const useFixedRowCount = useMemo(() => getFixedRowCount(fixedRowCount), [fixedRowCount]);\n const resolvedRows = useMemo(() => {\n const nextRows = isArray(rows) ? rows : [];\n\n return useFixedRowCount ? nextRows.slice(0, useFixedRowCount) : nextRows;\n }, [rows, useFixedRowCount]);\n const resolvedHeadCells = useMemo(() => headCells ?? [], [headCells]);\n const treeGridTheme = useMemo(\n () => resolveOwpGridTheme(currentSettings?.theme?.main?.grid),\n [currentSettings],\n );\n const tableTheme = useMemo(\n () => resolveOwpTableTheme(currentSettings?.theme?.main?.table, defaultStyledTableTheme),\n [currentSettings],\n );\n const tableRowBackgroundColor = currentSettings?.theme?.main?.table?.row?.backgroundColor;\n const tableRowHoverBackgroundColor =\n currentSettings?.theme?.main?.table?.row?.hoverBackgroundColor;\n const tableRowSelectedBackgroundColor =\n currentSettings?.theme?.main?.table?.row?.selectedBackgroundColor;\n const useTableRadiusZero = !!canTableRadiusZero;\n const tableContainerRadiusSx = useTableRadiusZero\n ? tableRadiusZeroSx\n : canUseTreeGridStyle && canUseTableRadius\n ? {\n borderRadius: toTableRadiusCssValue(tableBorderRadius),\n overflow: 'hidden',\n }\n : !canUseTreeGridStyle\n ? defaultTableRadiusSx\n : undefined;\n const useCheckBox = isBoolean(canCheckbox) ? canCheckbox : true;\n const useTotalCountRow = isBoolean(canTotalCountRow) ? canTotalCountRow : true;\n\n useEffect(() => {\n if (!isEmpty(selected)) {\n setSelectedRows(selected);\n }\n }, [selected]);\n\n useEffect(() => {\n onSelect?.(selectedRows);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedRows]);\n\n const handleRequestSort = (_: MouseEvent<unknown>, property: string) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const handleSelectAllClick = (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.checked) {\n setSelectedRows(resolvedRows);\n return;\n }\n setSelectedRows([]);\n };\n\n const handleClick = (_: MouseEvent<unknown>, row: T) => {\n if (canSelectingSingle) {\n setSelectedRows([row]);\n return;\n }\n setSelectedRows((prev: T[]) => {\n const isIncluded = !!prev.find((item) => isEqual(item, row));\n return isIncluded ? prev?.filter((item: T) => !isEqual(item, row)) : [...prev, row];\n });\n };\n\n const visibleRows = useMemo(\n () => [...resolvedRows].sort(getComparator(order, orderBy)),\n [order, orderBy, resolvedRows],\n );\n const displayRows = useMemo(() => {\n if (!useFixedRowCount || visibleRows.length >= useFixedRowCount) {\n return visibleRows;\n }\n\n return [...visibleRows, ...createEmptyRows(useFixedRowCount - visibleRows.length)];\n }, [useFixedRowCount, visibleRows]);\n\n return (\n <Paper\n className={className}\n elevation={0}\n sx={mergeSx(\n { width: '100%' },\n !canUseTreeGridStyle &&\n tableRowBackgroundColor && { backgroundColor: tableRowBackgroundColor },\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n tableContainerRadiusSx,\n )}\n >\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n sx={mergeSx(\n { height: useFixedRowCount ? 'auto' : 500 },\n !canUseTreeGridStyle &&\n tableRowBackgroundColor && { backgroundColor: tableRowBackgroundColor },\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n canUseTreeGridStyle && treeGridContainerFrameSx,\n useFixedRowCount && { overflowY: 'hidden' },\n tableContainerRadiusSx,\n sx,\n )}\n >\n <Table\n stickyHeader={!canUseTreeGridStyle}\n sx={mergeSx({ minWidth: 200 }, useTableRadiusZero && tableRadiusZeroSx)}\n aria-labelledby=\"owp-data-table\"\n >\n <DataTableHead\n sx={headSx}\n headCells={resolvedHeadCells}\n gridTheme={treeGridTheme}\n tableTheme={tableTheme}\n numSelected={selectedRows.length}\n order={order}\n orderBy={orderBy}\n onSelectAllClick={handleSelectAllClick}\n canCheckbox={!canSelectingSingle && useCheckBox}\n canUseOrderBy={canUseOrderBy}\n canTableRadiusZero={useTableRadiusZero}\n canUseTreeGridStyle={canUseTreeGridStyle}\n onRequestSort={handleRequestSort}\n rowCount={resolvedRows.length}\n />\n <TableBody sx={mergeSx(useTableRadiusZero && tableRadiusZeroSx)}>\n {displayRows.map((row, index) => {\n const isItemSelected = selectedRows.some((item) => isEqual(item, row));\n const isLastRow = displayRows.length - 1 === index;\n const isPlaceholderRow = useFixedRowCount ? index >= visibleRows.length : false;\n const labelId = `${tableIdRef.current}-${index}`;\n\n return (\n <TableRow\n hover\n role={canUseTreeGridStyle ? undefined : 'checkbox'}\n aria-checked={canUseTreeGridStyle ? undefined : isItemSelected}\n tabIndex={-1}\n key={`${labelId}-row-${index}`}\n selected={isItemSelected}\n sx={mergeSx(\n { cursor: isPlaceholderRow ? 'default' : 'pointer' },\n !canUseTreeGridStyle &&\n tableRowBackgroundColor &&\n !isItemSelected && { backgroundColor: tableRowBackgroundColor },\n !canUseTreeGridStyle &&\n tableRowHoverBackgroundColor &&\n !isPlaceholderRow &&\n !isItemSelected && {\n '&.MuiTableRow-hover:hover': {\n backgroundColor: tableRowHoverBackgroundColor,\n },\n },\n !canUseTreeGridStyle &&\n tableRowSelectedBackgroundColor &&\n isItemSelected && {\n '&.Mui-selected, &.Mui-selected:hover': {\n backgroundColor: tableRowSelectedBackgroundColor,\n },\n },\n canUseTreeGridStyle &&\n getTreeGridBodyRowSx(treeGridTheme, {\n canHover: !isPlaceholderRow,\n selected: isItemSelected,\n }),\n !canUseTreeGridStyle && isLastRow && defaultLastRowBottomBorderNoneSx,\n canUseTreeGridStyle && { height: 30 },\n useTableRadiusZero && tableRadiusZeroSx,\n useTableRadiusZero && isLastRow && lastRowRadiusZeroSx,\n )}\n >\n {useCheckBox && (\n <TableCell\n padding=\"checkbox\"\n onClick={(event) => {\n if (!isPlaceholderRow) {\n handleClick(event, row as T);\n }\n }}\n sx={mergeSx(\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n canUseTreeGridStyle\n ? treeGridRowBorderRight\n : getDefaultRowBorderRightSx(tableTheme),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n <Checkbox\n color=\"default\"\n checked={isItemSelected}\n disabled={isPlaceholderRow}\n sx={mergeSx(canUseTreeGridStyle && { p: 0 })}\n />\n </TableCell>\n )}\n {resolvedHeadCells.map((cell, cellIndex) => {\n const _key = `${labelId}-row-${index}-cell-${cellIndex}`;\n const rangeLabel = getRangeLabel(row, cell);\n const rowTabIndex = getRowTabIndex(row, index);\n const cellValue = getRowValue(row, String(cell?.id));\n if (cellIndex === 0) {\n return (\n <TableCell\n className={canUseTreeGridStyle ? undefined : 'px-4'}\n key={_key}\n component={canUseTreeGridStyle ? 'td' : 'th'}\n id={labelId}\n scope={canUseTreeGridStyle ? undefined : 'row'}\n padding=\"none\"\n role={canUseTreeGridStyle ? 'cell' : undefined}\n align={getTableCellAlign(cell.valueAlign, 'left')}\n sx={mergeSx(\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n resolvedHeadCells.length > 1 &&\n (canUseTreeGridStyle\n ? treeGridRowBorderRight\n : getDefaultRowBorderRightSx(tableTheme)),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {cellValue as ReactNode}\n </TableCell>\n );\n }\n\n return (\n <TableCell\n className={canUseTreeGridStyle ? undefined : 'px-4'}\n key={_key}\n role={canUseTreeGridStyle ? 'cell' : undefined}\n align={getTableCellAlign(cell.valueAlign, 'left')}\n sx={mergeSx(\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n resolvedHeadCells.length - 1 !== cellIndex &&\n (canUseTreeGridStyle\n ? treeGridRowBorderRight\n : getDefaultRowBorderRightSx(tableTheme)),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {cell?.canTextField ? (\n cell?.textFieldType === 'number' ? (\n <OwpNumberField\n variant=\"standard\"\n decimalScale={2}\n label={rangeLabel}\n fullWidth\n size=\"small\"\n sx={getEditableCellSx(\n cell?.valueAlign,\n canUseTreeGridStyle\n ? treeGridTheme.cell.fontSize\n : tableTheme.cell.fontSize,\n )}\n slotProps={{\n input: {\n tabIndex: rowTabIndex,\n },\n inputLabel: {\n shrink: true,\n },\n }}\n isAllowed={(values) => {\n const { floatValue } = values;\n const end = getRowRangeValue(row, cell?.rangeKey)?.end;\n\n if (isNumber(floatValue) && isNumber(end)) {\n return floatValue <= end;\n }\n\n return true;\n }}\n value={cellValue as string | number | undefined}\n onBlur={(evt) => {\n const start = getRowRangeValue(row, cell?.rangeKey)?.start;\n const nextValue = evt.target.value?.replace(/,/g, '');\n\n onBlur?.(\n {\n ...evt,\n target: {\n ...evt.target,\n value:\n isNumber(start) && nextValue !== ''\n ? Number(start > Number(nextValue) ? start : nextValue)\n : nextValue,\n },\n },\n rowTabIndex,\n );\n }}\n />\n ) : (\n <TextField\n variant=\"standard\"\n label={rangeLabel}\n fullWidth\n size=\"small\"\n sx={getEditableCellSx(\n cell?.valueAlign,\n canUseTreeGridStyle\n ? treeGridTheme.cell.fontSize\n : tableTheme.cell.fontSize,\n )}\n slotProps={{\n input: {\n tabIndex: rowTabIndex,\n },\n inputLabel: {\n shrink: true,\n },\n }}\n type={cell?.textFieldType ?? 'text'}\n defaultValue={\n cellValue as string | number | readonly string[] | undefined\n }\n onBlur={(evt) =>\n onBlur?.(\n { ...evt, target: { ...evt.target, value: evt.target.value } },\n rowTabIndex,\n )\n }\n />\n )\n ) : (\n (cellValue as ReactNode)\n )}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </TableContainer>\n {useTotalCountRow && (\n <OwpTableTotalCount\n dividerSx={mergeSx(useTableRadiusZero && tableRadiusZeroSx)}\n totalCount={resolvedRows.length}\n typographySx={mergeSx(\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n />\n )}\n </Paper>\n );\n}\n"],"names":["defaultHeadCellsSx","__name","tableTheme","fallbackBackgroundColor","getDefaultTableHeaderCellSx","headerBorderRight","TREEGRID_TABLE_HEADER_BORDER_COLOR","getDefaultRowBorderRightSx","treeGridRowBorderRight","TREEGRID_TABLE_BODY_BORDER_COLOR","treeGridContainerFrameSx","getDefaultTableBodyCellSx","getDefaultTableCellSx","getDefaultHeaderDividerSx","tableRadiusZeroSx","defaultTableRadiusSx","DEFAULT_TABLE_RADIUS","lastRowRadiusZeroSx","defaultLastRowBottomBorderNoneSx","treeGridSortLabelSx","mergeSx","styles","acc","style","isArray","getFixedRowCount","fixedRowCount","isNumber","createEmptyRows","count","getTableCellAlign","align","fallback","getRowValue","row","key","getComparableValue","value","descendingComparator","a","b","orderBy","aValue","bValue","getComparator","order","getRowRangeValue","rangeKey","getRangeLabel","cell","rangeValue","_a","_b","_c","_d","getRowTabIndex","fallbackIndex","rowIndex","getEditableCellSx","valueAlign","fontSize","DataTableHead","props","sx","headCells","onSelectAllClick","numSelected","rowCount","onRequestSort","canCheckbox","canUseOrderBy","canTableRadiusZero","canUseTreeGridStyle","gridTheme","createSortHandler","property","event","TableHead","jsxs","TableRow","jsx","TableCell","DEFAULT_TABLE_HEADER_BACKGROUND_COLOR","getTreeGridHeaderCellSx","Checkbox","checkboxClasses","grey","headCell","index","TableSortLabel","defaultTableSortLabelSx","Typography","getDefaultTableHeaderLabelSx","OwpDataTable","className","headSx","rows","selected","canTotalCountRow","canSelectingSingle","canUseTableRadius","tableBorderRadius","onSelect","onBlur","currentSettings","useGetCurrentSettings","setOrder","useState","setOrderBy","selectedRows","setSelectedRows","tableIdRef","useRef","uniqueId","useFixedRowCount","useMemo","resolvedRows","nextRows","resolvedHeadCells","treeGridTheme","resolveOwpGridTheme","resolveOwpTableTheme","defaultStyledTableTheme","tableRowBackgroundColor","tableRowHoverBackgroundColor","_h","_g","_f","_e","tableRowSelectedBackgroundColor","_l","_k","_j","_i","useTableRadiusZero","tableContainerRadiusSx","toTableRadiusCssValue","useCheckBox","isBoolean","useTotalCountRow","useEffect","isEmpty","handleRequestSort","_","handleSelectAllClick","handleClick","prev","item","isEqual","visibleRows","displayRows","Paper","getTreeGridContainerSx","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","Table","TableBody","isItemSelected","isLastRow","isPlaceholderRow","labelId","getTreeGridBodyRowSx","getTreeGridBodyCellSx","cellIndex","_key","rangeLabel","rowTabIndex","cellValue","OwpNumberField","values","floatValue","end","evt","start","nextValue","TextField","OwpTableTotalCount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OwpDataTable.js","sources":["../../../src/components/OwpTable/OwpDataTable.tsx"],"sourcesContent":["import {\n resolveOwpGridTheme,\n type OwpResolvedGridThemeConfigType,\n} from '@/constants/gridTheme';\nimport {\n resolveOwpTableTheme,\n type OwpResolvedTableThemeConfigType,\n} from '@/constants/tableTheme';\nimport { DEFAULT_TABLE_RADIUS } from '@/constants/table';\nimport { getTreeGridFontFaceStyles } from '@/constants/treeGrid';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport { TextField, Typography, TypographyProps } from '@mui/material';\nimport Checkbox, { checkboxClasses } from '@mui/material/Checkbox';\nimport { grey } from '@mui/material/colors';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport Paper from '@mui/material/Paper';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell, { TableCellProps } from '@mui/material/TableCell';\nimport TableContainer, { TableContainerProps } from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport TableSortLabel from '@mui/material/TableSortLabel';\nimport { type SxProps, type Theme } from '@mui/material/styles';\nimport { isArray, isBoolean, isEmpty, isEqual, isNumber, uniqueId } from 'es-toolkit/compat';\nimport { ChangeEvent, MouseEvent, ReactNode, useEffect, useMemo, useRef, useState } from 'react';\nimport { OwpNumberField } from '../OwpNumberField';\nimport {\n getTreeGridBodyCellSx,\n getTreeGridBodyRowSx,\n getTreeGridContainerSx,\n getTreeGridHeaderBottomBodyBorderSx,\n getTreeGridHeaderCellSx,\n getTreeGridHeaderEdgeCellSx,\n getTreeGridHeaderEdgeHeadSx,\n getTreeGridRadiusContainerFrameSx,\n TREEGRID_TABLE_BODY_BORDER_COLOR,\n TREEGRID_TABLE_HEADER_BORDER_COLOR,\n} from './internal/treeGridTableStyle';\nimport {\n DEFAULT_TABLE_HEADER_BACKGROUND_COLOR,\n defaultStyledTableTheme,\n defaultTableSortLabelSx,\n getDefaultTableCellSx,\n getDefaultTableHeaderCellSx,\n getDefaultTableHeaderLabelSx,\n} from './internal/defaultTableStyle';\nimport { OwpTableTotalCount } from './internal/OwpTableTotalCount';\nimport { toTableRadiusCssValue } from './utils/tableSx';\n\ntype Row = object;\ntype TableCellAlign = NonNullable<TableCellProps['align']>;\n\ninterface HeadCell {\n enablePadding?: boolean;\n id: string;\n label: string;\n sx?: TypographyProps['sx'];\n inputLabel?: string;\n rangeKey?: string;\n rangeLabel?: { start: string; end: string };\n align?: string;\n valueAlign?: string;\n canTextField?: boolean;\n textFieldType?: string;\n}\n\ninterface DataTableHeadProps {\n sx?: TableCellProps['sx'];\n headCells: HeadCell[];\n numSelected: number;\n onRequestSort: (event: MouseEvent<unknown>, property: string) => void;\n onSelectAllClick: (event: ChangeEvent<HTMLInputElement>) => void;\n order: Order;\n orderBy: string;\n rowCount: number;\n canCheckbox?: boolean;\n canUseOrderBy?: boolean;\n canTableRadiusZero?: boolean;\n canUseTableRadius?: boolean;\n canUseTreeGridStyle?: boolean;\n gridTheme: OwpResolvedGridThemeConfigType;\n tableTheme: OwpResolvedTableThemeConfigType;\n}\n\ninterface OwpDataTableProps<T extends Row = Row> {\n className?: string;\n sx?: TableContainerProps['sx'];\n headSx?: TableCellProps['sx'];\n headCells: HeadCell[];\n rows?: T[];\n canCheckbox?: boolean;\n canTotalCountRow?: boolean;\n selected?: T[];\n onSelect?: (rows: T[] | []) => void;\n onBlur?: (evt: OwpDataTableBlurEvent, dataIndex: number) => void;\n canSelectingSingle?: boolean;\n canUseOrderBy?: boolean;\n canTableRadiusZero?: boolean;\n canUseTableRadius?: boolean;\n canUseTreeGridStyle?: boolean;\n tableBorderRadius?: string | number;\n fixedRowCount?: number;\n}\n\nconst defaultHeadCellsSx = (\n tableTheme: OwpResolvedTableThemeConfigType,\n fallbackBackgroundColor: string,\n) =>\n ({\n ...getDefaultTableHeaderCellSx(tableTheme, fallbackBackgroundColor),\n borderBottom: `1px solid ${tableTheme.borderColor}`,\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n }) as const;\n\nconst headerBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_HEADER_BORDER_COLOR}`,\n};\n\n/** 기본 body cell 우측선 sx */\nconst getDefaultRowBorderRightSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n borderRight: `1px solid ${tableTheme.borderColor}`,\n }) as const;\n\nconst treeGridRowBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n};\n\nconst treeGridRowBorderLeft = {\n borderLeft: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n};\n\nconst getDefaultTableBodyCellSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n ...getDefaultTableCellSx(tableTheme),\n }) as const;\n\n/** 기본 table container 외곽선 sx */\nconst getDefaultTableContainerFrameSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n border: `1px solid ${tableTheme.borderColor}`,\n boxSizing: 'border-box',\n }) as const;\n\n/** 기본 header cell 구분선 sx */\nconst getDefaultHeaderDividerSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n borderRight: `1px solid ${tableTheme.borderColor}`,\n }) as const;\n\nconst tableRadiusZeroSx = {\n borderRadius: 0,\n} as const;\nconst defaultTableRadiusSx = {\n borderRadius: DEFAULT_TABLE_RADIUS,\n} as const;\n\nconst lastRowRadiusZeroSx = {\n '& > th, & > td': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n} as const;\n\nconst defaultLastRowBottomBorderNoneSx = {\n '& > th, & > td': {\n borderBottom: 'none',\n },\n} as const;\n\nconst treeGridSortLabelSx = {\n '&.MuiTableSortLabel-root': {\n color: 'inherit',\n display: 'flex',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n justifyContent: 'center',\n lineHeight: 'inherit',\n overflow: 'hidden',\n position: 'relative',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n width: '100%',\n },\n '&.MuiTableSortLabel-root:hover': {\n color: 'inherit',\n },\n '&.Mui-active': {\n color: 'inherit',\n },\n '& .MuiTableSortLabel-icon': {\n color: 'currentColor !important',\n margin: 0,\n position: 'absolute',\n right: 0,\n },\n} as const;\n\n/**\n * sx 병합 유틸\n * @param styles 병합 대상 sx 목록\n */\nconst mergeSx = (...styles: Array<SxProps<Theme> | undefined | false>): SxProps<Theme> =>\n styles.reduce<Array<Exclude<SxProps<Theme>, readonly unknown[]>>>((acc, style) => {\n if (!style) {\n return acc;\n }\n\n return [...acc, ...(isArray(style) ? style : [style])];\n }, []) as SxProps<Theme>;\n\n/**\n * 고정 row 수 계산\n * @param fixedRowCount 고정 row 수\n */\nconst getFixedRowCount = (fixedRowCount?: number) => {\n if (!isNumber(fixedRowCount) || fixedRowCount < 1) {\n return undefined;\n }\n\n return fixedRowCount;\n};\n\n/**\n * 빈 row 목록 생성\n * @param count 생성 수\n */\nconst createEmptyRows = (count: number) => Array.from({ length: count }, () => ({}) as Row);\n\n/**\n * TableCell align 정규화\n * @param align align 값\n * @param fallback 기본 align 값\n */\nconst getTableCellAlign = (align: string | undefined, fallback: TableCellAlign): TableCellAlign => {\n switch (align) {\n case 'center':\n case 'right':\n case 'left':\n case 'inherit':\n case 'justify':\n return align;\n default:\n return fallback;\n }\n};\n\n/**\n * row 값 조회\n * @param row row 값\n * @param key 조회 key\n */\nconst getRowValue = (row: Row, key?: string) => {\n if (!key) {\n return undefined;\n }\n\n return (row as Record<string, unknown>)?.[key];\n};\n\nconst getComparableValue = (value: unknown) => {\n if (typeof value === 'string' || isNumber(value)) {\n return value;\n }\n\n return undefined;\n};\n\nfunction descendingComparator(a: Row, b: Row, orderBy: string) {\n const aValue = getComparableValue(getRowValue(a, orderBy));\n const bValue = getComparableValue(getRowValue(b, orderBy));\n\n if (bValue == null && aValue == null) {\n return 0;\n }\n if (bValue == null) {\n return -1;\n }\n if (aValue == null) {\n return 1;\n }\n if (bValue < aValue) {\n return -1;\n }\n if (bValue > aValue) {\n return 1;\n }\n return 0;\n}\n\ntype Order = 'asc' | 'desc';\ntype OwpDataTableBlurEvent = Record<string, unknown> & {\n target: {\n value: string | number | undefined;\n };\n};\n\nfunction getComparator(order: Order, orderBy: string): (a: Row, b: Row) => number {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\ntype RowRangeValue = {\n start?: string | number;\n end?: string | number;\n};\n\nconst getRowRangeValue = (row: Row, rangeKey?: string) => {\n if (!rangeKey) {\n return undefined;\n }\n\n return getRowValue(row, rangeKey) as RowRangeValue | undefined;\n};\n\nconst getRangeLabel = (row: Row, cell: HeadCell) => {\n if (!(cell.inputLabel ?? cell.rangeKey)) {\n return '';\n }\n\n const rangeValue = getRowRangeValue(row, cell.rangeKey);\n\n return `${cell.rangeLabel?.start ? `${cell.rangeLabel?.start}: ` : ''}${rangeValue?.start} ~ ${cell.rangeLabel?.end ? `${cell.rangeLabel?.end}: ` : ''}${rangeValue?.end}`;\n};\n\nconst getRowTabIndex = (row: Row, fallbackIndex: number) => {\n const rowIndex = getRowValue(row, 'index');\n\n return isNumber(rowIndex) ? rowIndex : fallbackIndex;\n};\n\nconst getEditableCellSx = (\n valueAlign?: HeadCell['valueAlign'],\n fontSize?: number | string,\n) => ({\n '& input': {\n fontSize,\n textAlign: valueAlign ?? 'center',\n },\n '& .MuiInputBase-input': {\n fontSize,\n },\n height: 34,\n});\n\nfunction DataTableHead(props: DataTableHeadProps) {\n const {\n sx,\n headCells,\n onSelectAllClick,\n order,\n orderBy,\n numSelected,\n rowCount,\n onRequestSort,\n canCheckbox,\n canUseOrderBy = true,\n canTableRadiusZero,\n canUseTableRadius,\n canUseTreeGridStyle,\n gridTheme,\n tableTheme,\n } = props;\n const createSortHandler = (property: string) => (event: MouseEvent<unknown>) => {\n onRequestSort(event, property);\n };\n\n return (\n <TableHead\n sx={mergeSx(\n canUseTreeGridStyle &&\n !canUseTableRadius &&\n getTreeGridHeaderEdgeHeadSx(gridTheme),\n canTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n <TableRow\n sx={mergeSx(\n canUseTreeGridStyle && { height: gridTheme.header.height },\n canTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {canCheckbox && (\n <TableCell\n padding=\"checkbox\"\n sx={mergeSx(\n {\n ...defaultHeadCellsSx(tableTheme, DEFAULT_TABLE_HEADER_BACKGROUND_COLOR),\n },\n !canUseTreeGridStyle && getDefaultHeaderDividerSx(tableTheme),\n canUseTreeGridStyle && headerBorderRight,\n canUseTreeGridStyle && getTreeGridHeaderCellSx(gridTheme),\n canUseTreeGridStyle &&\n canUseTableRadius && {\n ...getTreeGridHeaderBottomBodyBorderSx(),\n borderTop: 0,\n },\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n canUseTreeGridStyle &&\n !canUseTableRadius &&\n getTreeGridHeaderEdgeCellSx(gridTheme, {\n left: true,\n right: headCells.length === 0,\n top: true,\n }),\n )}\n >\n <Checkbox\n color=\"default\"\n sx={mergeSx(\n {\n [`&, &.${checkboxClasses.checked}`]: canUseTreeGridStyle\n ? { color: grey[50] }\n : { color: 'inherit' },\n },\n canUseTreeGridStyle && { p: 0 },\n )}\n indeterminate={numSelected > 0 && numSelected < rowCount}\n checked={rowCount > 0 && numSelected === rowCount}\n onChange={onSelectAllClick}\n />\n </TableCell>\n )}\n {headCells.map((headCell, index) => (\n <TableCell\n className={canUseTreeGridStyle ? undefined : 'pl-20'}\n key={headCell.id}\n align={getTableCellAlign(headCell.align, 'center')}\n padding={headCell.enablePadding ? 'normal' : 'none'}\n sortDirection={orderBy === headCell.id ? order : false}\n sx={mergeSx(\n {\n ...defaultHeadCellsSx(tableTheme, DEFAULT_TABLE_HEADER_BACKGROUND_COLOR),\n },\n !canUseTreeGridStyle &&\n headCells.length - 1 !== index &&\n getDefaultHeaderDividerSx(tableTheme),\n canUseTreeGridStyle && headCells.length - 1 !== index && headerBorderRight,\n canUseTreeGridStyle && getTreeGridHeaderCellSx(gridTheme),\n canUseTreeGridStyle &&\n canUseTableRadius && {\n ...getTreeGridHeaderBottomBodyBorderSx(),\n borderRight: headCells.length - 1 === index ? 0 : undefined,\n borderTop: 0,\n },\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n canUseTreeGridStyle && headCell?.sx,\n canUseTreeGridStyle &&\n !canUseTableRadius &&\n getTreeGridHeaderEdgeCellSx(gridTheme, {\n left: !canCheckbox && index === 0,\n right: headCells.length - 1 === index,\n top: true,\n }),\n )}\n >\n {canUseOrderBy ? (\n <TableSortLabel\n sx={canUseTreeGridStyle ? treeGridSortLabelSx : defaultTableSortLabelSx}\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : 'asc'}\n onClick={createSortHandler(headCell.id)}\n >\n {canUseTreeGridStyle ? (\n headCell.label\n ) : (\n <Typography sx={mergeSx(getDefaultTableHeaderLabelSx(tableTheme), headCell?.sx)}>\n {headCell.label}\n </Typography>\n )}\n </TableSortLabel>\n ) : canUseTreeGridStyle ? (\n headCell.label\n ) : (\n <Typography sx={mergeSx(getDefaultTableHeaderLabelSx(tableTheme), headCell?.sx)}>\n {headCell.label}\n </Typography>\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n}\n\n/**\n * OwpDataTable 컴포넌트\n * @param className CSS 클래스명\n * @param sx sx 값\n * @param headSx headSx 값\n * @param headCells headCells 값\n * @param rows 행 데이터 목록\n * @param selected selected 값\n * @param canTableRadiusZero 테이블 radius 0 사용 여부\n * @param canUseTableRadius 테이블 radius 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param tableBorderRadius 테이블 radius 값\n * @param fixedRowCount 고정 row 수\n */\nexport function OwpDataTable<T extends Row = Row>({\n className,\n sx,\n headSx,\n headCells,\n rows,\n selected,\n canCheckbox,\n canTotalCountRow,\n canSelectingSingle,\n canUseOrderBy = true,\n canTableRadiusZero,\n canUseTableRadius = false,\n canUseTreeGridStyle = false,\n tableBorderRadius = DEFAULT_TABLE_RADIUS,\n fixedRowCount,\n onSelect,\n onBlur,\n}: OwpDataTableProps<T>) {\n const currentSettings = useGetCurrentSettings();\n const [order, setOrder] = useState<Order>('asc');\n const [orderBy, setOrderBy] = useState<string>('');\n const [selectedRows, setSelectedRows] = useState<T[] | []>([]);\n const tableIdRef = useRef(uniqueId('owp-data-table'));\n const useFixedRowCount = useMemo(() => getFixedRowCount(fixedRowCount), [fixedRowCount]);\n const resolvedRows = useMemo(() => {\n const nextRows = isArray(rows) ? rows : [];\n\n return useFixedRowCount ? nextRows.slice(0, useFixedRowCount) : nextRows;\n }, [rows, useFixedRowCount]);\n const resolvedHeadCells = useMemo(() => headCells ?? [], [headCells]);\n const treeGridTheme = useMemo(\n () => resolveOwpGridTheme(currentSettings?.theme?.main?.grid),\n [currentSettings],\n );\n const tableTheme = useMemo(\n () => resolveOwpTableTheme(currentSettings?.theme?.main?.table, defaultStyledTableTheme),\n [currentSettings],\n );\n const tableRowBackgroundColor = currentSettings?.theme?.main?.table?.row?.backgroundColor;\n const tableRowHoverBackgroundColor =\n currentSettings?.theme?.main?.table?.row?.hoverBackgroundColor;\n const tableRowSelectedBackgroundColor =\n currentSettings?.theme?.main?.table?.row?.selectedBackgroundColor;\n const useTableRadiusZero = !!canTableRadiusZero;\n const tableContainerRadiusSx = useTableRadiusZero\n ? tableRadiusZeroSx\n : canUseTreeGridStyle && canUseTableRadius\n ? {\n borderRadius: toTableRadiusCssValue(tableBorderRadius),\n overflow: 'hidden',\n }\n : !canUseTreeGridStyle\n ? defaultTableRadiusSx\n : undefined;\n const useCheckBox = isBoolean(canCheckbox) ? canCheckbox : true;\n const useTotalCountRow = isBoolean(canTotalCountRow) ? canTotalCountRow : true;\n\n useEffect(() => {\n if (!isEmpty(selected)) {\n setSelectedRows(selected);\n }\n }, [selected]);\n\n useEffect(() => {\n onSelect?.(selectedRows);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedRows]);\n\n const handleRequestSort = (_: MouseEvent<unknown>, property: string) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n const handleSelectAllClick = (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.checked) {\n setSelectedRows(resolvedRows);\n return;\n }\n setSelectedRows([]);\n };\n\n const handleClick = (_: MouseEvent<unknown>, row: T) => {\n if (canSelectingSingle) {\n setSelectedRows([row]);\n return;\n }\n setSelectedRows((prev: T[]) => {\n const isIncluded = !!prev.find((item) => isEqual(item, row));\n return isIncluded ? prev?.filter((item: T) => !isEqual(item, row)) : [...prev, row];\n });\n };\n\n const visibleRows = useMemo(\n () => [...resolvedRows].sort(getComparator(order, orderBy)),\n [order, orderBy, resolvedRows],\n );\n const displayRows = useMemo(() => {\n if (!useFixedRowCount || visibleRows.length >= useFixedRowCount) {\n return visibleRows;\n }\n\n return [...visibleRows, ...createEmptyRows(useFixedRowCount - visibleRows.length)];\n }, [useFixedRowCount, visibleRows]);\n\n return (\n <Paper\n className={className}\n elevation={0}\n sx={mergeSx(\n { width: '100%' },\n !canUseTreeGridStyle &&\n tableRowBackgroundColor && { backgroundColor: tableRowBackgroundColor },\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n tableContainerRadiusSx,\n )}\n >\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n sx={mergeSx(\n { height: useFixedRowCount ? 'auto' : 500 },\n !canUseTreeGridStyle &&\n tableRowBackgroundColor && { backgroundColor: tableRowBackgroundColor },\n !canUseTreeGridStyle && getDefaultTableContainerFrameSx(tableTheme),\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n canUseTreeGridStyle &&\n canUseTableRadius &&\n getTreeGridRadiusContainerFrameSx(treeGridTheme, 1),\n useFixedRowCount && { overflowY: 'hidden' },\n tableContainerRadiusSx,\n sx,\n )}\n >\n <Table\n stickyHeader={!canUseTreeGridStyle}\n sx={mergeSx({ minWidth: 200 }, useTableRadiusZero && tableRadiusZeroSx)}\n aria-labelledby=\"owp-data-table\"\n >\n <DataTableHead\n sx={headSx}\n headCells={resolvedHeadCells}\n gridTheme={treeGridTheme}\n tableTheme={tableTheme}\n numSelected={selectedRows.length}\n order={order}\n orderBy={orderBy}\n onSelectAllClick={handleSelectAllClick}\n canCheckbox={!canSelectingSingle && useCheckBox}\n canUseOrderBy={canUseOrderBy}\n canTableRadiusZero={useTableRadiusZero}\n canUseTableRadius={canUseTableRadius}\n canUseTreeGridStyle={canUseTreeGridStyle}\n onRequestSort={handleRequestSort}\n rowCount={resolvedRows.length}\n />\n <TableBody sx={mergeSx(useTableRadiusZero && tableRadiusZeroSx)}>\n {displayRows.map((row, index) => {\n const isItemSelected = selectedRows.some((item) => isEqual(item, row));\n const isLastRow = displayRows.length - 1 === index;\n const isPlaceholderRow = useFixedRowCount ? index >= visibleRows.length : false;\n const labelId = `${tableIdRef.current}-${index}`;\n\n return (\n <TableRow\n hover\n role={canUseTreeGridStyle ? undefined : 'checkbox'}\n aria-checked={canUseTreeGridStyle ? undefined : isItemSelected}\n tabIndex={-1}\n key={`${labelId}-row-${index}`}\n selected={isItemSelected}\n sx={mergeSx(\n { cursor: isPlaceholderRow ? 'default' : 'pointer' },\n !canUseTreeGridStyle &&\n tableRowBackgroundColor &&\n !isItemSelected && { backgroundColor: tableRowBackgroundColor },\n !canUseTreeGridStyle &&\n tableRowHoverBackgroundColor &&\n !isPlaceholderRow &&\n !isItemSelected && {\n '&.MuiTableRow-hover:hover': {\n backgroundColor: tableRowHoverBackgroundColor,\n },\n },\n !canUseTreeGridStyle &&\n tableRowSelectedBackgroundColor &&\n isItemSelected && {\n '&.Mui-selected, &.Mui-selected:hover': {\n backgroundColor: tableRowSelectedBackgroundColor,\n },\n },\n canUseTreeGridStyle &&\n getTreeGridBodyRowSx(treeGridTheme, {\n canHover: !isPlaceholderRow,\n selected: isItemSelected,\n }),\n !canUseTreeGridStyle && isLastRow && defaultLastRowBottomBorderNoneSx,\n canUseTreeGridStyle && { height: 30 },\n useTableRadiusZero && tableRadiusZeroSx,\n useTableRadiusZero && isLastRow && lastRowRadiusZeroSx,\n )}\n >\n {useCheckBox && (\n <TableCell\n padding=\"checkbox\"\n onClick={(event) => {\n if (!isPlaceholderRow) {\n handleClick(event, row as T);\n }\n }}\n sx={mergeSx(\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n canUseTreeGridStyle && treeGridRowBorderLeft,\n canUseTreeGridStyle\n ? treeGridRowBorderRight\n : getDefaultRowBorderRightSx(tableTheme),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n <Checkbox\n color=\"default\"\n checked={isItemSelected}\n disabled={isPlaceholderRow}\n sx={mergeSx(canUseTreeGridStyle && { p: 0 })}\n />\n </TableCell>\n )}\n {resolvedHeadCells.map((cell, cellIndex) => {\n const _key = `${labelId}-row-${index}-cell-${cellIndex}`;\n const rangeLabel = getRangeLabel(row, cell);\n const rowTabIndex = getRowTabIndex(row, index);\n const cellValue = getRowValue(row, String(cell?.id));\n if (cellIndex === 0) {\n return (\n <TableCell\n className={canUseTreeGridStyle ? undefined : 'px-4'}\n key={_key}\n component={canUseTreeGridStyle ? 'td' : 'th'}\n id={labelId}\n scope={canUseTreeGridStyle ? undefined : 'row'}\n padding=\"none\"\n role={canUseTreeGridStyle ? 'cell' : undefined}\n align={getTableCellAlign(cell.valueAlign, 'left')}\n sx={mergeSx(\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n canUseTreeGridStyle && !useCheckBox && treeGridRowBorderLeft,\n resolvedHeadCells.length > 1 &&\n (canUseTreeGridStyle\n ? treeGridRowBorderRight\n : getDefaultRowBorderRightSx(tableTheme)),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {cellValue as ReactNode}\n </TableCell>\n );\n }\n\n return (\n <TableCell\n className={canUseTreeGridStyle ? undefined : 'px-4'}\n key={_key}\n role={canUseTreeGridStyle ? 'cell' : undefined}\n align={getTableCellAlign(cell.valueAlign, 'left')}\n sx={mergeSx(\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n resolvedHeadCells.length - 1 !== cellIndex &&\n (canUseTreeGridStyle\n ? treeGridRowBorderRight\n : getDefaultRowBorderRightSx(tableTheme)),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {cell?.canTextField ? (\n cell?.textFieldType === 'number' ? (\n <OwpNumberField\n variant=\"standard\"\n decimalScale={2}\n label={rangeLabel}\n fullWidth\n size=\"small\"\n sx={getEditableCellSx(\n cell?.valueAlign,\n canUseTreeGridStyle\n ? treeGridTheme.cell.fontSize\n : tableTheme.cell.fontSize,\n )}\n slotProps={{\n input: {\n tabIndex: rowTabIndex,\n },\n inputLabel: {\n shrink: true,\n },\n }}\n isAllowed={(values) => {\n const { floatValue } = values;\n const end = getRowRangeValue(row, cell?.rangeKey)?.end;\n\n if (isNumber(floatValue) && isNumber(end)) {\n return floatValue <= end;\n }\n\n return true;\n }}\n value={cellValue as string | number | undefined}\n onBlur={(evt) => {\n const start = getRowRangeValue(row, cell?.rangeKey)?.start;\n const nextValue = evt.target.value?.replace(/,/g, '');\n\n onBlur?.(\n {\n ...evt,\n target: {\n ...evt.target,\n value:\n isNumber(start) && nextValue !== ''\n ? Number(start > Number(nextValue) ? start : nextValue)\n : nextValue,\n },\n },\n rowTabIndex,\n );\n }}\n />\n ) : (\n <TextField\n variant=\"standard\"\n label={rangeLabel}\n fullWidth\n size=\"small\"\n sx={getEditableCellSx(\n cell?.valueAlign,\n canUseTreeGridStyle\n ? treeGridTheme.cell.fontSize\n : tableTheme.cell.fontSize,\n )}\n slotProps={{\n input: {\n tabIndex: rowTabIndex,\n },\n inputLabel: {\n shrink: true,\n },\n }}\n type={cell?.textFieldType ?? 'text'}\n defaultValue={\n cellValue as string | number | readonly string[] | undefined\n }\n onBlur={(evt) =>\n onBlur?.(\n { ...evt, target: { ...evt.target, value: evt.target.value } },\n rowTabIndex,\n )\n }\n />\n )\n ) : (\n (cellValue as ReactNode)\n )}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </TableContainer>\n {useTotalCountRow && (\n <OwpTableTotalCount\n dividerSx={mergeSx(useTableRadiusZero && tableRadiusZeroSx)}\n totalCount={resolvedRows.length}\n typographySx={mergeSx(\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n />\n )}\n </Paper>\n );\n}\n"],"names":["defaultHeadCellsSx","__name","tableTheme","fallbackBackgroundColor","getDefaultTableHeaderCellSx","headerBorderRight","TREEGRID_TABLE_HEADER_BORDER_COLOR","getDefaultRowBorderRightSx","treeGridRowBorderRight","TREEGRID_TABLE_BODY_BORDER_COLOR","treeGridRowBorderLeft","getDefaultTableBodyCellSx","getDefaultTableCellSx","getDefaultTableContainerFrameSx","getDefaultHeaderDividerSx","tableRadiusZeroSx","defaultTableRadiusSx","DEFAULT_TABLE_RADIUS","lastRowRadiusZeroSx","defaultLastRowBottomBorderNoneSx","treeGridSortLabelSx","mergeSx","styles","acc","style","isArray","getFixedRowCount","fixedRowCount","isNumber","createEmptyRows","count","getTableCellAlign","align","fallback","getRowValue","row","key","getComparableValue","value","descendingComparator","a","b","orderBy","aValue","bValue","getComparator","order","getRowRangeValue","rangeKey","getRangeLabel","cell","rangeValue","_a","_b","_c","_d","getRowTabIndex","fallbackIndex","rowIndex","getEditableCellSx","valueAlign","fontSize","DataTableHead","props","sx","headCells","onSelectAllClick","numSelected","rowCount","onRequestSort","canCheckbox","canUseOrderBy","canTableRadiusZero","canUseTableRadius","canUseTreeGridStyle","gridTheme","createSortHandler","property","event","jsx","TableHead","getTreeGridHeaderEdgeHeadSx","jsxs","TableRow","TableCell","DEFAULT_TABLE_HEADER_BACKGROUND_COLOR","getTreeGridHeaderCellSx","getTreeGridHeaderBottomBodyBorderSx","getTreeGridHeaderEdgeCellSx","Checkbox","checkboxClasses","grey","headCell","index","TableSortLabel","defaultTableSortLabelSx","Typography","getDefaultTableHeaderLabelSx","OwpDataTable","className","headSx","rows","selected","canTotalCountRow","canSelectingSingle","tableBorderRadius","onSelect","onBlur","currentSettings","useGetCurrentSettings","setOrder","useState","setOrderBy","selectedRows","setSelectedRows","tableIdRef","useRef","uniqueId","useFixedRowCount","useMemo","resolvedRows","nextRows","resolvedHeadCells","treeGridTheme","resolveOwpGridTheme","resolveOwpTableTheme","defaultStyledTableTheme","tableRowBackgroundColor","tableRowHoverBackgroundColor","_h","_g","_f","_e","tableRowSelectedBackgroundColor","_l","_k","_j","_i","useTableRadiusZero","tableContainerRadiusSx","toTableRadiusCssValue","useCheckBox","isBoolean","useTotalCountRow","useEffect","isEmpty","handleRequestSort","_","handleSelectAllClick","handleClick","prev","item","isEqual","visibleRows","displayRows","Paper","getTreeGridContainerSx","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","getTreeGridRadiusContainerFrameSx","Table","TableBody","isItemSelected","isLastRow","isPlaceholderRow","labelId","getTreeGridBodyRowSx","getTreeGridBodyCellSx","cellIndex","_key","rangeLabel","rowTabIndex","cellValue","OwpNumberField","values","floatValue","end","evt","start","nextValue","TextField","OwpTableTotalCount"],"mappings":"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"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
var
|
|
2
|
-
var c = (e, o) =>
|
|
1
|
+
var j = Object.defineProperty;
|
|
2
|
+
var c = (e, o) => j(e, "name", { value: o, configurable: !0 });
|
|
3
3
|
import { jsxs as M, jsx as m } from "../../node_modules/.pnpm/@emotion_react@11.14.0_@types_react@19.2.14_react@19.2.4/node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js";
|
|
4
4
|
import { resolveOwpTableTheme as K } from "../../constants/tableTheme.js";
|
|
5
5
|
import { useGetCurrentSettings as N } from "../../hooks/useOwpSettings.js";
|
|
6
6
|
import { clsx as U } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
7
7
|
import k from "@mui/material/Box";
|
|
8
8
|
import W from "@mui/material/TableBody";
|
|
9
|
-
import
|
|
9
|
+
import O from "@mui/material/TableCell";
|
|
10
10
|
import q from "@mui/material/TableHead";
|
|
11
11
|
import { useMemo as f } from "react";
|
|
12
12
|
import { getDefaultTableHeaderCellSx as z, defaultStyledTableTheme as F } from "./internal/defaultTableStyle.js";
|
|
13
|
-
import { OwpTableBaseRow as
|
|
13
|
+
import { OwpTableBaseRow as R, OwpTableBase as I } from "./internal/OwpTableBase.js";
|
|
14
14
|
import { OwpTableTotalCount as J } from "./internal/OwpTableTotalCount.js";
|
|
15
15
|
import { mergeSx as y, getTableHelperTextRowSx as Q } from "./utils/tableSx.js";
|
|
16
16
|
import { isArray as L } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isArray.js";
|
|
17
17
|
import { isEmpty as V } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
|
|
18
|
-
const
|
|
18
|
+
const E = /* @__PURE__ */ c((e) => e ? Object.keys(e).filter((o) => !o.includes("Span")) : [], "getTableColumnKeys"), H = /* @__PURE__ */ c((e, o) => e[`${o}Sx`] ?? {}, "getTableCellSx"), _ = /* @__PURE__ */ c((e, o, i) => e[`${o}${i}`] ?? void 0, "getTableCellSpan"), v = {
|
|
19
19
|
dark: "rgba(241,245,249,.12)",
|
|
20
20
|
light: "#e2e8f0"
|
|
21
21
|
}, A = "owp-table-cell-content", X = Q(A);
|
|
@@ -26,8 +26,8 @@ function fo({
|
|
|
26
26
|
totalCount: d,
|
|
27
27
|
...t
|
|
28
28
|
}) {
|
|
29
|
-
var
|
|
30
|
-
const l = N(), s = ((
|
|
29
|
+
var C, T, x, S, h, g, B, $;
|
|
30
|
+
const l = N(), s = ((x = (T = (C = l == null ? void 0 : l.theme) == null ? void 0 : C.main) == null ? void 0 : T.palette) == null ? void 0 : x.mode) === "dark" ? v.dark : v.light, p = f(
|
|
31
31
|
() => {
|
|
32
32
|
var r, a;
|
|
33
33
|
return t.tableTheme ?? K((a = (r = l == null ? void 0 : l.theme) == null ? void 0 : r.main) == null ? void 0 : a.table, {
|
|
@@ -36,13 +36,13 @@ function fo({
|
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
38
|
[l, s, t.tableTheme]
|
|
39
|
-
),
|
|
39
|
+
), u = f(
|
|
40
40
|
() => L(o) ? o : V(o) ? [] : [o],
|
|
41
41
|
[o]
|
|
42
|
-
),
|
|
43
|
-
() =>
|
|
42
|
+
), G = f(
|
|
43
|
+
() => E(L(o) ? o[0] : o),
|
|
44
44
|
[o]
|
|
45
|
-
),
|
|
45
|
+
), w = (B = (g = (h = (S = l == null ? void 0 : l.theme) == null ? void 0 : S.main) == null ? void 0 : h.table) == null ? void 0 : g.row) == null ? void 0 : B.backgroundColor;
|
|
46
46
|
return /* @__PURE__ */ M(
|
|
47
47
|
I,
|
|
48
48
|
{
|
|
@@ -50,8 +50,8 @@ function fo({
|
|
|
50
50
|
containerProps: {
|
|
51
51
|
...t.containerProps,
|
|
52
52
|
sx: y(
|
|
53
|
-
!t.canUseTreeGridStyle &&
|
|
54
|
-
(
|
|
53
|
+
!t.canUseTreeGridStyle && w && { backgroundColor: w },
|
|
54
|
+
($ = t.containerProps) == null ? void 0 : $.sx
|
|
55
55
|
)
|
|
56
56
|
},
|
|
57
57
|
footerSlot: e ? /* @__PURE__ */ m(
|
|
@@ -63,14 +63,15 @@ function fo({
|
|
|
63
63
|
) : void 0,
|
|
64
64
|
className: U(t.tableLayout && "w-full", t.className),
|
|
65
65
|
tableTheme: p,
|
|
66
|
+
treeGridHeaderRowCount: u.length,
|
|
66
67
|
children: [
|
|
67
|
-
/* @__PURE__ */ m(q, { children:
|
|
68
|
-
|
|
68
|
+
/* @__PURE__ */ m(q, { children: u.map((r, a) => /* @__PURE__ */ m(R, { children: E(r).map((n) => /* @__PURE__ */ m(
|
|
69
|
+
O,
|
|
69
70
|
{
|
|
70
71
|
className: "whitespace-pre-wrap",
|
|
71
72
|
sx: y(
|
|
72
73
|
!t.canUseTreeGridStyle && z(p),
|
|
73
|
-
|
|
74
|
+
H(r, n)
|
|
74
75
|
),
|
|
75
76
|
colSpan: _(r, n, "ColSpan"),
|
|
76
77
|
rowSpan: _(r, n, "RowSpan"),
|
|
@@ -81,11 +82,11 @@ function fo({
|
|
|
81
82
|
)) }, `table-header-${a}`)) }),
|
|
82
83
|
/* @__PURE__ */ m(W, { children: i.map((r, a) => {
|
|
83
84
|
const n = r;
|
|
84
|
-
return /* @__PURE__ */ m(
|
|
85
|
-
|
|
85
|
+
return /* @__PURE__ */ m(R, { sx: X, children: G.map((b) => /* @__PURE__ */ m(
|
|
86
|
+
O,
|
|
86
87
|
{
|
|
87
88
|
className: "whitespace-pre-wrap h-64",
|
|
88
|
-
sx:
|
|
89
|
+
sx: H(n, b),
|
|
89
90
|
align: "center",
|
|
90
91
|
children: /* @__PURE__ */ m(k, { className: A, children: n[b] })
|
|
91
92
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.tsx"],"sourcesContent":["import { resolveOwpTableTheme } from '@/constants/tableTheme';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport type { SxProps, Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport Box from '@mui/material/Box';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport { isArray, isEmpty } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\nimport { defaultStyledTableTheme, getDefaultTableHeaderCellSx } from './internal/defaultTableStyle';\nimport { OwpTableBase, type OwpTableBaseProps, OwpTableBaseRow } from './internal/OwpTableBase';\nimport { OwpTableTotalCount } from './internal/OwpTableTotalCount';\nimport { getTableHelperTextRowSx, mergeSx } from './utils/tableSx';\n\ntype OwpTableCellValue = string | number;\ntype OwpTableHeaderRow = Record<string, OwpTableCellValue>;\ntype OwpTableRowData = Record<string, unknown>;\n\nconst getTableColumnKeys = (row?: Record<string, unknown>) => {\n if (!row) {\n return [];\n }\n\n return Object.keys(row).filter((keyName) => !keyName.includes('Span'));\n};\n\nconst getTableCellSx = (row: Record<string, unknown>, keyName: string) => {\n return (row[`${keyName}Sx`] as SxProps<Theme>) ?? {};\n};\n\nconst getTableCellSpan = (\n row: Record<string, unknown>,\n keyName: string,\n spanType: 'ColSpan' | 'RowSpan',\n) => {\n return (row[`${keyName}${spanType}`] as number | undefined) ?? undefined;\n};\n\nconst defaultTableBorderColorByMode = {\n dark: 'rgba(241,245,249,.12)',\n light: '#e2e8f0',\n} as const;\n\nconst OWP_TABLE_CELL_CONTENT_CLASS_NAME = 'owp-table-cell-content';\nconst tableRowSx = getTableHelperTextRowSx(OWP_TABLE_CELL_CONTENT_CLASS_NAME);\n\ninterface OwpTableProps<T> extends Omit<OwpTableBaseProps, 'children'> {\n canTotalCountRow?: boolean;\n headers: OwpTableHeaderRow | OwpTableHeaderRow[];\n rows: T[];\n totalCount?: number;\n}\n\n/**\n * OwpTable 컴포넌트\n * @param canTotalCountRow 전체 row 수 표시 여부\n * @param canTableRadiusZero 테이블 radius 0 사용 여부\n * @param canUseTableRadius 테이블 radius 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param headers headers 값\n * @param rows 행 데이터 목록\n * @param tableBorderRadius 테이블 radius 값\n * @param totalCount 전체 row 수\n */\nexport function OwpTable<T>({\n canTotalCountRow = false,\n headers,\n rows,\n totalCount,\n ...restTableProps\n}: OwpTableProps<T>) {\n const currentSettings = useGetCurrentSettings();\n const defaultTableBorderColor =\n currentSettings?.theme?.main?.palette?.mode === 'dark'\n ? defaultTableBorderColorByMode.dark\n : defaultTableBorderColorByMode.light;\n const tableTheme = useMemo(\n () =>\n restTableProps.tableTheme ??\n resolveOwpTableTheme(currentSettings?.theme?.main?.table, {\n ...defaultStyledTableTheme,\n borderColor: defaultTableBorderColor,\n }),\n [currentSettings, defaultTableBorderColor, restTableProps.tableTheme],\n );\n const resolvedHeaderRows = useMemo(\n () => (isArray(headers) ? headers : isEmpty(headers) ? [] : [headers]),\n [headers],\n );\n const commonKeyListData = useMemo(\n () => getTableColumnKeys(isArray(headers) ? headers[0] : headers),\n [headers],\n );\n const tableBackgroundColor = currentSettings?.theme?.main?.table?.row?.backgroundColor;\n\n return (\n <OwpTableBase\n {...restTableProps}\n containerProps={{\n ...restTableProps.containerProps,\n sx: mergeSx(\n !restTableProps.canUseTreeGridStyle &&\n tableBackgroundColor && { backgroundColor: tableBackgroundColor },\n restTableProps.containerProps?.sx,\n ),\n }}\n footerSlot={\n canTotalCountRow ? (\n <OwpTableTotalCount\n borderColor={tableTheme.borderColor}\n totalCount={typeof totalCount === 'undefined' ? rows.length : totalCount}\n />\n ) : undefined\n }\n className={clsx(restTableProps.tableLayout && 'w-full', restTableProps.className)}\n tableTheme={tableTheme}\n >\n <TableHead>\n {resolvedHeaderRows.map((headerData, index) => (\n <OwpTableBaseRow key={`table-header-${index}`}>\n {getTableColumnKeys(headerData).map((keyName) => (\n <TableCell\n key={`table-header-${index}-${keyName}`}\n className=\"whitespace-pre-wrap\"\n sx={mergeSx(\n !restTableProps.canUseTreeGridStyle && getDefaultTableHeaderCellSx(tableTheme),\n getTableCellSx(headerData, keyName),\n )}\n colSpan={getTableCellSpan(headerData, keyName, 'ColSpan')}\n rowSpan={getTableCellSpan(headerData, keyName, 'RowSpan')}\n align=\"center\"\n >\n {headerData[keyName]}\n </TableCell>\n ))}\n </OwpTableBaseRow>\n ))}\n </TableHead>\n <TableBody>\n {rows.map((row, index) => {\n const currentRow = row as OwpTableRowData;\n\n return (\n <OwpTableBaseRow key={`table-row-${index}`} sx={tableRowSx}>\n {commonKeyListData.map((keyName) => (\n <TableCell\n key={`table-row-cell-${index}-${keyName}`}\n className=\"whitespace-pre-wrap h-64\"\n sx={getTableCellSx(currentRow, keyName)}\n align=\"center\"\n >\n <Box className={OWP_TABLE_CELL_CONTENT_CLASS_NAME}>\n {currentRow[keyName] as ReactNode}\n </Box>\n </TableCell>\n ))}\n </OwpTableBaseRow>\n );\n })}\n </TableBody>\n </OwpTableBase>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","defaultTableBorderColorByMode","OWP_TABLE_CELL_CONTENT_CLASS_NAME","tableRowSx","getTableHelperTextRowSx","OwpTable","canTotalCountRow","headers","rows","totalCount","restTableProps","currentSettings","useGetCurrentSettings","defaultTableBorderColor","_c","_b","_a","tableTheme","useMemo","resolveOwpTableTheme","defaultStyledTableTheme","resolvedHeaderRows","isArray","isEmpty","commonKeyListData","tableBackgroundColor","_g","_f","_e","_d","jsxs","OwpTableBase","mergeSx","_h","jsx","OwpTableTotalCount","clsx","TableHead","headerData","index","OwpTableBaseRow","TableCell","getDefaultTableHeaderCellSx","TableBody","currentRow","Box"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,MAAMA,IAAqB,gBAAAC,EAAA,CAACC,MACrBA,IAIE,OAAO,KAAKA,CAAG,EAAE,OAAO,CAACC,MAAY,CAACA,EAAQ,SAAS,MAAM,CAAC,IAH5D,CAAA,GAFgB,uBAQrBC,IAAiB,gBAAAH,EAAA,CAACC,GAA8BC,MAC5CD,EAAI,GAAGC,CAAO,IAAI,KAAwB,CAAA,GAD7B,mBAIjBE,IAAmB,gBAAAJ,EAAA,CACvBC,GACAC,GACAG,MAEQJ,EAAI,GAAGC,CAAO,GAAGG,CAAQ,EAAE,KAA4B,QALxC,qBAQnBC,IAAgC;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AACT,GAEMC,IAAoC,0BACpCC,IAAaC,EAAwBF,CAAiC;AAoBrE,SAASG,GAAY;AAAA,EAC1B,kBAAAC,IAAmB;AAAA,EACnB,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,GAAqB;;AACnB,QAAMC,IAAkBC,EAAA,GAClBC,MACJC,KAAAC,KAAAC,IAAAL,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAK,EAAwB,SAAxB,gBAAAD,EAA8B,YAA9B,gBAAAD,EAAuC,UAAS,SAC5Cb,EAA8B,OAC9BA,EAA8B,OAC9BgB,IAAaC;AAAA,IACjB,MAAA;;AACE,aAAAR,EAAe,cACfS,GAAqBJ,KAAAC,IAAAL,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAK,EAAwB,SAAxB,gBAAAD,EAA8B,OAAO;AAAA,QACxD,GAAGK;AAAA,QACH,aAAaP;AAAA,MAAA,CACd;AAAA;AAAA,IACH,CAACF,GAAiBE,GAAyBH,EAAe,UAAU;AAAA,EAAA,GAEhEW,IAAqBH;AAAA,IACzB,MAAOI,EAAQf,CAAO,IAAIA,IAAUgB,EAAQhB,CAAO,IAAI,KAAK,CAACA,CAAO;AAAA,IACpE,CAACA,CAAO;AAAA,EAAA,GAEJiB,IAAoBN;AAAA,IACxB,MAAMxB,EAAmB4B,EAAQf,CAAO,IAAIA,EAAQ,CAAC,IAAIA,CAAO;AAAA,IAChE,CAACA,CAAO;AAAA,EAAA,GAEJkB,KAAuBC,KAAAC,KAAAC,KAAAC,IAAAlB,KAAA,gBAAAA,EAAiB,UAAjB,gBAAAkB,EAAwB,SAAxB,gBAAAD,EAA8B,UAA9B,gBAAAD,EAAqC,QAArC,gBAAAD,EAA0C;AAEvE,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACE,GAAGrB;AAAA,MACJ,gBAAgB;AAAA,QACd,GAAGA,EAAe;AAAA,QAClB,IAAIsB;AAAA,UACF,CAACtB,EAAe,uBACde,KAAwB,EAAE,iBAAiBA,EAAA;AAAA,WAC7CQ,IAAAvB,EAAe,mBAAf,gBAAAuB,EAA+B;AAAA,QAAA;AAAA,MACjC;AAAA,MAEF,YACE3B,IACE,gBAAA4B;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,aAAalB,EAAW;AAAA,UACxB,YAAY,OAAOR,IAAe,MAAcD,EAAK,SAASC;AAAA,QAAA;AAAA,MAAA,IAE9D;AAAA,MAEN,WAAW2B,EAAK1B,EAAe,eAAe,UAAUA,EAAe,SAAS;AAAA,MAChF,YAAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.tsx"],"sourcesContent":["import { resolveOwpTableTheme } from '@/constants/tableTheme';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport type { SxProps, Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport Box from '@mui/material/Box';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport { isArray, isEmpty } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\nimport { defaultStyledTableTheme, getDefaultTableHeaderCellSx } from './internal/defaultTableStyle';\nimport { OwpTableBase, type OwpTableBaseProps, OwpTableBaseRow } from './internal/OwpTableBase';\nimport { OwpTableTotalCount } from './internal/OwpTableTotalCount';\nimport { getTableHelperTextRowSx, mergeSx } from './utils/tableSx';\n\ntype OwpTableCellValue = string | number;\ntype OwpTableHeaderRow = Record<string, OwpTableCellValue>;\ntype OwpTableRowData = Record<string, unknown>;\n\nconst getTableColumnKeys = (row?: Record<string, unknown>) => {\n if (!row) {\n return [];\n }\n\n return Object.keys(row).filter((keyName) => !keyName.includes('Span'));\n};\n\nconst getTableCellSx = (row: Record<string, unknown>, keyName: string) => {\n return (row[`${keyName}Sx`] as SxProps<Theme>) ?? {};\n};\n\nconst getTableCellSpan = (\n row: Record<string, unknown>,\n keyName: string,\n spanType: 'ColSpan' | 'RowSpan',\n) => {\n return (row[`${keyName}${spanType}`] as number | undefined) ?? undefined;\n};\n\nconst defaultTableBorderColorByMode = {\n dark: 'rgba(241,245,249,.12)',\n light: '#e2e8f0',\n} as const;\n\nconst OWP_TABLE_CELL_CONTENT_CLASS_NAME = 'owp-table-cell-content';\nconst tableRowSx = getTableHelperTextRowSx(OWP_TABLE_CELL_CONTENT_CLASS_NAME);\n\ninterface OwpTableProps<T> extends Omit<OwpTableBaseProps, 'children'> {\n canTotalCountRow?: boolean;\n headers: OwpTableHeaderRow | OwpTableHeaderRow[];\n rows: T[];\n totalCount?: number;\n}\n\n/**\n * OwpTable 컴포넌트\n * @param canTotalCountRow 전체 row 수 표시 여부\n * @param canTableRadiusZero 테이블 radius 0 사용 여부\n * @param canUseTableRadius 테이블 radius 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param headers headers 값\n * @param rows 행 데이터 목록\n * @param tableBorderRadius 테이블 radius 값\n * @param totalCount 전체 row 수\n */\nexport function OwpTable<T>({\n canTotalCountRow = false,\n headers,\n rows,\n totalCount,\n ...restTableProps\n}: OwpTableProps<T>) {\n const currentSettings = useGetCurrentSettings();\n const defaultTableBorderColor =\n currentSettings?.theme?.main?.palette?.mode === 'dark'\n ? defaultTableBorderColorByMode.dark\n : defaultTableBorderColorByMode.light;\n const tableTheme = useMemo(\n () =>\n restTableProps.tableTheme ??\n resolveOwpTableTheme(currentSettings?.theme?.main?.table, {\n ...defaultStyledTableTheme,\n borderColor: defaultTableBorderColor,\n }),\n [currentSettings, defaultTableBorderColor, restTableProps.tableTheme],\n );\n const resolvedHeaderRows = useMemo(\n () => (isArray(headers) ? headers : isEmpty(headers) ? [] : [headers]),\n [headers],\n );\n const commonKeyListData = useMemo(\n () => getTableColumnKeys(isArray(headers) ? headers[0] : headers),\n [headers],\n );\n const tableBackgroundColor = currentSettings?.theme?.main?.table?.row?.backgroundColor;\n\n return (\n <OwpTableBase\n {...restTableProps}\n containerProps={{\n ...restTableProps.containerProps,\n sx: mergeSx(\n !restTableProps.canUseTreeGridStyle &&\n tableBackgroundColor && { backgroundColor: tableBackgroundColor },\n restTableProps.containerProps?.sx,\n ),\n }}\n footerSlot={\n canTotalCountRow ? (\n <OwpTableTotalCount\n borderColor={tableTheme.borderColor}\n totalCount={typeof totalCount === 'undefined' ? rows.length : totalCount}\n />\n ) : undefined\n }\n className={clsx(restTableProps.tableLayout && 'w-full', restTableProps.className)}\n tableTheme={tableTheme}\n treeGridHeaderRowCount={resolvedHeaderRows.length}\n >\n <TableHead>\n {resolvedHeaderRows.map((headerData, index) => (\n <OwpTableBaseRow key={`table-header-${index}`}>\n {getTableColumnKeys(headerData).map((keyName) => (\n <TableCell\n key={`table-header-${index}-${keyName}`}\n className=\"whitespace-pre-wrap\"\n sx={mergeSx(\n !restTableProps.canUseTreeGridStyle && getDefaultTableHeaderCellSx(tableTheme),\n getTableCellSx(headerData, keyName),\n )}\n colSpan={getTableCellSpan(headerData, keyName, 'ColSpan')}\n rowSpan={getTableCellSpan(headerData, keyName, 'RowSpan')}\n align=\"center\"\n >\n {headerData[keyName]}\n </TableCell>\n ))}\n </OwpTableBaseRow>\n ))}\n </TableHead>\n <TableBody>\n {rows.map((row, index) => {\n const currentRow = row as OwpTableRowData;\n\n return (\n <OwpTableBaseRow key={`table-row-${index}`} sx={tableRowSx}>\n {commonKeyListData.map((keyName) => (\n <TableCell\n key={`table-row-cell-${index}-${keyName}`}\n className=\"whitespace-pre-wrap h-64\"\n sx={getTableCellSx(currentRow, keyName)}\n align=\"center\"\n >\n <Box className={OWP_TABLE_CELL_CONTENT_CLASS_NAME}>\n {currentRow[keyName] as ReactNode}\n </Box>\n </TableCell>\n ))}\n </OwpTableBaseRow>\n );\n })}\n </TableBody>\n </OwpTableBase>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","defaultTableBorderColorByMode","OWP_TABLE_CELL_CONTENT_CLASS_NAME","tableRowSx","getTableHelperTextRowSx","OwpTable","canTotalCountRow","headers","rows","totalCount","restTableProps","currentSettings","useGetCurrentSettings","defaultTableBorderColor","_c","_b","_a","tableTheme","useMemo","resolveOwpTableTheme","defaultStyledTableTheme","resolvedHeaderRows","isArray","isEmpty","commonKeyListData","tableBackgroundColor","_g","_f","_e","_d","jsxs","OwpTableBase","mergeSx","_h","jsx","OwpTableTotalCount","clsx","TableHead","headerData","index","OwpTableBaseRow","TableCell","getDefaultTableHeaderCellSx","TableBody","currentRow","Box"],"mappings":"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"}
|