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