@owp/core 2.5.1 → 2.5.3

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 (81) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index12.js +2 -2
  3. package/dist/_virtual/index13.js +2 -2
  4. package/dist/_virtual/index14.js +2 -2
  5. package/dist/_virtual/index15.js +2 -2
  6. package/dist/_virtual/index5.js +2 -2
  7. package/dist/components/{OwpFileUploadButton/OwpFileUploadButton.js → OwpFilePickerButton/OwpFilePickerButton.js} +15 -15
  8. package/dist/components/OwpFilePickerButton/OwpFilePickerButton.js.map +1 -0
  9. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js.map +1 -1
  10. package/dist/components/OwpMoreActionsButton/OwpMoreActionsButton.js +27 -27
  11. package/dist/components/OwpMoreActionsButton/OwpMoreActionsButton.js.map +1 -1
  12. package/dist/components/OwpMrtTable/OwpMrtTable.js +335 -317
  13. package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
  14. package/dist/components/OwpPageBreadcrumb/OwpPageBreadcrumb.js +39 -32
  15. package/dist/components/OwpPageBreadcrumb/OwpPageBreadcrumb.js.map +1 -1
  16. package/dist/components/OwpTable/OwpDataTable.js +273 -251
  17. package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
  18. package/dist/components/OwpTable/OwpTable.js +180 -159
  19. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  20. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +267 -184
  21. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  22. package/dist/components/{OwpTreeGridExcelButton/OwpTreeGridExcelButton.js → OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.js} +7 -7
  23. package/dist/components/OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.js.map +1 -0
  24. package/dist/constants/gridTheme.js +28 -0
  25. package/dist/constants/gridTheme.js.map +1 -0
  26. package/dist/hooks/useFormDataUploadMutation.js +27 -0
  27. package/dist/hooks/useFormDataUploadMutation.js.map +1 -0
  28. package/dist/hooks.js +63 -61
  29. package/dist/hooks.js.map +1 -1
  30. package/dist/index.js +28 -28
  31. package/dist/layout/components/navbar/NavbarToggleButton.js +21 -22
  32. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  33. package/dist/layout/components/navbar/style/NavbarStyle.js +41 -37
  34. package/dist/layout/components/navbar/style/NavbarStyle.js.map +1 -1
  35. package/dist/layout/components/toolbar/ToolbarLayout.js +57 -69
  36. package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
  37. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  38. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
  39. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
  40. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
  41. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  42. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
  43. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js +1 -1
  44. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/index.js +1 -1
  45. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
  46. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
  47. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
  48. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.js +1 -1
  49. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  50. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  51. package/dist/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +1 -1
  52. package/dist/owp-app.css +1 -1
  53. package/dist/types/components/{OwpFileUploadButton/OwpFileUploadButton.d.ts → OwpFilePickerButton/OwpFilePickerButton.d.ts} +4 -4
  54. package/dist/types/components/OwpFilePickerButton/index.d.ts +1 -0
  55. package/dist/types/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.d.ts +1 -1
  56. package/dist/types/components/OwpMoreActionsButton/OwpMoreActionsButton.d.ts +4 -4
  57. package/dist/types/components/OwpTable/OwpTable.d.ts +2 -0
  58. package/dist/types/components/OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.d.ts +12 -0
  59. package/dist/types/components/OwpTreeGridExportExcelButton/index.d.ts +1 -0
  60. package/dist/types/constants/gridTheme.d.ts +30 -0
  61. package/dist/types/hooks/index.d.ts +1 -0
  62. package/dist/types/hooks/useFormDataUploadMutation.d.ts +30 -0
  63. package/dist/types/index.d.ts +2 -2
  64. package/dist/types/types/OwpGridThemeTypes.d.ts +14 -0
  65. package/dist/types/types/OwpSettingsTypes.d.ts +2 -0
  66. package/dist/types/types/index.d.ts +1 -0
  67. package/dist/types/utils/createFormDataBody.d.ts +20 -0
  68. package/dist/types/utils/index.d.ts +1 -0
  69. package/dist/types/utils/zipUtil.d.ts +13 -0
  70. package/dist/utils/createFormDataBody.js +26 -0
  71. package/dist/utils/createFormDataBody.js.map +1 -0
  72. package/dist/utils/zipUtil.js +42 -29
  73. package/dist/utils/zipUtil.js.map +1 -1
  74. package/dist/utils.js +87 -82
  75. package/dist/utils.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/components/OwpFileUploadButton/OwpFileUploadButton.js.map +0 -1
  78. package/dist/components/OwpTreeGridExcelButton/OwpTreeGridExcelButton.js.map +0 -1
  79. package/dist/types/components/OwpFileUploadButton/index.d.ts +0 -1
  80. package/dist/types/components/OwpTreeGridExcelButton/OwpTreeGridExcelButton.d.ts +0 -12
  81. package/dist/types/components/OwpTreeGridExcelButton/index.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OwpDataTable.js","sources":["../../../src/components/OwpTable/OwpDataTable.tsx"],"sourcesContent":["import {\n getTreeGridFontFaceStyles,\n TREEGRID_FONT_FAMILY_STACK,\n} from '@/constants/treeGrid';\nimport { Divider, 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 { SxProps, 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';\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}\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 canUseTreeGridStyle?: boolean;\n fixedRowCount?: number;\n}\n\nconst defaultHeadCellsSx = {\n bgcolor: '#586980',\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n} as const;\n\nconst headerBorderRight = {\n borderRight: `1px solid ${grey['A200']}`,\n};\n\nconst rowBorderRight = {\n borderRight: `1px solid ${grey[400]}`,\n};\n\nconst defaultSortLabelSx = {\n '&.MuiTableSortLabel-root': {\n color: grey['A100'],\n },\n '&.MuiTableSortLabel-root:hover': {\n color: grey['A100'],\n },\n '&.Mui-active': {\n color: grey['A100'],\n },\n '& .MuiTableSortLabel-icon': {\n color: `${grey['A100']} !important`,\n },\n} as const;\n\nconst tableRadiusZeroSx = {\n borderRadius: 0,\n} as const;\n\nconst lastRowRadiusZeroSx = {\n '& > th, & > td': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n} as const;\n\nconst treeGridFontSx = {\n fontFamily: TREEGRID_FONT_FAMILY_STACK,\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: '16px',\n} as const;\n\nconst treeGridCellBaseSx = {\n ...treeGridFontSx,\n boxSizing: 'border-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n} as const;\n\nconst treeGridHeaderCellSx = {\n ...treeGridCellBaseSx,\n bgcolor: '#586980',\n borderBottom: '1px solid #6F7F94',\n borderRight: '1px solid #6F7F94',\n color: 'white',\n height: 33,\n minHeight: 33,\n p: '7px 2px 6px 10px',\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\nconst treeGridBodyCellSx = {\n ...treeGridCellBaseSx,\n borderBottom: '1px solid #CDD8E4',\n borderRight: '1px solid #CDD8E4',\n color: '#111112',\n p: '7px 10px 6px',\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 = (valueAlign?: HeadCell['valueAlign']) => ({\n '& input': {\n textAlign: valueAlign ?? 'center',\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 } = 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(canUseTreeGridStyle && { height: 33 }, canTableRadiusZero && tableRadiusZeroSx)}\n >\n {canCheckbox && (\n <TableCell\n padding=\"checkbox\"\n className=\"text-white\"\n sx={mergeSx(\n {\n ...defaultHeadCellsSx,\n ...headerBorderRight,\n },\n canUseTreeGridStyle && treeGridHeaderCellSx,\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n )}\n >\n <Checkbox\n color=\"default\"\n sx={mergeSx(\n {\n [`&, &.${checkboxClasses.checked}`]: {\n color: grey[50],\n },\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,\n ...(headCells.length - 1 !== index && headerBorderRight),\n },\n canUseTreeGridStyle && treeGridHeaderCellSx,\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n canUseTreeGridStyle && headCell?.sx,\n )}\n >\n {canUseOrderBy ? (\n <TableSortLabel\n sx={canUseTreeGridStyle ? treeGridSortLabelSx : defaultSortLabelSx}\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 className=\"text-white text-lg font-medium\" sx={headCell?.sx}>\n {headCell.label}\n </Typography>\n )}\n </TableSortLabel>\n ) : canUseTreeGridStyle ? (\n headCell.label\n ) : (\n <Typography className=\"text-white text-lg font-medium\" sx={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 canUseTreeGridStyle TreeGrid 스타일 사용 여부\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 = false,\n canUseTreeGridStyle = false,\n fixedRowCount,\n onSelect,\n onBlur,\n}: OwpDataTableProps<T>) {\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 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 sx={mergeSx({ width: '100%' }, canTableRadiusZero && tableRadiusZeroSx)}\n >\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n sx={mergeSx(\n { height: useFixedRowCount ? 'auto' : 500, borderRadius: 2 },\n useFixedRowCount && { overflowY: 'hidden' },\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n )}\n >\n <Table\n stickyHeader={!canUseTreeGridStyle}\n sx={mergeSx({ minWidth: 200 }, canTableRadiusZero && tableRadiusZeroSx)}\n aria-labelledby=\"owp-data-table\"\n >\n <DataTableHead\n sx={headSx}\n headCells={resolvedHeadCells}\n numSelected={selectedRows.length}\n order={order}\n orderBy={orderBy}\n onSelectAllClick={handleSelectAllClick}\n canCheckbox={!canSelectingSingle && useCheckBox}\n canUseOrderBy={canUseOrderBy}\n canTableRadiusZero={canTableRadiusZero}\n canUseTreeGridStyle={canUseTreeGridStyle}\n onRequestSort={handleRequestSort}\n rowCount={resolvedRows.length}\n />\n <TableBody sx={mergeSx(canTableRadiusZero && 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 && { height: 30 },\n canTableRadiusZero && tableRadiusZeroSx,\n canTableRadiusZero && 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 rowBorderRight,\n canUseTreeGridStyle && treeGridBodyCellSx,\n canTableRadiusZero && 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 resolvedHeadCells.length > 1 && rowBorderRight,\n canUseTreeGridStyle && treeGridBodyCellSx,\n canTableRadiusZero && 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 resolvedHeadCells.length - 1 !== cellIndex && rowBorderRight,\n canUseTreeGridStyle && treeGridBodyCellSx,\n canTableRadiusZero && 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(cell?.valueAlign)}\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(cell?.valueAlign)}\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 && <Divider sx={mergeSx(canTableRadiusZero && tableRadiusZeroSx)} />}\n {useTotalCountRow && (\n <Typography\n className=\"w-full py-8 pr-12\"\n align=\"right\"\n sx={mergeSx(canTableRadiusZero && tableRadiusZeroSx)}\n >\n 전체: {resolvedRows.length.toLocaleString()} 건\n </Typography>\n )}\n </Paper>\n );\n}\n"],"names":["defaultHeadCellsSx","headerBorderRight","grey","rowBorderRight","defaultSortLabelSx","tableRadiusZeroSx","lastRowRadiusZeroSx","treeGridFontSx","TREEGRID_FONT_FAMILY_STACK","treeGridCellBaseSx","treeGridHeaderCellSx","treeGridSortLabelSx","treeGridBodyCellSx","mergeSx","__name","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","DataTableHead","props","sx","headCells","onSelectAllClick","numSelected","rowCount","onRequestSort","canCheckbox","canUseOrderBy","canTableRadiusZero","canUseTreeGridStyle","createSortHandler","property","event","TableHead","jsxs","TableRow","jsx","TableCell","Checkbox","checkboxClasses","headCell","index","TableSortLabel","Typography","OwpDataTable","className","headSx","rows","selected","canTotalCountRow","canSelectingSingle","onSelect","onBlur","setOrder","useState","setOrderBy","selectedRows","setSelectedRows","tableIdRef","useRef","uniqueId","useFixedRowCount","useMemo","resolvedRows","nextRows","resolvedHeadCells","useCheckBox","isBoolean","useTotalCountRow","useEffect","isEmpty","handleRequestSort","_","handleSelectAllClick","handleClick","prev","item","isEqual","visibleRows","displayRows","Paper","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","Table","TableBody","isItemSelected","isLastRow","isPlaceholderRow","labelId","cellIndex","_key","rangeLabel","rowTabIndex","cellValue","OwpNumberField","values","floatValue","end","evt","start","nextValue","TextField","Divider"],"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 getTreeGridFontFaceStyles,\n TREEGRID_FONT_FAMILY_STACK,\n} from '@/constants/treeGrid';\nimport { useGetCurrentSettings } from '@/hooks/useOwpSettings';\nimport { Divider, 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 { SxProps, 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';\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}\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 canUseTreeGridStyle?: boolean;\n fixedRowCount?: number;\n}\n\nconst defaultHeadCellsSx = {\n bgcolor: '#586980',\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n} as const;\n\nconst headerBorderRight = {\n borderRight: `1px solid ${grey['A200']}`,\n};\n\nconst rowBorderRight = {\n borderRight: `1px solid ${grey[400]}`,\n};\n\nconst defaultSortLabelSx = {\n '&.MuiTableSortLabel-root': {\n color: grey['A100'],\n },\n '&.MuiTableSortLabel-root:hover': {\n color: grey['A100'],\n },\n '&.Mui-active': {\n color: grey['A100'],\n },\n '& .MuiTableSortLabel-icon': {\n color: `${grey['A100']} !important`,\n },\n} as const;\n\nconst tableRadiusZeroSx = {\n borderRadius: 0,\n} as const;\n\nconst lastRowRadiusZeroSx = {\n '& > th, & > td': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n} as const;\n\nconst getTreeGridCellBaseSx = (fontSize: number | string) => ({\n fontFamily: TREEGRID_FONT_FAMILY_STACK,\n fontSize,\n fontWeight: 'normal',\n lineHeight: '16px',\n boxSizing: 'border-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n});\n\nconst getTreeGridHeaderCellSx = (gridTheme: OwpResolvedGridThemeConfigType) => ({\n ...getTreeGridCellBaseSx(gridTheme.header.fontSize),\n bgcolor: gridTheme.header.backgroundColor,\n borderBottom: '1px solid #6F7F94',\n borderRight: '1px solid #6F7F94',\n color: gridTheme.header.color,\n fontWeight: gridTheme.header.fontWeight,\n height: gridTheme.header.height,\n minHeight: gridTheme.header.height,\n p: '7px 2px 6px 10px',\n});\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\nconst getTreeGridBodyCellSx = (gridTheme: OwpResolvedGridThemeConfigType) => ({\n ...getTreeGridCellBaseSx(gridTheme.cell.fontSize),\n borderBottom: '1px solid #CDD8E4',\n borderRight: '1px solid #CDD8E4',\n color: '#111112',\n p: '7px 10px 6px',\n});\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 } = 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 className=\"text-white\"\n sx={mergeSx(\n {\n ...defaultHeadCellsSx,\n ...headerBorderRight,\n },\n canUseTreeGridStyle && getTreeGridHeaderCellSx(gridTheme),\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n )}\n >\n <Checkbox\n color=\"default\"\n sx={mergeSx(\n {\n [`&, &.${checkboxClasses.checked}`]: {\n color: grey[50],\n },\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,\n ...(headCells.length - 1 !== index && headerBorderRight),\n },\n canUseTreeGridStyle && getTreeGridHeaderCellSx(gridTheme),\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n canUseTreeGridStyle && headCell?.sx,\n )}\n >\n {canUseOrderBy ? (\n <TableSortLabel\n sx={canUseTreeGridStyle ? treeGridSortLabelSx : defaultSortLabelSx}\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 className=\"text-white text-lg font-medium\" sx={headCell?.sx}>\n {headCell.label}\n </Typography>\n )}\n </TableSortLabel>\n ) : canUseTreeGridStyle ? (\n headCell.label\n ) : (\n <Typography className=\"text-white text-lg font-medium\" sx={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 canUseTreeGridStyle TreeGrid 스타일 사용 여부\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 = false,\n canUseTreeGridStyle = false,\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 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 sx={mergeSx({ width: '100%' }, canTableRadiusZero && tableRadiusZeroSx)}\n >\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n sx={mergeSx(\n { height: useFixedRowCount ? 'auto' : 500, borderRadius: 2 },\n useFixedRowCount && { overflowY: 'hidden' },\n canTableRadiusZero && tableRadiusZeroSx,\n sx,\n )}\n >\n <Table\n stickyHeader={!canUseTreeGridStyle}\n sx={mergeSx({ minWidth: 200 }, canTableRadiusZero && tableRadiusZeroSx)}\n aria-labelledby=\"owp-data-table\"\n >\n <DataTableHead\n sx={headSx}\n headCells={resolvedHeadCells}\n gridTheme={treeGridTheme}\n numSelected={selectedRows.length}\n order={order}\n orderBy={orderBy}\n onSelectAllClick={handleSelectAllClick}\n canCheckbox={!canSelectingSingle && useCheckBox}\n canUseOrderBy={canUseOrderBy}\n canTableRadiusZero={canTableRadiusZero}\n canUseTreeGridStyle={canUseTreeGridStyle}\n onRequestSort={handleRequestSort}\n rowCount={resolvedRows.length}\n />\n <TableBody sx={mergeSx(canTableRadiusZero && 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 && { height: 30 },\n canTableRadiusZero && tableRadiusZeroSx,\n canTableRadiusZero && 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 rowBorderRight,\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n canTableRadiusZero && 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 resolvedHeadCells.length > 1 && rowBorderRight,\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n canTableRadiusZero && 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 resolvedHeadCells.length - 1 !== cellIndex && rowBorderRight,\n canUseTreeGridStyle && getTreeGridBodyCellSx(treeGridTheme),\n canTableRadiusZero && 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 ? treeGridTheme.cell.fontSize : undefined,\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 ? treeGridTheme.cell.fontSize : undefined,\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 && <Divider sx={mergeSx(canTableRadiusZero && tableRadiusZeroSx)} />}\n {useTotalCountRow && (\n <Typography\n className=\"w-full py-8 pr-12\"\n align=\"right\"\n sx={mergeSx(canTableRadiusZero && tableRadiusZeroSx)}\n >\n 전체: {resolvedRows.length.toLocaleString()} 건\n </Typography>\n )}\n </Paper>\n );\n}\n"],"names":["defaultHeadCellsSx","headerBorderRight","grey","rowBorderRight","defaultSortLabelSx","tableRadiusZeroSx","lastRowRadiusZeroSx","getTreeGridCellBaseSx","__name","fontSize","TREEGRID_FONT_FAMILY_STACK","getTreeGridHeaderCellSx","gridTheme","treeGridSortLabelSx","getTreeGridBodyCellSx","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","DataTableHead","props","sx","headCells","onSelectAllClick","numSelected","rowCount","onRequestSort","canCheckbox","canUseOrderBy","canTableRadiusZero","canUseTreeGridStyle","createSortHandler","property","event","TableHead","jsxs","TableRow","jsx","TableCell","Checkbox","checkboxClasses","headCell","index","TableSortLabel","Typography","OwpDataTable","className","headSx","rows","selected","canTotalCountRow","canSelectingSingle","onSelect","onBlur","currentSettings","useGetCurrentSettings","setOrder","useState","setOrderBy","selectedRows","setSelectedRows","tableIdRef","useRef","uniqueId","useFixedRowCount","useMemo","resolvedRows","nextRows","resolvedHeadCells","treeGridTheme","resolveOwpGridTheme","useCheckBox","isBoolean","useTotalCountRow","useEffect","isEmpty","handleRequestSort","_","handleSelectAllClick","handleClick","prev","item","isEqual","visibleRows","displayRows","Paper","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","Table","TableBody","isItemSelected","isLastRow","isPlaceholderRow","labelId","cellIndex","_key","rangeLabel","rowTabIndex","cellValue","OwpNumberField","values","floatValue","end","evt","start","nextValue","TextField","Divider"],"mappings":"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"}
@@ -1,212 +1,233 @@
1
- var y = Object.defineProperty;
2
- var l = (t, o) => y(t, "name", { value: o, configurable: !0 });
3
- import { jsxs as f, jsx as e, Fragment as C } 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 { getTreeGridFontFaceStyles as v, TREEGRID_FONT_FAMILY_STACK as L } from "../../constants/treeGrid.js";
5
- import { Typography as $, styled as R, Divider as M } from "@mui/material";
6
- import { clsx as F } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
7
- import E from "@mui/material/GlobalStyles";
1
+ var L = Object.defineProperty;
2
+ var i = (o, e) => L(o, "name", { value: e, configurable: !0 });
3
+ import { jsxs as f, jsx as d, Fragment as C } 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 { resolveOwpGridTheme as R } from "../../constants/gridTheme.js";
5
+ import { getTreeGridFontFaceStyles as $, TREEGRID_FONT_FAMILY_STACK as M } from "../../constants/treeGrid.js";
6
+ import { useGetCurrentSettings as z } from "../../hooks/useOwpSettings.js";
7
+ import { Typography as E, styled as y, Divider as G } from "@mui/material";
8
+ import { clsx as v } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
9
+ import O from "@mui/material/GlobalStyles";
8
10
  import D from "@mui/material/Paper";
9
- import O from "@mui/material/Table";
10
- import A from "@mui/material/TableBody";
11
+ import A from "@mui/material/Table";
12
+ import B from "@mui/material/TableBody";
11
13
  import u from "@mui/material/TableCell";
12
14
  import j from "@mui/material/TableContainer";
13
- import z from "@mui/material/TableHead";
14
- import B from "@mui/material/TableRow";
15
- import { useMemo as x } from "react";
16
- import { isNumber as I } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNumber.js";
15
+ import I from "@mui/material/TableHead";
16
+ import K from "@mui/material/TableRow";
17
+ import { useMemo as h } from "react";
18
+ import { isNumber as _ } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNumber.js";
17
19
  import { isArray as c } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isArray.js";
18
- import { isEmpty as K } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
19
- const h = /* @__PURE__ */ l((t) => t ? Object.keys(t).filter((o) => !o.includes("Span")) : [], "getTableColumnKeys"), g = /* @__PURE__ */ l((t, o) => t[`${o}Sx`] ?? {}, "getTableCellSx"), w = /* @__PURE__ */ l((t, o, r) => t[`${o}${r}`] ?? void 0, "getTableCellSpan"), _ = /* @__PURE__ */ l((...t) => t.reduce((o, r) => r ? [...o, ...c(r) ? r : [r]] : o, []), "mergeSx"), H = {
20
+ import { isEmpty as H } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
21
+ const x = /* @__PURE__ */ i((o) => o ? Object.keys(o).filter((e) => !e.includes("Span")) : [], "getTableColumnKeys"), T = /* @__PURE__ */ i((o, e) => o[`${e}Sx`] ?? {}, "getTableCellSx"), w = /* @__PURE__ */ i((o, e, r) => o[`${e}${r}`] ?? void 0, "getTableCellSpan"), N = /* @__PURE__ */ i((...o) => o.reduce((e, r) => r ? [...e, ...c(r) ? r : [r]] : e, []), "mergeSx"), W = {
20
22
  border: 0,
21
23
  borderRadius: 0,
22
24
  overflow: "visible"
23
- }, T = {
24
- fontFamily: L,
25
- fontSize: "14px",
26
- fontWeight: "normal",
25
+ }, F = /* @__PURE__ */ i((o, e = "normal") => ({
26
+ fontFamily: M,
27
+ fontSize: o,
28
+ fontWeight: e,
27
29
  lineHeight: "16px"
28
- };
29
- function N({ totalCount: t }) {
30
+ }), "getTreeGridTypographySx"), Y = /* @__PURE__ */ i((o) => ({
31
+ ...F(o.cell.fontSize),
32
+ boxSizing: "border-box",
33
+ overflow: "hidden",
34
+ textOverflow: "ellipsis",
35
+ verticalAlign: "middle",
36
+ whiteSpace: "nowrap"
37
+ }), "getTreeGridCellBaseSx");
38
+ function q({ totalCount: o }) {
30
39
  return /* @__PURE__ */ f(C, { children: [
31
- /* @__PURE__ */ e(M, {}),
32
- /* @__PURE__ */ f($, { className: "w-full py-8 pr-12", align: "right", children: [
40
+ /* @__PURE__ */ d(G, {}),
41
+ /* @__PURE__ */ f(E, { className: "w-full py-8 pr-12", align: "right", children: [
33
42
  "전체: ",
34
- I(t) ? t.toLocaleString() : 0,
43
+ _(o) ? o.toLocaleString() : 0,
35
44
  " 건"
36
45
  ] })
37
46
  ] });
38
47
  }
39
- l(N, "OwpTableTotalCount");
40
- const W = /* @__PURE__ */ l(({
41
- canBodyFullHeight: t,
42
- canUseTreeGridStyle: o,
48
+ i(q, "OwpTableTotalCount");
49
+ const J = /* @__PURE__ */ i(({
50
+ canBodyFullHeight: o,
51
+ canUseTreeGridStyle: e,
43
52
  children: r,
44
53
  className: a,
45
- containerProps: n,
46
- footerSlot: m,
54
+ containerProps: t,
55
+ footerSlot: s,
47
56
  tableLayout: b,
48
- ...i
49
- }) => /* @__PURE__ */ f(C, { children: [
50
- o && /* @__PURE__ */ e(E, { styles: v() }),
51
- /* @__PURE__ */ f(
52
- j,
53
- {
54
- component: D,
55
- variant: "outlined",
56
- ...n,
57
- sx: _(
58
- o && H,
59
- t && { height: "100%" },
60
- n == null ? void 0 : n.sx
61
- ),
62
- children: [
63
- /* @__PURE__ */ e(
64
- Y,
65
- {
66
- ...i,
67
- canBodyFullHeight: t,
68
- canUseTreeGridStyle: o,
69
- className: F(
70
- t && "h-full",
71
- b === "fixed" ? "table-fixed" : b === "auto" ? "table-auto" : "",
72
- a
73
- ),
74
- children: r
75
- }
57
+ ...p
58
+ }) => {
59
+ const l = z(), n = h(
60
+ () => {
61
+ var m, g;
62
+ return R((g = (m = l == null ? void 0 : l.theme) == null ? void 0 : m.main) == null ? void 0 : g.grid);
63
+ },
64
+ [l]
65
+ );
66
+ return /* @__PURE__ */ f(C, { children: [
67
+ e && /* @__PURE__ */ d(O, { styles: $() }),
68
+ /* @__PURE__ */ f(
69
+ j,
70
+ {
71
+ component: D,
72
+ variant: "outlined",
73
+ ...t,
74
+ sx: N(
75
+ e && W,
76
+ o && { height: "100%" },
77
+ t == null ? void 0 : t.sx
76
78
  ),
77
- m
78
- ]
79
- }
80
- )
81
- ] }), "StyledTable"), Y = R(O, {
82
- shouldForwardProp: /* @__PURE__ */ l((t) => t !== "canBodyFullHeight" && t !== "canUseTreeGridStyle", "shouldForwardProp")
83
- })(({ theme: t, canBodyFullHeight: o, canUseTreeGridStyle: r }) => ({
84
- ...o && {
85
- height: "100%"
86
- },
87
- ...o && {
88
- "& .MuiTableBody-root": {
79
+ children: [
80
+ /* @__PURE__ */ d(
81
+ Q,
82
+ {
83
+ ...p,
84
+ canBodyFullHeight: o,
85
+ canUseTreeGridStyle: e,
86
+ treeGridTheme: n,
87
+ className: v(
88
+ o && "h-full",
89
+ b === "fixed" ? "table-fixed" : b === "auto" ? "table-auto" : "",
90
+ a
91
+ ),
92
+ children: r
93
+ }
94
+ ),
95
+ s
96
+ ]
97
+ }
98
+ )
99
+ ] });
100
+ }, "StyledTable"), Q = y(A, {
101
+ shouldForwardProp: /* @__PURE__ */ i((o) => o !== "canBodyFullHeight" && o !== "canUseTreeGridStyle" && o !== "treeGridTheme", "shouldForwardProp")
102
+ })(({ theme: o, canBodyFullHeight: e, canUseTreeGridStyle: r, treeGridTheme: a }) => {
103
+ const t = a ?? R();
104
+ return {
105
+ ...e && {
89
106
  height: "100%"
90
107
  },
91
- "& .MuiTableBody-root > .MuiTableRow-root": {
92
- height: "100%"
93
- }
94
- },
95
- "& .MuiTableCell-root": r ? {
96
- boxSizing: "border-box",
97
- ...T,
98
- overflow: "hidden",
99
- textOverflow: "ellipsis",
100
- verticalAlign: "middle",
101
- whiteSpace: "nowrap"
102
- } : {
103
- fontSize: "1.7rem",
104
- padding: "7px 10px",
105
- borderLeft: "none",
106
- borderRight: "none"
107
- },
108
- ...!r && {
109
- "& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root": {
110
- borderLeft: `1px solid ${t.palette.divider}`
111
- }
112
- },
113
- "& th": r ? {
114
- ...T,
115
- backgroundColor: "#586980",
116
- borderTop: "1px solid #6F7F94",
117
- borderBottom: "1px solid #6F7F94",
118
- borderLeft: 0,
119
- borderRight: "1px solid #6F7F94",
120
- color: "white",
121
- height: 33,
122
- minHeight: 33,
123
- padding: "7px 2px 6px 10px",
124
- "&:first-of-type": {
125
- borderLeft: "1px solid #6F7F94"
126
- }
127
- } : {
128
- backgroundColor: t.palette.grey[200],
129
- fontWeight: 600
130
- },
131
- "& td": r ? {
132
- borderBottom: "1px solid #CDD8E4",
133
- borderLeft: 0,
134
- borderRight: "1px solid #CDD8E4",
135
- color: "#111112",
136
- padding: "7px 10px 6px",
137
- "&:first-of-type": {
138
- borderLeft: "1px solid #CDD8E4"
139
- }
140
- } : {},
141
- ...r && {
142
- "& tbody > tr:first-of-type > th:first-of-type": {
143
- borderTopLeftRadius: "inherit"
108
+ ...e && {
109
+ "& .MuiTableBody-root": {
110
+ height: "100%"
111
+ },
112
+ "& .MuiTableBody-root > .MuiTableRow-root": {
113
+ height: "100%"
114
+ }
115
+ },
116
+ "& .MuiTableCell-root": r ? {
117
+ ...Y(t)
118
+ } : {
119
+ fontSize: "1.7rem",
120
+ padding: "7px 10px",
121
+ borderLeft: "none",
122
+ borderRight: "none"
123
+ },
124
+ ...!r && {
125
+ "& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root": {
126
+ borderLeft: `1px solid ${o.palette.divider}`
127
+ }
128
+ },
129
+ "& th": r ? {
130
+ ...F(
131
+ t.header.fontSize,
132
+ t.header.fontWeight
133
+ ),
134
+ backgroundColor: t.header.backgroundColor,
135
+ borderTop: "1px solid #6F7F94",
136
+ borderBottom: "1px solid #6F7F94",
137
+ borderLeft: 0,
138
+ borderRight: "1px solid #6F7F94",
139
+ color: t.header.color,
140
+ height: t.header.height,
141
+ minHeight: t.header.height,
142
+ padding: "7px 2px 6px 10px",
143
+ "&:first-of-type": {
144
+ borderLeft: "1px solid #6F7F94"
145
+ }
146
+ } : {
147
+ backgroundColor: o.palette.grey[200],
148
+ fontWeight: 600
144
149
  },
145
- "& tbody > tr:first-of-type > td:last-of-type": {
146
- borderTopRightRadius: "inherit"
150
+ "& td": r ? {
151
+ borderBottom: "1px solid #CDD8E4",
152
+ borderLeft: 0,
153
+ borderRight: "1px solid #CDD8E4",
154
+ color: "#111112",
155
+ fontSize: t.cell.fontSize,
156
+ padding: "7px 10px 6px",
157
+ "&:first-of-type": {
158
+ borderLeft: "1px solid #CDD8E4"
159
+ }
160
+ } : {},
161
+ ...r && {
162
+ "& tbody > tr:first-of-type > th:first-of-type": {
163
+ borderTopLeftRadius: "inherit"
164
+ },
165
+ "& tbody > tr:first-of-type > td:last-of-type": {
166
+ borderTopRightRadius: "inherit"
167
+ }
147
168
  }
148
- }
149
- })), S = R(B)`
169
+ };
170
+ }), S = y(K)`
150
171
  /* &:last-child th,
151
172
  &:last-child td {
152
173
  border-bottom: 0;
153
174
  } */
154
175
  `;
155
- function po({
156
- canTotalCountRow: t = !1,
157
- headers: o,
176
+ function ho({
177
+ canTotalCountRow: o = !1,
178
+ headers: e,
158
179
  rows: r,
159
180
  totalCount: a,
160
- ...n
181
+ ...t
161
182
  }) {
162
- const m = x(
163
- () => c(o) ? o : K(o) ? [] : [o],
164
- [o]
165
- ), b = x(
166
- () => h(c(o) ? o[0] : o),
167
- [o]
183
+ const s = h(
184
+ () => c(e) ? e : H(e) ? [] : [e],
185
+ [e]
186
+ ), b = h(
187
+ () => x(c(e) ? e[0] : e),
188
+ [e]
168
189
  );
169
190
  return /* @__PURE__ */ f(
170
- W,
191
+ J,
171
192
  {
172
- ...n,
173
- footerSlot: t ? /* @__PURE__ */ e(N, { totalCount: typeof a > "u" ? r.length : a }) : void 0,
174
- className: F(n.tableLayout && "w-full", n.className),
193
+ ...t,
194
+ footerSlot: o ? /* @__PURE__ */ d(q, { totalCount: typeof a > "u" ? r.length : a }) : void 0,
195
+ className: v(t.tableLayout && "w-full", t.className),
175
196
  children: [
176
- /* @__PURE__ */ e(z, { children: m.map((i, d) => /* @__PURE__ */ e(S, { children: h(i).map((p) => /* @__PURE__ */ e(
197
+ /* @__PURE__ */ d(I, { children: s.map((p, l) => /* @__PURE__ */ d(S, { children: x(p).map((n) => /* @__PURE__ */ d(
177
198
  u,
178
199
  {
179
200
  className: "whitespace-pre-wrap",
180
- sx: g(i, p),
181
- colSpan: w(i, p, "ColSpan"),
182
- rowSpan: w(i, p, "RowSpan"),
201
+ sx: T(p, n),
202
+ colSpan: w(p, n, "ColSpan"),
203
+ rowSpan: w(p, n, "RowSpan"),
183
204
  align: "center",
184
- children: i[p]
205
+ children: p[n]
185
206
  },
186
- `table-header-${d}-${p}`
187
- )) }, `table-header-${d}`)) }),
188
- /* @__PURE__ */ e(A, { children: r.map((i, d) => {
189
- const p = i;
190
- return /* @__PURE__ */ e(S, { children: b.map((s) => /* @__PURE__ */ e(
207
+ `table-header-${l}-${n}`
208
+ )) }, `table-header-${l}`)) }),
209
+ /* @__PURE__ */ d(B, { children: r.map((p, l) => {
210
+ const n = p;
211
+ return /* @__PURE__ */ d(S, { children: b.map((m) => /* @__PURE__ */ d(
191
212
  u,
192
213
  {
193
214
  className: "whitespace-pre-wrap h-64",
194
- sx: g(p, s),
215
+ sx: T(n, m),
195
216
  align: "center",
196
- children: p[s]
217
+ children: n[m]
197
218
  },
198
- `table-row-cell-${d}-${s}`
199
- )) }, `table-row-${d}`);
219
+ `table-row-cell-${l}-${m}`
220
+ )) }, `table-row-${l}`);
200
221
  }) })
201
222
  ]
202
223
  }
203
224
  );
204
225
  }
205
- l(po, "OwpTable");
226
+ i(ho, "OwpTable");
206
227
  export {
207
- po as OwpTable,
208
- N as OwpTableTotalCount,
209
- W as StyledTable,
228
+ ho as OwpTable,
229
+ q as OwpTableTotalCount,
230
+ J as StyledTable,
210
231
  S as StyledTableRow
211
232
  };
212
233
  //# sourceMappingURL=OwpTable.js.map