vendor: 4,561 bytes, lines 1-169
1/*! 2 * jQuery UI Mouse 1.10.4 3 * http://jqueryui.com 4 * 5 * Copyright 2014 jQuery Foundation and other contributors 6 * Released under the MIT license. 7 * http://jquery.org/license 8 * 9 * http://api.jqueryui.com/mouse/ 10 * 11 * Depends: 12 * jquery.ui.widget.js 13 */ 14(function( $, undefined ) { 15 16var mouseHandled = false; 17$( document ).mouseup( function() { 18 mouseHandled = false; 19}); 20 21$.widget("ui.mouse", { 22 version: "1.10.4", 23 options: { 24 cancel: "input,textarea,button,select,option", 25 distance: 1, 26 delay: 0 27 }, 28 _mouseInit: function() { 29 var that = this; 30 31 this.element 32 .bind("mousedown."+this.widgetName, function(event) { 33 return that._mouseDown(event); 34 }) 35 .bind("click."+this.widgetName, function(event) { 36 if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) { 37 $.removeData(event.target, that.widgetName + ".preventClickEvent"); 38 event.stopImmediatePropagation(); 39 return false; 40 } 41 }); 42 43 this.started = false; 44 }, 45 46 // TODO: make sure destroying one instance of mouse doesn't mess with 47 // other instances of mouse 48 _mouseDestroy: function() { 49 this.element.unbind("."+this.widgetName); 50 if ( this._mouseMoveDelegate ) { 51 $(document) 52 .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate) 53 .unbind("mouseup."+this.widgetName, this._mouseUpDelegate); 54 } 55 }, 56 57 _mouseDown: function(event) { 58 // don't let more than one widget handle mouseStart 59 if( mouseHandled ) { return; } 60 61 // we may have missed mouseup (out of window) 62 (this._mouseStarted && this._mouseUp(event)); 63 64 this._mouseDownEvent = event; 65 66 var that = this, 67 btnIsLeft = (event.which === 1), 68 // event.target.nodeName works around a bug in IE 8 with 69 // disabled inputs (#7620) 70 elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); 71 if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { 72 return true; 73 } 74 75 this.mouseDelayMet = !this.options.delay; 76 if (!this.mouseDelayMet) { 77 this._mouseDelayTimer = setTimeout(function() { 78 that.mouseDelayMet = true; 79 }, this.options.delay); 80 } 81 82 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { 83 this._mouseStarted = (this._mouseStart(event) !== false); 84 if (!this._mouseStarted) { 85 event.preventDefault(); 86 return true; 87 } 88 } 89 90 // Click event may never have fired (Gecko & Opera) 91 if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) { 92 $.removeData(event.target, this.widgetName + ".preventClickEvent"); 93 } 94 95 // these delegates are required to keep context 96 this._mouseMoveDelegate = function(event) { 97 return that._mouseMove(event); 98 }; 99 this._mouseUpDelegate = function(event) { 100 return that._mouseUp(event); 101 }; 102 $(document) 103 .bind("mousemove."+this.widgetName, this._mouseMoveDelegate) 104 .bind("mouseup."+this.widgetName, this._mouseUpDelegate); 105 106 event.preventDefault(); 107 108 mouseHandled = true; 109 return true; 110 }, 111 112 _mouseMove: function(event) { 113 // IE mouseup check - mouseup happened when mouse was out of window 114 if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { 115 return this._mouseUp(event); 116 } 117 118 if (this._mouseStarted) { 119 this._mouseDrag(event); 120 return event.preventDefault(); 121 } 122 123 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { 124 this._mouseStarted = 125 (this._mouseStart(this._mouseDownEvent, event) !== false); 126 (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); 127 } 128 129 return !this._mouseStarted; 130 }, 131 132 _mouseUp: function(event) { 133 $(document) 134 .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate) 135 .unbind("mouseup."+this.widgetName, this._mouseUpDelegate); 136 137 if (this._mouseStarted) { 138 this._mouseStarted = false; 139 140 if (event.target === this._mouseDownEvent.target) { 141 $.data(event.target, this.widgetName + ".preventClickEvent", true); 142 } 143 144 this._mouseStop(event); 145 } 146 147 return false; 148 }, 149 150 _mouseDistanceMet: function(event) { 151 return (Math.max( 152 Math.abs(this._mouseDownEvent.pageX - event.pageX), 153 Math.abs(this._mouseDownEvent.pageY - event.pageY) 154 ) >= this.options.distance 155 ); 156 }, 157 158 _mouseDelayMet: function(/* event */) { 159 return this.mouseDelayMet; 160 }, 161 162 // These are placeholder methods, to be overriden by extending plugin 163 _mouseStart: function(/* event */) {}, 164 _mouseDrag: function(/* event */) {}, 165 _mouseStop: function(/* event */) {}, 166 _mouseCapture: function(/* event */) { return true; } 167}); 168 169})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.