kuaifan vor 5 Jahren
Ursprung
Commit
04f63bb870
100 geänderte Dateien mit 39866 neuen und 7 gelöschten Zeilen
  1. 5 3
      .gitignore
  2. 11 2
      INSTALL-EN.md
  3. 11 2
      INSTALL.md
  4. 21 0
      public/.htaccess
  5. 0 0
      public/favicon.ico
  6. 60 0
      public/index.php
  7. 4 0
      public/mix-manifest.json
  8. 2 0
      public/robots.txt
  9. 28 0
      public/web.config
  10. BIN
      resources/assets/statics/public/images/bg/1.jpg
  11. BIN
      resources/assets/statics/public/images/bg/10.jpg
  12. BIN
      resources/assets/statics/public/images/bg/11.jpg
  13. BIN
      resources/assets/statics/public/images/bg/12.jpg
  14. BIN
      resources/assets/statics/public/images/bg/2.jpg
  15. BIN
      resources/assets/statics/public/images/bg/3.jpg
  16. BIN
      resources/assets/statics/public/images/bg/4.jpg
  17. BIN
      resources/assets/statics/public/images/bg/5.jpg
  18. BIN
      resources/assets/statics/public/images/bg/6.jpg
  19. BIN
      resources/assets/statics/public/images/bg/7.jpg
  20. BIN
      resources/assets/statics/public/images/bg/8.jpg
  21. BIN
      resources/assets/statics/public/images/bg/9.jpg
  22. BIN
      resources/assets/statics/public/images/bg/thumb/1.jpg
  23. BIN
      resources/assets/statics/public/images/bg/thumb/10.jpg
  24. BIN
      resources/assets/statics/public/images/bg/thumb/11.jpg
  25. BIN
      resources/assets/statics/public/images/bg/thumb/12.jpg
  26. BIN
      resources/assets/statics/public/images/bg/thumb/2.jpg
  27. BIN
      resources/assets/statics/public/images/bg/thumb/3.jpg
  28. BIN
      resources/assets/statics/public/images/bg/thumb/4.jpg
  29. BIN
      resources/assets/statics/public/images/bg/thumb/5.jpg
  30. BIN
      resources/assets/statics/public/images/bg/thumb/6.jpg
  31. BIN
      resources/assets/statics/public/images/bg/thumb/7.jpg
  32. BIN
      resources/assets/statics/public/images/bg/thumb/8.jpg
  33. BIN
      resources/assets/statics/public/images/bg/thumb/9.jpg
  34. BIN
      resources/assets/statics/public/images/files/doc.png
  35. BIN
      resources/assets/statics/public/images/files/document.png
  36. BIN
      resources/assets/statics/public/images/files/eps.png
  37. BIN
      resources/assets/statics/public/images/files/file.png
  38. BIN
      resources/assets/statics/public/images/files/flow.png
  39. BIN
      resources/assets/statics/public/images/files/folder.png
  40. BIN
      resources/assets/statics/public/images/files/gif.png
  41. BIN
      resources/assets/statics/public/images/files/mind.png
  42. BIN
      resources/assets/statics/public/images/files/ppt.png
  43. BIN
      resources/assets/statics/public/images/files/psd.png
  44. BIN
      resources/assets/statics/public/images/files/sheet.png
  45. BIN
      resources/assets/statics/public/images/files/svg.png
  46. BIN
      resources/assets/statics/public/images/files/txt.png
  47. BIN
      resources/assets/statics/public/images/files/xls.png
  48. 164 0
      resources/assets/statics/public/js/build/icons/default/icons.js
  49. 1 0
      resources/assets/statics/public/js/build/icons/default/icons.min.js
  50. 7 0
      resources/assets/statics/public/js/build/icons/default/index.js
  51. 63 0
      resources/assets/statics/public/js/build/skins/content/dark/content.css
  52. 7 0
      resources/assets/statics/public/js/build/skins/content/dark/content.min.css
  53. BIN
      resources/assets/statics/public/js/build/skins/ui/oxide-dark/fonts/tinymce-mobile.woff
  54. 151 0
      resources/assets/statics/public/js/grapheditor/deflate/base64.js
  55. 1 0
      resources/assets/statics/public/js/grapheditor/deflate/pako.min.js
  56. BIN
      resources/assets/statics/public/js/grapheditor/images/checkmark.gif
  57. BIN
      resources/assets/statics/public/js/grapheditor/images/clear.gif
  58. BIN
      resources/assets/statics/public/js/grapheditor/images/close.png
  59. BIN
      resources/assets/statics/public/js/grapheditor/images/collapsed.gif
  60. BIN
      resources/assets/statics/public/js/grapheditor/images/dropdown.gif
  61. BIN
      resources/assets/statics/public/js/grapheditor/images/dropdown.png
  62. BIN
      resources/assets/statics/public/js/grapheditor/images/edit.gif
  63. BIN
      resources/assets/statics/public/js/grapheditor/images/expanded.gif
  64. BIN
      resources/assets/statics/public/js/grapheditor/images/grid.gif
  65. BIN
      resources/assets/statics/public/js/grapheditor/images/handle-fixed.png
  66. BIN
      resources/assets/statics/public/js/grapheditor/images/handle-main.png
  67. BIN
      resources/assets/statics/public/js/grapheditor/images/handle-rotate.png
  68. BIN
      resources/assets/statics/public/js/grapheditor/images/handle-secondary.png
  69. BIN
      resources/assets/statics/public/js/grapheditor/images/handle-terminal.png
  70. BIN
      resources/assets/statics/public/js/grapheditor/images/help.png
  71. BIN
      resources/assets/statics/public/js/grapheditor/images/locked.png
  72. BIN
      resources/assets/statics/public/js/grapheditor/images/logo.png
  73. BIN
      resources/assets/statics/public/js/grapheditor/images/move.png
  74. BIN
      resources/assets/statics/public/js/grapheditor/images/nocolor.png
  75. BIN
      resources/assets/statics/public/js/grapheditor/images/refresh.png
  76. BIN
      resources/assets/statics/public/js/grapheditor/images/round-drop.png
  77. BIN
      resources/assets/statics/public/js/grapheditor/images/search.png
  78. BIN
      resources/assets/statics/public/js/grapheditor/images/transparent.gif
  79. BIN
      resources/assets/statics/public/js/grapheditor/images/triangle-down.png
  80. BIN
      resources/assets/statics/public/js/grapheditor/images/triangle-left.png
  81. BIN
      resources/assets/statics/public/js/grapheditor/images/triangle-right.png
  82. BIN
      resources/assets/statics/public/js/grapheditor/images/triangle-up.png
  83. BIN
      resources/assets/statics/public/js/grapheditor/images/unlocked.png
  84. 111 0
      resources/assets/statics/public/js/grapheditor/index.html
  85. 1504 0
      resources/assets/statics/public/js/grapheditor/js/Actions.js
  86. 2553 0
      resources/assets/statics/public/js/grapheditor/js/Dialogs.js
  87. 2704 0
      resources/assets/statics/public/js/grapheditor/js/Editor.js
  88. 4676 0
      resources/assets/statics/public/js/grapheditor/js/EditorUi.js
  89. 5907 0
      resources/assets/statics/public/js/grapheditor/js/Format.js
  90. 10291 0
      resources/assets/statics/public/js/grapheditor/js/Graph.js
  91. 29 0
      resources/assets/statics/public/js/grapheditor/js/Init.js
  92. 1415 0
      resources/assets/statics/public/js/grapheditor/js/Menus.js
  93. 4484 0
      resources/assets/statics/public/js/grapheditor/js/Shapes.js
  94. 3729 0
      resources/assets/statics/public/js/grapheditor/js/Sidebar.js
  95. 1098 0
      resources/assets/statics/public/js/grapheditor/js/Toolbar.js
  96. 829 0
      resources/assets/statics/public/js/grapheditor/js/mxClient.js
  97. BIN
      resources/assets/statics/public/js/grapheditor/jscolor/arrow.gif
  98. BIN
      resources/assets/statics/public/js/grapheditor/jscolor/cross.gif
  99. BIN
      resources/assets/statics/public/js/grapheditor/jscolor/hs.png
  100. 0 0
      resources/assets/statics/public/js/grapheditor/jscolor/hv.png

+ 5 - 3
.gitignore

@@ -1,6 +1,10 @@
 /node_modules
+/public/css
+/public/fonts
+/public/images
+/public/js
+/public/uploads/*
 /public/hot
-/public/storage
 /storage/*.key
 /vendor
 .env
@@ -13,8 +17,6 @@ Homestead.json
 Homestead.yaml
 npm-debug.log
 yarn-error.log
-public
-uploads/picture
 test.js
 test.php
 composer.lock

+ 11 - 2
INSTALL-EN.md

@@ -46,15 +46,19 @@ LARAVELS_PROXY_URL=ws://wookteam.com/ws
 ```bash
 $ git checkout master # use dev branch for local development
 $ git pull origin master # use dev branch for local development
+
 $ composer install
 $ php artisan key:generate
 $ php artisan migrate --seed
+
 $ npm install
 $ npm run production
 ```
 
 #### Run Laravels (WebSocket)
 
+> Please confirm your environment and installation[Swoole](https://www.swoole.com/)。
+
 ```bash
 $ php bin/laravels start
 ```
@@ -63,7 +67,7 @@ $ php bin/laravels start
 
 ```
 [program:wookteam-test]
-directory=/srv/wookteam.com
+directory=/wwwroot/wookteam.com
 command=/usr/local/bin/php bin/laravels start -i
 numprocs=1
 autostart=true
@@ -91,7 +95,7 @@ server {
     
     # Don't forget to bind the host
     server_name wookteam.com;
-    root /srv/wookteam.com/public;
+    root /wwwroot/wookteam.com/public;
 
     autoindex off;
     index index.html index.htm index.php;
@@ -136,3 +140,8 @@ server {
     }
 }
 ```
+
+#### Account
+
+- admin/123456
+- system/123456

+ 11 - 2
INSTALL.md

@@ -46,15 +46,19 @@ LARAVELS_PROXY_URL=ws://wookteam.com/ws
 ```bash
 $ git checkout master # 如果使用dev分支进行本地开发
 $ git pull origin master # 如果使用dev分支进行本地开发
+
 $ composer install
 $ php artisan key:generate
 $ php artisan migrate --seed
+
 $ npm install
 $ npm run production
 ```
 
 #### 运行 Laravels (WebSocket)
 
+> 请确认您的环境以及安装[Swoole](https://www.swoole.com/)。
+
 ```bash
 $ php bin/laravels start
 ```
@@ -63,7 +67,7 @@ $ php bin/laravels start
 
 ```
 [program:wookteam-test]
-directory=/srv/wookteam.com
+directory=/wwwroot/wookteam.com
 command=/usr/local/bin/php bin/laravels start -i
 numprocs=1
 autostart=true
@@ -91,7 +95,7 @@ server {
     
     # Don't forget to bind the host
     server_name wookteam.com;
-    root /srv/wookteam.com/public;
+    root /wwwroot/wookteam.com/public;
 
     autoindex off;
     index index.html index.htm index.php;
@@ -136,3 +140,8 @@ server {
     }
 }
 ```
+
+#### 默认账号
+
+- admin/123456
+- system/123456

+ 21 - 0
public/.htaccess

@@ -0,0 +1,21 @@
+<IfModule mod_rewrite.c>
+    <IfModule mod_negotiation.c>
+        Options -MultiViews -Indexes
+    </IfModule>
+
+    RewriteEngine On
+
+    # Handle Authorization Header
+    RewriteCond %{HTTP:Authorization} .
+    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+    # Redirect Trailing Slashes If Not A Folder...
+    RewriteCond %{REQUEST_FILENAME} !-d
+    RewriteCond %{REQUEST_URI} (.+)/$
+    RewriteRule ^ %1 [L,R=301]
+
+    # Send Requests To Front Controller...
+    RewriteCond %{REQUEST_FILENAME} !-d
+    RewriteCond %{REQUEST_FILENAME} !-f
+    RewriteRule ^ index.php [L]
+</IfModule>

+ 0 - 0
public/favicon.ico


+ 60 - 0
public/index.php

@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * Laravel - A PHP Framework For Web Artisans
+ *
+ * @package  Laravel
+ * @author   Taylor Otwell <taylor@laravel.com>
+ */
+
+define('LARAVEL_START', microtime(true));
+
+/*
+|--------------------------------------------------------------------------
+| Register The Auto Loader
+|--------------------------------------------------------------------------
+|
+| Composer provides a convenient, automatically generated class loader for
+| our application. We just need to utilize it! We'll simply require it
+| into the script here so that we don't have to worry about manual
+| loading any of our classes later on. It feels great to relax.
+|
+*/
+
+require __DIR__.'/../vendor/autoload.php';
+
+/*
+|--------------------------------------------------------------------------
+| Turn On The Lights
+|--------------------------------------------------------------------------
+|
+| We need to illuminate PHP development, so let us turn on the lights.
+| This bootstraps the framework and gets it ready for use, then it
+| will load up this application so that we can run it and send
+| the responses back to the browser and delight our users.
+|
+*/
+
+$app = require_once __DIR__.'/../bootstrap/app.php';
+
+/*
+|--------------------------------------------------------------------------
+| Run The Application
+|--------------------------------------------------------------------------
+|
+| Once we have the application, we can handle the incoming request
+| through the kernel, and send the associated response back to
+| the client's browser allowing them to enjoy the creative
+| and wonderful application we have prepared for them.
+|
+*/
+
+$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
+
+$response = $kernel->handle(
+    $request = Illuminate\Http\Request::capture()
+);
+
+$response->send();
+
+$kernel->terminate($request, $response);

+ 4 - 0
public/mix-manifest.json

@@ -0,0 +1,4 @@
+{
+    "/js/app.js": "/js/app.js",
+    "/css/app.css": "/css/app.css"
+}

+ 2 - 0
public/robots.txt

@@ -0,0 +1,2 @@
+User-agent: *
+Disallow:

+ 28 - 0
public/web.config

@@ -0,0 +1,28 @@
+<!--
+    Rewrites requires Microsoft URL Rewrite Module for IIS
+    Download: https://www.microsoft.com/en-us/download/details.aspx?id=47337
+    Debug Help: https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules
+-->
+<configuration>
+  <system.webServer>
+    <rewrite>
+      <rules>
+        <rule name="Imported Rule 1" stopProcessing="true">
+          <match url="^(.*)/$" ignoreCase="false" />
+          <conditions>
+            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
+          </conditions>
+          <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
+        </rule>
+        <rule name="Imported Rule 2" stopProcessing="true">
+          <match url="^" ignoreCase="false" />
+          <conditions>
+            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
+            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
+          </conditions>
+          <action type="Rewrite" url="index.php" />
+        </rule>
+      </rules>
+    </rewrite>
+  </system.webServer>
+</configuration>

BIN
resources/assets/statics/public/images/bg/1.jpg


BIN
resources/assets/statics/public/images/bg/10.jpg


BIN
resources/assets/statics/public/images/bg/11.jpg


BIN
resources/assets/statics/public/images/bg/12.jpg


BIN
resources/assets/statics/public/images/bg/2.jpg


BIN
resources/assets/statics/public/images/bg/3.jpg


BIN
resources/assets/statics/public/images/bg/4.jpg


BIN
resources/assets/statics/public/images/bg/5.jpg


BIN
resources/assets/statics/public/images/bg/6.jpg


BIN
resources/assets/statics/public/images/bg/7.jpg


BIN
resources/assets/statics/public/images/bg/8.jpg


BIN
resources/assets/statics/public/images/bg/9.jpg


BIN
resources/assets/statics/public/images/bg/thumb/1.jpg


BIN
resources/assets/statics/public/images/bg/thumb/10.jpg


BIN
resources/assets/statics/public/images/bg/thumb/11.jpg


BIN
resources/assets/statics/public/images/bg/thumb/12.jpg


BIN
resources/assets/statics/public/images/bg/thumb/2.jpg


BIN
resources/assets/statics/public/images/bg/thumb/3.jpg


BIN
resources/assets/statics/public/images/bg/thumb/4.jpg


BIN
resources/assets/statics/public/images/bg/thumb/5.jpg


BIN
resources/assets/statics/public/images/bg/thumb/6.jpg


BIN
resources/assets/statics/public/images/bg/thumb/7.jpg


BIN
resources/assets/statics/public/images/bg/thumb/8.jpg


BIN
resources/assets/statics/public/images/bg/thumb/9.jpg


BIN
resources/assets/statics/public/images/files/doc.png


BIN
resources/assets/statics/public/images/files/document.png


BIN
resources/assets/statics/public/images/files/eps.png


BIN
resources/assets/statics/public/images/files/file.png


BIN
resources/assets/statics/public/images/files/flow.png


BIN
resources/assets/statics/public/images/files/folder.png


BIN
resources/assets/statics/public/images/files/gif.png


BIN
resources/assets/statics/public/images/files/mind.png


BIN
resources/assets/statics/public/images/files/ppt.png


BIN
resources/assets/statics/public/images/files/psd.png


BIN
resources/assets/statics/public/images/files/sheet.png


BIN
resources/assets/statics/public/images/files/svg.png


BIN
resources/assets/statics/public/images/files/txt.png


BIN
resources/assets/statics/public/images/files/xls.png


Datei-Diff unterdrückt, da er zu groß ist
+ 164 - 0
resources/assets/statics/public/js/build/icons/default/icons.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
resources/assets/statics/public/js/build/icons/default/icons.min.js


+ 7 - 0
resources/assets/statics/public/js/build/icons/default/index.js

@@ -0,0 +1,7 @@
+// Exports the "default" icons for usage with module loaders
+// Usage:
+//   CommonJS:
+//     require('tinymce/icons/default')
+//   ES2015:
+//     import 'tinymce/icons/default'
+require('./icons.js');

+ 63 - 0
resources/assets/statics/public/js/build/skins/content/dark/content.css

@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) Tiny Technologies, Inc. All rights reserved.
+ * Licensed under the LGPL or a commercial license.
+ * For LGPL see License.txt in the project root for license information.
+ * For commercial licenses see https://www.tiny.cloud/
+ */
+html {
+  height: 100%;
+}
+body {
+  background-color: #2f3742;
+  color: #dfe0e4;
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+  height: calc(100% - 2rem);
+  line-height: 1.4;
+  margin: 1rem;
+}
+a {
+  color: #4099ff;
+}
+table {
+  border-collapse: collapse;
+}
+table th,
+table td {
+  border: 1px solid #6d737b;
+  padding: 0.4rem;
+}
+figure {
+  display: table;
+  margin: 1rem auto;
+}
+figure figcaption {
+  color: #8a8f97;
+  display: block;
+  margin-top: 0.25rem;
+  text-align: center;
+}
+hr {
+  border-color: #6d737b;
+  border-style: solid;
+  border-width: 1px 0 0 0;
+}
+code {
+  background-color: #6d737b;
+  border-radius: 3px;
+  padding: 0.1rem 0.2rem;
+}
+/* Make text in selected cells in tables dark and readable */
+td[data-mce-selected],
+th[data-mce-selected] {
+  color: #333;
+}
+.mce-content-body:not([dir=rtl]) blockquote {
+  border-left: 2px solid #6d737b;
+  margin-left: 1.5rem;
+  padding-left: 1rem;
+}
+.mce-content-body[dir=rtl] blockquote {
+  border-right: 2px solid #6d737b;
+  margin-right: 1.5rem;
+  padding-right: 1rem;
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 7 - 0
resources/assets/statics/public/js/build/skins/content/dark/content.min.css


BIN
resources/assets/statics/public/js/build/skins/ui/oxide-dark/fonts/tinymce-mobile.woff


+ 151 - 0
resources/assets/statics/public/js/grapheditor/deflate/base64.js

@@ -0,0 +1,151 @@
+
+/**
+*
+*  Base64 encode / decode
+*  http://www.webtoolkit.info/
+*
+**/
+
+var Base64 = {
+
+	// private property
+	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
+
+	// public method for encoding
+	encode : function (input, binary) {
+		binary = (binary != null) ? binary : false;
+		var output = "";
+		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
+		var i = 0;
+
+		if (!binary)
+		{
+			input = Base64._utf8_encode(input);
+		}
+
+		while (i < input.length) {
+
+			chr1 = input.charCodeAt(i++);
+			chr2 = input.charCodeAt(i++);
+			chr3 = input.charCodeAt(i++);
+
+			enc1 = chr1 >> 2;
+			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
+			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
+			enc4 = chr3 & 63;
+
+			if (isNaN(chr2)) {
+				enc3 = enc4 = 64;
+			} else if (isNaN(chr3)) {
+				enc4 = 64;
+			}
+
+			output = output +
+			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
+			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
+
+		}
+
+		return output;
+	},
+
+	// public method for decoding
+	decode : function (input, binary) {
+		binary = (binary != null) ? binary : false;
+		var output = "";
+		var chr1, chr2, chr3;
+		var enc1, enc2, enc3, enc4;
+		var i = 0;
+
+		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
+
+		while (i < input.length) {
+
+			enc1 = this._keyStr.indexOf(input.charAt(i++));
+			enc2 = this._keyStr.indexOf(input.charAt(i++));
+			enc3 = this._keyStr.indexOf(input.charAt(i++));
+			enc4 = this._keyStr.indexOf(input.charAt(i++));
+
+			chr1 = (enc1 << 2) | (enc2 >> 4);
+			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
+			chr3 = ((enc3 & 3) << 6) | enc4;
+
+			output = output + String.fromCharCode(chr1);
+
+			if (enc3 != 64) {
+				output = output + String.fromCharCode(chr2);
+			}
+			if (enc4 != 64) {
+				output = output + String.fromCharCode(chr3);
+			}
+
+		}
+
+		if (!binary)
+		{
+			output = Base64._utf8_decode(output);
+		}
+
+		return output;
+
+	},
+
+	// private method for UTF-8 encoding
+	_utf8_encode : function (string) {
+		string = string.replace(/\r\n/g,"\n");
+		var utftext = "";
+
+		for (var n = 0; n < string.length; n++) {
+
+			var c = string.charCodeAt(n);
+
+			if (c < 128) {
+				utftext += String.fromCharCode(c);
+			}
+			else if((c > 127) && (c < 2048)) {
+				utftext += String.fromCharCode((c >> 6) | 192);
+				utftext += String.fromCharCode((c & 63) | 128);
+			}
+			else {
+				utftext += String.fromCharCode((c >> 12) | 224);
+				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
+				utftext += String.fromCharCode((c & 63) | 128);
+			}
+
+		}
+
+		return utftext;
+	},
+
+	// private method for UTF-8 decoding
+	_utf8_decode : function (utftext) {
+		var string = "";
+		var i = 0;
+		var c = c1 = c2 = 0;
+
+		while ( i < utftext.length ) {
+
+			c = utftext.charCodeAt(i);
+
+			if (c < 128) {
+				string += String.fromCharCode(c);
+				i++;
+			}
+			else if((c > 191) && (c < 224)) {
+				c2 = utftext.charCodeAt(i+1);
+				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
+				i += 2;
+			}
+			else {
+				c2 = utftext.charCodeAt(i+1);
+				c3 = utftext.charCodeAt(i+2);
+				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
+				i += 3;
+			}
+
+		}
+
+		return string;
+	}
+
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
resources/assets/statics/public/js/grapheditor/deflate/pako.min.js


BIN
resources/assets/statics/public/js/grapheditor/images/checkmark.gif


BIN
resources/assets/statics/public/js/grapheditor/images/clear.gif


BIN
resources/assets/statics/public/js/grapheditor/images/close.png


BIN
resources/assets/statics/public/js/grapheditor/images/collapsed.gif


BIN
resources/assets/statics/public/js/grapheditor/images/dropdown.gif


BIN
resources/assets/statics/public/js/grapheditor/images/dropdown.png


BIN
resources/assets/statics/public/js/grapheditor/images/edit.gif


BIN
resources/assets/statics/public/js/grapheditor/images/expanded.gif


BIN
resources/assets/statics/public/js/grapheditor/images/grid.gif


BIN
resources/assets/statics/public/js/grapheditor/images/handle-fixed.png


BIN
resources/assets/statics/public/js/grapheditor/images/handle-main.png


BIN
resources/assets/statics/public/js/grapheditor/images/handle-rotate.png


BIN
resources/assets/statics/public/js/grapheditor/images/handle-secondary.png


BIN
resources/assets/statics/public/js/grapheditor/images/handle-terminal.png


BIN
resources/assets/statics/public/js/grapheditor/images/help.png


BIN
resources/assets/statics/public/js/grapheditor/images/locked.png


BIN
resources/assets/statics/public/js/grapheditor/images/logo.png


BIN
resources/assets/statics/public/js/grapheditor/images/move.png


BIN
resources/assets/statics/public/js/grapheditor/images/nocolor.png


BIN
resources/assets/statics/public/js/grapheditor/images/refresh.png


BIN
resources/assets/statics/public/js/grapheditor/images/round-drop.png


BIN
resources/assets/statics/public/js/grapheditor/images/search.png


BIN
resources/assets/statics/public/js/grapheditor/images/transparent.gif


BIN
resources/assets/statics/public/js/grapheditor/images/triangle-down.png


BIN
resources/assets/statics/public/js/grapheditor/images/triangle-left.png


BIN
resources/assets/statics/public/js/grapheditor/images/triangle-right.png


BIN
resources/assets/statics/public/js/grapheditor/images/triangle-up.png


BIN
resources/assets/statics/public/js/grapheditor/images/unlocked.png


+ 111 - 0
resources/assets/statics/public/js/grapheditor/index.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Grapheditor</title>
+    <!--[if IE]>
+    <meta http-equiv="X-UA-Compatible" content="IE=5,IE=9">
+    <![endif]-->
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+    <link rel="stylesheet" type="text/css" href="styles/grapheditor.css">
+    <script type="text/javascript">
+        var urlParams = (function (url) {
+            var result = {};
+            var idx = url.lastIndexOf('?');
+            if (idx > 0) {
+                var params = url.substring(idx + 1).split('&');
+                for (var i = 0; i < params.length; i++) {
+                    idx = params[i].indexOf('=');
+                    if (idx > 0) {
+                        result[params[i].substring(0, idx)] = params[i].substring(idx + 1);
+                    }
+                }
+            }
+            return result;
+        })(window.location.href);
+        mxLoadResources = false;
+        window.mxBasePath = "./src";
+    </script>
+    <script type="text/javascript" src="js/Init.js"></script>
+    <script type="text/javascript" src="deflate/pako.min.js"></script>
+    <script type="text/javascript" src="deflate/base64.js"></script>
+    <script type="text/javascript" src="jscolor/jscolor.js"></script>
+    <script type="text/javascript" src="sanitizer/sanitizer.min.js"></script>
+    <script type="text/javascript" src="js/mxClient.js"></script>
+    <script type="text/javascript" src="js/EditorUi.js"></script>
+    <script type="text/javascript" src="js/Editor.js"></script>
+    <script type="text/javascript" src="js/Sidebar.js"></script>
+    <script type="text/javascript" src="js/Graph.js"></script>
+    <script type="text/javascript" src="js/Format.js"></script>
+    <script type="text/javascript" src="js/Shapes.js"></script>
+    <script type="text/javascript" src="js/Actions.js"></script>
+    <script type="text/javascript" src="js/Menus.js"></script>
+    <script type="text/javascript" src="js/Toolbar.js"></script>
+    <script type="text/javascript" src="js/Dialogs.js"></script>
+</head>
+<body class="geEditor">
+<script type="text/javascript">
+    (function () {
+        var editorUiInit = EditorUi.prototype.init;
+
+        EditorUi.prototype.init = function () {
+            editorUiInit.apply(this, arguments);
+            this.actions.get('new').setEnabled(false);
+            this.actions.get('export').setEnabled(false);
+            this.actions.get('open').setEnabled(false);
+            this.actions.get('import').setEnabled(false);
+            this.actions.get('save').setEnabled(false);
+            this.actions.get('saveAs').setEnabled(false);
+            this.actions.get('export').setEnabled(false);
+        };
+
+        EditorUi.prototype.menubarHeight = 0;
+        EditorUi.prototype.footerHeight = 0;
+
+        mxResources.loadDefaultBundle = false;
+        var bundle = mxResources.getDefaultBundle(RESOURCE_BASE, mxLanguage) || mxResources.getSpecialBundle(RESOURCE_BASE, mxLanguage);
+
+        mxUtils.getAll([bundle, STYLE_PATH + '/default.xml'], function (xhr) {
+            mxResources.parse(xhr[0].getText());
+
+            var themes = {};
+            themes[Graph.prototype.defaultThemeName] = xhr[1].getDocumentElement();
+
+            var editorUi = new EditorUi(new Editor(urlParams['chrome'] == '0', themes));
+            var graph = editorUi.editor.graph;
+
+            graph.getModel().addListener(mxEvent.CHANGE, mxUtils.bind(editorUi, function() {
+                window.parent.postMessage({
+                    act: 'change',
+                    params: {
+                        xml: mxUtils.getPrettyXml(editorUi.editor.getGraphXml())
+                    }
+                }, '*');
+            }));
+
+            window.addEventListener("message", function(event){
+                var data = event.data;
+                switch (data.act) {
+                    case 'setXml':
+                        try {
+                            var defaultXml = mxUtils.parseXml(data.params.xml);
+                            editorUi.editor.setGraphXml(defaultXml.documentElement);
+                        } catch (e) {
+
+                        }
+                        break;
+                }
+            });
+
+            window.parent.postMessage({
+                act: 'ready',
+                params: {}
+            }, '*');
+
+        }, function () {
+            document.body.innerHTML = '<center style="margin-top:10%;">Error loading resource files. Please check browser console.</center>';
+        });
+    })();
+</script>
+</body>
+</html>

Datei-Diff unterdrückt, da er zu groß ist
+ 1504 - 0
resources/assets/statics/public/js/grapheditor/js/Actions.js


Datei-Diff unterdrückt, da er zu groß ist
+ 2553 - 0
resources/assets/statics/public/js/grapheditor/js/Dialogs.js


Datei-Diff unterdrückt, da er zu groß ist
+ 2704 - 0
resources/assets/statics/public/js/grapheditor/js/Editor.js


Datei-Diff unterdrückt, da er zu groß ist
+ 4676 - 0
resources/assets/statics/public/js/grapheditor/js/EditorUi.js


Datei-Diff unterdrückt, da er zu groß ist
+ 5907 - 0
resources/assets/statics/public/js/grapheditor/js/Format.js


Datei-Diff unterdrückt, da er zu groß ist
+ 10291 - 0
resources/assets/statics/public/js/grapheditor/js/Graph.js


+ 29 - 0
resources/assets/statics/public/js/grapheditor/js/Init.js

@@ -0,0 +1,29 @@
+// urlParams is null when used for embedding
+window.urlParams = window.urlParams || {};
+
+// Public global variables
+window.MAX_REQUEST_SIZE = window.MAX_REQUEST_SIZE  || 10485760;
+window.MAX_AREA = window.MAX_AREA || 15000 * 15000;
+
+// URLs for save and export
+window.EXPORT_URL = window.EXPORT_URL || '/export';
+window.SAVE_URL = window.SAVE_URL || '/save';
+window.OPEN_URL = window.OPEN_URL || '/open';
+window.RESOURCES_PATH = window.RESOURCES_PATH || 'resources';
+window.RESOURCE_BASE = window.RESOURCE_BASE || window.RESOURCES_PATH + '/grapheditor';
+window.STENCIL_PATH = window.STENCIL_PATH || 'stencils';
+window.IMAGE_PATH = window.IMAGE_PATH || 'images';
+window.STYLE_PATH = window.STYLE_PATH || 'styles';
+window.CSS_PATH = window.CSS_PATH || 'styles';
+window.OPEN_FORM = window.OPEN_FORM || 'open.html';
+
+// Sets the base path, the UI language via URL param and configures the
+// supported languages to avoid 404s. The loading of all core language
+// resources is disabled as all required resources are in grapheditor.
+// properties. Note that in this example the loading of two resource
+// files (the special bundle and the default bundle) is disabled to
+// save a GET request. This requires that all resources be present in
+// each properties file since only one file is loaded.
+window.mxBasePath = window.mxBasePath || '../../../src';
+window.mxLanguage = window.mxLanguage || urlParams['lang'] || 'zh';
+window.mxLanguages = window.mxLanguages || ['zh'];

Datei-Diff unterdrückt, da er zu groß ist
+ 1415 - 0
resources/assets/statics/public/js/grapheditor/js/Menus.js


Datei-Diff unterdrückt, da er zu groß ist
+ 4484 - 0
resources/assets/statics/public/js/grapheditor/js/Shapes.js


Datei-Diff unterdrückt, da er zu groß ist
+ 3729 - 0
resources/assets/statics/public/js/grapheditor/js/Sidebar.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1098 - 0
resources/assets/statics/public/js/grapheditor/js/Toolbar.js


+ 829 - 0
resources/assets/statics/public/js/grapheditor/js/mxClient.js

@@ -0,0 +1,829 @@
+/**
+ * Copyright (c) 2006-2017, JGraph Ltd
+ * Copyright (c) 2006-2017, Gaudenz Alder
+ */
+var mxClient =
+{
+	/**
+	 * Class: mxClient
+	 *
+	 * Bootstrapping mechanism for the mxGraph thin client. The production version
+	 * of this file contains all code required to run the mxGraph thin client, as
+	 * well as global constants to identify the browser and operating system in
+	 * use. You may have to load chrome://global/content/contentAreaUtils.js in
+	 * your page to disable certain security restrictions in Mozilla.
+	 * 
+	 * Variable: VERSION
+	 *
+	 * Contains the current version of the mxGraph library. The strings that
+	 * communicate versions of mxGraph use the following format.
+	 * 
+	 * versionMajor.versionMinor.buildNumber.revisionNumber
+	 * 
+	 * Current version is 4.1.1.
+	 */
+	VERSION: '4.1.1',
+
+	/**
+	 * Variable: IS_IE
+	 *
+	 * True if the current browser is Internet Explorer 10 or below. Use <mxClient.IS_IE11>
+	 * to detect IE 11.
+	 */
+	IS_IE: navigator.userAgent != null && navigator.userAgent.indexOf('MSIE') >= 0,
+
+	/**
+	 * Variable: IS_IE6
+	 *
+	 * True if the current browser is Internet Explorer 6.x.
+	 */
+	IS_IE6: navigator.userAgent != null && navigator.userAgent.indexOf('MSIE 6') >= 0,
+
+	/**
+	 * Variable: IS_IE11
+	 *
+	 * True if the current browser is Internet Explorer 11.x.
+	 */
+	IS_IE11: navigator.userAgent != null && !!navigator.userAgent.match(/Trident\/7\./),
+
+	/**
+	 * Variable: IS_EDGE
+	 *
+	 * True if the current browser is Microsoft Edge.
+	 */
+	IS_EDGE: navigator.userAgent != null && !!navigator.userAgent.match(/Edge\//),
+
+	/**
+	 * Variable: IS_QUIRKS
+	 *
+	 * True if the current browser is Internet Explorer and it is in quirks mode.
+	 */
+	IS_QUIRKS: navigator.userAgent != null && navigator.userAgent.indexOf('MSIE') >= 0 &&
+		(document.documentMode == null || document.documentMode == 5),
+
+	/**
+	 * Variable: IS_EM
+	 * 
+	 * True if the browser is IE11 in enterprise mode (IE8 standards mode).
+	 */
+	IS_EM: 'spellcheck' in document.createElement('textarea') && document.documentMode == 8,
+
+	/**
+	 * Variable: VML_PREFIX
+	 * 
+	 * Prefix for VML namespace in node names. Default is 'v'.
+	 */
+	VML_PREFIX: 'v',
+
+	/**
+	 * Variable: OFFICE_PREFIX
+	 * 
+	 * Prefix for VML office namespace in node names. Default is 'o'.
+	 */
+	OFFICE_PREFIX: 'o',
+
+	/**
+	 * Variable: IS_NS
+	 *
+	 * True if the current browser is Netscape (including Firefox).
+	 */
+  	IS_NS: navigator.userAgent != null &&
+  		navigator.userAgent.indexOf('Mozilla/') >= 0 &&
+  		navigator.userAgent.indexOf('MSIE') < 0 &&
+  		navigator.userAgent.indexOf('Edge/') < 0,
+
+	/**
+	 * Variable: IS_OP
+	 *
+	 * True if the current browser is Opera.
+	 */
+  	IS_OP: navigator.userAgent != null &&
+  		(navigator.userAgent.indexOf('Opera/') >= 0 ||
+  		navigator.userAgent.indexOf('OPR/') >= 0),
+
+	/**
+	 * Variable: IS_OT
+	 *
+	 * True if -o-transform is available as a CSS style, ie for Opera browsers
+	 * based on a Presto engine with version 2.5 or later.
+	 */
+  	IS_OT: navigator.userAgent != null &&
+  		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.') < 0,
+  	
+	/**
+	 * Variable: IS_SF
+	 *
+	 * True if the current browser is Safari.
+	 */
+  	IS_SF: /constructor/i.test(window.HTMLElement) || (function (p) {
+  		return p.toString() === "[object SafariRemoteNotification]";
+  		})(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification)),
+
+	/**
+	 * Variable: IS_ANDROID
+	 * 
+	 * Returns true if the user agent contains Android.
+	 */
+  	IS_ANDROID: navigator.appVersion.indexOf('Android') >= 0,
+
+	/**
+	 * Variable: IS_IOS
+	 * 
+	 * Returns true if the user agent is an iPad, iPhone or iPod.
+	 */
+  	IS_IOS: (/iP(hone|od|ad)/.test(navigator.platform)),
+
+	/**
+	 * Variable: IOS_VERSION
+	 * 
+	 * Returns the major version number for iOS devices or 0 if the
+	 * device is not an iOS device.
+	 */
+  	IOS_VERSION: (function()
+  	{
+  		if ((/iP(hone|od|ad)/.test(navigator.platform)))
+  		{
+  			var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
+  			
+  			if (v != null && v.length > 0)
+  			{
+  				return parseInt(v[1]);
+  			}
+  		}
+  		
+  		return 0;
+  	})(),
+ 
+	/**
+	 * Variable: IS_GC
+	 *
+	 * True if the current browser is Google Chrome.
+	 */
+  	IS_GC: /Google Inc/.test(navigator.vendor),
+	
+	/**
+	 * Variable: IS_CHROMEAPP
+	 *
+	 * True if the this is running inside a Chrome App.
+	 */
+  	IS_CHROMEAPP: window.chrome != null && chrome.app != null && chrome.app.runtime != null,
+
+	/**
+	 * Variable: IS_FF
+	 *
+	 * True if the current browser is Firefox.
+	 */
+  	IS_FF: typeof InstallTrigger !== 'undefined',
+  	
+	/**
+	 * Variable: IS_MT
+	 *
+	 * True if -moz-transform is available as a CSS style. This is the case
+	 * for all Firefox-based browsers newer than or equal 3, such as Camino,
+	 * Iceweasel, Seamonkey and Iceape.
+	 */
+  	IS_MT: (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.') < 0),
+
+	/**
+	 * Variable: IS_VML
+	 *
+	 * True if the browser supports VML.
+	 */
+  	IS_VML: navigator.appName.toUpperCase() == 'MICROSOFT INTERNET EXPLORER',
+
+	/**
+	 * Variable: IS_SVG
+	 *
+	 * True if the browser supports SVG.
+	 */
+  	IS_SVG: navigator.appName.toUpperCase() != 'MICROSOFT INTERNET EXPLORER',
+
+	/**
+	 * Variable: NO_FO
+	 *
+	 * True if foreignObject support is not available. This is the case for
+	 * Opera, older SVG-based browsers and all versions of IE.
+	 */
+  	NO_FO: !document.createElementNS || document.createElementNS('http://www.w3.org/2000/svg',
+  		'foreignObject') != '[object SVGForeignObjectElement]' || navigator.userAgent.indexOf('Opera/') >= 0,
+
+	/**
+	 * Variable: IS_WIN
+	 *
+	 * True if the client is a Windows.
+	 */
+  	IS_WIN: navigator.appVersion.indexOf('Win') > 0,
+
+	/**
+	 * Variable: IS_MAC
+	 *
+	 * True if the client is a Mac.
+	 */
+  	IS_MAC: navigator.appVersion.indexOf('Mac') > 0,
+	
+	/**
+	 * Variable: IS_CHROMEOS
+	 *
+	 * True if the client is a Chrome OS.
+	 */
+  	IS_CHROMEOS: /\bCrOS\b/.test(navigator.appVersion),
+
+	/**
+	 * Variable: IS_TOUCH
+	 * 
+	 * True if this device supports touchstart/-move/-end events (Apple iOS,
+	 * Android, Chromebook and Chrome Browser on touch-enabled devices).
+	 */
+  	IS_TOUCH: 'ontouchstart' in document.documentElement,
+
+	/**
+	 * Variable: IS_POINTER
+	 * 
+	 * True if this device supports Microsoft pointer events (always false on Macs).
+	 */
+  	IS_POINTER: window.PointerEvent != null && !(navigator.appVersion.indexOf('Mac') > 0),
+
+	/**
+	 * Variable: IS_LOCAL
+	 *
+	 * True if the documents location does not start with http:// or https://.
+	 */
+  	IS_LOCAL: document.location.href.indexOf('http://') < 0 &&
+  			  document.location.href.indexOf('https://') < 0,
+
+	/**
+	 * Variable: defaultBundles
+	 * 
+	 * Contains the base names of the default bundles if mxLoadResources is false.
+	 */
+  	defaultBundles: [],
+
+	/**
+	 * Function: isBrowserSupported
+	 *
+	 * Returns true if the current browser is supported, that is, if
+	 * <mxClient.IS_VML> or <mxClient.IS_SVG> is true.
+	 * 
+	 * Example:
+	 * 
+	 * (code)
+	 * if (!mxClient.isBrowserSupported())
+	 * {
+	 *   mxUtils.error('Browser is not supported!', 200, false);
+	 * }
+	 * (end)
+	 */
+	isBrowserSupported: function()
+	{
+		return mxClient.IS_VML || mxClient.IS_SVG;
+	},
+
+	/**
+	 * Function: link
+	 *
+	 * Adds a link node to the head of the document. Use this
+	 * to add a stylesheet to the page as follows:
+	 *
+	 * (code)
+	 * mxClient.link('stylesheet', filename);
+	 * (end)
+	 *
+	 * where filename is the (relative) URL of the stylesheet. The charset
+	 * is hardcoded to ISO-8859-1 and the type is text/css.
+	 * 
+	 * Parameters:
+	 * 
+	 * rel - String that represents the rel attribute of the link node.
+	 * href - String that represents the href attribute of the link node.
+	 * doc - Optional parent document of the link node.
+	 * id - unique id for the link element to check if it already exists
+	 */
+	link: function(rel, href, doc, id)
+	{
+		doc = doc || document;
+
+		// Workaround for Operation Aborted in IE6 if base tag is used in head
+		if (mxClient.IS_IE6)
+		{
+			doc.write('<link rel="' + rel + '" href="' + href + '" charset="UTF-8" type="text/css"/>');
+		}
+		else
+		{	
+			var link = doc.createElement('link');
+			
+			link.setAttribute('rel', rel);
+			link.setAttribute('href', href);
+			link.setAttribute('charset', 'UTF-8');
+			link.setAttribute('type', 'text/css');
+			
+			if (id)
+			{
+				link.setAttribute('id', id);
+			}
+			
+			var head = doc.getElementsByTagName('head')[0];
+	   		head.appendChild(link);
+		}
+	},
+	
+	/**
+	 * Function: loadResources
+	 * 
+	 * Helper method to load the default bundles if mxLoadResources is false.
+	 * 
+	 * Parameters:
+	 * 
+	 * fn - Function to call after all resources have been loaded.
+	 * lan - Optional string to pass to <mxResources.add>.
+	 */
+	loadResources: function(fn, lan)
+	{
+		var pending = mxClient.defaultBundles.length;
+		
+		function callback()
+		{
+			if (--pending == 0)
+			{
+				fn();
+			}
+		}
+		
+		for (var i = 0; i < mxClient.defaultBundles.length; i++)
+		{
+			mxResources.add(mxClient.defaultBundles[i], lan, callback);
+		}
+	},
+	
+	/**
+	 * Function: include
+	 *
+	 * Dynamically adds a script node to the document header.
+	 * 
+	 * In production environments, the includes are resolved in the mxClient.js
+	 * file to reduce the number of requests required for client startup. This
+	 * function should only be used in development environments, but not in
+	 * production systems.
+	 */
+	include: function(src)
+	{
+		document.write('<script src="'+src+'"></script>');
+	}
+};
+
+/**
+ * Detects desktop mode on iPad Pro which should block event handling like iOS 12.
+ */
+if (mxClient.IS_SF && mxClient.IS_TOUCH && !mxClient.IS_IOS)
+{
+	mxClient.IOS_VERSION = 13;
+	mxClient.IOS = true;
+}
+
+/**
+ * Variable: mxLoadResources
+ * 
+ * Optional global config variable to toggle loading of the two resource files
+ * in <mxGraph> and <mxEditor>. Default is true. NOTE: This is a global variable,
+ * not a variable of mxClient. If this is false, you can use <mxClient.loadResources>
+ * with its callback to load the default bundles asynchronously.
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		var mxLoadResources = false;
+ * </script>
+ * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ * (end)
+ */
+if (typeof(mxLoadResources) == 'undefined')
+{
+	mxLoadResources = true;
+}
+
+/**
+ * Variable: mxForceIncludes
+ * 
+ * Optional global config variable to force loading the JavaScript files in
+ * development mode. Default is undefined. NOTE: This is a global variable,
+ * not a variable of mxClient.
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		var mxLoadResources = true;
+ * </script>
+ * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ * (end)
+ */
+if (typeof(mxForceIncludes) == 'undefined')
+{
+	mxForceIncludes = false;
+}
+
+/**
+ * Variable: mxResourceExtension
+ * 
+ * Optional global config variable to specify the extension of resource files.
+ * Default is true. NOTE: This is a global variable, not a variable of mxClient.
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		var mxResourceExtension = '.txt';
+ * </script>
+ * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ * (end)
+ */
+if (typeof(mxResourceExtension) == 'undefined')
+{
+	mxResourceExtension = '.txt';
+}
+
+/**
+ * Variable: mxLoadStylesheets
+ * 
+ * Optional global config variable to toggle loading of the CSS files when
+ * the library is initialized. Default is true. NOTE: This is a global variable,
+ * not a variable of mxClient.
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		var mxLoadStylesheets = false;
+ * </script>
+ * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ * (end)
+ */
+if (typeof(mxLoadStylesheets) == 'undefined')
+{
+	mxLoadStylesheets = true;
+}
+
+/**
+ * Variable: basePath
+ *
+ * Basepath for all URLs in the core without trailing slash. Default is '.'.
+ * Set mxBasePath prior to loading the mxClient library as follows to override
+ * this setting:
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		mxBasePath = '/path/to/core/directory';
+ * </script>
+ * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ * (end)
+ * 
+ * When using a relative path, the path is relative to the URL of the page that
+ * contains the assignment. Trailing slashes are automatically removed.
+ */
+if (typeof(mxBasePath) != 'undefined' && mxBasePath.length > 0)
+{
+	// Adds a trailing slash if required
+	if (mxBasePath.substring(mxBasePath.length - 1) == '/')
+	{
+		mxBasePath = mxBasePath.substring(0, mxBasePath.length - 1);
+	}
+
+	mxClient.basePath = mxBasePath;
+}
+else
+{
+	mxClient.basePath = '.';
+}
+
+/**
+ * Variable: imageBasePath
+ *
+ * Basepath for all images URLs in the core without trailing slash. Default is
+ * <mxClient.basePath> + '/images'. Set mxImageBasePath prior to loading the
+ * mxClient library as follows to override this setting:
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		mxImageBasePath = '/path/to/image/directory';
+ * </script>
+ * <script type="text/javascript" src="/path/to/core/directory/js/mxClient.js"></script>
+ * (end)
+ * 
+ * When using a relative path, the path is relative to the URL of the page that
+ * contains the assignment. Trailing slashes are automatically removed.
+ */
+if (typeof(mxImageBasePath) != 'undefined' && mxImageBasePath.length > 0)
+{
+	// Adds a trailing slash if required
+	if (mxImageBasePath.substring(mxImageBasePath.length - 1) == '/')
+	{
+		mxImageBasePath = mxImageBasePath.substring(0, mxImageBasePath.length - 1);
+	}
+
+	mxClient.imageBasePath = mxImageBasePath;
+}
+else
+{
+	mxClient.imageBasePath = mxClient.basePath + '/images';	
+}
+
+/**
+ * Variable: language
+ *
+ * Defines the language of the client, eg. en for english, de for german etc.
+ * The special value 'none' will disable all built-in internationalization and
+ * resource loading. See <mxResources.getSpecialBundle> for handling identifiers
+ * with and without a dash.
+ * 
+ * Set mxLanguage prior to loading the mxClient library as follows to override
+ * this setting:
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		mxLanguage = 'en';
+ * </script>
+ * <script type="text/javascript" src="js/mxClient.js"></script>
+ * (end)
+ * 
+ * If internationalization is disabled, then the following variables should be
+ * overridden to reflect the current language of the system. These variables are
+ * cleared when i18n is disabled.
+ * <mxEditor.askZoomResource>, <mxEditor.lastSavedResource>,
+ * <mxEditor.currentFileResource>, <mxEditor.propertiesResource>,
+ * <mxEditor.tasksResource>, <mxEditor.helpResource>, <mxEditor.outlineResource>,
+ * <mxElbowEdgeHandler.doubleClickOrientationResource>, <mxUtils.errorResource>,
+ * <mxUtils.closeResource>, <mxGraphSelectionModel.doneResource>,
+ * <mxGraphSelectionModel.updatingSelectionResource>, <mxGraphView.doneResource>,
+ * <mxGraphView.updatingDocumentResource>, <mxCellRenderer.collapseExpandResource>,
+ * <mxGraph.containsValidationErrorsResource> and
+ * <mxGraph.alreadyConnectedResource>.
+ */
+if (typeof(mxLanguage) != 'undefined' && mxLanguage != null)
+{
+	mxClient.language = mxLanguage;
+}
+else
+{
+	mxClient.language = (mxClient.IS_IE) ? navigator.userLanguage : navigator.language;
+}
+
+/**
+ * Variable: defaultLanguage
+ * 
+ * Defines the default language which is used in the common resource files. Any
+ * resources for this language will only load the common resource file, but not
+ * the language-specific resource file. Default is 'en'.
+ * 
+ * Set mxDefaultLanguage prior to loading the mxClient library as follows to override
+ * this setting:
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		mxDefaultLanguage = 'de';
+ * </script>
+ * <script type="text/javascript" src="js/mxClient.js"></script>
+ * (end)
+ */
+if (typeof(mxDefaultLanguage) != 'undefined' && mxDefaultLanguage != null)
+{
+	mxClient.defaultLanguage = mxDefaultLanguage;
+}
+else
+{
+	mxClient.defaultLanguage = 'en';
+}
+
+// Adds all required stylesheets and namespaces
+if (mxLoadStylesheets)
+{
+	mxClient.link('stylesheet', mxClient.basePath + '/css/common.css');
+}
+
+/**
+ * Variable: languages
+ *
+ * Defines the optional array of all supported language extensions. The default
+ * language does not have to be part of this list. See
+ * <mxResources.isLanguageSupported>.
+ *
+ * (code)
+ * <script type="text/javascript">
+ * 		mxLanguages = ['de', 'it', 'fr'];
+ * </script>
+ * <script type="text/javascript" src="js/mxClient.js"></script>
+ * (end)
+ * 
+ * This is used to avoid unnecessary requests to language files, ie. if a 404
+ * will be returned.
+ */
+if (typeof(mxLanguages) != 'undefined' && mxLanguages != null)
+{
+	mxClient.languages = mxLanguages;
+}
+
+// Adds required namespaces, stylesheets and memory handling for older IE browsers
+if (mxClient.IS_VML)
+{
+	if (mxClient.IS_SVG)
+	{
+		mxClient.IS_VML = false;
+	}
+	else
+	{
+		// Enables support for IE8 standards mode. Note that this requires all attributes for VML
+		// elements to be set using direct notation, ie. node.attr = value, not setAttribute.
+		if (document.namespaces != null)
+		{
+			if (document.documentMode == 8)
+			{
+				document.namespaces.add(mxClient.VML_PREFIX, 'urn:schemas-microsoft-com:vml', '#default#VML');
+				document.namespaces.add(mxClient.OFFICE_PREFIX, 'urn:schemas-microsoft-com:office:office', '#default#VML');
+			}
+			else
+			{
+				document.namespaces.add(mxClient.VML_PREFIX, 'urn:schemas-microsoft-com:vml');
+				document.namespaces.add(mxClient.OFFICE_PREFIX, 'urn:schemas-microsoft-com:office:office');
+			}
+		}
+
+		// Workaround for limited number of stylesheets in IE (does not work in standards mode)
+		if (mxClient.IS_QUIRKS && document.styleSheets.length >= 30)
+		{
+			(function()
+			{
+				var node = document.createElement('style');
+				node.type = 'text/css';
+				node.styleSheet.cssText = mxClient.VML_PREFIX + '\\:*{behavior:url(#default#VML)}' +
+		        	mxClient.OFFICE_PREFIX + '\\:*{behavior:url(#default#VML)}';
+		        document.getElementsByTagName('head')[0].appendChild(node);
+			})();
+		}
+		else
+		{
+			document.createStyleSheet().cssText = mxClient.VML_PREFIX + '\\:*{behavior:url(#default#VML)}' +
+		    	mxClient.OFFICE_PREFIX + '\\:*{behavior:url(#default#VML)}';
+		}
+	    
+	    if (mxLoadStylesheets)
+	    {
+	    	mxClient.link('stylesheet', mxClient.basePath + '/css/explorer.css');
+	    }
+	}
+}
+
+// PREPROCESSOR-REMOVE-START
+// If script is loaded via CommonJS, do not write <script> tags to the page
+// for dependencies. These are already included in the build.
+if (mxForceIncludes || !(typeof module === 'object' && module.exports != null))
+{
+// PREPROCESSOR-REMOVE-END
+	mxClient.include(mxClient.basePath+'/js/util/mxLog.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxObjectIdentity.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxDictionary.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxResources.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxPoint.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxRectangle.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxEffects.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxUtils.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxConstants.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxEventObject.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxMouseEvent.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxEventSource.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxEvent.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxXmlRequest.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxClipboard.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxWindow.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxForm.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxImage.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxDivResizer.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxDragSource.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxToolbar.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxUndoableEdit.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxUndoManager.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxUrlConverter.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxPanningManager.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxPopupMenu.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxAutoSaveManager.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxAnimation.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxMorphing.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxImageBundle.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxImageExport.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxAbstractCanvas2D.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxXmlCanvas2D.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxSvgCanvas2D.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxVmlCanvas2D.js');
+	mxClient.include(mxClient.basePath+'/js/util/mxGuide.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxShape.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxStencil.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxStencilRegistry.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxMarker.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxActor.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxCloud.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxRectangleShape.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxEllipse.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxDoubleEllipse.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxRhombus.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxPolyline.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxArrow.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxArrowConnector.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxText.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxTriangle.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxHexagon.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxLine.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxImageShape.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxLabel.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxCylinder.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxConnector.js');
+	mxClient.include(mxClient.basePath+'/js/shape/mxSwimlane.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxGraphLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxStackLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxPartitionLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxCompactTreeLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxRadialTreeLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxFastOrganicLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxCircleLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxParallelEdgeLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxCompositeLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/mxEdgeLabelLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphAbstractHierarchyCell.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphHierarchyNode.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphHierarchyEdge.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxGraphHierarchyModel.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/model/mxSwimlaneModel.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxHierarchicalLayoutStage.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxMedianHybridCrossingReduction.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxMinimumCycleRemover.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxCoordinateAssignment.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/stage/mxSwimlaneOrdering.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/mxHierarchicalLayout.js');
+	mxClient.include(mxClient.basePath+'/js/layout/hierarchical/mxSwimlaneLayout.js');
+	mxClient.include(mxClient.basePath+'/js/model/mxGraphModel.js');
+	mxClient.include(mxClient.basePath+'/js/model/mxCell.js');
+	mxClient.include(mxClient.basePath+'/js/model/mxGeometry.js');
+	mxClient.include(mxClient.basePath+'/js/model/mxCellPath.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxPerimeter.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxPrintPreview.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxStylesheet.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxCellState.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxGraphSelectionModel.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxCellEditor.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxCellRenderer.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxEdgeStyle.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxStyleRegistry.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxGraphView.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxGraph.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxCellOverlay.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxOutline.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxMultiplicity.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxLayoutManager.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxSwimlaneManager.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxTemporaryCellStates.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxCellStatePreview.js');
+	mxClient.include(mxClient.basePath+'/js/view/mxConnectionConstraint.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxGraphHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxPanningHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxPopupMenuHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxCellMarker.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxSelectionCellsHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxConnectionHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxConstraintHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxRubberband.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxHandle.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxVertexHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxEdgeHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxElbowEdgeHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxEdgeSegmentHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxKeyHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxTooltipHandler.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxCellTracker.js');
+	mxClient.include(mxClient.basePath+'/js/handler/mxCellHighlight.js');
+	mxClient.include(mxClient.basePath+'/js/editor/mxDefaultKeyHandler.js');
+	mxClient.include(mxClient.basePath+'/js/editor/mxDefaultPopupMenu.js');
+	mxClient.include(mxClient.basePath+'/js/editor/mxDefaultToolbar.js');
+	mxClient.include(mxClient.basePath+'/js/editor/mxEditor.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxCodecRegistry.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxObjectCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxCellCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxModelCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxRootChangeCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxChildChangeCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxTerminalChangeCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxGenericChangeCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxGraphCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxGraphViewCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxStylesheetCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxDefaultKeyHandlerCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxDefaultToolbarCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxDefaultPopupMenuCodec.js');
+	mxClient.include(mxClient.basePath+'/js/io/mxEditorCodec.js');
+// PREPROCESSOR-REMOVE-START
+}
+// PREPROCESSOR-REMOVE-END

BIN
resources/assets/statics/public/js/grapheditor/jscolor/arrow.gif


BIN
resources/assets/statics/public/js/grapheditor/jscolor/cross.gif


BIN
resources/assets/statics/public/js/grapheditor/jscolor/hs.png


+ 0 - 0
resources/assets/statics/public/js/grapheditor/jscolor/hv.png


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.