jquerypp-rails 1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +7 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +24 -0
- data/Rakefile +2 -0
- data/jquerypp-rails.gemspec +20 -0
- data/lib/jquerypp/generators/jquerypp/install/install_generator.rb +49 -0
- data/lib/jquerypp/rails/engine.rb +8 -0
- data/lib/jquerypp/rails/version.rb +6 -0
- data/lib/jquerypp/rails.rb +8 -0
- data/lib/jquerypp-rails.rb +1 -0
- data/vendor/assets/javascripts/jquerypp.js +5419 -0
- data/vendor/assets/javascripts/lib/jquery.animate.js +326 -0
- data/vendor/assets/javascripts/lib/jquery.compare.js +75 -0
- data/vendor/assets/javascripts/lib/jquery.cookie.js +118 -0
- data/vendor/assets/javascripts/lib/jquery.dimensions.js +191 -0
- data/vendor/assets/javascripts/lib/jquery.event.default.js +115 -0
- data/vendor/assets/javascripts/lib/jquery.event.destroyed.js +23 -0
- data/vendor/assets/javascripts/lib/jquery.event.drag.js +727 -0
- data/vendor/assets/javascripts/lib/jquery.event.drop.js +457 -0
- data/vendor/assets/javascripts/lib/jquery.event.fastfix.js +95 -0
- data/vendor/assets/javascripts/lib/jquery.event.hover.js +266 -0
- data/vendor/assets/javascripts/lib/jquery.event.key.js +156 -0
- data/vendor/assets/javascripts/lib/jquery.event.livehack.js +174 -0
- data/vendor/assets/javascripts/lib/jquery.event.pause.js +92 -0
- data/vendor/assets/javascripts/lib/jquery.event.resize.js +47 -0
- data/vendor/assets/javascripts/lib/jquery.event.swipe.js +133 -0
- data/vendor/assets/javascripts/lib/jquery.fills.js +249 -0
- data/vendor/assets/javascripts/lib/jquery.form_params.js +167 -0
- data/vendor/assets/javascripts/lib/jquery.lang.json.js +196 -0
- data/vendor/assets/javascripts/lib/jquery.lang.vector.js +214 -0
- data/vendor/assets/javascripts/lib/jquery.range.js +861 -0
- data/vendor/assets/javascripts/lib/jquery.selection.js +232 -0
- data/vendor/assets/javascripts/lib/jquery.styles.js +103 -0
- data/vendor/assets/javascripts/lib/jquery.within.js +94 -0
- metadata +81 -0
| @@ -0,0 +1,266 @@ | |
| 1 | 
            +
            // Dependencies:
         | 
| 2 | 
            +
            //
         | 
| 3 | 
            +
            //    - jquery.event.hover.js
         | 
| 4 | 
            +
            //    - jquery.event.livehack.js
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            (function($){
         | 
| 7 | 
            +
            /**
         | 
| 8 | 
            +
             * @class jQuery.Hover
         | 
| 9 | 
            +
             * @plugin jquery/event/hover
         | 
| 10 | 
            +
             * @download  http://jmvcsite.heroku.com/pluginify?plugins[]=jquery/event/hover/hover.js
         | 
| 11 | 
            +
             * @parent jQuery.event.hover
         | 
| 12 | 
            +
             *
         | 
| 13 | 
            +
             * Creates a new hover. The constructor should not be called directly.
         | 
| 14 | 
            +
             *
         | 
| 15 | 
            +
             * An instance of `$.Hover` is passed as the second argument to each
         | 
| 16 | 
            +
             * [jQuery.event.hover] event handler:
         | 
| 17 | 
            +
             *
         | 
| 18 | 
            +
             *      $('#menu').on("hoverinit", function(ev, hover) {
         | 
| 19 | 
            +
             *          // Set the hover distance to 20px
         | 
| 20 | 
            +
             *          hover.distance(20);
         | 
| 21 | 
            +
             *      });
         | 
| 22 | 
            +
             */
         | 
| 23 | 
            +
            $.Hover = function(){
         | 
| 24 | 
            +
            	this._delay =  $.Hover.delay;
         | 
| 25 | 
            +
            	this._distance = $.Hover.distance;
         | 
| 26 | 
            +
            	this._leave = $.Hover.leave
         | 
| 27 | 
            +
            };
         | 
| 28 | 
            +
            /**
         | 
| 29 | 
            +
             * @Static
         | 
| 30 | 
            +
             */
         | 
| 31 | 
            +
            $.extend($.Hover,{
         | 
| 32 | 
            +
            	/**
         | 
| 33 | 
            +
            	 * @attribute delay
         | 
| 34 | 
            +
            	 *
         | 
| 35 | 
            +
            	 * `$.Hover.delay` is the delay (in milliseconds) after which the hover is
         | 
| 36 | 
            +
            	 * activated by default.
         | 
| 37 | 
            +
            	 *
         | 
| 38 | 
            +
            	 * Set this value as a global default. The default is 100ms.
         | 
| 39 | 
            +
            	 *
         | 
| 40 | 
            +
            	 *      // Set the global hover delay to 1 second
         | 
| 41 | 
            +
            	 *      $.Hover.delay = 1000;
         | 
| 42 | 
            +
            	 */
         | 
| 43 | 
            +
            	delay: 100,
         | 
| 44 | 
            +
            	/**
         | 
| 45 | 
            +
            	 * @attribute distance
         | 
| 46 | 
            +
            	 *
         | 
| 47 | 
            +
            	 * `$.Hover.distance` is the maximum distance (in pixels) that the mouse is allowed to
         | 
| 48 | 
            +
            	 * travel within the time of [jQuery.Hover.delay] in order to activate a hover.
         | 
| 49 | 
            +
            	 *
         | 
| 50 | 
            +
            	 * Set this value as a global default. The default is 10px.
         | 
| 51 | 
            +
            	 *
         | 
| 52 | 
            +
            	 *      // Set the global hover distance to 1 pixel
         | 
| 53 | 
            +
            	 *      $.Hover.distance = 1;
         | 
| 54 | 
            +
            	 */
         | 
| 55 | 
            +
            	distance: 10,
         | 
| 56 | 
            +
            	leave : 0
         | 
| 57 | 
            +
            })
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            /**
         | 
| 60 | 
            +
             * @Prototype
         | 
| 61 | 
            +
             */
         | 
| 62 | 
            +
            $.extend($.Hover.prototype,{
         | 
| 63 | 
            +
            	/**
         | 
| 64 | 
            +
            	 * `hover.delay(time)` sets the delay (in ms) for this hover.
         | 
| 65 | 
            +
            	 * This method should only be used in [jQuery.event.hover.hoverinit hoverinit]:
         | 
| 66 | 
            +
            	 *
         | 
| 67 | 
            +
            	 *      $('.hoverable').on('hoverinit', function(ev, hover) {
         | 
| 68 | 
            +
            	 *          // Set the delay to 500ms
         | 
| 69 | 
            +
            	 *          hover.delay(500);
         | 
| 70 | 
            +
            	 *      });
         | 
| 71 | 
            +
            	 *
         | 
| 72 | 
            +
            	 * @param {Number} delay the number of milliseconds used to determine a hover
         | 
| 73 | 
            +
            	 * @return {$.Hover} The hover object
         | 
| 74 | 
            +
            	 */
         | 
| 75 | 
            +
            	delay: function( delay ) {
         | 
| 76 | 
            +
            		this._delay = delay;
         | 
| 77 | 
            +
            		return this;
         | 
| 78 | 
            +
            	},
         | 
| 79 | 
            +
            	/**
         | 
| 80 | 
            +
            	 * `hover.distance(px) sets the maximum distance (in pixels) the mouse is allowed to travel in order to activate
         | 
| 81 | 
            +
            	 * the hover. This method should only be used in [jQuery.event.hover.hoverinit hoverinit]:
         | 
| 82 | 
            +
            	 *
         | 
| 83 | 
            +
            	 *      $('.hoverable').on('hoverinit', function(ev, hover) {
         | 
| 84 | 
            +
            	 *          // Set the distance to 1px
         | 
| 85 | 
            +
            	 *          hover.distance(1);
         | 
| 86 | 
            +
            	 *      });
         | 
| 87 | 
            +
            	 *
         | 
| 88 | 
            +
            	 * @param {Number} distance the max distance in pixels a mouse can move to be considered a hover
         | 
| 89 | 
            +
            	 * @return {$.Hover} The hover object
         | 
| 90 | 
            +
            	 */
         | 
| 91 | 
            +
            	distance: function( distance ) {
         | 
| 92 | 
            +
            		this._distance = distance;
         | 
| 93 | 
            +
            		return this;
         | 
| 94 | 
            +
            	},
         | 
| 95 | 
            +
            	/**
         | 
| 96 | 
            +
            	 * `hover.leave(delay)` sets a delay for how long the hover should stay active after the mouse left.
         | 
| 97 | 
            +
            	 * This method should only be used in [jQuery.event.hover.hoverinit hoverinit]:
         | 
| 98 | 
            +
            	 *
         | 
| 99 | 
            +
            	 *      $('.hoverable').on('hoverinit', function(ev, hover) {
         | 
| 100 | 
            +
            	 *          // Stay active for another second after the mouse left
         | 
| 101 | 
            +
            	 *          hover.leave(1000);
         | 
| 102 | 
            +
            	 *      });
         | 
| 103 | 
            +
            	 *
         | 
| 104 | 
            +
            	 * @param {Number} delay the number of milliseconds the hover should stay active after the mouse leaves
         | 
| 105 | 
            +
            	 * @return {$.Hover} The hover object
         | 
| 106 | 
            +
            	 */
         | 
| 107 | 
            +
            	leave : function(leave){
         | 
| 108 | 
            +
            		this._leave = leave;
         | 
| 109 | 
            +
            		return this;
         | 
| 110 | 
            +
            	}
         | 
| 111 | 
            +
            })
         | 
| 112 | 
            +
            var event = $.event, 
         | 
| 113 | 
            +
            	handle  = event.handle,
         | 
| 114 | 
            +
            	onmouseenter = function(ev){
         | 
| 115 | 
            +
            		// now start checking mousemoves to update location
         | 
| 116 | 
            +
            		var delegate = ev.delegateTarget || ev.currentTarget;
         | 
| 117 | 
            +
            		var selector = ev.handleObj.selector;
         | 
| 118 | 
            +
            		// prevents another mouseenter until current has run its course
         | 
| 119 | 
            +
            		if($.data(delegate,"_hover"+selector)) {
         | 
| 120 | 
            +
            			return;
         | 
| 121 | 
            +
            		}
         | 
| 122 | 
            +
            		$.data(delegate,"_hover"+selector, true)
         | 
| 123 | 
            +
            		var loc = {
         | 
| 124 | 
            +
            				pageX : ev.pageX,
         | 
| 125 | 
            +
            				pageY : ev.pageY
         | 
| 126 | 
            +
            			},
         | 
| 127 | 
            +
            			// The current distance
         | 
| 128 | 
            +
            			dist = 0,
         | 
| 129 | 
            +
            			// Timer that checks for the distance travelled
         | 
| 130 | 
            +
            			timer,
         | 
| 131 | 
            +
            			enteredEl = this,
         | 
| 132 | 
            +
            			// If we are hovered
         | 
| 133 | 
            +
            			hovered = false,
         | 
| 134 | 
            +
            			// The previous event
         | 
| 135 | 
            +
            			lastEv = ev,
         | 
| 136 | 
            +
            			// The $.Hover instance passed to events
         | 
| 137 | 
            +
            			hover = new $.Hover(),
         | 
| 138 | 
            +
            			// timer if hover.leave has been called
         | 
| 139 | 
            +
            			leaveTimer,
         | 
| 140 | 
            +
            			// Callback for triggering hoverleave
         | 
| 141 | 
            +
            			callHoverLeave = function(){
         | 
| 142 | 
            +
            				$.each(event.find(delegate, ["hoverleave"], selector), function(){
         | 
| 143 | 
            +
            					this.call(enteredEl, ev, hover)
         | 
| 144 | 
            +
            				})
         | 
| 145 | 
            +
            				cleanUp();
         | 
| 146 | 
            +
            			},
         | 
| 147 | 
            +
            			mousemove = function(ev){
         | 
| 148 | 
            +
            				clearTimeout(leaveTimer);
         | 
| 149 | 
            +
            				// Update the distance and location
         | 
| 150 | 
            +
            				dist += Math.pow( ev.pageX-loc.pageX, 2 ) + Math.pow( ev.pageY-loc.pageY, 2 ); 
         | 
| 151 | 
            +
            				loc = {
         | 
| 152 | 
            +
            					pageX : ev.pageX,
         | 
| 153 | 
            +
            					pageY : ev.pageY
         | 
| 154 | 
            +
            				}
         | 
| 155 | 
            +
            				lastEv = ev
         | 
| 156 | 
            +
            			},
         | 
| 157 | 
            +
            			mouseleave = function(ev){
         | 
| 158 | 
            +
            				clearTimeout(timer);
         | 
| 159 | 
            +
            				if(hovered) {
         | 
| 160 | 
            +
            					// go right away
         | 
| 161 | 
            +
            					if(hover._leave === 0){
         | 
| 162 | 
            +
            						callHoverLeave();
         | 
| 163 | 
            +
            					}else{
         | 
| 164 | 
            +
            						clearTimeout(leaveTimer);
         | 
| 165 | 
            +
            						// leave the hover after the time set in hover.leave(time)
         | 
| 166 | 
            +
            						leaveTimer = setTimeout(function(){
         | 
| 167 | 
            +
            							callHoverLeave();
         | 
| 168 | 
            +
            						}, hover._leave)
         | 
| 169 | 
            +
            					}
         | 
| 170 | 
            +
            				}else{
         | 
| 171 | 
            +
            					cleanUp();
         | 
| 172 | 
            +
            				}
         | 
| 173 | 
            +
            			},
         | 
| 174 | 
            +
            			cleanUp = function(){
         | 
| 175 | 
            +
            				// Unbind all events and data
         | 
| 176 | 
            +
            				$(enteredEl).unbind("mouseleave",mouseleave)
         | 
| 177 | 
            +
            				$(enteredEl).unbind("mousemove",mousemove);
         | 
| 178 | 
            +
            				$.removeData(delegate,"_hover"+selector)
         | 
| 179 | 
            +
            			};
         | 
| 180 | 
            +
             | 
| 181 | 
            +
            		// Bind the mousemove event
         | 
| 182 | 
            +
            		$(enteredEl).bind("mousemove",mousemove).bind("mouseleave", mouseleave);
         | 
| 183 | 
            +
            		// call hoverinit for each element with the hover instance
         | 
| 184 | 
            +
            		$.each(event.find(delegate, ["hoverinit"], selector), function(){
         | 
| 185 | 
            +
            			this.call(enteredEl, ev, hover)
         | 
| 186 | 
            +
            		})
         | 
| 187 | 
            +
            		
         | 
| 188 | 
            +
            		timer = setTimeout(function(){
         | 
| 189 | 
            +
            			// check that we aren't moving around
         | 
| 190 | 
            +
            			if(dist < hover._distance && $(enteredEl).queue().length == 0){
         | 
| 191 | 
            +
            				$.each(event.find(delegate, ["hoverenter"], selector), function(){
         | 
| 192 | 
            +
            					this.call(enteredEl, lastEv, hover)
         | 
| 193 | 
            +
            				})
         | 
| 194 | 
            +
            				hovered = true;
         | 
| 195 | 
            +
            				return;
         | 
| 196 | 
            +
            			}else{
         | 
| 197 | 
            +
            				// Reset distance and timer
         | 
| 198 | 
            +
            				dist = 0;
         | 
| 199 | 
            +
            				timer = setTimeout(arguments.callee, hover._delay)
         | 
| 200 | 
            +
            			}
         | 
| 201 | 
            +
            		}, hover._delay)
         | 
| 202 | 
            +
            		
         | 
| 203 | 
            +
            	};
         | 
| 204 | 
            +
             | 
| 205 | 
            +
            /**
         | 
| 206 | 
            +
             * @add jQuery.event.special
         | 
| 207 | 
            +
             */
         | 
| 208 | 
            +
            // Attach events
         | 
| 209 | 
            +
            event.setupHelper( [
         | 
| 210 | 
            +
            /**
         | 
| 211 | 
            +
             * @attribute hoverinit
         | 
| 212 | 
            +
             * @parent jQuery.event.hover
         | 
| 213 | 
            +
             *
         | 
| 214 | 
            +
             * `hoverinit` is called when a hover is about to start (on `mouseenter`). Listen for `hoverinit` events to configure
         | 
| 215 | 
            +
             * [jQuery.Hover::delay delay] and [jQuery.Hover::distance distance]
         | 
| 216 | 
            +
             * for this specific event:
         | 
| 217 | 
            +
             *
         | 
| 218 | 
            +
             *      $(".option").on("hoverinit", function(ev, hover){
         | 
| 219 | 
            +
             *          //set the distance to 10px
         | 
| 220 | 
            +
             *          hover.distance(10);
         | 
| 221 | 
            +
             *          //set the delay to 200ms
         | 
| 222 | 
            +
             *          hover.delay(10);
         | 
| 223 | 
            +
             *          // End the hover one second after the mouse leaves
         | 
| 224 | 
            +
             *          hover.leave(1000);
         | 
| 225 | 
            +
             *      })
         | 
| 226 | 
            +
             */
         | 
| 227 | 
            +
            "hoverinit", 
         | 
| 228 | 
            +
            /**
         | 
| 229 | 
            +
             * @attribute hoverenter
         | 
| 230 | 
            +
             * @parent jQuery.event.hover
         | 
| 231 | 
            +
             *
         | 
| 232 | 
            +
             * `hoverenter` events are called when the mouses less than [jQuery.Hover.prototype.distance] pixels in
         | 
| 233 | 
            +
             * [jQuery.Hover.prototype.delay delay] milliseconds.
         | 
| 234 | 
            +
             *
         | 
| 235 | 
            +
             *      $(".option").on("hoverenter", function(ev, hover){
         | 
| 236 | 
            +
             *          $(this).addClass("hovering");
         | 
| 237 | 
            +
             *      })
         | 
| 238 | 
            +
             */
         | 
| 239 | 
            +
            "hoverenter",
         | 
| 240 | 
            +
            /**
         | 
| 241 | 
            +
             * @attribute hoverleave
         | 
| 242 | 
            +
             * @parent jQuery.event.hover
         | 
| 243 | 
            +
             *
         | 
| 244 | 
            +
             * `hoverleave` is called when the mouse leaves an element that has been hovered.
         | 
| 245 | 
            +
             *
         | 
| 246 | 
            +
             *      $(".option").on("hoverleave", function(ev, hover){
         | 
| 247 | 
            +
             *          $(this).removeClass("hovering");
         | 
| 248 | 
            +
             *      })
         | 
| 249 | 
            +
             */
         | 
| 250 | 
            +
            "hoverleave",
         | 
| 251 | 
            +
            /**
         | 
| 252 | 
            +
             * @attribute hovermove
         | 
| 253 | 
            +
             * @parent jQuery.event.hover
         | 
| 254 | 
            +
             *
         | 
| 255 | 
            +
             * `hovermove` is called when a `mousemove` occurs on an element that has been hovered.
         | 
| 256 | 
            +
             *
         | 
| 257 | 
            +
             *      $(".option").on("hovermove", function(ev, hover){
         | 
| 258 | 
            +
             *          // not sure why you would want to listen for this
         | 
| 259 | 
            +
             *          // but we provide it just in case
         | 
| 260 | 
            +
             *      })
         | 
| 261 | 
            +
             */
         | 
| 262 | 
            +
            "hovermove"], "mouseenter", onmouseenter )
         | 
| 263 | 
            +
            		
         | 
| 264 | 
            +
             | 
| 265 | 
            +
            	
         | 
| 266 | 
            +
            })(jQuery)
         | 
| @@ -0,0 +1,156 @@ | |
| 1 | 
            +
            //    - jquery.event.key.js
         | 
| 2 | 
            +
            (function($){
         | 
| 3 | 
            +
            	var keymap = {},
         | 
| 4 | 
            +
            		reverseKeyMap = {},
         | 
| 5 | 
            +
            		currentBrowser = jQuery.uaMatch(navigator.userAgent).browser;
         | 
| 6 | 
            +
            		
         | 
| 7 | 
            +
            	/**
         | 
| 8 | 
            +
            	 * @hide
         | 
| 9 | 
            +
            	 * @parent jQuery.Event.prototype.key
         | 
| 10 | 
            +
            	 * 
         | 
| 11 | 
            +
            	 * Allows you to set alternate key maps or overwrite existing key codes.
         | 
| 12 | 
            +
            	 * For example::
         | 
| 13 | 
            +
            	 * 
         | 
| 14 | 
            +
            	 *     $.event.key({"~" : 177});
         | 
| 15 | 
            +
            	 * 
         | 
| 16 | 
            +
            	 * @param {Object} map A map of character - keycode pairs.
         | 
| 17 | 
            +
            	 */
         | 
| 18 | 
            +
            	$.event.key = function(browser, map){
         | 
| 19 | 
            +
            		if(browser === undefined) {
         | 
| 20 | 
            +
            			return keymap;
         | 
| 21 | 
            +
            		}
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            		if(map === undefined) {
         | 
| 24 | 
            +
            			map = browser;
         | 
| 25 | 
            +
            			browser = currentBrowser;
         | 
| 26 | 
            +
            		}
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            		// extend the keymap
         | 
| 29 | 
            +
            		if(!keymap[browser]) {
         | 
| 30 | 
            +
            			keymap[browser] = {};
         | 
| 31 | 
            +
            		}
         | 
| 32 | 
            +
            		$.extend(keymap[browser], map);
         | 
| 33 | 
            +
            		// and also update the reverse keymap
         | 
| 34 | 
            +
            		if(!reverseKeyMap[browser]) {
         | 
| 35 | 
            +
            			reverseKeyMap[browser] = {};
         | 
| 36 | 
            +
            		}
         | 
| 37 | 
            +
            		for(var name in map){
         | 
| 38 | 
            +
            			reverseKeyMap[browser][map[name]] = name;
         | 
| 39 | 
            +
            		}
         | 
| 40 | 
            +
            	};
         | 
| 41 | 
            +
            	
         | 
| 42 | 
            +
            	$.event.key({
         | 
| 43 | 
            +
            		// backspace
         | 
| 44 | 
            +
            		'\b':'8',
         | 
| 45 | 
            +
            		
         | 
| 46 | 
            +
            		// tab
         | 
| 47 | 
            +
            		'\t':'9',
         | 
| 48 | 
            +
            		
         | 
| 49 | 
            +
            		// enter
         | 
| 50 | 
            +
            		'\r':'13',
         | 
| 51 | 
            +
            		
         | 
| 52 | 
            +
            		// special
         | 
| 53 | 
            +
            		'shift':'16','ctrl':'17','alt':'18',
         | 
| 54 | 
            +
            		
         | 
| 55 | 
            +
            		// others
         | 
| 56 | 
            +
            		'pause-break':'19',
         | 
| 57 | 
            +
            		'caps':'20',
         | 
| 58 | 
            +
            		'escape':'27',
         | 
| 59 | 
            +
            		'num-lock':'144',
         | 
| 60 | 
            +
            		'scroll-lock':'145',
         | 
| 61 | 
            +
            		'print' : '44',
         | 
| 62 | 
            +
            		
         | 
| 63 | 
            +
            		// navigation
         | 
| 64 | 
            +
            		'page-up':'33','page-down':'34','end':'35','home':'36',
         | 
| 65 | 
            +
            		'left':'37','up':'38','right':'39','down':'40','insert':'45','delete':'46',
         | 
| 66 | 
            +
            		
         | 
| 67 | 
            +
            		// normal characters
         | 
| 68 | 
            +
            		' ':'32',
         | 
| 69 | 
            +
            		'0':'48','1':'49','2':'50','3':'51','4':'52','5':'53','6':'54','7':'55','8':'56','9':'57',
         | 
| 70 | 
            +
            		'a':'65','b':'66','c':'67','d':'68','e':'69','f':'70','g':'71','h':'72','i':'73','j':'74','k':'75','l':'76','m':'77',
         | 
| 71 | 
            +
            		'n':'78','o':'79','p':'80','q':'81','r':'82','s':'83','t':'84','u':'85','v':'86','w':'87','x':'88','y':'89','z':'90',
         | 
| 72 | 
            +
            		// normal-characters, numpad
         | 
| 73 | 
            +
            		'num0':'96','num1':'97','num2':'98','num3':'99','num4':'100','num5':'101','num6':'102','num7':'103','num8':'104','num9':'105',
         | 
| 74 | 
            +
            		'*':'106','+':'107','-':'109','.':'110',
         | 
| 75 | 
            +
            		// normal-characters, others
         | 
| 76 | 
            +
            		'/':'111',
         | 
| 77 | 
            +
            		';':'186',
         | 
| 78 | 
            +
            		'=':'187',
         | 
| 79 | 
            +
            		',':'188',
         | 
| 80 | 
            +
            		'-':'189',
         | 
| 81 | 
            +
            		'.':'190',
         | 
| 82 | 
            +
            		'/':'191',
         | 
| 83 | 
            +
            		'`':'192',
         | 
| 84 | 
            +
            		'[':'219',
         | 
| 85 | 
            +
            		'\\':'220',
         | 
| 86 | 
            +
            		']':'221',
         | 
| 87 | 
            +
            		"'":'222',
         | 
| 88 | 
            +
            		
         | 
| 89 | 
            +
            		// ignore these, you shouldn't use them
         | 
| 90 | 
            +
            		'left window key':'91','right window key':'92','select key':'93',
         | 
| 91 | 
            +
            		
         | 
| 92 | 
            +
            		
         | 
| 93 | 
            +
            		'f1':'112','f2':'113','f3':'114','f4':'115','f5':'116','f6':'117',
         | 
| 94 | 
            +
            		'f7':'118','f8':'119','f9':'120','f10':'121','f11':'122','f12':'123'
         | 
| 95 | 
            +
            	});
         | 
| 96 | 
            +
            	
         | 
| 97 | 
            +
            	/**
         | 
| 98 | 
            +
            	 * @parent jQuery.event.key
         | 
| 99 | 
            +
            	 * @plugin jquery/event/key
         | 
| 100 | 
            +
            	 * @function jQuery.Event.prototype.keyName
         | 
| 101 | 
            +
            	 *
         | 
| 102 | 
            +
            	 * Returns a string representation of the key pressed:
         | 
| 103 | 
            +
            	 *
         | 
| 104 | 
            +
            	 *      $("input").on('keypress', function(ev){
         | 
| 105 | 
            +
            	 *          if(ev.keyName() == 'ctrl') {
         | 
| 106 | 
            +
            	 *              $(this).addClass('highlight');
         | 
| 107 | 
            +
            	 *          }
         | 
| 108 | 
            +
            	 *      });
         | 
| 109 | 
            +
            	 *
         | 
| 110 | 
            +
            	 * The key names mapped by default can be found in the [jQuery.event.key jQuery.event.key overview].
         | 
| 111 | 
            +
            	 *
         | 
| 112 | 
            +
            	 * @return {String} The string representation of of the key pressed.
         | 
| 113 | 
            +
            	 */
         | 
| 114 | 
            +
            	jQuery.Event.prototype.keyName  = function(){
         | 
| 115 | 
            +
            		var event = this,
         | 
| 116 | 
            +
            			test = /\w/,
         | 
| 117 | 
            +
            			// It can be either keyCode or charCode.
         | 
| 118 | 
            +
            			// Look both cases up in the reverse key map and converted to a string
         | 
| 119 | 
            +
            			key_Key =  reverseKeyMap[currentBrowser][(event.keyCode || event.which)+""],
         | 
| 120 | 
            +
            			char_Key =  String.fromCharCode(event.keyCode || event.which),
         | 
| 121 | 
            +
            			key_Char =  event.charCode && reverseKeyMap[currentBrowser][event.charCode+""],
         | 
| 122 | 
            +
            			char_Char = event.charCode && String.fromCharCode(event.charCode);
         | 
| 123 | 
            +
            		
         | 
| 124 | 
            +
            		if( char_Char && test.test(char_Char) ) {
         | 
| 125 | 
            +
            			// string representation of event.charCode
         | 
| 126 | 
            +
            			return char_Char.toLowerCase()
         | 
| 127 | 
            +
            		}
         | 
| 128 | 
            +
            		if( key_Char && test.test(key_Char) ) {
         | 
| 129 | 
            +
            			// reverseKeyMap representation of event.charCode
         | 
| 130 | 
            +
            			return char_Char.toLowerCase()
         | 
| 131 | 
            +
            		}
         | 
| 132 | 
            +
            		if( char_Key && test.test(char_Key) ) {
         | 
| 133 | 
            +
            			// string representation of event.keyCode
         | 
| 134 | 
            +
            			return char_Key.toLowerCase()
         | 
| 135 | 
            +
            		}
         | 
| 136 | 
            +
            		if( key_Key && test.test(key_Key) ) {
         | 
| 137 | 
            +
            			// reverseKeyMap representation of event.keyCode
         | 
| 138 | 
            +
            			return key_Key.toLowerCase()
         | 
| 139 | 
            +
            		}
         | 
| 140 | 
            +
             | 
| 141 | 
            +
            		if (event.type == 'keypress'){
         | 
| 142 | 
            +
            			// keypress doesn't capture everything
         | 
| 143 | 
            +
            			return event.keyCode ? String.fromCharCode(event.keyCode) : String.fromCharCode(event.which)
         | 
| 144 | 
            +
            		}
         | 
| 145 | 
            +
             | 
| 146 | 
            +
            		if (!event.keyCode && event.which) {
         | 
| 147 | 
            +
            			// event.which
         | 
| 148 | 
            +
            			return String.fromCharCode(event.which)
         | 
| 149 | 
            +
            		}
         | 
| 150 | 
            +
             | 
| 151 | 
            +
            		// default
         | 
| 152 | 
            +
            		return reverseKeyMap[currentBrowser][event.keyCode+""]
         | 
| 153 | 
            +
            	}
         | 
| 154 | 
            +
            	
         | 
| 155 | 
            +
            	
         | 
| 156 | 
            +
            })(jQuery)
         | 
| @@ -0,0 +1,174 @@ | |
| 1 | 
            +
            //    - jquery.event.livehack.js
         | 
| 2 | 
            +
            (function() {
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            	var event = jQuery.event,
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            		//helper that finds handlers by type and calls back a function, this is basically handle
         | 
| 7 | 
            +
            		// events - the events object
         | 
| 8 | 
            +
            		// types - an array of event types to look for
         | 
| 9 | 
            +
            		// callback(type, handlerFunc, selector) - a callback
         | 
| 10 | 
            +
            		// selector - an optional selector to filter with, if there, matches by selector
         | 
| 11 | 
            +
            		//     if null, matches anything, otherwise, matches with no selector
         | 
| 12 | 
            +
            		findHelper = function( events, types, callback, selector ) {
         | 
| 13 | 
            +
            			var t, type, typeHandlers, all, h, handle, 
         | 
| 14 | 
            +
            				namespaces, namespace,
         | 
| 15 | 
            +
            				match;
         | 
| 16 | 
            +
            			for ( t = 0; t < types.length; t++ ) {
         | 
| 17 | 
            +
            				type = types[t];
         | 
| 18 | 
            +
            				all = type.indexOf(".") < 0;
         | 
| 19 | 
            +
            				if (!all ) {
         | 
| 20 | 
            +
            					namespaces = type.split(".");
         | 
| 21 | 
            +
            					type = namespaces.shift();
         | 
| 22 | 
            +
            					namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)");
         | 
| 23 | 
            +
            				}
         | 
| 24 | 
            +
            				typeHandlers = (events[type] || []).slice(0);
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            				for ( h = 0; h < typeHandlers.length; h++ ) {
         | 
| 27 | 
            +
            					handle = typeHandlers[h];
         | 
| 28 | 
            +
            					
         | 
| 29 | 
            +
            					match = (all || namespace.test(handle.namespace));
         | 
| 30 | 
            +
            					
         | 
| 31 | 
            +
            					if(match){
         | 
| 32 | 
            +
            						if(selector){
         | 
| 33 | 
            +
            							if (handle.selector === selector  ) {
         | 
| 34 | 
            +
            								callback(type, handle.origHandler || handle.handler);
         | 
| 35 | 
            +
            							}
         | 
| 36 | 
            +
            						} else if (selector === null){
         | 
| 37 | 
            +
            							callback(type, handle.origHandler || handle.handler, handle.selector);
         | 
| 38 | 
            +
            						}
         | 
| 39 | 
            +
            						else if (!handle.selector ) {
         | 
| 40 | 
            +
            							callback(type, handle.origHandler || handle.handler);
         | 
| 41 | 
            +
            							
         | 
| 42 | 
            +
            						} 
         | 
| 43 | 
            +
            					}
         | 
| 44 | 
            +
            					
         | 
| 45 | 
            +
            					
         | 
| 46 | 
            +
            				}
         | 
| 47 | 
            +
            			}
         | 
| 48 | 
            +
            		};
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            	/**
         | 
| 51 | 
            +
            	 * Finds event handlers of a given type on an element.
         | 
| 52 | 
            +
            	 * @param {HTMLElement} el
         | 
| 53 | 
            +
            	 * @param {Array} types an array of event names
         | 
| 54 | 
            +
            	 * @param {String} [selector] optional selector
         | 
| 55 | 
            +
            	 * @return {Array} an array of event handlers
         | 
| 56 | 
            +
            	 */
         | 
| 57 | 
            +
            	event.find = function( el, types, selector ) {
         | 
| 58 | 
            +
            		var events = ( $._data(el) || {} ).events,
         | 
| 59 | 
            +
            			handlers = [],
         | 
| 60 | 
            +
            			t, liver, live;
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            		if (!events ) {
         | 
| 63 | 
            +
            			return handlers;
         | 
| 64 | 
            +
            		}
         | 
| 65 | 
            +
            		findHelper(events, types, function( type, handler ) {
         | 
| 66 | 
            +
            			handlers.push(handler);
         | 
| 67 | 
            +
            		}, selector);
         | 
| 68 | 
            +
            		return handlers;
         | 
| 69 | 
            +
            	};
         | 
| 70 | 
            +
            	/**
         | 
| 71 | 
            +
            	 * Finds all events.  Group by selector.
         | 
| 72 | 
            +
            	 * @param {HTMLElement} el the element
         | 
| 73 | 
            +
            	 * @param {Array} types event types
         | 
| 74 | 
            +
            	 */
         | 
| 75 | 
            +
            	event.findBySelector = function( el, types ) {
         | 
| 76 | 
            +
            		var events = $._data(el).events,
         | 
| 77 | 
            +
            			selectors = {},
         | 
| 78 | 
            +
            			//adds a handler for a given selector and event
         | 
| 79 | 
            +
            			add = function( selector, event, handler ) {
         | 
| 80 | 
            +
            				var select = selectors[selector] || (selectors[selector] = {}),
         | 
| 81 | 
            +
            					events = select[event] || (select[event] = []);
         | 
| 82 | 
            +
            				events.push(handler);
         | 
| 83 | 
            +
            			};
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            		if (!events ) {
         | 
| 86 | 
            +
            			return selectors;
         | 
| 87 | 
            +
            		}
         | 
| 88 | 
            +
            		//first check live:
         | 
| 89 | 
            +
            		/*$.each(events.live || [], function( i, live ) {
         | 
| 90 | 
            +
            			if ( $.inArray(live.origType, types) !== -1 ) {
         | 
| 91 | 
            +
            				add(live.selector, live.origType, live.origHandler || live.handler);
         | 
| 92 | 
            +
            			}
         | 
| 93 | 
            +
            		});*/
         | 
| 94 | 
            +
            		//then check straight binds
         | 
| 95 | 
            +
            		findHelper(events, types, function( type, handler, selector ) {
         | 
| 96 | 
            +
            			add(selector || "", type, handler);
         | 
| 97 | 
            +
            		}, null);
         | 
| 98 | 
            +
             | 
| 99 | 
            +
            		return selectors;
         | 
| 100 | 
            +
            	};
         | 
| 101 | 
            +
            	event.supportTouch = "ontouchend" in document;
         | 
| 102 | 
            +
            	
         | 
| 103 | 
            +
            	$.fn.respondsTo = function( events ) {
         | 
| 104 | 
            +
            		if (!this.length ) {
         | 
| 105 | 
            +
            			return false;
         | 
| 106 | 
            +
            		} else {
         | 
| 107 | 
            +
            			//add default ?
         | 
| 108 | 
            +
            			return event.find(this[0], $.isArray(events) ? events : [events]).length > 0;
         | 
| 109 | 
            +
            		}
         | 
| 110 | 
            +
            	};
         | 
| 111 | 
            +
            	$.fn.triggerHandled = function( event, data ) {
         | 
| 112 | 
            +
            		event = (typeof event == "string" ? $.Event(event) : event);
         | 
| 113 | 
            +
            		this.trigger(event, data);
         | 
| 114 | 
            +
            		return event.handled;
         | 
| 115 | 
            +
            	};
         | 
| 116 | 
            +
            	/**
         | 
| 117 | 
            +
            	 * Only attaches one event handler for all types ...
         | 
| 118 | 
            +
            	 * @param {Array} types llist of types that will delegate here
         | 
| 119 | 
            +
            	 * @param {Object} startingEvent the first event to start listening to
         | 
| 120 | 
            +
            	 * @param {Object} onFirst a function to call 
         | 
| 121 | 
            +
            	 */
         | 
| 122 | 
            +
            	event.setupHelper = function( types, startingEvent, onFirst ) {
         | 
| 123 | 
            +
            		if (!onFirst ) {
         | 
| 124 | 
            +
            			onFirst = startingEvent;
         | 
| 125 | 
            +
            			startingEvent = null;
         | 
| 126 | 
            +
            		}
         | 
| 127 | 
            +
            		var add = function( handleObj ) {
         | 
| 128 | 
            +
             | 
| 129 | 
            +
            			var bySelector, selector = handleObj.selector || "";
         | 
| 130 | 
            +
            			if ( selector ) {
         | 
| 131 | 
            +
            				bySelector = event.find(this, types, selector);
         | 
| 132 | 
            +
            				if (!bySelector.length ) {
         | 
| 133 | 
            +
            					$(this).delegate(selector, startingEvent, onFirst);
         | 
| 134 | 
            +
            				}
         | 
| 135 | 
            +
            			}
         | 
| 136 | 
            +
            			else {
         | 
| 137 | 
            +
            				//var bySelector = event.find(this, types, selector);
         | 
| 138 | 
            +
            				if (!event.find(this, types, selector).length ) {
         | 
| 139 | 
            +
            					event.add(this, startingEvent, onFirst, {
         | 
| 140 | 
            +
            						selector: selector,
         | 
| 141 | 
            +
            						delegate: this
         | 
| 142 | 
            +
            					});
         | 
| 143 | 
            +
            				}
         | 
| 144 | 
            +
             | 
| 145 | 
            +
            			}
         | 
| 146 | 
            +
             | 
| 147 | 
            +
            		},
         | 
| 148 | 
            +
            			remove = function( handleObj ) {
         | 
| 149 | 
            +
            				var bySelector, selector = handleObj.selector || "";
         | 
| 150 | 
            +
            				if ( selector ) {
         | 
| 151 | 
            +
            					bySelector = event.find(this, types, selector);
         | 
| 152 | 
            +
            					if (!bySelector.length ) {
         | 
| 153 | 
            +
            						$(this).undelegate(selector, startingEvent, onFirst);
         | 
| 154 | 
            +
            					}
         | 
| 155 | 
            +
            				}
         | 
| 156 | 
            +
            				else {
         | 
| 157 | 
            +
            					if (!event.find(this, types, selector).length ) {
         | 
| 158 | 
            +
            						event.remove(this, startingEvent, onFirst, {
         | 
| 159 | 
            +
            							selector: selector,
         | 
| 160 | 
            +
            							delegate: this
         | 
| 161 | 
            +
            						});
         | 
| 162 | 
            +
            					}
         | 
| 163 | 
            +
            				}
         | 
| 164 | 
            +
            			};
         | 
| 165 | 
            +
            		$.each(types, function() {
         | 
| 166 | 
            +
            			event.special[this] = {
         | 
| 167 | 
            +
            				add: add,
         | 
| 168 | 
            +
            				remove: remove,
         | 
| 169 | 
            +
            				setup: function() {},
         | 
| 170 | 
            +
            				teardown: function() {}
         | 
| 171 | 
            +
            			};
         | 
| 172 | 
            +
            		});
         | 
| 173 | 
            +
            	};
         | 
| 174 | 
            +
            })(jQuery)
         | 
| @@ -0,0 +1,92 @@ | |
| 1 | 
            +
            // Dependencies:
         | 
| 2 | 
            +
            //
         | 
| 3 | 
            +
            //    - jquery.event.pause.js
         | 
| 4 | 
            +
            //    - jquery.event.default.js
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            (function($){
         | 
| 7 | 
            +
             | 
| 8 | 
            +
             | 
| 9 | 
            +
            var current,
         | 
| 10 | 
            +
            	rnamespaces = /\.(.*)$/,
         | 
| 11 | 
            +
            	returnFalse = function(){return false},
         | 
| 12 | 
            +
            	returnTrue = function(){return true};
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            $.Event.prototype.isPaused = returnFalse
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            /**
         | 
| 17 | 
            +
             * @function jQuery.Event.prototype.pause
         | 
| 18 | 
            +
             * @parent jQuery.event.pause
         | 
| 19 | 
            +
             *
         | 
| 20 | 
            +
             * `event.paused()` pauses an event (to be resumed later):
         | 
| 21 | 
            +
             *
         | 
| 22 | 
            +
             *      $('.tab').on('show', function(ev) {
         | 
| 23 | 
            +
             *          ev.pause();
         | 
| 24 | 
            +
             *          // Resume the event after 1 second
         | 
| 25 | 
            +
             *          setTimeout(function() {
         | 
| 26 | 
            +
             *              ev.resume();
         | 
| 27 | 
            +
             *          }, 1000);
         | 
| 28 | 
            +
             *      });
         | 
| 29 | 
            +
             */
         | 
| 30 | 
            +
            $.Event.prototype.pause = function(){
         | 
| 31 | 
            +
            	// stop the event from continuing temporarily
         | 
| 32 | 
            +
            	// keep the current state of the event ...
         | 
| 33 | 
            +
            	this.pausedState = {
         | 
| 34 | 
            +
            		isDefaultPrevented : this.isDefaultPrevented() ?
         | 
| 35 | 
            +
            			returnTrue : returnFalse,
         | 
| 36 | 
            +
            		isPropagationStopped : this.isPropagationStopped() ?
         | 
| 37 | 
            +
            			returnTrue : returnFalse
         | 
| 38 | 
            +
            	};
         | 
| 39 | 
            +
            	
         | 
| 40 | 
            +
            	this.stopImmediatePropagation();
         | 
| 41 | 
            +
            	this.preventDefault();
         | 
| 42 | 
            +
            	this.isPaused = returnTrue;
         | 
| 43 | 
            +
            };
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            /**
         | 
| 46 | 
            +
             * @function jQuery.Event.prototype.resume
         | 
| 47 | 
            +
             * @parent jQuery.event.pause
         | 
| 48 | 
            +
             *
         | 
| 49 | 
            +
             * `event.resume()` resumes a paused event:
         | 
| 50 | 
            +
             *
         | 
| 51 | 
            +
             *      $('.tab').on('show', function(ev) {
         | 
| 52 | 
            +
             *          ev.pause();
         | 
| 53 | 
            +
             *          // Resume the event after 1 second
         | 
| 54 | 
            +
             *          setTimeout(function() {
         | 
| 55 | 
            +
             *              ev.resume();
         | 
| 56 | 
            +
             *          }, 1000);
         | 
| 57 | 
            +
             *      });
         | 
| 58 | 
            +
             */
         | 
| 59 | 
            +
            $.Event.prototype.resume = function(){
         | 
| 60 | 
            +
            	// temporarily remove all event handlers of this type 
         | 
| 61 | 
            +
            	var handleObj = this.handleObj,
         | 
| 62 | 
            +
            		currentTarget = this.currentTarget;
         | 
| 63 | 
            +
            	// temporarily overwrite special handle
         | 
| 64 | 
            +
            	var origType = jQuery.event.special[ handleObj.origType ],
         | 
| 65 | 
            +
            		origHandle = origType && origType.handle;
         | 
| 66 | 
            +
            		
         | 
| 67 | 
            +
            	if(!origType){
         | 
| 68 | 
            +
            		jQuery.event.special[ handleObj.origType ] = {};
         | 
| 69 | 
            +
            	}
         | 
| 70 | 
            +
            	jQuery.event.special[ handleObj.origType ].handle = function(ev){
         | 
| 71 | 
            +
            		// remove this once we have passed the handleObj
         | 
| 72 | 
            +
            		if(ev.handleObj === handleObj && ev.currentTarget === currentTarget){
         | 
| 73 | 
            +
            			if(!origType){
         | 
| 74 | 
            +
            				delete jQuery.event.special[ handleObj.origType ];
         | 
| 75 | 
            +
            			} else {
         | 
| 76 | 
            +
            				jQuery.event.special[ handleObj.origType ].handle = origHandle;
         | 
| 77 | 
            +
            			}
         | 
| 78 | 
            +
            		}
         | 
| 79 | 
            +
            	}
         | 
| 80 | 
            +
            	delete this.pausedState;
         | 
| 81 | 
            +
            	// reset stuff
         | 
| 82 | 
            +
            	this.isPaused = this.isImmediatePropagationStopped = returnFalse;
         | 
| 83 | 
            +
            	
         | 
| 84 | 
            +
            	if(!this.isPropagationStopped()){
         | 
| 85 | 
            +
            		// fire the event again, no events will get fired until
         | 
| 86 | 
            +
            		// same currentTarget / handler
         | 
| 87 | 
            +
            		$.event.trigger(this, [], this.target);
         | 
| 88 | 
            +
            	}
         | 
| 89 | 
            +
            	
         | 
| 90 | 
            +
            };
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            })(jQuery)
         |