123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473 |
- /**
- * Copyright (c) 2006-2015, JGraph Ltd
- * Copyright (c) 2006-2015, Gaudenz Alder
- */
- var mxEvent =
- {
- /**
- * Class: mxEvent
- *
- * Cross-browser DOM event support. For internal event handling,
- * <mxEventSource> and the graph event dispatch loop in <mxGraph> are used.
- *
- * Memory Leaks:
- *
- * Use this class for adding and removing listeners to/from DOM nodes. The
- * <removeAllListeners> function is provided to remove all listeners that
- * have been added using <addListener>. The function should be invoked when
- * the last reference is removed in the JavaScript code, typically when the
- * referenced DOM node is removed from the DOM.
- *
- * Function: addListener
- *
- * Binds the function to the specified event on the given element. Use
- * <mxUtils.bind> in order to bind the "this" keyword inside the function
- * to a given execution scope.
- */
- addListener: function()
- {
- var updateListenerList = function(element, eventName, funct)
- {
- if (element.mxListenerList == null)
- {
- element.mxListenerList = [];
- }
-
- var entry = {name: eventName, f: funct};
- element.mxListenerList.push(entry);
- };
-
- if (window.addEventListener)
- {
- return function(element, eventName, funct)
- {
- element.addEventListener(eventName, funct, false);
- updateListenerList(element, eventName, funct);
- };
- }
- else
- {
- return function(element, eventName, funct)
- {
- element.attachEvent('on' + eventName, funct);
- updateListenerList(element, eventName, funct);
- };
- }
- }(),
- /**
- * Function: removeListener
- *
- * Removes the specified listener from the given element.
- */
- removeListener: function()
- {
- var updateListener = function(element, eventName, funct)
- {
- if (element.mxListenerList != null)
- {
- var listenerCount = element.mxListenerList.length;
-
- for (var i = 0; i < listenerCount; i++)
- {
- var entry = element.mxListenerList[i];
-
- if (entry.f == funct)
- {
- element.mxListenerList.splice(i, 1);
- break;
- }
- }
-
- if (element.mxListenerList.length == 0)
- {
- element.mxListenerList = null;
- }
- }
- };
-
- if (window.removeEventListener)
- {
- return function(element, eventName, funct)
- {
- element.removeEventListener(eventName, funct, false);
- updateListener(element, eventName, funct);
- };
- }
- else
- {
- return function(element, eventName, funct)
- {
- element.detachEvent('on' + eventName, funct);
- updateListener(element, eventName, funct);
- };
- }
- }(),
- /**
- * Function: removeAllListeners
- *
- * Removes all listeners from the given element.
- */
- removeAllListeners: function(element)
- {
- var list = element.mxListenerList;
- if (list != null)
- {
- while (list.length > 0)
- {
- var entry = list[0];
- mxEvent.removeListener(element, entry.name, entry.f);
- }
- }
- },
-
- /**
- * Function: addGestureListeners
- *
- * Adds the given listeners for touch, mouse and/or pointer events. If
- * <mxClient.IS_POINTER> is true then pointer events will be registered,
- * else the respective mouse events will be registered. If <mxClient.IS_POINTER>
- * is false and <mxClient.IS_TOUCH> is true then the respective touch events
- * will be registered as well as the mouse events.
- */
- addGestureListeners: function(node, startListener, moveListener, endListener)
- {
- if (startListener != null)
- {
- mxEvent.addListener(node, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown', startListener);
- }
-
- if (moveListener != null)
- {
- mxEvent.addListener(node, (mxClient.IS_POINTER) ? 'pointermove' : 'mousemove', moveListener);
- }
-
- if (endListener != null)
- {
- mxEvent.addListener(node, (mxClient.IS_POINTER) ? 'pointerup' : 'mouseup', endListener);
- }
-
- if (!mxClient.IS_POINTER && mxClient.IS_TOUCH)
- {
- if (startListener != null)
- {
- mxEvent.addListener(node, 'touchstart', startListener);
- }
-
- if (moveListener != null)
- {
- mxEvent.addListener(node, 'touchmove', moveListener);
- }
-
- if (endListener != null)
- {
- mxEvent.addListener(node, 'touchend', endListener);
- }
- }
- },
-
- /**
- * Function: removeGestureListeners
- *
- * Removes the given listeners from mousedown, mousemove, mouseup and the
- * respective touch events if <mxClient.IS_TOUCH> is true.
- */
- removeGestureListeners: function(node, startListener, moveListener, endListener)
- {
- if (startListener != null)
- {
- mxEvent.removeListener(node, (mxClient.IS_POINTER) ? 'pointerdown' : 'mousedown', startListener);
- }
-
- if (moveListener != null)
- {
- mxEvent.removeListener(node, (mxClient.IS_POINTER) ? 'pointermove' : 'mousemove', moveListener);
- }
-
- if (endListener != null)
- {
- mxEvent.removeListener(node, (mxClient.IS_POINTER) ? 'pointerup' : 'mouseup', endListener);
- }
-
- if (!mxClient.IS_POINTER && mxClient.IS_TOUCH)
- {
- if (startListener != null)
- {
- mxEvent.removeListener(node, 'touchstart', startListener);
- }
-
- if (moveListener != null)
- {
- mxEvent.removeListener(node, 'touchmove', moveListener);
- }
-
- if (endListener != null)
- {
- mxEvent.removeListener(node, 'touchend', endListener);
- }
- }
- },
-
- /**
- * Function: redirectMouseEvents
- *
- * Redirects the mouse events from the given DOM node to the graph dispatch
- * loop using the event and given state as event arguments. State can
- * either be an instance of <mxCellState> or a function that returns an
- * <mxCellState>. The down, move, up and dblClick arguments are optional
- * functions that take the trigger event as arguments and replace the
- * default behaviour.
- */
- redirectMouseEvents: function(node, graph, state, down, move, up, dblClick)
- {
- var getState = function(evt)
- {
- return (typeof(state) == 'function') ? state(evt) : state;
- };
-
- mxEvent.addGestureListeners(node, function (evt)
- {
- if (down != null)
- {
- down(evt);
- }
- else if (!mxEvent.isConsumed(evt))
- {
- graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(evt, getState(evt)));
- }
- },
- function (evt)
- {
- if (move != null)
- {
- move(evt);
- }
- else if (!mxEvent.isConsumed(evt))
- {
- graph.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(evt, getState(evt)));
- }
- },
- function (evt)
- {
- if (up != null)
- {
- up(evt);
- }
- else if (!mxEvent.isConsumed(evt))
- {
- graph.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(evt, getState(evt)));
- }
- });
- mxEvent.addListener(node, 'dblclick', function (evt)
- {
- if (dblClick != null)
- {
- dblClick(evt);
- }
- else if (!mxEvent.isConsumed(evt))
- {
- var tmp = getState(evt);
- graph.dblClick(evt, (tmp != null) ? tmp.cell : null);
- }
- });
- },
- /**
- * Function: release
- *
- * Removes the known listeners from the given DOM node and its descendants.
- *
- * Parameters:
- *
- * element - DOM node to remove the listeners from.
- */
- release: function(element)
- {
- try
- {
- if (element != null)
- {
- mxEvent.removeAllListeners(element);
-
- var children = element.childNodes;
-
- if (children != null)
- {
- var childCount = children.length;
-
- for (var i = 0; i < childCount; i += 1)
- {
- mxEvent.release(children[i]);
- }
- }
- }
- }
- catch (e)
- {
- // ignores errors as this is typically called in cleanup code
- }
- },
- /**
- * Function: addMouseWheelListener
- *
- * Installs the given function as a handler for mouse wheel events. The
- * function has two arguments: the mouse event and a boolean that specifies
- * if the wheel was moved up or down.
- *
- * This has been tested with IE 6 and 7, Firefox (all versions), Opera and
- * Safari. It does currently not work on Safari for Mac.
- *
- * Example:
- *
- * (code)
- * mxEvent.addMouseWheelListener(function (evt, up, pinch)
- * {
- * mxLog.show();
- * mxLog.debug('mouseWheel: up='+up);
- * });
- *(end)
- *
- * Parameters:
- *
- * funct - Handler function that takes the event argument, a boolean argument
- * for the mousewheel direction and a boolean to specify if the underlying
- * event was a pinch gesture on a touch device.
- * target - Target for installing the listener in Google Chrome. See
- * https://www.chromestatus.com/features/6662647093133312.
- */
- addMouseWheelListener: function(funct, target)
- {
- if (funct != null)
- {
- var wheelHandler = function(evt)
- {
- // IE does not give an event object but the
- // global event object is the mousewheel event
- // at this point in time.
- if (evt == null)
- {
- evt = window.event;
- }
-
- //To prevent window zoom on trackpad pinch
- if (evt.ctrlKey)
- {
- evt.preventDefault();
- }
- var delta = -evt.deltaY;
-
- // Handles the event using the given function
- if (Math.abs(evt.deltaX) > 0.5 || Math.abs(evt.deltaY) > 0.5)
- {
- funct(evt, (evt.deltaY == 0) ? -evt.deltaX > 0 : -evt.deltaY > 0);
- }
- };
-
- target = target != null ? target : window;
-
- if (mxClient.IS_SF && !mxClient.IS_TOUCH)
- {
- var scale = 1;
-
- mxEvent.addListener(target, 'gesturestart', function(evt)
- {
- mxEvent.consume(evt);
- scale = 1;
- });
-
- mxEvent.addListener(target, 'gesturechange', function(evt)
- {
- mxEvent.consume(evt);
- var diff = scale - evt.scale;
-
- if (Math.abs(diff) > 0.2)
- {
- funct(evt, diff < 0, true);
- scale = evt.scale;
- }
- });
- mxEvent.addListener(target, 'gestureend', function(evt)
- {
- mxEvent.consume(evt);
- });
- }
- else
- {
- var evtCache = [];
- var dx0 = 0;
- var dy0 = 0;
-
- // Adds basic listeners for graph event dispatching
- mxEvent.addGestureListeners(target, mxUtils.bind(this, function(evt)
- {
- if (!mxEvent.isMouseEvent(evt) && evt.pointerId != null)
- {
- evtCache.push(evt);
- }
- }),
- mxUtils.bind(this, function(evt)
- {
- if (!mxEvent.isMouseEvent(evt) && evtCache.length == 2)
- {
- // Find this event in the cache and update its record with this event
- for (var i = 0; i < evtCache.length; i++)
- {
- if (evt.pointerId == evtCache[i].pointerId)
- {
- evtCache[i] = evt;
- break;
- }
- }
-
- // Calculate the distance between the two pointers
- var dx = Math.abs(evtCache[0].clientX - evtCache[1].clientX);
- var dy = Math.abs(evtCache[0].clientY - evtCache[1].clientY);
- var tx = Math.abs(dx - dx0);
- var ty = Math.abs(dy - dy0);
-
- if (tx > mxEvent.PINCH_THRESHOLD || ty > mxEvent.PINCH_THRESHOLD)
- {
- var cx = evtCache[0].clientX + (evtCache[1].clientX - evtCache[0].clientX) / 2;
- var cy = evtCache[0].clientY + (evtCache[1].clientY - evtCache[0].clientY) / 2;
-
- funct(evtCache[0], (tx > ty) ? dx > dx0 : dy > dy0, true, cx, cy);
-
- // Cache the distance for the next move event
- dx0 = dx;
- dy0 = dy;
- }
- }
- }),
- mxUtils.bind(this, function(evt)
- {
- evtCache = [];
- dx0 = 0;
- dy0 = 0;
- }));
- }
-
- mxEvent.addListener(target, 'wheel', wheelHandler);
- }
- },
-
- /**
- * Function: disableContextMenu
- *
- * Disables the context menu for the given element.
- */
- disableContextMenu: function(element)
- {
- mxEvent.addListener(element, 'contextmenu', function(evt)
- {
- if (evt.preventDefault)
- {
- evt.preventDefault();
- }
-
- return false;
- });
- },
-
- /**
- * Function: getSource
- *
- * Returns the event's target or srcElement depending on the browser.
- */
- getSource: function(evt)
- {
- return (evt.srcElement != null) ? evt.srcElement : evt.target;
- },
- /**
- * Function: isConsumed
- *
- * Returns true if the event has been consumed using <consume>.
- */
- isConsumed: function(evt)
- {
- return evt.isConsumed != null && evt.isConsumed;
- },
- /**
- * Function: isTouchEvent
- *
- * Returns true if the event was generated using a touch device (not a pen or mouse).
- */
- isTouchEvent: function(evt)
- {
- return (evt.pointerType != null) ? (evt.pointerType == 'touch' || evt.pointerType ===
- evt.MSPOINTER_TYPE_TOUCH) : ((evt.mozInputSource != null) ?
- evt.mozInputSource == 5 : evt.type.indexOf('touch') == 0);
- },
- /**
- * Function: isPenEvent
- *
- * Returns true if the event was generated using a pen (not a touch device or mouse).
- */
- isPenEvent: function(evt)
- {
- return (evt.pointerType != null) ? (evt.pointerType == 'pen' || evt.pointerType ===
- evt.MSPOINTER_TYPE_PEN) : ((evt.mozInputSource != null) ?
- evt.mozInputSource == 2 : evt.type.indexOf('pen') == 0);
- },
- /**
- * Function: isMultiTouchEvent
- *
- * Returns true if the event was generated using a touch device (not a pen or mouse).
- */
- isMultiTouchEvent: function(evt)
- {
- return (evt.type != null && evt.type.indexOf('touch') == 0 && evt.touches != null && evt.touches.length > 1);
- },
- /**
- * Function: isMouseEvent
- *
- * Returns true if the event was generated using a mouse (not a pen or touch device).
- */
- isMouseEvent: function(evt)
- {
- return (evt.pointerType != null) ? (evt.pointerType == 'mouse' || evt.pointerType ===
- evt.MSPOINTER_TYPE_MOUSE) : ((evt.mozInputSource != null) ?
- evt.mozInputSource == 1 : evt.type.indexOf('mouse') == 0);
- },
-
- /**
- * Function: isLeftMouseButton
- *
- * Returns true if the left mouse button is pressed for the given event.
- * To check if a button is pressed during a mouseMove you should use the
- * <mxGraph.isMouseDown> property. Note that this returns true in Firefox
- * for control+left-click on the Mac.
- */
- isLeftMouseButton: function(evt)
- {
- // Special case for mousemove and mousedown we check the buttons
- // if it exists because which is 0 even if no button is pressed
- if ('buttons' in evt && (evt.type == 'mousedown' || evt.type == 'mousemove'))
- {
- return evt.buttons == 1;
- }
- else if ('which' in evt)
- {
- return evt.which === 1;
- }
- else
- {
- return evt.button === 1;
- }
- },
-
- /**
- * Function: isMiddleMouseButton
- *
- * Returns true if the middle mouse button is pressed for the given event.
- * To check if a button is pressed during a mouseMove you should use the
- * <mxGraph.isMouseDown> property.
- */
- isMiddleMouseButton: function(evt)
- {
- if ('which' in evt)
- {
- return evt.which === 2;
- }
- else
- {
- return evt.button === 4;
- }
- },
-
- /**
- * Function: isRightMouseButton
- *
- * Returns true if the right mouse button was pressed. Note that this
- * button might not be available on some systems. For handling a popup
- * trigger <isPopupTrigger> should be used.
- */
- isRightMouseButton: function(evt)
- {
- if ('which' in evt)
- {
- return evt.which === 3;
- }
- else
- {
- return evt.button === 2;
- }
- },
- /**
- * Function: isPopupTrigger
- *
- * Returns true if the event is a popup trigger. This implementation
- * returns true if the right button or the left button and control was
- * pressed on a Mac.
- */
- isPopupTrigger: function(evt)
- {
- return mxEvent.isRightMouseButton(evt) || (mxClient.IS_MAC && mxEvent.isControlDown(evt) &&
- !mxEvent.isShiftDown(evt) && !mxEvent.isMetaDown(evt) && !mxEvent.isAltDown(evt));
- },
- /**
- * Function: isShiftDown
- *
- * Returns true if the shift key is pressed for the given event.
- */
- isShiftDown: function(evt)
- {
- return (evt != null) ? evt.shiftKey : false;
- },
- /**
- * Function: isAltDown
- *
- * Returns true if the alt key is pressed for the given event.
- */
- isAltDown: function(evt)
- {
- return (evt != null) ? evt.altKey : false;
- },
- /**
- * Function: isControlDown
- *
- * Returns true if the control key is pressed for the given event.
- */
- isControlDown: function(evt)
- {
- return (evt != null) ? evt.ctrlKey : false;
- },
- /**
- * Function: isMetaDown
- *
- * Returns true if the meta key is pressed for the given event.
- */
- isMetaDown: function(evt)
- {
- return (evt != null) ? evt.metaKey : false;
- },
- /**
- * Function: getMainEvent
- *
- * Returns the touch or mouse event that contains the mouse coordinates.
- */
- getMainEvent: function(e)
- {
- if ((e.type == 'touchstart' || e.type == 'touchmove') && e.touches != null && e.touches[0] != null)
- {
- e = e.touches[0];
- }
- else if (e.type == 'touchend' && e.changedTouches != null && e.changedTouches[0] != null)
- {
- e = e.changedTouches[0];
- }
-
- return e;
- },
-
- /**
- * Function: getClientX
- *
- * Returns true if the meta key is pressed for the given event.
- */
- getClientX: function(e)
- {
- return mxEvent.getMainEvent(e).clientX;
- },
- /**
- * Function: getClientY
- *
- * Returns true if the meta key is pressed for the given event.
- */
- getClientY: function(e)
- {
- return mxEvent.getMainEvent(e).clientY;
- },
- /**
- * Function: consume
- *
- * Consumes the given event.
- *
- * Parameters:
- *
- * evt - Native event to be consumed.
- * preventDefault - Optional boolean to prevent the default for the event.
- * Default is true.
- * stopPropagation - Option boolean to stop event propagation. Default is
- * true.
- */
- consume: function(evt, preventDefault, stopPropagation)
- {
- preventDefault = (preventDefault != null) ? preventDefault : true;
- stopPropagation = (stopPropagation != null) ? stopPropagation : true;
-
- if (preventDefault)
- {
- if (evt.preventDefault)
- {
- if (stopPropagation)
- {
- evt.stopPropagation();
- }
-
- evt.preventDefault();
- }
- else if (stopPropagation)
- {
- evt.cancelBubble = true;
- }
- }
- // Opera
- evt.isConsumed = true;
- // Other browsers
- if (!evt.preventDefault)
- {
- evt.returnValue = false;
- }
- },
-
- //
- // Special handles in mouse events
- //
-
- /**
- * Variable: LABEL_HANDLE
- *
- * Index for the label handle in an mxMouseEvent. This should be a negative
- * value that does not interfere with any possible handle indices. Default
- * is -1.
- */
- LABEL_HANDLE: -1,
-
- /**
- * Variable: ROTATION_HANDLE
- *
- * Index for the rotation handle in an mxMouseEvent. This should be a
- * negative value that does not interfere with any possible handle indices.
- * Default is -2.
- */
- ROTATION_HANDLE: -2,
-
- /**
- * Variable: CUSTOM_HANDLE
- *
- * Start index for the custom handles in an mxMouseEvent. This should be a
- * negative value and is the start index which is decremented for each
- * custom handle. Default is -100.
- */
- CUSTOM_HANDLE: -100,
-
- /**
- * Variable: VIRTUAL_HANDLE
- *
- * Start index for the virtual handles in an mxMouseEvent. This should be a
- * negative value and is the start index which is decremented for each
- * virtual handle. Default is -100000. This assumes that there are no more
- * than VIRTUAL_HANDLE - CUSTOM_HANDLE custom handles.
- *
- */
- VIRTUAL_HANDLE: -100000,
-
- //
- // Event names
- //
-
- /**
- * Variable: MOUSE_DOWN
- *
- * Specifies the event name for mouseDown.
- */
- MOUSE_DOWN: 'mouseDown',
-
- /**
- * Variable: MOUSE_MOVE
- *
- * Specifies the event name for mouseMove.
- */
- MOUSE_MOVE: 'mouseMove',
-
- /**
- * Variable: MOUSE_UP
- *
- * Specifies the event name for mouseUp.
- */
- MOUSE_UP: 'mouseUp',
- /**
- * Variable: ACTIVATE
- *
- * Specifies the event name for activate.
- */
- ACTIVATE: 'activate',
- /**
- * Variable: RESIZE_START
- *
- * Specifies the event name for resizeStart.
- */
- RESIZE_START: 'resizeStart',
- /**
- * Variable: RESIZE
- *
- * Specifies the event name for resize.
- */
- RESIZE: 'resize',
- /**
- * Variable: RESIZE_END
- *
- * Specifies the event name for resizeEnd.
- */
- RESIZE_END: 'resizeEnd',
- /**
- * Variable: MOVE_START
- *
- * Specifies the event name for moveStart.
- */
- MOVE_START: 'moveStart',
- /**
- * Variable: MOVE
- *
- * Specifies the event name for move.
- */
- MOVE: 'move',
- /**
- * Variable: MOVE_END
- *
- * Specifies the event name for moveEnd.
- */
- MOVE_END: 'moveEnd',
- /**
- * Variable: PAN_START
- *
- * Specifies the event name for panStart.
- */
- PAN_START: 'panStart',
- /**
- * Variable: PAN
- *
- * Specifies the event name for pan.
- */
- PAN: 'pan',
- /**
- * Variable: PAN_END
- *
- * Specifies the event name for panEnd.
- */
- PAN_END: 'panEnd',
- /**
- * Variable: MINIMIZE
- *
- * Specifies the event name for minimize.
- */
- MINIMIZE: 'minimize',
- /**
- * Variable: NORMALIZE
- *
- * Specifies the event name for normalize.
- */
- NORMALIZE: 'normalize',
- /**
- * Variable: MAXIMIZE
- *
- * Specifies the event name for maximize.
- */
- MAXIMIZE: 'maximize',
- /**
- * Variable: HIDE
- *
- * Specifies the event name for hide.
- */
- HIDE: 'hide',
- /**
- * Variable: SHOW
- *
- * Specifies the event name for show.
- */
- SHOW: 'show',
- /**
- * Variable: CLOSE
- *
- * Specifies the event name for close.
- */
- CLOSE: 'close',
- /**
- * Variable: DESTROY
- *
- * Specifies the event name for destroy.
- */
- DESTROY: 'destroy',
- /**
- * Variable: REFRESH
- *
- * Specifies the event name for refresh.
- */
- REFRESH: 'refresh',
- /**
- * Variable: SIZE
- *
- * Specifies the event name for size.
- */
- SIZE: 'size',
-
- /**
- * Variable: SELECT
- *
- * Specifies the event name for select.
- */
- SELECT: 'select',
- /**
- * Variable: FIRED
- *
- * Specifies the event name for fired.
- */
- FIRED: 'fired',
- /**
- * Variable: FIRE_MOUSE_EVENT
- *
- * Specifies the event name for fireMouseEvent.
- */
- FIRE_MOUSE_EVENT: 'fireMouseEvent',
- /**
- * Variable: GESTURE
- *
- * Specifies the event name for gesture.
- */
- GESTURE: 'gesture',
- /**
- * Variable: TAP_AND_HOLD
- *
- * Specifies the event name for tapAndHold.
- */
- TAP_AND_HOLD: 'tapAndHold',
- /**
- * Variable: GET
- *
- * Specifies the event name for get.
- */
- GET: 'get',
- /**
- * Variable: RECEIVE
- *
- * Specifies the event name for receive.
- */
- RECEIVE: 'receive',
- /**
- * Variable: CONNECT
- *
- * Specifies the event name for connect.
- */
- CONNECT: 'connect',
- /**
- * Variable: DISCONNECT
- *
- * Specifies the event name for disconnect.
- */
- DISCONNECT: 'disconnect',
- /**
- * Variable: SUSPEND
- *
- * Specifies the event name for suspend.
- */
- SUSPEND: 'suspend',
- /**
- * Variable: RESUME
- *
- * Specifies the event name for suspend.
- */
- RESUME: 'resume',
- /**
- * Variable: MARK
- *
- * Specifies the event name for mark.
- */
- MARK: 'mark',
- /**
- * Variable: ROOT
- *
- * Specifies the event name for root.
- */
- ROOT: 'root',
- /**
- * Variable: POST
- *
- * Specifies the event name for post.
- */
- POST: 'post',
- /**
- * Variable: OPEN
- *
- * Specifies the event name for open.
- */
- OPEN: 'open',
- /**
- * Variable: SAVE
- *
- * Specifies the event name for open.
- */
- SAVE: 'save',
- /**
- * Variable: BEFORE_ADD_VERTEX
- *
- * Specifies the event name for beforeAddVertex.
- */
- BEFORE_ADD_VERTEX: 'beforeAddVertex',
- /**
- * Variable: ADD_VERTEX
- *
- * Specifies the event name for addVertex.
- */
- ADD_VERTEX: 'addVertex',
- /**
- * Variable: AFTER_ADD_VERTEX
- *
- * Specifies the event name for afterAddVertex.
- */
- AFTER_ADD_VERTEX: 'afterAddVertex',
- /**
- * Variable: DONE
- *
- * Specifies the event name for done.
- */
- DONE: 'done',
- /**
- * Variable: EXECUTE
- *
- * Specifies the event name for execute.
- */
- EXECUTE: 'execute',
- /**
- * Variable: EXECUTED
- *
- * Specifies the event name for executed.
- */
- EXECUTED: 'executed',
- /**
- * Variable: BEGIN_UPDATE
- *
- * Specifies the event name for beginUpdate.
- */
- BEGIN_UPDATE: 'beginUpdate',
- /**
- * Variable: START_EDIT
- *
- * Specifies the event name for startEdit.
- */
- START_EDIT: 'startEdit',
- /**
- * Variable: END_UPDATE
- *
- * Specifies the event name for endUpdate.
- */
- END_UPDATE: 'endUpdate',
- /**
- * Variable: END_EDIT
- *
- * Specifies the event name for endEdit.
- */
- END_EDIT: 'endEdit',
- /**
- * Variable: BEFORE_UNDO
- *
- * Specifies the event name for beforeUndo.
- */
- BEFORE_UNDO: 'beforeUndo',
- /**
- * Variable: UNDO
- *
- * Specifies the event name for undo.
- */
- UNDO: 'undo',
- /**
- * Variable: REDO
- *
- * Specifies the event name for redo.
- */
- REDO: 'redo',
- /**
- * Variable: CHANGE
- *
- * Specifies the event name for change.
- */
- CHANGE: 'change',
- /**
- * Variable: NOTIFY
- *
- * Specifies the event name for notify.
- */
- NOTIFY: 'notify',
- /**
- * Variable: LAYOUT_CELLS
- *
- * Specifies the event name for layoutCells.
- */
- LAYOUT_CELLS: 'layoutCells',
- /**
- * Variable: CLICK
- *
- * Specifies the event name for click.
- */
- CLICK: 'click',
- /**
- * Variable: SCALE
- *
- * Specifies the event name for scale.
- */
- SCALE: 'scale',
- /**
- * Variable: TRANSLATE
- *
- * Specifies the event name for translate.
- */
- TRANSLATE: 'translate',
- /**
- * Variable: SCALE_AND_TRANSLATE
- *
- * Specifies the event name for scaleAndTranslate.
- */
- SCALE_AND_TRANSLATE: 'scaleAndTranslate',
- /**
- * Variable: UP
- *
- * Specifies the event name for up.
- */
- UP: 'up',
- /**
- * Variable: DOWN
- *
- * Specifies the event name for down.
- */
- DOWN: 'down',
- /**
- * Variable: ADD
- *
- * Specifies the event name for add.
- */
- ADD: 'add',
- /**
- * Variable: REMOVE
- *
- * Specifies the event name for remove.
- */
- REMOVE: 'remove',
-
- /**
- * Variable: CLEAR
- *
- * Specifies the event name for clear.
- */
- CLEAR: 'clear',
- /**
- * Variable: ADD_CELLS
- *
- * Specifies the event name for addCells.
- */
- ADD_CELLS: 'addCells',
- /**
- * Variable: CELLS_ADDED
- *
- * Specifies the event name for cellsAdded.
- */
- CELLS_ADDED: 'cellsAdded',
- /**
- * Variable: MOVE_CELLS
- *
- * Specifies the event name for moveCells.
- */
- MOVE_CELLS: 'moveCells',
- /**
- * Variable: CELLS_MOVED
- *
- * Specifies the event name for cellsMoved.
- */
- CELLS_MOVED: 'cellsMoved',
- /**
- * Variable: RESIZE_CELLS
- *
- * Specifies the event name for resizeCells.
- */
- RESIZE_CELLS: 'resizeCells',
- /**
- * Variable: CELLS_RESIZED
- *
- * Specifies the event name for cellsResized.
- */
- CELLS_RESIZED: 'cellsResized',
- /**
- * Variable: TOGGLE_CELLS
- *
- * Specifies the event name for toggleCells.
- */
- TOGGLE_CELLS: 'toggleCells',
- /**
- * Variable: CELLS_TOGGLED
- *
- * Specifies the event name for cellsToggled.
- */
- CELLS_TOGGLED: 'cellsToggled',
- /**
- * Variable: ORDER_CELLS
- *
- * Specifies the event name for orderCells.
- */
- ORDER_CELLS: 'orderCells',
- /**
- * Variable: CELLS_ORDERED
- *
- * Specifies the event name for cellsOrdered.
- */
- CELLS_ORDERED: 'cellsOrdered',
- /**
- * Variable: REMOVE_CELLS
- *
- * Specifies the event name for removeCells.
- */
- REMOVE_CELLS: 'removeCells',
- /**
- * Variable: CELLS_REMOVED
- *
- * Specifies the event name for cellsRemoved.
- */
- CELLS_REMOVED: 'cellsRemoved',
- /**
- * Variable: GROUP_CELLS
- *
- * Specifies the event name for groupCells.
- */
- GROUP_CELLS: 'groupCells',
- /**
- * Variable: UNGROUP_CELLS
- *
- * Specifies the event name for ungroupCells.
- */
- UNGROUP_CELLS: 'ungroupCells',
- /**
- * Variable: REMOVE_CELLS_FROM_PARENT
- *
- * Specifies the event name for removeCellsFromParent.
- */
- REMOVE_CELLS_FROM_PARENT: 'removeCellsFromParent',
- /**
- * Variable: FOLD_CELLS
- *
- * Specifies the event name for foldCells.
- */
- FOLD_CELLS: 'foldCells',
- /**
- * Variable: CELLS_FOLDED
- *
- * Specifies the event name for cellsFolded.
- */
- CELLS_FOLDED: 'cellsFolded',
- /**
- * Variable: ALIGN_CELLS
- *
- * Specifies the event name for alignCells.
- */
- ALIGN_CELLS: 'alignCells',
- /**
- * Variable: LABEL_CHANGED
- *
- * Specifies the event name for labelChanged.
- */
- LABEL_CHANGED: 'labelChanged',
- /**
- * Variable: CONNECT_CELL
- *
- * Specifies the event name for connectCell.
- */
- CONNECT_CELL: 'connectCell',
- /**
- * Variable: CELL_CONNECTED
- *
- * Specifies the event name for cellConnected.
- */
- CELL_CONNECTED: 'cellConnected',
- /**
- * Variable: SPLIT_EDGE
- *
- * Specifies the event name for splitEdge.
- */
- SPLIT_EDGE: 'splitEdge',
- /**
- * Variable: FLIP_EDGE
- *
- * Specifies the event name for flipEdge.
- */
- FLIP_EDGE: 'flipEdge',
- /**
- * Variable: START_EDITING
- *
- * Specifies the event name for startEditing.
- */
- START_EDITING: 'startEditing',
- /**
- * Variable: EDITING_STARTED
- *
- * Specifies the event name for editingStarted.
- */
- EDITING_STARTED: 'editingStarted',
- /**
- * Variable: EDITING_STOPPED
- *
- * Specifies the event name for editingStopped.
- */
- EDITING_STOPPED: 'editingStopped',
- /**
- * Variable: ADD_OVERLAY
- *
- * Specifies the event name for addOverlay.
- */
- ADD_OVERLAY: 'addOverlay',
- /**
- * Variable: REMOVE_OVERLAY
- *
- * Specifies the event name for removeOverlay.
- */
- REMOVE_OVERLAY: 'removeOverlay',
- /**
- * Variable: UPDATE_CELL_SIZE
- *
- * Specifies the event name for updateCellSize.
- */
- UPDATE_CELL_SIZE: 'updateCellSize',
- /**
- * Variable: ESCAPE
- *
- * Specifies the event name for escape.
- */
- ESCAPE: 'escape',
- /**
- * Variable: DOUBLE_CLICK
- *
- * Specifies the event name for doubleClick.
- */
- DOUBLE_CLICK: 'doubleClick',
- /**
- * Variable: START
- *
- * Specifies the event name for start.
- */
- START: 'start',
- /**
- * Variable: RESET
- *
- * Specifies the event name for reset.
- */
- RESET: 'reset',
- /**
- * Variable: PINCH_THRESHOLD
- *
- * Threshold for pinch gestures to fire a mouse wheel event.
- * Default value is 10.
- */
- PINCH_THRESHOLD: 10
- };
- __mxOutput.mxEvent = typeof mxEvent !== 'undefined' ? mxEvent : undefined;
|