/
githubmirror
/
drawio
Обзор
Документация
Войти
/
githubmirror
/
drawio
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
src/main/webapp/shapes/mxFlowchart.js
85 строк
3 KB
David Benson
29.3.2 release
17 янв 2026, 21:42
17 янв 2026, 21:42
48b1813
Код
Авторство
О чём код?
/** * Copyright (c) 2006-2018, JGraph Holdings Ltd */ //********************************************************************************************************************************************************** // Document 2 //********************************************************************************************************************************************************** /** * Extends mxShape. */ function mxShapeFlowchartDocument2(bounds, fill, stroke, strokewidth) { mxShape.call(this); this.bounds = bounds; this.fill = fill; this.stroke = stroke; this.strokewidth = (strokewidth != null) ? strokewidth : 1; this.size = 0.5; }; /** * Extends mxShape. */ mxUtils.extend(mxShapeFlowchartDocument2, mxActor); mxShapeFlowchartDocument2.prototype.cst = {DOCUMENT2 : 'mxgraph.flowchart.document2'}; mxShapeFlowchartDocument2.prototype.customProperties = [ {name: 'size', dispName: 'Wave Size', type: 'float', min:0, max:1, defVal:0.25}, ]; /** * Function: paintVertexShape * * Paints the vertex shape. */ mxShapeFlowchartDocument2.prototype.paintVertexShape = function(c, x, y, w, h) { c.translate(x, y); var dy = h * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'size', this.size)))); var fy = 1.4; var r = 5; c.begin(); c.moveTo(w - r, 0); c.arcTo(r, r, 0, 0, 1, w, r); c.lineTo(w, h - dy / 2); c.quadTo(w * 3 / 4, h - dy * fy, w / 2, h - dy / 2); c.quadTo(w / 4, h - dy * (1 - fy), 0, h - dy / 2); c.lineTo(0, dy / 2); c.lineTo(0, r); c.arcTo(r, r, 0, 0, 1, r, 0); c.close(); c.fillAndStroke(); }; mxCellRenderer.registerShape(mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2, mxShapeFlowchartDocument2); mxShapeFlowchartDocument2.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), false), new mxConnectionConstraint(new mxPoint(0.5, 0), false), new mxConnectionConstraint(new mxPoint(0.75, 0), false), new mxConnectionConstraint(new mxPoint(0, 0.25), false), new mxConnectionConstraint(new mxPoint(0, 0.5), false), new mxConnectionConstraint(new mxPoint(0, 0.75), false), new mxConnectionConstraint(new mxPoint(1, 0.25), false), new mxConnectionConstraint(new mxPoint(1, 0.5), false), new mxConnectionConstraint(new mxPoint(1, 0.75), false)]; Graph.handleFactory[mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2] = function(state) { var handles = [Graph.createHandle(state, ['size'], function(bounds) { var size = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'size', this.size)))); return new mxPoint(bounds.x + 3 * bounds.width / 4, bounds.y + (1 - size) * bounds.height); }, function(bounds, pt) { this.state.style['size'] = Math.max(0, Math.min(1, (bounds.y + bounds.height - pt.y) / bounds.height)); })]; return handles; };