Skip to content

TappNetwork/filament-value-range-filter

Repository files navigation

Filament Value Range Filter

Latest Version on Packagist GitHub Tests Action Status Code Style Action Status Total Downloads

A value range filter for Filament table builder.

Installation

composer require tapp/filament-value-range-filter

Optionally, you can publish the translations files with:

php artisan vendor:publish --tag="filament-value-range-filter-translations"

Appareance

Filament Value Range Filters

Filament Value Range Filter Options

Filament Value Range Filter Greater Than Option



Filter Indicators

Filament Value Range Filter Between Indicator

Filament Value Range Filter Greater Than Indicator

Usage

Filter

Add to your Filament resource:

use Tapp\FilamentValueRangeFilter\Filters\ValueRangeFilter;

public static function table(Table $table): Table
{
    return $table
        //...
        ->filters([
            ValueRangeFilter::make('project_value')
                    ->currency(),
            ValueRangeFilter::make('estimated_hours'),
            // ...
        ])
}

Options

Currency

You may use the ->currency() method to format the values on placeholder and filter indicator as currency. The default currency format is USD.

ValueRangeFilter::make('project_value')
    ->currency(),

Change the currency format

The ->currencyCode() and ->locale() methods can be used to change the currency format. You can pass one of the ISO 4217 currency codes to the ->currencyCode() method.

ValueRangeFilter::make('project_value')
    ->currency()
    ->currencyCode('EUR')
    ->locale('fr'),

Filament Value Range Filter Between currency in EUR Indicator

Filament Value Range Filter Between currency in EUR


Currency value

When using currency values, the filter assumes that the value stored on database that will be compared with the provided value on filter is in the smallest unit of the currency (e.g., cents for USD). Therefore, the value provided in the filter is by default multiplied by 100 to be compared with the value stored in the database.

If the values stored in your database are not in the currency's smallest unit and you do not need the value provided in the filter to be multiplied by 100, pass 'false' to the ->currencyInSmallestUnit() method:

ValueRangeFilter::make('project_value')
    ->currency()
    ->currencyInSmallestUnit(false),

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

If you discover any security-related issues, please email [email protected].

Credits

License

The MIT License (MIT). Please see License File for more information.