mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-07-11 17:53:59 +03:00
Merge commit 'd21ea7816e
' as 'jquery-ui'
This commit is contained in:
commit
e904a80717
629 changed files with 341074 additions and 0 deletions
204
jquery-ui/ui/mouse.js
vendored
Normal file
204
jquery-ui/ui/mouse.js
vendored
Normal file
|
@ -0,0 +1,204 @@
|
|||
/*!
|
||||
* jQuery UI Mouse @VERSION
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/mouse/
|
||||
*/
|
||||
(function( factory ) {
|
||||
if ( typeof define === "function" && define.amd ) {
|
||||
|
||||
// AMD. Register as an anonymous module.
|
||||
define([
|
||||
"jquery",
|
||||
"./widget"
|
||||
], factory );
|
||||
} else {
|
||||
|
||||
// Browser globals
|
||||
factory( jQuery );
|
||||
}
|
||||
}(function( $ ) {
|
||||
|
||||
var mouseHandled = false;
|
||||
$( document ).mouseup( function() {
|
||||
mouseHandled = false;
|
||||
});
|
||||
|
||||
return $.widget("ui.mouse", {
|
||||
version: "@VERSION",
|
||||
options: {
|
||||
cancel: "input,textarea,button,select,option",
|
||||
distance: 1,
|
||||
delay: 0
|
||||
},
|
||||
_mouseInit: function() {
|
||||
var that = this;
|
||||
|
||||
this.element
|
||||
.bind("mousedown." + this.widgetName, function(event) {
|
||||
return that._mouseDown(event);
|
||||
})
|
||||
.bind("click." + this.widgetName, function(event) {
|
||||
if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) {
|
||||
$.removeData(event.target, that.widgetName + ".preventClickEvent");
|
||||
event.stopImmediatePropagation();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
this.started = false;
|
||||
},
|
||||
|
||||
// TODO: make sure destroying one instance of mouse doesn't mess with
|
||||
// other instances of mouse
|
||||
_mouseDestroy: function() {
|
||||
this.element.unbind("." + this.widgetName);
|
||||
if ( this._mouseMoveDelegate ) {
|
||||
this.document
|
||||
.unbind("mousemove." + this.widgetName, this._mouseMoveDelegate)
|
||||
.unbind("mouseup." + this.widgetName, this._mouseUpDelegate);
|
||||
}
|
||||
},
|
||||
|
||||
_mouseDown: function(event) {
|
||||
// don't let more than one widget handle mouseStart
|
||||
if ( mouseHandled ) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._mouseMoved = false;
|
||||
|
||||
// we may have missed mouseup (out of window)
|
||||
(this._mouseStarted && this._mouseUp(event));
|
||||
|
||||
this._mouseDownEvent = event;
|
||||
|
||||
var that = this,
|
||||
btnIsLeft = (event.which === 1),
|
||||
// event.target.nodeName works around a bug in IE 8 with
|
||||
// disabled inputs (#7620)
|
||||
elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
|
||||
if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
this.mouseDelayMet = !this.options.delay;
|
||||
if (!this.mouseDelayMet) {
|
||||
this._mouseDelayTimer = setTimeout(function() {
|
||||
that.mouseDelayMet = true;
|
||||
}, this.options.delay);
|
||||
}
|
||||
|
||||
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
|
||||
this._mouseStarted = (this._mouseStart(event) !== false);
|
||||
if (!this._mouseStarted) {
|
||||
event.preventDefault();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Click event may never have fired (Gecko & Opera)
|
||||
if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) {
|
||||
$.removeData(event.target, this.widgetName + ".preventClickEvent");
|
||||
}
|
||||
|
||||
// these delegates are required to keep context
|
||||
this._mouseMoveDelegate = function(event) {
|
||||
return that._mouseMove(event);
|
||||
};
|
||||
this._mouseUpDelegate = function(event) {
|
||||
return that._mouseUp(event);
|
||||
};
|
||||
|
||||
this.document
|
||||
.bind( "mousemove." + this.widgetName, this._mouseMoveDelegate )
|
||||
.bind( "mouseup." + this.widgetName, this._mouseUpDelegate );
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
mouseHandled = true;
|
||||
return true;
|
||||
},
|
||||
|
||||
_mouseMove: function(event) {
|
||||
// Only check for mouseups outside the document if you've moved inside the document
|
||||
// at least once. This prevents the firing of mouseup in the case of IE<9, which will
|
||||
// fire a mousemove event if content is placed under the cursor. See #7778
|
||||
// Support: IE <9
|
||||
if ( this._mouseMoved ) {
|
||||
// IE mouseup check - mouseup happened when mouse was out of window
|
||||
if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {
|
||||
return this._mouseUp(event);
|
||||
|
||||
// Iframe mouseup check - mouseup occurred in another document
|
||||
} else if ( !event.which ) {
|
||||
return this._mouseUp( event );
|
||||
}
|
||||
}
|
||||
|
||||
if ( event.which || event.button ) {
|
||||
this._mouseMoved = true;
|
||||
}
|
||||
|
||||
if (this._mouseStarted) {
|
||||
this._mouseDrag(event);
|
||||
return event.preventDefault();
|
||||
}
|
||||
|
||||
if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
|
||||
this._mouseStarted =
|
||||
(this._mouseStart(this._mouseDownEvent, event) !== false);
|
||||
(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
|
||||
}
|
||||
|
||||
return !this._mouseStarted;
|
||||
},
|
||||
|
||||
_mouseUp: function(event) {
|
||||
this.document
|
||||
.unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate )
|
||||
.unbind( "mouseup." + this.widgetName, this._mouseUpDelegate );
|
||||
|
||||
if (this._mouseStarted) {
|
||||
this._mouseStarted = false;
|
||||
|
||||
if (event.target === this._mouseDownEvent.target) {
|
||||
$.data(event.target, this.widgetName + ".preventClickEvent", true);
|
||||
}
|
||||
|
||||
this._mouseStop(event);
|
||||
}
|
||||
|
||||
if (this._mouseDelayTimer) {
|
||||
clearTimeout(this._mouseDelayTimer);
|
||||
delete this._mouseDelayTimer;
|
||||
}
|
||||
|
||||
mouseHandled = false;
|
||||
return false;
|
||||
},
|
||||
|
||||
_mouseDistanceMet: function(event) {
|
||||
return (Math.max(
|
||||
Math.abs(this._mouseDownEvent.pageX - event.pageX),
|
||||
Math.abs(this._mouseDownEvent.pageY - event.pageY)
|
||||
) >= this.options.distance
|
||||
);
|
||||
},
|
||||
|
||||
_mouseDelayMet: function(/* event */) {
|
||||
return this.mouseDelayMet;
|
||||
},
|
||||
|
||||
// These are placeholder methods, to be overriden by extending plugin
|
||||
_mouseStart: function(/* event */) {},
|
||||
_mouseDrag: function(/* event */) {},
|
||||
_mouseStop: function(/* event */) {},
|
||||
_mouseCapture: function(/* event */) { return true; }
|
||||
});
|
||||
|
||||
}));
|
Loading…
Add table
Add a link
Reference in a new issue