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

regraph-next

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

regraph-next

ReGraph

  • 0.0.2-beta1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

ReGraph

数据领域图表定义:以树、图为基础数据结构,带有数据业务属性与特征的图表

现状与痛点

  • 数据产品中领域图表较多,业务场景丰富
  • 产品中领域图表交互实现方式不统一
  • 领域图表开发成本高,几乎都需要个性化开发
  • 在树与图的渲染与交互上,比较成熟,但在布局上,对于开发者而言,门槛很高,直接使用第三方库也很难上手,很难调整到理想情况

ReGraph针对以上痛点,打造了基础操作层、渲染交互层、布局算法层三层结构。

ReGraph = 计算(布局插件)+ 底层操作(树图基础库)+ 渲染(交互的统一封装)

安装

yarn add regraph-next

ReScreen

ReScreen 组件统一封装了画布的操作和缩略图功能,支持对画布的全屏、复位、显示所有、重置、平移缩放等常见功能。

使用

import { ReScreen } from 'regraph-next';

<ReScreen  
  height = {500}
  width = {500}
  mapWidth = {200}
  mapHeight = {200}
  mapPosition = "RT-IN" >
  <svg>
    <g>
      <circle cx={0} cy={0} r={500} fill="yellow" />
      <circle cx={cx} cy={cy} r={250} fill="red" /> 
    </g>
  </svg> 
</ReScreen>

API

参数说明类型默认值
type画布内容的类型枚举值,可选值(SVG ,DOM)SVG
width组件整体的尺寸,支持传入百分数number/string-
height组件整体的尺寸,支持传入百分数number/string-
zoomEnabled是否启动鼠标滚动缩放画布booleantrue
focusEnabled是否启动聚焦功能,0表示不启动,1表示单击触发,2表示双击触发number0
minZoom缩放范围,最小值number-
maxZoom缩放范围,最大值number-
dragDirectionALL,HOR, VER拖拽方向的锁定ALL
needMinimap是否需要缩略图booleantrue
minimapReact.ReactElement支持自定义传入缩略图组件-
mapPositionRT, RB, LT, LB, RT-IN, RB-IN, LT-IN, LB-IN缩略图位置,右上角;-IN表示在画布的内部默认为RT
mapPadding缩略图和原图之间的大小number20
mapWidth缩略图大小number100px
mapHeight缩略图大小number100px
mapRectStyle缩略图矩形的样式object-
Buttons按钮组件React.ReactElement-
needRefresh由于画布元素的变化而引起的视图变化boolean-
resetNeedRefresh通知外层重置needRefresh为falsefunction-
onScreenChange画布发生变化时的回调,对外暴露当前的缩放信息(transform: ZoomTransform) => void-
getScreenHandler对外暴露画布操作函数any-

BaseGraph

BaseGraph 以树、图为基础数据结构,规范数据定义并提供基础操作库。

功能

  • 插入/删除/替换/查找节点/子树
  • 插入/删除/替换/查找边
  • 获取父节点/子节点/子孙节点/兄弟(层级结构/扁平结构/排序规则)
  • 获取两个子节点的相同父节点
  • 获取子节点到 任意节点(跟节点)的路径
  • 插入/删除/替换/查找节点
  • 插入/删除/替换/查找边
  • 获取父节点/子节点/子孙节点/兄弟(层级结构/扁平结构/排序规则)
  • 获取两个子节点的相同父节点
  • 获取子节点到任意节点(跟节点)的路径

更多详细BaseGraph API

BaseLayout

BaseLayout 主要处理树图布局集成

使用方式

import { ReLayout } from 'regraph-next';
const { DAGAIU } = ReLayout;
interface MyRelation {
  sourceId: number;
  targetId: number;
  periodDiff: number;
}
interface MyNode {
  id: number;
  downRelations: MyRelation[];
  upRelations: MyRelation[];
  name: string;
  desc: string;
  nodeWidth?: number;
  nodeHeight?: number;
}
// 生成dag图
const dag = new DAGAIU<MyNode, MyRelation>({
  isTransverse: true,
  padding: 20,
});
  • 生成单个DAG
dag.getSingleDAG(data)
  • 生成多个DAG
dag.getMultiDAG(data)
  • 带组的图布局
this.groupLayout = new GroupGraphLayout(nodes, links, groups, groupLinks, config);
this.groupLayout.layout();

Keywords

FAQs

Package last updated on 12 Mar 2020

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