Giter Site home page Giter Site logo

le5le-com / topology Goto Github PK

View Code? Open in Web Editor NEW
3.6K 119.0 901.0 5.86 MB

A diagram (topology, UML) framework uses canvas and typescript. 一个轻量(100k左右)、功能丰富的绘图工具(微服务架构图、拓扑图、流程图、类图等UML图、脑图,动画、视频支持)。 【在线使用】:

Home Page: http://topology.le5le.com/

License: MIT License

JavaScript 0.17% TypeScript 99.57% HTML 0.19% Shell 0.08%
topology canvas typescript diagrams

topology's People

Contributors

aimluo avatar alsmile avatar ananzhusen avatar arfawong avatar bruce-ming avatar carterli avatar dependabot[bot] avatar deyihu avatar forestho avatar giscafer avatar iamxue avatar jinan5694 avatar keepawayfrom404 avatar kimmy214 avatar leeganing avatar liuqing650 avatar roojay520 avatar signdawn avatar zc19941211 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

topology's Issues

The height of topology canvas

The height of topology canvas is not equal to the height of the parent node. I don't know what kind of Kaolv it is
6J1N} 5_RHJ{(2AV_WDAHO

When the background color is set, there will be an obvious problem

$)~{HZDU{%M`D8 %2KCU(0Z

使用es5,topology.bundle.js直接引入到html中,出现Uncaught ReferenceError: Le5leTopology is not defined

  1. https://github.com/le5le-com/topology/releases中下载最新的topology.bundle.js

  2. html中引入

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<script src="topology.bundle.js"></script>
	<script src="./index.js"></script>
</head>
<body>
	<div class="canvas" id="topo-canvas"></div>
</body>
</html>
  1. 本地运行项目,浏览器访问,http://localhost:8090

  2. 结果

Init middles.

topology.bundle.js:1 Uncaught TypeError: Cannot read property 'appendChild' of null
    at topology.bundle.js:1
    at Module.<anonymous> (topology.bundle.js:1)
    at i (topology.bundle.js:1)
    at topology.bundle.js:1
    at topology.bundle.js:1
    at topology.bundle.js:1
    at topology.bundle.js:1
(anonymous) @ topology.bundle.js:1
(anonymous) @ topology.bundle.js:1
i @ topology.bundle.js:1
(anonymous) @ topology.bundle.js:1
(anonymous) @ topology.bundle.js:1
(anonymous) @ topology.bundle.js:1
(anonymous) @ topology.bundle.js:1

index.js:1 Uncaught ReferenceError: Le5leTopology is not defined
    at index.js:1
(anonymous) @ index.js:1
(index):38 Live reload enabled.

Provides parameters for whether to draw lines automatically

In the process of drawing a figure, sometimes the drawing line is always triggered by mistake. Whether it can provide a parameter to disable the function of automatic drawing line? It is turned on when the line needs to be drawn. When drawing small figures, it's too obvious to touch them by mistake

绘制图形的过程中,有时总是误触发画线,能否提供一个参数禁用自动绘制线的功能,需要绘制直线的时候在开启。当绘制小的图形时,误触太明显了

[suggestion]一些类的成员变量特定含义的值用枚举类型表示

  • 建议一些属性值可以用枚举类型表示,或者源码加上注释,这样libs API生成的文档可以清晰明白可能的值代表含义。源码阅读体验会更好,也不需要更多文档支持,现在不看文档,源码没说明就没法了解到。

eg: Pen 类的 dashTopologylocked,不看文档,单纯看源码不清楚其他值表示的意思。

image

举例

export enum TopologyLockedType {
    Unlock = 0, // 未锁定,可任意编辑
    DisableLine = 1, // 锁定连线。不能编辑连线
    OnlySelectAndHighlight = -1, // 全部锁定,不能做任何编辑,允许选中,并高亮
    OnlyCanSelect = -2, // 全部锁定,不能做任何编辑,允许选中,无高亮
    Locked = -3 // 无法做任何操作
}

提交错误

项目的bundle文件夹下的demo文件夹下仅有2个文件,一个html一个js。但是这个html引用了2个js文件,缺少一个topology.bundle.js文件。求快速修复

能否将项目中左边工具栏的iconfont独立出一个package?

在使用过程中发现工具栏的iconfont是通过


这样的方式来引用cdn 上的资源,
但是开发者在开发软件的过程中,比方说开发electron 应用或者vscode插件,希望将这些icon打包到应用中,也就是不走网络下载。因此请求,如果您有时间的话,能够方便将iconfont 独立成一个package 吗?
根据我的经验,将阿里的iconfont制作成一个npm package 非常简单,只需要在iconfont.cn网站上对应图标字体的工程里下载zip包,解压,然后将里面的文件放到npm 工程里面即可。
示例:https://github.com/awehook/blink-mind/tree/master/packages/icons

设置fillStyle会覆盖图标个文字

任意node节点
例如:
rectangle.ts 中添加下面的代码
ctx.closePath();
ctx.fillStyle = '#fff' // 新加代码
ctx.fill();
ctx.stroke();

选中节点会覆盖下面的内容

期望新增部分配置

感谢作者开源,使用起来非常方便,在使用过程中遇到一点小的问题,需要在 topology 中新增一点配置才能实现,希望作者能提供便利。

目前遇到如下两点问题:

  1. 每一个节点中添加一个hideInput配置,部分节点不需要双击出现输入框
  private showInput(item: Pen) {
    if (this.data.locked || item.locked || this.options.hideInput) {
      return;
    }

    this.inputObj = item;
    const textRect = item.getTextRect();
    this.input.value = item.text || '';
    this.input.style.left = textRect.x + 'px';
    this.input.style.top = textRect.y + 'px';
    this.input.style.width = textRect.width + 'px';
    this.input.style.height = textRect.height + 'px';
    this.input.style.zIndex = '1000';
    this.input.focus();
  }
  1. options 中提供一个最大缩放配置参数,避免放大到最大时屏幕会卡顿

欢迎有兴趣的开发者继续补充.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.