From 9327b82489cfb177ff210a3a7836eb55a907e26a Mon Sep 17 00:00:00 2001 From: Gaudenz Alder Date: Wed, 26 Feb 2020 17:44:46 +0100 Subject: [PATCH] 12.7.8 release --- ChangeLog | 22 +- VERSION | 2 +- etc/redirect-worker/package.json | 14 + etc/redirect-worker/redirect.js | 165 + etc/redirect-worker/wrangler.toml | 6 + .../com/mxgraph/online/AbsAuthServlet.java | 92 +- .../com/mxgraph/online/GoogleAuthServlet.java | 32 +- .../mxgraph/online/MSGraphAuthServlet.java | 52 +- src/main/webapp/WEB-INF/google_old_client_id | 1 + .../WEB-INF/google_old_client_redirect_uri | 1 + .../WEB-INF/msgraph_old_client_redirect_uri | 1 + src/main/webapp/js/app.min.js | 3139 +++++++++-------- src/main/webapp/js/diagramly/App.js | 15 +- src/main/webapp/js/diagramly/DriveClient.js | 8 +- src/main/webapp/js/diagramly/Editor.js | 2 +- src/main/webapp/js/diagramly/EditorUi.js | 35 +- .../webapp/js/diagramly/OneDriveClient.js | 6 +- src/main/webapp/js/diagramly/Trees.js | 5 +- src/main/webapp/js/mxgraph/EditorUi.js | 12 +- src/main/webapp/js/mxgraph/Format.js | 8 + src/main/webapp/js/mxgraph/Graph.js | 15 +- src/main/webapp/js/mxgraph/Sidebar.js | 22 +- src/main/webapp/js/viewer.min.js | 1560 ++++---- src/main/webapp/plugins/cConf-1-4-8.js | 2 +- src/main/webapp/service-worker.js | 2 +- 25 files changed, 2746 insertions(+), 2473 deletions(-) create mode 100644 etc/redirect-worker/package.json create mode 100644 etc/redirect-worker/redirect.js create mode 100644 etc/redirect-worker/wrangler.toml create mode 100644 src/main/webapp/WEB-INF/google_old_client_id create mode 100644 src/main/webapp/WEB-INF/google_old_client_redirect_uri create mode 100644 src/main/webapp/WEB-INF/msgraph_old_client_redirect_uri diff --git a/ChangeLog b/ChangeLog index f3c2c7cf..78bfdf59 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,24 @@ -21-FEB-2020:12.7.4 +26-FEB-2020: 12.7.8 + +- Adds logging for Confluence cloud errors +- Adds global error dialog + +26-FEB-2020: 12.7.7 + +- Adds error logging for Confluence and Jira cloud + +25-FEB-2020: 12.7.6 + +- Fixes NPE in viewer + +25-FEB-2020: 12.7.5 + +- Fixes removed contentID macro parameter in Confluence cloud +- Adds recursive resize for size change in Arrange panel +- Disables drop target for composite BPMN/UML shapes +- Fixes missing tree move icon + +21-FEB-2020: 12.7.4 - Changes Google picker to support team drives - Fixes crop for imported files diff --git a/VERSION b/VERSION index d058e726..da224e79 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -12.7.4 \ No newline at end of file +12.7.8 \ No newline at end of file diff --git a/etc/redirect-worker/package.json b/etc/redirect-worker/package.json new file mode 100644 index 00000000..94fc60ba --- /dev/null +++ b/etc/redirect-worker/package.json @@ -0,0 +1,14 @@ +{ + "private": true, + "name": "redirect-worker", + "version": "1.0.0", + "description": "Redirect worker for draw.io", + "main": "redirect.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "draw.io", + "license": "MIT", + "devDependencies": {}, + "dependencies": {} +} diff --git a/etc/redirect-worker/redirect.js b/etc/redirect-worker/redirect.js new file mode 100644 index 00000000..c417fa8f --- /dev/null +++ b/etc/redirect-worker/redirect.js @@ -0,0 +1,165 @@ +/** + * Copyright (c) 2011-2020, JGraph Ltd + */ + +async function handleRequest(request) { + let requestURL = new URL(request.url) + let host = requestURL.host + let path = requestURL.pathname + + let hostRedirectMap = redirectMap.get(host) + + if (hostRedirectMap) + { + //Match full path then reduce one level at a time + let redirect, notUsedPath = '', done = false + + do + { + redirect = hostRedirectMap.get(path) || hostRedirectMap.get(path + '/'); + + if (redirect) + { + //Complete the URL + if (redirect.startsWith('/')) + { + redirect = requestURL.protocol + '//' + host + redirect; + } + + return Response.redirect(redirect + notUsedPath, 301) + } + else + { + let lastSlash = path.lastIndexOf('/'); + + if (lastSlash >= 0) + { + notUsedPath = path.substr(lastSlash) + notUsedPath; + path = path.substr(0, lastSlash); + } + else + { + done = true + } + } + } while (!done) + } + + // If not in the map, return 404 + return new Response('NOT_FOUND', { status: 404 }); +} + +addEventListener('fetch', async event => { + event.respondWith(handleRequest(event.request)) +}) + +const redirectMap = new Map([ + ['about.draw.io', new Map([ + ['/drawio-desktop-10-7-5-release', 'https://github.com/jgraph/drawio-desktop/releases/tag/v10.7.5'], + ['/insert-from-text-now-supports-plantuml', '/use-plantuml-in-draw-io'], + ['/integrate-draw-io/', '/integrations-ecosystem/'], + ['/new-edge-styles/', '/connector-styles-and-animations-in-draw-io/'], + ['/publish-diagrams-to-github/', '/github-support/'], + ['/prefer-draw-io-in-an-atlassian-style/', '/pick-your-favorite-draw-io-theme-kennedy-atlas-dark-or-minimal/'], + ['/drawio-desktop-10-7-5-release', 'https://github.com/jgraph/drawio-desktop/releases/tag/v10.7.5'], + ['/insert-from-text-now-supports-plantuml', '/use-plantuml-in-draw-io'], + ['/integrate-draw-io/', '/integrations-ecosystem/'], + ['/new-edge-styles/', '/connector-styles-and-animations-in-draw-io/'], + ['/publish-diagrams-to-github/', '/github-support/'], + ['/prefer-draw-io-in-an-atlassian-style/', '/pick-your-favorite-draw-io-theme-kennedy-atlas-dark-or-minimal/'], + ['/integrations/confluence-integration-2/', 'https://www.diagrams.net/integrations.html'], + ['/integrations/jira-integration/', 'https://www.diagrams.net/integrations.html'], + ['/integrations/', 'https://www.diagrams.net/integrations.html'], + ['/features/examples/', 'https://drawio-app.com/'], + ['/features/training-material/', 'https://drawio-app.com/tutorials/'], + ['/features/', 'https://www.diagrams.net/'], + ['/integrations-ecosystem/', 'https://www.diagrams.net/integrations'], + ['/multiple-pages-per-diagram/', 'https://www.diagrams.net/blog/multiple-page-diagrams'], + ['/drawio-data-protection/', 'https://www.diagrams.net/blog/data-protection'], + ['/use-draw-io-offline/', 'https://www.diagrams.net/blog/diagrams-offline'], + ['/use-your-own-fonts-in-draw-io/', 'https://www.diagrams.net/blog/external-fonts'], + ['/4-ways-to-connect-shapes/', 'https://www.diagrams.net/blog/connect-shapes'], + ['/export-cloudockit-architecture-to-drawio/', 'https://www.diagrams.net/blog/cloudockit-to-drawio'], + ['/google-drive-connector-for-confluence-cloud/', 'https://www.diagrams.net/'], + ['/document-your-aws-architecture-with-cloudcraft-and-draw-io/', 'https://www.diagrams.net/blog/drawio-aws-cloudcraft'], + ['/use-draw-io-diagrams-in-google-docs/', 'https://www.diagrams.net/blog/diagrams-google-docs'], + ['/improved-import/', 'https://www.diagrams.net/blog/import-formats'], + ['/incremental-find-plugin/', 'https://www.diagrams.net/doc/faq/find-shapes'], + ['/sidebar-click/', 'https://www.diagrams.net/blog/quick-add-shapes'], + ['/find-plugin-update/', 'https://www.diagrams.net/doc/faq/find-shapes'], + ['/how-to-quickly-remove-sensitive-information-from-draw-io-diagrams/', 'https://www.diagrams.net/doc/faq/anonymize-plugin'], + ['/draw-io-privacy-and-google-analytics/', 'https://www.diagrams.net/blog/google-analytics'], + ['/share-diagrams-with-draw-io/', 'https://www.diagrams.net/blog/online-diagram-viewer'], + ['/publish-link-and-embed-html/', 'https://www.diagrams.net/blog/publish-link'], + ['/public-google-files/', 'https://www.diagrams.net/blog/share-diagrams-via-google'], + ['/export-diagrams-as-urls/', 'https://www.diagrams.net/blog/export-url'], + ['/using-draw-io-diagrams-in-wordpress/', 'https://www.diagrams.net/blog/export-svg'], + ['/insert-from-text-now-supports-lists-and-graphs/', 'https://www.diagrams.net/blog/insert-from-text'], + ['/altdrop/', 'https://www.diagrams.net/blog/shortcut-overlay-shapes'], + ['/animation-and-automatic-layout-explore-complex-diagrams/', 'https://www.diagrams.net/doc/faq/explore-plugin'], + ['/google-team-drives-support/', 'https://www.diagrams.net/blog/google-shared-drives'], + ['/30k-reviews/', 'https://www.diagrams.net'], + ['/external-fonts-in-draw-io/', 'https://www.diagrams.net/blog/external-fonts'], + ['/analysing-vulnerabilities-with-threat-modelling-in-draw-io/', 'https://www.diagrams.net/blog/threat-modelling'], + ['/fosdem2020-sponsor/', 'https://www.diagrams.net/blog/fosdem-sponsor'], + ['/google-docs-add-on-now-supports-high-resolution-images/', 'https://www.diagrams.net/blog/high-resolution-images-google-docs'], + ['/sql-plugin/', 'https://www.diagrams.net/blog/insert-sql'], + ['/properties-plugin/', 'https://www.diagrams.net/doc/faq/properties-plugin'], + ['/number-plugin/', 'https://www.diagrams.net/doc/faq/plugins'], + ['/40k-reviews/', 'https://www.diagrams.net'], + ['/new-veeam-stencil-set/', 'https://www.diagrams.net/blog/veeam-stencils'], + ['/new-github-repository/', 'https://www.diagrams.net/blog/example-diagrams-github'], + ['/updates-to-draw-io-desktop/', 'https://www.diagrams.net/blog/desktop-updates'], + ['/simplified-tags-plugin/', 'https://www.diagrams.net/doc/faq/tags-plugin'], + ['/github-support/', 'https://www.diagrams.net/blog/github-support'], + ['/support-for-your-language-in-draw-io/', 'https://www.diagrams.net/blog/translate-drawio'], + ['/altshiftcursor/', 'https://www.diagrams.net/blog/shortcut-clone-connect'], + ['/altshiftselect-now-removes-selected-cells%ef%bb%bf/', 'https://www.diagrams.net/blog/shortcut-deselect-shapes'], + ['/draw-io-diagrams-for-confluence/', 'https://www.diagrams.net/integrations'], + ['/scratchpad-in-chrome-app/', 'https://www.diagrams.net/blog/drawio-chrome-app'], + ['/find-and-tags/', 'https://www.diagrams.net/doc/faq/find-shapes'], + ['/disable-recursive-resize/', 'https://www.diagrams.net/blog/disable-resize-children'], + ['/placeholder-scope/', 'https://www.diagrams.net/blog/placeholder-scope'], + ['/scissors-tool/', 'https://www.diagrams.net/blog/shortcut-move-area'], + ['/shiftdelete-in-toolbar-now-deletes-cells-with-connections%ef%bb%bf/', 'https://www.diagrams.net/blog/shortcut-shift-delete'], + ['/snap-to-point/', 'https://www.diagrams.net/blog/snap-to-point'], + ['/features/examples/', 'https://drawio-app.com/'], + ['/features/training-material/', 'https://drawio-app.com/tutorials/'], + ['/terms-conditions/', 'https://seibert-media.com/general-terms/'], + ['/', 'https://drawio-app.com/'] + ])], + ['blog.draw.io', new Map([ + ['/', 'https://drawio-app.com/blog'] + ])], + ['download.draw.io', new Map([ + ['/', 'https://github.com/jgraph/drawio-desktop/releases/latest'] + ])], + ['get.draw.io', new Map([ + ['/', 'https://github.com/jgraph/drawio-desktop/releases/latest'] + ])], + ['docsaddon.draw.io', new Map([ + ['/', 'https://gsuite.google.com/marketplace/app/drawio_viewer_for_docs/224440279306'] + ])], + ['gsuite.draw.io', new Map([ + ['/', 'https://gsuite.google.com/marketplace/app/drawio_diagrams/671128082532'] + ])], + ['office.draw.io', new Map([ + ['/', 'https://appsource.microsoft.com/product/office/wa200000113'] + ])], + ['slidesaddon.draw.io', new Map([ + ['/', 'https://gsuite.google.com/marketplace/app/drawio_diagrams_for_slides/58828304893'] + ])], + ['sheetsaddon.draw.io', new Map([ + ['/', 'https://gsuite.google.com/marketplace/app/drawio_diagrams_for_sheets/948903782998'] + ])], + ['doc.draw.io', new Map([ + ['/i18n', 'https://docs.google.com/spreadsheets/d/1FoYdyEraEQuWofzbYCDPKN7EdKgS_2ZrsDrOA8scgwQ'], + ['/', 'https://support.draw.io'] + ])], + ['app.draw.io', new Map([ + ['/', 'https://www.draw.io/app'] + ])], + ['new.draw.io', new Map([ + ['/', 'https://www.draw.io/?splash=0'] + ])] +]) \ No newline at end of file diff --git a/etc/redirect-worker/wrangler.toml b/etc/redirect-worker/wrangler.toml new file mode 100644 index 00000000..ae9a7209 --- /dev/null +++ b/etc/redirect-worker/wrangler.toml @@ -0,0 +1,6 @@ +name = "redirect-worker" +type = "javascript" +account_id = "" +workers_dev = true +route = "" +zone_id = "" diff --git a/src/main/java/com/mxgraph/online/AbsAuthServlet.java b/src/main/java/com/mxgraph/online/AbsAuthServlet.java index fa623fe1..e680c3ed 100644 --- a/src/main/java/com/mxgraph/online/AbsAuthServlet.java +++ b/src/main/java/com/mxgraph/online/AbsAuthServlet.java @@ -30,8 +30,39 @@ abstract public class AbsAuthServlet extends HttpServlet static public class Config { - public String DEV_CLIENT_SECRET = null, CLIENT_SECRET = null, DEV_CLIENT_ID = null, CLIENT_ID = null, - DEV_REDIRECT_URI = null, REDIRECT_URI = null, AUTH_SERVICE_URL = null; + public String REDIRECT_PATH = null, AUTH_SERVICE_URL = null; + //TODO These variables are temporary until new method is propagated + public String OLD_REDIRECT_URL = null, OLD_CLIENT_ID = null; + + protected HashMap clientSecretMap = new HashMap<>(); + + public Config(String clientIds, String clientSecrets) + { + try + { + String[] cIds = clientIds.split(SEPARATOR); + String[] cSecrets = clientSecrets.split(SEPARATOR); + + for (int i = 0; i < cIds.length; i++) + { + clientSecretMap.put(cIds[i], cSecrets[i]); + } + } + catch (Exception e) + { + throw new RuntimeException("Invalid config. " + e.getMessage()); + } + } + + public String getClientSecret(String cId) + { + return clientSecretMap.get(cId); + } + + public String getRedirectUrl(String domain) + { + return "https://" + domain + REDIRECT_PATH; + } } protected Config getConfig() @@ -61,7 +92,7 @@ abstract public class AbsAuthServlet extends HttpServlet String refreshToken = request.getParameter("refresh_token"); String error = request.getParameter("error"); HashMap stateVars = new HashMap<>(); - int configIndex = 0; + String secret = null, client = null, redirectUri = null, domain = null, appIndex = null; //TODO appIndex variable is temporary until new method is propagated try { @@ -80,12 +111,9 @@ abstract public class AbsAuthServlet extends HttpServlet } } - String appIndex = stateVars.get("appIndex"); - - if (appIndex != null) - { - configIndex = Integer.parseInt(appIndex); - } + domain = stateVars.get("domain"); + client = stateVars.get("cId"); + appIndex = stateVars.get("appIndex"); //TODO appIndex variable is temporary until new method is propagated } catch(Exception e) { @@ -94,28 +122,34 @@ abstract public class AbsAuthServlet extends HttpServlet } Config CONFIG = getConfig(); - String secret, client, redirectUri; - String[] secrets, clients, redirectUris; + redirectUri = CONFIG.getRedirectUrl(domain != null? domain : request.getServerName()); + + //TODO This code block is temporary until new method is propagated + if (appIndex != null || client == null) + { + int configIndex = 0; + + try + { + configIndex = Integer.parseInt(appIndex); + } + catch(Exception e) {} // Ignore - if ("127.0.0.1".equals(request.getServerName()) || - "devhost.jgraph.com".equals(request.getServerName()) || - "localhost".equals(request.getServerName())) - { - secrets = CONFIG.DEV_CLIENT_SECRET.split(SEPARATOR); - clients = CONFIG.DEV_CLIENT_ID.split(SEPARATOR); - redirectUris = CONFIG.DEV_REDIRECT_URI.split(SEPARATOR); + + String[] clients = CONFIG.OLD_CLIENT_ID.split(SEPARATOR); + String[] redirectUris = CONFIG.OLD_REDIRECT_URL.split(SEPARATOR); + + if (configIndex < 0 || configIndex >= clients.length) + { + configIndex = 0; + } + + client = clients[configIndex]; + redirectUri = redirectUris[configIndex]; } - else - { - secrets = CONFIG.CLIENT_SECRET.split(SEPARATOR); - clients = CONFIG.CLIENT_ID.split(SEPARATOR); - redirectUris = CONFIG.REDIRECT_URI.split(SEPARATOR); - } - - secret = secrets.length > configIndex ? secrets[configIndex] : secrets[0]; - client = clients.length > configIndex ? clients[configIndex] : clients[0]; - redirectUri = redirectUris.length > configIndex ? redirectUris[configIndex] : redirectUris[0]; - + + secret = CONFIG.getClientSecret(client); + if (error != null) { response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); diff --git a/src/main/java/com/mxgraph/online/GoogleAuthServlet.java b/src/main/java/com/mxgraph/online/GoogleAuthServlet.java index dbb1afe4..5f506a10 100644 --- a/src/main/java/com/mxgraph/online/GoogleAuthServlet.java +++ b/src/main/java/com/mxgraph/online/GoogleAuthServlet.java @@ -10,55 +10,59 @@ public class GoogleAuthServlet extends AbsAuthServlet { public static String CLIENT_SECRET_FILE_PATH = "/WEB-INF/google_client_secret"; public static String CLIENT_ID_FILE_PATH = "/WEB-INF/google_client_id"; - public static String CLIENT_REDIRECT_URI_FILE_PATH = "/WEB-INF/google_client_redirect_uri"; + private static Config CONFIG = null; protected Config getConfig() { if (CONFIG == null) { - CONFIG = new Config(); + String clientSerets, clientIds; try { - CONFIG.CLIENT_SECRET = Utils + clientSerets = Utils .readInputStream(getServletContext() .getResourceAsStream(CLIENT_SECRET_FILE_PATH)) .replaceAll("\n", ""); - CONFIG.DEV_CLIENT_SECRET = CONFIG.CLIENT_SECRET; } catch (IOException e) { - throw new RuntimeException("Client secret path invalid"); + throw new RuntimeException("Client secrets path invalid"); } try { - CONFIG.CLIENT_ID = Utils + clientIds = Utils .readInputStream(getServletContext() .getResourceAsStream(CLIENT_ID_FILE_PATH)) .replaceAll("\n", ""); - CONFIG.DEV_CLIENT_ID = CONFIG.CLIENT_ID; } catch (IOException e) { - throw new RuntimeException("Client ID path invalid"); + throw new RuntimeException("Client IDs path invalid"); } + CONFIG = new Config(clientIds, clientSerets); + CONFIG.REDIRECT_PATH = "/google"; + CONFIG.AUTH_SERVICE_URL = "https://www.googleapis.com/oauth2/v4/token"; + + //TODO This code is temporary until new method is propagated try { - CONFIG.REDIRECT_URI = Utils + CONFIG.OLD_REDIRECT_URL = Utils .readInputStream(getServletContext() - .getResourceAsStream(CLIENT_REDIRECT_URI_FILE_PATH)) + .getResourceAsStream("/WEB-INF/google_old_client_redirect_uri")) + .replaceAll("\n", ""); + CONFIG.OLD_CLIENT_ID = Utils + .readInputStream(getServletContext() + .getResourceAsStream("/WEB-INF/google_old_client_id")) .replaceAll("\n", ""); } catch (IOException e) { - throw new RuntimeException("Client ID path invalid"); + throw new RuntimeException("OLD CONFIGs path is invalid"); } - - CONFIG.AUTH_SERVICE_URL = "https://www.googleapis.com/oauth2/v4/token"; - CONFIG.DEV_REDIRECT_URI = "https://test.draw.io/google"; } return CONFIG; diff --git a/src/main/java/com/mxgraph/online/MSGraphAuthServlet.java b/src/main/java/com/mxgraph/online/MSGraphAuthServlet.java index 492f5739..eefe2b5d 100644 --- a/src/main/java/com/mxgraph/online/MSGraphAuthServlet.java +++ b/src/main/java/com/mxgraph/online/MSGraphAuthServlet.java @@ -8,11 +8,8 @@ import java.io.IOException; @SuppressWarnings("serial") public class MSGraphAuthServlet extends AbsAuthServlet { - public static String DEV_CLIENT_SECRET_FILE_PATH = "/WEB-INF/msgraph_dev_client_secret"; public static String CLIENT_SECRET_FILE_PATH = "/WEB-INF/msgraph_client_secret"; - public static String DEV_CLIENT_ID_FILE_PATH = "/WEB-INF/msgraph_dev_client_id"; public static String CLIENT_ID_FILE_PATH = "/WEB-INF/msgraph_client_id"; - public static String CLIENT_REDIRECT_URI_FILE_PATH = "/WEB-INF/msgraph_client_redirect_uri"; private static Config CONFIG = null; @@ -20,70 +17,49 @@ public class MSGraphAuthServlet extends AbsAuthServlet { if (CONFIG == null) { - CONFIG = new Config(); + String clientSerets, clientIds; try { - CONFIG.DEV_CLIENT_SECRET = Utils - .readInputStream(getServletContext() - .getResourceAsStream(DEV_CLIENT_SECRET_FILE_PATH)) - .replaceAll("\n", ""); - } - catch (IOException e) - { - throw new RuntimeException("Dev client secret path invalid."); - } - - try - { - CONFIG.CLIENT_SECRET = Utils + clientSerets = Utils .readInputStream(getServletContext() .getResourceAsStream(CLIENT_SECRET_FILE_PATH)) .replaceAll("\n", ""); } catch (IOException e) { - throw new RuntimeException("Client secret path invalid."); + throw new RuntimeException("Client secrets path invalid."); } try { - CONFIG.DEV_CLIENT_ID = Utils - .readInputStream(getServletContext() - .getResourceAsStream(DEV_CLIENT_ID_FILE_PATH)) - .replaceAll("\n", ""); - } - catch (IOException e) - { - throw new RuntimeException("Dev client ID invalid."); - } - - try - { - CONFIG.CLIENT_ID = Utils + clientIds = Utils .readInputStream(getServletContext() .getResourceAsStream(CLIENT_ID_FILE_PATH)) .replaceAll("\n", ""); } catch (IOException e) { - throw new RuntimeException("Client ID invalid."); + throw new RuntimeException("Client IDs path invalid."); } + CONFIG = new Config(clientIds, clientSerets); + CONFIG.REDIRECT_PATH = "/microsoft"; + CONFIG.AUTH_SERVICE_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/token"; + + //TODO This code is temporary until new method is propagated try { - CONFIG.REDIRECT_URI = Utils + CONFIG.OLD_REDIRECT_URL = Utils .readInputStream(getServletContext() - .getResourceAsStream(CLIENT_REDIRECT_URI_FILE_PATH)) + .getResourceAsStream("/WEB-INF/msgraph_old_client_redirect_uri")) .replaceAll("\n", ""); + CONFIG.OLD_CLIENT_ID = clientIds; } catch (IOException e) { - throw new RuntimeException("Redirect Uri is invalid"); + throw new RuntimeException("OLD CONFIGs path is invalid"); } - - CONFIG.DEV_REDIRECT_URI = "https://test.draw.io/microsoft"; - CONFIG.AUTH_SERVICE_URL = "https://login.microsoftonline.com/common/oauth2/v2.0/token"; } return CONFIG; diff --git a/src/main/webapp/WEB-INF/google_old_client_id b/src/main/webapp/WEB-INF/google_old_client_id new file mode 100644 index 00000000..f9f911de --- /dev/null +++ b/src/main/webapp/WEB-INF/google_old_client_id @@ -0,0 +1 @@ +850530949725.apps.googleusercontent.com/:::/671128082532-jhphbq6d0e1gnsus9mn7vf8a6fjn10mp.apps.googleusercontent.com/:::/850530949725.apps.googleusercontent.com/:::/850530949725.apps.googleusercontent.com/:::/671128082532-jhphbq6d0e1gnsus9mn7vf8a6fjn10mp.apps.googleusercontent.com \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/google_old_client_redirect_uri b/src/main/webapp/WEB-INF/google_old_client_redirect_uri new file mode 100644 index 00000000..aa706ecb --- /dev/null +++ b/src/main/webapp/WEB-INF/google_old_client_redirect_uri @@ -0,0 +1 @@ +https://www.draw.io/google/:::/https://www.draw.io/google/:::/https://confluence.draw.io/google/:::/https://jira.draw.io/google/:::/https://test.draw.io/google \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/msgraph_old_client_redirect_uri b/src/main/webapp/WEB-INF/msgraph_old_client_redirect_uri new file mode 100644 index 00000000..46187f1e --- /dev/null +++ b/src/main/webapp/WEB-INF/msgraph_old_client_redirect_uri @@ -0,0 +1 @@ +https://www.draw.io/microsoft/:::/https://confluence.draw.io/microsoft/:::/https://jira.draw.io/microsoft/:::/https://test.draw.io/microsoft \ No newline at end of file diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js index d70bb43b..9e9f9a1f 100644 --- a/src/main/webapp/js/app.min.js +++ b/src/main/webapp/js/app.min.js @@ -2144,9 +2144,9 @@ this.keyupHandler);var g=b.panningHandler.isForcePanningEvent;b.panningHandler.i mxEvent.isControlDown(a)||mxClient.IS_MAC&&mxEvent.isMetaDown(a)||mxClient.IS_SF&&mxEvent.isShiftDown(a))};var l=b.isZoomWheelEvent;b.isZoomWheelEvent=function(){return e||l.apply(this,arguments)};var m=!1,n=null,p=null,t=null,u=mxUtils.bind(this,function(){if(null!=this.toolbar&&m!=b.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,c=[];null!=a;){var d=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),c.push(a));a=d}a=this.toolbar.fontMenu; d=this.toolbar.sizeMenu;if(null==t)this.toolbar.createTextToolbar();else{for(var e=0;emxUtils.indexOf(y,z[a])&&y.push(z[a]);var B=function(a,c){var d=b.getModel();d.beginUpdate();try{for(var e=0;emxUtils.indexOf(z,p))||(t=mxUtils.setStyle(t,p,r))}d.setStyle(f,t)}}finally{d.endUpdate()}};b.addListener("cellsInserted",function(a,b){B(b.getProperty("cells"))});b.addListener("textInserted", @@ -2361,20 +2361,20 @@ a.vertex=!0;a.insert(d.clone());a.insert(b.clone());a.insert(c.cloneCell(d,"+ me !0;a.insert(d.clone());a.insert(d.clone());a.insert(d.clone());return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Class 2")}),this.addEntry("uml static class item member method function variable field attribute label",function(){return c.createVertexTemplateFromCells([c.cloneCell(d,"+ item: attribute")],d.geometry.width,d.geometry.height,"Item 1")}),this.addEntry("uml static class item member method function variable field attribute label",function(){var a=new mxCell("item: attribute", new mxGeometry(0,0,120,d.geometry.height),"label;fontStyle=0;strokeColor=none;fillColor=none;align=left;verticalAlign=top;overflow=hidden;spacingLeft=28;spacingRight=4;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;imageWidth=16;imageHeight=16;image="+c.gearImage);a.vertex=!0;return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Item 2")}),this.addEntry("uml static class divider hline line separator",function(){return c.createVertexTemplateFromCells([b.clone()], b.geometry.width,b.geometry.height,"Divider")}),this.addEntry("uml static class spacer space gap separator",function(){var a=new mxCell("",new mxGeometry(0,0,20,14),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=4;spacingRight=4;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;");a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Spacer")}),this.createVertexTemplateEntry("text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;", -80,26,"Title","Title",null,null,"uml static class title label"),this.addEntry("uml static class component",function(){var a=new mxCell("«Annotation»
Component",new mxGeometry(0,0,180,90),"html=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(1,0,20,20),"shape=component;jettyWidth=8;jettyHeight=4;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-27,7);a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Component")}), -this.addEntry("uml static class component",function(){var a=new mxCell('

Component


+ Attribute1: Type
+ Attribute2: Type

',new mxGeometry(0,0,180,90),"align=left;overflow=fill;html=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(1,0,20,20),"shape=component;jettyWidth=8;jettyHeight=4;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-24,4);a.insert(b);return c.createVertexTemplateFromCells([a], -a.geometry.width,a.geometry.height,"Component with Attributes")}),this.createVertexTemplateEntry("verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;",180,120,"Block","Block",null,null,"uml static class block"),this.createVertexTemplateEntry("shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;",100,50,"Module","Module",null,null,"uml static class module component"),this.createVertexTemplateEntry("shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;", -70,50,"package","Package",null,null,"uml static class package"),this.createVertexTemplateEntry("verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;",160,90,'

Object:Type


field1 = value1
field2 = value2
field3 = value3

',"Object",null,null,"uml static class object instance"),this.createVertexTemplateEntry("verticalAlign=top;align=left;overflow=fill;html=1;", -180,90,'
Tablename
PKuniqueId
FK1foreignKey
fieldname
',"Entity",null,null,"er entity table"),this.addEntry("uml static class object instance",function(){var a=new mxCell('

Class


', -new mxGeometry(0,0,140,60),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Class 3")}),this.addEntry("uml static class object instance",function(){var a=new mxCell('

Class



',new mxGeometry(0,0,140,60),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;"); -a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Class 4")}),this.addEntry("uml static class object instance",function(){var a=new mxCell('

Class


+ field: Type


+ method(): Type

',new mxGeometry(0,0,160,90),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;"); -a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Class 5")}),this.addEntry("uml static class object instance",function(){var a=new mxCell('

<<Interface>>
Interface


+ field1: Type
+ field2: Type


+ method1(Type): Type
+ method2(Type, Type): Type

', +80,26,"Title","Title",null,null,"uml static class title label"),this.addEntry("uml static class component",function(){var a=new mxCell("«Annotation»
Component",new mxGeometry(0,0,180,90),"html=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(1,0,20,20),"shape=component;jettyWidth=8;jettyHeight=4;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-27,7);a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height, +"Component")}),this.addEntry("uml static class component",function(){var a=new mxCell('

Component


+ Attribute1: Type
+ Attribute2: Type

',new mxGeometry(0,0,180,90),"align=left;overflow=fill;html=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(1,0,20,20),"shape=component;jettyWidth=8;jettyHeight=4;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-24, +4);a.insert(b);return c.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Component with Attributes")}),this.createVertexTemplateEntry("verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;",180,120,"Block","Block",null,null,"uml static class block"),this.createVertexTemplateEntry("shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;",100,50,"Module","Module",null,null,"uml static class module component"), +this.createVertexTemplateEntry("shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;",70,50,"package","Package",null,null,"uml static class package"),this.createVertexTemplateEntry("verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;",160,90,'

Object:Type


field1 = value1
field2 = value2
field3 = value3

', +"Object",null,null,"uml static class object instance"),this.createVertexTemplateEntry("verticalAlign=top;align=left;overflow=fill;html=1;",180,90,'
Tablename
PKuniqueId
FK1foreignKey
fieldname
',"Entity",null,null,"er entity table"),this.addEntry("uml static class object instance", +function(){var a=new mxCell('

Class


',new mxGeometry(0,0,140,60),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Class 3")}),this.addEntry("uml static class object instance",function(){var a=new mxCell('

Class



', +new mxGeometry(0,0,140,60),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Class 4")}),this.addEntry("uml static class object instance",function(){var a=new mxCell('

Class


+ field: Type


+ method(): Type

', +new mxGeometry(0,0,160,90),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Class 5")}),this.addEntry("uml static class object instance",function(){var a=new mxCell('

<<Interface>>
Interface


+ field1: Type
+ field2: Type


+ method1(Type): Type
+ method2(Type, Type): Type

', new mxGeometry(0,0,190,140),"verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;");a.vertex=!0;return c.createVertexTemplateFromCells([a.clone()],a.geometry.width,a.geometry.height,"Interface 2")}),this.createVertexTemplateEntry("shape=providedRequiredInterface;html=1;verticalLabelPosition=bottom;",20,20,"","Provided/Required Interface",null,null,"uml provided required interface lollipop notation"),this.createVertexTemplateEntry("shape=requiredInterface;html=1;verticalLabelPosition=bottom;", 10,20,"","Required Interface",null,null,"uml required interface lollipop notation"),this.addEntry("uml lollipop notation provided required interface",function(){return c.createVertexTemplateFromData("zVTBrptADPyavVYEkt4b0uQd3pMq5dD2uAUD27dgZJwE8vX1spsQlETtpVWRIjFjex3PmFVJWvc70m31hjlYlXxWSUqI7N/qPgVrVRyZXCUbFceR/FS8fRJdjNGo1QQN/0lB7AuO2h7AM57oeLCBIDw0Obj8SCVrJK6wxEbbV8RWyIWQP4F52Juzq9AHRqEqrm2IQpN/IsKTwAYb8MzWWBuO9B0hL2E2BGsqIQyxvJ9rzApD7QBrYBokhcBqNsf5UbrzsLzmXUu/oJET42jwGat5QYcHyiDkTDLKy03TiRrFfSx08m+FrrQtUkOZvZdbFKThmwMfVhf4fQ43/W3uZriiPPT+KKhjwnf4anKuQv//wsg+NPJ7/9d9Xf7eVykwbeeMOFWGYd/qzEVO8tHP/Suw4a2ujXV/+gXsEdhkOgSC8os44BQt0tggicZHeG1N2QiXibhAV48epRayEDd8MT7Ct06TUaXVWq027tCuhcx5VZjebeeaoDNn/WMcb/p+j0AM/dNr6InLl4Lgzylsk6OCgRWYsuI592gNZh5OhgmcblPv7+1l+ws=", 40,10,"Lollipop Notation")}),this.createVertexTemplateEntry("shape=umlBoundary;whiteSpace=wrap;html=1;",100,80,"Boundary Object","Boundary Object",null,null,"uml boundary object"),this.createVertexTemplateEntry("ellipse;shape=umlEntity;whiteSpace=wrap;html=1;",80,80,"Entity Object","Entity Object",null,null,"uml entity object"),this.createVertexTemplateEntry("ellipse;shape=umlControl;whiteSpace=wrap;html=1;",70,80,"Control Object","Control Object",null,null,"uml control object"),this.createVertexTemplateEntry("shape=umlActor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;html=1;", 30,60,"Actor","Actor",!1,null,"uml actor"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",140,70,"Use Case","Use Case",null,null,"uml use case usecase"),this.addEntry("uml activity state start",function(){var a=new mxCell("",new mxGeometry(0,0,30,30),"ellipse;html=1;shape=startState;fillColor=#000000;strokeColor=#ff0000;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;"); b.geometry.setTerminalPoint(new mxPoint(15,90),!1);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!0);return c.createVertexTemplateFromCells([a,b],30,90,"Start")}),this.addEntry("uml activity state",function(){var a=new mxCell("Activity",new mxGeometry(0,0,120,40),"rounded=1;whiteSpace=wrap;html=1;arcSize=40;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;"); -b.geometry.setTerminalPoint(new mxPoint(60,100),!1);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!0);return c.createVertexTemplateFromCells([a,b],120,100,"Activity")}),this.addEntry("uml activity composite state",function(){var a=new mxCell("Composite State",new mxGeometry(0,0,160,60),"swimlane;html=1;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=0;resizeLast=1;container=0;fontColor=#000000;collapsible=0;rounded=1;arcSize=30;strokeColor=#ff0000;fillColor=#ffffc0;swimlaneFillColor=#ffffc0;"); +b.geometry.setTerminalPoint(new mxPoint(60,100),!1);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b,!0);return c.createVertexTemplateFromCells([a,b],120,100,"Activity")}),this.addEntry("uml activity composite state",function(){var a=new mxCell("Composite State",new mxGeometry(0,0,160,60),"swimlane;html=1;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=0;resizeLast=1;container=0;fontColor=#000000;collapsible=0;rounded=1;arcSize=30;strokeColor=#ff0000;fillColor=#ffffc0;swimlaneFillColor=#ffffc0;dropTarget=0;"); a.vertex=!0;var b=new mxCell("Subtitle",new mxGeometry(0,0,200,26),"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;fontColor=#000000;");b.vertex=!0;a.insert(b);b=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");b.geometry.setTerminalPoint(new mxPoint(80,120),!1);b.geometry.relative=!0;b.edge=!0;a.insertEdge(b, !0);return c.createVertexTemplateFromCells([a,b],160,120,"Composite State")}),this.addEntry("uml activity condition",function(){var a=new mxCell("Condition",new mxGeometry(0,0,80,40),"rhombus;whiteSpace=wrap;html=1;fillColor=#ffffc0;strokeColor=#ff0000;");a.vertex=!0;var b=new mxCell("no",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");b.geometry.setTerminalPoint(new mxPoint(180,20),!1);b.geometry.relative= !0;b.geometry.x=-1;b.edge=!0;a.insertEdge(b,!0);var d=new mxCell("yes",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;");d.geometry.setTerminalPoint(new mxPoint(40,100),!1);d.geometry.relative=!0;d.geometry.x=-1;d.edge=!0;a.insertEdge(d,!0);return c.createVertexTemplateFromCells([a,b,d],180,100,"Condition")}),this.addEntry("uml activity fork join",function(){var a=new mxCell("",new mxGeometry(0,0,200,10),"shape=line;html=1;strokeWidth=6;strokeColor=#ff0000;"); @@ -2398,18 +2398,18 @@ a.geometry.setTerminalPoint(new mxPoint(0,0),!0);a.geometry.setTerminalPoint(new 160,0,"","Terminate",null,"uml terminate"),this.createEdgeTemplateEntry("endArrow=block;dashed=1;endFill=0;endSize=12;html=1;",160,0,"","Implementation",null,"uml realization implementation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=0;endSize=24;html=1;",160,0,"","Aggregation 2",null,"uml aggregation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=1;endSize=24;html=1;",160,0,"","Composition 2",null,"uml composition"),this.createEdgeTemplateEntry("endArrow=open;endFill=1;endSize=12;html=1;", 160,0,"","Association 3",null,"uml association")];this.addPaletteFunctions("uml",mxResources.get("uml"),a||!1,f)}; Sidebar.prototype.addBpmnPalette=function(a,c){var d=this,b=[this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;",120,80,"Task","Process",null,null,"bpmn task process"),this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;double=1;",120,80,"Transaction","Transaction",null,null,"bpmn transaction"),this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;dashed=1;dashPattern=1 4;",120,80,"Event\nSub-Process","Event Sub-Process",null,null, -"bpmn event subprocess sub process sub-process"),this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;strokeWidth=3;",120,80,"Call Activity","Call Activity",null,null,"bpmn call activity"),this.addEntry("bpmn subprocess sub process sub-process",function(){var a=new mxCell("Sub-Process",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;outlineConnect=0;");b.vertex=!0;b.geometry.relative= -!0;b.geometry.offset=new mxPoint(-7,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Process")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","loop","subprocess sub process sub-process looped").join(" "),function(){var a=new mxCell("Looped\nSub-Process",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1");a.vertex=!0;var b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=mxgraph.bpmn.loop;outlineConnect=0;");b.vertex=!0;b.geometry.relative= -!0;b.geometry.offset=new mxPoint(-15,-14);a.insert(b);b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(1,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Looped Sub-Process")}),this.addEntry("bpmn receive task",function(){var a=new mxCell("Receive",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,20,14),"html=1;shape=message;outlineConnect=0;"); -b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(7,7);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Receive Task")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","user_task").join(" "),function(){var a=new mxCell("User",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,14,14),"html=1;shape=mxgraph.bpmn.user_task;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0; -b.geometry.offset=new mxPoint(7,7);a.insert(b);b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-7,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"User Task")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","timer_start","attached").join(" "),function(){var a=new mxCell("Process",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;");a.vertex= -!0;var b=new mxCell("",new mxGeometry(1,1,30,30),"shape=mxgraph.bpmn.timer_start;perimeter=ellipsePerimeter;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-40,-15);a.insert(b);return d.createVertexTemplateFromCells([a],120,95,"Attached Timer Event 1")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","timer_start","attached").join(" "),function(){var a=new mxCell("Process", -new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(1,0,30,30),"shape=mxgraph.bpmn.timer_start;perimeter=ellipsePerimeter;html=1;labelPosition=right;labelBackgroundColor=#ffffff;align=left;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-15,10);a.insert(b);return d.createVertexTemplateFromCells([a],135,80,"Attached Timer Event 2")}),this.createVertexTemplateEntry("swimlane;html=1;horizontal=0;startSize=20;", +"bpmn event subprocess sub process sub-process"),this.createVertexTemplateEntry("shape=ext;rounded=1;html=1;whiteSpace=wrap;strokeWidth=3;",120,80,"Call Activity","Call Activity",null,null,"bpmn call activity"),this.addEntry("bpmn subprocess sub process sub-process",function(){var a=new mxCell("Sub-Process",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;outlineConnect=0;");b.vertex=!0;b.geometry.relative= +!0;b.geometry.offset=new mxPoint(-7,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Process")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","loop","subprocess sub process sub-process looped").join(" "),function(){var a=new mxCell("Looped\nSub-Process",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=mxgraph.bpmn.loop;outlineConnect=0;");b.vertex= +!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-15,-14);a.insert(b);b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(1,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Looped Sub-Process")}),this.addEntry("bpmn receive task",function(){var a=new mxCell("Receive",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("", +new mxGeometry(0,0,20,14),"html=1;shape=message;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(7,7);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Receive Task")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","user_task").join(" "),function(){var a=new mxCell("User",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,14,14),"html=1;shape=mxgraph.bpmn.user_task;outlineConnect=0;"); +b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(7,7);a.insert(b);b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-7,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"User Task")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","timer_start","attached").join(" "),function(){var a=new mxCell("Process",new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;"); +a.vertex=!0;var b=new mxCell("",new mxGeometry(1,1,30,30),"shape=mxgraph.bpmn.timer_start;perimeter=ellipsePerimeter;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-40,-15);a.insert(b);return d.createVertexTemplateFromCells([a],120,95,"Attached Timer Event 1")}),this.addEntry(this.getTagsForStencil("mxgraph.bpmn","timer_start","attached").join(" "),function(){var a=new mxCell("Process", +new mxGeometry(0,0,120,80),"html=1;whiteSpace=wrap;rounded=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(1,0,30,30),"shape=mxgraph.bpmn.timer_start;perimeter=ellipsePerimeter;html=1;labelPosition=right;labelBackgroundColor=#ffffff;align=left;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-15,10);a.insert(b);return d.createVertexTemplateFromCells([a],135,80,"Attached Timer Event 2")}),this.createVertexTemplateEntry("swimlane;html=1;horizontal=0;startSize=20;", 320,240,"Pool","Pool",null,null,"bpmn pool"),this.createVertexTemplateEntry("swimlane;html=1;horizontal=0;swimlaneLine=0;",300,120,"Lane","Lane",null,null,"bpmn lane"),this.createVertexTemplateEntry("shape=hexagon;html=1;whiteSpace=wrap;perimeter=hexagonPerimeter;rounded=0;",60,50,"","Conversation",null,null,"bpmn conversation"),this.createVertexTemplateEntry("shape=hexagon;html=1;whiteSpace=wrap;perimeter=hexagonPerimeter;strokeWidth=4;rounded=0;",60,50,"","Call Conversation",null,null,"bpmn call conversation"), -this.addEntry("bpmn subconversation sub conversation sub-conversation",function(){var a=new mxCell("",new mxGeometry(0,0,60,50),"shape=hexagon;whiteSpace=wrap;html=1;perimeter=hexagonPerimeter;rounded=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-7,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Conversation")}),this.addEntry("bpmn data object", -function(){var a=new mxCell("",new mxGeometry(0,0,40,60),"shape=note;whiteSpace=wrap;size=16;html=1;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,14,14),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(2,2);a.insert(b);b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;whiteSpace=wrap;shape=parallelMarker;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-7,-14);a.insert(b); -return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Data Object")}),this.createVertexTemplateEntry("shape=datastore;whiteSpace=wrap;html=1;",60,60,"","Data Store",null,null,"bpmn data store"),this.createVertexTemplateEntry("shape=plus;html=1;outlineConnect=0;",14,14,"","Sub-Process Marker",null,null,"bpmn subprocess sub process sub-process marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.loop;html=1;outlineConnect=0;",14,14,"","Loop Marker",null,null,"bpmn loop marker"), -this.createVertexTemplateEntry("shape=parallelMarker;html=1;outlineConnect=0;",14,14,"","Parallel MI Marker",null,null,"bpmn parallel mi marker"),this.createVertexTemplateEntry("shape=parallelMarker;direction=south;html=1;outlineConnect=0;",14,14,"","Sequential MI Marker",null,null,"bpmn sequential mi marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.ad_hoc;fillColor=#000000;html=1;outlineConnect=0;",14,14,"","Ad Hoc Marker",null,null,"bpmn ad hoc marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.compensation;html=1;outlineConnect=0;", +this.addEntry("bpmn subconversation sub conversation sub-conversation",function(){var a=new mxCell("",new mxGeometry(0,0,60,50),"shape=hexagon;whiteSpace=wrap;html=1;perimeter=hexagonPerimeter;rounded=0;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;shape=plus;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-7,-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Sub-Conversation")}),this.addEntry("bpmn data object", +function(){var a=new mxCell("",new mxGeometry(0,0,40,60),"shape=note;whiteSpace=wrap;size=16;html=1;dropTarget=0;");a.vertex=!0;var b=new mxCell("",new mxGeometry(0,0,14,14),"html=1;shape=singleArrow;arrowWidth=0.4;arrowSize=0.4;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(2,2);a.insert(b);b=new mxCell("",new mxGeometry(.5,1,14,14),"html=1;whiteSpace=wrap;shape=parallelMarker;outlineConnect=0;");b.vertex=!0;b.geometry.relative=!0;b.geometry.offset=new mxPoint(-7, +-14);a.insert(b);return d.createVertexTemplateFromCells([a],a.geometry.width,a.geometry.height,"Data Object")}),this.createVertexTemplateEntry("shape=datastore;whiteSpace=wrap;html=1;",60,60,"","Data Store",null,null,"bpmn data store"),this.createVertexTemplateEntry("shape=plus;html=1;outlineConnect=0;",14,14,"","Sub-Process Marker",null,null,"bpmn subprocess sub process sub-process marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.loop;html=1;outlineConnect=0;",14,14,"","Loop Marker",null, +null,"bpmn loop marker"),this.createVertexTemplateEntry("shape=parallelMarker;html=1;outlineConnect=0;",14,14,"","Parallel MI Marker",null,null,"bpmn parallel mi marker"),this.createVertexTemplateEntry("shape=parallelMarker;direction=south;html=1;outlineConnect=0;",14,14,"","Sequential MI Marker",null,null,"bpmn sequential mi marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.ad_hoc;fillColor=#000000;html=1;outlineConnect=0;",14,14,"","Ad Hoc Marker",null,null,"bpmn ad hoc marker"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.compensation;html=1;outlineConnect=0;", 14,14,"","Compensation Marker",null,null,"bpmn compensation marker"),this.createVertexTemplateEntry("shape=message;whiteSpace=wrap;html=1;outlineConnect=0;fillColor=#000000;strokeColor=#ffffff;strokeWidth=2;",40,30,"","Send Task",null,null,"bpmn send task"),this.createVertexTemplateEntry("shape=message;whiteSpace=wrap;html=1;outlineConnect=0;",40,30,"","Receive Task",null,null,"bpmn receive task"),this.createVertexTemplateEntry("shape=mxgraph.bpmn.user_task;html=1;outlineConnect=0;",14,14,"","User Task", null,null,this.getTagsForStencil("mxgraph.bpmn","user_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.manual_task;html=1;outlineConnect=0;",14,14,"","Manual Task",null,null,this.getTagsForStencil("mxgraph.bpmn","user_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.business_rule_task;html=1;outlineConnect=0;",14,14,"","Business Rule Task",null,null,this.getTagsForStencil("mxgraph.bpmn","business_rule_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.service_task;html=1;outlineConnect=0;", 14,14,"","Service Task",null,null,this.getTagsForStencil("mxgraph.bpmn","service_task").join(" ")),this.createVertexTemplateEntry("shape=mxgraph.bpmn.script_task;html=1;outlineConnect=0;",14,14,"","Script Task",null,null,this.getTagsForStencil("mxgraph.bpmn","script_task").join(" ")),this.createVertexTemplateEntry("html=1;shape=mxgraph.flowchart.annotation_2;align=left;labelPosition=right;",50,100,"","Annotation",null,null,this.getTagsForStencil("bpmn","annotation_1","bpmn business process model ").join(" ")), @@ -2521,11 +2521,12 @@ Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);th e&&e!=d.node;){if("a"==e.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,e,b);break}e=e.parentNode}});mxEvent.addGestureListeners(d.node,h,g,k);mxEvent.addListener(d.node,"click",function(a){mxEvent.consume(a)})};this.initLayoutManager()}; (function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isFastZoomEnabled=function(){return"nocss"!=urlParams.zoom&&!mxClient.NO_FO&&!mxClient.IS_EDGE&&!this.useCssTransforms&&this.isCssTransformsSupported()};Graph.prototype.isCssTransformsSupported=function(){return this.dialect==mxConstants.DIALECT_SVG&&!mxClient.NO_FO&&(!this.lightbox||!mxClient.IS_SF)};Graph.prototype.getCellAt=function(a,c,d,h,g,k){this.useCssTransforms&& (a=a/this.currentScale-this.currentTranslate.x,c=c/this.currentScale-this.currentTranslate.y);return this.getScaledCellAt.apply(this,arguments)};Graph.prototype.getScaledCellAt=function(a,c,d,h,g,k){h=null!=h?h:!0;g=null!=g?g:!0;null==d&&(d=this.getCurrentRoot(),null==d&&(d=this.getModel().getRoot()));if(null!=d)for(var b=this.model.getChildCount(d)-1;0<=b;b--){var e=this.model.getChildAt(d,b),f=this.getScaledCellAt(a,c,e,h,g,k);if(null!=f)return f;if(this.isCellVisible(e)&&(g&&this.model.isEdge(e)|| -h&&this.model.isVertex(e))&&(f=this.view.getState(e),null!=f&&(null==k||!k(f,a,c))&&this.intersects(f,a,c)))return e}return null};mxCellHighlight.prototype.getStrokeWidth=function(a){a=this.strokeWidth;this.graph.useCssTransforms&&(a/=this.graph.currentScale);return a};mxGraphView.prototype.getGraphBounds=function(){var a=this.graphBounds;if(this.graph.useCssTransforms)var c=this.graph.currentTranslate,d=this.graph.currentScale,a=new mxRectangle((a.x+c.x)*d,(a.y+c.y)*d,a.width*d,a.height*d);return a}; -mxGraphView.prototype.viewStateChanged=function(){this.graph.useCssTransforms?this.validate():this.revalidate();this.graph.sizeDidChange()};var a=mxGraphView.prototype.validate;mxGraphView.prototype.validate=function(b){this.graph.useCssTransforms&&(this.graph.currentScale=this.scale,this.graph.currentTranslate.x=this.translate.x,this.graph.currentTranslate.y=this.translate.y,this.scale=1,this.translate.x=0,this.translate.y=0);a.apply(this,arguments);this.graph.useCssTransforms&&(this.graph.updateCssTransform(), -this.scale=this.graph.currentScale,this.translate.x=this.graph.currentTranslate.x,this.translate.y=this.graph.currentTranslate.y)};Graph.prototype.updateCssTransform=function(){var a=this.view.getDrawPane();if(null!=a)if(a=a.parentNode,this.useCssTransforms){var c=a.getAttribute("transform");a.setAttribute("transformOrigin","0 0");var d=Math.round(100*this.currentScale)/100;a.setAttribute("transform","scale("+d+","+d+")translate("+Math.round(100*this.currentTranslate.x)/100+","+Math.round(100*this.currentTranslate.y)/ -100+")");if(c!=a.getAttribute("transform"))try{if(mxClient.IS_EDGE){var h=a.style.display;a.style.display="none";a.getBBox();a.style.display=h}}catch(g){}}else a.removeAttribute("transformOrigin"),a.removeAttribute("transform")};var c=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){var a=this.graph.useCssTransforms,d=this.scale,e=this.translate;a&&(this.scale=this.graph.currentScale,this.translate=this.graph.currentTranslate);c.apply(this,arguments); -a&&(this.scale=d,this.translate=e)};var d=mxGraph.prototype.updatePageBreaks;mxGraph.prototype.updatePageBreaks=function(a,c,e){var b=this.useCssTransforms,f=this.view.scale,k=this.view.translate;b&&(this.view.scale=1,this.view.translate=new mxPoint(0,0),this.useCssTransforms=!1);d.apply(this,arguments);b&&(this.view.scale=f,this.view.translate=k,this.useCssTransforms=!0)}})();Graph.prototype.isLightboxView=function(){return this.lightbox};Graph.prototype.isViewer=function(){return!1}; +h&&this.model.isVertex(e))&&(f=this.view.getState(e),null!=f&&(null==k||!k(f,a,c))&&this.intersects(f,a,c)))return e}return null};Graph.prototype.isRecursiveVertexResize=function(a){return!this.isSwimlane(a.cell)&&0'):new mxImage(IMAGE_PATH+"/handle-main.png",17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,''):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,''):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,''):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG? -Graph.createSvgImage(16,16,'',24,24):new mxImage(IMAGE_PATH+ -"/handle-rotate.png",16,16);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,''));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.fixedHandleImage= -HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget, -Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src=HoverIcons.prototype.triangleDown.src, -(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled= +function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveVertexResize(a)&&!mxEvent.isControlDown(b.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0'):new mxImage(IMAGE_PATH+"/handle-main.png", +17,17);HoverIcons.prototype.secondaryHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,''):new mxImage(IMAGE_PATH+"/handle-secondary.png",17,17);HoverIcons.prototype.fixedHandle=mxClient.IS_SVG?Graph.createSvgImage(18,18,''):new mxImage(IMAGE_PATH+"/handle-fixed.png",17,17);HoverIcons.prototype.terminalHandle= +mxClient.IS_SVG?Graph.createSvgImage(18,18,''):new mxImage(IMAGE_PATH+"/handle-terminal.png",17,17);HoverIcons.prototype.rotationHandle=mxClient.IS_SVG?Graph.createSvgImage(16,16,'', +24,24):new mxImage(IMAGE_PATH+"/handle-rotate.png",16,16);mxClient.IS_SVG&&(mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,''));mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle; +mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown=HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget= +HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxClient.IS_SVG||((new Image).src=HoverIcons.prototype.mainHandle.src,(new Image).src=HoverIcons.prototype.fixedHandle.src,(new Image).src=HoverIcons.prototype.terminalHandle.src,(new Image).src=HoverIcons.prototype.secondaryHandle.src,(new Image).src=HoverIcons.prototype.rotationHandle.src,(new Image).src=HoverIcons.prototype.triangleUp.src,(new Image).src=HoverIcons.prototype.triangleRight.src,(new Image).src= +HoverIcons.prototype.triangleDown.src,(new Image).src=HoverIcons.prototype.triangleLeft.src,(new Image).src=HoverIcons.prototype.refreshTarget.src,(new Image).src=HoverIcons.prototype.roundDrop.src);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled= !0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(a){return!mxEvent.isShiftDown(a.getEvent())}; if(Graph.touchStyle){if(mxClient.IS_TOUCH||0d?a=a.substring(0,d)+"[...]":null!=a&&a.length>c&&(a=Graph.compress(a)+"\n");return a}; -DrawioFile.prototype.checksumError=function(a,c,d,b,f){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=c)for(a=0;amxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{g.container.style.visibility="";g.model.endUpdate();g.cellRenderer.redraw=q;this.changeListenerEnabled=k;d.history=b;d.indexOfNextAdd=f;d.fireEvent(new mxEventObject(mxEvent.CLEAR));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)n!= -g.mathEnabled?(this.ui.editor.updateGraphComponents(),g.refresh()):(m!=g.foldingEnabled?g.view.revalidate():g.view.validate(),g.sizeDidChange());this.ui.updateTabContainer()}}; -DrawioFile.prototype.save=function(a,c,d,b,f,g){try{if(this.isEditable())if(!f&&this.invalidChecksum)if(null!=d)d({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=c&&c();else if(null!=d)d({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(k){if(null!=d)d(k);else throw k;}}; +DrawioFile.prototype.synchronizeFile=function(a,d){this.savingFile?null!=d&&d({message:mxResources.get("busy")}):null!=this.sync?this.sync.fileChanged(a,d):this.updateFile(a,d)}; +DrawioFile.prototype.updateFile=function(a,d,c,b){null!=c&&c()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=d&&d():this.getLatestVersion(mxUtils.bind(this,function(g){try{null!=c&&c()||(this.ui.getCurrentFile()!=this||this.invalidChecksum?null!=d&&d():null!=g?this.mergeFile(g,a,d,b):this.reloadFile(a,d))}catch(e){null!=d&&d(e)}}),d))}; +DrawioFile.prototype.mergeFile=function(a,d,c,b){var g=!0;try{this.stats.fileMerged++;var e=null!=this.shadowPages?this.shadowPages:this.ui.getPagesForNode(mxUtils.parseXml(this.shadowData).documentElement),k=this.ui.getPagesForNode(mxUtils.parseXml(a.data).documentElement);if(null!=k&&0c?a=a.substring(0,c)+"[...]":null!=a&&a.length>d&&(a=Graph.compress(a)+"\n");return a}; +DrawioFile.prototype.checksumError=function(a,d,c,b,g){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=a&&a();try{if(this.errorReportsEnabled){if(null!=d)for(a=0;amxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0)}finally{e.container.style.visibility="";e.model.endUpdate();e.cellRenderer.redraw=t;this.changeListenerEnabled=k;c.history=b;c.indexOfNextAdd=g;c.fireEvent(new mxEventObject(mxEvent.CLEAR));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)m!= +e.mathEnabled?(this.ui.editor.updateGraphComponents(),e.refresh()):(n!=e.foldingEnabled?e.view.revalidate():e.view.validate(),e.sizeDidChange());this.ui.updateTabContainer()}}; +DrawioFile.prototype.save=function(a,d,c,b,g,e){try{if(this.isEditable())if(!g&&this.invalidChecksum)if(null!=c)c({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=d&&d();else if(null!=c)c({message:mxResources.get("readOnly")});else throw Error(mxResources.get("readOnly"));}catch(k){if(null!=c)c(k);else throw k;}}; DrawioFile.prototype.updateFileData=function(a){this.setData(this.ui.getFileData(null,null,null,null,null,null,null,null,this,null!=a?!a:!this.isCompressed()))};DrawioFile.prototype.isCompressedStorage=function(){return!0};DrawioFile.prototype.isCompressed=function(){var a=null!=this.ui.fileNode?this.ui.fileNode.getAttribute("compressed"):null;return null!=a?"false"!=a:this.isCompressedStorage()&&Editor.compressXml}; -DrawioFile.prototype.decompress=function(){this.updateFileData(!1);null!=this.ui.fileNode&&this.ui.fileNode.setAttribute("compressed","false");this.fileChanged()};DrawioFile.prototype.compress=function(){this.updateFileData(!0);null!=this.ui.fileNode&&this.ui.fileNode.setAttribute("compressed","true");this.fileChanged()};DrawioFile.prototype.saveAs=function(a,c,d){};DrawioFile.prototype.saveFile=function(a,c,d,b){};DrawioFile.prototype.getPublicUrl=function(a){a(null)}; -DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,c,d){};DrawioFile.prototype.isMovable=function(){return!1}; -DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(a,c,d){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; -DrawioFile.prototype.open=function(){this.stats.opened++;var a=this.getData();if(null!=a){var c=function(a){for(var b=0;null!=a&&b style[id]"));c(document.querySelectorAll("head > link[id]"));this.ui.setFileData(a);this.isModified()||(this.shadowData=mxUtils.getXml(this.ui.getXmlFileData()),this.shadowPages=null)}this.installListeners();this.isSyncSupported()&&this.startSync()}; -DrawioFile.prototype.isSyncSupported=function(){return!1};DrawioFile.prototype.isRevisionHistorySupported=function(){return!1};DrawioFile.prototype.getRevisions=function(a,c){a(null)};DrawioFile.prototype.loadDescriptor=function(a,c){a(null)};DrawioFile.prototype.loadPatchDescriptor=function(a,c){this.loadDescriptor(mxUtils.bind(this,function(d){a(d)}),c)};DrawioFile.prototype.patchDescriptor=function(a,c){this.setDescriptorEtag(a,this.getDescriptorEtag(c))}; +DrawioFile.prototype.decompress=function(){this.updateFileData(!1);null!=this.ui.fileNode&&this.ui.fileNode.setAttribute("compressed","false");this.fileChanged()};DrawioFile.prototype.compress=function(){this.updateFileData(!0);null!=this.ui.fileNode&&this.ui.fileNode.setAttribute("compressed","true");this.fileChanged()};DrawioFile.prototype.saveAs=function(a,d,c){};DrawioFile.prototype.saveFile=function(a,d,c,b){};DrawioFile.prototype.getPublicUrl=function(a){a(null)}; +DrawioFile.prototype.isRestricted=function(){return!1};DrawioFile.prototype.isModified=function(){return this.modified};DrawioFile.prototype.setModified=function(a){this.modified=a};DrawioFile.prototype.isAutosaveOptional=function(){return!1};DrawioFile.prototype.isAutosave=function(){return!this.inConflictState&&this.ui.editor.autosave};DrawioFile.prototype.isRenamable=function(){return!1};DrawioFile.prototype.rename=function(a,d,c){};DrawioFile.prototype.isMovable=function(){return!1}; +DrawioFile.prototype.isTrashed=function(){return!1};DrawioFile.prototype.move=function(a,d,c){};DrawioFile.prototype.getHash=function(){return""};DrawioFile.prototype.getId=function(){return""};DrawioFile.prototype.isEditable=function(){return!this.ui.editor.isChromelessView()||this.ui.editor.editable};DrawioFile.prototype.getUi=function(){return this.ui};DrawioFile.prototype.getTitle=function(){return""};DrawioFile.prototype.setData=function(a){this.data=a};DrawioFile.prototype.getData=function(){return this.data}; +DrawioFile.prototype.open=function(){this.stats.opened++;var a=this.getData();if(null!=a){var d=function(a){for(var b=0;null!=a&&b style[id]"));d(document.querySelectorAll("head > link[id]"));this.ui.setFileData(a);this.isModified()||(this.shadowData=mxUtils.getXml(this.ui.getXmlFileData()),this.shadowPages=null)}this.installListeners();this.isSyncSupported()&&this.startSync()}; +DrawioFile.prototype.isSyncSupported=function(){return!1};DrawioFile.prototype.isRevisionHistorySupported=function(){return!1};DrawioFile.prototype.getRevisions=function(a,d){a(null)};DrawioFile.prototype.loadDescriptor=function(a,d){a(null)};DrawioFile.prototype.loadPatchDescriptor=function(a,d){this.loadDescriptor(mxUtils.bind(this,function(c){a(c)}),d)};DrawioFile.prototype.patchDescriptor=function(a,d){this.setDescriptorEtag(a,this.getDescriptorEtag(d))}; DrawioFile.prototype.startSync=function(){"auto"!=DrawioFile.SYNC||"1"==urlParams.stealth||"1"!=urlParams.rt&&this.ui.editor.chromeless&&!this.ui.editor.editable||(null==this.sync&&(this.sync=new DrawioFileSync(this)),this.sync.start())};DrawioFile.prototype.isConflict=function(){return!1};DrawioFile.prototype.getChannelId=function(){return Graph.compress(this.getHash()).replace(/[\/ +]/g,"_")};DrawioFile.prototype.getChannelKey=function(a){return null};DrawioFile.prototype.getCurrentUser=function(){return null}; -DrawioFile.prototype.getLatestVersion=function(a,c){a(null)};DrawioFile.prototype.getLastModifiedDate=function(){return new Date};DrawioFile.prototype.setCurrentRevisionId=function(a){this.setDescriptorRevisionId(this.getDescriptor(),a)};DrawioFile.prototype.getCurrentRevisionId=function(){return this.getDescriptorRevisionId(this.getDescriptor())};DrawioFile.prototype.setCurrentEtag=function(a){this.setDescriptorEtag(this.getDescriptor(),a)};DrawioFile.prototype.getCurrentEtag=function(){return this.getDescriptorEtag(this.getDescriptor())}; -DrawioFile.prototype.getDescriptor=function(){return null};DrawioFile.prototype.setDescriptor=function(){};DrawioFile.prototype.setDescriptorRevisionId=function(a,c){this.setDescriptorEtag(a,c)};DrawioFile.prototype.getDescriptorRevisionId=function(a){return this.getDescriptorEtag(a)};DrawioFile.prototype.setDescriptorEtag=function(a,c){};DrawioFile.prototype.getDescriptorEtag=function(a){return null};DrawioFile.prototype.getDescriptorSecret=function(a){return null}; -DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(this.changeListener=mxUtils.bind(this,function(a,c){var d=null!=c?c.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=d&&d.ignoreEdit||this.fileChanged()}),this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener),this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener),this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener),this.ui.addListener("pageFormatChanged", +DrawioFile.prototype.getLatestVersion=function(a,d){a(null)};DrawioFile.prototype.getLastModifiedDate=function(){return new Date};DrawioFile.prototype.setCurrentRevisionId=function(a){this.setDescriptorRevisionId(this.getDescriptor(),a)};DrawioFile.prototype.getCurrentRevisionId=function(){return this.getDescriptorRevisionId(this.getDescriptor())};DrawioFile.prototype.setCurrentEtag=function(a){this.setDescriptorEtag(this.getDescriptor(),a)};DrawioFile.prototype.getCurrentEtag=function(){return this.getDescriptorEtag(this.getDescriptor())}; +DrawioFile.prototype.getDescriptor=function(){return null};DrawioFile.prototype.setDescriptor=function(){};DrawioFile.prototype.setDescriptorRevisionId=function(a,d){this.setDescriptorEtag(a,d)};DrawioFile.prototype.getDescriptorRevisionId=function(a){return this.getDescriptorEtag(a)};DrawioFile.prototype.setDescriptorEtag=function(a,d){};DrawioFile.prototype.getDescriptorEtag=function(a){return null};DrawioFile.prototype.getDescriptorSecret=function(a){return null}; +DrawioFile.prototype.installListeners=function(){null==this.changeListener&&(this.changeListener=mxUtils.bind(this,function(a,d){var c=null!=d?d.getProperty("edit"):null;!this.changeListenerEnabled||!this.isEditable()||null!=c&&c.ignoreEdit||this.fileChanged()}),this.ui.editor.graph.model.addListener(mxEvent.CHANGE,this.changeListener),this.ui.editor.graph.addListener("gridSizeChanged",this.changeListener),this.ui.editor.graph.addListener("shadowVisibleChanged",this.changeListener),this.ui.addListener("pageFormatChanged", this.changeListener),this.ui.addListener("pageScaleChanged",this.changeListener),this.ui.addListener("backgroundColorChanged",this.changeListener),this.ui.addListener("backgroundImageChanged",this.changeListener),this.ui.addListener("foldingEnabledChanged",this.changeListener),this.ui.addListener("mathEnabledChanged",this.changeListener),this.ui.addListener("gridEnabledChanged",this.changeListener),this.ui.addListener("guidesEnabledChanged",this.changeListener),this.ui.addListener("pageViewChanged", this.changeListener),this.ui.addListener("connectionPointsChanged",this.changeListener),this.ui.addListener("connectionArrowsChanged",this.changeListener))}; DrawioFile.prototype.addAllSavedStatus=function(a){null!=this.ui.statusContainer&&this.ui.getCurrentFile()==this&&(a=null!=a?a:mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey)),this.ui.editor.setStatus('
'+a+"
"),a=this.ui.statusContainer.getElementsByTagName("div"),0'+c+" ("+mxUtils.htmlEntities(a.message)+")")}else{c=this.getErrorMessage(a);if(null==c&&null!=this.lastSaved){var d=this.ui.timeSince(new Date(this.lastSaved)); -null!=d&&(c=mxResources.get("lastSaved",[d]))}null!=c&&60'+c+"");c=this.ui.statusContainer.getElementsByTagName("div");null!=c&&0'+c+" ("+mxUtils.htmlEntities(a.message)+")"));EditorUi.enableDrafts&&null==this.getMode()&&this.saveDraft()}}; -DrawioFile.prototype.addConflictStatus=function(a,c){this.invalidChecksum&&null==c&&(c=mxResources.get("checksum"));this.setConflictStatus(mxUtils.htmlEntities(mxResources.get("fileChangedSync"))+(null!=c&&""!=c?" ("+mxUtils.htmlEntities(c)+")":""));this.ui.spinner.stop();this.clearAutosave();var d=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null;null!=d&&0'+d+" ("+mxUtils.htmlEntities(a.message)+")")}else{d=this.getErrorMessage(a);if(null==d&&null!=this.lastSaved){var c=this.ui.timeSince(new Date(this.lastSaved)); +null!=c&&(d=mxResources.get("lastSaved",[c]))}null!=d&&60'+d+"");d=this.ui.statusContainer.getElementsByTagName("div");null!=d&&0'+d+" ("+mxUtils.htmlEntities(a.message)+")"));EditorUi.enableDrafts&&null==this.getMode()&&this.saveDraft()}}; +DrawioFile.prototype.addConflictStatus=function(a,d){this.invalidChecksum&&null==d&&(d=mxResources.get("checksum"));this.setConflictStatus(mxUtils.htmlEntities(mxResources.get("fileChangedSync"))+(null!=d&&""!=d?" ("+mxUtils.htmlEntities(d)+")":""));this.ui.spinner.stop();this.clearAutosave();var c=null!=this.ui.statusContainer?this.ui.statusContainer.getElementsByTagName("div"):null;null!=c&&0'+a+' ')}; -DrawioFile.prototype.showRefreshDialog=function(a,c,d){null==d&&(d=mxResources.get("checksum"));this.ui.editor.isChromelessView()&&!this.ui.editor.editable?this.ui.alert(mxResources.get("fileChangedSync"),mxUtils.bind(this,function(){this.reloadFile(a,c)})):(this.addConflictStatus(mxUtils.bind(this,function(){this.showRefreshDialog(a,c)}),d),this.ui.showError(mxResources.get("error")+" ("+d+")",mxResources.get("fileChangedSyncDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(a, -c)}),null,mxResources.get("synchronize"),mxUtils.bind(this,function(){this.reloadFile(a,c)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150))}; -DrawioFile.prototype.showCopyDialog=function(a,c,d){this.invalidChecksum=this.inConflictState=!1;this.addUnsavedStatus();this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwriteDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(a,c)}),null,mxResources.get("overwrite"),d,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150)}; -DrawioFile.prototype.showConflictDialog=function(a,c){this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedSyncDialog"),mxResources.get("overwrite"),a,null,mxResources.get("synchronize"),c,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog();this.handleFileError(null,!1)}),340,150)}; -DrawioFile.prototype.redirectToNewApp=function(a,c){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var d=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),b=mxResources.get("redirectToNewApp");null!=c&&(b+=" ("+c+")");var f=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==d?window.location.reload(): -window.location.href=d});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(b,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),f,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(b,f,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"), -f)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))}; -DrawioFile.prototype.handleFileError=function(a,c){this.ui.spinner.stop();if(this.ui.getCurrentFile()==this)if(this.inConflictState)this.handleConflictError(a,c);else if(this.isModified()&&this.addUnsavedStatus(a),c)this.ui.handleError(a,null!=a?mxResources.get("errorSavingFile"):null);else if(!this.isModified()){var d=null!=a?null!=a.error?a.error.message:a.message:null;null!=d&&60'+ -mxUtils.htmlEntities(mxResources.get("error"))+(null!=d?" ("+mxUtils.htmlEntities(d)+")":"")+"")}}; -DrawioFile.prototype.handleConflictError=function(a,c){var d=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),b=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),f=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("saving"))&&(this.ui.editor.setStatus(""),this.save(!0,d,b,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),g=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("updatingDocument"))&& -this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get("saving"))&&this.save(!0,d,b,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),b)});"none"==DrawioFile.SYNC?this.showCopyDialog(d,b,f):this.invalidChecksum?this.showRefreshDialog(d,b,this.getErrorMessage(a)):c?this.showConflictDialog(f,g):this.addConflictStatus(mxUtils.bind(this,function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument"))); -this.synchronizeFile(d,b)}),this.getErrorMessage(a))};DrawioFile.prototype.getErrorMessage=function(a){return null!=a?null!=a.error?a.error.message:a.message:null};DrawioFile.prototype.isOverdue=function(){return null!=this.ageStart&&Date.now()-this.ageStart.getTime()>=this.ui.warnInterval}; +DrawioFile.prototype.showRefreshDialog=function(a,d,c){null==c&&(c=mxResources.get("checksum"));this.ui.editor.isChromelessView()&&!this.ui.editor.editable?this.ui.alert(mxResources.get("fileChangedSync"),mxUtils.bind(this,function(){this.reloadFile(a,d)})):(this.addConflictStatus(mxUtils.bind(this,function(){this.showRefreshDialog(a,d)}),c),this.ui.showError(mxResources.get("error")+" ("+c+")",mxResources.get("fileChangedSyncDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(a, +d)}),null,mxResources.get("synchronize"),mxUtils.bind(this,function(){this.reloadFile(a,d)}),mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150))}; +DrawioFile.prototype.showCopyDialog=function(a,d,c){this.invalidChecksum=this.inConflictState=!1;this.addUnsavedStatus();this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedOverwriteDialog"),mxResources.get("makeCopy"),mxUtils.bind(this,function(){this.copyFile(a,d)}),null,mxResources.get("overwrite"),c,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog()}),360,150)}; +DrawioFile.prototype.showConflictDialog=function(a,d){this.ui.showError(mxResources.get("externalChanges"),mxResources.get("fileChangedSyncDialog"),mxResources.get("overwrite"),a,null,mxResources.get("synchronize"),d,mxResources.get("cancel"),mxUtils.bind(this,function(){this.ui.hideDialog();this.handleFileError(null,!1)}),340,150)}; +DrawioFile.prototype.redirectToNewApp=function(a,d){this.ui.spinner.stop();if(!this.redirectDialogShowing){this.redirectDialogShowing=!0;var c=window.location.protocol+"//"+window.location.host+"/"+this.ui.getSearch("create title mode url drive splash state".split(" "))+"#"+this.getHash(),b=mxResources.get("redirectToNewApp");null!=d&&(b+=" ("+d+")");var g=mxUtils.bind(this,function(){var b=mxUtils.bind(this,function(){this.redirectDialogShowing=!1;window.location.href==c?window.location.reload(): +window.location.href=c});null==a&&this.isModified()?this.ui.confirm(mxResources.get("allChangesLost"),mxUtils.bind(this,function(){this.redirectDialogShowing=!1}),b,mxResources.get("cancel"),mxResources.get("discardChanges")):b()});null!=a?this.isModified()?this.ui.confirm(b,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()}),g,mxResources.get("cancel"),mxResources.get("discardChanges")):this.ui.confirm(b,g,mxUtils.bind(this,function(){this.redirectDialogShowing=!1;a()})):this.ui.alert(mxResources.get("redirectToNewApp"), +g)}};DrawioFile.prototype.handleFileSuccess=function(a){this.ui.spinner.stop();this.ui.getCurrentFile()==this&&(this.isModified()?this.fileChanged():a?(this.isTrashed()?this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get(this.allChangesSavedKey))+" ("+mxUtils.htmlEntities(mxResources.get("fileMovedToTrash"))+")"):this.addAllSavedStatus(),null!=this.sync&&(this.sync.resetUpdateStatusThread(),this.sync.remoteFileChanged&&(this.sync.remoteFileChanged=!1,this.sync.fileChangedNotify()))):this.ui.editor.setStatus(""))}; +DrawioFile.prototype.handleFileError=function(a,d){this.ui.spinner.stop();if(this.ui.getCurrentFile()==this)if(this.inConflictState)this.handleConflictError(a,d);else if(this.isModified()&&this.addUnsavedStatus(a),d)this.ui.handleError(a,null!=a?mxResources.get("errorSavingFile"):null);else if(!this.isModified()){var c=null!=a?null!=a.error?a.error.message:a.message:null;null!=c&&60'+ +mxUtils.htmlEntities(mxResources.get("error"))+(null!=c?" ("+mxUtils.htmlEntities(c)+")":"")+"")}}; +DrawioFile.prototype.handleConflictError=function(a,d){var c=mxUtils.bind(this,function(){this.handleFileSuccess(!0)}),b=mxUtils.bind(this,function(a){this.handleFileError(a,!0)}),g=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("saving"))&&(this.ui.editor.setStatus(""),this.save(!0,c,b,null,!0,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage))}),e=mxUtils.bind(this,function(){this.ui.spinner.spin(document.body,mxResources.get("updatingDocument"))&& +this.synchronizeFile(mxUtils.bind(this,function(){this.ui.spinner.stop();this.ui.spinner.spin(document.body,mxResources.get("saving"))&&this.save(!0,c,b,null,null,this.constructor!=GitHubFile&&this.constructor!=GitLabFile||null==a?null:a.commitMessage)}),b)});"none"==DrawioFile.SYNC?this.showCopyDialog(c,b,g):this.invalidChecksum?this.showRefreshDialog(c,b,this.getErrorMessage(a)):d?this.showConflictDialog(g,e):this.addConflictStatus(mxUtils.bind(this,function(){this.ui.editor.setStatus(mxUtils.htmlEntities(mxResources.get("updatingDocument"))); +this.synchronizeFile(c,b)}),this.getErrorMessage(a))};DrawioFile.prototype.getErrorMessage=function(a){return null!=a?null!=a.error?a.error.message:a.message:null};DrawioFile.prototype.isOverdue=function(){return null!=this.ageStart&&Date.now()-this.ageStart.getTime()>=this.ui.warnInterval}; DrawioFile.prototype.fileChanged=function(){this.lastChanged=new Date;this.setModified(!0);this.isAutosave()?(this.addAllSavedStatus(mxUtils.htmlEntities(mxResources.get("saving"))+"..."),this.ui.scheduleSanityCheck(),null==this.ageStart&&(this.ageStart=new Date),this.autosave(this.autosaveDelay,this.maxAutosaveDelay,mxUtils.bind(this,function(a){this.ui.stopSanityCheck();null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart= this.lastChanged)}),mxUtils.bind(this,function(a){this.handleFileError(a)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus())}; -DrawioFile.prototype.fileSaved=function(a,c,d,b){this.lastSaved=new Date;this.ageStart=null;try{this.stats.saved++,this.invalidChecksum=this.inConflictState=!1,null==this.sync?(this.shadowData=a,this.shadowPages=null,null!=d&&d()):this.sync.fileSaved(this.ui.getPagesForNode(mxUtils.parseXml(a).documentElement),c,d,b,a)}catch(k){this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=b&&b(k);try{if(this.errorReportsEnabled)this.sendErrorReport("Error in fileSaved",null,k);else{var f= -this.getCurrentUser(),g=null!=f?f.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),g,k)}}catch(m){}}}; -DrawioFile.prototype.autosave=function(a,c,d,b){null==this.lastAutosave&&(this.lastAutosave=Date.now());a=Date.now()-this.lastAutosavethis.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))};DrawioFile.prototype.contentChanged=function(){this.fireEvent(new mxEventObject("contentChanged"))}; -DrawioFile.prototype.close=function(a){this.updateFileData();this.stats.closed++;this.isAutosave()&&this.isModified()&&this.save(this.isAutosaveRevision(),null,null,a);this.destroy()};DrawioFile.prototype.hasSameExtension=function(a,c){if(null!=a&&null!=c){var d=a.lastIndexOf("."),b=0d&&(mxUtils.br(e),q=0);var k=document.createElement("a");k.style.overflow="hidden";k.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";k.className="geBaseButton";k.style.boxSizing="border-box";k.style.fontSize="11px";k.style.position="relative";k.style.margin="4px";k.style.marginTop="2px";k.style.padding="8px 10px 12px 10px";k.style.width="88px";k.style.height=StorageDialog.extended?"50px": +var StorageDialog=function(a,d,c){function b(b,p,q,e,g,B){function x(){mxEvent.addListener(k,"click",null!=B?B:function(){q!=App.MODE_GOOGLE||a.isDriveDomain()?q==App.MODE_GOOGLE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.drive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(q,m.checked);d()})):q==App.MODE_ONEDRIVE&&a.spinner.spin(document.body,mxResources.get("authorizing"))?a.oneDrive.checkToken(mxUtils.bind(this,function(){a.spinner.stop();a.setMode(q,m.checked); +d()})):(a.setMode(q,m.checked),d()):window.location.hostname=DriveClient.prototype.newAppHostname})}++t>c&&(mxUtils.br(f),t=0);var k=document.createElement("a");k.style.overflow="hidden";k.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";k.className="geBaseButton";k.style.boxSizing="border-box";k.style.fontSize="11px";k.style.position="relative";k.style.margin="4px";k.style.marginTop="2px";k.style.padding="8px 10px 12px 10px";k.style.width="88px";k.style.height=StorageDialog.extended?"50px": "100px";k.style.whiteSpace="nowrap";k.setAttribute("title",p);mxClient.IS_QUIRKS&&(k.style.cssFloat="left",k.style.zoom="1");var u=document.createElement("div");u.style.textOverflow="ellipsis";u.style.overflow="hidden";if(null!=b){var v=document.createElement("img");v.setAttribute("src",b);v.setAttribute("border","0");v.setAttribute("align","absmiddle");v.style.width=StorageDialog.extended?"24px":"60px";v.style.height=StorageDialog.extended?"24px":"60px";v.style.paddingBottom=StorageDialog.extended? -"4px":"6px";k.appendChild(v)}else u.style.paddingTop="5px",u.style.whiteSpace="normal",mxClient.IS_IOS?(k.style.padding="0px 10px 20px 10px",k.style.top="6px"):mxClient.IS_FF&&(u.style.paddingTop="0px",u.style.marginTop="-2px");StorageDialog.extended&&(k.style.paddingTop="4px",k.style.marginBottom="0px",u.display="inline-block",2==d&&(v.style.width="38px",v.style.height="38px",k.style.width="80px",k.style.height="68px"));k.appendChild(u);mxUtils.write(u,p);if(null!=g)for(b=0;b '+mxResources.get("googleDriveMissingClickHere")+"",f.appendChild(l))},5E3);this.container=f};StorageDialog.extended=!1; -var SplashDialog=function(a){var c=document.createElement("div");c.style.textAlign="center";var d=a.addLanguageMenu(c,!0);null!=d&&(d.style.bottom="19px");d=null;d=a.getServiceCount();if(!a.isOffline()&&1"),b.setAttribute("disabled","disabled"),n.appendChild(b);b=document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=m.length;n.appendChild(b); -mxEvent.addListener(n,"change",function(){var b=n.value,e=m.length!=b;e&&a.drive.setUser(m[b]);a.drive.authorize(e,function(){a.setMode(App.MODE_GOOGLE);a.hideDialog();a.showSplash()},function(b){a.handleError(b,null,function(){a.hideDialog();a.showSplash()})},!0)});g.appendChild(n)}else a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?d(function(){a.oneDrive.logout()}):a.mode==App.MODE_GITHUB&&null!=a.gitHub?d(function(){a.gitHub.logout();a.openLink("https://www.github.com/logout")}):a.mode==App.MODE_GITLAB&& -null!=a.gitLab?d(function(){a.gitLab.logout();a.openLink(DRAWIO_GITLAB_URL+"/users/sign_out")}):a.mode==App.MODE_TRELLO&&null!=a.trello?a.trello.isAuthorized()&&d(function(){a.trello.logout()}):a.mode==App.MODE_DROPBOX&&null!=a.dropbox&&d(function(){a.dropbox.logout();a.openLink("https://www.dropbox.com/logout")});mxUtils.br(g);d=document.createElement("a");d.setAttribute("href","javascript:void(0)");d.style.display="inline-block";d.style.marginTop="8px";mxUtils.write(d,mxResources.get("changeStorage")); -mxEvent.addListener(d,"click",function(){a.hideDialog(!1);a.setMode(null);a.clearMode();a.showSplash(!0)});g.appendChild(d)}c.appendChild(g);this.container=c},EmbedDialog=function(a,c,d,b,f,g){b=document.createElement("div");var k=/^https?:\/\//.test(c)||/^mailto:\/\//.test(c);null!=g?mxUtils.write(b,g):mxUtils.write(b,mxResources.get(5E5>c.length?k?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(b);g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.right="30px"; -g.style.color="gray";mxUtils.write(g,a.formatFileSize(c.length));b.appendChild(g);var m=document.createElement("textarea");m.setAttribute("autocomplete","off");m.setAttribute("autocorrect","off");m.setAttribute("autocapitalize","off");m.setAttribute("spellcheck","false");m.style.fontFamily="monospace";m.style.wordBreak="break-all";m.style.marginTop="10px";m.style.resize="none";m.style.height="150px";m.style.width="440px";m.style.border="1px solid gray";m.value=mxResources.get("updatingDocument"); -b.appendChild(m);mxUtils.br(b);this.init=function(){window.setTimeout(function(){5E5>c.length?(m.value=c,m.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null)):(m.setAttribute("readonly","true"),m.value=c.substring(0,340)+"... ("+mxResources.get("drawingTooLarge")+")")},0)};g=document.createElement("div");g.style.position="absolute";g.style.bottom="36px";g.style.right="32px";var n=null;!EmbedDialog.showPreviewOption|| -mxClient.IS_CHROMEAPP&&!k||navigator.standalone||!(k||mxClient.IS_SVG&&(null==document.documentMode||9c.length?"preview":"openInNewWindow"),function(){var b=5E5>c.length?m.value:c;if(null!=f)f(b);else if(k)try{var e=a.openLink(b);null!=e&&(null==d||0"+encodeURIComponent(mxResources.get("preview"))+''+c+""),g.close()):a.handleError({message:mxResources.get("errorUpdatingPreview")})}}),n.className="geBtn",g.appendChild(n));if(!k||7500c.length){var e=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(m.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}),q=document.createElement("img");q.setAttribute("src",Editor.facebookImage);q.setAttribute("width","18");q.setAttribute("height","18");q.setAttribute("border", -"0");e.appendChild(q);e.setAttribute("title",mxResources.get("facebook")+" ("+a.formatFileSize(51200)+" max)");e.style.verticalAlign="bottom";e.style.paddingTop="4px";e.style.minWidth="46px";e.className="geBtn";g.appendChild(e)}7168>c.length&&(e=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+"&url="+encodeURIComponent(m.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}), -q=document.createElement("img"),q.setAttribute("src",Editor.tweetImage),q.setAttribute("width","18"),q.setAttribute("height","18"),q.setAttribute("border","0"),q.style.marginBottom="5px",e.appendChild(q),e.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),e.style.verticalAlign="bottom",e.style.paddingTop="4px",e.style.minWidth="46px",e.className="geBtn",g.appendChild(e))}q=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});g.appendChild(q);e=mxUtils.button(mxResources.get("copy"), -function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?m.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>c.length?mxClient.IS_SF||null!=document.documentMode?q.className="geBtn gePrimaryBtn":(g.appendChild(e),e.className="geBtn gePrimaryBtn",q.className="geBtn"):(g.appendChild(n),q.className="geBtn",n.className="geBtn gePrimaryBtn");b.appendChild(g);this.container=b}; +(a.hideDialog(),a.openFiles(b.files,!0),b.type="",b.type="file",b.value="")});b.style.display="none";document.body.appendChild(b);a.storageFileInputElt=b}a.storageFileInputElt.click()}),u.appendChild(y),k.appendChild(u),e.style.paddingBottom="4px");e.appendChild(k);mxEvent.addListener(q,"click",function(a){m.checked=!m.checked;mxEvent.consume(a)});mxClient.IS_SVG&&isLocalStorage&&"0"!=urlParams.gapi&&(null==document.documentMode||10<=document.documentMode)&&window.setTimeout(function(){null==a.drive&& +(l.style.padding="8px",l.style.fontSize="9pt",l.style.marginTop="-14px",l.innerHTML=' '+mxResources.get("googleDriveMissingClickHere")+"",g.appendChild(l))},5E3);this.container=g};StorageDialog.extended=!1; +var SplashDialog=function(a){var d=document.createElement("div");d.style.textAlign="center";var c=a.addLanguageMenu(d,!0);null!=c&&(c.style.bottom="19px");c=null;c=a.getServiceCount();if(!a.isOffline()&&1"),b.setAttribute("disabled","disabled"),m.appendChild(b);b=document.createElement("option");mxUtils.write(b,mxResources.get("addAccount"));b.value=n.length;m.appendChild(b); +mxEvent.addListener(m,"change",function(){var b=m.value,f=n.length!=b;f&&a.drive.setUser(n[b]);a.drive.authorize(f,function(){a.setMode(App.MODE_GOOGLE);a.hideDialog();a.showSplash()},function(b){a.handleError(b,null,function(){a.hideDialog();a.showSplash()})},!0)});e.appendChild(m)}else a.mode==App.MODE_ONEDRIVE&&null!=a.oneDrive?c(function(){a.oneDrive.logout()}):a.mode==App.MODE_GITHUB&&null!=a.gitHub?c(function(){a.gitHub.logout();a.openLink("https://www.github.com/logout")}):a.mode==App.MODE_GITLAB&& +null!=a.gitLab?c(function(){a.gitLab.logout();a.openLink(DRAWIO_GITLAB_URL+"/users/sign_out")}):a.mode==App.MODE_TRELLO&&null!=a.trello?a.trello.isAuthorized()&&c(function(){a.trello.logout()}):a.mode==App.MODE_DROPBOX&&null!=a.dropbox&&c(function(){a.dropbox.logout();a.openLink("https://www.dropbox.com/logout")});mxUtils.br(e);c=document.createElement("a");c.setAttribute("href","javascript:void(0)");c.style.display="inline-block";c.style.marginTop="8px";mxUtils.write(c,mxResources.get("changeStorage")); +mxEvent.addListener(c,"click",function(){a.hideDialog(!1);a.setMode(null);a.clearMode();a.showSplash(!0)});e.appendChild(c)}d.appendChild(e);this.container=d},EmbedDialog=function(a,d,c,b,g,e){b=document.createElement("div");var k=/^https?:\/\//.test(d)||/^mailto:\/\//.test(d);null!=e?mxUtils.write(b,e):mxUtils.write(b,mxResources.get(5E5>d.length?k?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(b);e=document.createElement("div");e.style.position="absolute";e.style.top="30px";e.style.right="30px"; +e.style.color="gray";mxUtils.write(e,a.formatFileSize(d.length));b.appendChild(e);var n=document.createElement("textarea");n.setAttribute("autocomplete","off");n.setAttribute("autocorrect","off");n.setAttribute("autocapitalize","off");n.setAttribute("spellcheck","false");n.style.fontFamily="monospace";n.style.wordBreak="break-all";n.style.marginTop="10px";n.style.resize="none";n.style.height="150px";n.style.width="440px";n.style.border="1px solid gray";n.value=mxResources.get("updatingDocument"); +b.appendChild(n);mxUtils.br(b);this.init=function(){window.setTimeout(function(){5E5>d.length?(n.value=d,n.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null)):(n.setAttribute("readonly","true"),n.value=d.substring(0,340)+"... ("+mxResources.get("drawingTooLarge")+")")},0)};e=document.createElement("div");e.style.position="absolute";e.style.bottom="36px";e.style.right="32px";var m=null;!EmbedDialog.showPreviewOption|| +mxClient.IS_CHROMEAPP&&!k||navigator.standalone||!(k||mxClient.IS_SVG&&(null==document.documentMode||9d.length?"preview":"openInNewWindow"),function(){var b=5E5>d.length?n.value:d;if(null!=g)g(b);else if(k)try{var f=a.openLink(b);null!=f&&(null==c||0"+encodeURIComponent(mxResources.get("preview"))+''+d+""),e.close()):a.handleError({message:mxResources.get("errorUpdatingPreview")})}}),m.className="geBtn",e.appendChild(m));if(!k||7500d.length){var f=mxUtils.button("",function(){try{var b="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(n.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}),t=document.createElement("img");t.setAttribute("src",Editor.facebookImage);t.setAttribute("width","18");t.setAttribute("height","18");t.setAttribute("border", +"0");f.appendChild(t);f.setAttribute("title",mxResources.get("facebook")+" ("+a.formatFileSize(51200)+" max)");f.style.verticalAlign="bottom";f.style.paddingTop="4px";f.style.minWidth="46px";f.className="geBtn";e.appendChild(f)}7168>d.length&&(f=mxUtils.button("",function(){try{var b="https://twitter.com/intent/tweet?text="+encodeURIComponent("Check out the diagram I made using @drawio")+"&url="+encodeURIComponent(n.value);a.openLink(b)}catch(p){a.handleError({message:p.message||mxResources.get("drawingTooLarge")})}}), +t=document.createElement("img"),t.setAttribute("src",Editor.tweetImage),t.setAttribute("width","18"),t.setAttribute("height","18"),t.setAttribute("border","0"),t.style.marginBottom="5px",f.appendChild(t),f.setAttribute("title",mxResources.get("twitter")+" ("+a.formatFileSize(7168)+" max)"),f.style.verticalAlign="bottom",f.style.paddingTop="4px",f.style.minWidth="46px",f.className="geBtn",e.appendChild(f))}t=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.appendChild(t);f=mxUtils.button(mxResources.get("copy"), +function(){n.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?n.select():document.execCommand("selectAll",!1,null);document.execCommand("copy");a.alert(mxResources.get("copiedToClipboard"))});5E5>d.length?mxClient.IS_SF||null!=document.documentMode?t.className="geBtn gePrimaryBtn":(e.appendChild(f),f.className="geBtn gePrimaryBtn",t.className="geBtn"):(e.appendChild(m),t.className="geBtn",m.className="geBtn gePrimaryBtn");b.appendChild(e);this.container=b}; EmbedDialog.showPreviewOption=!0; -var GoogleSitesDialog=function(a,c){function d(){var a=null!=D&&null!=D.getTitle()?D.getTitle():this.defaultFilename;if(x.checked&&""!=p.value){var b="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(p.value));null!=a&&(b+="&title="+encodeURIComponent(a));0");if(2<=G.length){var m=B(G[0]),I=B(G[G.length-1]),G=new mxCell(2 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml": -"plantUmlSvg"==m.value||"plantUmlTxt"==m.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var g=a.editor.graph.getFreeInsertPoint();c=document.createElement("div");c.style.textAlign="right";var k=document.createElement("textarea");k.style.resize="none";k.style.width="100%";k.style.height= -"354px";k.style.marginBottom="16px";var m=document.createElement("select");if("formatSql"==d||"mermaid"==d)m.style.display="none";var n=document.createElement("option");n.setAttribute("value","list");mxUtils.write(n,mxResources.get("list"));"plantUml"!=d&&m.appendChild(n);null!=d&&"fromText"!=d||n.setAttribute("selected","selected");n=document.createElement("option");n.setAttribute("value","table");mxUtils.write(n,mxResources.get("formatSql"));"formatSql"==d&&(m.appendChild(n),n.setAttribute("selected", -"selected"));n=document.createElement("option");n.setAttribute("value","mermaid");mxUtils.write(n,mxResources.get("formatSql"));"mermaid"==d&&(m.appendChild(n),n.setAttribute("selected","selected"));n=document.createElement("option");n.setAttribute("value","diagram");mxUtils.write(n,mxResources.get("diagram"));"plantUml"!=d&&m.appendChild(n);n=document.createElement("option");n.setAttribute("value","plantUmlSvg");mxUtils.write(n,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"== -d&&n.setAttribute("selected","selected");var q=document.createElement("option");q.setAttribute("value","plantUmlPng");mxUtils.write(q,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");var e=document.createElement("option");e.setAttribute("value","plantUmlTxt");mxUtils.write(e,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==d&&(m.appendChild(n),m.appendChild(q),m.appendChild(e));var l=f();k.value= -l;c.appendChild(k);this.init=function(){k.focus()};Graph.fileSupport&&(k.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),k.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0");if(2<=G.length){var n=B(G[0]),H=B(G[G.length-1]),G=new mxCell(2 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml": +"plantUmlSvg"==n.value||"plantUmlTxt"==n.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":";Example:\na->b\nb->edge label->c\nc->a\n"}var e=a.editor.graph.getFreeInsertPoint();d=document.createElement("div");d.style.textAlign="right";var k=document.createElement("textarea");k.style.resize="none";k.style.width="100%";k.style.height= +"354px";k.style.marginBottom="16px";var n=document.createElement("select");if("formatSql"==c||"mermaid"==c)n.style.display="none";var m=document.createElement("option");m.setAttribute("value","list");mxUtils.write(m,mxResources.get("list"));"plantUml"!=c&&n.appendChild(m);null!=c&&"fromText"!=c||m.setAttribute("selected","selected");m=document.createElement("option");m.setAttribute("value","table");mxUtils.write(m,mxResources.get("formatSql"));"formatSql"==c&&(n.appendChild(m),m.setAttribute("selected", +"selected"));m=document.createElement("option");m.setAttribute("value","mermaid");mxUtils.write(m,mxResources.get("formatSql"));"mermaid"==c&&(n.appendChild(m),m.setAttribute("selected","selected"));m=document.createElement("option");m.setAttribute("value","diagram");mxUtils.write(m,mxResources.get("diagram"));"plantUml"!=c&&n.appendChild(m);m=document.createElement("option");m.setAttribute("value","plantUmlSvg");mxUtils.write(m,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"== +c&&m.setAttribute("selected","selected");var t=document.createElement("option");t.setAttribute("value","plantUmlPng");mxUtils.write(t,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");var f=document.createElement("option");f.setAttribute("value","plantUmlTxt");mxUtils.write(f,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!a.isOffline()&&"plantUml"==c&&(n.appendChild(m),n.appendChild(t),n.appendChild(f));var l=g();k.value= +l;d.appendChild(k);this.init=function(){k.focus()};Graph.fileSupport&&(k.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),k.addEventListener("drop",function(a){a.stopPropagation();a.preventDefault();if(0'+mxResources.get(c,null,c)+"");var u=!1;mxEvent.addListener(k,"click",function(c){E.setAttribute("disabled","disabled");k.style.backgroundColor="transparent";k.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.editor.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;J.spin(P);mxUtils.get(c,mxUtils.bind(this,function(a){J.stop();200<=a.getStatus()&&299>=a.getStatus()&&(H(k,a.getText(),e,null,null,B),u&&C())}))}); -mxEvent.addListener(k,"dblclick",function(a){u=!0})}else k.innerHTML='
'+mxResources.get(c,null,c)+"
",l&&H(k),null!=f?mxEvent.addListener(k,"click",f):(mxEvent.addListener(k,"click",function(a){H(k,null, -null,b,t)}),mxEvent.addListener(k,"dblclick",function(a){C()}));P.appendChild(k);return k}function A(){T&&(T=!1,mxEvent.addListener(P,"scroll",function(a){P.scrollTop+P.clientHeight>=P.scrollHeight&&(y(),mxEvent.consume(a))}));var a=null;if(0'+mxResources.get(c,null,c)+"");var u=!1;mxEvent.addListener(k,"click",function(c){E.setAttribute("disabled","disabled");k.style.backgroundColor="transparent";k.style.border="1px solid transparent";c=b;c=/^https?:\/\//.test(c)&&!a.editor.isCorsEnabledForUrl(c)?PROXY_URL+"?url="+encodeURIComponent(c):TEMPLATE_PATH+"/"+c;J.spin(P);mxUtils.get(c,mxUtils.bind(this,function(a){J.stop();200<=a.getStatus()&&299>=a.getStatus()&&(I(k,a.getText(),f,null,null,B),u&&C())}))}); +mxEvent.addListener(k,"dblclick",function(a){u=!0})}else k.innerHTML='
'+mxResources.get(c,null,c)+"
",l&&I(k),null!=e?mxEvent.addListener(k,"click",e):(mxEvent.addListener(k,"click",function(a){I(k,null, +null,b,q)}),mxEvent.addListener(k,"dblclick",function(a){C()}));P.appendChild(k);return k}function A(){T&&(T=!1,mxEvent.addListener(P,"scroll",function(a){P.scrollTop+P.clientHeight>=P.scrollHeight&&(y(),mxEvent.consume(a))}));var a=null;if(0c.lastIndexOf(".")&&0>l){var b=null!=b?b:B.value,p="";b==App.MODE_GOOGLE?p=a.drive.extension:b==App.MODE_GITHUB?p=a.gitHub.extension:b==App.MODE_GITLAB?p=a.gitLab.extension:b==App.MODE_TRELLO?p=a.trello.extension:b==App.MODE_DROPBOX?p=a.dropbox.extension:b==App.MODE_ONEDRIVE?p=a.oneDrive.extension:b==App.MODE_DEVICE&&(p=".drawio");0<=l&&(e=e.substring(0,l));x.value=e+p}}C(d)})}var f= -document.createElement("a");f.style.overflow="hidden";var g=document.createElement("img");g.src=b;g.setAttribute("border","0");g.setAttribute("align","absmiddle");g.style.width="60px";g.style.height="60px";g.style.paddingBottom="6px";f.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";f.className="geBaseButton";f.style.position="relative";f.style.margin="4px";f.style.padding="8px 8px 10px 8px";f.style.whiteSpace="nowrap";f.appendChild(g);mxClient.IS_QUIRKS&&(f.style.cssFloat="left",f.style.zoom= -"1");f.style.color="gray";f.style.fontSize="11px";var u=document.createElement("div");f.appendChild(u);mxUtils.write(u,e);if(null!=p&&null==a[p]){g.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(f);var m=window.setTimeout(function(){null==a[p]&&(v.stop(),f.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!= -a[p]&&(window.clearTimeout(m),mxUtils.setOpacity(u,100),g.style.visibility="",v.stop(),t())}))}else t();A.appendChild(f);++D==l&&(mxUtils.br(A),D=0)}function C(b){var e=x.value;if(null==b||null!=e&&0d.lastIndexOf(".")&&0>l){var b=null!=b?b:B.value,p="";b==App.MODE_GOOGLE?p=a.drive.extension:b==App.MODE_GITHUB?p=a.gitHub.extension:b==App.MODE_GITLAB?p=a.gitLab.extension:b==App.MODE_TRELLO?p=a.trello.extension:b==App.MODE_DROPBOX?p=a.dropbox.extension:b==App.MODE_ONEDRIVE?p=a.oneDrive.extension:b==App.MODE_DEVICE&&(p=".drawio");0<=l&&(f=f.substring(0,l));x.value=f+p}}C(c)})}var e= +document.createElement("a");e.style.overflow="hidden";var g=document.createElement("img");g.src=b;g.setAttribute("border","0");g.setAttribute("align","absmiddle");g.style.width="60px";g.style.height="60px";g.style.paddingBottom="6px";e.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";e.className="geBaseButton";e.style.position="relative";e.style.margin="4px";e.style.padding="8px 8px 10px 8px";e.style.whiteSpace="nowrap";e.appendChild(g);mxClient.IS_QUIRKS&&(e.style.cssFloat="left",e.style.zoom= +"1");e.style.color="gray";e.style.fontSize="11px";var u=document.createElement("div");e.appendChild(u);mxUtils.write(u,f);if(null!=p&&null==a[p]){g.style.visibility="hidden";mxUtils.setOpacity(u,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(e);var n=window.setTimeout(function(){null==a[p]&&(v.stop(),e.style.display="none")},3E4);a.addListener("clientLoaded",mxUtils.bind(this,function(){null!= +a[p]&&(window.clearTimeout(n),mxUtils.setOpacity(u,100),g.style.visibility="",v.stop(),q())}))}else q();A.appendChild(e);++D==l&&(mxUtils.br(A),D=0)}function C(b){var f=x.value;if(null==b||null!=f&&0JGraph Ltd.
All Rights Reserved.'; -c.appendChild(b);mxEvent.addListener(c,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=c},FeedbackDialog=function(a){var c=document.createElement("div"),d=document.createElement("div");mxUtils.write(d,mxResources.get("sendYourFeedbackToDrawIo"));d.style.fontSize="18px";d.style.marginBottom="18px";c.appendChild(d);d=document.createElement("div");mxUtils.write(d,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");c.appendChild(d);var b=document.createElement("input"); -b.setAttribute("type","text");b.style.marginTop="6px";b.style.width="600px";var f=mxUtils.button(mxResources.get("sendMessage"),function(){var c=n.value+(k.checked?"\nDiagram:\n"+mxUtils.getXml(a.getXmlFileData()):"")+"\nBrowser:\n"+navigator.userAgent;c.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(b.value)+ -"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+c),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});f.className="geBtn gePrimaryBtn";f.setAttribute("disabled","disabled");var g=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; -mxEvent.addListener(b,"change",function(){0JGraph Ltd.
All Rights Reserved.'; +d.appendChild(b);mxEvent.addListener(d,"click",function(b){"A"!=mxEvent.getSource(b).nodeName&&a.hideDialog()});this.container=d},FeedbackDialog=function(a){var d=document.createElement("div"),c=document.createElement("div");mxUtils.write(c,mxResources.get("sendYourFeedbackToDrawIo"));c.style.fontSize="18px";c.style.marginBottom="18px";d.appendChild(c);c=document.createElement("div");mxUtils.write(c,mxResources.get("yourEmailAddress")+" ("+mxResources.get("required")+")");d.appendChild(c);var b=document.createElement("input"); +b.setAttribute("type","text");b.style.marginTop="6px";b.style.width="600px";var g=mxUtils.button(mxResources.get("sendMessage"),function(){var c=m.value+(k.checked?"\nDiagram:\n"+mxUtils.getXml(a.getXmlFileData()):"")+"\nBrowser:\n"+navigator.userAgent;c.length>FeedbackDialog.maxAttachmentSize?a.alert(mxResources.get("drawingTooLarge")):(a.hideDialog(),a.spinner.spin(document.body)&&mxUtils.post(null!=FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(b.value)+ +"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent("Feedback:\n"+c),function(b){a.spinner.stop();200<=b.getStatus()&&299>=b.getStatus()?a.alert(mxResources.get("feedbackSent")):a.alert(mxResources.get("errorSendingFeedback"))},function(){a.spinner.stop();a.alert(mxResources.get("errorSendingFeedback"))}))});g.className="geBtn gePrimaryBtn";g.setAttribute("disabled","disabled");var e=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; +mxEvent.addListener(b,"change",function(){0':null==b.desc&&(l.style.padding="20px",l.style.color="rgb(179, 179, 179)",mxUtils.write(l,mxResources.get("noPreview")));null!=p&&(p.style.backgroundColor="");p=d;p.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(d,"click",t);mxEvent.addListener(d,"dblclick",function(a){g.checked=!g.checked;mxEvent.consume(a)});u.push(function(){return g.checked?b.id:null});0==c&&0==f&&t()})(b.entries[f])})(b[c])}); -g=document.createElement("div");g.className="geDialogTitle";mxUtils.write(g,mxResources.get("shapes"));g.style.position="absolute";g.style.top="0px";g.style.left="0px";g.style.lineHeight="40px";g.style.height="40px";g.style.right="0px";mxClient.IS_QUIRKS&&(g.style.width="718px");var e=document.createElement("div"),l=document.createElement("div");e.style.position="absolute";e.style.top="40px";e.style.left="0px";e.style.width="202px";e.style.bottom="60px";e.style.overflow="auto";mxClient.IS_QUIRKS&& -(e.style.height="437px",e.style.marginTop="1px");l.style.position="absolute";l.style.left="202px";l.style.right="0px";l.style.top="40px";l.style.bottom="60px";l.style.overflow="auto";l.style.borderLeft="1px solid rgb(211, 211, 211)";l.style.textAlign="center";mxClient.IS_QUIRKS&&(l.style.width=parseInt(g.style.width)-202+"px",l.style.height=e.style.height,l.style.marginTop=e.style.marginTop);var p=null,u=[],v=document.createElement("div");v.style.position="relative";v.style.left="0px";v.style.right= -"0px";n(d);b.style.padding="30px";b.appendChild(g);b.appendChild(e);b.appendChild(l);d=document.createElement("div");d.className="geDialogFooter";d.style.position="absolute";d.style.paddingRight="16px";d.style.color="gray";d.style.left="0px";d.style.right="0px";d.style.bottom="0px";d.style.height="60px";d.style.lineHeight="52px";mxClient.IS_QUIRKS&&(d.style.width=g.style.width,d.style.paddingTop="12px");var t=document.createElement("input");t.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)g= -document.createElement("span"),g.style.paddingRight="20px",g.appendChild(t),mxUtils.write(g," "+mxResources.get("rememberThisSetting")),t.checked=!0,t.defaultChecked=!0,mxEvent.addListener(g,"click",function(a){mxEvent.getSource(a)!=t&&(t.checked=!t.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(g.style.position="relative",g.style.top="-6px"),d.appendChild(g);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});g.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog(); -for(var b=[],c=0;cmxUtils.indexOf(f,b)&&f.push(b)}c()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(b.container, -300,80,!0,!0);b.init()});g.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var m=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(f);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});m.className="geBtn gePrimaryBtn";var n=document.createElement("div");n.style.marginTop="14px";n.style.textAlign="right";var q=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000056430")}); -q.className="geBtn";a.isOffline()&&!mxClient.IS_CHROMEAPP&&(q.style.display="none");n.appendChild(q);a.editor.cancelFirst?(n.appendChild(k),n.appendChild(g),n.appendChild(m)):(n.appendChild(g),n.appendChild(m),n.appendChild(k));d.appendChild(n);this.container=d},CropImageDialog=function(a,c,d){function b(a){null!=k&&k.destroy();k=a?new Croppie(g,{viewport:{width:150,height:150,type:"circle"},enableExif:!0,showZoomer:!1,enableResize:!1,enableOrientation:!0}):new Croppie(g,{viewport:{width:150,height:150, -type:"square"},enableExif:!0,showZoomer:!1,enableResize:!0,enableOrientation:!0});k.bind({url:c})}var f=document.createElement("div"),g=document.createElement("div");g.style.width="300px";g.style.height="300px";f.appendChild(g);var k=null;this.init=function(){b()};var m=document.createElement("input");m.setAttribute("type","checkbox");m.setAttribute("id","croppieCircle");m.style.margin="5px";f.appendChild(m);var n=document.createElement("label");n.setAttribute("for","croppieCircle");mxUtils.write(n, -mxResources.get("circle"));f.appendChild(n);var q,e,l,p,n=document.createElement("div");q=document.createElement("button");e=document.createElement("button");n.appendChild(q);n.appendChild(e);l=document.createElement("i");p=document.createElement("i");q.appendChild(l);e.appendChild(p);n.className="cr-rotate-controls";n.style["float"]="right";n.style.position="inherit";q.className="cr-rotate-l";e.className="cr-rotate-r";f.appendChild(n);q.addEventListener("click",function(){k.rotate(-90)});e.addEventListener("click", -function(){k.rotate(90)});mxEvent.addListener(m,"change",function(){b(this.checked)});m=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});m.className="geBtn";n=mxUtils.button(mxResources.get("apply"),function(){k.result({type:"base64",size:"original"}).then(function(b){d(b);a.hideDialog()})});n.className="geBtn gePrimaryBtn";q=document.createElement("div");q.style.marginTop="20px";q.style.textAlign="right";a.editor.cancelFirst?(q.appendChild(m),q.appendChild(n)):(q.appendChild(n), -q.appendChild(m));f.appendChild(q);this.container=f},EditGeometryDialog=function(a,c){var d=a.editor.graph,b=1==c.length?d.getCellGeometry(c[0]):null,f=document.createElement("div"),g=document.createElement("table"),k=document.createElement("tbody"),m=document.createElement("tr"),n=document.createElement("td"),q=document.createElement("td");g.style.paddingLeft="6px";mxUtils.write(n,mxResources.get("relative")+":");var e=document.createElement("input");e.setAttribute("type","checkbox");null!=b&&b.relative&& -(e.setAttribute("checked","checked"),e.defaultChecked=!0);this.init=function(){e.focus()};q.appendChild(e);m.appendChild(n);m.appendChild(q);k.appendChild(m);m=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("left")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.width="100px";l.value=null!=b?b.x:"";q.appendChild(l);m.appendChild(n);m.appendChild(q);k.appendChild(m);m=document.createElement("tr"); -n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=b?b.y:"";q.appendChild(p);m.appendChild(n);m.appendChild(q);k.appendChild(m);m=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("dx")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width= -"100px";u.value=null!=b&&null!=b.offset?b.offset.x:"";q.appendChild(u);m.appendChild(n);m.appendChild(q);k.appendChild(m);m=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("dy")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=b&&null!=b.offset?b.offset.y:"";q.appendChild(v);m.appendChild(n);m.appendChild(q);k.appendChild(m);m=document.createElement("tr");n=document.createElement("td"); -q=document.createElement("td");mxUtils.write(n,mxResources.get("width")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=b?b.width:"";q.appendChild(t);m.appendChild(n);m.appendChild(q);k.appendChild(m);m=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("height")+":");var z=document.createElement("input");z.setAttribute("type","text");z.style.width="100px";z.value=null!= -b?b.height:"";q.appendChild(z);m.appendChild(n);m.appendChild(q);k.appendChild(m);m=document.createElement("tr");n=document.createElement("td");q=document.createElement("td");mxUtils.write(n,mxResources.get("rotation")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=1==c.length?mxUtils.getValue(d.getCellStyle(c[0]),mxConstants.STYLE_ROTATION,0):"";q.appendChild(y);m.appendChild(n);m.appendChild(q);k.appendChild(m);g.appendChild(k);f.appendChild(g); -b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var C=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();d.getModel().beginUpdate();try{for(var b=0;ba.maxImageSize||f>a.maxImageSize){var D=Math.min(1,Math.min(a.maxImageSize/Math.max(1,p)),a.maxImageSize/ -Math.max(1,f));p*=D;f*=D}y>F?(F=Math.round(100*F/y),y=100):(y=Math.round(100*y/F),F=100);var I=document.createElement("div");I.setAttribute("draggable","true");I.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";I.style.position="relative";I.style.cursor="move";mxUtils.setPrefixedStyle(I.style,"transition","transform .1s ease-in-out");if(null!=b){var G=document.createElement("img");G.setAttribute("src",H.convert(b));G.style.width=y+"px";G.style.height=F+"px";G.style.margin="10px";G.style.paddingBottom= -Math.floor((100-F)/2)+"px";G.style.paddingLeft=Math.floor((100-y)/2)+"px";I.appendChild(G)}else if(null!=g){var q=a.stringToCells(Graph.decompress(g.xml));0':null==b.desc&&(l.style.padding="20px",l.style.color="rgb(179, 179, 179)",mxUtils.write(l,mxResources.get("noPreview")));null!=p&&(p.style.backgroundColor="");p=d;p.style.backgroundColor="dark"==uiTheme?"#505759":"#ebf2f9";null!=a&&mxEvent.consume(a)}};mxEvent.addListener(d,"click",g);mxEvent.addListener(d,"dblclick",function(a){q.checked=!q.checked;mxEvent.consume(a)});u.push(function(){return q.checked?b.id:null});0==c&&0==e&&g()})(b.entries[e])})(b[c])}); +e=document.createElement("div");e.className="geDialogTitle";mxUtils.write(e,mxResources.get("shapes"));e.style.position="absolute";e.style.top="0px";e.style.left="0px";e.style.lineHeight="40px";e.style.height="40px";e.style.right="0px";mxClient.IS_QUIRKS&&(e.style.width="718px");var f=document.createElement("div"),l=document.createElement("div");f.style.position="absolute";f.style.top="40px";f.style.left="0px";f.style.width="202px";f.style.bottom="60px";f.style.overflow="auto";mxClient.IS_QUIRKS&& +(f.style.height="437px",f.style.marginTop="1px");l.style.position="absolute";l.style.left="202px";l.style.right="0px";l.style.top="40px";l.style.bottom="60px";l.style.overflow="auto";l.style.borderLeft="1px solid rgb(211, 211, 211)";l.style.textAlign="center";mxClient.IS_QUIRKS&&(l.style.width=parseInt(e.style.width)-202+"px",l.style.height=f.style.height,l.style.marginTop=f.style.marginTop);var p=null,u=[],v=document.createElement("div");v.style.position="relative";v.style.left="0px";v.style.right= +"0px";m(c);b.style.padding="30px";b.appendChild(e);b.appendChild(f);b.appendChild(l);c=document.createElement("div");c.className="geDialogFooter";c.style.position="absolute";c.style.paddingRight="16px";c.style.color="gray";c.style.left="0px";c.style.right="0px";c.style.bottom="0px";c.style.height="60px";c.style.lineHeight="52px";mxClient.IS_QUIRKS&&(c.style.width=e.style.width,c.style.paddingTop="12px");var q=document.createElement("input");q.setAttribute("type","checkbox");if(isLocalStorage||mxClient.IS_CHROMEAPP)e= +document.createElement("span"),e.style.paddingRight="20px",e.appendChild(q),mxUtils.write(e," "+mxResources.get("rememberThisSetting")),q.checked=!0,q.defaultChecked=!0,mxEvent.addListener(e,"click",function(a){mxEvent.getSource(a)!=q&&(q.checked=!q.checked,mxEvent.consume(a))}),mxClient.IS_QUIRKS&&(e.style.position="relative",e.style.top="-6px"),c.appendChild(e);e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});e.className="geBtn";m=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog(); +for(var b=[],c=0;cmxUtils.indexOf(g,b)&&g.push(b)}d()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");a.showDialog(b.container, +300,80,!0,!0);b.init()});e.className="geBtn";var k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";var n=mxUtils.button(mxResources.get("apply"),function(){mxSettings.setPlugins(g);mxSettings.save();a.hideDialog();a.alert(mxResources.get("restartForChangeRequired"))});n.className="geBtn gePrimaryBtn";var m=document.createElement("div");m.style.marginTop="14px";m.style.textAlign="right";var t=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://desk.draw.io/support/solutions/articles/16000056430")}); +t.className="geBtn";a.isOffline()&&!mxClient.IS_CHROMEAPP&&(t.style.display="none");m.appendChild(t);a.editor.cancelFirst?(m.appendChild(k),m.appendChild(e),m.appendChild(n)):(m.appendChild(e),m.appendChild(n),m.appendChild(k));c.appendChild(m);this.container=c},CropImageDialog=function(a,d,c){function b(a){null!=k&&k.destroy();k=a?new Croppie(e,{viewport:{width:150,height:150,type:"circle"},enableExif:!0,showZoomer:!1,enableResize:!1,enableOrientation:!0}):new Croppie(e,{viewport:{width:150,height:150, +type:"square"},enableExif:!0,showZoomer:!1,enableResize:!0,enableOrientation:!0});k.bind({url:d})}var g=document.createElement("div"),e=document.createElement("div");e.style.width="300px";e.style.height="300px";g.appendChild(e);var k=null;this.init=function(){b()};var n=document.createElement("input");n.setAttribute("type","checkbox");n.setAttribute("id","croppieCircle");n.style.margin="5px";g.appendChild(n);var m=document.createElement("label");m.setAttribute("for","croppieCircle");mxUtils.write(m, +mxResources.get("circle"));g.appendChild(m);var t,f,l,p,m=document.createElement("div");t=document.createElement("button");f=document.createElement("button");m.appendChild(t);m.appendChild(f);l=document.createElement("i");p=document.createElement("i");t.appendChild(l);f.appendChild(p);m.className="cr-rotate-controls";m.style["float"]="right";m.style.position="inherit";t.className="cr-rotate-l";f.className="cr-rotate-r";g.appendChild(m);t.addEventListener("click",function(){k.rotate(-90)});f.addEventListener("click", +function(){k.rotate(90)});mxEvent.addListener(n,"change",function(){b(this.checked)});n=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});n.className="geBtn";m=mxUtils.button(mxResources.get("apply"),function(){k.result({type:"base64",size:"original"}).then(function(b){c(b);a.hideDialog()})});m.className="geBtn gePrimaryBtn";t=document.createElement("div");t.style.marginTop="20px";t.style.textAlign="right";a.editor.cancelFirst?(t.appendChild(n),t.appendChild(m)):(t.appendChild(m), +t.appendChild(n));g.appendChild(t);this.container=g},EditGeometryDialog=function(a,d){var c=a.editor.graph,b=1==d.length?c.getCellGeometry(d[0]):null,g=document.createElement("div"),e=document.createElement("table"),k=document.createElement("tbody"),n=document.createElement("tr"),m=document.createElement("td"),t=document.createElement("td");e.style.paddingLeft="6px";mxUtils.write(m,mxResources.get("relative")+":");var f=document.createElement("input");f.setAttribute("type","checkbox");null!=b&&b.relative&& +(f.setAttribute("checked","checked"),f.defaultChecked=!0);this.init=function(){f.focus()};t.appendChild(f);n.appendChild(m);n.appendChild(t);k.appendChild(n);n=document.createElement("tr");m=document.createElement("td");t=document.createElement("td");mxUtils.write(m,mxResources.get("left")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.width="100px";l.value=null!=b?b.x:"";t.appendChild(l);n.appendChild(m);n.appendChild(t);k.appendChild(n);n=document.createElement("tr"); +m=document.createElement("td");t=document.createElement("td");mxUtils.write(m,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.style.width="100px";p.value=null!=b?b.y:"";t.appendChild(p);n.appendChild(m);n.appendChild(t);k.appendChild(n);n=document.createElement("tr");m=document.createElement("td");t=document.createElement("td");mxUtils.write(m,mxResources.get("dx")+":");var u=document.createElement("input");u.setAttribute("type","text");u.style.width= +"100px";u.value=null!=b&&null!=b.offset?b.offset.x:"";t.appendChild(u);n.appendChild(m);n.appendChild(t);k.appendChild(n);n=document.createElement("tr");m=document.createElement("td");t=document.createElement("td");mxUtils.write(m,mxResources.get("dy")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value=null!=b&&null!=b.offset?b.offset.y:"";t.appendChild(v);n.appendChild(m);n.appendChild(t);k.appendChild(n);n=document.createElement("tr");m=document.createElement("td"); +t=document.createElement("td");mxUtils.write(m,mxResources.get("width")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.width="100px";q.value=null!=b?b.width:"";t.appendChild(q);n.appendChild(m);n.appendChild(t);k.appendChild(n);n=document.createElement("tr");m=document.createElement("td");t=document.createElement("td");mxUtils.write(m,mxResources.get("height")+":");var z=document.createElement("input");z.setAttribute("type","text");z.style.width="100px";z.value=null!= +b?b.height:"";t.appendChild(z);n.appendChild(m);n.appendChild(t);k.appendChild(n);n=document.createElement("tr");m=document.createElement("td");t=document.createElement("td");mxUtils.write(m,mxResources.get("rotation")+":");var y=document.createElement("input");y.setAttribute("type","text");y.style.width="100px";y.value=1==d.length?mxUtils.getValue(c.getCellStyle(d[0]),mxConstants.STYLE_ROTATION,0):"";t.appendChild(y);n.appendChild(m);n.appendChild(t);k.appendChild(n);e.appendChild(k);g.appendChild(e); +b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});b.className="geBtn";var C=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();c.getModel().beginUpdate();try{for(var b=0;ba.maxImageSize||e>a.maxImageSize){var y=Math.min(1,Math.min(a.maxImageSize/Math.max(1,p)),a.maxImageSize/ +Math.max(1,e));p*=y;e*=y}F>D?(D=Math.round(100*D/F),F=100):(F=Math.round(100*F/D),D=100);var H=document.createElement("div");H.setAttribute("draggable","true");H.style.display=mxClient.IS_QUIRKS?"inline":"inline-block";H.style.position="relative";H.style.cursor="move";mxUtils.setPrefixedStyle(H.style,"transition","transform .1s ease-in-out");if(null!=b){var t=document.createElement("img");t.setAttribute("src",I.convert(b));t.style.width=F+"px";t.style.height=D+"px";t.style.margin="10px";t.style.paddingBottom= +Math.floor((100-D)/2)+"px";t.style.paddingLeft=Math.floor((100-F)/2)+"px";H.appendChild(t)}else if(null!=g){var G=a.stringToCells(Graph.decompress(g.xml));0z?y-1:y,0,e.splice(z,1)[0]),u.insertBefore(u.children[z],u.children[y])):(e.push(e.splice(z,1)[0]),u.appendChild(u.children[z]));else if(0=c.status&&(m(c.responseText, -e,d,l,p,f,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(m(c,e,d,l,p,f,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",n);mxEvent.addListener(u,"drop",q);mxEvent.addListener(v,"dragover",n);mxEvent.addListener(v,"drop",q);d.appendChild(u);b=document.createElement("div");b.style.textAlign="right";b.style.marginTop="20px"; -c=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});c.setAttribute("id","btnCancel");c.className="geBtn";a.editor.cancelFirst&&b.appendChild(c);l=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(e),c=p.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")});l.setAttribute("id", -"btnDownload");l.className="geBtn";b.appendChild(l);if(Graph.fileSupport){if(null==a.libDlgFileInputElt){var D=document.createElement("input");D.setAttribute("multiple","multiple");D.setAttribute("type","file");mxEvent.addListener(D,"change",function(b){x=!1;a.importFiles(D.files,0,0,a.maxImageSize,function(a,c,e,d,l,p,f,g,t){null!=D.files&&(A(b)(a,c,e,d,l,p,f,g,t),D.type="",D.type="file",D.value="")});u.scrollTop=u.scrollHeight});D.style.display="none";document.body.appendChild(D);a.libDlgFileInputElt= -D}l=mxUtils.button(mxResources.get("import"),function(){null!=C&&(C(),C=null);a.libDlgFileInputElt.click()});l.setAttribute("id","btnAddImage");l.className="geBtn";b.appendChild(l)}l=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=C&&(C(),C=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){x=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var e=a.indexOf(",");0z?y-1:y,0,f.splice(z,1)[0]),u.insertBefore(u.children[z],u.children[y])):(f.push(f.splice(z,1)[0]),u.appendChild(u.children[z]));else if(0=c.status&&(n(c.responseText, +f,d,l,p,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(n(c,f,d,l,p,e,g,"fixed",mxEvent.isAltDown(b)?null:g.substring(0,g.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",m);mxEvent.addListener(u,"drop",t);mxEvent.addListener(v,"dragover",m);mxEvent.addListener(v,"drop",t);c.appendChild(u);b=document.createElement("div");b.style.textAlign="right";b.style.marginTop="20px"; +d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog(!0)});d.setAttribute("id","btnCancel");d.className="geBtn";a.editor.cancelFirst&&b.appendChild(d);l=mxUtils.button(mxResources.get("export"),function(){var b=a.createLibraryDataFromImages(f),c=p.value;/(\.xml)$/i.test(c)||(c+=".xml");a.isLocalFileSave()?a.saveLocalFile(b,c,"text/xml",null,null,!0):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(c)+"&format=xml&xml="+encodeURIComponent(b))).simulate(document,"_blank")});l.setAttribute("id", +"btnDownload");l.className="geBtn";b.appendChild(l);if(Graph.fileSupport){if(null==a.libDlgFileInputElt){var D=document.createElement("input");D.setAttribute("multiple","multiple");D.setAttribute("type","file");mxEvent.addListener(D,"change",function(b){x=!1;a.importFiles(D.files,0,0,a.maxImageSize,function(a,c,f,d,l,p,e,g,q){null!=D.files&&(A(b)(a,c,f,d,l,p,e,g,q),D.type="",D.type="file",D.value="")});u.scrollTop=u.scrollHeight});D.style.display="none";document.body.appendChild(D);a.libDlgFileInputElt= +D}l=mxUtils.button(mxResources.get("import"),function(){null!=C&&(C(),C=null);a.libDlgFileInputElt.click()});l.setAttribute("id","btnAddImage");l.className="geBtn";b.appendChild(l)}l=mxUtils.button(mxResources.get("addImageUrl"),function(){null!=C&&(C(),C=null);a.showImageDialog(mxResources.get("addImageUrl"),"",function(a,b,c){x=!1;if(null!=a){if("data:image/"==a.substring(0,11)){var f=a.indexOf(",");0
'+mxResources.get("newDiagram",null,"New Diagram")+'
'+mxResources.get("templates",null,"Templates")+'
'+mxResources.get("newDiagram",null,"New Diagram")+'
'+ mxResources.get("showAll",null,"+ Show all")+'
'+mxResources.get("myDiagrams",null,"My diagrams")+'
'+ mxResources.get("allDiagrams",null,"All diagrams")+'

🛈 '+ -mxResources.get("linkToDiagramHint",null,"Add a link to this diagram. The diagram can only be edited from the page that owns it.")+'
'+mxResources.get("create",null,"Create")+'
'+mxResources.get("cancel",null,"Cancel")+"
",c=document.createElement("div");c.innerHTML=a;c.className="geTemplateDlg"; -var a=window.innerWidth,d=window.innerHeight,b=987,f=712;.9*a=b.getStatus()&&(c(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function t(a){a=a?"":"none";for(var b=A.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;cg&&(f=f.substring(0,g)+"…");if(c){var n=document.createElement("tr"),x=document.createElement("td"),A=document.createElement("img");A.src="/images/icon-search.svg";A.className="geTempDlgDiagramListPreviewBtn";A.setAttribute("title",mxResources.get("preview"));x.appendChild(A);k=document.createElement("span");k.className="geTempDlgDiagramTitle";k.innerHTML=f;x.appendChild(k);n.appendChild(x);x=document.createElement("td"); -x.innerHTML=B;n.appendChild(x);x=document.createElement("td");x.innerHTML=m;n.appendChild(x);d.appendChild(n);null==G&&(e(),u(n,"geTempDlgDiagramsListGridActive",a[l]));(function(a,b){mxEvent.addListener(n,"click",function(){G!=b&&(e(),u(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(n,"dblclick",v);mxEvent.addListener(A,"click",function(){p(a)})})(a[l],n)}else{var y=document.createElement("div");y.className="geTempDlgDiagramTile";y.setAttribute("title",k);null==G&&(e(),u(y,"geTempDlgDiagramTileActive", -a[l]));B=document.createElement("div");B.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var D=document.createElement("img");D.style.display="none";(function(a,b){D.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};D.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(D,B);D.src=x;B.appendChild(D);y.appendChild(B);B=document.createElement("div");B.className="geTempDlgDiagramTileLbl";B.innerHTML=null!=f?f:"";y.appendChild(B); -A=document.createElement("img");A.src="/images/icon-search.svg";A.className="geTempDlgDiagramPreviewBtn";A.setAttribute("title",mxResources.get("preview"));y.appendChild(A);(function(a,b){mxEvent.addListener(y,"click",function(){G!=b&&(e(),u(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(y,"dblclick",v);mxEvent.addListener(A,"click",function(){p(a)})})(a[l],y);U.appendChild(y)}}}function y(a,b){ba.innerHTML="";u();for(var c=!b&&5a.length?"none":""}function C(a){var b=A.querySelector(".geTemplatesList"), -c;for(c in a){var e=document.createElement("div"),d=mxResources.get(c),l=a[c];null==d&&(d=c.substring(0,1).toUpperCase()+c.substring(1));e.className="geTemplateCatLink";e.setAttribute("title",d+" ("+l.length+")");d=mxUtils.htmlEntities(d);15
'+mxResources.get("create",null,"Create")+'
'+mxResources.get("cancel",null,"Cancel")+"
",d=document.createElement("div");d.innerHTML=a;d.className="geTemplateDlg"; +var a=window.innerWidth,c=window.innerHeight,b=987,g=712;.9*a=b.getStatus()&&(d(b.getText(),"nameInput.value"),a.hideDialog(!0))}))}}function q(a){a=a?"":"none";for(var b=A.querySelectorAll(".geTempDlgLinkToDiagram"),c=0;cg&&(e=e.substring(0,g)+"…");if(c){var m=document.createElement("tr"),x=document.createElement("td"),A=document.createElement("img");A.src="/images/icon-search.svg";A.className="geTempDlgDiagramListPreviewBtn";A.setAttribute("title",mxResources.get("preview"));x.appendChild(A);k=document.createElement("span");k.className="geTempDlgDiagramTitle";k.innerHTML=e;x.appendChild(k);m.appendChild(x);x=document.createElement("td"); +x.innerHTML=B;m.appendChild(x);x=document.createElement("td");x.innerHTML=n;m.appendChild(x);d.appendChild(m);null==G&&(f(),u(m,"geTempDlgDiagramsListGridActive",a[l]));(function(a,b){mxEvent.addListener(m,"click",function(){G!=b&&(f(),u(b,"geTempDlgDiagramsListGridActive",a))});mxEvent.addListener(m,"dblclick",v);mxEvent.addListener(A,"click",function(){p(a)})})(a[l],m)}else{var D=document.createElement("div");D.className="geTempDlgDiagramTile";D.setAttribute("title",k);null==G&&(f(),u(D,"geTempDlgDiagramTileActive", +a[l]));B=document.createElement("div");B.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var y=document.createElement("img");y.style.display="none";(function(a,b){y.onload=function(){b.className="geTempDlgDiagramTileImg";a.style.display=""};y.onerror=function(){b.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(y,B);y.src=x;B.appendChild(y);D.appendChild(B);B=document.createElement("div");B.className="geTempDlgDiagramTileLbl";B.innerHTML=null!=e?e:"";D.appendChild(B); +A=document.createElement("img");A.src="/images/icon-search.svg";A.className="geTempDlgDiagramPreviewBtn";A.setAttribute("title",mxResources.get("preview"));D.appendChild(A);(function(a,b){mxEvent.addListener(D,"click",function(){G!=b&&(f(),u(b,"geTempDlgDiagramTileActive",a))});mxEvent.addListener(D,"dblclick",v);mxEvent.addListener(A,"click",function(){p(a)})})(a[l],D);U.appendChild(D)}}}function y(a,b){ba.innerHTML="";u();for(var c=!b&&5a.length?"none":""}function C(a){var b=A.querySelector(".geTemplatesList"), +c;for(c in a){var f=document.createElement("div"),d=mxResources.get(c),l=a[c];null==d&&(d=c.substring(0,1).toUpperCase()+c.substring(1));f.className="geTemplateCatLink";f.setAttribute("title",d+" ("+l.length+")");d=mxUtils.htmlEntities(d);15
'+c+"
";this.pagesContainer.appendChild(f);var g=this.createViewer(f.childNodes[0],d);c=mxUtils.bind(this,function(){null!=this.selectedItem&&(this.selectedItem.className="geAspectDlgListItem");this.selectedItem=f;this.selectedPage=a; -f.className+=" geAspectDlgListItemSelected";this.layersContainer.innerHTML="";this.selectedLayers={};this.okBtn.setAttribute("disabled","disabled");for(var b=g.model,b=b.getChildCells(b.getRoot()),c=0;c
'+c+"
";this.layersContainer.appendChild(f);this.createViewer(f.childNodes[0],b,a.id);b=mxUtils.bind(this,function(){0<=f.className.indexOf("geAspectDlgListItemSelected")? -(f.className="geAspectDlgListItem",delete this.selectedLayers[a.id],0==Object.keys(this.selectedLayers).length&&this.okBtn.setAttribute("disabled","disabled")):(f.className+=" geAspectDlgListItemSelected",this.selectedLayers[a.id]=!0,this.okBtn.removeAttribute("disabled"))});mxEvent.addListener(f,"click",b);-1!=this.aspect.layerIds.indexOf(a.id)&&b()};(function(){Editor.prototype.appName="draw.io";Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": +a.nextSibling}C(Z)}});mxUtils.get(g,function(a){if(!ca){ca=!0;for(a=a.getXml().documentElement.firstChild;null!=a;)"undefined"!==typeof a.getAttribute&&null!=a.getAttribute("title")&&da.push({img:a.getAttribute("img"),libs:a.getAttribute("libs"),clibs:a.getAttribute("clibs"),title:a.getAttribute("title")}),a=a.nextSibling;y(da)}});var M=function(a,b){V.style.display="";aa.stop();D=!1;B?B=!1:b?U.innerHTML=b:0==a.length?U.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found")): +z(a,!1,K)};I(E);var ea=null;n&&mxEvent.addListener(A.querySelector(".geTempDlgSearchBox"),"keyup",function(a){var b=this;null!=ea&&clearTimeout(ea);13==a.keyCode?x(b.value):ea=setTimeout(function(){x(b.value)},500)});mxEvent.addListener(Y,"click",v);mxEvent.addListener(A.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(a){v(!0)});mxEvent.addListener(A.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=c&&c();a.hideDialog(!0)})}; +var BtnDialog=function(a,d,c,b){var g=document.createElement("div");g.style.textAlign="center";var e=document.createElement("p");e.style.fontSize="16pt";e.style.padding="0px";e.style.margin="0px";e.style.color="gray";mxUtils.write(e,mxResources.get("done"));var k="Unknown",n=document.createElement("img");n.setAttribute("border","0");n.setAttribute("align","absmiddle");n.style.marginRight="10px";d==a.drive?(k=mxResources.get("googleDrive"),n.src=IMAGE_PATH+"/google-drive-logo-white.svg"):d==a.dropbox? +(k=mxResources.get("dropbox"),n.src=IMAGE_PATH+"/dropbox-logo-white.svg"):d==a.oneDrive?(k=mxResources.get("oneDrive"),n.src=IMAGE_PATH+"/onedrive-logo-white.svg"):d==a.gitHub?(k=mxResources.get("github"),n.src=IMAGE_PATH+"/github-logo-white.svg"):d==a.gitLab?(k=mxResources.get("gitlab"),n.src=IMAGE_PATH+"/gitlab-logo.svg"):d==a.trello&&(k=mxResources.get("trello"),n.src=IMAGE_PATH+"/trello-logo-white.svg");a=document.createElement("p");mxUtils.write(a,mxResources.get("authorizedIn",[k],"You are now authorized in {1}")); +c=mxUtils.button(c,b);c.insertBefore(n,c.firstChild);c.style.marginTop="6px";c.className="geBigButton";c.style.fontSize="18px";c.style.padding="14px";g.appendChild(e);g.appendChild(a);g.appendChild(c);this.container=g},FontDialog=function(a,d,c,b,g){function e(a){this.style.border="";13==a.keyCode&&C.click()}var k,n,m,t=document.createElement("table"),f=document.createElement("tbody");t.style.marginTop="8px";k=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.whiteSpace= +"nowrap";n.style.fontSize="10pt";n.style.fontWeight="bold";var l=document.createElement("input");l.style.cssText="margin-right:8px;margin-bottom:8px;";l.setAttribute("value","sysfonts");l.setAttribute("type","radio");l.setAttribute("name","current-fontdialog");l.setAttribute("id","fontdialog-sysfonts");n.appendChild(l);m=document.createElement("label");m.setAttribute("for","fontdialog-sysfonts");mxUtils.write(m,mxResources.get("sysFonts",null,"System Fonts"));n.appendChild(m);k.appendChild(n);f.appendChild(k); +k=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(n);var p=document.createElement("input");"s"==b&&p.setAttribute("value",d);p.style.marginLeft="4px";p.style.width="250px";p.className="dlg_fontName_s";n=document.createElement("td");n.appendChild(p);k.appendChild(n);f.appendChild(k);k=document.createElement("tr"); +n=document.createElement("td");n.colSpan=2;n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.fontWeight="bold";var u=document.createElement("input");u.style.cssText="margin-right:8px;margin-bottom:8px;";u.setAttribute("value","googlefonts");u.setAttribute("type","radio");u.setAttribute("name","current-fontdialog");u.setAttribute("id","fontdialog-googlefonts");n.appendChild(u);m=document.createElement("label");m.setAttribute("for","fontdialog-googlefonts");mxUtils.write(m,mxResources.get("googleFonts", +null,"Google Fonts"));n.appendChild(m);k.appendChild(n);f.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(n);var v=document.createElement("input");"g"==b&&v.setAttribute("value",d);v.style.marginLeft="4px";v.style.width="250px";v.className="dlg_fontName_g";n=document.createElement("td");n.appendChild(v); +k.appendChild(n);f.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.fontWeight="bold";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","webfonts");q.setAttribute("type","radio");q.setAttribute("name","current-fontdialog");q.setAttribute("id","fontdialog-webfonts");n.appendChild(q);m=document.createElement("label");m.setAttribute("for", +"fontdialog-webfonts");mxUtils.write(m,mxResources.get("webfonts",null,"Web Fonts"));n.appendChild(m);k.appendChild(n);f.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontname",null,"Font Name")+":");k.appendChild(n);var z=document.createElement("input");"w"==b&&z.setAttribute("value",d);z.style.marginLeft="4px";z.style.width="250px"; +z.className="dlg_fontName_w";n=document.createElement("td");n.appendChild(z);k.appendChild(n);f.appendChild(k);k=document.createElement("tr");n=document.createElement("td");n.style.whiteSpace="nowrap";n.style.fontSize="10pt";n.style.width="120px";n.style.paddingLeft="15px";mxUtils.write(n,mxResources.get("fontUrl",null,"Font URL")+":");k.appendChild(n);var y=document.createElement("input");y.setAttribute("value",c||"");y.style.marginLeft="4px";y.style.width="250px";y.className="dlg_fontUrl";n=document.createElement("td"); +n.appendChild(y);k.appendChild(n);f.appendChild(k);this.init=function(){var a=p;"g"==b?a=v:"w"==b&&(a=z);a.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode||mxClient.IS_QUIRKS?a.select():document.execCommand("selectAll",!1,null)};k=document.createElement("tr");n=document.createElement("td");n.colSpan=2;n.style.paddingTop="20px";n.style.whiteSpace="nowrap";n.setAttribute("align","right");a.isOffline()||(d=mxUtils.button(mxResources.get("help"),function(){a.openLink("https://www.diagrams.net/blog/external-fonts")}), +d.className="geBtn",n.appendChild(d));d=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});d.className="geBtn";a.editor.cancelFirst&&n.appendChild(d);var C=mxUtils.button(mxResources.get("apply"),function(){var b,c,f;l.checked?(b=p.value,f="s"):u.checked?(b=v.value,c=Editor.GOOGLE_FONTS+encodeURIComponent(b).replace(/%20/g,"+"),f="g"):q.checked&&(b=z.value,c=y.value,f="w");var d;d=c;var e=f,k=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;null== +b||0==b.length?(t.querySelector(".dlg_fontName_"+e).style.border="1px solid red",d=!1):"w"!=e||k.test(d)?d=!0:(t.querySelector(".dlg_fontUrl").style.border="1px solid red",d=!1);d&&(g(b,c,f),a.hideDialog())});C.className="geBtn gePrimaryBtn";mxEvent.addListener(p,"keypress",e);mxEvent.addListener(v,"keypress",e);mxEvent.addListener(z,"keypress",e);mxEvent.addListener(y,"keypress",e);mxEvent.addListener(p,"focus",function(){l.setAttribute("checked","checked");l.checked=!0});mxEvent.addListener(v,"focus", +function(){u.setAttribute("checked","checked");u.checked=!0});mxEvent.addListener(z,"focus",function(){q.setAttribute("checked","checked");q.checked=!0});mxEvent.addListener(y,"focus",function(){q.setAttribute("checked","checked");q.checked=!0});n.appendChild(C);a.editor.cancelFirst||n.appendChild(d);k.appendChild(n);f.appendChild(k);t.appendChild(f);this.container=t}; +function AspectDialog(a,d,c,b,g){this.aspect={pageId:d||a.pages[0].getId(),layerIds:c||[]};d=document.createElement("div");var e=document.createElement("h5");e.style.margin="0 0 10px";mxUtils.write(e,mxResources.get("pages"));d.appendChild(e);c=document.createElement("div");c.className="geAspectDlgList";d.appendChild(c);e=document.createElement("h5");e.style.margin="0 0 10px";mxUtils.write(e,mxResources.get("layers"));d.appendChild(e);e=document.createElement("div");e.className="geAspectDlgList"; +d.appendChild(e);this.pagesContainer=c;this.layersContainer=e;this.ui=a;c=document.createElement("div");c.style.marginTop="16px";c.style.textAlign="center";e=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=g&&g()});e.className="geBtn";a.editor.cancelFirst&&c.appendChild(e);var k=mxUtils.button(mxResources.get("ok"),mxUtils.bind(this,function(){a.hideDialog();b({pageId:this.selectedPage,layerIds:Object.keys(this.selectedLayers)})}));c.appendChild(k);k.className="geBtn gePrimaryBtn"; +a.editor.cancelFirst||c.appendChild(e);k.setAttribute("disabled","disabled");this.okBtn=k;d.appendChild(c);this.container=d}AspectDialog.prototype.init=function(){this.ui.getFileData(!0);for(var a=0;a
'+d+"
";this.pagesContainer.appendChild(g);var e=this.createViewer(g.childNodes[0],c);d=mxUtils.bind(this,function(){null!=this.selectedItem&&(this.selectedItem.className="geAspectDlgListItem");this.selectedItem=g;this.selectedPage=a; +g.className+=" geAspectDlgListItemSelected";this.layersContainer.innerHTML="";this.selectedLayers={};this.okBtn.setAttribute("disabled","disabled");for(var b=e.model,b=b.getChildCells(b.getRoot()),d=0;d
'+d+"
";this.layersContainer.appendChild(g);this.createViewer(g.childNodes[0],b,a.id);b=mxUtils.bind(this,function(){0<=g.className.indexOf("geAspectDlgListItemSelected")? +(g.className="geAspectDlgListItem",delete this.selectedLayers[a.id],0==Object.keys(this.selectedLayers).length&&this.okBtn.setAttribute("disabled","disabled")):(g.className+=" geAspectDlgListItemSelected",this.selectedLayers[a.id]=!0,this.okBtn.removeAttribute("disabled"))});mxEvent.addListener(g,"click",b);-1!=this.aspect.layerIds.indexOf(a.id)&&b()};(function(){Editor.prototype.appName="draw.io";Editor.prototype.fileExtensions=[{ext:"html",title:"filetypeHtml"},{ext:"png",title:"filetypePng"},{ext:"svg",title:"filetypeSvg"}];Editor.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAApVBMVEUAAAD////k5OT///8AAAB1dXXMzMz9/f39/f37+/v5+fn+/v7///9iYmJaWlqFhYWnp6ejo6OHh4f////////////////7+/v5+fnx8fH///8AAAD///8bGxv7+/v5+fkoKCghISFDQ0MYGBjh4eHY2Njb29tQUFBvb29HR0c/Pz82NjYrKyu/v78SEhLu7u7s7OzV1dVVVVU7OzsVFRXAv78QEBBzqehMAAAAG3RSTlMAA/7p/vz5xZlrTiPL/v78+/v7+OXd2TYQDs8L70ZbAAABKUlEQVQoz3VS13LCMBBUXHChd8iukDslQChJ/v/TchaG4cXS+OSb1c7trU7V60OpdRz2ZtNZL4zXNlcN8BEtSG6+NxIXkeRPoBuQ1cjvZ31/VJFB10ISli6diYfH8iYO3WUNCcNlB0gTrXOtkxTo0O1aKKiBBMhhv2MNBQKoiA5wxlZo0JDzD3AYKbWacyj3fs01wxey0pyEP+R8pWKWXoqtIZ0DDg5pbki9krEKOa6LVDQsdoXEsi46Zqh69KFz7B1u7Hb2yDV8firXDKBlZ4UFiswKGRhXTS93/ECK7yxnJ3+S3y/ThpO+cfSD017nqa18aasabU0/t7d+tk0/1oMEJ1NaD67iwdF68OabFSLn+eHb0+vjy+uk8br9fdrftH0O2menfd7+AQfYM/lNjoDHAAAAAElFTkSuQmCC": IMAGE_PATH+"/delete.png";Editor.plusImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDdCMTdENjVCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDdCMTdENjZCOEM4MTFFNDlCRjVBNDdCODU5NjNBNUMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowN0IxN0Q2M0I4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowN0IxN0Q2NEI4QzgxMUU0OUJGNUE0N0I4NTk2M0E1QyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtjrjmgAAAAtSURBVHjaYvz//z8DMigvLwcLdHZ2MiKLMzEQCaivkLGsrOw/dU0cAr4GCDAARQsQbTFrv10AAAAASUVORK5CYII=": IMAGE_PATH+"/plus.png";Editor.spinImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDAAMAPUxAEVriVp7lmCAmmGBm2OCnGmHn3OPpneSqYKbr4OcsIScsI2kto6kt46lt5KnuZmtvpquvpuvv56ywaCzwqK1xKu7yay9yq+/zLHAzbfF0bjG0bzJ1LzK1MDN18jT28nT3M3X3tHa4dTc49Xd5Njf5dng5t3k6d/l6uDm6uru8e7x8/Dz9fT29/b4+Pj5+fj5+vr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkKADEAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAADAAMAAAGR8CYcEgsOgYAIax4CCQuQldrCBEsiK8VS2hoFGOrlJDA+cZQwkLnqyoJFZKviSS0ICrE0ec0jDAwIiUeGyBFGhMPFBkhZo1BACH5BAkKAC4ALAAAAAAMAAwAhVB0kFR3k1V4k2CAmmWEnW6Lo3KOpXeSqH2XrIOcsISdsImhtIqhtJCmuJGnuZuwv52wwJ+ywZ+ywqm6yLHBzbLCzrXEz7fF0LnH0rrI0r7L1b/M1sXR2cfT28rV3czW3s/Z4Nfe5Nvi6ODm6uLn6+Ln7OLo7OXq7efs7+zw8u/y9PDy9PX3+Pr7+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZDQJdwSCxGDAIAoVFkFBwYSyIwGE4OkCJxIdG6WkJEx8sSKj7elfBB0a5SQg1EQ0SVVMPKhDM6iUIkRR4ZFxsgJl6JQQAh+QQJCgAxACwAAAAADAAMAIVGa4lcfZdjgpxkg51nhp5ui6N3kqh5lKqFnbGHn7KIoLOQp7iRp7mSqLmTqbqarr6br7+fssGitcOitcSuvsuuv8uwwMyzw861xNC5x9K6x9K/zNbDztjE0NnG0drJ1NzQ2eDS2+LT2+LV3ePZ4Oba4ebb4ufc4+jm6+7t8PLt8PPt8fPx8/Xx9PX09vf19/j3+Pn///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CYcEgsUhQFggFSjCQmnE1jcBhqGBXiIuAQSi7FGEIgfIzCFoCXFCZiPO0hKBMiwl7ET6eUYqlWLkUnISImKC1xbUEAIfkECQoAMgAsAAAAAAwADACFTnKPT3KPVHaTYoKcb4yjcY6leZSpf5mtgZuvh5+yiqG0i6K1jqW3kae5nrHBnrLBn7LCoLPCobTDqbrIqrvIs8LOtMPPtcPPtcTPuMbRucfSvcrUvsvVwMzWxdHaydTcytXdzNbezdff0drh2ODl2+Ln3eTp4Obq4ujs5Ont5uvu6O3w6u7w6u7x7/L09vj5+vr7+vv7////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdAmXBILHIcicOCUqxELKKPxKAYgiYd4oMAEWo8RVmjIMScwhmBcJMKXwLCECmMGAhPI1QRwBiaSixCMDFhLSorLi8wYYxCQQAh+QQJCgAxACwAAAAADAAMAIVZepVggJphgZtnhp5vjKN2kah3kqmBmq+KobSLorWNpLaRp7mWq7ybr7+gs8KitcSktsWnuManucexwM2ywc63xtG6yNO9ytS+ytW/zNbDz9jH0tvL1d3N197S2+LU3OPU3ePV3eTX3+Xa4efb4ufd5Onl6u7r7vHs7/Lt8PLw8/Xy9Pby9fb09ff2+Pn3+Pn6+vr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGSMCYcEgseiwSR+RS7GA4JFGF8RiWNiEiJTERgkjFGAQh/KTCGoJwpApnBkITKrwoCFWnFlEhaAxXLC9CBwAGRS4wQgELYY1CQQAh+QQJCgAzACwAAAAADAAMAIVMcI5SdZFhgZtti6JwjaR4k6mAma6Cm6+KobSLorWLo7WNo7aPpredsMCescGitMOitcSmuMaqu8ixwc2zws63xdC4xtG5x9K9ytXAzdfCztjF0NnF0drK1d3M1t7P2N/P2eDT2+LX3+Xe5Onh5+vi5+vj6Ozk6e3n7O/o7O/q7vHs7/Lt8PPu8fPx8/X3+Pn6+vv7+/v8/Pz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRcCZcEgsmkIbTOZTLIlGqZNnchm2SCgiJ6IRqljFmQUiXIVnoITQde4chC9Y+LEQxmTFRkFSNFAqDAMIRQoCAAEEDmeLQQAh+QQJCgAwACwAAAAADAAMAIVXeZRefplff5lhgZtph59yjqV2kaeAmq6FnbGFnrGLorWNpLaQp7mRqLmYrb2essGgs8Klt8apusitvcquv8u2xNC7yNO8ydS8ytTAzdfBzdfM1t7N197Q2eDU3OPX3+XZ4ObZ4ebc4+jf5erg5erg5uvp7fDu8fPv8vTz9fb09vf19/j3+Pn4+fn5+vr6+/v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRUCYcEgspkwjEKhUVJ1QsBNp0xm2VixiSOMRvlxFGAcTJook5eEHIhQcwpWIkAFQECkNy9AQWFwyEAkPRQ4FAwQIE2llQQAh+QQJCgAvACwAAAAADAAMAIVNcY5SdZFigptph6BvjKN0kKd8lquAmq+EnbGGn7KHn7ONpLaOpbearr+csMCdscCescGhtMOnuMauvsuzws60w862xdC9ytW/y9a/zNbCztjG0drH0tvK1N3M1t7N19/U3ePb4uff5urj6Ozk6e3l6u7m6u7o7PDq7vDt8PPv8vTw8vTw8/X19vf6+vv///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQ8CXcEgsvlytVUplJLJIpSEDUESFTELBwSgCCQEV42kjDFiMo4uQsDB2MkLHoEHUTD7DRAHC8VAiZ0QSCgYIDxhNiUEAOw==": IMAGE_PATH+"/spin.gif";Editor.globeImage="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1Yy0uMzItMS4yNS0uNzgtMi40NS0xLjM4LTMuNTYgMS44NC42MyAzLjM3IDEuOTEgNC4zMyAzLjU2ek0xMiA0LjA0Yy44MyAxLjIgMS40OCAyLjUzIDEuOTEgMy45NmgtMy44MmMuNDMtMS40MyAxLjA4LTIuNzYgMS45MS0zLjk2ek00LjI2IDE0QzQuMSAxMy4zNiA0IDEyLjY5IDQgMTJzLjEtMS4zNi4yNi0yaDMuMzhjLS4wOC42Ni0uMTQgMS4zMi0uMTQgMiAwIC42OC4wNiAxLjM0LjE0IDJINC4yNnptLjgyIDJoMi45NWMuMzIgMS4yNS43OCAyLjQ1IDEuMzggMy41Ni0xLjg0LS42My0zLjM3LTEuOS00LjMzLTMuNTZ6bTIuOTUtOEg1LjA4Yy45Ni0xLjY2IDIuNDktMi45MyA0LjMzLTMuNTZDOC44MSA1LjU1IDguMzUgNi43NSA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMiAwLS42OC4wNy0xLjM1LjE2LTJoNC42OGMuMDkuNjUuMTYgMS4zMi4xNiAyIDAgLjY4LS4wNyAxLjM0LS4xNiAyem0uMjUgNS41NmMuNi0xLjExIDEuMDYtMi4zMSAxLjM4LTMuNTZoMi45NWMtLjk2IDEuNjUtMi40OSAyLjkzLTQuMzMgMy41NnpNMTYuMzYgMTRjLjA4LS42Ni4xNC0xLjMyLjE0LTIgMC0uNjgtLjA2LTEuMzQtLjE0LTJoMy4zOGMuMTYuNjQuMjYgMS4zMS4yNiAycy0uMSAxLjM2LS4yNiAyaC0zLjM4eiIvPjwvc3ZnPg=="; @@ -8562,62 +8562,62 @@ enumList:[{val:"visible",dispName:"Visible"},{val:"hidden",dispName:"Hidden"},{v type:"enum",defVal:"none",enumList:[{val:"none",dispName:"None"},{val:"north",dispName:"North"},{val:"east",dispName:"East"},{val:"south",dispName:"South"},{val:"west",dispName:"West"}]},{name:"portConstraintRotation",dispName:"Rotate Constraint",type:"bool",defVal:!1},{name:"connectable",dispName:"Connectable",type:"bool",defVal:!0},{name:"allowArrows",dispName:"Allow Arrows",type:"bool",defVal:!0},{name:"snapToPoint",dispName:"Snap to Point",type:"bool",defVal:!1},{name:"perimeter",dispName:"Perimeter", defVal:"none",type:"enum",enumList:[{val:"none",dispName:"None"},{val:"rectanglePerimeter",dispName:"Rectangle"},{val:"ellipsePerimeter",dispName:"Ellipse"},{val:"rhombusPerimeter",dispName:"Rhombus"},{val:"trianglePerimeter",dispName:"Triangle"},{val:"hexagonPerimeter2",dispName:"Hexagon"},{val:"lifelinePerimeter",dispName:"Lifeline"},{val:"orthogonalPerimeter",dispName:"Orthogonal"},{val:"backbonePerimeter",dispName:"Backbone"},{val:"calloutPerimeter",dispName:"Callout"},{val:"parallelogramPerimeter", dispName:"Parallelogram"},{val:"trapezoidPerimeter",dispName:"Trapezoid"},{val:"stepPerimeter",dispName:"Step"}]},{name:"fixDash",dispName:"Fixed Dash",type:"bool",defVal:!1},{name:"jiggle",dispName:"Jiggle",type:"float",min:0,defVal:1.5,isVisible:function(a,b){return"1"==mxUtils.getValue(a.style,"comic","0")}},{name:"autosize",dispName:"Autosize",type:"bool",defVal:!1},{name:"container",dispName:"Container",type:"bool",defVal:!1,isVisible:function(a,b){return 1==a.vertices.length&&0==a.edges.length}}, -{name:"dropTarget",dispName:"Drop Target",type:"bool",getDefaultValue:function(a,b){var c=1==a.vertices.length&&0==a.edges.length?a.vertices[0]:null,e=b.editorUi.editor.graph;return null!=c&&(e.isSwimlane(c)||0%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## The label is concatenated in the form fromlabel + label + tolabel if all are defined.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle or a JSON string as used in Layout, Apply.\n## Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nEvan Miller,CFO,emi,Office 1,,me@example.com,#dae8fc,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nRon Donovan,System Admin,rdo,Office 3,Evan Miller,me@example.com,#d5e8d4,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nTessa Valet,HR Director,tva,Office 4,Evan Miller,me@example.com,#d5e8d4,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\n'; -Editor.fastCompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.deflateRaw(a,{to:"string"})};Editor.fastDecompress=function(a){return null==a||0==a.length||"undefined"===typeof pako?a:pako.inflateRaw(a,{to:"string"})};Editor.extractGraphModel=function(a,b,c){if(null!=a&&"undefined"!==typeof pako){var e=a.ownerDocument.getElementsByTagName("div"),d=[];if(null!=e&&0d){b=a.substring(d,g);break}}10==f&&("endobj"==c?p=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(p=[],l[c.split(" ")[0]]=p):null!=p&&p.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(l));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g, -"(").replace(/\\\)/g,")")));return b};Editor.extractGraphModelFromXref=function(a){var b=a.trailer,c=null;null!=b&&(b=/.* \/Info (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0f){b=a.substring(f,g);break}}10==e&&("endobj"==c?p=null:"obj"==c.substring(c.length-3,c.length)||"xref"==c||"trailer"==c?(p=[],l[c.split(" ")[0]]=p):null!=p&&p.push(c),c="")}null==b&&(b=Editor.extractGraphModelFromXref(l));null!=b&&(b=decodeURIComponent(b.replace(/\\\(/g, +"(").replace(/\\\)/g,")")));return b};Editor.extractGraphModelFromXref=function(a){var b=a.trailer,c=null;null!=b&&(b=/.* \/Info (\d+) (\d+) R/g.exec(b.join("\n")),null!=b&&0>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4);b+="==";break}l=a.charCodeAt(c++);if(c==e){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<< -4|(l&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((l&15)<<2);b+="=";break}p=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(d>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((d&3)<<4|(l&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((l&15)<<2|(p&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(p&63)}return b}; -Editor.prototype.loadUrl=function(a,b,c,e,d,l){try{var p=e||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);d=null!=d?d:!0;var f=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var e=a.getText();if(p){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var e=Array(a.length), -d=0;d>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4);b+="==";break}l=a.charCodeAt(c++);if(c==d){b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<< +4|(l&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((l&15)<<2);b+="=";break}p=a.charCodeAt(c++);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(f>>2);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&3)<<4|(l&240)>>4);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((l&15)<<2|(p&192)>>6);b+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(p&63)}return b}; +Editor.prototype.loadUrl=function(a,b,c,d,f,l){try{var p=d||/(\.png)($|\?)/i.test(a)||/(\.jpe?g)($|\?)/i.test(a)||/(\.gif)($|\?)/i.test(a);f=null!=f?f:!0;var e=mxUtils.bind(this,function(){mxUtils.get(a,mxUtils.bind(this,function(a){if(200<=a.getStatus()&&299>=a.getStatus()){if(null!=b){var d=a.getText();if(p){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){a=mxUtilsBinaryToArray(a.request.responseBody).toArray();for(var d=Array(a.length), +f=0;f>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(l(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=d&&d();else if(l(a,4),"IHDR"!=l(a,4))null!= -d&&d();else{l(a,17);d=a.substring(0,g);do{var k=p(a);if("IDAT"==l(a,4)){d=a.substring(0,g-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+e;e=4294967295;e=EditorUi.prototype.updateCRC(e,b,0,4);e=EditorUi.prototype.updateCRC(e,c,0,c.length);d+=f(c.length)+b+c+f(e^4294967295);d+=a.substring(g-8,a.length);break}d+=a.substring(g-8,g-4+k);l(a,k);l(a,4)}while(k);return"data:image/png;base64,"+(window.btoa?btoa(d):Base64.encode(d,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink= -"https://desk.draw.io/support/solutions/articles/16000091426";var f=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){f.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)? -c=b.getId():null!=a.currentPage&&(c=a.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var m=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?m.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a= -this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var n=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=n.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,c=b.editor.graph,e=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(a){var e=new ChangePageSetup(b); -e.ignoreColor=!0;e.ignoreImage=!0;e.shadowVisible=a;c.model.execute(e)},{install:function(a){this.listener=function(){a(c.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(e.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(e,60));a.appendChild(e)}return a};var q=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=q.apply(this, -arguments);var b=this.editorUi,c=b.editor.graph;if(c.isEnabled()){var e=b.getCurrentFile();if(null!=e&&e.isAutosaveOptional()){var d=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a);b.editor.autosave&&e.isModified()&&e.fileChanged()},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}});a.appendChild(d)}}if(this.isMathOptionVisible()&& -c.isEnabled()&&"undefined"!==typeof MathJax){d=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(c.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});d.style.paddingTop="5px";a.appendChild(d);var l=b.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000032875"); -l.style.position="relative";l.style.marginLeft="6px";l.style.top="2px";d.appendChild(l)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties= +(c=PROXY_URL+"?url="+encodeURIComponent(a));this.loadUrl(c,mxUtils.bind(this,function(b){f[a]=b;d--;l()}),mxUtils.bind(this,function(a){d--;l()}),!0,null,"data:"+b+";charset=utf-8;base64,")}})(b(c[p].substring(0,e)),g)}}else a()};Editor.prototype.addMathCss=function(a){a=a.getElementsByTagName("defs");if(null!=a&&0>24&255,a>>16&255,a>>8&255,a&255)}a=a.substring(a.indexOf(",")+1);a=window.atob?atob(a):Base64.decode(a,!0);var g=0;if(l(a,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=f&&f();else if(l(a,4),"IHDR"!=l(a,4))null!= +f&&f();else{l(a,17);f=a.substring(0,g);do{var q=p(a);if("IDAT"==l(a,4)){f=a.substring(0,g-8);c=c+String.fromCharCode(0)+("zTXt"==b?String.fromCharCode(0):"")+d;d=4294967295;d=EditorUi.prototype.updateCRC(d,b,0,4);d=EditorUi.prototype.updateCRC(d,c,0,c.length);f+=e(c.length)+b+c+e(d^4294967295);f+=a.substring(g-8,a.length);break}f+=a.substring(g-8,g-4+q);l(a,q);l(a,4)}while(q);return"data:image/png;base64,"+(window.btoa?btoa(f):Base64.encode(f,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink= +"https://desk.draw.io/support/solutions/articles/16000091426";var g=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(a,b){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var e=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){e.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)? +c=b.getId():null!=a.currentPage&&(c=a.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var k=Format.prototype.init;Format.prototype.init=function(){k.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var n=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?n.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var a= +this.editorUi.getCurrentFile();return"1"==urlParams.embed||null!=a&&a.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(a){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(a){a=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var b=this.editorUi,c=b.editor.graph,d=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(a){var d=new ChangePageSetup(b); +d.ignoreColor=!0;d.ignoreImage=!0;d.shadowVisible=a;c.model.execute(d)},{install:function(a){this.listener=function(){a(c.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.shadowOptionEnabled||(d.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(d,60));a.appendChild(d)}return a};var t=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(a){a=t.apply(this, +arguments);var b=this.editorUi,c=b.editor.graph;if(c.isEnabled()){var d=b.getCurrentFile();if(null!=d&&d.isAutosaveOptional()){var f=this.createOption(mxResources.get("autosave"),function(){return b.editor.autosave},function(a){b.editor.setAutosave(a);b.editor.autosave&&d.isModified()&&d.fileChanged()},{install:function(a){this.listener=function(){a(b.editor.autosave)};b.editor.addListener("autosaveChanged",this.listener)},destroy:function(){b.editor.removeListener(this.listener)}});a.appendChild(f)}}if(this.isMathOptionVisible()&& +c.isEnabled()&&"undefined"!==typeof MathJax){f=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return c.mathEnabled},function(a){b.actions.get("mathematicalTypesetting").funct()},{install:function(a){this.listener=function(){a(c.mathEnabled)};b.addListener("mathEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});f.style.paddingTop="5px";a.appendChild(f);var l=b.menus.createHelpLink("https://desk.draw.io/support/solutions/articles/16000032875"); +l.style.position="relative";l.style.marginLeft="6px";l.style.top="2px";f.appendChild(l)}return a};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties= [{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double", dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}, {name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties= @@ -8638,62 +8638,62 @@ defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName font:"#ffffff"},{fill:"#aa00ff",stroke:"#7700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#ffffff"},{fill:"#f0a30a",stroke:"#BD7000",font:"#ffffff"},{fill:"#e3c800",stroke:"#B09500",font:"#ffffff"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"}, {fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28", stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes= -null;StyleFormatPanel.prototype.findCommonProperties=function(a,b,c){if(null!=b){var e=function(a){if(null!=a)if(c)for(var e=0;ec.size&&(p=p.slice(0,c.size));b=p.join(",");null!=c.countProperty&& -(x.setCellStyles(c.countProperty,p.length,x.getSelectionCells()),d.push(c.countProperty),l.push(p.length))}x.setCellStyles(a,b,x.getSelectionCells());d.push(a);l.push(b);if(null!=c.dependentProps)for(a=0;ab)k=k.slice(0,b);else for(var u=k.length;uk.max&&(a=k.max);a=mxUtils.htmlEntities(("int"==m?parseInt(a):a)+"");e(b,a,k)}var p=document.createElement("input");d(A,p,!0);p.value=c;p.className="gePropEditor";"int"!=m&&"float"!=m||k.allowAuto||(p.type="number",p.step="int"==m?"1":"any",null!=k.min&&(p.min=parseFloat(k.min)),null!=k.max&&(p.max=parseFloat(k.max)));a.appendChild(p);mxEvent.addListener(p,"keypress",function(a){13==a.keyCode&&l()});p.focus();mxEvent.addListener(p,"blur", -function(){l()})})));k.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(t,function(a){e(b,"",k,k.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",A.appendChild(u));n.appendChild(A);return n}var t=this,x=this.editorUi.editor.graph,u=[];a.style.position="relative";a.style.padding="0";var m=document.createElement("table");m.style.whiteSpace="nowrap";m.style.width="100%";var v=document.createElement("tr");v.className="gePropHeader"; -var n=document.createElement("th");n.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;n.appendChild(A);mxUtils.write(n,mxResources.get("property"));v.style.cursor="pointer";var y=function(){var b=m.querySelectorAll(".gePropNonHeaderRow"),c;if(t.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;c="none";for(var e=a.childNodes.length-1;0<=e;e--)try{var d=a.childNodes[e],l=d.nodeName.toUpperCase();"INPUT"!=l&&"SELECT"!=l||a.removeChild(d)}catch(ka){}}else A.src= -Sidebar.prototype.expandedImage,c="";for(e=0;edocument.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+ -a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=""==a.fill?mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"),b.style.border=a.stroke==mxConstants.NONE? -"1px solid transparent":""==a.stroke?"1px solid "+mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"):"1px solid "+(a.stroke||mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"));else{var c=mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(e.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+ -p}d.appendChild(b)}d.innerHTML="";for(var c=0;cc.size&&(p=p.slice(0,c.size));b=p.join(",");null!=c.countProperty&& +(x.setCellStyles(c.countProperty,p.length,x.getSelectionCells()),f.push(c.countProperty),l.push(p.length))}x.setCellStyles(a,b,x.getSelectionCells());f.push(a);l.push(b);if(null!=c.dependentProps)for(a=0;ab)q=q.slice(0,b);else for(var u=q.length;uq.max&&(a=q.max);a=mxUtils.htmlEntities(("int"==n?parseInt(a):a)+"");d(b,a,q)}var p=document.createElement("input");f(A,p,!0);p.value=c;p.className="gePropEditor";"int"!=n&&"float"!=n||q.allowAuto||(p.type="number",p.step="int"==n?"1":"any",null!=q.min&&(p.min=parseFloat(q.min)),null!=q.max&&(p.max=parseFloat(q.max)));a.appendChild(p);mxEvent.addListener(p,"keypress",function(a){13==a.keyCode&&l()});p.focus();mxEvent.addListener(p,"blur", +function(){l()})})));q.isDeletable&&(u=mxUtils.button("-",mxUtils.bind(k,function(a){d(b,"",q,q.index);mxEvent.consume(a)})),u.style.height="16px",u.style.width="25px",u.style["float"]="right",u.className="geColorBtn",A.appendChild(u));v.appendChild(A);return v}var k=this,x=this.editorUi.editor.graph,u=[];a.style.position="relative";a.style.padding="0";var n=document.createElement("table");n.style.whiteSpace="nowrap";n.style.width="100%";var m=document.createElement("tr");m.className="gePropHeader"; +var v=document.createElement("th");v.className="gePropHeaderCell";var A=document.createElement("img");A.src=Sidebar.prototype.expandedImage;v.appendChild(A);mxUtils.write(v,mxResources.get("property"));m.style.cursor="pointer";var D=function(){var b=n.querySelectorAll(".gePropNonHeaderRow"),c;if(k.editorUi.propertiesCollapsed){A.src=Sidebar.prototype.collapsedImage;c="none";for(var d=a.childNodes.length-1;0<=d;d--)try{var f=a.childNodes[d],l=f.nodeName.toUpperCase();"INPUT"!=l&&"SELECT"!=l||a.removeChild(f)}catch(ka){}}else A.src= +Sidebar.prototype.expandedImage,c="";for(d=0;ddocument.documentMode)?b.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+ +a.fill+"', EndColorStr='"+a.gradient+"', GradientType=0)":b.style.backgroundImage="linear-gradient("+a.fill+" 0px,"+a.gradient+" 100%)":a.fill==mxConstants.NONE?b.style.background="url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor=""==a.fill?mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"):a.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"dark"==uiTheme?"#2a2a2a":"#ffffff"),b.style.border=a.stroke==mxConstants.NONE? +"1px solid transparent":""==a.stroke?"1px solid "+mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"):"1px solid "+(a.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"dark"!=uiTheme?"#2a2a2a":"#ffffff"));else{var c=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),p=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");b.style.backgroundColor=c;b.style.border="1px solid "+ +p}f.appendChild(b)}f.innerHTML="";for(var c=0;c=a.length){for(var t=k=0;t=a.length){for(var k=q=0;k'),c.writeln(a.editor.fontCss),c.writeln(""));if(null!=b.extFonts)for(var e=0;e'):(c.writeln('"))}};if("undefined"!==typeof MathJax){var q=c.renderPage;c.renderPage=function(b,c,e,d,l,p){var f=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!a.editor.useForeignObjectForMath?!0:a.editor.originalNoForeignObject; -var g=q.apply(this,arguments);mxClient.NO_FO=f;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:g.className="geDisableMathJax";return g}}u=null;null!=d.themes&&"darkTheme"==d.defaultThemeName&&(u=d.stylesheet,d.stylesheet=d.getDefaultStylesheet(),d.refresh());c.open(null,null,l,!0);null!=u&&(d.stylesheet=u,d.refresh())}else{v=b.background;if(null==v||""==v||v==mxConstants.NONE)v="#ffffff";c.backgroundColor=v;c.autoOrigin=D;c.appendGraph(b,n,u,m,l,!0);if(null!=b.extFonts&&null!=c.wnd)for(l= -0;l'):(c.wnd.document.writeln('"))}p&&(b.useCssTransforms=p,b.currentTranslate=f,b.currentScale=g,b.view.translate=k,b.view.scale=t);return c}var e=parseInt(N.value)/ -100;isNaN(e)&&(e=1,N.value="100 %");var e=.75*e,l=u.value,p=v.value,f=!t.checked,k=null;f&&(f=l==g&&p==g);if(!f&&null!=a.pages&&a.pages.length){var x=0,f=a.pages.length-1;t.checked||(x=parseInt(l)-1,f=parseInt(p)-1);for(var m=x;m<=f;m++){var n=a.pages[m],l=n==a.currentPage?d:null;if(null==l){var l=a.createTemporaryGraph(d.getStylesheet()),p=!0,x=!1,D=null,z=null;null==n.viewState&&null==n.root&&a.updatePageRoot(n);null!=n.viewState&&(p=n.viewState.pageVisible,x=n.viewState.mathEnabled,D=n.viewState.background, -z=n.viewState.backgroundImage,l.extFonts=n.viewState.extFonts);l.background=D;l.backgroundImage=null!=z?new mxImage(z.src,z.width,z.height):null;l.pageVisible=p;l.mathEnabled=x;var C=l.getGlobalVariable;l.getGlobalVariable=function(b){return"page"==b?n.getName():"pagenumber"==b?m+1:"pagecount"==b?null!=a.pages?a.pages.length:1:C.apply(this,arguments)};document.body.appendChild(l.container);a.updatePageRoot(n);l.model.setRoot(n.root)}k=c(l,k,m!=f);l!=d&&l.container.parentNode.removeChild(l.container)}}else k= -c(d);null==k?a.handleError({message:mxResources.get("errorUpdatingPreview")}):(k.mathEnabled&&(f=k.wnd.document,f.writeln('