PATH:
home
/
rwabteecom
/
public_html
/
vendor
/
rappasoft
/
laravel-livewire-tables
/
src
/
Traits
/
Helpers
/
Editing: SortingHelpers.php
<?php namespace Rappasoft\LaravelLivewireTables\Traits\Helpers; use Livewire\Attributes\On; trait SortingHelpers { public function getSortingStatus(): bool { return $this->sortingStatus; } public function getSingleSortingStatus(): bool { return $this->singleColumnSortingStatus; } public function getSorts(): array { return $this->sorts; } /** * @param array<mixed> $sorts * @return array<mixed> */ public function setSorts(array $sorts = []): array { return $this->sorts = collect($sorts) ->reject(fn ($dir, $column) => ! in_array($column, $this->getSortableColumns()->toArray(), true)) ->toArray(); } public function getSort(string $field): ?string { return $this->sorts[$field] ?? null; } #[On('set-sort')] public function setSort(string $field, string $direction): string { return $this->sorts[$field] = $direction; } public function hasSorts(): bool { return count($this->getSorts()) > 0; } public function hasSort(string $field): bool { return $this->getSort($field) !== null; } /** * Clear the sorts array */ #[On('clearsorts')] public function clearSorts(): void { $this->sorts = []; } public function clearSort(string $field): void { unset($this->sorts[$field]); } public function setSortAsc(string $field): string { return $this->setSort($field, 'asc'); } public function setSortDesc(string $field): string { return $this->setSort($field, 'desc'); } public function isSortAsc(string $field): bool { return $this->getSort($field) === 'asc'; } public function isSortDesc(string $field): bool { return $this->getSort($field) === 'desc'; } public function sortingIsEnabled(): bool { return $this->getSortingStatus() === true; } public function sortingIsDisabled(): bool { return $this->getSortingStatus() === false; } public function singleSortingIsEnabled(): bool { return $this->getSingleSortingStatus() === true; } public function singleSortingIsDisabled(): bool { return $this->getSingleSortingStatus() === false; } public function hasDefaultSort(): bool { return $this->getDefaultSortColumn() !== null; } public function getDefaultSortColumn(): ?string { return $this->defaultSortColumn; } public function getDefaultSortDirection(): string { return $this->defaultSortDirection; } public function getSortingPillsStatus(): bool { return $this->sortingPillsStatus; } public function sortingPillsAreEnabled(): bool { return $this->getSortingPillsStatus() === true; } public function sortingPillsAreDisabled(): bool { return $this->getSortingPillsStatus() === false; } public function getDefaultSortingLabelAsc(): string { return $this->defaultSortingLabelAsc; } public function getDefaultSortingLabelDesc(): string { return $this->defaultSortingLabelDesc; } }
SAVE
CANCEL