@owp/core 2.5.4 → 2.5.6
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/configs/theme.d.ts +3 -0
- package/configs/theme.js +1 -0
- package/dist/_virtual/index11.js +2 -2
- package/dist/_virtual/index13.js +2 -2
- package/dist/_virtual/index14.js +2 -2
- package/dist/_virtual/index15.js +2 -2
- 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/components/OwpPageSkeleton/OwpPageSkeleton.js +4 -4
- package/dist/components/OwpTable/OwpDataTable.js +293 -327
- package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
- package/dist/components/OwpTable/OwpTable.js +102 -117
- package/dist/components/OwpTable/OwpTable.js.map +1 -1
- package/dist/components/OwpTable/internal/defaultTableStyle.js +50 -0
- package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -0
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js +47 -45
- package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js +179 -161
- package/dist/components/OwpTreeGrid/internal/treeGridRuntime.js.map +1 -1
- package/dist/configs/defaultConfig.js +1 -1
- package/dist/configs/theme.js +28 -0
- package/dist/configs/theme.js.map +1 -0
- package/dist/contexts/OwpAppProvider.js.map +1 -1
- package/dist/features/themePreview/components/ThemePreviewCanvas.js +492 -0
- package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -0
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +678 -0
- package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -0
- package/dist/features/themePreview/components/ThemePreviewColorField.js +372 -0
- package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -0
- package/dist/features/themePreview/components/ThemePreviewControls.js +306 -0
- package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -0
- package/dist/features/themePreview/components/themePreviewCanvas.icons.js +17 -0
- package/dist/features/themePreview/components/themePreviewCanvas.icons.js.map +1 -0
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js +296 -0
- package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -0
- package/dist/features/themePreview/configs/grid.js +45 -0
- package/dist/features/themePreview/configs/grid.js.map +1 -0
- package/dist/features/themePreview/configs/presets.js +1074 -0
- package/dist/features/themePreview/configs/presets.js.map +1 -0
- package/dist/features/themePreview/configs/previewStorage.js +94 -0
- package/dist/features/themePreview/configs/previewStorage.js.map +1 -0
- package/dist/features/themePreview/configs/settings.js +148 -0
- package/dist/features/themePreview/configs/settings.js.map +1 -0
- package/dist/features/themePreview/configs/snackbar.js +39 -0
- package/dist/features/themePreview/configs/snackbar.js.map +1 -0
- package/dist/features/themePreview/configs/surface.js +10 -0
- package/dist/features/themePreview/configs/surface.js.map +1 -0
- package/dist/features/themePreview/configs/table.js +30 -0
- package/dist/features/themePreview/configs/table.js.map +1 -0
- package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js +43 -0
- package/dist/features/themePreview/defs/ThemePreviewGridDef.xml.js.map +1 -0
- package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js +43 -0
- package/dist/features/themePreview/defs/ThemePreviewReadonlyGridDef.xml.js.map +1 -0
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +441 -0
- package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -0
- package/dist/features/themePreview/hooks/useThemePreview.js +280 -0
- package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -0
- package/dist/features/themePreview/utils/color.js +79 -0
- package/dist/features/themePreview/utils/color.js.map +1 -0
- package/dist/features/themePreview/utils/themePreviewDefinitions.js +526 -0
- package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -0
- package/dist/features/themePreview/utils/themePreviewExport.js +320 -0
- package/dist/features/themePreview/utils/themePreviewExport.js.map +1 -0
- package/dist/features/themePreview/utils/themePreviewSettings.js +211 -0
- package/dist/features/themePreview/utils/themePreviewSettings.js.map +1 -0
- package/dist/features/themePreview.js +75 -0
- package/dist/features/themePreview.js.map +1 -0
- package/dist/layout/components/logo/Logo.js +49 -45
- package/dist/layout/components/logo/Logo.js.map +1 -1
- package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
- package/dist/layout/components/toggles/ThemePreviewToggle.js +51 -0
- package/dist/layout/components/toggles/ThemePreviewToggle.js.map +1 -0
- package/dist/layout/components/toolbar/ToolbarLayout.js +8 -6
- package/dist/layout/components/toolbar/ToolbarLayout.js.map +1 -1
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/CheckCircleOutline.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/CheckCircleOutline.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/DownloadOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/DownloadOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/ErrorOutline.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/ErrorOutline.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/InfoOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/InfoOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/KeyboardArrowUpRounded.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/KeyboardArrowUpRounded.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/MenuRounded.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/MenuRounded.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/NotificationsNoneOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/NotificationsNoneOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/PaletteOutlined.js +25 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/PaletteOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestoreOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/RestoreOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SaveOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SaveOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SpaceDashboardOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/SpaceDashboardOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/UploadFileOutlined.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/UploadFileOutlined.js.map +1 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/WarningAmberRounded.js +9 -0
- package/dist/node_modules/.pnpm/@mui_icons-material@7.3.9_@mui_material@7.3.9_@emotion_react@11.14.0_@types_react@19.2._dc2be6bc014bebdac88a574e3e02c144/node_modules/@mui/icons-material/esm/WarningAmberRounded.js.map +1 -0
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE39/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE93/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.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/ITF/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/MSI/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/codabar/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js +1 -1
- package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/renderers/index.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/OwpTable/internal/defaultTableStyle.d.ts +49 -0
- package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +2 -1
- package/dist/types/components/OwpTreeGrid/internal/treeGridRuntime.d.ts +6 -1
- package/dist/types/configs/theme/index.d.ts +6 -0
- package/dist/types/contexts/OwpAppProvider.d.ts +2 -0
- package/dist/types/features/themePreview/components/ThemePreviewCanvas.d.ts +8 -0
- package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +82 -0
- package/dist/types/features/themePreview/components/ThemePreviewColorField.d.ts +10 -0
- package/dist/types/features/themePreview/components/ThemePreviewControls.d.ts +18 -0
- package/dist/types/features/themePreview/components/index.d.ts +3 -0
- package/dist/types/features/themePreview/components/themePreviewCanvas.icons.d.ts +3 -0
- package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +121 -0
- package/dist/types/features/themePreview/configs/grid.d.ts +41 -0
- package/dist/types/features/themePreview/configs/index.d.ts +7 -0
- package/dist/types/features/themePreview/configs/presets.d.ts +1152 -0
- package/dist/types/features/themePreview/configs/previewStorage.d.ts +35 -0
- package/dist/types/features/themePreview/configs/settings.d.ts +271 -0
- package/dist/types/features/themePreview/configs/snackbar.d.ts +43 -0
- package/dist/types/features/themePreview/configs/surface.d.ts +6 -0
- package/dist/types/features/themePreview/configs/table.d.ts +47 -0
- package/dist/types/features/themePreview/dialogs/ThemePreviewDialog.d.ts +3 -0
- package/dist/types/features/themePreview/dialogs/index.d.ts +1 -0
- package/dist/types/features/themePreview/hooks/index.d.ts +1 -0
- package/dist/types/features/themePreview/hooks/useThemePreview.d.ts +61 -0
- package/dist/types/features/themePreview/index.d.ts +6 -0
- package/dist/types/features/themePreview/types/index.d.ts +1 -0
- package/dist/types/features/themePreview/types/themePreview.d.ts +44 -0
- package/dist/types/features/themePreview/utils/color.d.ts +14 -0
- package/dist/types/features/themePreview/utils/index.d.ts +4 -0
- package/dist/types/features/themePreview/utils/themePreviewDefinitions.d.ts +10 -0
- package/dist/types/features/themePreview/utils/themePreviewExport.d.ts +46 -0
- package/dist/types/features/themePreview/utils/themePreviewSettings.d.ts +54 -0
- package/dist/types/layout/components/toggles/ThemePreviewToggle.d.ts +5 -0
- package/dist/types/utils/zipUtil.d.ts +1 -0
- package/dist/utils/zipUtil.js +38 -36
- package/dist/utils/zipUtil.js.map +1 -1
- package/features/themePreview.d.ts +3 -0
- package/features/themePreview.js +1 -0
- package/package.json +3 -1
|
@@ -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 {\n getTreeGridFontFaceStyles,\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';\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';\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 canUseTreeGridStyle?: boolean;\n fixedRowCount?: number;\n}\n\nconst defaultHeadCellsSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n bgcolor: tableTheme.header.backgroundColor,\n borderBottom: `1px solid ${DEFAULT_TABLE_BORDER_COLOR}`,\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n }) as const;\n\nconst headerBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_HEADER_BORDER_COLOR}`,\n};\n\nconst DEFAULT_TABLE_BORDER_COLOR = grey[400];\n\nconst defaultRowBorderRight = {\n borderRight: `1px solid ${DEFAULT_TABLE_BORDER_COLOR}`,\n};\n\nconst treeGridRowBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n};\n\nconst DEFAULT_TABLE_HEADER_HEIGHT = 34;\n\nconst defaultDataTableTheme = {\n header: {\n backgroundColor: '#586980',\n color: '#ffffff',\n fontSize: '1.4rem',\n fontWeight: 500,\n },\n cell: {\n fontSize: '1.3rem',\n },\n} satisfies OwpResolvedTableThemeConfigType;\n\nconst getDefaultTableBodyCellSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n fontSize: tableTheme.cell.fontSize,\n }) as const;\n\nconst defaultHeaderDividerSx = {\n borderRight: `1px solid ${DEFAULT_TABLE_BORDER_COLOR}`,\n} as const;\n\nconst defaultHeaderCellHeightSx = {\n height: DEFAULT_TABLE_HEADER_HEIGHT,\n minHeight: DEFAULT_TABLE_HEADER_HEIGHT,\n py: 0,\n} as const;\n\nconst getDefaultTableHeaderLabelSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n color: tableTheme.header.color,\n fontSize: tableTheme.header.fontSize,\n fontWeight: tableTheme.header.fontWeight,\n }) as const;\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 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 && defaultHeaderCellHeightSx,\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),\n },\n !canUseTreeGridStyle && defaultHeaderDividerSx,\n !canUseTreeGridStyle && defaultHeaderCellHeightSx,\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}`]: {\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(tableTheme),\n },\n !canUseTreeGridStyle && headCells.length - 1 !== index && defaultHeaderDividerSx,\n !canUseTreeGridStyle && defaultHeaderCellHeightSx,\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 : 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 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 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 tableTheme = useMemo(\n () => resolveOwpTableTheme(currentSettings?.theme?.main?.table, defaultDataTableTheme),\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(\n { width: '100%' },\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n canTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n sx={mergeSx(\n { height: useFixedRowCount ? 'auto' : 500, borderRadius: 2 },\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\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 tableTheme={tableTheme}\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 &&\n getTreeGridBodyRowSx(treeGridTheme, {\n canHover: !isPlaceholderRow,\n selected: isItemSelected,\n }),\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 canUseTreeGridStyle ? treeGridRowBorderRight : defaultRowBorderRight,\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\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 &&\n (canUseTreeGridStyle ? treeGridRowBorderRight : defaultRowBorderRight),\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\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 &&\n (canUseTreeGridStyle ? treeGridRowBorderRight : defaultRowBorderRight),\n !canUseTreeGridStyle && getDefaultTableBodyCellSx(tableTheme),\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\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 && <Divider sx={mergeSx(canTableRadiusZero && tableRadiusZeroSx)} />}\n {useTotalCountRow && (\n <Typography\n className=\"w-full py-8 pr-12\"\n align=\"right\"\n sx={mergeSx(\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n canTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n 전체: {resolvedRows.length.toLocaleString()} 건\n </Typography>\n )}\n </Paper>\n );\n}\n"],"names":["defaultHeadCellsSx","__name","tableTheme","DEFAULT_TABLE_BORDER_COLOR","headerBorderRight","TREEGRID_TABLE_HEADER_BORDER_COLOR","grey","defaultRowBorderRight","treeGridRowBorderRight","TREEGRID_TABLE_BODY_BORDER_COLOR","DEFAULT_TABLE_HEADER_HEIGHT","defaultDataTableTheme","getDefaultTableBodyCellSx","defaultHeaderDividerSx","defaultHeaderCellHeightSx","getDefaultTableHeaderLabelSx","defaultSortLabelSx","tableRadiusZeroSx","lastRowRadiusZeroSx","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","getTreeGridHeaderCellSx","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","resolveOwpTableTheme","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","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 resolveOwpTableTheme,\n type OwpResolvedTableThemeConfigType,\n} from '@/constants/tableTheme';\nimport {\n getTreeGridFontFaceStyles,\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 { type SxProps, type Theme, useTheme } 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 defaultStyledTableTheme,\n defaultTableSortLabelSx,\n getDefaultTableCellSx,\n getDefaultTableHeaderCellSx,\n getDefaultTableHeaderLabelSx,\n} from './internal/defaultTableStyle';\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 canUseTreeGridStyle?: boolean;\n fixedRowCount?: number;\n}\n\nconst defaultHeadCellsSx = (\n tableTheme: OwpResolvedTableThemeConfigType,\n fallbackBackgroundColor: string,\n) =>\n ({\n ...getDefaultTableHeaderCellSx(tableTheme, fallbackBackgroundColor),\n borderBottom: `1px solid ${DEFAULT_TABLE_BORDER_COLOR}`,\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit',\n }) as const;\n\nconst headerBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_HEADER_BORDER_COLOR}`,\n};\n\nconst DEFAULT_TABLE_BORDER_COLOR = grey[400];\n\nconst defaultRowBorderRight = {\n borderRight: `1px solid ${DEFAULT_TABLE_BORDER_COLOR}`,\n};\n\nconst treeGridRowBorderRight = {\n borderRight: `1px solid ${TREEGRID_TABLE_BODY_BORDER_COLOR}`,\n};\n\nconst getDefaultTableBodyCellSx = (tableTheme: OwpResolvedTableThemeConfigType) =>\n ({\n ...getDefaultTableCellSx(tableTheme),\n }) as const;\n\nconst defaultHeaderDividerSx = {\n borderRight: `1px solid ${DEFAULT_TABLE_BORDER_COLOR}`,\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 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 theme = useTheme();\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, theme.palette.grey[200]),\n },\n !canUseTreeGridStyle && defaultHeaderDividerSx,\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, theme.palette.grey[200]),\n },\n !canUseTreeGridStyle && headCells.length - 1 !== index && defaultHeaderDividerSx,\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 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,\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 tableTheme = useMemo(\n () => resolveOwpTableTheme(currentSettings?.theme?.main?.table, defaultStyledTableTheme),\n [currentSettings],\n );\n const useTableRadiusZero = canUseTreeGridStyle ? canTableRadiusZero !== false : !!canTableRadiusZero;\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(\n { width: '100%' },\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n sx={mergeSx(\n { height: useFixedRowCount ? 'auto' : 500, borderRadius: 2 },\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n useFixedRowCount && { overflowY: 'hidden' },\n useTableRadiusZero && tableRadiusZeroSx,\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 getTreeGridBodyRowSx(treeGridTheme, {\n canHover: !isPlaceholderRow,\n selected: isItemSelected,\n }),\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 ? treeGridRowBorderRight : defaultRowBorderRight,\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 ? treeGridRowBorderRight : defaultRowBorderRight),\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 ? treeGridRowBorderRight : defaultRowBorderRight),\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 && <Divider sx={mergeSx(useTableRadiusZero && tableRadiusZeroSx)} />}\n {useTotalCountRow && (\n <Typography\n className=\"w-full py-8 pr-12\"\n align=\"right\"\n sx={mergeSx(\n canUseTreeGridStyle && getTreeGridContainerSx(treeGridTheme),\n useTableRadiusZero && tableRadiusZeroSx,\n )}\n >\n 전체: {resolvedRows.length.toLocaleString()} 건\n </Typography>\n )}\n </Paper>\n );\n}\n"],"names":["defaultHeadCellsSx","__name","tableTheme","fallbackBackgroundColor","getDefaultTableHeaderCellSx","DEFAULT_TABLE_BORDER_COLOR","headerBorderRight","TREEGRID_TABLE_HEADER_BORDER_COLOR","grey","defaultRowBorderRight","treeGridRowBorderRight","TREEGRID_TABLE_BODY_BORDER_COLOR","getDefaultTableBodyCellSx","getDefaultTableCellSx","defaultHeaderDividerSx","tableRadiusZeroSx","lastRowRadiusZeroSx","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","theme","useTheme","sx","headCells","onSelectAllClick","numSelected","rowCount","onRequestSort","canCheckbox","canUseOrderBy","canTableRadiusZero","canUseTreeGridStyle","gridTheme","createSortHandler","property","event","TableHead","jsxs","TableRow","jsx","TableCell","getTreeGridHeaderCellSx","Checkbox","checkboxClasses","headCell","index","TableSortLabel","defaultTableSortLabelSx","Typography","getDefaultTableHeaderLabelSx","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","resolveOwpTableTheme","defaultStyledTableTheme","useTableRadiusZero","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","Divider"],"mappings":"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"}
|
|
@@ -1,116 +1,107 @@
|
|
|
1
1
|
var L = Object.defineProperty;
|
|
2
|
-
var
|
|
3
|
-
import { jsxs as
|
|
2
|
+
var a = (t, e) => L(t, "name", { value: e, configurable: !0 });
|
|
3
|
+
import { jsxs as u, jsx as m, Fragment as S } 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 { resolveOwpGridTheme as y } from "../../constants/gridTheme.js";
|
|
5
5
|
import { resolveOwpTableTheme as B } from "../../constants/tableTheme.js";
|
|
6
6
|
import { getTreeGridFontFaceStyles as M } from "../../constants/treeGrid.js";
|
|
7
7
|
import { useGetCurrentSettings as G } from "../../hooks/useOwpSettings.js";
|
|
8
|
-
import { Typography as _, styled as v, Divider as
|
|
8
|
+
import { Typography as _, styled as v, Divider as D } from "@mui/material";
|
|
9
9
|
import { clsx as O } from "../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
|
|
10
10
|
import A from "@mui/material/GlobalStyles";
|
|
11
|
-
import
|
|
12
|
-
import
|
|
11
|
+
import j from "@mui/material/Paper";
|
|
12
|
+
import H from "@mui/material/Table";
|
|
13
13
|
import I from "@mui/material/TableBody";
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import { useMemo as
|
|
19
|
-
import { getTreeGridContainerSx as
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
|
|
14
|
+
import R from "@mui/material/TableCell";
|
|
15
|
+
import F from "@mui/material/TableContainer";
|
|
16
|
+
import K from "@mui/material/TableHead";
|
|
17
|
+
import N from "@mui/material/TableRow";
|
|
18
|
+
import { useMemo as c } from "react";
|
|
19
|
+
import { getTreeGridContainerSx as Y, getTreeGridBodyRowSx as q, TREEGRID_TABLE_BODY_BORDER_COLOR as z, getTreeGridBodyCellSx as J, TREEGRID_TABLE_HEADER_BORDER_COLOR as Q, getTreeGridHeaderCellSx as V, getTreeGridCellBaseSx as W } from "./internal/treeGridTableStyle.js";
|
|
20
|
+
import { getDefaultTableHeaderCellSx as X, getDefaultTableCellSx as Z, defaultStyledTableTheme as $ } from "./internal/defaultTableStyle.js";
|
|
21
|
+
import { isNumber as k } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isNumber.js";
|
|
22
|
+
import { isArray as h } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isArray.js";
|
|
23
|
+
import { isEmpty as P } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
|
|
24
|
+
const g = /* @__PURE__ */ a((t) => t ? Object.keys(t).filter((e) => !e.includes("Span")) : [], "getTableColumnKeys"), w = /* @__PURE__ */ a((t, e) => t[`${e}Sx`] ?? {}, "getTableCellSx"), x = /* @__PURE__ */ a((t, e, o) => t[`${e}${o}`] ?? void 0, "getTableCellSpan"), U = /* @__PURE__ */ a((...t) => t.reduce((e, o) => o ? [...e, ...h(o) ? o : [o]] : e, []), "mergeSx"), ee = {
|
|
24
25
|
border: 0,
|
|
25
26
|
borderRadius: 0,
|
|
26
27
|
overflow: "visible"
|
|
27
|
-
}, $ = {
|
|
28
|
-
header: {
|
|
29
|
-
backgroundColor: "",
|
|
30
|
-
color: "inherit",
|
|
31
|
-
fontSize: "1.7rem",
|
|
32
|
-
fontWeight: 600
|
|
33
|
-
},
|
|
34
|
-
cell: {
|
|
35
|
-
fontSize: "1.7rem"
|
|
36
|
-
}
|
|
37
28
|
};
|
|
38
|
-
function
|
|
39
|
-
return /* @__PURE__ */
|
|
40
|
-
/* @__PURE__ */ m(
|
|
41
|
-
/* @__PURE__ */
|
|
29
|
+
function te({ totalCount: t }) {
|
|
30
|
+
return /* @__PURE__ */ u(S, { children: [
|
|
31
|
+
/* @__PURE__ */ m(D, {}),
|
|
32
|
+
/* @__PURE__ */ u(_, { className: "w-full py-8 pr-12", align: "right", children: [
|
|
42
33
|
"전체: ",
|
|
43
|
-
|
|
34
|
+
k(t) ? t.toLocaleString() : 0,
|
|
44
35
|
" 건"
|
|
45
36
|
] })
|
|
46
37
|
] });
|
|
47
38
|
}
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
canBodyFullHeight:
|
|
39
|
+
a(te, "OwpTableTotalCount");
|
|
40
|
+
const oe = /* @__PURE__ */ a(({
|
|
41
|
+
canBodyFullHeight: t,
|
|
51
42
|
canUseTreeGridStyle: e,
|
|
52
|
-
children:
|
|
43
|
+
children: o,
|
|
53
44
|
className: b,
|
|
54
45
|
containerProps: l,
|
|
55
|
-
footerSlot:
|
|
56
|
-
tableTheme:
|
|
57
|
-
tableLayout:
|
|
58
|
-
...
|
|
46
|
+
footerSlot: d,
|
|
47
|
+
tableTheme: f,
|
|
48
|
+
tableLayout: i,
|
|
49
|
+
...n
|
|
59
50
|
}) => {
|
|
60
|
-
const
|
|
51
|
+
const r = G(), p = c(
|
|
61
52
|
() => {
|
|
62
|
-
var s,
|
|
63
|
-
return y((
|
|
53
|
+
var s, T;
|
|
54
|
+
return y((T = (s = r == null ? void 0 : r.theme) == null ? void 0 : s.main) == null ? void 0 : T.grid);
|
|
64
55
|
},
|
|
65
|
-
[
|
|
66
|
-
), E =
|
|
56
|
+
[r]
|
|
57
|
+
), E = c(
|
|
67
58
|
() => {
|
|
68
|
-
var s,
|
|
69
|
-
return
|
|
59
|
+
var s, T;
|
|
60
|
+
return f ?? B((T = (s = r == null ? void 0 : r.theme) == null ? void 0 : s.main) == null ? void 0 : T.table, $);
|
|
70
61
|
},
|
|
71
|
-
[
|
|
62
|
+
[r, f]
|
|
72
63
|
);
|
|
73
|
-
return /* @__PURE__ */
|
|
64
|
+
return /* @__PURE__ */ u(S, { children: [
|
|
74
65
|
e && /* @__PURE__ */ m(A, { styles: M() }),
|
|
75
|
-
/* @__PURE__ */
|
|
76
|
-
|
|
66
|
+
/* @__PURE__ */ u(
|
|
67
|
+
F,
|
|
77
68
|
{
|
|
78
|
-
component:
|
|
69
|
+
component: j,
|
|
79
70
|
variant: "outlined",
|
|
80
71
|
...l,
|
|
81
|
-
sx:
|
|
82
|
-
e &&
|
|
83
|
-
e &&
|
|
84
|
-
|
|
72
|
+
sx: U(
|
|
73
|
+
e && ee,
|
|
74
|
+
e && Y(p),
|
|
75
|
+
t && { height: "100%" },
|
|
85
76
|
l == null ? void 0 : l.sx
|
|
86
77
|
),
|
|
87
78
|
children: [
|
|
88
79
|
/* @__PURE__ */ m(
|
|
89
|
-
|
|
80
|
+
re,
|
|
90
81
|
{
|
|
91
|
-
...
|
|
92
|
-
canBodyFullHeight:
|
|
82
|
+
...n,
|
|
83
|
+
canBodyFullHeight: t,
|
|
93
84
|
canUseTreeGridStyle: e,
|
|
94
85
|
tableTheme: E,
|
|
95
86
|
treeGridTheme: p,
|
|
96
87
|
className: O(
|
|
97
|
-
|
|
98
|
-
|
|
88
|
+
t && "h-full",
|
|
89
|
+
i === "fixed" ? "table-fixed" : i === "auto" ? "table-auto" : "",
|
|
99
90
|
b
|
|
100
91
|
),
|
|
101
|
-
children:
|
|
92
|
+
children: o
|
|
102
93
|
}
|
|
103
94
|
),
|
|
104
|
-
|
|
95
|
+
d
|
|
105
96
|
]
|
|
106
97
|
}
|
|
107
98
|
)
|
|
108
99
|
] });
|
|
109
|
-
}, "StyledTable"),
|
|
110
|
-
shouldForwardProp: /* @__PURE__ */
|
|
100
|
+
}, "StyledTable"), re = v(H, {
|
|
101
|
+
shouldForwardProp: /* @__PURE__ */ a((t) => t !== "canBodyFullHeight" && t !== "canUseTreeGridStyle" && t !== "tableTheme" && t !== "treeGridTheme", "shouldForwardProp")
|
|
111
102
|
})(
|
|
112
|
-
({ theme:
|
|
113
|
-
const
|
|
103
|
+
({ theme: t, canBodyFullHeight: e, canUseTreeGridStyle: o, tableTheme: b, treeGridTheme: l }) => {
|
|
104
|
+
const d = l ?? y(), f = b ?? $;
|
|
114
105
|
return {
|
|
115
106
|
...e && {
|
|
116
107
|
height: "100%"
|
|
@@ -123,40 +114,34 @@ const ee = /* @__PURE__ */ d(({
|
|
|
123
114
|
height: "100%"
|
|
124
115
|
}
|
|
125
116
|
},
|
|
126
|
-
"& .MuiTableCell-root":
|
|
127
|
-
...
|
|
117
|
+
"& .MuiTableCell-root": o ? {
|
|
118
|
+
...W(d)
|
|
128
119
|
} : {
|
|
129
|
-
|
|
130
|
-
padding: "7px 10px",
|
|
131
|
-
borderLeft: "none",
|
|
132
|
-
borderRight: "none"
|
|
120
|
+
...Z(f)
|
|
133
121
|
},
|
|
134
|
-
...!
|
|
122
|
+
...!o && {
|
|
135
123
|
"& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root": {
|
|
136
|
-
borderLeft: `1px solid ${
|
|
124
|
+
borderLeft: `1px solid ${t.palette.divider}`
|
|
137
125
|
}
|
|
138
126
|
},
|
|
139
|
-
"& th":
|
|
140
|
-
...
|
|
127
|
+
"& th": o ? {
|
|
128
|
+
...V(d),
|
|
141
129
|
"&:first-of-type": {
|
|
142
|
-
borderLeft: `1px solid ${
|
|
130
|
+
borderLeft: `1px solid ${Q}`
|
|
143
131
|
}
|
|
144
132
|
} : {
|
|
145
|
-
|
|
146
|
-
color: i.header.color,
|
|
147
|
-
fontSize: i.header.fontSize,
|
|
148
|
-
fontWeight: i.header.fontWeight
|
|
133
|
+
...X(f, t.palette.grey[200])
|
|
149
134
|
},
|
|
150
|
-
"& td":
|
|
151
|
-
...
|
|
135
|
+
"& td": o ? {
|
|
136
|
+
...J(d),
|
|
152
137
|
"&:first-of-type": {
|
|
153
|
-
borderLeft: `1px solid ${
|
|
138
|
+
borderLeft: `1px solid ${z}`
|
|
154
139
|
}
|
|
155
140
|
} : {},
|
|
156
|
-
...
|
|
157
|
-
"& tbody > .MuiTableRow-root":
|
|
141
|
+
...o && {
|
|
142
|
+
"& tbody > .MuiTableRow-root": q(d)
|
|
158
143
|
},
|
|
159
|
-
...
|
|
144
|
+
...o && {
|
|
160
145
|
"& tbody > tr:first-of-type > th:first-of-type": {
|
|
161
146
|
borderTopLeftRadius: "inherit"
|
|
162
147
|
},
|
|
@@ -166,67 +151,67 @@ const ee = /* @__PURE__ */ d(({
|
|
|
166
151
|
}
|
|
167
152
|
};
|
|
168
153
|
}
|
|
169
|
-
), C = v(
|
|
154
|
+
), C = v(N)`
|
|
170
155
|
/* &:last-child th,
|
|
171
156
|
&:last-child td {
|
|
172
157
|
border-bottom: 0;
|
|
173
158
|
} */
|
|
174
159
|
`;
|
|
175
|
-
function
|
|
176
|
-
canTotalCountRow:
|
|
160
|
+
function Oe({
|
|
161
|
+
canTotalCountRow: t = !1,
|
|
177
162
|
headers: e,
|
|
178
|
-
rows:
|
|
163
|
+
rows: o,
|
|
179
164
|
totalCount: b,
|
|
180
165
|
...l
|
|
181
166
|
}) {
|
|
182
|
-
const
|
|
183
|
-
() =>
|
|
167
|
+
const d = c(
|
|
168
|
+
() => h(e) ? e : P(e) ? [] : [e],
|
|
184
169
|
[e]
|
|
185
|
-
),
|
|
186
|
-
() =>
|
|
170
|
+
), f = c(
|
|
171
|
+
() => g(h(e) ? e[0] : e),
|
|
187
172
|
[e]
|
|
188
173
|
);
|
|
189
|
-
return /* @__PURE__ */
|
|
190
|
-
|
|
174
|
+
return /* @__PURE__ */ u(
|
|
175
|
+
oe,
|
|
191
176
|
{
|
|
192
177
|
...l,
|
|
193
|
-
footerSlot:
|
|
178
|
+
footerSlot: t ? /* @__PURE__ */ m(te, { totalCount: typeof b > "u" ? o.length : b }) : void 0,
|
|
194
179
|
className: O(l.tableLayout && "w-full", l.className),
|
|
195
180
|
children: [
|
|
196
|
-
/* @__PURE__ */ m(
|
|
197
|
-
|
|
181
|
+
/* @__PURE__ */ m(K, { children: d.map((i, n) => /* @__PURE__ */ m(C, { children: g(i).map((r) => /* @__PURE__ */ m(
|
|
182
|
+
R,
|
|
198
183
|
{
|
|
199
184
|
className: "whitespace-pre-wrap",
|
|
200
|
-
sx: w(
|
|
201
|
-
colSpan: x(
|
|
202
|
-
rowSpan: x(
|
|
185
|
+
sx: w(i, r),
|
|
186
|
+
colSpan: x(i, r, "ColSpan"),
|
|
187
|
+
rowSpan: x(i, r, "RowSpan"),
|
|
203
188
|
align: "center",
|
|
204
|
-
children:
|
|
189
|
+
children: i[r]
|
|
205
190
|
},
|
|
206
|
-
`table-header-${
|
|
207
|
-
)) }, `table-header-${
|
|
208
|
-
/* @__PURE__ */ m(I, { children:
|
|
209
|
-
const
|
|
210
|
-
return /* @__PURE__ */ m(C, { children:
|
|
211
|
-
|
|
191
|
+
`table-header-${n}-${r}`
|
|
192
|
+
)) }, `table-header-${n}`)) }),
|
|
193
|
+
/* @__PURE__ */ m(I, { children: o.map((i, n) => {
|
|
194
|
+
const r = i;
|
|
195
|
+
return /* @__PURE__ */ m(C, { children: f.map((p) => /* @__PURE__ */ m(
|
|
196
|
+
R,
|
|
212
197
|
{
|
|
213
198
|
className: "whitespace-pre-wrap h-64",
|
|
214
|
-
sx: w(
|
|
199
|
+
sx: w(r, p),
|
|
215
200
|
align: "center",
|
|
216
|
-
children:
|
|
201
|
+
children: r[p]
|
|
217
202
|
},
|
|
218
|
-
`table-row-cell-${
|
|
219
|
-
)) }, `table-row-${
|
|
203
|
+
`table-row-cell-${n}-${p}`
|
|
204
|
+
)) }, `table-row-${n}`);
|
|
220
205
|
}) })
|
|
221
206
|
]
|
|
222
207
|
}
|
|
223
208
|
);
|
|
224
209
|
}
|
|
225
|
-
|
|
210
|
+
a(Oe, "OwpTable");
|
|
226
211
|
export {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
212
|
+
Oe as OwpTable,
|
|
213
|
+
te as OwpTableTotalCount,
|
|
214
|
+
oe as StyledTable,
|
|
230
215
|
C as StyledTableRow
|
|
231
216
|
};
|
|
232
217
|
//# sourceMappingURL=OwpTable.js.map
|