diff --git a/ChangeLog b/ChangeLog index 0cbaab9de..abbfaae38 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +13-APR-2017: 6.5.0 + +- Fixes extension for exported files with dots +- Fixes lost changes after create or open file in same window +- Fixes ignored default page size for Google Drive files +- Adds Alt+Shift+C for clear waypoints +- Adds toFront/Back context menu for multiple cells +- Adds arc size for copy/paste style +- Fixes rounded swimlane boundary cases +- Uses Cloudflare CDN for loading MathJax +- Adds clear waypoints for vertices with connections +- Adds error handling for saving macro in Confluence Cloud +- Fixes cloned start/end arrow when splitting edge +- Adds support for global shadow in PDF export +- Fixes special characters in branch names for GitHub client +- Fixes missing arc handle for unknown shapes +- Fixes hightlight size for arrows +- Uses mxGraph 3.7.2 + 06-APR-2017: 6.4.6 - Works around page counter loop condition in FF diff --git a/VERSION b/VERSION index b5edd8ee8..4be2c727a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.4.6 \ No newline at end of file +6.5.0 \ No newline at end of file diff --git a/etc/mxgraph/mxClient.js b/etc/mxgraph/mxClient.js index 302b77f1f..825740697 100644 --- a/etc/mxgraph/mxClient.js +++ b/etc/mxgraph/mxClient.js @@ -164,7 +164,7 @@ mxWindow.prototype.isVisible=function(){return null!=this.div?"none"!=this.div.s mxWindow.prototype.show=function(){this.div.style.display="";this.activate();var a=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_QUIRKS||"auto"!=a.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px");this.fireEvent(new mxEventObject(mxEvent.SHOW))};mxWindow.prototype.hide=function(){this.div.style.display="none";this.fireEvent(new mxEventObject(mxEvent.HIDE))}; mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY));null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null);this.contentWrapper=this.content=this.title=null};function mxForm(a){this.table=document.createElement("table");this.table.className=a;this.body=document.createElement("tbody");this.table.appendChild(this.body)}mxForm.prototype.table=null;mxForm.prototype.body=!1;mxForm.prototype.getTable=function(){return this.table}; mxForm.prototype.addButtons=function(a,b){var c=document.createElement("tr"),d=document.createElement("td");c.appendChild(d);var d=document.createElement("td"),e=document.createElement("button");mxUtils.write(e,mxResources.get("ok")||"OK");d.appendChild(e);mxEvent.addListener(e,"click",function(){a()});e=document.createElement("button");mxUtils.write(e,mxResources.get("cancel")||"Cancel");d.appendChild(e);mxEvent.addListener(e,"click",function(){b()});c.appendChild(d);this.body.appendChild(c)}; -mxForm.prototype.addText=function(a,b){var c=document.createElement("input");c.setAttribute("type","text");c.value=b;return this.addField(a,c)};mxForm.prototype.addCheckbox=function(a,b){var c=document.createElement("input");c.setAttribute("type","checkbox");this.addField(a,c);b&&(c.checked=!0);return c};mxForm.prototype.addTextarea=function(a,b,c){var d=document.createElement("textarea");mxClient.IS_NS&&c--;d.setAttribute("rows",c||2);d.value=b;return this.addField(a,d)}; +mxForm.prototype.addText=function(a,b,c){var d=document.createElement("input");d.setAttribute("type",c||"text");d.value=b;return this.addField(a,d)};mxForm.prototype.addCheckbox=function(a,b){var c=document.createElement("input");c.setAttribute("type","checkbox");this.addField(a,c);b&&(c.checked=!0);return c};mxForm.prototype.addTextarea=function(a,b,c){var d=document.createElement("textarea");mxClient.IS_NS&&c--;d.setAttribute("rows",c||2);d.value=b;return this.addField(a,d)}; mxForm.prototype.addCombo=function(a,b,c){var d=document.createElement("select");null!=c&&d.setAttribute("size",c);b&&d.setAttribute("multiple","true");return this.addField(a,d)};mxForm.prototype.addOption=function(a,b,c,d){var e=document.createElement("option");mxUtils.writeln(e,b);e.setAttribute("value",c);d&&e.setAttribute("selected",d);a.appendChild(e)}; mxForm.prototype.addField=function(a,b){var c=document.createElement("tr"),d=document.createElement("td");mxUtils.write(d,a);c.appendChild(d);d=document.createElement("td");d.appendChild(b);c.appendChild(d);this.body.appendChild(c);return b};function mxImage(a,b,c){this.src=a;this.width=b;this.height=c}mxImage.prototype.src=null;mxImage.prototype.width=null;mxImage.prototype.height=null; function mxDivResizer(a,b){if("div"==a.nodeName.toLowerCase()){null==b&&(b=window);this.div=a;var c=mxUtils.getCurrentStyle(a);null!=c&&(this.resizeWidth="auto"==c.width,this.resizeHeight="auto"==c.height);mxEvent.addListener(b,"resize",mxUtils.bind(this,function(a){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)}));this.resize()}}mxDivResizer.prototype.resizeWidth=!0;mxDivResizer.prototype.resizeHeight=!0;mxDivResizer.prototype.handlingResize=!1; @@ -430,11 +430,10 @@ mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b b[mxUtils.mod(g+2,b.length)],g++;m=k.x-l.x;k=k.y-l.y;n=Math.max(1,Math.sqrt(m*m+k*k));m=l.x+m*Math.min(d,n/2)/n;k=l.y+k*Math.min(d,n/2)/n;a.quadTo(l.x,l.y,m,k);l=new mxPoint(m,k)}k=l;g++}e?a.close():a.lineTo(f.x,f.y)}; mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass}; mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY, -this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.arrowStrokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style, -mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style, -mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed= -1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)}; -mxShape.prototype.getCursor=function(){return this.cursor}; +this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style, +mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV, +0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style, +mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)};mxShape.prototype.getCursor=function(){return this.cursor}; mxShape.prototype.updateBoundingBox=function(){if(this.useSvgBoundingBox&&null!=this.node&&null!=this.node.ownerSVGElement)try{var a=this.node.getBBox();if(0=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(), a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),f styleMap = edgeShape .getStyleFromEdgeShape(parentHeight); //Insert new edge and set constraints. Object edge; + List points = edgeShape.getRoutingPoints(parentHeight, origBeginXY, edgeShape.getRotation()); double rotation = edgeShape.getRotation(); if (rotation != 0) { @@ -977,10 +922,13 @@ protected ShapePageId addConnectedEdge(mxGraph graph, mxVsdxConnect connect, Int { edge = graph.insertEdge(parent, null, edgeShape.getTextLabel(), source, target, mxVsdxUtils.getStyleString(styleMap, "=")); + + mxPoint lblOffset = edgeShape.getLblEdgeOffset(beginXY, endXY, points); + ((mxCell)edge).getGeometry().setOffset(lblOffset); } mxGeometry edgeGeometry = graph.getModel().getGeometry(edge); - edgeGeometry.setPoints(edgeShape.getRoutingPoints(parentHeight, beginXY, edgeShape.getRotation())); + edgeGeometry.setPoints(points); if (fromConstraint != null) { @@ -1046,6 +994,7 @@ protected Object addUnconnectedEdge(mxGraph graph, Object parent, VsdxShape edge } mxPoint beginXY = edgeShape.getStartXY(parentHeight); + mxPoint origBeginXY = new mxPoint(beginXY); mxPoint endXY = edgeShape.getEndXY(parentHeight); //Define style of the edge @@ -1055,6 +1004,7 @@ protected Object addUnconnectedEdge(mxGraph graph, Object parent, VsdxShape edge //Insert new edge and set constraints. Object edge; + List points = edgeShape.getRoutingPoints(parentHeight, origBeginXY, edgeShape.getRotation()); double rotation = edgeShape.getRotation(); if (rotation != 0) { @@ -1075,9 +1025,12 @@ protected Object addUnconnectedEdge(mxGraph graph, Object parent, VsdxShape edge else { edge = graph.insertEdge(parent, null, edgeShape.getTextLabel(), null, null, mxVsdxUtils.getStyleString(styleMap, "=")); + + mxPoint lblOffset = edgeShape.getLblEdgeOffset(beginXY, endXY, points); + ((mxCell)edge).getGeometry().setOffset(lblOffset); } mxGeometry edgeGeometry = graph.getModel().getGeometry(edge); - edgeGeometry.setPoints(edgeShape.getRoutingPoints(parentHeight, beginXY, edgeShape.getRotation())); + edgeGeometry.setPoints(points); edgeGeometry.setTerminalPoint(beginXY, true); edgeGeometry.setTerminalPoint(endXY, false); diff --git a/src/com/mxgraph/io/vsdx/Shape.java b/src/com/mxgraph/io/vsdx/Shape.java index fea016dfc..48dc523e5 100644 --- a/src/com/mxgraph/io/vsdx/Shape.java +++ b/src/com/mxgraph/io/vsdx/Shape.java @@ -5,10 +5,8 @@ package com.mxgraph.io.vsdx; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; -import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -295,707 +293,12 @@ else if (n.equals("Field")) */ protected String parseGeom() { - if (!hasGeom()) + if (!hasGeomList()) { return ""; } - String parsedGeom = ""; - double h = this.getHeight(); - double w = this.getWidth(); - double x = 0, y = 0; - - for (int i = 0; i < geom.size(); i++) - { - boolean isFill = true; - boolean isLine = true; - boolean isShow = true; - boolean isSnap = true; - String geomElemParsed = ""; - - Node child = geom.get(i).getFirstChild(); - - while (child != null) - { - if (child instanceof Element) - { - Element childElem = (Element) child; - String childName = childElem.getNodeName(); - String value = null; - - if (childName.equals("Cell")) - { - childName = childElem.getAttribute("N"); - value = childElem.getAttribute("V"); - } - else if (childName.equals("Row")) - { - childName = childElem.getAttribute("T"); - } - else - { - value = childElem.getTextContent(); - } - - switch (childName) - { - case "NoFill": - if (value != null && value.equals("1")) - { - isFill = false; - } - break; - case "NoLine": - if (value != null && value.equals("1")) - { - isLine = false; - } - break; - case "NoShow": - if (value != null && value.equals("1")) - { - isShow = false; - } - break; - case "NoSnap": - if (value != null && value.equals("1")) - { - isSnap = false; - } - break; - case "MoveTo": - Map children = getChildValues(childElem, null); - String xValue = children.get("X"); - String yValue = children.get("Y"); - - if (xValue != null && yValue != null) - { - x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - } - - x = x * 100.0 / w; - y = y * 100.0 / h; - y = 100 - y; - - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - - this.lastX = x; - this.lastY = y; - this.lastMoveX = x; - this.lastMoveY = y; - - geomElemParsed += "<" + "move" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; - break; - case "RelMoveTo": - children = getChildValues(childElem, null); - xValue = children.get("X"); - yValue = children.get("Y"); - - if (xValue != null && yValue != null) - { - x = Double.parseDouble(xValue) * 100; - y = 100 - Double.parseDouble(yValue) * 100; - } - - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - - this.lastX = x; - this.lastY = y; - this.lastMoveX = x; - this.lastMoveY = y; - - geomElemParsed += "<" + "move" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; - break; - case "LineTo": - children = getChildValues(childElem, null); - xValue = children.get("X"); - yValue = children.get("Y"); - - if (xValue != null && yValue != null) - { - x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - } - - x = x * 100.0 / w; - y = y * 100.0 / h; - y = 100 - y; - - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - - this.lastX = x; - this.lastY = y; - - geomElemParsed += "<" + "line" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; - break; - case "RelLineTo": - children = getChildValues(childElem, null); - xValue = children.get("X"); - yValue = children.get("Y"); - - if (xValue != null && yValue != null) - { - x = Double.parseDouble(xValue) * 100; - y = 100 - Double.parseDouble(yValue) * 100; - } - - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - - this.lastX = x; - this.lastY = y; - - geomElemParsed += "<" + "line" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; - break; - case "NURBSTo": - geomElemParsed += nurbsPath(childElem, "curve"); - break; - case "ArcTo": - geomElemParsed += arcPath(childElem, "arc"); - break; - case "InfiniteLine": - //xyElem(childElem, "line"); - break; - case "Ellipse": - geomElemParsed += ellipsePath(childElem, "ellipse"); - break; - case "EllipticalArcTo": - geomElemParsed += ellArcPath(childElem, "arc"); - break; - case "SplineStart": - geomElemParsed += splineStartPath(childElem, "splineStart"); - break; - case "SplineKnot": - geomElemParsed += splinePath(childElem, "splineKnot"); - break; - case "PolylineTo": - geomElemParsed += polyPath(childElem, "poly"); - break; - default: - this.styleDebug("ERROR: geom type not understood - " + childName); - break; - - } - } - - child = child.getNextSibling(); - } - - if (isShow && !geomElemParsed.equals("")) - { - geomElemParsed += ""; - - if (isLine && isFill) - { - geomElemParsed += ""; - } - else if (isFill) - { - geomElemParsed += ""; - } - else if (isLine) - { - geomElemParsed += ""; - } - - parsedGeom += "" + geomElemParsed; - } - } - - if (parsedGeom.equals("")) - { - return ""; - } - - //System.out.println(parsedGeom); - - return "" + parsedGeom + ""; - } - - protected String arcPath(Element arcElem, String command) - { - Map children = getChildValues(arcElem, null); - String xValue = children.get("X"); - String yValue = children.get("Y"); - String aValue = children.get("A"); - - if (xValue != null && yValue != null && aValue != null) - { - double h = this.getHeight(); - double w = this.getWidth(); - double x0 = Math.round(this.lastX * w) / 100; - double y0 = Math.round(this.lastY * h) / 100; - double x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - - double y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - y = h - y; - - double a = Double.parseDouble(aValue) * mxVsdxUtils.conversionFactor; - - double dx = Math.abs(x - x0); - double dy = Math.abs(y - y0); - - double rx = (a * 0.5) + (dx * dx + dy * dy) / (8.0 * a); - double ry = rx; - double r0 = Math.abs(rx); - - rx = rx * 100 / w; - ry = ry * 100 / h; - x = x * 100 / w; - y = y * 100 / h; - rx = Math.round(rx * 100.0) / 100.0; - ry = Math.round(ry * 100.0) / 100.0; - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - - a = Math.round(a * 100.0) / 100.0; - rx = Math.abs(rx); - ry = Math.abs(ry); - - //determine sweep and large-arc flag - String sf = (a < 0) ? "1" : "0"; - String laf = (r0 < Math.abs(a)) ? "1" : "0"; - - if (debug != null) - { - debug.drawLine(x0, y0, x, y, ""); - } - - this.lastX = x; - this.lastY = y; - - return "<" + command + - " rx=\"" + String.valueOf(rx) + - "\" ry=\"" + String.valueOf(ry) + - "\" x=\"" + String.valueOf(x) + - "\" y=\"" + String.valueOf(y) + - "\" x-axis-rotation=\"0" + - "\" large-arc-flag=\"" + laf + - "\" sweep-flag=\"" + sf + - "\"/>"; - } - - return ""; - } - - protected String ellipsePath(Element ellipseElem, String command) - { - Map children = getChildValues(ellipseElem, null); - String xValue = children.get("X"); - String yValue = children.get("Y"); - String aValue = children.get("A"); - String bValue = children.get("B"); - String cValue = children.get("C"); - String dValue = children.get("D"); - - if (xValue != null && yValue != null && aValue != null && bValue != null && cValue != null && dValue != null) - { - double h = this.getHeight(); - double w = this.getWidth(); - double x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - double y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - y = h - y; - double a = Double.parseDouble(aValue) * mxVsdxUtils.conversionFactor; - double b = Double.parseDouble(bValue) * mxVsdxUtils.conversionFactor; - b = h - b; - double c = Double.parseDouble(cValue) * mxVsdxUtils.conversionFactor; - double d = Double.parseDouble(dValue) * mxVsdxUtils.conversionFactor; - d = h - d; - - double dx1 = Math.abs(a - x); - double dy1 = Math.abs(b - y); - double r1 = Math.sqrt(dx1 * dx1 + dy1 * dy1); - - double dx2 = Math.abs(c - x); - double dy2 = Math.abs(d - y); - double r2 = Math.sqrt(dx2 * dx2 + dy2 * dy2); - double newX = (x - r1) * 100 / w; - double newY = (y - r2) * 100 / h; - double newW = 2 * r1 * 100 / w; - double newH = 2 * r2 * 100 / h; - newH = Math.round(newH * 100.0) / 100.0; - newW = Math.round(newW * 100.0) / 100.0; - newX = Math.round(newX * 100.0) / 100.0; - newY = Math.round(newY * 100.0) / 100.0; - - return "<" + command + - " x=\"" + String.valueOf(newX) + - "\" y=\"" + String.valueOf(newY) + - "\" w=\"" + String.valueOf(newW) + - "\" h=\"" + String.valueOf(newH) + - "\"/>"; - } - - return ""; - } - - protected String ellArcPath(Element ellArcElem, String command) - { - Map children = getChildValues(ellArcElem, null); - String xValue = children.get("X"); - String yValue = children.get("Y"); - String aValue = children.get("A"); - String bValue = children.get("B"); - String cValue = children.get("C"); - String dValue = children.get("D"); - - if (xValue != null && yValue != null && aValue != null && bValue != null && cValue != null && dValue != null) - { - double h = this.getHeight(); - double w = this.getWidth(); - double x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - double y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - y = h - y; - double a = Double.parseDouble(aValue) * mxVsdxUtils.conversionFactor; - double b = Double.parseDouble(bValue) * mxVsdxUtils.conversionFactor; - double c = Double.parseDouble(cValue); - double d = Double.parseDouble(dValue); - - x = x * 100.0 / w; - y = y * 100.0 / h; - - double x1 = this.lastX * w / 100.0; - double y1 = this.lastY * h / 100.0; - - double x2 = x * w / 100.0; - double y2 = y * h / 100.0; - - double x3 = a; - double y3 = h - b; - - double ang = -c; - - double p1x = Math.sqrt(x1 * x1 + y1 * y1) * Math.cos(Math.atan2(y1, x1) - ang); - double p1y = Math.sqrt(x1 * x1 + y1 * y1) * Math.sin(Math.atan2(y1, x1) - ang); - - double p2x = Math.sqrt(x2 * x2 + y2 * y2) * Math.cos(Math.atan2(y2, x2) - ang); - double p2y = Math.sqrt(x2 * x2 + y2 * y2) * Math.sin(Math.atan2(y2, x2) - ang); - - double p3x = Math.sqrt(x3 * x3 + y3 * y3) * Math.cos(Math.atan2(y3, x3) - ang); - double p3y = Math.sqrt(x3 * x3 + y3 * y3) * Math.sin(Math.atan2(y3, x3) - ang); - - double p0x = ((p1x-p2x)*(p1x+p2x)*(p2y-p3y)-(p2x-p3x)*(p2x+p3x)*(p1y-p2y)+d*d*(p1y-p2y)*(p2y-p3y)*(p1y-p3y))/(2*((p1x-p2x)*(p2y-p3y)-(p2x-p3x)*(p1y-p2y))); - double p0y = ((p1x-p2x)*(p2x-p3x)*(p1x-p3x)/(d*d)+(p2x-p3x)*(p1y-p2y)*(p1y+p2y)-(p1x-p2x)*(p2y-p3y)*(p2y+p3y))/(2*((p2x-p3x)*(p1y-p2y)-(p1x-p2x)*(p2y-p3y))); - - double newX = Math.sqrt(p0x * p0x + p0y * p0y) * Math.cos(Math.atan2(p0y, p0x) + ang); - double newY = Math.sqrt(p0x * p0x + p0y * p0y) * Math.sin(Math.atan2(p0y, p0x) + ang); - - newX = newX * w / 100.0; - newY = newY * h / 100.0; - - double dx = p1x - p0x; - double dy = p1y - p0y; - double rx = Math.sqrt(dx * dx + dy * dy * d * d); - double ry = rx / d; - double rot = Math.toDegrees(ang); - - rx = rx * 100.0 / w; - ry = ry * 100.0 / h; - - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - rx = Math.round(rx * 100.0) / 100.0; - ry = Math.round(ry * 100.0) / 100.0; - rot = Math.round(rot * 100.0) / 100.0; - - //determine sweep - //TODO fix rare error (file "1 Supported Forms" shape "storeddata" on page 5) - double sweep = (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1); - String sf = (sweep > 0) ? "0" : "1"; - - //determine large arc flag - String laf = "0"; - - if (mxVsdxUtils.isInsideTriangle(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) && - isReflexAngle(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y)) - { - laf = "1"; - } - - if (debug != null) - { - debug.drawRect(p0x, p0y, "P0"); - debug.drawRect(p1x, p1y, "P1"); - debug.drawRect(p2x, p2y, "P2"); - debug.drawRect(p3x, p3y, "P3"); - debug.drawRect(newX, newY, "X"); - debug.drawRect(x3, y3, "CP"); - debug.drawLine(x1, y1, x2, y2, ""); - } - - this.lastX = x; - this.lastY = y; - - return "<" + command + - " rx=\"" + String.valueOf(rx) + - "\" ry=\"" + String.valueOf(ry) + - "\" x=\"" + String.valueOf(x) + - "\" y=\"" + String.valueOf(y) + - "\" x-axis-rotation=\"" + String.valueOf(rot) + - "\" large-arc-flag=\"" + laf + - "\" sweep-flag=\"" + sf + - "\"/>"; - } - - return ""; - } - - /** - * @param x0 y0 center point of ellipse containing the arc - * @param x1 y1 starting point of the arc - * @param x2 y2 endpoint of the arc - * @param x3 y3 control point - * @return true if the start to end angle that contains the control point is a reflex angle - */ - private boolean isReflexAngle(double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3) - { - x1 = x1 - x0; - y1 = y1 - y0; - x2 = x2 - x0; - y2 = y2 - y0; - x2 = x3 - x0; - y3 = y3 - y0; - x0 = 0; - y0 = 0; - - double aStart = Math.toDegrees(Math.atan2(y1, x1) - Math.atan2(y0, x0)); - double aEnd = Math.toDegrees(Math.atan2(y2, x2) - Math.atan2(y0, x0)); - double aCP = Math.toDegrees(Math.atan2(y3, x3) - Math.atan2(y0, x0)); - - aStart = (aStart - aCP) % 360; - aEnd = (aEnd - aCP) % 360; - - if (aStart > 180) - { - aStart = aStart - 360; - } - else if (aStart < -180) - { - aStart = aStart + 360; - } - - if (aEnd > 180) - { - aEnd = aEnd - 360; - } - else if (aEnd < -180) - { - aEnd = aEnd + 360; - } - - if ((aStart > 0 && aEnd < 0) || (aStart < 0 && aEnd > 0)) - { - if (Math.abs(aStart - aEnd) > 180) - { - return true; - } - } - - return false; - } - - protected String polyPath(Element polyElem, String command) - { - Map nodeValues = new HashMap(); - nodeValues.put("A", "F"); - Map children = getChildValues(polyElem, nodeValues); - String xValue = children.get("X"); - String yValue = children.get("Y"); - String aValue = children.get("A"); - String result = ""; - - if (xValue != null && yValue != null && aValue != null) - { - double h = this.getHeight(); - double w = this.getWidth(); - double x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - double y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - x = x * 100.0 / w; - y = y * 100.0 / h; - y = 100 - y; - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - - aValue = aValue.replaceAll("\\s","").toLowerCase().replaceAll("polyline\\(","").replaceAll("\\)", ""); - - LinkedList polyEntriesList = new LinkedList(Arrays.asList(aValue.split(","))); - - polyEntriesList.remove(0); - polyEntriesList.remove(0); - double currX = 0; - double currY = 0; - - while (polyEntriesList.size() > 0) - { - currX = Double.valueOf(polyEntriesList.remove(0)) * mxVsdxUtils.conversionFactor; - currY = Double.valueOf(polyEntriesList.remove(0)) * mxVsdxUtils.conversionFactor; - currY = 100 - currY; - - currX = Math.round(currX * 100.0) / 100.0; - currY = Math.round(currY * 100.0) / 100.0; - - this.lastX = currX; - this.lastY = currY; - - result += ""; - } - - if (this.lastMoveX == x && this.lastMoveY == y) - { - result += ""; - } - } - - return result; - } - - protected String splineStartPath(Element splineElem, String command) - { - Map children = getChildValues(splineElem, null); - String xValue = children.get("X"); - String yValue = children.get("Y"); - String aValue = children.get("A"); - String bValue = children.get("B"); - String cValue = children.get("C"); - String dValue = children.get("D"); - String result = ""; - - if (xValue != null && yValue != null && aValue != null && bValue != null && cValue != null && dValue != null) - { - double h = this.getHeight(); - double w = this.getWidth(); - double x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - double y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - //double a = Double.parseDouble(aValue); - //double b = Double.parseDouble(bValue); - double c = Double.parseDouble(cValue); - int d = Integer.parseInt(dValue); - - //double firstKnot = b; - //double secondKnot = a; - double lastKnot = c; - this.lastKnot = lastKnot; - int degree = d; -// x = x * 100.0 / w; -// y = y * 100.0 / h; - y = 100 - y; - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - lastKnot = Math.round(lastKnot * 100.0) / 100.0; - double x0 = this.lastX * w / 100.0; - double y0 = this.lastY * h / 100.0; - - result = " children = getChildValues(splineElem, null); - String xValue = children.get("X"); - String yValue = children.get("Y"); - String aValue = children.get("A"); - String result = ""; - - if (xValue != null && yValue != null && aValue != null) - { - //double h = this.getHeight(); - //double w = this.getWidth(); - double x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - double y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - double a = Double.parseDouble(aValue); - - double knot = a; -// x = x * 100.0 / w; -// y = y * 100.0 / h; - y = 100 - y; - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - knot = Math.round(knot * 100.0) / 100.0; - - - if (debug != null) - { - debug.drawRect(x, y, Double.toString(knot)); - debug.drawLine(this.lastX, this.lastY, x, y, ""); - } - - this.lastX = x; - this.lastY = y; - } - - return result; - } - - protected String nurbsPath(Element nurbsElem, String command) - { - Map children = getChildValues(nurbsElem, null); - String xValue = children.get("X"); - String yValue = children.get("Y"); - String eValue = children.get("E"); - String result = ""; - - if (xValue != null && yValue != null && eValue != null) - { - double h = this.getHeight(); - double w = this.getWidth(); - double x = Double.parseDouble(xValue) * mxVsdxUtils.conversionFactor; - double y = Double.parseDouble(yValue) * mxVsdxUtils.conversionFactor; - eValue = eValue.replace("NURBS(", ""); - eValue = eValue.replace(")", ""); - - List nurbsValues = Arrays.asList(eValue.split("\\s*,\\s*")); - - if (nurbsValues.size() >= 10) - { - double x1 = Double.parseDouble(nurbsValues.get(4)) * 100.0; - double y1 = 100 - Double.parseDouble(nurbsValues.get(5)) * 100.0; - double x2 = Double.parseDouble(nurbsValues.get(8)) * 100.0; - double y2 = 100 - Double.parseDouble(nurbsValues.get(9)) * 100.0; - - y = y * 100.0 / h; - x = x * 100.0 / w; - y = 100 - y; - x = Math.round(x * 100.0) / 100.0; - y = Math.round(y * 100.0) / 100.0; - x1 = Math.round(x1 * 100.0) / 100.0; - y1 = Math.round(y1 * 100.0) / 100.0; - x2 = Math.round(x2 * 100.0) / 100.0; - y2 = Math.round(y2 * 100.0) / 100.0; - - if (debug != null) - { - debug.drawRect(x, y, ""); - debug.drawLine(this.lastX, this.lastY, x, y, ""); - } - - this.lastX = x; - this.lastY = y; - - result += ""; - } - } - - return result; + return geomList.getShapeXML(this); } /** @@ -1156,14 +459,17 @@ else if (node.getNodeName().equals("#text")) // edges in the center // if (!masterShapeOnly || !text.equals("N")) // { - text = textToList(text, pp); // It's HTML text, so escape it. text = text.replaceAll("&", "&") .replaceAll("\"", """) .replaceAll("'", "′") .replaceAll("<", "<") - .replaceAll(">", ">") - .replaceAll("\n", "
"); + .replaceAll(">", ">"); + + text = textToList(text, pp); + + text = text.replaceAll("\n", "
"); + ret += getTextCharFormated(text); // } } @@ -1594,4 +900,44 @@ public mxVsdxGeometryList getGeomList() { return geomList; } + + public double getLastX() { + return lastX; + } + + public double getLastY() { + return lastY; + } + + public double getLastMoveX() { + return lastMoveX; + } + + public double getLastMoveY() { + return lastMoveY; + } + + public double getLastKnot() { + return lastKnot; + } + + public void setLastX(double lastX) { + this.lastX = lastX; + } + + public void setLastY(double lastY) { + this.lastY = lastY; + } + + public void setLastMoveX(double lastMoveX) { + this.lastMoveX = lastMoveX; + } + + public void setLastMoveY(double lastMoveY) { + this.lastMoveY = lastMoveY; + } + + public void setLastKnot(double lastKnot) { + this.lastKnot = lastKnot; + } } diff --git a/src/com/mxgraph/io/vsdx/VsdxShape.java b/src/com/mxgraph/io/vsdx/VsdxShape.java index 4be09f206..53ec8be7b 100644 --- a/src/com/mxgraph/io/vsdx/VsdxShape.java +++ b/src/com/mxgraph/io/vsdx/VsdxShape.java @@ -46,6 +46,8 @@ */ public class VsdxShape extends Shape { + private static final String ARROW_NO_FILL_MARKER = "0"; + /** * Number of d.p. to round non-integers to */ @@ -119,11 +121,62 @@ public class VsdxShape extends Shape arrowTypes = new HashMap(); arrowTypes.put(0, mxConstants.NONE); arrowTypes.put(1, mxConstants.ARROW_OPEN); + arrowTypes.put(2, "blockThin"); + arrowTypes.put(3, mxConstants.ARROW_OPEN); arrowTypes.put(4, mxConstants.ARROW_BLOCK); arrowTypes.put(5, mxConstants.ARROW_CLASSIC); arrowTypes.put(10, mxConstants.ARROW_OVAL); arrowTypes.put(13, mxConstants.ARROW_BLOCK); - + + arrowTypes.put(14, ARROW_NO_FILL_MARKER + mxConstants.ARROW_BLOCK); + arrowTypes.put(17, ARROW_NO_FILL_MARKER + mxConstants.ARROW_CLASSIC); + arrowTypes.put(20, ARROW_NO_FILL_MARKER + mxConstants.ARROW_OVAL); + arrowTypes.put(22, ARROW_NO_FILL_MARKER + "diamond"); + + arrowTypes.put(23, "dash"); + arrowTypes.put(24, "ERone"); + arrowTypes.put(25, "ERmandOne"); + arrowTypes.put(27, "ERmany"); + arrowTypes.put(28, "ERoneToMany"); + arrowTypes.put(29, "ERzeroToMany"); + arrowTypes.put(30, "ERzeroToOne"); + + //approximations + arrowTypes.put(6, mxConstants.ARROW_BLOCK); + arrowTypes.put(7, mxConstants.ARROW_OPEN); + arrowTypes.put(8, mxConstants.ARROW_CLASSIC); + + arrowTypes.put(9, "openAsync"); + arrowTypes.put(11, "diamond"); + + arrowTypes.put(12, mxConstants.ARROW_OPEN); + + arrowTypes.put(15, ARROW_NO_FILL_MARKER + mxConstants.ARROW_BLOCK); + arrowTypes.put(16, ARROW_NO_FILL_MARKER + mxConstants.ARROW_BLOCK); + arrowTypes.put(18, ARROW_NO_FILL_MARKER + mxConstants.ARROW_BLOCK); + arrowTypes.put(19, ARROW_NO_FILL_MARKER + mxConstants.ARROW_CLASSIC); + arrowTypes.put(21, ARROW_NO_FILL_MARKER + "diamond"); + arrowTypes.put(26, "ERmandOne"); + + arrowTypes.put(31, ARROW_NO_FILL_MARKER + mxConstants.ARROW_OVAL); + arrowTypes.put(32, ARROW_NO_FILL_MARKER + mxConstants.ARROW_OVAL); + arrowTypes.put(33, ARROW_NO_FILL_MARKER + mxConstants.ARROW_OVAL); + arrowTypes.put(34, ARROW_NO_FILL_MARKER + mxConstants.ARROW_OVAL); + + arrowTypes.put(35, mxConstants.ARROW_OVAL); + arrowTypes.put(36, mxConstants.ARROW_OVAL); + arrowTypes.put(37, mxConstants.ARROW_OVAL); + arrowTypes.put(38, mxConstants.ARROW_OVAL); + + arrowTypes.put(39, mxConstants.ARROW_BLOCK); + arrowTypes.put(40, ARROW_NO_FILL_MARKER + mxConstants.ARROW_BLOCK); + + arrowTypes.put(41, ARROW_NO_FILL_MARKER + mxConstants.ARROW_OVAL); + arrowTypes.put(42, mxConstants.ARROW_OVAL); + + arrowTypes.put(43, mxConstants.ARROW_OPEN); + arrowTypes.put(44, mxConstants.ARROW_OPEN); + arrowTypes.put(45, mxConstants.ARROW_OPEN); } private final static Logger LOGGER = Logger.getLogger(VsdxShape.class.getName()); @@ -248,24 +301,11 @@ public Element getShapeNode(String key) */ public String getTextLabel() { - Shape masterShape = null; NodeList txtChildren = getTextChildren(); - if (txtChildren == null && master != null) + if (txtChildren == null && masterShape != null) { - if (this.getMasterId() != null) - { - masterShape = master.getMasterShape(); - } - else - { - masterShape = master.getSubShape(this.getShapeMasterId()); - } - - if (masterShape != null) - { - txtChildren = masterShape.getTextChildren(); - } + txtChildren = masterShape.getTextChildren(); } if (this.htmlLabels) @@ -423,23 +463,9 @@ protected String createHybridLabel(String index) { value = this.fields.get(fieldIx); - if (value == null) + if (value == null && masterShape != null && masterShape.fields != null) { - Shape masterShape = null; - - if (this.getMasterId() != null) - { - masterShape = master.getMasterShape(); - } - else - { - masterShape = master.getSubShape(this.getShapeMasterId()); - } - - if (masterShape != null && masterShape.fields != null) - { - value = masterShape.fields.get(fieldIx); - } + value = masterShape.fields.get(fieldIx); } } } @@ -1466,24 +1492,9 @@ public Map getForm() return result; } - String parsedGeom = ""; + //Shape inherit master geometry and can change some of it or override it completely. So, no need to parse the master instead of the shape itself + String parsedGeom = this.parseGeom(); - if (this.masterShape != null) - { - this.masterShape.debug = this.debug; - parsedGeom = this.masterShape.parseGeom(); - } - else - { - this.styleDebug("No master shape found when looking for geom"); - } - - if (parsedGeom.equals("")) - { - parsedGeom = this.parseGeom(); - this.styleDebug("No master shape geom found"); - } - if (parsedGeom.equals("")) { this.styleDebug("No geom found"); @@ -1640,8 +1651,6 @@ public boolean isDisplacedLabel() String txtWidthF = this.getAttribute(mxVsdxConstants.TEXT_X_FORM, mxVsdxConstants.TXT_WIDTH, "F", ""); String txtHeightF = this.getAttribute(mxVsdxConstants.TEXT_X_FORM, mxVsdxConstants.TXT_HEIGHT, "F", ""); - Shape masterShape = master != null ? master.getMasterShape() : null; - if (masterShape != null) { if (txtPinXF == "" || txtPinXF.toLowerCase().equals("inh")) @@ -1694,8 +1703,6 @@ public boolean isRotatedLabel() { String txtAngleValue = this.getAttribute(mxVsdxConstants.TEXT_X_FORM, mxVsdxConstants.TXT_ANGLE, "V", ""); - Shape masterShape = master != null ? master.getMasterShape() : null; - if (masterShape != null) { if (txtAngleValue.equals("")) @@ -1881,6 +1888,11 @@ public Map getStyleFromEdgeShape(double parentHeight) if(startArrow != null) { + if (startArrow.startsWith(ARROW_NO_FILL_MARKER)) + { + startArrow = startArrow.substring(ARROW_NO_FILL_MARKER.length()); + styleMap.put(mxConstants.STYLE_STARTFILL, "0"); + } styleMap.put(mxConstants.STYLE_STARTARROW, startArrow); } @@ -1889,6 +1901,11 @@ public Map getStyleFromEdgeShape(double parentHeight) if(endArrow != null) { + if (endArrow.startsWith(ARROW_NO_FILL_MARKER)) + { + endArrow = endArrow.substring(ARROW_NO_FILL_MARKER.length()); + styleMap.put(mxConstants.STYLE_ENDFILL, "0"); + } styleMap.put(mxConstants.STYLE_ENDARROW, endArrow); } @@ -2032,6 +2049,7 @@ public String getEdgeMarker(boolean start) //if arrow head type is not supported, use the open arrow instead type = VsdxShape.arrowTypes.get(1); } + return type; } @@ -2126,4 +2144,29 @@ public mxCell createLabelSubShape(mxGraph graph, mxCell parent) return null; } + + public mxPoint getLblEdgeOffset(mxPoint beginXY, mxPoint endXY, List points) + { + //currently, edges with multiple segments are not supported + //TODO use the code from https://github.com/jgraph/mxgraph/blob/master/javascript/src/js/view/mxGraphView.js#L1953 to calculate mxGraph label offset instead of the default mid point (width/2, height/2) + if (points == null || points.isEmpty() || (points.size() == 1 && points.get(0).equals(endXY))) + { + //Calculate the text offset + double txtWV = getScreenNumericalValue(getShapeNode(mxVsdxConstants.TXT_WIDTH), getWidth()); + double txtHV = getScreenNumericalValue(getShapeNode(mxVsdxConstants.TXT_HEIGHT), getHeight()); + double txtLocPinXV = getScreenNumericalValue(getShapeNode(mxVsdxConstants.TXT_LOC_PIN_X), 0); + double txtLocPinYV = getScreenNumericalValue(getShapeNode(mxVsdxConstants.TXT_LOC_PIN_Y), 0); + double txtPinXV = getScreenNumericalValue(getShapeNode(mxVsdxConstants.TXT_PIN_X), 0); + double txtPinYV = getScreenNumericalValue(getShapeNode(mxVsdxConstants.TXT_PIN_Y), 0); + + double y = getHeight()/2 - (txtPinYV - txtLocPinYV + txtHV/2); + double x = txtPinXV - txtLocPinXV + txtWV/2 - getWidth()/2; + + return new mxPoint(x, y); + } + else + { + return null; + } + } } \ No newline at end of file diff --git a/src/com/mxgraph/io/vsdx/geometry/ArcTo.java b/src/com/mxgraph/io/vsdx/geometry/ArcTo.java index d12ea1628..5d11e472b 100644 --- a/src/com/mxgraph/io/vsdx/geometry/ArcTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/ArcTo.java @@ -1,5 +1,9 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class ArcTo extends Row { public ArcTo(int index, Double x, Double y, Double a) @@ -9,9 +13,66 @@ public ArcTo(int index, Double x, Double y, Double a) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + if (this.x != null && this.y != null && this.a != null) + { + double h = shape.getHeight(); + double w = shape.getWidth(); + double x0 = Math.round(shape.getLastX() * w) / 100; + double y0 = Math.round(shape.getLastX() * h) / 100; + double x = this.x * mxVsdxUtils.conversionFactor; + + double y = this.y * mxVsdxUtils.conversionFactor; + y = h - y; + + double a = this.a * mxVsdxUtils.conversionFactor; + + double dx = Math.abs(x - x0); + double dy = Math.abs(y - y0); + + double rx = (a * 0.5) + (dx * dx + dy * dy) / (8.0 * a); + double ry = rx; + double r0 = Math.abs(rx); + + rx = rx * 100 / w; + ry = ry * 100 / h; + x = x * 100 / w; + y = y * 100 / h; + rx = Math.round(rx * 100.0) / 100.0; + ry = Math.round(ry * 100.0) / 100.0; + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + + a = Math.round(a * 100.0) / 100.0; + rx = Math.abs(rx); + ry = Math.abs(ry); + + //determine sweep and large-arc flag + String sf = (a < 0) ? "1" : "0"; + String laf = (r0 < Math.abs(a)) ? "1" : "0"; + + if (debug != null) + { + debug.drawLine(x0, y0, x, y, ""); + } + + shape.setLastX(x); + shape.setLastY(y); + + return ""; + } + return ""; + } } diff --git a/src/com/mxgraph/io/vsdx/geometry/DelRow.java b/src/com/mxgraph/io/vsdx/geometry/DelRow.java index 9bb0baaa1..6fe7bfb0c 100644 --- a/src/com/mxgraph/io/vsdx/geometry/DelRow.java +++ b/src/com/mxgraph/io/vsdx/geometry/DelRow.java @@ -1,5 +1,8 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.util.mxPoint; + public class DelRow extends Row{ public DelRow(int index) { @@ -7,8 +10,10 @@ public DelRow(int index) { } @Override - public void handle() { + public String handle(mxPoint p, Shape shape) + { //Nothing + return ""; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/Ellipse.java b/src/com/mxgraph/io/vsdx/geometry/Ellipse.java index 3ad630f4f..f2c8a5088 100644 --- a/src/com/mxgraph/io/vsdx/geometry/Ellipse.java +++ b/src/com/mxgraph/io/vsdx/geometry/Ellipse.java @@ -1,5 +1,9 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class Ellipse extends Row { public Ellipse(int index, Double x, Double y, Double a, Double b, Double c, Double d) @@ -12,9 +16,48 @@ public Ellipse(int index, Double x, Double y, Double a, Double b, Double c, Doub } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + if (this.x != null && this.y != null && this.a != null && this.b != null && this.c != null && this.d != null) + { + double h = shape.getHeight(); + double w = shape.getWidth(); + + double x = this.x * mxVsdxUtils.conversionFactor; + double y = this.y * mxVsdxUtils.conversionFactor; + y = h - y; + double a = this.a * mxVsdxUtils.conversionFactor; + double b = this.b * mxVsdxUtils.conversionFactor; + b = h - b; + double c = this.c * mxVsdxUtils.conversionFactor; + double d = this.d * mxVsdxUtils.conversionFactor; + d = h - d; + + double dx1 = Math.abs(a - x); + double dy1 = Math.abs(b - y); + double r1 = Math.sqrt(dx1 * dx1 + dy1 * dy1); + + double dx2 = Math.abs(c - x); + double dy2 = Math.abs(d - y); + double r2 = Math.sqrt(dx2 * dx2 + dy2 * dy2); + double newX = (x - r1) * 100 / w; + double newY = (y - r2) * 100 / h; + double newW = 2 * r1 * 100 / w; + double newH = 2 * r2 * 100 / h; + newH = Math.round(newH * 100.0) / 100.0; + newW = Math.round(newW * 100.0) / 100.0; + newX = Math.round(newX * 100.0) / 100.0; + newY = Math.round(newY * 100.0) / 100.0; + + return ""; + } + return ""; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/EllipticalArcTo.java b/src/com/mxgraph/io/vsdx/geometry/EllipticalArcTo.java index 2f00f53e1..a4ab421cd 100644 --- a/src/com/mxgraph/io/vsdx/geometry/EllipticalArcTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/EllipticalArcTo.java @@ -1,5 +1,9 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class EllipticalArcTo extends Row { public EllipticalArcTo(int index, Double x, Double y, Double a, Double b, Double c, Double d) @@ -12,9 +16,162 @@ public EllipticalArcTo(int index, Double x, Double y, Double a, Double b, Double } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + if (this.x != null && this.y != null && this.a != null && this.b != null && this.c != null && this.d != null) + { + double h = shape.getHeight(); + double w = shape.getWidth(); + + double x = this.x * mxVsdxUtils.conversionFactor; + double y = this.y * mxVsdxUtils.conversionFactor; + y = h - y; + double a = this.a * mxVsdxUtils.conversionFactor; + double b = this.b * mxVsdxUtils.conversionFactor; + double c = this.c; + double d = this.d; + + x = x * 100.0 / w; + y = y * 100.0 / h; + + double x1 = shape.getLastX() * w / 100.0; + double y1 = shape.getLastY() * h / 100.0; + + double x2 = x * w / 100.0; + double y2 = y * h / 100.0; + + double x3 = a; + double y3 = h - b; + + double ang = -c; + + double p1x = Math.sqrt(x1 * x1 + y1 * y1) * Math.cos(Math.atan2(y1, x1) - ang); + double p1y = Math.sqrt(x1 * x1 + y1 * y1) * Math.sin(Math.atan2(y1, x1) - ang); + + double p2x = Math.sqrt(x2 * x2 + y2 * y2) * Math.cos(Math.atan2(y2, x2) - ang); + double p2y = Math.sqrt(x2 * x2 + y2 * y2) * Math.sin(Math.atan2(y2, x2) - ang); + + double p3x = Math.sqrt(x3 * x3 + y3 * y3) * Math.cos(Math.atan2(y3, x3) - ang); + double p3y = Math.sqrt(x3 * x3 + y3 * y3) * Math.sin(Math.atan2(y3, x3) - ang); + + double p0x = ((p1x-p2x)*(p1x+p2x)*(p2y-p3y)-(p2x-p3x)*(p2x+p3x)*(p1y-p2y)+d*d*(p1y-p2y)*(p2y-p3y)*(p1y-p3y))/(2*((p1x-p2x)*(p2y-p3y)-(p2x-p3x)*(p1y-p2y))); + double p0y = ((p1x-p2x)*(p2x-p3x)*(p1x-p3x)/(d*d)+(p2x-p3x)*(p1y-p2y)*(p1y+p2y)-(p1x-p2x)*(p2y-p3y)*(p2y+p3y))/(2*((p2x-p3x)*(p1y-p2y)-(p1x-p2x)*(p2y-p3y))); + + double newX = Math.sqrt(p0x * p0x + p0y * p0y) * Math.cos(Math.atan2(p0y, p0x) + ang); + double newY = Math.sqrt(p0x * p0x + p0y * p0y) * Math.sin(Math.atan2(p0y, p0x) + ang); + + newX = newX * w / 100.0; + newY = newY * h / 100.0; + + double dx = p1x - p0x; + double dy = p1y - p0y; + double rx = Math.sqrt(dx * dx + dy * dy * d * d); + double ry = rx / d; + double rot = Math.toDegrees(ang); + + rx = rx * 100.0 / w; + ry = ry * 100.0 / h; + + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + rx = Math.round(rx * 100.0) / 100.0; + ry = Math.round(ry * 100.0) / 100.0; + rot = Math.round(rot * 100.0) / 100.0; + + //determine sweep + //TODO fix rare error (file "1 Supported Forms" shape "storeddata" on page 5) + double sweep = (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1); + String sf = (sweep > 0) ? "0" : "1"; + + //determine large arc flag + String laf = "0"; + + if (mxVsdxUtils.isInsideTriangle(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) && + isReflexAngle(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y)) + { + laf = "1"; + } + + if (debug != null) + { + debug.drawRect(p0x, p0y, "P0"); + debug.drawRect(p1x, p1y, "P1"); + debug.drawRect(p2x, p2y, "P2"); + debug.drawRect(p3x, p3y, "P3"); + debug.drawRect(newX, newY, "X"); + debug.drawRect(x3, y3, "CP"); + debug.drawLine(x1, y1, x2, y2, ""); + } + + shape.setLastX(x); + shape.setLastY(y); + + return ""; + } + + return ""; + } + + /** + * @param x0 y0 center point of ellipse containing the arc + * @param x1 y1 starting point of the arc + * @param x2 y2 endpoint of the arc + * @param x3 y3 control point + * @return true if the start to end angle that contains the control point is a reflex angle + */ + private boolean isReflexAngle(double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3) + { + x1 = x1 - x0; + y1 = y1 - y0; + x2 = x2 - x0; + y2 = y2 - y0; + x2 = x3 - x0; + y3 = y3 - y0; + x0 = 0; + y0 = 0; + + double aStart = Math.toDegrees(Math.atan2(y1, x1) - Math.atan2(y0, x0)); + double aEnd = Math.toDegrees(Math.atan2(y2, x2) - Math.atan2(y0, x0)); + double aCP = Math.toDegrees(Math.atan2(y3, x3) - Math.atan2(y0, x0)); + + aStart = (aStart - aCP) % 360; + aEnd = (aEnd - aCP) % 360; + + if (aStart > 180) + { + aStart = aStart - 360; + } + else if (aStart < -180) + { + aStart = aStart + 360; + } + + if (aEnd > 180) + { + aEnd = aEnd - 360; + } + else if (aEnd < -180) + { + aEnd = aEnd + 360; + } + + if ((aStart > 0 && aEnd < 0) || (aStart < 0 && aEnd > 0)) + { + if (Math.abs(aStart - aEnd) > 180) + { + return true; + } + } + return false; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/InfiniteLine.java b/src/com/mxgraph/io/vsdx/geometry/InfiniteLine.java index 928cb8f40..17bbff531 100644 --- a/src/com/mxgraph/io/vsdx/geometry/InfiniteLine.java +++ b/src/com/mxgraph/io/vsdx/geometry/InfiniteLine.java @@ -1,5 +1,8 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.util.mxPoint; + public class InfiniteLine extends Row { public InfiniteLine(int index, Double x, Double y, Double a, Double b) @@ -10,9 +13,10 @@ public InfiniteLine(int index, Double x, Double y, Double a, Double b) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { - + //TODO implement this! + return ""; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/LineTo.java b/src/com/mxgraph/io/vsdx/geometry/LineTo.java index d28f18f45..6de7258cd 100644 --- a/src/com/mxgraph/io/vsdx/geometry/LineTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/LineTo.java @@ -1,5 +1,9 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class LineTo extends Row { @@ -9,9 +13,31 @@ public LineTo(int index, Double x, Double y) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + double x = p.getX(), y = p.getY(); + double h = shape.getHeight(); + double w = shape.getWidth(); + + if (this.x != null && this.y != null) + { + x = this.x * mxVsdxUtils.conversionFactor; + y = this.y * mxVsdxUtils.conversionFactor; + } + + x = x * 100.0 / w; + y = y * 100.0 / h; + y = 100 - y; + + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + p.setX(x); + p.setY(y); + shape.setLastX(x); + shape.setLastY(y); + + return "<" + "line" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/MoveTo.java b/src/com/mxgraph/io/vsdx/geometry/MoveTo.java index cdc4d90cd..fbff2c12f 100644 --- a/src/com/mxgraph/io/vsdx/geometry/MoveTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/MoveTo.java @@ -1,5 +1,9 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class MoveTo extends Row { public MoveTo(int index, Double x, Double y) @@ -8,8 +12,32 @@ public MoveTo(int index, Double x, Double y) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + double x = p.getX(), y = p.getY(); + double h = shape.getHeight(); + double w = shape.getWidth(); + + if (this.x != null && this.y != null) + { + x = this.x * mxVsdxUtils.conversionFactor; + y = this.y * mxVsdxUtils.conversionFactor; + } + x = x * 100.0 / w; + y = y * 100.0 / h; + y = 100 - y; + + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + + p.setX(x); + p.setY(y); + shape.setLastX(x); + shape.setLastY(y); + shape.setLastMoveX(x); + shape.setLastMoveY(y); + + return "<" + "move" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/NURBSTo.java b/src/com/mxgraph/io/vsdx/geometry/NURBSTo.java index b57ac08f6..591bb1f7e 100644 --- a/src/com/mxgraph/io/vsdx/geometry/NURBSTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/NURBSTo.java @@ -1,5 +1,12 @@ package com.mxgraph.io.vsdx.geometry; +import java.util.Arrays; +import java.util.List; + +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class NURBSTo extends Row { public NURBSTo(int index, Double x, Double y, Double a, Double b, Double c, Double d, String e) @@ -13,9 +20,54 @@ public NURBSTo(int index, Double x, Double y, Double a, Double b, Double c, Doub } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { - + if (this.x != null && this.y != null && this.formulaE != null) + { + double h = shape.getHeight(); + double w = shape.getWidth(); + + double x = this.x * mxVsdxUtils.conversionFactor; + double y = this.y * mxVsdxUtils.conversionFactor; + String eValue = this.formulaE.replace("NURBS(", ""); + eValue = eValue.replace(")", ""); + + List nurbsValues = Arrays.asList(eValue.split("\\s*,\\s*")); + + if (nurbsValues.size() >= 10) + { + double x1 = Double.parseDouble(nurbsValues.get(4)) * 100.0; + double y1 = 100 - Double.parseDouble(nurbsValues.get(5)) * 100.0; + double x2 = Double.parseDouble(nurbsValues.get(8)) * 100.0; + double y2 = 100 - Double.parseDouble(nurbsValues.get(9)) * 100.0; + + y = y * 100.0 / h; + x = x * 100.0 / w; + y = 100 - y; + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + x1 = Math.round(x1 * 100.0) / 100.0; + y1 = Math.round(y1 * 100.0) / 100.0; + x2 = Math.round(x2 * 100.0) / 100.0; + y2 = Math.round(y2 * 100.0) / 100.0; + + if (debug != null) + { + debug.drawRect(x, y, ""); + debug.drawLine(shape.getLastX(), shape.getLastY(), x, y, ""); + } + + shape.setLastX(x); + shape.setLastY(y); + + return ""; + } + } + + return ""; + } } diff --git a/src/com/mxgraph/io/vsdx/geometry/PolylineTo.java b/src/com/mxgraph/io/vsdx/geometry/PolylineTo.java index c17b14827..7423ff005 100644 --- a/src/com/mxgraph/io/vsdx/geometry/PolylineTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/PolylineTo.java @@ -1,5 +1,12 @@ package com.mxgraph.io.vsdx.geometry; +import java.util.Arrays; +import java.util.LinkedList; + +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class PolylineTo extends Row { public PolylineTo(int index, Double x, Double y, String a) @@ -9,9 +16,54 @@ public PolylineTo(int index, Double x, Double y, String a) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + String result = ""; + + if (this.x != null && this.y != null && this.formulaA != null) + { + double h = shape.getHeight(); + double w = shape.getWidth(); + double x = this.x * mxVsdxUtils.conversionFactor; + double y = this.y * mxVsdxUtils.conversionFactor; + x = x * 100.0 / w; + y = y * 100.0 / h; + y = 100 - y; + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + + String aValue = this.formulaA.replaceAll("\\s","").toLowerCase().replaceAll("polyline\\(","").replaceAll("\\)", ""); + + LinkedList polyEntriesList = new LinkedList(Arrays.asList(aValue.split(","))); + + polyEntriesList.remove(0); + polyEntriesList.remove(0); + double currX = 0; + double currY = 0; + + while (polyEntriesList.size() > 0) + { + currX = Double.valueOf(polyEntriesList.remove(0)) * mxVsdxUtils.conversionFactor; + currY = Double.valueOf(polyEntriesList.remove(0)) * mxVsdxUtils.conversionFactor; + currY = 100 - currY; + + currX = Math.round(currX * 100.0) / 100.0; + currY = Math.round(currY * 100.0) / 100.0; + + shape.setLastX(currX); + shape.setLastY(currY); + + result += ""; + } + + if (shape.getLastMoveX() == x && shape.getLastMoveY() == y) + { + result += ""; + } + } + return result; + } } diff --git a/src/com/mxgraph/io/vsdx/geometry/RelCubBezTo.java b/src/com/mxgraph/io/vsdx/geometry/RelCubBezTo.java index ae0b0a7b6..4afed10a6 100644 --- a/src/com/mxgraph/io/vsdx/geometry/RelCubBezTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/RelCubBezTo.java @@ -1,5 +1,8 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.util.mxPoint; + public class RelCubBezTo extends Row { public RelCubBezTo(int index, Double x, Double y, Double a, Double b, Double c, Double d) @@ -12,9 +15,10 @@ public RelCubBezTo(int index, Double x, Double y, Double a, Double b, Double c, } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { - + //TODO implement this! + return ""; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/RelEllipticalArcTo.java b/src/com/mxgraph/io/vsdx/geometry/RelEllipticalArcTo.java index 5cbdfafa4..21f26851f 100644 --- a/src/com/mxgraph/io/vsdx/geometry/RelEllipticalArcTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/RelEllipticalArcTo.java @@ -1,5 +1,8 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.util.mxPoint; + public class RelEllipticalArcTo extends Row { public RelEllipticalArcTo(int index, Double x, Double y, Double a, Double b, Double c, Double d) @@ -12,9 +15,10 @@ public RelEllipticalArcTo(int index, Double x, Double y, Double a, Double b, Dou } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { - + //TODO implement this! + return ""; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/RelLineTo.java b/src/com/mxgraph/io/vsdx/geometry/RelLineTo.java index b6480c82a..20a1ffbea 100644 --- a/src/com/mxgraph/io/vsdx/geometry/RelLineTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/RelLineTo.java @@ -1,5 +1,8 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.util.mxPoint; + public class RelLineTo extends Row { @@ -9,9 +12,25 @@ public RelLineTo(int index, Double x, Double y) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + double x = p.getX(), y = p.getY(); + + if (this.x != null && this.y != null) + { + x = this.x * 100; + y = 100 - this.y * 100; + } + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + + p.setX(x); + p.setY(y); + shape.setLastX(x); + shape.setLastY(y); + + return "<" + "line" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/RelMoveTo.java b/src/com/mxgraph/io/vsdx/geometry/RelMoveTo.java index abd1a3547..71f203a2a 100644 --- a/src/com/mxgraph/io/vsdx/geometry/RelMoveTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/RelMoveTo.java @@ -1,5 +1,8 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.util.mxPoint; + public class RelMoveTo extends Row { @@ -9,9 +12,27 @@ public RelMoveTo(int index, Double x, Double y) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + double x = p.getX(), y = p.getY(); + + if (this.x != null && this.y != null) + { + x = this.x * 100; + y = 100 - this.y * 100; + } + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + + p.setX(x); + p.setY(y); + shape.setLastX(x); + shape.setLastY(y); + shape.setLastMoveX(x); + shape.setLastMoveY(y); + + return "<" + "move" + " x=\"" + String.valueOf(x) + "\" y=\"" + String.valueOf(y) + "\"/>"; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/RelQuadBezTo.java b/src/com/mxgraph/io/vsdx/geometry/RelQuadBezTo.java index 2837a93a3..dfc01c1c5 100644 --- a/src/com/mxgraph/io/vsdx/geometry/RelQuadBezTo.java +++ b/src/com/mxgraph/io/vsdx/geometry/RelQuadBezTo.java @@ -1,5 +1,8 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.util.mxPoint; + public class RelQuadBezTo extends Row { public RelQuadBezTo(int index, Double x, Double y, Double a, Double b) @@ -10,9 +13,10 @@ public RelQuadBezTo(int index, Double x, Double y, Double a, Double b) } @Override - public void handle() + public String handle(mxPoint p, Shape shape) { - + //TODO implement this! + return ""; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/Row.java b/src/com/mxgraph/io/vsdx/geometry/Row.java index 332458407..97c9f605e 100644 --- a/src/com/mxgraph/io/vsdx/geometry/Row.java +++ b/src/com/mxgraph/io/vsdx/geometry/Row.java @@ -1,11 +1,17 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxPathDebug; +import com.mxgraph.util.mxPoint; + public abstract class Row { protected Double x, y, a, b, c, d; protected String formulaA, formulaE; protected int index; + public mxPathDebug debug = null; + public Row(int index, Double x, Double y) { this.index = index; @@ -13,7 +19,8 @@ public Row(int index, Double x, Double y) this.y = y; } - public abstract void handle(); + //TODO probably point p is not needed as the point from previous step is stored in lastP? + public abstract String handle(mxPoint p, Shape shape); public Double getX() { diff --git a/src/com/mxgraph/io/vsdx/geometry/RowFactory.java b/src/com/mxgraph/io/vsdx/geometry/RowFactory.java index b2d2edfe9..5b4360dba 100644 --- a/src/com/mxgraph/io/vsdx/geometry/RowFactory.java +++ b/src/com/mxgraph/io/vsdx/geometry/RowFactory.java @@ -40,7 +40,20 @@ public static Row getRowObj(Element elem, List pRows) } Double x = null, y = null, a = null, b = null, c = null, d = null; - String formulaE = null, formulaA = null;; + String formulaE = null, formulaA = null; + + if (parentObj != null) + { + x = parentObj.getX(); + y = parentObj.getY(); + a = parentObj.getA(); + b = parentObj.getB(); + c = parentObj.getC(); + d = parentObj.getD(); + formulaA = parentObj.getFormulaA(); + formulaE = parentObj.getFormulaE(); + } + ArrayList cells = mxVsdxUtils.getDirectChildElements(elem); for (Element cell : cells) @@ -52,64 +65,26 @@ public static Row getRowObj(Element elem, List pRows) { case "X": x = getDoubleVal(val); - - if (x == null && parentObj != null) - { - x = parentObj.getX(); - } break; case "Y": y = getDoubleVal(val); - - if (y == null && parentObj != null) - { - y = parentObj.getY(); - } break; case "A": a = getDoubleVal(val); - formulaA = val; - - if (a == null && parentObj != null) - { - a = parentObj.getA(); - } - if (formulaA == null && parentObj != null) - { - formulaA = parentObj.getFormulaA(); - } + //Special case for PolylineTo where we need the F attribute instead of V + formulaA = cell.getAttribute("F"); break; case "B": b = getDoubleVal(val); - - if (b == null && parentObj != null) - { - b = parentObj.getB(); - } break; case "C": c = getDoubleVal(val); - - if (c == null && parentObj != null) - { - c = parentObj.getC(); - } break; case "D": d = getDoubleVal(val); - - if (d == null && parentObj != null) - { - d = parentObj.getD(); - } break; case "E": formulaE = val; - - if (formulaE == null && parentObj != null) - { - formulaE = parentObj.getFormulaE(); - } break; } } diff --git a/src/com/mxgraph/io/vsdx/geometry/SplineKnot.java b/src/com/mxgraph/io/vsdx/geometry/SplineKnot.java index 992284572..cbb8b7674 100644 --- a/src/com/mxgraph/io/vsdx/geometry/SplineKnot.java +++ b/src/com/mxgraph/io/vsdx/geometry/SplineKnot.java @@ -1,5 +1,9 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class SplineKnot extends Row { public SplineKnot(int index, Double x, Double y, Double a) @@ -8,10 +12,39 @@ public SplineKnot(int index, Double x, Double y, Double a) this.a = a; } + //TODO Is this complete? @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + if (this.x != null && this.y != null && this.a != null) + { + //double h = this.getHeight(); + //double w = this.getWidth(); + double x = this.x * mxVsdxUtils.conversionFactor; + double y = this.y * mxVsdxUtils.conversionFactor; + double a = this.a; + + double knot = a; +// x = x * 100.0 / w; +// y = y * 100.0 / h; + y = 100 - y; + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + knot = Math.round(knot * 100.0) / 100.0; + + + if (debug != null) + { + debug.drawRect(x, y, Double.toString(knot)); + debug.drawLine(shape.getLastX(), shape.getLastY(), x, y, ""); + } + + shape.setLastX(x); + shape.setLastY(y); + } + return ""; + } } diff --git a/src/com/mxgraph/io/vsdx/geometry/SplineStart.java b/src/com/mxgraph/io/vsdx/geometry/SplineStart.java index dcfcba2a0..4292eeaa7 100644 --- a/src/com/mxgraph/io/vsdx/geometry/SplineStart.java +++ b/src/com/mxgraph/io/vsdx/geometry/SplineStart.java @@ -1,5 +1,9 @@ package com.mxgraph.io.vsdx.geometry; +import com.mxgraph.io.vsdx.Shape; +import com.mxgraph.io.vsdx.mxVsdxUtils; +import com.mxgraph.util.mxPoint; + public class SplineStart extends Row { public SplineStart(int index, Double x, Double y, Double a, Double b, Double c, Double d) @@ -11,10 +15,53 @@ public SplineStart(int index, Double x, Double y, Double a, Double b, Double c, this.d = d; } + //TODO Is this complete? @Override - public void handle() + public String handle(mxPoint p, Shape shape) { + if (this.x != null && this.y != null && this.a != null && this.b != null && this.c != null && this.d != null) + { + double h = shape.getHeight(); + double w = shape.getWidth(); + + double x = this.x * mxVsdxUtils.conversionFactor; + double y = this.y * mxVsdxUtils.conversionFactor; + //double a = Double.parseDouble(aValue); + //double b = Double.parseDouble(bValue); + double c = this.c; + int d = this.d.intValue(); + + //double firstKnot = b; + //double secondKnot = a; + double lastKnot = c; + + shape.setLastKnot(lastKnot); + + int degree = d; +// x = x * 100.0 / w; +// y = y * 100.0 / h; + y = 100 - y; + x = Math.round(x * 100.0) / 100.0; + y = Math.round(y * 100.0) / 100.0; + lastKnot = Math.round(lastKnot * 100.0) / 100.0; + double x0 = shape.getLastX() * w / 100.0; + double y0 = shape.getLastY() * h / 100.0; + + if (debug != null) + { + debug.drawRect(x0, y0 , "0, " + Integer.toString(degree)); + debug.drawRect(x, y , Double.toString(lastKnot)); + debug.drawLine(x0, y0, x, y, ""); + } + + shape.setLastX(x); + shape.setLastY(y); + + return " getRows() return rows; } + public String getPathXML(mxPoint p, Shape shape) + { + if (noShow) return ""; + + StringBuilder geomElemParsed = new StringBuilder(""); + int initSize = geomElemParsed.length(); + + for (Row row : rows) + { + geomElemParsed.append(row.handle(p, shape)); + } + + if (geomElemParsed.length() > initSize) + { + geomElemParsed.append(""); + + if (!noLine && !noFill) + { + geomElemParsed.append(""); + } + else if (!noFill) + { + geomElemParsed.append(""); + } + else if (!noLine) + { + geomElemParsed.append(""); + } + + return geomElemParsed.toString(); + } + + return ""; + } } diff --git a/src/com/mxgraph/io/vsdx/mxVsdxGeometryList.java b/src/com/mxgraph/io/vsdx/mxVsdxGeometryList.java index 487ab54ab..f96ba2c38 100644 --- a/src/com/mxgraph/io/vsdx/mxVsdxGeometryList.java +++ b/src/com/mxgraph/io/vsdx/mxVsdxGeometryList.java @@ -109,6 +109,9 @@ public List getRoutingPoints(double parentHeight, mxPoint startPoint, d List points = new ArrayList(); + //Adding the starting point as a routing point instead of setting the entryX/Y + points.add(startPoint); + double offsetX = 0; double offsetY = 0; @@ -157,4 +160,27 @@ else if (row instanceof LineTo) return points; } + public String getShapeXML(Shape shape) + { + mxPoint p = new mxPoint(0, 0); + + StringBuilder parsedGeom = new StringBuilder(""); + int initSize = parsedGeom.length(); + + for (mxVsdxGeometry geo : geomList) + { + parsedGeom.append(geo.getPathXML(p, shape)); + } + + if (parsedGeom.length() == initSize) + { + return ""; + } + + //System.out.println(parsedGeom); + + parsedGeom.append(""); + return parsedGeom.toString(); + } + } diff --git a/war/WEB-INF/appengine-web.xml b/war/WEB-INF/appengine-web.xml index c8f0511cb..4627e805b 100644 --- a/war/WEB-INF/appengine-web.xml +++ b/war/WEB-INF/appengine-web.xml @@ -2,7 +2,7 @@ drawdotio - 6-4-6 + test diff --git a/war/WEB-INF/lib/datanucleus-appengine-1.0.10.final.jar b/war/WEB-INF/lib/datanucleus-appengine-1.0.10.final.jar deleted file mode 100644 index 668a7f856..000000000 Binary files a/war/WEB-INF/lib/datanucleus-appengine-1.0.10.final.jar and /dev/null differ diff --git a/war/WEB-INF/lib/datanucleus-core-1.1.5.jar b/war/WEB-INF/lib/datanucleus-core-1.1.5.jar deleted file mode 100644 index caac70e91..000000000 Binary files a/war/WEB-INF/lib/datanucleus-core-1.1.5.jar and /dev/null differ diff --git a/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar b/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar deleted file mode 100644 index 657fd0fae..000000000 Binary files a/war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar and /dev/null differ diff --git a/war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar b/war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar deleted file mode 100644 index 12d4ab0d2..000000000 Binary files a/war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar and /dev/null differ diff --git a/war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar b/war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar deleted file mode 100644 index ee9963dfc..000000000 Binary files a/war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar and /dev/null differ diff --git a/war/WEB-INF/lib/jdo2-api-2.3-eb.jar b/war/WEB-INF/lib/jdo2-api-2.3-eb.jar deleted file mode 100644 index a039ae7fd..000000000 Binary files a/war/WEB-INF/lib/jdo2-api-2.3-eb.jar and /dev/null differ diff --git a/war/cache.manifest b/war/cache.manifest index b58637e4e..1d5e5ee6a 100644 --- a/war/cache.manifest +++ b/war/cache.manifest @@ -1,7 +1,7 @@ CACHE MANIFEST # THIS FILE WAS GENERATED. DO NOT MODIFY! -# 04/06/2017 12:53 AM +# 04/13/2017 03:09 PM app.html index.html?offline=1 diff --git a/war/export.html b/war/export.html deleted file mode 100644 index e54fffe4e..000000000 --- a/war/export.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - - - - -
- - diff --git a/war/export2.html b/war/export2.html index 900295182..830eb9cbb 100644 --- a/war/export2.html +++ b/war/export2.html @@ -32,7 +32,7 @@ data.w = parseFloat(data.w) || 0; data.h = parseFloat(data.h) || 0; data.scale = parseFloat(data.scale) || 1; - + // Parses XML var xmlDoc = mxUtils.parseXml(data.xml); var diagrams = null; @@ -309,7 +309,6 @@ // Negative coordinates are cropped or shifted if page visible var gb = graph.getGraphBounds(); - var border = 0; var x0 = 0; var y0 = 0; @@ -332,12 +331,39 @@ // Renders print output into this document and removes the graph container preview.open(null, window); graph.container.parentNode.removeChild(graph.container); + + // Adds shadow + if (mxClient.IS_SVG && xmlDoc.documentElement.getAttribute('shadow') == '1') + { + var svgs = document.getElementsByTagName('svg'); + + for (var i = 0; i < svgs.length; i++) + { + var svg = svgs[i]; + + var filter = graph.addSvgShadow(svg, null, true); + filter.setAttribute('id', 'shadow-' + i); + svg.appendChild(filter); + svg.setAttribute('filter', 'url(#' + 'shadow-' + i + ')'); + } + + border = 7; + } bounds = new mxRectangle(0, 0, pf.width, pf.height); renderMath(graph.container.parentNode); } else { + // Adds shadow + if (mxClient.IS_SVG && xmlDoc.documentElement.getAttribute('shadow') == '1') + { + graph.addSvgShadow(graph.view.canvas.ownerSVGElement, null, true); + graph.setShadowVisible(true); + bounds.width += 7; + bounds.height += 7; + } + renderMath(graph.container); if (data.format != 'pdf') diff --git a/war/js/app.min.js b/war/js/app.min.js index df1909e87..694a85695 100644 --- a/war/js/app.min.js +++ b/war/js/app.min.js @@ -359,7 +359,7 @@ mxWindow.prototype.isVisible=function(){return null!=this.div?"none"!=this.div.s mxWindow.prototype.show=function(){this.div.style.display="";this.activate();var a=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_QUIRKS||"auto"!=a.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px");this.fireEvent(new mxEventObject(mxEvent.SHOW))};mxWindow.prototype.hide=function(){this.div.style.display="none";this.fireEvent(new mxEventObject(mxEvent.HIDE))}; mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY));null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null);this.contentWrapper=this.content=this.title=null};function mxForm(a){this.table=document.createElement("table");this.table.className=a;this.body=document.createElement("tbody");this.table.appendChild(this.body)}mxForm.prototype.table=null;mxForm.prototype.body=!1;mxForm.prototype.getTable=function(){return this.table}; mxForm.prototype.addButtons=function(a,c){var f=document.createElement("tr"),d=document.createElement("td");f.appendChild(d);var d=document.createElement("td"),b=document.createElement("button");mxUtils.write(b,mxResources.get("ok")||"OK");d.appendChild(b);mxEvent.addListener(b,"click",function(){a()});b=document.createElement("button");mxUtils.write(b,mxResources.get("cancel")||"Cancel");d.appendChild(b);mxEvent.addListener(b,"click",function(){c()});f.appendChild(d);this.body.appendChild(f)}; -mxForm.prototype.addText=function(a,c){var f=document.createElement("input");f.setAttribute("type","text");f.value=c;return this.addField(a,f)};mxForm.prototype.addCheckbox=function(a,c){var f=document.createElement("input");f.setAttribute("type","checkbox");this.addField(a,f);c&&(f.checked=!0);return f};mxForm.prototype.addTextarea=function(a,c,f){var d=document.createElement("textarea");mxClient.IS_NS&&f--;d.setAttribute("rows",f||2);d.value=c;return this.addField(a,d)}; +mxForm.prototype.addText=function(a,c,f){var d=document.createElement("input");d.setAttribute("type",f||"text");d.value=c;return this.addField(a,d)};mxForm.prototype.addCheckbox=function(a,c){var f=document.createElement("input");f.setAttribute("type","checkbox");this.addField(a,f);c&&(f.checked=!0);return f};mxForm.prototype.addTextarea=function(a,c,f){var d=document.createElement("textarea");mxClient.IS_NS&&f--;d.setAttribute("rows",f||2);d.value=c;return this.addField(a,d)}; mxForm.prototype.addCombo=function(a,c,f){var d=document.createElement("select");null!=f&&d.setAttribute("size",f);c&&d.setAttribute("multiple","true");return this.addField(a,d)};mxForm.prototype.addOption=function(a,c,f,d){var b=document.createElement("option");mxUtils.writeln(b,c);b.setAttribute("value",f);d&&b.setAttribute("selected",d);a.appendChild(b)}; mxForm.prototype.addField=function(a,c){var f=document.createElement("tr"),d=document.createElement("td");mxUtils.write(d,a);f.appendChild(d);d=document.createElement("td");d.appendChild(c);f.appendChild(d);this.body.appendChild(f);return c};function mxImage(a,c,f){this.src=a;this.width=c;this.height=f}mxImage.prototype.src=null;mxImage.prototype.width=null;mxImage.prototype.height=null; function mxDivResizer(a,c){if("div"==a.nodeName.toLowerCase()){null==c&&(c=window);this.div=a;var f=mxUtils.getCurrentStyle(a);null!=f&&(this.resizeWidth="auto"==f.width,this.resizeHeight="auto"==f.height);mxEvent.addListener(c,"resize",mxUtils.bind(this,function(a){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)}));this.resize()}}mxDivResizer.prototype.resizeWidth=!0;mxDivResizer.prototype.resizeHeight=!0;mxDivResizer.prototype.handlingResize=!1; @@ -625,11 +625,10 @@ mxShape.prototype.addPoints=function(a,c,f,d,b){var e=c[c.length-1];if(b&&f){c=c c[mxUtils.mod(g+2,c.length)],g++;m=k.x-l.x;k=k.y-l.y;n=Math.max(1,Math.sqrt(m*m+k*k));m=l.x+m*Math.min(d,n/2)/n;k=l.y+k*Math.min(d,n/2)/n;a.quadTo(l.x,l.y,m,k);l=new mxPoint(m,k)}k=l;g++}b?a.close():a.lineTo(e.x,e.y)}; mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass}; mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY, -this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.arrowStrokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style, -mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style, -mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed= -1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)}; -mxShape.prototype.getCursor=function(){return this.cursor}; +this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style, +mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV, +0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style, +mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)};mxShape.prototype.getCursor=function(){return this.cursor}; mxShape.prototype.updateBoundingBox=function(){if(this.useSvgBoundingBox&&null!=this.node&&null!=this.node.ownerSVGElement)try{var a=this.node.getBBox();if(0=b)&&a.close(),a.fillAndStroke(),e=d)&&a.close(), a.fillAndStroke(),e=b)&&a.close(),a.fillAndStroke(),e=d)&&a.close(),a.fillAndStroke(),e=b)&&a.close(),a.fillAndStroke(),e=d)&&a.close(),a.fillAndStroke(),eg||Math.abs(e)>g)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(d,f),c.consume()}}; mxRubberband.prototype.createShape=function(){null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity));this.graph.container.appendChild(this.sharedDiv);return this.sharedDiv};mxRubberband.prototype.isActive=function(a,c){return null!=this.div&&"none"!=this.div.style.display};mxRubberband.prototype.mouseUp=function(a,c){var f=this.isActive();this.reset();f&&(this.execute(c.getEvent()),c.consume())}; mxRubberband.prototype.execute=function(a){var c=new mxRectangle(this.x,this.y,this.width,this.height);this.graph.selectRegion(c,a)};mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div);mxEvent.removeGestureListeners(document,null,this.dragHandler,this.dropHandler);this.dropHandler=this.dragHandler=null;this.currentY=this.currentX=0;this.div=this.first=null};mxRubberband.prototype.update=function(a,c){this.currentX=a;this.currentY=c;this.repaint()}; @@ -1813,7 +1812,7 @@ mxEdgeHandler.prototype.setHandlesVisible=function(a){if(null!=this.bends)for(va mxEdgeHandler.prototype.redrawInnerBends=function(a,c){for(var f=1;f'),g.writeln("MathJax.Hub.Config({"),g.writeln('messageStyle: "none",'), g.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),g.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),g.writeln("TeX: {"),g.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),g.writeln("},"),g.writeln("tex2jax: {"),g.writeln('\tignoreClass: "geDisableMathJax"'),g.writeln("},"),g.writeln("asciimath2jax: {"),g.writeln('\tignoreClass: "geDisableMathJax"'),g.writeln("}"),g.writeln("});"),c&&(g.writeln("MathJax.Hub.Queue(function () {"), -g.writeln("window.print();"),g.writeln("});")),g.writeln("\x3c/script>"),g.writeln(''); - doc.writeln(''); + doc.writeln(''); } pv.closeDocument(); diff --git a/war/js/diagramly/Editor.js b/war/js/diagramly/Editor.js index b11660366..2465e5571 100644 --- a/war/js/diagramly/Editor.js +++ b/war/js/diagramly/Editor.js @@ -401,6 +401,9 @@ this.graph.view.y0 = null; mxClient.NO_FO = (this.graph.mathEnabled) ? true : this.originalNoForeignObject; editorResetGraph.apply(this, arguments); + + // Overrides default with persisted value + this.graph.pageFormat = mxSettings.getPageFormat(); }; /** @@ -420,7 +423,7 @@ */ Editor.initMath = function(src, config) { - src = (src != null) ? src : 'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_HTMLorMML'; + src = (src != null) ? src : 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'; Editor.mathJaxQueue = []; Editor.doMathJaxRender = function(container) @@ -508,94 +511,6 @@ } }; - /** - * Adds a shadow filter to the given svg root. - */ - Editor.prototype.addSvgShadow = function(svgRoot, group, createOnly) - { - createOnly = (createOnly != null) ? createOnly : false; - - var svgDoc = svgRoot.ownerDocument; - - var filter = (svgDoc.createElementNS != null) ? - svgDoc.createElementNS(mxConstants.NS_SVG, 'filter') : svgDoc.createElement('filter'); - filter.setAttribute('id', this.graph.shadowId); - - var blur = (svgDoc.createElementNS != null) ? - svgDoc.createElementNS(mxConstants.NS_SVG, 'feGaussianBlur') : svgDoc.createElement('feGaussianBlur'); - blur.setAttribute('in', 'SourceAlpha'); - blur.setAttribute('stdDeviation', '1.7'); - blur.setAttribute('result', 'blur'); - filter.appendChild(blur); - - var offset = (svgDoc.createElementNS != null) ? - svgDoc.createElementNS(mxConstants.NS_SVG, 'feOffset') : svgDoc.createElement('feOffset'); - offset.setAttribute('in', 'blur'); - offset.setAttribute('dx', '3'); - offset.setAttribute('dy', '3'); - offset.setAttribute('result', 'offsetBlur'); - filter.appendChild(offset); - - var flood = (svgDoc.createElementNS != null) ? - svgDoc.createElementNS(mxConstants.NS_SVG, 'feFlood') : svgDoc.createElement('feFlood'); - flood.setAttribute('flood-color', '#3D4574'); - flood.setAttribute('flood-opacity', '0.4'); - flood.setAttribute('result', 'offsetColor'); - filter.appendChild(flood); - - var composite = (svgDoc.createElementNS != null) ? - svgDoc.createElementNS(mxConstants.NS_SVG, 'feComposite') : svgDoc.createElement('feComposite'); - composite.setAttribute('in', 'offsetColor'); - composite.setAttribute('in2', 'offsetBlur'); - composite.setAttribute('operator', 'in'); - composite.setAttribute('result', 'offsetBlur'); - filter.appendChild(composite); - - var feBlend = (svgDoc.createElementNS != null) ? - svgDoc.createElementNS(mxConstants.NS_SVG, 'feBlend') : svgDoc.createElement('feBlend'); - feBlend.setAttribute('in', 'SourceGraphic'); - feBlend.setAttribute('in2', 'offsetBlur'); - filter.appendChild(feBlend); - - // Creates defs element if not available - var defs = svgRoot.getElementsByTagName('defs'); - var defsElt = null; - - if (defs.length == 0) - { - defsElt = (svgDoc.createElementNS != null) ? - svgDoc.createElementNS(mxConstants.NS_SVG, 'defs') : svgDoc.createElement('defs'); - - if (svgRoot.firstChild != null) - { - svgRoot.insertBefore(defsElt, svgRoot.firstChild); - } - else - { - svgRoot.appendChild(defsElt); - } - } - else - { - defsElt = defs[0]; - } - - defsElt.appendChild(filter); - - if (!createOnly) - { - (group || svgRoot.getElementsByTagName('g')[0]).setAttribute('filter', 'url(#' + this.graph.shadowId + ')'); - - if (!isNaN(parseInt(svgRoot.getAttribute('width')))) - { - svgRoot.setAttribute('width', parseInt(svgRoot.getAttribute('width')) + 6); - svgRoot.setAttribute('height', parseInt(svgRoot.getAttribute('height')) + 6); - } - } - - return filter; - }; - /** * Return array of string values, or NULL if CSV string not well formed. */ @@ -1156,6 +1071,94 @@ this.currentStyle = 'default-style2'; }; + /** + * Adds a shadow filter to the given svg root. + */ + Graph.prototype.addSvgShadow = function(svgRoot, group, createOnly) + { + createOnly = (createOnly != null) ? createOnly : false; + + var svgDoc = svgRoot.ownerDocument; + + var filter = (svgDoc.createElementNS != null) ? + svgDoc.createElementNS(mxConstants.NS_SVG, 'filter') : svgDoc.createElement('filter'); + filter.setAttribute('id', this.shadowId); + + var blur = (svgDoc.createElementNS != null) ? + svgDoc.createElementNS(mxConstants.NS_SVG, 'feGaussianBlur') : svgDoc.createElement('feGaussianBlur'); + blur.setAttribute('in', 'SourceAlpha'); + blur.setAttribute('stdDeviation', '1.7'); + blur.setAttribute('result', 'blur'); + filter.appendChild(blur); + + var offset = (svgDoc.createElementNS != null) ? + svgDoc.createElementNS(mxConstants.NS_SVG, 'feOffset') : svgDoc.createElement('feOffset'); + offset.setAttribute('in', 'blur'); + offset.setAttribute('dx', '3'); + offset.setAttribute('dy', '3'); + offset.setAttribute('result', 'offsetBlur'); + filter.appendChild(offset); + + var flood = (svgDoc.createElementNS != null) ? + svgDoc.createElementNS(mxConstants.NS_SVG, 'feFlood') : svgDoc.createElement('feFlood'); + flood.setAttribute('flood-color', '#3D4574'); + flood.setAttribute('flood-opacity', '0.4'); + flood.setAttribute('result', 'offsetColor'); + filter.appendChild(flood); + + var composite = (svgDoc.createElementNS != null) ? + svgDoc.createElementNS(mxConstants.NS_SVG, 'feComposite') : svgDoc.createElement('feComposite'); + composite.setAttribute('in', 'offsetColor'); + composite.setAttribute('in2', 'offsetBlur'); + composite.setAttribute('operator', 'in'); + composite.setAttribute('result', 'offsetBlur'); + filter.appendChild(composite); + + var feBlend = (svgDoc.createElementNS != null) ? + svgDoc.createElementNS(mxConstants.NS_SVG, 'feBlend') : svgDoc.createElement('feBlend'); + feBlend.setAttribute('in', 'SourceGraphic'); + feBlend.setAttribute('in2', 'offsetBlur'); + filter.appendChild(feBlend); + + // Creates defs element if not available + var defs = svgRoot.getElementsByTagName('defs'); + var defsElt = null; + + if (defs.length == 0) + { + defsElt = (svgDoc.createElementNS != null) ? + svgDoc.createElementNS(mxConstants.NS_SVG, 'defs') : svgDoc.createElement('defs'); + + if (svgRoot.firstChild != null) + { + svgRoot.insertBefore(defsElt, svgRoot.firstChild); + } + else + { + svgRoot.appendChild(defsElt); + } + } + else + { + defsElt = defs[0]; + } + + defsElt.appendChild(filter); + + if (!createOnly) + { + (group || svgRoot.getElementsByTagName('g')[0]).setAttribute('filter', 'url(#' + this.shadowId + ')'); + + if (!isNaN(parseInt(svgRoot.getAttribute('width')))) + { + svgRoot.setAttribute('width', parseInt(svgRoot.getAttribute('width')) + 6); + svgRoot.setAttribute('height', parseInt(svgRoot.getAttribute('height')) + 6); + } + } + + return filter; + }; + /** * Loads the stylesheet for this graph. */ diff --git a/war/js/diagramly/EditorUi.js b/war/js/diagramly/EditorUi.js index 0efb49968..8ab42d5ac 100644 --- a/war/js/diagramly/EditorUi.js +++ b/war/js/diagramly/EditorUi.js @@ -1062,7 +1062,7 @@ if (addShadow) { - this.editor.addSvgShadow(svgRoot); + this.editor.graph.addSvgShadow(svgRoot); } // Embeds the images in the SVG output (async) @@ -2434,17 +2434,8 @@ */ EditorUi.prototype.saveCanvas = function(canvas, xml, format) { - var file = this.getCurrentFile(); - var filename = (file != null && file.getTitle() != null) ? file.getTitle() : this.defaultFilename; - var dot = filename.lastIndexOf('.'); - - if (dot > 0) - { - filename = filename.substring(0, dot); - } - - var ext = (format == 'jpeg') ? 'jpg' : format; - filename += '.' + ext; + var ext = ((format == 'jpeg') ? 'jpg' : format); + var filename = this.getBaseFilename() + '.' + ext; var data = this.createImageDataUri(canvas, xml, format); this.saveData(filename, ext, data.substring(data.lastIndexOf(',') + 1), 'image/' + format, true); }; @@ -2825,20 +2816,10 @@ if (addShadow) { - this.editor.addSvgShadow(svgRoot); - } - - var file = this.getCurrentFile(); - var filename = (file != null && file.getTitle() != null) ? file.getTitle() : this.defaultFilename; - - var dot = filename.lastIndexOf('.'); - - if (dot > 0) - { - filename = filename.substring(0, dot); + this.editor.graph.addSvgShadow(svgRoot); } - filename += '.svg'; + var filename = this.getBaseFilename() + '.svg'; var doSave = mxUtils.bind(this, function(svgRoot) { @@ -3881,7 +3862,7 @@ // Adds shadow filter if (shadow) { - this.editor.addSvgShadow(svgRoot); + this.editor.graph.addSvgShadow(svgRoot); } // SVG inside image tag @@ -4082,16 +4063,11 @@ */ EditorUi.prototype.getEmbeddedSvg = function(xml, graph, url, noHeader, callback, ignoreSelection, redirect) { - var bg = null; + var bg = graph.background; - if (graph != null) + if (bg == mxConstants.NONE) { - bg = graph.background; - - if (bg == mxConstants.NONE) - { - bg = null; - } + bg = null; } // Sets or disables alternate text for foreignObjects. Disabling is needed @@ -4268,7 +4244,7 @@ { if (addShadow) { - this.editor.addSvgShadow(svgRoot); + this.editor.graph.addSvgShadow(svgRoot); } this.convertMath(graph, svgRoot, true, mxUtils.bind(this, function() @@ -5607,7 +5583,7 @@ if (mxClient.IS_SVG) { // LATER: Add shadow for labels in graph.container (eg. math, NO_FO), scaling - this.editor.addSvgShadow(graph.view.canvas.ownerSVGElement, null, true); + this.editor.graph.addSvgShadow(graph.view.canvas.ownerSVGElement, null, true); } /** diff --git a/war/js/diagramly/Embed.js b/war/js/diagramly/Embed.js index 1d36c4890..7713180f8 100644 --- a/war/js/diagramly/Embed.js +++ b/war/js/diagramly/Embed.js @@ -64,7 +64,7 @@ var script = document.createElement('script'); script.type = 'text/javascript'; - script.src = 'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_HTMLorMML'; + script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'; document.getElementsByTagName('head')[0].appendChild(script); } }; diff --git a/war/js/diagramly/GitHubClient.js b/war/js/diagramly/GitHubClient.js index c59f2e2d8..90ac23b91 100644 --- a/war/js/diagramly/GitHubClient.js +++ b/war/js/diagramly/GitHubClient.js @@ -351,7 +351,7 @@ GitHubClient.prototype.getFile = function(path, success, error, asLibrary) if (this.token != null) { var url = this.baseUrl + '/repos/' + org + '/' + repo + '/contents/' + - path + '?ref=' + decodeURIComponent(ref) + '&token=' + this.token; + path + '?ref=' + ref + '&token=' + this.token; var tokens = path.split('/'); var name = (tokens.length > 0) ? tokens[tokens.length - 1] : path; @@ -365,7 +365,7 @@ GitHubClient.prototype.getFile = function(path, success, error, asLibrary) else { var req = new mxXmlRequest(this.baseUrl + '/repos/' + org + '/' + repo + - '/contents/' + path + '?ref=' + decodeURIComponent(ref), null, 'GET'); + '/contents/' + path + '?ref=' + ref, null, 'GET'); this.executeRequest(req, mxUtils.bind(this, function(req) { @@ -770,14 +770,20 @@ GitHubClient.prototype.showGitHubDialog = function(showFiles, fn) this.ui.handleError(err, null, mxUtils.bind(this, function() { this.ui.spinner.stop(); - this.ui.hideDialog(); + + org = null; + repo = null; + ref = null; + path = null; + + selectRepo(); })); }); var selectFile = mxUtils.bind(this, function() { var req = new mxXmlRequest(this.baseUrl + '/repos/' + org + '/' + repo + - '/contents/' + path + '?ref=' + ref, null, 'GET'); + '/contents/' + path + '?ref=' + encodeURIComponent(ref), null, 'GET'); dlg.okButton.removeAttribute('disabled'); div.innerHTML = ''; this.ui.spinner.spin(div, mxResources.get('loading')); diff --git a/war/js/diagramly/GraphViewer.js b/war/js/diagramly/GraphViewer.js index ff5146ee7..5869fb406 100644 --- a/war/js/diagramly/GraphViewer.js +++ b/war/js/diagramly/GraphViewer.js @@ -136,7 +136,7 @@ GraphViewer.prototype.init = function(container, xmlNode, graphConfig) if (mxClient.IS_SVG) { // LATER: Add shadow for labels in graph.container (eg. math, NO_FO), scaling - this.editor.addSvgShadow(this.graph.view.canvas.ownerSVGElement, null, true); + this.editor.graph.addSvgShadow(this.graph.view.canvas.ownerSVGElement, null, true); } // Adds page placeholders diff --git a/war/js/diagramly/Menus.js b/war/js/diagramly/Menus.js index 1bd76be1b..99a378188 100644 --- a/war/js/diagramly/Menus.js +++ b/war/js/diagramly/Menus.js @@ -305,11 +305,11 @@ } }, null, null, 'Ctrl+Shift+M'); - var copiedStyles = ['rounded', 'shadow', 'dashed', 'dashPattern', 'fontFamily', 'fontSize', 'fontColor', 'fontStyle', 'align', - 'verticalAlign', 'strokeColor', 'strokeWidth', 'fillColor', 'gradientColor', 'swimlaneFillColor', + var copiedStyles = ['rounded', 'shadow', 'dashed', 'dashPattern', 'fontFamily', 'fontSize', 'fontColor', 'fontStyle', + 'align', 'verticalAlign', 'strokeColor', 'strokeWidth', 'fillColor', 'gradientColor', 'swimlaneFillColor', 'textOpacity', 'gradientDirection', 'glass', 'labelBackgroundColor', 'labelBorderColor', 'opacity', 'spacing', 'spacingTop', 'spacingLeft', 'spacingBottom', 'spacingRight', 'endFill', 'endArrow', - 'endSize', 'startStill', 'startArrow', 'startSize']; + 'endSize', 'startStill', 'startArrow', 'startSize', 'arcSize']; editorUi.actions.addAction('copyStyle', function() { diff --git a/war/js/diagramly/Settings.js b/war/js/diagramly/Settings.js index 1eff9f5f9..d9cbc8504 100644 --- a/war/js/diagramly/Settings.js +++ b/war/js/diagramly/Settings.js @@ -1,3 +1,7 @@ +/** + * Copyright (c) 2006-2017, JGraph Ltd + * Copyright (c) 2006-2017, Gaudenz Alder + */ /** * Utility class for working with persisted application settings */ diff --git a/war/js/diagramly/StorageFile.js b/war/js/diagramly/StorageFile.js index 82749b854..df22f4f2a 100644 --- a/war/js/diagramly/StorageFile.js +++ b/war/js/diagramly/StorageFile.js @@ -1,5 +1,7 @@ -// $Id = StorageFile.js,v 1.12 2010-01-02 09 =45 =14 gaudenz Exp $ -// Copyright (c) 2006-2014, JGraph Ltd +/** + * Copyright (c) 2006-2017, JGraph Ltd + * Copyright (c) 2006-2017, Gaudenz Alder + */ /** * Constructs a new point for the optional x and y coordinates. If no * coordinates are given, then the default values for and are used. diff --git a/war/js/diagramly/StorageLibrary.js b/war/js/diagramly/StorageLibrary.js index f64520c82..847f5d1cf 100644 --- a/war/js/diagramly/StorageLibrary.js +++ b/war/js/diagramly/StorageLibrary.js @@ -1,5 +1,7 @@ -// $Id = DriveFile.js,v 1.12 2010-01-02 09 =45 =14 gaudenz Exp $ -// Copyright (c) 2006-2014, JGraph Ltd +/** + * Copyright (c) 2006-2017, JGraph Ltd + * Copyright (c) 2006-2017, Gaudenz Alder + */ /** * Constructs a new point for the optional x and y coordinates. If no * coordinates are given, then the default values for and are used. diff --git a/war/js/diagramly/UrlLibrary.js b/war/js/diagramly/UrlLibrary.js index f4cde237f..f0ea731e8 100644 --- a/war/js/diagramly/UrlLibrary.js +++ b/war/js/diagramly/UrlLibrary.js @@ -1,5 +1,7 @@ -// $Id = DriveFile.js,v 1.12 2010-01-02 09 =45 =14 gaudenz Exp $ -// Copyright (c) 2006-2014, JGraph Ltd +/** + * Copyright (c) 2006-2017, JGraph Ltd + * Copyright (c) 2006-2017, Gaudenz Alder + */ /** * Constructs a new point for the optional x and y coordinates. If no * coordinates are given, then the default values for and are used. diff --git a/war/js/embed-static.min.js b/war/js/embed-static.min.js index a5667a983..df442d2f0 100644 --- a/war/js/embed-static.min.js +++ b/war/js/embed-static.min.js @@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+x.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;enavigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.5.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&& 0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| @@ -490,11 +490,10 @@ mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b b[mxUtils.mod(g+2,b.length)],g++;l=h.x-k.x;h=h.y-k.y;m=Math.max(1,Math.sqrt(l*l+h*h));l=k.x+l*Math.min(d,m/2)/m;h=k.y+h*Math.min(d,m/2)/m;a.quadTo(k.x,k.y,l,h);k=new mxPoint(l,h)}h=k;g++}e?a.close():a.lineTo(f.x,f.y)}; mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass}; mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY, -this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.arrowStrokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style, -mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style, -mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed= -1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)}; -mxShape.prototype.getCursor=function(){return this.cursor}; +this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style, +mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV, +0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style, +mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)};mxShape.prototype.getCursor=function(){return this.cursor}; mxShape.prototype.updateBoundingBox=function(){if(this.useSvgBoundingBox&&null!=this.node&&null!=this.node.ownerSVGElement)try{var a=this.node.getBBox();if(0=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(), a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),f").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,""").replace(/ /g,"\n"):"%3C"==l.substring(0,3)?decodeURIComponent(l):c.decompress(l),h=mxUtils.parseXml(l), diff --git a/war/js/embed.dev.js b/war/js/embed.dev.js index 2617c6b9d..c6bf6fa01 100644 --- a/war/js/embed.dev.js +++ b/war/js/embed.dev.js @@ -64,7 +64,7 @@ var script = document.createElement('script'); script.type = 'text/javascript'; - script.src = 'https://cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_HTMLorMML'; + script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-MML-AM_HTMLorMML'; document.getElementsByTagName('head')[0].appendChild(script); } }; diff --git a/war/js/embed.min.js b/war/js/embed.min.js index 7e959ad27..5386bdebe 100644 --- a/war/js/embed.min.js +++ b/war/js/embed.min.js @@ -1,4 +1,4 @@ -(function(x,r){function N(){if(!t){t=!0;window.MathJax={skipStartupTypeset:!0,showMathMenu:!1,messageStyle:"none",AuthorInit:function(){MathJax.Hub.Config({"HTML-CSS":{availableFonts:[],webFont:"STIX-Web",imageFont:null}});MathJax.Hub.Register.StartupHook("Begin",function(){for(var a=0;a").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,""").replace(/ /g,"\n"):"%3C"==l.substring(0,3)?decodeURIComponent(l):c.decompress(l),h=mxUtils.parseXml(l), diff --git a/war/js/mxgraph/Actions.js b/war/js/mxgraph/Actions.js index b29ffe506..bb77871a5 100644 --- a/war/js/mxgraph/Actions.js +++ b/war/js/mxgraph/Actions.js @@ -966,6 +966,8 @@ Actions.prototype.init = function() if (cells != null) { + cells = graph.addAllEdges(cells); + graph.getModel().beginUpdate(); try { @@ -991,7 +993,7 @@ Actions.prototype.init = function() graph.getModel().endUpdate(); } } - }); + }, null, null, 'Alt+Shift+C'); action = this.addAction('subscript', mxUtils.bind(this, function() { if (graph.cellEditor.isContentEditing()) diff --git a/war/js/mxgraph/Editor.js b/war/js/mxgraph/Editor.js index af5d5fb44..d70a1a018 100644 --- a/war/js/mxgraph/Editor.js +++ b/war/js/mxgraph/Editor.js @@ -66,30 +66,29 @@ Editor.pageCounter = 0; // were opened from another domain then this will fail. (function() { - if (!mxClient.IS_FF) // https://drawio.atlassian.net/browse/DS-795 + try { - try + var op = window; + + while (op.opener != null && typeof op.opener.Editor !== 'undefined' && + !isNaN(op.opener.Editor.pageCounter) && + // Workaround for possible infinite loop in FF https://drawio.atlassian.net/browse/DS-795 + op.opener != op) { - var op = window; - - while (op.opener != null && typeof op.opener.Editor !== 'undefined' && - !isNaN(op.opener.Editor.pageCounter)) - { - op = op.opener; - } - - // Increments the counter in the first opener in the chain - if (op != null) - { - op.Editor.pageCounter++; - Editor.pageCounter = op.Editor.pageCounter; - } + op = op.opener; } - catch (e) + + // Increments the counter in the first opener in the chain + if (op != null) { - // ignore + op.Editor.pageCounter++; + Editor.pageCounter = op.Editor.pageCounter; } } + catch (e) + { + // ignore + } })(); /** @@ -629,6 +628,7 @@ OpenFile = function(done) this.producer = null; this.consumer = null; this.done = done; + this.args = null; }; /** @@ -643,10 +643,9 @@ OpenFile.prototype.setConsumer = function(value) /** * Sets the data from the loaded file. */ -OpenFile.prototype.setData = function(value, filename) +OpenFile.prototype.setData = function() { - this.data = value; - this.filename = filename; + this.args = arguments; this.execute(); }; @@ -664,10 +663,10 @@ OpenFile.prototype.error = function(msg) */ OpenFile.prototype.execute = function() { - if (this.consumer != null && this.data != null) + if (this.consumer != null && this.args != null) { this.cancel(false); - this.consumer(this.data, this.filename); + this.consumer.apply(this, this.args); } }; diff --git a/war/js/mxgraph/EditorUi.js b/war/js/mxgraph/EditorUi.js index d02a36878..1dcd66d99 100644 --- a/war/js/mxgraph/EditorUi.js +++ b/war/js/mxgraph/EditorUi.js @@ -2527,9 +2527,9 @@ EditorUi.prototype.updateActionStates = function() } this.actions.get('setAsDefaultStyle').setEnabled(graph.getSelectionCount() == 1); + this.actions.get('clearWaypoints').setEnabled(!graph.isSelectionEmpty()); this.actions.get('turn').setEnabled(!graph.isSelectionEmpty()); this.actions.get('curved').setEnabled(edgeSelected); - this.actions.get('clearWaypoints').setEnabled(edgeSelected); this.actions.get('rotation').setEnabled(vertexSelected); this.actions.get('wordWrap').setEnabled(vertexSelected); this.actions.get('autosize').setEnabled(vertexSelected); @@ -3604,10 +3604,24 @@ EditorUi.prototype.createKeyHandler = function(editor) var keyHandlerGetFunction = keyHandler.getFunction; + // Alt+Shift+Keycode mapping to action + var altShiftActions = {67: this.actions.get('clearWaypoints')}; // Alt+Shift+C + mxKeyHandler.prototype.getFunction = function(evt) { if (graph.isEnabled()) { + // TODO: Add alt modified state in core API, here are some specific cases + if (!graph.isSelectionEmpty() && mxEvent.isShiftDown(evt) && mxEvent.isAltDown(evt)) + { + var action = altShiftActions[evt.keyCode]; + + if (action != null) + { + return action.funct; + } + } + if (evt.keyCode == 9 && mxEvent.isAltDown(evt)) { if (mxEvent.isShiftDown(evt)) diff --git a/war/js/mxgraph/Format.js b/war/js/mxgraph/Format.js index 73da9e17a..cc6706681 100644 --- a/war/js/mxgraph/Format.js +++ b/war/js/mxgraph/Format.js @@ -1528,7 +1528,7 @@ ArrangePanel.prototype.addGroupOps = function(div) div.appendChild(btn); count++; } - else if (ss.edges.length > 0) + else if (graph.getSelectionCount() > 0) { if (count > 0) { @@ -1540,7 +1540,7 @@ ArrangePanel.prototype.addGroupOps = function(div) this.editorUi.actions.get('clearWaypoints').funct(); })); - btn.setAttribute('title', mxResources.get('clearWaypoints')); + btn.setAttribute('title', mxResources.get('clearWaypoints') + ' (' + this.editorUi.actions.get('clearWaypoints').shortcut + ')'); btn.style.width = '202px'; btn.style.marginBottom = '2px'; div.appendChild(btn); diff --git a/war/js/mxgraph/Menus.js b/war/js/mxgraph/Menus.js index a0e2a21aa..8f66c960b 100644 --- a/war/js/mxgraph/Menus.js +++ b/war/js/mxgraph/Menus.js @@ -992,7 +992,7 @@ Menus.prototype.createPopupMenu = function(menu, cell, evt) } - if (graph.getSelectionCount() > 0) + if (!graph.isSelectionEmpty()) { if (graph.getSelectionCount() == 1) { @@ -1003,13 +1003,11 @@ Menus.prototype.createPopupMenu = function(menu, cell, evt) cell = graph.getSelectionCell(); var state = graph.view.getState(cell); - + if (state != null) { - if (graph.getSelectionCount() == 1) - { - this.addMenuItems(menu, ['toFront', 'toBack', '-'], null, evt); - } + var hasWaypoints = false; + this.addMenuItems(menu, ['toFront', 'toBack', '-'], null, evt); if (graph.getModel().isEdge(cell) && mxUtils.getValue(state.style, mxConstants.STYLE_EDGE, null) != 'entityRelationEdgeStyle' && mxUtils.getValue(state.style, mxConstants.STYLE_SHAPE, null) != 'arrow') @@ -1034,13 +1032,15 @@ Menus.prototype.createPopupMenu = function(menu, cell, evt) // Adds reset waypoints option if waypoints exist var geo = graph.getModel().getGeometry(cell); - - if (geo != null && geo.points != null && geo.points.length > 0) - { - this.addMenuItems(menu, ['clearWaypoints'], null, evt); - } + hasWaypoints = geo != null && geo.points != null && geo.points.length > 0; } + if (graph.getSelectionCount() == 1 && (hasWaypoints || (graph.getModel().isVertex(cell) && + graph.getModel().getEdgeCount(cell) > 0))) + { + this.addMenuItems(menu, ['clearWaypoints'], null, evt); + } + if (graph.getSelectionCount() > 1) { menu.addSeparator(); diff --git a/war/js/mxgraph/Shapes.js b/war/js/mxgraph/Shapes.js index 0a2c0ada2..b80ad0aa5 100644 --- a/war/js/mxgraph/Shapes.js +++ b/war/js/mxgraph/Shapes.js @@ -2926,7 +2926,14 @@ // LATER: Make locked state independent of rotatable flag, fix toggle if default is false //if (this.graph.isCellResizable(this.state.cell) || this.graph.isCellMovable(this.state.cell)) { - var fn = handleFactory[this.state.style['shape']]; + var name = this.state.style['shape']; + + if (this.state.view.graph.cellRenderer.defaultShapes[name] == null) + { + name = mxConstants.SHAPE_RECTANGLE; + } + + var fn = handleFactory[name]; if (fn != null) { @@ -2942,7 +2949,14 @@ { if (this.state.view.graph.getSelectionCount() == 1) { - var fn = handleFactory[this.state.style['shape']]; + var name = this.state.style['shape']; + + if (this.state.view.graph.cellRenderer.defaultShapes[name] == null) + { + name = mxConstants.SHAPE_CONNECTOR; + } + + var fn = handleFactory[name]; if (fn != null) { diff --git a/war/js/reader.min.js b/war/js/reader.min.js index b521699a3..9d1d6e838 100644 --- a/war/js/reader.min.js +++ b/war/js/reader.min.js @@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+x.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;enavigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"6.5.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&& 0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| @@ -490,11 +490,10 @@ mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b b[mxUtils.mod(g+2,b.length)],g++;l=h.x-k.x;h=h.y-k.y;m=Math.max(1,Math.sqrt(l*l+h*h));l=k.x+l*Math.min(d,m/2)/m;h=k.y+h*Math.min(d,m/2)/m;a.quadTo(k.x,k.y,l,h);k=new mxPoint(l,h)}h=k;g++}e?a.close():a.lineTo(f.x,f.y)}; mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass}; mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY, -this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.arrowStrokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style, -mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style, -mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed= -1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)}; -mxShape.prototype.getCursor=function(){return this.cursor}; +this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style, +mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV, +0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style, +mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)};mxShape.prototype.getCursor=function(){return this.cursor}; mxShape.prototype.updateBoundingBox=function(){if(this.useSvgBoundingBox&&null!=this.node&&null!=this.node.ownerSVGElement)try{var a=this.node.getBBox();if(0=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(), a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),f"]=F["+"]=F["~"]=F;k=function(a,b,c){function d(d,l){function m(c,d,e){var g,l,m,p,r,t=!0;g="";cq&&(b.adler=F(b.adler,n.pending_bu q,q)),g(b),q=n.pending,n.pending===n.pending_buf_size)){r=1;break}r=n.gzindexq&&(b.adler=F(b.adler,n.pending_buf,n.pending-q,q));0===r&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){q=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>q&&(b.adler=F(b.adler,n.pending_buf,n.pending-q,q)),g(b),q=n.pending,n.pending===n.pending_buf_size)){r= 1;break}r=n.gzindexq&&(b.adler=F(b.adler,n.pending_buf,n.pending-q,q));0===r&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&g(b),n.pending+2<=n.pending_buf_size&&(l(n,255&b.adler),l(n,b.adler>>8&255),b.adler=0,n.status=ba)):n.status=ba),0!==n.pending){if(g(b),0===b.avail_out)return n.last_flush=-1,I}else if(0===b.avail_in&&(c<<1)- (4=K&&0n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=K?(t=E._tr_tally(n,1,n.match_length- +O:Y)}else if(3===n.strategy)a:{var x,D;for(u=n.window;;){if(n.lookahead<=N){if(p(n),n.lookahead<=N&&c===B){t=O;break a}if(0===n.lookahead)break}if(n.match_length=0,n.lookahead>=K&&0n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=K?(t=E._tr_tally(n,1,n.match_length- K),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(t=E._tr_tally(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),t&&(k(n,!1),0===n.strm.avail_out)){t=O;break a}}t=(n.insert=0,c===G?(k(n,!0),0===n.strm.avail_out?Z:P):n.last_lit&&(k(n,!1),0===n.strm.avail_out)?O:Y)}else t=A[n.level].func(n,c);if(t!==Z&&t!==P||(n.status=666),t===O||t===Z)return 0===b.avail_out&&(n.last_flush=-1),I;if(t===Y&&(1===c?E._tr_align(n):5!==c&&(E._tr_stored_block(n,0,0,!1),3===c&&(f(n.head),0=== n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),g(b),0===b.avail_out))return n.last_flush=-1,I}return c!==G?I:0>=n.wrap?1:(2===n.wrap?(l(n,255&b.adler),l(n,b.adler>>8&255),l(n,b.adler>>16&255),l(n,b.adler>>24&255),l(n,255&b.total_in),l(n,b.total_in>>8&255),l(n,b.total_in>>16&255),l(n,b.total_in>>24&255)):(m(n,b.adler>>>16),m(n,65535&b.adler)),g(b),0=d.w_size&&(0===g&&(f(d.head),d.strstart=0,d.block_start=0,d.insert=0),l=new v.Buf8(d.w_size),v.arraySet(l,c,e-d.w_size,d.w_size,0),c=l,e=d.w_size);l=b.avail_in;m=b.next_in;n=b.input;b.avail_in=e;b.next_in=0;b.input=c;for(p(d);d.lookahead>= @@ -363,7 +363,7 @@ mxWindow.prototype.isVisible=function(){return null!=this.div?"none"!=this.div.s mxWindow.prototype.show=function(){this.div.style.display="";this.activate();var a=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_QUIRKS||"auto"!=a.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-this.contentHeightCorrection+"px");this.fireEvent(new mxEventObject(mxEvent.SHOW))};mxWindow.prototype.hide=function(){this.div.style.display="none";this.fireEvent(new mxEventObject(mxEvent.HIDE))}; mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY));null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null);this.contentWrapper=this.content=this.title=null};function mxForm(a){this.table=document.createElement("table");this.table.className=a;this.body=document.createElement("tbody");this.table.appendChild(this.body)}mxForm.prototype.table=null;mxForm.prototype.body=!1;mxForm.prototype.getTable=function(){return this.table}; mxForm.prototype.addButtons=function(a,b){var c=document.createElement("tr"),d=document.createElement("td");c.appendChild(d);var d=document.createElement("td"),e=document.createElement("button");mxUtils.write(e,mxResources.get("ok")||"OK");d.appendChild(e);mxEvent.addListener(e,"click",function(){a()});e=document.createElement("button");mxUtils.write(e,mxResources.get("cancel")||"Cancel");d.appendChild(e);mxEvent.addListener(e,"click",function(){b()});c.appendChild(d);this.body.appendChild(c)}; -mxForm.prototype.addText=function(a,b){var c=document.createElement("input");c.setAttribute("type","text");c.value=b;return this.addField(a,c)};mxForm.prototype.addCheckbox=function(a,b){var c=document.createElement("input");c.setAttribute("type","checkbox");this.addField(a,c);b&&(c.checked=!0);return c};mxForm.prototype.addTextarea=function(a,b,c){var d=document.createElement("textarea");mxClient.IS_NS&&c--;d.setAttribute("rows",c||2);d.value=b;return this.addField(a,d)}; +mxForm.prototype.addText=function(a,b,c){var d=document.createElement("input");d.setAttribute("type",c||"text");d.value=b;return this.addField(a,d)};mxForm.prototype.addCheckbox=function(a,b){var c=document.createElement("input");c.setAttribute("type","checkbox");this.addField(a,c);b&&(c.checked=!0);return c};mxForm.prototype.addTextarea=function(a,b,c){var d=document.createElement("textarea");mxClient.IS_NS&&c--;d.setAttribute("rows",c||2);d.value=b;return this.addField(a,d)}; mxForm.prototype.addCombo=function(a,b,c){var d=document.createElement("select");null!=c&&d.setAttribute("size",c);b&&d.setAttribute("multiple","true");return this.addField(a,d)};mxForm.prototype.addOption=function(a,b,c,d){var e=document.createElement("option");mxUtils.writeln(e,b);e.setAttribute("value",c);d&&e.setAttribute("selected",d);a.appendChild(e)}; mxForm.prototype.addField=function(a,b){var c=document.createElement("tr"),d=document.createElement("td");mxUtils.write(d,a);c.appendChild(d);d=document.createElement("td");d.appendChild(b);c.appendChild(d);this.body.appendChild(c);return b};function mxImage(a,b,c){this.src=a;this.width=b;this.height=c}mxImage.prototype.src=null;mxImage.prototype.width=null;mxImage.prototype.height=null; function mxDivResizer(a,b){if("div"==a.nodeName.toLowerCase()){null==b&&(b=window);this.div=a;var c=mxUtils.getCurrentStyle(a);null!=c&&(this.resizeWidth="auto"==c.width,this.resizeHeight="auto"==c.height);mxEvent.addListener(b,"resize",mxUtils.bind(this,function(a){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)}));this.resize()}}mxDivResizer.prototype.resizeWidth=!0;mxDivResizer.prototype.resizeHeight=!0;mxDivResizer.prototype.handlingResize=!1; @@ -629,11 +629,10 @@ mxShape.prototype.addPoints=function(a,b,c,d,e){var f=b[b.length-1];if(e&&c){b=b b[mxUtils.mod(g+2,b.length)],g++;m=k.x-l.x;k=k.y-l.y;n=Math.max(1,Math.sqrt(m*m+k*k));m=l.x+m*Math.min(d,n/2)/n;k=l.y+k*Math.min(d,n/2)/n;a.quadTo(l.x,l.y,m,k);l=new mxPoint(m,k)}k=l;g++}e?a.close():a.lineTo(f.x,f.y)}; mxShape.prototype.resetStyles=function(){this.initStyles();this.spacing=0;delete this.fill;delete this.gradient;delete this.gradientDirection;delete this.stroke;delete this.startSize;delete this.endSize;delete this.startArrow;delete this.endArrow;delete this.direction;delete this.isShadow;delete this.isDashed;delete this.isRounded;delete this.glass}; mxShape.prototype.apply=function(a){this.state=a;this.style=a.style;if(null!=this.style){this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill);this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient);this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection);this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity);this.fillOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_FILL_OPACITY, -this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.arrowStrokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style, -mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style, -mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed= -1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)}; -mxShape.prototype.getCursor=function(){return this.cursor}; +this.fillOpacity);this.strokeOpacity=mxUtils.getValue(this.style,mxConstants.STYLE_STROKE_OPACITY,this.strokeOpacity);this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke);this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth);this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing);this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize);this.endSize=mxUtils.getNumber(this.style, +mxConstants.STYLE_ENDSIZE,this.endSize);this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow);this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow);this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation);this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction);this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0);this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV, +0);null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV);if(this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH)a=this.flipH,this.flipH=this.flipV,this.flipV=a;this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow);this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed);this.isRounded=1==mxUtils.getValue(this.style, +mxConstants.STYLE_ROUNDED,this.isRounded);this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass);this.fill==mxConstants.NONE&&(this.fill=null);this.gradient==mxConstants.NONE&&(this.gradient=null);this.stroke==mxConstants.NONE&&(this.stroke=null)}};mxShape.prototype.setCursor=function(a){null==a&&(a="");this.cursor=a;null!=this.node&&(this.node.style.cursor=a)};mxShape.prototype.getCursor=function(){return this.cursor}; mxShape.prototype.updateBoundingBox=function(){if(this.useSvgBoundingBox&&null!=this.node&&null!=this.node.ownerSVGElement)try{var a=this.node.getBBox();if(0=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(), a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),f=e)&&a.close(),a.fillAndStroke(),f=d)&&a.close(),a.fillAndStroke(),fdocument.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+ -"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var c=0;cdocument.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":b.style.backgroundColor=a.fill,b.style.border="1px solid "+ +a.stroke):(b.style.backgroundColor="#ffffff",b.style.border="1px solid #000000");e.appendChild(b)}e.innerHTML="";for(var c=0;c';EditorUi.prototype.emptyLibraryXml="[]";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.enableLogging=!0;EditorUi.prototype.pdfPageExport=!0;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas"),b=new Image;b.onload=function(){try{a.getContext("2d").drawImage(b, 0,0);var c=a.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=c&&6
')))}catch(n){}try{a=document.createElement("canvas");a.width=a.height=1;var c= @@ -2649,7 +2649,7 @@ e?'\x3c!--[if IE]>\n'+(b?mxUtils.getXml(this.editor.getGraphXml(d)):this.getFileData(!0,null,null,null,d,e));this.saveData(g,a,l,"text/xml")}else if("html"==a)l=this.getHtml2(this.getFileData(!0),this.editor.graph,k),this.saveData(g,a,l,"text/html"); else if("svg"!=a&&"xmlsvg"!=a||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==a?g=k+".png":"jpeg"==a&&(g=k+".jpg"),this.saveRequest(g,a,mxUtils.bind(this,function(b,c){try{var e=this.editor.graph.pageVisible;null!=f&&(this.editor.graph.pageVisible=f);var k=this.createDownloadRequest(b,a,d,c);this.editor.graph.pageVisible=e;return k}catch(C){this.handleError(C)}}));else{var m=null,n=mxUtils.bind(this,function(a){a.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",a,"image/svg+xml"): -this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var p=this.editor.graph.background;p==mxConstants.NONE&&(p=null);var q=this.editor.graph.getSvg(p,null,null,null,null,d);c&&this.editor.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('\n\n'+ +this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==a){var p=this.editor.graph.background;p==mxConstants.NONE&&(p=null);var q=this.editor.graph.getSvg(p,null,null,null,null,d);c&&this.editor.graph.addSvgShadow(q);this.convertImages(q,mxUtils.bind(this,mxUtils.bind(this,function(a){this.spinner.stop();n('\n\n'+ mxUtils.getXml(a))})))}else g=k+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(a){this.spinner.stop();n(a)}),d)}}catch(v){this.handleError(v)}};EditorUi.prototype.createDownloadRequest=function(a,b,c,d){var e=this.editor.graph.getGraphBounds();c=this.getFileData(!0,null,null,null,c,"xmlpng"!=b);var f="";if(e.width*e.height>MAX_AREA||c.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};e="0";if("xmlpng"==b&&(e="1",b="png",null!=this.pages&&null!=this.currentPage))for(var k= 0;k'+mxUtils.htmlEntities(mxResources.get("tryOpeningViaThisPage"))+"")}else e.code==App.ERROR_TIMEOUT?a=mxUtils.htmlEntities(mxResources.get("timeout")):e.code==App.ERROR_BUSY?a=mxUtils.htmlEntities(mxResources.get("busy")):null!=e.message?a=mxUtils.htmlEntities(e.message):null!=e.response&&null!=e.response.error&&(a=mxUtils.htmlEntities(e.response.error)); this.showError(b,a,f,c,k)}else null!=c&&c()};EditorUi.prototype.showError=function(a,b,c,d,e,f,g){a=new ErrorDialog(this,a,b,c,d,e,f,g);this.showDialog(a.container,340,150,!0,!1);a.init()};EditorUi.prototype.alert=function(a,b){var c=new ErrorDialog(this,null,a,mxResources.get("ok"),b);this.showDialog(c.container,340,100,!0,!1);c.init()};EditorUi.prototype.confirm=function(a,b,c,d,e){var f=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){};this.showDialog((new ConfirmDialog(this, a,function(){f();null!=b&&b()},function(){f();null!=c&&c()},d,e)).container,340,90,!0,!1)};EditorUi.prototype.setCurrentFile=function(a){this.currentFile=a};EditorUi.prototype.getCurrentFile=function(){return this.currentFile};EditorUi.prototype.isDiagramEmpty=function(){var a=this.editor.graph.getModel();return 1==a.getChildCount(a.root)&&0==a.getChildCount(a.getChildAt(a.root,0))};EditorUi.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||!this.editor.graph.mathEnabled&&this.useCanvasForExport}; -EditorUi.prototype.createSvgDataUri=function(a){return"data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(a)))};EditorUi.prototype.createImageDataUri=function(a,b,c){var d=a.toDataURL("image/"+c);if(6>=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()? -d.getTitle():this.defaultFilename,e=d.lastIndexOf(".");0'),f.document.close())}else f=window.open("data:"+c+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==f&&mxUtils.popup(a,!0);else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0this.getServiceCount(!1)-1?270:390,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone; -a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0=e.getStatus())try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(), -a,f,!0,d,c)}catch(y){this.handleError(y)}else this.handleError({message:mxResources.get("errorSavingFile")})}),function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d,null,null,4);this.showDialog(a.container,380,5>this.getServiceCount(!1)-1?270:390,!0,!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg= -function(a,b,c,d,e,f,g,t,u){if(this.spinner.spin(document.body,mxResources.get("export"))){var k=this.editor.graph.isSelectionEmpty();c=null!=c?c:k;k=b?null:this.editor.graph.background;k==mxConstants.NONE&&(k=null);null==k&&0==b&&(k="#ffffff");var l=this.editor.graph.getSvg(k,a,g,t,null,c);d&&this.editor.addSvgShadow(l);a=this.getCurrentFile();var m=null!=a&&null!=a.getTitle()?a.getTitle():this.defaultFilename;a=m.lastIndexOf(".");0'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="4px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value", -"auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"), -d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var f="#0000ff",g=null,g=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();g.style.padding=mxClient.IS_FF?"4px 2px 4px 2px":"4px";g.style.marginLeft="4px";g.style.height="22px";g.style.width="22px";g.style.position="relative";g.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";g.className="geColorBtn";a.appendChild(g); -mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,f,g,t){var k=this.getCurrentFile(),l=[];d&&(l.push("lightbox=1"),"auto"!=a&&l.push("target="+a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),e&&l.push("edit=_blank"),f&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a= -0;a';k=0\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(f); -var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var l=document.createElement("span");mxUtils.write(l,mxResources.get("includeCopyOfMyDiagram")); -g.appendChild(l);mxUtils.br(g);g.appendChild(k);l=document.createElement("span");mxUtils.write(l,mxResources.get("publicDiagramUrl"));g.appendChild(l);var m=this.getCurrentFile();null==c&&null!=m&&m.constructor==window.DriveFile&&(l=document.createElement("a"),l.style.paddingLeft="12px",l.style.color="gray",l.setAttribute("href","javascript:void(0);"),mxUtils.write(l,mxResources.get("share")),g.appendChild(l),mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())}))); -f.setAttribute("checked","checked");null==c&&k.setAttribute("disabled","disabled");e.appendChild(g);var n=this.addLinkSection(e),z=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");var A=document.createElement("input");A.setAttribute("type","text");A.style.marginRight="16px";A.style.width="60px";A.style.marginLeft="4px";A.style.marginRight="12px";A.value="100%";e.appendChild(A);var v=this.addCheckbox(e,mxResources.get("fit"),!0),g=null!=this.pages&&1=d.length||d==a.cloneNode(!1).toDataURL("image/"+c))throw{message:"Invalid image"};null!=b&&(d=this.writeGraphModelToPng(d,"zTXt","mxGraphModel",atob(this.editor.graph.compress(b))));return d};EditorUi.prototype.saveCanvas=function(a,b,c){var d="jpeg"==c?"jpg":c,e=this.getBaseFilename()+"."+ +d;a=this.createImageDataUri(a,b,c);this.saveData(e,d,a.substring(a.lastIndexOf(",")+1),"image/"+c,!0)};EditorUi.prototype.isLocalFileSave=function(){return"remote"!=urlParams.save&&(mxClient.IS_IE||"undefined"!==typeof window.Blob&&"undefined"!==typeof window.URL)&&9!=document.documentMode&&8!=document.documentMode&&7!=document.documentMode&&!mxClient.IS_QUIRKS||this.isOfflineApp()||mxClient.IS_IOS};EditorUi.prototype.doSaveLocalFile=function(a,b,c,d,e){if(window.MSBlobBuilder&&navigator.msSaveOrOpenBlob)d= +new MSBlobBuilder,d.append(a),a=d.getBlob(c),navigator.msSaveOrOpenBlob(a,b);else if(mxClient.IS_IE)c=window.open("about:blank","_blank"),null==c?mxUtils.popup(a,!0):(c.document.write(a),c.document.close(),c.document.execCommand("SaveAs",!0,b),c.close());else if(mxClient.IS_IOS)b=new TextareaDialog(this,b+":",a,null,null,mxResources.get("close")),b.textarea.style.width="600px",b.textarea.style.height="380px",this.showDialog(b.container,620,460,!0,!0),b.init(),document.execCommand("selectall",!1,null); +else{var f=document.createElement("a");if("undefined"!==typeof f.download||this.isOffline()){f.href=URL.createObjectURL(d?this.base64ToBlob(a,c):new Blob([a],{type:c}));"undefined"!==typeof f.download?f.download=b:f.setAttribute("target","_blank");document.body.appendChild(f);try{f.click(),window.setTimeout(function(){URL.revokeObjectURL(f.href)},0),f.parentNode.removeChild(f)}catch(r){}}else this.createEchoRequest(a,b,c,d,e).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(a, +b,c,d,e,f){a="xml="+encodeURIComponent(a);return new mxXmlRequest(SAVE_URL,a+(null!=c?"&mime="+c:"")+(null!=e?"&format="+e:"")+(null!=f?"&base64="+f:"")+(null!=b?"&filename="+encodeURIComponent(b):"")+(d?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(a,b){b=b||"";for(var c=atob(a),d=c.length,e=Math.ceil(d/1024),f=Array(e),k=0;k'),f.document.close())}else f=window.open("data:"+c+(d?";base64,"+a:";charset=utf8,"+encodeURIComponent(a))),null==f&&mxUtils.popup(a,!0);else e==App.MODE_DEVICE?this.doSaveLocalFile(a,b,c,d):null!=b&&0this.getServiceCount(!1)-1?270:390,!0,!0);b.init()};EditorUi.prototype.saveData=function(a,b,c,d,e){this.isLocalFileSave()?this.saveLocalFile(c,a,d,e,b):this.saveRequest(a,b,mxUtils.bind(this,function(a,f){return this.createEchoRequest(c,a,d,e,b,f)}))};EditorUi.prototype.saveRequest=function(a,b,c){var d=!mxClient.IS_IOS||!navigator.standalone;a=new CreateDialog(this,a,mxUtils.bind(this,function(a,d){if("_blank"==d||null!=a&&0=e.getStatus())try{var f="pdf"==b?"application/pdf":"image/"+b;this.exportFile(e.getText(),a,f,!0,d,c)}catch(y){this.handleError(y)}else this.handleError({message:mxResources.get("errorSavingFile")})}), +function(a){this.spinner.stop();this.handleError(a)})})))}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,!1,d,null,null,4);this.showDialog(a.container,380,5>this.getServiceCount(!1)-1?270:390,!0,!0);a.init()};EditorUi.prototype.exportFile=function(a,b,c,d,e,f){};EditorUi.prototype.pickFolder=function(a,b,c){b(null)};EditorUi.prototype.exportSvg=function(a,b,c,d,e,f,g,t,u){if(this.spinner.spin(document.body,mxResources.get("export"))){var k= +this.editor.graph.isSelectionEmpty();c=null!=c?c:k;k=b?null:this.editor.graph.background;k==mxConstants.NONE&&(k=null);null==k&&0==b&&(k="#ffffff");var l=this.editor.graph.getSvg(k,a,g,t,null,c);d&&this.editor.graph.addSvgShadow(l);var m=this.getBaseFilename()+".svg",n=mxUtils.bind(this,function(a){this.spinner.stop();e&&a.setAttribute("content",this.getFileData(!0,null,null,null,c,u));var b='\n'+mxUtils.getXml(a); +this.isLocalFileSave()||b.length<=MAX_REQUEST_SIZE?this.saveData(m,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(b)}))});this.convertMath(this.editor.graph,l,!1,mxUtils.bind(this,function(){f?(null==this.thumbImageCache&&(this.thumbImageCache={}),this.convertImages(l,n,this.thumbImageCache)):n(l)}))}};EditorUi.prototype.addCheckbox=function(a,b,c,d,e){var f=document.createElement("input"); +f.style.marginRight="8px";f.style.marginTop="16px";f.setAttribute("type","checkbox");c&&(f.setAttribute("checked","checked"),f.defaultChecked=!0);d&&f.setAttribute("disabled","disabled");a.appendChild(f);mxUtils.write(a,b);e||mxUtils.br(a);return f};EditorUi.prototype.addLinkSection=function(a,b){function c(){g.innerHTML='
'}mxUtils.write(a,mxResources.get("links")+":");var d=document.createElement("select");d.style.width="100px";d.style.marginLeft="4px";d.style.marginRight="10px";d.className="geBtn";var e=document.createElement("option");e.setAttribute("value","auto");mxUtils.write(e,mxResources.get("automatic"));d.appendChild(e);e=document.createElement("option");e.setAttribute("value","blank");mxUtils.write(e,mxResources.get("openInNewWindow"));d.appendChild(e);e=document.createElement("option"); +e.setAttribute("value","self");mxUtils.write(e,mxResources.get("openInThisWindow"));d.appendChild(e);b&&(e=document.createElement("option"),e.setAttribute("value","frame"),mxUtils.write(e,mxResources.get("openInThisWindow")+" ("+mxResources.get("iframe")+")"),d.appendChild(e));a.appendChild(d);mxUtils.write(a,mxResources.get("borderColor")+":");var f="#0000ff",g=null,g=mxUtils.button("",mxUtils.bind(this,function(a){this.pickColor(f||"none",function(a){f=a;c()});mxEvent.consume(a)}));c();g.style.padding= +mxClient.IS_FF?"4px 2px 4px 2px":"4px";g.style.marginLeft="4px";g.style.height="22px";g.style.width="22px";g.style.position="relative";g.style.top=mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE?"6px":"1px";g.className="geColorBtn";a.appendChild(g);mxUtils.br(a);return{getColor:function(){return f},getTarget:function(){return d.value},focus:function(){d.focus()}}};EditorUi.prototype.createLink=function(a,b,c,d,e,f,g,t){var k=this.getCurrentFile(),l=[];d&&(l.push("lightbox=1"),"auto"!=a&&l.push("target="+ +a),null!=b&&b!=mxConstants.NONE&&l.push("highlight="+("#"==b.charAt(0)?b.substring(1):b)),e&&l.push("edit=_blank"),f&&l.push("layers=1"),this.editor.graph.foldingEnabled&&l.push("nav=1"));if(c&&null!=this.pages&&null!=this.currentPage)for(a=0;a';k=0\x3c/script>')};EditorUi.prototype.showHtmlDialog= +function(a,b,c,d){var e=document.createElement("div");e.style.whiteSpace="nowrap";var f=document.createElement("h3");mxUtils.write(f,mxResources.get("html"));f.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";e.appendChild(f);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";k.setAttribute("value", +"url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");f=k.cloneNode(!0);f.setAttribute("value","copy");g.appendChild(f);var l=document.createElement("span");mxUtils.write(l,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(l);mxUtils.br(g);g.appendChild(k);l=document.createElement("span");mxUtils.write(l,mxResources.get("publicDiagramUrl"));g.appendChild(l);var m=this.getCurrentFile();null==c&&null!=m&&m.constructor==window.DriveFile&&(l=document.createElement("a"), +l.style.paddingLeft="12px",l.style.color="gray",l.setAttribute("href","javascript:void(0);"),mxUtils.write(l,mxResources.get("share")),g.appendChild(l),mxEvent.addListener(l,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(m.getId())})));f.setAttribute("checked","checked");null==c&&k.setAttribute("disabled","disabled");e.appendChild(g);var n=this.addLinkSection(e),z=this.addCheckbox(e,mxResources.get("zoom"),!0,null,!0);mxUtils.write(e,":");var A=document.createElement("input"); +A.setAttribute("type","text");A.style.marginRight="16px";A.style.width="60px";A.style.marginLeft="4px";A.style.marginRight="12px";A.value="100%";e.appendChild(A);var v=this.addCheckbox(e,mxResources.get("fit"),!0),g=null!=this.pages&&1")}var l=this.editor.graph.getGraphBounds();if(this.isExportToCanvas())this.exportToCanvas(mxUtils.bind(this,function(a){var b=d?this.getFileData(!0):null;a=this.createImageDataUri(a,b,"png");k(a)}),null,null,null,mxUtils.bind(this,function(a){t({message:mxResources.get("unknownError")})}), null,!0,c?2:1,null,b);else if(b=this.getFileData(!0),l.width*l.height<=MAX_AREA&&b.length<=MAX_REQUEST_SIZE){var m="";c&&(m="&w="+Math.round(2*l.width)+"&h="+Math.round(2*l.height));var n=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(d?"1":"0")+m+"&xml="+encodeURIComponent(b));n.send(mxUtils.bind(this,function(){200<=n.getStatus()&&299>=n.getStatus()?k("data:image/png;base64,"+n.getText()):t({message:mxResources.get("unknownError")})}))}else t({message:mxResources.get("drawingTooLarge")})}; -EditorUi.prototype.createEmbedSvg=function(a,b,c,d,e,f,g){var k=this.editor.graph.getSvg(),l=k.getElementsByTagName("a");if(null!=l)for(var m=0;m")}))}else q="",d&&(k.setAttribute("onclick","(function(svg){var src=window.event.target||window.event.srcElement;while (src!=null&&src.nodeName.toLowerCase()!='a'){src=src.parentNode;}if(src==null){if(svg.wnd!=null&&!svg.wnd.closed){svg.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==svg.wnd){svg.wnd.postMessage(decodeURIComponent(svg.getAttribute('content')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);svg.wnd=window.open('https://www.draw.io/?client=1&lightbox=1"+ (e?"&edit=_blank":"")+(f?"&layers=1":"")+"');}}})(this);"),q+="cursor:pointer;"),a&&(a=parseInt(k.getAttribute("width")),b=parseInt(k.getAttribute("height")),k.setAttribute("viewBox","0 0 "+a+" "+b),q+="max-width:100%;max-height:"+b+"px;",k.removeAttribute("height")),""!=q&&k.setAttribute("style",q),g(mxUtils.getXml(k))};EditorUi.prototype.timeSince=function(a){a=Math.floor((new Date-a)/1E3);var b=Math.floor(a/31536E3);if(1\n\n')+mxUtils.getXml(a))}));else return(d?"":'\n\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b, -c,d,e,f,g,t,u){u=null!=u?u:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var k=this.editor.graph.isSelectionEmpty();c=null!=c?c:k;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c,t):null,u)}catch(z){"Invalid image"==z.message?this.downloadFile(u):this.handleError(z)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop(); +" "+mxResources.get("months");b=Math.floor(a/86400);if(1\n\n')+mxUtils.getXml(a))}));else return(d?"":'\n\n')+mxUtils.getXml(b)};EditorUi.prototype.exportImage=function(a,b,c,d,e,f,g, +t,u){u=null!=u?u:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var k=this.editor.graph.isSelectionEmpty();c=null!=c?c:k;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.exportToCanvas(mxUtils.bind(this,function(a){this.spinner.stop();try{this.saveCanvas(a,e?this.getFileData(!0,null,null,null,c,t):null,u)}catch(z){"Invalid image"==z.message?this.downloadFile(u):this.handleError(z)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(a){this.spinner.stop(); this.handleError(a)}),null,c,a||1,b,d,null,null,f,g)}catch(x){this.spinner.stop(),this.handleError(x)}}};EditorUi.prototype.exportToCanvas=function(a,b,c,d,e,f,g,t,u,y,x,z,A,v){f=null!=f?f:!0;z=null!=z?z:this.editor.graph;A=null!=A?A:0;var k=u?null:z.background;k==mxConstants.NONE&&(k=null);null==k&&(k=d);null==k&&0==u&&(k="#ffffff");this.convertImages(z.getSvg(k,null,null,v,null,null!=g?g:!0),mxUtils.bind(this,function(c){var d=new Image;d.onload=mxUtils.bind(this,function(){var e=document.createElement("canvas"), -g=parseInt(c.getAttribute("width")),l=parseInt(c.getAttribute("height"));t=null!=t?t:1;null!=b&&(t=f?Math.min(1,Math.min(3*b/(4*l),b/g)):b/g);g=Math.ceil(t*g)+2*A;l=Math.ceil(t*l)+2*A;e.setAttribute("width",g);e.setAttribute("height",l);var m=e.getContext("2d");null!=k&&(m.beginPath(),m.rect(0,0,g,l),m.fillStyle=k,m.fill());m.scale(t,t);m.drawImage(d,A/t,A/t);a(e)});d.onerror=function(a){null!=e&&e(a)};try{y&&this.editor.addSvgShadow(c),this.convertMath(z,c,!0,mxUtils.bind(this,function(){d.src=this.createSvgDataUri(mxUtils.getXml(c))}))}catch(C){null!= -e&&e(C)}}),c,x)};EditorUi.prototype.createImageUrlConverter=function(){var a=new mxUrlConverter;a.updateBaseUrl();var b=a.convert;a.convert=function(c){null!=c&&("http://"!=c.substring(0,7)&&"https://"!=c.substring(0,8)||c.substring(0,a.baseUrl.length)==a.baseUrl?"chrome-extension://"!=c.substring(0,19)&&(c=b.apply(this,arguments)):c=PROXY_URL+"?url="+encodeURIComponent(c));return c};return a};EditorUi.prototype.convertImages=function(a,b,c,d){null==d&&(d=this.createImageUrlConverter());var e=0,f= -c||{};c=mxUtils.bind(this,function(c,g){for(var k=a.getElementsByTagName(c),l=0;l>>8;return a};EditorUi.prototype.writeGraphModelToPng=function(a,b,c,d,e){function f(a,b){var c=l;l+=b;return a.substring(c,l)}function g(a){a=f(a,4);return a.charCodeAt(3)+(a.charCodeAt(2)<<8)+(a.charCodeAt(1)<<16)+(a.charCodeAt(0)<<24)}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var l=0;if(f(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13, 10,26,10))null!=e&&e();else if(f(a,4),"IHDR"!=f(a,4))null!=e&&e();else{f(a,17);e=a.substring(0,l);do{var m=g(a);if("IDAT"==f(a,4)){e=a.substring(0,l-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d;d=4294967295;d=this.updateCRC(d,b,0,4);d=this.updateCRC(d,c,0,c.length);e+=k(c.length)+b+c+k(d^4294967295);e+=a.substring(l-8,a.length);break}e+=a.substring(l-8,l-4+m);d=f(a,m);f(a,4)}while(m);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};EditorUi.prototype.extractGraphModelFromPng= function(a){var b=null;try{var c=a.substring(a.indexOf(",")+1),d=window.atob&&!mxClient.IS_SF?atob(c):Base64.decode(c,!0);EditorUi.parsePng(d,mxUtils.bind(this,function(a,c,e){a=d.substring(a+8,a+8+e);"zTXt"==c?(e=a.indexOf(String.fromCharCode(0)),"mxGraphModel"==a.substring(0,e)&&(a=this.editor.graph.bytesToString(pako.inflateRaw(a.substring(e+2))).replace(/\+/g," "),null!=a&&0 -Cmd instead of ctrl for MacLABELSNew Line in Formatted LabelsNew Paragraph in Formatted LabelsStart Editing Label of Selected CellStop Editing and Apply ValueToggle Bold/Italic on Selected TextToggle Underline on Selected TextSuperscript/Subscript on Selected TextShift+EnterEnterF2 / EnterF2 / Tab / EscCtrl+B / ICtrl+UCtrl+. / ,TOOLSCtrl+MCtrl+Shift+LCtrl+Shift+OCtrl+Shift+PCtrl+Shift+MEdit MetadataToggle Layers WindowToggle Outline WindowToggle Format PanelEdit Vertex GeometryRightclickContext MenuF1AboutVIEWCtrl+Mouse wheelAlt+Mouse wheelMouse wheelShift+Mouse wheelSpace / Right mouse DragCtrl+Shift+DragHomeEndCtrl+HCtrl+Shift+HCtrl+JCtrl+Shift+JCtrl+0Ctrl +Canvas Zoom In/OutScreen Zoom In/Out (Mac)Canvas Vertical ScrollCanvas Horizontal ScrollPan CanvasCreate / Remove SpaceHomeRefreshReset ViewFit WindowFit PageFit Two PagesCustom ZoomZoom InZoom OutCtrl -Click to connect and clone (ctrl+click to clone,shift+click to connect). Drag to connect(ctrl+drag to clone).Click to rotate 90° clockwise. Drag to rotate.Ctrl: Actual Size, Alt: At Origin, Shift: As ImageCtrl+Shift+ConnectDisable ConnectionsCURSOR / PAGE KEYSAlt+CursorCursorShift+CursorCtrl+CursorCtrl+Shift+CursorAlt+Shift+CursorScroll / Move cell (1px)Move cell (grid size)Resize cell (1px)Resize cell (grid size)Clone and connectScroll PageCtrl+Shift+Pg DownNext PageCtrl+Shift+Pg UpPrevious PageSIDEBAR / CONNECTAlt+(Shift / Ctrl)+Click on a sidebar itemShift+Click on a sidebar itemAlt+(Shift+)Drag from sidebarCtrl+Shift+Move EndpointInserts and connects the selected itemReplaces the selected item with the clicked oneDisable replace, connect on drop (drop targets)Disables connectionsClick on a sidebar itemConnects unconnected side of selected edgeDOCUMENTCtrl+SCtrl+Shift+SSaveSave asUndoConnection ArrowsToggle gridPrintRedo (Windows)Redo (Linux/Mac)Insert TextInsert RectangleInsert EllipseCancel ActionForce RubberbandIgnores handlesunder the mouseCtrl+ZCtrl+Shift+GCtrl+QCtrl+PCtrl+YHold ShiftCtrl+Shift+ZAlt+DragCtrl+Shift+XEscCtrl+KCtrl+Shift+KCANVASMaintain ProportionsCentered / Group ResizeCollapse ContainerExpand ContainerExit GroupEnter GroupSend to BackBring to FrontDuplicateAutosizeClone cell/Disconnect edgeCtrl+EnterBackspace or DeleteCtrl+DeleteCtrl+RShift+ResizeCtrl / Meta+ResizeCtrl+HomeCtrl+EndCtrl+Shift+HomeCtrl+Shift+EndCtrl+Shift+BCtrl+Shift+FCtrl+DCtrl+Shift+YCtrl / Shift+DragCtrl+XCtrl+CCtrl+VCtrl+GCtrl+Shift+UCtrl+LDuplicateDelete Selected CellsDelete with ConnectionsTurn / Rotate 90° ClockwiseCutCopyPasteGroupUngroupLock/UnlockSELECTION(Shift+)TabAlt+(Shift+)TabShift+DragAlt+Shift+DragCtrl+ACtrl+Shift+ACtrl+Shift+I / ESelect Next / PreviousSelect Child / ParentAdd to SelectionRemove from SelectionSelect AllSelect NoneSelect Vertices / EdgesToggle Selection StateCtrl / Shift+ClickSTYLESCtrl+Shift+RCtrl+ECtrl+Shift+DCtrl+Shift+CCtrl+Shift+VClear Default StyleEdit StyleSet as Default StyleCopy StylePaste StyleConnect to a Fixed PointAlt+ConnectTOUCHTap and holdPinchTap selected cellDragToggle / RubberbandZoomContext MenuMove Cell / Pan CanvasCtrl+ClickContext MenuDraw.io Keyboard ShortcutsOpen in draw.io...Ctrl+Shift+Mouse wheelCanvas Zoom In/OutConnection PointsCtrl+Shift+QInsert text or add an edge labelDouble click2Ctrl+Resize for non-recursive group resizeCtrl+Meta+Resize for non-recursive centeredgroup resize21Ctrl / Shift+Enter: New Line / Apply in Safari1 \ No newline at end of file +Cmd instead of ctrl for MacLABELSNew Line in Formatted LabelsNew Paragraph in Formatted LabelsStart Editing Label of Selected CellStop Editing and Apply ValueToggle Bold/Italic on Selected TextToggle Underline on Selected TextSuperscript/Subscript on Selected TextShift+EnterEnterF2 / EnterF2 / Tab / EscCtrl+B / ICtrl+UCtrl+. / ,TOOLSCtrl+MCtrl+Shift+LCtrl+Shift+OCtrl+Shift+PCtrl+Shift+MEdit MetadataToggle Layers WindowToggle Outline WindowToggle Format PanelEdit Vertex GeometryRightclickContext MenuF1AboutVIEWCtrl+Mouse wheelAlt+Mouse wheelMouse wheelShift+Mouse wheelSpace / Right mouse DragCtrl+Shift+DragHomeEndCtrl+HCtrl+Shift+HCtrl+JCtrl+Shift+JCtrl+0Ctrl +Canvas Zoom In/OutScreen Zoom In/Out (Mac)Canvas Vertical ScrollCanvas Horizontal ScrollPan CanvasCreate / Remove SpaceHomeRefreshReset ViewFit WindowFit PageFit Two PagesCustom ZoomZoom InZoom OutCtrl -Click to connect and clone (ctrl+click to clone,shift+click to connect). Drag to connect(ctrl+drag to clone).Click to rotate 90° clockwise. Drag to rotate.Ctrl: Actual Size, Alt: At Origin, Shift: As ImageCtrl+Shift+ConnectDisable ConnectionsCURSOR / PAGE KEYSAlt+CursorCursorShift+CursorCtrl+CursorCtrl+Shift+CursorAlt+Shift+CursorScroll / Move cell (1px)Move cell (grid size)Resize cell (1px)Resize cell (grid size)Clone and connectScroll PageCtrl+Shift+Pg DownNext PageCtrl+Shift+Pg UpPrevious PageSIDEBAR / CONNECTAlt+(Shift / Ctrl)+Click on a sidebar itemShift+Click on a sidebar itemAlt+(Shift+)Drag from sidebarCtrl+Shift+Move EndpointInserts and connects the selected itemReplaces the selected item with the clicked oneDisable replace, connect on drop (drop targets)Disables connectionsClick on a sidebar itemConnects unconnected side of selected edgeDOCUMENTCtrl+SCtrl+Shift+SSaveSave asUndoConnection ArrowsToggle gridPrintRedo (Windows)Redo (Linux/Mac)Insert TextInsert RectangleInsert EllipseCancel ActionForce RubberbandIgnores handlesunder the mouseCtrl+ZCtrl+Shift+GCtrl+QCtrl+PCtrl+YHold ShiftCtrl+Shift+ZAlt+DragCtrl+Shift+XEscCtrl+KCtrl+Shift+KCANVASMaintain ProportionsCentered / Group ResizeCollapse ContainerExpand ContainerExit GroupEnter GroupSend to BackBring to FrontClear WaypointsAutosizeClone cell/Disconnect edgeCtrl+Enter / DBackspace or DeleteCtrl+DeleteCtrl+RShift+ResizeCtrl / Meta+ResizeCtrl+HomeCtrl+EndCtrl+Shift+HomeCtrl+Shift+EndCtrl+Shift+BCtrl+Shift+FAlt+Shift+CCtrl+Shift+YCtrl / Shift+DragCtrl+XCtrl+CCtrl+VCtrl+GCtrl+Shift+UCtrl+LDuplicateDelete Selected CellsDelete with ConnectionsTurn / Rotate 90° ClockwiseCutCopyPasteGroupUngroupLock/UnlockSELECTION(Shift+)TabAlt+(Shift+)TabShift+DragAlt+Shift+DragCtrl+ACtrl+Shift+ACtrl+Shift+I / ESelect Next / PreviousSelect Child / ParentAdd to SelectionRemove from SelectionSelect AllSelect NoneSelect Vertices / EdgesToggle Selection StateCtrl / Shift+ClickSTYLESCtrl+Shift+RCtrl+ECtrl+Shift+DCtrl+Shift+CCtrl+Shift+VClear Default StyleEdit StyleSet as Default StyleCopy StylePaste StyleConnect to a Fixed PointAlt+ConnectTOUCHTap and holdPinchTap selected cellDragToggle / RubberbandZoomContext MenuMove Cell / Pan CanvasCtrl+ClickContext MenuDraw.io Keyboard ShortcutsOpen in draw.io...Ctrl+Shift+Mouse wheelCanvas Zoom In/OutConnection PointsCtrl+Shift+QInsert text or add an edge labelDouble click2Ctrl+Resize for non-recursive group resizeCtrl+Meta+Resize for non-recursive centeredgroup resize21Ctrl / Shift+Enter: New Line / Apply in Safari1 \ No newline at end of file diff --git a/war/templates/business/bpmn.png b/war/templates/business/bpmn.png index c6c1146a2..82e139b62 100644 Binary files a/war/templates/business/bpmn.png and b/war/templates/business/bpmn.png differ diff --git a/war/templates/business/bpmn.xml b/war/templates/business/bpmn.xml index 74f6239eb..0934b0ef1 100644 --- a/war/templates/business/bpmn.xml +++ b/war/templates/business/bpmn.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/business/bpmnS.png b/war/templates/business/bpmnS.png deleted file mode 100644 index 82e139b62..000000000 Binary files a/war/templates/business/bpmnS.png and /dev/null differ diff --git a/war/templates/business/bpmnS.xml b/war/templates/business/bpmnS.xml deleted file mode 100644 index 0934b0ef1..000000000 --- a/war/templates/business/bpmnS.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/business/swimlane.png b/war/templates/business/swimlane.png index 8783c1c2b..6631e9700 100644 Binary files a/war/templates/business/swimlane.png and b/war/templates/business/swimlane.png differ diff --git a/war/templates/business/swimlane.xml b/war/templates/business/swimlane.xml index 2ebda47fa..282315f69 100644 --- a/war/templates/business/swimlane.xml +++ b/war/templates/business/swimlane.xml @@ -1 +1 @@ - \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/business/swimlaneS.png b/war/templates/business/swimlaneS.png deleted file mode 100644 index 6631e9700..000000000 Binary files a/war/templates/business/swimlaneS.png and /dev/null differ diff --git a/war/templates/business/swimlaneS.xml b/war/templates/business/swimlaneS.xml deleted file mode 100644 index 282315f69..000000000 --- a/war/templates/business/swimlaneS.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/charts/bar.png b/war/templates/charts/bar.png index 80b245cd6..0694f668d 100644 Binary files a/war/templates/charts/bar.png and b/war/templates/charts/bar.png differ diff --git a/war/templates/charts/bar.xml b/war/templates/charts/bar.xml index 2847a3e21..06968e519 100644 --- a/war/templates/charts/bar.xml +++ b/war/templates/charts/bar.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/charts/bar2.png b/war/templates/charts/bar2.png index d0b98065d..87afba5b5 100644 Binary files a/war/templates/charts/bar2.png and b/war/templates/charts/bar2.png differ diff --git a/war/templates/charts/bar2.xml b/war/templates/charts/bar2.xml index ec43e6ad7..58c1b0a32 100644 --- a/war/templates/charts/bar2.xml +++ b/war/templates/charts/bar2.xml @@ -1 +1 @@ - \ No newline at end of file +3Zpfk6I4EMA/jY+3BUT887jO7O29XNVWzVTdc04iphaJFZkZvU8/DXQjCQw4B4MKPigd8odfdzrdiRP2sDv+1Hy//VsFIpp4TnCcsMeJ57lzbwFfqeSUSxaLeS4ItQzwobPgSf4nUOig9EUG4mA8mCgVJXJvCtcqjsU6MWRca/VmPrZRkdnrnofYI3aYCp7WPKJxnKX/yCDZotSdLc8FfwkZbrHrhTfLC/7l69+hVi8x9jfx2Ca78uIdp7ayftkPgKiVglbSX7vjg4hSkMQIB3dITjSwCVttk10ENy78zIr//KAyvkNzZXgTLWJ8i7y7j9pjeYVXHr1Qe3YHIgCKeBurGL6aO8QhptVKAuz+p1A7kegTPPBW0oGDULYl/IVQi4gn8tXUIkdjCIsGiz5+KQlj8RwyXCKOZjuf4z01cVAvei2wVplVS0Pe0moo4ToUSaUh+FF68bMoU0W9Wvx2tbxtZSKe9nyd3r/BjAVlbGQUPahI6ewRNssukIeaBxIURGWoRhI/Sg3zTaoYigQ/AP/VIdHqt7Cev0Ttr0IngoDVK55KFybO2dT55pQufOWymZACDDNhlhbKFmGooIE3TvSOvJfZdbO858tv+QjxQu+N+H33evhxJB3xr7LPneJnCxM/mw7IHxf2UbsbZvM3FwVi28bbt2YJLqBd6ONIRu18mun7vlmK9thq+3a1HpRBweqofRE4G5M/OZE24n04GxeBjtrb+I32PqMQtNXCKQbuBPyCIP/uHUwzcAhuLgQ+6wM4rt2j9iHNwNmlHqXIAroAv4D33WexrrXWWfHLrHYF/XSK60xbkuX+cly3muT+4ppDC0JnI7JVCIaZ2TZMGhmHzwqmzOMfvqnIjYoT3HmCWdhP4O7YGwhksiXdk7mXVU/VOrmSamZ6rO4BfUiGRzJM3cIaXh+oslX62hK2xL5jwU4GQdpKDg5bTEF+MVMr28EGbKMbJBypJp/Hqvu4O8J2iDcs02pCecQg5J6Z+ldl2k+aeNth85LVLmPI263hzXzTkVDsZeI3c3bab+qiDlLzqINqWx3mllWx9XQL6qB3G3PI3Tw76DSimzaKZzppo5riP5/2AiSfiF2+1pcvLV++tFFVYFKFvkO8mjM4hPWJMGRYWK5tWMPBqqZ6COsT8cXAsOZXg9WcYeVt3QAxWtbpXLVumf8qRNX86jSC/IrWgouPVuv4up61+vexTlezrdMIsi2Ld91242CEq7nXaQS5l0W4SG+vQbiaiT3LBDh8FeScJCx9jdD72JaxdrpqAvwFmXbf+S21Mer8dt58LER7xa2b5vau7P8C3k/KdNsZbDNw37/41L8H3v2ce952itrMe0qnC60GTl6mE/BqYnXE9OGeV8Li+GGAXUi4Pf+TNT/jOf83mP14Bw== \ No newline at end of file diff --git a/war/templates/charts/bar2S.png b/war/templates/charts/bar2S.png deleted file mode 100644 index 87afba5b5..000000000 Binary files a/war/templates/charts/bar2S.png and /dev/null differ diff --git a/war/templates/charts/bar2S.xml b/war/templates/charts/bar2S.xml deleted file mode 100644 index 58c1b0a32..000000000 --- a/war/templates/charts/bar2S.xml +++ /dev/null @@ -1 +0,0 @@ -3Zpfk6I4EMA/jY+3BUT887jO7O29XNVWzVTdc04iphaJFZkZvU8/DXQjCQw4B4MKPigd8odfdzrdiRP2sDv+1Hy//VsFIpp4TnCcsMeJ57lzbwFfqeSUSxaLeS4ItQzwobPgSf4nUOig9EUG4mA8mCgVJXJvCtcqjsU6MWRca/VmPrZRkdnrnofYI3aYCp7WPKJxnKX/yCDZotSdLc8FfwkZbrHrhTfLC/7l69+hVi8x9jfx2Ca78uIdp7ayftkPgKiVglbSX7vjg4hSkMQIB3dITjSwCVttk10ENy78zIr//KAyvkNzZXgTLWJ8i7y7j9pjeYVXHr1Qe3YHIgCKeBurGL6aO8QhptVKAuz+p1A7kegTPPBW0oGDULYl/IVQi4gn8tXUIkdjCIsGiz5+KQlj8RwyXCKOZjuf4z01cVAvei2wVplVS0Pe0moo4ToUSaUh+FF68bMoU0W9Wvx2tbxtZSKe9nyd3r/BjAVlbGQUPahI6ewRNssukIeaBxIURGWoRhI/Sg3zTaoYigQ/AP/VIdHqt7Cev0Ttr0IngoDVK55KFybO2dT55pQufOWymZACDDNhlhbKFmGooIE3TvSOvJfZdbO858tv+QjxQu+N+H33evhxJB3xr7LPneJnCxM/mw7IHxf2UbsbZvM3FwVi28bbt2YJLqBd6ONIRu18mun7vlmK9thq+3a1HpRBweqofRE4G5M/OZE24n04GxeBjtrb+I32PqMQtNXCKQbuBPyCIP/uHUwzcAhuLgQ+6wM4rt2j9iHNwNmlHqXIAroAv4D33WexrrXWWfHLrHYF/XSK60xbkuX+cly3muT+4ppDC0JnI7JVCIaZ2TZMGhmHzwqmzOMfvqnIjYoT3HmCWdhP4O7YGwhksiXdk7mXVU/VOrmSamZ6rO4BfUiGRzJM3cIaXh+oslX62hK2xL5jwU4GQdpKDg5bTEF+MVMr28EGbKMbJBypJp/Hqvu4O8J2iDcs02pCecQg5J6Z+ldl2k+aeNth85LVLmPI263hzXzTkVDsZeI3c3bab+qiDlLzqINqWx3mllWx9XQL6qB3G3PI3Tw76DSimzaKZzppo5riP5/2AiSfiF2+1pcvLV++tFFVYFKFvkO8mjM4hPWJMGRYWK5tWMPBqqZ6COsT8cXAsOZXg9WcYeVt3QAxWtbpXLVumf8qRNX86jSC/IrWgouPVuv4up61+vexTlezrdMIsi2Ld91242CEq7nXaQS5l0W4SG+vQbiaiT3LBDh8FeScJCx9jdD72JaxdrpqAvwFmXbf+S21Mer8dt58LER7xa2b5vau7P8C3k/KdNsZbDNw37/41L8H3v2ce952itrMe0qnC60GTl6mE/BqYnXE9OGeV8Li+GGAXUi4Pf+TNT/jOf83mP14Bw== \ No newline at end of file diff --git a/war/templates/charts/barS.png b/war/templates/charts/barS.png deleted file mode 100644 index 0694f668d..000000000 Binary files a/war/templates/charts/barS.png and /dev/null differ diff --git a/war/templates/charts/barS.xml b/war/templates/charts/barS.xml deleted file mode 100644 index 06968e519..000000000 --- a/war/templates/charts/barS.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/charts/org1.png b/war/templates/charts/org1.png index 8a23f7a88..f352d1cbb 100644 Binary files a/war/templates/charts/org1.png and b/war/templates/charts/org1.png differ diff --git a/war/templates/charts/org1.xml b/war/templates/charts/org1.xml index 5cf61fdb1..72762abdc 100644 --- a/war/templates/charts/org1.xml +++ b/war/templates/charts/org1.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/charts/org1S.png b/war/templates/charts/org1S.png deleted file mode 100644 index f352d1cbb..000000000 Binary files a/war/templates/charts/org1S.png and /dev/null differ diff --git a/war/templates/charts/org1S.xml b/war/templates/charts/org1S.xml deleted file mode 100644 index 72762abdc..000000000 --- a/war/templates/charts/org1S.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/charts/org2.png b/war/templates/charts/org2.png index a9fd1bca9..271aab0d2 100644 Binary files a/war/templates/charts/org2.png and b/war/templates/charts/org2.png differ diff --git a/war/templates/charts/org2.xml b/war/templates/charts/org2.xml index a74123602..579c5e056 100644 --- a/war/templates/charts/org2.xml +++ b/war/templates/charts/org2.xml @@ -1 +1 @@ -7Vpbb5tKEP41fq2A9Y3H2nFS9Sg6VXOkPEYbWMOerlm0hsTpr+8AM+ZmJ25iSGzFkm2YvX/zMTs7w4DNV5srw+PwWvtCDRzL3wzYxcBx7CEbwl8meSokk6lVCAIjfaxUCm7kb4FCqpZKX6xrFROtVSLjutDTUSS8pCbjxujHerWlVvVRYx7giDhgJrjxuKJ5fBmV8lvpJ2EhnzrjUv5NyCCkse2xW5Tcc+9XYHQa4YgDhy3zT1G84tRXPjJbAIxGa+gmu1pt5kJlUBJKOL118kRTG7BZmKwU3NhwmRdf7mmMi32+MSzFiAiXUQy3r78RLv6Bq5Q6bI6Qr1xkDbIRllKpuVba5IXMng9H0wnI14nRvwSVRDqC1rN1yH39iC0Dw30J86q2Zs5i5L60BFz0gzCJID5ukQbCCr0SiXmCKlQ6QpCRq0TVx1LtW1lYVfkYhRzJFmy7LjGEC4RxD6STFqT/cMNBcs2VEtAXYM42PF/q9vJCGmA94LKz9Fu64hH08FOsdWo8eI4yvW6Lr3kE5F1lgDWVB4jB4mZLXcP9Mv+g/AZrZ+AfVw/MquvBRWgqerDpeajpgbEj6GH6MrXlKrcaM/wH0aVcBfCr5D38ekrGd9wAqpex0DG0ci5vUpnc3WrQx53tTDfw/RJHwfEpTPzcD90uBpPsTcCh2TsvmzBtALrLJkxwizi6TaA+KpAu0kAAHo71XfBI6VTCM/33huGH0TFAUDUqH9UY2JaD8L6HNRgjh7uwBoD43ZURoluL4JInhfDZdN+DSRijBs7NTagTkrFebQI61BVM5yE3Kt/cL9LEC8Weh/55k3AhHoTScWEAql5C2ewj+whs2KtZOEv/t7nX9UzstgP8XSyXIp/hVcr/58bXr2H2v8ul9LItU8PJq8pscIsFN174wTe8nql9lm7ciKiMmI7JfPRC7Unbj/saJTqSwGfrVgANX8PrOcBhOIxTIXQgdVQTfUzrPSaoSR12nxSfHODUnR7F3eGEYlVbkjOS9EPztrt3BauWWRDjJ/dkdm75e5ov+DoRBsIYp0dz23Kdpk4ca4dOOuQ6DnZmLrjT5PrI7ZnrbQ/wvxDCO7kXDuQMQfoKst+KkyU7mNUm1+2eud556K44rs8URPa7PbRPWrac7eJ3Vwf3yQFO4FvCHt0j2AyEMnroe0CP+ug2aNQDho1Ax+69qzMUab6dcTAVncI3Isq9D3wdRy47NX9W0/wxSs31gdwBUUvhQ5YYb4W614+LUjDLBVCQLVhCKjkTRf7XLBtdek6l02W1nKt803ZdOKNSCWWe7RcTt5TqzRN+dR8w4SYQWI3OQNlCnlVJdeemQ3Nt5ybhLsixux9a5lFFCkE3mxSTxVrVtDM13PrTjYbFiloNAWqezZ2qxVkF8MxaE6LjqFt/UkfItpIwRY8lfbYAHcaodsz2dYwK4TT1G7y49+cUvQFQ5RSFjj45lYeI0RvFCQ4xAnU0Th1wsDs1TiF/Pjl1KKcwl3c0Th2Q1jgxTlGm5pNTB3KKIuVH41Q7rXPynEIH8ZNTh3Lqbf4U3JYvRhbVy5dN2eIP \ No newline at end of file +7Vpbb+I6EP41vK5yKbfHpQVWe1Sd1fZIfazcxCQ+a+LIJC3dX7/jZIbcAGVbkhZUJC4ZX+ebz+PxmIF7vd4uNYvDW+VzOXAsfztwbwaO41jjCXwZyUsusa3ROJcEWvgoKwR34jeniihNhc83lYqJUjIRcVXoqSjiXlKRMa3Vc7XaSsnqqDELcEQc0AjuPCZpHl+Ghfxe+EmYyyfOqJB/4yIIaWx7NM1LHpn3K9AqjXDEgeOusldevGbUVzayOwcctVLQjfm13l5zabAklHB6m+SFpjZwZ2GylvBgw8+seHGgMSp7vDGoonmEauTDHepviMo/MZlSh/URMs25aWBGWAkpr5VUOit0F9kL5JtEq1+8VGJlL1MSMl89Y/NAM1/A5KhipCIY5rgKqPQT1wlHQmYiVGnJ1Zon+gWqUOkQQUayTvDxuTD7ThaWTT5CIUOyBbuuCwzhB8J4AFJcFyVI/2GageSWScmhL8Dc3bJM1d3PG6GB9QDJ3tJv6ZpF0MNPvlGp9mAdGbvuim9ZBORdG8DqxgPEQLnZShWQl21j5HdY24B/WjvAOBU7TBGakh1sWg8VO7juCeyAHusYtcU68xoz/AbRQqwD+JTiET49KeIHpgHVRcxVDK2cxV0qkod7BfZ4sJ3JFt5f4ig4PYWJn4eh28dgkr0JOHR7l+UTJjVA9/mEMW4RJ/cJ1EcJ0nkacFDTsb5zFkmVCljTf+8YfmgVAwRlp/JRnYFtOQjve3iDEXK4C28AiD8sNefdeoQpRVIUgdFzDy5hhBa4tDChSkjX7dUnXDUwvQ6ZltnmfpMmXsgPLPrjLuGGP3Gp4twBlKOEotlHjhHcq17dwkXGv/W9rmdiNwPg73y14tkMlyn7n2lfvYbZ/65WwjNbpoKTV5nZEBZzpr3wg294PVP7IsO4IVEZMR2R++iF2uNmHPc1SlQkgM/WPQcavobX1wCHZjBOidCBUFFF9DG994igJnPYfVJ83CKoOz+KT6/GlKvakdwlST80b4Z7S1BYmCTGT+YJc275e5rP2SbhGtIY50dz25o6dZs41h6bdMh1HOzCQnCnzvXhtGeuNyPA/0JI72RROJAzBOkryH7Pz5bs4FbrXLd75nrnqbv8uD6TkNnv9tA+bvhydx+/uzq4j1sEgW9Je3SPYD0R6tKi7wE96qPbpFEPGNYSHfv3rs5QpPl2xsGUdwrfkCj3PvB1nLns1P1Zdffn0tVcH8i1yFpyH26J8ZHLR/U8LwSzTAAFRmEBV8lGFPlfzW10ERAVQVcWQh0OrrISunl2W2Kd3/dVQ8CE6YBjNToCGT2OWqS8cdOZubJxk3Af4tjdDyWypOLuPwC1JvlksVb51pka7sLpWsNco0ZDQJqZuVO12FSAwKwxITqNTqsLdYhkK/iS91iwZwdQO0I1U7avI1QIh6nfEMS9O6Xo/r9MKUocfVIqSxBjLIoTvML808ko1eJYd2aUQvp8UqotpfAi72SUanGncV6UoluaT0q1pBRlyU9GqeaVzrlTCmPDT0q1pdTbYil4LP4TmVcv/mjqzv8A \ No newline at end of file diff --git a/war/templates/charts/org2S.png b/war/templates/charts/org2S.png deleted file mode 100644 index 271aab0d2..000000000 Binary files a/war/templates/charts/org2S.png and /dev/null differ diff --git a/war/templates/charts/org2S.xml b/war/templates/charts/org2S.xml deleted file mode 100644 index 579c5e056..000000000 --- a/war/templates/charts/org2S.xml +++ /dev/null @@ -1 +0,0 @@ -7Vpbb+I6EP41vK5yKbfHpQVWe1Sd1fZIfazcxCQ+a+LIJC3dX7/jZIbcAGVbkhZUJC4ZX+ebz+PxmIF7vd4uNYvDW+VzOXAsfztwbwaO41jjCXwZyUsusa3ROJcEWvgoKwR34jeniihNhc83lYqJUjIRcVXoqSjiXlKRMa3Vc7XaSsnqqDELcEQc0AjuPCZpHl+Ghfxe+EmYyyfOqJB/4yIIaWx7NM1LHpn3K9AqjXDEgeOusldevGbUVzayOwcctVLQjfm13l5zabAklHB6m+SFpjZwZ2GylvBgw8+seHGgMSp7vDGoonmEauTDHepviMo/MZlSh/URMs25aWBGWAkpr5VUOit0F9kL5JtEq1+8VGJlL1MSMl89Y/NAM1/A5KhipCIY5rgKqPQT1wlHQmYiVGnJ1Zon+gWqUOkQQUayTvDxuTD7ThaWTT5CIUOyBbuuCwzhB8J4AFJcFyVI/2GageSWScmhL8Dc3bJM1d3PG6GB9QDJ3tJv6ZpF0MNPvlGp9mAdGbvuim9ZBORdG8DqxgPEQLnZShWQl21j5HdY24B/WjvAOBU7TBGakh1sWg8VO7juCeyAHusYtcU68xoz/AbRQqwD+JTiET49KeIHpgHVRcxVDK2cxV0qkod7BfZ4sJ3JFt5f4ig4PYWJn4eh28dgkr0JOHR7l+UTJjVA9/mEMW4RJ/cJ1EcJ0nkacFDTsb5zFkmVCljTf+8YfmgVAwRlp/JRnYFtOQjve3iDEXK4C28AiD8sNefdeoQpRVIUgdFzDy5hhBa4tDChSkjX7dUnXDUwvQ6ZltnmfpMmXsgPLPrjLuGGP3Gp4twBlKOEotlHjhHcq17dwkXGv/W9rmdiNwPg73y14tkMlyn7n2lfvYbZ/65WwjNbpoKTV5nZEBZzpr3wg294PVP7IsO4IVEZMR2R++iF2uNmHPc1SlQkgM/WPQcavobX1wCHZjBOidCBUFFF9DG994igJnPYfVJ83CKoOz+KT6/GlKvakdwlST80b4Z7S1BYmCTGT+YJc275e5rP2SbhGtIY50dz25o6dZs41h6bdMh1HOzCQnCnzvXhtGeuNyPA/0JI72RROJAzBOkryH7Pz5bs4FbrXLd75nrnqbv8uD6TkNnv9tA+bvhydx+/uzq4j1sEgW9Je3SPYD0R6tKi7wE96qPbpFEPGNYSHfv3rs5QpPl2xsGUdwrfkCj3PvB1nLns1P1Zdffn0tVcH8i1yFpyH26J8ZHLR/U8LwSzTAAFRmEBV8lGFPlfzW10ERAVQVcWQh0OrrISunl2W2Kd3/dVQ8CE6YBjNToCGT2OWqS8cdOZubJxk3Af4tjdDyWypOLuPwC1JvlksVb51pka7sLpWsNco0ZDQJqZuVO12FSAwKwxITqNTqsLdYhkK/iS91iwZwdQO0I1U7avI1QIh6nfEMS9O6Xo/r9MKUocfVIqSxBjLIoTvML808ko1eJYd2aUQvp8UqotpfAi72SUanGncV6UoluaT0q1pBRlyU9GqeaVzrlTCmPDT0q1pdTbYil4LP4TmVcv/mjqzv8A \ No newline at end of file diff --git a/war/templates/charts/work_breakdown_structure.png b/war/templates/charts/work_breakdown_structure.png index 640613676..71d7786b0 100644 Binary files a/war/templates/charts/work_breakdown_structure.png and b/war/templates/charts/work_breakdown_structure.png differ diff --git a/war/templates/charts/work_breakdown_structure.xml b/war/templates/charts/work_breakdown_structure.xml index 621da5be1..057beee8f 100644 --- a/war/templates/charts/work_breakdown_structure.xml +++ b/war/templates/charts/work_breakdown_structure.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/charts/work_breakdown_structureS.png b/war/templates/charts/work_breakdown_structureS.png deleted file mode 100644 index 71d7786b0..000000000 Binary files a/war/templates/charts/work_breakdown_structureS.png and /dev/null differ diff --git a/war/templates/charts/work_breakdown_structureS.xml b/war/templates/charts/work_breakdown_structureS.xml deleted file mode 100644 index 057beee8f..000000000 --- a/war/templates/charts/work_breakdown_structureS.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/flowcharts/flowchart1.png b/war/templates/flowcharts/flowchart1.png index 8c8982ddc..b91bcd87e 100644 Binary files a/war/templates/flowcharts/flowchart1.png and b/war/templates/flowcharts/flowchart1.png differ diff --git a/war/templates/flowcharts/flowchart1.xml b/war/templates/flowcharts/flowchart1.xml index 88b02f802..4b5c23388 100644 --- a/war/templates/flowcharts/flowchart1.xml +++ b/war/templates/flowcharts/flowchart1.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/flowcharts/flowchart1S.png b/war/templates/flowcharts/flowchart1S.png deleted file mode 100644 index b91bcd87e..000000000 Binary files a/war/templates/flowcharts/flowchart1S.png and /dev/null differ diff --git a/war/templates/flowcharts/flowchart1S.xml b/war/templates/flowcharts/flowchart1S.xml deleted file mode 100644 index 4b5c23388..000000000 --- a/war/templates/flowcharts/flowchart1S.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/flowcharts/flowchart2.png b/war/templates/flowcharts/flowchart2.png index faeacebf5..46124871c 100644 Binary files a/war/templates/flowcharts/flowchart2.png and b/war/templates/flowcharts/flowchart2.png differ diff --git a/war/templates/flowcharts/flowchart2.xml b/war/templates/flowcharts/flowchart2.xml index dc04db603..0b485360d 100644 --- a/war/templates/flowcharts/flowchart2.xml +++ b/war/templates/flowcharts/flowchart2.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/flowcharts/flowchart2S.png b/war/templates/flowcharts/flowchart2S.png deleted file mode 100644 index 46124871c..000000000 Binary files a/war/templates/flowcharts/flowchart2S.png and /dev/null differ diff --git a/war/templates/flowcharts/flowchart2S.xml b/war/templates/flowcharts/flowchart2S.xml deleted file mode 100644 index 0b485360d..000000000 --- a/war/templates/flowcharts/flowchart2S.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/flowcharts/gantt.png b/war/templates/flowcharts/gantt.png index 1aa702b88..e771ba365 100644 Binary files a/war/templates/flowcharts/gantt.png and b/war/templates/flowcharts/gantt.png differ diff --git a/war/templates/flowcharts/gantt.xml b/war/templates/flowcharts/gantt.xml index 2c1007881..545539b53 100644 --- a/war/templates/flowcharts/gantt.xml +++ b/war/templates/flowcharts/gantt.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/flowcharts/ganttS.png b/war/templates/flowcharts/ganttS.png deleted file mode 100644 index e771ba365..000000000 Binary files a/war/templates/flowcharts/ganttS.png and /dev/null differ diff --git a/war/templates/flowcharts/ganttS.xml b/war/templates/flowcharts/ganttS.xml deleted file mode 100644 index 545539b53..000000000 --- a/war/templates/flowcharts/ganttS.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/flowcharts/sipoc.png b/war/templates/flowcharts/sipoc.png index 33ea3befb..11bd25175 100644 Binary files a/war/templates/flowcharts/sipoc.png and b/war/templates/flowcharts/sipoc.png differ diff --git a/war/templates/flowcharts/sipoc.xml b/war/templates/flowcharts/sipoc.xml index 7db6174d0..3e3dfa084 100644 --- a/war/templates/flowcharts/sipoc.xml +++ b/war/templates/flowcharts/sipoc.xml @@ -1 +1 @@ -3Zrfd6o4EMf/Gh/3Hir+qI+3VLs9e21d0b3PWUglp0g8IdS6f/2dwASCQGv3orb6IkxiAp/5khkmdmxn/XonyCaYcp+Gna7lv3bs2063e9Wze/ClLLvMMrQHmWElmI+dCoPL/qNotNCaMJ/GpY6S81CyTdno8SiinizZiBB8W+72xMPyrBuywhlxQmVwPRLq6yisP5kvA7ReDUZFw5+UrQKc+rqL9/cv8Z5XgicRztfp2o4zgU/WvCZ6rHReewwQBecwijpavzo0VCA1I7y4WO70hXXsm0CuQzi5gsO0edLwY7yHt38MdyJohHeRTdc4Ht77CwkTPeD+DNuASepuiKfOt6ANmCeWgj9Th4dcgDHiEbS9fR145S9USKolleMCzVG+plLsoItu1aRQbvp0W/juuo+2wHBbD20E5bLKRy44wAGiaMCCYxhY7h9my4VbgRMHZKMOY0kVl4NZPbEw1CbQk2U58FF2HknDrlQGOsvsLk6rALfLumu9yzpn0jprVJzB2l3OZj/ux/OLpX0+2HYF9mz+6IzdS1W2fX1G2BgwDdiPy8UFLyP9wRlh9yuwnaW7eJyO55eKe6i5nQP39fuJQ8hSaD4TkM4xHingPFGXhnR1GnZd4W1CbDmtGJWhacka0OqY9VuBhgmlAW0+/nt5Px9Pxw8XuyqMzhjv9FxfTqb2YPRtZH7OJtr82r8awn7vbYTfLPODj+ZJiFYz3q9BdNj9ANErnf6cBGk1r/0aSEdWGSmG1SaRnhJpNXvtqIqI/Urg1qckSp6IJxNBhWE2Dh0CDdYthfpLQ487uLzuZE69gIgVi1ZGkytJ6qI3Rv5J4qDiY6AODG5iCJIw4IJDiLz9o69DXFaSAl1m5xOyZqEi7fA182Agl0RwRdbUrcZKy7LtweD4ryvlUNkfvv9I6VhQEoA2/pYA6mpDuRP+oQHzQqjn1brocaPcR9RwM6ieQWWtoeMkSauMix0kOh8VSeoxNQ/0uDAd5I/1B9bWPq4drQvBrssAci880C20OUksYWT1YH73PKiVynp3zumKwdqKT7d1y71krTDVdnZh7VCOuI9eOIOst7bTLBGgjRharUfhN601M7J7Yx4qXtLxLQe8KmBZe6/fDefPIYVuF6a7/vB/6A5Tp/Z1V5cn7UWBm2TX5PIs9ARs09QMpGQmCos/Ke5cAm71ynDgKlfowRzswiQx1EV2HZNGB0iinNQMh8dSSF3aVygkZQUMaYgZX60XbxIGO0kQg/h7S8iGii0Xz9BtwkIKv6nrNoV3cIUvHenyItNoL0U5aIUYnkgO1ZR1StUqbYSnPXek23rgyoxPXYWlXXy9vZ0WXZ42cemihcmnFTzVEukSbl7EksDWZimGP1DqV7V7blh5rnsSWtViXQUIjfzvamf6Y3ug8NYpUmiGZCVkt6DUkp+orze0GzAJGkIi9VLe3/6te8Yn09weEjTOYmQRC60pbHmnubjlhAxale1zSiavIp5EMgcUxVuQDMqjJBl03BkkU31LLCRT+xoI/9xQSwzK6dMpxq6pTx9NMVqdR1YMqqOkGPTb6RXTq75OLmis5HIr1DyfVxr5+UmkcUCVuAVpoAxMaWgHnUEa1XzeZStVKDCTbyPZzhKXu0w2f9Hd5wtAvVNmeL26mm3rmtH6KGkGPXd0zcBp8ee6tM34u6I9/gU= \ No newline at end of file +7Vrvd6I4FP1r/LhzqGitH0eqMz27tq7ozucspJJTJJ4QtO5fPy/wAkGgtVOrs1o9R+ElJOHem5eXHy3bWT5/E2QVjLlPw1bb8p9b9m2r3b7q2B34U5ZtZunZ15lhIZiPmQqDy/6jaLTQmjCfxqWMkvNQslXZ6PEoop4s2YgQfFPO9sjDcq0rssAasUJlcD0S6nYU1h/MlwFar677RcJ3yhYBVn3Txvf7l3hPC8GTCOuLeESzlCXRxaRV2kPAT3AOBair5bNDQ4WhhgfbFcutblPLHgRyGcLNFVymyaOGh7H5Lz8MLyFohC+QVddYHr72moSJLnC3hk3AJHVXxFP3G5AF1BNLwZ+ow0MuwJhiUWrHI4/kiCxZqGTynYZrKplHMAFVcaXant5jXemDLAx1sa22PUi/tS+GUKypkFTLM8cf9Ev5kkqxhSw6VUOP0tW3m0IHN120BYYEOmgjKL1FXnIBLFwgtg04YxkGznf3k/nMraAdB2SlLmNJFdB7g78DnJN+EGDDPko/NcD/CnkHIKVtvUpKDt7BSUGtG6S488nkr7vh9JOW07FiV1iZTB+coXvxfcW+OSErOO4brDzMZ58erN3uXp+QlW6FFWfuzh7Gw+nF89LTAJ+Cl5vXw6qQpej6TECcy3ikmOGJahrSoOPTmwoxZmD03qDL2mEYST9EvNUvE6D7iUFAHf7dgxCAUbtBwHT49/xuOhwP7z99Vv+E47uu66L7hn3d/9I3PyfrKXnbL5mObudlOr5Y5gd9y1HYqU5RLo+dXvsN7FzpSPUo9FTnKpdHT98q04OxT1PnOSY91UlLS63n2c8KrTGJkkfiyURQYZiNS4dAgnVLYfWwIcc3aF57NKVeQMSCRQsjyZUkpfuFkn+QOKjoBVAHDAYxRB9Q4IxD7HH7R7eB3UYZGBLKcK+Rw4vrhm8f0sohRbf3erfU41yJeG18F/F1y5o5+P/QgHkhrELXUvOwUrQRVdwE1nxhPbgh4yhJ18ZnW4gc3yoOeM5N5QE5zoT/vBu/wS930VccXAB2XVSTo39PN5DmJLGEklVH/Op5sLIv62mc0gUDv4y92brlXrJUMNVmdsFXAKfWXbTmDKYPtZkmiQBNxJBqPQi/ybdMyPaFeqhYp+VbDrAqwI29lm/A+VNIIduZ6K3b+wW9Yeh2eL3VxWk73n6QbJuozoaYgK2akgEpmYnB4o/wM+YS4FZTqT29WqEDs7AzkUJPb9vosae/hxTKQUuv91HKqAsRC2WkWMFgQEOMDmvZGyQM9jlhrOGvuYwVFRsuniDbiIUUnqnLNobYT8GXlnQ+I1B/JwTZyyP0jiSDaig6psobG8PQDg3pZjNQmOFTtyT1/jnB+0Hv7Gzg6T0KE2S95GOiehBQq8vfc4BMxJLANn1phL+n1K8q/f8JcR43HwXj6kpqBUYa+V/V2YzDHQVohg3mziIlyOhUEuJr6EslTVBfHwRpAFfQEEK6dflcyLuQQt9hblwKGmejdjE6W2M4L5LOBiwnZJCqbOckz3yV+Cjy3GOn5WTyRCmW5IkiOYE8q3PiQp61k144XaVcJ0r3TNRp1+x1fJg6dU/4LdWJSiypEzVyfHV2qhP2GY2VNG+FqufcZJjfH0WGe+winEyGKDlThloMJ5BhdbbmsoVa9jGnVsZUKgs0v2US/ZNuz2UQ7xwzju/UrdP/JvrUWizpE1Xy4fqE2+IkcZpmHMu2hz8B \ No newline at end of file diff --git a/war/templates/flowcharts/sipocS.png b/war/templates/flowcharts/sipocS.png deleted file mode 100644 index 11bd25175..000000000 Binary files a/war/templates/flowcharts/sipocS.png and /dev/null differ diff --git a/war/templates/flowcharts/sipocS.xml b/war/templates/flowcharts/sipocS.xml deleted file mode 100644 index 3e3dfa084..000000000 --- a/war/templates/flowcharts/sipocS.xml +++ /dev/null @@ -1 +0,0 @@ -7Vrvd6I4FP1r/LhzqGitH0eqMz27tq7ozucspJJTJJ4QtO5fPy/wAkGgtVOrs1o9R+ElJOHem5eXHy3bWT5/E2QVjLlPw1bb8p9b9m2r3b7q2B34U5ZtZunZ15lhIZiPmQqDy/6jaLTQmjCfxqWMkvNQslXZ6PEoop4s2YgQfFPO9sjDcq0rssAasUJlcD0S6nYU1h/MlwFar677RcJ3yhYBVn3Txvf7l3hPC8GTCOuLeESzlCXRxaRV2kPAT3AOBair5bNDQ4WhhgfbFcutblPLHgRyGcLNFVymyaOGh7H5Lz8MLyFohC+QVddYHr72moSJLnC3hk3AJHVXxFP3G5AF1BNLwZ+ow0MuwJhiUWrHI4/kiCxZqGTynYZrKplHMAFVcaXant5jXemDLAx1sa22PUi/tS+GUKypkFTLM8cf9Ev5kkqxhSw6VUOP0tW3m0IHN120BYYEOmgjKL1FXnIBLFwgtg04YxkGznf3k/nMraAdB2SlLmNJFdB7g78DnJN+EGDDPko/NcD/CnkHIKVtvUpKDt7BSUGtG6S488nkr7vh9JOW07FiV1iZTB+coXvxfcW+OSErOO4brDzMZ58erN3uXp+QlW6FFWfuzh7Gw+nF89LTAJ+Cl5vXw6qQpej6TECcy3ikmOGJahrSoOPTmwoxZmD03qDL2mEYST9EvNUvE6D7iUFAHf7dgxCAUbtBwHT49/xuOhwP7z99Vv+E47uu66L7hn3d/9I3PyfrKXnbL5mObudlOr5Y5gd9y1HYqU5RLo+dXvsN7FzpSPUo9FTnKpdHT98q04OxT1PnOSY91UlLS63n2c8KrTGJkkfiyURQYZiNS4dAgnVLYfWwIcc3aF57NKVeQMSCRQsjyZUkpfuFkn+QOKjoBVAHDAYxRB9Q4IxD7HH7R7eB3UYZGBLKcK+Rw4vrhm8f0sohRbf3erfU41yJeG18F/F1y5o5+P/QgHkhrELXUvOwUrQRVdwE1nxhPbgh4yhJ18ZnW4gc3yoOeM5N5QE5zoT/vBu/wS930VccXAB2XVSTo39PN5DmJLGEklVH/Op5sLIv62mc0gUDv4y92brlXrJUMNVmdsFXAKfWXbTmDKYPtZkmiQBNxJBqPQi/ybdMyPaFeqhYp+VbDrAqwI29lm/A+VNIIduZ6K3b+wW9Yeh2eL3VxWk73n6QbJuozoaYgK2akgEpmYnB4o/wM+YS4FZTqT29WqEDs7AzkUJPb9vosae/hxTKQUuv91HKqAsRC2WkWMFgQEOMDmvZGyQM9jlhrOGvuYwVFRsuniDbiIUUnqnLNobYT8GXlnQ+I1B/JwTZyyP0jiSDaig6psobG8PQDg3pZjNQmOFTtyT1/jnB+0Hv7Gzg6T0KE2S95GOiehBQq8vfc4BMxJLANn1phL+n1K8q/f8JcR43HwXj6kpqBUYa+V/V2YzDHQVohg3mziIlyOhUEuJr6EslTVBfHwRpAFfQEEK6dflcyLuQQt9hblwKGmejdjE6W2M4L5LOBiwnZJCqbOckz3yV+Cjy3GOn5WTyRCmW5IkiOYE8q3PiQp61k144XaVcJ0r3TNRp1+x1fJg6dU/4LdWJSiypEzVyfHV2qhP2GY2VNG+FqufcZJjfH0WGe+winEyGKDlThloMJ5BhdbbmsoVa9jGnVsZUKgs0v2US/ZNuz2UQ7xwzju/UrdP/JvrUWizpE1Xy4fqE2+IkcZpmHMu2hz8B \ No newline at end of file diff --git a/war/templates/flowcharts/site_map.png b/war/templates/flowcharts/site_map.png index bcf982556..905589b3d 100644 Binary files a/war/templates/flowcharts/site_map.png and b/war/templates/flowcharts/site_map.png differ diff --git a/war/templates/flowcharts/site_map.xml b/war/templates/flowcharts/site_map.xml index 58735b5a8..00b5188c2 100644 --- a/war/templates/flowcharts/site_map.xml +++ b/war/templates/flowcharts/site_map.xml @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/war/templates/flowcharts/site_mapS.png b/war/templates/flowcharts/site_mapS.png deleted file mode 100644 index 905589b3d..000000000 Binary files a/war/templates/flowcharts/site_mapS.png and /dev/null differ diff --git a/war/templates/flowcharts/site_mapS.xml b/war/templates/flowcharts/site_mapS.xml deleted file mode 100644 index 00b5188c2..000000000 --- a/war/templates/flowcharts/site_mapS.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/flowcharts/workflow.png b/war/templates/flowcharts/workflow.png index 6ee0e33c1..71a2fec02 100644 Binary files a/war/templates/flowcharts/workflow.png and b/war/templates/flowcharts/workflow.png differ diff --git a/war/templates/flowcharts/workflow.xml b/war/templates/flowcharts/workflow.xml index 456e67e99..65b566042 100644 --- a/war/templates/flowcharts/workflow.xml +++ b/war/templates/flowcharts/workflow.xml @@ -1 +1 @@ - \ No newline at end of file +7Z3Lkts4soafxsvDIAmSIJfj7tNzNhMxEb04a7lKrlK0LDlUcrd7nn5+VCFZYpKCSApIyYS10O1CSolPuPx5wQf1y5fv/zysvj7/a/+43n7I08fvH9SvH/I8T3WNG/PM32/PZGml3555Omwe7XPvT/y++c+a3mif/bZ5XL903njc77fHzdfukw/73W79cOw8tzoc9n913/Z5v+2e9evqyZ7RntA88fvDakvfIynfn///zePx+e35Oq/en/+/9ebpmc6dVc3bK59WD388HfbfdvaMu/1u/fbKlxUd5vWk6n9hwsN+jyOYe1++/7LeGjOSgew3ezn+Td/qg/r4fPyyxYMMd19f/u3Mh+3vdH8Yv+Kw3tlf8Ha6c8fDS+YDf6623+h4/AT4AJoHDz5+3my3v+y3+8PrC+q31wuefzqsHjc4Ib32apr3p3/dHNCWm/0OL/21fsH3+vhyPOz/WJ8cK329tK9Q06hLv87a48/14bi2mL4+ZX/tP9f7L+vj4W+8xb5aNdb+FmFqjr/eYSjtU88nHNBzKwvgU3vgd+PijrXvsK2L2G2d4axSxrb/83iMrVWTpLppL7arbjGXM73tSiPivOB9ipyx7fgbj7Fr3STvlONyM9Pbf1g8pi+aNGnsj7yBvW1Lu+z98rz6au4+r7+vnozRFmF3RdazRleCk5aMvm08lJdp8nYye7Hj2S2MP2LKeHjef/n0DSdZhPHLagTqWVIXJ+2jAhl/xDxmmf0Nn8+IIj+il19Yf1OVSZOdTGi6/U1RVt35ju0TBNqi/S3RtEVGQtUdGD86aca9gpXshMZM7ZfZ9V/ojEptu2eJRoh2vu/+I9ywT1L2GBEuwerStSi4ZZuMmTA9wgtiH1ordw1mrMSaqTXtevf4D+N6wdOftvuHP5ztwNsUr9W1fW1Mi7zsvx0e7Le2v+O4Ojyt7busWc3vGdWb9YS5XrO0mvRpu7RPDjWMPdu/9xt897OnyuhcdIi3X2Y/deqRYQcqz3xnOs6bOXrHecWktcA4f0R0M4ws1bdb2RR2nRqPuZvcJdWK2j4631tNY/UNrF2OWDeet4xv64ezcZ7WSVae8G2dMbefFJTRde0QDuGbeJ+f2QPcQVOM6PaX8GfgouEtTR59b39L40cXeZG1v/kOrB9d8EWW6fuxfnTRGBDM76fniS4gI0tpVn8H1o/Ocede3t6wKarolAa3Yi7ptaiim3u6V16ito9u6nnBLSFq/OhmnirtTjxFrR3jTPN21o5uZsn0BFFjj/H7L189ljS5HiEXL1GjFLXxiMnJMmMnuDgpavXoZiXuVamo7X+qYaLmjk/+4tKvqLmj07t6fg5Jc9cjQg+Ph81q92QefXw8Mdx69Wq4w/64ss/kCAM6a/tLTXXaJrv9wfzwe5KARRslugQBFj+mlZ1fSBg7vnA9lvcoau3oNHQusNSFPYSEtaNTzbm1G0p8lLB2fCEaWXfm0pCr4MTapA2cWpueuyqjMY2u477glpDsxzNKD166tnUhc0vW5j+doDc0/s/SRzc0/piiAQvobbimK2vk6IRFt6gra/wIZUbmNpK1d3Q6Y113u/Mu7JLL0naRFtFEJnVNZGSNP0ZdFMtsfly9PK/NVzNH9JnmbOfKp2nOtnsZnebM64OFS3PWVFiTgJiZ5cyP0/7T/Kc5Z9mY9fcPmSFvh+JTdGxnORodVm+LRroQ6GR5kjZoeK1Qw7FhwXMZwqWLTKWVKTOdVQV5M6eCVWmd1BWqIsCqZcWrFWYqKSu8p6pLndUpkRECujH68Y/fedme6pRA23A/Cbw1gWNEmEUOn7ZdRxPInHo0mgYgsFcpWNnvOrlKCHMf9A7kE6QxgtIiQZraldFsyDbKgEvHG0hsyoc54EyQWPhA70A+QRoTjLdIkKxgNRokVjifOqgQILHht43xmQwSUwR7B/IJ0hgB8McHaWB6T2visSRhOT+4XgtBEhtG23Ssqytg8QP5JGmMmrlMkibWUuMzDuqiQpDExtE2dn4ySXyU5AfySdJd1eGTXPBN7pPYlGNoWxhvKPHtfij2ZTJKfJzkB/KIEtnnzlDyrV4NoTRR+eSTjlZGDKEesKE0b+aixAdKfiCfKMWhoQ+gRCX/7hGlqsyTWmMIrVNdIayeaURFlVQKcdy1Ug3yDCiCaTJnqU4wLOVNpuuiLnKWYKhylagCKlVaVXlTlAEVhFG1zH98Cq0Br5plnSsjG2Tp56QQcmiHQvsfm65UdSi0LBODSo7BOAT5AQapzu9oBtmsGZp4wEWjk8HKE4O5i8FCjsH7lOR9T+wGGKQfOppBNt1uQ3CCLDedDGpPDCoXg6Ucg3Go+Xauc9WMkM3T23SkIOtUJ4O1JwYLF4OVHIP36Qjw3Q8OMWhtPppBJoVlAX1KOnUy2HhisHQxqOUYjMOHMMTg1LGYb+Mc0B1lQjTOM4jgDD8MVi4GazkG4/A+WGW8Mx+cqBlzj2hA74PpBitE7+Tpq/uM1O22A64SxO2Av7rWRVvVc/pIXCdwxlW60eYoVCqlVYBUUmcNfLMIXixxxc7iE8E43BYDCNIuFXNdqSHdFopvg1oViUJ/pzOlsqKideRU6rKqRohbU6dF3aDla7ZfhaoS9LjoDxsTopbRywGoG7OR2DKpo18+1+0aUpbuUadTE8nYFEUG5NRcfz4W2M5tUpDblOFUZVkrXVYqXF+n7tMZ4nvZQSPWNeNtz0cbUIdG27MJmB/stBs7JI0KYTdCcVnWLt4qLRwZXGMqowtt8U2JfBH2CC2Wsx2kAd0CSApIsMbLNMakpkSHwKWqLAEeCpHb6B9Aysx1YFahD9BNidD/DCtPnJZ1EXWCPABdFkpnWkOFC9dH3Kca4R3EgdjYyTMi7iIN6BoooIlqcNig+hbCuRXtLNVyiCGmQMpKDS2hLimYcCqGqiwTrdPGSMzIRiBPZUthmZhkSDhSK12oNCSF96lHSFBI4XuznaQBnQMFVFEXhWai44FCFJBxUFjIUXifkoQEhaR3znaTBnQPFNBFXRTWfijUTgrRUwpRSKPKwiUKiri8bmrIPaUBPQRQ5p0YNn4wRAUzB4boKqUwjCN0bghD2jl1tq80ZLILL7mAFYlJGsZqAtXPZucOQ4FLUF4GOi/Ef9i96/4ykkUJf1SKnWcUHFcBqYsjWG6IuqkVFHre0ZCJMT2B1g910Hkd1BVi1MWRsU6/6pqJX8WTEULm0PT0WT/UQeZ1UFeKURdHQNwgdRMT3CtedSBkug00YF3UOQp2pECtq8wpeOHRbTWYB9ZwkcNRMLNWRwY3vEoxmyxSYE3797bjLaaaWQMHfAG5mSS6EAjGIUNT/37NcFvxegUBHVOIQHIgiLhgLwjmTgQRCSKDYBwC9BCCtIIcjSCvdBCy3pqZ4Z1FEGHBXhCEn8OBIGLTZRCMQ30eRHBqL8hLJISsmmWme2cRRFSwFwRNPNx5BI0bRgTBOKLhaHl/FYK8tkJABwgWGucRhPfXD4KlE0Hjg5FAkMwYI4ITyyT1ahcF9H6gVJ8DwcwTgvAnOxA0DhgRBOOIkyNp/aoVseBcsEb2ljI50yniXhTStdh6BGHrWleIl0GqTsXxGF2Yt3HtpVDk0GzM8ZsKgTcF5S+EYPA+/R4iDE7tBgUng6ha6mIQmbQeGKxTJ4NKjMH79IKIMDixEI/kbLBG9paDQWTS+mAwczJYiDEYR8mAQQYnRiGITgdR5Pk8g4VJIfPAIDIjHAyWYgxG4iEZiJKuJs4He0liqOV0IdY9VPZOkWXIGUNyITv1rKSxFME2DeIPjMuEOeqwKjFeb4TtVSnyMq0RQ2AYh5dkEMOJU8Je1tjllAtfGCKvMME8EB5dLIUBBcUUU3F1UFkiQAzZtQBWl3omlXAeI2YfTpisruuKbTBZYi0EvzQWMxqZvK3WEILJOKoIkCLQYXJqoAxPKYMPV4pJBE65mMwZk/OQbJxIYmkkhGQcRQXaINUOk9fWD4VTV4pJhFW5mFRemMQXc0GJtZIQlHHE9BNOHSanBlPz/CZ4eaWYRNCVi8miy+TMwC+ksDuYxCRSiEmaL8c4dk9d1vBsJ7h9pZhEjqaLSYSJ+WASwraDSVQlEmIykhIFg4P31EUO13vgCJaCUruhROCYDyihdDugzMWgjCMHZXDwnrrI4bXd4RmWYhLb5rqYRCSZDyahfDuYVGJMxuGbGWJy6rZkPC8KzSTGJLzJLiYRWuaDSSjhDiYLMSbj8NVQqvxVixy+LwtqjwkxiRAeJ5OINfPBJDL5HExiAwghJu/Td+O95PiA/3BqP9nLqZLz3RRIN4abLUPtPY1BlJWDNJo5XIo1nEvGwzJXMjeFRDpIdve/5aJ5uJ1pSaVb+sJ7gEkaImZnXMk5corGySQ0cx9MoqyIi0mmmgdkMhJHzkDYrZ6ae8pTsOQcOWXqZBKauQ8mUWTExSQTzQMyGYcnZ4jJqY6cXhyunCMH1eNcTEIzP2VyZjFLU3HEwSQXzQMyGUeGzFDp3sn95O2YrIizdgY503/YOxCNkwHQIuls6fE9Q8vniaVueiHfcj7CijY+bSeCc9HiB6KeMwRacbhVBnutqVG0PJJbztWHcFk2n5uLFj9QwFL2NCosXWAZyFqe3Gvx8kVyDjvU+WbTsrn5UfxAVFY8BFpx+DgoNuiqXovXKJLzu+mMETE3VosfCOpzOLTiKLU1iNbUpSVznyk595mmzRrPzb5Ho8UOhKVkOLTiCNMnx1AHramZm8wLhkQiKbQaJHJigw2FHaiQs6EoHqddLzYJ6uKjvhsy3utsbn39hnlUgk7x4yhgRIPLKXbUQY3FTrNmUXKOrga5mw7skDviAzvmNAk6/Y+jaNEQdvTTR2PHmkXJ+bKwwZ4LO6SH+MCO+UWCLg3iiKenlL9rBllEcvRqR0phVzuxQwaID+yYzBxy2UAjTYzYTYwERWXbXr1IKewaJ3ZI8vCBHZOgQy4p6jjkW8qzv2qQZc1iakRKBXumqZM7JHL44I7p0xX3P/jkLhJtd4i7qd0d3xBBMEMozZzcIVfDB3dMvO5V9fDJXRzCL8W3dNay125UWltwg6Ts9tYNc5MouH+KHcgnS3EovaSMXsUSzwanjUtDSLuo5VhA8a+wg6XGVgjdqCF0LkMbdU/vsxKzkQIi2ZsK29WT6E8nwTQRAZa6xjkQ/8g9Yj4ZjKOA0CCDU3d045EdaTgGTT1RB4MoN+mBQQy4Lgg15oxCEMbhl6AAvc6GbrR/7tx87zbnJ8Rq1U2h8VN4oNBU6HVQiBmkEIVxuCkofveqrpDnd1N4U5A1hJtC47bwQCFcxy4KczEK44gspyjpbl84FUOe0k2z/hAYZm4MjRvDA4ZwM7swxORTCMNIgskH1rnTh2SexU17VQSp4efG0Lg1PGAIt7MLQ8w/ZTCkKIylj8lD256nExMSe4nbFGIVpGyfG0Pj5vCAIdzQLgwxARXCMA4vBwVMdzGcGpTHc7Vp2RNE9nNiaFawPjA0Wxo6MMQMVAjDOKr9UPB6F8OpYcc8PZvcJkGK87kxNE4QDxiabQ0dGGIGKoRhHFtQU6D7db0hz8gO6AQBEY6i9Mg+nRmh7D5sE27/X/JMRgna1IBlntIa0kNSO4mg5c9k0JyH1dw97BO0OErxUPz/daDxMJaAbhDdOEGjBc70nbScoPE94nyCFkd9HQoE7YI2tegTj1sJ6OnA3MwFGi1hpm+F4AQtDwhaHEVzKAbvOtB48mtAb0adOUGjRcr0PbGcoKmAoMUhFFPASsdrNlUn5lM07Kwsla4ooRq7Y1rEROOczLN0JAfUuslI8pgW7LQshOSFEBdPCvKFEBcpBTmnzbeWvvUL+c46AzJJcbNjXLDPmVSChoigfCHkRUpQRiHdSKgc8q9NppIHvWgxKi/EwPgSmC/EwEgJzDl1IovHclCPuXZfg1oMyxJjeJWCuEahfmJV2N9IvKAapy6xJzQkprKu56qCJWbJConwWhUIxsekuXOSuiwSdNoNXIEFmOWKkE8o4xCjWz3wOih5SEwjByWG8PNQ1ijH6QNKzJMdUFZiUI4RrrfbzdcXwyIj77fXywA/Fl16+tfNYf1w3Ox3eOmv9QuaxgFml3c1ksA/14fjmoYhJ1mK1SasqYFPUKLp4ylJ9NwQSJ0WcJp7jHy7LHOzoKK6sCY4MTetIU/NTc9dZ+4xIuaizI1axAmKVbSXrLt7eZvpKAL7mEjkhVm/dFvfdj0i7I/RVRdlfY1aL+c1bNF+npaGERm/cDkQRHv9bIxUtijjY0XdMb7969+i08/GKELLMj4LBuDGF+zzabyJx/gZNi28YTc/Zkm/NHvz5ZNkzx7dajWDfNURPs445kVoj27xCus3LusP9DXh2I8ju5gc0B2n9NSd1QQzSEpspdZZ8rGYaSZbzlQLnSfR1AUH0AezOGqgtpnDnU0m7zllpOJSAwuh9sKd+ySaaimG4C6OIqitD7nL3dSIasEckQpbojm44+E/M7lznkRTBYoA3JElF9/fDaSMtJLhPaaMVLmTOx7gM5M750k0pT+E4C6OBOHWD9zhjgS7e8wgqbCzsoM7HsIzkzvnSTSVtwrBXRxlUNuQ/i53Uze5EkwoqbB7soM7HqMzkzvnSXS4zEzYLo6EucHubuqyQjC9pMIGyQ7seBTOTOycJ6nD5Wm2cTbxSFh5mrwbGvsUs0gj1Hq/FFcVTE+kjatcjXE8bFa7J/Po4+OJWderV7Me9seVfQah1edb5lJDnrbYbn8wv/yemowF6zJB2BpNpMVGKMDn7eb77yTWAnB6dIsHw9fdaQI7mIk0wQgZ+OV59dXcfV5/Xz0Zuy2xJyM9/L2M6dDQJNIk0cU58cLsbAyh9YqI8ftC4cvq8/rV+qsjbvmAsv5ubGd+6+Zhtf3HdvNkTPpl8/j4Osp83u+Ov2/+Y96NodI+th831jsx5JkW6zbLwAg0OJc1jeQjGIG1DDIuTv809j9z0jCI0kvU6cWesuO/Gu7urmo3ko5O2u1xvXp8napH2nbYzKLzN+oGkpjkmdOm7HdwZgok03Z9serz/vAJzbDeRfvHw5IGuex8Ht32kEiwck+z5VqvL/l820XdZ7KmYxOLPE/6IVxyrdUXSo7rw5fNbmXe9rO9cLGzjXZF2+0o+yEacm13nxlfPkSusdpVDWW7NjpjpbF5U0VTZdtW/4NtEpsiL6q0KoomRYJqwE2RuzMjHpMzviAAcz7wA3lUq2i3qwVmDI7mp0g7/LD/epZgs2vs1aSQ8d9gZ+v+QtwfP644vCzLkvp6YRRwXXEWn+T1hZ4HDBKH/Xa7+gTWTDuo7yu08PGw2r1sXhemkQ1DyL4Gmycrp25g7IhF8c3WXn0N6dvuZ/v229cV/El5jffQnssN0hs7TiBVGmnZGuZtikzzxDskVF8QB/0V2oBLtVbtF6FlOu0GiHJCQ+6WGQOF8zS8DNzsoQEPD/s97PH+9sPq6/O/9o9r847/Ag== \ No newline at end of file diff --git a/war/templates/flowcharts/workflowS.png b/war/templates/flowcharts/workflowS.png deleted file mode 100644 index 71a2fec02..000000000 Binary files a/war/templates/flowcharts/workflowS.png and /dev/null differ diff --git a/war/templates/flowcharts/workflowS.xml b/war/templates/flowcharts/workflowS.xml deleted file mode 100644 index 65b566042..000000000 --- a/war/templates/flowcharts/workflowS.xml +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/war/templates/index.xml b/war/templates/index.xml index df2600ecf..0cbc69d21 100644 --- a/war/templates/index.xml +++ b/war/templates/index.xml @@ -1,22 +1,16 @@