@props([ 'total_records' => null, 'page_size' => 25, 'style' => 'arrows', 'show_total' => true, 'show_page_number' => true, 'show_total_pages' => false, 'default_page' => 1, 'table' => null, 'label' => 'Showing :a to :b of :c records', ]) @php $show_total = parseBladewindVariable($show_total); $show_page_number = parseBladewindVariable($show_page_number); $show_total_pages = parseBladewindVariable($show_total_pages); $default_page = parseBladewindVariable($default_page, 'int'); $style = (!in_array($style, ['arrows', 'dropdown', 'numbers'])) ? 'arrows' : $style; $total_pages = ceil($total_records/$page_size); $default_page = (is_numeric($default_page) && $default_page > 0 && $default_page <= $total_pages) ? $default_page : 1; $inactive_css = "opacity-30 hover:opacity-30 !hover:border-gray-500/50"; $active_css = "!border-primary-500 dark:!border-gray-300"; $default_button_css = "!border-gray-200 dark:!border-dark-600 hover:!border-gray-400 dark:hover:!border-dark-500"; $next_button_status_css = ($default_page == $total_pages) ? $inactive_css : $default_button_css; $prev_button_status_css = ($default_page == 1) ? $inactive_css : $default_button_css; $to = $page_size*$default_page; $to = ($to > $total_records) ? $total_records : $to; $from = $to - ($page_size-1); $from = ($to == $total_records) ? 1 : $from; $prev_page = $default_page-1; $next_page = $default_page+1; $prev_page = ($prev_page <= 0) ? 0 : $default_page-1; @endphp @if(!empty($total_records) && !empty($table))
@if($show_total) {!! str_replace(':c', ''.$total_records.'', str_replace(':b', ''.$to.'', str_replace(':a', ''.$from.'', $label))) !!} @endif
@if($style == 'arrows') {{$default_page}}@if($show_total_pages) /{{$total_pages}} @endif @elseif($style == 'dropdown')
@for($p=1; $p <= $total_pages; $p++) @endfor
@else
@for($p=1; $p <= $total_pages; $p++) @php $button_css = ($p==$default_page) ? $active_css : $default_button_css; @endphp @endfor
@endif
@endif @once @endonce