koddiv-dyn-table 0.1.2
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 +491 -0
- package/dist/App.d.ts +1 -0
- package/dist/components/Table/Table.d.ts +3 -0
- package/dist/components/Table/Table.types.d.ts +195 -0
- package/dist/components/Table/index.d.ts +3 -0
- package/dist/components/Table/utils.d.ts +5 -0
- package/dist/components/Table/valueFormats.d.ts +3 -0
- package/dist/components/TableFormatters/TableFormatters.d.ts +12 -0
- package/dist/components/TableFormatters/index.d.ts +2 -0
- package/dist/components/TableRowActions/TableRowActions.d.ts +15 -0
- package/dist/components/TableRowActions/index.d.ts +2 -0
- package/dist/dyn-table.js +1387 -0
- package/dist/dyn-table.js.map +1 -0
- package/dist/dyn-table.umd.cjs +2 -0
- package/dist/dyn-table.umd.cjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/main.d.ts +1 -0
- package/dist/style.css +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dyn-table.js","sources":["../src/components/Table/utils.ts","../src/components/Table/valueFormats.ts","../src/components/TableFormatters/TableFormatters.tsx","../src/components/Table/Table.tsx"],"sourcesContent":["import type { ColumnDef } from './Table.types';\r\n\r\n/** Genişlik değerini px sayısına çevirir (number veya \"100px\" / \"100\") */\r\nexport function parseWidth(w: string | number | undefined): number | undefined {\r\n if (w == null) return undefined;\r\n if (typeof w === 'number') return w;\r\n const n = parseFloat(w);\r\n return Number.isNaN(n) ? undefined : n;\r\n}\r\n\r\nexport function getCellValue<T>(row: T, column: ColumnDef<T>): unknown {\r\n if (column.valueGetter) return column.valueGetter(row);\r\n if (column.accessorKey === undefined) return undefined;\r\n const key = column.accessorKey as keyof T;\r\n return row[key];\r\n}\r\n","import type { ValueFormatType, ValueFormatOptions } from './Table.types';\r\n\r\nconst defaultLocale = 'tr-TR';\r\n\r\nfunction toDate(value: unknown): Date | null {\r\n if (value == null) return null;\r\n if (value instanceof Date) return value;\r\n const n = typeof value === 'number' ? value : Number(value);\r\n if (!Number.isNaN(n)) return new Date(n);\r\n const s = String(value).trim();\r\n if (!s) return null;\r\n const d = new Date(s);\r\n return Number.isNaN(d.getTime()) ? null : d;\r\n}\r\n\r\nexport function applyValueFormat(\r\n value: unknown,\r\n format: ValueFormatType,\r\n options: ValueFormatOptions = {}\r\n): string {\r\n const locale = options.locale ?? defaultLocale;\r\n\r\n switch (format) {\r\n case 'date': {\r\n const d = toDate(value);\r\n if (!d) return value != null ? String(value) : '—';\r\n if (options.dateStyle != null) {\r\n return d.toLocaleDateString(locale, { dateStyle: options.dateStyle });\r\n }\r\n return d.toLocaleDateString(locale, {\r\n day: '2-digit',\r\n month: '2-digit',\r\n year: 'numeric',\r\n });\r\n }\r\n case 'datetime': {\r\n const d = toDate(value);\r\n if (!d) return value != null ? String(value) : '—';\r\n return d.toLocaleString(locale, {\r\n dateStyle: options.dateStyle ?? 'short',\r\n timeStyle: options.timeStyle ?? 'short',\r\n });\r\n }\r\n case 'time': {\r\n const d = toDate(value);\r\n if (!d) return value != null ? String(value) : '—';\r\n return d.toLocaleTimeString(locale, {\r\n timeStyle: options.timeStyle ?? 'short',\r\n });\r\n }\r\n case 'number': {\r\n const n = typeof value === 'number' ? value : Number(value);\r\n if (Number.isNaN(n)) return value != null ? String(value) : '—';\r\n return n.toLocaleString(locale, {\r\n minimumFractionDigits: options.minimumFractionDigits,\r\n maximumFractionDigits: options.maximumFractionDigits ?? 2,\r\n });\r\n }\r\n case 'currency': {\r\n const n = typeof value === 'number' ? value : Number(value);\r\n if (Number.isNaN(n)) return value != null ? String(value) : '—';\r\n return n.toLocaleString(locale, {\r\n style: 'currency',\r\n currency: options.currency ?? 'TRY',\r\n minimumFractionDigits: options.minimumFractionDigits,\r\n maximumFractionDigits: options.maximumFractionDigits ?? 2,\r\n });\r\n }\r\n case 'percent': {\r\n const n = typeof value === 'number' ? value : Number(value);\r\n if (Number.isNaN(n)) return value != null ? String(value) : '—';\r\n return n.toLocaleString(locale, {\r\n style: 'percent',\r\n minimumFractionDigits: options.minimumFractionDigits,\r\n maximumFractionDigits: options.maximumFractionDigits ?? 2,\r\n });\r\n }\r\n default:\r\n return value != null ? String(value) : '—';\r\n }\r\n}\r\n","import type { ReactNode } from 'react';\r\nimport type { CellFormatType, CellFormatOptions } from '../Table/Table.types';\r\nimport './TableFormatters.css';\r\n\r\n/**\r\n * Varsayılan etiketler — cellFormat tipine göre true/false metinleri.\r\n * cellFormatOptions ile activeLabel / inactiveLabel verilerek override edilebilir.\r\n */\r\nconst DEFAULT_LABELS: Record<CellFormatType, { active: string; inactive: string }> = {\r\n status: { active: 'Aktif', inactive: 'Pasif' },\r\n yesNo: { active: 'Evet', inactive: 'Hayır' },\r\n onOff: { active: 'Açık', inactive: 'Kapalı' },\r\n published: { active: 'Yayında', inactive: 'Taslak' },\r\n approved: { active: 'Onaylı', inactive: 'Beklemede' },\r\n badge: { active: 'Evet', inactive: 'Hayır' }, // özel için cellFormatOptions zorunlu önerilir\r\n};\r\n\r\nexport interface StatusBadgeProps {\r\n value: unknown;\r\n activeLabel?: string;\r\n inactiveLabel?: string;\r\n activeClass?: string;\r\n inactiveClass?: string;\r\n}\r\n\r\nconst defaultActiveClass = 'table-formatter-status table-formatter-status--active';\r\nconst defaultInactiveClass = 'table-formatter-status table-formatter-status--inactive';\r\n\r\nexport function StatusBadge({\r\n value,\r\n activeLabel = 'Aktif',\r\n inactiveLabel = 'Pasif',\r\n activeClass = defaultActiveClass,\r\n inactiveClass = defaultInactiveClass,\r\n}: StatusBadgeProps) {\r\n const isActive = value === true || value === 'true' || value === 1;\r\n const label = isActive ? activeLabel : inactiveLabel;\r\n const className = isActive ? activeClass : inactiveClass;\r\n return <span className={className}>{label}</span>;\r\n}\r\n\r\nfunction getLabelsForFormat(formatType: CellFormatType, options: CellFormatOptions) {\r\n const defaults = DEFAULT_LABELS[formatType];\r\n return {\r\n activeLabel: options.activeLabel ?? defaults.active,\r\n inactiveLabel: options.inactiveLabel ?? defaults.inactive,\r\n };\r\n}\r\n\r\nexport function renderCellFormat(\r\n formatType: CellFormatType,\r\n value: unknown,\r\n _row: unknown,\r\n options: CellFormatOptions = {}\r\n): ReactNode {\r\n const { activeLabel, inactiveLabel } = getLabelsForFormat(formatType, options);\r\n return (\r\n <StatusBadge\r\n value={value}\r\n activeLabel={activeLabel}\r\n inactiveLabel={inactiveLabel}\r\n activeClass={options.activeClass}\r\n inactiveClass={options.inactiveClass}\r\n />\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport type { TableProps, ColumnDef } from './Table.types';\r\nimport { getCellValue, parseWidth } from './utils';\r\nimport { applyValueFormat } from './valueFormats';\r\nimport { renderCellFormat } from '../TableFormatters';\r\nimport './Table.css';\r\n\r\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];\r\nconst DEFAULT_MIN_WIDTH = 50;\r\nconst DEFAULT_FLEX_MIN = 80;\r\n\r\n/** Kolon için mutlaka korunacak minimum genişlik (px); flex/resizable olsa da altına inmez */\r\nfunction getMinWidthForColumn<T>(col: ColumnDef<T>): number {\r\n return parseWidth(col.minWidth) ?? (col.flex ? DEFAULT_FLEX_MIN : DEFAULT_MIN_WIDTH);\r\n}\r\n\r\ninterface ResizeHandleProps {\r\n colId: string;\r\n minWidth: number;\r\n maxWidth: number | undefined;\r\n startWidth: number;\r\n onResize: (width: number) => void;\r\n}\r\n\r\nfunction ResizeHandle({\r\n colId,\r\n minWidth,\r\n maxWidth,\r\n startWidth,\r\n onResize,\r\n}: ResizeHandleProps) {\r\n const handleRef = React.useRef<HTMLDivElement>(null);\r\n const onResizeRef = React.useRef(onResize);\r\n onResizeRef.current = onResize;\r\n\r\n React.useEffect(() => {\r\n const el = handleRef.current;\r\n if (!el) return;\r\n let startX = 0;\r\n let startW = 0;\r\n const onMouseDown = (e: MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n startX = e.clientX;\r\n startW = startWidth;\r\n document.body.classList.add('dyn-table-resizing');\r\n const onMouseMove = (e2: MouseEvent) => {\r\n const delta = e2.clientX - startX;\r\n let w = Math.max(minWidth, startW + delta);\r\n if (maxWidth != null) w = Math.min(maxWidth, w);\r\n onResizeRef.current(w);\r\n };\r\n const onMouseUp = () => {\r\n document.removeEventListener('mousemove', onMouseMove);\r\n document.removeEventListener('mouseup', onMouseUp);\r\n document.body.classList.remove('dyn-table-resizing');\r\n };\r\n document.addEventListener('mousemove', onMouseMove);\r\n document.addEventListener('mouseup', onMouseUp);\r\n };\r\n el.addEventListener('mousedown', onMouseDown);\r\n return () => el.removeEventListener('mousedown', onMouseDown);\r\n }, [colId, minWidth, maxWidth, startWidth]);\r\n\r\n return (\r\n <div\r\n ref={handleRef}\r\n className=\"dyn-table-resize-handle\"\r\n role=\"separator\"\r\n aria-label={`${colId} kolon genişliğini değiştir`}\r\n />\r\n );\r\n}\r\n\r\nconst SELECTION_COLUMN_WIDTH = 44;\r\n\r\ninterface SelectionHeaderCheckboxProps<T> {\r\n displayData: T[];\r\n getRowKey: (row: T) => string | number;\r\n selectedSet: Set<string | number>;\r\n onToggleAll: () => void;\r\n}\r\n\r\nfunction SelectionHeaderCheckbox<T>({\r\n displayData,\r\n getRowKey,\r\n selectedSet,\r\n onToggleAll,\r\n}: SelectionHeaderCheckboxProps<T>) {\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const pageKeys = displayData.map((r) => getRowKey(r) as string | number);\r\n const allChecked = pageKeys.length > 0 && pageKeys.every((k) => selectedSet.has(k));\r\n const someChecked = pageKeys.some((k) => selectedSet.has(k));\r\n const indeterminate = someChecked && !allChecked;\r\n\r\n React.useEffect(() => {\r\n if (inputRef.current) inputRef.current.indeterminate = indeterminate;\r\n }, [indeterminate]);\r\n\r\n return (\r\n <label className=\"dyn-table-selection-header\">\r\n <input\r\n ref={inputRef}\r\n type=\"checkbox\"\r\n checked={allChecked}\r\n onChange={onToggleAll}\r\n aria-label=\"Tümünü seç\"\r\n />\r\n </label>\r\n );\r\n}\r\n\r\nfunction getComputedWidths<T>(\r\n columns: ColumnDef<T>[],\r\n tableWidth: number,\r\n columnWidths: Record<string, number>,\r\n actionsWidthPx: number,\r\n selectionWidthPx: number\r\n): number[] {\r\n const hasFlex = columns.some((c) => (c.flex ?? 0) > 0);\r\n const flexCols = columns.filter((c) => (c.flex ?? 0) > 0);\r\n const flexTotal = flexCols.reduce((s, c) => s + (c.flex ?? 0), 0);\r\n\r\n const fixedWidths: number[] = [];\r\n let fixedSum = 0;\r\n for (const col of columns) {\r\n const minPx = parseWidth(col.minWidth) ?? (col.flex ? DEFAULT_FLEX_MIN : DEFAULT_MIN_WIDTH);\r\n const maxPx = parseWidth(col.maxWidth);\r\n if (col.flex) {\r\n const override = columnWidths[col.id];\r\n if (override != null) {\r\n fixedWidths.push(Math.max(minPx, maxPx != null ? Math.min(override, maxPx) : override));\r\n fixedSum += fixedWidths[fixedWidths.length - 1];\r\n } else {\r\n fixedWidths.push(-1);\r\n }\r\n } else {\r\n const w =\r\n columnWidths[col.id] ??\r\n parseWidth(col.width) ??\r\n minPx;\r\n fixedWidths.push(maxPx != null ? Math.min(w, maxPx) : Math.max(minPx, w));\r\n fixedSum += fixedWidths[fixedWidths.length - 1];\r\n }\r\n }\r\n\r\n if (!hasFlex || tableWidth <= 0 || flexTotal <= 0) {\r\n return fixedWidths.map((w) => (w === -1 ? DEFAULT_FLEX_MIN : w));\r\n }\r\n\r\n const remaining = tableWidth - fixedSum - actionsWidthPx - selectionWidthPx;\r\n if (remaining <= 0) {\r\n return fixedWidths.map((w) => (w === -1 ? DEFAULT_FLEX_MIN : w));\r\n }\r\n\r\n const result = [...fixedWidths];\r\n let distributed = 0;\r\n for (let i = 0; i < columns.length; i++) {\r\n if (result[i] !== -1) continue;\r\n const col = columns[i];\r\n const minPx = parseWidth(col.minWidth) ?? DEFAULT_FLEX_MIN;\r\n const maxPx = parseWidth(col.maxWidth);\r\n const flex = col.flex ?? 0;\r\n const raw = (flex / flexTotal) * remaining;\r\n const clamped = maxPx != null ? Math.min(raw, maxPx) : raw;\r\n result[i] = Math.max(minPx, clamped);\r\n distributed += result[i];\r\n }\r\n return result;\r\n}\r\n\r\nexport function Table<T>({\r\n data,\r\n columns,\r\n keyExtractor: keyExtractorProp,\r\n keyColumnId,\r\n sortable = true,\r\n defaultSort = { id: '', direction: null },\r\n onSort,\r\n emptyMessage = 'Veri yok',\r\n theme = 'light',\r\n className = '',\r\n headerClassName = '',\r\n bodyClassName = '',\r\n rowClassName,\r\n actions,\r\n actionsHeader = 'İşlemler',\r\n actionsAlign = 'center',\r\n actionsWidth,\r\n pagination = false,\r\n pageSize: pageSizeProp = 10,\r\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\r\n page: pageProp,\r\n defaultPage = 1,\r\n onPageChange,\r\n totalCount: totalCountProp,\r\n onBlockNeeded,\r\n blockSize: _blockSize,\r\n minHeight,\r\n height,\r\n mobileBreakpoint = 768,\r\n rowSelection = false,\r\n selectedRowKeys: selectedRowKeysProp,\r\n defaultSelectedRowKeys = [],\r\n onSelectionChange,\r\n selectionToolbarLabel,\r\n filterable = false,\r\n filterModel: filterModelProp,\r\n defaultFilterModel = {},\r\n onFilterChange,\r\n filterPanelWidth = 280,\r\n virtualization = false,\r\n rowHeight = 44,\r\n virtualizationOverscan = 5,\r\n columnVisibility: columnVisibilityProp,\r\n onColumnVisibilityChange,\r\n columnOrder: columnOrderProp,\r\n onColumnOrderChange,\r\n columnReorder = true,\r\n loading = false,\r\n stickyHeader = false,\r\n}: TableProps<T>) {\r\n const getRowKey = React.useCallback(\r\n (row: T, index?: number): string | number => {\r\n if (keyExtractorProp) return keyExtractorProp(row);\r\n if (keyColumnId) {\r\n const col = columns.find((c) => c.id === keyColumnId);\r\n if (col) return getCellValue(row, col) as string | number;\r\n }\r\n return String(index ?? 0);\r\n },\r\n [keyExtractorProp, keyColumnId, columns]\r\n );\r\n\r\n const scrollRef = React.useRef<HTMLDivElement>(null);\r\n const [tableWidth, setTableWidth] = React.useState(0);\r\n const [scrollContainerHeight, setScrollContainerHeight] = React.useState(0);\r\n const [scrollTop, setScrollTop] = React.useState(0);\r\n const [columnWidths, setColumnWidths] = React.useState<Record<string, number>>({});\r\n\r\n React.useEffect(() => {\r\n const el = scrollRef.current;\r\n if (!el) return;\r\n const update = () => {\r\n setTableWidth(el.clientWidth);\r\n setScrollContainerHeight(el.clientHeight);\r\n };\r\n const ro = new ResizeObserver(update);\r\n ro.observe(el);\r\n update();\r\n return () => ro.disconnect();\r\n }, []);\r\n\r\n const [isMobile, setIsMobile] = React.useState(false);\r\n React.useEffect(() => {\r\n const mq = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`);\r\n setIsMobile(mq.matches);\r\n const fn = () => setIsMobile(mq.matches);\r\n mq.addEventListener('change', fn);\r\n return () => mq.removeEventListener('change', fn);\r\n }, [mobileBreakpoint]);\r\n\r\n const [sortState, setSortState] = React.useState(defaultSort);\r\n const [internalPage, setInternalPage] = React.useState(defaultPage);\r\n const [pageSize, setPageSize] = React.useState(pageSizeProp);\r\n React.useEffect(() => {\r\n setPageSize(pageSizeProp);\r\n }, [pageSizeProp]);\r\n\r\n const isVisibilityControlled = columnVisibilityProp != null;\r\n const [internalVisibility, setInternalVisibility] = React.useState<Record<string, boolean>>(\r\n () => columns.reduce<Record<string, boolean>>((acc, c) => ({ ...acc, [c.id]: !c.hide }), {})\r\n );\r\n React.useEffect(() => {\r\n if (isVisibilityControlled) return;\r\n setInternalVisibility((prev) => {\r\n const next = { ...prev };\r\n for (const c of columns) {\r\n if (next[c.id] === undefined) next[c.id] = !c.hide;\r\n }\r\n return next;\r\n });\r\n }, [columns, isVisibilityControlled]);\r\n const currentVisibility = isVisibilityControlled ? columnVisibilityProp! : internalVisibility;\r\n const setVisibility = React.useCallback(\r\n (next: Record<string, boolean>) => {\r\n if (!isVisibilityControlled) setInternalVisibility(next);\r\n onColumnVisibilityChange?.(next);\r\n },\r\n [isVisibilityControlled, onColumnVisibilityChange]\r\n );\r\n\r\n const isOrderControlled = columnOrderProp != null;\r\n const [internalOrder, setInternalOrder] = React.useState<string[]>(() => columns.map((c) => c.id));\r\n React.useEffect(() => {\r\n if (!isOrderControlled) setInternalOrder((prev) => {\r\n const next = columns.map((c) => c.id);\r\n const added = next.filter((id) => !prev.includes(id));\r\n const removed = prev.filter((id) => !next.some((id2) => id2 === id));\r\n if (added.length === 0 && removed.length === 0) return prev;\r\n let order = prev.filter((id) => next.includes(id));\r\n for (const id of added) order.push(id);\r\n return order;\r\n });\r\n }, [columns, isOrderControlled]);\r\n const currentOrder = isOrderControlled ? columnOrderProp! : internalOrder;\r\n const setOrder = React.useCallback(\r\n (next: string[]) => {\r\n if (!isOrderControlled) setInternalOrder(next);\r\n onColumnOrderChange?.(next);\r\n },\r\n [isOrderControlled, onColumnOrderChange]\r\n );\r\n\r\n const isPageControlled = pageProp != null;\r\n const currentPage = isPageControlled ? pageProp : internalPage;\r\n\r\n const handlePageChange = React.useCallback(\r\n (nextPage: number, nextPageSize: number) => {\r\n if (!isPageControlled) setInternalPage(nextPage);\r\n if (nextPageSize !== pageSize) setPageSize(nextPageSize);\r\n onPageChange?.(nextPage, nextPageSize);\r\n },\r\n [isPageControlled, pageSize, onPageChange]\r\n );\r\n\r\n const lastBlockNeededPageRef = React.useRef<number | null>(null);\r\n React.useEffect(() => {\r\n if (!pagination || !onBlockNeeded) return;\r\n const needed = currentPage * pageSize;\r\n if (data.length >= needed) {\r\n lastBlockNeededPageRef.current = null;\r\n return;\r\n }\r\n if (lastBlockNeededPageRef.current === currentPage) return;\r\n lastBlockNeededPageRef.current = currentPage;\r\n onBlockNeeded(currentPage);\r\n }, [pagination, onBlockNeeded, currentPage, pageSize, data.length]);\r\n\r\n const handleSort = (id: string) => {\r\n if (!sortable) return;\r\n const next: typeof sortState =\r\n sortState.id === id\r\n ? {\r\n id,\r\n direction:\r\n sortState.direction === 'asc'\r\n ? 'desc'\r\n : sortState.direction === 'desc'\r\n ? null\r\n : 'asc',\r\n }\r\n : { id, direction: 'asc' as const };\r\n setSortState(next);\r\n onSort?.(next.id, next.direction);\r\n };\r\n\r\n const visibleColumns = React.useMemo(() => {\r\n const order = currentOrder.filter((id) => columns.some((c) => c.id === id));\r\n const baseOrdered = order\r\n .filter((id) => currentVisibility[id] !== false)\r\n .map((id) => columns.find((c) => c.id === id)!)\r\n .filter(Boolean);\r\n for (const c of columns) {\r\n if (currentVisibility[c.id] !== false && !baseOrdered.some((x) => x.id === c.id)) {\r\n baseOrdered.push(c);\r\n }\r\n }\r\n const left = baseOrdered.filter((c) => c.pinned === 'left');\r\n const center = baseOrdered.filter((c) => c.pinned !== 'left' && c.pinned !== 'right');\r\n const right = baseOrdered.filter((c) => c.pinned === 'right');\r\n return [...left, ...center, ...right];\r\n }, [columns, currentOrder, currentVisibility]);\r\n\r\n const filterableColumns = React.useMemo(\r\n () => visibleColumns.filter((c) => c.filter != null),\r\n [visibleColumns]\r\n );\r\n\r\n const isFilterControlled = filterModelProp != null;\r\n const [internalFilterModel, setInternalFilterModel] = React.useState<Record<string, string | number | null>>(\r\n () => defaultFilterModel ?? {}\r\n );\r\n const currentFilterModel = isFilterControlled ? filterModelProp! : internalFilterModel;\r\n const setFilterModel = React.useCallback(\r\n (next: Record<string, string | number | null>) => {\r\n if (!isFilterControlled) setInternalFilterModel(next);\r\n onFilterChange?.(next);\r\n },\r\n [isFilterControlled, onFilterChange]\r\n );\r\n\r\n const filteredData = React.useMemo(() => {\r\n const active = Object.entries(currentFilterModel).filter(\r\n ([_, v]) => v !== null && v !== undefined && v !== ''\r\n );\r\n if (active.length === 0) return data;\r\n return data.filter((row) => {\r\n for (const [colId, filterVal] of active) {\r\n const col = columns.find((c) => c.id === colId);\r\n if (!col?.filter) continue;\r\n const cellVal = getCellValue(row, col);\r\n if (col.filter === 'text') {\r\n const s = String(cellVal ?? '').toLowerCase();\r\n const f = String(filterVal).toLowerCase();\r\n if (f && !s.includes(f)) return false;\r\n } else if (col.filter === 'number') {\r\n const n = typeof cellVal === 'number' ? cellVal : Number(cellVal);\r\n const fn = typeof filterVal === 'number' ? filterVal : Number(filterVal);\r\n if (Number.isNaN(fn)) continue;\r\n if (Number.isNaN(n) || n !== fn) return false;\r\n } else if (col.filter === 'date') {\r\n const cv = cellVal != null ? new Date(cellVal as number | string).getTime() : NaN;\r\n const fv = new Date(filterVal as string).getTime();\r\n if (Number.isNaN(fv)) continue;\r\n if (Number.isNaN(cv)) return false;\r\n const d1 = new Date(cv).toDateString();\r\n const d2 = new Date(fv).toDateString();\r\n if (d1 !== d2) return false;\r\n } else if (col.filter === 'select') {\r\n const cStr = cellVal != null ? String(cellVal) : '';\r\n const fStr = String(filterVal);\r\n if (fStr && cStr !== fStr) return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }, [data, columns, currentFilterModel]);\r\n\r\n const totalCount = totalCountProp ?? filteredData.length;\r\n const isClientSide = totalCountProp == null;\r\n const totalPages = Math.max(1, Math.ceil(totalCount / pageSize));\r\n const safePage = Math.min(Math.max(1, currentPage), totalPages);\r\n\r\n const actionsWidthPx =\r\n actions == null\r\n ? 0\r\n : parseWidth(actionsWidth) ?? 80;\r\n\r\n const selectionWidthPx = rowSelection ? SELECTION_COLUMN_WIDTH : 0;\r\n\r\n const computedWidths = React.useMemo(\r\n () =>\r\n getComputedWidths(\r\n visibleColumns,\r\n tableWidth,\r\n columnWidths,\r\n actionsWidthPx,\r\n selectionWidthPx\r\n ),\r\n [visibleColumns, tableWidth, columnWidths, actionsWidthPx, selectionWidthPx]\r\n );\r\n\r\n const { pinnedLeftOffsets, pinnedRightOffsets } = React.useMemo(() => {\r\n const left: (number | undefined)[] = [];\r\n const right: (number | undefined)[] = [];\r\n let leftAcc = selectionWidthPx;\r\n for (let i = 0; i < visibleColumns.length; i++) {\r\n if (visibleColumns[i].pinned === 'left') {\r\n left[i] = leftAcc;\r\n leftAcc += computedWidths[i];\r\n } else {\r\n left[i] = undefined;\r\n }\r\n }\r\n let rightAcc = actionsWidthPx;\r\n for (let i = visibleColumns.length - 1; i >= 0; i--) {\r\n if (visibleColumns[i].pinned === 'right') {\r\n right[i] = rightAcc;\r\n rightAcc += computedWidths[i];\r\n } else {\r\n right[i] = undefined;\r\n }\r\n }\r\n return {\r\n pinnedLeftOffsets: left,\r\n pinnedRightOffsets: right,\r\n };\r\n }, [visibleColumns, computedWidths, selectionWidthPx, actionsWidthPx]);\r\n\r\n const sortedData = React.useMemo(() => {\r\n if (!sortState.direction || !sortState.id) return filteredData;\r\n const col = columns.find((c) => c.id === sortState.id);\r\n if (!col?.sortable || col?.suppressSort) return filteredData;\r\n return [...filteredData].sort((a, b) => {\r\n const aVal = getCellValue(a, col);\r\n const bVal = getCellValue(b, col);\r\n const cmp = col.comparator\r\n ? col.comparator(aVal, bVal, a, b)\r\n : typeof aVal === 'number' && typeof bVal === 'number'\r\n ? aVal - bVal\r\n : String(aVal ?? '').localeCompare(String(bVal ?? ''));\r\n return sortState.direction === 'asc' ? cmp : -cmp;\r\n });\r\n }, [filteredData, columns, sortState]);\r\n\r\n const displayData = React.useMemo(() => {\r\n if (!pagination) return sortedData;\r\n if (isClientSide || onBlockNeeded) {\r\n const start = (safePage - 1) * pageSize;\r\n return sortedData.slice(start, start + pageSize);\r\n }\r\n return sortedData;\r\n }, [pagination, isClientSide, onBlockNeeded, sortedData, safePage, pageSize]);\r\n\r\n const isSelectionControlled = selectedRowKeysProp != null;\r\n const [internalSelectedKeys, setInternalSelectedKeys] = React.useState<(string | number)[]>(\r\n () => defaultSelectedRowKeys\r\n );\r\n const selectedKeys = isSelectionControlled ? selectedRowKeysProp : internalSelectedKeys;\r\n const selectedSet = React.useMemo(() => new Set(selectedKeys), [selectedKeys]);\r\n\r\n const setSelectedKeys = React.useCallback(\r\n (next: (string | number)[]) => {\r\n if (!isSelectionControlled) setInternalSelectedKeys(next);\r\n const rows = data.filter((row) => next.includes(getRowKey(row) as string | number));\r\n onSelectionChange?.(next, rows);\r\n },\r\n [isSelectionControlled, data, getRowKey, onSelectionChange]\r\n );\r\n\r\n const toggleRow = React.useCallback(\r\n (key: string | number) => {\r\n const next = selectedSet.has(key)\r\n ? selectedKeys.filter((k) => k !== key)\r\n : [...selectedKeys, key];\r\n setSelectedKeys(next);\r\n },\r\n [selectedKeys, selectedSet, setSelectedKeys]\r\n );\r\n\r\n const toggleAllOnPage = React.useCallback(() => {\r\n const pageKeys = displayData.map((row) => getRowKey(row) as string | number);\r\n const allSelected = pageKeys.length > 0 && pageKeys.every((k) => selectedSet.has(k));\r\n const next = allSelected\r\n ? selectedKeys.filter((k) => !pageKeys.includes(k))\r\n : [...new Set([...selectedKeys, ...pageKeys])];\r\n setSelectedKeys(next);\r\n }, [displayData, getRowKey, selectedKeys, selectedSet, setSelectedKeys]);\r\n\r\n const selectedRows = React.useMemo(\r\n () => data.filter((row) => selectedSet.has(getRowKey(row) as string | number)),\r\n [data, selectedSet, getRowKey]\r\n );\r\n\r\n const selectAll = React.useCallback(() => {\r\n setSelectedKeys(data.map((row) => getRowKey(row) as string | number));\r\n }, [data, getRowKey, setSelectedKeys]);\r\n\r\n const clearSelection = React.useCallback(() => {\r\n setSelectedKeys([]);\r\n }, [setSelectedKeys]);\r\n\r\n const [selectionDropdownOpen, setSelectionDropdownOpen] = React.useState(false);\r\n const selectionDropdownRef = React.useRef<HTMLDivElement>(null);\r\n React.useEffect(() => {\r\n if (!selectionDropdownOpen) return;\r\n const onDocClick = (e: MouseEvent) => {\r\n if (selectionDropdownRef.current && !selectionDropdownRef.current.contains(e.target as Node))\r\n setSelectionDropdownOpen(false);\r\n };\r\n document.addEventListener('click', onDocClick);\r\n return () => document.removeEventListener('click', onDocClick);\r\n }, [selectionDropdownOpen]);\r\n\r\n const [filterPanelOpen, setFilterPanelOpen] = React.useState(false);\r\n const [columnVisibilityDropdownOpen, setColumnVisibilityDropdownOpen] = React.useState(false);\r\n const columnVisibilityDropdownRef = React.useRef<HTMLDivElement>(null);\r\n React.useEffect(() => {\r\n if (!columnVisibilityDropdownOpen) return;\r\n const onDocClick = (e: MouseEvent) => {\r\n if (columnVisibilityDropdownRef.current && !columnVisibilityDropdownRef.current.contains(e.target as Node)) {\r\n setColumnVisibilityDropdownOpen(false);\r\n }\r\n };\r\n document.addEventListener('click', onDocClick);\r\n return () => document.removeEventListener('click', onDocClick);\r\n }, [columnVisibilityDropdownOpen]);\r\n\r\n const toggleColumnVisibility = React.useCallback(\r\n (colId: string) => {\r\n setVisibility({ ...currentVisibility, [colId]: !currentVisibility[colId] });\r\n },\r\n [currentVisibility, setVisibility]\r\n );\r\n\r\n const [draggedColId, setDraggedColId] = React.useState<string | null>(null);\r\n const [dragOverIndex, setDragOverIndex] = React.useState<number>(-1);\r\n\r\n const handleColumnDragStart = React.useCallback((e: React.DragEvent, colId: string) => {\r\n e.dataTransfer.setData('text/plain', colId);\r\n e.dataTransfer.effectAllowed = 'move';\r\n const th = (e.currentTarget as HTMLElement).closest('th');\r\n if (th) e.dataTransfer.setDragImage(th, 0, 0);\r\n setDraggedColId(colId);\r\n }, []);\r\n\r\n const handleColumnDragOver = React.useCallback((e: React.DragEvent, index: number) => {\r\n e.preventDefault();\r\n e.dataTransfer.dropEffect = 'move';\r\n setDragOverIndex(index);\r\n }, []);\r\n\r\n const handleColumnDragLeave = React.useCallback(() => {\r\n setDragOverIndex(-1);\r\n }, []);\r\n\r\n const handleColumnDrop = React.useCallback(\r\n (e: React.DragEvent, dropIndex: number) => {\r\n e.preventDefault();\r\n setDragOverIndex(-1);\r\n const draggedId = e.dataTransfer.getData('text/plain');\r\n if (!draggedId || draggedId === visibleColumns[dropIndex]?.id) return;\r\n const fromIdx = currentOrder.indexOf(draggedId);\r\n const dropTargetId = visibleColumns[dropIndex]?.id;\r\n const toIdx = currentOrder.indexOf(dropTargetId);\r\n if (fromIdx === -1 || toIdx === -1) return;\r\n const newOrder = currentOrder.slice();\r\n newOrder.splice(fromIdx, 1);\r\n const newToIdx = newOrder.indexOf(dropTargetId);\r\n newOrder.splice(newToIdx, 0, draggedId);\r\n setOrder(newOrder);\r\n },\r\n [visibleColumns, currentOrder, setOrder]\r\n );\r\n\r\n const handleColumnDragEnd = React.useCallback(() => {\r\n setDraggedColId(null);\r\n setDragOverIndex(-1);\r\n }, []);\r\n\r\n const activeFilterCount = Object.values(currentFilterModel).filter(\r\n (v) => v !== null && v !== undefined && v !== ''\r\n ).length;\r\n\r\n const clearFilters = React.useCallback(() => {\r\n setFilterModel({});\r\n }, [setFilterModel]);\r\n\r\n const useVirtualization = virtualization && !isMobile && displayData.length > 0;\r\n const useStickyHeader = stickyHeader && !isMobile;\r\n const { virtualStart, virtualEnd } = React.useMemo(() => {\r\n if (!useVirtualization || scrollContainerHeight <= 0) {\r\n return { virtualStart: 0, virtualEnd: displayData.length };\r\n }\r\n const visibleCount = Math.ceil(scrollContainerHeight / rowHeight) + virtualizationOverscan * 2;\r\n const start = Math.max(0, Math.floor(scrollTop / rowHeight) - virtualizationOverscan);\r\n const end = Math.min(displayData.length, start + visibleCount);\r\n return { virtualStart: start, virtualEnd: end };\r\n }, [useVirtualization, scrollContainerHeight, scrollTop, rowHeight, virtualizationOverscan, displayData.length]);\r\n\r\n const startRow = (safePage - 1) * pageSize + 1;\r\n const endRow = Math.min(safePage * pageSize, totalCount);\r\n const skeletonRowCount = loading ? Math.min(pageSize, 10) : 0;\r\n\r\n function getCellDisplay<T>(\r\n row: T,\r\n col: import('./Table.types').ColumnDef<T>,\r\n value: unknown\r\n): React.ReactNode {\r\n if (col.cell != null) return col.cell(row);\r\n if (col.valueFormatter != null) return col.valueFormatter(value, row);\r\n if (col.valueFormat != null) return applyValueFormat(value, col.valueFormat, col.valueFormatOptions);\r\n if (col.cellFormat != null) return renderCellFormat(col.cellFormat, value, row, col.cellFormatOptions);\r\n return value as React.ReactNode;\r\n}\r\n\r\n const themeClass = theme === 'dark' ? 'dyn-table-wrapper--dark' : 'dyn-table-wrapper--light';\r\n const showToolbar = rowSelection || filterable || columns.length > 1;\r\n return (\r\n <div className={`dyn-table-wrapper ${themeClass} ${className}`.trim()}>\r\n {showToolbar && (\r\n <div className={`dyn-table-toolbar ${isMobile ? 'dyn-table-toolbar--mobile' : ''}`.trim()}>\r\n <div className=\"dyn-table-toolbar__actions\">\r\n {rowSelection && (\r\n <>\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-toolbar__btn\"\r\n onClick={selectAll}\r\n aria-label=\"Tümünü seç\"\r\n >\r\n Tümünü seç\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-toolbar__btn\"\r\n onClick={clearSelection}\r\n disabled={selectedKeys.length === 0}\r\n aria-label=\"Seçimi kaldır\"\r\n >\r\n Kaldır\r\n </button>\r\n <div ref={selectionDropdownRef} className=\"dyn-table-toolbar__dropdown\">\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-toolbar__dropdown-trigger\"\r\n onClick={() => setSelectionDropdownOpen((v) => !v)}\r\n disabled={selectedKeys.length === 0}\r\n aria-expanded={selectionDropdownOpen}\r\n aria-haspopup=\"listbox\"\r\n aria-label=\"Seçilenleri göster\"\r\n >\r\n <span>{selectedKeys.length} seçili</span>\r\n <svg\r\n className={`dyn-table-toolbar__dropdown-chevron ${selectionDropdownOpen ? 'dyn-table-toolbar__dropdown-chevron--open' : ''}`}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n width=\"14\"\r\n height=\"14\"\r\n >\r\n <path d=\"M6 9l6 6 6-6\" />\r\n </svg>\r\n </button>\r\n {selectionDropdownOpen && selectedKeys.length > 0 && (\r\n <div\r\n className=\"dyn-table-toolbar__dropdown-panel\"\r\n role=\"listbox\"\r\n aria-label=\"Seçilen satırlar\"\r\n >\r\n <ul className=\"dyn-table-toolbar__dropdown-list\">\r\n {selectedRows.map((row) => {\r\n const key = getRowKey(row) as string | number;\r\n const label = selectionToolbarLabel?.(row) ?? String(key);\r\n return (\r\n <li key={String(key)} className=\"dyn-table-toolbar__dropdown-item\">\r\n <span className=\"dyn-table-toolbar__dropdown-item-label\">{label}</span>\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-toolbar__dropdown-item-remove\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n toggleRow(key);\r\n }}\r\n aria-label={`${label} seçimini kaldır`}\r\n >\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" width=\"12\" height=\"12\">\r\n <path d=\"M18 6L6 18M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n </>\r\n )}\r\n {filterable && (\r\n <button\r\n type=\"button\"\r\n className={`dyn-table-toolbar__btn dyn-table-toolbar__btn--filter ${filterPanelOpen ? 'dyn-table-toolbar__btn--filter-active' : ''}`}\r\n onClick={() => setFilterPanelOpen((v) => !v)}\r\n aria-expanded={filterPanelOpen}\r\n aria-label=\"Filtreler\"\r\n >\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" width=\"16\" height=\"16\">\r\n <path d=\"M22 3H2l8 9.46V19l4 2v-8.54L22 3z\" />\r\n </svg>\r\n <span className=\"dyn-table-toolbar__btn-label\">Filtre</span>\r\n {activeFilterCount > 0 && (\r\n <span className=\"dyn-table-toolbar__filter-count\">{activeFilterCount}</span>\r\n )}\r\n </button>\r\n )}\r\n {columns.length > 1 && (\r\n <div ref={columnVisibilityDropdownRef} className=\"dyn-table-toolbar__dropdown\">\r\n <button\r\n type=\"button\"\r\n className={`dyn-table-toolbar__dropdown-trigger ${columnVisibilityDropdownOpen ? 'dyn-table-toolbar__dropdown-trigger--open' : ''}`}\r\n onClick={() => setColumnVisibilityDropdownOpen((v) => !v)}\r\n aria-expanded={columnVisibilityDropdownOpen}\r\n aria-haspopup=\"dialog\"\r\n aria-label=\"Kolonları göster/gizle\"\r\n >\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" width=\"16\" height=\"16\">\r\n <path d=\"M3 6h18M3 12h18M3 18h18M7 6v12M11 12v6M15 6v12M19 12v6\" />\r\n </svg>\r\n <span className=\"dyn-table-toolbar__btn-label\">Kolonlar</span>\r\n <svg\r\n className={`dyn-table-toolbar__dropdown-chevron ${columnVisibilityDropdownOpen ? 'dyn-table-toolbar__dropdown-chevron--open' : ''}`}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n width=\"14\"\r\n height=\"14\"\r\n >\r\n <path d=\"M6 9l6 6 6-6\" />\r\n </svg>\r\n </button>\r\n {columnVisibilityDropdownOpen && (\r\n <div\r\n className=\"dyn-table-toolbar__dropdown-panel dyn-table-toolbar__dropdown-panel--columns\"\r\n role=\"dialog\"\r\n aria-label=\"Kolon görünürlüğü\"\r\n >\r\n <div className=\"dyn-table-column-visibility__header\">Görünen kolonlar</div>\r\n <ul className=\"dyn-table-toolbar__dropdown-list\">\r\n {columns.map((col) => {\r\n const visible = currentVisibility[col.id] !== false;\r\n const headerLabel = typeof col.header === 'string' ? col.header : col.id;\r\n return (\r\n <li key={col.id} className=\"dyn-table-toolbar__dropdown-item dyn-table-toolbar__dropdown-item--checkbox\">\r\n <label className=\"dyn-table-column-visibility__label\">\r\n <input\r\n type=\"checkbox\"\r\n checked={visible}\r\n onChange={() => toggleColumnVisibility(col.id)}\r\n aria-label={`${headerLabel} ${visible ? 'gizle' : 'göster'}`}\r\n />\r\n <span className=\"dyn-table-toolbar__dropdown-item-label\">{headerLabel}</span>\r\n </label>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n {filterable ? (\r\n <div className=\"dyn-table-main\">\r\n {filterPanelOpen && (\r\n <div\r\n className=\"dyn-table-filter-overlay\"\r\n role=\"presentation\"\r\n onClick={() => setFilterPanelOpen(false)}\r\n aria-hidden\r\n />\r\n )}\r\n <div\r\n className={`dyn-table-filter-panel ${filterPanelOpen ? 'dyn-table-filter-panel--open' : ''}`}\r\n style={{ width: filterPanelWidth }}\r\n aria-label=\"Filtreler paneli\"\r\n >\r\n <div className=\"dyn-table-filter-panel__header\">\r\n <h3 className=\"dyn-table-filter-panel__title\">Filtreler</h3>\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-filter-panel__close\"\r\n onClick={() => setFilterPanelOpen(false)}\r\n aria-label=\"Paneli kapat\"\r\n >\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" width=\"20\" height=\"20\">\r\n <path d=\"M18 6L6 18M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div className=\"dyn-table-filter-panel__body\">\r\n {activeFilterCount > 0 && (\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-filter-panel__clear\"\r\n onClick={clearFilters}\r\n >\r\n Filtreleri temizle\r\n </button>\r\n )}\r\n {filterableColumns.map((col) => {\r\n const headerLabel = typeof col.header === 'string' ? col.header : col.id;\r\n const value = currentFilterModel[col.id] ?? '';\r\n return (\r\n <div key={col.id} className=\"dyn-table-filter-panel__item\">\r\n <label className=\"dyn-table-filter-panel__label\">{headerLabel}</label>\r\n {col.filter === 'text' && (\r\n <input\r\n type=\"text\"\r\n className=\"dyn-table-filter-panel__input\"\r\n value={value as string}\r\n onChange={(e) =>\r\n setFilterModel({ ...currentFilterModel, [col.id]: e.target.value || null })\r\n }\r\n placeholder=\"Ara...\"\r\n />\r\n )}\r\n {col.filter === 'number' && (\r\n <input\r\n type=\"number\"\r\n className=\"dyn-table-filter-panel__input\"\r\n value={value === '' || value === null ? '' : value}\r\n onChange={(e) => {\r\n const v = e.target.value;\r\n setFilterModel({\r\n ...currentFilterModel,\r\n [col.id]: v === '' ? null : Number(v),\r\n });\r\n }}\r\n placeholder=\"—\"\r\n />\r\n )}\r\n {col.filter === 'date' && (\r\n <input\r\n type=\"date\"\r\n className=\"dyn-table-filter-panel__input\"\r\n value={value === '' || value === null ? '' : String(value)}\r\n onChange={(e) =>\r\n setFilterModel({\r\n ...currentFilterModel,\r\n [col.id]: e.target.value || null,\r\n })\r\n }\r\n />\r\n )}\r\n {col.filter === 'select' && (\r\n <select\r\n className=\"dyn-table-filter-panel__select\"\r\n value={value === '' || value === null ? '' : String(value)}\r\n onChange={(e) =>\r\n setFilterModel({\r\n ...currentFilterModel,\r\n [col.id]: e.target.value === '' ? null : e.target.value,\r\n })\r\n }\r\n >\r\n <option value=\"\">Tümü</option>\r\n {(col.filterSelectOptions ?? []).map((opt) => (\r\n <option key={String(opt.value)} value={String(opt.value)}>\r\n {opt.label}\r\n </option>\r\n ))}\r\n </select>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n <div className=\"dyn-table-main__content\">\r\n {isMobile ? (\r\n <div\r\n className=\"dyn-table-mobile\"\r\n style={{\r\n ...(minHeight != null && {\r\n minHeight: typeof minHeight === 'number' ? `${minHeight}px` : minHeight,\r\n }),\r\n ...(height != null && {\r\n height: typeof height === 'number' ? `${height}px` : height,\r\n }),\r\n }}\r\n >\r\n {loading ? (\r\n <div className=\"dyn-table-cards\" aria-busy>\r\n {Array.from({ length: Math.min(skeletonRowCount, 5) }, (_, idx) => (\r\n <div key={`skeleton-card-${idx}`} className=\"dyn-table-card dyn-table-card--skeleton\">\r\n {rowSelection && (\r\n <div className=\"dyn-table-card__selection\">\r\n <span className=\"dyn-table-skeleton dyn-table-skeleton--checkbox\" />\r\n </div>\r\n )}\r\n {visibleColumns.map((col) => (\r\n <div key={col.id} className=\"dyn-table-card__row\">\r\n <span className=\"dyn-table-card__label\">\r\n {typeof col.header === 'string' ? col.header : col.id}\r\n </span>\r\n <span className=\"dyn-table-card__value\">\r\n <span className=\"dyn-table-skeleton\" />\r\n </span>\r\n </div>\r\n ))}\r\n {actions != null && <div className=\"dyn-table-card__actions\" />}\r\n </div>\r\n ))}\r\n </div>\r\n ) : displayData.length === 0 ? (\r\n <div className=\"dyn-table-empty dyn-table-empty--card\">\r\n {emptyMessage}\r\n </div>\r\n ) : (\r\n <div className=\"dyn-table-cards\">\r\n {displayData.map((row, index) => {\r\n const rowKey = getRowKey(row) as string | number;\r\n return (\r\n <div\r\n key={rowKey}\r\n className={`dyn-table-card ${typeof rowClassName === 'function' ? (rowClassName as (row: T, index: number) => string)(row, index) : rowClassName ?? ''}`.trim()}\r\n >\r\n {rowSelection && (\r\n <div className=\"dyn-table-card__selection\">\r\n <label className=\"dyn-table-selection-cell\">\r\n <input\r\n type=\"checkbox\"\r\n checked={selectedSet.has(rowKey)}\r\n onChange={() => toggleRow(rowKey)}\r\n aria-label=\"Satırı seç\"\r\n />\r\n </label>\r\n </div>\r\n )}\r\n {visibleColumns.map((col) => {\r\n const value = getCellValue(row, col);\r\n const display = getCellDisplay(row, col, value);\r\n return (\r\n <div key={col.id} className=\"dyn-table-card__row\">\r\n <span className=\"dyn-table-card__label\">\r\n {typeof col.header === 'string' ? col.header : col.header}\r\n </span>\r\n <span className=\"dyn-table-card__value\">{display}</span>\r\n </div>\r\n );\r\n })}\r\n {actions != null && (\r\n <div className=\"dyn-table-card__actions\">\r\n {actions(row)}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div\r\n ref={scrollRef}\r\n className={`dyn-table-scroll ${useVirtualization ? 'dyn-table-scroll--virtualized' : ''} ${useStickyHeader ? 'dyn-table-scroll--sticky-header' : ''}`.trim()}\r\n style={{\r\n ...(minHeight != null && {\r\n minHeight: typeof minHeight === 'number' ? `${minHeight}px` : minHeight,\r\n }),\r\n ...(height != null && {\r\n height: typeof height === 'number' ? `${height}px` : height,\r\n }),\r\n ...(useVirtualization && {\r\n overflowY: 'auto',\r\n height: height != null\r\n ? (typeof height === 'number' ? `${height}px` : height)\r\n : minHeight != null\r\n ? (typeof minHeight === 'number' ? `${minHeight}px` : minHeight)\r\n : 400,\r\n }),\r\n ...(useStickyHeader && !useVirtualization && {\r\n overflowY: 'auto',\r\n height: height != null\r\n ? (typeof height === 'number' ? `${height}px` : height)\r\n : minHeight != null\r\n ? (typeof minHeight === 'number' ? `${minHeight}px` : minHeight)\r\n : 400,\r\n }),\r\n }}\r\n onScroll={useVirtualization ? (e) => setScrollTop(e.currentTarget.scrollTop) : undefined}\r\n >\r\n <table className=\"dyn-table dyn-table--fixed\">\r\n <colgroup>\r\n {rowSelection && (\r\n <col style={{ width: SELECTION_COLUMN_WIDTH }} />\r\n )}\r\n {visibleColumns.map((col, i) => (\r\n <col key={col.id} style={{ width: computedWidths[i], minWidth: getMinWidthForColumn(col) }} />\r\n ))}\r\n {actions != null && (\r\n <col style={{ width: actionsWidthPx }} />\r\n )}\r\n </colgroup>\r\n <thead className={headerClassName}>\r\n <tr>\r\n {rowSelection && (\r\n <th className=\"dyn-table-th dyn-table-th--selection\" style={{ width: SELECTION_COLUMN_WIDTH }}>\r\n <SelectionHeaderCheckbox\r\n displayData={displayData}\r\n getRowKey={getRowKey}\r\n selectedSet={selectedSet}\r\n onToggleAll={toggleAllOnPage}\r\n />\r\n </th>\r\n )}\r\n {visibleColumns.map((col, i) => {\r\n const isSortable = sortable && col.sortable !== false && !col.suppressSort;\r\n const isSorted = sortState.id === col.id;\r\n const isPinnedLeft = col.pinned === 'left';\r\n const isPinnedRight = col.pinned === 'right';\r\n const isDragging = draggedColId === col.id;\r\n const isDragOver = dragOverIndex === i;\r\n const thClass = [\r\n 'dyn-table-th',\r\n isSortable ? 'dyn-table-th--sortable' : '',\r\n isSorted ? 'dyn-table-th--sorted' : '',\r\n col.resizable ? 'dyn-table-th--resizable' : '',\r\n isPinnedLeft ? 'dyn-table-th--pinned-left' : '',\r\n isPinnedRight ? 'dyn-table-th--pinned-right' : '',\r\n isDragging ? 'dyn-table-th--dragging' : '',\r\n isDragOver ? 'dyn-table-th--drag-over' : '',\r\n col.headerClass ?? '',\r\n ].filter(Boolean).join(' ');\r\n return (\r\n <th\r\n key={col.id}\r\n className={thClass}\r\n style={{\r\n width: computedWidths[i],\r\n minWidth: getMinWidthForColumn(col),\r\n maxWidth: parseWidth(col.maxWidth),\r\n textAlign: col.headerAlign ?? col.align ?? 'left',\r\n ...(isPinnedLeft && pinnedLeftOffsets[i] != null\r\n ? { left: pinnedLeftOffsets[i] }\r\n : {}),\r\n ...(isPinnedRight && pinnedRightOffsets[i] != null\r\n ? { right: pinnedRightOffsets[i] }\r\n : {}),\r\n ...col.headerStyle,\r\n }}\r\n title={col.headerTooltip}\r\n onClick={() => isSortable && handleSort(col.id)}\r\n onDragOver={columnReorder && !isMobile ? (e) => handleColumnDragOver(e, i) : undefined}\r\n onDragLeave={columnReorder && !isMobile ? handleColumnDragLeave : undefined}\r\n onDrop={columnReorder && !isMobile ? (e) => handleColumnDrop(e, i) : undefined}\r\n >\r\n <span className=\"dyn-table-th__content\">\r\n {columnReorder && !isMobile && (\r\n <span\r\n className=\"dyn-table-th__drag-handle\"\r\n draggable\r\n onDragStart={(e) => handleColumnDragStart(e, col.id)}\r\n onDragEnd={handleColumnDragEnd}\r\n onClick={(e) => e.stopPropagation()}\r\n aria-label={`${col.id} kolonunu taşı`}\r\n >\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden>\r\n <path d=\"M8 6h2V4H8v2zm0 4h2V8H8v2zm0 4h2v-2H8v2zm4-8h2V4h-2v2zm0 4h2V8h-2v2zm0 4h2v-2h-2v2z\" />\r\n </svg>\r\n </span>\r\n )}\r\n {col.header}\r\n {isSortable && (\r\n <span className=\"dyn-table-sort\" aria-hidden>\r\n {isSorted && sortState.direction === 'asc' && (\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 15l5-5 5 5H7z\" />\r\n </svg>\r\n )}\r\n {isSorted && sortState.direction === 'desc' && (\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 10l5 5 5-5H7z\" />\r\n </svg>\r\n )}\r\n {!isSorted && (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 15l5-5 5 5H7z\" />\r\n </svg>\r\n )}\r\n </span>\r\n )}\r\n </span>\r\n {col.resizable && (\r\n <ResizeHandle\r\n colId={col.id}\r\n minWidth={getMinWidthForColumn(col)}\r\n maxWidth={parseWidth(col.maxWidth)}\r\n startWidth={computedWidths[i]}\r\n onResize={(w) =>\r\n setColumnWidths((prev) => ({ ...prev, [col.id]: w }))\r\n }\r\n />\r\n )}\r\n </th>\r\n );\r\n })}\r\n {actions != null && (\r\n <th\r\n className=\"dyn-table-th dyn-table-th--actions\"\r\n style={{\r\n width: actionsWidthPx,\r\n minWidth: actionsWidthPx,\r\n textAlign: actionsAlign,\r\n }}\r\n >\r\n {actionsHeader}\r\n </th>\r\n )}\r\n </tr>\r\n </thead>\r\n <tbody className={bodyClassName}>\r\n {loading ? (\r\n Array.from({ length: skeletonRowCount }, (_, rowIdx) => (\r\n <tr key={`skeleton-${rowIdx}`} className=\"dyn-table-row--skeleton\" aria-busy>\r\n {rowSelection && (\r\n <td className=\"dyn-table-td dyn-table-td--selection\" style={{ width: SELECTION_COLUMN_WIDTH }}>\r\n <span className=\"dyn-table-skeleton dyn-table-skeleton--checkbox\" />\r\n </td>\r\n )}\r\n {visibleColumns.map((col, i) => (\r\n <td\r\n key={col.id}\r\n className=\"dyn-table-td\"\r\n style={{\r\n width: computedWidths[i],\r\n minWidth: getMinWidthForColumn(col),\r\n textAlign: col.align ?? 'left',\r\n }}\r\n >\r\n <span className=\"dyn-table-skeleton\" />\r\n </td>\r\n ))}\r\n {actions != null && (\r\n <td className=\"dyn-table-td dyn-table-td--actions\" style={{ width: actionsWidthPx }} />\r\n )}\r\n </tr>\r\n ))\r\n ) : displayData.length === 0 ? (\r\n <tr>\r\n <td\r\n colSpan={\r\n visibleColumns.length +\r\n (actions != null ? 1 : 0) +\r\n (rowSelection ? 1 : 0)\r\n }\r\n className=\"dyn-table-empty\"\r\n >\r\n {emptyMessage}\r\n </td>\r\n </tr>\r\n ) : useVirtualization ? (\r\n <>\r\n {virtualStart > 0 && (\r\n <tr aria-hidden className=\"dyn-table-virtual-spacer\">\r\n <td\r\n colSpan={\r\n visibleColumns.length +\r\n (actions != null ? 1 : 0) +\r\n (rowSelection ? 1 : 0)\r\n }\r\n style={{ height: virtualStart * rowHeight, padding: 0, border: 'none', verticalAlign: 'top', lineHeight: 0 }}\r\n />\r\n </tr>\r\n )}\r\n {displayData.slice(virtualStart, virtualEnd).map((row, idx) => {\r\n const index = virtualStart + idx;\r\n const rowKey = getRowKey(row) as string | number;\r\n return (\r\n <tr\r\n key={rowKey}\r\n style={{ height: rowHeight }}\r\n className={[\r\n typeof rowClassName === 'function'\r\n ? (rowClassName as (row: T, index: number) => string)(row, index)\r\n : (rowClassName ?? ''),\r\n rowSelection && selectedSet.has(rowKey) ? 'dyn-table-row--selected' : '',\r\n ].filter(Boolean).join(' ')}\r\n >\r\n {rowSelection && (\r\n <td className=\"dyn-table-td dyn-table-td--selection\" style={{ width: SELECTION_COLUMN_WIDTH }}>\r\n <label className=\"dyn-table-selection-cell\">\r\n <input\r\n type=\"checkbox\"\r\n checked={selectedSet.has(rowKey)}\r\n onChange={() => toggleRow(rowKey)}\r\n aria-label=\"Satırı seç\"\r\n />\r\n </label>\r\n </td>\r\n )}\r\n {visibleColumns.map((col, i) => {\r\n const value = getCellValue(row, col);\r\n const display =\r\n col.cell != null\r\n ? col.cell(row)\r\n : col.valueFormatter != null\r\n ? col.valueFormatter(value, row)\r\n : col.valueFormat != null\r\n ? applyValueFormat(value, col.valueFormat, col.valueFormatOptions)\r\n : col.cellFormat != null\r\n ? renderCellFormat(col.cellFormat, value, row, col.cellFormatOptions)\r\n : (value as React.ReactNode);\r\n const cellClass =\r\n typeof col.cellClass === 'function'\r\n ? col.cellClass(row, value)\r\n : col.cellClass ?? '';\r\n const cellStyle =\r\n typeof col.cellStyle === 'function'\r\n ? col.cellStyle(row, value)\r\n : col.cellStyle ?? {};\r\n const tooltip = col.tooltip?.(row, value);\r\n const isPinnedLeft = col.pinned === 'left';\r\n const isPinnedRight = col.pinned === 'right';\r\n const tdClass = [\r\n 'dyn-table-td',\r\n isPinnedLeft ? 'dyn-table-td--pinned-left' : '',\r\n isPinnedRight ? 'dyn-table-td--pinned-right' : '',\r\n cellClass,\r\n ].filter(Boolean).join(' ');\r\n return (\r\n <td\r\n key={col.id}\r\n className={tdClass.trim()}\r\n style={{\r\n width: computedWidths[i],\r\n minWidth: getMinWidthForColumn(col),\r\n textAlign: col.align ?? 'left',\r\n ...(col.wrapText ? { whiteSpace: 'normal' } : {}),\r\n ...(isPinnedLeft && pinnedLeftOffsets[i] != null\r\n ? { left: pinnedLeftOffsets[i] }\r\n : {}),\r\n ...(isPinnedRight && pinnedRightOffsets[i] != null\r\n ? { right: pinnedRightOffsets[i] }\r\n : {}),\r\n ...cellStyle,\r\n }}\r\n title={tooltip}\r\n >\r\n {display}\r\n </td>\r\n );\r\n })}\r\n {actions != null && (\r\n <td\r\n className=\"dyn-table-td dyn-table-td--actions\"\r\n style={{ textAlign: actionsAlign }}\r\n >\r\n {actions(row)}\r\n </td>\r\n )}\r\n </tr>\r\n );\r\n })}\r\n {virtualEnd < displayData.length && (\r\n <tr aria-hidden className=\"dyn-table-virtual-spacer\">\r\n <td\r\n colSpan={\r\n visibleColumns.length +\r\n (actions != null ? 1 : 0) +\r\n (rowSelection ? 1 : 0)\r\n }\r\n style={{ height: (displayData.length - virtualEnd) * rowHeight, padding: 0, border: 'none', verticalAlign: 'top', lineHeight: 0 }}\r\n />\r\n </tr>\r\n )}\r\n </>\r\n ) : (\r\n displayData.map((row, index) => {\r\n const rowKey = getRowKey(row) as string | number;\r\n return (\r\n <tr\r\n key={rowKey}\r\n className={[\r\n typeof rowClassName === 'function'\r\n ? (rowClassName as (row: T, index: number) => string)(row, index)\r\n : (rowClassName ?? ''),\r\n rowSelection && selectedSet.has(rowKey) ? 'dyn-table-row--selected' : '',\r\n ].filter(Boolean).join(' ')}\r\n >\r\n {rowSelection && (\r\n <td className=\"dyn-table-td dyn-table-td--selection\" style={{ width: SELECTION_COLUMN_WIDTH }}>\r\n <label className=\"dyn-table-selection-cell\">\r\n <input\r\n type=\"checkbox\"\r\n checked={selectedSet.has(rowKey)}\r\n onChange={() => toggleRow(rowKey)}\r\n aria-label={`Satırı seç`}\r\n />\r\n </label>\r\n </td>\r\n )}\r\n {visibleColumns.map((col, i) => {\r\n const value = getCellValue(row, col);\r\n const display =\r\n col.cell != null\r\n ? col.cell(row)\r\n : col.valueFormatter != null\r\n ? col.valueFormatter(value, row)\r\n : col.valueFormat != null\r\n ? applyValueFormat(value, col.valueFormat, col.valueFormatOptions)\r\n : col.cellFormat != null\r\n ? renderCellFormat(col.cellFormat, value, row, col.cellFormatOptions)\r\n : (value as React.ReactNode);\r\n const cellClass =\r\n typeof col.cellClass === 'function'\r\n ? col.cellClass(row, value)\r\n : col.cellClass ?? '';\r\n const cellStyle =\r\n typeof col.cellStyle === 'function'\r\n ? col.cellStyle(row, value)\r\n : col.cellStyle ?? {};\r\n const tooltip = col.tooltip?.(row, value);\r\n const isPinnedLeft = col.pinned === 'left';\r\n const isPinnedRight = col.pinned === 'right';\r\n const tdClass = [\r\n 'dyn-table-td',\r\n isPinnedLeft ? 'dyn-table-td--pinned-left' : '',\r\n isPinnedRight ? 'dyn-table-td--pinned-right' : '',\r\n cellClass,\r\n ].filter(Boolean).join(' ');\r\n return (\r\n <td\r\n key={col.id}\r\n className={tdClass.trim()}\r\n style={{\r\n width: computedWidths[i],\r\n minWidth: getMinWidthForColumn(col),\r\n textAlign: col.align ?? 'left',\r\n ...(col.wrapText ? { whiteSpace: 'normal' } : {}),\r\n ...(isPinnedLeft && pinnedLeftOffsets[i] != null\r\n ? { left: pinnedLeftOffsets[i] }\r\n : {}),\r\n ...(isPinnedRight && pinnedRightOffsets[i] != null\r\n ? { right: pinnedRightOffsets[i] }\r\n : {}),\r\n ...cellStyle,\r\n }}\r\n title={tooltip}\r\n >\r\n {display}\r\n </td>\r\n );\r\n })}\r\n {actions != null && (\r\n <td\r\n className=\"dyn-table-td dyn-table-td--actions\"\r\n style={{ textAlign: actionsAlign }}\r\n >\r\n {actions(row)}\r\n </td>\r\n )}\r\n </tr>\r\n );\r\n })\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n ) : (\r\n isMobile ? (\r\n <div\r\n className=\"dyn-table-mobile\"\r\n style={{\r\n ...(minHeight != null && {\r\n minHeight: typeof minHeight === 'number' ? `${minHeight}px` : minHeight,\r\n }),\r\n ...(height != null && {\r\n height: typeof height === 'number' ? `${height}px` : height,\r\n }),\r\n }}\r\n >\r\n {loading ? (\r\n <div className=\"dyn-table-cards\" aria-busy>\r\n {Array.from({ length: Math.min(skeletonRowCount, 5) }, (_, idx) => (\r\n <div key={`skeleton-card-${idx}`} className=\"dyn-table-card dyn-table-card--skeleton\">\r\n {rowSelection && (\r\n <div className=\"dyn-table-card__selection\">\r\n <span className=\"dyn-table-skeleton dyn-table-skeleton--checkbox\" />\r\n </div>\r\n )}\r\n {visibleColumns.map((col) => (\r\n <div key={col.id} className=\"dyn-table-card__row\">\r\n <span className=\"dyn-table-card__label\">\r\n {typeof col.header === 'string' ? col.header : col.id}\r\n </span>\r\n <span className=\"dyn-table-card__value\">\r\n <span className=\"dyn-table-skeleton\" />\r\n </span>\r\n </div>\r\n ))}\r\n {actions != null && <div className=\"dyn-table-card__actions\" />}\r\n </div>\r\n ))}\r\n </div>\r\n ) : displayData.length === 0 ? (\r\n <div className=\"dyn-table-empty dyn-table-empty--card\">\r\n {emptyMessage}\r\n </div>\r\n ) : (\r\n <div className=\"dyn-table-cards\">\r\n {displayData.map((row) => {\r\n const rowKey = getRowKey(row) as string | number;\r\n return (\r\n <div\r\n key={rowKey}\r\n className={`dyn-table-card ${typeof rowClassName === 'function' ? (rowClassName as (row: T, index: number) => string)(row, 0) : rowClassName ?? ''}`.trim()}\r\n >\r\n {rowSelection && (\r\n <div className=\"dyn-table-card__selection\">\r\n <label className=\"dyn-table-selection-cell\">\r\n <input\r\n type=\"checkbox\"\r\n checked={selectedSet.has(rowKey)}\r\n onChange={() => toggleRow(rowKey)}\r\n aria-label=\"Satırı seç\"\r\n />\r\n </label>\r\n </div>\r\n )}\r\n {visibleColumns.map((col) => {\r\n const value = getCellValue(row, col);\r\n const display = getCellDisplay(row, col, value);\r\n return (\r\n <div key={col.id} className=\"dyn-table-card__row\">\r\n <span className=\"dyn-table-card__label\">\r\n {typeof col.header === 'string' ? col.header : col.header}\r\n </span>\r\n <span className=\"dyn-table-card__value\">{display}</span>\r\n </div>\r\n );\r\n })}\r\n {actions != null && (\r\n <div className=\"dyn-table-card__actions\">\r\n {actions(row)}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div\r\n ref={scrollRef}\r\n className={`dyn-table-scroll ${useVirtualization ? 'dyn-table-scroll--virtualized' : ''} ${useStickyHeader ? 'dyn-table-scroll--sticky-header' : ''}`.trim()}\r\n style={{\r\n ...(minHeight != null && {\r\n minHeight: typeof minHeight === 'number' ? `${minHeight}px` : minHeight,\r\n }),\r\n ...(height != null && {\r\n height: typeof height === 'number' ? `${height}px` : height,\r\n }),\r\n ...(useVirtualization && {\r\n overflowY: 'auto',\r\n height: height != null\r\n ? (typeof height === 'number' ? `${height}px` : height)\r\n : minHeight != null\r\n ? (typeof minHeight === 'number' ? `${minHeight}px` : minHeight)\r\n : 400,\r\n }),\r\n ...(useStickyHeader && !useVirtualization && {\r\n overflowY: 'auto',\r\n height: height != null\r\n ? (typeof height === 'number' ? `${height}px` : height)\r\n : minHeight != null\r\n ? (typeof minHeight === 'number' ? `${minHeight}px` : minHeight)\r\n : 400,\r\n }),\r\n }}\r\n onScroll={useVirtualization ? (e) => setScrollTop(e.currentTarget.scrollTop) : undefined}\r\n >\r\n <table className=\"dyn-table dyn-table--fixed\">\r\n <colgroup>\r\n {rowSelection && <col style={{ width: SELECTION_COLUMN_WIDTH }} />}\r\n {visibleColumns.map((col, i) => (\r\n <col key={col.id} style={{ width: computedWidths[i], minWidth: getMinWidthForColumn(col) }} />\r\n ))}\r\n {actions != null && <col style={{ width: actionsWidthPx }} />}\r\n </colgroup>\r\n <thead className={headerClassName}>\r\n <tr>\r\n {rowSelection && (\r\n <th className=\"dyn-table-th dyn-table-th--selection\" style={{ width: SELECTION_COLUMN_WIDTH }}>\r\n <SelectionHeaderCheckbox\r\n displayData={displayData}\r\n getRowKey={getRowKey}\r\n selectedSet={selectedSet}\r\n onToggleAll={toggleAllOnPage}\r\n />\r\n </th>\r\n )}\r\n {visibleColumns.map((col, i) => {\r\n const isSortable = sortable && col.sortable !== false && !col.suppressSort;\r\n const isSorted = sortState.id === col.id;\r\n const isDragging = draggedColId === col.id;\r\n const isDragOver = dragOverIndex === i;\r\n const thClass = [\r\n 'dyn-table-th',\r\n isSortable ? 'dyn-table-th--sortable' : '',\r\n isSorted ? 'dyn-table-th--sorted' : '',\r\n col.resizable ? 'dyn-table-th--resizable' : '',\r\n isDragging ? 'dyn-table-th--dragging' : '',\r\n isDragOver ? 'dyn-table-th--drag-over' : '',\r\n col.headerClass ?? '',\r\n ].filter(Boolean).join(' ');\r\n return (\r\n <th\r\n key={col.id}\r\n className={thClass}\r\n style={{\r\n width: computedWidths[i],\r\n minWidth: getMinWidthForColumn(col),\r\n maxWidth: parseWidth(col.maxWidth),\r\n textAlign: col.headerAlign ?? col.align ?? 'left',\r\n ...col.headerStyle,\r\n }}\r\n title={col.headerTooltip}\r\n onClick={() => isSortable && handleSort(col.id)}\r\n onDragOver={columnReorder && !isMobile ? (e) => handleColumnDragOver(e, i) : undefined}\r\n onDragLeave={columnReorder && !isMobile ? handleColumnDragLeave : undefined}\r\n onDrop={columnReorder && !isMobile ? (e) => handleColumnDrop(e, i) : undefined}\r\n >\r\n <span className=\"dyn-table-th__content\">\r\n {columnReorder && !isMobile && (\r\n <span\r\n className=\"dyn-table-th__drag-handle\"\r\n draggable\r\n onDragStart={(e) => handleColumnDragStart(e, col.id)}\r\n onDragEnd={handleColumnDragEnd}\r\n onClick={(e) => e.stopPropagation()}\r\n aria-label={`${col.id} kolonunu taşı`}\r\n >\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden>\r\n <path d=\"M8 6h2V4H8v2zm0 4h2V8H8v2zm0 4h2v-2H8v2zm4-8h2V4h-2v2zm0 4h2V8h-2v2zm0 4h2v-2h-2v2z\" />\r\n </svg>\r\n </span>\r\n )}\r\n {col.header}\r\n {isSortable && (\r\n <span className=\"dyn-table-sort\" aria-hidden>\r\n {isSorted && sortState.direction === 'asc' && (\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 15l5-5 5 5H7z\" />\r\n </svg>\r\n )}\r\n {isSorted && sortState.direction === 'desc' && (\r\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 10l5 5 5-5H7z\" />\r\n </svg>\r\n )}\r\n {!isSorted && (\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\r\n <path d=\"M7 15l5-5 5 5H7z\" />\r\n </svg>\r\n )}\r\n </span>\r\n )}\r\n </span>\r\n {col.resizable && (\r\n <ResizeHandle\r\n colId={col.id}\r\n minWidth={getMinWidthForColumn(col)}\r\n maxWidth={parseWidth(col.maxWidth)}\r\n startWidth={computedWidths[i]}\r\n onResize={(w) =>\r\n setColumnWidths((prev) => ({ ...prev, [col.id]: w }))\r\n }\r\n />\r\n )}\r\n </th>\r\n );\r\n })}\r\n {actions != null && (\r\n <th\r\n className=\"dyn-table-th dyn-table-th--actions\"\r\n style={{\r\n width: actionsWidthPx,\r\n minWidth: actionsWidthPx,\r\n textAlign: actionsAlign,\r\n }}\r\n >\r\n {actionsHeader}\r\n </th>\r\n )}\r\n </tr>\r\n </thead>\r\n <tbody className={bodyClassName}>\r\n {loading ? (\r\n Array.from({ length: skeletonRowCount }, (_, rowIdx) => (\r\n <tr key={`skeleton-${rowIdx}`} className=\"dyn-table-row--skeleton\" aria-busy>\r\n {rowSelection && (\r\n <td className=\"dyn-table-td dyn-table-td--selection\" style={{ width: SELECTION_COLUMN_WIDTH }}>\r\n <span className=\"dyn-table-skeleton dyn-table-skeleton--checkbox\" />\r\n </td>\r\n )}\r\n {visibleColumns.map((col, i) => (\r\n <td\r\n key={col.id}\r\n className=\"dyn-table-td\"\r\n style={{ width: computedWidths[i], minWidth: getMinWidthForColumn(col), textAlign: col.align ?? 'left' }}\r\n >\r\n <span className=\"dyn-table-skeleton\" />\r\n </td>\r\n ))}\r\n {actions != null && (\r\n <td className=\"dyn-table-td dyn-table-td--actions\" style={{ width: actionsWidthPx }} />\r\n )}\r\n </tr>\r\n ))\r\n ) : displayData.length === 0 ? (\r\n <tr>\r\n <td\r\n colSpan={\r\n visibleColumns.length +\r\n (actions != null ? 1 : 0) +\r\n (rowSelection ? 1 : 0)\r\n }\r\n className=\"dyn-table-empty\"\r\n >\r\n {emptyMessage}\r\n </td>\r\n </tr>\r\n ) : (\r\n displayData.map((row, index) => {\r\n const rowKey = getRowKey(row) as string | number;\r\n return (\r\n <tr\r\n key={rowKey}\r\n className={[\r\n typeof rowClassName === 'function'\r\n ? (rowClassName as (row: T, index: number) => string)(row, index)\r\n : (rowClassName ?? ''),\r\n rowSelection && selectedSet.has(rowKey) ? 'dyn-table-row--selected' : '',\r\n ].filter(Boolean).join(' ')}\r\n >\r\n {rowSelection && (\r\n <td className=\"dyn-table-td dyn-table-td--selection\" style={{ width: SELECTION_COLUMN_WIDTH }}>\r\n <label className=\"dyn-table-selection-cell\">\r\n <input\r\n type=\"checkbox\"\r\n checked={selectedSet.has(rowKey)}\r\n onChange={() => toggleRow(rowKey)}\r\n aria-label={`Satırı seç`}\r\n />\r\n </label>\r\n </td>\r\n )}\r\n {visibleColumns.map((col, i) => {\r\n const value = getCellValue(row, col);\r\n const display =\r\n col.cell != null\r\n ? col.cell(row)\r\n : col.valueFormatter != null\r\n ? col.valueFormatter(value, row)\r\n : col.valueFormat != null\r\n ? applyValueFormat(value, col.valueFormat, col.valueFormatOptions)\r\n : col.cellFormat != null\r\n ? renderCellFormat(col.cellFormat, value, row, col.cellFormatOptions)\r\n : (value as React.ReactNode);\r\n const cellClass =\r\n typeof col.cellClass === 'function'\r\n ? col.cellClass(row, value)\r\n : col.cellClass ?? '';\r\n const cellStyle =\r\n typeof col.cellStyle === 'function'\r\n ? col.cellStyle(row, value)\r\n : col.cellStyle ?? {};\r\n const tooltip = col.tooltip?.(row, value);\r\n const isPinnedLeft = col.pinned === 'left';\r\n const isPinnedRight = col.pinned === 'right';\r\n const tdClass = [\r\n 'dyn-table-td',\r\n isPinnedLeft ? 'dyn-table-td--pinned-left' : '',\r\n isPinnedRight ? 'dyn-table-td--pinned-right' : '',\r\n cellClass,\r\n ].filter(Boolean).join(' ');\r\n return (\r\n <td\r\n key={col.id}\r\n className={tdClass.trim()}\r\n style={{\r\n width: computedWidths[i],\r\n minWidth: getMinWidthForColumn(col),\r\n textAlign: col.align ?? 'left',\r\n ...(col.wrapText ? { whiteSpace: 'normal' } : {}),\r\n ...(isPinnedLeft && pinnedLeftOffsets[i] != null\r\n ? { left: pinnedLeftOffsets[i] }\r\n : {}),\r\n ...(isPinnedRight && pinnedRightOffsets[i] != null\r\n ? { right: pinnedRightOffsets[i] }\r\n : {}),\r\n ...cellStyle,\r\n }}\r\n title={tooltip}\r\n >\r\n {display}\r\n </td>\r\n );\r\n })}\r\n {actions != null && (\r\n <td\r\n className=\"dyn-table-td dyn-table-td--actions\"\r\n style={{ textAlign: actionsAlign }}\r\n >\r\n {actions(row)}\r\n </td>\r\n )}\r\n </tr>\r\n );\r\n })\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n )\r\n )}\r\n {pagination && totalCount > 0 && (\r\n <div className=\"dyn-table-pagination\">\r\n <div className=\"dyn-table-pagination__info\">\r\n {startRow}-{endRow} / {totalCount} kayıt\r\n </div>\r\n <div className=\"dyn-table-pagination__controls\">\r\n <select\r\n className=\"dyn-table-pagination__pagesize\"\r\n value={pageSize}\r\n onChange={(e) => {\r\n const next = Number(e.target.value);\r\n setPageSize(next);\r\n handlePageChange(1, next);\r\n }}\r\n aria-label=\"Sayfa başına kayıt\"\r\n >\r\n {pageSizeOptions.map((n) => (\r\n <option key={n} value={n}>\r\n {n}\r\n </option>\r\n ))}\r\n </select>\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-pagination__btn\"\r\n disabled={safePage <= 1}\r\n onClick={() => handlePageChange(safePage - 1, pageSize)}\r\n aria-label=\"Önceki sayfa\"\r\n >\r\n Önceki\r\n </button>\r\n <span className=\"dyn-table-pagination__page\">\r\n Sayfa {safePage} / {totalPages}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className=\"dyn-table-pagination__btn\"\r\n disabled={safePage >= totalPages}\r\n onClick={() => handlePageChange(safePage + 1, pageSize)}\r\n aria-label=\"Sonraki sayfa\"\r\n >\r\n Sonraki\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n"],"names":["parseWidth","w","n","getCellValue","row","column","key","defaultLocale","toDate","value","s","d","applyValueFormat","format","options","locale","DEFAULT_LABELS","defaultActiveClass","defaultInactiveClass","StatusBadge","activeLabel","inactiveLabel","activeClass","inactiveClass","isActive","jsx","getLabelsForFormat","formatType","defaults","renderCellFormat","_row","DEFAULT_PAGE_SIZE_OPTIONS","DEFAULT_MIN_WIDTH","DEFAULT_FLEX_MIN","getMinWidthForColumn","col","ResizeHandle","colId","minWidth","maxWidth","startWidth","onResize","handleRef","React","onResizeRef","el","startX","startW","onMouseDown","e","onMouseMove","e2","delta","onMouseUp","SELECTION_COLUMN_WIDTH","SelectionHeaderCheckbox","displayData","getRowKey","selectedSet","onToggleAll","inputRef","pageKeys","r","allChecked","k","indeterminate","getComputedWidths","columns","tableWidth","columnWidths","actionsWidthPx","selectionWidthPx","hasFlex","flexTotal","c","fixedWidths","fixedSum","minPx","maxPx","override","remaining","result","distributed","i","raw","clamped","Table","data","keyExtractorProp","keyColumnId","sortable","defaultSort","onSort","emptyMessage","theme","className","headerClassName","bodyClassName","rowClassName","actions","actionsHeader","actionsAlign","actionsWidth","pagination","pageSizeProp","pageSizeOptions","pageProp","defaultPage","onPageChange","totalCountProp","onBlockNeeded","_blockSize","minHeight","height","mobileBreakpoint","rowSelection","selectedRowKeysProp","defaultSelectedRowKeys","onSelectionChange","selectionToolbarLabel","filterable","filterModelProp","defaultFilterModel","onFilterChange","filterPanelWidth","virtualization","rowHeight","virtualizationOverscan","columnVisibilityProp","onColumnVisibilityChange","columnOrderProp","onColumnOrderChange","columnReorder","loading","stickyHeader","index","scrollRef","setTableWidth","scrollContainerHeight","setScrollContainerHeight","scrollTop","setScrollTop","setColumnWidths","update","ro","isMobile","setIsMobile","mq","fn","sortState","setSortState","internalPage","setInternalPage","pageSize","setPageSize","isVisibilityControlled","internalVisibility","setInternalVisibility","acc","prev","next","currentVisibility","setVisibility","isOrderControlled","internalOrder","setInternalOrder","added","id","removed","id2","order","currentOrder","setOrder","isPageControlled","currentPage","handlePageChange","nextPage","nextPageSize","lastBlockNeededPageRef","needed","handleSort","visibleColumns","baseOrdered","x","left","center","right","filterableColumns","isFilterControlled","internalFilterModel","setInternalFilterModel","currentFilterModel","setFilterModel","filteredData","active","_","v","filterVal","cellVal","f","cv","fv","d1","d2","cStr","fStr","totalCount","isClientSide","totalPages","safePage","computedWidths","pinnedLeftOffsets","pinnedRightOffsets","leftAcc","rightAcc","sortedData","a","b","aVal","bVal","cmp","start","isSelectionControlled","internalSelectedKeys","setInternalSelectedKeys","selectedKeys","setSelectedKeys","rows","toggleRow","toggleAllOnPage","selectedRows","selectAll","clearSelection","selectionDropdownOpen","setSelectionDropdownOpen","selectionDropdownRef","onDocClick","filterPanelOpen","setFilterPanelOpen","columnVisibilityDropdownOpen","setColumnVisibilityDropdownOpen","columnVisibilityDropdownRef","toggleColumnVisibility","draggedColId","setDraggedColId","dragOverIndex","setDragOverIndex","handleColumnDragStart","th","handleColumnDragOver","handleColumnDragLeave","handleColumnDrop","dropIndex","draggedId","_a","fromIdx","dropTargetId","_b","toIdx","newOrder","newToIdx","handleColumnDragEnd","activeFilterCount","clearFilters","useVirtualization","useStickyHeader","virtualStart","virtualEnd","visibleCount","end","startRow","endRow","skeletonRowCount","getCellDisplay","themeClass","showToolbar","jsxs","Fragment","label","visible","headerLabel","opt","idx","rowKey","display","isSortable","isSorted","isPinnedLeft","isPinnedRight","isDragging","isDragOver","thClass","rowIdx","cellClass","cellStyle","tooltip","tdClass"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(function(q,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react/jsx-runtime"),require("react")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react"],t):(q=typeof globalThis<"u"?globalThis:q||self,t(q.DynTable={},q.jsxRuntime,q.React))})(this,function(q,t,Et){"use strict";function zt(s){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const b in s)if(b!=="default"){const v=Object.getOwnPropertyDescriptor(s,b);Object.defineProperty(o,b,v.get?v:{enumerable:!0,get:()=>s[b]})}}return o.default=s,Object.freeze(o)}const i=zt(Et);function V(s){if(s==null)return;if(typeof s=="number")return s;const o=parseFloat(s);return Number.isNaN(o)?void 0:o}function Y(s,o){if(o.valueGetter)return o.valueGetter(s);if(o.accessorKey===void 0)return;const b=o.accessorKey;return s[b]}const At="tr-TR";function Ee(s){if(s==null)return null;if(s instanceof Date)return s;const o=typeof s=="number"?s:Number(s);if(!Number.isNaN(o))return new Date(o);const b=String(s).trim();if(!b)return null;const v=new Date(b);return Number.isNaN(v.getTime())?null:v}function Ne(s,o,b={}){const v=b.locale??At;switch(o){case"date":{const f=Ee(s);return f?b.dateStyle!=null?f.toLocaleDateString(v,{dateStyle:b.dateStyle}):f.toLocaleDateString(v,{day:"2-digit",month:"2-digit",year:"numeric"}):s!=null?String(s):"—"}case"datetime":{const f=Ee(s);return f?f.toLocaleString(v,{dateStyle:b.dateStyle??"short",timeStyle:b.timeStyle??"short"}):s!=null?String(s):"—"}case"time":{const f=Ee(s);return f?f.toLocaleTimeString(v,{timeStyle:b.timeStyle??"short"}):s!=null?String(s):"—"}case"number":{const f=typeof s=="number"?s:Number(s);return Number.isNaN(f)?s!=null?String(s):"—":f.toLocaleString(v,{minimumFractionDigits:b.minimumFractionDigits,maximumFractionDigits:b.maximumFractionDigits??2})}case"currency":{const f=typeof s=="number"?s:Number(s);return Number.isNaN(f)?s!=null?String(s):"—":f.toLocaleString(v,{style:"currency",currency:b.currency??"TRY",minimumFractionDigits:b.minimumFractionDigits,maximumFractionDigits:b.maximumFractionDigits??2})}case"percent":{const f=typeof s=="number"?s:Number(s);return Number.isNaN(f)?s!=null?String(s):"—":f.toLocaleString(v,{style:"percent",minimumFractionDigits:b.minimumFractionDigits,maximumFractionDigits:b.maximumFractionDigits??2})}default:return s!=null?String(s):"—"}}const Bt={status:{active:"Aktif",inactive:"Pasif"},yesNo:{active:"Evet",inactive:"Hayır"},onOff:{active:"Açık",inactive:"Kapalı"},published:{active:"Yayında",inactive:"Taslak"},approved:{active:"Onaylı",inactive:"Beklemede"},badge:{active:"Evet",inactive:"Hayır"}},It="table-formatter-status table-formatter-status--active",Vt="table-formatter-status table-formatter-status--inactive";function Pt({value:s,activeLabel:o="Aktif",inactiveLabel:b="Pasif",activeClass:v=It,inactiveClass:f=Vt}){const D=s===!0||s==="true"||s===1,A=D?o:b,M=D?v:f;return t.jsx("span",{className:M,children:A})}function Kt(s,o){const b=Bt[s];return{activeLabel:o.activeLabel??b.active,inactiveLabel:o.inactiveLabel??b.inactive}}function _e(s,o,b,v={}){const{activeLabel:f,inactiveLabel:D}=Kt(s,v);return t.jsx(Pt,{value:o,activeLabel:f,inactiveLabel:D,activeClass:v.activeClass,inactiveClass:v.inactiveClass})}const jt=[10,25,50,100],et=50,fe=80;function P(s){return V(s.minWidth)??(s.flex?fe:et)}function tt({colId:s,minWidth:o,maxWidth:b,startWidth:v,onResize:f}){const D=i.useRef(null),A=i.useRef(f);return A.current=f,i.useEffect(()=>{const M=D.current;if(!M)return;let x=0,L=0;const Z=K=>{K.preventDefault(),K.stopPropagation(),x=K.clientX,L=v,document.body.classList.add("dyn-table-resizing");const N=W=>{const w=W.clientX-x;let F=Math.max(o,L+w);b!=null&&(F=Math.min(b,F)),A.current(F)},c=()=>{document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",c),document.body.classList.remove("dyn-table-resizing")};document.addEventListener("mousemove",N),document.addEventListener("mouseup",c)};return M.addEventListener("mousedown",Z),()=>M.removeEventListener("mousedown",Z)},[s,o,b,v]),t.jsx("div",{ref:D,className:"dyn-table-resize-handle",role:"separator","aria-label":`${s} kolon genişliğini değiştir`})}const U=44;function lt({displayData:s,getRowKey:o,selectedSet:b,onToggleAll:v}){const f=i.useRef(null),D=s.map(L=>o(L)),A=D.length>0&&D.every(L=>b.has(L)),x=D.some(L=>b.has(L))&&!A;return i.useEffect(()=>{f.current&&(f.current.indeterminate=x)},[x]),t.jsx("label",{className:"dyn-table-selection-header",children:t.jsx("input",{ref:f,type:"checkbox",checked:A,onChange:v,"aria-label":"Tümünü seç"})})}function Ut(s,o,b,v,f){const D=s.some(c=>(c.flex??0)>0),M=s.filter(c=>(c.flex??0)>0).reduce((c,W)=>c+(W.flex??0),0),x=[];let L=0;for(const c of s){const W=V(c.minWidth)??(c.flex?fe:et),w=V(c.maxWidth);if(c.flex){const F=b[c.id];F!=null?(x.push(Math.max(W,w!=null?Math.min(F,w):F)),L+=x[x.length-1]):x.push(-1)}else{const F=b[c.id]??V(c.width)??W;x.push(w!=null?Math.min(F,w):Math.max(W,F)),L+=x[x.length-1]}}if(!D||o<=0||M<=0)return x.map(c=>c===-1?fe:c);const Z=o-L-v-f;if(Z<=0)return x.map(c=>c===-1?fe:c);const K=[...x];let N=0;for(let c=0;c<s.length;c++){if(K[c]!==-1)continue;const W=s[c],w=V(W.minWidth)??fe,F=V(W.maxWidth),re=(W.flex??0)/M*Z,ze=F!=null?Math.min(re,F):re;K[c]=Math.max(w,ze),N+=K[c]}return K}function Yt({data:s,columns:o,keyExtractor:b,keyColumnId:v,sortable:f=!0,defaultSort:D={id:"",direction:null},onSort:A,emptyMessage:M="Veri yok",theme:x="light",className:L="",headerClassName:Z="",bodyClassName:K="",rowClassName:N,actions:c,actionsHeader:W="İşlemler",actionsAlign:w="center",actionsWidth:F,pagination:ne=!1,pageSize:re=10,pageSizeOptions:ze=jt,page:at,defaultPage:Gt=1,onPageChange:ke,totalCount:nt,onBlockNeeded:ye,blockSize:ml,minHeight:y,height:p,mobileBreakpoint:rt=768,rowSelection:m=!1,selectedRowKeys:st,defaultSelectedRowKeys:Xt=[],onSelectionChange:xe,selectionToolbarLabel:Ae,filterable:Be=!1,filterModel:dt,defaultFilterModel:qt={},onFilterChange:Se,filterPanelWidth:Zt=280,virtualization:Jt=!1,rowHeight:se=44,virtualizationOverscan:Ie=5,columnVisibility:it,onColumnVisibilityChange:Ce,columnOrder:ct,onColumnOrderChange:De,columnReorder:J=!0,loading:pe=!1,stickyHeader:Qt=!1}){const S=i.useCallback((e,l)=>{if(b)return b(e);if(v){const n=o.find(a=>a.id===v);if(n)return Y(e,n)}return String(l??0)},[b,v,o]),Ve=i.useRef(null),[ot,Ht]=i.useState(0),[Pe,Rt]=i.useState(0),[bt,ht]=i.useState(0),[ft,yt]=i.useState({});i.useEffect(()=>{const e=Ve.current;if(!e)return;const l=()=>{Ht(e.clientWidth),Rt(e.clientHeight)},n=new ResizeObserver(l);return n.observe(e),l(),()=>n.disconnect()},[]);const[z,pt]=i.useState(!1);i.useEffect(()=>{const e=window.matchMedia(`(max-width: ${rt}px)`);pt(e.matches);const l=()=>pt(e.matches);return e.addEventListener("change",l),()=>e.removeEventListener("change",l)},[rt]);const[T,el]=i.useState(D),[tl,ll]=i.useState(Gt),[O,Ke]=i.useState(re);i.useEffect(()=>{Ke(re)},[re]);const ue=it!=null,[al,ut]=i.useState(()=>o.reduce((e,l)=>({...e,[l.id]:!l.hide}),{}));i.useEffect(()=>{ue||ut(e=>{const l={...e};for(const n of o)l[n.id]===void 0&&(l[n.id]=!n.hide);return l})},[o,ue]);const le=ue?it:al,vt=i.useCallback(e=>{ue||ut(e),Ce==null||Ce(e)},[ue,Ce]),ve=ct!=null,[nl,gt]=i.useState(()=>o.map(e=>e.id));i.useEffect(()=>{ve||gt(e=>{const l=o.map(d=>d.id),n=l.filter(d=>!e.includes(d)),a=e.filter(d=>!l.some(h=>h===d));if(n.length===0&&a.length===0)return e;let r=e.filter(d=>l.includes(d));for(const d of n)r.push(d);return r})},[o,ve]);const de=ve?ct:nl,mt=i.useCallback(e=>{ve||gt(e),De==null||De(e)},[ve,De]),je=at!=null,ie=je?at:tl,Ue=i.useCallback((e,l)=>{je||ll(e),l!==O&&Ke(l),ke==null||ke(e,l)},[je,O,ke]),Ye=i.useRef(null);i.useEffect(()=>{if(!ne||!ye)return;const e=ie*O;if(s.length>=e){Ye.current=null;return}Ye.current!==ie&&(Ye.current=ie,ye(ie))},[ne,ye,ie,O,s.length]);const Nt=e=>{if(!f)return;const l=T.id===e?{id:e,direction:T.direction==="asc"?"desc":T.direction==="desc"?null:"asc"}:{id:e,direction:"asc"};el(l),A==null||A(l.id,l.direction)},g=i.useMemo(()=>{const l=de.filter(d=>o.some(h=>h.id===d)).filter(d=>le[d]!==!1).map(d=>o.find(h=>h.id===d)).filter(Boolean);for(const d of o)le[d.id]!==!1&&!l.some(h=>h.id===d.id)&&l.push(d);const n=l.filter(d=>d.pinned==="left"),a=l.filter(d=>d.pinned!=="left"&&d.pinned!=="right"),r=l.filter(d=>d.pinned==="right");return[...n,...a,...r]},[o,de,le]),rl=i.useMemo(()=>g.filter(e=>e.filter!=null),[g]),Ge=dt!=null,[sl,dl]=i.useState(()=>qt??{}),Q=Ge?dt:sl,ce=i.useCallback(e=>{Ge||dl(e),Se==null||Se(e)},[Ge,Se]),ge=i.useMemo(()=>{const e=Object.entries(Q).filter(([l,n])=>n!=null&&n!=="");return e.length===0?s:s.filter(l=>{for(const[n,a]of e){const r=o.find(h=>h.id===n);if(!(r!=null&&r.filter))continue;const d=Y(l,r);if(r.filter==="text"){const h=String(d??"").toLowerCase(),u=String(a).toLowerCase();if(u&&!h.includes(u))return!1}else if(r.filter==="number"){const h=typeof d=="number"?d:Number(d),u=typeof a=="number"?a:Number(a);if(Number.isNaN(u))continue;if(Number.isNaN(h)||h!==u)return!1}else if(r.filter==="date"){const h=d!=null?new Date(d).getTime():NaN,u=new Date(a).getTime();if(Number.isNaN(u))continue;if(Number.isNaN(h))return!1;const E=new Date(h).toDateString(),_=new Date(u).toDateString();if(E!==_)return!1}else if(r.filter==="select"){const h=d!=null?String(d):"",u=String(a);if(u&&h!==u)return!1}}return!0})},[s,o,Q]),Fe=nt??ge.length,_t=nt==null,Xe=Math.max(1,Math.ceil(Fe/O)),G=Math.min(Math.max(1,ie),Xe),B=c==null?0:V(F)??80,Me=m?U:0,$=i.useMemo(()=>Ut(g,ot,ft,B,Me),[g,ot,ft,B,Me]),{pinnedLeftOffsets:H,pinnedRightOffsets:R}=i.useMemo(()=>{const e=[],l=[];let n=Me;for(let r=0;r<g.length;r++)g[r].pinned==="left"?(e[r]=n,n+=$[r]):e[r]=void 0;let a=B;for(let r=g.length-1;r>=0;r--)g[r].pinned==="right"?(l[r]=a,a+=$[r]):l[r]=void 0;return{pinnedLeftOffsets:e,pinnedRightOffsets:l}},[g,$,Me,B]),Le=i.useMemo(()=>{if(!T.direction||!T.id)return ge;const e=o.find(l=>l.id===T.id);return!(e!=null&&e.sortable)||e!=null&&e.suppressSort?ge:[...ge].sort((l,n)=>{const a=Y(l,e),r=Y(n,e),d=e.comparator?e.comparator(a,r,l,n):typeof a=="number"&&typeof r=="number"?a-r:String(a??"").localeCompare(String(r??""));return T.direction==="asc"?d:-d})},[ge,o,T]),k=i.useMemo(()=>{if(!ne)return Le;if(_t||ye){const e=(G-1)*O;return Le.slice(e,e+O)}return Le},[ne,_t,ye,Le,G,O]),qe=st!=null,[il,cl]=i.useState(()=>Xt),I=qe?st:il,C=i.useMemo(()=>new Set(I),[I]),ee=i.useCallback(e=>{qe||cl(e);const l=s.filter(n=>e.includes(S(n)));xe==null||xe(e,l)},[qe,s,S,xe]),oe=i.useCallback(e=>{const l=C.has(e)?I.filter(n=>n!==e):[...I,e];ee(l)},[I,C,ee]),kt=i.useCallback(()=>{const e=k.map(a=>S(a)),n=e.length>0&&e.every(a=>C.has(a))?I.filter(a=>!e.includes(a)):[...new Set([...I,...e])];ee(n)},[k,S,I,C,ee]),ol=i.useMemo(()=>s.filter(e=>C.has(S(e))),[s,C,S]),bl=i.useCallback(()=>{ee(s.map(e=>S(e)))},[s,S,ee]),hl=i.useCallback(()=>{ee([])},[ee]),[me,xt]=i.useState(!1),Ze=i.useRef(null);i.useEffect(()=>{if(!me)return;const e=l=>{Ze.current&&!Ze.current.contains(l.target)&&xt(!1)};return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[me]);const[We,Je]=i.useState(!1),[be,St]=i.useState(!1),Qe=i.useRef(null);i.useEffect(()=>{if(!be)return;const e=l=>{Qe.current&&!Qe.current.contains(l.target)&&St(!1)};return document.addEventListener("click",e),()=>document.removeEventListener("click",e)},[be]);const fl=i.useCallback(e=>{vt({...le,[e]:!le[e]})},[le,vt]),[Ct,Dt]=i.useState(null),[Ft,we]=i.useState(-1),Mt=i.useCallback((e,l)=>{e.dataTransfer.setData("text/plain",l),e.dataTransfer.effectAllowed="move";const n=e.currentTarget.closest("th");n&&e.dataTransfer.setDragImage(n,0,0),Dt(l)},[]),Lt=i.useCallback((e,l)=>{e.preventDefault(),e.dataTransfer.dropEffect="move",we(l)},[]),Wt=i.useCallback(()=>{we(-1)},[]),wt=i.useCallback((e,l)=>{var E,_;e.preventDefault(),we(-1);const n=e.dataTransfer.getData("text/plain");if(!n||n===((E=g[l])==null?void 0:E.id))return;const a=de.indexOf(n),r=(_=g[l])==null?void 0:_.id,d=de.indexOf(r);if(a===-1||d===-1)return;const h=de.slice();h.splice(a,1);const u=h.indexOf(r);h.splice(u,0,n),mt(h)},[g,de,mt]),Tt=i.useCallback(()=>{Dt(null),we(-1)},[]),He=Object.values(Q).filter(e=>e!=null&&e!=="").length,yl=i.useCallback(()=>{ce({})},[ce]),j=Jt&&!z&&k.length>0,Te=Qt&&!z,{virtualStart:Oe,virtualEnd:Re}=i.useMemo(()=>{if(!j||Pe<=0)return{virtualStart:0,virtualEnd:k.length};const e=Math.ceil(Pe/se)+Ie*2,l=Math.max(0,Math.floor(bt/se)-Ie),n=Math.min(k.length,l+e);return{virtualStart:l,virtualEnd:n}},[j,Pe,bt,se,Ie,k.length]),pl=(G-1)*O+1,ul=Math.min(G*O,Fe),$e=pe?Math.min(O,10):0;function Ot(e,l,n){return l.cell!=null?l.cell(e):l.valueFormatter!=null?l.valueFormatter(n,e):l.valueFormat!=null?Ne(n,l.valueFormat,l.valueFormatOptions):l.cellFormat!=null?_e(l.cellFormat,n,e,l.cellFormatOptions):n}const vl=x==="dark"?"dyn-table-wrapper--dark":"dyn-table-wrapper--light",gl=m||Be||o.length>1;return t.jsxs("div",{className:`dyn-table-wrapper ${vl} ${L}`.trim(),children:[gl&&t.jsx("div",{className:`dyn-table-toolbar ${z?"dyn-table-toolbar--mobile":""}`.trim(),children:t.jsxs("div",{className:"dyn-table-toolbar__actions",children:[m&&t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",className:"dyn-table-toolbar__btn",onClick:bl,"aria-label":"Tümünü seç",children:"Tümünü seç"}),t.jsx("button",{type:"button",className:"dyn-table-toolbar__btn",onClick:hl,disabled:I.length===0,"aria-label":"Seçimi kaldır",children:"Kaldır"}),t.jsxs("div",{ref:Ze,className:"dyn-table-toolbar__dropdown",children:[t.jsxs("button",{type:"button",className:"dyn-table-toolbar__dropdown-trigger",onClick:()=>xt(e=>!e),disabled:I.length===0,"aria-expanded":me,"aria-haspopup":"listbox","aria-label":"Seçilenleri göster",children:[t.jsxs("span",{children:[I.length," seçili"]}),t.jsx("svg",{className:`dyn-table-toolbar__dropdown-chevron ${me?"dyn-table-toolbar__dropdown-chevron--open":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",width:"14",height:"14",children:t.jsx("path",{d:"M6 9l6 6 6-6"})})]}),me&&I.length>0&&t.jsx("div",{className:"dyn-table-toolbar__dropdown-panel",role:"listbox","aria-label":"Seçilen satırlar",children:t.jsx("ul",{className:"dyn-table-toolbar__dropdown-list",children:ol.map(e=>{const l=S(e),n=(Ae==null?void 0:Ae(e))??String(l);return t.jsxs("li",{className:"dyn-table-toolbar__dropdown-item",children:[t.jsx("span",{className:"dyn-table-toolbar__dropdown-item-label",children:n}),t.jsx("button",{type:"button",className:"dyn-table-toolbar__dropdown-item-remove",onClick:a=>{a.stopPropagation(),oe(l)},"aria-label":`${n} seçimini kaldır`,children:t.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",width:"12",height:"12",children:t.jsx("path",{d:"M18 6L6 18M6 6l12 12"})})})]},String(l))})})})]})]}),Be&&t.jsxs("button",{type:"button",className:`dyn-table-toolbar__btn dyn-table-toolbar__btn--filter ${We?"dyn-table-toolbar__btn--filter-active":""}`,onClick:()=>Je(e=>!e),"aria-expanded":We,"aria-label":"Filtreler",children:[t.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",width:"16",height:"16",children:t.jsx("path",{d:"M22 3H2l8 9.46V19l4 2v-8.54L22 3z"})}),t.jsx("span",{className:"dyn-table-toolbar__btn-label",children:"Filtre"}),He>0&&t.jsx("span",{className:"dyn-table-toolbar__filter-count",children:He})]}),o.length>1&&t.jsxs("div",{ref:Qe,className:"dyn-table-toolbar__dropdown",children:[t.jsxs("button",{type:"button",className:`dyn-table-toolbar__dropdown-trigger ${be?"dyn-table-toolbar__dropdown-trigger--open":""}`,onClick:()=>St(e=>!e),"aria-expanded":be,"aria-haspopup":"dialog","aria-label":"Kolonları göster/gizle",children:[t.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",width:"16",height:"16",children:t.jsx("path",{d:"M3 6h18M3 12h18M3 18h18M7 6v12M11 12v6M15 6v12M19 12v6"})}),t.jsx("span",{className:"dyn-table-toolbar__btn-label",children:"Kolonlar"}),t.jsx("svg",{className:`dyn-table-toolbar__dropdown-chevron ${be?"dyn-table-toolbar__dropdown-chevron--open":""}`,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",width:"14",height:"14",children:t.jsx("path",{d:"M6 9l6 6 6-6"})})]}),be&&t.jsxs("div",{className:"dyn-table-toolbar__dropdown-panel dyn-table-toolbar__dropdown-panel--columns",role:"dialog","aria-label":"Kolon görünürlüğü",children:[t.jsx("div",{className:"dyn-table-column-visibility__header",children:"Görünen kolonlar"}),t.jsx("ul",{className:"dyn-table-toolbar__dropdown-list",children:o.map(e=>{const l=le[e.id]!==!1,n=typeof e.header=="string"?e.header:e.id;return t.jsx("li",{className:"dyn-table-toolbar__dropdown-item dyn-table-toolbar__dropdown-item--checkbox",children:t.jsxs("label",{className:"dyn-table-column-visibility__label",children:[t.jsx("input",{type:"checkbox",checked:l,onChange:()=>fl(e.id),"aria-label":`${n} ${l?"gizle":"göster"}`}),t.jsx("span",{className:"dyn-table-toolbar__dropdown-item-label",children:n})]})},e.id)})})]})]})]})}),Be?t.jsxs("div",{className:"dyn-table-main",children:[We&&t.jsx("div",{className:"dyn-table-filter-overlay",role:"presentation",onClick:()=>Je(!1),"aria-hidden":!0}),t.jsxs("div",{className:`dyn-table-filter-panel ${We?"dyn-table-filter-panel--open":""}`,style:{width:Zt},"aria-label":"Filtreler paneli",children:[t.jsxs("div",{className:"dyn-table-filter-panel__header",children:[t.jsx("h3",{className:"dyn-table-filter-panel__title",children:"Filtreler"}),t.jsx("button",{type:"button",className:"dyn-table-filter-panel__close",onClick:()=>Je(!1),"aria-label":"Paneli kapat",children:t.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",width:"20",height:"20",children:t.jsx("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),t.jsxs("div",{className:"dyn-table-filter-panel__body",children:[He>0&&t.jsx("button",{type:"button",className:"dyn-table-filter-panel__clear",onClick:yl,children:"Filtreleri temizle"}),rl.map(e=>{const l=typeof e.header=="string"?e.header:e.id,n=Q[e.id]??"";return t.jsxs("div",{className:"dyn-table-filter-panel__item",children:[t.jsx("label",{className:"dyn-table-filter-panel__label",children:l}),e.filter==="text"&&t.jsx("input",{type:"text",className:"dyn-table-filter-panel__input",value:n,onChange:a=>ce({...Q,[e.id]:a.target.value||null}),placeholder:"Ara..."}),e.filter==="number"&&t.jsx("input",{type:"number",className:"dyn-table-filter-panel__input",value:n===""||n===null?"":n,onChange:a=>{const r=a.target.value;ce({...Q,[e.id]:r===""?null:Number(r)})},placeholder:"—"}),e.filter==="date"&&t.jsx("input",{type:"date",className:"dyn-table-filter-panel__input",value:n===""||n===null?"":String(n),onChange:a=>ce({...Q,[e.id]:a.target.value||null})}),e.filter==="select"&&t.jsxs("select",{className:"dyn-table-filter-panel__select",value:n===""||n===null?"":String(n),onChange:a=>ce({...Q,[e.id]:a.target.value===""?null:a.target.value}),children:[t.jsx("option",{value:"",children:"Tümü"}),(e.filterSelectOptions??[]).map(a=>t.jsx("option",{value:String(a.value),children:a.label},String(a.value)))]})]},e.id)})]})]}),t.jsx("div",{className:"dyn-table-main__content",children:z?t.jsx("div",{className:"dyn-table-mobile",style:{...y!=null&&{minHeight:typeof y=="number"?`${y}px`:y},...p!=null&&{height:typeof p=="number"?`${p}px`:p}},children:pe?t.jsx("div",{className:"dyn-table-cards","aria-busy":!0,children:Array.from({length:Math.min($e,5)},(e,l)=>t.jsxs("div",{className:"dyn-table-card dyn-table-card--skeleton",children:[m&&t.jsx("div",{className:"dyn-table-card__selection",children:t.jsx("span",{className:"dyn-table-skeleton dyn-table-skeleton--checkbox"})}),g.map(n=>t.jsxs("div",{className:"dyn-table-card__row",children:[t.jsx("span",{className:"dyn-table-card__label",children:typeof n.header=="string"?n.header:n.id}),t.jsx("span",{className:"dyn-table-card__value",children:t.jsx("span",{className:"dyn-table-skeleton"})})]},n.id)),c!=null&&t.jsx("div",{className:"dyn-table-card__actions"})]},`skeleton-card-${l}`))}):k.length===0?t.jsx("div",{className:"dyn-table-empty dyn-table-empty--card",children:M}):t.jsx("div",{className:"dyn-table-cards",children:k.map((e,l)=>{const n=S(e);return t.jsxs("div",{className:`dyn-table-card ${typeof N=="function"?N(e,l):N??""}`.trim(),children:[m&&t.jsx("div",{className:"dyn-table-card__selection",children:t.jsx("label",{className:"dyn-table-selection-cell",children:t.jsx("input",{type:"checkbox",checked:C.has(n),onChange:()=>oe(n),"aria-label":"Satırı seç"})})}),g.map(a=>{const r=Y(e,a),d=Ot(e,a,r);return t.jsxs("div",{className:"dyn-table-card__row",children:[t.jsx("span",{className:"dyn-table-card__label",children:(typeof a.header=="string",a.header)}),t.jsx("span",{className:"dyn-table-card__value",children:d})]},a.id)}),c!=null&&t.jsx("div",{className:"dyn-table-card__actions",children:c(e)})]},n)})})}):t.jsx("div",{ref:Ve,className:`dyn-table-scroll ${j?"dyn-table-scroll--virtualized":""} ${Te?"dyn-table-scroll--sticky-header":""}`.trim(),style:{...y!=null&&{minHeight:typeof y=="number"?`${y}px`:y},...p!=null&&{height:typeof p=="number"?`${p}px`:p},...j&&{overflowY:"auto",height:p!=null?typeof p=="number"?`${p}px`:p:y!=null?typeof y=="number"?`${y}px`:y:400},...Te&&!j&&{overflowY:"auto",height:p!=null?typeof p=="number"?`${p}px`:p:y!=null?typeof y=="number"?`${y}px`:y:400}},onScroll:j?e=>ht(e.currentTarget.scrollTop):void 0,children:t.jsxs("table",{className:"dyn-table dyn-table--fixed",children:[t.jsxs("colgroup",{children:[m&&t.jsx("col",{style:{width:U}}),g.map((e,l)=>t.jsx("col",{style:{width:$[l],minWidth:P(e)}},e.id)),c!=null&&t.jsx("col",{style:{width:B}})]}),t.jsx("thead",{className:Z,children:t.jsxs("tr",{children:[m&&t.jsx("th",{className:"dyn-table-th dyn-table-th--selection",style:{width:U},children:t.jsx(lt,{displayData:k,getRowKey:S,selectedSet:C,onToggleAll:kt})}),g.map((e,l)=>{const n=f&&e.sortable!==!1&&!e.suppressSort,a=T.id===e.id,r=e.pinned==="left",d=e.pinned==="right",h=Ct===e.id,u=Ft===l,E=["dyn-table-th",n?"dyn-table-th--sortable":"",a?"dyn-table-th--sorted":"",e.resizable?"dyn-table-th--resizable":"",r?"dyn-table-th--pinned-left":"",d?"dyn-table-th--pinned-right":"",h?"dyn-table-th--dragging":"",u?"dyn-table-th--drag-over":"",e.headerClass??""].filter(Boolean).join(" ");return t.jsxs("th",{className:E,style:{width:$[l],minWidth:P(e),maxWidth:V(e.maxWidth),textAlign:e.headerAlign??e.align??"left",...r&&H[l]!=null?{left:H[l]}:{},...d&&R[l]!=null?{right:R[l]}:{},...e.headerStyle},title:e.headerTooltip,onClick:()=>n&&Nt(e.id),onDragOver:J&&!z?_=>Lt(_,l):void 0,onDragLeave:J&&!z?Wt:void 0,onDrop:J&&!z?_=>wt(_,l):void 0,children:[t.jsxs("span",{className:"dyn-table-th__content",children:[J&&!z&&t.jsx("span",{className:"dyn-table-th__drag-handle",draggable:!0,onDragStart:_=>Mt(_,e.id),onDragEnd:Tt,onClick:_=>_.stopPropagation(),"aria-label":`${e.id} kolonunu taşı`,children:t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:t.jsx("path",{d:"M8 6h2V4H8v2zm0 4h2V8H8v2zm0 4h2v-2H8v2zm4-8h2V4h-2v2zm0 4h2V8h-2v2zm0 4h2v-2h-2v2z"})})}),e.header,n&&t.jsxs("span",{className:"dyn-table-sort","aria-hidden":!0,children:[a&&T.direction==="asc"&&t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"2",children:t.jsx("path",{d:"M7 15l5-5 5 5H7z"})}),a&&T.direction==="desc"&&t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"2",children:t.jsx("path",{d:"M7 10l5 5 5-5H7z"})}),!a&&t.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:t.jsx("path",{d:"M7 15l5-5 5 5H7z"})})]})]}),e.resizable&&t.jsx(tt,{colId:e.id,minWidth:P(e),maxWidth:V(e.maxWidth),startWidth:$[l],onResize:_=>yt(X=>({...X,[e.id]:_}))})]},e.id)}),c!=null&&t.jsx("th",{className:"dyn-table-th dyn-table-th--actions",style:{width:B,minWidth:B,textAlign:w},children:W})]})}),t.jsx("tbody",{className:K,children:pe?Array.from({length:$e},(e,l)=>t.jsxs("tr",{className:"dyn-table-row--skeleton","aria-busy":!0,children:[m&&t.jsx("td",{className:"dyn-table-td dyn-table-td--selection",style:{width:U},children:t.jsx("span",{className:"dyn-table-skeleton dyn-table-skeleton--checkbox"})}),g.map((n,a)=>t.jsx("td",{className:"dyn-table-td",style:{width:$[a],minWidth:P(n),textAlign:n.align??"left"},children:t.jsx("span",{className:"dyn-table-skeleton"})},n.id)),c!=null&&t.jsx("td",{className:"dyn-table-td dyn-table-td--actions",style:{width:B}})]},`skeleton-${l}`)):k.length===0?t.jsx("tr",{children:t.jsx("td",{colSpan:g.length+(c!=null?1:0)+(m?1:0),className:"dyn-table-empty",children:M})}):j?t.jsxs(t.Fragment,{children:[Oe>0&&t.jsx("tr",{"aria-hidden":!0,className:"dyn-table-virtual-spacer",children:t.jsx("td",{colSpan:g.length+(c!=null?1:0)+(m?1:0),style:{height:Oe*se,padding:0,border:"none",verticalAlign:"top",lineHeight:0}})}),k.slice(Oe,Re).map((e,l)=>{const n=Oe+l,a=S(e);return t.jsxs("tr",{style:{height:se},className:[typeof N=="function"?N(e,n):N??"",m&&C.has(a)?"dyn-table-row--selected":""].filter(Boolean).join(" "),children:[m&&t.jsx("td",{className:"dyn-table-td dyn-table-td--selection",style:{width:U},children:t.jsx("label",{className:"dyn-table-selection-cell",children:t.jsx("input",{type:"checkbox",checked:C.has(a),onChange:()=>oe(a),"aria-label":"Satırı seç"})})}),g.map((r,d)=>{var $t;const h=Y(e,r),u=r.cell!=null?r.cell(e):r.valueFormatter!=null?r.valueFormatter(h,e):r.valueFormat!=null?Ne(h,r.valueFormat,r.valueFormatOptions):r.cellFormat!=null?_e(r.cellFormat,h,e,r.cellFormatOptions):h,E=typeof r.cellClass=="function"?r.cellClass(e,h):r.cellClass??"",_=typeof r.cellStyle=="function"?r.cellStyle(e,h):r.cellStyle??{},X=($t=r.tooltip)==null?void 0:$t.call(r,e,h),te=r.pinned==="left",he=r.pinned==="right",ae=["dyn-table-td",te?"dyn-table-td--pinned-left":"",he?"dyn-table-td--pinned-right":"",E].filter(Boolean).join(" ");return t.jsx("td",{className:ae.trim(),style:{width:$[d],minWidth:P(r),textAlign:r.align??"left",...r.wrapText?{whiteSpace:"normal"}:{},...te&&H[d]!=null?{left:H[d]}:{},...he&&R[d]!=null?{right:R[d]}:{},..._},title:X,children:u},r.id)}),c!=null&&t.jsx("td",{className:"dyn-table-td dyn-table-td--actions",style:{textAlign:w},children:c(e)})]},a)}),Re<k.length&&t.jsx("tr",{"aria-hidden":!0,className:"dyn-table-virtual-spacer",children:t.jsx("td",{colSpan:g.length+(c!=null?1:0)+(m?1:0),style:{height:(k.length-Re)*se,padding:0,border:"none",verticalAlign:"top",lineHeight:0}})})]}):k.map((e,l)=>{const n=S(e);return t.jsxs("tr",{className:[typeof N=="function"?N(e,l):N??"",m&&C.has(n)?"dyn-table-row--selected":""].filter(Boolean).join(" "),children:[m&&t.jsx("td",{className:"dyn-table-td dyn-table-td--selection",style:{width:U},children:t.jsx("label",{className:"dyn-table-selection-cell",children:t.jsx("input",{type:"checkbox",checked:C.has(n),onChange:()=>oe(n),"aria-label":"Satırı seç"})})}),g.map((a,r)=>{var ae;const d=Y(e,a),h=a.cell!=null?a.cell(e):a.valueFormatter!=null?a.valueFormatter(d,e):a.valueFormat!=null?Ne(d,a.valueFormat,a.valueFormatOptions):a.cellFormat!=null?_e(a.cellFormat,d,e,a.cellFormatOptions):d,u=typeof a.cellClass=="function"?a.cellClass(e,d):a.cellClass??"",E=typeof a.cellStyle=="function"?a.cellStyle(e,d):a.cellStyle??{},_=(ae=a.tooltip)==null?void 0:ae.call(a,e,d),X=a.pinned==="left",te=a.pinned==="right",he=["dyn-table-td",X?"dyn-table-td--pinned-left":"",te?"dyn-table-td--pinned-right":"",u].filter(Boolean).join(" ");return t.jsx("td",{className:he.trim(),style:{width:$[r],minWidth:P(a),textAlign:a.align??"left",...a.wrapText?{whiteSpace:"normal"}:{},...X&&H[r]!=null?{left:H[r]}:{},...te&&R[r]!=null?{right:R[r]}:{},...E},title:_,children:h},a.id)}),c!=null&&t.jsx("td",{className:"dyn-table-td dyn-table-td--actions",style:{textAlign:w},children:c(e)})]},n)})})]})})})]}):z?t.jsx("div",{className:"dyn-table-mobile",style:{...y!=null&&{minHeight:typeof y=="number"?`${y}px`:y},...p!=null&&{height:typeof p=="number"?`${p}px`:p}},children:pe?t.jsx("div",{className:"dyn-table-cards","aria-busy":!0,children:Array.from({length:Math.min($e,5)},(e,l)=>t.jsxs("div",{className:"dyn-table-card dyn-table-card--skeleton",children:[m&&t.jsx("div",{className:"dyn-table-card__selection",children:t.jsx("span",{className:"dyn-table-skeleton dyn-table-skeleton--checkbox"})}),g.map(n=>t.jsxs("div",{className:"dyn-table-card__row",children:[t.jsx("span",{className:"dyn-table-card__label",children:typeof n.header=="string"?n.header:n.id}),t.jsx("span",{className:"dyn-table-card__value",children:t.jsx("span",{className:"dyn-table-skeleton"})})]},n.id)),c!=null&&t.jsx("div",{className:"dyn-table-card__actions"})]},`skeleton-card-${l}`))}):k.length===0?t.jsx("div",{className:"dyn-table-empty dyn-table-empty--card",children:M}):t.jsx("div",{className:"dyn-table-cards",children:k.map(e=>{const l=S(e);return t.jsxs("div",{className:`dyn-table-card ${typeof N=="function"?N(e,0):N??""}`.trim(),children:[m&&t.jsx("div",{className:"dyn-table-card__selection",children:t.jsx("label",{className:"dyn-table-selection-cell",children:t.jsx("input",{type:"checkbox",checked:C.has(l),onChange:()=>oe(l),"aria-label":"Satırı seç"})})}),g.map(n=>{const a=Y(e,n),r=Ot(e,n,a);return t.jsxs("div",{className:"dyn-table-card__row",children:[t.jsx("span",{className:"dyn-table-card__label",children:(typeof n.header=="string",n.header)}),t.jsx("span",{className:"dyn-table-card__value",children:r})]},n.id)}),c!=null&&t.jsx("div",{className:"dyn-table-card__actions",children:c(e)})]},l)})})}):t.jsx("div",{ref:Ve,className:`dyn-table-scroll ${j?"dyn-table-scroll--virtualized":""} ${Te?"dyn-table-scroll--sticky-header":""}`.trim(),style:{...y!=null&&{minHeight:typeof y=="number"?`${y}px`:y},...p!=null&&{height:typeof p=="number"?`${p}px`:p},...j&&{overflowY:"auto",height:p!=null?typeof p=="number"?`${p}px`:p:y!=null?typeof y=="number"?`${y}px`:y:400},...Te&&!j&&{overflowY:"auto",height:p!=null?typeof p=="number"?`${p}px`:p:y!=null?typeof y=="number"?`${y}px`:y:400}},onScroll:j?e=>ht(e.currentTarget.scrollTop):void 0,children:t.jsxs("table",{className:"dyn-table dyn-table--fixed",children:[t.jsxs("colgroup",{children:[m&&t.jsx("col",{style:{width:U}}),g.map((e,l)=>t.jsx("col",{style:{width:$[l],minWidth:P(e)}},e.id)),c!=null&&t.jsx("col",{style:{width:B}})]}),t.jsx("thead",{className:Z,children:t.jsxs("tr",{children:[m&&t.jsx("th",{className:"dyn-table-th dyn-table-th--selection",style:{width:U},children:t.jsx(lt,{displayData:k,getRowKey:S,selectedSet:C,onToggleAll:kt})}),g.map((e,l)=>{const n=f&&e.sortable!==!1&&!e.suppressSort,a=T.id===e.id,r=Ct===e.id,d=Ft===l,h=["dyn-table-th",n?"dyn-table-th--sortable":"",a?"dyn-table-th--sorted":"",e.resizable?"dyn-table-th--resizable":"",r?"dyn-table-th--dragging":"",d?"dyn-table-th--drag-over":"",e.headerClass??""].filter(Boolean).join(" ");return t.jsxs("th",{className:h,style:{width:$[l],minWidth:P(e),maxWidth:V(e.maxWidth),textAlign:e.headerAlign??e.align??"left",...e.headerStyle},title:e.headerTooltip,onClick:()=>n&&Nt(e.id),onDragOver:J&&!z?u=>Lt(u,l):void 0,onDragLeave:J&&!z?Wt:void 0,onDrop:J&&!z?u=>wt(u,l):void 0,children:[t.jsxs("span",{className:"dyn-table-th__content",children:[J&&!z&&t.jsx("span",{className:"dyn-table-th__drag-handle",draggable:!0,onDragStart:u=>Mt(u,e.id),onDragEnd:Tt,onClick:u=>u.stopPropagation(),"aria-label":`${e.id} kolonunu taşı`,children:t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:t.jsx("path",{d:"M8 6h2V4H8v2zm0 4h2V8H8v2zm0 4h2v-2H8v2zm4-8h2V4h-2v2zm0 4h2V8h-2v2zm0 4h2v-2h-2v2z"})})}),e.header,n&&t.jsxs("span",{className:"dyn-table-sort","aria-hidden":!0,children:[a&&T.direction==="asc"&&t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"2",children:t.jsx("path",{d:"M7 15l5-5 5 5H7z"})}),a&&T.direction==="desc"&&t.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",stroke:"currentColor",strokeWidth:"2",children:t.jsx("path",{d:"M7 10l5 5 5-5H7z"})}),!a&&t.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:t.jsx("path",{d:"M7 15l5-5 5 5H7z"})})]})]}),e.resizable&&t.jsx(tt,{colId:e.id,minWidth:P(e),maxWidth:V(e.maxWidth),startWidth:$[l],onResize:u=>yt(E=>({...E,[e.id]:u}))})]},e.id)}),c!=null&&t.jsx("th",{className:"dyn-table-th dyn-table-th--actions",style:{width:B,minWidth:B,textAlign:w},children:W})]})}),t.jsx("tbody",{className:K,children:pe?Array.from({length:$e},(e,l)=>t.jsxs("tr",{className:"dyn-table-row--skeleton","aria-busy":!0,children:[m&&t.jsx("td",{className:"dyn-table-td dyn-table-td--selection",style:{width:U},children:t.jsx("span",{className:"dyn-table-skeleton dyn-table-skeleton--checkbox"})}),g.map((n,a)=>t.jsx("td",{className:"dyn-table-td",style:{width:$[a],minWidth:P(n),textAlign:n.align??"left"},children:t.jsx("span",{className:"dyn-table-skeleton"})},n.id)),c!=null&&t.jsx("td",{className:"dyn-table-td dyn-table-td--actions",style:{width:B}})]},`skeleton-${l}`)):k.length===0?t.jsx("tr",{children:t.jsx("td",{colSpan:g.length+(c!=null?1:0)+(m?1:0),className:"dyn-table-empty",children:M})}):k.map((e,l)=>{const n=S(e);return t.jsxs("tr",{className:[typeof N=="function"?N(e,l):N??"",m&&C.has(n)?"dyn-table-row--selected":""].filter(Boolean).join(" "),children:[m&&t.jsx("td",{className:"dyn-table-td dyn-table-td--selection",style:{width:U},children:t.jsx("label",{className:"dyn-table-selection-cell",children:t.jsx("input",{type:"checkbox",checked:C.has(n),onChange:()=>oe(n),"aria-label":"Satırı seç"})})}),g.map((a,r)=>{var ae;const d=Y(e,a),h=a.cell!=null?a.cell(e):a.valueFormatter!=null?a.valueFormatter(d,e):a.valueFormat!=null?Ne(d,a.valueFormat,a.valueFormatOptions):a.cellFormat!=null?_e(a.cellFormat,d,e,a.cellFormatOptions):d,u=typeof a.cellClass=="function"?a.cellClass(e,d):a.cellClass??"",E=typeof a.cellStyle=="function"?a.cellStyle(e,d):a.cellStyle??{},_=(ae=a.tooltip)==null?void 0:ae.call(a,e,d),X=a.pinned==="left",te=a.pinned==="right",he=["dyn-table-td",X?"dyn-table-td--pinned-left":"",te?"dyn-table-td--pinned-right":"",u].filter(Boolean).join(" ");return t.jsx("td",{className:he.trim(),style:{width:$[r],minWidth:P(a),textAlign:a.align??"left",...a.wrapText?{whiteSpace:"normal"}:{},...X&&H[r]!=null?{left:H[r]}:{},...te&&R[r]!=null?{right:R[r]}:{},...E},title:_,children:h},a.id)}),c!=null&&t.jsx("td",{className:"dyn-table-td dyn-table-td--actions",style:{textAlign:w},children:c(e)})]},n)})})]})}),ne&&Fe>0&&t.jsxs("div",{className:"dyn-table-pagination",children:[t.jsxs("div",{className:"dyn-table-pagination__info",children:[pl,"-",ul," / ",Fe," kayıt"]}),t.jsxs("div",{className:"dyn-table-pagination__controls",children:[t.jsx("select",{className:"dyn-table-pagination__pagesize",value:O,onChange:e=>{const l=Number(e.target.value);Ke(l),Ue(1,l)},"aria-label":"Sayfa başına kayıt",children:ze.map(e=>t.jsx("option",{value:e,children:e},e))}),t.jsx("button",{type:"button",className:"dyn-table-pagination__btn",disabled:G<=1,onClick:()=>Ue(G-1,O),"aria-label":"Önceki sayfa",children:"Önceki"}),t.jsxs("span",{className:"dyn-table-pagination__page",children:["Sayfa ",G," / ",Xe]}),t.jsx("button",{type:"button",className:"dyn-table-pagination__btn",disabled:G>=Xe,onClick:()=>Ue(G+1,O),"aria-label":"Sonraki sayfa",children:"Sonraki"})]})]})]})}q.Table=Yt,Object.defineProperty(q,Symbol.toStringTag,{value:"Module"})});
|
|
2
|
+
//# sourceMappingURL=dyn-table.umd.cjs.map
|