Browse Source

7.9.8 release

Gaudenz Alder 7 years ago
parent
commit
d5284abf53
87 changed files with 1275 additions and 858 deletions
  1. 5 0
      ChangeLog
  2. 1 1
      VERSION
  3. 13 0
      etc/build/build.xml
  4. 3 2
      etc/mxgraph/mxClient.js
  5. 7 4
      src/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java
  6. 34 1
      src/com/mxgraph/io/gliffy/model/GliffyObject.java
  7. 3 1
      war/cache.manifest
  8. BIN
      war/images/sprites.png
  9. 272 264
      war/js/app.min.js
  10. 139 134
      war/js/atlas-viewer.min.js
  11. 251 243
      war/js/atlas.min.js
  12. 20 1
      war/js/diagramly/App.js
  13. 3 3
      war/js/diagramly/Dialogs.js
  14. 1 4
      war/js/diagramly/DriveClient.js
  15. 2 2
      war/js/diagramly/DriveRealtime.js
  16. 37 13
      war/js/diagramly/EditorUi.js
  17. 4 4
      war/js/diagramly/Extensions.js
  18. 14 2
      war/js/diagramly/Menus.js
  19. 4 4
      war/js/diagramly/Pages.js
  20. 0 2
      war/js/diagramly/Trees.js
  21. 6 5
      war/js/embed-static.min.js
  22. 3 3
      war/js/extensions.min.js
  23. 8 8
      war/js/mxgraph/Dialogs.js
  24. 9 4
      war/js/mxgraph/Editor.js
  25. 1 8
      war/js/mxgraph/EditorUi.js
  26. 13 3
      war/js/mxgraph/Format.js
  27. 10 0
      war/js/mxgraph/Graph.js
  28. 6 1
      war/js/mxgraph/Sidebar.js
  29. 6 5
      war/js/reader.min.js
  30. 139 134
      war/js/viewer.min.js
  31. 1 0
      war/resources/dia.txt
  32. 1 0
      war/resources/dia_am.txt
  33. 1 0
      war/resources/dia_ar.txt
  34. 1 0
      war/resources/dia_bg.txt
  35. 1 0
      war/resources/dia_bn.txt
  36. 1 0
      war/resources/dia_bs.txt
  37. 1 0
      war/resources/dia_ca.txt
  38. 1 0
      war/resources/dia_cs.txt
  39. 1 0
      war/resources/dia_da.txt
  40. 1 0
      war/resources/dia_de.txt
  41. 1 0
      war/resources/dia_el.txt
  42. 1 0
      war/resources/dia_eo.txt
  43. 1 0
      war/resources/dia_es.txt
  44. 1 0
      war/resources/dia_et.txt
  45. 1 0
      war/resources/dia_fa.txt
  46. 1 0
      war/resources/dia_fi.txt
  47. 1 0
      war/resources/dia_fil.txt
  48. 1 0
      war/resources/dia_fr.txt
  49. 1 0
      war/resources/dia_gu.txt
  50. 1 0
      war/resources/dia_he.txt
  51. 1 0
      war/resources/dia_hi.txt
  52. 1 0
      war/resources/dia_hr.txt
  53. 1 0
      war/resources/dia_hu.txt
  54. 1 0
      war/resources/dia_i18n.txt
  55. 1 0
      war/resources/dia_id.txt
  56. 1 0
      war/resources/dia_it.txt
  57. 1 0
      war/resources/dia_ja.txt
  58. 1 0
      war/resources/dia_kn.txt
  59. 1 0
      war/resources/dia_ko.txt
  60. 1 0
      war/resources/dia_lt.txt
  61. 1 0
      war/resources/dia_lv.txt
  62. 1 0
      war/resources/dia_ml.txt
  63. 1 0
      war/resources/dia_mr.txt
  64. 1 0
      war/resources/dia_ms.txt
  65. 1 0
      war/resources/dia_nl.txt
  66. 1 0
      war/resources/dia_no.txt
  67. 1 0
      war/resources/dia_pl.txt
  68. 1 0
      war/resources/dia_pt-br.txt
  69. 1 0
      war/resources/dia_pt.txt
  70. 1 0
      war/resources/dia_ro.txt
  71. 1 0
      war/resources/dia_ru.txt
  72. 1 0
      war/resources/dia_sk.txt
  73. 1 0
      war/resources/dia_sl.txt
  74. 2 1
      war/resources/dia_sr.txt
  75. 1 0
      war/resources/dia_sv.txt
  76. 1 0
      war/resources/dia_sw.txt
  77. 1 0
      war/resources/dia_ta.txt
  78. 1 0
      war/resources/dia_te.txt
  79. 1 0
      war/resources/dia_th.txt
  80. 1 0
      war/resources/dia_tr.txt
  81. 1 0
      war/resources/dia_uk.txt
  82. 1 0
      war/resources/dia_vi.txt
  83. 1 0
      war/resources/dia_zh-tw.txt
  84. 1 0
      war/resources/dia_zh.txt
  85. 105 0
      war/styles/dark-default.xml
  86. 94 0
      war/styles/dark.css
  87. 7 1
      war/styles/grapheditor.css

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+16-JAN-2018: 7.9.8
+
+- Adds dark theme (beta)
+- Uses mxGraph 3.8.1 beta 11
+
 12-JAN-2018: 7.9.7
 
 - Disables http/https redirects

+ 1 - 1
VERSION

@@ -1 +1 @@
-7.9.7
+7.9.8

+ 13 - 0
etc/build/build.xml

@@ -58,6 +58,19 @@
     		</concat>
 		<echo file="${basedir}/Graph-Stylesheet.js" append="true">').documentElement;</echo>
 
+		<delete file="${basedir}/.tmp1.js"/>
+		<copy file="${war.dir}/styles/dark-default.xml" tofile="${basedir}/.tmp1.xml" overwrite="true"/>
+		<replaceregexp file="${basedir}/.tmp1.xml" match="${line.separator}" flags="g" replace=""/>
+		<replaceregexp file="${basedir}/.tmp1.xml" match="\t" flags="g" replace=""/>
+		<replaceregexp file="${basedir}/.tmp1.xml" match="'" flags="g" replace="\\\\'" byline="true"/>
+
+		<echo file="${basedir}/Graph-Stylesheet.js" append="true">Graph.prototype.defaultThemes['darkTheme'] = mxUtils.parseXml('</echo>
+		<concat destfile="${basedir}/Graph-Stylesheet.js" fixlastline="no" append="true">
+			<filelist dir="${basedir}" files=".tmp1.xml"/>
+    		</concat>
+		<echo file="${basedir}/Graph-Stylesheet.js" append="true">').documentElement;</echo>
+
+		
 		<delete file="${basedir}/.tmp2.js"/>
 		<copy file="${war.dir}/resources/dia.txt" tofile="${basedir}/.tmp2.xml" overwrite="true"/>
 		<replaceregexp file="${basedir}/.tmp2.xml" match="${line.separator}" flags="g" replace="\\\\n"/>

File diff suppressed because it is too large
+ 3 - 2
etc/mxgraph/mxClient.js


+ 7 - 4
src/com/mxgraph/io/gliffy/importer/GliffyDiagramConverter.java

@@ -159,11 +159,14 @@ public class GliffyDiagramConverter
 				Float o2o;
 				try
 				{
-					if (o1.order == null || o2.order == null)
-					{
+					//we treat the "null" order as higher than "non-null"
+					if (o1.order == null && o2.order == null)
 						return 0;
-					}
-
+					else if(o1.order == null && o2.order != null)
+						return 1;
+					else if(o1.order != null && o2.order == null)
+						return -1;
+					
 					o1o = Float.parseFloat(o1.order);
 					o2o = Float.parseFloat(o2.order);
 

+ 34 - 1
src/com/mxgraph/io/gliffy/model/GliffyObject.java

@@ -8,6 +8,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Stream;
 
 import com.mxgraph.io.gliffy.importer.PostDeserializer.PostDeserializable;
 import com.mxgraph.model.mxCell;
@@ -389,8 +390,11 @@ public class GliffyObject implements PostDeserializable
 	@Override
 	public void postDeserialize()
 	{
-		if (isGroup())
+		if (isGroup()) 
+		{
 			normalizeChildrenCoordinates();
+			adjustZOrder();			
+		}
 	}
 
 	/**
@@ -444,6 +448,35 @@ public class GliffyObject implements PostDeserializable
 				child.y += -yMin;
 		}
 	}
+	
+	/**
+	 * Fix for https://desk.draw.io/helpdesk/tickets/5205
+	 * Since Gliffy can have groups whose children interleave in terms of z order and we can't, we assign the group a z order 
+	 * to that of it's highest ordered rectangle child
+	 */
+	private void adjustZOrder() 
+	{
+		Integer maxOrder = null;
+		
+		for(GliffyObject c : children)  
+		{
+			if(c.uid != null && c.uid.equals("com.gliffy.shape.basic.basic_v1.default.rectangle") && c.x == 0 && c.y== 0 && c.width == width && c.height == height) 
+			{
+				try {
+					Integer childOrder = Integer.parseInt(c.order);
+					 
+					if(maxOrder == null || childOrder > maxOrder) 
+					{
+						maxOrder = childOrder;
+					}
+					
+				} catch (NumberFormatException e) {}
+			}
+		}
+		
+		if(maxOrder != null) 
+			this.order = maxOrder.toString();
+	}
 
 	private mxGeometry getAdjustShifts(double[] arr, double x, double y, double w, double h)
 	{

+ 3 - 1
war/cache.manifest

@@ -1,7 +1,7 @@
 CACHE MANIFEST
 
 # THIS FILE WAS GENERATED. DO NOT MODIFY!
-# 01/12/2018 11:30 PM
+# 01/16/2018 01:58 PM
 
 app.html
 index.html?offline=1
@@ -13,6 +13,7 @@ js/shapes.min.js
 js/stencils.min.js
 styles/grapheditor.css
 styles/atlas.css
+styles/dark.css
 favicon.ico
 mxgraph/css/common.css
 mxgraph/images/maximize.gif
@@ -27,6 +28,7 @@ mxgraph/images/point.gif
 mxgraph/images/transparent.gif
 resources/dia.txt
 styles/default.xml
+styles/dark-default.xml
 styles/default-old.xml
 img/clipart/Gear_128x128.png
 images/delete.png

BIN
war/images/sprites.png


File diff suppressed because it is too large
+ 272 - 264
war/js/app.min.js


File diff suppressed because it is too large
+ 139 - 134
war/js/atlas-viewer.min.js


File diff suppressed because it is too large
+ 251 - 243
war/js/atlas.min.js


+ 20 - 1
war/js/diagramly/App.js

@@ -447,6 +447,10 @@ App.main = function(callback, createUi)
 	{
 		mxClient.link('stylesheet', 'styles/atlas.css');
 	}
+	else if (uiTheme == 'dark')
+	{
+		mxClient.link('stylesheet', 'styles/dark.css');
+	}
 	
 	if (window.mxscript != null)
 	{
@@ -571,7 +575,7 @@ App.main = function(callback, createUi)
 	// Prefetches asynchronous requests so that below code runs synchronous
 	// Loading the correct bundle (one file) via the fallback system in mxResources. The stylesheet
 	// is compiled into JS in the build process and is only needed for local development.
-	mxUtils.getAll((urlParams['dev'] != '1') ? [bundle] : [bundle, STYLE_PATH + '/default.xml'], function(xhr)
+	mxUtils.getAll((urlParams['dev'] != '1') ? [bundle] : [bundle, (uiTheme == 'dark') ? STYLE_PATH + '/dark-default.xml' : STYLE_PATH + '/default.xml'], function(xhr)
 	{
 		// Adds bundle text to resources
 		mxResources.parse(xhr[0].getText());
@@ -4528,6 +4532,11 @@ App.prototype.updateHeader = function()
 		this.toggleFormatElement.style.backgroundPosition = '50% 50%';
 		this.toggleFormatElement.style.backgroundRepeat = 'no-repeat';
 		this.toolbarContainer.appendChild(this.toggleFormatElement);
+		
+		if (uiTheme == 'dark')
+		{
+			this.toggleFormatElement.style.filter = 'invert(100%)';
+		}
 
 		mxEvent.addListener(this.toggleFormatElement, 'click', mxUtils.bind(this, function(evt)
 		{
@@ -4570,6 +4579,11 @@ App.prototype.updateHeader = function()
 		var initialPosition = this.hsplitPosition;
 		var collapsed = false;
 
+		if (uiTheme == 'dark')
+		{
+			this.fullscreenElement.style.filter = 'invert(100%)';
+		}
+		
 		mxEvent.addListener(this.fullscreenElement, 'click', mxUtils.bind(this, function(evt)
 		{
 			if (uiTheme != 'atlas' && urlParams['embed'] != '1')
@@ -4619,6 +4633,11 @@ App.prototype.updateHeader = function()
 			this.toggleElement.style.backgroundPosition = '50% 50%';
 			this.toggleElement.style.backgroundRepeat = 'no-repeat';
 			
+			if (uiTheme == 'dark')
+			{
+				this.toggleElement.style.filter = 'invert(100%)';
+			}
+			
 			// Toggles compact mode
 			mxEvent.addListener(this.toggleElement, 'click', mxUtils.bind(this, function(evt)
 			{

+ 3 - 3
war/js/diagramly/Dialogs.js

@@ -211,7 +211,7 @@ var StorageDialog = function(editorUi, fn, rowLimit)
 				width: 5, // The line thickness
 				radius: 10, // The radius of the inner circle
 				rotate: 0, // The rotation offset
-				color: '#000', // #rgb or #rrggbb
+				color: (uiTheme == 'dark') ? '#c0c0c0' : '#000', // #rgb or #rrggbb
 				speed: 1.5, // Rounds per second
 				trail: 60, // Afterglow percentage
 				shadow: false, // Whether to render a shadow
@@ -6258,7 +6258,7 @@ var MoreShapesDialog = function(editorUi, expanded, entries)
 			{
 				var title = listEntry.cloneNode(false);
 				title.style.fontWeight = 'bold';
-				title.style.backgroundColor = '#e5e5e5';
+				title.style.backgroundColor = (uiTheme == 'dark') ? '#505759' : '#e5e5e5';
 				title.style.padding = '6px 0px 6px 20px';
 				mxUtils.write(title, section.title);
 				list.appendChild(title);
@@ -6304,7 +6304,7 @@ var MoreShapesDialog = function(editorUi, expanded, entries)
 								}
 								
 								currentListItem = option;
-								currentListItem.style.backgroundColor = '#ebf2f9';
+								currentListItem.style.backgroundColor = (uiTheme == 'dark') ? '#505759' : '#ebf2f9';
 								
 								if (evt != null)
 								{

+ 1 - 4
war/js/diagramly/DriveClient.js

@@ -292,10 +292,7 @@ DriveClient.prototype.execute = function(fn)
 };
 
 /**
- * Translates this point by the given vector.
- * 
- * @param {number} dx X-coordinate of the translation.
- * @param {number} dy Y-coordinate of the translation.
+ * Executes the given request.
  */
 DriveClient.prototype.executeRequest = function(req, success, error)
 {

+ 2 - 2
war/js/diagramly/DriveRealtime.js

@@ -1682,7 +1682,7 @@ DriveRealtime.prototype.checkChildren = function(cell)
  */
 DriveRealtime.prototype.log = function(message)
 {
-	if (this.logLevel > 1)
+	//if (this.logLevel > 1)
 	{
 		//mxLog.debug.apply(mxLog, arguments);
 		//console.log(message);
@@ -1694,7 +1694,7 @@ DriveRealtime.prototype.log = function(message)
  */
 DriveRealtime.prototype.warn = function(message)
 {
-	if (this.logLevel > 0)
+	//if (this.logLevel > 0)
 	{
 		//mxLog.debug.apply(mxLog, arguments);
 		//console.log(message);

+ 37 - 13
war/js/diagramly/EditorUi.js

@@ -267,7 +267,7 @@
 			width: Math.round(size / 3), // The line thickness
 			radius: Math.round(size / 2), // The radius of the inner circle
 			rotate: 0, // The rotation offset
-			color: '#000', // #rgb or #rrggbb
+			color: (uiTheme == 'dark') ? '#c0c0c0' : '#000', // #rgb or #rrggbb
 			speed: 1.5, // Rounds per second
 			trail: 60, // Afterglow percentage
 			shadow: false, // Whether to render a shadow
@@ -304,8 +304,12 @@
 					status.style.top = Math.max(0, y + 70) + 'px';
 					
 					mxUtils.setPrefixedStyle(status.style, 'borderRadius', '6px');
-					mxUtils.setPrefixedStyle(status.style, 'boxShadow', '2px 2px 3px 0px #ddd');
 					mxUtils.setPrefixedStyle(status.style, 'transform', 'translate(-50%,-50%)');
+
+					if (uiTheme != 'dark')
+					{
+						mxUtils.setPrefixedStyle(status.style, 'boxShadow', '2px 2px 3px 0px #ddd');
+					}
 					
 					status.innerHTML = label + '...';
 					container.appendChild(status);
@@ -2297,19 +2301,39 @@
 		};
     }
     
+    if (uiTheme == 'dark')
+	{
+    		Graph.prototype.defaultThemeName = 'darkTheme';
+		Dialog.backdropColor = '#2a2a2a';
+		Graph.prototype.defaultPageBackgroundColor = '#2a2a2a';
+		Graph.prototype.defaultGraphBackground = null;
+		Graph.prototype.defaultPageBorderColor = '#505759';
+		Format.prototype.inactiveTabBackgroundColor = 'black';
+		BaseFormatPanel.prototype.buttonBackgroundColor = '#2a2a2a';
+		Sidebar.prototype.dragPreviewBorder = '1px dashed #cccccc';
+		mxGraphHandler.prototype.previewColor = '#cccccc';
+		StyleFormatPanel.prototype.defaultStrokeColor = '#cccccc';
+		
+		if (mxClient.IS_SVG)
+		{
+			Editor.helpImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAP1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////9Du/pqAAAAFXRSTlMAT30qCJRBboyDZyCgRzUUdF46MJlgXETgAAAAeklEQVQY022O2w4DIQhEQUURda/9/28tUO2+7CQS5sgQ4F1RapX78YUwRqQjTU8ILqQfKerTKTvACJ4nLX3krt+8aS82oI8aQC4KavRgtvEW/mDvsICgA03PSGRr79MqX1YPNIxzjyqtw8ZnnRo4t5a5undtJYRywau+ds4Cyza3E6YAAAAASUVORK5CYII=';
+			Editor.checkmarkImage = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAMAAACeyVWkAAAARVBMVEUAAACZmZkICAgEBASNjY2Dg4MYGBiTk5N5eXl1dXVmZmZQUFBCQkI3NzceHh4MDAykpKSJiYl+fn5sbGxaWlo/Pz8SEhK96uPlAAAAAXRSTlMAQObYZgAAAE5JREFUGNPFzTcSgDAQQ1HJGUfy/Y9K7V1qeOUfzQifCQZai1XHaz11LFysbDbzgDSSWMZiETz3+b8yNUc/MMsktxuC8XQBSncdLwz+8gCCggGXzBcozAAAAABJRU5ErkJggg==';
+		}
+	}
+    
     /**
      * Hides the footer.
      */
     EditorUi.prototype.hideFooter = function()
     {
-    	var footer = document.getElementById('geFooter');
-	    	
-    	if (footer != null)
-    	{
-    		this.footerHeight = 0;
-    		footer.style.display = 'none';
-    		this.refresh();
-    	}
+	    	var footer = document.getElementById('geFooter');
+		    	
+	    	if (footer != null)
+	    	{
+	    		this.footerHeight = 0;
+	    		footer.style.display = 'none';
+	    		this.refresh();
+	    	}
     };
 
     /**
@@ -4410,7 +4434,7 @@
 	EditorUi.prototype.convertMath = function(graph, svgRoot, fixPosition, callback)
 	{
 		// FIXME: Only horizontal dash in output so better no conversion at all
-		if (false && graph.mathEnabled && typeof(MathJax) !== 'undefined' && typeof(MathJax.Hub) !== 'undefined')
+		/*if (false && graph.mathEnabled && typeof(MathJax) !== 'undefined' && typeof(MathJax.Hub) !== 'undefined')
 		{
 			// Workaround for lost gradients in Chrome after remove from DOM
 			var elts = svgRoot.getElementsByTagName('*');
@@ -4466,7 +4490,7 @@
 				callback();
 			}));
 		}
-		else
+		else*/
 		{
 			callback();
 		}
@@ -4872,7 +4896,7 @@
 		// Handles special case where background is null but transparent is false
 		if (bg == null && transparentBackground == false)
 		{
-			bg = '#ffffff';
+			bg = this.editor.graph.defaultPageBackgroundColor;
 		}
 		
 		this.convertImages(graph.getSvg(bg, null, null, noCrop, null, ignoreSelection), mxUtils.bind(this, function(svgRoot)

+ 4 - 4
war/js/diagramly/Extensions.js

@@ -2849,7 +2849,7 @@
 			{
 				cell.style += s;
 			}
-			else if (a.Class != null)
+//			else if (a.Class != null)
 			{
 //				console.log('no mapping', a.Class);
 			}
@@ -7055,7 +7055,7 @@
 				break;
 				
 			case 'PEColumnBlock' :
-				v.style += 'verticalLabelPosition=bottom;verticalAlign=top;';
+				v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
 					getStrokeColor(p, a) +
 					getFillColor(p,a) +
 					getStrokeWidth(p) +
@@ -8473,7 +8473,7 @@
 				
 				break;
 			case 'UI2LinkBarBlock' :
-				v.style += 'strokeColor=none;fillColor=none;'
+				v.style += 'strokeColor=none;fillColor=none;' +
 					getOpacity(p, a) +
 					getStrokeColor(p, a) + 
 					getStrokeWidth(p) +
@@ -8512,7 +8512,7 @@
 				break;
 				
 			case 'UI2BreadCrumbsBlock' :
-				v.style += 'strokeColor=none;fillColor=none;'
+				v.style += 'strokeColor=none;fillColor=none;' +
 					getOpacity(p, a) +
 					getStrokeColor(p, a) + 
 					getStrokeWidth(p) +

+ 14 - 2
war/js/diagramly/Menus.js

@@ -823,7 +823,7 @@
 			{
 				// No translation for menu item since help is english only
 				var item = menu.addItem('Search:', null, null, parent, null, null, false);
-				item.style.backgroundColor = 'whiteSmoke';
+				item.style.backgroundColor = (uiTheme == 'dark') ? '#505759' : 'whiteSmoke';
 				item.style.cursor = 'default';
 				
 				var input = document.createElement('input');
@@ -1767,7 +1767,7 @@
 				editorUi.alert(mxResources.get('restartForChangeRequired'));
 			}, parent);
 
-			if (uiTheme != 'atlas')
+			if (uiTheme != 'atlas' && uiTheme != 'dark')
 			{
 				menu.addCheckmark(item, Editor.checkmarkImage);
 			}
@@ -1783,6 +1783,18 @@
 			{
 				menu.addCheckmark(item, Editor.checkmarkImage);
 			}
+			
+			item = menu.addItem(mxResources.get('dark'), null, function()
+			{
+				mxSettings.setUi('dark');
+				mxSettings.save();
+				editorUi.alert(mxResources.get('restartForChangeRequired'));
+			}, parent);
+			
+			if (uiTheme == 'dark')
+			{
+				menu.addCheckmark(item, Editor.checkmarkImage);
+			}
 		})));
 
 		this.editorUi.actions.addAction('rename...', mxUtils.bind(this, function()

+ 4 - 4
war/js/diagramly/Pages.js

@@ -836,7 +836,7 @@ EditorUi.prototype.movePage = function(oldIndex, newIndex)
 EditorUi.prototype.createTabContainer = function()
 {
 	var div = document.createElement('div');
-	div.style.backgroundColor = '#dcdcdc';
+	div.style.backgroundColor = (uiTheme == 'dark') ? '#2a2a2a' : '#dcdcdc';
 	div.style.position = 'absolute';
 	div.style.whiteSpace = 'nowrap';
 	div.style.overflow = 'hidden';
@@ -879,7 +879,7 @@ EditorUi.prototype.updateTabContainer = function()
 				if (this.pages[index] == this.currentPage)
 				{
 					tab.className = 'geActivePage';
-					tab.style.backgroundColor = '#eeeeee';
+					tab.style.backgroundColor = (uiTheme == 'dark') ? '#2a2a2a' : '#eeeeee';
 					tab.style.fontWeight = 'bold';
 					tab.style.borderTopStyle = 'none';
 				}
@@ -1033,7 +1033,7 @@ EditorUi.prototype.createTab = function(hoverEnabled)
 	tab.style.marginLeft = '-1px';
 	tab.style.height = this.tabContainer.clientHeight + 'px';
 	tab.style.padding = '8px 4px 8px 4px';
-	tab.style.border = '1px solid #c0c0c0';
+	tab.style.border = (uiTheme == 'dark') ? '1px solid #505759' : '1px solid #c0c0c0';
 	tab.style.borderBottomStyle = 'solid';
 	tab.style.backgroundColor = this.tabContainer.style.backgroundColor;
 	tab.style.cursor = 'default';
@@ -1045,7 +1045,7 @@ EditorUi.prototype.createTab = function(hoverEnabled)
 		{
 			if (!this.editor.graph.isMouseDown)
 			{
-				tab.style.backgroundColor = '#d3d3d3';
+				tab.style.backgroundColor = (uiTheme == 'dark') ? 'black' : '#d3d3d3';
 				mxEvent.consume(evt);
 			}
 		}));

+ 0 - 2
war/js/diagramly/Trees.js

@@ -1070,8 +1070,6 @@
 					return addSibling(source, direction != mxConstants.DIRECTION_NORTH &&
 						direction != mxConstants.DIRECTION_WEST);
 				}
-				
-				return [];
 			}
 			else
 			{

File diff suppressed because it is too large
+ 6 - 5
war/js/embed-static.min.js


File diff suppressed because it is too large
+ 3 - 3
war/js/extensions.min.js


+ 8 - 8
war/js/mxgraph/Dialogs.js

@@ -1771,7 +1771,7 @@ var LinkDialog = function(editorUi, initialValue, btnLabel, fn)
 var OutlineWindow = function(editorUi, x, y, w, h)
 {
 	var graph = editorUi.editor.graph;
-	
+
 	var div = document.createElement('div');
 	div.style.position = 'absolute';
 	div.style.width = '100%';
@@ -1846,9 +1846,9 @@ var OutlineWindow = function(editorUi, x, y, w, h)
 		g.gridEnabled = false;
 		g.pageScale = graph.pageScale;
 		g.pageFormat = graph.pageFormat;
-		g.background = graph.background;
+		g.background = (graph.background == null || graph.background == mxConstants.NONE) ? graph.defaultPageBackgroundColor : graph.background;
 		g.pageVisible = graph.pageVisible;
-		
+
 		var current = mxUtils.getCurrentStyle(graph.container);
 		div.style.backgroundColor = current.backgroundColor;
 		
@@ -1860,11 +1860,11 @@ var OutlineWindow = function(editorUi, x, y, w, h)
 		outline.outline.pageScale = graph.pageScale;
 		outline.outline.pageFormat = graph.pageFormat;
 		outline.outline.pageVisible = graph.pageVisible;
-		outline.outline.background = graph.background;
+		outline.outline.background = (graph.background == null || graph.background == mxConstants.NONE) ? graph.defaultPageBackgroundColor : graph.background;;
 		
 		var current = mxUtils.getCurrentStyle(graph.container);
 		div.style.backgroundColor = current.backgroundColor;
-		
+
 		if (graph.view.backgroundPageShape != null && outline.outline.view.backgroundPageShape != null)
 		{
 			outline.outline.view.backgroundPageShape.fill = graph.view.backgroundPageShape.fill;
@@ -1932,7 +1932,7 @@ var LayersWindow = function(editorUi, x, y, w, h)
 	
 	var div = document.createElement('div');
 	div.style.userSelect = 'none';
-	div.style.background = 'whiteSmoke';
+	div.style.background = (Dialog.backdropColor == 'white') ? 'whiteSmoke' : Dialog.backdropColor;
 	div.style.border = '1px solid whiteSmoke';
 	div.style.height = '100%';
 	div.style.marginBottom = '10px';
@@ -1941,7 +1941,7 @@ var LayersWindow = function(editorUi, x, y, w, h)
 	var tbarHeight = (!EditorUi.compactUi) ? '30px' : '26px';
 	
 	var listDiv = document.createElement('div')
-	listDiv.style.backgroundColor = '#e5e5e5';
+	listDiv.style.backgroundColor = (Dialog.backdropColor == 'white') ? '#a2a2a2' : '#e5e5e5';
 	listDiv.style.position = 'absolute';
 	listDiv.style.overflow = 'auto';
 	listDiv.style.left = '0px';
@@ -1981,7 +1981,7 @@ var LayersWindow = function(editorUi, x, y, w, h)
 	ldiv.style.height = tbarHeight;
 	ldiv.style.overflow = 'hidden';
 	ldiv.style.padding = (!EditorUi.compactUi) ? '1px' : '4px 0px 3px 0px';
-	ldiv.style.backgroundColor = 'whiteSmoke';
+	ldiv.style.backgroundColor = (Dialog.backdropColor == 'white') ? 'whiteSmoke' : Dialog.backdropColor;
 	ldiv.style.borderWidth = '1px 0px 0px 0px';
 	ldiv.style.borderColor = '#c3c3c3';
 	ldiv.style.borderStyle = 'solid';

+ 9 - 4
war/js/mxgraph/Editor.js

@@ -744,7 +744,7 @@ function Dialog(editorUi, elt, w, h, modal, closable, onClose)
 	{
 		this.bg = editorUi.createDiv('background');
 		this.bg.style.position = 'absolute';
-		this.bg.style.background = 'white';
+		this.bg.style.background = Dialog.backdropColor;
 		this.bg.style.height = dh + 'px';
 		this.bg.style.right = '0px';
 		this.bg.style.zIndex = this.zIndex - 2;
@@ -850,6 +850,11 @@ function Dialog(editorUi, elt, w, h, modal, closable, onClose)
 	editorUi.editor.fireEvent(new mxEventObject('showDialog'));
 };
 
+/**
+ * 
+ */
+Dialog.backdropColor = 'white';
+
 /**
  * 
  */
@@ -1805,8 +1810,8 @@ PageSetupDialog.getFormats = function()
 	mxGraphView.prototype.validateBackgroundStyles = function()
 	{
 		var graph = this.graph;
-		var color = (graph.background == null || graph.background == mxConstants.NONE) ? '#ffffff' : graph.background;
-		var gridColor = (this.gridColor != color.toLowerCase()) ? this.gridColor : '#ffffff';
+		var color = (graph.background == null || graph.background == mxConstants.NONE) ? graph.defaultPageBackgroundColor : graph.background;
+		var gridColor = (color != null && this.gridColor != color.toLowerCase()) ? this.gridColor : '#ffffff';
 		var image = 'none';
 		var position = '';
 		
@@ -2043,7 +2048,7 @@ PageSetupDialog.getFormats = function()
 	// Creates background page shape
 	mxGraphView.prototype.createBackgroundPageShape = function(bounds)
 	{
-		return new mxRectangleShape(bounds, '#ffffff', '#cacaca');
+		return new mxRectangleShape(bounds, '#ffffff', this.graph.defaultPageBorderColor);
 	};
 
 	// Fits the number of background pages to the graph

+ 1 - 8
war/js/mxgraph/EditorUi.js

@@ -2959,7 +2959,7 @@ EditorUi.prototype.createDivs = function()
 	this.menubarContainer = this.createDiv('geMenubarContainer');
 	this.toolbarContainer = this.createDiv('geToolbarContainer');
 	this.sidebarContainer = this.createDiv('geSidebarContainer');
-	this.formatContainer = this.createDiv('geSidebarContainer');
+	this.formatContainer = this.createDiv('geSidebarContainer geFormatContainer');
 	this.diagramContainer = this.createDiv('geDiagramContainer');
 	this.footerContainer = this.createDiv('geFooterContainer');
 	this.hsplit = this.createDiv('geHsplit');
@@ -2980,13 +2980,6 @@ EditorUi.prototype.createDivs = function()
 	this.footerContainer.style.bottom = '0px';
 	this.footerContainer.style.zIndex = mxPopupMenu.prototype.zIndex - 2;
 	this.hsplit.style.width = this.splitSize + 'px';
-	
-	// Only vertical scrollbars, no background in format sidebar
-	this.formatContainer.style.backgroundColor = 'whiteSmoke';
-	this.formatContainer.style.overflowX = 'hidden';
-	this.formatContainer.style.overflowY = 'auto';
-	this.formatContainer.style.fontSize = '12px';
-	
 	this.sidebarFooterContainer = this.createSidebarFooterContainer();
 	
 	if (this.sidebarFooterContainer)

+ 13 - 3
war/js/mxgraph/Format.js

@@ -513,6 +513,11 @@ BaseFormatPanel = function(format, editorUi, container)
 	this.listeners = [];
 };
 
+/**
+ * 
+ */
+BaseFormatPanel.prototype.buttonBackgroundColor = 'white';
+
 /**
  * Adds the given color option.
  */
@@ -1226,7 +1231,7 @@ BaseFormatPanel.prototype.addArrow = function(elt, height)
 
 	mxUtils.setOpacity(elt, 100);
 	elt.style.border = '1px solid #a0a0a0';
-	elt.style.backgroundColor = 'white';
+	elt.style.backgroundColor = this.buttonBackgroundColor;
 	elt.style.backgroundImage = 'none';
 	elt.style.width = 'auto';
 	elt.className += ' geColorBtn';
@@ -3640,6 +3645,11 @@ StyleFormatPanel = function(format, editorUi, container)
 
 mxUtils.extend(StyleFormatPanel, BaseFormatPanel);
 
+/**
+ * 
+ */
+StyleFormatPanel.prototype.defaultStrokeColor = 'black';
+
 /**
  * Adds the label menu items to the given menu and parent.
  */
@@ -3922,7 +3932,7 @@ StyleFormatPanel.prototype.addStroke = function(container)
 		var pat = document.createElement('div');
 		pat.style.width = width + 'px';
 		pat.style.height = '1px';
-		pat.style.borderBottom = '1px ' + cssName + ' black';
+		pat.style.borderBottom = '1px ' + cssName + ' ' + this.defaultStrokeColor;
 		pat.style.paddingTop = '6px';
 
 		item.firstChild.firstChild.style.padding = '0px 4px 0px 4px';
@@ -5147,7 +5157,7 @@ DiagramFormatPanel.prototype.addPaperSize = function(div)
 	{
 		accessor.set(graph.pageFormat);
 	});
--	this.addKeyHandler(accessor.heightInput, function()
+	this.addKeyHandler(accessor.heightInput, function()
 	{
 		accessor.set(graph.pageFormat);	
 	});

+ 10 - 0
war/js/mxgraph/Graph.js

@@ -940,6 +940,16 @@ Graph.prototype.defaultPageVisible = true;
  */
 Graph.prototype.lightbox = false;
 
+/**
+ * 
+ */
+Graph.prototype.defaultPageBackgroundColor = '#ffffff';
+
+/**
+ * 
+ */
+Graph.prototype.defaultPageBorderColor = '#ffffff';
+
 /**
  * 
  */

File diff suppressed because it is too large
+ 6 - 1
war/js/mxgraph/Sidebar.js


File diff suppressed because it is too large
+ 6 - 5
war/js/reader.min.js


File diff suppressed because it is too large
+ 139 - 134
war/js/viewer.min.js


+ 1 - 0
war/resources/dia.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_am.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_ar.txt

@@ -91,6 +91,7 @@ chromeApp=‫تطبيق Chrome‬
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_bg.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome приложение
 compressed=Компресиран
 commitMessage=Съобщение при подаване
 csv=CSV
+dark=Dark
 draftFound=Открита е чернова за {1}. За да продължите, я качете в редактора или я откажете. 
 dragAndDropNotSupported=Опцията плъзгане и пускане не се поддържа за изображения. Желаете ли да импортирате вместо това?
 dropboxCharsNotAllowed=Следните знаци не са позволени: \ / : ? * " |

+ 1 - 0
war/resources/dia_bn.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_bs.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome Aplikacija
 compressed=Kompresovano
 commitMessage=Posveti poruku
 csv=CSV
+dark=Dark
 draftFound={1} nacrt pronađen. Učitajte ga u uređivač ili ga odbacite kako biste nastavili.
 dragAndDropNotSupported=Prevlačenje nije podržano kada je riječ o slikama. Želite li uvesti umjesto toga?
 dropboxCharsNotAllowed=Sljedeći znakovi nisu dozvoljeni: \ / : ? * " |

+ 1 - 0
war/resources/dia_ca.txt

@@ -91,6 +91,7 @@ chromeApp=Aplicació Chrome
 compressed=Comprimit
 commitMessage=Missatge de Commit
 csv=CSV
+dark=Dark
 draftFound=S'ha trobat un esborrany per a '{1}'. Carrega'l a l'editor o descarta'l per continuar.
 dragAndDropNotSupported=Les imatges no es poden arrosegar i amollar. Vols importar-les?
 dropboxCharsNotAllowed=No es permeten aquests caràcters: \ / : ? * " |

+ 1 - 0
war/resources/dia_cs.txt

@@ -91,6 +91,7 @@ chromeApp=Aplikace Chrome
 compressed=Komprimováno
 commitMessage=Zpráva ke commitu
 csv=CSV
+dark=Dark
 draftFound=Byl nalezen koncept pro '{1}'. Abyste mohli pokračovat, nahrajte ho do editoru nebo jej zahoďte.
 dragAndDropNotSupported=Pro obrázky není funkce Drag & Drop k dispozici. Chcete ho místo toho naimportovat?
 dropboxCharsNotAllowed=Následující znaky nejsou povoleny: \ / : ? * " |

+ 1 - 0
war/resources/dia_da.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome app
 compressed=Komprimeret
 commitMessage=Commit Besked
 csv=CSV
+dark=Dark
 draftFound=Et udkast for '{1}' blev fundet. Load det i editoren eller kasser det for at fortsætte.
 dragAndDropNotSupported=Drag & drop er ikke understøttet for billeder Vil du importere i stedet?
 dropboxCharsNotAllowed=Følgende tegn er ikke tilladt: \ / : ? * " |

+ 1 - 0
war/resources/dia_de.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome app
 compressed=Komprimiert
 commitMessage=Commit-Nachricht
 csv=CSV
+dark=Dark
 draftFound=Ein Entwurf für '{1}' wurde gefunden. Setzen Sie die Bearbeitung fort oder verwerfen Sie die Änderungen.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=Unzulässige Zeichen: \ / : ? * " |

+ 1 - 0
war/resources/dia_el.txt

@@ -91,6 +91,7 @@ chromeApp=Εφαρμογή Chrome
 compressed=Συμπιεσμένο
 commitMessage=Υποβολή μυνήματος
 csv=CSV
+dark=Dark
 draftFound=Έχει βρεθει ένα σχέδιο για το '{1}' . Φορτώστε το στον επεξεργαστή ή απορρίψτε το για να συνεχίσετε.
 dragAndDropNotSupported=Το Drag & Drop δεν υποστηρίζεται για τις εικόνες. Θα θέλατε να τις εισάγετε παρόλα αυτά;
 dropboxCharsNotAllowed=Οι παρακάτω χαρακτήρες δεν υποστηρίζονται: \ / : ? * " |

+ 1 - 0
war/resources/dia_eo.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_es.txt

@@ -91,6 +91,7 @@ chromeApp=Aplicación Chrome
 compressed=Comprimido
 commitMessage=Confirmar mensaje
 csv=CSV
+dark=Dark
 draftFound=Se encontró un borrador para '{1}'. Cárguelo en el editor o descártelo para continuar.
 dragAndDropNotSupported=La opción de arrastrar y soltar no está soportada para las imágenes. ¿En lugar de eso, le gustaría importar?
 dropboxCharsNotAllowed=Los siguientes caracteres no están permitidos: \ / : ? * " |

+ 1 - 0
war/resources/dia_et.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Pakitud
 commitMessage=Kinnita sõnum
 csv=CSV
+dark=Dark
 draftFound=Mustand {1} jaoks on leitud. Lae see töötluskeskkonda või tühista jätkamiseks.
 dragAndDropNotSupported=Piltidele puudub pukseerimise tugi. Kas sooviksid selle asemel importida?
 dropboxCharsNotAllowed=Järgnevad tähemärgid pole lubatud:  \ / : ? * " |

+ 1 - 0
war/resources/dia_fa.txt

@@ -91,6 +91,7 @@ chromeApp=‫اپلیکیشن کروم‬
 compressed=‫فشرده‬
 commitMessage=‫تایید پیام‬
 csv=CSV
+dark=Dark
 draftFound=‫پیش نویس '{1}' یافت شد. آن را به داخل ویرایشگر بارگذاری کنید و یا آن را برای ادامه دادن حذف کنید.‬
 dragAndDropNotSupported=‫حرکت و کشیدن و انداختن برای تصاویر امکانپذیر نیست. آیا می خواهید بجای آن تصاویر را وارد کنید؟‬
 dropboxCharsNotAllowed=‫کاراکترهای زیر مجاز نمی باشند: \ / : ? * " |‬

+ 1 - 0
war/resources/dia_fi.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome-sovellus
 compressed=Pakattu
 commitMessage=Lähetä viesti
 csv=CSV
+dark=Dark
 draftFound=Vedos tiedostolle '{1}' on löytynyt. Lataa se muokattavaksi tai hylkää se jatkaaksesi.
 dragAndDropNotSupported=Vedä ja pudota'-toiminto ei tue kuvia. Haluatko tuoda kuvat?
 dropboxCharsNotAllowed=Seuraavat merkit eivät ole sallittuja: \ / : ? * " |

+ 1 - 0
war/resources/dia_fil.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Siniksik
 commitMessage=Maglagak ng mensahe
 csv=CSV
+dark=Dark
 draftFound=Isang draft para sa '{1}' ang nahanap. Ikarga ito sa loob ng editor o isantabi ito para magpatuloy
 dragAndDropNotSupported=Ang paghila at paglagay ay hindi suportado para sa mga imahe. Gusto mo bang mag angkat na lang?
 dropboxCharsNotAllowed=Ang mga sumusunod na simbolo ay hindi pinahihintulutan: \ / : ? * " |

+ 1 - 0
war/resources/dia_fr.txt

@@ -91,6 +91,7 @@ chromeApp=Application Chrome
 compressed=Compressé
 commitMessage=Message commit
 csv=CSV
+dark=Dark
 draftFound=Un brouillon pour '{1}' a été trouvé. Pour poursuivre, souhaitez-vous l'afficher dans l'éditeur ou l'ignorer ?
 dragAndDropNotSupported=Le glisser-déposer n'est pas supporté pour les images. Voulez-vous importer à la place?
 dropboxCharsNotAllowed=Les caractères suivants ne sont pas autorisés : \ / : ? * " |

+ 1 - 0
war/resources/dia_gu.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_he.txt

@@ -91,6 +91,7 @@ chromeApp=‫אפליקציית כרום‬
 compressed=‫דחוס‬
 commitMessage=‫הודעת commit‬
 csv=CSV
+dark=Dark
 draftFound=‫נמצאה טיוטה עבור '{1}'. טען אותה אל העורך או מחק אותה כדי להמשיך.‬
 dragAndDropNotSupported=‫גרירה אינה נתמכת עבור תמונות. תרצה לייבא תמונה במקום?‬
 dropboxCharsNotAllowed=‫התווים הבאים אינם מותרים לשימוש: / \ : ? * " |‬

+ 1 - 0
war/resources/dia_hi.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_hr.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_hu.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Tömörített
 commitMessage=Üzenetet küld
 csv=CSV
+dark=Dark
 draftFound=Vázlat találva a '{1}'-hoz. Töltse a szerkesztőbe, vagy dobja el a folytatásért.
 dragAndDropNotSupported=Fogd és vidd nincs támogatva képekhez. Szeretné-e importálni?
 dropboxCharsNotAllowed=A következő betűk nem engedélyezettek: \ / : ? * " |

+ 1 - 0
war/resources/dia_i18n.txt

@@ -91,6 +91,7 @@ chromeApp=chromeApp
 compressed=compressed
 commitMessage=commitMessage
 csv=csv
+dark=dark
 draftFound=draftFound
 dragAndDropNotSupported=dragAndDropNotSupported
 dropboxCharsNotAllowed=dropboxCharsNotAllowed

+ 1 - 0
war/resources/dia_id.txt

@@ -91,6 +91,7 @@ chromeApp=Aplikasi Chrome
 compressed=Mampat
 commitMessage=Kirim Pesan
 csv=CSV
+dark=Dark
 draftFound=Draf untuk '{1}' ditemukan. Muat ke editor atau buang untuk melanjutkan.
 dragAndDropNotSupported=Tidak mendukung seret dan jatuhkan untuk gambar. Anda ingin mengimpor?
 dropboxCharsNotAllowed=Karakter berikut tidak diizinkan: \ / : ? * " |

+ 1 - 0
war/resources/dia_it.txt

@@ -91,6 +91,7 @@ chromeApp=App Chrome
 compressed=Compresso
 commitMessage=Invia il messaggio
 csv=CSV
+dark=Dark
 draftFound=È stata trovata una bozza per '{1}'. Caricala nell'editor o scartala per continuare.
 dragAndDropNotSupported=Drag and drop delle immagini non supportato. Vuoi importare?
 dropboxCharsNotAllowed=I seguenti caratteri non sono permessi: \ / : ? * " |

+ 1 - 0
war/resources/dia_ja.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome アプリ
 compressed=圧縮
 commitMessage=メッセージを省略する
 csv=CSV
+dark=Dark
 draftFound=ドラフト{1}が見つかりました。読み込む、または廃棄する。
 dragAndDropNotSupported=画像の移動、添付に対応しておりません。その代わりに画像読み込みを選択しますか?
 dropboxCharsNotAllowed=次の文字列は使用できません: \ / : ? * " |

+ 1 - 0
war/resources/dia_kn.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_ko.txt

@@ -91,6 +91,7 @@ chromeApp=크롬 앱
 compressed=압축
 commitMessage=메세지 전송
 csv=CSV
+dark=Dark
 draftFound={1}'의 임시저장이 확인되었습니다. 편집하시려면 불러오기를 클릭하시고, 계속하시려면 취소를 클릭해 주시기 바랍니다.
 dragAndDropNotSupported=이미지 드래그하여 붙여넣기는 지원되지 않습니다. 이미지를 불러오시겠습니까?
 dropboxCharsNotAllowed=다음 문자는 사용할 수 없습니다. \ / : ? * " |

+ 1 - 0
war/resources/dia_lt.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_lv.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_ml.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_mr.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_ms.txt

@@ -91,6 +91,7 @@ chromeApp=Aplikasi Chrome
 compressed=Mampat
 commitMessage=Hantar Mesej
 csv=CSV
+dark=Dark
 draftFound=Draf bagi '{1}' telah dijumpai. Muat ia ke dalam editor atau buang untuk meneruskan.
 dragAndDropNotSupported=Seret dan lepas tidak disokong untuk imej. Adakah anda mahu mengimport?
 dropboxCharsNotAllowed=Aksara-aksara berikut tidak dibenarkan: \ / : ? * " |

+ 1 - 0
war/resources/dia_nl.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Gecomprimeerd
 commitMessage=Bericht Vastleggen
 csv=CSV
+dark=Dark
 draftFound=Een concept van '{1}' is gevonden. Laad het in de editor of negeer het om door te gaan.
 dragAndDropNotSupported=Slepen en plaatsen is niet beschikbaar voor afbeeldingen. Wilt u in plaats daarvan importeren?
 dropboxCharsNotAllowed=De volgende tekens zijn niet toegestaan: \ / : ? * " |

+ 1 - 0
war/resources/dia_no.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome-app
 compressed=Komprimert
 commitMessage=Forpliktende Melding
 csv=CSV
+dark=Dark
 draftFound=Et utkast av '{1}' er funnet. Last det ned i editoren eller forkast det for å fortsette.
 dragAndDropNotSupported=Dra og slipp funksjon er ikke tilgjengelig for bilder. Vil du importere i stedet for?
 dropboxCharsNotAllowed=Følgende tegn er ikke tillatt: \ / : ? * " |

+ 1 - 0
war/resources/dia_pl.txt

@@ -91,6 +91,7 @@ chromeApp=Aplikacja Chrome
 compressed=Skompresowany
 commitMessage=commit Wiadomość
 csv=CSV
+dark=Dark
 draftFound=Znaleziono wersję roboczą {1}. Załaduj ją do edytora lub odrzuć, by kontynuować.
 dragAndDropNotSupported=Przeciągnij i upuść dla obrazów nie jest wspierane. Czy chcesz zamiast tego użyć importowania?
 dropboxCharsNotAllowed=Następujące znaki są niedozwolone: \ / : ? * " |

+ 1 - 0
war/resources/dia_pt-br.txt

@@ -91,6 +91,7 @@ chromeApp=Aplicativo Chrome
 compressed=Comprimido
 commitMessage=Cometer mensagem
 csv=CSV
+dark=Dark
 draftFound=Foi encontrado um rascunho para '{1}'. Carregue no editor ou descarte para continuar.
 dragAndDropNotSupported=Arraste e solte não suportados para imagens. Gostaria de importar?
 dropboxCharsNotAllowed=Os seguintes caracteres não são permitidos: \/:?*"|

+ 1 - 0
war/resources/dia_pt.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compactado
 commitMessage=Mensagem da alteração
 csv=CSV
+dark=Dark
 draftFound=Encontrado um projeto. Carregar no editor ou rejeitar para continuar.
 dragAndDropNotSupported=Arrastar e largar não suportado para imagens. Deseja importar?
 dropboxCharsNotAllowed=Os seguintes caracteres não são permitidos: \/:?*"|

+ 1 - 0
war/resources/dia_ro.txt

@@ -91,6 +91,7 @@ chromeApp=Aplicaţie Chrome
 compressed=Comprimat
 commitMessage=Comite un mesaj
 csv=CSV
+dark=Dark
 draftFound=O schiță pentru '{1}' a fost găsită. Încarc-o în editor sau înlătureaz-o pentru a continua.
 dragAndDropNotSupported= „Drag and Drop” nu este suportat pentru imagini. Doriți să importați in schimb?
 dropboxCharsNotAllowed=Următoarele caractere nu sunt permise: \ / : ? * " |

+ 1 - 0
war/resources/dia_ru.txt

@@ -91,6 +91,7 @@ chromeApp=Приложение Chrome
 compressed=Сжато
 commitMessage=Сообщение при коммите
 csv=CSV
+dark=Dark
 draftFound=Был обнаружен черновик '{1}'. Загрузите его в редактор или откажитесь, чтобы продолжить.
 dragAndDropNotSupported=Перетаскивание изображений не поддерживается. Импортировать изображение?
 dropboxCharsNotAllowed=Следующие символы не допускаются: \ / : ? * " |

+ 1 - 0
war/resources/dia_sk.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_sl.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 2 - 1
war/resources/dia_sr.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome Aplikacija
 compressed=Komprimovan
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=Pronađen nacrt
 dragAndDropNotSupported=Prevlačenje nije podržano
 dropboxCharsNotAllowed=Sledeći znaci nisu dozvoljeni: \ / : ? * " |
@@ -389,7 +390,7 @@ hours=sati
 days=dana
 months=meseci
 years=godina
-restartForChangeRequired=Promene će stupiti na snagu nakon osveživanja stranice.
+restartForChangeRequired=Promene će stupiti na snagu nakon osvežavanja stranice.
 laneColor=Boja trake
 lastModified=Last modified
 layout=Raspored

+ 1 - 0
war/resources/dia_sv.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome app
 compressed=Komprimerad
 commitMessage=Skicka meddelande
 csv=CSV
+dark=Dark
 draftFound=Ett utkast för '{1}' har lokaliserats. Ladda utkastet till behandlaren eller ta bort det för att fortsätta.
 dragAndDropNotSupported=Dra-och-släpp tillåts ej för bilder. Vill du istället importera?
 dropboxCharsNotAllowed=Följande tecken får inte användas: \ / : ? * " |

+ 1 - 0
war/resources/dia_sw.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_ta.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_te.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome App
 compressed=Compressed
 commitMessage=Commit Message
 csv=CSV
+dark=Dark
 draftFound=A draft for '{1}' has been found. Load it into the editor or discard it to continue.
 dragAndDropNotSupported=Drag and drop not supported for images. Would you like to import instead?
 dropboxCharsNotAllowed=The following characters are not allowed: \ / : ? * " |

+ 1 - 0
war/resources/dia_th.txt

@@ -91,6 +91,7 @@ chromeApp=โครมแอพลิเคชั่น
 compressed=บีบอัดแล้ว
 commitMessage=ข้อความสัญญา
 csv=CSV
+dark=Dark
 draftFound=พบฉบับร่างของ '{1}' แล้ว โหลดไปยังตัวแก้ไขหรือยกเลิกเพื่อดำเนินการต่อ
 dragAndDropNotSupported=รูปภาพไม่รองรับการลากและวาง คุณต้องการนำเข้าแทนหรือไม่
 dropboxCharsNotAllowed=ไม่อนุญาตให้ใช้อักขระต่อไปนี้: \ / : ? * " |

+ 1 - 0
war/resources/dia_tr.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome Uygulaması
 compressed=Sıkıştırılmış
 commitMessage=Mesaj oluştur
 csv=CSV
+dark=Dark
 draftFound=Taslak (1) için bulundu. Editöre yükleyiniz veya devam etmek için iptal ediniz.
 dragAndDropNotSupported=Desteklenmeyen resimleri sürükle ve at. Veya bu resimleri geri çağırmak ister misiniz ?
 dropboxCharsNotAllowed=Bu karakterler desteklenmemektedir : \ / : ? * " |

+ 1 - 0
war/resources/dia_uk.txt

@@ -91,6 +91,7 @@ chromeApp=Додаток Chrome
 compressed=Стисло
 commitMessage=Повідомлення при коміті
 csv=CSV
+dark=Dark
 draftFound=Була знайдена чернетка '{1}'. Завантажте її в редактор або відмовтеся, щоб продовжити.
 dragAndDropNotSupported=Переміщення зображень не підтримується. Импортувати зображення?
 dropboxCharsNotAllowed=Наступні символи не підтримуються: \ / : ? * " |

+ 1 - 0
war/resources/dia_vi.txt

@@ -91,6 +91,7 @@ chromeApp=Ứng dụng Chrome
 compressed=Đã nén
 commitMessage=Nội dung thay đổi
 csv=CSV
+dark=Dark
 draftFound=Tìm thấy một bản nháp cho '{1}'. Tải lại bản nháp này hoặc loại bỏ bản nháp để tiếp tục
 dragAndDropNotSupported=Kéo và thả không hỗ trợ cho hình ảnh. Thay vào đó, bạn có muốn nhập hình ảnh vào không?
 dropboxCharsNotAllowed=Những kí tự sau không được chấp nhận: \ / : ? * " |

+ 1 - 0
war/resources/dia_zh-tw.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome應用
 compressed=已壓縮
 commitMessage=提交訊息
 csv=CSV
+dark=Dark
 draftFound=發現現有的「{1}」的草圖。要載入它進行編輯或是丟棄以繼續?
 dragAndDropNotSupported=不支援圖片拖放。是否使用匯入選項?
 dropboxCharsNotAllowed=不得使用以下字元:\ / : ? * " |

+ 1 - 0
war/resources/dia_zh.txt

@@ -91,6 +91,7 @@ chromeApp=Chrome应用软件
 compressed=已压缩
 commitMessage=提交信息
 csv=CSV
+dark=Dark
 draftFound={1}的草图已找到。载入其进行编辑或丢弃以继续。
 dragAndDropNotSupported=暂不支持图片拖放功能。要选择导入选项吗?
 dropboxCharsNotAllowed=系统不允许使用下列字符:\ / : ? * " |

+ 105 - 0
war/styles/dark-default.xml

@@ -0,0 +1,105 @@
+<mxStylesheet>
+	<add as="defaultVertex">
+		<add as="shape" value="label"/>
+		<add as="perimeter" value="rectanglePerimeter"/>
+		<add as="fontSize" value="12"/>
+		<add as="fontFamily" value="Helvetica"/>
+		<add as="align" value="center"/>
+		<add as="verticalAlign" value="middle"/>
+		<add as="fillColor" value="#2a2a2a"/>
+		<add as="strokeColor" value="#f0f0f0"/>
+		<add as="fontColor" value="#f0f0f0"/>
+	</add>
+	<add as="defaultEdge">
+		<add as="shape" value="connector"/>
+		<add as="labelBackgroundColor" value="#2a2a2a"/>
+		<add as="endArrow" value="classic"/>
+		<add as="fontSize" value="11"/>
+		<add as="fontFamily" value="Helvetica"/>
+		<add as="align" value="center"/>
+		<add as="verticalAlign" value="middle"/>
+		<add as="rounded" value="1"/>
+		<add as="strokeColor" value="#f0f0f0"/>
+		<add as="fontColor" value="#f0f0f0"/>
+	</add>
+	<add as="text">
+		<add as="fillColor" value="none"/>
+		<add as="gradientColor" value="none"/>
+		<add as="strokeColor" value="none"/>
+		<add as="align" value="left"/>
+		<add as="verticalAlign" value="top"/>
+	</add>
+	<add as="label">
+		<add as="fontStyle" value="1"/>
+		<add as="align" value="left"/>
+		<add as="verticalAlign" value="middle"/>
+		<add as="spacing" value="2"/>
+		<add as="spacingLeft" value="52"/>
+		<add as="imageWidth" value="42"/>
+		<add as="imageHeight" value="42"/>
+		<add as="rounded" value="1"/>
+	</add>
+	<add as="icon" extend="label">
+		<add as="align" value="center"/>
+		<add as="imageAlign" value="center"/>
+		<add as="verticalLabelPosition" value="bottom"/>
+		<add as="verticalAlign" value="top"/>
+		<add as="spacingTop" value="4"/>
+		<add as="labelBackgroundColor" value="#2a2a2a"/>
+		<add as="spacing" value="0"/>
+		<add as="spacingLeft" value="0"/>
+		<add as="spacingTop" value="6"/>
+		<add as="fontStyle" value="0"/>
+		<add as="imageWidth" value="48"/>
+		<add as="imageHeight" value="48"/>
+	</add>
+	<add as="swimlane">
+		<add as="shape" value="swimlane"/>
+		<add as="fontSize" value="12"/>
+		<add as="fontStyle" value="1"/>
+		<add as="startSize" value="23"/>
+	</add>
+	<add as="group">
+		<add as="verticalAlign" value="top"/>
+		<add as="fillColor" value="none"/>
+		<add as="strokeColor" value="none"/>
+		<add as="gradientColor" value="none"/>
+		<add as="pointerEvents" value="0"/>
+	</add>
+	<add as="ellipse">
+		<add as="shape" value="ellipse"/>
+		<add as="perimeter" value="ellipsePerimeter"/>
+	</add>
+	<add as="rhombus">
+		<add as="shape" value="rhombus"/>
+		<add as="perimeter" value="rhombusPerimeter"/>
+	</add>
+	<add as="triangle">
+		<add as="shape" value="triangle"/>
+		<add as="perimeter" value="trianglePerimeter"/>
+	</add>
+	<add as="line">
+		<add as="shape" value="line"/>
+		<add as="strokeWidth" value="4"/>
+		<add as="labelBackgroundColor" value="#2a2a2a"/>
+		<add as="verticalAlign" value="top"/>
+		<add as="spacingTop" value="8"/>
+	</add>
+	<add as="image">
+		<add as="shape" value="image"/>
+		<add as="labelBackgroundColor" value="#2a2a2a"/>
+		<add as="verticalAlign" value="top"/>
+		<add as="verticalLabelPosition" value="bottom"/>
+	</add>
+	<add as="roundImage" extend="image">
+		<add as="perimeter" value="ellipsePerimeter"/>
+	</add>
+	<add as="rhombusImage" extend="image">
+		<add as="perimeter" value="rhombusPerimeter"/>
+	</add>
+	<add as="arrow">
+		<add as="shape" value="arrow"/>
+		<add as="edgeStyle" value="none"/>
+		<add as="fillColor" value="#2a2a2a"/>
+	</add>
+</mxStylesheet>

File diff suppressed because it is too large
+ 94 - 0
war/styles/dark.css


File diff suppressed because it is too large
+ 7 - 1
war/styles/grapheditor.css