New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-monitor-dag

Package Overview
Dependencies
Maintainers
2
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-monitor-dag

一个基于React的运维/监控DAG图

  • 1.2.3
  • latest
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

一个基于React的运维/监控DAG图

English | 简体中文

✨ 特性

  • 支持左到右,上到下的布局
  • 支持自定义状态,左上角自定义状态注释
  • 支持自定义节点样式,以及hover,focus状态
  • 支持线段label样式
  • 支持节点,锚点,线段label的tooltips
  • 支持节点,线段的右键菜单
  • 支持minimap,以及高亮状态
  • 支持线段流动动画

📦 安装

npm install react-monitor-dag

API

MonitorDag属性

参数说明类型默认值
data画布数据any-
width组件宽度number | string-
height组件高度number | string -
className组件类名string-
nodeMenu节点右键菜单配置Array< menu> | (node) => Array< menu>-
nodeMenuClassName节点右键菜单样式string-
edgeMenu线段右键菜单配置Array< menu> [ ]
config组件的画布配置,见config Propany -
polling组件的轮训属性配置,见polling Propobject{ }
registerStatus自行注册状态,根据node的status给节点加上classobjectkey:value的形式,可以自行注册,和node的status字段对应起来
statusNote画布左上角状态注释,见statusNote Propobject{ }
onClickNode单击节点事件(node) => void-
onContextmenuNode右键节点事件(node) => void-
onDblClickNode双击节点事件(node) => void-
onClickEdge单击线段事件(edge) => void-
onClickLabel单击label的事件(label, edge) => void-
onContextmenuEdge右键线段事件(edge) => void-
onContextmenuGroup右键group事件(edge) => void-
onChangePage单击group分页事件(edge) => void-
onNodeStatusChange画布有节点状态变化后的回调(data) => void-

menu

'节点/线段'的右键菜单配置

参数说明类型默认值
title每列的展示的名字string-
key每列的唯一标志,对应数据上的key值string-
render支持每列的自定义样式(key) => void-
onClick每列的点击回调(key, data) => void-

config

画布配置

参数说明类型默认值
direction图的方向stringleft-right | top-bottom
edge定制线段的类型edge Prop { }-
group定制节点组的类型group Prop { }-
labelRender线段label的渲染方法(label) => void-
labelTipsRender线段label tips的渲染方法(data) => void-
nodeRender节点的渲染方法(data) => void-
nodeTipsRender节点tips的渲染方法(data) => void-
endpointTipsRender锚点tips的渲染方法(data) => void-
minimap是否开启缩略图minimap Prop { }-
delayDraw是否延迟加载 number0
autoLayout自定义布局autoLayout Prop {}-
diffOptions节点更新时diff的字段集合Array< string>-
onLoaded画布渲染之后的回调(data: {nodes, edges, groups}) => {}-

edge

定制线段属性

参数说明类型默认值
type线段的类型string-
config线段的配置 any-

group

定制线段属性

参数说明类型默认值
enableSearch是否开启节点组搜索节点booleanfalse
enablePagination是否开启翻页 boolean true
pageSize每页的数量 number 20
rowCnt节点组每行展示多少个节点 number 5

minimap

缩略图属性

参数说明类型默认值
enable是否开启缩略图boolean-
config缩略图的配置minimap Config Prop { }-

minimap Config

缩略图的配置

参数说明类型默认值
nodeColor节点颜色any-
activeNodeColor节点激活颜色any-

autoLayout Config

自动布局的配置

参数说明类型默认值
enable是否开启自动布局boolean-
isAlways否添加节点后就重新布局boolean-
config算法配置{ }-

polling

轮训属性配置

参数说明类型默认值
enable是否支持轮训boolean-
interval轮训时间number-
getData轮训方法(data) => void-

statusNote

画布左上角状态配置

参数说明类型默认值
enable是否开启左上角状态显示boolean-
notes左上角状态配置信息notes Prop { }-

notes

左上角状态配置信息

参数说明类型默认值
code左上角状态string-
className左上角状态栏类名 string-
text左上角状态显示文字string-
render自定义渲染方法function-

🔗API

import MonitorDag from 'react-monitor-dag';
import 'react-monitor-dag/dist/index.css'; 
<MonitorDag
  data={data}
  nodeMenu={menu}                   // Node Right-click Menu Configuration
  edgeMenu={menu}                   // Edge Right-click Menu Configuration
  onClickNode={(node) => {}}        // Single Click Node Event
  onContextmenuNode={(node) => {}}  // Right Click Node Event
  onDblClickNode={(node) => {}}     // Double Click Node Event
  onClickEdge={(edge) => {}}        // Single Click Edge Event
  onContextmenuEdge={(edge) => {}}  // Right Click Edge Event
  onContextmenuGroup={(data) => {}}   // Right Click Group Event
  onChangePage={(data) => {}}        // Single Click Group Pagination Event
  onNodeStatusChange={(data) => {}}  // the canvas has a callback after the node state changes
  polling={{                        // support polling
    enable: true,
    interval: 5000,                 // interval of polling 
    getData: (data) => {            // the method of get data

    }
  }}
  registerStatus={{                 // Register status, which adds class to the node based on its status
    success: 'success-class',
    fail: 'fail-class',
    timeout: 'timeout-class',
    running: 'runnning-class',
    waitting: 'waiting-class',
    other: 'other-class'
  }}
  statusNote={{                      // Status note in upper left corner
    enable: true,
    notes: [{
      code: 'success',
      className: 'success-class',
      text: '运行成功'
    }]
  }}
>
</MonitorDag>
interface menu { // '节点/线段'的右键菜单配置
  title ? : string, // 每列的展示的名字
    key: string, // 每列的唯一标志,对应数据上的key值
    render ? (key: string) : void, // 支持每列的自定义样式
    onClick ? (key: string, data: any) : void, // 每列的点击回调
}

interface config {
  direction: string, // 图的方向: 'left-right' or 'top-bottom'
    edge: { // 定制线段的类型
      type: string,
      config: any
    },
    labelRender ? (label: JSX.Element) : void, // 线段label的渲染方法
    labelTipsRender ? (data: any) : void, // 线段label tips的渲染方法
    nodeRender ? (data: any) : void, // 节点的渲染方法
    nodeTipsRender ? (data: any) : void, // 节点tips的渲染方法
    endpointTipsRender ? (data: any) : void, // 锚点tips的渲染方法
    minimap: { // 是否开启缩略图
      enable: boolean,
      config: {
        nodeColor: any, // 节点颜色
        activeNodeColor: any // 节点激活颜色
      }
    }
}

interface props {
  data: any, // 画布数据
    width ? : number | string, // 组件宽
    height ? : number | string, // 组件高
    className ? : string, // 组件classname
    nodeMenu: Array < menu > , // 节点右键菜单配置
    edgeMenu: Array < menu > , // 线段右键菜单配置
    config ? : any, // 画布配置
    polling ? : { // 支持轮训
      enable: boolean,
      interval: number, // 轮训时间
      getData(data): void // 轮训方法
    },
    registerStatus ? : { // 自行注册状态,会根据node的status给节点加上class
      success: string,
      fail: string,
      // key:value的形式,可以自行注册,和node的status字段对应起来
    },
    statusNote ? : { // 画布左上角状态注释
      enable: boolean,
      notes: [{
        code: string,
        className: string,
        text: string,
        render?: () => JSX.Element
      }]
    },
    onClickNode ? (node: any) : void, // 单击节点事件
    onContextmenuNode ? (node: any) : void, // 右键节点事件
    onDblClickNode ? (node: any) : void, // 双击节点事件
    onClickEdge ? (edge: any) : void, // 单击线段事件
    onClickLabel ? (label: string, edge: any) : void, //单击label的事件
    onContextmenuEdge ? (edge: any) : void, // 右键线段事件
    onContextmenuGroup?(edge: any): void,   // 右键group事件
    onChangePage?(data:any): void,          // 单击分页事件&搜索
    onNodeStatusChange?(data: any): void           // 画布有节点状态变化后的回调
}

如需要更多定制的需求,您可以提issue或者参考Butterfly来定制您需要的需求

FAQs

Package last updated on 05 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc