定制 trecenode/filament-mermaid-field 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

trecenode/filament-mermaid-field

最新稳定版本:2.0.0

Composer 安装命令:

composer require trecenode/filament-mermaid-field

包简介

Filament Mermaid Field

README 文档

README

A custom field for Filament that allows creating and visualizing Mermaid diagrams with zoom and pan functionality created by 13Node.com

Features

  • ✨ Integrated text editor with Filament
  • 🖼️ Real-time Mermaid diagram rendering
  • 🔍 Interactive zoom and pan using local files
  • 🌙 Light and dark theme support
  • 📱 Responsive design
  • 🚀 Easy Livewire integration

Installation

  1. Install the package:
composer require trecenode/filament-mermaid-field
  1. Publish the assets:
php artisan vendor:publish --tag=filament-mermaid-field-assets

This will copy the CSS and JavaScript files to your public directory.

Usage

In your Resource or Form

use Trecenode\FilamentMermaidField\FilamentMermaidField;

FilamentMermaidField::make('diagram_content')
    ->label('Mermaid Diagram')
    ->placeholder('graph TD\n    A[Start] --> B[Process]\n    B --> C[End]')
    ->rows(10)

Complete example

<?php

namespace App\Filament\Resources;

use Filament\Forms;
use Filament\Resources\Resource;
use Trecenode\FilamentMermaidField\FilamentMermaidField;

class DiagramResource extends Resource
{
    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                Forms\Components\TextInput::make('title')
                    ->required()
                    ->maxLength(255),
                
                FilamentMermaidField::make('content')
                    ->label('Diagram Content')
                    ->placeholder('graph TD\n    A[Start] --> B{Condition?}\n    B -->|Yes| C[Process A]\n    B -->|No| D[Process B]\n    C --> E[End]\n    D --> E')
                    ->rows(15)
                    ->required(),
                    
                Forms\Components\Textarea::make('description')
                    ->label('Description')
                    ->rows(3),
            ]);
    }
}

Mermaid Diagram Examples

Flowchart

graph TD
    A[Start] --> B{Condition?}
    B -->|Yes| C[Process A]
    B -->|No| D[Process B]
    C --> E[End]
    D --> E

Sequence Diagram

sequenceDiagram
    participant A as Client
    participant B as Server
    A->>B: Request
    B-->>A: Response

Class Diagram

classDiagram
    class Animal {
        +String name
        +eat()
    }
    class Dog {
        +bark()
    }
    Animal <|-- Dog

Development

Local Development Setup

  1. Clone the repository
  2. Run composer install
  3. Install assets:
php artisan vendor:publish --tag=filament-mermaid-field-assets

### Project Structure

- `src/` - PHP source code
- `resources/views/` - Blade views
- `resources/js/` - JavaScript source files  
- `resources/css/` - CSS source files

## Changelog

* **1.1** - Local assets support, UI/UX improvements, Filament asset integration
* **1.0** - First version, only works if row is called "content"

## Credits

-   [Danilo Ulloa](https://github.com/trecenode)
-   [Mermaid.js](https://mermaid.js.org/) - Diagram library
-   [svg-pan-zoom](https://github.com/ariutta/svg-pan-zoom) - Pan and zoom functionality

## License

The MIT License (MIT). Please see [License File](LICENSE) for more information.

统计信息

  • 总下载量: 15
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-18