PATH:
home
/
rwabteecom
/
public_html
/
vendor
/
rappasoft
/
laravel-livewire-tables
/
src
/
Views
/
Filters
/
Editing: SelectFilter.php
<?php namespace Rappasoft\LaravelLivewireTables\Views\Filters; use Rappasoft\LaravelLivewireTables\Views\Filter; use Rappasoft\LaravelLivewireTables\Views\Traits\Filters\{HasOptions,IsStringFilter}; class SelectFilter extends Filter { use HasOptions, IsStringFilter; protected string $view = 'livewire-tables::components.tools.filters.select'; protected string $configPath = 'livewire-tables.selectFilter.defaultConfig'; protected string $optionsPath = 'livewire-tables.selectFilter.defaultOptions'; public function getKeys(): array { return collect($this->getOptions()) ->map(fn ($value, $key) => is_iterable($value) ? collect($value)->keys() : $key) ->flatten() ->map(fn ($value) => (string) $value) ->filter(fn ($value) => strlen($value) > 0) ->values() ->toArray(); } public function validate(string $value): array|string|bool { if (! in_array($value, $this->getKeys())) { return false; } return $value; } public function getFilterPillValue($value): ?string { return $this->getCustomFilterPillValue($value) ?? collect($this->getOptions()) ->mapWithKeys(fn ($options, $optgroupLabel) => is_iterable($options) ? $options : [$optgroupLabel => $options])[$value] ?? null; } }
SAVE
CANCEL