welkervinicius/nova-jquery-mask

An input mask field for Laravel Nova, based on the popular jQuery Mask Plugin, with shortcuts for CPF/CNPJ and Telephone.

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Language:Vue

pkg:composer/welkervinicius/nova-jquery-mask

v1.0.0 2025-10-02 13:30 UTC

This package is auto-updated.

Last update: 2025-10-02 13:46:05 UTC


README

Latest Version on Packagist Total Downloads License

Um campo de formulário para o Laravel Nova que integra a popular biblioteca jQuery Mask Plugin de Igor Escobar. Permite aplicar máscaras de entrada de forma fácil e flexível em seus campos, incluindo máscaras dinâmicas para CPF/CNPJ e Telefone/Celular.

Instalação

Você pode instalar o pacote via Composer:

composer require welkervinicius/nova-jquery-mask

Uso

Depois de instalar, você pode usar o campo NovaJqueryMask nos seus Nova Resources.

Exemplos de Uso

Aqui estão alguns exemplos de como utilizar os diferentes tipos de máscara disponíveis.

// Em um Resource, ex: app/Nova/Client.php

use Illuminate\Http\Request;
use Laravel\Nova\Fields\ID;
use Welkervinicius\NovaJqueryMask\NovaJqueryMask;

class Client extends Resource
{
    // ...

    public function fields(Request $request)
    {
        return [
            ID::make()->sortable(),

            // --- Máscaras Dinâmicas (Atalhos) ---

            // Muda automaticamente entre CPF e CNPJ enquanto o usuário digita.
            NovaJqueryMask::make('Documento', 'document')
                ->cpfCnpj()
                ->placeholder('CPF ou CNPJ'),

            // Muda automaticamente entre Telefone Fixo e Celular.
            NovaJqueryMask::make('Contato', 'phone_number')
                ->telCel()
                ->placeholder('Telefone ou Celular'),


            // --- Máscaras Estáticas ---

            // Uma máscara simples para CEP.
            NovaJqueryMask::make('CEP')
                ->mask('00000-000')
                ->placeholder('00000-000'),

            // Uma máscara para data.
            NovaJqueryMask::make('Data de Nascimento', 'birth_date')
                ->mask('00/00/0000'),


            // --- Máscara Estática com Opções ---

            // Usando a opção `reverse: true` para valores monetários.
            NovaJqueryMask::make('Valor', 'amount')
                ->mask('#.##0,00', ['reverse' => true])
                ->placeholder('R$ 1.234,56'),
        ];
    }
}

Simplificando o Uso com um alias

Para um código mais limpo, você pode dar um "apelido" (alias) para a classe no momento da importação.

// No topo do seu arquivo de Resource
use Welkervinicius\NovaJqueryMask\NovaJqueryMask as Mask;

// ...

// Agora você pode usar o nome curto
public function fields(Request $request)
{
    return [
        ID::make()->sortable(),

        Mask::make('Documento', 'document')->cpfCnpj(),

        Mask::make('Contato', 'phone_number')->telCel(),
    ];
}

Changelog

Por favor, veja CHANGELOG para mais informações sobre o que mudou recentemente.

Contribuições

Por favor, veja CONTRIBUTING para detalhes.

Licença

The MIT License (MIT). Por favor, veja o Arquivo de Licença para mais informações.