dev-idkwhoami/masked-inputs

0.1.0 2024-05-02 22:53 UTC

This package is auto-updated.

Last update: 2024-10-03 00:19:49 UTC


README

Latest Version on Packagist Total Downloads

此包为 Filament PHP 提供了掩码输入字段,用于在文本值上应用掩码。

安装

注意:当前此包仅与 Filament v3 兼容,目前没有计划发布与 v2 兼容的版本。

您可以通过 composer 安装此包

composer require dev-idkwhoami/masked-inputs

然后发布您应用中的资源

php artisan filament:assets

MaskedInput 字段使用方法

目前这是唯一支持配置 js 脚本的方式,但它允许使用库提供的几乎所有功能。

->options() 期望一个 RawJS 对象,该对象将被渲染为 JS 对象。

use DevIDKWHOAMI\MaskedInputs\Forms\Components\MaskedInput;

MaskedInput::make('price')
    ->options(RawJs::make(<<<'JS'
            { mask: Number, scale: 2, thousandsSeparator: '.', padFractionalZeros: true, normalizeZeros: true, radix: ',', mapToRadix: ['.'], autofix: true }
        JS))
// how the plugin is normaly used
const mask = IMask(element, maskOptions);
<!-- How the plugins uses it -->
const mask = IMask(element, {{ $options }});

这样,->options() 就可以完全控制 maskOptions

有关如何定义掩码的更多信息,请参阅指南掩码

其他示例

这仅允许类似 150d3m1y 的值,并阻止类似 m115y56s 的值。

use DevIDKWHOAMI\MaskedInputs\Forms\Components\MaskedInput;

MaskedInput::make('duration')
    ->helperText("d = days, m = months, y = years")
    ->options(RawJs::make(<<<'JS'
        { mask: 'num#', definitions: { '#': /[dmy]/, '&': /\d+/ }, blocks: { num: { mask: Number, expose: true }} }
        JS)),

想法

  • 为方便使用预定义的 RawJs 对象

更新日志

有关最近更改的更多信息,请参阅 更新日志

贡献

有关详细信息,请参阅 贡献指南

致谢

此包基于 JavaScript 库 imask js

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件