Downloads
Stars
Version
A Laravel Nova filter for picking range between a min/max value.
You can install the package via composer:
composer require digital-creative/nova-slider-filter
Create a filter as usual and extend the DigitalCreative\SliderFilter\SliderFilter
class
use DigitalCreative\SliderFilter\SliderFilter;
class MyFilter extends SliderFilter {
public function apply(NovaRequest $request, $query, $values)
{
// $values will be an array when using ->range() and int when using ->single()
}
}
and use it as usual on the filters methods within your resource class:
class ExampleNovaResource extends Resource {
public function filters(NovaRequest $request): array
{
return [
MyFilter::make()->single(min: 0, max: 100),
];
}
}
Calling the ->range()
method will render a slider with two (or more) handles, while calling the single()
method will render a slider with a single handle.
class ExampleNovaResource extends Resource {
public function filters(NovaRequest $request): array
{
return [
MyFilter::make()
->range(0, 500, 300)
->label('${value}')
MyFilter::make()
->single(min: 0, max: 500)
->label('${value}')
];
}
}
You can also set marks on the slider by using the ->marks()
method. The method accepts an array of key/value pairs where the key is the value of the mark and the value is the label to be displayed.
class ExampleNovaResource extends Resource {
public function filters(NovaRequest $request): array
{
return [
MyFilter::make()
->single(0, 100)
->marks([
'0' => '🌑',
'50' => '🌓',
'100' => '🌕'
])
];
}
}
Please give a ⭐️ if this project helped you!
Help card
that comes with Nova.The MIT License (MIT). Please see License File for more information.