Js Money Field
A Filament plugin for dynamic international currency masking using JavaScript Intl.
Author:
Tuxon
Documentation
A Filament plugin for dynamic international currency masking using JavaScript Intl, supporting flexible currency and locale configuration via closures.
This plugin extends the functionality of a standard text field by adding a dynamic currency mask. All properties and behaviors of the standard field remain intact.
#Supported Column Types
The plugin supports integer, decimal, double, and float. However, it is highly recommended to use integer or decimal for better precision and consistency when handling currency values.
If the column is of type integer, the entered value is stored as an integer, including the decimal cents, without any currency symbols or formatting.
#Installation
You can install the package via composer:
composer require tuxones/filament-js-money-field
#Usage
#Form
use Tuxones\JsMoneyField\Forms\Components\JSMoneyInput;
JSMoneyInput::make('consumption_limit')
->currency('USD') // ISO 4217 Currency Code, example: USD
->locale('en-US') // BCP 47 Locale Code, example: en-US
// OR
JSMoneyInput::make('consumption_limit')
->hidden(fn (Get $get) => !$get('country'))
->currency(fn (Get $get) => $get('country') ? Country::find($get('country'))->currency : 'USD')
->locale(fn (Get $get) => $get('country') ? Country::find($get('country'))->locale : 'en-US')
#Table column
use Tuxones\JsMoneyField\Tables\Columns\JSMoneyColumn;
JSMoneyColumn::make('consumption_limit')
->currency('USD') // ISO 4217 Currency Code, example: USD
->locale('en-US') // BCP 47 Locale Code, example: en-US
// OR
JSMoneyColumn::make('consumption_limit')
->currency(fn (Model $record) => $record->country ? $record->country->currency : 'USD')
->locale(fn (Model $record) => $record->country ? $record->country->locale : 'en-US')
#InfoList
use Tuxones\JsMoneyField\Infolists\Components\JSMoneyEntry;
JSMoneyEntry::make('consumption_limit')
->currency('USD') // ISO 4217 Currency Code, example: USD
->locale('en-US') // BCP 47 Locale Code, example: en-US
// OR
JSMoneyEntry::make('consumption_limit')
->currency(fn (Model $record) => $record->country ? $record->country->currency : 'USD')
->locale(fn (Model $record) => $record->country ? $record->country->locale : 'en-US')
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#License
The MIT License (MIT). Please see License File for more information.
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle