greg0x46 / masked-field
A Laravel Nova field.
Installs: 21 447
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 3
Open Issues: 1
Language:Vue
Requires
- php: ^7.3|^8.0
- laravel/nova: ^4.0
README
Installation
composer require greg0x46/masked-field
Basic Usage
To use the Laravel Nova Masked Field, follow these steps:
- Import the MaskedField class in your Nova resource file:
use Greg0x46\MaskedField\MaskedField;
- Add the MaskedField to the fields method of your resource file:
public function fields(Request $request) { return [ MaskedField::make('Phone') ->mask('(###) ###-####'), ]; }
Usage with dependsOn
You can also use the dependsOn method to set a conditional mask based on the value of another field. Here's an example:
use Greg0x46\MaskedField\MaskedField; public function fields(Request $request) { return [ MaskedField::make('Phone', 'phone') ->mask('(###) ###-####') ->dependsOn(['country'], function (MaskedField $field, NovaRequest $request, FormData $formData) { if($formData->country == 'BR') $field->mask('(##) ####-####'); }) ]; }
Mask syntax
The Laravel Nova Masked Field uses a mask syntax to define patterns for input formatting. Here are the default tokens available:
{ '#': { pattern: /[0-9]/ }, 'X': { pattern: /[0-9a-zA-Z]/ }, 'S': { pattern: /[a-zA-Z]/ }, 'A': { pattern: /[a-zA-Z]/, uppercase: true }, 'a': { pattern: /[a-zA-Z]/, lowercase: true }, '!': { escape: true }, '*': { repeat: true } }
You can refer to the beholdr/maska repository for more information on the mask syntax.
References
- It is a custom field for Laravel Nova
- It uses beholdr/maska
- It is inpired by wemersonrv/input-mask
Notice Regarding Nova License
Hey everyone,
My Nova license expired in November 2023 for version v4.29.2, which is the last version I have access to. Currently, I don't have plans to renew it, so unfortunately, I won't be able to assist with issues related to updates or newer Nova features. Feel free to seek alternative support or solutions with other users or maintainers.
Thank you for your understanding.