solid-tom-ui 1.0.7 → 1.0.8
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/README.md +246 -246
- package/components/avatar/avatar.js.map +1 -1
- package/components/badge/badge.js.map +1 -1
- package/components/breadcrumb/breadcrumb.js.map +1 -1
- package/components/button/button.js.map +1 -1
- package/components/carousel/carousel.js.map +1 -1
- package/components/chat-bubble/chatBubble.js.map +1 -1
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/collapse/collapse.js.map +1 -1
- package/components/context-menu/context-menu.js.map +1 -1
- package/components/context-menu/context-menu.store.js.map +1 -1
- package/components/divider/divider.js.map +1 -1
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/dropdown.store.js.map +1 -1
- package/components/float-button/float-button.js.map +1 -1
- package/components/hover-3d-image/hover-3d-image.js.map +1 -1
- package/components/image-preview/image-preview.js.map +1 -1
- package/components/input/input.js.map +1 -1
- package/components/input/input.utils.js.map +1 -1
- package/components/input/variants/input-color.js.map +1 -1
- package/components/input/variants/input-date.js.map +1 -1
- package/components/input/variants/input-number.js.map +1 -1
- package/components/input/variants/input-otp.js.map +1 -1
- package/components/input/variants/input-password.js.map +1 -1
- package/components/input/variants/input-radio.js.map +1 -1
- package/components/input/variants/input-range.js.map +1 -1
- package/components/input/variants/input-text.js.map +1 -1
- package/components/input/variants/input-textarea.js.map +1 -1
- package/components/loading/loading.js.map +1 -1
- package/components/mansory/mansory.js.map +1 -1
- package/components/menu/menu.js.map +1 -1
- package/components/modal/modal.js.map +1 -1
- package/components/modal/modalContext.js.map +1 -1
- package/components/pagination/pagination.js.map +1 -1
- package/components/progress-bar/progress-bar.js.map +1 -1
- package/components/qr-code/qr-code.js.map +1 -1
- package/components/select/select.js.map +1 -1
- package/components/select-zone/select-zone.js.map +1 -1
- package/components/skeleton/skeleton.js.map +1 -1
- package/components/slider/slider.js.map +1 -1
- package/components/splitter/splitter.js.map +1 -1
- package/components/steps/steps.js.map +1 -1
- package/components/swap/swap.js.map +1 -1
- package/components/switch/switch.js.map +1 -1
- package/components/tab/tab.js.map +1 -1
- package/components/table/table.js.map +1 -1
- package/components/timeline/timeline.js.map +1 -1
- package/components/toast/icons/ErrorIcon.js.map +1 -1
- package/components/toast/icons/IconCircle.js.map +1 -1
- package/components/toast/icons/InfoIcon.js.map +1 -1
- package/components/toast/icons/LoaderIcon.js.map +1 -1
- package/components/toast/icons/SuccessIcon.js.map +1 -1
- package/components/toast/icons/WarningIcon.js.map +1 -1
- package/components/toast/toast.js.map +1 -1
- package/components/toast/toast.store.js.map +1 -1
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tour/tour.js.map +1 -1
- package/components/upload/upload.js.map +1 -1
- package/components/z-index/z-index.context.js.map +1 -1
- package/components/z-index/z-index.js.map +1 -1
- package/components/z-index/z-index.store.js.map +1 -1
- package/components/z-index/z-index.types.js.map +1 -1
- package/{workspace.code-workspace → macos.code-workspace} +0 -0
- package/package.json +8 -2
- package/utils/cn.js.map +1 -1
- package/utils/element-tracker.js.map +1 -1
- package/utils/helper.js.map +1 -1
- package/utils/hoc.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","names":["cn","getColor","ColumnDef","createSolidTable","flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","createVirtualizer","ChevronDown","ChevronRight","ChevronsUpDown","ChevronUp","createEffect","createMemo","createSignal","createUniqueId","For","Match","mergeProps","on","onCleanup","onMount","Show","Switch","JSX","Button","Pagination","Tooltip","TableBorder","TableCellSpanResult","TableColumnFixed","TableExpandedOptions","TableProps","TableScroll","TableSelectionOptions","TableStyleProps","TableVirtualOptions","TableZebra","normalizeBorder","border","undefined","outer","horizontal","vertical","normalizeZebra","zebra","cols","rows","TableSizeClass","xs","sm","md","lg","xl","const","getTableClass","opts","classes","push","size","join","FixedInfo","fixed","offset","isLastStart","isFirstEnd","computeFixedColumnInfo","columns","id","width","Map","result","leftOffset","lastStartId","col","set","rightOffset","firstEndId","i","length","info","get","toCssValue","val","SELECTION_COLUMN_ID","processSelectionColumns","TData","selectionOptions","foundFirst","processed","filter","meta","_selection","EXPANDED_COLUMN_ID","extractExpandedOptions","_expanded","Table","rawProps","p","enableSorting","enableColumnFilters","resizable","showHeader","color","rounded","processedColumns","finalColumns","expandedOptions","colsWithExplicitSize","Set","map","accessorKey","resolvedEnableRowSelection","enableRowSelection","enableMultiRowSelection","type","hasExpandableRows","internalExpandedKeys","setInternalExpandedKeys","defaultExpandedRowKeys","expandAllApplied","expandedKeys","expandedRowKeys","defaultExpandAllRows","allKeys","table","getRowModel","row","isRowExpanded","rowId","includes","toggleRowExpanded","record","currentKeys","isExpanded","newKeys","k","onExpand","onExpandedRowsChange","internalData","setInternalData","data","defer","getVirtualData","paginationProps","isMultiSortEvent","getRowId","_expandApi","state","sorting","columnFilters","globalFilter","rowSelection","columnVisibility","pagination","options","onSortingChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange","onColumnVisibilityChange","_","rest","isEmpty","hasFixedColumns","some","scrollX","scroll","x","scrollXWrapper","scrollXTable","sxWidths","scrollXColumnWidths","getAllLeafColumns","total","reduce","sum","getSize","columnWidths","scrollY","y","hasScroll","hasScrollX","hasScrollY","normalizedVirtual","v","virtual","itemSize","overscan","isVirtual","wrapperEl","HTMLDivElement","headerWrapperEl","rowVirtualizer","HTMLTableRowElement","count","getScrollElement","estimateSize","measureElement","el","height","getBoundingClientRect","next","nextElementSibling","classList","contains","virtualTopPadding","items","getVirtualItems","start","virtualBottomPadding","totalSize","getTotalSize","end","isSortingLoading","setIsSortingLoading","_sortTimer","ReturnType","setTimeout","clearSortTimer","clearTimeout","triggerVirtualSort","e","MouseEvent","columnId","column","getColumn","getCanSort","t0","Date","now","getToggleSortingHandler","elapsed","delay","Math","max","scrollTop","_autoLoadChain","Promise","resolve","isFetchingMore","setIsFetchingMore","callGetVirtualData","then","newRows","prev","finally","autoFillViewport","loadingMore","queueMicrotask","isConnected","scrollHeight","clientHeight","notifyTableReady","onTableReady","resolveBodySpan","cell","Cell","rowIndex","perCol","columnDef","onCell","tableEl","HTMLTableElement","bodyTableEl","tbodyId","setColumnWidths","Record","resizingIndex","setResizingIndex","handlePositions","setHandlePositions","left","top","colIndex","dataColumnSelector","getDataColumns","colMinWidth","minWidth","min","snapshotColumnWidths","ths","querySelectorAll","HTMLTableCellElement","widths","forEach","allThsTotal","Array","from","th","excess","lastColId","updateHandlePositions","handleTop","handleHeight","hdrRect","bodyRect","tableRect","positions","enableResizing","thRect","right","handleResizeStart","preventDefault","stopPropagation","lastColIndex","isLastCol","colId","startWidths","startX","clientX","startWidth","onMouseMove","ev","totalWidth","Object","values","a","b","otherCols","slice","otherMinTotal","rawDelta","newLastWidth","remainingWidth","perColWidth","newWidths","nextColIndex","nextColId","nextColStartWidth","nextColMinWidth","minDelta","maxDelta","clampedDelta","onMouseUp","document","removeEventListener","documentElement","remove","addEventListener","add","handleResizeDblClick","currentWidths","keys","equalWidth","w1","w2","half","newW1","newW2","hasResizeWidths","resizeTableWidth","declaredCols","has","undeclaredCols","declaredTotal","numUndeclared","undeclaredWidth","remaining","useFixedLayout","measuredWidths","setMeasuredWidths","measureColumnWidths","offsetWidth","fixedColumnInfo","colData","getFixedCellStyle","getFixedCellClass","AlignHeaderClass","center","AlignCellClass","AlignTdStyle","getColAlign","align","hasCellTooltip","tooltip","wrapCellContent","cellValue","content","Element","tooltipOpts","rawContent","resolvedContent","tooltipProps","containerId","position","class","root","_$createComponent","_$mergeProps","children","handleTableClick","target","HTMLElement","isOwnElement","t","closest","dataset","selectionTd","tr","getRow","getCanSelect","toggleSelected","expandTd","expandable","rowExpandable","original","index","onRowClick","window","passive","capture","removeWindowScrollListener","observer","ResizeObserver","observe","disconnectResizeObserver","disconnect","handleScroll","threshold","removeScrollListener","syncHeaderScroll","scrollLeft","_el$","_tmpl$9","_el$2","firstChild","_el$8","_el$9","_$insert","when","_$memo","onChange","page","setPageIndex","getState","pageSize","setPageSize","headerPanel","_el$3","_tmpl$","_$effect","_$className","_el$4","_tmpl$3","_el$5","_el$7","_$use","$$click","_ref$","_el$6","_tmpl$2","each","isNonResizable","_el$21","_tmpl$0","_$p","_$style","getHeaderGroups","headerGroup","groupIndex","totalRows","earlyRenderedCols","flatMap","g","headers","h","isPlaceholder","getLeafColumns","_el$22","_tmpl$1","header","isEarlyLeaf","rowSpanVal","headerSpan","onHeaderCell","colSpan","finalColSpan","finalRowSpan","rowSpan","_el$23","_tmpl$12","_el$24","_el$25","_$setAttribute","getContext","_el$26","_tmpl$11","fallback","getIsSorted","getSortIndex","_el$27","_tmpl$10","_p$","_v$14","_v$15","_v$16","_v$17","o","headerRow","_v$","_v$2","_v$3","_v$4","thead","_el$0","_el$28","_el$1","_tmpl$4","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_v$18","_v$19","_v$20","_v$21","_el$35","_tmpl$8","_el$36","_tmpl$13","_el$37","emptyContent","_v$22","getAllColumns","_v$23","empty","expanded","_el$38","getVisibleCells","isSpecial","hasTooltip","span","_el$41","_tmpl$15","getValue","_el$42","_v$26","td","_v$27","_v$28","_v$29","_v$24","bodyRow","getIsSelected","_v$25","_el$39","_tmpl$14","_el$40","expandedRowRender","tbody","_el$43","_tmpl$16","_el$44","_el$45","_v$30","_v$31","_$setStyleProperty","_el$10","_el$11","_tmpl$5","_el$12","_v$5","_v$6","virtualRow","trEl","hasAttribute","_el$46","_el$49","_el$50","_v$35","_v$36","_v$32","_v$33","_v$34","_el$47","_el$48","_el$13","_el$14","_v$7","_v$8","_el$15","_tmpl$6","_el$16","_el$17","_tmpl$7","_el$18","_el$19","variant","loading","onClick","pos","_el$51","$$dblclick","$$mousedown","_v$37","_v$38","_v$39","_v$40","footerPanel","_el$20","tfoot","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","n","s","Selection","hideSelectAll","title","_el$52","_tmpl$17","_$addEventListener","getToggleAllRowsSelectedHandler","syncIndeterminate","indeterminate","getIsSomeRowsSelected","checked","getIsAllRowsSelected","renderCell","_el$53","_tmpl$18","_el$54","_tmpl$19","getToggleSelectedHandler","disabled","_el$55","_tmpl$20","Expanded","api","_el$56","_tmpl$21","expandIcon","_$delegateEvents"],"sources":["../../../src/components/table/table.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\r\nimport { getColor } from '@/utils/helper';\r\nimport type { ColumnDef } from '@tanstack/solid-table';\r\nimport {\r\n createSolidTable,\r\n flexRender,\r\n getCoreRowModel,\r\n getFilteredRowModel,\r\n getPaginationRowModel,\r\n getSortedRowModel,\r\n} from '@tanstack/solid-table';\r\nimport { createVirtualizer } from '@tanstack/solid-virtual';\r\nimport ChevronDown from 'lucide-solid/icons/chevron-down';\r\nimport ChevronRight from 'lucide-solid/icons/chevron-right';\r\nimport ChevronsUpDown from 'lucide-solid/icons/chevrons-up-down';\r\nimport ChevronUp from 'lucide-solid/icons/chevron-up';\r\nimport {\r\n createEffect,\r\n createMemo,\r\n createSignal,\r\n createUniqueId,\r\n For,\r\n Match,\r\n mergeProps,\r\n on,\r\n onCleanup,\r\n onMount,\r\n Show,\r\n Switch,\r\n type JSX,\r\n} from 'solid-js';\r\nimport { Button } from '../button';\r\nimport { Pagination } from '../pagination';\r\nimport { Tooltip } from '../tooltip';\r\nimport type {\r\n TableBorder,\r\n TableCellSpanResult,\r\n TableColumnFixed,\r\n TableExpandedOptions,\r\n TableProps,\r\n TableScroll,\r\n TableSelectionOptions,\r\n TableStyleProps,\r\n TableVirtualOptions,\r\n TableZebra,\r\n} from './table.types';\r\n\r\nfunction normalizeBorder(border: TableBorder | boolean | undefined): TableBorder | undefined {\r\n if (border === undefined) return undefined;\r\n if (border === true) return { outer: true, horizontal: true, vertical: true };\r\n if (border === false) return { outer: false, horizontal: false, vertical: false };\r\n return border;\r\n}\r\n\r\nfunction normalizeZebra(zebra: TableZebra | boolean | undefined): TableZebra {\r\n switch (zebra) {\r\n case true:\r\n return { cols: false, rows: true };\r\n case false:\r\n case undefined:\r\n return { cols: false, rows: false };\r\n default:\r\n return zebra;\r\n }\r\n}\r\n\r\nconst TableSizeClass = {\r\n xs: 'tbe02',\r\n sm: 'tbe03',\r\n md: 'tbe04',\r\n lg: 'tbe05',\r\n xl: 'tbe06',\r\n} as const;\r\n\r\nfunction getTableClass(opts: TableStyleProps): string {\r\n const classes: string[] = [];\r\n const zebra = normalizeZebra(opts.zebra);\r\n if (zebra.rows) classes.push('tbe07');\r\n if (zebra.cols) classes.push('tbe08');\r\n if (opts.size) classes.push(TableSizeClass[opts.size]);\r\n return classes.join(' ');\r\n}\r\n\r\ntype FixedInfo = {\r\n fixed: TableColumnFixed;\r\n offset: number;\r\n isLastStart: boolean;\r\n isFirstEnd: boolean;\r\n};\r\n\r\nfunction computeFixedColumnInfo(\r\n columns: { id: string; fixed?: TableColumnFixed; width: number }[],\r\n): Map<string, FixedInfo> {\r\n const result = new Map<string, FixedInfo>();\r\n\r\n let leftOffset = 0;\r\n let lastStartId: string | null = null;\r\n for (const col of columns) {\r\n const fixed = col.fixed;\r\n if (fixed === true || fixed === 'start') {\r\n result.set(col.id, {\r\n fixed: 'start',\r\n offset: leftOffset,\r\n isLastStart: false,\r\n isFirstEnd: false,\r\n });\r\n leftOffset += col.width;\r\n lastStartId = col.id;\r\n }\r\n }\r\n\r\n let rightOffset = 0;\r\n let firstEndId: string | null = null;\r\n for (let i = columns.length - 1; i >= 0; i--) {\r\n const col = columns[i];\r\n const fixed = col.fixed;\r\n if (fixed === 'end') {\r\n result.set(col.id, {\r\n fixed: 'end',\r\n offset: rightOffset,\r\n isLastStart: false,\r\n isFirstEnd: false,\r\n });\r\n rightOffset += col.width;\r\n if (!firstEndId) firstEndId = col.id;\r\n }\r\n }\r\n\r\n if (lastStartId) {\r\n const info = result.get(lastStartId)!;\r\n info.isLastStart = true;\r\n }\r\n if (firstEndId) {\r\n const info = result.get(firstEndId)!;\r\n info.isFirstEnd = true;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction toCssValue(val: string | number): string {\r\n return typeof val === 'number' ? `${val}px` : val;\r\n}\r\n\r\nconst SELECTION_COLUMN_ID = '__selection__';\r\n\r\nfunction processSelectionColumns<TData>(columns: ColumnDef<TData, any>[]): {\r\n columns: ColumnDef<TData, any>[];\r\n selectionOptions: TableSelectionOptions<TData> | undefined;\r\n} {\r\n let selectionOptions: TableSelectionOptions<TData> | undefined;\r\n let foundFirst = false;\r\n\r\n const processed = columns.filter(col => {\r\n const meta = col.meta as any;\r\n if (meta?._selection) {\r\n if (foundFirst) return false;\r\n foundFirst = true;\r\n selectionOptions = meta._selection;\r\n return true;\r\n }\r\n return true;\r\n });\r\n\r\n return { columns: processed, selectionOptions };\r\n}\r\n\r\nconst EXPANDED_COLUMN_ID = '__expanded__';\r\n\r\nfunction extractExpandedOptions<TData>(\r\n columns: ColumnDef<TData, any>[],\r\n): TableExpandedOptions<TData> | undefined {\r\n for (const col of columns) {\r\n const meta = col.meta as any;\r\n if (meta?._expanded) return meta._expanded;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction Table<TData>(rawProps: TableProps<TData>) {\r\n const p = mergeProps(\r\n {\r\n zebra: { rows: true } as TableZebra | boolean,\r\n size: 'md' as const,\r\n enableSorting: false,\r\n enableColumnFilters: false,\r\n resizable: true,\r\n showHeader: true,\r\n color: 'info' as const,\r\n rounded: 'rounded-sm',\r\n } as TableProps<TData>,\r\n rawProps,\r\n );\r\n\r\n const processedColumns = createMemo(() => processSelectionColumns<TData>(p.columns));\r\n const selectionOptions = () => processedColumns().selectionOptions;\r\n const finalColumns = () => processedColumns().columns;\r\n\r\n const expandedOptions = createMemo(() => extractExpandedOptions<TData>(p.columns));\r\n\r\n const colsWithExplicitSize = createMemo(\r\n () =>\r\n new Set(\r\n p.columns\r\n .filter(col => 'size' in col)\r\n .map(col => ('accessorKey' in col ? col.accessorKey : 'id' in col ? col.id : undefined)),\r\n ),\r\n );\r\n\r\n const resolvedEnableRowSelection = () => {\r\n if (p.enableRowSelection !== undefined) return p.enableRowSelection;\r\n return !!selectionOptions();\r\n };\r\n\r\n const enableMultiRowSelection = () => {\r\n const opts = selectionOptions();\r\n if (!opts) return true;\r\n return opts.type !== 'radio';\r\n };\r\n\r\n const hasExpandableRows = () => !!expandedOptions();\r\n\r\n const [internalExpandedKeys, setInternalExpandedKeys] = createSignal<string[]>(\r\n p.defaultExpandedRowKeys ?? [],\r\n );\r\n\r\n let expandAllApplied = false;\r\n\r\n const expandedKeys = (): string[] => {\r\n if (!hasExpandableRows()) return [];\r\n\r\n if (p.expandedRowKeys !== undefined) return p.expandedRowKeys;\r\n\r\n if (p.defaultExpandAllRows && !expandAllApplied) {\r\n expandAllApplied = true;\r\n const allKeys = table.getRowModel().rows.map(row => row.id);\r\n setInternalExpandedKeys(allKeys);\r\n return allKeys;\r\n }\r\n\r\n return internalExpandedKeys();\r\n };\r\n\r\n const isRowExpanded = (rowId: string) => expandedKeys().includes(rowId);\r\n\r\n function toggleRowExpanded(rowId: string, record: TData) {\r\n const currentKeys = expandedKeys();\r\n const isExpanded = currentKeys.includes(rowId);\r\n const newKeys = isExpanded ? currentKeys.filter(k => k !== rowId) : [...currentKeys, rowId];\r\n\r\n if (p.expandedRowKeys === undefined) {\r\n setInternalExpandedKeys(newKeys);\r\n }\r\n\r\n p.onExpand?.(!isExpanded, record);\r\n p.onExpandedRowsChange?.(newKeys);\r\n }\r\n\r\n const [internalData, setInternalData] = createSignal<TData[]>(p.data as TData[]);\r\n\r\n createEffect(\r\n on(\r\n () => p.data,\r\n data => setInternalData(data as TData[]),\r\n { defer: true },\r\n ),\r\n );\r\n\r\n const table = createSolidTable<TData>({\r\n get data() {\r\n return p.getVirtualData ? internalData() : p.data;\r\n },\r\n get columns() {\r\n return finalColumns();\r\n },\r\n getCoreRowModel: getCoreRowModel(),\r\n getSortedRowModel: getSortedRowModel(),\r\n ...(p.enableColumnFilters && { getFilteredRowModel: getFilteredRowModel() }),\r\n\r\n ...(p.paginationProps !== undefined && {\r\n getPaginationRowModel: getPaginationRowModel(),\r\n }),\r\n get enableSorting() {\r\n return p.enableSorting;\r\n },\r\n\r\n isMultiSortEvent: () => true,\r\n get enableColumnFilters() {\r\n return p.enableColumnFilters;\r\n },\r\n get enableRowSelection() {\r\n return resolvedEnableRowSelection();\r\n },\r\n get enableMultiRowSelection() {\r\n return enableMultiRowSelection();\r\n },\r\n ...(p.getRowId && { getRowId: p.getRowId }),\r\n meta: {\r\n _expandApi: {\r\n isRowExpanded,\r\n toggleRowExpanded,\r\n },\r\n },\r\n state: {\r\n get sorting() {\r\n return p.sorting;\r\n },\r\n get columnFilters() {\r\n return p.columnFilters;\r\n },\r\n get globalFilter() {\r\n return p.globalFilter;\r\n },\r\n get rowSelection() {\r\n return p.rowSelection;\r\n },\r\n get columnVisibility() {\r\n return p.columnVisibility;\r\n },\r\n get pagination() {\r\n return p.pagination;\r\n },\r\n ...(p.options?.state || {}),\r\n },\r\n ...(p.onSortingChange && { onSortingChange: p.onSortingChange }),\r\n ...(p.onColumnFiltersChange && { onColumnFiltersChange: p.onColumnFiltersChange }),\r\n ...(p.onGlobalFilterChange && { onGlobalFilterChange: p.onGlobalFilterChange }),\r\n ...(p.onRowSelectionChange && { onRowSelectionChange: p.onRowSelectionChange }),\r\n ...(p.onColumnVisibilityChange && { onColumnVisibilityChange: p.onColumnVisibilityChange }),\r\n ...(p.options &&\r\n (() => {\r\n const { state: _, ...rest } = p.options!;\r\n return rest;\r\n })()),\r\n });\r\n const border = () => normalizeBorder(p.border);\r\n\r\n const isEmpty = () => table.getRowModel().rows.length === 0;\r\n\r\n const hasFixedColumns = () => p.columns.some(col => col.meta?.fixed);\r\n\r\n const scrollX = () => (p.scroll as TableScroll | undefined)?.x;\r\n\r\n const scrollXWrapper = () => {\r\n const x = scrollX();\r\n if (x === undefined) return undefined;\r\n if (x === true || x === 'max-content') return undefined;\r\n return toCssValue(x);\r\n };\r\n\r\n const scrollXTable = () => {\r\n const x = scrollX();\r\n if (x === undefined) return undefined;\r\n if (x === 'max-content') return 'max-content';\r\n\r\n const sxWidths = scrollXColumnWidths();\r\n const cols = table.getAllLeafColumns();\r\n const total = cols.reduce((sum, col) => {\r\n if (col.id === SELECTION_COLUMN_ID || col.id === EXPANDED_COLUMN_ID) {\r\n return sum + col.getSize();\r\n }\r\n if (sxWidths) return sum + (sxWidths[col.id] ?? 100);\r\n return sum + (columnWidths()[col.id] ?? col.getSize());\r\n }, 0);\r\n return `${total}px`;\r\n };\r\n\r\n const scrollY = () => {\r\n const y = p.scroll?.y;\r\n if (y === undefined) return undefined;\r\n return toCssValue(y);\r\n };\r\n\r\n const hasScroll = () => scrollX() !== undefined || p.scroll?.y !== undefined;\r\n const hasScrollX = () => scrollX() !== undefined;\r\n const hasScrollY = () => p.scroll?.y !== undefined;\r\n\r\n const normalizedVirtual = createMemo((): TableVirtualOptions | null => {\r\n const v = p.virtual;\r\n if (!v) return null;\r\n if (v === true) return { itemSize: 40, overscan: 5 };\r\n return { itemSize: v.itemSize ?? 40, overscan: v.overscan ?? 5 };\r\n });\r\n\r\n const isVirtual = () => !!normalizedVirtual();\r\n\r\n let wrapperEl!: HTMLDivElement;\r\n let headerWrapperEl!: HTMLDivElement;\r\n\r\n const rowVirtualizer = createVirtualizer<HTMLDivElement, HTMLTableRowElement>({\r\n get count() {\r\n return isVirtual() ? table.getRowModel().rows.length : 0;\r\n },\r\n getScrollElement: () => (isVirtual() ? wrapperEl : null),\r\n estimateSize: () => normalizedVirtual()?.itemSize ?? 40,\r\n get overscan() {\r\n return normalizedVirtual()?.overscan ?? 5;\r\n },\r\n\r\n measureElement: el => {\r\n let height = el.getBoundingClientRect().height;\r\n const next = el.nextElementSibling;\r\n if (next?.classList.contains('tbe31')) {\r\n height += next.getBoundingClientRect().height;\r\n }\r\n return height;\r\n },\r\n });\r\n\r\n const virtualTopPadding = createMemo(() => {\r\n if (!isVirtual()) return 0;\r\n const items = rowVirtualizer.getVirtualItems();\r\n return items.length > 0 ? (items[0]?.start ?? 0) : 0;\r\n });\r\n\r\n const virtualBottomPadding = createMemo(() => {\r\n if (!isVirtual()) return 0;\r\n const items = rowVirtualizer.getVirtualItems();\r\n const totalSize = rowVirtualizer.getTotalSize();\r\n return items.length > 0 ? totalSize - (items[items.length - 1]?.end ?? 0) : 0;\r\n });\r\n\r\n const [isSortingLoading, setIsSortingLoading] = createSignal(false);\r\n let _sortTimer: ReturnType<typeof setTimeout> | null = null;\r\n\r\n onCleanup(function clearSortTimer() {\r\n if (_sortTimer !== null) clearTimeout(_sortTimer);\r\n });\r\n\r\n function triggerVirtualSort(e: MouseEvent, columnId: string) {\r\n if (isSortingLoading()) return;\r\n const column = table.getColumn(columnId);\r\n if (!column?.getCanSort()) return;\r\n\r\n setIsSortingLoading(true);\r\n const t0 = Date.now();\r\n\r\n setTimeout(() => {\r\n column.getToggleSortingHandler()?.(e);\r\n\r\n const elapsed = Date.now() - t0;\r\n const delay = Math.max(0, 500 - elapsed);\r\n\r\n _sortTimer = setTimeout(() => {\r\n _sortTimer = null;\r\n setIsSortingLoading(false);\r\n\r\n if (wrapperEl) wrapperEl.scrollTop = 0;\r\n }, delay);\r\n }, 0);\r\n }\r\n\r\n let _autoLoadChain = Promise.resolve<void>(undefined);\r\n\r\n const [isFetchingMore, setIsFetchingMore] = createSignal(false);\r\n\r\n function callGetVirtualData() {\r\n if (!p.getVirtualData || isFetchingMore()) return;\r\n setIsFetchingMore(true);\r\n p.getVirtualData()\r\n .then(newRows => {\r\n setInternalData(prev => [...prev, ...newRows]);\r\n })\r\n .finally(() => {\r\n setIsFetchingMore(false);\r\n });\r\n }\r\n\r\n createEffect(function autoFillViewport() {\r\n if (!isVirtual() || p.loadingMore !== 'auto' || isFetchingMore()) return;\r\n\r\n _autoLoadChain = _autoLoadChain.then(\r\n () =>\r\n new Promise<void>(resolve => {\r\n queueMicrotask(() => {\r\n if (\r\n wrapperEl &&\r\n wrapperEl.isConnected &&\r\n p.getVirtualData &&\r\n p.loadingMore === 'auto' &&\r\n !isFetchingMore() &&\r\n wrapperEl.scrollHeight <= wrapperEl.clientHeight\r\n ) {\r\n callGetVirtualData();\r\n }\r\n resolve();\r\n });\r\n }),\r\n );\r\n });\r\n\r\n createEffect(function notifyTableReady() {\r\n p.onTableReady?.(table);\r\n });\r\n\r\n function resolveBodySpan(\r\n cell: import('@tanstack/solid-table').Cell<TData, unknown>,\r\n rowIndex: number,\r\n ): TableCellSpanResult {\r\n const perCol = cell.column.columnDef.meta?.onCell;\r\n if (perCol) return perCol(cell, rowIndex);\r\n return p.onCell?.(cell, rowIndex) ?? {};\r\n }\r\n\r\n let tableEl!: HTMLTableElement;\r\n let bodyTableEl!: HTMLTableElement;\r\n const tbodyId = createUniqueId();\r\n\r\n const [columnWidths, setColumnWidths] = createSignal<Record<string, number>>({});\r\n\r\n const [resizingIndex, setResizingIndex] = createSignal(-1);\r\n\r\n const [handlePositions, setHandlePositions] = createSignal<\r\n { left: number; top: number; height: number; colIndex: number }[]\r\n >([]);\r\n\r\n // When scroll.x is set, resizable is always disabled (types enforce this, but guard at runtime too)\r\n const resizable = createMemo(() => scrollX() === undefined && p.resizable !== false);\r\n\r\n const dataColumnSelector = 'thead tr:first-child th:not(.tbe23):not(.tbe22)';\r\n\r\n function getDataColumns() {\r\n return table\r\n .getAllLeafColumns()\r\n .filter(col => col.id !== EXPANDED_COLUMN_ID && col.id !== SELECTION_COLUMN_ID);\r\n }\r\n\r\n /** Effective minimum width: the smaller of the column's declared size and the meta minWidth (default 100). */\r\n function colMinWidth(col: {\r\n getSize(): number;\r\n columnDef: { meta?: { minWidth?: number } };\r\n }): number {\r\n return Math.min(col.getSize(), col.columnDef.meta?.minWidth ?? 100);\r\n }\r\n\r\n function snapshotColumnWidths(): Record<string, number> {\r\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\r\n const cols = getDataColumns();\r\n const widths: Record<string, number> = {};\r\n cols.forEach((col, i) => {\r\n if (ths[i]) {\r\n // Use getBoundingClientRect for sub-pixel precision — offsetWidth is an integer\r\n // and accumulated rounding can make the sum exceed the table width by 1-2px,\r\n // which triggers a spurious horizontal scrollbar when col widths are made explicit.\r\n widths[col.id] = ths[i].getBoundingClientRect().width;\r\n }\r\n });\r\n // Safety: trim any remaining excess (e.g. from non-data columns or float imprecision)\r\n // so the colgroup widths never exceed the table's own rendered width.\r\n const allThsTotal = Array.from(\r\n tableEl.querySelectorAll<HTMLTableCellElement>('thead tr:first-child th'),\r\n ).reduce((sum, th) => sum + th.getBoundingClientRect().width, 0);\r\n const excess = allThsTotal - tableEl.getBoundingClientRect().width;\r\n if (excess > 0 && cols.length > 0) {\r\n const lastColId = cols[cols.length - 1].id;\r\n if (widths[lastColId] !== undefined) {\r\n widths[lastColId] = Math.max(\r\n colMinWidth(cols[cols.length - 1]),\r\n widths[lastColId] - excess,\r\n );\r\n }\r\n }\r\n return widths;\r\n }\r\n\r\n function updateHandlePositions() {\r\n if (!tableEl) return;\r\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\r\n const cols = getDataColumns();\r\n\r\n let handleTop: number;\r\n let handleHeight: number;\r\n if (hasScrollY()) {\r\n const hdrRect = headerWrapperEl?.getBoundingClientRect();\r\n const bodyRect = wrapperEl?.getBoundingClientRect();\r\n handleTop = hdrRect?.top ?? 0;\r\n handleHeight = (hdrRect?.height ?? 0) + (bodyRect?.height ?? 0);\r\n } else {\r\n const tableRect = tableEl.getBoundingClientRect();\r\n handleTop = tableRect.top;\r\n handleHeight = tableRect.height;\r\n }\r\n\r\n const positions: { left: number; top: number; height: number; colIndex: number }[] = [];\r\n\r\n for (let i = 0; i < ths.length; i++) {\r\n const col = cols[i];\r\n if (!col || col.columnDef.enableResizing === false) continue;\r\n const thRect = ths[i].getBoundingClientRect();\r\n positions.push({\r\n left: thRect.right,\r\n top: handleTop,\r\n height: handleHeight,\r\n colIndex: i,\r\n });\r\n }\r\n\r\n setHandlePositions(positions);\r\n }\r\n\r\n function handleResizeStart(colIndex: number, e: MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const cols = getDataColumns();\r\n const lastColIndex = cols.length - 1;\r\n const isLastCol = colIndex === lastColIndex;\r\n const colId = cols[colIndex].id;\r\n const lastColId = cols[lastColIndex].id;\r\n\r\n const startWidths = snapshotColumnWidths();\r\n setColumnWidths(startWidths);\r\n\r\n const startX = e.clientX;\r\n const startWidth = startWidths[colId] || 0;\r\n const minWidth = colMinWidth(cols[colIndex]);\r\n\r\n setResizingIndex(colIndex);\r\n\r\n let onMouseMove: (ev: MouseEvent) => void;\r\n\r\n if (isLastCol) {\r\n // Resizing the last column: distribute remaining width equally among all other columns.\r\n const totalWidth = Object.values(startWidths).reduce((a, b) => a + b, 0);\r\n const otherCols = cols.slice(0, lastColIndex);\r\n const otherMinTotal = otherCols.reduce((sum, col) => sum + colMinWidth(col), 0);\r\n\r\n onMouseMove = (ev: MouseEvent) => {\r\n const rawDelta = ev.clientX - startX;\r\n // Last col can't go below its minWidth; others can't go below their minWidths combined\r\n const newLastWidth = Math.max(\r\n minWidth,\r\n Math.min(totalWidth - otherMinTotal, startWidth + rawDelta),\r\n );\r\n const remainingWidth = totalWidth - newLastWidth;\r\n const perColWidth =\r\n otherCols.length > 0 ? remainingWidth / otherCols.length : remainingWidth;\r\n\r\n const newWidths: Record<string, number> = {};\r\n otherCols.forEach(col => {\r\n newWidths[col.id] = Math.max(colMinWidth(col), perColWidth);\r\n });\r\n newWidths[lastColId] = newLastWidth;\r\n setColumnWidths(newWidths);\r\n queueMicrotask(() => updateHandlePositions());\r\n };\r\n } else {\r\n // Resizing a non-last column: column N grows/shrinks and the ADJACENT right\r\n // column (N+1) absorbs the opposite delta. Total table width stays constant.\r\n const nextColIndex = colIndex + 1;\r\n const nextColId = cols[nextColIndex].id;\r\n const nextColStartWidth = startWidths[nextColId] || 0;\r\n const nextColMinWidth = colMinWidth(cols[nextColIndex]);\r\n\r\n onMouseMove = (ev: MouseEvent) => {\r\n const rawDelta = ev.clientX - startX;\r\n // Floor: dragged column can't go below its minWidth\r\n const minDelta = minWidth - startWidth;\r\n // Ceiling: next column can't go below its minWidth\r\n const maxDelta = nextColStartWidth - nextColMinWidth;\r\n const clampedDelta = Math.max(minDelta, Math.min(maxDelta, rawDelta));\r\n\r\n setColumnWidths(prev => ({\r\n ...prev,\r\n [colId]: startWidth + clampedDelta,\r\n [nextColId]: nextColStartWidth - clampedDelta,\r\n }));\r\n queueMicrotask(() => updateHandlePositions());\r\n };\r\n }\r\n\r\n const onMouseUp = () => {\r\n setResizingIndex(-1);\r\n document.removeEventListener('mousemove', onMouseMove);\r\n document.removeEventListener('mouseup', onMouseUp);\r\n document.documentElement.classList.remove('tbe-resizing');\r\n };\r\n\r\n document.addEventListener('mousemove', onMouseMove);\r\n document.addEventListener('mouseup', onMouseUp);\r\n document.documentElement.classList.add('tbe-resizing');\r\n }\r\n\r\n function handleResizeDblClick(colIndex: number, e: MouseEvent) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const cols = getDataColumns();\r\n const currentWidths =\r\n Object.keys(columnWidths()).length > 0 ? columnWidths() : snapshotColumnWidths();\r\n const lastColIndex = cols.length - 1;\r\n\r\n if (colIndex === lastColIndex) {\r\n // Divider sau last col: chia đều tất cả các cột\r\n const total = cols.reduce((sum, col) => sum + (currentWidths[col.id] ?? col.getSize()), 0);\r\n const equalWidth = total / cols.length;\r\n const newWidths: Record<string, number> = {};\r\n cols.forEach(col => {\r\n newWidths[col.id] = Math.max(colMinWidth(col), equalWidth);\r\n });\r\n setColumnWidths(newWidths);\r\n } else {\r\n // Divider giữa cột colIndex và colIndex+1: chia đều tổng width 2 cột\r\n const colId = cols[colIndex].id;\r\n const nextColId = cols[colIndex + 1].id;\r\n const w1 = currentWidths[colId] ?? cols[colIndex].getSize();\r\n const w2 = currentWidths[nextColId] ?? cols[colIndex + 1].getSize();\r\n const half = (w1 + w2) / 2;\r\n const newW1 = Math.max(colMinWidth(cols[colIndex]), half);\r\n const newW2 = Math.max(colMinWidth(cols[colIndex + 1]), w1 + w2 - newW1);\r\n setColumnWidths(prev => ({\r\n ...currentWidths,\r\n ...prev,\r\n [colId]: newW1,\r\n [nextColId]: newW2,\r\n }));\r\n }\r\n\r\n queueMicrotask(() => updateHandlePositions());\r\n }\r\n\r\n const hasResizeWidths = () => Object.keys(columnWidths()).length > 0;\r\n\r\n /**\r\n * When resizing is active, override the table's `w-full` with an exact pixel width\r\n * equal to the sum of all column widths. This prevents the browser from proportionally\r\n * scaling columns to fill the container when the total is less than the container width,\r\n * and allows the table to grow beyond the container (triggering scroll) when columns expand.\r\n */\r\n const resizeTableWidth = createMemo<string | null>(() => {\r\n if (!hasResizeWidths()) return null;\r\n const widths = columnWidths();\r\n const total = table\r\n .getAllLeafColumns()\r\n .reduce((sum, col) => sum + (widths[col.id] ?? col.getSize()), 0);\r\n return `${total}px`;\r\n });\r\n\r\n /**\r\n * When scroll-x is active (resizable is off), compute explicit widths for every data column:\r\n * - Columns with a declared `size` keep that size.\r\n * - Remaining columns share the leftover space equally (min 100px each).\r\n * Returns null when scroll-x is not active.\r\n */\r\n const scrollXColumnWidths = createMemo<Record<string, number> | null>(() => {\r\n if (!hasScrollX()) return null;\r\n const cols = getDataColumns();\r\n const x = scrollX()!;\r\n const declaredCols = cols.filter(col => colsWithExplicitSize().has(col.id));\r\n const undeclaredCols = cols.filter(col => !colsWithExplicitSize().has(col.id));\r\n const declaredTotal = declaredCols.reduce((sum, col) => sum + col.getSize(), 0);\r\n const numUndeclared = undeclaredCols.length;\r\n let undeclaredWidth: number;\r\n if (typeof x === 'number') {\r\n const remaining = x - declaredTotal;\r\n undeclaredWidth = numUndeclared > 0 ? Math.max(100, remaining / numUndeclared) : 100;\r\n } else {\r\n undeclaredWidth = 100;\r\n }\r\n const widths: Record<string, number> = {};\r\n cols.forEach(col => {\r\n widths[col.id] = colsWithExplicitSize().has(col.id) ? col.getSize() : undeclaredWidth;\r\n });\r\n return widths;\r\n });\r\n\r\n const useFixedLayout = () => colsWithExplicitSize().size > 0 || hasResizeWidths() || hasScrollX();\r\n\r\n const [measuredWidths, setMeasuredWidths] = createSignal<Record<string, number>>({});\r\n\r\n function measureColumnWidths() {\r\n if (!tableEl) return;\r\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\r\n const cols = getDataColumns();\r\n const widths: Record<string, number> = {};\r\n cols.forEach((col, i) => {\r\n if (ths[i]) {\r\n widths[col.id] = ths[i].offsetWidth;\r\n }\r\n });\r\n setMeasuredWidths(widths);\r\n }\r\n\r\n const fixedColumnInfo = createMemo(() => {\r\n const widths = measuredWidths();\r\n if (Object.keys(widths).length === 0) return new Map<string, FixedInfo>();\r\n\r\n const cols = table.getAllLeafColumns();\r\n const colData = cols.map(col => ({\r\n id: col.id,\r\n fixed: col.columnDef.meta?.fixed,\r\n width: widths[col.id] || 0,\r\n }));\r\n\r\n return computeFixedColumnInfo(colData);\r\n });\r\n\r\n function getFixedCellStyle(colId: string): Record<string, string> | undefined {\r\n const info = fixedColumnInfo().get(colId);\r\n if (!info) return undefined;\r\n\r\n if (info.fixed === 'start') {\r\n return { left: `${info.offset}px` };\r\n }\r\n if (info.fixed === 'end') {\r\n return { right: `${info.offset}px` };\r\n }\r\n return undefined;\r\n }\r\n\r\n function getFixedCellClass(colId: string): string {\r\n const info = fixedColumnInfo().get(colId);\r\n if (!info) return '';\r\n\r\n return cn('tbe33', info.isLastStart && 'tbe34', info.isFirstEnd && 'tbe35');\r\n }\r\n\r\n const AlignHeaderClass = {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n } as const;\r\n\r\n const AlignCellClass = {\r\n start: 'align-start',\r\n center: 'align-center',\r\n end: 'align-end',\r\n } as const;\r\n\r\n const AlignTdStyle = {\r\n start: 'text-left',\r\n center: 'text-center',\r\n end: 'text-right',\r\n } as const;\r\n\r\n function getColAlign(colId: string) {\r\n const col = table.getColumn(colId);\r\n return (col?.columnDef.meta?.align ?? 'start') as 'start' | 'center' | 'end';\r\n }\r\n\r\n function hasCellTooltip(colId: string): boolean {\r\n return !!table.getColumn(colId)?.columnDef.meta?.tooltip;\r\n }\r\n\r\n function wrapCellContent(colId: string, cellValue: unknown, content: JSX.Element): JSX.Element {\r\n const col = table.getColumn(colId);\r\n const tooltipOpts = col?.columnDef.meta?.tooltip;\r\n if (!tooltipOpts) return content;\r\n const rawContent = tooltipOpts.content;\r\n const resolvedContent = typeof rawContent === 'function' ? rawContent(cellValue) : rawContent;\r\n const tooltipProps = {\r\n ...tooltipOpts,\r\n ...(resolvedContent !== undefined && { content: resolvedContent }),\r\n containerId: tbodyId,\r\n position: tooltipOpts.position ?? ('top' as const),\r\n class: { root: 'tbe-tt-cell' },\r\n };\r\n return (\r\n <Tooltip type=\"portal\" {...(tooltipProps as any)}>\r\n {content}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n function handleTableClick(e: MouseEvent) {\r\n const target = e.target as HTMLElement;\r\n\r\n const isOwnElement = (el: HTMLElement) => {\r\n const t = el.closest('table');\r\n return t === tableEl || t === bodyTableEl;\r\n };\r\n\r\n const th = target.closest('th[data-column-id]') as HTMLElement | null;\r\n if (th && isOwnElement(th)) {\r\n const columnId = th.dataset.columnId;\r\n if (columnId) {\r\n if (isVirtual() && p.enableSorting) {\r\n triggerVirtualSort(e, columnId);\r\n } else {\r\n const column = table.getColumn(columnId);\r\n if (column?.getCanSort()) {\r\n column.getToggleSortingHandler()?.(e);\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const selectionTd = target.closest('td.tbe22') as HTMLElement | null;\r\n if (selectionTd && isOwnElement(selectionTd)) {\r\n const tr = selectionTd.closest('tr[data-row-id]') as HTMLElement | null;\r\n if (tr) {\r\n const rowId = tr.dataset.rowId;\r\n if (rowId !== undefined) {\r\n const row = table.getRow(rowId);\r\n if (row?.getCanSelect()) {\r\n row.toggleSelected();\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const expandTd = target.closest('td.tbe23') as HTMLElement | null;\r\n if (expandTd && isOwnElement(expandTd)) {\r\n const tr = expandTd.closest('tr[data-row-id]') as HTMLElement | null;\r\n if (tr) {\r\n const rowId = tr.dataset.rowId;\r\n if (rowId !== undefined) {\r\n const row = table.getRow(rowId);\r\n if (row) {\r\n const opts = expandedOptions();\r\n const expandable = opts?.rowExpandable\r\n ? opts.rowExpandable(row.original, row.index)\r\n : true;\r\n if (expandable) {\r\n toggleRowExpanded(row.id, row.original);\r\n }\r\n }\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const tr = target.closest('tr[data-row-id]') as HTMLElement | null;\r\n if (tr && isOwnElement(tr) && p.onRowClick) {\r\n const rowId = tr.dataset.rowId;\r\n if (rowId !== undefined) {\r\n const row = table.getRow(rowId);\r\n if (row) {\r\n p.onRowClick(row, e);\r\n }\r\n }\r\n }\r\n }\r\n\r\n onMount(() => {\r\n if (resizable()) {\r\n updateHandlePositions();\r\n\r\n window.addEventListener('scroll', updateHandlePositions, { passive: true, capture: true });\r\n onCleanup(function removeWindowScrollListener() {\r\n window.removeEventListener('scroll', updateHandlePositions, { capture: true });\r\n });\r\n }\r\n if (hasFixedColumns()) {\r\n measureColumnWidths();\r\n }\r\n\r\n if (resizable() || hasFixedColumns()) {\r\n const observer = new ResizeObserver(() => {\r\n if (resizable()) updateHandlePositions();\r\n if (hasFixedColumns()) measureColumnWidths();\r\n });\r\n observer.observe(tableEl);\r\n onCleanup(function disconnectResizeObserver() {\r\n observer.disconnect();\r\n });\r\n }\r\n\r\n if (isVirtual()) {\r\n const handleScroll = () => {\r\n if (!p.getVirtualData || p.loadingMore !== 'auto') return;\r\n const opts = normalizedVirtual();\r\n const threshold = (opts?.itemSize ?? 40) * (opts?.overscan ?? 5);\r\n if (wrapperEl.scrollTop + wrapperEl.clientHeight >= wrapperEl.scrollHeight - threshold) {\r\n callGetVirtualData();\r\n }\r\n };\r\n wrapperEl.addEventListener('scroll', handleScroll, { passive: true });\r\n onCleanup(function removeScrollListener() {\r\n wrapperEl.removeEventListener('scroll', handleScroll);\r\n });\r\n }\r\n\r\n if (hasScrollY()) {\r\n const syncHeaderScroll = () => {\r\n if (headerWrapperEl) headerWrapperEl.scrollLeft = wrapperEl.scrollLeft;\r\n if (resizable()) updateHandlePositions();\r\n };\r\n wrapperEl.addEventListener('scroll', syncHeaderScroll, { passive: true });\r\n onCleanup(() => wrapperEl.removeEventListener('scroll', syncHeaderScroll));\r\n }\r\n });\r\n\r\n return (\r\n <div class={cn('tbe09', p.paginationProps !== undefined && 'tbe10')}>\r\n <Show\r\n when={\r\n p.paginationProps !== undefined && !p.virtual && p.paginationProps?.position === 'start'\r\n }\r\n >\r\n <Pagination\r\n {...p.paginationProps}\r\n onChange={(page, size) => {\r\n table.setPageIndex(page - 1);\r\n if (size !== table.getState().pagination.pageSize) {\r\n table.setPageSize(size);\r\n }\r\n p.paginationProps?.onChange?.(page, size);\r\n }}\r\n />\r\n </Show>\r\n <div\r\n class={cn(\r\n 'tbe11',\r\n border()?.outer && 'tbe42',\r\n resizable() && 'tbe36',\r\n resizingIndex() >= 0 && 'tbe39',\r\n (hasFixedColumns() || hasScrollY()) && 'tbe13',\r\n getColor(p.color),\r\n p.rounded,\r\n p.rounded && 'overflow-hidden',\r\n p.class?.root,\r\n )}\r\n style={{\r\n ...(scrollXWrapper() ? { 'max-width': scrollXWrapper() } : {}),\r\n ...(hasScrollX() && p.rounded ? { 'overflow-x': 'clip' } : {}),\r\n }}\r\n >\r\n <Show when={p.headerPanel}>\r\n <div class={cn('tbe40', border()?.outer && 'tbe41', p.class?.headerPanel)}>\r\n {p.headerPanel?.()}\r\n </div>\r\n </Show>\r\n <Show when={hasScrollY() && p.showHeader}>\r\n <div ref={el => (headerWrapperEl = el)} class={cn('tbe12', 'tbe14-hdr')}>\r\n <table\r\n ref={tableEl}\r\n class={cn(\r\n 'tbe01',\r\n getTableClass(p),\r\n border()?.horizontal && 'tbe43',\r\n border()?.vertical && 'tbe44',\r\n useFixedLayout() && 'table-fixed',\r\n p.class?.table,\r\n )}\r\n style={{\r\n ...(resizeTableWidth()\r\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\r\n : scrollXTable()\r\n ? { 'min-width': scrollXTable()! }\r\n : {}),\r\n }}\r\n onClick={handleTableClick}\r\n >\r\n <Show when={useFixedLayout()}>\r\n <colgroup>\r\n <For each={table.getAllLeafColumns()}>\r\n {col => {\r\n const isNonResizable = () =>\r\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\r\n return (\r\n <col\r\n style={{\r\n ...(isNonResizable()\r\n ? { width: `${col.getSize()}px` }\r\n : hasResizeWidths()\r\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\r\n : scrollXColumnWidths()\r\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\r\n : colsWithExplicitSize().has(col.id)\r\n ? { width: `${col.getSize()}px` }\r\n : {}),\r\n }}\r\n />\r\n );\r\n }}\r\n </For>\r\n </colgroup>\r\n </Show>\r\n <thead\r\n class={cn(\r\n p.class?.thead,\r\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\r\n )}\r\n >\r\n <For each={table.getHeaderGroups()}>\r\n {(headerGroup, groupIndex) => {\r\n const totalRows = table.getHeaderGroups().length;\r\n\r\n const earlyRenderedCols = new Set(\r\n table\r\n .getHeaderGroups()\r\n .slice(0, groupIndex())\r\n .flatMap(g =>\r\n g.headers\r\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\r\n .map(h => h.column.id),\r\n ),\r\n );\r\n return (\r\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\r\n <For each={headerGroup.headers}>\r\n {header => {\r\n if (earlyRenderedCols.has(header.column.id)) return null;\r\n\r\n const isEarlyLeaf =\r\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\r\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\r\n\r\n if (header.isPlaceholder && !isEarlyLeaf) return null;\r\n const headerSpan =\r\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\r\n if (headerSpan.colSpan === 0) return null;\r\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\r\n const finalRowSpan =\r\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\r\n return (\r\n <th\r\n class={cn(\r\n p.class?.th,\r\n header.column.getCanSort() && 'tbe18',\r\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\r\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\r\n getFixedCellClass(header.column.id),\r\n )}\r\n colSpan={finalColSpan}\r\n rowSpan={finalRowSpan}\r\n data-column-id={header.column.id}\r\n style={getFixedCellStyle(header.column.id)}\r\n >\r\n <div\r\n class={cn(\r\n 'tbe15',\r\n (colsWithExplicitSize().has(header.column.id) ||\r\n hasResizeWidths()) &&\r\n header.column.id !== SELECTION_COLUMN_ID &&\r\n header.column.id !== EXPANDED_COLUMN_ID &&\r\n 'tbe16',\r\n header.column.id !== SELECTION_COLUMN_ID &&\r\n header.column.id !== EXPANDED_COLUMN_ID &&\r\n AlignHeaderClass[getColAlign(header.column.id)],\r\n )}\r\n >\r\n <span class=\"tbe17\">\r\n {flexRender(\r\n header.column.columnDef.header,\r\n header.getContext(),\r\n )}\r\n </span>\r\n <Show when={header.column.getCanSort()}>\r\n <span class=\"tbe19\">\r\n <Switch\r\n fallback={\r\n <ChevronsUpDown\r\n size={14}\r\n stroke-width={3}\r\n color=\"var(--color)\"\r\n />\r\n }\r\n >\r\n <Match when={header.column.getIsSorted() === 'asc'}>\r\n <ChevronUp\r\n size={14}\r\n stroke-width={3}\r\n color=\"var(--color)\"\r\n />\r\n </Match>\r\n <Match when={header.column.getIsSorted() === 'desc'}>\r\n <ChevronDown\r\n size={14}\r\n stroke-width={3}\r\n color=\"var(--color)\"\r\n />\r\n </Match>\r\n </Switch>\r\n <Show\r\n when={\r\n header.column.getIsSorted() !== false &&\r\n (header.column.getSortIndex() ?? -1) >= 0 &&\r\n table.getState().sorting.length > 1\r\n }\r\n >\r\n <span class=\"tbe20\">\r\n {(header.column.getSortIndex() ?? 0) + 1}\r\n </span>\r\n </Show>\r\n </span>\r\n </Show>\r\n </div>\r\n </th>\r\n );\r\n }}\r\n </For>\r\n </tr>\r\n );\r\n }}\r\n </For>\r\n </thead>\r\n </table>\r\n </div>\r\n </Show>\r\n <div\r\n ref={el => (wrapperEl = el)}\r\n class={cn('tbe12', hasScroll() && 'tbe14')}\r\n style={{\r\n ...(scrollY() ? { 'max-height': scrollY() } : {}),\r\n }}\r\n >\r\n <table\r\n ref={el => {\r\n bodyTableEl = el;\r\n if (!hasScrollY()) tableEl = el;\r\n }}\r\n class={cn(\r\n 'tbe01',\r\n getTableClass(p),\r\n border()?.horizontal && 'tbe43',\r\n border()?.vertical && 'tbe44',\r\n useFixedLayout() && 'table-fixed',\r\n p.class?.table,\r\n )}\r\n style={{\r\n ...(resizeTableWidth()\r\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\r\n : scrollXTable()\r\n ? { 'min-width': scrollXTable()! }\r\n : {}),\r\n }}\r\n onClick={handleTableClick}\r\n >\r\n <Show when={useFixedLayout()}>\r\n <colgroup>\r\n <For each={table.getAllLeafColumns()}>\r\n {col => {\r\n const isNonResizable = () =>\r\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\r\n return (\r\n <col\r\n style={{\r\n ...(isNonResizable()\r\n ? { width: `${col.getSize()}px` }\r\n : hasResizeWidths()\r\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\r\n : scrollXColumnWidths()\r\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\r\n : colsWithExplicitSize().has(col.id)\r\n ? { width: `${col.getSize()}px` }\r\n : {}),\r\n }}\r\n />\r\n );\r\n }}\r\n </For>\r\n </colgroup>\r\n </Show>\r\n\r\n <Show when={!hasScrollY() && p.showHeader}>\r\n <thead\r\n class={cn(\r\n p.class?.thead,\r\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\r\n )}\r\n >\r\n <For each={table.getHeaderGroups()}>\r\n {(headerGroup, groupIndex) => {\r\n const totalRows = table.getHeaderGroups().length;\r\n const earlyRenderedCols = new Set(\r\n table\r\n .getHeaderGroups()\r\n .slice(0, groupIndex())\r\n .flatMap(g =>\r\n g.headers\r\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\r\n .map(h => h.column.id),\r\n ),\r\n );\r\n return (\r\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\r\n <For each={headerGroup.headers}>\r\n {header => {\r\n if (earlyRenderedCols.has(header.column.id)) return null;\r\n const isEarlyLeaf =\r\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\r\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\r\n if (header.isPlaceholder && !isEarlyLeaf) return null;\r\n const headerSpan =\r\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\r\n if (headerSpan.colSpan === 0) return null;\r\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\r\n const finalRowSpan =\r\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\r\n return (\r\n <th\r\n class={cn(\r\n p.class?.th,\r\n header.column.getCanSort() && 'tbe18',\r\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\r\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\r\n getFixedCellClass(header.column.id),\r\n )}\r\n colSpan={finalColSpan}\r\n rowSpan={finalRowSpan}\r\n data-column-id={header.column.id}\r\n style={getFixedCellStyle(header.column.id)}\r\n >\r\n <div\r\n class={cn(\r\n 'tbe15',\r\n (colsWithExplicitSize().has(header.column.id) ||\r\n hasResizeWidths()) &&\r\n header.column.id !== SELECTION_COLUMN_ID &&\r\n header.column.id !== EXPANDED_COLUMN_ID &&\r\n 'tbe16',\r\n header.column.id !== SELECTION_COLUMN_ID &&\r\n header.column.id !== EXPANDED_COLUMN_ID &&\r\n AlignHeaderClass[getColAlign(header.column.id)],\r\n )}\r\n >\r\n <span class=\"tbe17\">\r\n {flexRender(\r\n header.column.columnDef.header,\r\n header.getContext(),\r\n )}\r\n </span>\r\n <Show when={header.column.getCanSort()}>\r\n <span class=\"tbe19\">\r\n <Switch\r\n fallback={\r\n <ChevronsUpDown\r\n size={14}\r\n stroke-width={3}\r\n color=\"var(--color)\"\r\n />\r\n }\r\n >\r\n <Match when={header.column.getIsSorted() === 'asc'}>\r\n <ChevronUp\r\n size={14}\r\n stroke-width={3}\r\n color=\"var(--color)\"\r\n />\r\n </Match>\r\n <Match when={header.column.getIsSorted() === 'desc'}>\r\n <ChevronDown\r\n size={14}\r\n stroke-width={3}\r\n color=\"var(--color)\"\r\n />\r\n </Match>\r\n </Switch>\r\n\r\n <Show\r\n when={\r\n header.column.getIsSorted() !== false &&\r\n (header.column.getSortIndex() ?? -1) >= 0 &&\r\n table.getState().sorting.length > 1\r\n }\r\n >\r\n <span class=\"tbe20\">\r\n {(header.column.getSortIndex() ?? 0) + 1}\r\n </span>\r\n </Show>\r\n </span>\r\n </Show>\r\n </div>\r\n </th>\r\n );\r\n }}\r\n </For>\r\n </tr>\r\n );\r\n }}\r\n </For>\r\n </thead>\r\n </Show>\r\n\r\n <Show\r\n when={isVirtual() && !isEmpty()}\r\n fallback={\r\n <tbody id={tbodyId} class={cn(p.class?.tbody)}>\r\n <Show\r\n when={!isEmpty()}\r\n fallback={\r\n <tr>\r\n <td\r\n colSpan={table.getAllColumns().length}\r\n class={cn('tbe45', p.class?.empty)}\r\n >\r\n {p.emptyContent ?? 'No data'}\r\n </td>\r\n </tr>\r\n }\r\n >\r\n <For each={table.getRowModel().rows}>\r\n {(row, rowIndex) => {\r\n const expanded = () => isRowExpanded(row.id);\r\n const opts = expandedOptions();\r\n\r\n return (\r\n <>\r\n <tr\r\n class={cn(\r\n p.class?.tr,\r\n p.class?.bodyRow,\r\n row.getIsSelected() && 'tbe27',\r\n expanded() && 'tbe28',\r\n rowIndex() % 2 === 0 ? 'tbe29' : 'tbe30',\r\n )}\r\n data-row-id={row.id}\r\n >\r\n <For each={row.getVisibleCells()}>\r\n {cell => {\r\n const isSpecial =\r\n cell.column.id === SELECTION_COLUMN_ID ||\r\n cell.column.id === EXPANDED_COLUMN_ID;\r\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\r\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\r\n const span: TableCellSpanResult = resolveBodySpan(\r\n cell,\r\n rowIndex(),\r\n );\r\n if (span.colSpan === 0 || span.rowSpan === 0) return null;\r\n return (\r\n <td\r\n class={cn(\r\n p.class?.td,\r\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\r\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\r\n getFixedCellClass(cell.column.id),\r\n hasTooltip && 'relative',\r\n !isSpecial && AlignTdStyle[align],\r\n )}\r\n style={{\r\n ...getFixedCellStyle(cell.column.id),\r\n }}\r\n colSpan={span.colSpan}\r\n rowSpan={span.rowSpan}\r\n >\r\n <Show\r\n when={\r\n (colsWithExplicitSize().has(cell.column.id) ||\r\n hasResizeWidths()) &&\r\n !isSpecial\r\n }\r\n fallback={wrapCellContent(\r\n cell.column.id,\r\n cell.getValue(),\r\n flexRender(cell.column.columnDef.cell, cell.getContext()),\r\n )}\r\n >\r\n <div class={cn('tbe21', AlignCellClass[align])}>\r\n {wrapCellContent(\r\n cell.column.id,\r\n cell.getValue(),\r\n flexRender(\r\n cell.column.columnDef.cell,\r\n cell.getContext(),\r\n ),\r\n )}\r\n </div>\r\n </Show>\r\n </td>\r\n );\r\n }}\r\n </For>\r\n </tr>\r\n <Show when={hasExpandableRows() && expanded()}>\r\n <tr class=\"tbe31\">\r\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\r\n {opts!.expandedRowRender(row.original, rowIndex(), 0, true)}\r\n </td>\r\n </tr>\r\n </Show>\r\n </>\r\n );\r\n }}\r\n </For>\r\n </Show>\r\n </tbody>\r\n }\r\n >\r\n <Show\r\n when={!isSortingLoading()}\r\n fallback={\r\n <tbody>\r\n <tr>\r\n <td\r\n colSpan={table.getAllColumns().length}\r\n class=\"border-none p-0\"\r\n style={{\r\n height: scrollY() ?? '200px',\r\n }}\r\n >\r\n <div class=\"flex h-full items-center justify-center gap-2 opacity-60\">\r\n <span class=\"text-base\">Sorting</span>\r\n <span class=\"loading loading-dots loading-sm text-base-content\" />\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n >\r\n <tbody id={tbodyId} class={p.class?.tbody}>\r\n <Show when={virtualTopPadding() > 0}>\r\n <tr>\r\n <td\r\n colSpan={table.getAllColumns().length}\r\n class=\"border-none p-0\"\r\n style={{ height: `${virtualTopPadding()}px` }}\r\n />\r\n </tr>\r\n </Show>\r\n\r\n <For each={rowVirtualizer.getVirtualItems()}>\r\n {virtualRow => {\r\n const rows = table.getRowModel().rows;\r\n const row = rows[virtualRow.index];\r\n const rowIndex = virtualRow.index;\r\n if (!row) return null;\r\n\r\n const expanded = () => isRowExpanded(row.id);\r\n const opts = expandedOptions();\r\n\r\n let trEl: HTMLTableRowElement | undefined;\r\n\r\n createEffect(\r\n on(\r\n expanded,\r\n () => {\r\n queueMicrotask(() => {\r\n if (trEl?.isConnected && trEl.hasAttribute('data-index'))\r\n rowVirtualizer.measureElement(trEl);\r\n });\r\n },\r\n { defer: true },\r\n ),\r\n );\r\n\r\n return (\r\n <>\r\n <tr\r\n ref={el => {\r\n trEl = el;\r\n if (el)\r\n queueMicrotask(() => {\r\n if (el.isConnected) rowVirtualizer.measureElement(el);\r\n });\r\n }}\r\n data-index={virtualRow.index}\r\n class={cn(\r\n p.class?.tr,\r\n p.class?.bodyRow,\r\n row.getIsSelected() && 'tbe27',\r\n expanded() && 'tbe28',\r\n rowIndex % 2 === 0 ? 'tbe29' : 'tbe30',\r\n )}\r\n data-row-id={row.id}\r\n >\r\n <For each={row.getVisibleCells()}>\r\n {cell => {\r\n const isSpecial =\r\n cell.column.id === SELECTION_COLUMN_ID ||\r\n cell.column.id === EXPANDED_COLUMN_ID;\r\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\r\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\r\n return (\r\n <td\r\n class={cn(\r\n p.class?.td,\r\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\r\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\r\n getFixedCellClass(cell.column.id),\r\n hasTooltip && 'relative p-0',\r\n !isSpecial && AlignTdStyle[align],\r\n )}\r\n style={{\r\n ...getFixedCellStyle(cell.column.id),\r\n }}\r\n >\r\n <Show\r\n when={\r\n (colsWithExplicitSize().has(cell.column.id) ||\r\n hasResizeWidths()) &&\r\n !isSpecial\r\n }\r\n fallback={wrapCellContent(\r\n cell.column.id,\r\n cell.getValue(),\r\n flexRender(cell.column.columnDef.cell, cell.getContext()),\r\n )}\r\n >\r\n <div class={cn('tbe21', AlignCellClass[align])}>\r\n {wrapCellContent(\r\n cell.column.id,\r\n cell.getValue(),\r\n flexRender(cell.column.columnDef.cell, cell.getContext()),\r\n )}\r\n </div>\r\n </Show>\r\n </td>\r\n );\r\n }}\r\n </For>\r\n </tr>\r\n <Show when={hasExpandableRows() && expanded()}>\r\n <tr class=\"tbe31\">\r\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\r\n {opts!.expandedRowRender(row.original, rowIndex, 0, true)}\r\n </td>\r\n </tr>\r\n </Show>\r\n </>\r\n );\r\n }}\r\n </For>\r\n\r\n <Show when={virtualBottomPadding() > 0}>\r\n <tr>\r\n <td\r\n colSpan={table.getAllColumns().length}\r\n class=\"border-none p-0\"\r\n style={{ height: `${virtualBottomPadding()}px` }}\r\n />\r\n </tr>\r\n </Show>\r\n\r\n <Switch>\r\n <Match when={p.loadingMore === 'auto' && isFetchingMore()}>\r\n <tr>\r\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\r\n <div class=\"flex justify-center\">\r\n <span class=\"loading loading-dots loading-sm opacity-60\" />\r\n </div>\r\n </td>\r\n </tr>\r\n </Match>\r\n <Match when={p.loadingMore === 'manual'}>\r\n <tr>\r\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\r\n <div class=\"flex justify-center\">\r\n <Button\r\n variant={'default'}\r\n color={p.color}\r\n loading={isFetchingMore()}\r\n onClick={() => callGetVirtualData()}\r\n size={p.size}\r\n >\r\n Load more\r\n </Button>\r\n </div>\r\n </td>\r\n </tr>\r\n </Match>\r\n </Switch>\r\n </tbody>\r\n </Show>\r\n </Show>\r\n </table>\r\n </div>\r\n <Show when={resizable()}>\r\n <For each={handlePositions()}>\r\n {pos => (\r\n <div\r\n class={cn('tbe37', resizingIndex() === pos.colIndex && 'tbe38')}\r\n style={{\r\n left: `${pos.left}px`,\r\n top: `${pos.top}px`,\r\n height: `${pos.height}px`,\r\n }}\r\n onMouseDown={e => handleResizeStart(pos.colIndex, e)}\r\n onDblClick={e => handleResizeDblClick(pos.colIndex, e)}\r\n />\r\n )}\r\n </For>\r\n </Show>\r\n <Show when={p.footerPanel}>\r\n <div class={cn('tbe40', border()?.outer && 'border-c3/50 border-t', p.class?.tfoot)}>\r\n {p.footerPanel?.()}\r\n </div>\r\n </Show>\r\n </div>\r\n <Show\r\n when={\r\n p.paginationProps !== undefined &&\r\n !p.virtual &&\r\n (p.paginationProps?.position ?? 'end') === 'end'\r\n }\r\n >\r\n <Pagination\r\n {...p.paginationProps}\r\n onChange={(page, size) => {\r\n table.setPageIndex(page - 1);\r\n if (size !== table.getState().pagination.pageSize) {\r\n table.setPageSize(size);\r\n }\r\n p.paginationProps?.onChange?.(page, size);\r\n }}\r\n />\r\n </Show>\r\n </div>\r\n );\r\n}\r\n\r\nTable.Selection = function <TData = any>(\r\n options?: TableSelectionOptions<TData>,\r\n): ColumnDef<TData, any> {\r\n const opts: TableSelectionOptions<TData> = {\r\n type: 'checkbox',\r\n hideSelectAll: false,\r\n width: 32,\r\n ...options,\r\n };\r\n\r\n return {\r\n id: SELECTION_COLUMN_ID,\r\n size: typeof opts.width === 'number' ? opts.width : 48,\r\n enableSorting: false,\r\n enableResizing: false,\r\n meta: {\r\n _selection: opts,\r\n },\r\n header: ({ table }) => {\r\n if (opts.title !== undefined) return opts.title;\r\n if (opts.type === 'radio' || opts.hideSelectAll) return null;\r\n\r\n return (\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox checkbox-xs checkbox-primary mx-auto\"\r\n checked={table.getIsAllRowsSelected()}\r\n ref={el => {\r\n createEffect(function syncIndeterminate() {\r\n el.indeterminate = table.getIsSomeRowsSelected();\r\n });\r\n }}\r\n onChange={table.getToggleAllRowsSelectedHandler()}\r\n />\r\n );\r\n },\r\n cell: ({ row }) => {\r\n const index = row.index;\r\n const checked = () => row.getIsSelected();\r\n const record = row.original;\r\n\r\n if (opts.renderCell) {\r\n return (\r\n <span\r\n onClick={e => {\r\n e.stopPropagation();\r\n row.toggleSelected();\r\n }}\r\n class=\"cursor-pointer\"\r\n >\r\n {opts.renderCell(checked(), record, index)}\r\n </span>\r\n );\r\n }\r\n\r\n if (opts.type === 'radio') {\r\n return (\r\n <input\r\n type=\"radio\"\r\n class=\"radio radio-xs radio-primary\"\r\n checked={checked()}\r\n disabled={!row.getCanSelect()}\r\n onChange={row.getToggleSelectedHandler()}\r\n onClick={e => e.stopPropagation()}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox checkbox-xs checkbox-primary\"\r\n checked={checked()}\r\n disabled={!row.getCanSelect()}\r\n onChange={row.getToggleSelectedHandler()}\r\n onClick={e => e.stopPropagation()}\r\n />\r\n );\r\n },\r\n };\r\n};\r\n\r\nTable.Expanded = function <TData = any>(\r\n options: TableExpandedOptions<TData>,\r\n): ColumnDef<TData, any> {\r\n options = mergeProps(\r\n {\r\n width: 48,\r\n },\r\n options,\r\n );\r\n\r\n return {\r\n id: EXPANDED_COLUMN_ID,\r\n size: options.width,\r\n enableSorting: false,\r\n enableResizing: false,\r\n meta: {\r\n _expanded: options,\r\n },\r\n header: () => null,\r\n cell: ({ row, table }) => {\r\n const index = row.index;\r\n const record = row.original;\r\n const api = table.options.meta?._expandApi;\r\n const expandable = options.rowExpandable ? options.rowExpandable(record, index) : true;\r\n\r\n if (!expandable || !api) return null;\r\n\r\n const expanded = () => api.isRowExpanded(row.id);\r\n\r\n return (\r\n <span\r\n class=\"tbe24 cursor-pointer\"\r\n onClick={e => {\r\n e.stopPropagation();\r\n api.toggleRowExpanded(row.id, record);\r\n }}\r\n >\r\n <Show\r\n when={options.expandIcon}\r\n fallback={\r\n <ChevronRight size={16} stroke-width={2} class={cn('tbe25', expanded() && 'tbe26')} />\r\n }\r\n >\r\n {options.expandIcon!(expanded())}\r\n </Show>\r\n </span>\r\n );\r\n },\r\n };\r\n};\r\n\r\nexport { Table };\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","names":["cn","getColor","ColumnDef","createSolidTable","flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","createVirtualizer","ChevronDown","ChevronRight","ChevronsUpDown","ChevronUp","createEffect","createMemo","createSignal","createUniqueId","For","Match","mergeProps","on","onCleanup","onMount","Show","Switch","JSX","Button","Pagination","Tooltip","TableBorder","TableCellSpanResult","TableColumnFixed","TableExpandedOptions","TableProps","TableScroll","TableSelectionOptions","TableStyleProps","TableVirtualOptions","TableZebra","normalizeBorder","border","undefined","outer","horizontal","vertical","normalizeZebra","zebra","cols","rows","TableSizeClass","xs","sm","md","lg","xl","const","getTableClass","opts","classes","push","size","join","FixedInfo","fixed","offset","isLastStart","isFirstEnd","computeFixedColumnInfo","columns","id","width","Map","result","leftOffset","lastStartId","col","set","rightOffset","firstEndId","i","length","info","get","toCssValue","val","SELECTION_COLUMN_ID","processSelectionColumns","TData","selectionOptions","foundFirst","processed","filter","meta","_selection","EXPANDED_COLUMN_ID","extractExpandedOptions","_expanded","Table","rawProps","p","enableSorting","enableColumnFilters","resizable","showHeader","color","rounded","processedColumns","finalColumns","expandedOptions","colsWithExplicitSize","Set","map","accessorKey","resolvedEnableRowSelection","enableRowSelection","enableMultiRowSelection","type","hasExpandableRows","internalExpandedKeys","setInternalExpandedKeys","defaultExpandedRowKeys","expandAllApplied","expandedKeys","expandedRowKeys","defaultExpandAllRows","allKeys","table","getRowModel","row","isRowExpanded","rowId","includes","toggleRowExpanded","record","currentKeys","isExpanded","newKeys","k","onExpand","onExpandedRowsChange","internalData","setInternalData","data","defer","getVirtualData","paginationProps","isMultiSortEvent","getRowId","_expandApi","state","sorting","columnFilters","globalFilter","rowSelection","columnVisibility","pagination","options","onSortingChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange","onColumnVisibilityChange","_","rest","isEmpty","hasFixedColumns","some","scrollX","scroll","x","scrollXWrapper","scrollXTable","sxWidths","scrollXColumnWidths","getAllLeafColumns","total","reduce","sum","getSize","columnWidths","scrollY","y","hasScroll","hasScrollX","hasScrollY","normalizedVirtual","v","virtual","itemSize","overscan","isVirtual","wrapperEl","HTMLDivElement","headerWrapperEl","rowVirtualizer","HTMLTableRowElement","count","getScrollElement","estimateSize","measureElement","el","height","getBoundingClientRect","next","nextElementSibling","classList","contains","virtualTopPadding","items","getVirtualItems","start","virtualBottomPadding","totalSize","getTotalSize","end","isSortingLoading","setIsSortingLoading","_sortTimer","ReturnType","setTimeout","clearSortTimer","clearTimeout","triggerVirtualSort","e","MouseEvent","columnId","column","getColumn","getCanSort","t0","Date","now","getToggleSortingHandler","elapsed","delay","Math","max","scrollTop","_autoLoadChain","Promise","resolve","isFetchingMore","setIsFetchingMore","callGetVirtualData","then","newRows","prev","finally","autoFillViewport","loadingMore","queueMicrotask","isConnected","scrollHeight","clientHeight","notifyTableReady","onTableReady","resolveBodySpan","cell","Cell","rowIndex","perCol","columnDef","onCell","tableEl","HTMLTableElement","bodyTableEl","tbodyId","setColumnWidths","Record","resizingIndex","setResizingIndex","handlePositions","setHandlePositions","left","top","colIndex","dataColumnSelector","getDataColumns","colMinWidth","minWidth","min","snapshotColumnWidths","ths","querySelectorAll","HTMLTableCellElement","widths","forEach","allThsTotal","Array","from","th","excess","lastColId","updateHandlePositions","handleTop","handleHeight","hdrRect","bodyRect","tableRect","positions","enableResizing","thRect","right","handleResizeStart","preventDefault","stopPropagation","lastColIndex","isLastCol","colId","startWidths","startX","clientX","startWidth","onMouseMove","ev","totalWidth","Object","values","a","b","otherCols","slice","otherMinTotal","rawDelta","newLastWidth","remainingWidth","perColWidth","newWidths","nextColIndex","nextColId","nextColStartWidth","nextColMinWidth","minDelta","maxDelta","clampedDelta","onMouseUp","document","removeEventListener","documentElement","remove","addEventListener","add","handleResizeDblClick","currentWidths","keys","equalWidth","w1","w2","half","newW1","newW2","hasResizeWidths","resizeTableWidth","declaredCols","has","undeclaredCols","declaredTotal","numUndeclared","undeclaredWidth","remaining","useFixedLayout","measuredWidths","setMeasuredWidths","measureColumnWidths","offsetWidth","fixedColumnInfo","colData","getFixedCellStyle","getFixedCellClass","AlignHeaderClass","center","AlignCellClass","AlignTdStyle","getColAlign","align","hasCellTooltip","tooltip","wrapCellContent","cellValue","content","Element","tooltipOpts","rawContent","resolvedContent","tooltipProps","containerId","position","class","root","_$createComponent","_$mergeProps","children","handleTableClick","target","HTMLElement","isOwnElement","t","closest","dataset","selectionTd","tr","getRow","getCanSelect","toggleSelected","expandTd","expandable","rowExpandable","original","index","onRowClick","window","passive","capture","removeWindowScrollListener","observer","ResizeObserver","observe","disconnectResizeObserver","disconnect","handleScroll","threshold","removeScrollListener","syncHeaderScroll","scrollLeft","_el$","_tmpl$9","_el$2","firstChild","_el$8","_el$9","_$insert","when","_$memo","onChange","page","setPageIndex","getState","pageSize","setPageSize","headerPanel","_el$3","_tmpl$","_$effect","_$className","_el$4","_tmpl$3","_el$5","_el$7","_$use","$$click","_ref$","_el$6","_tmpl$2","each","isNonResizable","_el$21","_tmpl$0","_$p","_$style","getHeaderGroups","headerGroup","groupIndex","totalRows","earlyRenderedCols","flatMap","g","headers","h","isPlaceholder","getLeafColumns","_el$22","_tmpl$1","header","isEarlyLeaf","rowSpanVal","headerSpan","onHeaderCell","colSpan","finalColSpan","finalRowSpan","rowSpan","_el$23","_tmpl$12","_el$24","_el$25","_$setAttribute","getContext","_el$26","_tmpl$11","fallback","getIsSorted","getSortIndex","_el$27","_tmpl$10","_p$","_v$14","_v$15","_v$16","_v$17","o","headerRow","_v$","_v$2","_v$3","_v$4","thead","_el$0","_el$28","_el$1","_tmpl$4","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_v$18","_v$19","_v$20","_v$21","_el$35","_tmpl$8","_el$36","_tmpl$13","_el$37","emptyContent","_v$22","getAllColumns","_v$23","empty","expanded","_el$38","getVisibleCells","isSpecial","hasTooltip","span","_el$41","_tmpl$15","getValue","_el$42","_v$26","td","_v$27","_v$28","_v$29","_v$24","bodyRow","getIsSelected","_v$25","_el$39","_tmpl$14","_el$40","expandedRowRender","tbody","_el$43","_tmpl$16","_el$44","_el$45","_v$30","_v$31","_$setStyleProperty","_el$10","_el$11","_tmpl$5","_el$12","_v$5","_v$6","virtualRow","trEl","hasAttribute","_el$46","_el$49","_el$50","_v$35","_v$36","_v$32","_v$33","_v$34","_el$47","_el$48","_el$13","_el$14","_v$7","_v$8","_el$15","_tmpl$6","_el$16","_el$17","_tmpl$7","_el$18","_el$19","variant","loading","onClick","pos","_el$51","$$dblclick","$$mousedown","_v$37","_v$38","_v$39","_v$40","footerPanel","_el$20","tfoot","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","n","s","Selection","hideSelectAll","title","_el$52","_tmpl$17","_$addEventListener","getToggleAllRowsSelectedHandler","syncIndeterminate","indeterminate","getIsSomeRowsSelected","checked","getIsAllRowsSelected","renderCell","_el$53","_tmpl$18","_el$54","_tmpl$19","getToggleSelectedHandler","disabled","_el$55","_tmpl$20","Expanded","api","_el$56","_tmpl$21","expandIcon","_$delegateEvents"],"sources":["../../../src/components/table/table.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\nimport { getColor } from '@/utils/helper';\nimport type { ColumnDef } from '@tanstack/solid-table';\nimport {\n createSolidTable,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n} from '@tanstack/solid-table';\nimport { createVirtualizer } from '@tanstack/solid-virtual';\nimport ChevronDown from 'lucide-solid/icons/chevron-down';\nimport ChevronRight from 'lucide-solid/icons/chevron-right';\nimport ChevronsUpDown from 'lucide-solid/icons/chevrons-up-down';\nimport ChevronUp from 'lucide-solid/icons/chevron-up';\nimport {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n Match,\n mergeProps,\n on,\n onCleanup,\n onMount,\n Show,\n Switch,\n type JSX,\n} from 'solid-js';\nimport { Button } from '../button';\nimport { Pagination } from '../pagination';\nimport { Tooltip } from '../tooltip';\nimport type {\n TableBorder,\n TableCellSpanResult,\n TableColumnFixed,\n TableExpandedOptions,\n TableProps,\n TableScroll,\n TableSelectionOptions,\n TableStyleProps,\n TableVirtualOptions,\n TableZebra,\n} from './table.types';\n\nfunction normalizeBorder(border: TableBorder | boolean | undefined): TableBorder | undefined {\n if (border === undefined) return undefined;\n if (border === true) return { outer: true, horizontal: true, vertical: true };\n if (border === false) return { outer: false, horizontal: false, vertical: false };\n return border;\n}\n\nfunction normalizeZebra(zebra: TableZebra | boolean | undefined): TableZebra {\n switch (zebra) {\n case true:\n return { cols: false, rows: true };\n case false:\n case undefined:\n return { cols: false, rows: false };\n default:\n return zebra;\n }\n}\n\nconst TableSizeClass = {\n xs: 'tbe02',\n sm: 'tbe03',\n md: 'tbe04',\n lg: 'tbe05',\n xl: 'tbe06',\n} as const;\n\nfunction getTableClass(opts: TableStyleProps): string {\n const classes: string[] = [];\n const zebra = normalizeZebra(opts.zebra);\n if (zebra.rows) classes.push('tbe07');\n if (zebra.cols) classes.push('tbe08');\n if (opts.size) classes.push(TableSizeClass[opts.size]);\n return classes.join(' ');\n}\n\ntype FixedInfo = {\n fixed: TableColumnFixed;\n offset: number;\n isLastStart: boolean;\n isFirstEnd: boolean;\n};\n\nfunction computeFixedColumnInfo(\n columns: { id: string; fixed?: TableColumnFixed; width: number }[],\n): Map<string, FixedInfo> {\n const result = new Map<string, FixedInfo>();\n\n let leftOffset = 0;\n let lastStartId: string | null = null;\n for (const col of columns) {\n const fixed = col.fixed;\n if (fixed === true || fixed === 'start') {\n result.set(col.id, {\n fixed: 'start',\n offset: leftOffset,\n isLastStart: false,\n isFirstEnd: false,\n });\n leftOffset += col.width;\n lastStartId = col.id;\n }\n }\n\n let rightOffset = 0;\n let firstEndId: string | null = null;\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n const fixed = col.fixed;\n if (fixed === 'end') {\n result.set(col.id, {\n fixed: 'end',\n offset: rightOffset,\n isLastStart: false,\n isFirstEnd: false,\n });\n rightOffset += col.width;\n if (!firstEndId) firstEndId = col.id;\n }\n }\n\n if (lastStartId) {\n const info = result.get(lastStartId)!;\n info.isLastStart = true;\n }\n if (firstEndId) {\n const info = result.get(firstEndId)!;\n info.isFirstEnd = true;\n }\n\n return result;\n}\n\nfunction toCssValue(val: string | number): string {\n return typeof val === 'number' ? `${val}px` : val;\n}\n\nconst SELECTION_COLUMN_ID = '__selection__';\n\nfunction processSelectionColumns<TData>(columns: ColumnDef<TData, any>[]): {\n columns: ColumnDef<TData, any>[];\n selectionOptions: TableSelectionOptions<TData> | undefined;\n} {\n let selectionOptions: TableSelectionOptions<TData> | undefined;\n let foundFirst = false;\n\n const processed = columns.filter(col => {\n const meta = col.meta as any;\n if (meta?._selection) {\n if (foundFirst) return false;\n foundFirst = true;\n selectionOptions = meta._selection;\n return true;\n }\n return true;\n });\n\n return { columns: processed, selectionOptions };\n}\n\nconst EXPANDED_COLUMN_ID = '__expanded__';\n\nfunction extractExpandedOptions<TData>(\n columns: ColumnDef<TData, any>[],\n): TableExpandedOptions<TData> | undefined {\n for (const col of columns) {\n const meta = col.meta as any;\n if (meta?._expanded) return meta._expanded;\n }\n return undefined;\n}\n\nfunction Table<TData>(rawProps: TableProps<TData>) {\n const p = mergeProps(\n {\n zebra: { rows: true } as TableZebra | boolean,\n size: 'md' as const,\n enableSorting: false,\n enableColumnFilters: false,\n resizable: true,\n showHeader: true,\n color: 'info' as const,\n rounded: 'rounded-sm',\n } as TableProps<TData>,\n rawProps,\n );\n\n const processedColumns = createMemo(() => processSelectionColumns<TData>(p.columns));\n const selectionOptions = () => processedColumns().selectionOptions;\n const finalColumns = () => processedColumns().columns;\n\n const expandedOptions = createMemo(() => extractExpandedOptions<TData>(p.columns));\n\n const colsWithExplicitSize = createMemo(\n () =>\n new Set(\n p.columns\n .filter(col => 'size' in col)\n .map(col => ('accessorKey' in col ? col.accessorKey : 'id' in col ? col.id : undefined)),\n ),\n );\n\n const resolvedEnableRowSelection = () => {\n if (p.enableRowSelection !== undefined) return p.enableRowSelection;\n return !!selectionOptions();\n };\n\n const enableMultiRowSelection = () => {\n const opts = selectionOptions();\n if (!opts) return true;\n return opts.type !== 'radio';\n };\n\n const hasExpandableRows = () => !!expandedOptions();\n\n const [internalExpandedKeys, setInternalExpandedKeys] = createSignal<string[]>(\n p.defaultExpandedRowKeys ?? [],\n );\n\n let expandAllApplied = false;\n\n const expandedKeys = (): string[] => {\n if (!hasExpandableRows()) return [];\n\n if (p.expandedRowKeys !== undefined) return p.expandedRowKeys;\n\n if (p.defaultExpandAllRows && !expandAllApplied) {\n expandAllApplied = true;\n const allKeys = table.getRowModel().rows.map(row => row.id);\n setInternalExpandedKeys(allKeys);\n return allKeys;\n }\n\n return internalExpandedKeys();\n };\n\n const isRowExpanded = (rowId: string) => expandedKeys().includes(rowId);\n\n function toggleRowExpanded(rowId: string, record: TData) {\n const currentKeys = expandedKeys();\n const isExpanded = currentKeys.includes(rowId);\n const newKeys = isExpanded ? currentKeys.filter(k => k !== rowId) : [...currentKeys, rowId];\n\n if (p.expandedRowKeys === undefined) {\n setInternalExpandedKeys(newKeys);\n }\n\n p.onExpand?.(!isExpanded, record);\n p.onExpandedRowsChange?.(newKeys);\n }\n\n const [internalData, setInternalData] = createSignal<TData[]>(p.data as TData[]);\n\n createEffect(\n on(\n () => p.data,\n data => setInternalData(data as TData[]),\n { defer: true },\n ),\n );\n\n const table = createSolidTable<TData>({\n get data() {\n return p.getVirtualData ? internalData() : p.data;\n },\n get columns() {\n return finalColumns();\n },\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n ...(p.enableColumnFilters && { getFilteredRowModel: getFilteredRowModel() }),\n\n ...(p.paginationProps !== undefined && {\n getPaginationRowModel: getPaginationRowModel(),\n }),\n get enableSorting() {\n return p.enableSorting;\n },\n\n isMultiSortEvent: () => true,\n get enableColumnFilters() {\n return p.enableColumnFilters;\n },\n get enableRowSelection() {\n return resolvedEnableRowSelection();\n },\n get enableMultiRowSelection() {\n return enableMultiRowSelection();\n },\n ...(p.getRowId && { getRowId: p.getRowId }),\n meta: {\n _expandApi: {\n isRowExpanded,\n toggleRowExpanded,\n },\n },\n state: {\n get sorting() {\n return p.sorting;\n },\n get columnFilters() {\n return p.columnFilters;\n },\n get globalFilter() {\n return p.globalFilter;\n },\n get rowSelection() {\n return p.rowSelection;\n },\n get columnVisibility() {\n return p.columnVisibility;\n },\n get pagination() {\n return p.pagination;\n },\n ...(p.options?.state || {}),\n },\n ...(p.onSortingChange && { onSortingChange: p.onSortingChange }),\n ...(p.onColumnFiltersChange && { onColumnFiltersChange: p.onColumnFiltersChange }),\n ...(p.onGlobalFilterChange && { onGlobalFilterChange: p.onGlobalFilterChange }),\n ...(p.onRowSelectionChange && { onRowSelectionChange: p.onRowSelectionChange }),\n ...(p.onColumnVisibilityChange && { onColumnVisibilityChange: p.onColumnVisibilityChange }),\n ...(p.options &&\n (() => {\n const { state: _, ...rest } = p.options!;\n return rest;\n })()),\n });\n const border = () => normalizeBorder(p.border);\n\n const isEmpty = () => table.getRowModel().rows.length === 0;\n\n const hasFixedColumns = () => p.columns.some(col => col.meta?.fixed);\n\n const scrollX = () => (p.scroll as TableScroll | undefined)?.x;\n\n const scrollXWrapper = () => {\n const x = scrollX();\n if (x === undefined) return undefined;\n if (x === true || x === 'max-content') return undefined;\n return toCssValue(x);\n };\n\n const scrollXTable = () => {\n const x = scrollX();\n if (x === undefined) return undefined;\n if (x === 'max-content') return 'max-content';\n\n const sxWidths = scrollXColumnWidths();\n const cols = table.getAllLeafColumns();\n const total = cols.reduce((sum, col) => {\n if (col.id === SELECTION_COLUMN_ID || col.id === EXPANDED_COLUMN_ID) {\n return sum + col.getSize();\n }\n if (sxWidths) return sum + (sxWidths[col.id] ?? 100);\n return sum + (columnWidths()[col.id] ?? col.getSize());\n }, 0);\n return `${total}px`;\n };\n\n const scrollY = () => {\n const y = p.scroll?.y;\n if (y === undefined) return undefined;\n return toCssValue(y);\n };\n\n const hasScroll = () => scrollX() !== undefined || p.scroll?.y !== undefined;\n const hasScrollX = () => scrollX() !== undefined;\n const hasScrollY = () => p.scroll?.y !== undefined;\n\n const normalizedVirtual = createMemo((): TableVirtualOptions | null => {\n const v = p.virtual;\n if (!v) return null;\n if (v === true) return { itemSize: 40, overscan: 5 };\n return { itemSize: v.itemSize ?? 40, overscan: v.overscan ?? 5 };\n });\n\n const isVirtual = () => !!normalizedVirtual();\n\n let wrapperEl!: HTMLDivElement;\n let headerWrapperEl!: HTMLDivElement;\n\n const rowVirtualizer = createVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n get count() {\n return isVirtual() ? table.getRowModel().rows.length : 0;\n },\n getScrollElement: () => (isVirtual() ? wrapperEl : null),\n estimateSize: () => normalizedVirtual()?.itemSize ?? 40,\n get overscan() {\n return normalizedVirtual()?.overscan ?? 5;\n },\n\n measureElement: el => {\n let height = el.getBoundingClientRect().height;\n const next = el.nextElementSibling;\n if (next?.classList.contains('tbe31')) {\n height += next.getBoundingClientRect().height;\n }\n return height;\n },\n });\n\n const virtualTopPadding = createMemo(() => {\n if (!isVirtual()) return 0;\n const items = rowVirtualizer.getVirtualItems();\n return items.length > 0 ? (items[0]?.start ?? 0) : 0;\n });\n\n const virtualBottomPadding = createMemo(() => {\n if (!isVirtual()) return 0;\n const items = rowVirtualizer.getVirtualItems();\n const totalSize = rowVirtualizer.getTotalSize();\n return items.length > 0 ? totalSize - (items[items.length - 1]?.end ?? 0) : 0;\n });\n\n const [isSortingLoading, setIsSortingLoading] = createSignal(false);\n let _sortTimer: ReturnType<typeof setTimeout> | null = null;\n\n onCleanup(function clearSortTimer() {\n if (_sortTimer !== null) clearTimeout(_sortTimer);\n });\n\n function triggerVirtualSort(e: MouseEvent, columnId: string) {\n if (isSortingLoading()) return;\n const column = table.getColumn(columnId);\n if (!column?.getCanSort()) return;\n\n setIsSortingLoading(true);\n const t0 = Date.now();\n\n setTimeout(() => {\n column.getToggleSortingHandler()?.(e);\n\n const elapsed = Date.now() - t0;\n const delay = Math.max(0, 500 - elapsed);\n\n _sortTimer = setTimeout(() => {\n _sortTimer = null;\n setIsSortingLoading(false);\n\n if (wrapperEl) wrapperEl.scrollTop = 0;\n }, delay);\n }, 0);\n }\n\n let _autoLoadChain = Promise.resolve<void>(undefined);\n\n const [isFetchingMore, setIsFetchingMore] = createSignal(false);\n\n function callGetVirtualData() {\n if (!p.getVirtualData || isFetchingMore()) return;\n setIsFetchingMore(true);\n p.getVirtualData()\n .then(newRows => {\n setInternalData(prev => [...prev, ...newRows]);\n })\n .finally(() => {\n setIsFetchingMore(false);\n });\n }\n\n createEffect(function autoFillViewport() {\n if (!isVirtual() || p.loadingMore !== 'auto' || isFetchingMore()) return;\n\n _autoLoadChain = _autoLoadChain.then(\n () =>\n new Promise<void>(resolve => {\n queueMicrotask(() => {\n if (\n wrapperEl &&\n wrapperEl.isConnected &&\n p.getVirtualData &&\n p.loadingMore === 'auto' &&\n !isFetchingMore() &&\n wrapperEl.scrollHeight <= wrapperEl.clientHeight\n ) {\n callGetVirtualData();\n }\n resolve();\n });\n }),\n );\n });\n\n createEffect(function notifyTableReady() {\n p.onTableReady?.(table);\n });\n\n function resolveBodySpan(\n cell: import('@tanstack/solid-table').Cell<TData, unknown>,\n rowIndex: number,\n ): TableCellSpanResult {\n const perCol = cell.column.columnDef.meta?.onCell;\n if (perCol) return perCol(cell, rowIndex);\n return p.onCell?.(cell, rowIndex) ?? {};\n }\n\n let tableEl!: HTMLTableElement;\n let bodyTableEl!: HTMLTableElement;\n const tbodyId = createUniqueId();\n\n const [columnWidths, setColumnWidths] = createSignal<Record<string, number>>({});\n\n const [resizingIndex, setResizingIndex] = createSignal(-1);\n\n const [handlePositions, setHandlePositions] = createSignal<\n { left: number; top: number; height: number; colIndex: number }[]\n >([]);\n\n // When scroll.x is set, resizable is always disabled (types enforce this, but guard at runtime too)\n const resizable = createMemo(() => scrollX() === undefined && p.resizable !== false);\n\n const dataColumnSelector = 'thead tr:first-child th:not(.tbe23):not(.tbe22)';\n\n function getDataColumns() {\n return table\n .getAllLeafColumns()\n .filter(col => col.id !== EXPANDED_COLUMN_ID && col.id !== SELECTION_COLUMN_ID);\n }\n\n /** Effective minimum width: the smaller of the column's declared size and the meta minWidth (default 100). */\n function colMinWidth(col: {\n getSize(): number;\n columnDef: { meta?: { minWidth?: number } };\n }): number {\n return Math.min(col.getSize(), col.columnDef.meta?.minWidth ?? 100);\n }\n\n function snapshotColumnWidths(): Record<string, number> {\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n const widths: Record<string, number> = {};\n cols.forEach((col, i) => {\n if (ths[i]) {\n // Use getBoundingClientRect for sub-pixel precision — offsetWidth is an integer\n // and accumulated rounding can make the sum exceed the table width by 1-2px,\n // which triggers a spurious horizontal scrollbar when col widths are made explicit.\n widths[col.id] = ths[i].getBoundingClientRect().width;\n }\n });\n // Safety: trim any remaining excess (e.g. from non-data columns or float imprecision)\n // so the colgroup widths never exceed the table's own rendered width.\n const allThsTotal = Array.from(\n tableEl.querySelectorAll<HTMLTableCellElement>('thead tr:first-child th'),\n ).reduce((sum, th) => sum + th.getBoundingClientRect().width, 0);\n const excess = allThsTotal - tableEl.getBoundingClientRect().width;\n if (excess > 0 && cols.length > 0) {\n const lastColId = cols[cols.length - 1].id;\n if (widths[lastColId] !== undefined) {\n widths[lastColId] = Math.max(\n colMinWidth(cols[cols.length - 1]),\n widths[lastColId] - excess,\n );\n }\n }\n return widths;\n }\n\n function updateHandlePositions() {\n if (!tableEl) return;\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n\n let handleTop: number;\n let handleHeight: number;\n if (hasScrollY()) {\n const hdrRect = headerWrapperEl?.getBoundingClientRect();\n const bodyRect = wrapperEl?.getBoundingClientRect();\n handleTop = hdrRect?.top ?? 0;\n handleHeight = (hdrRect?.height ?? 0) + (bodyRect?.height ?? 0);\n } else {\n const tableRect = tableEl.getBoundingClientRect();\n handleTop = tableRect.top;\n handleHeight = tableRect.height;\n }\n\n const positions: { left: number; top: number; height: number; colIndex: number }[] = [];\n\n for (let i = 0; i < ths.length; i++) {\n const col = cols[i];\n if (!col || col.columnDef.enableResizing === false) continue;\n const thRect = ths[i].getBoundingClientRect();\n positions.push({\n left: thRect.right,\n top: handleTop,\n height: handleHeight,\n colIndex: i,\n });\n }\n\n setHandlePositions(positions);\n }\n\n function handleResizeStart(colIndex: number, e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const cols = getDataColumns();\n const lastColIndex = cols.length - 1;\n const isLastCol = colIndex === lastColIndex;\n const colId = cols[colIndex].id;\n const lastColId = cols[lastColIndex].id;\n\n const startWidths = snapshotColumnWidths();\n setColumnWidths(startWidths);\n\n const startX = e.clientX;\n const startWidth = startWidths[colId] || 0;\n const minWidth = colMinWidth(cols[colIndex]);\n\n setResizingIndex(colIndex);\n\n let onMouseMove: (ev: MouseEvent) => void;\n\n if (isLastCol) {\n // Resizing the last column: distribute remaining width equally among all other columns.\n const totalWidth = Object.values(startWidths).reduce((a, b) => a + b, 0);\n const otherCols = cols.slice(0, lastColIndex);\n const otherMinTotal = otherCols.reduce((sum, col) => sum + colMinWidth(col), 0);\n\n onMouseMove = (ev: MouseEvent) => {\n const rawDelta = ev.clientX - startX;\n // Last col can't go below its minWidth; others can't go below their minWidths combined\n const newLastWidth = Math.max(\n minWidth,\n Math.min(totalWidth - otherMinTotal, startWidth + rawDelta),\n );\n const remainingWidth = totalWidth - newLastWidth;\n const perColWidth =\n otherCols.length > 0 ? remainingWidth / otherCols.length : remainingWidth;\n\n const newWidths: Record<string, number> = {};\n otherCols.forEach(col => {\n newWidths[col.id] = Math.max(colMinWidth(col), perColWidth);\n });\n newWidths[lastColId] = newLastWidth;\n setColumnWidths(newWidths);\n queueMicrotask(() => updateHandlePositions());\n };\n } else {\n // Resizing a non-last column: column N grows/shrinks and the ADJACENT right\n // column (N+1) absorbs the opposite delta. Total table width stays constant.\n const nextColIndex = colIndex + 1;\n const nextColId = cols[nextColIndex].id;\n const nextColStartWidth = startWidths[nextColId] || 0;\n const nextColMinWidth = colMinWidth(cols[nextColIndex]);\n\n onMouseMove = (ev: MouseEvent) => {\n const rawDelta = ev.clientX - startX;\n // Floor: dragged column can't go below its minWidth\n const minDelta = minWidth - startWidth;\n // Ceiling: next column can't go below its minWidth\n const maxDelta = nextColStartWidth - nextColMinWidth;\n const clampedDelta = Math.max(minDelta, Math.min(maxDelta, rawDelta));\n\n setColumnWidths(prev => ({\n ...prev,\n [colId]: startWidth + clampedDelta,\n [nextColId]: nextColStartWidth - clampedDelta,\n }));\n queueMicrotask(() => updateHandlePositions());\n };\n }\n\n const onMouseUp = () => {\n setResizingIndex(-1);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n document.documentElement.classList.remove('tbe-resizing');\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n document.documentElement.classList.add('tbe-resizing');\n }\n\n function handleResizeDblClick(colIndex: number, e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const cols = getDataColumns();\n const currentWidths =\n Object.keys(columnWidths()).length > 0 ? columnWidths() : snapshotColumnWidths();\n const lastColIndex = cols.length - 1;\n\n if (colIndex === lastColIndex) {\n // Divider sau last col: chia đều tất cả các cột\n const total = cols.reduce((sum, col) => sum + (currentWidths[col.id] ?? col.getSize()), 0);\n const equalWidth = total / cols.length;\n const newWidths: Record<string, number> = {};\n cols.forEach(col => {\n newWidths[col.id] = Math.max(colMinWidth(col), equalWidth);\n });\n setColumnWidths(newWidths);\n } else {\n // Divider giữa cột colIndex và colIndex+1: chia đều tổng width 2 cột\n const colId = cols[colIndex].id;\n const nextColId = cols[colIndex + 1].id;\n const w1 = currentWidths[colId] ?? cols[colIndex].getSize();\n const w2 = currentWidths[nextColId] ?? cols[colIndex + 1].getSize();\n const half = (w1 + w2) / 2;\n const newW1 = Math.max(colMinWidth(cols[colIndex]), half);\n const newW2 = Math.max(colMinWidth(cols[colIndex + 1]), w1 + w2 - newW1);\n setColumnWidths(prev => ({\n ...currentWidths,\n ...prev,\n [colId]: newW1,\n [nextColId]: newW2,\n }));\n }\n\n queueMicrotask(() => updateHandlePositions());\n }\n\n const hasResizeWidths = () => Object.keys(columnWidths()).length > 0;\n\n /**\n * When resizing is active, override the table's `w-full` with an exact pixel width\n * equal to the sum of all column widths. This prevents the browser from proportionally\n * scaling columns to fill the container when the total is less than the container width,\n * and allows the table to grow beyond the container (triggering scroll) when columns expand.\n */\n const resizeTableWidth = createMemo<string | null>(() => {\n if (!hasResizeWidths()) return null;\n const widths = columnWidths();\n const total = table\n .getAllLeafColumns()\n .reduce((sum, col) => sum + (widths[col.id] ?? col.getSize()), 0);\n return `${total}px`;\n });\n\n /**\n * When scroll-x is active (resizable is off), compute explicit widths for every data column:\n * - Columns with a declared `size` keep that size.\n * - Remaining columns share the leftover space equally (min 100px each).\n * Returns null when scroll-x is not active.\n */\n const scrollXColumnWidths = createMemo<Record<string, number> | null>(() => {\n if (!hasScrollX()) return null;\n const cols = getDataColumns();\n const x = scrollX()!;\n const declaredCols = cols.filter(col => colsWithExplicitSize().has(col.id));\n const undeclaredCols = cols.filter(col => !colsWithExplicitSize().has(col.id));\n const declaredTotal = declaredCols.reduce((sum, col) => sum + col.getSize(), 0);\n const numUndeclared = undeclaredCols.length;\n let undeclaredWidth: number;\n if (typeof x === 'number') {\n const remaining = x - declaredTotal;\n undeclaredWidth = numUndeclared > 0 ? Math.max(100, remaining / numUndeclared) : 100;\n } else {\n undeclaredWidth = 100;\n }\n const widths: Record<string, number> = {};\n cols.forEach(col => {\n widths[col.id] = colsWithExplicitSize().has(col.id) ? col.getSize() : undeclaredWidth;\n });\n return widths;\n });\n\n const useFixedLayout = () => colsWithExplicitSize().size > 0 || hasResizeWidths() || hasScrollX();\n\n const [measuredWidths, setMeasuredWidths] = createSignal<Record<string, number>>({});\n\n function measureColumnWidths() {\n if (!tableEl) return;\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n const widths: Record<string, number> = {};\n cols.forEach((col, i) => {\n if (ths[i]) {\n widths[col.id] = ths[i].offsetWidth;\n }\n });\n setMeasuredWidths(widths);\n }\n\n const fixedColumnInfo = createMemo(() => {\n const widths = measuredWidths();\n if (Object.keys(widths).length === 0) return new Map<string, FixedInfo>();\n\n const cols = table.getAllLeafColumns();\n const colData = cols.map(col => ({\n id: col.id,\n fixed: col.columnDef.meta?.fixed,\n width: widths[col.id] || 0,\n }));\n\n return computeFixedColumnInfo(colData);\n });\n\n function getFixedCellStyle(colId: string): Record<string, string> | undefined {\n const info = fixedColumnInfo().get(colId);\n if (!info) return undefined;\n\n if (info.fixed === 'start') {\n return { left: `${info.offset}px` };\n }\n if (info.fixed === 'end') {\n return { right: `${info.offset}px` };\n }\n return undefined;\n }\n\n function getFixedCellClass(colId: string): string {\n const info = fixedColumnInfo().get(colId);\n if (!info) return '';\n\n return cn('tbe33', info.isLastStart && 'tbe34', info.isFirstEnd && 'tbe35');\n }\n\n const AlignHeaderClass = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n } as const;\n\n const AlignCellClass = {\n start: 'align-start',\n center: 'align-center',\n end: 'align-end',\n } as const;\n\n const AlignTdStyle = {\n start: 'text-left',\n center: 'text-center',\n end: 'text-right',\n } as const;\n\n function getColAlign(colId: string) {\n const col = table.getColumn(colId);\n return (col?.columnDef.meta?.align ?? 'start') as 'start' | 'center' | 'end';\n }\n\n function hasCellTooltip(colId: string): boolean {\n return !!table.getColumn(colId)?.columnDef.meta?.tooltip;\n }\n\n function wrapCellContent(colId: string, cellValue: unknown, content: JSX.Element): JSX.Element {\n const col = table.getColumn(colId);\n const tooltipOpts = col?.columnDef.meta?.tooltip;\n if (!tooltipOpts) return content;\n const rawContent = tooltipOpts.content;\n const resolvedContent = typeof rawContent === 'function' ? rawContent(cellValue) : rawContent;\n const tooltipProps = {\n ...tooltipOpts,\n ...(resolvedContent !== undefined && { content: resolvedContent }),\n containerId: tbodyId,\n position: tooltipOpts.position ?? ('top' as const),\n class: { root: 'tbe-tt-cell' },\n };\n return (\n <Tooltip type=\"portal\" {...(tooltipProps as any)}>\n {content}\n </Tooltip>\n );\n }\n\n function handleTableClick(e: MouseEvent) {\n const target = e.target as HTMLElement;\n\n const isOwnElement = (el: HTMLElement) => {\n const t = el.closest('table');\n return t === tableEl || t === bodyTableEl;\n };\n\n const th = target.closest('th[data-column-id]') as HTMLElement | null;\n if (th && isOwnElement(th)) {\n const columnId = th.dataset.columnId;\n if (columnId) {\n if (isVirtual() && p.enableSorting) {\n triggerVirtualSort(e, columnId);\n } else {\n const column = table.getColumn(columnId);\n if (column?.getCanSort()) {\n column.getToggleSortingHandler()?.(e);\n }\n }\n }\n return;\n }\n\n const selectionTd = target.closest('td.tbe22') as HTMLElement | null;\n if (selectionTd && isOwnElement(selectionTd)) {\n const tr = selectionTd.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row?.getCanSelect()) {\n row.toggleSelected();\n }\n }\n }\n return;\n }\n\n const expandTd = target.closest('td.tbe23') as HTMLElement | null;\n if (expandTd && isOwnElement(expandTd)) {\n const tr = expandTd.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row) {\n const opts = expandedOptions();\n const expandable = opts?.rowExpandable\n ? opts.rowExpandable(row.original, row.index)\n : true;\n if (expandable) {\n toggleRowExpanded(row.id, row.original);\n }\n }\n }\n }\n return;\n }\n\n const tr = target.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr && isOwnElement(tr) && p.onRowClick) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row) {\n p.onRowClick(row, e);\n }\n }\n }\n }\n\n onMount(() => {\n if (resizable()) {\n updateHandlePositions();\n\n window.addEventListener('scroll', updateHandlePositions, { passive: true, capture: true });\n onCleanup(function removeWindowScrollListener() {\n window.removeEventListener('scroll', updateHandlePositions, { capture: true });\n });\n }\n if (hasFixedColumns()) {\n measureColumnWidths();\n }\n\n if (resizable() || hasFixedColumns()) {\n const observer = new ResizeObserver(() => {\n if (resizable()) updateHandlePositions();\n if (hasFixedColumns()) measureColumnWidths();\n });\n observer.observe(tableEl);\n onCleanup(function disconnectResizeObserver() {\n observer.disconnect();\n });\n }\n\n if (isVirtual()) {\n const handleScroll = () => {\n if (!p.getVirtualData || p.loadingMore !== 'auto') return;\n const opts = normalizedVirtual();\n const threshold = (opts?.itemSize ?? 40) * (opts?.overscan ?? 5);\n if (wrapperEl.scrollTop + wrapperEl.clientHeight >= wrapperEl.scrollHeight - threshold) {\n callGetVirtualData();\n }\n };\n wrapperEl.addEventListener('scroll', handleScroll, { passive: true });\n onCleanup(function removeScrollListener() {\n wrapperEl.removeEventListener('scroll', handleScroll);\n });\n }\n\n if (hasScrollY()) {\n const syncHeaderScroll = () => {\n if (headerWrapperEl) headerWrapperEl.scrollLeft = wrapperEl.scrollLeft;\n if (resizable()) updateHandlePositions();\n };\n wrapperEl.addEventListener('scroll', syncHeaderScroll, { passive: true });\n onCleanup(() => wrapperEl.removeEventListener('scroll', syncHeaderScroll));\n }\n });\n\n return (\n <div class={cn('tbe09', p.paginationProps !== undefined && 'tbe10')}>\n <Show\n when={\n p.paginationProps !== undefined && !p.virtual && p.paginationProps?.position === 'start'\n }\n >\n <Pagination\n {...p.paginationProps}\n onChange={(page, size) => {\n table.setPageIndex(page - 1);\n if (size !== table.getState().pagination.pageSize) {\n table.setPageSize(size);\n }\n p.paginationProps?.onChange?.(page, size);\n }}\n />\n </Show>\n <div\n class={cn(\n 'tbe11',\n border()?.outer && 'tbe42',\n resizable() && 'tbe36',\n resizingIndex() >= 0 && 'tbe39',\n (hasFixedColumns() || hasScrollY()) && 'tbe13',\n getColor(p.color),\n p.rounded,\n p.rounded && 'overflow-hidden',\n p.class?.root,\n )}\n style={{\n ...(scrollXWrapper() ? { 'max-width': scrollXWrapper() } : {}),\n ...(hasScrollX() && p.rounded ? { 'overflow-x': 'clip' } : {}),\n }}\n >\n <Show when={p.headerPanel}>\n <div class={cn('tbe40', border()?.outer && 'tbe41', p.class?.headerPanel)}>\n {p.headerPanel?.()}\n </div>\n </Show>\n <Show when={hasScrollY() && p.showHeader}>\n <div ref={el => (headerWrapperEl = el)} class={cn('tbe12', 'tbe14-hdr')}>\n <table\n ref={tableEl}\n class={cn(\n 'tbe01',\n getTableClass(p),\n border()?.horizontal && 'tbe43',\n border()?.vertical && 'tbe44',\n useFixedLayout() && 'table-fixed',\n p.class?.table,\n )}\n style={{\n ...(resizeTableWidth()\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\n : scrollXTable()\n ? { 'min-width': scrollXTable()! }\n : {}),\n }}\n onClick={handleTableClick}\n >\n <Show when={useFixedLayout()}>\n <colgroup>\n <For each={table.getAllLeafColumns()}>\n {col => {\n const isNonResizable = () =>\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\n return (\n <col\n style={{\n ...(isNonResizable()\n ? { width: `${col.getSize()}px` }\n : hasResizeWidths()\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\n : scrollXColumnWidths()\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\n : colsWithExplicitSize().has(col.id)\n ? { width: `${col.getSize()}px` }\n : {}),\n }}\n />\n );\n }}\n </For>\n </colgroup>\n </Show>\n <thead\n class={cn(\n p.class?.thead,\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\n )}\n >\n <For each={table.getHeaderGroups()}>\n {(headerGroup, groupIndex) => {\n const totalRows = table.getHeaderGroups().length;\n\n const earlyRenderedCols = new Set(\n table\n .getHeaderGroups()\n .slice(0, groupIndex())\n .flatMap(g =>\n g.headers\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\n .map(h => h.column.id),\n ),\n );\n return (\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\n <For each={headerGroup.headers}>\n {header => {\n if (earlyRenderedCols.has(header.column.id)) return null;\n\n const isEarlyLeaf =\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\n\n if (header.isPlaceholder && !isEarlyLeaf) return null;\n const headerSpan =\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\n if (headerSpan.colSpan === 0) return null;\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\n const finalRowSpan =\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\n return (\n <th\n class={cn(\n p.class?.th,\n header.column.getCanSort() && 'tbe18',\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(header.column.id),\n )}\n colSpan={finalColSpan}\n rowSpan={finalRowSpan}\n data-column-id={header.column.id}\n style={getFixedCellStyle(header.column.id)}\n >\n <div\n class={cn(\n 'tbe15',\n (colsWithExplicitSize().has(header.column.id) ||\n hasResizeWidths()) &&\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n 'tbe16',\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n AlignHeaderClass[getColAlign(header.column.id)],\n )}\n >\n <span class=\"tbe17\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </span>\n <Show when={header.column.getCanSort()}>\n <span class=\"tbe19\">\n <Switch\n fallback={\n <ChevronsUpDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n }\n >\n <Match when={header.column.getIsSorted() === 'asc'}>\n <ChevronUp\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n <Match when={header.column.getIsSorted() === 'desc'}>\n <ChevronDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n </Switch>\n <Show\n when={\n header.column.getIsSorted() !== false &&\n (header.column.getSortIndex() ?? -1) >= 0 &&\n table.getState().sorting.length > 1\n }\n >\n <span class=\"tbe20\">\n {(header.column.getSortIndex() ?? 0) + 1}\n </span>\n </Show>\n </span>\n </Show>\n </div>\n </th>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </thead>\n </table>\n </div>\n </Show>\n <div\n ref={el => (wrapperEl = el)}\n class={cn('tbe12', hasScroll() && 'tbe14')}\n style={{\n ...(scrollY() ? { 'max-height': scrollY() } : {}),\n }}\n >\n <table\n ref={el => {\n bodyTableEl = el;\n if (!hasScrollY()) tableEl = el;\n }}\n class={cn(\n 'tbe01',\n getTableClass(p),\n border()?.horizontal && 'tbe43',\n border()?.vertical && 'tbe44',\n useFixedLayout() && 'table-fixed',\n p.class?.table,\n )}\n style={{\n ...(resizeTableWidth()\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\n : scrollXTable()\n ? { 'min-width': scrollXTable()! }\n : {}),\n }}\n onClick={handleTableClick}\n >\n <Show when={useFixedLayout()}>\n <colgroup>\n <For each={table.getAllLeafColumns()}>\n {col => {\n const isNonResizable = () =>\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\n return (\n <col\n style={{\n ...(isNonResizable()\n ? { width: `${col.getSize()}px` }\n : hasResizeWidths()\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\n : scrollXColumnWidths()\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\n : colsWithExplicitSize().has(col.id)\n ? { width: `${col.getSize()}px` }\n : {}),\n }}\n />\n );\n }}\n </For>\n </colgroup>\n </Show>\n\n <Show when={!hasScrollY() && p.showHeader}>\n <thead\n class={cn(\n p.class?.thead,\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\n )}\n >\n <For each={table.getHeaderGroups()}>\n {(headerGroup, groupIndex) => {\n const totalRows = table.getHeaderGroups().length;\n const earlyRenderedCols = new Set(\n table\n .getHeaderGroups()\n .slice(0, groupIndex())\n .flatMap(g =>\n g.headers\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\n .map(h => h.column.id),\n ),\n );\n return (\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\n <For each={headerGroup.headers}>\n {header => {\n if (earlyRenderedCols.has(header.column.id)) return null;\n const isEarlyLeaf =\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\n if (header.isPlaceholder && !isEarlyLeaf) return null;\n const headerSpan =\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\n if (headerSpan.colSpan === 0) return null;\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\n const finalRowSpan =\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\n return (\n <th\n class={cn(\n p.class?.th,\n header.column.getCanSort() && 'tbe18',\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(header.column.id),\n )}\n colSpan={finalColSpan}\n rowSpan={finalRowSpan}\n data-column-id={header.column.id}\n style={getFixedCellStyle(header.column.id)}\n >\n <div\n class={cn(\n 'tbe15',\n (colsWithExplicitSize().has(header.column.id) ||\n hasResizeWidths()) &&\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n 'tbe16',\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n AlignHeaderClass[getColAlign(header.column.id)],\n )}\n >\n <span class=\"tbe17\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </span>\n <Show when={header.column.getCanSort()}>\n <span class=\"tbe19\">\n <Switch\n fallback={\n <ChevronsUpDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n }\n >\n <Match when={header.column.getIsSorted() === 'asc'}>\n <ChevronUp\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n <Match when={header.column.getIsSorted() === 'desc'}>\n <ChevronDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n </Switch>\n\n <Show\n when={\n header.column.getIsSorted() !== false &&\n (header.column.getSortIndex() ?? -1) >= 0 &&\n table.getState().sorting.length > 1\n }\n >\n <span class=\"tbe20\">\n {(header.column.getSortIndex() ?? 0) + 1}\n </span>\n </Show>\n </span>\n </Show>\n </div>\n </th>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </thead>\n </Show>\n\n <Show\n when={isVirtual() && !isEmpty()}\n fallback={\n <tbody id={tbodyId} class={cn(p.class?.tbody)}>\n <Show\n when={!isEmpty()}\n fallback={\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class={cn('tbe45', p.class?.empty)}\n >\n {p.emptyContent ?? 'No data'}\n </td>\n </tr>\n }\n >\n <For each={table.getRowModel().rows}>\n {(row, rowIndex) => {\n const expanded = () => isRowExpanded(row.id);\n const opts = expandedOptions();\n\n return (\n <>\n <tr\n class={cn(\n p.class?.tr,\n p.class?.bodyRow,\n row.getIsSelected() && 'tbe27',\n expanded() && 'tbe28',\n rowIndex() % 2 === 0 ? 'tbe29' : 'tbe30',\n )}\n data-row-id={row.id}\n >\n <For each={row.getVisibleCells()}>\n {cell => {\n const isSpecial =\n cell.column.id === SELECTION_COLUMN_ID ||\n cell.column.id === EXPANDED_COLUMN_ID;\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\n const span: TableCellSpanResult = resolveBodySpan(\n cell,\n rowIndex(),\n );\n if (span.colSpan === 0 || span.rowSpan === 0) return null;\n return (\n <td\n class={cn(\n p.class?.td,\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(cell.column.id),\n hasTooltip && 'relative',\n !isSpecial && AlignTdStyle[align],\n )}\n style={{\n ...getFixedCellStyle(cell.column.id),\n }}\n colSpan={span.colSpan}\n rowSpan={span.rowSpan}\n >\n <Show\n when={\n (colsWithExplicitSize().has(cell.column.id) ||\n hasResizeWidths()) &&\n !isSpecial\n }\n fallback={wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n >\n <div class={cn('tbe21', AlignCellClass[align])}>\n {wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n ),\n )}\n </div>\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n <Show when={hasExpandableRows() && expanded()}>\n <tr class=\"tbe31\">\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\n {opts!.expandedRowRender(row.original, rowIndex(), 0, true)}\n </td>\n </tr>\n </Show>\n </>\n );\n }}\n </For>\n </Show>\n </tbody>\n }\n >\n <Show\n when={!isSortingLoading()}\n fallback={\n <tbody>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{\n height: scrollY() ?? '200px',\n }}\n >\n <div class=\"flex h-full items-center justify-center gap-2 opacity-60\">\n <span class=\"text-base\">Sorting</span>\n <span class=\"loading loading-dots loading-sm text-base-content\" />\n </div>\n </td>\n </tr>\n </tbody>\n }\n >\n <tbody id={tbodyId} class={p.class?.tbody}>\n <Show when={virtualTopPadding() > 0}>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{ height: `${virtualTopPadding()}px` }}\n />\n </tr>\n </Show>\n\n <For each={rowVirtualizer.getVirtualItems()}>\n {virtualRow => {\n const rows = table.getRowModel().rows;\n const row = rows[virtualRow.index];\n const rowIndex = virtualRow.index;\n if (!row) return null;\n\n const expanded = () => isRowExpanded(row.id);\n const opts = expandedOptions();\n\n let trEl: HTMLTableRowElement | undefined;\n\n createEffect(\n on(\n expanded,\n () => {\n queueMicrotask(() => {\n if (trEl?.isConnected && trEl.hasAttribute('data-index'))\n rowVirtualizer.measureElement(trEl);\n });\n },\n { defer: true },\n ),\n );\n\n return (\n <>\n <tr\n ref={el => {\n trEl = el;\n if (el)\n queueMicrotask(() => {\n if (el.isConnected) rowVirtualizer.measureElement(el);\n });\n }}\n data-index={virtualRow.index}\n class={cn(\n p.class?.tr,\n p.class?.bodyRow,\n row.getIsSelected() && 'tbe27',\n expanded() && 'tbe28',\n rowIndex % 2 === 0 ? 'tbe29' : 'tbe30',\n )}\n data-row-id={row.id}\n >\n <For each={row.getVisibleCells()}>\n {cell => {\n const isSpecial =\n cell.column.id === SELECTION_COLUMN_ID ||\n cell.column.id === EXPANDED_COLUMN_ID;\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\n return (\n <td\n class={cn(\n p.class?.td,\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(cell.column.id),\n hasTooltip && 'relative p-0',\n !isSpecial && AlignTdStyle[align],\n )}\n style={{\n ...getFixedCellStyle(cell.column.id),\n }}\n >\n <Show\n when={\n (colsWithExplicitSize().has(cell.column.id) ||\n hasResizeWidths()) &&\n !isSpecial\n }\n fallback={wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n >\n <div class={cn('tbe21', AlignCellClass[align])}>\n {wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n </div>\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n <Show when={hasExpandableRows() && expanded()}>\n <tr class=\"tbe31\">\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\n {opts!.expandedRowRender(row.original, rowIndex, 0, true)}\n </td>\n </tr>\n </Show>\n </>\n );\n }}\n </For>\n\n <Show when={virtualBottomPadding() > 0}>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{ height: `${virtualBottomPadding()}px` }}\n />\n </tr>\n </Show>\n\n <Switch>\n <Match when={p.loadingMore === 'auto' && isFetchingMore()}>\n <tr>\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\n <div class=\"flex justify-center\">\n <span class=\"loading loading-dots loading-sm opacity-60\" />\n </div>\n </td>\n </tr>\n </Match>\n <Match when={p.loadingMore === 'manual'}>\n <tr>\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\n <div class=\"flex justify-center\">\n <Button\n variant={'default'}\n color={p.color}\n loading={isFetchingMore()}\n onClick={() => callGetVirtualData()}\n size={p.size}\n >\n Load more\n </Button>\n </div>\n </td>\n </tr>\n </Match>\n </Switch>\n </tbody>\n </Show>\n </Show>\n </table>\n </div>\n <Show when={resizable()}>\n <For each={handlePositions()}>\n {pos => (\n <div\n class={cn('tbe37', resizingIndex() === pos.colIndex && 'tbe38')}\n style={{\n left: `${pos.left}px`,\n top: `${pos.top}px`,\n height: `${pos.height}px`,\n }}\n onMouseDown={e => handleResizeStart(pos.colIndex, e)}\n onDblClick={e => handleResizeDblClick(pos.colIndex, e)}\n />\n )}\n </For>\n </Show>\n <Show when={p.footerPanel}>\n <div class={cn('tbe40', border()?.outer && 'border-c3/50 border-t', p.class?.tfoot)}>\n {p.footerPanel?.()}\n </div>\n </Show>\n </div>\n <Show\n when={\n p.paginationProps !== undefined &&\n !p.virtual &&\n (p.paginationProps?.position ?? 'end') === 'end'\n }\n >\n <Pagination\n {...p.paginationProps}\n onChange={(page, size) => {\n table.setPageIndex(page - 1);\n if (size !== table.getState().pagination.pageSize) {\n table.setPageSize(size);\n }\n p.paginationProps?.onChange?.(page, size);\n }}\n />\n </Show>\n </div>\n );\n}\n\nTable.Selection = function <TData = any>(\n options?: TableSelectionOptions<TData>,\n): ColumnDef<TData, any> {\n const opts: TableSelectionOptions<TData> = {\n type: 'checkbox',\n hideSelectAll: false,\n width: 32,\n ...options,\n };\n\n return {\n id: SELECTION_COLUMN_ID,\n size: typeof opts.width === 'number' ? opts.width : 48,\n enableSorting: false,\n enableResizing: false,\n meta: {\n _selection: opts,\n },\n header: ({ table }) => {\n if (opts.title !== undefined) return opts.title;\n if (opts.type === 'radio' || opts.hideSelectAll) return null;\n\n return (\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-xs checkbox-primary mx-auto\"\n checked={table.getIsAllRowsSelected()}\n ref={el => {\n createEffect(function syncIndeterminate() {\n el.indeterminate = table.getIsSomeRowsSelected();\n });\n }}\n onChange={table.getToggleAllRowsSelectedHandler()}\n />\n );\n },\n cell: ({ row }) => {\n const index = row.index;\n const checked = () => row.getIsSelected();\n const record = row.original;\n\n if (opts.renderCell) {\n return (\n <span\n onClick={e => {\n e.stopPropagation();\n row.toggleSelected();\n }}\n class=\"cursor-pointer\"\n >\n {opts.renderCell(checked(), record, index)}\n </span>\n );\n }\n\n if (opts.type === 'radio') {\n return (\n <input\n type=\"radio\"\n class=\"radio radio-xs radio-primary\"\n checked={checked()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n onClick={e => e.stopPropagation()}\n />\n );\n }\n\n return (\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-xs checkbox-primary\"\n checked={checked()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n onClick={e => e.stopPropagation()}\n />\n );\n },\n };\n};\n\nTable.Expanded = function <TData = any>(\n options: TableExpandedOptions<TData>,\n): ColumnDef<TData, any> {\n options = mergeProps(\n {\n width: 48,\n },\n options,\n );\n\n return {\n id: EXPANDED_COLUMN_ID,\n size: options.width,\n enableSorting: false,\n enableResizing: false,\n meta: {\n _expanded: options,\n },\n header: () => null,\n cell: ({ row, table }) => {\n const index = row.index;\n const record = row.original;\n const api = table.options.meta?._expandApi;\n const expandable = options.rowExpandable ? options.rowExpandable(record, index) : true;\n\n if (!expandable || !api) return null;\n\n const expanded = () => api.isRowExpanded(row.id);\n\n return (\n <span\n class=\"tbe24 cursor-pointer\"\n onClick={e => {\n e.stopPropagation();\n api.toggleRowExpanded(row.id, record);\n }}\n >\n <Show\n when={options.expandIcon}\n fallback={\n <ChevronRight size={16} stroke-width={2} class={cn('tbe25', expanded() && 'tbe26')} />\n }\n >\n {options.expandIcon!(expanded())}\n </Show>\n </span>\n );\n },\n };\n};\n\nexport { Table };\n"],"mappings":"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"}
|