From 7a7e167f663a809b80d76a1733a9e5d433bf4130 Mon Sep 17 00:00:00 2001 From: David Benson <david@jgraph.com> Date: Sat, 31 Mar 2018 15:00:01 +0100 Subject: [PATCH] 8.5.2 release --- ChangeLog | 10 + VERSION | 2 +- .../mxgraph/io/gliffy/model/GliffyObject.java | 27 +- src/main/webapp/cache.manifest | 2 +- .../connect/confluence/connect-dev.json | 270 ---- .../webapp/connect/confluence/connect.json | 9 + .../connect/confluence/connectUtils-1-4-8.js | 112 +- .../connect/confluence/macroEditor-1-4-8.html | 2 +- .../connect/confluence/macroEditor.html | 2 + .../connect/confluence/viewer-1-4-8.html | 72 +- src/main/webapp/connect/jira/connect-dev.json | 93 -- src/main/webapp/images/logo-quip.png | Bin 0 -> 2628 bytes src/main/webapp/images/sidebar-basic.png | Bin 12642 -> 17205 bytes src/main/webapp/images/sidebar-flowchart.png | Bin 8569 -> 10059 bytes src/main/webapp/index.html | 6 +- src/main/webapp/js/app.min.js | 105 +- src/main/webapp/js/atlas-viewer.min.js | 52 +- src/main/webapp/js/atlas.min.js | 105 +- src/main/webapp/js/diagramly/Editor.js | 1 + .../js/diagramly/sidebar/Sidebar-Basic.js | 19 +- .../js/diagramly/sidebar/Sidebar-Flowchart.js | 17 +- src/main/webapp/js/embed-static.min.js | 2 +- src/main/webapp/js/reader.min.js | 2 +- src/main/webapp/js/shapes.min.js | 73 +- src/main/webapp/js/viewer.min.js | 52 +- src/main/webapp/plugins/cConf-1-4-8.js | 22 +- src/main/webapp/shapes/mxBasic.js | 1370 ++++++++++++++++- src/main/webapp/shapes/mxFlowchart.js | 74 + 28 files changed, 1932 insertions(+), 569 deletions(-) delete mode 100644 src/main/webapp/connect/confluence/connect-dev.json delete mode 100644 src/main/webapp/connect/jira/connect-dev.json create mode 100644 src/main/webapp/images/logo-quip.png create mode 100644 src/main/webapp/shapes/mxFlowchart.js diff --git a/ChangeLog b/ChangeLog index c9a91426b..e7854de3e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +31-MAR-2018: 8.5.2 + +- Add mass gliffy import in Confluence Cloud +- Fixes importing Gliffy sitemap stencils +- Adds workaround for Confluence Cloud saveMacro problem + +28-MAR-2018: 8.5.1 + +- Confluence Cloud integration improvements + 23-MAR-2018: 8.5.0 - Adds shapes in Basic sidebar diff --git a/VERSION b/VERSION index 5eaed3b7c..bd0b85a9b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.5.0 \ No newline at end of file +8.5.2 \ No newline at end of file diff --git a/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java b/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java index 31fc60fc9..16b1f5b65 100644 --- a/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java +++ b/src/main/java/com/mxgraph/io/gliffy/model/GliffyObject.java @@ -121,9 +121,32 @@ public class GliffyObject implements PostDeserializable GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.home"); GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.gliffy"); GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.form"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.shopping_cart"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.text"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.video"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.upload"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.slideshow"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.sitemap"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.settings"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.search"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.script"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.print"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.pricing"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.photo"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.map"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.login"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.game"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.gallery"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.download"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.document"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.chat"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.calendar"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.audio"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.profile"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.error"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.success"); + GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.cloud"); - /*GRAPHICLESS_SHAPES.add("com.gliffy.shape.sitemap.sitemap_v2.page"); - */ GROUP_SHAPES.add("com.gliffy.shape.basic.basic_v1.default.group"); GROUP_SHAPES.add("com.gliffy.shape.erd.erd_v1.default.entity_with_attributes"); diff --git a/src/main/webapp/cache.manifest b/src/main/webapp/cache.manifest index 73a03cc8a..5460179ff 100644 --- a/src/main/webapp/cache.manifest +++ b/src/main/webapp/cache.manifest @@ -1,7 +1,7 @@ CACHE MANIFEST # THIS FILE WAS GENERATED. DO NOT MODIFY! -# 03/23/2018 11:58 AM +# 03/31/2018 02:35 PM app.html index.html?offline=1 diff --git a/src/main/webapp/connect/confluence/connect-dev.json b/src/main/webapp/connect/confluence/connect-dev.json deleted file mode 100644 index c4fa7ff5e..000000000 --- a/src/main/webapp/connect/confluence/connect-dev.json +++ /dev/null @@ -1,270 +0,0 @@ -{ - "name": "Draw.io gaudenz", - "description": "Draw.io add-on for Confluence", - "key": "com.mxgraph.confluence.plugins.diagramly", - "baseUrl": "https://bb63834e.ngrok.io", - "vendor": - { - "name": "JGraph Ltd.", - "url": "https://www.jgraph.com" - }, - "links": { - "documentation": "https://support.draw.io/display/DFCC/draw.io+for+Confluence+Cloud" - }, - "version": "1.4.8", - "authentication": - { - "type": "none" - }, - "modules": - { - "generalPages": [ - { - "key": "lightbox", - "url": "/connect/confluence/viewer-1-4-8.html?lightbox=1", - "name": { - "value": "Lightbox" - } - }, - { - "key": "customContentViewer", - "url": "/connect/confluence/viewer-1-4-8.html?custom=1&contentId={content.id}", - "name": { - "value": "Draw.io Viewer" - } - } - ], - "customContent": [{ - "key": "drawio-diagram", - "name": { - "value": "Draw.io Diagrams" - }, - "uiSupport": { - "contentViewComponent": { - "moduleKey": "customContentViewer" - }, - "icons": { - "item": { - "url": "/images/drawlogo48.png" - } - } - }, - "apiSupport": { - "supportedContainerTypes": ["page", "comment", "space", "blogpost"], - "supportedChildTypes": ["attachment"], - "indexing": { - "enabled": true - } - } - } - ], - "dynamicContentMacros": - [ - { - "name": - { - "i18n": "drawioMacro", - "value": "Draw.io Diagram" - }, - "url": "/connect/confluence/viewer-1-4-8.html?ceoId=${page.id}&diagramName=${diagramName}&revision=${revision}&width=${width}&height=${height}&tbstyle=${tbstyle}&lbox=${lbox}&zoom=${zoom}&links=${links}&owningPageId=${pageId}", - "width": "100%", - "description": - { - "i18n": "description", - "value": "Inserts a new Draw.io Diagram" - }, "icon": - { - "width": 128, - "height": 128, - "url": "/images/drawlogo128.png" - }, - "categories": [ - "visuals" - ], - "outputType": "block", - "featured": true, - "key": "drawio", - "parameters": - [ - { - "identifier": "diagramName", - "name": - { - "value": "Diagram name (do not change)" - }, - "type": "string" - }, - { - "identifier": "autoSize", - "name": - { - "value": "automatic size" - }, - "type": "boolean" - }, - { - "identifier": "PageId", - "name": - { - "value": "Parent page ID" - }, - "type": "string" - }, - { - "identifier": "baseUrl", - "name": - { - "value": "Confluence Base URL" - }, - "type": "string" - }, - { - "identifier": "width", - "name": - { - "value": "Diagram width" - }, - "type": "string" - }, - { - "identifier": "height", - "name": - { - "value": "Diagram Height" - }, - "type": "string" - } - ], - "editor": { - "url": "/connect/confluence/macroEditor-1-4-8.html?ceoId=${page.id}&diagramName=${diagramName}", - "width": "100%", - "height": "100%", - "editTitle": - { - "value" : "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" - }, - "insertTitle": - { - "value" : "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" - } - }, - "imagePlaceholder": { - "width": 500, - "height": 300, - "url": "/connectImage", - "applyChrome": false - }, - "renderModes": { - "default": { - "url": "/connectRender?pageId=${page.id}&diagramName=${diagramName}" - } - } - }, - { - "name": - { - "i18n": "drawioMacro", - "value": "Legacy macro - do not use" - }, - "url": "/connect/confluence/viewer.html?ceoId=${page.id}&diagramName=${diagramName}&revision=${revision}&width=${width}&height=${height}", - "width": "100%", - "description": - { - "i18n": "description", - "value": "Do not use" - }, "icon": - { - "width": 80, - "height": 80, - "url": "/images/stop-flat-icon-80.png" - }, - "categories": [ - "visuals" - ], - "outputType": "block", - "featured": false, - "key": "drawio-macro", - "parameters": - [ - { - "identifier": "diagramName", - "name": - { - "value": "Diagram name (do not change)" - }, - "type": "string" - }, - { - "identifier": "autoSize", - "name": - { - "value": "automatic size" - }, - "type": "boolean" - }, - { - "identifier": "PageId", - "name": - { - "value": "Parent page ID" - }, - "type": "string" - }, - { - "identifier": "baseUrl", - "name": - { - "value": "Confluence Base URL" - }, - "type": "string" - }, - { - "identifier": "width", - "name": - { - "value": "Diagram width" - }, - "type": "string" - }, - { - "identifier": "height", - "name": - { - "value": "Diagram Height" - }, - "type": "string" - } - ], - "editor": { - "url": "/connect/confluence/macroEditor.html?ceoId=${page.id}&diagramName=${diagramName}", - "editTitle": { - "value": "Edit MarkDown", - "i18n": "macro.md.edit" - }, - "insertTitle": { - "value": "Insert New MarkDown", - "i18n": "macro.md.insert" - }, - "width": "100%", - "height": "100%" - }, - "imagePlaceholder": { - "width": 500, - "height": 300, - "url": "/connectImage", - "applyChrome": true - }, - "renderModes": { - "default": { - "url": "/connectRender?pageId=${page.id}&diagramName=${diagramName}&revision=${revision}" - } - } - } - ] - }, - "scopes": [ - "read", - "write", - "delete" - ] -} \ No newline at end of file diff --git a/src/main/webapp/connect/confluence/connect.json b/src/main/webapp/connect/confluence/connect.json index 4c698cece..2751c51d2 100644 --- a/src/main/webapp/connect/confluence/connect.json +++ b/src/main/webapp/connect/confluence/connect.json @@ -19,6 +19,15 @@ }, "modules": { + "adminPages": [ + { + "key": "gliffyImport", + "url": "/connect/confluence/admin.html", + "name": { + "value": "Gliffy - draw.io Conversion" + } + } + ], "generalPages": [ { "key": "lightbox", diff --git a/src/main/webapp/connect/confluence/connectUtils-1-4-8.js b/src/main/webapp/connect/confluence/connectUtils-1-4-8.js index eec192639..4543d009c 100644 --- a/src/main/webapp/connect/confluence/connectUtils-1-4-8.js +++ b/src/main/webapp/connect/confluence/connectUtils-1-4-8.js @@ -1172,15 +1172,103 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d }); }; -AC.loadDiagram = function (pageId, diagramName, revision, success, error, owningPageId, tryRev1) { +AC.loadDiagram = function (pageId, diagramName, revision, success, error, owningPageId, tryRev1, dontCheckVer) { // TODO: Get binary - AP.require('request', function(request) { + AP.require(['request', 'confluence'], function(request, confluence) { + //Confirm that the macro is in sync with the diagram + //Sometimes the diagram is saved but the macro is not updated + var attInfo = null; + var pageInfo = null; + + function confirmDiagramInSync() + { + if (attInfo == null || pageInfo == null) + return; + + //TODO is this condition enough or we need to check timestamps also? + if (attInfo.version.number > revision + && (pageInfo.version.message == null || pageInfo.version.message.indexOf("Reverted") < 0)) + { + AC.loadDiagram(pageId, diagramName, attInfo.version.number, success, error, owningPageId, tryRev1, true); + //Update the macro + //Custom Content version will be fixed on next save, this will not affect correctness + confluence.getMacroData(function (macroData) + { + if (macroData != null) + { + confluence.saveMacro( + { + diagramName: macroData.diagramName, + revision: attInfo.version.number, + pageId: macroData.pageId, + contentId: macroData.contentId, + contentVer: macroData.contentVer, + baseUrl: macroData.baseUrl, + width: macroData.width, + height: macroData.height, + tbstyle: macroData.tbstyle, + links: macroData.links, + lbox: macroData.lbox != null ? macroData.lbox : '1', + zoom: macroData.zoom != null ? macroData.zoom : '1' + }); + } + }); + } + } + + //To avoid race we do the version check after loading the diagram in the macro + var localSuccess = function() + { + success.apply(this, arguments); + + if (!dontCheckVer && revision != null) + { + request({ + type: 'GET', + url: '/rest/api/content/' + pageId + '?expand=version', + contentType: 'application/json;charset=UTF-8', + success: function (resp) + { + pageInfo = JSON.parse(resp); + + confirmDiagramInSync(); + }, + error: function (resp) + { + //Ignore + } + }); + + request({ + type: 'GET', + url: '/rest/api/content/' + pageId + '/child/attachment?filename=' + + encodeURIComponent(diagramName) + '&expand=version', + contentType: 'application/json;charset=UTF-8', + success: function (resp) + { + var tmp = JSON.parse(resp); + + if (tmp.results && tmp.results.length == 1) + { + attInfo = tmp.results[0]; + } + + confirmDiagramInSync(); + }, + error: function (resp) + { + //Ignore + } + }); + } + } + request({ //TODO find out the ID of the page that actually holds the attachments because historical revisions do not have attachments url: '/download/attachments/' + pageId + '/' + encodeURIComponent(diagramName) + ((revision != null) ? '?version=' + revision : ''), - success: success, + success: localSuccess, error : function(resp) { //When a page is copied, attachments are reset to version 1 while the revision parameter remains the same @@ -1188,14 +1276,14 @@ AC.loadDiagram = function (pageId, diagramName, revision, success, error, owning { request({ url: '/download/attachments/' + pageId + '/' + encodeURIComponent(diagramName), - success: success, + success: localSuccess, error : function(resp) { //If revesion 1 failed, then try the owningPageId if (owningPageId && resp.status == 404) { request({ url: '/download/attachments/' + owningPageId + '/' + encodeURIComponent(diagramName) +'?version=' + revision, //this version should exists in the original owning page - success: success, + success: localSuccess, error : error }); } @@ -1206,7 +1294,7 @@ AC.loadDiagram = function (pageId, diagramName, revision, success, error, owning { request({ url: '/download/attachments/' + owningPageId + '/' + encodeURIComponent(diagramName), - success: success, + success: localSuccess, error : error }); } @@ -1268,6 +1356,18 @@ AC.saveCustomContent = function(spaceKey, pageId, pageType, diagramName, revisio { AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, revision, null, null, success, error); } + //Sometimes the macro is not updated such that the version is not correct. The same happens when a page version is restored + else if (err.statusCode == 409 && err.message.indexOf("Current version is:") > 0) + { + //We will use the error message to detect the correct version instead of doing another request. + //It should be safe as long as error messages are not translated or changed + var curContentVer = err.message.match(/\d+/); + + if (curContentVer != null) + { + AC.saveCustomContent(spaceKey, pageId, pageType, diagramName, revision, contentId, curContentVer[0], success, error); + } + } else { error(resp); diff --git a/src/main/webapp/connect/confluence/macroEditor-1-4-8.html b/src/main/webapp/connect/confluence/macroEditor-1-4-8.html index b40b8b31a..8bf6ae5e8 100644 --- a/src/main/webapp/connect/confluence/macroEditor-1-4-8.html +++ b/src/main/webapp/connect/confluence/macroEditor-1-4-8.html @@ -38,7 +38,7 @@ if (license != null && license == 'none') { - if (xdm_e != null && (xdm_e == "https://drawio.atlassian.net" || xdm_e.indexOf('ngrok') > -1)) + if (xdm_e != null && (xdm_e == "https://drawio.atlassian.net" || xdm_e.indexOf('ngrok') > -1 || xdm_e.indexOf('incura') > -1)) { console.log("License status = ", license); } diff --git a/src/main/webapp/connect/confluence/macroEditor.html b/src/main/webapp/connect/confluence/macroEditor.html index 4df633943..7c34c3355 100644 --- a/src/main/webapp/connect/confluence/macroEditor.html +++ b/src/main/webapp/connect/confluence/macroEditor.html @@ -34,6 +34,8 @@ var script = document.createElement('script'); script.setAttribute('data-options', 'resize:false;margin:false'); + alert("Unsupported draw.io version, please upgrade."); + // Main script.onload = function() { diff --git a/src/main/webapp/connect/confluence/viewer-1-4-8.html b/src/main/webapp/connect/confluence/viewer-1-4-8.html index 7237be4fd..d01eeafd0 100644 --- a/src/main/webapp/connect/confluence/viewer-1-4-8.html +++ b/src/main/webapp/connect/confluence/viewer-1-4-8.html @@ -233,11 +233,19 @@ if (lang != null) } else { + //In case we want to load another diagram + var oldContainer = document.getElementById("drawIODiagram"); + + if (oldContainer != null) + { + oldContainer.parentNode.removeChild(oldContainer); + } // LATER: Fix horizontal alignment ignored with 100% width of iframe // LATER: Fix page scrolling on touch device if trigger event on diagram // LATER: Hide toolbar after second container click for iOS // LATER: Disable responsive resize while lightbox shows var container = document.createElement('div'); + container.id = "drawIODiagram"; container.style.cssText = 'position:absolute;box-sizing:border-box;' + 'max-width:100%;border:1px solid transparent;'; document.body.appendChild(container); @@ -322,6 +330,68 @@ if (lang != null) }; } + //Confirm that the macro is in sync with the diagram + //Sometimes the diagram is saved but the macro is not updated + var attInfo = null; + var pageInfo = null; + + function confirmDiagramInSync() + { + if (attInfo == null || pageInfo == null) + return; + + var loadedVer = parseInt(revision); + + //TODO is this condition enough or we need to check timestamps also? + if (attInfo.version.number > loadedVer + && (pageInfo.version.message == null || pageInfo.version.message.indexOf("Reverted") < 0)) + { + showDiagram(id, backupId, name, attInfo.version.number + '', page, links, {dontCheckVer: true}); + //I think updating macro here is too risky since calling confluence.getMacroData returns null + } + } + + if (!retryParams.dontCheckVer && revision != null && revision.length > 0) + { + request({ + type: 'GET', + url: '/rest/api/content/' + id + '?expand=version', + contentType: 'application/json;charset=UTF-8', + success: function (resp) + { + pageInfo = JSON.parse(resp); + + confirmDiagramInSync(); + }, + error: function (resp) + { + //Ignore + } + }); + + request({ + type: 'GET', + url: '/rest/api/content/' + id + '/child/attachment?filename=' + + encodeURIComponent(name) + '&expand=version', + contentType: 'application/json;charset=UTF-8', + success: function (resp) + { + var tmp = JSON.parse(resp); + + if (tmp.results && tmp.results.length == 1) + { + attInfo = tmp.results[0]; + } + + confirmDiagramInSync(); + }, + error: function (resp) + { + //Ignore + } + }); + } + //Saving the diagram to this page negates page linking feature! //May be we should ask the user first or saving is not needed all together /*if (retryParams.saveIt) @@ -401,7 +471,7 @@ if (lang != null) var info = JSON.parse(decodeURIComponent(resp.body.storage.value)); - showDiagram(info.pageId, info.pageId, info.diagramName, info.version, null, links); + showDiagram(info.pageId, info.pageId, info.diagramName, info.version, null, links, {dontCheckVer: true}); //custom content can load old versions which will be overridden by version check }, error: function (resp) { diff --git a/src/main/webapp/connect/jira/connect-dev.json b/src/main/webapp/connect/jira/connect-dev.json deleted file mode 100644 index 16c3f2772..000000000 --- a/src/main/webapp/connect/jira/connect-dev.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "name": "Draw.io gaudenz", - "description": "Draw.io add-on for JIRA", - "key": "com.mxgraph.jira.plugins.drawio.gaudenz", - "baseUrl": "https://0d961297.ngrok.io/", - "vendor": { - "name": "JGraph Ltd.", - "url": "https://www.jgraph.com" - }, - "authentication": - { - "type": "none" - }, - "version": "1.0.4", - "scopes": - [ - "READ", - "WRITE", - "DELETE" - ], - "modules": - { - "generalPages": - [ - { - "url":"/connect/jira/editor2.html?issueId=${issue.id}", - "key":"drawioEditor", - "name": - { - "value":"Draw.io Editor" - }, - "location":"hidden" - }, - { - "url":"/connect/jira/fullScreenViewer2.html?issueId=${issue.id}", - "key":"drawioFullScreenViewer", - "name": - { - "value":"Draw.io Full Screen Viewer" - }, - "location":"hidden" - } - ], - "webItems": [ - { - "location": "operations-attachments", - "weight": 50, - "key": "drawioEditorBlank", - "url": "/connect/jira/editor2.html?issueId=${issue.id}", - "name": { - "value": "Add Draw.io Diagram" - }, - "target": - { - "type":"dialog", - "options": - { - "width":"100%", - "height":"100%", - "chrome":false - } - } - }, - { - "key": "drawioEditorDialog", - "name": - { - "value": "Draw.io Editor" - }, - "url": "/connect/jira/editor2.html?issueId=${issue.id}", - "location": "none", - "context": "addon" - } - ], - "webPanels": - [ - { - "url": "/connect/jira/viewerPanel2.html?issueId=${issue.id}", - "location": "atl.jira.view.issue.right.context", - "layout": - { - "width": "300px" - }, - "weight": 50, - "key": "drawioViewerPanel", - "name": - { - "value": "Draw.io Diagrams" - } - } - ] - } - } \ No newline at end of file diff --git a/src/main/webapp/images/logo-quip.png b/src/main/webapp/images/logo-quip.png new file mode 100644 index 0000000000000000000000000000000000000000..6d8986ae5608a0923f1931a7d694bfc7f5181f73 GIT binary patch literal 2628 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/images/sidebar-basic.png b/src/main/webapp/images/sidebar-basic.png index a7054dd77800174081f340d4461570df5c10ead5..3b2b363a3b7db1b2078af10db46051539258f5e2 100644 GIT binary patch literal 17205 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 literal 12642 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 bttcPwUmTWh)}8-;N<hg=t4P&Jm<IhX9HH3& diff --git a/src/main/webapp/images/sidebar-flowchart.png b/src/main/webapp/images/sidebar-flowchart.png index 2ca3d991e761bbc15f2dc54a888758e84c5b800e..46ecf664a6339b6d5031286bfe30bb655d3aa0e5 100644 GIT binary patch literal 10059 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 UrUvKzNgRxvw1QNngkj+S0VNo_s{jB1 literal 8569 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 diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index bfff74b7f..950766efd 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -397,10 +397,10 @@ width="26" height="20" src="images/youtube.png"/>Quick Start Video</a> </td> <td id="geFooterItem1" align="center" style="width:260px;"> - <a id="geFooterLink1" title="#1 Rated Confluence Add-on" target="_blank" - href="https://about.draw.io/integrations/confluence-integration/"> + <a id="geFooterLink1" title="draw.io for Quip" target="_blank" + href="https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FH8dSUAT"> <img border="0" width="24" height="24" align="absmiddle" style="padding-right:10px;" - src="images/logo-confluence.png"/>#1 Rated Confluence App + src="images/logo-quip.png"/>Announcing draw.io for Quip </a> </td> </tr> diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js index 461ba6a6b..68899de88 100644 --- a/src/main/webapp/js/app.min.js +++ b/src/main/webapp/js/app.min.js @@ -3879,15 +3879,20 @@ this.createVertexTemplateEntry(a+"unidentified_code_object;",50,42.5,"","Unident 120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;bottom=0;right=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;top=0;left=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry(a+"4_point_star_2;dx=0.8;",100,100,"","4 Point Star",null,null,this.getTagsForStencil("mxgraph.basic","4_point_star","").join(" ")),this.createVertexTemplateEntry(a+ "6_point_star",100,90,"","6 Point Star",null,null,this.getTagsForStencil("mxgraph.basic","6_point_star","").join(" ")),this.createVertexTemplateEntry(a+"8_point_star",100,100,"","8 Point Star",null,null,this.getTagsForStencil("mxgraph.basic","8_point_star","").join(" ")),this.createVertexTemplateEntry(a+"banner",100,50,"","Banner",null,null,this.getTagsForStencil("mxgraph.basic","banner","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.cloud_callout", 90,60,"","Cloud Callout",null,null,this.getTagsForStencil("mxgraph.basic","cloud_callout","").join(" ")),this.createVertexTemplateEntry(a+"cone",100,100,"","Cone",null,null,this.getTagsForStencil("mxgraph.basic","cone","").join(" ")),this.createVertexTemplateEntry(a+"cone2;dx=0.5;dy=0.9;",100,100,"","Cone (adjustable)",null,null,this.getTagsForStencil("mxgraph.basic","cone","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.document",100,100,"", -"Document",null,null,this.getTagsForStencil("mxgraph.basic","document","").join(" ")),this.createVertexTemplateEntry(a+"drop",70,100,"","Drop",null,null,this.getTagsForStencil("mxgraph.basic","drop","").join(" ")),this.createVertexTemplateEntry(a+"flash",60,100,"","Flash",null,null,this.getTagsForStencil("mxgraph.basic","flash","").join(" ")),this.createVertexTemplateEntry(a+"half_circle",100,50,"","Half Circle",null,null,this.getTagsForStencil("mxgraph.basic","half_circle","").join(" ")),this.createVertexTemplateEntry(a+ -"heart",100,100,"","Heart",null,null,this.getTagsForStencil("mxgraph.basic","heart","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.isocube;isoAngle=15;",100,100,"","Isometric Cube",null,null,this.getTagsForStencil("mxgraph.basic","isometric cube","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.loud_callout",100,60,"","Loud Callout",null,null,this.getTagsForStencil("mxgraph.basic","loud_callout", -"").join(" ")),this.createVertexTemplateEntry(a+"moon",75,100,"","Moon",null,null,this.getTagsForStencil("mxgraph.basic","moon","").join(" ")),this.createVertexTemplateEntry(a+"no_symbol",100,100,"","No Symbol",null,null,this.getTagsForStencil("mxgraph.basic","no_symbol","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.octagon2;align=center;verticalAlign=middle;dx=15;",100,100,"","Octagon",null,null,this.getTagsForStencil("mxgraph.basic","octagon", -"").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,70,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry(a+"acute_triangle;dx=0.5;",100,70,"","Acute Triangle",null,null,this.getTagsForStencil("mxgraph.basic","acute_triangle","").join(" ")),this.createVertexTemplateEntry(a+"obtuse_triangle;dx=0.25;",100,70,"","Obtuse Triangle",null,null,this.getTagsForStencil("mxgraph.basic","obtuse_triangle", -"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pointed_oval", -50,100,"","Pointed Oval",null,null,this.getTagsForStencil("mxgraph.basic","pointed oval","").join(" ")),this.createVertexTemplateEntry(a+"pyramid;dx1=0.4;dx2=0.6;dy1=0.9;dy2=0.8;",100,100,"","Pyramid",null,null,this.getTagsForStencil("mxgraph.basic","pyramid","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout", -"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley",null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic", -"star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;",100,60,"","Wave",null,null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic", -"x","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="), +"Document",null,null,this.getTagsForStencil("mxgraph.basic","document","").join(" ")),this.createVertexTemplateEntry(a+"donut;dx=25;",100,100,"","Donut",null,null,this.getTagsForStencil("mxgraph.basic","donut","").join(" ")),this.createVertexTemplateEntry(a+"drop",70,100,"","Drop",null,null,this.getTagsForStencil("mxgraph.basic","drop","").join(" ")),this.createVertexTemplateEntry(a+"flash",60,100,"","Flash",null,null,this.getTagsForStencil("mxgraph.basic","flash","").join(" ")),this.createVertexTemplateEntry(a+ +"half_circle",100,50,"","Half Circle",null,null,this.getTagsForStencil("mxgraph.basic","half_circle","").join(" ")),this.createVertexTemplateEntry(a+"heart",100,100,"","Heart",null,null,this.getTagsForStencil("mxgraph.basic","heart","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.isocube;isoAngle=15;",100,100,"","Isometric Cube",null,null,this.getTagsForStencil("mxgraph.basic","isometric cube","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.loud_callout", +100,60,"","Loud Callout",null,null,this.getTagsForStencil("mxgraph.basic","loud_callout","").join(" ")),this.createVertexTemplateEntry(a+"moon",75,100,"","Moon",null,null,this.getTagsForStencil("mxgraph.basic","moon","").join(" ")),this.createVertexTemplateEntry(a+"no_symbol",100,100,"","No Symbol",null,null,this.getTagsForStencil("mxgraph.basic","no_symbol","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.octagon2;align=center;verticalAlign=middle;dx=15;", +100,100,"","Octagon",null,null,this.getTagsForStencil("mxgraph.basic","octagon","").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,70,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry(a+"acute_triangle;dx=0.5;",100,70,"","Acute Triangle",null,null,this.getTagsForStencil("mxgraph.basic","acute_triangle","").join(" ")),this.createVertexTemplateEntry(a+"obtuse_triangle;dx=0.25;",100,70, +"","Obtuse Triangle",null,null,this.getTagsForStencil("mxgraph.basic","obtuse_triangle","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")), +this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pointed_oval",50,100,"","Pointed Oval",null,null,this.getTagsForStencil("mxgraph.basic","pointed oval","").join(" ")),this.createVertexTemplateEntry(a+"pyramid;dx1=0.4;dx2=0.6;dy1=0.9;dy2=0.8;",100,100,"","Pyramid",null,null,this.getTagsForStencil("mxgraph.basic","pyramid","").join(" ")),this.createVertexTemplateEntry(a+"diag_snip_rect;dx=6;",100,60,"","Diagonal Snip Rectangle",null,null,this.getTagsForStencil("mxgraph.basic", +"diag_snip_rect","").join(" ")),this.createVertexTemplateEntry(a+"diag_round_rect;dx=6;",100,60,"","Diagonal Rounded Rectangle",null,null,this.getTagsForStencil("mxgraph.basic","diag_round_rect","").join(" ")),this.createVertexTemplateEntry(a+"corner_round_rect;dx=6;",100,60,"","Corner Rounded Rectangle",null,null,this.getTagsForStencil("mxgraph.basic","corner_round_rect","").join(" ")),this.createVertexTemplateEntry(a+"plaque;dx=6;",100,60,"","Plaque",null,null,this.getTagsForStencil("mxgraph.basic", +"plaque","").join(" ")),this.createVertexTemplateEntry(a+"frame;dx=10;",100,60,"","Frame",null,null,this.getTagsForStencil("mxgraph.basic","frame","").join(" ")),this.createVertexTemplateEntry(a+"rounded_frame;dx=10;",100,60,"","Rounded Frame",null,null,this.getTagsForStencil("mxgraph.basic","rounded_frame","").join(" ")),this.createVertexTemplateEntry(a+"plaque_frame;dx=10;",100,60,"","Plaque Frame",null,null,this.getTagsForStencil("mxgraph.basic","plaque_frame","").join(" ")),this.createVertexTemplateEntry(a+ +"frame_corner;dx=10;",100,60,"","Frame Corner",null,null,this.getTagsForStencil("mxgraph.basic","frame_corner","").join(" ")),this.createVertexTemplateEntry(a+"diag_stripe;dx=10;",100,60,"","Diagonal Stripe",null,null,this.getTagsForStencil("mxgraph.basic","diag_stripe","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout", +"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"layered_rect;dx=10;",100,60,"","Layered Rectangle",null,null,this.getTagsForStencil("mxgraph.basic","layered_rect","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley", +null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic","star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;", +100,60,"","Wave",null,null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry("labelPosition=center;verticalLabelPosition=middle;html=1;strokeWidth=2;shape=mxgraph.basic.button;dx=10;",100,60,"Button","Button",null,null,this.getTagsForStencil("mxgraph.basic","button","").join(" ")),this.createVertexTemplateEntry("labelPosition=center;verticalLabelPosition=middle;html=1;strokeWidth=2;shape=mxgraph.basic.shaded_button;dx=10;fillColor=#E6E6E6;strokeColor=none;", +100,60,"Button","Button (shaded)",null,null,this.getTagsForStencil("mxgraph.basic","button","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic","x","").join(" ")),this.createVertexTemplateEntry(a+"pie;startAngle=0.2;endAngle=0.9;",100,100,"","Pie",null,null,this.getTagsForStencil("mxgraph.basic","pie","").join(" ")),this.createVertexTemplateEntry(a+"arc;startAngle=0.3;endAngle=0.1;",100,100,"","Arc",null,null,this.getTagsForStencil("mxgraph.basic", +"arc","").join(" ")),this.createVertexTemplateEntry(a+"partConcEllipse;startAngle=0.25;endAngle=0.1;arcWidth=0.5;",100,100,"","Partial Concentric Ellipse",null,null,this.getTagsForStencil("mxgraph.basic","partConcEllipse","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="), this.addDataEntry("bootstrap button bar bright",800,40,"Button Bar (Bright)","5ZdRb5swEMc/DY9FBhNCXkPavmxStUh798IB1gxGxmvIPv0OcBKoSZetpYpUIyT77DP278+dwaFx0TwqVuVfZQLCofcOjZWUuq8VTQxCOD7hiUM3ju8TvB3/4UKv1/WSiiko9TUOfu/wzMQv6C29odYHYQy5LnBZG8+h6zpnidxjg2AjYXUOiWlgT9WOL5qs3Yv7A3dQa6y6Cna4knXKhYilkKqblKZhe7WOWsmfcOwpZYmzrPc517Ct2K6dco+zoM0sFJSG5uJmO5PZ6SPIArQ64JA9T3Tej4hID4TkwLPcuAXGxuq+nZ1cz+iwYuhNk6QWyVgWFSsP/wd0yMtQmUT1d/Cy1APwSVeMfct/t75e8Bbm/hXM50EeWMifQFaI+WNeYdJel3R5gX3VlXYwEuZl9s2QoGQG9M0Y+0CJ1UxKLCwlouDdVTAyKPPWRhOSpATLlZKkXXkL/uBV/MbhYNKwu7DUOGIbquGFvU2BYJo/w2iuKYnM858kx2WdHn5Hyejxd9F4BpmmNWhL4tMurlI9tFT/zmW7bFnWN5r1PjD8vKUdf543UwAuLSmC9z/Jby4Aw08egJGl+lbjomvNd7cagDMF29RhN9dnx8qmDlpjVvlkzGloM1/OxPyYN0fQmdrlruvOnecWU3nOpK6xUC+/r6fsTPCsRJuAVJ8PpC9da+PNeB6Fi3FGstOhRyfUo/+uHjbPf7B9Whv+4P4B"), this.addEntry("bootstrap button group vertical",function(){var d=new mxCell("",new mxGeometry(0,0,100,150),"html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;strokeColor=#dddddd;html=1;whiteSpace=wrap;fillColor=#ffffff;");d.vertex=!0;var b=new mxCell("Edit",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.topButton;rSize=5;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.vertex= !0;d.insert(b);b=new mxCell("Create",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,30);b.vertex=!0;d.insert(b);var c=new mxCell("Delete",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;"); @@ -4585,20 +4590,20 @@ function(){var e=new mxCell("",new mxGeometry(20,20,520,100),"shape=ellipse;shad new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");k.vertex=!0;var m=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;shadow=0;");m.vertex=!0;var l=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;shadow=0;direction=west;");l.vertex=!0;var r=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;shadow=0;");r.vertex=!0;var n=new mxCell("",new mxGeometry(230, 97,40,43),a+"office_chair;shadow=0;direction=west;");n.vertex=!0;var p=new mxCell("",new mxGeometry(290,0,40,43),a+"office_chair;shadow=0;");p.vertex=!0;var q=new mxCell("",new mxGeometry(290,97,40,43),a+"office_chair;shadow=0;direction=west;");q.vertex=!0;var w=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;shadow=0;");w.vertex=!0;var v=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;shadow=0;direction=west;");v.vertex=!0;var y=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;shadow=0;"); y.vertex=!0;var x=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;shadow=0;direction=west;");x.vertex=!0;var u=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;shadow=0;");u.vertex=!0;var t=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;shadow=0;direction=west;");t.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,m,l,r,n,p,q,w,v,y,x,u,t,e],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(a){for(var b= -0;b<e.length;b++)a.appendChild(e[b](a))}))}})();(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.flowchart.";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_2;align=left;", -50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.card;whiteSpace=wrap;",100,60,"","Card",null,null,this.getTagsForStencil("mxgraph.flowchart","card","").join(" ")),this.createVertexTemplateEntry(a+"collate;",100,100,"","Collate",null,null,this.getTagsForStencil("mxgraph.flowchart","collate","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.data;whiteSpace=wrap;", -100,60,"","Data",null,null,this.getTagsForStencil("mxgraph.flowchart","data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;",60,60,"","Database",null,null,this.getTagsForStencil("mxgraph.flowchart","database","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;",100,100,"","Decision",null,null,this.getTagsForStencil("mxgraph.flowchart","decision","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;", -100,60,"","Delay",null,null,this.getTagsForStencil("mxgraph.flowchart","delay","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.direct_data;whiteSpace=wrap;",100,60,"","Direct Data",null,null,this.getTagsForStencil("mxgraph.flowchart","direct_data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.display;whiteSpace=wrap;",100,60,"","Display",null,null,this.getTagsForStencil("mxgraph.flowchart","display","").join(" ")), -this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.document;whiteSpace=wrap;",100,60,"","Document",null,null,this.getTagsForStencil("mxgraph.flowchart","document","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;",95,60,"","Extract or Measurement",null,null,this.getTagsForStencil("mxgraph.flowchart","extract_or_measurement","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.internal_storage;whiteSpace=wrap;", -70,70,"","Internal Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","internal_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.loop_limit;whiteSpace=wrap;",100,60,"","Loop Limit",null,null,this.getTagsForStencil("mxgraph.flowchart","loop_limit","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.manual_input;whiteSpace=wrap;",100,60,"","Manual Input",null,null,this.getTagsForStencil("mxgraph.flowchart", -"manual_input","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.manual_operation;whiteSpace=wrap;",100,60,"","Manual Operation",null,null,this.getTagsForStencil("mxgraph.flowchart","manual_operation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.merge_or_storage;whiteSpace=wrap;",95,60,"","Merge or Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","merge_or_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;", -88,60,"","Multi-Document",null,null,this.getTagsForStencil("mxgraph.flowchart","multi-document","").join(" ")),this.createVertexTemplateEntry(a+"off-page_reference;",60,60,"","Off-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","off-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"on-page_reference;",60,60,"","On-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","on-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"summing_function;", -70,70,"","Or",null,null,this.getTagsForStencil("mxgraph.flowchart","summing_function","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.paper_tape;whiteSpace=wrap;",100,65,"","Paper Tape",null,null,this.getTagsForStencil("mxgraph.flowchart","paper_tape","").join(" ")),this.createVertexTemplateEntry(a+"parallel_mode;",95,40,"","Parallel Mode",null,null,this.getTagsForStencil("mxgraph.flowchart","parallel_mode","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.predefined_process;whiteSpace=wrap;", -100,60,"","Predefined Process",null,null,this.getTagsForStencil("mxgraph.flowchart","predefined_process","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.preparation;whiteSpace=wrap;",100,60,"","Preparation",null,null,this.getTagsForStencil("mxgraph.flowchart","preparation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.process;whiteSpace=wrap;",100,100,"","Process",null,null,this.getTagsForStencil("mxgraph.flowchart", -"process","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.sequential_data;whiteSpace=wrap;",100,100,"","Sequential Data",null,null,this.getTagsForStencil("mxgraph.flowchart","sequential_data","").join(" ")),this.createVertexTemplateEntry(a+"sort;",100,100,"","Sort",null,null,this.getTagsForStencil("mxgraph.flowchart","sort","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;",100,60,"","Start", -null,null,this.getTagsForStencil("mxgraph.flowchart","start_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;",100,100,"","Start",null,null,this.getTagsForStencil("mxgraph.flowchart","start_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.stored_data;whiteSpace=wrap;",100,60,"","Stored Data",null,null,this.getTagsForStencil("mxgraph.flowchart","stored_data","").join(" ")),this.createVertexTemplateEntry(a+ -"or;",70,70,"","Summing Junction",null,null,this.getTagsForStencil("mxgraph.flowchart","or","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.terminator;whiteSpace=wrap;",100,60,"","Terminator",null,null,this.getTagsForStencil("mxgraph.flowchart","terminator","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.arrows2.arrow;dy=0.6;dx=40;notch=0;", -100,70,"","Transfer",null,null,this.getTagsForStencil("mxgraph.flowchart","transfer","").join(" "))])}})();(function(){Sidebar.prototype.addGoogleCloudPlatformCardsPalette=function(){var a=[this.addDataEntry("gcp google cloud platform cardproduct",170,55,"Product Card","rZRdb4MgFIZ/DZczKq11l539uFqyZBe7XIgclQzFIG3tfv1AsNXpsi4dxggv5+DxeQWEk7LdS1IXz4ICR3iLcCKFULZXtglwjkKfUYQ3KAx9faNw98Ns0M36NZFQqVsSQptwJPwAVrFCo87cCZQ0BZhwH+GnQpW6xk2gu42S4gMSwYXsAjHtmp7JGOfpVc+6pvVcEsp0YX1OJSowCxWEitNo1TdGVeEUVyFIBe2PX9lJ7hP3IEpQ8qxDTm4dE7GyJPwCWF64tOXSaqSx4/ySemWmOw7bPEJ8B8KC1CakbHPzB3h5WnupKOuDgv75DlXOOkyG6oD2Aser3WaGqpmLYrxdTzxyvDU39Re24a9scexFj8MWTVHjhedgS+BEsSOMXjjngHvni2C6lNDvK3Q+nsfDfgGRZQ2oiYGXwm/ydDHxNLF2aHFrDfnusSaojEuiUq/s04gBduOBM7FvLq0TzvJKaxwyk2YsYCnhayeXjFL+j2Y5WH7vwXBjBDMbwx0b93oVjb16CML7zdLD6/low4fH5xc="), +0;b<e.length;b++)a.appendChild(e[b](a))}))}})();(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.flowchart.",e=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;", +50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_2;align=left;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_2","").join(" ")),this.createVertexTemplateEntry(e+"card;whiteSpace=wrap;size=20;arcSize=12;",100,60,"","Card",null,null,this.getTagsForStencil("mxgraph.flowchart","card","").join(" ")),this.createVertexTemplateEntry(a+ +"collate;",100,100,"","Collate",null,null,this.getTagsForStencil("mxgraph.flowchart","collate","").join(" ")),this.createVertexTemplateEntry(e+"parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;rounded=1;arcSize=12;size=0.23;",100,60,"","Data",null,null,this.getTagsForStencil("mxgraph.flowchart","data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;",60,60,"","Database",null,null,this.getTagsForStencil("mxgraph.flowchart", +"database","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;",100,100,"","Decision",null,null,this.getTagsForStencil("mxgraph.flowchart","decision","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;",100,60,"","Delay",null,null,this.getTagsForStencil("mxgraph.flowchart","delay","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.direct_data;whiteSpace=wrap;", +100,60,"","Direct Data",null,null,this.getTagsForStencil("mxgraph.flowchart","direct_data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.display;whiteSpace=wrap;",100,60,"","Display",null,null,this.getTagsForStencil("mxgraph.flowchart","display","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.document2;whiteSpace=wrap;size=0.25;",100,60,"","Document",null,null,this.getTagsForStencil("mxgraph.flowchart","document", +"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;",95,60,"","Extract or Measurement",null,null,this.getTagsForStencil("mxgraph.flowchart","extract_or_measurement","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.internal_storage;whiteSpace=wrap;",70,70,"","Internal Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","internal_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.loop_limit;whiteSpace=wrap;", +100,60,"","Loop Limit",null,null,this.getTagsForStencil("mxgraph.flowchart","loop_limit","").join(" ")),this.createVertexTemplateEntry(e+"manualInput;whiteSpace=wrap;rounded=1;size=26;arcSize=11;",100,60,"","Manual Input",null,null,this.getTagsForStencil("mxgraph.flowchart","manual_input","").join(" ")),this.createVertexTemplateEntry(e+"trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.23;arcSize=10;flipV=1;",100,60,"","Manual Operation",null,null,this.getTagsForStencil("mxgraph.flowchart", +"manual_operation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.merge_or_storage;whiteSpace=wrap;",95,60,"","Merge or Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","merge_or_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;",88,60,"","Multi-Document",null,null,this.getTagsForStencil("mxgraph.flowchart","multi-document","").join(" ")),this.createVertexTemplateEntry(e+ +"offPageConnector;rounded=0;size=0.5;",60,60,"","Off-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","off-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"on-page_reference;",60,60,"","On-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","on-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"summing_function;",70,70,"","Or",null,null,this.getTagsForStencil("mxgraph.flowchart","summing_function","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.paper_tape;whiteSpace=wrap;", +100,65,"","Paper Tape",null,null,this.getTagsForStencil("mxgraph.flowchart","paper_tape","").join(" ")),this.createVertexTemplateEntry(a+"parallel_mode;",95,40,"","Parallel Mode",null,null,this.getTagsForStencil("mxgraph.flowchart","parallel_mode","").join(" ")),this.createVertexTemplateEntry(e+"process;whiteSpace=wrap;rounded=1;size=0.14;arcSize=6;",100,60,"","Predefined Process",null,null,this.getTagsForStencil("mxgraph.flowchart","predefined_process","").join(" ")),this.createVertexTemplateEntry(e+ +"hexagon;perimeter=hexagonPerimeter2;arcSize=6;size=0.27;",100,60,"","Preparation",null,null,this.getTagsForStencil("mxgraph.flowchart","preparation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.process;whiteSpace=wrap;",100,100,"","Process",null,null,this.getTagsForStencil("mxgraph.flowchart","process","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.sequential_data;whiteSpace=wrap;",100,100,"","Sequential Data", +null,null,this.getTagsForStencil("mxgraph.flowchart","sequential_data","").join(" ")),this.createVertexTemplateEntry(a+"sort;",100,100,"","Sort",null,null,this.getTagsForStencil("mxgraph.flowchart","sort","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;",100,60,"","Start",null,null,this.getTagsForStencil("mxgraph.flowchart","start_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;", +100,100,"","Start",null,null,this.getTagsForStencil("mxgraph.flowchart","start_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.stored_data;whiteSpace=wrap;",100,60,"","Stored Data",null,null,this.getTagsForStencil("mxgraph.flowchart","stored_data","").join(" ")),this.createVertexTemplateEntry(a+"or;",70,70,"","Summing Junction",null,null,this.getTagsForStencil("mxgraph.flowchart","or","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.terminator;whiteSpace=wrap;", +100,60,"","Terminator",null,null,this.getTagsForStencil("mxgraph.flowchart","terminator","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.arrows2.arrow;dy=0.6;dx=40;notch=0;",100,70,"","Transfer",null,null,this.getTagsForStencil("mxgraph.flowchart","transfer","").join(" "))])}})();(function(){Sidebar.prototype.addGoogleCloudPlatformCardsPalette=function(){var a=[this.addDataEntry("gcp google cloud platform cardproduct",170,55,"Product Card","rZRdb4MgFIZ/DZczKq11l539uFqyZBe7XIgclQzFIG3tfv1AsNXpsi4dxggv5+DxeQWEk7LdS1IXz4ICR3iLcCKFULZXtglwjkKfUYQ3KAx9faNw98Ns0M36NZFQqVsSQptwJPwAVrFCo87cCZQ0BZhwH+GnQpW6xk2gu42S4gMSwYXsAjHtmp7JGOfpVc+6pvVcEsp0YX1OJSowCxWEitNo1TdGVeEUVyFIBe2PX9lJ7hP3IEpQ8qxDTm4dE7GyJPwCWF64tOXSaqSx4/ySemWmOw7bPEJ8B8KC1CakbHPzB3h5WnupKOuDgv75DlXOOkyG6oD2Aser3WaGqpmLYrxdTzxyvDU39Re24a9scexFj8MWTVHjhedgS+BEsSOMXjjngHvni2C6lNDvK3Q+nsfDfgGRZQ2oiYGXwm/ydDHxNLF2aHFrDfnusSaojEuiUq/s04gBduOBM7FvLq0TzvJKaxwyk2YsYCnhayeXjFL+j2Y5WH7vwXBjBDMbwx0b93oVjb16CML7zdLD6/low4fH5xc="), this.addDataEntry("gcp google cloud platform cardproduct",190,55,"Product Card","5ZVdb4MgFIZ/jZczVlpnLzv7cbVkyS52uRA5KimKQdrqfv1AsNVos27droYxwss5eHwfUQdFeb0TuMyeOQHmoI2DIsG5NL28joAxx/cocdDa8X1PnY6/vTI7a2e9Egso5C0Jvkk4YnYAoxihkg2zAsFVBjrcc9BTJnNV43qmupUUfA8RZ1y0gYi0Tc0klLH4oidtU3oqMKGqsC6n4AXohTJM+Gmw6hslMrOKrRCEhPrqU7aSfcQd8BykaFTIya6jI5bGCS8DmmY2bbEwGq7MOD2nXjxTHWvbtIXoDgszXOqQvE71G+CmcenGPC8PErrrOxQpbW3SrvbcnqPwcbuecFXPBSHarEaMrN/KN/kdb/0vvUWhGyz7LRhbjeauNVsAw5IeYXDDKQL2ni+cqlJ8r6vQcmyGw24BniQVyBHAc+E3MZ2PmK4KzBpJ40rJTzjeQ0FGmJWJUoPihXylH1qcITvuw2mb0jGjaaE0BolO0xRojNnKyjklhP0iL+uX12Ho7w00sTfsl+NeXMEQ14P/F7wWI16R2T5K3JgN9DNYoaePfwfrHjhqePl/mfD+7+0T"), this.addDataEntry("gcp google cloud platform cardproduct",190,110,"Product Card","5ZddT4MwFIZ/DZcujG7ILif7uDIx8cJL09ADNBZKSlXw19vS4iCwOJ0at3VZ1r49p5T3oTvBQWFWbQUu0ltOgDlo7aBQcC5NL6tCYMzxXEoctHI8z1Vfx9vsmZ02s26BBeTykATPJLxg9gxGMUIpa2YFgssUdLjroJtUZmqPq6nqllLwJwg546IJRKRpaiamjEU7PW6a0hOBCVUba3NynoNeKMWEv/ZWfaBEplaxOwQhodp7l41kb3ELPAMpahXyatfREQvjhJsCTVKbNp8bDZdmnHyk7jxTHWvbuIXoCAtTXOiQrEr0EzBJomIS8ax4ltD+PkKe0MYm7WrH7RkKrjerEVf1nB+g9XLAyPqtfJNf8db71FsUTPxFt/lDq9FsYs0WwLCkL9C74BgBe807TtVWPLfdoeVY94ftAjyOS5ADgB8bP4jpbMB0mWNWSxqVSr7B0RPkZIBZmSg1KJ7Le/qmxSmy4y6cpikdM5rkSmMQ6zRNgUaYLa2cUULYD/Kyfrkthu7ZQCNnw/5zHIvL7+O68n6D13zAKzTHR4lrc4C+Bytw9efiYP0oHP+8a0zdLyV/UXKuz73k+JdXcoJTLjl7eJ1zyVmcbMn5n7COgaOGu1cmE959o3oH"), this.addDataEntry("gcp google cloud platform cardexpanded product",190,80,"Expanded Product Card","5ZZdb4MgFIZ/jbdGpbXusrMf2UWTJbvY5ULkKGQIBunW7tcPBPsR26zZ5s1G0xRezkF8Xjw1QHm9Wyvc0I0kwAO0DFCupNSuV+9y4DxIIkYCtAiSJDLfIFldmY272ajBCoS+JSFxCW+Yb8EpTmj1nnuB4JaCDY8CdE91bfa4iE231Uq+Qi65VF0gIl0zMyXjvDjqZdeMXilMmNlYnyOkALsQxUS+n636zIimXvE7BKVhd/UuO8nf4hpkDVrtTci7X8dG3DkSEQVWUZ+WeQ23blwdUo/MTMdju4wQ/QAhxY0NqXeVPQFhVTRhIetmq6H/fQFRsQ6TpXpCe4Ky2WpxgaqdSzO0nA888rxvApp8CRRlYXp32tIhXzQJp05VwLFmb3B2wUvY/TUfJTNbSaJ+h96o/fmwX0CWZQt64Nph4zcZORkYeY91QY30qGQBbctENbDWMNTWHCn0E/uwYoz8+NSQrhkdc1YJo3EobZo1gRWYz71cM0L4L3oUowuH3peEn1qSnluSjeDIdOBI7p4KIy7dc/E9P7LIfv60H6MYkn5d6/qaxl3Vuv4vMSbSeBSkkzGQzgZIN1uuWcPtIX8QrcbC1J5bznnyL+vO9BdMMcPjK5cLP30j+wQ="), @@ -6824,33 +6829,33 @@ k.setAttribute("in","blur");k.setAttribute("dx",this.svgShadowSize);k.setAttribu d.createElement("feComposite");k.setAttribute("in","offsetColor");k.setAttribute("in2","offsetBlur");k.setAttribute("operator","in");k.setAttribute("result","offsetBlur");g.appendChild(k);k=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"feBlend"):d.createElement("feBlend");k.setAttribute("in","SourceGraphic");k.setAttribute("in2","offsetBlur");g.appendChild(k);k=a.getElementsByTagName("defs");0==k.length?(d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"), null!=a.firstChild?a.insertBefore(d,a.firstChild):a.appendChild(d)):d=k[0];d.appendChild(g);c||((b||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return g};Graph.prototype.setShadowVisible=function(a,b){mxClient.IS_SVG&&(b=null!=b?b:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter", "url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),b&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),b,c=0;do b=this.model.getChildAt(this.model.root,c);while(c++<a&&"1"==mxUtils.getValue(this.getCellStyle(b),"locked","0"));null!=b&&this.setDefaultParent(b)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"]; -mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5= -[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]= -[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]= -[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap= -[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js", -STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors= -[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var p=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,g,k,e,n,f,h){if(null!=c&&null==mxMarker.markers[c]){var t=this.getPackageForType(c);null!=t&&mxStencilRegistry.getStencil(t)}return p.apply(this,arguments)};PrintDialog.prototype.create=function(a,b){function c(){p.value=Math.max(1, -Math.min(n,Math.max(parseInt(p.value),parseInt(u.value))));u.value=Math.max(1,Math.min(n,Math.min(parseInt(p.value),parseInt(u.value))))}function d(b){function c(b,c,g){var k=b.getGraphBounds(),e=0,n=0,f=X.get(),t=1/b.pageScale,h=y.checked;if(h)var t=parseInt(R.value),q=parseInt(U.value),t=Math.min(f.height*q/(k.height/b.view.scale),f.width*t/(k.width/b.view.scale));else t=parseInt(x.value)/(100*b.pageScale),isNaN(t)&&(d=1/b.pageScale,x.value="100 %");f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width* -d);f.height=Math.ceil(f.height*d);t*=d;!h&&b.pageVisible?(k=b.getPageLayout(),e-=k.x*f.width,n-=k.y*f.height):h=!0;if(null==c){c=PrintDialog.createPrintPreview(b,t,f,0,e,n,h);c.pageSelector=!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var u=c.writeHead;c.writeHead=function(b){u.apply(this,arguments);null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss),b.writeln("</style>"))};if("undefined"!==typeof MathJax){var l=c.renderPage;c.renderPage= -function(a,b,c,d,g,k){var e=l.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}c.open(null,null,g,!0)}else{f=b.background;if(null==f||""==f||f==mxConstants.NONE)f="#ffffff";c.backgroundColor=f;c.autoOrigin=h;c.appendGraph(b,t,e,n,g,!0)}return c}var d=parseInt(P.value)/100;isNaN(d)&&(d=1,P.value="100 %");var d=.75*d,k=u.value,e=p.value,n=!q.checked,t=null;n&&(n=k==f&&e==f);if(!n&&null!=a.pages&&a.pages.length){var h=0,n=a.pages.length-1;q.checked|| -(h=parseInt(k)-1,n=parseInt(e)-1);for(var l=h;l<=n;l++){var m=a.pages[l],k=m==a.currentPage?g:null;if(null==k){var k=a.createTemporaryGraph(g.getStylesheet()),e=!0,h=!1,z=null,w=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(e=m.viewState.pageVisible,h=m.viewState.mathEnabled,z=m.viewState.background,w=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&&(h="0"!=m.mapping.diagramMap.get("mathEnabled"),z=m.mapping.diagramMap.get("background"), -w=m.mapping.diagramMap.get("backgroundImage"),w=null!=w&&0<w.length?JSON.parse(w):null);k.background=z;k.backgroundImage=null!=w?new mxImage(w.src,w.width,w.height):null;k.pageVisible=e;k.mathEnabled=h;var A=k.getGlobalVariable;k.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?l+1:A.apply(this,arguments)};document.body.appendChild(k.container);a.updatePageRoot(m);k.model.setRoot(m.root)}t=c(k,t,l!=n);k!=g&&k.container.parentNode.removeChild(k.container)}}else t=c(g);t.mathEnabled&& -(n=t.wnd.document,n.writeln('<script type="text/x-mathjax-config">'),n.writeln("MathJax.Hub.Config({"),n.writeln('messageStyle: "none",'),n.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),n.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),n.writeln("TeX: {"),n.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),n.writeln("},"),n.writeln("tex2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("},"), -n.writeln("asciimath2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("}"),n.writeln("});"),b&&(n.writeln("MathJax.Hub.Queue(function () {"),n.writeln("window.print();"),n.writeln("});")),n.writeln("\x3c/script>"),n.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));t.closeDocument();!t.mathEnabled&&b&&PrintDialog.printPreview(t)}var g=a.editor.graph,k=document.createElement("div"),e=document.createElement("h3"); -e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,b||mxResources.get("print"));k.appendChild(e);var n=1,f=1,h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");h.appendChild(q);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("printAllPages"));h.appendChild(e);mxUtils.br(h);var l=q.cloneNode(!0);q.setAttribute("checked","checked");l.setAttribute("value","range");h.appendChild(l);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");h.appendChild(e);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type","number");u.setAttribute("min","1");u.style.width="50px";h.appendChild(u);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("to"));h.appendChild(e);var p=u.cloneNode(!0);h.appendChild(p);mxEvent.addListener(u,"focus",function(){l.checked=!0});mxEvent.addListener(p,"focus",function(){l.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(p,"change",c);if(null!=a.pages&&(n=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){f=e+1;u.value=f;p.value=f;break}u.setAttribute("max",n);p.setAttribute("max",n);1<n&&k.appendChild(h);var m=document.createElement("div"); -m.style.marginBottom="10px";var w=document.createElement("input");w.style.marginRight="8px";w.setAttribute("value","adjust");w.setAttribute("type","radio");w.setAttribute("name","printZoom");m.appendChild(w);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));m.appendChild(e);var x=document.createElement("input");x.style.cssText="margin:0 8px 0 8px;";x.setAttribute("value","100 %");x.style.width="50px";m.appendChild(x);mxEvent.addListener(x,"focus",function(){w.checked=!0}); -k.appendChild(m);var h=h.cloneNode(!1),y=w.cloneNode(!0);y.setAttribute("value","fit");w.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(y);h.appendChild(e);m=document.createElement("table");m.style.display="inline-block";var N=document.createElement("tbody"),M=document.createElement("tr"),W=M.cloneNode(!0),I=document.createElement("td"),Q=I.cloneNode(!0),Z=I.cloneNode(!0),J=I.cloneNode(!0), -V=I.cloneNode(!0),T=I.cloneNode(!0);I.style.textAlign="right";J.style.textAlign="right";mxUtils.write(I,mxResources.get("fitTo"));var R=document.createElement("input");R.style.cssText="margin:0 8px 0 8px;";R.setAttribute("value","1");R.setAttribute("min","1");R.setAttribute("type","number");R.style.width="40px";Q.appendChild(R);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));Z.appendChild(e);mxUtils.write(J,mxResources.get("fitToBy"));var U=R.cloneNode(!0);V.appendChild(U); -mxEvent.addListener(R,"focus",function(){y.checked=!0});mxEvent.addListener(U,"focus",function(){y.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));T.appendChild(e);M.appendChild(I);M.appendChild(Q);M.appendChild(Z);W.appendChild(J);W.appendChild(V);W.appendChild(T);N.appendChild(M);N.appendChild(W);m.appendChild(N);h.appendChild(m);k.appendChild(h);h=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom= -"12px";mxUtils.write(e,mxResources.get("paperSize"));h.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var X=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);h.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));h.appendChild(e);var P=document.createElement("input");P.style.cssText="margin:0 8px 0 8px;";P.setAttribute("value","100 %");P.style.width="60px";h.appendChild(P); -k.appendChild(h);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&e.appendChild(h);a.isOffline()||(m=mxUtils.button(mxResources.get("help"),function(){g.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),m.className="geBtn",e.appendChild(m));PrintDialog.previewEnabled&&(m=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog(); -d(!1)}),m.className="geBtn",e.appendChild(m));m=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});m.className="geBtn gePrimaryBtn";e.appendChild(m);a.editor.cancelFirst||e.appendChild(h);k.appendChild(e);this.container=k};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background= -this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!= -this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); -(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.5.0";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>'; +mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral= +[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android= +[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]= +[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan= +[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml= +[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves= +[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var b=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?b="mxgraph.er":"sysML"==a.substring(0,5)&&(b="mxgraph.sysml"));return b};var p=mxMarker.createMarker;mxMarker.createMarker=function(a,b,c,d,g,k,e,n,f,h){if(null!=c&&null==mxMarker.markers[c]){var t=this.getPackageForType(c);null!=t&&mxStencilRegistry.getStencil(t)}return p.apply(this,arguments)}; +PrintDialog.prototype.create=function(a,b){function c(){p.value=Math.max(1,Math.min(n,Math.max(parseInt(p.value),parseInt(u.value))));u.value=Math.max(1,Math.min(n,Math.min(parseInt(p.value),parseInt(u.value))))}function d(b){function c(b,c,g){var k=b.getGraphBounds(),e=0,n=0,f=X.get(),t=1/b.pageScale,h=y.checked;if(h)var t=parseInt(R.value),q=parseInt(U.value),t=Math.min(f.height*q/(k.height/b.view.scale),f.width*t/(k.width/b.view.scale));else t=parseInt(x.value)/(100*b.pageScale),isNaN(t)&&(d=1/ +b.pageScale,x.value="100 %");f=mxRectangle.fromRectangle(f);f.width=Math.ceil(f.width*d);f.height=Math.ceil(f.height*d);t*=d;!h&&b.pageVisible?(k=b.getPageLayout(),e-=k.x*f.width,n-=k.y*f.height):h=!0;if(null==c){c=PrintDialog.createPrintPreview(b,t,f,0,e,n,h);c.pageSelector=!1;c.mathEnabled=!1;b=a.getCurrentFile();null!=b&&(c.title=b.getTitle());var u=c.writeHead;c.writeHead=function(b){u.apply(this,arguments);null!=a.editor.fontCss&&(b.writeln('<style type="text/css">'),b.writeln(a.editor.fontCss), +b.writeln("</style>"))};if("undefined"!==typeof MathJax){var l=c.renderPage;c.renderPage=function(a,b,c,d,g,k){var e=l.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}c.open(null,null,g,!0)}else{f=b.background;if(null==f||""==f||f==mxConstants.NONE)f="#ffffff";c.backgroundColor=f;c.autoOrigin=h;c.appendGraph(b,t,e,n,g,!0)}return c}var d=parseInt(P.value)/100;isNaN(d)&&(d=1,P.value="100 %");var d=.75*d,k=u.value,e=p.value,n=!q.checked,t=null; +n&&(n=k==f&&e==f);if(!n&&null!=a.pages&&a.pages.length){var h=0,n=a.pages.length-1;q.checked||(h=parseInt(k)-1,n=parseInt(e)-1);for(var l=h;l<=n;l++){var m=a.pages[l],k=m==a.currentPage?g:null;if(null==k){var k=a.createTemporaryGraph(g.getStylesheet()),e=!0,h=!1,z=null,w=null;null==m.viewState&&null==m.mapping&&null==m.root&&a.updatePageRoot(m);null!=m.viewState?(e=m.viewState.pageVisible,h=m.viewState.mathEnabled,z=m.viewState.background,w=m.viewState.backgroundImage):null!=m.mapping&&null!=m.mapping.diagramMap&& +(h="0"!=m.mapping.diagramMap.get("mathEnabled"),z=m.mapping.diagramMap.get("background"),w=m.mapping.diagramMap.get("backgroundImage"),w=null!=w&&0<w.length?JSON.parse(w):null);k.background=z;k.backgroundImage=null!=w?new mxImage(w.src,w.width,w.height):null;k.pageVisible=e;k.mathEnabled=h;var A=k.getGlobalVariable;k.getGlobalVariable=function(a){return"page"==a?m.getName():"pagenumber"==a?l+1:A.apply(this,arguments)};document.body.appendChild(k.container);a.updatePageRoot(m);k.model.setRoot(m.root)}t= +c(k,t,l!=n);k!=g&&k.container.parentNode.removeChild(k.container)}}else t=c(g);t.mathEnabled&&(n=t.wnd.document,n.writeln('<script type="text/x-mathjax-config">'),n.writeln("MathJax.Hub.Config({"),n.writeln('messageStyle: "none",'),n.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),n.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),n.writeln("TeX: {"),n.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'), +n.writeln("},"),n.writeln("tex2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("},"),n.writeln("asciimath2jax: {"),n.writeln('\tignoreClass: "geDisableMathJax"'),n.writeln("}"),n.writeln("});"),b&&(n.writeln("MathJax.Hub.Queue(function () {"),n.writeln("window.print();"),n.writeln("});")),n.writeln("\x3c/script>"),n.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));t.closeDocument();!t.mathEnabled&&b&&PrintDialog.printPreview(t)} +var g=a.editor.graph,k=document.createElement("div"),e=document.createElement("h3");e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,b||mxResources.get("print"));k.appendChild(e);var n=1,f=1,h=document.createElement("div");h.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio"); +q.setAttribute("name","pages-printdialog");h.appendChild(q);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));h.appendChild(e);mxUtils.br(h);var l=q.cloneNode(!0);q.setAttribute("checked","checked");l.setAttribute("value","range");h.appendChild(l);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");h.appendChild(e);var u=document.createElement("input");u.style.cssText="margin:0 8px 0 8px;";u.setAttribute("value","1");u.setAttribute("type", +"number");u.setAttribute("min","1");u.style.width="50px";h.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));h.appendChild(e);var p=u.cloneNode(!0);h.appendChild(p);mxEvent.addListener(u,"focus",function(){l.checked=!0});mxEvent.addListener(p,"focus",function(){l.checked=!0});mxEvent.addListener(u,"change",c);mxEvent.addListener(p,"change",c);if(null!=a.pages&&(n=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){f=e+ +1;u.value=f;p.value=f;break}u.setAttribute("max",n);p.setAttribute("max",n);1<n&&k.appendChild(h);var m=document.createElement("div");m.style.marginBottom="10px";var w=document.createElement("input");w.style.marginRight="8px";w.setAttribute("value","adjust");w.setAttribute("type","radio");w.setAttribute("name","printZoom");m.appendChild(w);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));m.appendChild(e);var x=document.createElement("input");x.style.cssText="margin:0 8px 0 8px;"; +x.setAttribute("value","100 %");x.style.width="50px";m.appendChild(x);mxEvent.addListener(x,"focus",function(){w.checked=!0});k.appendChild(m);var h=h.cloneNode(!1),y=w.cloneNode(!0);y.setAttribute("value","fit");w.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(y);h.appendChild(e);m=document.createElement("table");m.style.display="inline-block";var N=document.createElement("tbody"), +M=document.createElement("tr"),W=M.cloneNode(!0),I=document.createElement("td"),Q=I.cloneNode(!0),Z=I.cloneNode(!0),J=I.cloneNode(!0),V=I.cloneNode(!0),T=I.cloneNode(!0);I.style.textAlign="right";J.style.textAlign="right";mxUtils.write(I,mxResources.get("fitTo"));var R=document.createElement("input");R.style.cssText="margin:0 8px 0 8px;";R.setAttribute("value","1");R.setAttribute("min","1");R.setAttribute("type","number");R.style.width="40px";Q.appendChild(R);e=document.createElement("span");mxUtils.write(e, +mxResources.get("fitToSheetsAcross"));Z.appendChild(e);mxUtils.write(J,mxResources.get("fitToBy"));var U=R.cloneNode(!0);V.appendChild(U);mxEvent.addListener(R,"focus",function(){y.checked=!0});mxEvent.addListener(U,"focus",function(){y.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));T.appendChild(e);M.appendChild(I);M.appendChild(Q);M.appendChild(Z);W.appendChild(J);W.appendChild(V);W.appendChild(T);N.appendChild(M);N.appendChild(W);m.appendChild(N); +h.appendChild(m);k.appendChild(h);h=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));h.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var X=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);h.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));h.appendChild(e); +var P=document.createElement("input");P.style.cssText="margin:0 8px 0 8px;";P.setAttribute("value","100 %");P.style.width="60px";h.appendChild(P);k.appendChild(h);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";h=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});h.className="geBtn";a.editor.cancelFirst&&e.appendChild(h);a.isOffline()||(m=mxUtils.button(mxResources.get("help"),function(){g.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), +m.className="geBtn",e.appendChild(m));PrintDialog.previewEnabled&&(m=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();d(!1)}),m.className="geBtn",e.appendChild(m));m=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();d(!0)});m.className="geBtn gePrimaryBtn";e.appendChild(m);a.editor.cancelFirst||e.appendChild(h);k.appendChild(e);this.container=k};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== +this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&& +this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); +(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,c){c.ui=a.ui;return d};a.afterDecode=function(a,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.5.2";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>'; EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= !1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(u){}try{var b=document.createElement("canvas"),c=new Image;c.onload=function(){try{b.getContext("2d").drawImage(c,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&& diff --git a/src/main/webapp/js/atlas-viewer.min.js b/src/main/webapp/js/atlas-viewer.min.js index be02c5e68..96a85ed84 100644 --- a/src/main/webapp/js/atlas-viewer.min.js +++ b/src/main/webapp/js/atlas-viewer.min.js @@ -2675,32 +2675,32 @@ g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribu c.createElement("feComposite");g.setAttribute("in","offsetColor");g.setAttribute("in2","offsetBlur");g.setAttribute("operator","in");g.setAttribute("result","offsetBlur");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feBlend"):c.createElement("feBlend");g.setAttribute("in","SourceGraphic");g.setAttribute("in2","offsetBlur");f.appendChild(g);g=a.getElementsByTagName("defs");0==g.length?(c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"), null!=a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)):c=g[0];c.appendChild(f);b||((d||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return f};Graph.prototype.setShadowVisible=function(a,d){mxClient.IS_SVG&&(d=null!=d?d:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter", "url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),d&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),d,b=0;do d=this.model.getChildAt(this.model.root,b);while(b++<a&&"1"==mxUtils.getValue(this.getCellStyle(d),"locked","0"));null!=d&&this.setDefaultParent(d)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"]; -mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5= -[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]= -[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]= -[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap= -[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js", -STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors= -[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,m,k){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return h.apply(this,arguments)};PrintDialog.prototype.create=function(a,d){function b(){l.value=Math.max(1, -Math.min(h,Math.max(parseInt(l.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(l.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=Y.get(),m=1/d.pageScale,k=t.checked;if(k)var m=parseInt(T.value),r=parseInt(V.value),m=Math.min(p.height*r/(g.height/d.view.scale),p.width*m/(g.width/d.view.scale));else m=parseInt(q.value)/(100*d.pageScale),isNaN(m)&&(c=1/d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width* -c);p.height=Math.ceil(p.height*c);m*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,m,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss),d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage= -function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,m,e,h,f,!0)}return b}var c=parseInt(M.value)/100;isNaN(c)&&(c=1,M.value="100 %");var c=.75*c,g=w.value,e=l.value,h=!k.checked,m=null;h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked|| -(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var x=a.pages[u],g=x==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,n=null,v=null;null==x.viewState&&null==x.mapping&&null==x.root&&a.updatePageRoot(x);null!=x.viewState?(e=x.viewState.pageVisible,r=x.viewState.mathEnabled,n=x.viewState.background,v=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(r="0"!=x.mapping.diagramMap.get("mathEnabled"),n=x.mapping.diagramMap.get("background"), -v=x.mapping.diagramMap.get("backgroundImage"),v=null!=v&&0<v.length?JSON.parse(v):null);g.background=n;g.backgroundImage=null!=v?new mxImage(v.src,v.width,v.height):null;g.pageVisible=e;g.mathEnabled=r;var A=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?u+1:A.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(x);g.model.setRoot(x.root)}m=b(g,m,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else m=b(f);m.mathEnabled&& -(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"), -h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&d&&PrintDialog.printPreview(m)}var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3"); -e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio");k.setAttribute("name","pages-printdialog");m.appendChild(k);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("printAllPages"));m.appendChild(e);mxUtils.br(m);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");m.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");m.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";m.appendChild(w);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("to"));m.appendChild(e);var l=w.cloneNode(!0);m.appendChild(l);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+1;w.value=p;l.value=p;break}w.setAttribute("max",h);l.setAttribute("max",h);1<h&&g.appendChild(m);var n=document.createElement("div"); -n.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");n.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));n.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";n.appendChild(q);mxEvent.addListener(q,"focus",function(){v.checked=!0}); -g.appendChild(n);var m=m.cloneNode(!1),t=v.cloneNode(!0);t.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);m.appendChild(e);n=document.createElement("table");n.style.display="inline-block";var G=document.createElement("tbody"),K=document.createElement("tr"),S=K.cloneNode(!0),J=document.createElement("td"),N=J.cloneNode(!0),U=J.cloneNode(!0),D=J.cloneNode(!0), -W=J.cloneNode(!0),O=J.cloneNode(!0);J.style.textAlign="right";D.style.textAlign="right";mxUtils.write(J,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";N.appendChild(T);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));U.appendChild(e);mxUtils.write(D,mxResources.get("fitToBy"));var V=T.cloneNode(!0);W.appendChild(V); -mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(V,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));O.appendChild(e);K.appendChild(J);K.appendChild(N);K.appendChild(U);S.appendChild(D);S.appendChild(W);S.appendChild(O);G.appendChild(K);G.appendChild(S);n.appendChild(G);m.appendChild(n);g.appendChild(m);m=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom= -"12px";mxUtils.write(e,mxResources.get("paperSize"));m.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Y=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));m.appendChild(e);var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","100 %");M.style.width="60px";m.appendChild(M); -g.appendChild(m);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&e.appendChild(m);a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),n.className="geBtn",e.appendChild(n));PrintDialog.previewEnabled&&(n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog(); -c(!1)}),n.className="geBtn",e.appendChild(n));n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";e.appendChild(n);a.editor.cancelFirst||e.appendChild(m);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background= -this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!= -this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); +mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral= +[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android= +[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]= +[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan= +[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml= +[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves= +[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,m,k){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return h.apply(this,arguments)}; +PrintDialog.prototype.create=function(a,d){function b(){l.value=Math.max(1,Math.min(h,Math.max(parseInt(l.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(l.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=Y.get(),m=1/d.pageScale,k=t.checked;if(k)var m=parseInt(T.value),r=parseInt(V.value),m=Math.min(p.height*r/(g.height/d.view.scale),p.width*m/(g.width/d.view.scale));else m=parseInt(q.value)/(100*d.pageScale),isNaN(m)&&(c=1/ +d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*c);p.height=Math.ceil(p.height*c);m*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,m,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss), +d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage=function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,m,e,h,f,!0)}return b}var c=parseInt(M.value)/100;isNaN(c)&&(c=1,M.value="100 %");var c=.75*c,g=w.value,e=l.value,h=!k.checked,m=null; +h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked||(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var x=a.pages[u],g=x==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,n=null,v=null;null==x.viewState&&null==x.mapping&&null==x.root&&a.updatePageRoot(x);null!=x.viewState?(e=x.viewState.pageVisible,r=x.viewState.mathEnabled,n=x.viewState.background,v=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&& +(r="0"!=x.mapping.diagramMap.get("mathEnabled"),n=x.mapping.diagramMap.get("background"),v=x.mapping.diagramMap.get("backgroundImage"),v=null!=v&&0<v.length?JSON.parse(v):null);g.background=n;g.backgroundImage=null!=v?new mxImage(v.src,v.width,v.height):null;g.pageVisible=e;g.mathEnabled=r;var A=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?u+1:A.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(x);g.model.setRoot(x.root)}m= +b(g,m,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else m=b(f);m.mathEnabled&&(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'), +h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"),h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&d&&PrintDialog.printPreview(m)} +var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3");e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio"); +k.setAttribute("name","pages-printdialog");m.appendChild(k);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));m.appendChild(e);mxUtils.br(m);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");m.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");m.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type", +"number");w.setAttribute("min","1");w.style.width="50px";m.appendChild(w);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));m.appendChild(e);var l=w.cloneNode(!0);m.appendChild(l);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+ +1;w.value=p;l.value=p;break}w.setAttribute("max",h);l.setAttribute("max",h);1<h&&g.appendChild(m);var n=document.createElement("div");n.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");n.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));n.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;"; +q.setAttribute("value","100 %");q.style.width="50px";n.appendChild(q);mxEvent.addListener(q,"focus",function(){v.checked=!0});g.appendChild(n);var m=m.cloneNode(!1),t=v.cloneNode(!0);t.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);m.appendChild(e);n=document.createElement("table");n.style.display="inline-block";var G=document.createElement("tbody"), +K=document.createElement("tr"),S=K.cloneNode(!0),J=document.createElement("td"),N=J.cloneNode(!0),U=J.cloneNode(!0),D=J.cloneNode(!0),W=J.cloneNode(!0),O=J.cloneNode(!0);J.style.textAlign="right";D.style.textAlign="right";mxUtils.write(J,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";N.appendChild(T);e=document.createElement("span");mxUtils.write(e, +mxResources.get("fitToSheetsAcross"));U.appendChild(e);mxUtils.write(D,mxResources.get("fitToBy"));var V=T.cloneNode(!0);W.appendChild(V);mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(V,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));O.appendChild(e);K.appendChild(J);K.appendChild(N);K.appendChild(U);S.appendChild(D);S.appendChild(W);S.appendChild(O);G.appendChild(K);G.appendChild(S);n.appendChild(G); +m.appendChild(n);g.appendChild(m);m=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));m.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Y=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));m.appendChild(e); +var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","100 %");M.style.width="60px";m.appendChild(M);g.appendChild(m);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&e.appendChild(m);a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), +n.className="geBtn",e.appendChild(n));PrintDialog.previewEnabled&&(n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)}),n.className="geBtn",e.appendChild(n));n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";e.appendChild(n);a.editor.cancelFirst||e.appendChild(m);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== +this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&& +this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); (function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>'; EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= diff --git a/src/main/webapp/js/atlas.min.js b/src/main/webapp/js/atlas.min.js index f785234ff..156da7d88 100644 --- a/src/main/webapp/js/atlas.min.js +++ b/src/main/webapp/js/atlas.min.js @@ -3879,15 +3879,20 @@ this.createVertexTemplateEntry(a+"unidentified_code_object;",50,42.5,"","Unident 120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;bottom=0;right=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry("shape=partialRectangle;whiteSpace=wrap;html=1;top=0;left=0;fillColor=none;",120,60,"","Partial Rectangle"),this.createVertexTemplateEntry(a+"4_point_star_2;dx=0.8;",100,100,"","4 Point Star",null,null,this.getTagsForStencil("mxgraph.basic","4_point_star","").join(" ")),this.createVertexTemplateEntry(a+ "6_point_star",100,90,"","6 Point Star",null,null,this.getTagsForStencil("mxgraph.basic","6_point_star","").join(" ")),this.createVertexTemplateEntry(a+"8_point_star",100,100,"","8 Point Star",null,null,this.getTagsForStencil("mxgraph.basic","8_point_star","").join(" ")),this.createVertexTemplateEntry(a+"banner",100,50,"","Banner",null,null,this.getTagsForStencil("mxgraph.basic","banner","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.cloud_callout", 90,60,"","Cloud Callout",null,null,this.getTagsForStencil("mxgraph.basic","cloud_callout","").join(" ")),this.createVertexTemplateEntry(a+"cone",100,100,"","Cone",null,null,this.getTagsForStencil("mxgraph.basic","cone","").join(" ")),this.createVertexTemplateEntry(a+"cone2;dx=0.5;dy=0.9;",100,100,"","Cone (adjustable)",null,null,this.getTagsForStencil("mxgraph.basic","cone","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.document",100,100,"", -"Document",null,null,this.getTagsForStencil("mxgraph.basic","document","").join(" ")),this.createVertexTemplateEntry(a+"drop",70,100,"","Drop",null,null,this.getTagsForStencil("mxgraph.basic","drop","").join(" ")),this.createVertexTemplateEntry(a+"flash",60,100,"","Flash",null,null,this.getTagsForStencil("mxgraph.basic","flash","").join(" ")),this.createVertexTemplateEntry(a+"half_circle",100,50,"","Half Circle",null,null,this.getTagsForStencil("mxgraph.basic","half_circle","").join(" ")),this.createVertexTemplateEntry(a+ -"heart",100,100,"","Heart",null,null,this.getTagsForStencil("mxgraph.basic","heart","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.isocube;isoAngle=15;",100,100,"","Isometric Cube",null,null,this.getTagsForStencil("mxgraph.basic","isometric cube","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.loud_callout",100,60,"","Loud Callout",null,null,this.getTagsForStencil("mxgraph.basic","loud_callout", -"").join(" ")),this.createVertexTemplateEntry(a+"moon",75,100,"","Moon",null,null,this.getTagsForStencil("mxgraph.basic","moon","").join(" ")),this.createVertexTemplateEntry(a+"no_symbol",100,100,"","No Symbol",null,null,this.getTagsForStencil("mxgraph.basic","no_symbol","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.octagon2;align=center;verticalAlign=middle;dx=15;",100,100,"","Octagon",null,null,this.getTagsForStencil("mxgraph.basic","octagon", -"").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,70,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry(a+"acute_triangle;dx=0.5;",100,70,"","Acute Triangle",null,null,this.getTagsForStencil("mxgraph.basic","acute_triangle","").join(" ")),this.createVertexTemplateEntry(a+"obtuse_triangle;dx=0.25;",100,70,"","Obtuse Triangle",null,null,this.getTagsForStencil("mxgraph.basic","obtuse_triangle", -"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pointed_oval", -50,100,"","Pointed Oval",null,null,this.getTagsForStencil("mxgraph.basic","pointed oval","").join(" ")),this.createVertexTemplateEntry(a+"pyramid;dx1=0.4;dx2=0.6;dy1=0.9;dy2=0.8;",100,100,"","Pyramid",null,null,this.getTagsForStencil("mxgraph.basic","pyramid","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout", -"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley",null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic", -"star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;",100,60,"","Wave",null,null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic", -"x","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="), +"Document",null,null,this.getTagsForStencil("mxgraph.basic","document","").join(" ")),this.createVertexTemplateEntry(a+"donut;dx=25;",100,100,"","Donut",null,null,this.getTagsForStencil("mxgraph.basic","donut","").join(" ")),this.createVertexTemplateEntry(a+"drop",70,100,"","Drop",null,null,this.getTagsForStencil("mxgraph.basic","drop","").join(" ")),this.createVertexTemplateEntry(a+"flash",60,100,"","Flash",null,null,this.getTagsForStencil("mxgraph.basic","flash","").join(" ")),this.createVertexTemplateEntry(a+ +"half_circle",100,50,"","Half Circle",null,null,this.getTagsForStencil("mxgraph.basic","half_circle","").join(" ")),this.createVertexTemplateEntry(a+"heart",100,100,"","Heart",null,null,this.getTagsForStencil("mxgraph.basic","heart","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.isocube;isoAngle=15;",100,100,"","Isometric Cube",null,null,this.getTagsForStencil("mxgraph.basic","isometric cube","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.loud_callout", +100,60,"","Loud Callout",null,null,this.getTagsForStencil("mxgraph.basic","loud_callout","").join(" ")),this.createVertexTemplateEntry(a+"moon",75,100,"","Moon",null,null,this.getTagsForStencil("mxgraph.basic","moon","").join(" ")),this.createVertexTemplateEntry(a+"no_symbol",100,100,"","No Symbol",null,null,this.getTagsForStencil("mxgraph.basic","no_symbol","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.octagon2;align=center;verticalAlign=middle;dx=15;", +100,100,"","Octagon",null,null,this.getTagsForStencil("mxgraph.basic","octagon","").join(" ")),this.createVertexTemplateEntry(a+"orthogonal_triangle",100,70,"","Orthogonal Triangle",null,null,this.getTagsForStencil("mxgraph.basic","orthogonal_triangle","").join(" ")),this.createVertexTemplateEntry(a+"acute_triangle;dx=0.5;",100,70,"","Acute Triangle",null,null,this.getTagsForStencil("mxgraph.basic","acute_triangle","").join(" ")),this.createVertexTemplateEntry(a+"obtuse_triangle;dx=0.25;",100,70, +"","Obtuse Triangle",null,null,this.getTagsForStencil("mxgraph.basic","obtuse_triangle","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.oval_callout",100,60,"","Oval Callout",null,null,this.getTagsForStencil("mxgraph.basic","oval_callout","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pentagon",100,90,"","Pentagon",null,null,this.getTagsForStencil("mxgraph.basic","pentagon","").join(" ")), +this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.pointed_oval",50,100,"","Pointed Oval",null,null,this.getTagsForStencil("mxgraph.basic","pointed oval","").join(" ")),this.createVertexTemplateEntry(a+"pyramid;dx1=0.4;dx2=0.6;dy1=0.9;dy2=0.8;",100,100,"","Pyramid",null,null,this.getTagsForStencil("mxgraph.basic","pyramid","").join(" ")),this.createVertexTemplateEntry(a+"diag_snip_rect;dx=6;",100,60,"","Diagonal Snip Rectangle",null,null,this.getTagsForStencil("mxgraph.basic", +"diag_snip_rect","").join(" ")),this.createVertexTemplateEntry(a+"diag_round_rect;dx=6;",100,60,"","Diagonal Rounded Rectangle",null,null,this.getTagsForStencil("mxgraph.basic","diag_round_rect","").join(" ")),this.createVertexTemplateEntry(a+"corner_round_rect;dx=6;",100,60,"","Corner Rounded Rectangle",null,null,this.getTagsForStencil("mxgraph.basic","corner_round_rect","").join(" ")),this.createVertexTemplateEntry(a+"plaque;dx=6;",100,60,"","Plaque",null,null,this.getTagsForStencil("mxgraph.basic", +"plaque","").join(" ")),this.createVertexTemplateEntry(a+"frame;dx=10;",100,60,"","Frame",null,null,this.getTagsForStencil("mxgraph.basic","frame","").join(" ")),this.createVertexTemplateEntry(a+"rounded_frame;dx=10;",100,60,"","Rounded Frame",null,null,this.getTagsForStencil("mxgraph.basic","rounded_frame","").join(" ")),this.createVertexTemplateEntry(a+"plaque_frame;dx=10;",100,60,"","Plaque Frame",null,null,this.getTagsForStencil("mxgraph.basic","plaque_frame","").join(" ")),this.createVertexTemplateEntry(a+ +"frame_corner;dx=10;",100,60,"","Frame Corner",null,null,this.getTagsForStencil("mxgraph.basic","frame_corner","").join(" ")),this.createVertexTemplateEntry(a+"diag_stripe;dx=10;",100,60,"","Diagonal Stripe",null,null,this.getTagsForStencil("mxgraph.basic","diag_stripe","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.rectCallout;dx=30;dy=15;boundedLbl=1;",100,60,"","Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout", +"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;",100,60,"","Rounded Rectangular Callout",null,null,this.getTagsForStencil("mxgraph.basic","rectangular_callout","").join(" ")),this.createVertexTemplateEntry(a+"layered_rect;dx=10;",100,60,"","Layered Rectangle",null,null,this.getTagsForStencil("mxgraph.basic","layered_rect","").join(" ")),this.createVertexTemplateEntry(a+"smiley",100,100,"","Smiley", +null,null,this.getTagsForStencil("mxgraph.basic","smiley","").join(" ")),this.createVertexTemplateEntry(a+"star",100,95,"","Star",null,null,this.getTagsForStencil("mxgraph.basic","star","").join(" ")),this.createVertexTemplateEntry(a+"sun",100,100,"","Sun",null,null,this.getTagsForStencil("mxgraph.basic","sun","").join(" ")),this.createVertexTemplateEntry(a+"tick",85,100,"","Tick",null,null,this.getTagsForStencil("mxgraph.basic","tick","").join(" ")),this.createVertexTemplateEntry(a+"wave2;dy=0.3;", +100,60,"","Wave",null,null,this.getTagsForStencil("mxgraph.basic","wave","").join(" ")),this.createVertexTemplateEntry("labelPosition=center;verticalLabelPosition=middle;html=1;strokeWidth=2;shape=mxgraph.basic.button;dx=10;",100,60,"Button","Button",null,null,this.getTagsForStencil("mxgraph.basic","button","").join(" ")),this.createVertexTemplateEntry("labelPosition=center;verticalLabelPosition=middle;html=1;strokeWidth=2;shape=mxgraph.basic.shaded_button;dx=10;fillColor=#E6E6E6;strokeColor=none;", +100,60,"Button","Button (shaded)",null,null,this.getTagsForStencil("mxgraph.basic","button","").join(" ")),this.createVertexTemplateEntry(a+"x",100,100,"","X",null,null,this.getTagsForStencil("mxgraph.basic","x","").join(" ")),this.createVertexTemplateEntry(a+"pie;startAngle=0.2;endAngle=0.9;",100,100,"","Pie",null,null,this.getTagsForStencil("mxgraph.basic","pie","").join(" ")),this.createVertexTemplateEntry(a+"arc;startAngle=0.3;endAngle=0.1;",100,100,"","Arc",null,null,this.getTagsForStencil("mxgraph.basic", +"arc","").join(" ")),this.createVertexTemplateEntry(a+"partConcEllipse;startAngle=0.25;endAngle=0.1;arcWidth=0.5;",100,100,"","Partial Concentric Ellipse",null,null,this.getTagsForStencil("mxgraph.basic","partConcEllipse","").join(" "))])}})();(function(){Sidebar.prototype.addBootstrapPalette=function(){var a=this,e=[this.addDataEntry("bootstrap button bar dark",800,40,"Button Bar (Dark)","5ZhRb5swEMc/DY+NDKaEvIZ2fdm0qpH27gUDVg2HjNuQfvod2EnJnGxRWqJUsRQJn332+ffnbBOPJmX7oFhd/ICUS4/eezRRANo8lW3CpfQCIlKP3nlBQPDnBd8OtPp9K6mZ4pU+xiEwDq9MvnBjMYZGr6U1FLrEsO58j86bgqWwwgrBSsqagqe2gi11179s824tk9+4gkbj40TxJUYyz4SUCUhQ/aA06EvnqBU8801LBRWOMl8VQvNFzZbdkCscBW02UK40bw8utjfZlT5wKLlWa+yyEqkuTI+YGCCk4CIvrFtobawx9Xzr+o4OHyy9/SSpQzKBsmbV+jSgQ16Wyl5U/wcPlR6An/XF2hfirfP1w48wD45gPg7y0EH+yKFGzGd5hUlfDunyF/asL11nJCyq/MmSoGQE9O0u9oESs5GUuHWUiMNPV8HKoOxbG7uSZNkpkpyMP/wnfuuwttvw5NZRY4NtqIYfGZvikmnxynfG2ieRnf8RBIa1nfyGkp3pb+LdESDLGq4diberOEr1yFH9l4AubKiaC931zph+/tTNP98fKQGnjhTh55/kF5eA0ZUnYOyovtAYdKPF8lITcKRk23fYjXXtmLnUuda4q1wZcxq5zKcjMd/sm8O7ngIkd+Jl76syj87J3HeYf4ccDT9f9HVRn9LRqGP1/WvfHAHDPwP+AA=="), this.addDataEntry("bootstrap button bar bright",800,40,"Button Bar (Bright)","5ZdRb5swEMc/DY9FBhNCXkPavmxStUh798IB1gxGxmvIPv0OcBKoSZetpYpUIyT77DP278+dwaFx0TwqVuVfZQLCofcOjZWUuq8VTQxCOD7hiUM3ju8TvB3/4UKv1/WSiiko9TUOfu/wzMQv6C29odYHYQy5LnBZG8+h6zpnidxjg2AjYXUOiWlgT9WOL5qs3Yv7A3dQa6y6Cna4knXKhYilkKqblKZhe7WOWsmfcOwpZYmzrPc517Ct2K6dco+zoM0sFJSG5uJmO5PZ6SPIArQ64JA9T3Tej4hID4TkwLPcuAXGxuq+nZ1cz+iwYuhNk6QWyVgWFSsP/wd0yMtQmUT1d/Cy1APwSVeMfct/t75e8Bbm/hXM50EeWMifQFaI+WNeYdJel3R5gX3VlXYwEuZl9s2QoGQG9M0Y+0CJ1UxKLCwlouDdVTAyKPPWRhOSpATLlZKkXXkL/uBV/MbhYNKwu7DUOGIbquGFvU2BYJo/w2iuKYnM858kx2WdHn5Hyejxd9F4BpmmNWhL4tMurlI9tFT/zmW7bFnWN5r1PjD8vKUdf543UwAuLSmC9z/Jby4Aw08egJGl+lbjomvNd7cagDMF29RhN9dnx8qmDlpjVvlkzGloM1/OxPyYN0fQmdrlruvOnecWU3nOpK6xUC+/r6fsTPCsRJuAVJ8PpC9da+PNeB6Fi3FGstOhRyfUo/+uHjbPf7B9Whv+4P4B"), this.addEntry("bootstrap button group vertical",function(){var d=new mxCell("",new mxGeometry(0,0,100,150),"html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;strokeColor=#dddddd;html=1;whiteSpace=wrap;fillColor=#ffffff;");d.vertex=!0;var b=new mxCell("Edit",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.topButton;rSize=5;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.vertex= !0;d.insert(b);b=new mxCell("Create",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;");b.geometry.relative=!0;b.geometry.offset=new mxPoint(0,30);b.vertex=!0;d.insert(b);var c=new mxCell("Delete",new mxGeometry(0,0,100,30),"strokeColor=inherit;fillColor=inherit;gradientColor=inherit;html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rect;perimeter=none;whiteSpace=wrap;resizeWidth=1;"); @@ -4585,20 +4590,20 @@ function(){var e=new mxCell("",new mxGeometry(20,20,520,100),"shape=ellipse;shad new mxCell("",new mxGeometry(110,0,40,43),a+"office_chair;shadow=0;");g.vertex=!0;var k=new mxCell("",new mxGeometry(110,97,40,43),a+"office_chair;shadow=0;direction=west;");k.vertex=!0;var m=new mxCell("",new mxGeometry(170,0,40,43),a+"office_chair;shadow=0;");m.vertex=!0;var l=new mxCell("",new mxGeometry(170,97,40,43),a+"office_chair;shadow=0;direction=west;");l.vertex=!0;var r=new mxCell("",new mxGeometry(230,0,40,43),a+"office_chair;shadow=0;");r.vertex=!0;var n=new mxCell("",new mxGeometry(230, 97,40,43),a+"office_chair;shadow=0;direction=west;");n.vertex=!0;var p=new mxCell("",new mxGeometry(290,0,40,43),a+"office_chair;shadow=0;");p.vertex=!0;var q=new mxCell("",new mxGeometry(290,97,40,43),a+"office_chair;shadow=0;direction=west;");q.vertex=!0;var w=new mxCell("",new mxGeometry(350,0,40,43),a+"office_chair;shadow=0;");w.vertex=!0;var v=new mxCell("",new mxGeometry(350,97,40,43),a+"office_chair;shadow=0;direction=west;");v.vertex=!0;var y=new mxCell("",new mxGeometry(410,0,40,43),a+"office_chair;shadow=0;"); y.vertex=!0;var x=new mxCell("",new mxGeometry(410,97,40,43),a+"office_chair;shadow=0;direction=west;");x.vertex=!0;var u=new mxCell("",new mxGeometry(470,0,40,43),a+"office_chair;shadow=0;");u.vertex=!0;var t=new mxCell("",new mxGeometry(470,97,40,43),a+"office_chair;shadow=0;direction=west;");t.vertex=!0;return sb.createVertexTemplateFromCells([b,c,h,f,g,k,m,l,r,n,p,q,w,v,y,x,u,t,e],560,140,"Conference table")})];this.addPalette("floorplan",mxResources.get("floorplans"),!1,mxUtils.bind(this,function(a){for(var b= -0;b<e.length;b++)a.appendChild(e[b](a))}))}})();(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.flowchart.";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_2;align=left;", -50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.card;whiteSpace=wrap;",100,60,"","Card",null,null,this.getTagsForStencil("mxgraph.flowchart","card","").join(" ")),this.createVertexTemplateEntry(a+"collate;",100,100,"","Collate",null,null,this.getTagsForStencil("mxgraph.flowchart","collate","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.data;whiteSpace=wrap;", -100,60,"","Data",null,null,this.getTagsForStencil("mxgraph.flowchart","data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;",60,60,"","Database",null,null,this.getTagsForStencil("mxgraph.flowchart","database","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;",100,100,"","Decision",null,null,this.getTagsForStencil("mxgraph.flowchart","decision","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;", -100,60,"","Delay",null,null,this.getTagsForStencil("mxgraph.flowchart","delay","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.direct_data;whiteSpace=wrap;",100,60,"","Direct Data",null,null,this.getTagsForStencil("mxgraph.flowchart","direct_data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.display;whiteSpace=wrap;",100,60,"","Display",null,null,this.getTagsForStencil("mxgraph.flowchart","display","").join(" ")), -this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.document;whiteSpace=wrap;",100,60,"","Document",null,null,this.getTagsForStencil("mxgraph.flowchart","document","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;",95,60,"","Extract or Measurement",null,null,this.getTagsForStencil("mxgraph.flowchart","extract_or_measurement","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.internal_storage;whiteSpace=wrap;", -70,70,"","Internal Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","internal_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.loop_limit;whiteSpace=wrap;",100,60,"","Loop Limit",null,null,this.getTagsForStencil("mxgraph.flowchart","loop_limit","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.manual_input;whiteSpace=wrap;",100,60,"","Manual Input",null,null,this.getTagsForStencil("mxgraph.flowchart", -"manual_input","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.manual_operation;whiteSpace=wrap;",100,60,"","Manual Operation",null,null,this.getTagsForStencil("mxgraph.flowchart","manual_operation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.merge_or_storage;whiteSpace=wrap;",95,60,"","Merge or Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","merge_or_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;", -88,60,"","Multi-Document",null,null,this.getTagsForStencil("mxgraph.flowchart","multi-document","").join(" ")),this.createVertexTemplateEntry(a+"off-page_reference;",60,60,"","Off-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","off-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"on-page_reference;",60,60,"","On-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","on-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"summing_function;", -70,70,"","Or",null,null,this.getTagsForStencil("mxgraph.flowchart","summing_function","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.paper_tape;whiteSpace=wrap;",100,65,"","Paper Tape",null,null,this.getTagsForStencil("mxgraph.flowchart","paper_tape","").join(" ")),this.createVertexTemplateEntry(a+"parallel_mode;",95,40,"","Parallel Mode",null,null,this.getTagsForStencil("mxgraph.flowchart","parallel_mode","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.predefined_process;whiteSpace=wrap;", -100,60,"","Predefined Process",null,null,this.getTagsForStencil("mxgraph.flowchart","predefined_process","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.preparation;whiteSpace=wrap;",100,60,"","Preparation",null,null,this.getTagsForStencil("mxgraph.flowchart","preparation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.process;whiteSpace=wrap;",100,100,"","Process",null,null,this.getTagsForStencil("mxgraph.flowchart", -"process","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.sequential_data;whiteSpace=wrap;",100,100,"","Sequential Data",null,null,this.getTagsForStencil("mxgraph.flowchart","sequential_data","").join(" ")),this.createVertexTemplateEntry(a+"sort;",100,100,"","Sort",null,null,this.getTagsForStencil("mxgraph.flowchart","sort","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;",100,60,"","Start", -null,null,this.getTagsForStencil("mxgraph.flowchart","start_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;",100,100,"","Start",null,null,this.getTagsForStencil("mxgraph.flowchart","start_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.stored_data;whiteSpace=wrap;",100,60,"","Stored Data",null,null,this.getTagsForStencil("mxgraph.flowchart","stored_data","").join(" ")),this.createVertexTemplateEntry(a+ -"or;",70,70,"","Summing Junction",null,null,this.getTagsForStencil("mxgraph.flowchart","or","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.terminator;whiteSpace=wrap;",100,60,"","Terminator",null,null,this.getTagsForStencil("mxgraph.flowchart","terminator","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.arrows2.arrow;dy=0.6;dx=40;notch=0;", -100,70,"","Transfer",null,null,this.getTagsForStencil("mxgraph.flowchart","transfer","").join(" "))])}})();(function(){Sidebar.prototype.addGoogleCloudPlatformCardsPalette=function(){var a=[this.addDataEntry("gcp google cloud platform cardproduct",170,55,"Product Card","rZRdb4MgFIZ/DZczKq11l539uFqyZBe7XIgclQzFIG3tfv1AsNXpsi4dxggv5+DxeQWEk7LdS1IXz4ICR3iLcCKFULZXtglwjkKfUYQ3KAx9faNw98Ns0M36NZFQqVsSQptwJPwAVrFCo87cCZQ0BZhwH+GnQpW6xk2gu42S4gMSwYXsAjHtmp7JGOfpVc+6pvVcEsp0YX1OJSowCxWEitNo1TdGVeEUVyFIBe2PX9lJ7hP3IEpQ8qxDTm4dE7GyJPwCWF64tOXSaqSx4/ySemWmOw7bPEJ8B8KC1CakbHPzB3h5WnupKOuDgv75DlXOOkyG6oD2Aser3WaGqpmLYrxdTzxyvDU39Re24a9scexFj8MWTVHjhedgS+BEsSOMXjjngHvni2C6lNDvK3Q+nsfDfgGRZQ2oiYGXwm/ydDHxNLF2aHFrDfnusSaojEuiUq/s04gBduOBM7FvLq0TzvJKaxwyk2YsYCnhayeXjFL+j2Y5WH7vwXBjBDMbwx0b93oVjb16CML7zdLD6/low4fH5xc="), +0;b<e.length;b++)a.appendChild(e[b](a))}))}})();(function(){Sidebar.prototype.addFlowchartPalette=function(){var a=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.flowchart.",e=mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=";this.addPaletteFunctions("flowchart",mxResources.get("flowchart"),!1,[this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_1;align=left;", +50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.annotation_2;align=left;",50,100,"","Annotation",null,null,this.getTagsForStencil("mxgraph.flowchart","annotation_2","").join(" ")),this.createVertexTemplateEntry(e+"card;whiteSpace=wrap;size=20;arcSize=12;",100,60,"","Card",null,null,this.getTagsForStencil("mxgraph.flowchart","card","").join(" ")),this.createVertexTemplateEntry(a+ +"collate;",100,100,"","Collate",null,null,this.getTagsForStencil("mxgraph.flowchart","collate","").join(" ")),this.createVertexTemplateEntry(e+"parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;rounded=1;arcSize=12;size=0.23;",100,60,"","Data",null,null,this.getTagsForStencil("mxgraph.flowchart","data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;",60,60,"","Database",null,null,this.getTagsForStencil("mxgraph.flowchart", +"database","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;",100,100,"","Decision",null,null,this.getTagsForStencil("mxgraph.flowchart","decision","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;",100,60,"","Delay",null,null,this.getTagsForStencil("mxgraph.flowchart","delay","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.direct_data;whiteSpace=wrap;", +100,60,"","Direct Data",null,null,this.getTagsForStencil("mxgraph.flowchart","direct_data","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.display;whiteSpace=wrap;",100,60,"","Display",null,null,this.getTagsForStencil("mxgraph.flowchart","display","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.document2;whiteSpace=wrap;size=0.25;",100,60,"","Document",null,null,this.getTagsForStencil("mxgraph.flowchart","document", +"").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;",95,60,"","Extract or Measurement",null,null,this.getTagsForStencil("mxgraph.flowchart","extract_or_measurement","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.internal_storage;whiteSpace=wrap;",70,70,"","Internal Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","internal_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.loop_limit;whiteSpace=wrap;", +100,60,"","Loop Limit",null,null,this.getTagsForStencil("mxgraph.flowchart","loop_limit","").join(" ")),this.createVertexTemplateEntry(e+"manualInput;whiteSpace=wrap;rounded=1;size=26;arcSize=11;",100,60,"","Manual Input",null,null,this.getTagsForStencil("mxgraph.flowchart","manual_input","").join(" ")),this.createVertexTemplateEntry(e+"trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.23;arcSize=10;flipV=1;",100,60,"","Manual Operation",null,null,this.getTagsForStencil("mxgraph.flowchart", +"manual_operation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.merge_or_storage;whiteSpace=wrap;",95,60,"","Merge or Storage",null,null,this.getTagsForStencil("mxgraph.flowchart","merge_or_storage","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;",88,60,"","Multi-Document",null,null,this.getTagsForStencil("mxgraph.flowchart","multi-document","").join(" ")),this.createVertexTemplateEntry(e+ +"offPageConnector;rounded=0;size=0.5;",60,60,"","Off-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","off-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"on-page_reference;",60,60,"","On-Page Reference",null,null,this.getTagsForStencil("mxgraph.flowchart","on-page_reference","").join(" ")),this.createVertexTemplateEntry(a+"summing_function;",70,70,"","Or",null,null,this.getTagsForStencil("mxgraph.flowchart","summing_function","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.paper_tape;whiteSpace=wrap;", +100,65,"","Paper Tape",null,null,this.getTagsForStencil("mxgraph.flowchart","paper_tape","").join(" ")),this.createVertexTemplateEntry(a+"parallel_mode;",95,40,"","Parallel Mode",null,null,this.getTagsForStencil("mxgraph.flowchart","parallel_mode","").join(" ")),this.createVertexTemplateEntry(e+"process;whiteSpace=wrap;rounded=1;size=0.14;arcSize=6;",100,60,"","Predefined Process",null,null,this.getTagsForStencil("mxgraph.flowchart","predefined_process","").join(" ")),this.createVertexTemplateEntry(e+ +"hexagon;perimeter=hexagonPerimeter2;arcSize=6;size=0.27;",100,60,"","Preparation",null,null,this.getTagsForStencil("mxgraph.flowchart","preparation","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.process;whiteSpace=wrap;",100,100,"","Process",null,null,this.getTagsForStencil("mxgraph.flowchart","process","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.sequential_data;whiteSpace=wrap;",100,100,"","Sequential Data", +null,null,this.getTagsForStencil("mxgraph.flowchart","sequential_data","").join(" ")),this.createVertexTemplateEntry(a+"sort;",100,100,"","Sort",null,null,this.getTagsForStencil("mxgraph.flowchart","sort","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_1;whiteSpace=wrap;",100,60,"","Start",null,null,this.getTagsForStencil("mxgraph.flowchart","start_1","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.start_2;whiteSpace=wrap;", +100,100,"","Start",null,null,this.getTagsForStencil("mxgraph.flowchart","start_2","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.stored_data;whiteSpace=wrap;",100,60,"","Stored Data",null,null,this.getTagsForStencil("mxgraph.flowchart","stored_data","").join(" ")),this.createVertexTemplateEntry(a+"or;",70,70,"","Summing Junction",null,null,this.getTagsForStencil("mxgraph.flowchart","or","").join(" ")),this.createVertexTemplateEntry("strokeWidth=2;html=1;shape=mxgraph.flowchart.terminator;whiteSpace=wrap;", +100,60,"","Terminator",null,null,this.getTagsForStencil("mxgraph.flowchart","terminator","").join(" ")),this.createVertexTemplateEntry(mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;html=1;strokeWidth=2;shape=mxgraph.arrows2.arrow;dy=0.6;dx=40;notch=0;",100,70,"","Transfer",null,null,this.getTagsForStencil("mxgraph.flowchart","transfer","").join(" "))])}})();(function(){Sidebar.prototype.addGoogleCloudPlatformCardsPalette=function(){var a=[this.addDataEntry("gcp google cloud platform cardproduct",170,55,"Product Card","rZRdb4MgFIZ/DZczKq11l539uFqyZBe7XIgclQzFIG3tfv1AsNXpsi4dxggv5+DxeQWEk7LdS1IXz4ICR3iLcCKFULZXtglwjkKfUYQ3KAx9faNw98Ns0M36NZFQqVsSQptwJPwAVrFCo87cCZQ0BZhwH+GnQpW6xk2gu42S4gMSwYXsAjHtmp7JGOfpVc+6pvVcEsp0YX1OJSowCxWEitNo1TdGVeEUVyFIBe2PX9lJ7hP3IEpQ8qxDTm4dE7GyJPwCWF64tOXSaqSx4/ySemWmOw7bPEJ8B8KC1CakbHPzB3h5WnupKOuDgv75DlXOOkyG6oD2Aser3WaGqpmLYrxdTzxyvDU39Re24a9scexFj8MWTVHjhedgS+BEsSOMXjjngHvni2C6lNDvK3Q+nsfDfgGRZQ2oiYGXwm/ydDHxNLF2aHFrDfnusSaojEuiUq/s04gBduOBM7FvLq0TzvJKaxwyk2YsYCnhayeXjFL+j2Y5WH7vwXBjBDMbwx0b93oVjb16CML7zdLD6/low4fH5xc="), this.addDataEntry("gcp google cloud platform cardproduct",190,55,"Product Card","5ZVdb4MgFIZ/jZczVlpnLzv7cbVkyS52uRA5KimKQdrqfv1AsNVos27droYxwss5eHwfUQdFeb0TuMyeOQHmoI2DIsG5NL28joAxx/cocdDa8X1PnY6/vTI7a2e9Egso5C0Jvkk4YnYAoxihkg2zAsFVBjrcc9BTJnNV43qmupUUfA8RZ1y0gYi0Tc0klLH4oidtU3oqMKGqsC6n4AXohTJM+Gmw6hslMrOKrRCEhPrqU7aSfcQd8BykaFTIya6jI5bGCS8DmmY2bbEwGq7MOD2nXjxTHWvbtIXoDgszXOqQvE71G+CmcenGPC8PErrrOxQpbW3SrvbcnqPwcbuecFXPBSHarEaMrN/KN/kdb/0vvUWhGyz7LRhbjeauNVsAw5IeYXDDKQL2ni+cqlJ8r6vQcmyGw24BniQVyBHAc+E3MZ2PmK4KzBpJ40rJTzjeQ0FGmJWJUoPihXylH1qcITvuw2mb0jGjaaE0BolO0xRojNnKyjklhP0iL+uX12Ho7w00sTfsl+NeXMEQ14P/F7wWI16R2T5K3JgN9DNYoaePfwfrHjhqePl/mfD+7+0T"), this.addDataEntry("gcp google cloud platform cardproduct",190,110,"Product Card","5ZddT4MwFIZ/DZcujG7ILif7uDIx8cJL09ADNBZKSlXw19vS4iCwOJ0at3VZ1r49p5T3oTvBQWFWbQUu0ltOgDlo7aBQcC5NL6tCYMzxXEoctHI8z1Vfx9vsmZ02s26BBeTykATPJLxg9gxGMUIpa2YFgssUdLjroJtUZmqPq6nqllLwJwg546IJRKRpaiamjEU7PW6a0hOBCVUba3NynoNeKMWEv/ZWfaBEplaxOwQhodp7l41kb3ELPAMpahXyatfREQvjhJsCTVKbNp8bDZdmnHyk7jxTHWvbuIXoCAtTXOiQrEr0EzBJomIS8ax4ltD+PkKe0MYm7WrH7RkKrjerEVf1nB+g9XLAyPqtfJNf8db71FsUTPxFt/lDq9FsYs0WwLCkL9C74BgBe807TtVWPLfdoeVY94ftAjyOS5ADgB8bP4jpbMB0mWNWSxqVSr7B0RPkZIBZmSg1KJ7Le/qmxSmy4y6cpikdM5rkSmMQ6zRNgUaYLa2cUULYD/Kyfrkthu7ZQCNnw/5zHIvL7+O68n6D13zAKzTHR4lrc4C+Bytw9efiYP0oHP+8a0zdLyV/UXKuz73k+JdXcoJTLjl7eJ1zyVmcbMn5n7COgaOGu1cmE959o3oH"), this.addDataEntry("gcp google cloud platform cardexpanded product",190,80,"Expanded Product Card","5ZZdb4MgFIZ/jbdGpbXusrMf2UWTJbvY5ULkKGQIBunW7tcPBPsR26zZ5s1G0xRezkF8Xjw1QHm9Wyvc0I0kwAO0DFCupNSuV+9y4DxIIkYCtAiSJDLfIFldmY272ajBCoS+JSFxCW+Yb8EpTmj1nnuB4JaCDY8CdE91bfa4iE231Uq+Qi65VF0gIl0zMyXjvDjqZdeMXilMmNlYnyOkALsQxUS+n636zIimXvE7BKVhd/UuO8nf4hpkDVrtTci7X8dG3DkSEQVWUZ+WeQ23blwdUo/MTMdju4wQ/QAhxY0NqXeVPQFhVTRhIetmq6H/fQFRsQ6TpXpCe4Ky2WpxgaqdSzO0nA888rxvApp8CRRlYXp32tIhXzQJp05VwLFmb3B2wUvY/TUfJTNbSaJ+h96o/fmwX0CWZQt64Nph4zcZORkYeY91QY30qGQBbctENbDWMNTWHCn0E/uwYoz8+NSQrhkdc1YJo3EobZo1gRWYz71cM0L4L3oUowuH3peEn1qSnluSjeDIdOBI7p4KIy7dc/E9P7LIfv60H6MYkn5d6/qaxl3Vuv4vMSbSeBSkkzGQzgZIN1uuWcPtIX8QrcbC1J5bznnyL+vO9BdMMcPjK5cLP30j+wQ="), @@ -6824,33 +6829,33 @@ m.setAttribute("in","blur");m.setAttribute("dx",this.svgShadowSize);m.setAttribu f.createElement("feComposite");m.setAttribute("in","offsetColor");m.setAttribute("in2","offsetBlur");m.setAttribute("operator","in");m.setAttribute("result","offsetBlur");h.appendChild(m);m=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"feBlend"):f.createElement("feBlend");m.setAttribute("in","SourceGraphic");m.setAttribute("in2","offsetBlur");h.appendChild(m);m=a.getElementsByTagName("defs");0==m.length?(f=null!=f.createElementNS?f.createElementNS(mxConstants.NS_SVG,"defs"):f.createElement("defs"), null!=a.firstChild?a.insertBefore(f,a.firstChild):a.appendChild(f)):f=m[0];f.appendChild(h);b||((c||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return h};Graph.prototype.setShadowVisible=function(a,c){mxClient.IS_SVG&&(c=null!=c?c:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter", "url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),c&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),c,b=0;do c=this.model.getChildAt(this.model.root,b);while(b++<a&&"1"==mxUtils.getValue(this.getCellStyle(c),"locked","0"));null!=c&&this.setDefaultParent(c)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"]; -mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5= -[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]= -[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]= -[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap= -[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js", -STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors= -[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var u=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,f,h,d,e,g,t,q){if(null!=b&&null==mxMarker.markers[b]){var m=this.getPackageForType(b);null!=m&&mxStencilRegistry.getStencil(m)}return u.apply(this,arguments)};PrintDialog.prototype.create=function(a,c){function b(){l.value=Math.max(1, -Math.min(g,Math.max(parseInt(l.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(l.value),parseInt(n.value))))}function f(c){function b(c,b,h){var m=c.getGraphBounds(),d=0,e=0,g=X.get(),q=1/c.pageScale,t=z.checked;if(t)var q=parseInt(R.value),u=parseInt(U.value),q=Math.min(g.height*u/(m.height/c.view.scale),g.width*q/(m.width/c.view.scale));else q=parseInt(p.value)/(100*c.pageScale),isNaN(q)&&(f=1/c.pageScale,p.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width* -f);g.height=Math.ceil(g.height*f);q*=f;!t&&c.pageVisible?(m=c.getPageLayout(),d-=m.x*g.width,e-=m.y*g.height):t=!0;if(null==b){b=PrintDialog.createPrintPreview(c,q,g,0,d,e,t);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var k=b.writeHead;b.writeHead=function(c){k.apply(this,arguments);null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss),c.writeln("</style>"))};if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage= -function(a,c,b,f,h,m){var d=v.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:d.className="geDisableMathJax";return d}}b.open(null,null,h,!0)}else{g=c.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";b.backgroundColor=g;b.autoOrigin=t;b.appendGraph(c,q,d,e,h,!0)}return b}var f=parseInt(P.value)/100;isNaN(f)&&(f=1,P.value="100 %");var f=.75*f,m=n.value,e=l.value,d=!u.checked,g=null;d&&(d=m==t&&e==t);if(!d&&null!=a.pages&&a.pages.length){var q=0,d=a.pages.length-1;u.checked|| -(q=parseInt(m)-1,d=parseInt(e)-1);for(var v=q;v<=d;v++){var k=a.pages[v],m=k==a.currentPage?h:null;if(null==m){var m=a.createTemporaryGraph(h.getStylesheet()),e=!0,q=!1,w=null,y=null;null==k.viewState&&null==k.mapping&&null==k.root&&a.updatePageRoot(k);null!=k.viewState?(e=k.viewState.pageVisible,q=k.viewState.mathEnabled,w=k.viewState.background,y=k.viewState.backgroundImage):null!=k.mapping&&null!=k.mapping.diagramMap&&(q="0"!=k.mapping.diagramMap.get("mathEnabled"),w=k.mapping.diagramMap.get("background"), -y=k.mapping.diagramMap.get("backgroundImage"),y=null!=y&&0<y.length?JSON.parse(y):null);m.background=w;m.backgroundImage=null!=y?new mxImage(y.src,y.width,y.height):null;m.pageVisible=e;m.mathEnabled=q;var A=m.getGlobalVariable;m.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?v+1:A.apply(this,arguments)};document.body.appendChild(m.container);a.updatePageRoot(k);m.model.setRoot(k.root)}g=b(m,g,v!=d);m!=h&&m.container.parentNode.removeChild(m.container)}}else g=b(h);g.mathEnabled&& -(d=g.wnd.document,d.writeln('<script type="text/x-mathjax-config">'),d.writeln("MathJax.Hub.Config({"),d.writeln('messageStyle: "none",'),d.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),d.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),d.writeln("TeX: {"),d.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),d.writeln("},"),d.writeln("tex2jax: {"),d.writeln('\tignoreClass: "geDisableMathJax"'),d.writeln("},"), -d.writeln("asciimath2jax: {"),d.writeln('\tignoreClass: "geDisableMathJax"'),d.writeln("}"),d.writeln("});"),c&&(d.writeln("MathJax.Hub.Queue(function () {"),d.writeln("window.print();"),d.writeln("});")),d.writeln("\x3c/script>"),d.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));g.closeDocument();!g.mathEnabled&&c&&PrintDialog.printPreview(g)}var h=a.editor.graph,d=document.createElement("div"),e=document.createElement("h3"); -e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,c||mxResources.get("print"));d.appendChild(e);var g=1,t=1,q=document.createElement("div");q.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var u=document.createElement("input");u.style.cssText="margin-right:8px;margin-bottom:8px;";u.setAttribute("value","all");u.setAttribute("type","radio");u.setAttribute("name","pages-printdialog");q.appendChild(u);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("printAllPages"));q.appendChild(e);mxUtils.br(q);var k=u.cloneNode(!0);u.setAttribute("checked","checked");k.setAttribute("value","range");q.appendChild(k);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");q.appendChild(e);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type","number");n.setAttribute("min","1");n.style.width="50px";q.appendChild(n);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("to"));q.appendChild(e);var l=n.cloneNode(!0);q.appendChild(l);mxEvent.addListener(n,"focus",function(){k.checked=!0});mxEvent.addListener(l,"focus",function(){k.checked=!0});mxEvent.addListener(n,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(g=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){t=e+1;n.value=t;l.value=t;break}n.setAttribute("max",g);l.setAttribute("max",g);1<g&&d.appendChild(q);var w=document.createElement("div"); -w.style.marginBottom="10px";var y=document.createElement("input");y.style.marginRight="8px";y.setAttribute("value","adjust");y.setAttribute("type","radio");y.setAttribute("name","printZoom");w.appendChild(y);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));w.appendChild(e);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","100 %");p.style.width="50px";w.appendChild(p);mxEvent.addListener(p,"focus",function(){y.checked=!0}); -d.appendChild(w);var q=q.cloneNode(!1),z=y.cloneNode(!0);z.setAttribute("value","fit");y.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(z);q.appendChild(e);w=document.createElement("table");w.style.display="inline-block";var N=document.createElement("tbody"),M=document.createElement("tr"),W=M.cloneNode(!0),I=document.createElement("td"),Q=I.cloneNode(!0),Z=I.cloneNode(!0),J=I.cloneNode(!0), -V=I.cloneNode(!0),T=I.cloneNode(!0);I.style.textAlign="right";J.style.textAlign="right";mxUtils.write(I,mxResources.get("fitTo"));var R=document.createElement("input");R.style.cssText="margin:0 8px 0 8px;";R.setAttribute("value","1");R.setAttribute("min","1");R.setAttribute("type","number");R.style.width="40px";Q.appendChild(R);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));Z.appendChild(e);mxUtils.write(J,mxResources.get("fitToBy"));var U=R.cloneNode(!0);V.appendChild(U); -mxEvent.addListener(R,"focus",function(){z.checked=!0});mxEvent.addListener(U,"focus",function(){z.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));T.appendChild(e);M.appendChild(I);M.appendChild(Q);M.appendChild(Z);W.appendChild(J);W.appendChild(V);W.appendChild(T);N.appendChild(M);N.appendChild(W);w.appendChild(N);q.appendChild(w);d.appendChild(q);q=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom= -"12px";mxUtils.write(e,mxResources.get("paperSize"));q.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var X=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);q.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));q.appendChild(e);var P=document.createElement("input");P.style.cssText="margin:0 8px 0 8px;";P.setAttribute("value","100 %");P.style.width="60px";q.appendChild(P); -d.appendChild(q);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});q.className="geBtn";a.editor.cancelFirst&&e.appendChild(q);a.isOffline()||(w=mxUtils.button(mxResources.get("help"),function(){h.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),w.className="geBtn",e.appendChild(w));PrintDialog.previewEnabled&&(w=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog(); -f(!1)}),w.className="geBtn",e.appendChild(w));w=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();f(!0)});w.className="geBtn gePrimaryBtn";e.appendChild(w);a.editor.cancelFirst||e.appendChild(q);d.appendChild(e);this.container=d};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background= -this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!= -this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); -(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.5.0";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>'; +mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral= +[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android= +[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]= +[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan= +[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml= +[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves= +[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var c=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?c="mxgraph.er":"sysML"==a.substring(0,5)&&(c="mxgraph.sysml"));return c};var u=mxMarker.createMarker;mxMarker.createMarker=function(a,c,b,f,h,d,e,g,t,q){if(null!=b&&null==mxMarker.markers[b]){var m=this.getPackageForType(b);null!=m&&mxStencilRegistry.getStencil(m)}return u.apply(this,arguments)}; +PrintDialog.prototype.create=function(a,c){function b(){l.value=Math.max(1,Math.min(g,Math.max(parseInt(l.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(l.value),parseInt(n.value))))}function f(c){function b(c,b,h){var m=c.getGraphBounds(),d=0,e=0,g=X.get(),q=1/c.pageScale,t=z.checked;if(t)var q=parseInt(R.value),u=parseInt(U.value),q=Math.min(g.height*u/(m.height/c.view.scale),g.width*q/(m.width/c.view.scale));else q=parseInt(p.value)/(100*c.pageScale),isNaN(q)&&(f=1/ +c.pageScale,p.value="100 %");g=mxRectangle.fromRectangle(g);g.width=Math.ceil(g.width*f);g.height=Math.ceil(g.height*f);q*=f;!t&&c.pageVisible?(m=c.getPageLayout(),d-=m.x*g.width,e-=m.y*g.height):t=!0;if(null==b){b=PrintDialog.createPrintPreview(c,q,g,0,d,e,t);b.pageSelector=!1;b.mathEnabled=!1;c=a.getCurrentFile();null!=c&&(b.title=c.getTitle());var k=b.writeHead;b.writeHead=function(c){k.apply(this,arguments);null!=a.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(a.editor.fontCss), +c.writeln("</style>"))};if("undefined"!==typeof MathJax){var v=b.renderPage;b.renderPage=function(a,c,b,f,h,m){var d=v.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:d.className="geDisableMathJax";return d}}b.open(null,null,h,!0)}else{g=c.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";b.backgroundColor=g;b.autoOrigin=t;b.appendGraph(c,q,d,e,h,!0)}return b}var f=parseInt(P.value)/100;isNaN(f)&&(f=1,P.value="100 %");var f=.75*f,m=n.value,e=l.value,d=!u.checked,g=null; +d&&(d=m==t&&e==t);if(!d&&null!=a.pages&&a.pages.length){var q=0,d=a.pages.length-1;u.checked||(q=parseInt(m)-1,d=parseInt(e)-1);for(var v=q;v<=d;v++){var k=a.pages[v],m=k==a.currentPage?h:null;if(null==m){var m=a.createTemporaryGraph(h.getStylesheet()),e=!0,q=!1,w=null,y=null;null==k.viewState&&null==k.mapping&&null==k.root&&a.updatePageRoot(k);null!=k.viewState?(e=k.viewState.pageVisible,q=k.viewState.mathEnabled,w=k.viewState.background,y=k.viewState.backgroundImage):null!=k.mapping&&null!=k.mapping.diagramMap&& +(q="0"!=k.mapping.diagramMap.get("mathEnabled"),w=k.mapping.diagramMap.get("background"),y=k.mapping.diagramMap.get("backgroundImage"),y=null!=y&&0<y.length?JSON.parse(y):null);m.background=w;m.backgroundImage=null!=y?new mxImage(y.src,y.width,y.height):null;m.pageVisible=e;m.mathEnabled=q;var A=m.getGlobalVariable;m.getGlobalVariable=function(a){return"page"==a?k.getName():"pagenumber"==a?v+1:A.apply(this,arguments)};document.body.appendChild(m.container);a.updatePageRoot(k);m.model.setRoot(k.root)}g= +b(m,g,v!=d);m!=h&&m.container.parentNode.removeChild(m.container)}}else g=b(h);g.mathEnabled&&(d=g.wnd.document,d.writeln('<script type="text/x-mathjax-config">'),d.writeln("MathJax.Hub.Config({"),d.writeln('messageStyle: "none",'),d.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),d.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),d.writeln("TeX: {"),d.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'), +d.writeln("},"),d.writeln("tex2jax: {"),d.writeln('\tignoreClass: "geDisableMathJax"'),d.writeln("},"),d.writeln("asciimath2jax: {"),d.writeln('\tignoreClass: "geDisableMathJax"'),d.writeln("}"),d.writeln("});"),c&&(d.writeln("MathJax.Hub.Queue(function () {"),d.writeln("window.print();"),d.writeln("});")),d.writeln("\x3c/script>"),d.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));g.closeDocument();!g.mathEnabled&&c&&PrintDialog.printPreview(g)} +var h=a.editor.graph,d=document.createElement("div"),e=document.createElement("h3");e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,c||mxResources.get("print"));d.appendChild(e);var g=1,t=1,q=document.createElement("div");q.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var u=document.createElement("input");u.style.cssText="margin-right:8px;margin-bottom:8px;";u.setAttribute("value","all");u.setAttribute("type","radio"); +u.setAttribute("name","pages-printdialog");q.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));q.appendChild(e);mxUtils.br(q);var k=u.cloneNode(!0);u.setAttribute("checked","checked");k.setAttribute("value","range");q.appendChild(k);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");q.appendChild(e);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type", +"number");n.setAttribute("min","1");n.style.width="50px";q.appendChild(n);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));q.appendChild(e);var l=n.cloneNode(!0);q.appendChild(l);mxEvent.addListener(n,"focus",function(){k.checked=!0});mxEvent.addListener(l,"focus",function(){k.checked=!0});mxEvent.addListener(n,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(g=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){t=e+ +1;n.value=t;l.value=t;break}n.setAttribute("max",g);l.setAttribute("max",g);1<g&&d.appendChild(q);var w=document.createElement("div");w.style.marginBottom="10px";var y=document.createElement("input");y.style.marginRight="8px";y.setAttribute("value","adjust");y.setAttribute("type","radio");y.setAttribute("name","printZoom");w.appendChild(y);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));w.appendChild(e);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;"; +p.setAttribute("value","100 %");p.style.width="50px";w.appendChild(p);mxEvent.addListener(p,"focus",function(){y.checked=!0});d.appendChild(w);var q=q.cloneNode(!1),z=y.cloneNode(!0);z.setAttribute("value","fit");y.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(z);q.appendChild(e);w=document.createElement("table");w.style.display="inline-block";var N=document.createElement("tbody"), +M=document.createElement("tr"),W=M.cloneNode(!0),I=document.createElement("td"),Q=I.cloneNode(!0),Z=I.cloneNode(!0),J=I.cloneNode(!0),V=I.cloneNode(!0),T=I.cloneNode(!0);I.style.textAlign="right";J.style.textAlign="right";mxUtils.write(I,mxResources.get("fitTo"));var R=document.createElement("input");R.style.cssText="margin:0 8px 0 8px;";R.setAttribute("value","1");R.setAttribute("min","1");R.setAttribute("type","number");R.style.width="40px";Q.appendChild(R);e=document.createElement("span");mxUtils.write(e, +mxResources.get("fitToSheetsAcross"));Z.appendChild(e);mxUtils.write(J,mxResources.get("fitToBy"));var U=R.cloneNode(!0);V.appendChild(U);mxEvent.addListener(R,"focus",function(){z.checked=!0});mxEvent.addListener(U,"focus",function(){z.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));T.appendChild(e);M.appendChild(I);M.appendChild(Q);M.appendChild(Z);W.appendChild(J);W.appendChild(V);W.appendChild(T);N.appendChild(M);N.appendChild(W);w.appendChild(N); +q.appendChild(w);d.appendChild(q);q=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));q.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var X=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);q.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));q.appendChild(e); +var P=document.createElement("input");P.style.cssText="margin:0 8px 0 8px;";P.setAttribute("value","100 %");P.style.width="60px";q.appendChild(P);d.appendChild(q);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});q.className="geBtn";a.editor.cancelFirst&&e.appendChild(q);a.isOffline()||(w=mxUtils.button(mxResources.get("help"),function(){h.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), +w.className="geBtn",e.appendChild(w));PrintDialog.previewEnabled&&(w=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();f(!1)}),w.className="geBtn",e.appendChild(w));w=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();f(!0)});w.className="geBtn gePrimaryBtn";e.appendChild(w);a.editor.cancelFirst||e.appendChild(q);d.appendChild(e);this.container=d};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== +this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&& +this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); +(function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,d,b){b.ui=a.ui;return d};a.afterDecode=function(a,d,b){b.previousColor=b.color;b.previousImage=b.image;b.previousFormat=b.format;null!=b.foldingEnabled&&(b.foldingEnabled=!b.foldingEnabled);null!=b.mathEnabled&&(b.mathEnabled=!b.mathEnabled);null!=b.shadowVisible&&(b.shadowVisible=!b.shadowVisible);return b};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="8.5.2";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>'; EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= !1;EditorUi.prototype.pdfPageExport=!0;EditorUi.prototype.formatEnabled="0"!=urlParams.format;(function(){EditorUi.prototype.useCanvasForExport=!1;EditorUi.prototype.jpgSupported=!1;try{var a=document.createElement("canvas");EditorUi.prototype.canvasSupported=!(!a.getContext||!a.getContext("2d"))}catch(t){}try{var b=document.createElement("canvas"),h=new Image;h.onload=function(){try{b.getContext("2d").drawImage(h,0,0);var a=b.toDataURL("image/png");EditorUi.prototype.useCanvasForExport=null!=a&& diff --git a/src/main/webapp/js/diagramly/Editor.js b/src/main/webapp/js/diagramly/Editor.js index f01330a87..1243e2602 100644 --- a/src/main/webapp/js/diagramly/Editor.js +++ b/src/main/webapp/js/diagramly/Editor.js @@ -1487,6 +1487,7 @@ mxStencilRegistry.libraries['atlassian'] = [STENCIL_PATH + '/atlassian.xml']; mxStencilRegistry.libraries['bpmn'] = [SHAPES_PATH + '/bpmn/mxBpmnShape2.js', STENCIL_PATH + '/bpmn.xml']; mxStencilRegistry.libraries['er'] = [SHAPES_PATH + '/er/mxER.js']; + mxStencilRegistry.libraries['flowchart'] = [SHAPES_PATH + '/mxFlowchart.js', STENCIL_PATH + '/flowchart.xml']; mxStencilRegistry.libraries['ios'] = [SHAPES_PATH + '/mockup/mxMockupiOS.js']; mxStencilRegistry.libraries['rackGeneral'] = [SHAPES_PATH + '/rack/mxRack.js', STENCIL_PATH + '/rack/general.xml']; mxStencilRegistry.libraries['rackF5'] = [STENCIL_PATH + '/rack/f5.xml']; diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js index a0985f364..1f2ea488c 100644 --- a/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js +++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-Basic.js @@ -24,6 +24,7 @@ this.createVertexTemplateEntry(s2 + 'cone', w, h, '', 'Cone', null, null, this.getTagsForStencil(gn, 'cone', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'cone2;dx=0.5;dy=0.9;', w, h, '', 'Cone (adjustable)', null, null, this.getTagsForStencil(gn, 'cone', dt).join(' ')), this.createVertexTemplateEntry(s + 'document', w, h, '', 'Document', null, null, this.getTagsForStencil(gn, 'document', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'donut;dx=25;', w, h, '', 'Donut', null, null, this.getTagsForStencil(gn, 'donut', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'drop', w * 0.7, h, '', 'Drop', null, null, this.getTagsForStencil(gn, 'drop', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'flash', w * 0.6, h, '', 'Flash', null, null, this.getTagsForStencil(gn, 'flash', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'half_circle', w, h * 0.5, '', 'Half Circle', null, null, this.getTagsForStencil(gn, 'half_circle', dt).join(' ')), @@ -40,15 +41,29 @@ this.createVertexTemplateEntry(s + 'pentagon', w, h * 0.9, '', 'Pentagon', null, null, this.getTagsForStencil(gn, 'pentagon', dt).join(' ')), this.createVertexTemplateEntry(s + 'pointed_oval', w * 0.5, h, '', 'Pointed Oval', null, null, this.getTagsForStencil(gn, 'pointed oval', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'pyramid;dx1=0.4;dx2=0.6;dy1=0.9;dy2=0.8;', w, h, '', 'Pyramid', null, null, this.getTagsForStencil(gn, 'pyramid', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'diag_snip_rect;dx=6;', w, h * 0.6, '', 'Diagonal Snip Rectangle', null, null, this.getTagsForStencil(gn, 'diag_snip_rect', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'diag_round_rect;dx=6;', w, h * 0.6, '', 'Diagonal Rounded Rectangle', null, null, this.getTagsForStencil(gn, 'diag_round_rect', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'corner_round_rect;dx=6;', w, h * 0.6, '', 'Corner Rounded Rectangle', null, null, this.getTagsForStencil(gn, 'corner_round_rect', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'plaque;dx=6;', w, h * 0.6, '', 'Plaque', null, null, this.getTagsForStencil(gn, 'plaque', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'frame;dx=10;', w, h * 0.6, '', 'Frame', null, null, this.getTagsForStencil(gn, 'frame', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'rounded_frame;dx=10;', w, h * 0.6, '', 'Rounded Frame', null, null, this.getTagsForStencil(gn, 'rounded_frame', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'plaque_frame;dx=10;', w, h * 0.6, '', 'Plaque Frame', null, null, this.getTagsForStencil(gn, 'plaque_frame', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'frame_corner;dx=10;', w, h * 0.6, '', 'Frame Corner', null, null, this.getTagsForStencil(gn, 'frame_corner', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'diag_stripe;dx=10;', w, h * 0.6, '', 'Diagonal Stripe', null, null, this.getTagsForStencil(gn, 'diag_stripe', dt).join(' ')), this.createVertexTemplateEntry(s + 'rectCallout;dx=30;dy=15;boundedLbl=1;', w, h * 0.6, '', 'Rectangular Callout', null, null, this.getTagsForStencil(gn, 'rectangular_callout', dt).join(' ')), this.createVertexTemplateEntry(s + 'roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;', w, h * 0.6, '', 'Rounded Rectangular Callout', null, null, this.getTagsForStencil(gn, 'rectangular_callout', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'layered_rect;dx=10;', w, h * 0.6, '', 'Layered Rectangle', null, null, this.getTagsForStencil(gn, 'layered_rect', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'smiley', w, h, '', 'Smiley', null, null, this.getTagsForStencil(gn, 'smiley', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'star', w, h * 0.95, '', 'Star', null, null, this.getTagsForStencil(gn, 'star', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'sun', w, h, '', 'Sun', null, null, this.getTagsForStencil(gn, 'sun', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'tick', w * 0.85, h, '', 'Tick', null, null, this.getTagsForStencil(gn, 'tick', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'wave2;dy=0.3;', w, h * 0.6, '', 'Wave', null, null, this.getTagsForStencil(gn, 'wave', dt).join(' ')), - this.createVertexTemplateEntry(s2 + 'x', w, h, '', 'X', null, null, this.getTagsForStencil(gn, 'x', dt).join(' ')) - + this.createVertexTemplateEntry('labelPosition=center;verticalLabelPosition=middle;html=1;strokeWidth=2;shape=mxgraph.basic.button;dx=10;', w, h * 0.6, 'Button', 'Button', null, null, this.getTagsForStencil(gn, 'button', dt).join(' ')), + this.createVertexTemplateEntry('labelPosition=center;verticalLabelPosition=middle;html=1;strokeWidth=2;shape=mxgraph.basic.shaded_button;dx=10;fillColor=#E6E6E6;strokeColor=none;', w, h * 0.6, 'Button', 'Button (shaded)', null, null, this.getTagsForStencil(gn, 'button', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'x', w, h, '', 'X', null, null, this.getTagsForStencil(gn, 'x', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'pie;startAngle=0.2;endAngle=0.9;', w, h, '', 'Pie', null, null, this.getTagsForStencil(gn, 'pie', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'arc;startAngle=0.3;endAngle=0.1;', w, h, '', 'Arc', null, null, this.getTagsForStencil(gn, 'arc', dt).join(' ')), + this.createVertexTemplateEntry(s2 + 'partConcEllipse;startAngle=0.25;endAngle=0.1;arcWidth=0.5;', w, h, '', 'Partial Concentric Ellipse', null, null, this.getTagsForStencil(gn, 'partConcEllipse', dt).join(' ')) ]); }; diff --git a/src/main/webapp/js/diagramly/sidebar/Sidebar-Flowchart.js b/src/main/webapp/js/diagramly/sidebar/Sidebar-Flowchart.js index 1fdaa6333..503f479b4 100644 --- a/src/main/webapp/js/diagramly/sidebar/Sidebar-Flowchart.js +++ b/src/main/webapp/js/diagramly/sidebar/Sidebar-Flowchart.js @@ -6,6 +6,7 @@ var h = 100; var s = 'strokeWidth=2;html=1;shape=mxgraph.flowchart.'; var s2 = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;html=1;strokeWidth=2;shape=mxgraph.flowchart.'; + var s3 = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;html=1;strokeWidth=2;shape='; var gn = 'mxgraph.flowchart'; var dt = ''; @@ -13,29 +14,29 @@ [ this.createVertexTemplateEntry(s + 'annotation_1;align=left;', w * 0.5, h, '', 'Annotation', null, null, this.getTagsForStencil(gn, 'annotation_1', dt).join(' ')), this.createVertexTemplateEntry(s + 'annotation_2;align=left;', w * 0.5, h, '', 'Annotation', null, null, this.getTagsForStencil(gn, 'annotation_2', dt).join(' ')), - this.createVertexTemplateEntry(s + 'card;whiteSpace=wrap;', w, h * 0.6, '', 'Card', null, null, this.getTagsForStencil(gn, 'card', dt).join(' ')), + this.createVertexTemplateEntry(s3 + 'card;whiteSpace=wrap;size=20;arcSize=12;', w, h * 0.6, '', 'Card', null, null, this.getTagsForStencil(gn, 'card', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'collate;', w, h, '', 'Collate', null, null, this.getTagsForStencil(gn, 'collate', dt).join(' ')), - this.createVertexTemplateEntry(s + 'data;whiteSpace=wrap;', w, h * 0.6, '', 'Data', null, null, this.getTagsForStencil(gn, 'data', dt).join(' ')), + this.createVertexTemplateEntry(s3 + 'parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;rounded=1;arcSize=12;size=0.23;', w, h * 0.6, '', 'Data', null, null, this.getTagsForStencil(gn, 'data', dt).join(' ')), this.createVertexTemplateEntry(s + 'database;whiteSpace=wrap;', w * 0.6, h * 0.6, '', 'Database', null, null, this.getTagsForStencil(gn, 'database', dt).join(' ')), this.createVertexTemplateEntry(s + 'decision;whiteSpace=wrap;', w, h, '', 'Decision', null, null, this.getTagsForStencil(gn, 'decision', dt).join(' ')), this.createVertexTemplateEntry(s + 'delay;whiteSpace=wrap;', w, h * 0.6, '', 'Delay', null, null, this.getTagsForStencil(gn, 'delay', dt).join(' ')), this.createVertexTemplateEntry(s + 'direct_data;whiteSpace=wrap;', w, h * 0.6, '', 'Direct Data', null, null, this.getTagsForStencil(gn, 'direct_data', dt).join(' ')), this.createVertexTemplateEntry(s + 'display;whiteSpace=wrap;', w, h * 0.6, '', 'Display', null, null, this.getTagsForStencil(gn, 'display', dt).join(' ')), - this.createVertexTemplateEntry(s + 'document;whiteSpace=wrap;', w, h * 0.6, '', 'Document', null, null, this.getTagsForStencil(gn, 'document', dt).join(' ')), + this.createVertexTemplateEntry(s + 'document2;whiteSpace=wrap;size=0.25;', w, h * 0.6, '', 'Document', null, null, this.getTagsForStencil(gn, 'document', dt).join(' ')), this.createVertexTemplateEntry(s + 'extract_or_measurement;whiteSpace=wrap;', w * 0.95, h * 0.6, '', 'Extract or Measurement', null, null, this.getTagsForStencil(gn, 'extract_or_measurement', dt).join(' ')), this.createVertexTemplateEntry(s + 'internal_storage;whiteSpace=wrap;', w * 0.7, h * 0.7, '', 'Internal Storage', null, null, this.getTagsForStencil(gn, 'internal_storage', dt).join(' ')), this.createVertexTemplateEntry(s + 'loop_limit;whiteSpace=wrap;', w, h * 0.6, '', 'Loop Limit', null, null, this.getTagsForStencil(gn, 'loop_limit', dt).join(' ')), - this.createVertexTemplateEntry(s + 'manual_input;whiteSpace=wrap;', w, h * 0.6, '', 'Manual Input', null, null, this.getTagsForStencil(gn, 'manual_input', dt).join(' ')), - this.createVertexTemplateEntry(s + 'manual_operation;whiteSpace=wrap;', w, h * 0.6, '', 'Manual Operation', null, null, this.getTagsForStencil(gn, 'manual_operation', dt).join(' ')), + this.createVertexTemplateEntry(s3 + 'manualInput;whiteSpace=wrap;rounded=1;size=26;arcSize=11;', w, h * 0.6, '', 'Manual Input', null, null, this.getTagsForStencil(gn, 'manual_input', dt).join(' ')), + this.createVertexTemplateEntry(s3 + 'trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.23;arcSize=10;flipV=1;', w, h * 0.6, '', 'Manual Operation', null, null, this.getTagsForStencil(gn, 'manual_operation', dt).join(' ')), this.createVertexTemplateEntry(s + 'merge_or_storage;whiteSpace=wrap;', w * 0.95, h * 0.6, '', 'Merge or Storage', null, null, this.getTagsForStencil(gn, 'merge_or_storage', dt).join(' ')), this.createVertexTemplateEntry(s + 'multi-document;whiteSpace=wrap;', w * 0.88, h * 0.6, '', 'Multi-Document', null, null, this.getTagsForStencil(gn, 'multi-document', dt).join(' ')), - this.createVertexTemplateEntry(s2 + 'off-page_reference;', w * 0.6, h * 0.6, '', 'Off-Page Reference', null, null, this.getTagsForStencil(gn, 'off-page_reference', dt).join(' ')), + this.createVertexTemplateEntry(s3 + 'offPageConnector;rounded=0;size=0.5;', w * 0.6, h * 0.6, '', 'Off-Page Reference', null, null, this.getTagsForStencil(gn, 'off-page_reference', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'on-page_reference;', w * 0.6, h * 0.6, '', 'On-Page Reference', null, null, this.getTagsForStencil(gn, 'on-page_reference', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'summing_function;', w * 0.7, h * 0.7, '', 'Or', null, null, this.getTagsForStencil(gn, 'summing_function', dt).join(' ')), this.createVertexTemplateEntry(s + 'paper_tape;whiteSpace=wrap;', w, h * 0.65, '', 'Paper Tape', null, null, this.getTagsForStencil(gn, 'paper_tape', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'parallel_mode;', w * 0.95, h * 0.4, '', 'Parallel Mode', null, null, this.getTagsForStencil(gn, 'parallel_mode', dt).join(' ')), - this.createVertexTemplateEntry(s + 'predefined_process;whiteSpace=wrap;', w, h * 0.6, '', 'Predefined Process', null, null, this.getTagsForStencil(gn, 'predefined_process', dt).join(' ')), - this.createVertexTemplateEntry(s + 'preparation;whiteSpace=wrap;', w, h * 0.6, '', 'Preparation', null, null, this.getTagsForStencil(gn, 'preparation', dt).join(' ')), + this.createVertexTemplateEntry(s3 + 'process;whiteSpace=wrap;rounded=1;size=0.14;arcSize=6;', w, h * 0.6, '', 'Predefined Process', null, null, this.getTagsForStencil(gn, 'predefined_process', dt).join(' ')), + this.createVertexTemplateEntry(s3 + 'hexagon;perimeter=hexagonPerimeter2;arcSize=6;size=0.27;', w, h * 0.6, '', 'Preparation', null, null, this.getTagsForStencil(gn, 'preparation', dt).join(' ')), this.createVertexTemplateEntry(s + 'process;whiteSpace=wrap;', w, h, '', 'Process', null, null, this.getTagsForStencil(gn, 'process', dt).join(' ')), this.createVertexTemplateEntry(s + 'sequential_data;whiteSpace=wrap;', w, h, '', 'Sequential Data', null, null, this.getTagsForStencil(gn, 'sequential_data', dt).join(' ')), this.createVertexTemplateEntry(s2 + 'sort;', w, h, '', 'Sort', null, null, this.getTagsForStencil(gn, 'sort', dt).join(' ')), diff --git a/src/main/webapp/js/embed-static.min.js b/src/main/webapp/js/embed-static.min.js index 2e9f396b4..c506a862a 100644 --- a/src/main/webapp/js/embed-static.min.js +++ b/src/main/webapp/js/embed-static.min.js @@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})}); "function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;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";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.5.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.5.2",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&& 0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| diff --git a/src/main/webapp/js/reader.min.js b/src/main/webapp/js/reader.min.js index c7e262b22..10b380b58 100644 --- a/src/main/webapp/js/reader.min.js +++ b/src/main/webapp/js/reader.min.js @@ -184,7 +184,7 @@ f)+"\n"+t+"}":"{"+z.join(",")+"}";f=t;return l}}"function"!==typeof Date.prototy e=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f,g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},k;"function"!==typeof JSON.stringify&&(JSON.stringify=function(a,b,d){var e;g=f="";if("number"===typeof d)for(e=0;e<d;e+=1)g+=" ";else"string"===typeof d&&(g=d);if((k=b)&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("JSON.stringify");return c("",{"":a})}); "function"!==typeof JSON.parse&&(JSON.parse=function(a,b){function c(a,d){var e,f,g=a[d];if(g&&"object"===typeof g)for(e in g)Object.prototype.hasOwnProperty.call(g,e)&&(f=c(g,e),void 0!==f?g[e]=f:delete g[e]);return b.call(a,d,g)}var e;a=""+a;d.lastIndex=0;d.test(a)&&(a=a.replace(d,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof b?c({"":e},""):e;throw new SyntaxError("JSON.parse");})})();"undefined"===typeof window.mxBasePath&&(window.mxBasePath="https://www.draw.io/mxgraph/");window.mxLoadStylesheets=window.mxLoadStylesheets||!1;window.mxLoadResources=window.mxLoadResources||!1;window.mxLanguage=window.mxLanguage||"en";window.urlParams=window.urlParams||{};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;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";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.5.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& +window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"../../../src";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de"];var mxClient={VERSION:"8.5.2",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_IE11:!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:!!navigator.userAgent.match(/Edge\//),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&& 0>navigator.userAgent.indexOf("Edge/"),IS_OP:0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/"),IS_OT:0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&& 0>navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_IOS:navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1,IS_GC:0<=navigator.userAgent.indexOf("Chrome/")&&0>navigator.userAgent.indexOf("Edge/"),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:0<=navigator.userAgent.indexOf("Firefox/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&& 0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")|| diff --git a/src/main/webapp/js/shapes.min.js b/src/main/webapp/js/shapes.min.js index b886276c1..9ab7f818c 100644 --- a/src/main/webapp/js/shapes.min.js +++ b/src/main/webapp/js/shapes.min.js @@ -1542,7 +1542,8 @@ mxShapeBasicOctagon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d Graph.handleFactory[mxShapeBasicOctagon.prototype.cst.OCTAGON]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]}; function mxShapeBasicIsoCube(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.isoAngle=15}mxUtils.extend(mxShapeBasicIsoCube,mxActor);mxShapeBasicIsoCube.prototype.cst={ISO_CUBE:"mxgraph.basic.isocube"}; mxShapeBasicIsoCube.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;d=Math.min(b*Math.tan(d),.5*c);a.begin();a.moveTo(.5*b,0);a.lineTo(b,d);a.lineTo(b,c-d);a.lineTo(.5*b,c);a.lineTo(0,c-d);a.lineTo(0,d);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,d);a.lineTo(.5*b,2*d);a.lineTo(b,d);a.moveTo(.5*b,2*d);a.lineTo(.5*b,c);a.stroke()}; -mxCellRenderer.registerShape(mxShapeBasicIsoCube.prototype.cst.ISO_CUBE,mxShapeBasicIsoCube);mxShapeBasicIsoCube.prototype.constraints=null;Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE]=function(a){return[Graph.createHandle(a,["isoAngle"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))));return new mxPoint(a.x,a.y+d)},function(a,e){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,e.y-a.y)))/100})]}; +mxCellRenderer.registerShape(mxShapeBasicIsoCube.prototype.cst.ISO_CUBE,mxShapeBasicIsoCube);mxShapeBasicIsoCube.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE]=function(a){return[Graph.createHandle(a,["isoAngle"],function(a){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))))*Math.PI/200;return new mxPoint(a.x,a.y+Math.min(a.width*Math.tan(d),.5*a.height))},function(a,e){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,e.y-a.y)))/100})]}; function mxShapeBasicTriangleAcute(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicTriangleAcute,mxActor);mxShapeBasicTriangleAcute.prototype.cst={ACUTE_TRIANGLE:"mxgraph.basic.acute_triangle"}; mxShapeBasicTriangleAcute.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(0,c);a.lineTo(d,0);a.lineTo(b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE,mxShapeBasicTriangleAcute);mxShapeBasicTriangleAcute.prototype.constraints=null; Graph.handleFactory[mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]}; @@ -1562,7 +1563,68 @@ Graph.handleFactory[mxShapeBasicPyramid.prototype.cst.PYRAMID]=function(a){var d b*a.width,a.y+a.height-10)},function(a,c){this.state.style.dx2=Math.round(100*Math.max(0,Math.min(1,(c.x-a.x)/a.width)))/100});d.push(e);e=Graph.createHandle(a,["dy1"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dy1",this.dy1))));return new mxPoint(a.x+10,a.y+b*a.height)},function(a,c){this.state.style.dy1=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/100});d.push(e);a=Graph.createHandle(a,["dy2"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style, "dy2",this.dy2))));return new mxPoint(a.x+a.width-10,a.y+b*a.height)},function(a,c){this.state.style.dy2=Math.round(100*Math.max(0,Math.min(1,(c.y-a.y)/a.height)))/100});d.push(a);return d};function mxShapeBasic4PointStar2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.8}mxUtils.extend(mxShapeBasic4PointStar2,mxActor);mxShapeBasic4PointStar2.prototype.cst={FOUR_POINT_STAR_2:"mxgraph.basic.4_point_star_2"}; mxShapeBasic4PointStar2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=.5*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(0,.5*c);a.lineTo(d*b,d*c);a.lineTo(.5*b,0);a.lineTo(b-d*b,d*c);a.lineTo(b,.5*c);a.lineTo(b-d*b,c-d*c);a.lineTo(.5*b,c);a.lineTo(d*b,c-d*c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2,mxShapeBasic4PointStar2); -mxShapeBasic4PointStar2.prototype.constraints=null;Graph.handleFactory[mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width/2,a.y+10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,2*(e.x-a.x)/a.width)))/100})]}; +mxShapeBasic4PointStar2.prototype.constraints=null;Graph.handleFactory[mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width/2,a.y+d*a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,2*(e.x-a.x)/a.width)))/100})]}; +function mxShapeBasicDiagSnipRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDiagSnipRect,mxActor);mxShapeBasicDiagSnipRect.prototype.cst={DIAG_SNIP_RECT:"mxgraph.basic.diag_snip_rect"}; +mxShapeBasicDiagSnipRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b,0);a.lineTo(b,c-d);a.lineTo(b-d,c);a.lineTo(0,c);a.lineTo(0,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT,mxShapeBasicDiagSnipRect);mxShapeBasicDiagSnipRect.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]}; +function mxShapeBasicDiagRoundRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDiagRoundRect,mxActor);mxShapeBasicDiagRoundRect.prototype.cst={DIAG_ROUND_RECT:"mxgraph.basic.diag_round_rect"}; +mxShapeBasicDiagRoundRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b,0);a.lineTo(b,c-d);a.arcTo(d,d,0,0,1,b-d,c);a.lineTo(0,c);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT,mxShapeBasicDiagRoundRect); +mxShapeBasicDiagRoundRect.prototype.constraints=null;Graph.handleFactory[mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]}; +function mxShapeBasicCornerRoundRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicCornerRoundRect,mxActor);mxShapeBasicCornerRoundRect.prototype.cst={CORNER_ROUND_RECT:"mxgraph.basic.corner_round_rect"}; +mxShapeBasicCornerRoundRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.lineTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT,mxShapeBasicCornerRoundRect);mxShapeBasicCornerRoundRect.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]}; +function mxShapeBasicPlaque(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicPlaque,mxActor);mxShapeBasicPlaque.prototype.cst={PLAQUE:"mxgraph.basic.plaque"}; +mxShapeBasicPlaque.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(b-d,0);a.arcTo(d,d,0,0,0,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,0,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,0,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,0,d,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicPlaque.prototype.cst.PLAQUE,mxShapeBasicPlaque); +mxShapeBasicPlaque.prototype.constraints=null;Graph.handleFactory[mxShapeBasicPlaque.prototype.cst.PLAQUE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+1.41*d,a.y+1.41*d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]}; +function mxShapeBasicFrame(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicFrame,mxActor);mxShapeBasicFrame.prototype.cst={FRAME:"mxgraph.basic.frame"}; +mxShapeBasicFrame.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.lineTo(0,0);a.close();a.moveTo(d,d);a.lineTo(d,c-d);a.lineTo(b-d,c-d);a.lineTo(b-d,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicFrame.prototype.cst.FRAME,mxShapeBasicFrame);mxShapeBasicFrame.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicFrame.prototype.cst.FRAME]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]}; +function mxShapeBasicPlaqueFrame(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicPlaqueFrame,mxActor);mxShapeBasicPlaqueFrame.prototype.cst={PLAQUE_FRAME:"mxgraph.basic.plaque_frame"}; +mxShapeBasicPlaqueFrame.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.25*b,.25*c,d);a.begin();a.moveTo(b-d,0);a.arcTo(d,d,0,0,0,b,d);a.lineTo(b,c-d);a.arcTo(d,d,0,0,0,b-d,c);a.lineTo(d,c);a.arcTo(d,d,0,0,0,0,c-d);a.lineTo(0,d);a.arcTo(d,d,0,0,0,d,0);a.close();a.moveTo(2*d,d);a.arcTo(2*d,2*d,0,0,1,d,2*d);a.lineTo(d,c-2*d);a.arcTo(2*d,2*d,0,0,1,2*d,c-d);a.lineTo(b-2*d,c-d);a.arcTo(2*d,2*d,0, +0,1,b-d,c-2*d);a.lineTo(b-d,2*d);a.arcTo(2*d,2*d,0,0,1,b-2*d,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME,mxShapeBasicPlaqueFrame);mxShapeBasicPlaqueFrame.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]}; +function mxShapeBasicRoundedFrame(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicRoundedFrame,mxActor);mxShapeBasicRoundedFrame.prototype.cst={ROUNDED_FRAME:"mxgraph.basic.rounded_frame"}; +mxShapeBasicRoundedFrame.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.25*b,.25*c,d);a.begin();a.moveTo(b-2*d,0);a.arcTo(2*d,2*d,0,0,1,b,2*d);a.lineTo(b,c-2*d);a.arcTo(2*d,2*d,0,0,1,b-2*d,c);a.lineTo(2*d,c);a.arcTo(2*d,2*d,0,0,1,0,c-2*d);a.lineTo(0,2*d);a.arcTo(2*d,2*d,0,0,1,2*d,0);a.close();a.moveTo(2*d,d);a.arcTo(d,d,0,0,0,d,2*d);a.lineTo(d,c-2*d);a.arcTo(d,d,0,0,0,2*d,c-d);a.lineTo(b-2* +d,c-d);a.arcTo(d,d,0,0,0,b-d,c-2*d);a.lineTo(b-d,2*d);a.arcTo(d,d,0,0,0,b-2*d,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME,mxShapeBasicRoundedFrame);mxShapeBasicRoundedFrame.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/4,a.width/4,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/4,a.width/4,e.x-a.x)))/100})]}; +function mxShapeBasicFrameCorner(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicFrameCorner,mxActor);mxShapeBasicFrameCorner.prototype.cst={FRAME_CORNER:"mxgraph.basic.frame_corner"}; +mxShapeBasicFrameCorner.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b-d,d);a.lineTo(d,d);a.lineTo(d,c-d);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER,mxShapeBasicFrameCorner);mxShapeBasicFrameCorner.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]}; +function mxShapeBasicDiagStripe(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDiagStripe,mxActor);mxShapeBasicDiagStripe.prototype.cst={DIAG_STRIPE:"mxgraph.basic.diag_stripe"}; +mxShapeBasicDiagStripe.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(b,c,d);a.begin();a.moveTo(0,c);a.lineTo(b,0);a.lineTo(b,Math.min(100*d/b,c));a.lineTo(Math.min(100*d/c,b),c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE,mxShapeBasicDiagStripe);mxShapeBasicDiagStripe.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+a.height)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]}; +function mxShapeBasicDonut(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicDonut,mxActor);mxShapeBasicDonut.prototype.cst={DONUT:"mxgraph.basic.donut"}; +mxShapeBasicDonut.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,.5*c);a.arcTo(.5*b,.5*c,0,0,1,.5*b,0);a.arcTo(.5*b,.5*c,0,0,1,b,.5*c);a.arcTo(.5*b,.5*c,0,0,1,.5*b,c);a.arcTo(.5*b,.5*c,0,0,1,0,.5*c);a.close();a.moveTo(.5*b,d);a.arcTo(.5*b-d,.5*c-d,0,0,0,d,.5*c);a.arcTo(.5*b-d,.5*c-d,0,0,0,.5*b,c-d);a.arcTo(.5*b-d,.5*c-d,0,0,0,b-d,.5*c);a.arcTo(.5*b-d,.5*c-d, +0,0,0,.5*b,d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicDonut.prototype.cst.DONUT,mxShapeBasicDonut);mxShapeBasicDonut.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicDonut.prototype.cst.DONUT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+a.height/2)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]}; +function mxShapeBasicLayeredRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicLayeredRect,mxActor);mxShapeBasicLayeredRect.prototype.cst={LAYERED_RECT:"mxgraph.basic.layered_rect"}; +mxShapeBasicLayeredRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(d,d);a.lineTo(b,d);a.lineTo(b,c);a.lineTo(d,c);a.close();a.fillAndStroke();a.begin();a.moveTo(.5*d,.5*d);a.lineTo(b-.5*d,.5*d);a.lineTo(b-.5*d,c-.5*d);a.lineTo(.5*d,c-.5*d);a.close();a.fillAndStroke();a.begin();a.moveTo(0,0);a.lineTo(b-d,0);a.lineTo(b-d,c-d);a.lineTo(0,c-d);a.close();a.fillAndStroke()}; +mxCellRenderer.registerShape(mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT,mxShapeBasicLayeredRect);mxShapeBasicLayeredRect.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+a.width-d,a.y+a.height-d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,-e.x+a.width+a.x)))/100})]}; +function mxShapeBasicButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicButton,mxActor);mxShapeBasicButton.prototype.cst={BUTTON:"mxgraph.basic.button"}; +mxShapeBasicButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke();a.setShadow(!1);a.setLineJoin("round");a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(d,d);a.lineTo(d,c-d);a.close();a.fillAndStroke();a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b-d,d);a.lineTo(d,d);a.close();a.fillAndStroke(); +a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(b-d,c-d);a.lineTo(b-d,d);a.close();a.fillAndStroke();a.begin();a.moveTo(0,c);a.lineTo(d,c-d);a.lineTo(b-d,c-d);a.lineTo(b,c);a.close();a.fillAndStroke();a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(d,d);a.lineTo(d,c-d);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicButton.prototype.cst.BUTTON,mxShapeBasicButton);mxShapeBasicButton.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicButton.prototype.cst.BUTTON]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]}; +function mxShapeBasicShadedButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicShadedButton,mxActor);mxShapeBasicShadedButton.prototype.cst={SHADED_BUTTON:"mxgraph.basic.shaded_button"}; +mxShapeBasicShadedButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);d=Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));d=Math.min(.5*b,.5*c,d);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fill();a.setFillColor("#ffffff");a.setAlpha(.25);a.begin();a.moveTo(0,c);a.lineTo(0,0);a.lineTo(d,d);a.lineTo(d,c-d);a.close();a.fill();a.setAlpha(.5);a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b-d,d);a.lineTo(d, +d);a.close();a.fill();a.setFillColor("#000000");a.setAlpha(.25);a.begin();a.moveTo(b,0);a.lineTo(b,c);a.lineTo(b-d,c-d);a.lineTo(b-d,d);a.close();a.fill();a.setAlpha(.5);a.begin();a.moveTo(0,c);a.lineTo(d,c-d);a.lineTo(b-d,c-d);a.lineTo(b,c);a.close();a.fill()};mxCellRenderer.registerShape(mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON,mxShapeBasicShadedButton);mxShapeBasicShadedButton.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(a.width/2,a.width/2,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d,a.y+d)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,e.x-a.x)))/100})]}; +function mxShapeBasicPie(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75}mxUtils.extend(mxShapeBasicPie,mxActor);mxShapeBasicPie.prototype.cst={PIE:"mxgraph.basic.pie"}; +mxShapeBasicPie.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle))));e=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle))));b*=.5;c*=.5;var f=b+Math.sin(d)*b,g=c-Math.cos(d)*c,h=b+Math.sin(e)*b,k=c-Math.cos(e)*c;d=e-d;0>d&&(d+=2*Math.PI);e=0;d>Math.PI&&(e=1);a.begin();a.moveTo(b,c);a.lineTo(f,g);a.arcTo(b,c,0,e,1,h,k);a.close();a.fillAndStroke()}; +mxCellRenderer.registerShape(mxShapeBasicPie.prototype.cst.PIE,mxShapeBasicPie);mxShapeBasicPie.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicPie.prototype.cst.PIE]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y-a.y-.5* +a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.startAngle=c})];a=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y- +a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.endAngle=c});d.push(a);return d};function mxShapeBasicArc(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75}mxUtils.extend(mxShapeBasicArc,mxActor);mxShapeBasicArc.prototype.cst={ARC:"mxgraph.basic.arc"}; +mxShapeBasicArc.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle))));e=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle))));b*=.5;c*=.5;var f=b+Math.sin(d)*b,g=c-Math.cos(d)*c,h=b+Math.sin(e)*b,k=c-Math.cos(e)*c;d=e-d;0>d&&(d+=2*Math.PI);e=0;d>Math.PI&&(e=1);a.begin();a.moveTo(f,g);a.arcTo(b,c,0,e,1,h,k);a.stroke()}; +mxCellRenderer.registerShape(mxShapeBasicArc.prototype.cst.ARC,mxShapeBasicArc);mxShapeBasicArc.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicArc.prototype.cst.ARC]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y-a.y-.5* +a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.startAngle=c})];a=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,b){var c=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(b.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1,Math.min(1,(b.y- +a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>c&&(c=1+c);this.state.style.endAngle=c});d.push(a);return d};function mxShapeBasicPartConcEllipse(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.startAngle=.25;this.endAngle=.75;this.arcWidth=.5}mxUtils.extend(mxShapeBasicPartConcEllipse,mxActor);mxShapeBasicPartConcEllipse.prototype.cst={PART_CONC_ELLIPSE:"mxgraph.basic.partConcEllipse"}; +mxShapeBasicPartConcEllipse.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"startAngle",this.startAngle))));e=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"endAngle",this.endAngle))));var f=1-Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arcWidth",this.arcWidth))));b*=.5;c*=.5;var g=b*f,f=c*f,h=b+Math.sin(d)*b,k=c-Math.cos(d)*c,l=b+Math.sin(d)*g,n=c-Math.cos(d)*f,m=b+ +Math.sin(e)*b,p=c-Math.cos(e)*c,q=b+Math.sin(e)*g,u=c-Math.cos(e)*f;d=e-d;0>d&&(d+=2*Math.PI);e=0;d>Math.PI&&(e=1);a.begin();a.moveTo(h,k);a.arcTo(b,c,0,e,1,m,p);a.lineTo(q,u);a.arcTo(g,f,0,e,0,l,n);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE,mxShapeBasicPartConcEllipse);mxShapeBasicPartConcEllipse.prototype.constraints=null; +Graph.handleFactory[mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE]=function(a){var d=[Graph.createHandle(a,["startAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"startAngle",this.startAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1, +Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.startAngle=b})],e=Graph.createHandle(a,["endAngle"],function(a){var b=2*Math.PI*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"endAngle",this.endAngle))));return new mxPoint(a.x+.5*a.width+Math.sin(b)*a.width*.5,a.y+.5*a.height-Math.cos(b)*a.height*.5)},function(a,c){var b=.5*Math.atan2(Math.round(100*Math.max(-1,Math.min(1,(c.x-a.x-.5*a.width)/(.5*a.width))))/100,-Math.round(100*Math.max(-1, +Math.min(1,(c.y-a.y-.5*a.height)/(.5*a.height))))/100)/Math.PI;0>b&&(b=1+b);this.state.style.endAngle=b});d.push(e);a=Graph.createHandle(a,["arcWidth"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"arcWidth",this.arcWidth))));return new mxPoint(a.x+a.width/2,a.y+b*a.height*.5)},function(a,c){this.state.style.arcWidth=Math.round(100*Math.max(0,Math.min(a.height/2,a.width/2,(c.y-a.y)/(.5*a.height))))/100});d.push(a);return d}; function mxShapeBootstrapRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRRect,mxShape);mxShapeBootstrapRRect.prototype.cst={PACKAGE:"mxgraph.bootstrap.rrect",R_SIZE:"rSize"};mxShapeBootstrapRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()}; mxCellRenderer.registerShape(mxShapeBootstrapRRect.prototype.cst.PACKAGE,mxShapeBootstrapRRect);function mxShapeBootstrapTopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapTopButton,mxShape);mxShapeBootstrapTopButton.prototype.cst={TOP_BUTTON:"mxgraph.bootstrap.topButton",R_SIZE:"rSize"}; mxShapeBootstrapTopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapTopButton.prototype.cst.TOP_BUTTON,mxShapeBootstrapTopButton); @@ -1681,8 +1743,11 @@ function mxFloorplanDoorLeft(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill mxFloorplanDoorLeft.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(b,5);a.arcTo(b,b,0,0,1,0,5+b);a.lineTo(0,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorLeft.prototype.cst.DOOR_LEFT,mxFloorplanDoorLeft);function mxFloorplanDoorRight(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanDoorRight,mxShape);mxFloorplanDoorRight.prototype.cst={DOOR_RIGHT:"mxgraph.floorplan.doorRight"}; mxFloorplanDoorRight.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)};mxFloorplanDoorRight.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(0,5);a.arcTo(b,b,0,0,0,b,5+b);a.lineTo(b,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorRight.prototype.cst.DOOR_RIGHT,mxFloorplanDoorRight); function mxFloorplanDoorDouble(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxFloorplanDoorDouble,mxShape);mxFloorplanDoorDouble.prototype.cst={DOOR_DOUBLE:"mxgraph.floorplan.doorDouble"};mxFloorplanDoorDouble.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c)}; -mxFloorplanDoorDouble.prototype.background=function(a,d,e,b,c){d=.5*b;a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(d,0);a.lineTo(d,5);a.moveTo(d,5);a.arcTo(d,d,0,0,1,0,5+d);a.lineTo(0,5);a.moveTo(d,5);a.arcTo(d,d,0,0,0,b,5+d);a.lineTo(b,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorDouble.prototype.cst.DOOR_DOUBLE,mxFloorplanDoorDouble);function mxShapeGmdlPlayer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1} -mxUtils.extend(mxShapeGmdlPlayer,mxShape);mxShapeGmdlPlayer.prototype.cst={SHAPE_PLAYER:"mxgraph.gmdl.player"};mxShapeGmdlPlayer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(0,0,b,c);a.fill();a.setShadow(!1);this.foreground(a,d,e,b,c)}; +mxFloorplanDoorDouble.prototype.background=function(a,d,e,b,c){d=.5*b;a.rect(0,0,b,5);a.fillAndStroke();a.begin();a.moveTo(d,0);a.lineTo(d,5);a.moveTo(d,5);a.arcTo(d,d,0,0,1,0,5+d);a.lineTo(0,5);a.moveTo(d,5);a.arcTo(d,d,0,0,0,b,5+d);a.lineTo(b,5);a.stroke()};mxCellRenderer.registerShape(mxFloorplanDoorDouble.prototype.cst.DOOR_DOUBLE,mxFloorplanDoorDouble); +function mxShapeFlowchartDocument2(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.size=.5}mxUtils.extend(mxShapeFlowchartDocument2,mxActor);mxShapeFlowchartDocument2.prototype.cst={DOCUMENT2:"mxgraph.flowchart.document2"}; +mxShapeFlowchartDocument2.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));a.begin();a.moveTo(b-5,0);a.arcTo(5,5,0,0,1,b,5);a.lineTo(b,c-d/2);a.quadTo(3*b/4,c-1.4*d,b/2,c-d/2);a.quadTo(b/4,c-d*(1-1.4),0,c-d/2);a.lineTo(0,d/2);a.lineTo(0,5);a.arcTo(5,5,0,0,1,5,0);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2,mxShapeFlowchartDocument2); +mxShapeFlowchartDocument2.prototype.constraints=null;Graph.handleFactory[mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2]=function(a){return[Graph.createHandle(a,["size"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(a.x+3*a.width/4,a.y+(1-d)*a.height)},function(a,e){this.state.style.size=Math.max(0,Math.min(1,(a.y+a.height-e.y)/a.height))})]}; +function mxShapeGmdlPlayer(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeGmdlPlayer,mxShape);mxShapeGmdlPlayer.prototype.cst={SHAPE_PLAYER:"mxgraph.gmdl.player"};mxShapeGmdlPlayer.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.begin();a.rect(0,0,b,c);a.fill();a.setShadow(!1);this.foreground(a,d,e,b,c)}; mxShapeGmdlPlayer.prototype.foreground=function(a,d,e,b,c){4<=c&&(a.setFillColor("#FFED00"),a.begin(),a.rect(0,0,.8*b,4),a.fill());14<=c&&33<=b&&(a.setFillColor("#717171"),a.begin(),a.rect(b-33,.5*c-7,4,14),a.fill(),a.begin(),a.rect(b-25,.5*c-7,4,14),a.fill())};mxCellRenderer.registerShape(mxShapeGmdlPlayer.prototype.cst.SHAPE_PLAYER,mxShapeGmdlPlayer);function mxShapeGmdlSwitch(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1} mxUtils.extend(mxShapeGmdlSwitch,mxShape);mxShapeGmdlSwitch.prototype.cst={SHAPE_SWITCH:"mxgraph.gmdl.switch",STATE:"switchState",STATE_ON:"on",STATE_OFF:"off"};mxShapeGmdlSwitch.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);var f=mxUtils.getValue(this.style,mxShapeGmdlSwitch.prototype.cst.STATE,mxShapeGmdlSwitch.prototype.cst.STATE_ON);this.background(a,d,e,b,c,f);a.setShadow(!0);this.foreground(a,d,e,b,c,f)}; mxShapeGmdlSwitch.prototype.background=function(a,d,e,b,c,f){a.begin();f===mxShapeGmdlSwitch.prototype.cst.STATE_ON?(a.save(),a.setAlpha("0.5"),a.moveTo(.135*b,.8*c),a.arcTo(.135*b,.3*c,0,0,1,.135*b,.2*c),a.lineTo(.675*b,.2*c),a.arcTo(.135*b,.3*c,0,0,1,.675*b,.8*c),a.close(),a.fillAndStroke(),a.restore()):(a.setFillColor("#BCBBBB"),a.moveTo(.225*b,.8*c),a.arcTo(.135*b,.3*c,0,0,1,.225*b,.2*c),a.lineTo(.865*b,.2*c),a.arcTo(.135*b,.3*c,0,0,1,.865*b,.8*c),a.close(),a.fillAndStroke())}; diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js index 6b24794a9..76ee129a7 100644 --- a/src/main/webapp/js/viewer.min.js +++ b/src/main/webapp/js/viewer.min.js @@ -2675,32 +2675,32 @@ g.setAttribute("in","blur");g.setAttribute("dx",this.svgShadowSize);g.setAttribu c.createElement("feComposite");g.setAttribute("in","offsetColor");g.setAttribute("in2","offsetBlur");g.setAttribute("operator","in");g.setAttribute("result","offsetBlur");f.appendChild(g);g=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"feBlend"):c.createElement("feBlend");g.setAttribute("in","SourceGraphic");g.setAttribute("in2","offsetBlur");f.appendChild(g);g=a.getElementsByTagName("defs");0==g.length?(c=null!=c.createElementNS?c.createElementNS(mxConstants.NS_SVG,"defs"):c.createElement("defs"), null!=a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c)):c=g[0];c.appendChild(f);b||((d||a.getElementsByTagName("g")[0]).setAttribute("filter","url(#"+this.shadowId+")"),isNaN(parseInt(a.getAttribute("width")))||(a.setAttribute("width",parseInt(a.getAttribute("width"))+6),a.setAttribute("height",parseInt(a.getAttribute("height"))+6)));return f};Graph.prototype.setShadowVisible=function(a,d){mxClient.IS_SVG&&(d=null!=d?d:!0,(this.shadowVisible=a)?this.view.getDrawPane().setAttribute("filter", "url(#"+this.shadowId+")"):this.view.getDrawPane().removeAttribute("filter"),d&&this.fireEvent(new mxEventObject("shadowVisibleChanged")))};Graph.prototype.selectUnlockedLayer=function(){if(null==this.defaultParent){var a=this.model.getChildCount(this.model.root),d,b=0;do d=this.model.getChildAt(this.model.root,b);while(b++<a&&"1"==mxUtils.getValue(this.getCellStyle(d),"locked","0"));null!=d&&this.setDefaultParent(d)}};mxStencilRegistry.libraries.mockup=[SHAPES_PATH+"/mockup/mxMockupButtons.js"]; -mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral=[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5= -[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android=[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]= -[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]=[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]= -[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan=[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap= -[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js", -STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors= -[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,m,k){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return h.apply(this,arguments)};PrintDialog.prototype.create=function(a,d){function b(){l.value=Math.max(1, -Math.min(h,Math.max(parseInt(l.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(l.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=Y.get(),m=1/d.pageScale,k=t.checked;if(k)var m=parseInt(T.value),r=parseInt(V.value),m=Math.min(p.height*r/(g.height/d.view.scale),p.width*m/(g.width/d.view.scale));else m=parseInt(q.value)/(100*d.pageScale),isNaN(m)&&(c=1/d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width* -c);p.height=Math.ceil(p.height*c);m*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,m,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss),d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage= -function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,m,e,h,f,!0)}return b}var c=parseInt(M.value)/100;isNaN(c)&&(c=1,M.value="100 %");var c=.75*c,g=w.value,e=l.value,h=!k.checked,m=null;h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked|| -(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var x=a.pages[u],g=x==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,n=null,v=null;null==x.viewState&&null==x.mapping&&null==x.root&&a.updatePageRoot(x);null!=x.viewState?(e=x.viewState.pageVisible,r=x.viewState.mathEnabled,n=x.viewState.background,v=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&&(r="0"!=x.mapping.diagramMap.get("mathEnabled"),n=x.mapping.diagramMap.get("background"), -v=x.mapping.diagramMap.get("backgroundImage"),v=null!=v&&0<v.length?JSON.parse(v):null);g.background=n;g.backgroundImage=null!=v?new mxImage(v.src,v.width,v.height):null;g.pageVisible=e;g.mathEnabled=r;var A=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?u+1:A.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(x);g.model.setRoot(x.root)}m=b(g,m,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else m=b(f);m.mathEnabled&& -(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'),h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"), -h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&d&&PrintDialog.printPreview(m)}var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3"); -e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio");k.setAttribute("name","pages-printdialog");m.appendChild(k);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("printAllPages"));m.appendChild(e);mxUtils.br(m);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");m.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");m.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type","number");w.setAttribute("min","1");w.style.width="50px";m.appendChild(w);e=document.createElement("span"); -mxUtils.write(e,mxResources.get("to"));m.appendChild(e);var l=w.cloneNode(!0);m.appendChild(l);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+1;w.value=p;l.value=p;break}w.setAttribute("max",h);l.setAttribute("max",h);1<h&&g.appendChild(m);var n=document.createElement("div"); -n.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");n.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));n.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;";q.setAttribute("value","100 %");q.style.width="50px";n.appendChild(q);mxEvent.addListener(q,"focus",function(){v.checked=!0}); -g.appendChild(n);var m=m.cloneNode(!1),t=v.cloneNode(!0);t.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);m.appendChild(e);n=document.createElement("table");n.style.display="inline-block";var G=document.createElement("tbody"),K=document.createElement("tr"),S=K.cloneNode(!0),J=document.createElement("td"),N=J.cloneNode(!0),U=J.cloneNode(!0),D=J.cloneNode(!0), -W=J.cloneNode(!0),O=J.cloneNode(!0);J.style.textAlign="right";D.style.textAlign="right";mxUtils.write(J,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";N.appendChild(T);e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsAcross"));U.appendChild(e);mxUtils.write(D,mxResources.get("fitToBy"));var V=T.cloneNode(!0);W.appendChild(V); -mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(V,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));O.appendChild(e);K.appendChild(J);K.appendChild(N);K.appendChild(U);S.appendChild(D);S.appendChild(W);S.appendChild(O);G.appendChild(K);G.appendChild(S);n.appendChild(G);m.appendChild(n);g.appendChild(m);m=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom= -"12px";mxUtils.write(e,mxResources.get("paperSize"));m.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Y=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));m.appendChild(e);var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","100 %");M.style.width="60px";m.appendChild(M); -g.appendChild(m);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&e.appendChild(m);a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}),n.className="geBtn",e.appendChild(n));PrintDialog.previewEnabled&&(n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog(); -c(!1)}),n.className="geBtn",e.appendChild(n));n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";e.appendChild(n);a.editor.cancelFirst||e.appendChild(m);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background= -this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&&this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!= -this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); +mxStencilRegistry.libraries.arrows2=[SHAPES_PATH+"/mxArrows.js"];mxStencilRegistry.libraries.atlassian=[STENCIL_PATH+"/atlassian.xml"];mxStencilRegistry.libraries.bpmn=[SHAPES_PATH+"/bpmn/mxBpmnShape2.js",STENCIL_PATH+"/bpmn.xml"];mxStencilRegistry.libraries.er=[SHAPES_PATH+"/er/mxER.js"];mxStencilRegistry.libraries.flowchart=[SHAPES_PATH+"/mxFlowchart.js",STENCIL_PATH+"/flowchart.xml"];mxStencilRegistry.libraries.ios=[SHAPES_PATH+"/mockup/mxMockupiOS.js"];mxStencilRegistry.libraries.rackGeneral= +[SHAPES_PATH+"/rack/mxRack.js",STENCIL_PATH+"/rack/general.xml"];mxStencilRegistry.libraries.rackF5=[STENCIL_PATH+"/rack/f5.xml"];mxStencilRegistry.libraries.lean_mapping=[SHAPES_PATH+"/mxLeanMap.js",STENCIL_PATH+"/lean_mapping.xml"];mxStencilRegistry.libraries.basic=[SHAPES_PATH+"/mxBasic.js",STENCIL_PATH+"/basic.xml"];mxStencilRegistry.libraries.ios7icons=[STENCIL_PATH+"/ios7/icons.xml"];mxStencilRegistry.libraries.ios7ui=[SHAPES_PATH+"/ios7/mxIOS7Ui.js",STENCIL_PATH+"/ios7/misc.xml"];mxStencilRegistry.libraries.android= +[SHAPES_PATH+"/mxAndroid.js",STENCIL_PATH+"/android/android.xml"];mxStencilRegistry.libraries["electrical/transmission"]=[SHAPES_PATH+"/mxElectrical.js",STENCIL_PATH+"/electrical/transmission.xml"];mxStencilRegistry.libraries["mockup/buttons"]=[SHAPES_PATH+"/mockup/mxMockupButtons.js"];mxStencilRegistry.libraries["mockup/containers"]=[SHAPES_PATH+"/mockup/mxMockupContainers.js"];mxStencilRegistry.libraries["mockup/forms"]=[SHAPES_PATH+"/mockup/mxMockupForms.js"];mxStencilRegistry.libraries["mockup/graphics"]= +[SHAPES_PATH+"/mockup/mxMockupGraphics.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/markup"]=[SHAPES_PATH+"/mockup/mxMockupMarkup.js"];mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/navigation"]=[SHAPES_PATH+"/mockup/mxMockupNavigation.js",STENCIL_PATH+"/mockup/misc.xml"];mxStencilRegistry.libraries["mockup/text"]=[SHAPES_PATH+"/mockup/mxMockupText.js"];mxStencilRegistry.libraries.floorplan= +[SHAPES_PATH+"/mxFloorplan.js",STENCIL_PATH+"/floorplan.xml"];mxStencilRegistry.libraries.bootstrap=[SHAPES_PATH+"/mxBootstrap.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml= +[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves= +[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(a){var d=null;null!=a&&0<a.length&&("ER"==a.substring(0,2)?d="mxgraph.er":"sysML"==a.substring(0,5)&&(d="mxgraph.sysml"));return d};var h=mxMarker.createMarker;mxMarker.createMarker=function(a,d,b,c,f,g,e,p,m,k){if(null!=b&&null==mxMarker.markers[b]){var u=this.getPackageForType(b);null!=u&&mxStencilRegistry.getStencil(u)}return h.apply(this,arguments)}; +PrintDialog.prototype.create=function(a,d){function b(){l.value=Math.max(1,Math.min(h,Math.max(parseInt(l.value),parseInt(w.value))));w.value=Math.max(1,Math.min(h,Math.min(parseInt(l.value),parseInt(w.value))))}function c(d){function b(d,b,f){var g=d.getGraphBounds(),e=0,h=0,p=Y.get(),m=1/d.pageScale,k=t.checked;if(k)var m=parseInt(T.value),r=parseInt(V.value),m=Math.min(p.height*r/(g.height/d.view.scale),p.width*m/(g.width/d.view.scale));else m=parseInt(q.value)/(100*d.pageScale),isNaN(m)&&(c=1/ +d.pageScale,q.value="100 %");p=mxRectangle.fromRectangle(p);p.width=Math.ceil(p.width*c);p.height=Math.ceil(p.height*c);m*=c;!k&&d.pageVisible?(g=d.getPageLayout(),e-=g.x*p.width,h-=g.y*p.height):k=!0;if(null==b){b=PrintDialog.createPrintPreview(d,m,p,0,e,h,k);b.pageSelector=!1;b.mathEnabled=!1;d=a.getCurrentFile();null!=d&&(b.title=d.getTitle());var u=b.writeHead;b.writeHead=function(d){u.apply(this,arguments);null!=a.editor.fontCss&&(d.writeln('<style type="text/css">'),d.writeln(a.editor.fontCss), +d.writeln("</style>"))};if("undefined"!==typeof MathJax){var w=b.renderPage;b.renderPage=function(a,d,b,c,f,g){var e=w.apply(this,arguments);this.graph.mathEnabled?this.mathEnabled=!0:e.className="geDisableMathJax";return e}}b.open(null,null,f,!0)}else{p=d.background;if(null==p||""==p||p==mxConstants.NONE)p="#ffffff";b.backgroundColor=p;b.autoOrigin=k;b.appendGraph(d,m,e,h,f,!0)}return b}var c=parseInt(M.value)/100;isNaN(c)&&(c=1,M.value="100 %");var c=.75*c,g=w.value,e=l.value,h=!k.checked,m=null; +h&&(h=g==p&&e==p);if(!h&&null!=a.pages&&a.pages.length){var r=0,h=a.pages.length-1;k.checked||(r=parseInt(g)-1,h=parseInt(e)-1);for(var u=r;u<=h;u++){var x=a.pages[u],g=x==a.currentPage?f:null;if(null==g){var g=a.createTemporaryGraph(f.getStylesheet()),e=!0,r=!1,n=null,v=null;null==x.viewState&&null==x.mapping&&null==x.root&&a.updatePageRoot(x);null!=x.viewState?(e=x.viewState.pageVisible,r=x.viewState.mathEnabled,n=x.viewState.background,v=x.viewState.backgroundImage):null!=x.mapping&&null!=x.mapping.diagramMap&& +(r="0"!=x.mapping.diagramMap.get("mathEnabled"),n=x.mapping.diagramMap.get("background"),v=x.mapping.diagramMap.get("backgroundImage"),v=null!=v&&0<v.length?JSON.parse(v):null);g.background=n;g.backgroundImage=null!=v?new mxImage(v.src,v.width,v.height):null;g.pageVisible=e;g.mathEnabled=r;var A=g.getGlobalVariable;g.getGlobalVariable=function(a){return"page"==a?x.getName():"pagenumber"==a?u+1:A.apply(this,arguments)};document.body.appendChild(g.container);a.updatePageRoot(x);g.model.setRoot(x.root)}m= +b(g,m,u!=h);g!=f&&g.container.parentNode.removeChild(g.container)}}else m=b(f);m.mathEnabled&&(h=m.wnd.document,h.writeln('<script type="text/x-mathjax-config">'),h.writeln("MathJax.Hub.Config({"),h.writeln('messageStyle: "none",'),h.writeln('jax: ["input/TeX", "input/MathML", "input/AsciiMath", "output/HTML-CSS"],'),h.writeln('extensions: ["tex2jax.js", "mml2jax.js", "asciimath2jax.js"],'),h.writeln("TeX: {"),h.writeln('extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"]'), +h.writeln("},"),h.writeln("tex2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("},"),h.writeln("asciimath2jax: {"),h.writeln('\tignoreClass: "geDisableMathJax"'),h.writeln("}"),h.writeln("});"),d&&(h.writeln("MathJax.Hub.Queue(function () {"),h.writeln("window.print();"),h.writeln("});")),h.writeln("\x3c/script>"),h.writeln('<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js">\x3c/script>'));m.closeDocument();!m.mathEnabled&&d&&PrintDialog.printPreview(m)} +var f=a.editor.graph,g=document.createElement("div"),e=document.createElement("h3");e.style.width="100%";e.style.textAlign="center";e.style.marginTop="0px";mxUtils.write(e,d||mxResources.get("print"));g.appendChild(e);var h=1,p=1,m=document.createElement("div");m.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-bottom:8px;";k.setAttribute("value","all");k.setAttribute("type","radio"); +k.setAttribute("name","pages-printdialog");m.appendChild(k);e=document.createElement("span");mxUtils.write(e,mxResources.get("printAllPages"));m.appendChild(e);mxUtils.br(m);var u=k.cloneNode(!0);k.setAttribute("checked","checked");u.setAttribute("value","range");m.appendChild(u);e=document.createElement("span");mxUtils.write(e,mxResources.get("pages")+":");m.appendChild(e);var w=document.createElement("input");w.style.cssText="margin:0 8px 0 8px;";w.setAttribute("value","1");w.setAttribute("type", +"number");w.setAttribute("min","1");w.style.width="50px";m.appendChild(w);e=document.createElement("span");mxUtils.write(e,mxResources.get("to"));m.appendChild(e);var l=w.cloneNode(!0);m.appendChild(l);mxEvent.addListener(w,"focus",function(){u.checked=!0});mxEvent.addListener(l,"focus",function(){u.checked=!0});mxEvent.addListener(w,"change",b);mxEvent.addListener(l,"change",b);if(null!=a.pages&&(h=a.pages.length,null!=a.currentPage))for(e=0;e<a.pages.length;e++)if(a.currentPage==a.pages[e]){p=e+ +1;w.value=p;l.value=p;break}w.setAttribute("max",h);l.setAttribute("max",h);1<h&&g.appendChild(m);var n=document.createElement("div");n.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");n.appendChild(v);e=document.createElement("span");mxUtils.write(e,mxResources.get("adjustTo"));n.appendChild(e);var q=document.createElement("input");q.style.cssText="margin:0 8px 0 8px;"; +q.setAttribute("value","100 %");q.style.width="50px";n.appendChild(q);mxEvent.addListener(q,"focus",function(){v.checked=!0});g.appendChild(n);var m=m.cloneNode(!1),t=v.cloneNode(!0);t.setAttribute("value","fit");v.setAttribute("checked","checked");e=document.createElement("div");e.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";e.appendChild(t);m.appendChild(e);n=document.createElement("table");n.style.display="inline-block";var G=document.createElement("tbody"), +K=document.createElement("tr"),S=K.cloneNode(!0),J=document.createElement("td"),N=J.cloneNode(!0),U=J.cloneNode(!0),D=J.cloneNode(!0),W=J.cloneNode(!0),O=J.cloneNode(!0);J.style.textAlign="right";D.style.textAlign="right";mxUtils.write(J,mxResources.get("fitTo"));var T=document.createElement("input");T.style.cssText="margin:0 8px 0 8px;";T.setAttribute("value","1");T.setAttribute("min","1");T.setAttribute("type","number");T.style.width="40px";N.appendChild(T);e=document.createElement("span");mxUtils.write(e, +mxResources.get("fitToSheetsAcross"));U.appendChild(e);mxUtils.write(D,mxResources.get("fitToBy"));var V=T.cloneNode(!0);W.appendChild(V);mxEvent.addListener(T,"focus",function(){t.checked=!0});mxEvent.addListener(V,"focus",function(){t.checked=!0});e=document.createElement("span");mxUtils.write(e,mxResources.get("fitToSheetsDown"));O.appendChild(e);K.appendChild(J);K.appendChild(N);K.appendChild(U);S.appendChild(D);S.appendChild(W);S.appendChild(O);G.appendChild(K);G.appendChild(S);n.appendChild(G); +m.appendChild(n);g.appendChild(m);m=document.createElement("div");e=document.createElement("div");e.style.fontWeight="bold";e.style.marginBottom="12px";mxUtils.write(e,mxResources.get("paperSize"));m.appendChild(e);e=document.createElement("div");e.style.marginBottom="12px";var Y=PageSetupDialog.addPageFormatPanel(e,"printdialog",a.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);m.appendChild(e);e=document.createElement("span");mxUtils.write(e,mxResources.get("pageScale"));m.appendChild(e); +var M=document.createElement("input");M.style.cssText="margin:0 8px 0 8px;";M.setAttribute("value","100 %");M.style.width="60px";m.appendChild(M);g.appendChild(m);e=document.createElement("div");e.style.cssText="text-align:right;margin:62px 0 0 0;";m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";a.editor.cancelFirst&&e.appendChild(m);a.isOffline()||(n=mxUtils.button(mxResources.get("help"),function(){f.openLink("https://desk.draw.io/support/solutions/articles/16000048947")}), +n.className="geBtn",e.appendChild(n));PrintDialog.previewEnabled&&(n=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();c(!1)}),n.className="geBtn",e.appendChild(n));n=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();c(!0)});n.className="geBtn gePrimaryBtn";e.appendChild(n);a.editor.cancelFirst||e.appendChild(m);g.appendChild(e);this.container=g};var w=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null== +this.page&&(this.page=this.ui.currentPage);this.page!=this.ui.currentPage?null!=this.page.viewState&&(this.ignoreColor||(this.page.viewState.background=this.color),this.ignoreImage||(this.page.viewState.backgroundImage=this.image),null!=this.format&&(this.page.viewState.pageFormat=this.format),null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled),null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)):(w.apply(this,arguments),null!=this.mathEnabled&& +this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible))}})(); (function(){var a=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);a.beforeDecode=function(a,e,c){c.ui=a.ui;return e};a.afterDecode=function(a,e,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(a)})();(function(){EditorUi.VERSION="@DRAWIO-VERSION@";EditorUi.compactUi="atlas"!=uiTheme;EditorUi.enableLogging=/.*\.draw\.io$/.test(window.location.hostname);EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.scratchpadHelpLink="https://desk.draw.io/support/solutions/articles/16000042367";EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>'; EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.sidebarFooterHeight=36;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;"; EditorUi.prototype.svgBrokenImage=Graph.createSvgImage(10,10,'<rect x="0" y="0" width="10" height="10" stroke="#000" fill="transparent"/><path d="m 0 0 L 10 10 L 0 10 L 10 0" stroke="#000" fill="transparent"/>');EditorUi.prototype.crossOriginImages=!mxClient.IS_IE;EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;EditorUi.prototype.resampleThreshold=1E5;EditorUi.prototype.maxImageBytes=1E6;EditorUi.prototype.maxBackgroundBytes=25E5;EditorUi.prototype.currentFile=null;EditorUi.prototype.printPdfExport= diff --git a/src/main/webapp/plugins/cConf-1-4-8.js b/src/main/webapp/plugins/cConf-1-4-8.js index 161dee641..1eacda247 100644 --- a/src/main/webapp/plugins/cConf-1-4-8.js +++ b/src/main/webapp/plugins/cConf-1-4-8.js @@ -156,8 +156,8 @@ Draw.loadPlugin(function(ui) if (td != null) { - td.innerHTML = '<a title="faq" href="https://marketplace.atlassian.com/plugins/com.mxgraph.confluence.plugins.diagramly/cloud/reviews" target="_blank">' + - '<img border="0" align="absmiddle" style="margin-top:-4px;"/>Enjoying this free plugin? Please help us to 4 stars.</a>'; + td.innerHTML = '<a title="faq" href="/wiki/plugins/servlet/upm" target="_blank">' + + '<img border="0" align="absmiddle" style="margin-top:-4px;"/>Please license draw.io to enable all functionality</a>'; } td = document.getElementById('geFooterItem1'); @@ -174,22 +174,4 @@ Draw.loadPlugin(function(ui) td.parentNode.removeChild(td); } } - - var lang = urlParams['lang']; - var site = urlParams['site']; - var user = urlParams['user']; - - try - { - var img = new Image(); - img.src = 'https://log.draw.io/log?severity=CONFIG&msg=conf-cloud-edit' + - ((lang != null) ? ':lang=' + encodeURIComponent(lang) : '') + - ((site != null) ? ':site=' + encodeURIComponent(site) : '') + - ((user != null) ? ':user=' + encodeURIComponent(user) : '') + - '&v=' + encodeURIComponent(EditorUi.VERSION); - } - catch (e) - { - // not important, just don't break editing because of a log - } }); diff --git a/src/main/webapp/shapes/mxBasic.js b/src/main/webapp/shapes/mxBasic.js index a83bbce7f..fc29cff8f 100644 --- a/src/main/webapp/shapes/mxBasic.js +++ b/src/main/webapp/shapes/mxBasic.js @@ -441,9 +441,10 @@ Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE] = function(state { var handles = [Graph.createHandle(state, ['isoAngle'], function(bounds) { - var isoAngle = Math.max(0, Math.min(100, parseFloat(mxUtils.getValue(this.state.style, 'isoAngle', this.isoAngle)))); + var isoAngle = Math.max(0.01, Math.min(94, parseFloat(mxUtils.getValue(this.state.style, 'isoAngle', this.isoAngle)))) * Math.PI / 200 ; + var isoH = Math.min(bounds.width * Math.tan(isoAngle), bounds.height * 0.5); - return new mxPoint(bounds.x, bounds.y + isoAngle); + return new mxPoint(bounds.x, bounds.y + isoH); }, function(bounds, pt) { this.state.style['isoAngle'] = Math.round(100 * Math.max(0, Math.min(100, pt.y - bounds.y))) / 100; @@ -885,7 +886,7 @@ Graph.handleFactory[mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2] = f { var dx = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); - return new mxPoint(bounds.x + dx * bounds.width / 2, bounds.y + 10); + return new mxPoint(bounds.x + dx * bounds.width / 2, bounds.y + dx * bounds.height / 2); }, function(bounds, pt) { this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(1, 2 * (pt.x - bounds.x) / bounds.width))) / 100; @@ -894,3 +895,1366 @@ Graph.handleFactory[mxShapeBasic4PointStar2.prototype.cst.FOUR_POINT_STAR_2] = f return handles; }; +//********************************************************************************************************************************************************** +//Diagonal Snip Rectangle +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicDiagSnipRect(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicDiagSnipRect, mxActor); + +mxShapeBasicDiagSnipRect.prototype.cst = {DIAG_SNIP_RECT : 'mxgraph.basic.diag_snip_rect'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicDiagSnipRect.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))) * 2; + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(dx, 0); + c.lineTo(w, 0); + c.lineTo(w, h - dx); + c.lineTo(w - dx, h); + c.lineTo(0, h); + c.lineTo(0, dx); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT, mxShapeBasicDiagSnipRect); + +mxShapeBasicDiagSnipRect.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicDiagSnipRect.prototype.cst.DIAG_SNIP_RECT] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 4, bounds.width / 4, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 4, bounds.width / 4, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + + +//********************************************************************************************************************************************************** +//Diagonal Round Rectangle +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicDiagRoundRect(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicDiagRoundRect, mxActor); + +mxShapeBasicDiagRoundRect.prototype.cst = {DIAG_ROUND_RECT : 'mxgraph.basic.diag_round_rect'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicDiagRoundRect.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))) * 2; + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(dx, 0); + c.lineTo(w, 0); + c.lineTo(w, h - dx); + c.arcTo(dx, dx, 0, 0, 1, w - dx, h); + c.lineTo(0, h); + c.lineTo(0, dx); + c.arcTo(dx, dx, 0, 0, 1, dx, 0); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT, mxShapeBasicDiagRoundRect); + +mxShapeBasicDiagRoundRect.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicDiagRoundRect.prototype.cst.DIAG_ROUND_RECT] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 4, bounds.width / 4, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 4, bounds.width / 4, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Corner Round Rectangle +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicCornerRoundRect(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicCornerRoundRect, mxActor); + +mxShapeBasicCornerRoundRect.prototype.cst = {CORNER_ROUND_RECT : 'mxgraph.basic.corner_round_rect'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicCornerRoundRect.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))) * 2; + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(dx, 0); + c.lineTo(w, 0); + c.lineTo(w, h); + c.lineTo(0, h); + c.lineTo(0, dx); + c.arcTo(dx, dx, 0, 0, 1, dx, 0); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT, mxShapeBasicCornerRoundRect); + +mxShapeBasicCornerRoundRect.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicCornerRoundRect.prototype.cst.CORNER_ROUND_RECT] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 4, bounds.width / 4, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 4, bounds.width / 4, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Plaque +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicPlaque(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicPlaque, mxActor); + +mxShapeBasicPlaque.prototype.cst = {PLAQUE : 'mxgraph.basic.plaque'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicPlaque.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))) * 2; + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(w - dx, 0); + c.arcTo(dx, dx, 0, 0, 0, w, dx); + c.lineTo(w, h - dx); + c.arcTo(dx, dx, 0, 0, 0, w - dx, h); + c.lineTo(dx, h); + c.arcTo(dx, dx, 0, 0, 0, 0, h - dx); + c.lineTo(0, dx); + c.arcTo(dx, dx, 0, 0, 0, dx, 0); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicPlaque.prototype.cst.PLAQUE, mxShapeBasicPlaque); + +mxShapeBasicPlaque.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicPlaque.prototype.cst.PLAQUE] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 4, bounds.width / 4, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx * 1.41, bounds.y + dx * 1.41); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 4, bounds.width / 4, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Frame +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicFrame(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicFrame, mxActor); + +mxShapeBasicFrame.prototype.cst = {FRAME : 'mxgraph.basic.frame'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicFrame.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(w, 0); + c.lineTo(w, h); + c.lineTo(0, h); + c.lineTo(0, 0); + c.close(); + c.moveTo(dx, dx); + c.lineTo(dx, h - dx); + c.lineTo(w - dx, h - dx); + c.lineTo(w - dx, dx); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicFrame.prototype.cst.FRAME, mxShapeBasicFrame); + +mxShapeBasicFrame.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicFrame.prototype.cst.FRAME] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 2, bounds.width / 2, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Plaque Frame +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicPlaqueFrame(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicPlaqueFrame, mxActor); + +mxShapeBasicPlaqueFrame.prototype.cst = {PLAQUE_FRAME : 'mxgraph.basic.plaque_frame'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicPlaqueFrame.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.25, h * 0.25, dx); + + c.begin(); + c.moveTo(w - dx, 0); + c.arcTo(dx, dx, 0, 0, 0, w, dx); + c.lineTo(w, h - dx); + c.arcTo(dx, dx, 0, 0, 0, w - dx, h); + c.lineTo(dx, h); + c.arcTo(dx, dx, 0, 0, 0, 0, h - dx); + c.lineTo(0, dx); + c.arcTo(dx, dx, 0, 0, 0, dx, 0); + c.close(); + + c.moveTo(dx * 2, dx); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, dx, dx * 2); + c.lineTo(dx, h - 2 * dx); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, dx * 2, h - dx); + c.lineTo(w - 2 * dx, h - dx); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, w - dx, h - 2 * dx); + c.lineTo(w - dx, dx * 2); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, w - 2 * dx, dx); + c.close(); + + c.fillAndStroke(); + +}; + +mxCellRenderer.registerShape(mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME, mxShapeBasicPlaqueFrame); + +mxShapeBasicPlaqueFrame.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicPlaqueFrame.prototype.cst.PLAQUE_FRAME] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 4, bounds.width / 4, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 4, bounds.width / 4, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Rounded Frame +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicRoundedFrame(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicRoundedFrame, mxActor); + +mxShapeBasicRoundedFrame.prototype.cst = {ROUNDED_FRAME : 'mxgraph.basic.rounded_frame'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicRoundedFrame.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.25, h * 0.25, dx); + + c.begin(); + c.moveTo(w - 2 * dx, 0); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, w, 2 * dx); + c.lineTo(w, h - 2 * dx); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, w - 2 * dx, h); + c.lineTo(dx * 2, h); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, 0, h - 2 * dx); + c.lineTo(0, 2 * dx); + c.arcTo(dx * 2, dx * 2, 0, 0, 1, 2 * dx, 0); + c.close(); + + c.moveTo(dx * 2, dx); + c.arcTo(dx, dx, 0, 0, 0, dx, dx * 2); + c.lineTo(dx, h - 2 * dx); + c.arcTo(dx, dx, 0, 0, 0, dx * 2, h - dx); + c.lineTo(w - 2 * dx, h - dx); + c.arcTo(dx, dx, 0, 0, 0, w - dx, h - 2 * dx); + c.lineTo(w - dx, dx * 2); + c.arcTo(dx, dx, 0, 0, 0, w - 2 * dx, dx); + c.close(); + + c.fillAndStroke(); + +}; + +mxCellRenderer.registerShape(mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME, mxShapeBasicRoundedFrame); + +mxShapeBasicRoundedFrame.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicRoundedFrame.prototype.cst.ROUNDED_FRAME] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 4, bounds.width / 4, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 4, bounds.width / 4, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Frame Corner +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicFrameCorner(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicFrameCorner, mxActor); + +mxShapeBasicFrameCorner.prototype.cst = {FRAME_CORNER : 'mxgraph.basic.frame_corner'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicFrameCorner.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(0, 0); + c.lineTo(w, 0); + c.lineTo(w - dx, dx); + c.lineTo(dx, dx); + c.lineTo(dx, h - dx); + c.lineTo(0, h); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER, mxShapeBasicFrameCorner); + +mxShapeBasicFrameCorner.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicFrameCorner.prototype.cst.FRAME_CORNER] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 2, bounds.width / 2, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Diagonal Stripe +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicDiagStripe(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicDiagStripe, mxActor); + +mxShapeBasicDiagStripe.prototype.cst = {DIAG_STRIPE : 'mxgraph.basic.diag_stripe'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicDiagStripe.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w, h, dx); + + c.begin(); + c.moveTo(0, h); + c.lineTo(w, 0); + c.lineTo(w, Math.min(dx * 100 / w, h)); + c.lineTo(Math.min(dx * 100 / h, w), h); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE, mxShapeBasicDiagStripe); + +mxShapeBasicDiagStripe.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicDiagStripe.prototype.cst.DIAG_STRIPE] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 2, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + bounds.height); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Donut +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicDonut(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicDonut, mxActor); + +mxShapeBasicDonut.prototype.cst = {DONUT : 'mxgraph.basic.donut'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicDonut.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(0, h * 0.5); + c.arcTo(w * 0.5, h * 0.5, 0, 0, 1, w * 0.5, 0); + c.arcTo(w * 0.5, h * 0.5, 0, 0, 1, w, h * 0.5); + c.arcTo(w * 0.5, h * 0.5, 0, 0, 1, w * 0.5, h); + c.arcTo(w * 0.5, h * 0.5, 0, 0, 1, 0, h * 0.5); + c.close(); + c.moveTo(w * 0.5, dx); + c.arcTo(w * 0.5 - dx, h * 0.5 - dx, 0, 0, 0, dx, h * 0.5); + c.arcTo(w * 0.5 - dx, h * 0.5 - dx, 0, 0, 0, w * 0.5, h - dx); + c.arcTo(w * 0.5 - dx, h * 0.5 - dx, 0, 0, 0, w - dx, h * 0.5); + c.arcTo(w * 0.5 - dx, h * 0.5 - dx, 0, 0, 0, w * 0.5, dx); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicDonut.prototype.cst.DONUT, mxShapeBasicDonut); + +mxShapeBasicDonut.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicDonut.prototype.cst.DONUT] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 2, bounds.width / 2, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + bounds.height / 2); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Layered Rect +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicLayeredRect(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicLayeredRect, mxActor); + +mxShapeBasicLayeredRect.prototype.cst = {LAYERED_RECT : 'mxgraph.basic.layered_rect'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicLayeredRect.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(dx, dx); + c.lineTo(w, dx); + c.lineTo(w, h); + c.lineTo(dx, h); + c.close(); + c.fillAndStroke(); + + c.begin(); + c.moveTo(dx * 0.5, dx * 0.5); + c.lineTo(w - dx * 0.5, dx * 0.5); + c.lineTo(w - dx * 0.5, h - dx * 0.5); + c.lineTo(dx * 0.5, h - dx * 0.5); + c.close(); + c.fillAndStroke(); + + c.begin(); + c.moveTo(0, 0); + c.lineTo(w - dx, 0); + c.lineTo(w - dx, h - dx); + c.lineTo(0, h - dx); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT, mxShapeBasicLayeredRect); + +mxShapeBasicLayeredRect.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicLayeredRect.prototype.cst.LAYERED_RECT] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 2, bounds.width / 2, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + bounds.width - dx, bounds.y + bounds.height - dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, - pt.x + bounds.width + bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Button +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicButton(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicButton, mxActor); + +mxShapeBasicButton.prototype.cst = {BUTTON : 'mxgraph.basic.button'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicButton.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(0, 0); + c.lineTo(w, 0); + c.lineTo(w, h); + c.lineTo(0, h); + c.close(); + c.fillAndStroke(); + + c.setShadow(false); + c.setLineJoin('round'); + + c.begin(); + c.moveTo(0, h); + c.lineTo(0, 0); + c.lineTo(dx, dx); + c.lineTo(dx, h - dx); + c.close(); + c.fillAndStroke(); + + c.begin(); + c.moveTo(0, 0); + c.lineTo(w, 0); + c.lineTo(w - dx, dx); + c.lineTo(dx, dx); + c.close(); + c.fillAndStroke(); + + c.begin(); + c.moveTo(w, 0); + c.lineTo(w, h); + c.lineTo(w - dx, h - dx); + c.lineTo(w - dx, dx); + c.close(); + c.fillAndStroke(); + + c.begin(); + c.moveTo(0, h); + c.lineTo(dx, h - dx); + c.lineTo(w - dx, h - dx); + c.lineTo(w, h); + c.close(); + c.fillAndStroke(); + + c.begin(); + c.moveTo(0, h); + c.lineTo(0, 0); + c.lineTo(dx, dx); + c.lineTo(dx, h - dx); + c.close(); + c.fillAndStroke(); + + +}; + +mxCellRenderer.registerShape(mxShapeBasicButton.prototype.cst.BUTTON, mxShapeBasicButton); + +mxShapeBasicButton.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicButton.prototype.cst.BUTTON] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 2, bounds.width / 2, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Shaded Button +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicShadedButton(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.dx = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicShadedButton, mxActor); + +mxShapeBasicShadedButton.prototype.cst = {SHADED_BUTTON : 'mxgraph.basic.shaded_button'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicShadedButton.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + c.setShadow(false); + + var dx = Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx)))); + + dx = Math.min(w * 0.5, h * 0.5, dx); + + c.begin(); + c.moveTo(0, 0); + c.lineTo(w, 0); + c.lineTo(w, h); + c.lineTo(0, h); + c.close(); + c.fill(); + + c.setFillColor('#ffffff'); + c.setAlpha(0.25); + c.begin(); + c.moveTo(0, h); + c.lineTo(0, 0); + c.lineTo(dx, dx); + c.lineTo(dx, h - dx); + c.close(); + c.fill(); + + c.setAlpha(0.5); + c.begin(); + c.moveTo(0, 0); + c.lineTo(w, 0); + c.lineTo(w - dx, dx); + c.lineTo(dx, dx); + c.close(); + c.fill(); + + c.setFillColor('#000000'); + c.setAlpha(0.25); + c.begin(); + c.moveTo(w, 0); + c.lineTo(w, h); + c.lineTo(w - dx, h - dx); + c.lineTo(w - dx, dx); + c.close(); + c.fill(); + + c.setAlpha(0.5); + c.begin(); + c.moveTo(0, h); + c.lineTo(dx, h - dx); + c.lineTo(w - dx, h - dx); + c.lineTo(w, h); + c.close(); + c.fill(); + + +}; + +mxCellRenderer.registerShape(mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON, mxShapeBasicShadedButton); + +mxShapeBasicShadedButton.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicShadedButton.prototype.cst.SHADED_BUTTON] = function(state) +{ + var handles = [Graph.createHandle(state, ['dx'], function(bounds) + { + var dx = Math.max(0, Math.min(bounds.width / 2, bounds.width / 2, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx)))); + + return new mxPoint(bounds.x + dx, bounds.y + dx); + }, function(bounds, pt) + { + this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, pt.x - bounds.x))) / 100; + })]; + + return handles; +}; + +//********************************************************************************************************************************************************** +//Pie +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicPie(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.startAngle = 0.25; + this.endAngle = 0.75; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicPie, mxActor); + +mxShapeBasicPie.prototype.cst = {PIE : 'mxgraph.basic.pie'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicPie.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var startAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'startAngle', this.startAngle)))); + var endAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'endAngle', this.endAngle)))); + var rx = w * 0.5; + var ry = h * 0.5; + + var startX = rx + Math.sin(startAngle) * rx; + var startY = ry - Math.cos(startAngle) * ry; + var endX = rx + Math.sin(endAngle) * rx; + var endY = ry - Math.cos(endAngle) * ry; + + var angDiff = endAngle - startAngle; + + if (angDiff < 0) + { + angDiff = angDiff + Math.PI * 2; + } + + var bigArc = 0; + + if (angDiff > Math.PI) + { + bigArc = 1; + } + + c.begin(); + c.moveTo(rx, ry); + c.lineTo(startX, startY); + c.arcTo(rx, ry, 0, bigArc, 1, endX, endY); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicPie.prototype.cst.PIE, mxShapeBasicPie); + +mxShapeBasicPie.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicPie.prototype.cst.PIE] = function(state) +{ + var handles = [Graph.createHandle(state, ['startAngle'], function(bounds) + { + var startAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'startAngle', this.startAngle)))); + + return new mxPoint(bounds.x + bounds.width * 0.5 + Math.sin(startAngle) * bounds.width * 0.5, bounds.y + bounds.height * 0.5 - Math.cos(startAngle) * bounds.height * 0.5); + }, function(bounds, pt) + { + var handleX = Math.round(100 * Math.max(-1, Math.min(1, (pt.x - bounds.x - bounds.width * 0.5) / (bounds.width * 0.5)))) / 100; + var handleY = -Math.round(100 * Math.max(-1, Math.min(1, (pt.y - bounds.y - bounds.height * 0.5) / (bounds.height * 0.5)))) / 100; + + var res = 0.5 * Math.atan2(handleX, handleY) / Math.PI; + + if (res < 0) + { + res = 1 + res; + } + + this.state.style['startAngle'] = res; + + })]; + + var handle2 = Graph.createHandle(state, ['endAngle'], function(bounds) + { + var endAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'endAngle', this.endAngle)))); + + return new mxPoint(bounds.x + bounds.width * 0.5 + Math.sin(endAngle) * bounds.width * 0.5, bounds.y + bounds.height * 0.5 - Math.cos(endAngle) * bounds.height * 0.5); + }, function(bounds, pt) + { + var handleX = Math.round(100 * Math.max(-1, Math.min(1, (pt.x - bounds.x - bounds.width * 0.5) / (bounds.width * 0.5)))) / 100; + var handleY = -Math.round(100 * Math.max(-1, Math.min(1, (pt.y - bounds.y - bounds.height * 0.5) / (bounds.height * 0.5)))) / 100; + + var res = 0.5 * Math.atan2(handleX, handleY) / Math.PI; + + if (res < 0) + { + res = 1 + res; + } + + this.state.style['endAngle'] = res; + }); + + handles.push(handle2); + + return handles; +}; + +//********************************************************************************************************************************************************** +//Arc +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicArc(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.startAngle = 0.25; + this.endAngle = 0.75; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicArc, mxActor); + +mxShapeBasicArc.prototype.cst = {ARC : 'mxgraph.basic.arc'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicArc.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var startAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'startAngle', this.startAngle)))); + var endAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'endAngle', this.endAngle)))); + var rx = w * 0.5; + var ry = h * 0.5; + + var startX = rx + Math.sin(startAngle) * rx; + var startY = ry - Math.cos(startAngle) * ry; + var endX = rx + Math.sin(endAngle) * rx; + var endY = ry - Math.cos(endAngle) * ry; + + var angDiff = endAngle - startAngle; + + if (angDiff < 0) + { + angDiff = angDiff + Math.PI * 2; + } + + var bigArc = 0; + + if (angDiff > Math.PI) + { + bigArc = 1; + } + + c.begin(); + c.moveTo(startX, startY); + c.arcTo(rx, ry, 0, bigArc, 1, endX, endY); + c.stroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicArc.prototype.cst.ARC, mxShapeBasicArc); + +mxShapeBasicArc.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicArc.prototype.cst.ARC] = function(state) +{ + var handles = [Graph.createHandle(state, ['startAngle'], function(bounds) + { + var startAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'startAngle', this.startAngle)))); + + return new mxPoint(bounds.x + bounds.width * 0.5 + Math.sin(startAngle) * bounds.width * 0.5, bounds.y + bounds.height * 0.5 - Math.cos(startAngle) * bounds.height * 0.5); + }, function(bounds, pt) + { + var handleX = Math.round(100 * Math.max(-1, Math.min(1, (pt.x - bounds.x - bounds.width * 0.5) / (bounds.width * 0.5)))) / 100; + var handleY = -Math.round(100 * Math.max(-1, Math.min(1, (pt.y - bounds.y - bounds.height * 0.5) / (bounds.height * 0.5)))) / 100; + + var res = 0.5 * Math.atan2(handleX, handleY) / Math.PI; + + if (res < 0) + { + res = 1 + res; + } + + this.state.style['startAngle'] = res; + + })]; + + var handle2 = Graph.createHandle(state, ['endAngle'], function(bounds) + { + var endAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'endAngle', this.endAngle)))); + + return new mxPoint(bounds.x + bounds.width * 0.5 + Math.sin(endAngle) * bounds.width * 0.5, bounds.y + bounds.height * 0.5 - Math.cos(endAngle) * bounds.height * 0.5); + }, function(bounds, pt) + { + var handleX = Math.round(100 * Math.max(-1, Math.min(1, (pt.x - bounds.x - bounds.width * 0.5) / (bounds.width * 0.5)))) / 100; + var handleY = -Math.round(100 * Math.max(-1, Math.min(1, (pt.y - bounds.y - bounds.height * 0.5) / (bounds.height * 0.5)))) / 100; + + var res = 0.5 * Math.atan2(handleX, handleY) / Math.PI; + + if (res < 0) + { + res = 1 + res; + } + + this.state.style['endAngle'] = res; + }); + + handles.push(handle2); + + return handles; +}; + +//********************************************************************************************************************************************************** +//Partial Concentric Ellipse +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeBasicPartConcEllipse(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.startAngle = 0.25; + this.endAngle = 0.75; + this.arcWidth = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeBasicPartConcEllipse, mxActor); + +mxShapeBasicPartConcEllipse.prototype.cst = {PART_CONC_ELLIPSE : 'mxgraph.basic.partConcEllipse'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeBasicPartConcEllipse.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var startAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'startAngle', this.startAngle)))); + var endAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'endAngle', this.endAngle)))); + var arcWidth = 1 - Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'arcWidth', this.arcWidth)))); + var rx = w * 0.5; + var ry = h * 0.5; + var rx2 = rx * arcWidth; + var ry2 = ry * arcWidth; + + var startX = rx + Math.sin(startAngle) * rx; + var startY = ry - Math.cos(startAngle) * ry; + var innerStartX = rx + Math.sin(startAngle) * rx2; + var innerStartY = ry - Math.cos(startAngle) * ry2; + var endX = rx + Math.sin(endAngle) * rx; + var endY = ry - Math.cos(endAngle) * ry; + var innerEndX = rx + Math.sin(endAngle) * rx2; + var innerEndY = ry - Math.cos(endAngle) * ry2; + + var angDiff = endAngle - startAngle; + + if (angDiff < 0) + { + angDiff = angDiff + Math.PI * 2; + } + + var bigArc = 0; + + if (angDiff > Math.PI) + { + bigArc = 1; + } + + c.begin(); + c.moveTo(startX, startY); + c.arcTo(rx, ry, 0, bigArc, 1, endX, endY); + c.lineTo(innerEndX, innerEndY); + c.arcTo(rx2, ry2, 0, bigArc, 0, innerStartX, innerStartY); + c.close(); + c.fillAndStroke(); +}; + +mxCellRenderer.registerShape(mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE, mxShapeBasicPartConcEllipse); + +mxShapeBasicPartConcEllipse.prototype.constraints = null; + +Graph.handleFactory[mxShapeBasicPartConcEllipse.prototype.cst.PART_CONC_ELLIPSE] = function(state) +{ + var handles = [Graph.createHandle(state, ['startAngle'], function(bounds) + { + var startAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'startAngle', this.startAngle)))); + + return new mxPoint(bounds.x + bounds.width * 0.5 + Math.sin(startAngle) * bounds.width * 0.5, bounds.y + bounds.height * 0.5 - Math.cos(startAngle) * bounds.height * 0.5); + }, function(bounds, pt) + { + var handleX = Math.round(100 * Math.max(-1, Math.min(1, (pt.x - bounds.x - bounds.width * 0.5) / (bounds.width * 0.5)))) / 100; + var handleY = -Math.round(100 * Math.max(-1, Math.min(1, (pt.y - bounds.y - bounds.height * 0.5) / (bounds.height * 0.5)))) / 100; + + var res = 0.5 * Math.atan2(handleX, handleY) / Math.PI; + + if (res < 0) + { + res = 1 + res; + } + + this.state.style['startAngle'] = res; + + })]; + + var handle2 = Graph.createHandle(state, ['endAngle'], function(bounds) + { + var endAngle = 2 * Math.PI * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'endAngle', this.endAngle)))); + + return new mxPoint(bounds.x + bounds.width * 0.5 + Math.sin(endAngle) * bounds.width * 0.5, bounds.y + bounds.height * 0.5 - Math.cos(endAngle) * bounds.height * 0.5); + }, function(bounds, pt) + { + var handleX = Math.round(100 * Math.max(-1, Math.min(1, (pt.x - bounds.x - bounds.width * 0.5) / (bounds.width * 0.5)))) / 100; + var handleY = -Math.round(100 * Math.max(-1, Math.min(1, (pt.y - bounds.y - bounds.height * 0.5) / (bounds.height * 0.5)))) / 100; + + var res = 0.5 * Math.atan2(handleX, handleY) / Math.PI; + + if (res < 0) + { + res = 1 + res; + } + + this.state.style['endAngle'] = res; + }); + + handles.push(handle2); + + var handle3 = Graph.createHandle(state, ['arcWidth'], function(bounds) + { + var arcWidth = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'arcWidth', this.arcWidth)))); + + return new mxPoint(bounds.x + bounds.width / 2, bounds.y + arcWidth * bounds.height * 0.5); + }, function(bounds, pt) + { + this.state.style['arcWidth'] = Math.round(100 * Math.max(0, Math.min(bounds.height / 2, bounds.width / 2, (pt.y - bounds.y) / (bounds.height * 0.5)))) / 100; + }); + + handles.push(handle3); + + return handles; +}; + diff --git a/src/main/webapp/shapes/mxFlowchart.js b/src/main/webapp/shapes/mxFlowchart.js new file mode 100644 index 000000000..ab41ee675 --- /dev/null +++ b/src/main/webapp/shapes/mxFlowchart.js @@ -0,0 +1,74 @@ +/** + * $Id: mxFlowchart.js,v 1.5 2016/04/1 12:32:06 mate Exp $ + * Copyright (c) 2006-2018, JGraph Ltd + */ +//********************************************************************************************************************************************************** +// Document 2 +//********************************************************************************************************************************************************** +/** +* Extends mxShape. +*/ +function mxShapeFlowchartDocument2(bounds, fill, stroke, strokewidth) +{ + mxShape.call(this); + this.bounds = bounds; + this.fill = fill; + this.stroke = stroke; + this.strokewidth = (strokewidth != null) ? strokewidth : 1; + this.size = 0.5; +}; + +/** +* Extends mxShape. +*/ +mxUtils.extend(mxShapeFlowchartDocument2, mxActor); + +mxShapeFlowchartDocument2.prototype.cst = {DOCUMENT2 : 'mxgraph.flowchart.document2'}; + +/** +* Function: paintVertexShape +* +* Paints the vertex shape. +*/ +mxShapeFlowchartDocument2.prototype.paintVertexShape = function(c, x, y, w, h) +{ + c.translate(x, y); + + var dy = h * Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.style, 'size', this.size)))); + var fy = 1.4; + var r = 5; + + c.begin(); + c.moveTo(w - r, 0); + c.arcTo(r, r, 0, 0, 1, w, r); + c.lineTo(w, h - dy / 2); + c.quadTo(w * 3 / 4, h - dy * fy, w / 2, h - dy / 2); + c.quadTo(w / 4, h - dy * (1 - fy), 0, h - dy / 2); + c.lineTo(0, dy / 2); + c.lineTo(0, r); + c.arcTo(r, r, 0, 0, 1, r, 0); + c.close(); + c.fillAndStroke(); + +}; + +mxCellRenderer.registerShape(mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2, mxShapeFlowchartDocument2); + +mxShapeFlowchartDocument2.prototype.constraints = null; + +Graph.handleFactory[mxShapeFlowchartDocument2.prototype.cst.DOCUMENT2] = function(state) +{ + var handles = [Graph.createHandle(state, ['size'], function(bounds) + { + var size = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'size', this.size)))); + + return new mxPoint(bounds.x + 3 * bounds.width / 4, bounds.y + (1 - size) * bounds.height); + + }, function(bounds, pt) + { + this.state.style['size'] = Math.max(0, Math.min(1, (bounds.y + bounds.height - pt.y) / bounds.height)); + })]; + + return handles; +}; + -- GitLab