@php /** @var \Illuminate\Pagination\LengthAwarePaginator|null $paginator */ $paginator = $paginator ?? null; $dataAttr = $dataAttr ?? 'data-page'; $label = $label ?? 'items'; $compact = (bool) ($compact ?? false); @endphp @if ($paginator && $paginator->total() > 0) @php $current = $paginator->currentPage(); $last = $paginator->lastPage(); $start = max(1, $current - 1); $end = min($last, $current + 1); $pages = []; if ($last <= 7) { $pages = range(1, $last); } else { $pages[] = 1; if ($start > 2) { $pages[] = 'gap-a'; } foreach (range($start, $end) as $page) { if ($page > 1 && $page < $last) { $pages[] = $page; } } if ($end < $last - 1) { $pages[] = 'gap-b'; } $pages[] = $last; } @endphp @endif