Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
phosphorylation
/
tecas-solar.ma
/
vendor
/
filament
/
tables
/
src
/
Filters
/
QueryBuilder
/
Constraints
:
SelectConstraint.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Filament\Tables\Filters\QueryBuilder\Constraints; use Closure; use Filament\Support\Facades\FilamentIcon; use Filament\Tables\Filters\Concerns\HasOptions; use Filament\Tables\Filters\QueryBuilder\Constraints\Operators\IsFilledOperator; use Filament\Tables\Filters\QueryBuilder\Constraints\SelectConstraint\Operators\IsOperator; class SelectConstraint extends Constraint { use Concerns\CanBeNullable; use HasOptions; protected bool | Closure $isMultiple = false; protected bool | Closure $isNative = true; protected bool | Closure $isSearchable = false; protected int | Closure $optionsLimit = 50; protected ?Closure $getOptionLabelFromRecordUsing = null; protected function setUp(): void { parent::setUp(); $this->icon(FilamentIcon::resolve('tables::filters.query-builder.constraints.select') ?? 'heroicon-m-chevron-up-down'); $this->operators([ IsOperator::class, IsFilledOperator::make() ->visible(fn (): bool => $this->isNullable()), ]); } public function multiple(bool | Closure $condition = true): static { $this->isMultiple = $condition; return $this; } public function searchable(bool | Closure $condition = true): static { $this->isSearchable = $condition; return $this; } public function isMultiple(): bool { return (bool) $this->evaluate($this->isMultiple); } public function isSearchable(): bool { return (bool) $this->evaluate($this->isSearchable); } public function optionsLimit(int | Closure $limit): static { $this->optionsLimit = $limit; return $this; } public function getOptionsLimit(): int { return $this->evaluate($this->optionsLimit); } public function native(bool | Closure $condition = true): static { $this->isNative = $condition; return $this; } public function isNative(): bool { return (bool) $this->evaluate($this->isNative); } public function getOptionLabelFromRecordUsing(?Closure $callback): static { $this->getOptionLabelFromRecordUsing = $callback; return $this; } public function getOptionLabelFromRecordUsingCallback(): ?Closure { return $this->getOptionLabelFromRecordUsing; } }