@props([
'id',
'columns' => [],
'tableClass' => '',
'storageKey' => null,
'minWidth' => null,
'resizable' => true,
'resizableColumnKeys' => [],
'columnTools' => true,
])
@php
$resolvedStorageKey = $storageKey ?: $id . '-columns';
$tableClasses = trim('table align-middle table-nowrap dashboard-resizable-table ' . $tableClass);
$resolvedMinWidth = $minWidth ? (is_numeric($minWidth) ? $minWidth . 'px' : $minWidth) : null;
$resolvedResizableColumnKeys = collect($resizableColumnKeys)
->map(fn ($key) => (string) $key)
->filter(fn ($key) => $key !== '')
->values();
@endphp
class(['table-responsive', 'table-card', 'mt-2', 'mb-1', 'dashboard-data-table']) }}>
isNotEmpty()) data-resizable-columns="1" @endif
@if($resolvedResizableColumnKeys->isNotEmpty()) data-resizable-column-keys="{{ $resolvedResizableColumnKeys->implode(',') }}" @endif
@if($columnTools) data-sort-icon-only="1" @endif
data-resizable-storage-key="{{ $resolvedStorageKey }}"
@if($resolvedMinWidth) data-default-min-width="{{ $resolvedMinWidth }}" style="min-width: {{ $resolvedMinWidth }};" @endif>
@if(count($columns))
@foreach($columns as $key => $width)
@endforeach
@endif
{{ $slot }}
@once
@endonce