1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471 |
- /**
- * 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
- };
|