@if ($paginator->hasPages()) @php $currentPage = $paginator->currentPage(); $lastPage = $paginator->lastPage(); // Siempre mostramos la 1 y la última. La ventana solo cubre páginas intermedias. $middleFirst = 2; $middleLast = max(2, $lastPage - 1); // Ventana (tamaño 3) alrededor de la actual: (current-1, current, current+1) $windowStart = max($middleFirst, $currentPage - 1); $windowEnd = min($middleLast, $currentPage + 1); // Ajuste para mantener hasta 3 páginas visibles en la ventana (si existen) $windowSize = 3; $currentWindowSize = $windowEnd - $windowStart + 1; if ($currentWindowSize < $windowSize) { $missing = $windowSize - $currentWindowSize; $windowStart = max($middleFirst, $windowStart - $missing); $windowEnd = min($middleLast, $windowEnd + ($windowSize - ($windowEnd - $windowStart + 1))); } @endphp @endif