A Laravel Nova range input filter.

You can install the package via composer:
composer require digital-creative/nova-range-input-filter
Create a filter as usual and extend the DigitalCreative\RangeInputFilter\RangeInputFilter
class
use DigitalCreative\RangeInputFilter\RangeInputFilter;
class MyFilter extends RangeInputFilter {
public function apply(NovaRequest $request, $query, $value)
{
$from = data_get($value, 'from');
$to = data_get($value, 'to');
}
}
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()
];
}
}
The available options are straight forward:
class ExampleNovaResource extends Resource {
public function filters(NovaRequest $request): array
{
return [
MyFilter::make()
->dividerLabel('<>') // control the divider label in between the inputs
->inputType('week') // supports any html input type
->placeholder('From', 'To') // control the placeholder of the inputs
->fromAttributes([ 'min' => 0 ]) // some inputs type like number accepts more attributes like min/max/step etc..
->toAttributes([ 'max' => 100 ])
];
}
}
Due to the size limitation of the native nova filter box some input types may not look as expected, for this reason you can use Nova Mega Filter package instead which is a drop-in replacement for the native filter box.
The MIT License (MIT). Please see License File for more information.