├── babel.config.js ├── public ├── favicon.ico ├── icon │ ├── 2.png │ ├── dot.gif │ ├── KAFKA.png │ ├── beats.png │ ├── group.png │ ├── home.png │ ├── label.png │ ├── line.png │ ├── redis.png │ ├── 无标题文档.pdf │ ├── center.png │ ├── cluster.png │ ├── database.png │ ├── delete.png │ ├── editor.png │ ├── exchange.png │ ├── handler.png │ ├── input2.png │ ├── logstash.png │ ├── output2.png │ ├── stencil.png │ ├── toolbar.png │ ├── toolbar2.png │ ├── warning.gif │ ├── boxDomain.png │ ├── authorizate.png │ ├── connectPoint.png │ ├── elasticsearch.png │ ├── connectionpoint.png │ ├── dot.svg │ ├── rotate.svg │ ├── 旋转.png │ ├── 旋转.svg │ └── kibana.svg ├── images │ ├── box.jpg │ ├── button.gif │ ├── check.png │ ├── close.gif │ ├── error.gif │ ├── point.gif │ ├── resize.gif │ ├── window.gif │ ├── expanded.gif │ ├── maximize.gif │ ├── minimize.gif │ ├── submenu.gif │ ├── warning.gif │ ├── warning.png │ ├── collapsed.gif │ ├── normalize.gif │ ├── separator.gif │ ├── transparent.gif │ ├── window-title.gif │ └── order │ │ ├── selected-1.png │ │ ├── selected-2.png │ │ ├── selected-3.png │ │ ├── selected-4.png │ │ ├── selected-5.png │ │ ├── selected-6.png │ │ ├── selected.png │ │ ├── unselect-1.png │ │ ├── unselect-2.png │ │ ├── unselect-3.png │ │ ├── unselect-4.png │ │ ├── unselect-5.png │ │ ├── unselect-6.png │ │ ├── unselect-7.png │ │ ├── unselect-8.png │ │ ├── unselect-9.png │ │ ├── unselect.png │ │ └── unselect-10.png ├── mxgraph │ ├── error.gif │ ├── point.gif │ ├── button.gif │ ├── submenu.gif │ ├── warning.gif │ ├── warning.png │ ├── window.gif │ ├── collapsed.gif │ ├── expanded.gif │ ├── images │ │ ├── bg.gif │ │ ├── box.png │ │ ├── cut.gif │ │ ├── fit.gif │ │ ├── new.gif │ │ ├── pan.gif │ │ ├── top.gif │ │ ├── up.gif │ │ ├── actor.gif │ │ ├── arrow.gif │ │ ├── bell.png │ │ ├── bold.gif │ │ ├── cloud.gif │ │ ├── copy.gif │ │ ├── down.gif │ │ ├── dude3.png │ │ ├── earth.png │ │ ├── font.gif │ │ ├── gear.gif │ │ ├── gear.png │ │ ├── grid.gif │ │ ├── group.gif │ │ ├── help.gif │ │ ├── hline.gif │ │ ├── house.gif │ │ ├── house.png │ │ ├── image.gif │ │ ├── left.gif │ │ ├── link.gif │ │ ├── open.gif │ │ ├── paste.gif │ │ ├── plain.gif │ │ ├── press.gif │ │ ├── print.gif │ │ ├── redo.gif │ │ ├── right.gif │ │ ├── save.gif │ │ ├── tasks.gif │ │ ├── text.gif │ │ ├── tree.gif │ │ ├── undo.gif │ │ ├── zoom.gif │ │ ├── aligntop.gif │ │ ├── bottom.gif │ │ ├── camera.gif │ │ ├── center.gif │ │ ├── cmp-bg.gif │ │ ├── collapse.gif │ │ ├── connect.gif │ │ ├── console.gif │ │ ├── cylinder.gif │ │ ├── delete.gif │ │ ├── diagram.gif │ │ ├── ellipse.gif │ │ ├── entity.gif │ │ ├── expand.gif │ │ ├── hexagon.gif │ │ ├── italic.gif │ │ ├── loading.gif │ │ ├── middle.gif │ │ ├── open_end.gif │ │ ├── outline.gif │ │ ├── oval_end.gif │ │ ├── package.png │ │ ├── preview.gif │ │ ├── printer.png │ │ ├── refresh.gif │ │ ├── rhombus.gif │ │ ├── rounded.gif │ │ ├── saveas.gif │ │ ├── script.gif │ │ ├── select.gif │ │ ├── server.png │ │ ├── straight.gif │ │ ├── swimlane.gif │ │ ├── toback.gif │ │ ├── tofront.gif │ │ ├── toolbar.gif │ │ ├── triangle.gif │ │ ├── ungroup.gif │ │ ├── vertical.gif │ │ ├── wrench.png │ │ ├── zoomin.gif │ │ ├── zoomout.gif │ │ ├── alignleft.gif │ │ ├── alignright.gif │ │ ├── block_end.gif │ │ ├── connector.gif │ │ ├── cube_green.png │ │ ├── fillcolor.gif │ │ ├── fontcolor.gif │ │ ├── linecolor.gif │ │ ├── open_start.gif │ │ ├── oval_start.gif │ │ ├── properties.gif │ │ ├── rectangle.gif │ │ ├── underline.gif │ │ ├── workplace.png │ │ ├── zoomactual.gif │ │ ├── alignbottom.gif │ │ ├── aligncenter.gif │ │ ├── alignmiddle.gif │ │ ├── block_start.gif │ │ ├── classic_end.gif │ │ ├── classic_start.gif │ │ ├── diamond_end.gif │ │ ├── diamond_start.gif │ │ ├── doubleellipse.gif │ │ ├── draw │ │ │ ├── drawbg.jpg │ │ │ ├── mxlogo.jpg │ │ │ ├── drawfooter.jpg │ │ │ ├── drawheader.jpg │ │ │ └── drawbgcolor.jpg │ │ ├── overlays │ │ │ ├── help.png │ │ │ ├── check.png │ │ │ ├── error.png │ │ │ ├── flash.png │ │ │ ├── house.png │ │ │ ├── pencil.png │ │ │ ├── user3.png │ │ │ ├── users3.png │ │ │ ├── forbidden.png │ │ │ ├── printer.png │ │ │ ├── workplace.png │ │ │ ├── information.png │ │ │ └── lightbulb_on.png │ │ ├── preferences.gif │ │ └── symbols │ │ │ ├── error.png │ │ │ ├── event.png │ │ │ ├── fork.png │ │ │ ├── link.png │ │ │ ├── merge.png │ │ │ ├── rule.png │ │ │ ├── timer.png │ │ │ ├── message.png │ │ │ ├── cancel_end.png │ │ │ ├── event_end.png │ │ │ ├── inclusive.png │ │ │ ├── multiple.png │ │ │ ├── small_fork.gif │ │ │ ├── small_link.gif │ │ │ ├── small_rule.gif │ │ │ ├── terminate.png │ │ │ ├── message_end.png │ │ │ ├── small_error.gif │ │ │ ├── small_event.gif │ │ │ ├── small_merge.gif │ │ │ ├── small_timer.gif │ │ │ ├── small_event_end.gif │ │ │ ├── small_inclusive.gif │ │ │ ├── small_message.gif │ │ │ ├── small_multiple.gif │ │ │ ├── small_terminate.gif │ │ │ ├── small_cancel_end.gif │ │ │ ├── small_message_end.gif │ │ │ ├── cancel_intermediate.png │ │ │ ├── event_intermediate.png │ │ │ ├── message_intermediate.png │ │ │ ├── small_cancel_intermediate.gif │ │ │ ├── small_event_intermediate.gif │ │ │ └── small_message_intermediate.gif │ ├── separator.gif │ ├── transparent.gif │ └── window-title.gif ├── stencil │ ├── electrics.xml │ └── sidebar.jsx ├── Export.ashx ├── index.html └── data │ └── data2.xml ├── src ├── assets │ ├── bgi.png │ ├── bgi2.png │ ├── grid.gif │ ├── grid.png │ ├── logo.png │ ├── grid2.gif │ ├── icon │ │ ├── 1.png │ │ ├── 3.png │ │ ├── 10.png │ │ ├── 15.png │ │ ├── home.png │ │ ├── line.png │ │ ├── defend.png │ │ ├── delete.png │ │ ├── editor.png │ │ ├── group.png │ │ ├── label.png │ │ ├── database.png │ │ ├── handler.png │ │ ├── service.png │ │ ├── stencil.png │ │ ├── toolbar.png │ │ ├── toolbar2.png │ │ ├── delete copy.png │ │ └── connectPoint.png │ └── images │ │ ├── dot.gif │ │ ├── button.gif │ │ ├── close.gif │ │ ├── error.gif │ │ ├── point.gif │ │ ├── resize.gif │ │ ├── submenu.gif │ │ ├── warning.gif │ │ ├── warning.png │ │ ├── window.gif │ │ ├── collapsed.gif │ │ ├── expanded.gif │ │ ├── maximize.gif │ │ ├── minimize.gif │ │ ├── normalize.gif │ │ ├── separator.gif │ │ ├── transparent.gif │ │ └── window-title.gif ├── main.js ├── views │ ├── customToolbar │ │ ├── component │ │ │ ├── dataView.vue │ │ │ ├── test.yaml │ │ │ ├── uploadData.vue │ │ │ └── styleSelect.vue │ │ ├── general-shape.js │ │ ├── x2js.js │ │ ├── GroupToolbarItems.js │ │ └── toolbar.js │ └── renderModel │ │ └── index.js ├── App.vue ├── router │ └── index.js ├── graph │ ├── index.js │ └── Graph.js ├── style │ └── iconfont.css ├── test │ └── test.vue └── PlanADDFunction │ └── 鼠标悬浮添加图标.html ├── config ├── prod.env.js ├── dev.env.js ├── dllEntry.json └── index.js ├── readme_images └── app_icon.png ├── .gitignore ├── web-serve ├── package.json └── app.js ├── SECURITY.md ├── .github └── workflows │ ├── buildAndDeploy.yml │ └── ci.yml ├── package.json └── vue.config.js /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/icon/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/2.png -------------------------------------------------------------------------------- /public/icon/dot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/dot.gif -------------------------------------------------------------------------------- /src/assets/bgi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/bgi.png -------------------------------------------------------------------------------- /src/assets/bgi2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/bgi2.png -------------------------------------------------------------------------------- /src/assets/grid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/grid.gif -------------------------------------------------------------------------------- /src/assets/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/grid.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /public/icon/KAFKA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/KAFKA.png -------------------------------------------------------------------------------- /public/icon/beats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/beats.png -------------------------------------------------------------------------------- /public/icon/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/group.png -------------------------------------------------------------------------------- /public/icon/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/home.png -------------------------------------------------------------------------------- /public/icon/label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/label.png -------------------------------------------------------------------------------- /public/icon/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/line.png -------------------------------------------------------------------------------- /public/icon/redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/redis.png -------------------------------------------------------------------------------- /public/icon/无标题文档.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/无标题文档.pdf -------------------------------------------------------------------------------- /public/images/box.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/box.jpg -------------------------------------------------------------------------------- /src/assets/grid2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/grid2.gif -------------------------------------------------------------------------------- /src/assets/icon/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/1.png -------------------------------------------------------------------------------- /src/assets/icon/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/3.png -------------------------------------------------------------------------------- /public/icon/center.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/center.png -------------------------------------------------------------------------------- /public/icon/cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/cluster.png -------------------------------------------------------------------------------- /public/icon/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/database.png -------------------------------------------------------------------------------- /public/icon/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/delete.png -------------------------------------------------------------------------------- /public/icon/editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/editor.png -------------------------------------------------------------------------------- /public/icon/exchange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/exchange.png -------------------------------------------------------------------------------- /public/icon/handler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/handler.png -------------------------------------------------------------------------------- /public/icon/input2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/input2.png -------------------------------------------------------------------------------- /public/icon/logstash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/logstash.png -------------------------------------------------------------------------------- /public/icon/output2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/output2.png -------------------------------------------------------------------------------- /public/icon/stencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/stencil.png -------------------------------------------------------------------------------- /public/icon/toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/toolbar.png -------------------------------------------------------------------------------- /public/icon/toolbar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/toolbar2.png -------------------------------------------------------------------------------- /public/icon/warning.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/warning.gif -------------------------------------------------------------------------------- /public/images/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/button.gif -------------------------------------------------------------------------------- /public/images/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/check.png -------------------------------------------------------------------------------- /public/images/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/close.gif -------------------------------------------------------------------------------- /public/images/error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/error.gif -------------------------------------------------------------------------------- /public/images/point.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/point.gif -------------------------------------------------------------------------------- /public/images/resize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/resize.gif -------------------------------------------------------------------------------- /public/images/window.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/window.gif -------------------------------------------------------------------------------- /public/mxgraph/error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/error.gif -------------------------------------------------------------------------------- /public/mxgraph/point.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/point.gif -------------------------------------------------------------------------------- /src/assets/icon/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/10.png -------------------------------------------------------------------------------- /src/assets/icon/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/15.png -------------------------------------------------------------------------------- /src/assets/icon/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/home.png -------------------------------------------------------------------------------- /src/assets/icon/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/line.png -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = { 3 | NODE_ENV: '"production"', 4 | BASE_API: '"/api"', 5 | }; 6 | -------------------------------------------------------------------------------- /public/icon/boxDomain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/boxDomain.png -------------------------------------------------------------------------------- /public/images/expanded.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/expanded.gif -------------------------------------------------------------------------------- /public/images/maximize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/maximize.gif -------------------------------------------------------------------------------- /public/images/minimize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/minimize.gif -------------------------------------------------------------------------------- /public/images/submenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/submenu.gif -------------------------------------------------------------------------------- /public/images/warning.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/warning.gif -------------------------------------------------------------------------------- /public/images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/warning.png -------------------------------------------------------------------------------- /public/mxgraph/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/button.gif -------------------------------------------------------------------------------- /public/mxgraph/submenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/submenu.gif -------------------------------------------------------------------------------- /public/mxgraph/warning.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/warning.gif -------------------------------------------------------------------------------- /public/mxgraph/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/warning.png -------------------------------------------------------------------------------- /public/mxgraph/window.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/window.gif -------------------------------------------------------------------------------- /readme_images/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/readme_images/app_icon.png -------------------------------------------------------------------------------- /src/assets/icon/defend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/defend.png -------------------------------------------------------------------------------- /src/assets/icon/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/delete.png -------------------------------------------------------------------------------- /src/assets/icon/editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/editor.png -------------------------------------------------------------------------------- /src/assets/icon/group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/group.png -------------------------------------------------------------------------------- /src/assets/icon/label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/label.png -------------------------------------------------------------------------------- /src/assets/images/dot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/dot.gif -------------------------------------------------------------------------------- /public/icon/authorizate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/authorizate.png -------------------------------------------------------------------------------- /public/icon/connectPoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/connectPoint.png -------------------------------------------------------------------------------- /public/icon/elasticsearch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/elasticsearch.png -------------------------------------------------------------------------------- /public/images/collapsed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/collapsed.gif -------------------------------------------------------------------------------- /public/images/normalize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/normalize.gif -------------------------------------------------------------------------------- /public/images/separator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/separator.gif -------------------------------------------------------------------------------- /public/images/transparent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/transparent.gif -------------------------------------------------------------------------------- /public/mxgraph/collapsed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/collapsed.gif -------------------------------------------------------------------------------- /public/mxgraph/expanded.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/expanded.gif -------------------------------------------------------------------------------- /public/mxgraph/images/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/bg.gif -------------------------------------------------------------------------------- /public/mxgraph/images/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/box.png -------------------------------------------------------------------------------- /public/mxgraph/images/cut.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/cut.gif -------------------------------------------------------------------------------- /public/mxgraph/images/fit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/fit.gif -------------------------------------------------------------------------------- /public/mxgraph/images/new.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/new.gif -------------------------------------------------------------------------------- /public/mxgraph/images/pan.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/pan.gif -------------------------------------------------------------------------------- /public/mxgraph/images/top.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/top.gif -------------------------------------------------------------------------------- /public/mxgraph/images/up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/up.gif -------------------------------------------------------------------------------- /public/mxgraph/separator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/separator.gif -------------------------------------------------------------------------------- /src/assets/icon/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/database.png -------------------------------------------------------------------------------- /src/assets/icon/handler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/handler.png -------------------------------------------------------------------------------- /src/assets/icon/service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/service.png -------------------------------------------------------------------------------- /src/assets/icon/stencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/stencil.png -------------------------------------------------------------------------------- /src/assets/icon/toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/toolbar.png -------------------------------------------------------------------------------- /src/assets/icon/toolbar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/toolbar2.png -------------------------------------------------------------------------------- /src/assets/images/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/button.gif -------------------------------------------------------------------------------- /src/assets/images/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/close.gif -------------------------------------------------------------------------------- /src/assets/images/error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/error.gif -------------------------------------------------------------------------------- /src/assets/images/point.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/point.gif -------------------------------------------------------------------------------- /src/assets/images/resize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/resize.gif -------------------------------------------------------------------------------- /src/assets/images/submenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/submenu.gif -------------------------------------------------------------------------------- /src/assets/images/warning.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/warning.gif -------------------------------------------------------------------------------- /src/assets/images/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/warning.png -------------------------------------------------------------------------------- /src/assets/images/window.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/window.gif -------------------------------------------------------------------------------- /public/icon/connectionpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/icon/connectionpoint.png -------------------------------------------------------------------------------- /public/images/window-title.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/window-title.gif -------------------------------------------------------------------------------- /public/mxgraph/images/actor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/actor.gif -------------------------------------------------------------------------------- /public/mxgraph/images/arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/arrow.gif -------------------------------------------------------------------------------- /public/mxgraph/images/bell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/bell.png -------------------------------------------------------------------------------- /public/mxgraph/images/bold.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/bold.gif -------------------------------------------------------------------------------- /public/mxgraph/images/cloud.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/cloud.gif -------------------------------------------------------------------------------- /public/mxgraph/images/copy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/copy.gif -------------------------------------------------------------------------------- /public/mxgraph/images/down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/down.gif -------------------------------------------------------------------------------- /public/mxgraph/images/dude3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/dude3.png -------------------------------------------------------------------------------- /public/mxgraph/images/earth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/earth.png -------------------------------------------------------------------------------- /public/mxgraph/images/font.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/font.gif -------------------------------------------------------------------------------- /public/mxgraph/images/gear.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/gear.gif -------------------------------------------------------------------------------- /public/mxgraph/images/gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/gear.png -------------------------------------------------------------------------------- /public/mxgraph/images/grid.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/grid.gif -------------------------------------------------------------------------------- /public/mxgraph/images/group.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/group.gif -------------------------------------------------------------------------------- /public/mxgraph/images/help.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/help.gif -------------------------------------------------------------------------------- /public/mxgraph/images/hline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/hline.gif -------------------------------------------------------------------------------- /public/mxgraph/images/house.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/house.gif -------------------------------------------------------------------------------- /public/mxgraph/images/house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/house.png -------------------------------------------------------------------------------- /public/mxgraph/images/image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/image.gif -------------------------------------------------------------------------------- /public/mxgraph/images/left.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/left.gif -------------------------------------------------------------------------------- /public/mxgraph/images/link.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/link.gif -------------------------------------------------------------------------------- /public/mxgraph/images/open.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/open.gif -------------------------------------------------------------------------------- /public/mxgraph/images/paste.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/paste.gif -------------------------------------------------------------------------------- /public/mxgraph/images/plain.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/plain.gif -------------------------------------------------------------------------------- /public/mxgraph/images/press.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/press.gif -------------------------------------------------------------------------------- /public/mxgraph/images/print.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/print.gif -------------------------------------------------------------------------------- /public/mxgraph/images/redo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/redo.gif -------------------------------------------------------------------------------- /public/mxgraph/images/right.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/right.gif -------------------------------------------------------------------------------- /public/mxgraph/images/save.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/save.gif -------------------------------------------------------------------------------- /public/mxgraph/images/tasks.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/tasks.gif -------------------------------------------------------------------------------- /public/mxgraph/images/text.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/text.gif -------------------------------------------------------------------------------- /public/mxgraph/images/tree.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/tree.gif -------------------------------------------------------------------------------- /public/mxgraph/images/undo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/undo.gif -------------------------------------------------------------------------------- /public/mxgraph/images/zoom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/zoom.gif -------------------------------------------------------------------------------- /public/mxgraph/transparent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/transparent.gif -------------------------------------------------------------------------------- /public/mxgraph/window-title.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/window-title.gif -------------------------------------------------------------------------------- /src/assets/icon/delete copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/delete copy.png -------------------------------------------------------------------------------- /src/assets/images/collapsed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/collapsed.gif -------------------------------------------------------------------------------- /src/assets/images/expanded.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/expanded.gif -------------------------------------------------------------------------------- /src/assets/images/maximize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/maximize.gif -------------------------------------------------------------------------------- /src/assets/images/minimize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/minimize.gif -------------------------------------------------------------------------------- /src/assets/images/normalize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/normalize.gif -------------------------------------------------------------------------------- /src/assets/images/separator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/separator.gif -------------------------------------------------------------------------------- /public/images/order/selected-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/selected-1.png -------------------------------------------------------------------------------- /public/images/order/selected-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/selected-2.png -------------------------------------------------------------------------------- /public/images/order/selected-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/selected-3.png -------------------------------------------------------------------------------- /public/images/order/selected-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/selected-4.png -------------------------------------------------------------------------------- /public/images/order/selected-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/selected-5.png -------------------------------------------------------------------------------- /public/images/order/selected-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/selected-6.png -------------------------------------------------------------------------------- /public/images/order/selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/selected.png -------------------------------------------------------------------------------- /public/images/order/unselect-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-1.png -------------------------------------------------------------------------------- /public/images/order/unselect-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-2.png -------------------------------------------------------------------------------- /public/images/order/unselect-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-3.png -------------------------------------------------------------------------------- /public/images/order/unselect-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-4.png -------------------------------------------------------------------------------- /public/images/order/unselect-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-5.png -------------------------------------------------------------------------------- /public/images/order/unselect-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-6.png -------------------------------------------------------------------------------- /public/images/order/unselect-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-7.png -------------------------------------------------------------------------------- /public/images/order/unselect-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-8.png -------------------------------------------------------------------------------- /public/images/order/unselect-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-9.png -------------------------------------------------------------------------------- /public/images/order/unselect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect.png -------------------------------------------------------------------------------- /public/mxgraph/images/aligntop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/aligntop.gif -------------------------------------------------------------------------------- /public/mxgraph/images/bottom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/bottom.gif -------------------------------------------------------------------------------- /public/mxgraph/images/camera.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/camera.gif -------------------------------------------------------------------------------- /public/mxgraph/images/center.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/center.gif -------------------------------------------------------------------------------- /public/mxgraph/images/cmp-bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/cmp-bg.gif -------------------------------------------------------------------------------- /public/mxgraph/images/collapse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/collapse.gif -------------------------------------------------------------------------------- /public/mxgraph/images/connect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/connect.gif -------------------------------------------------------------------------------- /public/mxgraph/images/console.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/console.gif -------------------------------------------------------------------------------- /public/mxgraph/images/cylinder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/cylinder.gif -------------------------------------------------------------------------------- /public/mxgraph/images/delete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/delete.gif -------------------------------------------------------------------------------- /public/mxgraph/images/diagram.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/diagram.gif -------------------------------------------------------------------------------- /public/mxgraph/images/ellipse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/ellipse.gif -------------------------------------------------------------------------------- /public/mxgraph/images/entity.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/entity.gif -------------------------------------------------------------------------------- /public/mxgraph/images/expand.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/expand.gif -------------------------------------------------------------------------------- /public/mxgraph/images/hexagon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/hexagon.gif -------------------------------------------------------------------------------- /public/mxgraph/images/italic.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/italic.gif -------------------------------------------------------------------------------- /public/mxgraph/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/loading.gif -------------------------------------------------------------------------------- /public/mxgraph/images/middle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/middle.gif -------------------------------------------------------------------------------- /public/mxgraph/images/open_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/open_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/outline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/outline.gif -------------------------------------------------------------------------------- /public/mxgraph/images/oval_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/oval_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/package.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/package.png -------------------------------------------------------------------------------- /public/mxgraph/images/preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/preview.gif -------------------------------------------------------------------------------- /public/mxgraph/images/printer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/printer.png -------------------------------------------------------------------------------- /public/mxgraph/images/refresh.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/refresh.gif -------------------------------------------------------------------------------- /public/mxgraph/images/rhombus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/rhombus.gif -------------------------------------------------------------------------------- /public/mxgraph/images/rounded.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/rounded.gif -------------------------------------------------------------------------------- /public/mxgraph/images/saveas.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/saveas.gif -------------------------------------------------------------------------------- /public/mxgraph/images/script.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/script.gif -------------------------------------------------------------------------------- /public/mxgraph/images/select.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/select.gif -------------------------------------------------------------------------------- /public/mxgraph/images/server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/server.png -------------------------------------------------------------------------------- /public/mxgraph/images/straight.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/straight.gif -------------------------------------------------------------------------------- /public/mxgraph/images/swimlane.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/swimlane.gif -------------------------------------------------------------------------------- /public/mxgraph/images/toback.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/toback.gif -------------------------------------------------------------------------------- /public/mxgraph/images/tofront.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/tofront.gif -------------------------------------------------------------------------------- /public/mxgraph/images/toolbar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/toolbar.gif -------------------------------------------------------------------------------- /public/mxgraph/images/triangle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/triangle.gif -------------------------------------------------------------------------------- /public/mxgraph/images/ungroup.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/ungroup.gif -------------------------------------------------------------------------------- /public/mxgraph/images/vertical.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/vertical.gif -------------------------------------------------------------------------------- /public/mxgraph/images/wrench.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/wrench.png -------------------------------------------------------------------------------- /public/mxgraph/images/zoomin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/zoomin.gif -------------------------------------------------------------------------------- /public/mxgraph/images/zoomout.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/zoomout.gif -------------------------------------------------------------------------------- /src/assets/icon/connectPoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/icon/connectPoint.png -------------------------------------------------------------------------------- /src/assets/images/transparent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/transparent.gif -------------------------------------------------------------------------------- /src/assets/images/window-title.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/src/assets/images/window-title.gif -------------------------------------------------------------------------------- /public/images/order/unselect-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/images/order/unselect-10.png -------------------------------------------------------------------------------- /public/mxgraph/images/alignleft.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/alignleft.gif -------------------------------------------------------------------------------- /public/mxgraph/images/alignright.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/alignright.gif -------------------------------------------------------------------------------- /public/mxgraph/images/block_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/block_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/connector.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/connector.gif -------------------------------------------------------------------------------- /public/mxgraph/images/cube_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/cube_green.png -------------------------------------------------------------------------------- /public/mxgraph/images/fillcolor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/fillcolor.gif -------------------------------------------------------------------------------- /public/mxgraph/images/fontcolor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/fontcolor.gif -------------------------------------------------------------------------------- /public/mxgraph/images/linecolor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/linecolor.gif -------------------------------------------------------------------------------- /public/mxgraph/images/open_start.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/open_start.gif -------------------------------------------------------------------------------- /public/mxgraph/images/oval_start.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/oval_start.gif -------------------------------------------------------------------------------- /public/mxgraph/images/properties.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/properties.gif -------------------------------------------------------------------------------- /public/mxgraph/images/rectangle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/rectangle.gif -------------------------------------------------------------------------------- /public/mxgraph/images/underline.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/underline.gif -------------------------------------------------------------------------------- /public/mxgraph/images/workplace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/workplace.png -------------------------------------------------------------------------------- /public/mxgraph/images/zoomactual.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/zoomactual.gif -------------------------------------------------------------------------------- /public/mxgraph/images/alignbottom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/alignbottom.gif -------------------------------------------------------------------------------- /public/mxgraph/images/aligncenter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/aligncenter.gif -------------------------------------------------------------------------------- /public/mxgraph/images/alignmiddle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/alignmiddle.gif -------------------------------------------------------------------------------- /public/mxgraph/images/block_start.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/block_start.gif -------------------------------------------------------------------------------- /public/mxgraph/images/classic_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/classic_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/classic_start.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/classic_start.gif -------------------------------------------------------------------------------- /public/mxgraph/images/diamond_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/diamond_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/diamond_start.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/diamond_start.gif -------------------------------------------------------------------------------- /public/mxgraph/images/doubleellipse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/doubleellipse.gif -------------------------------------------------------------------------------- /public/mxgraph/images/draw/drawbg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/draw/drawbg.jpg -------------------------------------------------------------------------------- /public/mxgraph/images/draw/mxlogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/draw/mxlogo.jpg -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/help.png -------------------------------------------------------------------------------- /public/mxgraph/images/preferences.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/preferences.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/error.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/event.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/fork.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/link.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/merge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/merge.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/rule.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/timer.png -------------------------------------------------------------------------------- /public/mxgraph/images/draw/drawfooter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/draw/drawfooter.jpg -------------------------------------------------------------------------------- /public/mxgraph/images/draw/drawheader.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/draw/drawheader.jpg -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/check.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/error.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/flash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/flash.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/house.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/pencil.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/user3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/user3.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/users3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/users3.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/message.png -------------------------------------------------------------------------------- /public/mxgraph/images/draw/drawbgcolor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/draw/drawbgcolor.jpg -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/forbidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/forbidden.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/printer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/printer.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/workplace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/workplace.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/cancel_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/cancel_end.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/event_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/event_end.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/inclusive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/inclusive.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/multiple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/multiple.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_fork.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_fork.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_link.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_link.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_rule.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_rule.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/terminate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/terminate.png -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/information.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/message_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/message_end.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_error.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_error.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_event.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_event.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_merge.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_merge.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_timer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_timer.gif -------------------------------------------------------------------------------- /public/mxgraph/images/overlays/lightbulb_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/overlays/lightbulb_on.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_event_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_event_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_inclusive.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_inclusive.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_message.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_message.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_multiple.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_multiple.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_terminate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_terminate.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_cancel_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_cancel_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_message_end.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_message_end.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/cancel_intermediate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/cancel_intermediate.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/event_intermediate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/event_intermediate.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/message_intermediate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/message_intermediate.png -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_cancel_intermediate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_cancel_intermediate.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_event_intermediate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_event_intermediate.gif -------------------------------------------------------------------------------- /public/mxgraph/images/symbols/small_message_intermediate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Jason-chen-coder/Mxgraph-EasyFlowEditor/HEAD/public/mxgraph/images/symbols/small_message_intermediate.gif -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const merge = require('webpack-merge'); 3 | const prodEnv = require('./prod.env'); 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"', 7 | BASE_API: '"/api"', 8 | }); 9 | -------------------------------------------------------------------------------- /public/icon/dot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | /web-serve-until/node_modules 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | pnpm-debug.log* 14 | 15 | # Editor directories and files 16 | .idea 17 | .vscode 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | *.sw? 23 | -------------------------------------------------------------------------------- /web-serve/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "-y", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "app.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "compression": "^1.7.4", 13 | "express": "^4.17.1", 14 | "express-static-gzip": "^2.1.1", 15 | "http-proxy-middleware": "^2.0.1" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import ElementUI from 'element-ui'; 3 | import 'element-ui/lib/theme-chalk/index.css'; 4 | import App from './App.vue'; 5 | import router from "./router" 6 | import "./style/iconfont.css" 7 | import JsonViewer from 'vue-json-viewer' 8 | // Import JsonViewer as a Vue.js plugin 9 | Vue.use(JsonViewer) 10 | Vue.use(ElementUI); 11 | Vue.config.productionTip = false 12 | new Vue({ 13 | render: h => h(App), 14 | router 15 | }).$mount('#app') 16 | -------------------------------------------------------------------------------- /src/views/customToolbar/component/dataView.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 23 | -------------------------------------------------------------------------------- /public/icon/rotate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/icon/旋转.png: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/icon/旋转.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /.github/workflows/buildAndDeploy.yml: -------------------------------------------------------------------------------- 1 | # name 可以自定义 2 | name: CI 3 | # 指定触发workflow的条件 4 | # 下面的意思就是在监听到main分支push操作的时候运行 5 | on: 6 | push: 7 | branches: [ main ] 8 | 9 | # jobs 表示要执行的一项或者多项任务 10 | jobs: 11 | # 任务名,可自定义 12 | build-and-deploy: 13 | # runs-on字段指定运行所需要的虚拟机环境。它是必填字段。目前可用的虚拟机如下。 14 | runs-on: ubuntu-latest 15 | # steps表示执行步骤 16 | steps: 17 | # 检出代码,这里用了 actions/checkout@master 库来完成 18 | - name: Checkout 19 | uses: actions/checkout@master 20 | # 这里展示了如何执行多条命令 21 | - name: Install and Build 22 | run: | 23 | npm install 24 | npm run build 25 | # 这里引用了别人写好的发布库,具体参数信息可以查阅上面的链接 26 | - name: Deploy to GitHub Pages 27 | uses: JamesIves/github-pages-deploy-action@4.0.0 28 | with: 29 | branch: gh-pages 30 | folder: dist 31 | -------------------------------------------------------------------------------- /config/dllEntry.json: -------------------------------------------------------------------------------- 1 | [ 2 | "@ant-design/dark-theme", 3 | "@chenfengyuan/vue-countdown", 4 | "@riophae/vue-treeselect", 5 | "ant-design-vue", 6 | "axios", 7 | "bluebird", 8 | "byt", 9 | "d3", 10 | "d3-tip", 11 | "dayjs", 12 | "echarts", 13 | "element-ui", 14 | "file-saver", 15 | "isomorphic-fetch", 16 | "jquery", 17 | "jwt-builder", 18 | "jwt-decode", 19 | "lodash", 20 | "memoize-one", 21 | "mockjs", 22 | "moment", 23 | "nprogress", 24 | "popper.js", 25 | "pretty-bytes", 26 | "prop-types", 27 | "query-string", 28 | "screenfull", 29 | "vee-validate", 30 | "vue", 31 | "vue-class-component", 32 | "vue-clipboard2", 33 | "vue-codemirror", 34 | "vue-highlight-words", 35 | "vue-i18n", 36 | "vue-property-decorator", 37 | "vue-router", 38 | "vue-tsx-support", 39 | "vuex", 40 | "vuex-class" 41 | ] 42 | -------------------------------------------------------------------------------- /src/views/customToolbar/component/test.yaml: -------------------------------------------------------------------------------- 1 | 2 | rules_folder: example_rules //用来加载rule的目录,默认是example_rules 3 | run_every: //ElastAlert多久查询一次Elasticsearch 4 | minutes: 1 5 | buffer_time: //用来设置请求里时间字段的范围 6 | minutes: 15 7 | es_host: 192.168.232.191 //elasticsearch的host地址,每个规则都可以拥有自己的Elasticsearch主机 8 | es_port: 9200 //elasticsearch 对应的端口号 9 | es_url_prefix: elasticsearch // 可选的,es url前缀 10 | es_send_get_body_as: GET // 可选的,查询es的方式,默认是GET,如果由于某种原因失败,则可以传递“ GET”,“ POST”或“ source”。 11 | use_ssl: True //可选的,选择是否用SSL连接es,true或者false 12 | verify_certs: True //可选的,是否验证TLS证书,设置为true或者false,默认为- true 13 | es_username: someusername //es认证的username和password,如果未使用可注释 14 | es_password: somepassword 15 | writeback_index: elastalert_status //elastalert产生的日志在elasticsearch中的创建的索引 16 | alert_time_limit: //失败重试的时间限制 17 | days: 2 -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 21 | 22 | 53 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | 3 | name: CI 4 | 5 | # Controls when the workflow will run 6 | on: 7 | # Triggers the workflow on push or pull request events but only for the V1.0-beat branch 8 | push: 9 | branches: [ V1.0-beat ] 10 | pull_request: 11 | branches: [ V1.0-beat ] 12 | 13 | # Allows you to run this workflow manually from the Actions tab 14 | workflow_dispatch: 15 | 16 | # jobs 表示要执行的一项或者多项任务 17 | jobs: 18 | # 任务名,可自定义 19 | build-and-deploy: 20 | # runs-on字段指定运行所需要的虚拟机环境。它是必填字段。目前可用的虚拟机如下。 21 | runs-on: ubuntu-latest 22 | # steps表示执行步骤 23 | steps: 24 | # 检出代码,这里用了 actions/checkout@master 库来完成 25 | - name: Checkout 26 | uses: actions/checkout@master 27 | # 这里展示了如何执行多条命令 28 | - name: Install and Build 29 | run: | 30 | yarn 31 | yarn build 32 | # 这里引用了别人写好的发布库,具体参数信息可以查阅上面的链接 33 | - name: Deploy to GitHub Pages 34 | uses: JamesIves/github-pages-deploy-action@4.0.0 35 | with: 36 | branch: gh-pages 37 | folder: dist 38 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: Jason chen 5 | * @Date: 2020-06-26 17:46:26 6 | * @LastEditors: Jason chen 7 | * @LastEditTime: 2021-08-30 15:13:17 8 | */ 9 | // 导入 vue-router 10 | import Vue from 'vue'; 11 | import VueRouter from 'vue-router' 12 | //注册 vue-router 13 | Vue.use(VueRouter) 14 | const originalPush = VueRouter.prototype.push 15 | VueRouter.prototype.push = function push (location) { 16 | return originalPush.call(this, location).catch(err => err) 17 | } 18 | // 实例化 19 | const router = new VueRouter({ 20 | //这里就是路由的配制项 21 | routes: [ 22 | { 23 | path: '/', 24 | component: () => import(/*webpackChunkName: "my-customToolbar-chunk"*/ "../views/customToolbar/customToolbar.vue"), 25 | }, 26 | { 27 | path: "/customToolbar", 28 | component: () => import(/*webpackChunkName: "my-customToolbar-chunk"*/ "../views/customToolbar/customToolbar.vue") 29 | }, 30 | { 31 | path: "/renderModel", 32 | component: () => import(/*webpackChunkName: "renderModel-chunk"*/"../views/renderModel/index.vue") 33 | } 34 | ] 35 | }) 36 | export default router -------------------------------------------------------------------------------- /public/icon/kibana.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icon / product-logo / 64x64px / stack / color 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/stencil/electrics.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /web-serve/app.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: Jason chen 5 | * @Date: 2021-08-12 18:00:06 6 | * @LastEditors: sueRimn 7 | * @LastEditTime: 2021-08-16 15:02:54 8 | */ 9 | const express = require('express'); 10 | // 代理 11 | // const proxy = require('http-proxy-middleware'); 12 | // 服务端压缩gzip 13 | // var compression = require('compression'); 14 | // webpack打包好gzip文件 15 | const expressStaticGzip = require('express-static-gzip'); 16 | const app = express(); 17 | // 启用服务端压缩gzip 18 | // app.use(compression()); 19 | app.use( 20 | expressStaticGzip('../dist', { 21 | maxAge: '3d', 22 | setHeaders: setCustomCacheControl, 23 | }) 24 | ); 25 | 26 | function setCustomCacheControl (res, currentFilePath) { 27 | if (currentFilePath.match(/\index\.html$/)) { 28 | // Custom Cache-Control for HTML files 29 | res.setHeader('Cache-Control', 'no-cache'); 30 | } 31 | } 32 | // 打包后的静态资源目录 33 | app.use(express.static('../dist')); 34 | 35 | // 代理 36 | 37 | // const PROXY_EDSP = 'http://10.22.0.137:31801/edsp'; 38 | // app.use( 39 | // '/edsp', 40 | // proxy({ 41 | // target: PROXY_EDSP, 42 | // pathRewrite: { 43 | // '/edsp': '', 44 | // }, 45 | // changeOrigin: true, 46 | // }), 47 | // ); 48 | 49 | 50 | app.listen(9900, (req, res) => { 51 | console.log(req, res); 52 | console.log('启动成功,请通过localhost:9900访问'); 53 | }); 54 | 55 | -------------------------------------------------------------------------------- /src/graph/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: Jason chen 5 | * @Date: 2020-07-09 17:04:43 6 | * @LastEditors: Jason chen 7 | * @LastEditTime: 2021-08-31 11:14:26 8 | */ 9 | const mx = require('mxgraph') 10 | 11 | const mxgraph = mx({ 12 | // 核心中所有图像url的Basepath,不带斜杠。在mxClient.imageBasePath中指定路径. 13 | mxImageBasePath: 'mxgraph/images', 14 | // 核心中的所有url的Basepath,不带斜杠。在mxClient.basePath中指定路径。 15 | // 指向的路径一定要是一个可以通过 url 访问的静态资源目录 16 | mxBasePath: 'mxgraph', 17 | // 可选的全局配置变量。切换加载mxGraph和mxEditor中的两个资源文件。 18 | // 默认值是true。在主线程警告上禁用同步XMLHttpRequest 19 | mxLoadResources: true 20 | // 指定是否应加载任何样式表。 默认值是true。 21 | // mxLoadStylesheets: false, 22 | // 可选的全局配置变量,在开发模式下强制加载JavaScript文件。 23 | // mxForceIncludes: true, 24 | // 可选的全局配置变量来指定资源文件的扩展名。 25 | // mxResourceExtension: '.txt' 26 | }) 27 | 28 | const MxCell = mxgraph.mxCell 29 | const MxConstants = mxgraph.mxConstants 30 | const MxEvent = mxgraph.mxEvent 31 | const MxGraph = mxgraph.mxGraph 32 | 33 | const MxRubberBand = mxgraph.mxRubberband 34 | 35 | const MxUtils = mxgraph.mxUtils 36 | const MxCodec = mxgraph.mxCodec 37 | const MxGeometry = mxgraph.mxGeometry 38 | const MxEditor = mxgraph.mxEditor 39 | const MxGraphHandler = mxgraph.mxGraphHandler 40 | const MxRectangleShape = mxgraph.mxRectangleShape 41 | const MxCellTracker = mxgraph.mxCellTracker 42 | const MxClient = mxgraph.mxClient 43 | const MxPerimeter = mxgraph.mxPerimeter 44 | const MxEventObject = mxgraph.mxEventObject 45 | const ActiveXObject = mxgraph.activeXObject 46 | 47 | 48 | MxRubberBand.prototype.defaultOpacity = 30 49 | 50 | export { 51 | MxEvent, 52 | MxGraph, 53 | MxEditor, 54 | MxUtils, 55 | MxGraphHandler, 56 | MxConstants, 57 | MxCodec, 58 | MxRectangleShape, 59 | MxCellTracker, 60 | MxClient, 61 | MxPerimeter, 62 | MxEventObject, 63 | MxGeometry, 64 | MxCell, 65 | ActiveXObject 66 | } -------------------------------------------------------------------------------- /src/views/renderModel/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: Jason chen 5 | * @Date: 2021-08-31 11:10:34 6 | * @LastEditors: Jason chen 7 | * @LastEditTime: 2021-08-31 11:13:05 8 | */ 9 | const mx = require('mxgraph') 10 | 11 | const mxgraph = mx({ 12 | // 核心中所有图像url的Basepath,不带斜杠。在mxClient.imageBasePath中指定路径. 13 | mxImageBasePath: 'mxgraph/images', 14 | // 核心中的所有url的Basepath,不带斜杠。在mxClient.basePath中指定路径。 15 | // 指向的路径一定要是一个可以通过 url 访问的静态资源目录 16 | mxBasePath: 'mxgraph', 17 | // 可选的全局配置变量。切换加载mxGraph和mxEditor中的两个资源文件。 18 | // 默认值是true。在主线程警告上禁用同步XMLHttpRequest 19 | mxLoadResources: true 20 | // 指定是否应加载任何样式表。 默认值是true。 21 | // mxLoadStylesheets: false, 22 | // 可选的全局配置变量,在开发模式下强制加载JavaScript文件。 23 | // mxForceIncludes: true, 24 | // 可选的全局配置变量来指定资源文件的扩展名。 25 | // mxResourceExtension: '.txt' 26 | }) 27 | 28 | // Object.keys(mxgraph).forEach((key) => { 29 | // window[key] = mxgraph[key]; 30 | // }); 31 | 32 | const MxCell = mxgraph.mxCell 33 | const MxConstants = mxgraph.mxConstants 34 | const MxEvent = mxgraph.mxEvent 35 | const MxGraph = mxgraph.mxGraph 36 | 37 | const MxRubberBand = mxgraph.mxRubberband 38 | 39 | const MxUtils = mxgraph.mxUtils 40 | const MxCodec = mxgraph.mxCodec 41 | const MxGeometry = mxgraph.mxGeometry 42 | const MxEditor = mxgraph.mxEditor 43 | const MxGraphHandler = mxgraph.mxGraphHandler 44 | const MxRectangleShape = mxgraph.mxRectangleShape 45 | const MxCellTracker = mxgraph.mxCellTracker 46 | const MxClient = mxgraph.mxClient 47 | const MxPerimeter = mxgraph.mxPerimeter 48 | const MxEventObject = mxgraph.mxEventObject 49 | const ActiveXObject = mxgraph.activeXObject 50 | 51 | 52 | MxRubberBand.prototype.defaultOpacity = 30 53 | 54 | export { 55 | MxEvent, 56 | MxGraph, 57 | MxEditor, 58 | MxUtils, 59 | MxGraphHandler, 60 | MxConstants, 61 | MxCodec, 62 | MxRectangleShape, 63 | MxCellTracker, 64 | MxClient, 65 | MxPerimeter, 66 | MxEventObject, 67 | MxGeometry, 68 | MxCell, 69 | ActiveXObject 70 | } -------------------------------------------------------------------------------- /public/Export.ashx: -------------------------------------------------------------------------------- 1 | <%@ WebHandler Language="C#" Class="NewExport" %> 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Xml; 6 | using System.Text; 7 | using System.Web; 8 | using System.IO; 9 | using System.Drawing; 10 | using System.Drawing.Imaging; 11 | using System.Drawing.Drawing2D; 12 | using com.mxgraph; 13 | 14 | /// 15 | /// Creates a bitmap image of the diagram based on generic XML. 16 | /// 17 | public class NewExport : IHttpHandler 18 | { 19 | 20 | public void ProcessRequest (HttpContext context) 21 | { 22 | string xml = HttpUtility.UrlDecode(context.Request.Params["xml"]); 23 | string width = context.Request.Params["w"]; 24 | string height = context.Request.Params["h"]; 25 | string bg = context.Request.Params["bg"]; 26 | string filename = context.Request.Params["filename"]; 27 | string format = context.Request.Params["format"]; 28 | 29 | if (filename != null) 30 | { 31 | filename = HttpUtility.UrlDecode(filename); 32 | } 33 | 34 | if (xml != null && width != null && height != null && bg != null 35 | && filename != null && format != null) 36 | { 37 | Color? background = (bg != null && !bg.Equals(mxConstants.NONE)) ? ColorTranslator.FromHtml(bg) : (Color?)null; 38 | Image image = mxUtils.CreateImage(int.Parse(width), int.Parse(height), background); 39 | Graphics g = Graphics.FromImage(image); 40 | g.SmoothingMode = SmoothingMode.HighQuality; 41 | mxSaxOutputHandler handler = new mxSaxOutputHandler(new mxGdiCanvas2D(g)); 42 | handler.Read(new XmlTextReader(new StringReader(xml))); 43 | 44 | if (filename.Length == 0) 45 | { 46 | filename = "export." + format; 47 | } 48 | 49 | context.Response.ContentType = "image/" + format; 50 | context.Response.AddHeader("Content-Disposition", 51 | "attachment; filename=" + filename); 52 | 53 | MemoryStream memStream = new MemoryStream(); 54 | image.Save(memStream, ImageFormat.Png); 55 | memStream.WriteTo(context.Response.OutputStream); 56 | 57 | context.Response.StatusCode = 200; /* OK */ 58 | } 59 | else 60 | { 61 | context.Response.StatusCode = 400; /* Bad Request */ 62 | } 63 | } 64 | 65 | public bool IsReusable 66 | { 67 | // Return false in case your Managed Handler cannot be reused for another request. 68 | // Usually this would be false in case you have some state information preserved per request. 69 | get { return true; } 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mxgraph-EasyFlowEditor", 3 | "version": "0.1.0", 4 | "private": true, 5 | "homepage": "https://Jason-chen-coder.github.io/Mxgraph-EasyFlowEditor", 6 | "pre-commit": [ 7 | "pre-commit" 8 | ], 9 | "main": "./main.js", 10 | "scripts": { 11 | "serve": "vue-cli-service serve", 12 | "build": "vue-cli-service build", 13 | "lint": "vue-cli-service lint", 14 | "dev": "cross-env BABEL_ENV=development ./node_modules/.bin/webpack-dev-server --progress --devtool eval-source-map --config build/webpack.dev.conf.js", 15 | "start": "yarn lint && yarn dll && yarn dev", 16 | "del:dll": "./node_modules/.bin/rimraf vendor", 17 | "compile:dll": "./node_modules/.bin/webpack --config build/webpack.dll.conf.js --colors --profile", 18 | "dll": "yarn del:dll && yarn compile:dll", 19 | "build:report": "npm_config_report=true node --max_old_space_size=4096 build/build.js", 20 | "pre-commit": "echo 'Pre-commit checks...' && yarn switch-source-in && yarn lint2", 21 | "switch-source-in": "bash ./scripts/switch_source.sh i", 22 | "lint3": "./node_modules/.bin/eslint --fix --ext .js,.jsx,.ts,.tsx,.vue src && ./node_modules/.bin/tslint --fix 'src/**/*{.ts,.tsx}'", 23 | "test": "cross-env NODE_ENV=test jest --config jest.config.js", 24 | "del:components": "./node_modules/.bin/rimraf components", 25 | "copy": "./node_modules/.bin/gulp copy", 26 | "babel": "./node_modules/.bin/babel components -d components", 27 | "components": "yarn del:components && yarn copy && yarn babel", 28 | "deploy": "node --max_old_space_size=4096 build/build.js", 29 | "clean:node": "rm -Rf ./node_modules", 30 | "change:version": "./node/node ./ci_script/changeVersion.js" 31 | }, 32 | "dependencies": { 33 | "core-js": "^3.6.5", 34 | "element-ui": "^2.13.2", 35 | "exports-loader": "^1.1.0", 36 | "jquery": "^3.5.1", 37 | "less-loader": "^6.1.2", 38 | "lodash": "^4.17.20", 39 | "mxgraph": "^4.2.0", 40 | "mxgraph-js": "^1.0.1", 41 | "ramda": "^0.27.1", 42 | "vue": "^2.6.11", 43 | "vue-codemirror": "^4.0.6", 44 | "vue-json-viewer": "^2.2.14", 45 | "vue-router": "^3.3.4", 46 | "x2js": "^3.4.0" 47 | }, 48 | "devDependencies": { 49 | "@vue/cli-plugin-babel": "~4.4.0", 50 | "@vue/cli-plugin-eslint": "~4.4.0", 51 | "@vue/cli-service": "~4.4.0", 52 | "babel-eslint": "^10.1.0", 53 | "compression-webpack-plugin": "^5.0.1", 54 | "css-minimizer-webpack-plugin": "^1.0.0", 55 | "eslint": "^6.7.2", 56 | "eslint-plugin-vue": "^6.2.2", 57 | "progress-bar-webpack-plugin": "^2.1.0", 58 | "uglifyjs-webpack-plugin": "^2.2.0", 59 | "vue-template-compiler": "^2.6.11", 60 | "webpack-bundle-analyzer": "^4.4.2" 61 | }, 62 | "eslintConfig": { 63 | "root": true, 64 | "env": { 65 | "node": true 66 | }, 67 | "extends": [ 68 | "plugin:vue/essential", 69 | "eslint:recommended" 70 | ], 71 | "parserOptions": { 72 | "parser": "babel-eslint" 73 | }, 74 | "rules": {} 75 | }, 76 | "browserslist": [ 77 | "> 1%", 78 | "last 2 versions", 79 | "not dead" 80 | ] 81 | } 82 | -------------------------------------------------------------------------------- /src/views/customToolbar/general-shape.js: -------------------------------------------------------------------------------- 1 | import { MxConstants } from "../../graph/index"; 2 | // const { MxConstants } = mxgraph; 3 | export const generalToolbarItems = [ 4 | { 5 | index: 0, 6 | idSeed: 1, 7 | id: "rectangle", 8 | title: "rectangle", 9 | class: "common rectangle", 10 | width: 120, 11 | height: 40, 12 | style: { 13 | shape: "rectangle", 14 | // perimeter: 'ellipsePerimeter', // 让锚点以节点为圆心环形分布在节点外围 15 | arcSize: 20 16 | } 17 | }, 18 | { 19 | index: 1, 20 | idSeed: 1, 21 | title: "triangle", 22 | id: "triangle", 23 | class: "common triangle", 24 | width: 120, 25 | height: 60, 26 | style: { 27 | shape: "triangle", 28 | direction: 'north' 29 | } 30 | }, 31 | 32 | { 33 | index: 2, 34 | idSeed: 1, 35 | title: "circle", 36 | id: "circle", 37 | class: "common circle", 38 | width: 80, 39 | height: 80, 40 | style: { 41 | shape: "ellipse", 42 | // perimeter: 'ellipsePerimeter', 43 | } 44 | }, 45 | 46 | { 47 | index: 3, 48 | idSeed: 1, 49 | title: "rhombus", 50 | id: "rhombus", 51 | class: "common rhombus", 52 | width: 80, 53 | height: 80, 54 | style: { 55 | shape: "rhombus", 56 | // perimeter: 'ellipsePerimeter', 57 | } 58 | }, 59 | { 60 | index: 5, 61 | idSeed: 1, 62 | title: "cylinder", 63 | id: "cylinder", 64 | class: "common cylinder", 65 | width: 80, 66 | height: 80, 67 | style: { 68 | shape: "cylinder", 69 | // perimeter: 'ellipsePerimeter', 70 | } 71 | }, 72 | 73 | { 74 | index: 6, 75 | idSeed: 1, 76 | title: "actor", 77 | id: "actor", 78 | class: "common actor", 79 | width: 60, 80 | height: 60, 81 | style: { 82 | shape: "actor", 83 | // perimeter: 'ellipsePerimeter', 84 | } 85 | }, 86 | 87 | { 88 | index: 7, 89 | idSeed: 1, 90 | title: "cloud", 91 | id: "cloud", 92 | class: "common cloud", 93 | width: 80, 94 | height: 80, 95 | style: { 96 | shape: "cloud", 97 | // perimeter: 'ellipsePerimeter', 98 | } 99 | }, 100 | { 101 | index: 8, 102 | idSeed: 1, 103 | title: "hexagon", 104 | id: "hexagon", 105 | class: "common hexagon", 106 | width: 80, 107 | height: 80, 108 | style: { 109 | shape: "hexagon", 110 | // perimeter: 'ellipsePerimeter', 111 | } 112 | }, 113 | { 114 | index: 9, 115 | idSeed: 1, 116 | title: "doubleEllipse", 117 | id: "doubleEllipse", 118 | class: "common doubleEllipse", 119 | width: 80, 120 | height: 80, 121 | style: { 122 | shape: 'doubleEllipse', 123 | // perimeter: 'ellipsePerimeter', 124 | } 125 | }, 126 | 127 | { 128 | index: 10, 129 | idSeed: 1, 130 | title: "swimlane", 131 | id: "swimlane", 132 | class: "common swimlane", 133 | width: 120, 134 | height: 120, 135 | style: { 136 | shape: "swimlane", 137 | // perimeter: 'ellipsePerimeter', 138 | } 139 | }, 140 | { 141 | index: 11, 142 | idSeed: 1, 143 | title: "Text", 144 | id: "Text", 145 | class: "common word", 146 | width: 70, 147 | height: 20, 148 | style: { 149 | shape: "Text", 150 | strokeColor: 'transparent', 151 | strokeWidth: '1', 152 | html: 1, 153 | fillColor: '#FFFFFF', 154 | verticalAlign: MxConstants.ALIGN_MIDDLE, 155 | align: MxConstants.ALIGN_CENTER, 156 | whiteSpace: 'wrap', 157 | rounded: 0, 158 | } 159 | }, 160 | { 161 | index: 12, 162 | idSeed: 1, 163 | title: "line", 164 | id: "line", 165 | class: "common line", 166 | width: 70, 167 | height: 20, 168 | style: { 169 | shape: "line", 170 | } 171 | } 172 | ] 173 | 174 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | <%= htmlWebpackPlugin.options.title %> 19 | 20 | 124 | 125 | 126 | 127 | 131 |
132 | Loading... 133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 | 153 | 154 | 155 | 156 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | function resolve (dir) { 4 | return path.join(__dirname, dir); 5 | } 6 | // const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; 7 | // const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); 8 | // const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); 9 | // const CompressionWebpackPlugin = require('compression-webpack-plugin'); 10 | // const ProgressBarPlugin = require('progress-bar-webpack-plugin'); 11 | // const productionGzipExtensions = ['js', 'css', 'html'] 12 | 13 | module.exports = { 14 | publicPath: process.env.NODE_ENV === 'production' 15 | ? '/Mxgraph-EasyFlowEditor/' 16 | : '/', 17 | outputDir: 'dist', 18 | lintOnSave: true, 19 | configureWebpack: { 20 | plugins: [ 21 | // new ProgressBarPlugin(), 22 | // new BundleAnalyzerPlugin(), 23 | // new CompressionWebpackPlugin({ 24 | // filename: '[path].gz[query]', 25 | // algorithm: 'gzip', 26 | // test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$',), 27 | // threshold: 10240,//仅处理大于此大小的资产。以字节为单位。 28 | // minRatio: 0.8, 29 | // }), 30 | ], 31 | optimization: { 32 | // splitChunks: { 33 | // chunks: "all", 34 | // cacheGroups: { 35 | // common: { 36 | // name: 'chunk-common', 37 | // test: /[\\/]node_modules[\\/]/, 38 | // priority: 10, 39 | // minChunks: 1, 40 | // chunks: 'all', 41 | // }, 42 | // elementUI: { 43 | // name: "chunk-element-ui", // 单独将 elementUI 拆包 44 | // priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app 45 | // test: /[\\/]node_modules[\\/]element-ui[\\/]/, 46 | // }, 47 | // mxgraph: { 48 | // name: "chunk-mxgraph", // 单独将 elementUI 拆包 49 | // priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app 50 | // test: /[\\/]node_modules[\\/]mxgraph[\\/]/, 51 | // }, 52 | // component: { 53 | // name: 'chunk-componentaa', 54 | // test: /[\\/]src[\\/]/, 55 | // priority: 50, 56 | // minChunks: 1, 57 | // chunks: 'all', 58 | // }, 59 | // } 60 | // }, 61 | // minimizer: [ 62 | // new UglifyJsPlugin( 63 | // { 64 | // uglifyOptions: { 65 | // compress: { 66 | // reduce_vars: true,// 把使用多次的静态值自动定义为变量 67 | // drop_debugger: true,// 删除所有的debugger语句 68 | // drop_console: true,// 删除所有的console语句 69 | // }, 70 | // parallel: true, // 允许并发 71 | // cache: true, // 开启缓存 72 | // output: { 73 | // beautify: false // 使输出的代码尽可能紧凑 74 | // } 75 | // }, 76 | // } 77 | // ), 78 | // new CssMinimizerPlugin({ 79 | // parallel: true,// 多并发执行 80 | // minimizerOptions: { 81 | // preset: [ 82 | // "default", 83 | // { 84 | // discardComments: { removeAll: true },//移除所有注释 85 | // }, 86 | // ], 87 | // }, 88 | // })], 89 | }, 90 | }, 91 | chainWebpack: (config) => { 92 | config.module 93 | .rule('') 94 | .test(/mxClient\.js$/) 95 | .use('exports-loader') 96 | .loader('exports-loader?mxClient,mxToolbar,mxConnectionHandler,mxEllipse,mxConnectionConstraint,mxWindow,' + 97 | 'mxObjectCodec,mxGraphModel,mxActor,mxPopupMenu,mxShape,mxEventObject,mxGraph,mxPopupMenuHandler,mxPrintPreview,' + 98 | 'mxEventSource,mxRectangle,mxVertexHandler,mxMouseEvent,mxGraphView,mxCodecRegistry,mxImage,mxGeometry,' + 99 | 'mxRubberband,mxConstraintHandler,mxKeyHandler,mxDragSource,mxGraphModel,mxEvent,mxUtils,mxEvent,mxCodec,mxCell,' + 100 | 'mxConstants,mxPoint,mxGraphHandler,mxCylinder,mxCellRenderer,mxEvent,mxUndoManager') 101 | .end(); 102 | config.resolve.alias 103 | .set('@', resolve('src')) 104 | .set('@assets', resolve('src/assets')); 105 | // 按这种格式.set('', resolve('')) 自己添加 106 | }, 107 | }; 108 | 109 | -------------------------------------------------------------------------------- /src/style/iconfont.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'iconfont'; 3 | src: url('//at.alicdn.com/t/font_1930782_k9ktg144nu.eot?t=1594189543554'); /* IE9 */ 4 | src: url('//at.alicdn.com/t/font_1930782_k9ktg144nu.eot?t=1594189543554#iefix') 5 | format('embedded-opentype'), 6 | /* IE6-IE8 */ 7 | url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAgYAAsAAAAAD3AAAAfJAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCEUgqPPIwrATYCJAM0CxwABCAFhG0HgUob+QwRVaxHIfuRYNukWZfUl/CcTXGFS9/kw+OmvZ+EAD8BUoO5MBGpKO1KYJ3WZC7hzmFzZGpSmxs902ZxrhAUuwozlGefPPrelsIV0k/TwQXAX2u/eocnbTRdvP1eTmxPmHuo2XSSTmcI6YtoQ6cTKpRCyR2TscXhVxDirNpHRHQgAChqwQrSPyrBDh04KJlgxYiCvAzoMo3gGgoIdPV8hVdOSxZAAx3zI3MDB5hPv08+oSc6gIGGhXKanBuZjd5vo38azyqqgiGOALe+dgA9XwALwAqAA8i+ys4dYCNsJYVWKdwy7WZI08T5t9FvJ7+79O71uy/vW70f9X7R+yM/jVdVmf05bdxhqpfArLOr/JMHMBDBgoMGPLTQQQ8CCgEgPKCI3pk1maa30RbATNTJqAMReHcJwEJ9DQAH9TMAGqhfUAc88L4VQAt1FAA6qIsA0EM9gjogwE/jABTqeGyCAAAwOC/VALQBmAKANUFp/QnzOocFySnkLk9aCwacUc/XrhsiSdVCaahoYLVaziKZOFFr0FOvSMdRrkuSrMGrS2Fm/fQDJ2rwK092MB0+XVuTmwPqLa3nLZEHYUlJpDDBa3bYvX6/2WVxOvwBvEuE7Az4fEq4XfaFK16D20+I3es2O6B46SYzcW22eHzNbQHBR/3wOuly7SQQKNEh+KEo3unGDVuqcEu3NjRt3l5ds2zbkGWwcQ3GNK6AYPL4YKfEg0a0BYH5ggBla0OBRUs5fTs0g16F6QhQ9xbACa+X0iJY5BFJ24ng4dGbNYbRRIAACkr0OtmogYE1cJmPgzApj5kss6Jsl9MdjMHhdOSG8NJwRy+5TJ6bVmyXuzuow+IIt++TU+YsLbW7Y+SAcPBuTSU8M6XYXlLi9ETLxY45g8oyHCvvFrnziqeVxI3XPpqfVp55uazMlW6MKm75VptOuU57Tionikh2DvG8kEvfTiY52cT93F72zgkDMTAiMbLTHaUXGohMIQxPBkFZU398CAQyrQV2Ekw3XqcsbnDVqSHeEzfPrAkELKZzTYE5Vs6yR84hTyC5hMrp1cyAL4Q63XjoVC3N6tOdTAdP1uRWnJjk9oJTfBcEBy5MRH46/WJJXW5NcX/pUmk9zfqy6LSBnfEQj8Vvvj/0JW4H06VLNpdxBjwREWkgDgcra1zbGtkP3lXuuO+57uvrK3Uek2HME5F8nSdMQYv+LSKlmynOFrYGdVP6csMjP0Y06bvoZpY53Z4ySju335nCc/XlMbaievTHM7lxOcJJ7pnvDaG2AnlcfVY7pZOZq705sLyeGOo7u6n9gYfxFTXt0X1oHHdUflGnB/o9qv6VsRzrmhv0FR8wTuafjdFMFqeg/bjKeelBfh4fTKd15i2CKjjFCmsiKDqFSnHEndmz68z9n/6Ur+SfWpTZlhQZbA/unMnDl7xQL4oVNCvaErTEzIiy0gqxmVWoXPPs+dLkRb9ZUZYgH5O1JyggOHuGPMO8XYLauzh10uzJvXcqnvueXrn1mltR2UqZnZzqUnbtstmSdimu1OTZyu6kbfRpRX0T/D5zQOqTrKyMhvnoeba3c/E424iRT6ZMIf37SRMnYM4cTJ0m9e1buXpQ55iC5PHXxk5H5J3Ro1104RSqN69/pyZ37Jduq0ptBrrGx8am1RqGPqd6D/hxS8XQoZ3aQc2ecW1s8rhafcw/hgqomFlaalDf1+tsrxmGCtb0/kEa0KqNnA4Kc6VEkptLEjXlJhMnrGnXEVUwN7li7tof/72k9xYsb/S2/kSMLcwtLt5WKssw483RmTQnXXZgvmrf7thub5aZKt0mo3lf37bV9ju67kNtm13dlg4d7VL7rq+jMutZtc761iq7nlH53wVVXH+pjK4XgnvW76kUtlTvPFZxtnBM5zEUmruMidk03eEBKZ04eMtA2gqWP442C0LbrnW4Lau2pmfltaIqtrVG0CNM2ZOUJLwX/NY9kdFrHKh4pZ8WWhDKRxo29q3X7sJn/4kz1mftqu5nI1svZZ9deFPRLDP/l5GLDt0a/6UBr2n3V6c9Y9rZ2tv62/phWmcAUBX2DKsAADuLqcyCeobW9wYADswZmP6DdbN9AYAdxQRFu8IN43A/OtZwLrnbrOGm7r/rhP+hO4+af/+OeN4koANT10WAnxjgho4IVZwKChtmNwerDl3nFhgwCjrgQwqguhdQZW8onm5Hi2Bzv2haRIIYaFETsdChAcllWpEGAtojHjr0QhTNEe1bQBjGgQXh9ACa4VuBCCTsRgyMOI1YSLhJcplPkAZmfEE8JMIiCgcJC1JAI0KyV68EkmEU21XYAaMyLXwVrvwCXbyktEDFf0DZjoiubvMznxCB1uEiT7pnVkIRBvEhYgPvUSTCHQxcG+a0aRpV5bIeMBxc4ZVAsqs+iu1qaAeM6na+Kvz8F+jiJTUcODH8A8r25aKrWwb5qUTWgfuyPk+6Z9muhN1OGMSHbAevJ1Gkaks7GLg2S4ynTSMvUlyl3r4WbvMnABTKs4EwhCUc0RCeaImO6L+JzAfYiBGXU4LHwsm4OtkXA7fKeki+5Cq05O9gSTKO0nPa1CWsUGUvszmO4JRa6evpfL4kuHuzdI1SRVorJoD70XLxYGcZtYb/Ug2Y1hc11hdrLc5glyLj3mDUlRvPuCQr48EBAAA=') 8 | format('woff2'), 9 | url('//at.alicdn.com/t/font_1930782_k9ktg144nu.woff?t=1594189543554') 10 | format('woff'), 11 | url('//at.alicdn.com/t/font_1930782_k9ktg144nu.ttf?t=1594189543554') 12 | format('truetype'), 13 | /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ 14 | url('//at.alicdn.com/t/font_1930782_k9ktg144nu.svg?t=1594189543554#iconfont') 15 | format('svg'); /* iOS 4.1- */ 16 | } 17 | 18 | .iconfont { 19 | font-family: 'iconfont' !important; 20 | font-size: 14px; 21 | font-style: normal; 22 | -webkit-font-smoothing: antialiased; 23 | -moz-osx-font-smoothing: grayscale; 24 | } 25 | .icon-xmloutput:before { 26 | content: '\e8b8'; 27 | font-size: 21px; 28 | } 29 | 30 | .icon-zuhe:before { 31 | content: '\e647'; 32 | font-size: 21px; 33 | } 34 | 35 | .icon-fileplus-fill:before { 36 | content: '\e7c6'; 37 | font-size: 21px; 38 | } 39 | 40 | .icon-expandalt-fill:before { 41 | content: '\e7e4'; 42 | } 43 | 44 | .icon-eye-slash:before { 45 | content: '\e7ec'; 46 | font-size: 21px; 47 | } 48 | 49 | .icon-eye:before { 50 | content: '\e7ed'; 51 | font-size: 21px; 52 | } 53 | 54 | .icon-reply:before { 55 | content: '\e82f'; 56 | } 57 | 58 | .icon-share:before { 59 | content: '\e86e'; 60 | } 61 | 62 | .icon-Directory-tree:before { 63 | content: '\e892'; 64 | font-size: 21px; 65 | } 66 | 67 | .icon-dituleiwanggequ-copy:before { 68 | content: '\f072'; 69 | font-size: 21px; 70 | } 71 | 72 | .icon-fangxingweixuanzhong-copy:before { 73 | content: '\f073'; 74 | font-size: 21px; 75 | } 76 | 77 | .icon-tupian:before { 78 | content: '\e677'; 79 | font-size: 21px; 80 | } 81 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | // Template version: 1.2.6 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path'); 6 | const version = require('../src/Controls.json').version; 7 | const proxyJson = require('../src/proxy.json'); 8 | const dllEntry = require('./dllEntry.json'); 9 | function resolve (dir) { 10 | return path.join(__dirname, '.', dir); 11 | } 12 | // 获取代理 13 | function getProxy (proxyJson, version) { 14 | const devServerProxy = {}; 15 | proxyJson.forEach(function (item) { 16 | let proxyUrl = ''; 17 | if (item.proxyUrl === '/loader' || item.notVersion) { 18 | // 不需要带版本号 19 | // 壳子服务不需要版本 20 | proxyUrl = item.proxyUrl; 21 | } else { 22 | proxyUrl = item.proxyUrl + '/' + version; 23 | } 24 | devServerProxy[proxyUrl] = { 25 | target: item.targetApi, 26 | ws: item.protocol === 'ws://', 27 | changeOrigin: item.changeOrigin, 28 | secure: false, 29 | }; 30 | if (!item.notPathRewrite) { 31 | if (item.pathRewrite) { 32 | devServerProxy[proxyUrl]['pathRewrite'] = item.pathRewrite; 33 | } else { 34 | devServerProxy[proxyUrl]['pathRewrite'] = {}; 35 | devServerProxy[proxyUrl]['pathRewrite'][proxyUrl] = ''; 36 | } 37 | } 38 | }); 39 | return devServerProxy; 40 | } 41 | 42 | module.exports = { 43 | dev: { 44 | // Paths 45 | assetsRoot: path.resolve(__dirname, '../'), 46 | assetsSubDirectory: '', 47 | assetsPublicPath: '/', 48 | proxyTable: getProxy(proxyJson, version), // 代理 49 | inline: true, // 是否热部署 50 | // Various Dev Server settings 51 | host: '0.0.0.0', // can be overwritten by process.env.HOST 52 | // host: 'localhost', // can be overwritten by process.env.HOST 53 | port: 9080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 54 | autoOpenBrowser: false, 55 | errorOverlay: true, 56 | notifyOnErrors: false, 57 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 58 | 59 | // Use Eslint Loader? 60 | // If true, your code will be linted during bundling and 61 | // linting errors and warnings will be shown in the console. 62 | useEslint: true, 63 | // If true, eslint errors and warnings will also be shown in the error overlay 64 | // in the browser. 65 | showEslintErrorsInOverlay: false, 66 | 67 | /** 68 | * Source Maps 69 | */ 70 | 71 | // https://webpack.js.org/configuration/devtool/#development 72 | devtool: '#source-map', 73 | 74 | // If you have problems debugging vue-files in devtools, 75 | // set this to false - it *may* help 76 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 77 | cacheBusting: true, 78 | 79 | // CSS Sourcemaps off by default because relative paths are "buggy" 80 | // with this option, according to the CSS-Loader README 81 | // (https://github.com/webpack/css-loader#sourcemaps) 82 | // In our experience, they generally work as expected, 83 | // just be aware of this issue when enabling this option. 84 | cssSourceMap: true, 85 | }, 86 | 87 | dll: { 88 | filename: './js/[name].js', // 文件名 89 | publicPath: '/', // 公共目录 90 | entry: dllEntry, // 入口 91 | output: path.resolve(__dirname, '../vendor'), // 出口 92 | }, 93 | 94 | build: { 95 | entry: path.resolve(__dirname, '../src/main.js'), // 入口 96 | output: path.resolve(__dirname, '../deploy'), // 出口 97 | // Template for index.html 98 | index: path.resolve(__dirname, '../deploy/index.html'), 99 | 100 | // Paths 101 | assetsRoot: path.resolve(__dirname, '../deploy'), 102 | assetsSubDirectory: '', 103 | 104 | // you can set by youself according to actual condition 105 | assetsPublicPath: './', 106 | // Use Eslint Loader? 107 | // If true, your code will be linted during bundling and 108 | // linting errors and warnings will be shown in the console. 109 | useEslint: true, 110 | /** 111 | * Source Maps 112 | */ 113 | 114 | productionSourceMap: false, 115 | // https://webpack.js.org/configuration/devtool/#production 116 | devtool: 'nosources-source-map', 117 | 118 | // Gzip off by default as many popular public hosts such as 119 | // Surge or Netlify already gzip all public assets for you. 120 | // Before setting to `true`, make sure to: 121 | // npm install --save-dev compression-webpack-plugin 122 | productionGzip: true, 123 | productionGzipExtensions: ['js', 'css', 'html', 'svg', 'txt', 'eot', 'otf', 'ttf', 'gif'], 124 | 125 | // Run the build command with an extra argument to 126 | // View the bundle analyzer report after build finishes: 127 | // `npm run build --report` 128 | // Set to `true` or `false` to always turn it on or off 129 | bundleAnalyzerReport: process.env.npm_config_report, 130 | }, 131 | }; 132 | -------------------------------------------------------------------------------- /src/test/test.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/customToolbar/component/uploadData.vue: -------------------------------------------------------------------------------- 1 | 61 | 188 | -------------------------------------------------------------------------------- /src/PlanADDFunction/鼠标悬浮添加图标.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | Hover icons example for mxGraph 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 |
198 |
199 | 200 | 201 | -------------------------------------------------------------------------------- /src/views/customToolbar/x2js.js: -------------------------------------------------------------------------------- 1 | (function (a, b) { if (typeof define === "function" && define.amd) { define([], b); } else { if (typeof exports === "object") { module.exports = b(); } else { a.X2JS = b(); } } }(this, function () { return function (z) { var t = "1.2.0"; z = z || {}; i(); u(); function i () { if (z.escapeMode === undefined) { z.escapeMode = true; } z.attributePrefix = z.attributePrefix || "_"; z.arrayAccessForm = z.arrayAccessForm || "none"; z.emptyNodeForm = z.emptyNodeForm || "text"; if (z.enableToStringFunc === undefined) { z.enableToStringFunc = true; } z.arrayAccessFormPaths = z.arrayAccessFormPaths || []; if (z.skipEmptyTextNodesForObj === undefined) { z.skipEmptyTextNodesForObj = true; } if (z.stripWhitespaces === undefined) { z.stripWhitespaces = true; } z.datetimeAccessFormPaths = z.datetimeAccessFormPaths || []; if (z.useDoubleQuotes === undefined) { z.useDoubleQuotes = false; } z.xmlElementsFilter = z.xmlElementsFilter || []; z.jsonPropertiesFilter = z.jsonPropertiesFilter || []; if (z.keepCData === undefined) { z.keepCData = false; } } var h = { ELEMENT_NODE: 1, TEXT_NODE: 3, CDATA_SECTION_NODE: 4, COMMENT_NODE: 8, DOCUMENT_NODE: 9 }; function u () { } function x (B) { var C = B.localName; if (C == null) { C = B.baseName; } if (C == null || C == "") { C = B.nodeName; } return C; } function r (B) { return B.prefix; } function s (B) { if (typeof (B) == "string") { return B.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); } else { return B; } } function k (B) { return B.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/&/g, "&"); } function w (C, F, D, E) { var B = 0; for (; B < C.length; B++) { var G = C[B]; if (typeof G === "string") { if (G == E) { break; } } else { if (G instanceof RegExp) { if (G.test(E)) { break; } } else { if (typeof G === "function") { if (G(F, D, E)) { break; } } } } } return B != C.length; } function n (D, B, C) { switch (z.arrayAccessForm) { case "property": if (!(D[B] instanceof Array)) { D[B + "_asArray"] = [D[B]]; } else { D[B + "_asArray"] = D[B]; } break; }if (!(D[B] instanceof Array) && z.arrayAccessFormPaths.length > 0) { if (w(z.arrayAccessFormPaths, D, B, C)) { D[B] = [D[B]]; } } } function a (G) { var E = G.split(/[-T:+Z]/g); var F = new Date(E[0], E[1] - 1, E[2]); var D = E[5].split("."); F.setHours(E[3], E[4], D[0]); if (D.length > 1) { F.setMilliseconds(D[1]); } if (E[6] && E[7]) { var C = E[6] * 60 + Number(E[7]); var B = /\d\d-\d\d:\d\d$/.test(G) ? "-" : "+"; C = 0 + (B == "-" ? -1 * C : C); F.setMinutes(F.getMinutes() - C - F.getTimezoneOffset()); } else { if (G.indexOf("Z", G.length - 1) !== -1) { F = new Date(Date.UTC(F.getFullYear(), F.getMonth(), F.getDate(), F.getHours(), F.getMinutes(), F.getSeconds(), F.getMilliseconds())); } } return F; } function q (D, B, C) { if (z.datetimeAccessFormPaths.length > 0) { var E = C.split(".#")[0]; if (w(z.datetimeAccessFormPaths, D, B, E)) { return a(D); } else { return D; } } else { return D; } } function b (E, C, B, D) { if (C == h.ELEMENT_NODE && z.xmlElementsFilter.length > 0) { return w(z.xmlElementsFilter, E, B, D); } else { return true; } } function A (D, J) { if (D.nodeType == h.DOCUMENT_NODE) { var K = new Object; var B = D.childNodes; for (var L = 0; L < B.length; L++) { var C = B.item(L); if (C.nodeType == h.ELEMENT_NODE) { var I = x(C); K[I] = A(C, I); } } return K; } else { if (D.nodeType == h.ELEMENT_NODE) { var K = new Object; K.__cnt = 0; var B = D.childNodes; for (var L = 0; L < B.length; L++) { var C = B.item(L); var I = x(C); if (C.nodeType != h.COMMENT_NODE) { var H = J + "." + I; if (b(K, C.nodeType, I, H)) { K.__cnt++; if (K[I] == null) { K[I] = A(C, H); n(K, I, H); } else { if (K[I] != null) { if (!(K[I] instanceof Array)) { K[I] = [K[I]]; n(K, I, H); } } (K[I])[K[I].length] = A(C, H); } } } } for (var E = 0; E < D.attributes.length; E++) { var F = D.attributes.item(E); K.__cnt++; K[z.attributePrefix + F.name] = F.value; } var G = r(D); if (G != null && G != "") { K.__cnt++; K.__prefix = G; } if (K["#text"] != null) { K.__text = K["#text"]; if (K.__text instanceof Array) { K.__text = K.__text.join("\n"); } if (z.stripWhitespaces) { K.__text = K.__text.trim(); } delete K["#text"]; if (z.arrayAccessForm == "property") { delete K["#text_asArray"]; } K.__text = q(K.__text, I, J + "." + I); } if (K["#cdata-section"] != null) { K.__cdata = K["#cdata-section"]; delete K["#cdata-section"]; if (z.arrayAccessForm == "property") { delete K["#cdata-section_asArray"]; } } if (K.__cnt == 0 && z.emptyNodeForm == "text") { K = ""; } else { if (K.__cnt == 1 && K.__text != null) { K = K.__text; } else { if (K.__cnt == 1 && K.__cdata != null && !z.keepCData) { K = K.__cdata; } else { if (K.__cnt > 1 && K.__text != null && z.skipEmptyTextNodesForObj) { if ((z.stripWhitespaces && K.__text == "") || (K.__text.trim() == "")) { delete K.__text; } } } } } delete K.__cnt; if (z.enableToStringFunc && (K.__text != null || K.__cdata != null)) { K.toString = function () { return (this.__text != null ? this.__text : "") + (this.__cdata != null ? this.__cdata : ""); }; } return K; } else { if (D.nodeType == h.TEXT_NODE || D.nodeType == h.CDATA_SECTION_NODE) { return D.nodeValue; } } } } function o (I, F, H, C) { var E = "<" + ((I != null && I.__prefix != null) ? (I.__prefix + ":") : "") + F; if (H != null) { for (var G = 0; G < H.length; G++) { var D = H[G]; var B = I[D]; if (z.escapeMode) { B = s(B); } E += " " + D.substr(z.attributePrefix.length) + "="; if (z.useDoubleQuotes) { E += '"' + B + '"'; } else { E += "'" + B + "'"; } } } if (!C) { E += ">"; } else { E += "/>"; } return E; } function j (C, B) { return ""; } function v (C, B) { return C.indexOf(B, C.length - B.length) !== -1; } function y (C, B) { if ((z.arrayAccessForm == "property" && v(B.toString(), ("_asArray"))) || B.toString().indexOf(z.attributePrefix) == 0 || B.toString().indexOf("__") == 0 || (C[B] instanceof Function)) { return true; } else { return false; } } function m (D) { var C = 0; if (D instanceof Object) { for (var B in D) { if (y(D, B)) { continue; } C++; } } return C; } function l (D, B, C) { return z.jsonPropertiesFilter.length == 0 || C == "" || w(z.jsonPropertiesFilter, D, B, C); } function c (D) { var C = []; if (D instanceof Object) { for (var B in D) { if (B.toString().indexOf("__") == -1 && B.toString().indexOf(z.attributePrefix) == 0) { C.push(B); } } } return C; } function g (C) { var B = ""; if (C.__cdata != null) { B += ""; } if (C.__text != null) { if (z.escapeMode) { B += s(C.__text); } else { B += C.__text; } } return B; } function d (C) { var B = ""; if (C instanceof Object) { B += g(C); } else { if (C != null) { if (z.escapeMode) { B += s(C); } else { B += C; } } } return B; } function p (C, B) { if (C === "") { return B; } else { return C + "." + B; } } function f (D, G, F, E) { var B = ""; if (D.length == 0) { B += o(D, G, F, true); } else { for (var C = 0; C < D.length; C++) { B += o(D[C], G, c(D[C]), false); B += e(D[C], p(E, G)); B += j(D[C], G); } } return B; } function e (I, H) { var B = ""; var F = m(I); if (F > 0) { for (var E in I) { if (y(I, E) || (H != "" && !l(I, E, p(H, E)))) { continue; } var D = I[E]; var G = c(D); if (D == null || D == undefined) { B += o(D, E, G, true); } else { if (D instanceof Object) { if (D instanceof Array) { B += f(D, E, G, H); } else { if (D instanceof Date) { B += o(D, E, G, false); B += D.toISOString(); B += j(D, E); } else { var C = m(D); if (C > 0 || D.__text != null || D.__cdata != null) { B += o(D, E, G, false); B += e(D, p(H, E)); B += j(D, E); } else { B += o(D, E, G, true); } } } } else { B += o(D, E, G, false); B += d(D); B += j(D, E); } } } } B += d(I); return B; } this.parseXmlString = function (D) { var F = window.ActiveXObject || "ActiveXObject" in window; if (D === undefined) { return null; } var E; if (window.DOMParser) { var G = new window.DOMParser(); var B = null; if (!F) { try { B = G.parseFromString("INVALID", "text/xml").getElementsByTagName("parsererror")[0].namespaceURI; } catch (C) { B = null; } } try { E = G.parseFromString(D, "text/xml"); if (B != null && E.getElementsByTagNameNS(B, "parsererror").length > 0) { E = null; } } catch (C) { E = null; } } else { if (D.indexOf("") + 2); } E = new ActiveXObject("Microsoft.XMLDOM"); E.async = "false"; E.loadXML(D); } return E; }; this.asArray = function (B) { if (B === undefined || B == null) { return []; } else { if (B instanceof Array) { return B; } else { return [B]; } } }; this.toXmlDateTime = function (B) { if (B instanceof Date) { return B.toISOString(); } else { if (typeof (B) === "number") { return new Date(B).toISOString(); } else { return null; } } }; this.asDateTime = function (B) { if (typeof (B) == "string") { return a(B); } else { return B; } }; this.xml2json = function (B) { return A(B); }; this.xml_str2json = function (B) { var C = this.parseXmlString(B); if (C != null) { return this.xml2json(C); } else { return null; } }; this.json2xml_str = function (B) { return e(B, ""); }; this.json2xml = function (C) { var B = this.json2xml_str(C); return this.parseXmlString(B); }; this.getVersion = function () { return t; }; }; })); 2 | -------------------------------------------------------------------------------- /public/stencil/sidebar.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import { Collapse, Tooltip } from 'antd'; 4 | import IMAGE_SHAPES from './shape-config/image-shape'; 5 | 6 | import './sidebar.less'; 7 | 8 | const { Panel } = Collapse; 9 | 10 | const SIDEBAR_BASIC_SHAPES = [ 11 | { 12 | name: 'rectangle', 13 | key: 'Rectangle', 14 | logo: 'https://img.alicdn.com/tfs/TB19O8OokvoK1RjSZFNXXcxMVXa-33-26.svg', 15 | width: 120, 16 | height: 60, 17 | }, 18 | { 19 | name: 'rounded rectangle', 20 | key: 'Rounded Rectangle', 21 | logo: 'https://img.alicdn.com/tfs/TB1rzVHojDpK1RjSZFrXXa78VXa-33-26.svg', 22 | width: 120, 23 | height: 60, 24 | }, 25 | { 26 | name: 'trapezoid', 27 | key: 'Trapezoid', 28 | logo: 'https://img.alicdn.com/tfs/TB1nEXPokvoK1RjSZPfXXXPKFXa-33-26.svg', 29 | width: 120, 30 | height: 60, 31 | }, 32 | { 33 | name: 'circle', 34 | key: 'Circle', 35 | logo: 'https://img.alicdn.com/tfs/TB15iXQogHqK1RjSZFkXXX.WFXa-38-38.svg', 36 | width: 80, 37 | height: 80, 38 | }, 39 | { 40 | name: 'triangle', 41 | key: 'Triangle', 42 | logo: 'https://img.alicdn.com/tfs/TB1cxNKohTpK1RjSZR0XXbEwXXa-38-38.svg', 43 | width: 80, 44 | height: 80, 45 | }, 46 | { 47 | name: 'line', 48 | key: 'Line', 49 | logo: 'https://img.alicdn.com/tfs/TB1LOxPoirpK1RjSZFhXXXSdXXa-38-38.svg', 50 | width: 80, 51 | height: 80, 52 | }, 53 | { 54 | name: 'text', 55 | key: 'Text', 56 | logo: '', 57 | width: 60, 58 | height: 20, 59 | } 60 | ]; 61 | 62 | const SIDEBAR_SVG_SHAPES = [{ 63 | name: 'on-grid energy', 64 | key: 'shangwangdianliang', 65 | logo: 'https://img.alicdn.com/tfs/TB1i4I1wxTpK1RjSZR0XXbEwXXa-80-80.svg', 66 | width: 80, 67 | height: 80, 68 | }, 69 | { 70 | name: 'electricity earnings', 71 | key: 'fadianshouyi', 72 | logo: 'https://img.alicdn.com/tfs/TB1MVA2wr2pK1RjSZFsXXaNlXXa-80-80.svg', 73 | width: 80, 74 | height: 80, 75 | }, 76 | { 77 | name: 'monitor', 78 | key: 'gaojingjianshi', 79 | logo: 'https://img.alicdn.com/tfs/TB1DildwNYaK1RjSZFnXXa80pXa-80-80.svg', 80 | width: 80, 81 | height: 80, 82 | }]; 83 | 84 | const SIDEBAR_CARD_SHAPES = [{ 85 | name: 'primary equipment', 86 | key: 'zhushebei', 87 | logo: 'https://img.alicdn.com/tfs/TB1eD9LdgHqK1RjSZJnXXbNLpXa-144-128.png', 88 | width: 100, 89 | height: 80 90 | }, { 91 | name: 'auxiliary equipment', 92 | key: 'fujiashebei', 93 | logo: 'https://img.alicdn.com/tfs/TB1ejUeiAPoK1RjSZKbXXX1IXXa-36-32.png', 94 | width: 100, 95 | height: 80 96 | }, { 97 | name: 'product element', 98 | key: 'chanchuwu', 99 | logo: 'https://img.alicdn.com/tfs/TB1ht.aisbpK1RjSZFyXXX_qFXa-32-32.png', 100 | width: 100, 101 | height: 80 102 | }]; 103 | 104 | export default class SideBar extends React.Component { 105 | constructor(props) { 106 | super(props); 107 | this.state = {}; 108 | } 109 | 110 | componentDidMount() {} 111 | 112 | componentDidUpdate() { 113 | this.handleSidebarItems(); 114 | } 115 | 116 | handleSidebarItems() { 117 | const { editor } = this.props; 118 | 119 | if (editor && editor.initSidebar) { 120 | const sidebarItems = document.querySelectorAll('.custom-sidebar-node'); 121 | 122 | const newSidebarItems = Array.from(sidebarItems).filter((item) => { 123 | if (!item.classList.contains('has-inited')) { 124 | item.classList.add('has-inited'); 125 | return true; 126 | } 127 | return false; 128 | }); 129 | 130 | editor.initSidebar(newSidebarItems); 131 | } 132 | } 133 | 134 | onChange() { 135 | setTimeout(() => { 136 | this.handleSidebarItems(); 137 | }, 1000); 138 | } 139 | 140 | render() { 141 | return ( 142 |
143 | 144 | { 148 | this.onChange(); 149 | }} 150 | > 151 | 152 | 153 | {SIDEBAR_BASIC_SHAPES.map(shape => ( 154 | 164 | 170 | {shape.logo ? : shape.key} 171 | 172 | {shape.name} 173 | 174 | 175 | 176 | ))} 177 | 178 | 179 | 180 | 181 | {SIDEBAR_SVG_SHAPES.map(shape => ( 182 | 192 | 198 | 199 | 200 | {shape.name} 201 | 202 | 203 | 204 | ))} 205 | 206 | 207 | {IMAGE_SHAPES.map(shape => ( 208 | { 210 | e.preventDefault(); 211 | return false; 212 | }} 213 | key={`panel_a_${shape.key}`} 214 | href="a" 215 | className="geItem custom-sidebar-node" 216 | data-shape-type="image" 217 | data-shape-width={shape.width} 218 | data-shape-height={shape.height} 219 | data-shape-name={shape.key} 220 | data-shape-label={shape.name} 221 | title={shape.name} 222 | > 223 | 229 | 230 | 231 | {shape.name} 232 | 233 | 234 | 235 | 236 | ))} 237 | 238 | 239 | 240 | 241 | {SIDEBAR_CARD_SHAPES.map(shape => ( 242 | { 244 | e.preventDefault(); 245 | return false; 246 | }} 247 | key={`panel_a_${shape.key}`} 248 | href="a" 249 | className="geItem custom-sidebar-node" 250 | data-shape-type="card" 251 | data-shape-width={shape.width} 252 | data-shape-height={shape.height} 253 | data-shape-name={shape.key} 254 | data-shape-label={shape.name} 255 | title={shape.name} 256 | > 257 | 263 | 264 | 265 | {shape.name} 266 | 267 | 268 | 269 | 270 | ))} 271 | 272 | 273 | 274 | 275 | 276 |
277 | ); 278 | } 279 | } 280 | 281 | SideBar.propTypes = { 282 | editor: PropTypes.object, 283 | }; 284 | 285 | // Specifies the default values for props: 286 | SideBar.defaultProps = { 287 | editor: {}, 288 | }; 289 | -------------------------------------------------------------------------------- /src/views/customToolbar/GroupToolbarItems.js: -------------------------------------------------------------------------------- 1 | import { MxConstants } from '../../graph/index'; 2 | 3 | // const { MxConstants } = mxgraph; 4 | export const grouptoolItems = [ 5 | { 6 | title: '分组1', 7 | id: 'group-1', 8 | width: 400, 9 | height: 800, 10 | dropAble: true, 11 | style: { 12 | overflow: 'fill', 13 | shape: 'swimlane', 14 | html: '1', 15 | swimlaneFillColor: '#FFFF', 16 | fillColor: '#409eff', 17 | strokeColor: '#629EA0', 18 | fontColor: '#000000', 19 | verticalAlign: MxConstants.ALIGN_TOP, 20 | align: MxConstants.ALIGN_CENTER, 21 | }, 22 | created (graph, cell, index) { 23 | const deleteIconDom = document.querySelector(`.deleteIcon_${index}`); 24 | if (deleteIconDom) { 25 | deleteIconDom.addEventListener('click', () => { 26 | graph.removeCells([cell]); 27 | }); 28 | } 29 | }, 30 | html: (index) => ` 31 |
32 | 分组1 33 | 34 |
35 | `.replace(/[\r\n]/g, ''), 36 | }, 37 | { 38 | title: '分组2', 39 | id: 'group-2', 40 | width: 400, 41 | height: 800, 42 | dropAble: true, 43 | style: { 44 | overflow: 'fill', 45 | shape: 'swimlane', 46 | html: '1', 47 | swimlaneFillColor: '#FFFF', 48 | fillColor: '#409eff', 49 | strokeColor: '#629EA0', 50 | fontColor: '#000000', 51 | verticalAlign: MxConstants.ALIGN_TOP, 52 | align: MxConstants.ALIGN_CENTER, 53 | }, 54 | created (graph, cell, index) { 55 | const deleteIconDom = document.querySelector(`.deleteIcon_${index}`); 56 | if (deleteIconDom) { 57 | deleteIconDom.addEventListener('click', () => { 58 | graph.removeCells([cell]); 59 | }); 60 | } 61 | }, 62 | html: (index) => ` 63 |
64 | 分组2 65 | 66 |
67 | `.replace(/[\r\n]/g, ''), 68 | }, 69 | { 70 | title: '分组3', 71 | id: 'group-3', 72 | width: 400, 73 | height: 800, 74 | dropAble: true, 75 | style: { 76 | overflow: 'fill', 77 | shape: 'swimlane', 78 | html: '1', 79 | swimlaneFillColor: '#FFFF', 80 | fillColor: '#409eff', 81 | strokeColor: '#629EA0', 82 | fontColor: '#000000', 83 | verticalAlign: MxConstants.ALIGN_TOP, 84 | align: MxConstants.ALIGN_CENTER, 85 | }, 86 | created (graph, cell, index) { 87 | const deleteIconDom = document.querySelector(`.deleteIcon_${index}`); 88 | if (deleteIconDom) { 89 | deleteIconDom.addEventListener('click', () => { 90 | graph.removeCells([cell]); 91 | }); 92 | } 93 | }, 94 | html: (index) => ` 95 |
96 | 分组3 97 | 98 |
99 | `.replace(/[\r\n]/g, ''), 100 | }, 101 | { 102 | title: '分组4', 103 | id: 'group-4', 104 | width: 400, 105 | height: 800, 106 | dropAble: true, 107 | style: { 108 | overflow: 'fill', 109 | shape: 'swimlane', 110 | html: '1', 111 | swimlaneFillColor: '#FFFF', 112 | fillColor: '#409eff', 113 | strokeColor: '#629EA0', 114 | fontColor: '#000000', 115 | verticalAlign: MxConstants.ALIGN_TOP, 116 | align: MxConstants.ALIGN_CENTER, 117 | }, 118 | created (graph, cell, index) { 119 | const deleteIconDom = document.querySelector(`.deleteIcon_${index}`); 120 | if (deleteIconDom) { 121 | deleteIconDom.addEventListener('click', () => { 122 | graph.removeCells([cell]); 123 | }); 124 | } 125 | }, 126 | html: (index) => ` 127 |
128 | 分组4 129 | 130 |
131 | `.replace(/[\r\n]/g, ''), 132 | }, 133 | { 134 | title: '分组5', 135 | id: 'group-5', 136 | width: 400, 137 | height: 800, 138 | dropAble: true, 139 | style: { 140 | overflow: 'fill', 141 | shape: 'swimlane', 142 | html: '1', 143 | swimlaneFillColor: '#FFFF', 144 | fillColor: '#409eff', 145 | strokeColor: '#629EA0', 146 | fontColor: '#000000', 147 | verticalAlign: MxConstants.ALIGN_TOP, 148 | align: MxConstants.ALIGN_CENTER, 149 | }, 150 | created (graph, cell, index) { 151 | const deleteIconDom = document.querySelector(`.deleteIcon_${index}`); 152 | if (deleteIconDom) { 153 | deleteIconDom.addEventListener('click', () => { 154 | graph.removeCells([cell]); 155 | }); 156 | } 157 | }, 158 | html: (index) => ` 159 |
160 | 分组5 161 | 162 |
163 | `.replace(/[\r\n]/g, ''), 164 | }, 165 | { 166 | title: '分组6', 167 | id: 'group-6', 168 | width: 400, 169 | height: 800, 170 | dropAble: true, 171 | style: { 172 | overflow: 'fill', 173 | shape: 'swimlane', 174 | html: '1', 175 | swimlaneFillColor: '#FFFF', 176 | fillColor: '#409eff', 177 | strokeColor: '#629EA0', 178 | fontColor: '#000000', 179 | verticalAlign: MxConstants.ALIGN_TOP, 180 | align: MxConstants.ALIGN_CENTER, 181 | }, 182 | created (graph, cell, index) { 183 | const deleteIconDom = document.querySelector(`.deleteIcon_${index}`); 184 | if (deleteIconDom) { 185 | deleteIconDom.addEventListener('click', () => { 186 | graph.removeCells([cell]); 187 | }); 188 | } 189 | }, 190 | html: (index) => ` 191 |
192 | 分组6 193 | 194 |
195 | `.replace(/[\r\n]/g, ''), 196 | }, 197 | { 198 | title: '分组7', 199 | id: 'group-7', 200 | width: 400, 201 | height: 800, 202 | dropAble: true, 203 | style: { 204 | overflow: 'fill', 205 | shape: 'swimlane', 206 | html: '1', 207 | swimlaneFillColor: '#FFFF', 208 | fillColor: '#409eff', 209 | strokeColor: '#629EA0', 210 | fontColor: '#000000', 211 | verticalAlign: MxConstants.ALIGN_TOP, 212 | align: MxConstants.ALIGN_CENTER, 213 | }, 214 | created (graph, cell, index) { 215 | const deleteIconDom = document.querySelector(`.deleteIcon_${index}`); 216 | if (deleteIconDom) { 217 | deleteIconDom.addEventListener('click', () => { 218 | graph.removeCells([cell]); 219 | }); 220 | } 221 | }, 222 | html: (index) => ` 223 |
224 | 分组7 225 | 226 |
227 | `.replace(/[\r\n]/g, ''), 228 | }, 229 | { 230 | title: '子元素-1', // 显示名称 231 | id: 'member-1', 232 | width: 130, // 默认宽度 233 | height: 50, // 默认高度 234 | dropAble: false, // 是否可以作为drop的对象 235 | style: { // 样式 236 | html: '1', 237 | fillColor: '#409eff', 238 | strokeColor: '#53859F', 239 | fontColor: '#000000', 240 | }, 241 | html: () => ` 242 |
243 | 子元素 244 |
245 | `.replace(/[\r\n]/g, ''), 246 | }, 247 | ]; 248 | -------------------------------------------------------------------------------- /src/views/customToolbar/toolbar.js: -------------------------------------------------------------------------------- 1 | // import { 2 | // MxConstants as MxConstants 3 | // } from 'mxgraph-js' 4 | // const closeIcon = require('@/assets/icon/delete.png') 5 | 6 | import { MxConstants } from "../../graph/index"; 7 | // const { MxConstants } = mxgraph; 8 | const boxDomain = './icon/boxDomain.png' 9 | const center = './icon/center.png' 10 | const database = './icon/database.png' 11 | // const authorizate = './icon/authorizate.png' 12 | // const cluster = './icon/cluster.png' 13 | // const exchange = './icon/exchange.png' 14 | const elasticsearch = './icon/elasticsearch.png' 15 | const kibana = './icon/kibana.svg' 16 | const logstash = './icon/logstash.png' 17 | const KAFKA = './icon/KAFKA.png' 18 | const beats = './icon/beats.png' 19 | const redis = './icon/redis.png' 20 | 21 | export const toolbarItems = [ 22 | { 23 | id: 'boxDomain', 24 | idSeed: 1, 25 | icon: boxDomain, 26 | title: '域盒子', 27 | width: 60, 28 | height: 60, 29 | nodeType: 'square', 30 | dropAble: false, // 是否可以作为drop的对象 31 | style: { 32 | fillColor: '#FFFFFF', 33 | strokeColor: '#000000', 34 | strokeWidth: '1', 35 | shape: MxConstants.SHAPE_LABEL, 36 | align: MxConstants.ALIGN_TOP, 37 | verticalAlign: MxConstants.ALIGN_BOTTOM, 38 | imageAlign: MxConstants.ALIGN_CENTER, // 背景图的水平方向的定位 39 | imageVerticalAlign: MxConstants.ALIGN_TOP, // 背景图垂直方向的定位 40 | image: boxDomain 41 | } 42 | }, 43 | { 44 | id: 'center', 45 | idSeed: 1, 46 | icon: center, 47 | title: '中心', 48 | width: 60, 49 | height: 60, 50 | nodeType: 'square', 51 | dropAble: false, // 是否可以作为drop的对象 52 | style: { 53 | fillColor: '#FFFFFF', // 填充色 54 | strokeColor: '#000000', // 线条颜色 55 | strokeWidth: '1', // 线条粗细 56 | shape: MxConstants.SHAPE_LABEL, // 形状 57 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 58 | verticalAlign: MxConstants.ALIGN_BOTTOM, // 垂直方向对其方式 59 | imageAlign: MxConstants.ALIGN_CENTER, // 图形水平方向对其方式 60 | imageVerticalAlign: MxConstants.ALIGN_TOP, // 图形方向对其方式 61 | image: center // 图形 62 | } 63 | }, 64 | { 65 | id: 'database', 66 | idSeed: 1, 67 | icon: database, 68 | title: '数据库', 69 | width: 60, 70 | height: 60, 71 | nodeType: 'square', 72 | dropAble: false, // 是否可以作为drop的对象 73 | style: { 74 | fillColor: '#FFFFFF', // 填充色 75 | strokeColor: '#000000', // 线条颜色 76 | strokeWidth: '1', // 线条粗细 77 | shape: MxConstants.SHAPE_LABEL, // 形状 78 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 79 | verticalAlign: MxConstants.ALIGN_BOTTOM, // 垂直方向对其方式 80 | imageAlign: MxConstants.ALIGN_CENTER, // 图形水平方向对其方式 81 | imageVerticalAlign: MxConstants.ALIGN_TOP, // 图形方向对其方式 82 | image: database // 图形 83 | } 84 | }, 85 | // { 86 | // id: 'authorizate', 87 | // idSeed: 1, 88 | // icon: authorizate, 89 | // title: '认证', 90 | // width: 60, 91 | // height: 60, 92 | // nodeType: 'square', 93 | // dropAble: false, // 是否可以作为drop的对象 94 | // style: { 95 | // fillColor: '#FFFFFF', // 填充色 96 | // strokeColor: '#000000', // 线条颜色 97 | // strokeWidth: '1', // 线条粗细 98 | // shape: MxConstants.SHAPE_LABEL, // 形状 99 | // align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 100 | // verticalAlign: MxConstants.ALIGN_BOTTOM, // 垂直方向对其方式 101 | // imageAlign: MxConstants.ALIGN_CENTER, // 图形水平方向对其方式 102 | // imageVerticalAlign: MxConstants.ALIGN_TOP, // 图形方向对其方式 103 | // image: authorizate // 图形 104 | // } 105 | // }, 106 | // { 107 | // id: 'cluster', 108 | // idSeed: 1, 109 | // icon: cluster, 110 | // title: '集群', 111 | // width: 60, 112 | // height: 60, 113 | // nodeType: 'square', 114 | // dropAble: false, // 是否可以作为drop的对象 115 | // style: { 116 | // fillColor: '#FFFFFF', // 填充色 117 | // strokeColor: '#000000', // 线条颜色 118 | // strokeWidth: '1', // 线条粗细 119 | // shape: MxConstants.SHAPE_LABEL, // 形状 120 | // align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 121 | // verticalAlign: MxConstants.ALIGN_BOTTOM, // 垂直方向对其方式 122 | // imageAlign: MxConstants.ALIGN_CENTER, // 图形水平方向对其方式 123 | // imageVerticalAlign: MxConstants.ALIGN_TOP, // 图形方向对其方式 124 | // image: cluster // 图形 125 | // } 126 | // }, 127 | // { 128 | // id: 'exchange', 129 | // idSeed: 1, 130 | // icon: exchange, 131 | // title: '缓冲', 132 | // width: 60, 133 | // height: 60, 134 | // nodeType: 'square', 135 | // dropAble: false, // 是否可以作为drop的对象 136 | // style: { 137 | // fillColor: '#FFFFFF', // 填充色 138 | // strokeColor: '#000000', // 线条颜色 139 | // strokeWidth: '1', // 线条粗细 140 | // shape: MxConstants.SHAPE_LABEL, // 形状 141 | // align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 142 | // verticalAlign: MxConstants.ALIGN_BOTTOM, // 垂直方向对其方式 143 | // imageAlign: MxConstants.ALIGN_CENTER, // 图形水平方向对其方式 144 | // imageVerticalAlign: MxConstants.ALIGN_TOP, // 图形方向对其方式 145 | // image: exchange // 图形 146 | // }, 147 | // }, 148 | { 149 | id: 'elasticsearch', 150 | idSeed: 1, 151 | icon: elasticsearch, 152 | title: 'ElasticSearch', 153 | width: 140, 154 | height: 40, 155 | nodeType: 'rectangle', 156 | dropAble: false, // 是否可以作为drop的对象 157 | style: { 158 | fillColor: '#FFFFFF', // 填充色 159 | strokeColor: '#000000', // 线条颜色 160 | strokeWidth: '1', // 线条粗细 161 | shape: MxConstants.SHAPE_LABEL, // 形状 162 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 163 | verticalAlign: MxConstants.ALIGN_CENTER, // 垂直方向对其方式 164 | imageAlign: MxConstants.ALIGN_LEFT, // 图形水平方向对其方式 165 | imageVerticalAlign: MxConstants.ALIGN_CENTER, // 图形方向对其方式 166 | image: elasticsearch // 图形 167 | }, 168 | }, 169 | { 170 | id: 'kibana', 171 | idSeed: 1, 172 | icon: kibana, 173 | title: 'Kibana', 174 | width: 140, 175 | height: 40, 176 | nodeType: 'rectangle', 177 | dropAble: false, // 是否可以作为drop的对象 178 | style: { 179 | fillColor: '#FFFFFF', // 填充色 180 | strokeColor: '#000000', // 线条颜色 181 | strokeWidth: '1', // 线条粗细 182 | shape: MxConstants.SHAPE_LABEL, // 形状 183 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 184 | verticalAlign: MxConstants.ALIGN_CENTER, // 垂直方向对其方式 185 | imageAlign: MxConstants.ALIGN_LEFT, // 图形水平方向对其方式 186 | imageVerticalAlign: MxConstants.ALIGN_CENTER, // 图形方向对其方式 187 | image: kibana // 图形 188 | }, 189 | }, 190 | { 191 | id: 'logstash', 192 | idSeed: 1, 193 | icon: logstash, 194 | title: 'logstash', 195 | width: 140, 196 | height: 40, 197 | nodeType: 'rectangle', 198 | dropAble: false, // 是否可以作为drop的对象 199 | style: { 200 | fillColor: '#FFFFFF', // 填充色 201 | strokeColor: '#000000', // 线条颜色 202 | strokeWidth: '1', // 线条粗细 203 | shape: MxConstants.SHAPE_LABEL, // 形状 204 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 205 | verticalAlign: MxConstants.ALIGN_CENTER, // 垂直方向对其方式 206 | imageAlign: MxConstants.ALIGN_LEFT, // 图形水平方向对其方式 207 | imageVerticalAlign: MxConstants.ALIGN_CENTER, // 图形方向对其方式 208 | image: logstash // 图形 209 | }, 210 | }, 211 | { 212 | id: 'KAFKA', 213 | idSeed: 1, 214 | icon: KAFKA, 215 | title: 'KAFKA', 216 | width: 140, 217 | height: 40, 218 | nodeType: 'rectangle', 219 | dropAble: false, // 是否可以作为drop的对象 220 | style: { 221 | fillColor: '#FFFFFF', // 填充色 222 | strokeColor: '#000000', // 线条颜色 223 | strokeWidth: '1', // 线条粗细 224 | shape: MxConstants.SHAPE_LABEL, // 形状 225 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 226 | verticalAlign: MxConstants.ALIGN_CENTER, // 垂直方向对其方式 227 | imageAlign: MxConstants.ALIGN_LEFT, // 图形水平方向对其方式 228 | imageVerticalAlign: MxConstants.ALIGN_CENTER, // 图形方向对其方式 229 | image: KAFKA // 图形 230 | }, 231 | }, 232 | { 233 | id: 'beats', 234 | idSeed: 1, 235 | icon: beats, 236 | title: 'beats', 237 | width: 140, 238 | height: 40, 239 | nodeType: 'rectangle', 240 | dropAble: false, // 是否可以作为drop的对象 241 | style: { 242 | fillColor: '#FFFFFF', // 填充色 243 | strokeColor: '#000000', // 线条颜色 244 | strokeWidth: '1', // 线条粗细 245 | shape: MxConstants.SHAPE_LABEL, // 形状 246 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 247 | verticalAlign: MxConstants.ALIGN_CENTER, // 垂直方向对其方式 248 | imageAlign: MxConstants.ALIGN_LEFT, // 图形水平方向对其方式 249 | imageVerticalAlign: MxConstants.ALIGN_CENTER, // 图形方向对其方式 250 | image: beats // 图形 251 | }, 252 | }, 253 | { 254 | id: 'redis', 255 | idSeed: 1, 256 | icon: redis, 257 | title: 'redis', 258 | width: 140, 259 | height: 40, 260 | nodeType: 'rectangle', 261 | dropAble: false, // 是否可以作为drop的对象 262 | style: { 263 | fillColor: '#FFFFFF', // 填充色 264 | strokeColor: '#000000', // 线条颜色 265 | strokeWidth: '1', // 线条粗细 266 | shape: MxConstants.SHAPE_LABEL, // 形状 267 | align: MxConstants.ALIGN_CENTER, // 水平方向对其方式 268 | verticalAlign: MxConstants.ALIGN_CENTER, // 垂直方向对其方式 269 | imageAlign: MxConstants.ALIGN_LEFT, // 图形水平方向对其方式 270 | imageVerticalAlign: MxConstants.ALIGN_CENTER, // 图形方向对其方式 271 | image: redis // 图形 272 | }, 273 | }, 274 | // { 275 | // title: '容器', 276 | // width: 200, 277 | // height: 200, 278 | // dropAble: true,// 是否可以作为drop的对象 279 | // style: { 280 | // overflow: 'fill', 281 | // shape: 'swimlane', 282 | // html: '1', 283 | // swimlaneFillColor: '#B1EEEE', 284 | // fillColor: '#3c6379', 285 | // strokeColor: '#629EA0', 286 | // fontColor: '#000000' 287 | // }, 288 | // created (graph, cell, index) { 289 | // const deleteIconDom = document.querySelector(`.deleteIcon_${index}`) 290 | 291 | // if (deleteIconDom) { 292 | // deleteIconDom.addEventListener('click', () => { 293 | // graph.removeCells([cell]) 294 | // }) 295 | // } 296 | // }, 297 | // html: (index) => ` 298 | //
299 | // 容器 300 | // 301 | //
302 | // `.replace(/[\r\n]/g, '') 303 | // } 304 | ] 305 | 306 | -------------------------------------------------------------------------------- /src/graph/Graph.js: -------------------------------------------------------------------------------- 1 | import mxgraph from './index'; 2 | import _ from 'lodash'; 3 | 4 | const { 5 | mxGraph, 6 | mxVertexHandler, 7 | mxConstants, 8 | mxCellState, 9 | mxPerimeter, 10 | mxCellEditor, 11 | mxGraphHandler, 12 | mxEvent, 13 | mxEdgeHandler, 14 | mxShape, 15 | mxConnectionConstraint, 16 | mxPoint, 17 | mxEventObject, 18 | mxCodec, 19 | mxObjectCodec, 20 | mxUtils, 21 | mxImageExport, 22 | mxXmlCanvas2D, 23 | mxCodecRegistry, 24 | } = mxgraph; 25 | 26 | Object.assign(mxEvent, { 27 | EDGE_START_MOVE: 'edgeStartMove', 28 | VERTEX_START_MOVE: 'vertexStartMove', 29 | }); 30 | 31 | let pokeElementIdSeed = 0; 32 | 33 | // export class PokeElement { 34 | // constructor(element) { 35 | // this.id = pokeElementIdSeed; 36 | // pokeElementIdSeed++; 37 | // this.element = element; 38 | // this.normalType = ''; 39 | // } 40 | // } 41 | 42 | export class Graph extends mxGraph { 43 | static getStyleDict (cell) { 44 | return _.compact(cell.getStyle().split(';')) 45 | .reduce((acc, item) => { 46 | const [key, value] = item.split('='); 47 | acc[key] = value; 48 | return acc; 49 | }, {}); 50 | } 51 | 52 | static convertStyleToString (styleDict) { 53 | const style = Object.entries(styleDict) 54 | .map(([key, value]) => `${key}=${value}`) 55 | .join(';') 56 | .replace(/=undefined/g, ''); 57 | return `${style};`; 58 | } 59 | 60 | static getCellPosition (cell) { 61 | return _.pick(cell.getGeometry(), ['x', 'y']); 62 | } 63 | 64 | constructor(container) { 65 | super(container); 66 | this._init(); 67 | } 68 | 69 | _init () { 70 | this._setDefaultConfig(); 71 | this._configConstituent(); 72 | this._putVertexStyle(); 73 | this._setDefaultEdgeStyle(); 74 | this._setAnchors(); 75 | this._configCustomEvent(); 76 | // this._configCoder(); 77 | } 78 | 79 | _configConstituent () { 80 | // Redirects selection to parent 81 | this.selectCellForEvent = (...args) => { 82 | const [cell] = args; 83 | if (this.isPart(cell)) { 84 | args[0] = this.model.getParent(cell); 85 | mxGraph.prototype.selectCellForEvent.call(this, args); 86 | return; 87 | } 88 | 89 | mxGraph.prototype.selectCellForEvent.apply(this, args); 90 | }; 91 | 92 | /** 93 | * Redirects start drag to parent. 94 | */ 95 | const graphHandlerGetInitialCellForEvent = mxGraphHandler.prototype.getInitialCellForEvent; 96 | mxGraphHandler.prototype.getInitialCellForEvent = function getInitialCellForEvent (...args) { 97 | // this 是 mxGraphHandler 98 | let cell = graphHandlerGetInitialCellForEvent.apply(this, args); 99 | if (this.graph.isPart(cell)) { 100 | cell = this.graph.getModel().getParent(cell); 101 | } 102 | 103 | return cell; 104 | }; 105 | } 106 | 107 | _setDefaultConfig () { 108 | this.setConnectable(true); 109 | mxEvent.disableContextMenu(this.container); 110 | 111 | // 固定节点大小 112 | this.setCellsResizable(false); 113 | 114 | // 编辑时按回车键不换行,而是完成输入 115 | this.setEnterStopsCellEditing(true); 116 | // 编辑时按 escape 后完成输入 117 | mxCellEditor.prototype.escapeCancelsEditing = false; 118 | // 失焦时完成输入 119 | mxCellEditor.prototype.blurEnabled = true; 120 | 121 | // 禁止节点折叠 122 | this.foldingEnabled = false; 123 | // 文本包裹效果必须开启此配置 124 | this.setHtmlLabels(true); 125 | 126 | // 拖拽过程对齐线 127 | mxGraphHandler.prototype.guidesEnabled = true; 128 | 129 | // 禁止游离线条 130 | this.setDisconnectOnMove(false); 131 | this.setAllowDanglingEdges(false); 132 | mxGraph.prototype.isCellMovable = cell => !cell.edge; 133 | 134 | // 禁止调整线条弯曲度 135 | this.setCellsBendable(false); 136 | 137 | // 禁止从将label从线条上拖离 138 | mxGraph.prototype.edgeLabelsMovable = false; 139 | } 140 | 141 | _putVertexStyle () { 142 | // const normalTypeStyle = { 143 | // [mxConstants.STYLE_SHAPE]: mxConstants.SHAPE_IMAGE, 144 | // [mxConstants.STYLE_PERIMETER]: mxPerimeter.RectanglePerimeter, 145 | // }; 146 | // this.getStylesheet().putCellStyle('normalType', normalTypeStyle); 147 | 148 | // const nodeStyle = { 149 | // // 图片样式参考这个例子 150 | // // https://github.com/jinzhanye/mxgraph-demos/blob/master/src/06.image.html 151 | // [mxConstants.STYLE_SHAPE]: mxConstants.SHAPE_LABEL, 152 | // [mxConstants.STYLE_PERIMETER]: mxPerimeter.RectanglePerimeter, 153 | // [mxConstants.STYLE_ROUNDED]: true, 154 | // [mxConstants.STYLE_ARCSIZE]: 6, // 设置圆角程度 155 | 156 | // [mxConstants.STYLE_STROKECOLOR]: '#333333', 157 | // [mxConstants.STYLE_FONTCOLOR]: '#333333', 158 | // [mxConstants.STYLE_FILLCOLOR]: '#ffffff', 159 | // // 160 | // [mxConstants.STYLE_LABEL_BACKGROUNDCOLOR]: 'none', 161 | 162 | // [mxConstants.STYLE_ALIGN]: mxConstants.ALIGN_CENTER, 163 | // [mxConstants.STYLE_VERTICAL_ALIGN]: mxConstants.ALIGN_TOP, 164 | // [mxConstants.STYLE_IMAGE_ALIGN]: mxConstants.ALIGN_CENTER, 165 | // [mxConstants.STYLE_IMAGE_VERTICAL_ALIGN]: mxConstants.ALIGN_TOP, 166 | 167 | // [mxConstants.STYLE_IMAGE_WIDTH]: '72', 168 | // [mxConstants.STYLE_IMAGE_HEIGHT]: '72', 169 | // [mxConstants.STYLE_SPACING_TOP]: '100', 170 | // [mxConstants.STYLE_SPACING]: '8', 171 | // }; 172 | // this.getStylesheet().putCellStyle('node', nodeStyle); 173 | 174 | 175 | 176 | // 设置选中状态节点的边角为圆角,默认是直角 177 | const oldCreateSelectionShape = mxVertexHandler.prototype.createSelectionShape; 178 | mxVertexHandler.prototype.createSelectionShape = function createSelectionShape (...args) { 179 | const res = oldCreateSelectionShape.apply(this, args); 180 | res.isRounded = true; 181 | // style 属性来自 mxShape , mxRectangle 继承自 mxShape 182 | res.style = { 183 | arcSize: 6, 184 | }; 185 | return res; 186 | }; 187 | } 188 | 189 | _setDefaultEdgeStyle () { 190 | const style = this.getStylesheet().getDefaultEdgeStyle(); 191 | Object.assign(style, { 192 | [mxConstants.STYLE_ROUNDED]: true, // 设置线条拐弯处为圆角 193 | [mxConstants.STYLE_STROKEWIDTH]: '2', 194 | [mxConstants.STYLE_STROKECOLOR]: '#333333', 195 | [mxConstants.STYLE_EDGE]: mxConstants.EDGESTYLE_ORTHOGONAL, 196 | [mxConstants.STYLE_FONTCOLOR]: '#33333', 197 | [mxConstants.STYLE_LABEL_BACKGROUNDCOLOR]: '#ffa94d', 198 | }); 199 | // 设置拖拽线的过程出现折线,默认为直线 200 | this.connectionHandler.createEdgeState = () => { 201 | const edge = this.createEdge(); 202 | return new mxCellState(this.view, edge, this.getCellStyle(edge)); 203 | }; 204 | } 205 | 206 | _setAnchors () { 207 | // 禁止从节点中心拖拽出线条 208 | // this.connectionHandler.isConnectableCell = () => false; 209 | // mxEdgeHandler.prototype.isConnectableCell = () => false; 210 | 211 | // Overridden to define per-shape connection points 212 | mxGraph.prototype.getAllConnectionConstraints = (terminal) => { 213 | if (terminal != null && terminal.shape != null) { 214 | if (terminal.shape.stencil != null) { 215 | if (terminal.shape.stencil != null) { 216 | return terminal.shape.stencil.constraints; 217 | } 218 | } else if (terminal.shape.constraints != null) { 219 | return terminal.shape.constraints; 220 | } 221 | } 222 | 223 | return null; 224 | }; 225 | 226 | // Defines the default constraints for all shapes 227 | mxShape.prototype.constraints = [ 228 | new mxConnectionConstraint(new mxPoint(0, 0), true), 229 | new mxConnectionConstraint(new mxPoint(0, 1), true), 230 | new mxConnectionConstraint(new mxPoint(1, 0), true), 231 | new mxConnectionConstraint(new mxPoint(1, 1), true), 232 | new mxConnectionConstraint(new mxPoint(0.25, 0), true), 233 | new mxConnectionConstraint(new mxPoint(0.5, 0), true), 234 | new mxConnectionConstraint(new mxPoint(0.75, 0), true), 235 | new mxConnectionConstraint(new mxPoint(0, 0.25), true), 236 | new mxConnectionConstraint(new mxPoint(0, 0.5), true), 237 | new mxConnectionConstraint(new mxPoint(0, 0.75), true), 238 | new mxConnectionConstraint(new mxPoint(1, 0.25), true), 239 | new mxConnectionConstraint(new mxPoint(1, 0.5), true), 240 | new mxConnectionConstraint(new mxPoint(1, 0.75), true), 241 | new mxConnectionConstraint(new mxPoint(0.25, 1), true), 242 | new mxConnectionConstraint(new mxPoint(0.5, 1), true), 243 | new mxConnectionConstraint(new mxPoint(0.75, 1), true)]; 244 | } 245 | 246 | _configCustomEvent () { 247 | const graph = this; 248 | const oldStart = mxEdgeHandler.prototype.start; 249 | mxEdgeHandler.prototype.start = function start (...args) { 250 | oldStart.apply(this, args); 251 | graph.fireEvent(new mxEventObject(mxEvent.EDGE_START_MOVE, 252 | 'edge', this.state.cell, 253 | 'source', this.isSource, 254 | )); 255 | }; 256 | 257 | 258 | const oldCreatePreviewShape = mxGraphHandler.prototype.createPreviewShape; 259 | mxGraphHandler.prototype.createPreviewShape = function createPreviewShape (...args) { 260 | graph.fireEvent(new mxEventObject(mxEvent.VERTEX_START_MOVE)); 261 | return oldCreatePreviewShape.apply(this, args); 262 | }; 263 | } 264 | 265 | 266 | _configCoder () { 267 | const codec = new mxObjectCodec(new PokeElement()); 268 | 269 | codec.encode = function (enc, obj) { 270 | const node = enc.document.createElement('PokeElement'); 271 | mxUtils.setTextContent(node, JSON.stringify(obj)); 272 | 273 | return node; 274 | }; 275 | 276 | codec.decode = function (dec, node, into) { 277 | const obj = JSON.parse(mxUtils.getTextContent(node)); 278 | obj.constructor = PokeElement; 279 | 280 | return obj; 281 | }; 282 | 283 | mxCodecRegistry.register(codec); 284 | } 285 | 286 | getDom (cell) { 287 | const state = this.view.getState(cell); 288 | return state.shape.node; 289 | } 290 | 291 | setStyle (cell, key, value) { 292 | const styleDict = Graph.getStyleDict(cell); 293 | styleDict[key] = value; 294 | const style = Graph.convertStyleToString(styleDict); 295 | this.getModel().setStyle(cell, style); 296 | } 297 | 298 | isPart (cell) { 299 | const state = this.view.getState(cell); 300 | const style = (state != null) ? state.style : this.getCellStyle(cell); 301 | return style.constituent === 1; 302 | } 303 | 304 | deleteSubtree (cell) { 305 | const cells = []; 306 | this.traverse(cell, true, (vertex) => { 307 | cells.push(vertex); 308 | return true; 309 | }); 310 | this.removeCells(cells); 311 | } 312 | 313 | 314 | _restoreModel () { 315 | Object.values(this.getModel().cells) 316 | .forEach(cell => { 317 | if (cell.vertex && cell.data) { 318 | cell.data = JSON.parse(cell.data); 319 | } 320 | }); 321 | } 322 | 323 | // 将 data 变为字符串,否则还原时会报错 324 | _getExportModel () { 325 | const model = _.cloneDeep(this.getModel()); 326 | Object.values(model.cells) 327 | .forEach(cell => { 328 | if (cell.vertex && cell.data) { 329 | cell.data = JSON.stringify(cell.data); 330 | } 331 | }); 332 | return model; 333 | } 334 | 335 | importModelXML (xmlTxt) { 336 | this.getModel().beginUpdate(); 337 | try { 338 | const doc = mxUtils.parseXml(xmlTxt); 339 | const root = doc.documentElement; 340 | const dec = new mxCodec(root.ownerDocument); 341 | dec.decode(root, this.getModel()); 342 | } finally { 343 | this.getModel().endUpdate(); 344 | } 345 | this._restoreModel(); 346 | } 347 | 348 | exportModelXML () { 349 | const enc = new mxCodec(mxUtils.createXmlDocument()); 350 | const node = enc.encode(this._getExportModel()); 351 | return mxUtils.getPrettyXml(node); 352 | } 353 | 354 | exportPicXML () { 355 | const xmlDoc = mxUtils.createXmlDocument(); 356 | const root = xmlDoc.createElement('output'); 357 | xmlDoc.appendChild(root); 358 | 359 | const { scale } = this.view; 360 | // 这个项目画布边宽为0,可以自行进行调整 361 | const border = 0; 362 | 363 | const bounds = this.getGraphBounds(); 364 | const xmlCanvas = new mxXmlCanvas2D(root); 365 | xmlCanvas.translate( 366 | Math.floor((border / scale - bounds.x) / scale), 367 | Math.floor((border / scale - bounds.y) / scale), 368 | ); 369 | xmlCanvas.scale(1); 370 | 371 | const imgExport = new mxImageExport(); 372 | imgExport.drawState(this.getView().getState(this.model.root), xmlCanvas); 373 | 374 | const w = Math.ceil(bounds.width * scale / scale + 2 * border); 375 | const h = Math.ceil(bounds.height * scale / scale + 2 * border); 376 | 377 | const xml = mxUtils.getPrettyXml(root); 378 | 379 | return { 380 | xml, 381 | w, 382 | h, 383 | }; 384 | } 385 | } 386 | 387 | let graph = {}; 388 | 389 | export const destroyGraph = () => { 390 | graph.destroy(); 391 | graph = {}; 392 | }; 393 | 394 | export const genGraph = (container) => { 395 | graph = new Graph(container); 396 | return graph; 397 | }; 398 | 399 | export const getGraph = () => graph; -------------------------------------------------------------------------------- /public/data/data2.xml: -------------------------------------------------------------------------------- 1 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | -------------------------------------------------------------------------------- /src/views/customToolbar/component/styleSelect.vue: -------------------------------------------------------------------------------- 1 | 147 | 306 | --------------------------------------------------------------------------------