@owp/core 2.5.2 → 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 (49) hide show
  1. package/dist/_virtual/index16.js +4 -4
  2. package/dist/_virtual/index17.js +4 -4
  3. package/dist/_virtual/index18.js +4 -4
  4. package/dist/_virtual/index19.js +4 -4
  5. package/dist/components/{OwpFileUploadButton/OwpFileUploadButton.js → OwpFilePickerButton/OwpFilePickerButton.js} +15 -15
  6. package/dist/components/OwpFilePickerButton/OwpFilePickerButton.js.map +1 -0
  7. package/dist/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.js.map +1 -1
  8. package/dist/components/OwpMoreActionsButton/OwpMoreActionsButton.js +27 -27
  9. package/dist/components/OwpMoreActionsButton/OwpMoreActionsButton.js.map +1 -1
  10. package/dist/components/OwpMrtTable/OwpMrtTable.js +335 -317
  11. package/dist/components/OwpMrtTable/OwpMrtTable.js.map +1 -1
  12. package/dist/components/OwpTable/OwpDataTable.js +273 -251
  13. package/dist/components/OwpTable/OwpDataTable.js.map +1 -1
  14. package/dist/components/OwpTable/OwpTable.js +180 -159
  15. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  16. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +267 -184
  17. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  18. package/dist/components/{OwpTreeGridExcelButton/OwpTreeGridExcelButton.js → OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.js} +7 -7
  19. package/dist/components/OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.js.map +1 -0
  20. package/dist/constants/gridTheme.js +28 -0
  21. package/dist/constants/gridTheme.js.map +1 -0
  22. package/dist/hooks/useFormDataUploadMutation.js.map +1 -1
  23. package/dist/index.js +28 -28
  24. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  25. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  26. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  27. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/ITF/constants.js +1 -1
  28. 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
  29. package/dist/types/components/{OwpFileUploadButton/OwpFileUploadButton.d.ts → OwpFilePickerButton/OwpFilePickerButton.d.ts} +4 -4
  30. package/dist/types/components/OwpFilePickerButton/index.d.ts +1 -0
  31. package/dist/types/components/OwpLanguageSwitcherSelect/OwpLanguageSwitcherSelect.d.ts +1 -1
  32. package/dist/types/components/OwpMoreActionsButton/OwpMoreActionsButton.d.ts +4 -4
  33. package/dist/types/components/OwpTable/OwpTable.d.ts +2 -0
  34. package/dist/types/components/OwpTreeGridExportExcelButton/OwpTreeGridExportExcelButton.d.ts +12 -0
  35. package/dist/types/components/OwpTreeGridExportExcelButton/index.d.ts +1 -0
  36. package/dist/types/constants/gridTheme.d.ts +30 -0
  37. package/dist/types/hooks/useFormDataUploadMutation.d.ts +4 -3
  38. package/dist/types/index.d.ts +2 -2
  39. package/dist/types/types/OwpGridThemeTypes.d.ts +14 -0
  40. package/dist/types/types/OwpSettingsTypes.d.ts +2 -0
  41. package/dist/types/types/index.d.ts +1 -0
  42. package/dist/utils/createFormDataBody.js +19 -14
  43. package/dist/utils/createFormDataBody.js.map +1 -1
  44. package/package.json +1 -1
  45. package/dist/components/OwpFileUploadButton/OwpFileUploadButton.js.map +0 -1
  46. package/dist/components/OwpTreeGridExcelButton/OwpTreeGridExcelButton.js.map +0 -1
  47. package/dist/types/components/OwpFileUploadButton/index.d.ts +0 -1
  48. package/dist/types/components/OwpTreeGridExcelButton/OwpTreeGridExcelButton.d.ts +0 -12
  49. package/dist/types/components/OwpTreeGridExcelButton/index.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.tsx"],"sourcesContent":["import {\n getTreeGridFontFaceStyles,\n TREEGRID_FONT_FAMILY_STACK,\n} from '@/constants/treeGrid';\nimport { Divider, styled, Typography, type SxProps, type Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport Paper from '@mui/material/Paper';\nimport Table, { type TableProps } from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer, { type TableContainerProps } from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport { isArray, isEmpty, isNumber } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\n\ntype OwpTableCellValue = string | number;\ntype OwpTableHeaderRow = Record<string, OwpTableCellValue>;\ntype OwpTableRowData = Record<string, unknown>;\n\nconst getTableColumnKeys = (row?: Record<string, unknown>) => {\n if (!row) {\n return [];\n }\n\n return Object.keys(row).filter((keyName) => !keyName.includes('Span'));\n};\n\nconst getTableCellSx = (row: Record<string, unknown>, keyName: string) => {\n return (row[`${keyName}Sx`] as SxProps<Theme>) ?? {};\n};\n\nconst getTableCellSpan = (\n row: Record<string, unknown>,\n keyName: string,\n spanType: 'ColSpan' | 'RowSpan',\n) => {\n return (row[`${keyName}${spanType}`] as number | undefined) ?? undefined;\n};\n\nconst 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\nconst treeGridContainerSx = {\n border: 0,\n borderRadius: 0,\n overflow: 'visible',\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\ninterface StyledTableProps extends TableProps {\n canBodyFullHeight?: boolean;\n canUseTreeGridStyle?: boolean;\n containerProps?: TableContainerProps;\n footerSlot?: ReactNode;\n tableLayout?: 'auto' | 'fixed';\n title?: string;\n children: ReactNode;\n}\n\ntype StyledTableInnerProps = Pick<StyledTableProps, 'canBodyFullHeight' | 'canUseTreeGridStyle'>;\n\n/**\n * 총 row 수 표시 영역\n * @param totalCount 전체 row 수\n */\nexport function OwpTableTotalCount({ totalCount }: { totalCount?: number }) {\n return (\n <>\n <Divider />\n <Typography className=\"w-full py-8 pr-12\" align=\"right\">\n 전체: {isNumber(totalCount) ? totalCount.toLocaleString() : 0} 건\n </Typography>\n </>\n );\n}\n\n/**\n * StyledTable 스타일 컴포넌트\n * @param canBodyFullHeight body full height 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param children 하위 콘텐츠\n * @param containerProps containerProps props\n * @param footerSlot footer 영역\n * @param tableLayout tableLayout 값\n */\nexport const StyledTable = ({\n canBodyFullHeight,\n canUseTreeGridStyle,\n children,\n className,\n containerProps,\n footerSlot,\n tableLayout,\n ...tableProps\n}: StyledTableProps) => {\n return (\n <>\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n component={Paper}\n variant=\"outlined\"\n {...containerProps}\n sx={mergeSx(\n canUseTreeGridStyle && treeGridContainerSx,\n canBodyFullHeight && { height: '100%' },\n containerProps?.sx,\n )}\n >\n <StyledTableInner\n {...tableProps}\n canBodyFullHeight={canBodyFullHeight}\n canUseTreeGridStyle={canUseTreeGridStyle}\n className={clsx(\n canBodyFullHeight && 'h-full',\n tableLayout === 'fixed' ? 'table-fixed' : tableLayout === 'auto' ? 'table-auto' : '',\n className,\n )}\n >\n {children}\n </StyledTableInner>\n {footerSlot}\n </TableContainer>\n </>\n );\n};\n\nconst StyledTableInner = styled(Table, {\n shouldForwardProp: (prop) => prop !== 'canBodyFullHeight' && prop !== 'canUseTreeGridStyle',\n})<StyledTableInnerProps>(({ theme, canBodyFullHeight, canUseTreeGridStyle }) => ({\n ...(canBodyFullHeight && {\n height: '100%',\n }),\n ...(canBodyFullHeight && {\n '& .MuiTableBody-root': {\n height: '100%',\n },\n '& .MuiTableBody-root > .MuiTableRow-root': {\n height: '100%',\n },\n }),\n '& .MuiTableCell-root': canUseTreeGridStyle\n ? {\n boxSizing: 'border-box',\n ...treeGridFontSx,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n }\n : {\n fontSize: '1.7rem',\n padding: '7px 10px',\n borderLeft: 'none',\n borderRight: 'none',\n },\n ...(!canUseTreeGridStyle && {\n '& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root': {\n borderLeft: `1px solid ${theme.palette.divider}`,\n },\n }),\n '& th': canUseTreeGridStyle\n ? {\n ...treeGridFontSx,\n backgroundColor: '#586980',\n borderTop: '1px solid #6F7F94',\n borderBottom: '1px solid #6F7F94',\n borderLeft: 0,\n borderRight: '1px solid #6F7F94',\n color: 'white',\n height: 33,\n minHeight: 33,\n padding: '7px 2px 6px 10px',\n '&:first-of-type': {\n borderLeft: '1px solid #6F7F94',\n },\n }\n : {\n backgroundColor: theme.palette.grey[200],\n fontWeight: 600,\n },\n '& td': canUseTreeGridStyle\n ? {\n borderBottom: '1px solid #CDD8E4',\n borderLeft: 0,\n borderRight: '1px solid #CDD8E4',\n color: '#111112',\n padding: '7px 10px 6px',\n '&:first-of-type': {\n borderLeft: '1px solid #CDD8E4',\n },\n }\n : {},\n ...(canUseTreeGridStyle && {\n '& tbody > tr:first-of-type > th:first-of-type': {\n borderTopLeftRadius: 'inherit',\n },\n '& tbody > tr:first-of-type > td:last-of-type': {\n borderTopRightRadius: 'inherit',\n },\n }),\n}));\n\nexport const StyledTableRow = styled(TableRow)`\n /* &:last-child th,\n &:last-child td {\n border-bottom: 0;\n } */\n`;\n\ninterface OwpTableProps<T> extends Omit<StyledTableProps, 'children'> {\n canTotalCountRow?: boolean;\n headers: OwpTableHeaderRow | OwpTableHeaderRow[];\n rows: T[];\n totalCount?: number;\n}\n\n/**\n * OwpTable 컴포넌트\n * @param canTotalCountRow 전체 row 수 표시 여부\n * @param headers headers 값\n * @param rows 행 데이터 목록\n * @param totalCount 전체 row 수\n */\nexport function OwpTable<T>({\n canTotalCountRow = false,\n headers,\n rows,\n totalCount,\n ...restTableProps\n}: OwpTableProps<T>) {\n const resolvedHeaderRows = useMemo(\n () => (isArray(headers) ? headers : isEmpty(headers) ? [] : [headers]),\n [headers],\n );\n const commonKeyListData = useMemo(\n () => getTableColumnKeys(isArray(headers) ? headers[0] : headers),\n [headers],\n );\n\n return (\n <StyledTable\n {...restTableProps}\n footerSlot={\n canTotalCountRow ? (\n <OwpTableTotalCount totalCount={typeof totalCount === 'undefined' ? rows.length : totalCount} />\n ) : undefined\n }\n className={clsx(restTableProps.tableLayout && 'w-full', restTableProps.className)}\n >\n <TableHead>\n {resolvedHeaderRows.map((headerData, index) => (\n <StyledTableRow key={`table-header-${index}`}>\n {getTableColumnKeys(headerData).map((keyName) => (\n <TableCell\n key={`table-header-${index}-${keyName}`}\n className=\"whitespace-pre-wrap\"\n sx={getTableCellSx(headerData, keyName)}\n colSpan={getTableCellSpan(headerData, keyName, 'ColSpan')}\n rowSpan={getTableCellSpan(headerData, keyName, 'RowSpan')}\n align=\"center\"\n >\n {headerData[keyName]}\n </TableCell>\n ))}\n </StyledTableRow>\n ))}\n </TableHead>\n <TableBody>\n {rows.map((row, index) => {\n const currentRow = row as OwpTableRowData;\n\n return (\n <StyledTableRow key={`table-row-${index}`}>\n {commonKeyListData.map((keyName) => (\n <TableCell\n key={`table-row-cell-${index}-${keyName}`}\n className=\"whitespace-pre-wrap h-64\"\n sx={getTableCellSx(currentRow, keyName)}\n align=\"center\"\n >\n {currentRow[keyName] as ReactNode}\n </TableCell>\n ))}\n </StyledTableRow>\n );\n })}\n </TableBody>\n </StyledTable>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","mergeSx","styles","acc","style","isArray","treeGridContainerSx","treeGridFontSx","TREEGRID_FONT_FAMILY_STACK","OwpTableTotalCount","totalCount","jsxs","Fragment","jsx","Divider","Typography","isNumber","StyledTable","canBodyFullHeight","canUseTreeGridStyle","children","className","containerProps","footerSlot","tableLayout","tableProps","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","Paper","StyledTableInner","clsx","styled","Table","prop","theme","StyledTableRow","TableRow","OwpTable","canTotalCountRow","headers","rows","restTableProps","resolvedHeaderRows","useMemo","isEmpty","commonKeyListData","TableHead","headerData","index","TableCell","TableBody","currentRow"],"mappings":"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"}
1
+ {"version":3,"file":"OwpTable.js","sources":["../../../src/components/OwpTable/OwpTable.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, styled, Typography, type SxProps, type Theme } from '@mui/material';\nimport clsx from 'clsx';\nimport GlobalStyles from '@mui/material/GlobalStyles';\nimport Paper from '@mui/material/Paper';\nimport Table, { type TableProps } from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableContainer, { type TableContainerProps } from '@mui/material/TableContainer';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport { isArray, isEmpty, isNumber } from 'es-toolkit/compat';\nimport { type ReactNode, useMemo } from 'react';\n\ntype OwpTableCellValue = string | number;\ntype OwpTableHeaderRow = Record<string, OwpTableCellValue>;\ntype OwpTableRowData = Record<string, unknown>;\n\nconst getTableColumnKeys = (row?: Record<string, unknown>) => {\n if (!row) {\n return [];\n }\n\n return Object.keys(row).filter((keyName) => !keyName.includes('Span'));\n};\n\nconst getTableCellSx = (row: Record<string, unknown>, keyName: string) => {\n return (row[`${keyName}Sx`] as SxProps<Theme>) ?? {};\n};\n\nconst getTableCellSpan = (\n row: Record<string, unknown>,\n keyName: string,\n spanType: 'ColSpan' | 'RowSpan',\n) => {\n return (row[`${keyName}${spanType}`] as number | undefined) ?? undefined;\n};\n\nconst 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\nconst treeGridContainerSx = {\n border: 0,\n borderRadius: 0,\n overflow: 'visible',\n} as const;\n\nconst getTreeGridTypographySx = (\n fontSize: number | string,\n fontWeight: number | string = 'normal',\n) => ({\n fontFamily: TREEGRID_FONT_FAMILY_STACK,\n fontSize,\n fontWeight,\n lineHeight: '16px',\n});\n\nconst getTreeGridCellBaseSx = (treeGridTheme: OwpResolvedGridThemeConfigType) => ({\n ...getTreeGridTypographySx(treeGridTheme.cell.fontSize),\n boxSizing: 'border-box',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'middle',\n whiteSpace: 'nowrap',\n});\n\ninterface StyledTableProps extends TableProps {\n canBodyFullHeight?: boolean;\n canUseTreeGridStyle?: boolean;\n containerProps?: TableContainerProps;\n footerSlot?: ReactNode;\n tableLayout?: 'auto' | 'fixed';\n treeGridTheme?: OwpResolvedGridThemeConfigType;\n title?: string;\n children: ReactNode;\n}\n\ntype StyledTableInnerProps = Pick<\n StyledTableProps,\n 'canBodyFullHeight' | 'canUseTreeGridStyle' | 'treeGridTheme'\n>;\n\n/**\n * 총 row 수 표시 영역\n * @param totalCount 전체 row 수\n */\nexport function OwpTableTotalCount({ totalCount }: { totalCount?: number }) {\n return (\n <>\n <Divider />\n <Typography className=\"w-full py-8 pr-12\" align=\"right\">\n 전체: {isNumber(totalCount) ? totalCount.toLocaleString() : 0} 건\n </Typography>\n </>\n );\n}\n\n/**\n * StyledTable 스타일 컴포넌트\n * @param canBodyFullHeight body full height 사용 여부\n * @param canUseTreeGridStyle TreeGrid 스타일 사용 여부\n * @param children 하위 콘텐츠\n * @param containerProps containerProps props\n * @param footerSlot footer 영역\n * @param tableLayout tableLayout 값\n */\nexport const StyledTable = ({\n canBodyFullHeight,\n canUseTreeGridStyle,\n children,\n className,\n containerProps,\n footerSlot,\n tableLayout,\n ...tableProps\n}: StyledTableProps) => {\n const currentSettings = useGetCurrentSettings();\n const treeGridTheme = useMemo(\n () => resolveOwpGridTheme(currentSettings?.theme?.main?.grid),\n [currentSettings],\n );\n\n return (\n <>\n {canUseTreeGridStyle && <GlobalStyles styles={getTreeGridFontFaceStyles()} />}\n <TableContainer\n component={Paper}\n variant=\"outlined\"\n {...containerProps}\n sx={mergeSx(\n canUseTreeGridStyle && treeGridContainerSx,\n canBodyFullHeight && { height: '100%' },\n containerProps?.sx,\n )}\n >\n <StyledTableInner\n {...tableProps}\n canBodyFullHeight={canBodyFullHeight}\n canUseTreeGridStyle={canUseTreeGridStyle}\n treeGridTheme={treeGridTheme}\n className={clsx(\n canBodyFullHeight && 'h-full',\n tableLayout === 'fixed' ? 'table-fixed' : tableLayout === 'auto' ? 'table-auto' : '',\n className,\n )}\n >\n {children}\n </StyledTableInner>\n {footerSlot}\n </TableContainer>\n </>\n );\n};\n\nconst StyledTableInner = styled(Table, {\n shouldForwardProp: (prop) =>\n prop !== 'canBodyFullHeight' && prop !== 'canUseTreeGridStyle' && prop !== 'treeGridTheme',\n})<StyledTableInnerProps>(({ theme, canBodyFullHeight, canUseTreeGridStyle, treeGridTheme }) => {\n const resolvedTreeGridTheme = treeGridTheme ?? resolveOwpGridTheme();\n\n return {\n ...(canBodyFullHeight && {\n height: '100%',\n }),\n ...(canBodyFullHeight && {\n '& .MuiTableBody-root': {\n height: '100%',\n },\n '& .MuiTableBody-root > .MuiTableRow-root': {\n height: '100%',\n },\n }),\n '& .MuiTableCell-root': canUseTreeGridStyle\n ? {\n ...getTreeGridCellBaseSx(resolvedTreeGridTheme),\n }\n : {\n fontSize: '1.7rem',\n padding: '7px 10px',\n borderLeft: 'none',\n borderRight: 'none',\n },\n ...(!canUseTreeGridStyle && {\n '& .MuiTableRow-root > .MuiTableCell-root + .MuiTableCell-root': {\n borderLeft: `1px solid ${theme.palette.divider}`,\n },\n }),\n '& th': canUseTreeGridStyle\n ? {\n ...getTreeGridTypographySx(\n resolvedTreeGridTheme.header.fontSize,\n resolvedTreeGridTheme.header.fontWeight,\n ),\n backgroundColor: resolvedTreeGridTheme.header.backgroundColor,\n borderTop: '1px solid #6F7F94',\n borderBottom: '1px solid #6F7F94',\n borderLeft: 0,\n borderRight: '1px solid #6F7F94',\n color: resolvedTreeGridTheme.header.color,\n height: resolvedTreeGridTheme.header.height,\n minHeight: resolvedTreeGridTheme.header.height,\n padding: '7px 2px 6px 10px',\n '&:first-of-type': {\n borderLeft: '1px solid #6F7F94',\n },\n }\n : {\n backgroundColor: theme.palette.grey[200],\n fontWeight: 600,\n },\n '& td': canUseTreeGridStyle\n ? {\n borderBottom: '1px solid #CDD8E4',\n borderLeft: 0,\n borderRight: '1px solid #CDD8E4',\n color: '#111112',\n fontSize: resolvedTreeGridTheme.cell.fontSize,\n padding: '7px 10px 6px',\n '&:first-of-type': {\n borderLeft: '1px solid #CDD8E4',\n },\n }\n : {},\n ...(canUseTreeGridStyle && {\n '& tbody > tr:first-of-type > th:first-of-type': {\n borderTopLeftRadius: 'inherit',\n },\n '& tbody > tr:first-of-type > td:last-of-type': {\n borderTopRightRadius: 'inherit',\n },\n }),\n };\n});\n\nexport const StyledTableRow = styled(TableRow)`\n /* &:last-child th,\n &:last-child td {\n border-bottom: 0;\n } */\n`;\n\ninterface OwpTableProps<T> extends Omit<StyledTableProps, 'children'> {\n canTotalCountRow?: boolean;\n headers: OwpTableHeaderRow | OwpTableHeaderRow[];\n rows: T[];\n totalCount?: number;\n}\n\n/**\n * OwpTable 컴포넌트\n * @param canTotalCountRow 전체 row 수 표시 여부\n * @param headers headers 값\n * @param rows 행 데이터 목록\n * @param totalCount 전체 row 수\n */\nexport function OwpTable<T>({\n canTotalCountRow = false,\n headers,\n rows,\n totalCount,\n ...restTableProps\n}: OwpTableProps<T>) {\n const resolvedHeaderRows = useMemo(\n () => (isArray(headers) ? headers : isEmpty(headers) ? [] : [headers]),\n [headers],\n );\n const commonKeyListData = useMemo(\n () => getTableColumnKeys(isArray(headers) ? headers[0] : headers),\n [headers],\n );\n\n return (\n <StyledTable\n {...restTableProps}\n footerSlot={\n canTotalCountRow ? (\n <OwpTableTotalCount totalCount={typeof totalCount === 'undefined' ? rows.length : totalCount} />\n ) : undefined\n }\n className={clsx(restTableProps.tableLayout && 'w-full', restTableProps.className)}\n >\n <TableHead>\n {resolvedHeaderRows.map((headerData, index) => (\n <StyledTableRow key={`table-header-${index}`}>\n {getTableColumnKeys(headerData).map((keyName) => (\n <TableCell\n key={`table-header-${index}-${keyName}`}\n className=\"whitespace-pre-wrap\"\n sx={getTableCellSx(headerData, keyName)}\n colSpan={getTableCellSpan(headerData, keyName, 'ColSpan')}\n rowSpan={getTableCellSpan(headerData, keyName, 'RowSpan')}\n align=\"center\"\n >\n {headerData[keyName]}\n </TableCell>\n ))}\n </StyledTableRow>\n ))}\n </TableHead>\n <TableBody>\n {rows.map((row, index) => {\n const currentRow = row as OwpTableRowData;\n\n return (\n <StyledTableRow key={`table-row-${index}`}>\n {commonKeyListData.map((keyName) => (\n <TableCell\n key={`table-row-cell-${index}-${keyName}`}\n className=\"whitespace-pre-wrap h-64\"\n sx={getTableCellSx(currentRow, keyName)}\n align=\"center\"\n >\n {currentRow[keyName] as ReactNode}\n </TableCell>\n ))}\n </StyledTableRow>\n );\n })}\n </TableBody>\n </StyledTable>\n );\n}\n"],"names":["getTableColumnKeys","__name","row","keyName","getTableCellSx","getTableCellSpan","spanType","mergeSx","styles","acc","style","isArray","treeGridContainerSx","getTreeGridTypographySx","fontSize","fontWeight","TREEGRID_FONT_FAMILY_STACK","getTreeGridCellBaseSx","treeGridTheme","OwpTableTotalCount","totalCount","jsxs","Fragment","jsx","Divider","Typography","isNumber","StyledTable","canBodyFullHeight","canUseTreeGridStyle","children","className","containerProps","footerSlot","tableLayout","tableProps","currentSettings","useGetCurrentSettings","useMemo","resolveOwpGridTheme","_b","_a","GlobalStyles","getTreeGridFontFaceStyles","TableContainer","Paper","StyledTableInner","clsx","styled","Table","prop","theme","resolvedTreeGridTheme","StyledTableRow","TableRow","OwpTable","canTotalCountRow","headers","rows","restTableProps","resolvedHeaderRows","isEmpty","commonKeyListData","TableHead","headerData","index","TableCell","TableBody","currentRow"],"mappings":"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"}
@@ -1,221 +1,304 @@
1
- var he = Object.defineProperty;
2
- var a = (r, u) => he(r, "name", { value: u, configurable: !0 });
3
- import { jsxs as qe, jsx as q } 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 { useOwpTranslation as je } from "../../hooks/useOwpTranslation.js";
5
- import { useGetCurrentLanguage as Fe } from "../../hooks/useCurrentLanguage.js";
6
- import { TREE_GRID_BODY_ROWS_CHANGED_EVENT as ge } from "../../utils/treeGridBodyRowsEvent.js";
7
- import { getTreeGridPerfTimestamp as j, countTreeGridPerf as be, logTreeGridPerf as Ee, measureTreeGridPerf as Be } from "./internal/utils/perf.js";
8
- import { useRef as e, useState as F, useEffect as L, useLayoutEffect as We } from "react";
9
- import { useOwpTreeGridOverlayFrame as ze } from "./internal/hooks/useOwpTreeGridOverlayFrame.js";
10
- import { bindTreeGridEvents as Ye, getTreeGridBodyDataCount as W, buildTreeGridInitializationOptions as ke, hasTreeGridDisplayDataRows as Ie, replaceTreeGridBodyData as Je, TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS as Ke } from "./internal/treeGridRuntime.js";
11
- import { applyTreeGridLayoutToGrid as Qe } from "./internal/treeGridLayout.js";
12
- import { OwpTreeGridLoadingOverlay as Xe } from "./internal/OwpTreeGridLoadingOverlay.js";
13
- import { OwpTreeGridNoDataOverlay as Ze } from "./internal/OwpTreeGridNoDataOverlay.js";
14
- import { resolveTreeGridColumnEditRuleLookup as Le, createTreeGridColumnEditRulesState as $e, syncTreeGridColumnEditRules as Ue } from "./internal/treeGridColumnEditRules.js";
15
- import { isEmpty as w } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
16
- import { delay as er } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/delay.js";
17
- import { isEqual as we } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
18
- import { omit as rr } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/omit.js";
19
- const Dr = /* @__PURE__ */ a(({
20
- id: r = "treeGridWrapper",
21
- containerStyle: u,
22
- containerClassName: Oe,
23
- className: Ce,
24
- style: Ae,
25
- height: z = "100%",
26
- width: Y = "100%",
27
- layoutUrl: _e,
28
- dataUrl: He,
29
- layoutOverrides: O,
30
- data: n,
31
- useDataUrl: k,
32
- onSelect: J,
33
- onRowClick: K,
34
- onRowAdd: Q,
35
- onRowDelete: X,
36
- onRowUndelete: Z,
37
- onRowChange: $,
38
- onClickButton: U,
39
- onSave: ee,
40
- onReady: re,
41
- onAfterValueChanged: te,
42
- columnEditRules: f,
43
- highlightEditableCells: ne = !0,
44
- highlightChangedCells: oe = !0,
45
- loading: xe,
46
- showLoading: o = !0
1
+ var je = Object.defineProperty;
2
+ var d = (e, n) => je(e, "name", { value: n, configurable: !0 });
3
+ import { jsxs as ke, jsx as L } 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 qe } from "../../constants/gridTheme.js";
5
+ import { useGetCurrentSettings as Ye } from "../../hooks/useOwpSettings.js";
6
+ import { useOwpTranslation as Qe } from "../../hooks/useOwpTranslation.js";
7
+ import { useGetCurrentLanguage as Xe } from "../../hooks/useCurrentLanguage.js";
8
+ import { TREE_GRID_BODY_ROWS_CHANGED_EVENT as Be } from "../../utils/treeGridBodyRowsEvent.js";
9
+ import { getTreeGridPerfTimestamp as X, countTreeGridPerf as He, logTreeGridPerf as Se, measureTreeGridPerf as xe } from "./internal/utils/perf.js";
10
+ import { useRef as r, useState as J, useMemo as Je, useEffect as _, useLayoutEffect as Ke } from "react";
11
+ import Ze from "@mui/material/GlobalStyles";
12
+ import { useOwpTreeGridOverlayFrame as Ue } from "./internal/hooks/useOwpTreeGridOverlayFrame.js";
13
+ import { bindTreeGridEvents as er, getTreeGridBodyDataCount as K, buildTreeGridInitializationOptions as rr, hasTreeGridDisplayDataRows as Le, replaceTreeGridBodyData as tr, TREE_GRID_BINDING_LOADING_MIN_VISIBLE_MS as or } from "./internal/treeGridRuntime.js";
14
+ import { applyTreeGridLayoutToGrid as nr } from "./internal/treeGridLayout.js";
15
+ import { OwpTreeGridLoadingOverlay as ir } from "./internal/OwpTreeGridLoadingOverlay.js";
16
+ import { OwpTreeGridNoDataOverlay as sr } from "./internal/OwpTreeGridNoDataOverlay.js";
17
+ import { resolveTreeGridColumnEditRuleLookup as _e, createTreeGridColumnEditRulesState as ar, syncTreeGridColumnEditRules as dr } from "./internal/treeGridColumnEditRules.js";
18
+ import { isEmpty as O } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js";
19
+ import { delay as ur } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/function/delay.js";
20
+ import { isEqual as Oe } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/predicate/isEqual.js";
21
+ import { omit as lr } from "../../node_modules/.pnpm/es-toolkit@1.39.10/node_modules/es-toolkit/dist/compat/object/omit.js";
22
+ const cr = [
23
+ "TS",
24
+ "TW",
25
+ "TB",
26
+ "TM",
27
+ "TT",
28
+ "CF",
29
+ "CL",
30
+ "CO",
31
+ "CG",
32
+ "CB",
33
+ "CQ",
34
+ "CE",
35
+ "CS",
36
+ "CR",
37
+ "CP",
38
+ "CC"
39
+ ], Ae = "owp-tree-grid-theme", Me = /* @__PURE__ */ d((e) => typeof e == "number" ? `${e}px` : e, "toTreeGridCssValue"), Z = /* @__PURE__ */ d(({
40
+ rowSuffix: e,
41
+ suffixes: n,
42
+ withChildren: M = !1
43
+ }) => cr.flatMap((w) => n.flatMap((A) => {
44
+ const E = `.${Ae}`, h = e ? ` .${w}${e}` : "", f = `${E}${h} .${w}${A}`;
45
+ return M ? [f, `${f} *`] : [f];
46
+ })).join(", "), "createTreeGridSelectors"), fr = Z({
47
+ suffixes: ["Main"],
48
+ withChildren: !0
49
+ }), pr = Z({
50
+ rowSuffix: "HeaderRow",
51
+ suffixes: ["CellHeader", "CellIndex", "GanttHeaderBase", "LevelButton"],
52
+ withChildren: !0
53
+ }), mr = Z({
54
+ rowSuffix: "HeaderRow",
55
+ suffixes: [
56
+ "CellHeader",
57
+ "CellIndex",
58
+ "EditHeaderInput",
59
+ "EditHeaderTextarea",
60
+ "ColorFocusedCellHeader",
61
+ "ColorHoveredCellHeader",
62
+ "ColorHoveredCellIndex",
63
+ "HeaderFocus",
64
+ "HeaderDrag"
65
+ ]
66
+ }), Rr = {
67
+ [fr]: {
68
+ fontSize: "var(--owp-tree-grid-cell-font-size, 13px)",
69
+ fontWeight: "normal",
70
+ lineHeight: "16px"
71
+ },
72
+ [pr]: {
73
+ color: "var(--owp-tree-grid-header-color, #ffffff) !important",
74
+ fontSize: "var(--owp-tree-grid-header-font-size, 14px) !important",
75
+ fontWeight: "var(--owp-tree-grid-header-font-weight, normal) !important",
76
+ lineHeight: "16px"
77
+ },
78
+ [mr]: {
79
+ backgroundColor: "var(--owp-tree-grid-header-background-color, #586980) !important",
80
+ color: "var(--owp-tree-grid-header-color, #ffffff) !important"
81
+ }
82
+ }, Pr = /* @__PURE__ */ d(({
83
+ id: e = "treeGridWrapper",
84
+ containerStyle: n,
85
+ containerClassName: M,
86
+ className: w,
87
+ style: A,
88
+ height: E = "100%",
89
+ width: h = "100%",
90
+ layoutUrl: f,
91
+ dataUrl: Pe,
92
+ layoutOverrides: P,
93
+ data: i,
94
+ useDataUrl: U,
95
+ onSelect: ee,
96
+ onRowClick: re,
97
+ onRowAdd: te,
98
+ onRowDelete: oe,
99
+ onRowUndelete: ne,
100
+ onRowChange: ie,
101
+ onClickButton: se,
102
+ onSave: ae,
103
+ onReady: de,
104
+ onAfterValueChanged: ue,
105
+ columnEditRules: p,
106
+ highlightEditableCells: le = !0,
107
+ highlightChangedCells: ce = !0,
108
+ loading: ze,
109
+ showLoading: s = !0
47
110
  }) => {
48
- const { t: C } = je(), i = e(null), ie = e(null), se = e(null), A = e(null), _ = e(O), ue = e(n), H = e(
49
- f
50
- ), x = e(
51
- Le(f, {
52
- hourMinuteInvalidText: C("Message.시간은 HH:mm 형식으로 입력해주세요.")
111
+ const { t: z } = Qe(), D = Ye(), a = r(null), fe = r(null), pe = r(null), N = r(null), V = r(P), me = r(i), $ = r(
112
+ p
113
+ ), W = r(
114
+ _e(p, {
115
+ hourMinuteInvalidText: z("Message.시간은 HH:mm 형식으로 입력해주세요.")
53
116
  })
54
- ), ae = e({
55
- onSelect: J,
56
- onRowClick: K,
57
- onRowAdd: Q,
58
- onRowDelete: X,
59
- onRowUndelete: Z,
60
- onRowChange: $,
61
- onClickButton: U,
62
- onSave: ee,
63
- onReady: re,
64
- onAfterValueChanged: te
65
- }), p = e(void 0), N = e(!1), D = e(void 0), g = e(void 0), b = e(
117
+ ), Re = r({
118
+ onSelect: ee,
119
+ onRowClick: re,
120
+ onRowAdd: te,
121
+ onRowDelete: oe,
122
+ onRowUndelete: ne,
123
+ onRowChange: ie,
124
+ onClickButton: se,
125
+ onSave: ae,
126
+ onReady: de,
127
+ onAfterValueChanged: ue
128
+ }), m = r(void 0), F = r(!1), b = r(void 0), I = r(void 0), B = r(
66
129
  void 0
67
- ), ce = e($e()), Ne = e(!1), m = e(0), c = e(null), R = e(void 0), y = e(void 0), de = e(ne), le = e(oe), [P, Pe] = F(!1), [Me, v] = F(!1), [Ve, fe] = F(!1), E = Fe(), pe = e(E.id), Se = o && n !== void 0 && P && g.current !== n, M = o && xe === !0 || o && (Me || Se), V = !M && n !== void 0 && w(n) && !Ve, me = /* @__PURE__ */ a((t) => {
68
- fe(Ie(t));
130
+ ), Te = r(ar()), Ne = r(!1), R = r(0), u = r(null), T = r(void 0), y = r(void 0), ye = r(le), ge = r(ce), [j, Ve] = J(!1), [$e, g] = J(!1), [We, ve] = J(!1), H = Xe(), v = Je(
131
+ () => {
132
+ var t, o;
133
+ return qe((o = (t = D == null ? void 0 : D.theme) == null ? void 0 : t.main) == null ? void 0 : o.grid);
134
+ },
135
+ [D]
136
+ ), Ge = r(H.id), Fe = s && i !== void 0 && j && I.current !== i, k = s && ze === !0 || s && ($e || Fe), q = !k && i !== void 0 && O(i) && !We, Ce = /* @__PURE__ */ d((t) => {
137
+ ve(Le(t));
69
138
  }, "syncHasDisplayDataRows");
70
- _.current = O, ue.current = n, H.current = f, x.current = Le(f, {
71
- hourMinuteInvalidText: C("Message.시간은 HH:mm 형식으로 입력해주세요.")
72
- }), de.current = ne, le.current = oe, ae.current = {
73
- onSelect: J,
74
- onRowClick: K,
75
- onRowAdd: Q,
76
- onRowDelete: X,
77
- onRowUndelete: Z,
78
- onRowChange: $,
79
- onClickButton: U,
80
- onSave: ee,
81
- onReady: re,
82
- onAfterValueChanged: te
139
+ V.current = P, me.current = i, $.current = p, W.current = _e(p, {
140
+ hourMinuteInvalidText: z("Message.시간은 HH:mm 형식으로 입력해주세요.")
141
+ }), ye.current = le, ge.current = ce, Re.current = {
142
+ onSelect: ee,
143
+ onRowClick: re,
144
+ onRowAdd: te,
145
+ onRowDelete: oe,
146
+ onRowUndelete: ne,
147
+ onRowChange: ie,
148
+ onClickButton: se,
149
+ onSave: ae,
150
+ onReady: de,
151
+ onAfterValueChanged: ue
83
152
  };
84
- const Re = ze({
85
- visible: M || V,
86
- containerRef: ie,
87
- treeGridInstanceRef: i,
88
- debugId: r
89
- }), B = /* @__PURE__ */ a(() => {
90
- R.current !== void 0 && (window.clearTimeout(R.current), R.current = void 0);
91
- }, "clearBindingLoadingHideTimeout"), S = /* @__PURE__ */ a(() => {
153
+ const we = Ue({
154
+ visible: k || q,
155
+ containerRef: fe,
156
+ treeGridInstanceRef: a,
157
+ debugId: e
158
+ }), S = /* @__PURE__ */ d(() => {
159
+ T.current !== void 0 && (window.clearTimeout(T.current), T.current = void 0);
160
+ }, "clearBindingLoadingHideTimeout"), Y = /* @__PURE__ */ d(() => {
92
161
  y.current !== void 0 && (window.clearTimeout(y.current), y.current = void 0);
93
162
  }, "clearBodyReloadStartTimeout");
94
- L(() => {
95
- const t = /* @__PURE__ */ a((s) => {
96
- var d;
97
- ((d = s.detail) == null ? void 0 : d.gridId) === r && fe(Ie(i.current));
163
+ _(() => {
164
+ const t = /* @__PURE__ */ d((o) => {
165
+ var l;
166
+ ((l = o.detail) == null ? void 0 : l.gridId) === e && ve(Le(a.current));
98
167
  }, "handleBodyRowsChanged");
99
- return window.addEventListener(ge, t), () => {
100
- window.removeEventListener(ge, t);
168
+ return window.addEventListener(Be, t), () => {
169
+ window.removeEventListener(Be, t);
101
170
  };
102
- }, [r]), L(() => {
103
- o || (S(), B(), c.current = null, v(!1));
104
- }, [o]), L(() => {
171
+ }, [e]), _(() => {
172
+ s || (Y(), S(), u.current = null, g(!1));
173
+ }, [s]), _(() => {
105
174
  var t;
106
- if (E.id !== pe.current && !w(i.current) && ((t = i.current) == null || t.Dispose(), i.current = null, pe.current = E.id), !!w(i.current))
107
- return Ye({
108
- id: r,
109
- latestEventHandlersRef: ae,
110
- highlightEditableCellsRef: de,
111
- highlightChangedCellsRef: le,
112
- treeGridInstanceRef: i,
113
- treeGridInitStartedAtRef: se,
114
- latestLayoutOverridesRef: _,
115
- appliedLayoutOverridesRef: D,
116
- appliedBodyDataPropRef: g,
117
- latestColumnEditRulesRef: H,
118
- latestColumnEditRuleLookupRef: x,
119
- appliedColumnEditRulesRef: b,
120
- columnEditRulesStateRef: ce,
175
+ if (H.id !== Ge.current && !O(a.current) && ((t = a.current) == null || t.Dispose(), a.current = null, Ge.current = H.id), !!O(a.current))
176
+ return er({
177
+ id: e,
178
+ latestEventHandlersRef: Re,
179
+ highlightEditableCellsRef: ye,
180
+ highlightChangedCellsRef: ge,
181
+ treeGridInstanceRef: a,
182
+ treeGridInitStartedAtRef: pe,
183
+ latestLayoutOverridesRef: V,
184
+ appliedLayoutOverridesRef: b,
185
+ appliedBodyDataPropRef: I,
186
+ latestColumnEditRulesRef: $,
187
+ latestColumnEditRuleLookupRef: W,
188
+ appliedColumnEditRulesRef: B,
189
+ columnEditRulesStateRef: Te,
121
190
  hasAppliedInitialLayoutRef: Ne,
122
- syncHasDisplayDataRows: me,
123
- setIsTreeGridReady: Pe
124
- }), se.current = j(), be(r, "init"), Ee(r, "TreeGrid init start", {
125
- useDataUrl: !!k,
126
- bodyRowCount: W(n)
191
+ syncHasDisplayDataRows: Ce,
192
+ setIsTreeGridReady: Ve
193
+ }), pe.current = X(), He(e, "init"), Se(e, "TreeGrid init start", {
194
+ useDataUrl: !!U,
195
+ bodyRowCount: K(i)
127
196
  }), window.TreeGrid(
128
- ke({
129
- id: r,
130
- layoutUrl: _e,
131
- dataUrl: He,
132
- bodyData: n,
133
- useDataUrl: k,
134
- width: Y,
135
- height: z,
136
- languageId: E.id
197
+ rr({
198
+ id: e,
199
+ layoutUrl: f,
200
+ dataUrl: Pe,
201
+ bodyData: i,
202
+ useDataUrl: U,
203
+ width: h,
204
+ height: E,
205
+ languageId: H.id
137
206
  }),
138
- r,
139
- r
207
+ e,
208
+ e
140
209
  ), () => {
141
- er(() => {
142
- var s;
143
- (s = i.current) == null || s.Dispose();
210
+ ur(() => {
211
+ var o;
212
+ (o = a.current) == null || o.Dispose();
144
213
  }, 200);
145
214
  };
146
- }, []), We(() => {
147
- const t = i.current, s = _.current, T = ue.current, d = H.current;
148
- if (w(t) || !P)
215
+ }, []), Ke(() => {
216
+ const t = a.current, o = V.current, G = me.current, l = $.current;
217
+ if (O(t) || !j)
149
218
  return;
150
- const ye = D.current !== s && !we(D.current, s), I = g.current !== T && (!N.current || p.current !== T), ve = b.current !== d && !we(b.current, d);
151
- if (!(!ye && !I && !ve)) {
152
- if (ye) {
153
- const l = j();
154
- Qe(t, s, I), D.current = s, Be(r, "apply layout", l, {
155
- disableBodyReload: !!I
219
+ const Ee = b.current !== o && !Oe(b.current, o), x = I.current !== G && (!F.current || m.current !== G), he = B.current !== l && !Oe(B.current, l);
220
+ if (!(!Ee && !x && !he)) {
221
+ if (Ee) {
222
+ const c = X();
223
+ nr(t, o, x), b.current = o, xe(e, "apply layout", c, {
224
+ disableBodyReload: !!x
156
225
  });
157
226
  }
158
- if (I) {
159
- const l = m.current + 1, Te = /* @__PURE__ */ a(() => {
160
- const G = p.current;
161
- y.current = void 0, A.current = j(), be(r, "reload"), Ee(r, "ReloadBody start", {
162
- bodyRowCount: W(G)
163
- }), Je(t, G, () => {
164
- if (m.current !== l)
227
+ if (x) {
228
+ const c = R.current + 1, De = /* @__PURE__ */ d(() => {
229
+ const C = m.current;
230
+ y.current = void 0, N.current = X(), He(e, "reload"), Se(e, "ReloadBody start", {
231
+ bodyRowCount: K(C)
232
+ }), tr(t, C, () => {
233
+ if (R.current !== c)
165
234
  return;
166
- g.current = G, me(t), Be(r, "ReloadBody end", A.current, {
167
- bodyRowCount: W(G)
168
- }), A.current = null, p.current === G && (p.current = void 0, N.current = !1);
169
- const Ge = c.current;
170
- if (!o || Ge === null) {
171
- c.current = null, v(!1);
235
+ I.current = C, Ce(t), xe(e, "ReloadBody end", N.current, {
236
+ bodyRowCount: K(C)
237
+ }), N.current = null, m.current === C && (m.current = void 0, F.current = !1);
238
+ const be = u.current;
239
+ if (!s || be === null) {
240
+ u.current = null, g(!1);
172
241
  return;
173
242
  }
174
- const De = Math.max(
243
+ const Ie = Math.max(
175
244
  0,
176
- Ke - (Date.now() - Ge)
245
+ or - (Date.now() - be)
177
246
  );
178
- if (B(), De === 0) {
179
- c.current = null, v(!1);
247
+ if (S(), Ie === 0) {
248
+ u.current = null, g(!1);
180
249
  return;
181
250
  }
182
- R.current = window.setTimeout(() => {
183
- m.current === l && (R.current = void 0, c.current = null, v(!1));
184
- }, De);
251
+ T.current = window.setTimeout(() => {
252
+ R.current === c && (T.current = void 0, u.current = null, g(!1));
253
+ }, Ie);
185
254
  });
186
255
  }, "runBodyReload");
187
- m.current = l, p.current = T, N.current = !0, o && T !== void 0 ? (S(), B(), c.current = Date.now(), v(!0), y.current = window.setTimeout(() => {
188
- m.current === l && Te();
189
- }, 0)) : Te();
256
+ R.current = c, m.current = G, F.current = !0, s && G !== void 0 ? (Y(), S(), u.current = Date.now(), g(!0), y.current = window.setTimeout(() => {
257
+ R.current === c && De();
258
+ }, 0)) : De();
190
259
  }
191
- ve && (Ue(
260
+ he && (dr(
192
261
  t,
193
- x.current,
194
- ce.current
195
- ), b.current = d);
262
+ W.current,
263
+ Te.current
264
+ ), B.current = l);
196
265
  }
197
- }, [P, O, n, f, o, r]), L(() => () => {
198
- S(), B();
266
+ }, [j, P, i, p, s, e]), _(() => () => {
267
+ Y(), S();
199
268
  }, []);
200
- const h = {
201
- height: z,
202
- width: Y,
203
- ...u
269
+ const Q = {
270
+ height: E,
271
+ width: h,
272
+ "--owp-tree-grid-header-background-color": v.header.backgroundColor,
273
+ "--owp-tree-grid-header-color": v.header.color,
274
+ "--owp-tree-grid-header-font-size": Me(v.header.fontSize),
275
+ "--owp-tree-grid-header-font-weight": String(v.header.fontWeight),
276
+ "--owp-tree-grid-cell-font-size": Me(v.cell.fontSize),
277
+ ...n
204
278
  };
205
- return (o || V) && (h.position = u != null && u.position && u.position !== "static" ? u.position : "relative", h.isolation = "isolate"), /* @__PURE__ */ qe("div", { ref: ie, className: Oe, style: h, children: [
206
- /* @__PURE__ */ q("div", { id: r, className: Ce, style: rr(Ae, ["height", "width"]) }),
207
- /* @__PURE__ */ q(
208
- Ze,
209
- {
210
- visible: V,
211
- message: C("Message.조회된 결과가 없습니다."),
212
- overlayFrame: Re
213
- }
214
- ),
215
- /* @__PURE__ */ q(Xe, { visible: M, overlayFrame: Re })
216
- ] });
279
+ return (s || q) && (Q.position = n != null && n.position && n.position !== "static" ? n.position : "relative", Q.isolation = "isolate"), /* @__PURE__ */ ke(
280
+ "div",
281
+ {
282
+ ref: fe,
283
+ className: [Ae, M].filter(Boolean).join(" "),
284
+ style: Q,
285
+ children: [
286
+ /* @__PURE__ */ L(Ze, { styles: Rr }),
287
+ /* @__PURE__ */ L("div", { id: e, className: w, style: lr(A, ["height", "width"]) }),
288
+ /* @__PURE__ */ L(
289
+ sr,
290
+ {
291
+ visible: q,
292
+ message: z("Message.조회된 결과가 없습니다."),
293
+ overlayFrame: we
294
+ }
295
+ ),
296
+ /* @__PURE__ */ L(ir, { visible: k, overlayFrame: we })
297
+ ]
298
+ }
299
+ );
217
300
  }, "OwpTreeGrid");
218
301
  export {
219
- Dr as OwpTreeGrid
302
+ Pr as OwpTreeGrid
220
303
  };
221
304
  //# sourceMappingURL=OwpTreeGrid.js.map