lednerb/nova-text-copy-field

Laravel Nova文本字段,支持点击复制

v1.6.0 2022-03-25 16:32 UTC

This package is auto-updated.

Last update: 2024-09-25 21:53:11 UTC


README

Packagist Version Packagist Downloads

此存储库是从原始的 sixlive/nova-text-copy-field 分支而来,该分支实现了一些附加功能和修复,并与原始代码完全兼容

  • 支持只读字段
  • 对于空或null值不显示复制按钮
  • 将图标更改为heroicons以匹配Nova样式

A Laravel Nova文本字段,支持点击复制。此字段的行为就像一个文本字段,但添加了只需点击即可将字段值复制到剪贴板的功能。

此包也可在 Nova Packages 上找到。

animated screenshot

安装

> composer require lednerb/nova-text-copy-field

用法

将字段添加到资源中。

use Sixlive\TextCopy\TextCopy;

public function fields(Request $request)
{
    return [
        TextCopy::make('Example Copy Field', 'example_copy_field'),
    ];
}

截断长字符串

在某些情况下,您可能希望截断字段值的显示,但仍允许复制完整值。您可以使用 truncate() 方法来实现这一点。

TextCopy::make('Some Long Field')
    ->truncate(100)

隐藏字段值

这对于像API密钥这样的秘密非常适合。

TextCopy::make('Some Secret String', 'some_secret_string')
    ->mask('') // default '*'
    ->truncate(5)

复制按钮标题

复制按钮的默认标题为字段名称前加"复制"。例如,TextCopy::make('Some Field', 'some_field') 按钮标题将是"复制 Some Field"。

如果您想手动设置标题,可以使用 copyButtonTitle() 方法。

TextCopy::make('Some Field', 'some_field')
    ->copyButtonTitle('Some alternative title')

替代复制值

您可以选择要修改并复制到用户剪贴板的值。您可以选择传递一个值或一个闭包。

TextCopy::make('Some Secret String', 'some_long_string')
    ->copyValue(function ($value) {
        return substr($value, -6);
    })

TextCopy::make('Some Secret String', 'some_long_string')
    ->copyValue('some fixed copy value')

仅在悬停时显示按钮

TextCopy::make('Some Secret String', 'some_long_string')
    ->showButtonOnlyOnHover()

屏幕截图

默认状态

default default

成功状态

当字段值成功复制到用户的剪贴板时。 success

错误状态

当无法将字段值添加到用户的剪贴板时。 error

截断显示值

truncated display

隐藏显示值

masked display

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

代码风格

StyleCI将应用Laravel预设

安全

如果您发现任何安全相关的问题,请通过电子邮件oss@tjmiller.co而不是使用问题跟踪器。

鸣谢

许可协议

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