File: /home/posscale/public_html/printmanager/vendor/filament/tables/src/Filters/Filter.php
<?php
namespace Filament\Tables\Filters;
use Filament\Forms\Components\Checkbox;
use Filament\Forms\Components\Field;
use Filament\Forms\Components\Toggle;
class Filter extends BaseFilter
{
protected string $formComponent = Checkbox::class;
protected function setUp(): void
{
parent::setUp();
$this->indicateUsing(function (array $state): array {
if (! ($state['isActive'] ?? false)) {
return [];
}
$indicator = $this->getIndicator();
if (! $indicator instanceof Indicator) {
$indicator = Indicator::make($indicator);
}
return [$indicator];
});
}
public function toggle(): static
{
$this->formComponent(Toggle::class);
return $this;
}
public function checkbox(): static
{
$this->formComponent(Checkbox::class);
return $this;
}
public function formComponent(string $component): static
{
$this->formComponent = $component;
return $this;
}
public function getFormField(): Field
{
$field = $this->formComponent::make('isActive')
->label($this->getLabel());
if (filled($defaultState = $this->getDefaultState())) {
$field->default($defaultState);
}
return $field;
}
/**
* @return array<string, mixed>
*/
public function getResetState(): array
{
if ($this->hasFormSchema()) {
return parent::getResetState();
}
return ['isActive' => false];
}
}