vendor: 19,245 bytes, lines 1-627
1 2 3/*! 4 * jQuery Transit - CSS3 transitions and transformations 5 */ 6(function(jQuery) { 7 jQuery.transit = { 8 version: "0.9.9", 9 10 // Map of $.css() keys to values for 'transitionProperty'. 11 // See https://developer.mozilla.org/en/CSS/CSS_transitions#Properties_that_can_be_animated 12 propertyMap: { 13 marginLeft : 'margin', 14 marginRight : 'margin', 15 marginBottom : 'margin', 16 marginTop : 'margin', 17 paddingLeft : 'padding', 18 paddingRight : 'padding', 19 paddingBottom : 'padding', 20 paddingTop : 'padding' 21 }, 22 23 // Will simply transition "instantly" if false 24 enabled: true, 25 26 // Set this to false if you don't want to use the transition end property. 27 useTransitionEnd: false 28 }; 29 30 var div = document.createElement('div'); 31 var support = {}; 32 33 // Helper function to get the proper vendor property name. 34 // (`transition` => `WebkitTransition`) 35 function getVendorPropertyName(prop) { 36 // Handle unprefixed versions (FF16+, for example) 37 if (prop in div.style) return prop; 38 39 var prefixes = ['Moz', 'Webkit', 'O', 'ms']; 40 var prop_ = prop.charAt(0).toUpperCase() + prop.substr(1); 41 42 if (prop in div.style) { return prop; } 43 44 for (var i=0; i<prefixes.length; ++i) { 45 var vendorProp = prefixes[i] + prop_; 46 if (vendorProp in div.style) { return vendorProp; } 47 } 48 } 49 50 // Helper function to check if transform3D is supported. 51 // Should return true for Webkits and Firefox 10+. 52 function checkTransform3dSupport() { 53 div.style[support.transform] = ''; 54 div.style[support.transform] = 'rotateY(90deg)'; 55 return div.style[support.transform] !== ''; 56 } 57 58 var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; 59 60 // Check for the browser's transitions support. 61 support.transition = getVendorPropertyName('transition'); 62 support.transitionDelay = getVendorPropertyName('transitionDelay'); 63 support.transform = getVendorPropertyName('transform'); 64 support.transformOrigin = getVendorPropertyName('transformOrigin'); 65 support.transform3d = checkTransform3dSupport(); 66 67 var eventNames = { 68 'transition': 'transitionEnd', 69 'MozTransition': 'transitionend', 70 'OTransition': 'oTransitionEnd', 71 'WebkitTransition': 'webkitTransitionEnd', 72 'msTransition': 'MSTransitionEnd' 73 }; 74 75 // Detect the 'transitionend' event needed. 76 var transitionEnd = support.transitionEnd = eventNames[support.transition] || null; 77 78 // Populate jQuery's `$.support` with the vendor prefixes we know. 79 // As per [jQuery's cssHooks documentation](http://api.jquery.com/jQuery.cssHooks/), 80 // we set $.support.transition to a string of the actual property name used. 81 for (var key in support) { 82 if (support.hasOwnProperty(key) && typeof jQuery.support[key] === 'undefined') { 83 jQuery.support[key] = support[key]; 84 } 85 } 86 87 // Avoid memory leak in IE. 88 div = null; 89 90 // ## $.cssEase 91 // List of easing aliases that you can use with `$.fn.transition`. 92 jQuery.cssEase = { 93 '_default': 'ease', 94 'in': 'ease-in', 95 'out': 'ease-out', 96 'in-out': 'ease-in-out', 97 'snap': 'cubic-bezier(0,1,.5,1)', 98 // Penner equations 99 'easeInCubic': 'cubic-bezier(.55, .055, .675, .19)', 100 'easeOutCubic': 'cubic-bezier(.215,.61,.355,1)', 101 'easeInOutCubic': 'cubic-bezier(.645,.045,.355,1)', 102 'easeInCirc': 'cubic-bezier(.6,.04,.98,.335)', 103 'easeOutCirc': 'cubic-bezier(.075,.82,.165,1)', 104 'easeInOutCirc': 'cubic-bezier(.785,.135,.15,.86)', 105 'easeInExpo': 'cubic-bezier(.95,.05,.795,.035)', 106 'easeOutExpo': 'cubic-bezier(.19,1,.22,1)', 107 'easeInOutExpo': 'cubic-bezier(1,0,0,1)', 108 'easeInQuad': 'cubic-bezier(.55,.085,.68,.53)', 109 'easeOutQuad': 'cubic-bezier(.25,.46,.45,.94)', 110 'easeInOutQuad': 'cubic-bezier(.455,.03,.515,.955)', 111 'easeInQuart': 'cubic-bezier(.895,.03,.685,.22)', 112 'easeOutQuart': 'cubic-bezier(.165,.84,.44,1)', 113 'easeInOutQuart': 'cubic-bezier(.77,0,.175,1)', 114 'easeInQuint': 'cubic-bezier(.755,.05,.855,.06)', 115 'easeOutQuint': 'cubic-bezier(.23,1,.32,1)', 116 'easeInOutQuint': 'cubic-bezier(.86,0,.07,1)', 117 'easeInSine': 'cubic-bezier(.47,0,.745,.715)', 118 'easeOutSine': 'cubic-bezier(.39,.575,.565,1)', 119 'easeInOutSine': 'cubic-bezier(.445,.05,.55,.95)', 120 'easeInBack': 'cubic-bezier(.6,-.28,.735,.045)', 121 'easeOutBack': 'cubic-bezier(.175, .885,.32,1.275)', 122 'easeInOutBack': 'cubic-bezier(.68,-.55,.265,1.55)' 123 }; 124 125 // ## 'transform' CSS hook 126 // Allows you to use the `transform` property in CSS. 127 // 128 // $("#hello").css({ transform: "rotate(90deg)" }); 129 // 130 // $("#hello").css('transform'); 131 // //=> { rotate: '90deg' } 132 // 133 jQuery.cssHooks['transit:transform'] = { 134 // The getter returns a `Transform` object. 135 get: function(elem) { 136 return $(elem).data('transform') || new Transform(); 137 }, 138 139 // The setter accepts a `Transform` object or a string. 140 set: function(elem, v) { 141 var value = v; 142 143 if (!(value instanceof Transform)) { 144 value = new Transform(value); 145 } 146 147 // We've seen the 3D version of Scale() not work in Chrome when the 148 // element being scaled extends outside of the viewport. Thus, we're 149 // forcing Chrome to not use the 3d transforms as well. Not sure if 150 // translate is affectede, but not risking it. Detection code from 151 // http://davidwalsh.name/detecting-google-chrome-javascript 152 if (support.transform === 'WebkitTransform' && !isChrome) { 153 elem.style[support.transform] = value.toString(true); 154 } else { 155 elem.style[support.transform] = value.toString(); 156 } 157 158 $(elem).data('transform', value); 159 } 160 }; 161 162 // Add a CSS hook for `.css({ transform: '...' })`. 163 // In jQuery 1.8+, this will intentionally override the default `transform` 164 // CSS hook so it'll play well with Transit. (see issue #62) 165 jQuery.cssHooks.transform = { 166 set: jQuery.cssHooks['transit:transform'].set 167 }; 168 169 // jQuery 1.8+ supports prefix-free transitions, so these polyfills will not 170 // be necessary. 171 if (jQuery.fn.jquery < "1.8") { 172 // ## 'transformOrigin' CSS hook 173 // Allows the use for `transformOrigin` to define where scaling and rotation 174 // is pivoted. 175 // 176 // $("#hello").css({ transformOrigin: '0 0' }); 177 // 178 jQuery.cssHooks.transformOrigin = { 179 get: function(elem) { 180 return elem.style[support.transformOrigin]; 181 }, 182 set: function(elem, value) { 183 elem.style[support.transformOrigin] = value; 184 } 185 }; 186 187 // ## 'transition' CSS hook 188 // Allows you to use the `transition` property in CSS. 189 // 190 // $("#hello").css({ transition: 'all 0 ease 0' }); 191 // 192 jQuery.cssHooks.transition = { 193 get: function(elem) { 194 return elem.style[support.transition]; 195 }, 196 set: function(elem, value) { 197 elem.style[support.transition] = value; 198 } 199 }; 200 } 201 202 // ## Other CSS hooks 203 // Allows you to rotate, scale and translate. 204 registerCssHook('scale'); 205 registerCssHook('translate'); 206 registerCssHook('rotate'); 207 registerCssHook('rotateX'); 208 registerCssHook('rotateY'); 209 registerCssHook('rotate3d'); 210 registerCssHook('perspective'); 211 registerCssHook('skewX'); 212 registerCssHook('skewY'); 213 registerCssHook('x', true); 214 registerCssHook('y', true); 215 216 // ## Transform class 217 // This is the main class of a transformation property that powers 218 // `jQuery.fn.css({ transform: '...' })`. 219 // 220 // This is, in essence, a dictionary object with key/values as `-transform` 221 // properties. 222 // 223 // var t = new Transform("rotate(90) scale(4)"); 224 // 225 // t.rotate //=> "90deg" 226 // t.scale //=> "4,4" 227 // 228 // Setters are accounted for. 229 // 230 // t.set('rotate', 4) 231 // t.rotate //=> "4deg" 232 // 233 // Convert it to a CSS string using the `toString()` and `toString(true)` (for WebKit) 234 // functions. 235 // 236 // t.toString() //=> "rotate(90deg) scale(4,4)" 237 // t.toString(true) //=> "rotate(90deg) scale3d(4,4,0)" (WebKit version) 238 // 239 function Transform(str) { 240 if (typeof str === 'string') { this.parse(str); } 241 return this; 242 } 243 244 Transform.prototype = { 245 // ### setFromString() 246 // Sets a property from a string. 247 // 248 // t.setFromString('scale', '2,4'); 249 // // Same as set('scale', '2', '4'); 250 // 251 setFromString: function(prop, val) { 252 var args = 253 (typeof val === 'string') ? val.split(',') : 254 (val.constructor === Array) ? val : 255 [ val ]; 256 257 args.unshift(prop); 258 259 Transform.prototype.set.apply(this, args); 260 }, 261 262 // ### set() 263 // Sets a property. 264 // 265 // t.set('scale', 2, 4); 266 // 267 set: function(prop) { 268 var args = Array.prototype.slice.apply(arguments, [1]); 269 if (this.setter[prop]) { 270 this.setter[prop].apply(this, args); 271 } else { 272 this[prop] = args.join(','); 273 } 274 }, 275 276 get: function(prop) { 277 if (this.getter[prop]) { 278 return this.getter[prop].apply(this); 279 } else { 280 return this[prop] || 0; 281 } 282 }, 283 284 setter: { 285 // ### rotate 286 // 287 // .css({ rotate: 30 }) 288 // .css({ rotate: "30" }) 289 // .css({ rotate: "30deg" }) 290 // .css({ rotate: "30deg" }) 291 // 292 rotate: function(theta) { 293 this.rotate = unit(theta, 'deg'); 294 }, 295 296 rotateX: function(theta) { 297 this.rotateX = unit(theta, 'deg'); 298 }, 299 300 rotateY: function(theta) { 301 this.rotateY = unit(theta, 'deg'); 302 }, 303 304 // ### scale 305 // 306 // .css({ scale: 9 }) //=> "scale(9,9)" 307 // .css({ scale: '3,2' }) //=> "scale(3,2)" 308 // 309 scale: function(x, y) { 310 if (y === undefined) { y = x; } 311 this.scale = x + "," + y; 312 }, 313 314 // ### skewX + skewY 315 skewX: function(x) { 316 this.skewX = unit(x, 'deg'); 317 }, 318 319 skewY: function(y) { 320 this.skewY = unit(y, 'deg'); 321 }, 322 323 // ### perspectvie 324 perspective: function(dist) { 325 this.perspective = unit(dist, 'px'); 326 }, 327 328 // ### x / y 329 // Translations. Notice how this keeps the other value. 330 // 331 // .css({ x: 4 }) //=> "translate(4px, 0)" 332 // .css({ y: 10 }) //=> "translate(4px, 10px)" 333 // 334 x: function(x) { 335 this.set('translate', x, null); 336 }, 337 338 y: function(y) { 339 this.set('translate', null, y); 340 }, 341 342 // ### translate 343 // Notice how this keeps the other value. 344 // 345 // .css({ translate: '2, 5' }) //=> "translate(2px, 5px)" 346 // 347 translate: function(x, y) { 348 if (this._translateX === undefined) { this._translateX = 0; } 349 if (this._translateY === undefined) { this._translateY = 0; } 350 351 if (x !== null && x !== undefined) { this._translateX = unit(x, 'px'); } 352 if (y !== null && y !== undefined) { this._translateY = unit(y, 'px'); } 353 354 this.translate = this._translateX + "," + this._translateY; 355 } 356 }, 357 358 getter: { 359 x: function() { 360 return this._translateX || 0; 361 }, 362 363 y: function() { 364 return this._translateY || 0; 365 }, 366 367 scale: function() { 368 var s = (this.scale || "1,1").split(','); 369 if (s[0]) { s[0] = parseFloat(s[0]); } 370 if (s[1]) { s[1] = parseFloat(s[1]); } 371 372 // "2.5,2.5" => 2.5 373 // "2.5,1" => [2.5,1] 374 return (s[0] === s[1]) ? s[0] : s; 375 }, 376 377 rotate3d: function() { 378 var s = (this.rotate3d || "0,0,0,0deg").split(','); 379 for (var i=0; i<=3; ++i) { 380 if (s[i]) { s[i] = parseFloat(s[i]); } 381 } 382 if (s[3]) { s[3] = unit(s[3], 'deg'); } 383 384 return s; 385 } 386 }, 387 388 // ### parse() 389 // Parses from a string. Called on constructor. 390 parse: function(str) { 391 var self = this; 392 str.replace(/([a-zA-Z0-9]+)\((.*?)\)/g, function(x, prop, val) { 393 self.setFromString(prop, val); 394 }); 395 }, 396 397 // ### toString() 398 // Converts to a `transition` CSS property string. If `use3d` is given, 399 // it converts to a `-webkit-transition` CSS property string instead. 400 toString: function(use3d) { 401 var re = []; 402 403 for (var i in this) { 404 if (this.hasOwnProperty(i)) { 405 // Don't use 3D transformations if the browser can't support it. 406 if ((!support.transform3d) && ( 407 (i === 'rotateX') || 408 (i === 'rotateY') || 409 (i === 'perspective') || 410 (i === 'transformOrigin'))) { continue; } 411 412 if (i[0] !== '_') { 413 if (use3d && (i === 'scale')) { 414 re.push(i + "3d(" + this[i] + ",1)"); 415 } else if (use3d && (i === 'translate')) { 416 re.push(i + "3d(" + this[i] + ",0)"); 417 } else { 418 re.push(i + "(" + this[i] + ")"); 419 } 420 } 421 } 422 } 423 424 return re.join(" "); 425 } 426 }; 427 428 function callOrQueue(self, queue, fn) { 429 if (queue === true) { 430 self.queue(fn); 431 } else if (queue) { 432 self.queue(queue, fn); 433 } else { 434 fn(); 435 } 436 } 437 438 // ### getProperties(dict) 439 // Returns properties (for `transition-property`) for dictionary `props`. The 440 // value of `props` is what you would expect in `jQuery.css(...)`. 441 function getProperties(props) { 442 var re = []; 443 444 jQuery.each(props, function(key) { 445 key = jQuery.camelCase(key); // Convert "text-align" => "textAlign" 446 key = jQuery.transit.propertyMap[key] || jQuery.cssProps[key] || key; 447 key = uncamel(key); // Convert back to dasherized 448 449 if (jQuery.inArray(key, re) === -1) { re.push(key); } 450 }); 451 452 return re; 453 } 454 455 // ### getTransition() 456 // Returns the transition string to be used for the `transition` CSS property. 457 // 458 // Example: 459 // 460 // getTransition({ opacity: 1, rotate: 30 }, 500, 'ease'); 461 // //=> 'opacity 500ms ease, -webkit-transform 500ms ease' 462 // 463 function getTransition(properties, duration, easing, delay) { 464 // Get the CSS properties needed. 465 var props = getProperties(properties); 466 467 // Account for aliases (`in` => `ease-in`). 468 if (jQuery.cssEase[easing]) { easing = jQuery.cssEase[easing]; } 469 470 // Build the duration/easing/delay attributes for it. 471 var attribs = '' + toMS(duration) + ' ' + easing; 472 if (parseInt(delay, 10) > 0) { attribs += ' ' + toMS(delay); } 473 474 // For more properties, add them this way: 475 // "margin 200ms ease, padding 200ms ease, ..." 476 var transitions = []; 477 jQuery.each(props, function(i, name) { 478 transitions.push(name + ' ' + attribs); 479 }); 480 481 return transitions.join(', '); 482 } 483 484 // ## jQuery.fn.transition 485 // Works like jQuery.fn.animate(), but uses CSS transitions. 486 // 487 // $("...").transition({ opacity: 0.1, scale: 0.3 }); 488 // 489 // // Specific duration 490 // $("...").transition({ opacity: 0.1, scale: 0.3 }, 500); 491 // 492 // // With duration and easing 493 // $("...").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in'); 494 // 495 // // With callback 496 // $("...").transition({ opacity: 0.1, scale: 0.3 }, function() { ... }); 497 // 498 // // With everything 499 // $("...").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in', function() { ... }); 500 // 501 // // Alternate syntax 502 // $("...").transition({ 503 // opacity: 0.1, 504 // duration: 200, 505 // delay: 40, 506 // easing: 'in', 507 // complete: function() { /* ... */ } 508 // }); 509 // 510 jQuery.fn.transition = jQuery.fn.transit = function(properties, duration, easing, callback) { 511 var self = this; 512 var delay = 0; 513 var queue = true; 514 515 var theseProperties = jQuery.extend(true, {}, properties); 516 517 // Account for `.transition(properties, callback)`. 518 if (typeof duration === 'function') { 519 callback = duration; 520 duration = undefined; 521 } 522 523 // Account for `.transition(properties, options)`. 524 if (typeof duration === 'object') { 525 easing = duration.easing; 526 delay = duration.delay || 0; 527 queue = duration.queue || true; 528 callback = duration.complete; 529 duration = duration.duration; 530 } 531 532 // Account for `.transition(properties, duration, callback)`. 533 if (typeof easing === 'function') { 534 callback = easing; 535 easing = undefined; 536 } 537 538 // Alternate syntax. 539 if (typeof theseProperties.easing !== 'undefined') { 540 easing = theseProperties.easing; 541 delete theseProperties.easing; 542 } 543 544 if (typeof theseProperties.duration !== 'undefined') { 545 duration = theseProperties.duration; 546 delete theseProperties.duration; 547 } 548 549 if (typeof theseProperties.complete !== 'undefined') { 550 callback = theseProperties.complete; 551 delete theseProperties.complete; 552 } 553 554 if (typeof theseProperties.queue !== 'undefined') { 555 queue = theseProperties.queue; 556 delete theseProperties.queue; 557 } 558 559 if (typeof theseProperties.delay !== 'undefined') { 560 delay = theseProperties.delay; 561 delete theseProperties.delay; 562 } 563 564 // Set defaults. (`400` duration, `ease` easing) 565 if (typeof duration === 'undefined') { duration = jQuery.fx.speeds._default; } 566 if (typeof easing === 'undefined') { easing = jQuery.cssEase._default; } 567 568 duration = toMS(duration); 569 570 // Build the `transition` property. 571 var transitionValue = getTransition(theseProperties, duration, easing, delay); 572 573 // Compute delay until callback. 574 // If this becomes 0, don't bother setting the transition property. 575 var work = jQuery.transit.enabled && support.transition; 576 var i = work ? (parseInt(duration, 10) + parseInt(delay, 10)) : 0; 577 578 // If there's nothing to do... 579 if (i === 0) { 580 var fn = function(next) { 581 self.css(theseProperties); 582 if (callback) { callback.apply(self); } 583 if (next) { next(); } 584 }; 585 586 callOrQueue(self, queue, fn); 587 return self; 588 } 589 590 // Save the old transitions of each element so we can restore it later. 591 var oldTransitions = {}; 592 593 var run = function(nextCall) { 594 var bound = false; 595 596 // Prepare the callback. 597 var cb = function() { 598 if (bound) { self.unbind(transitionEnd, cb); } 599 600 if (i > 0) { 601 self.each(function() { 602 this.style[support.transition] = (oldTransitions[this] || null); 603 }); 604 } 605 606 if (typeof callback === 'function') { callback.apply(self); } 607 if (typeof nextCall === 'function') { nextCall(); } 608 }; 609 610 if ((i > 0) && (transitionEnd) && (jQuery.transit.useTransitionEnd)) { 611 // Use the 'transitionend' event if it's available. 612 bound = true; 613 self.bind(transitionEnd, cb); 614 } else { 615 // Fallback to timers if the 'transitionend' event isn't supported. 616 window.setTimeout(cb, i); 617 } 618 619 // Apply transitions. 620 self.each(function() { 621 if (i > 0) { 622 this.style[support.transition] = transitionValue; 623 } 624 $(this).css(properties); 625 }); 626 }; 627
vendor: 4,910 bytes, lines 628-709
628 // Defer running. This allows the browser to paint any pending CSS it hasn't 629 // painted yet before doing the transitions. 630 var deferredRun = function(next) { 631 this.offsetWidth; // force a repaint 632 run(next); 633 }; 634 635 // Use jQuery's fx queue. 636 callOrQueue(self, queue, deferredRun); 637 638 // Chainability. 639 return this; 640 }; 641 642 function registerCssHook(prop, isPixels) { 643 // For certain properties, the 'px' should not be implied. 644 if (!isPixels) { jQuery.cssNumber[prop] = true; } 645 646 jQuery.transit.propertyMap[prop] = support.transform; 647 648 jQuery.cssHooks[prop] = { 649 get: function(elem) { 650 var t = $(elem).css('transit:transform'); 651 return t.get(prop); 652 }, 653 654 set: function(elem, value) { 655 var t = $(elem).css('transit:transform'); 656 t.setFromString(prop, value); 657 658 $(elem).css({ 'transit:transform': t }); 659 } 660 }; 661 662 } 663 664 // ### uncamel(str) 665 // Converts a camelcase string to a dasherized string. 666 // (`marginLeft` => `margin-left`) 667 function uncamel(str) { 668 return str.replace(/([A-Z])/g, function(letter) { return '-' + letter.toLowerCase(); }); 669 } 670 671 // ### unit(number, unit) 672 // Ensures that number `number` has a unit. If no unit is found, assume the 673 // default is `unit`. 674 // 675 // unit(2, 'px') //=> "2px" 676 // unit("30deg", 'rad') //=> "30deg" 677 // 678 function unit(i, units) { 679 if ((typeof i === "string") && (!i.match(/^[\-0-9\.]+$/))) { 680 return i; 681 } else { 682 return "" + i + units; 683 } 684 } 685 686 // ### toMS(duration) 687 // Converts given `duration` to a millisecond string. 688 // 689 // toMS('fast') => jQuery.fx.speeds[i] => "200ms" 690 // toMS('normal') //=> jQuery.fx.speeds._default => "400ms" 691 // toMS(10) //=> '10ms' 692 // toMS('100ms') //=> '100ms' 693 // 694 function toMS(duration) { 695 var i = duration; 696 697 // Allow string durations like 'fast' and 'slow', without overriding numeric values. 698 if (typeof i === 'string' && (!i.match(/^[\-0-9\.]+/))) { i = jQuery.fx.speeds[i] || jQuery.fx.speeds._default; } 699 700 return unit(i, 'ms'); 701 } 702 703 // Export some functions for testable-ness. 704 jQuery.transit.getTransitionValue = getTransition; 705})(jQuery); 706 707(function(e,t){ 708 jQuery.easing["jswing"]=jQuery.easing["swing"]; 709 jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,t,n,r,i){return jQuery.easing[jQuery.easing.def](e,t,n,r,i)},easeInQuad:function(e,t,n,r,i){return r*(t/=i)*t+n},easeOutQuad:function(e,t,n,r,i){return-r*(t/=i)*(t-2)+n},easeInOutQuad:function(e,t,n,r,i){if((t/=i/2)<1)return r/2*t*t+n;return-r/2*(--t*(t-2)-1)+n},easeInCubic:function(e,t,n,r,i){return r*(t/=i)*t*t+n},easeOutCubic:function(e,t,n,r,i){return r*((t=t/i-1)*t*t+1)+n},easeInOutCubic:function(e,t,n,r,i){if((t/=i/2)<1)return r/2*t*t*t+n;return r/2*((t-=2)*t*t+2)+n},easeInQuart:function(e,t,n,r,i){return r*(t/=i)*t*t*t+n},easeOutQuart:function(e,t,n,r,i){return-r*((t=t/i-1)*t*t*t-1)+n},easeInOutQuart:function(e,t,n,r,i){if((t/=i/2)<1)return r/2*t*t*t*t+n;return-r/2*((t-=2)*t*t*t-2)+n},easeInQuint:function(e,t,n,r,i){return r*(t/=i)*t*t*t*t+n},easeOutQuint:function(e,t,n,r,i){return r*((t=t/i-1)*t*t*t*t+1)+n},easeInOutQuint:function(e,t,n,r,i){if((t/=i/2)<1)return r/2*t*t*t*t*t+n;return r/2*((t-=2)*t*t*t*t+2)+n},easeInSine:function(e,t,n,r,i){return-r*Math.cos(t/i*(Math.PI/2))+r+n},easeOutSine:function(e,t,n,r,i){return r*Math.sin(t/i*(Math.PI/2))+n},easeInOutSine:function(e,t,n,r,i){return-r/2*(Math.cos(Math.PI*t/i)-1)+n},easeInExpo:function(e,t,n,r,i){return t==0?n:r*Math.pow(2,10*(t/i-1))+n},easeOutExpo:function(e,t,n,r,i){return t==i?n+r:r*(-Math.pow(2,-10*t/i)+1)+n},easeInOutExpo:function(e,t,n,r,i){if(t==0)return n;if(t==i)return n+r;if((t/=i/2)<1)return r/2*Math.pow(2,10*(t-1))+n;return r/2*(-Math.pow(2,-10*--t)+2)+n},easeInCirc:function(e,t,n,r,i){return-r*(Math.sqrt(1-(t/=i)*t)-1)+n},easeOutCirc:function(e,t,n,r,i){return r*Math.sqrt(1-(t=t/i-1)*t)+n},easeInOutCirc:function(e,t,n,r,i){if((t/=i/2)<1)return-r/2*(Math.sqrt(1-t*t)-1)+n;return r/2*(Math.sqrt(1-(t-=2)*t)+1)+n},easeInElastic:function(e,t,n,r,i){var s=1.70158;var o=0;var u=r;if(t==0)return n;if((t/=i)==1)return n+r;if(!o)o=i*.3;if(u<Math.abs(r)){u=r;var s=o/4}else var s=o/(2*Math.PI)*Math.asin(r/u);return-(u*Math.pow(2,10*(t-=1))*Math.sin((t*i-s)*2*Math.PI/o))+n},easeOutElastic:function(e,t,n,r,i){var s=1.70158;var o=0;var u=r;if(t==0)return n;if((t/=i)==1)return n+r;if(!o)o=i*.3;if(u<Math.abs(r)){u=r;var s=o/4}else var s=o/(2*Math.PI)*Math.asin(r/u);return u*Math.pow(2,-10*t)*Math.sin((t*i-s)*2*Math.PI/o)+r+n},easeInOutElastic:function(e,t,n,r,i){var s=1.70158;var o=0;var u=r;if(t==0)return n;if((t/=i/2)==2)return n+r;if(!o)o=i*.3*1.5;if(u<Math.abs(r)){u=r;var s=o/4}else var s=o/(2*Math.PI)*Math.asin(r/u);if(t<1)return-.5*u*Math.pow(2,10*(t-=1))*Math.sin((t*i-s)*2*Math.PI/o)+n;return u*Math.pow(2,-10*(t-=1))*Math.sin((t*i-s)*2*Math.PI/o)*.5+r+n}
709,easeInBack:function(e,t,n,r,i,s){if(s==undefined)s=1.70158;return r*(t/=i)*t*((s+1)*t-s)+n},easeOutBack:function(e,t,n,r,i,s){if(s==undefined)s=1.70158;return r*((t=t/i-1)*t*((s+1)*t+s)+1)+n},easeInOutBack:function(e,t,n,r,i,s){if(s==undefined)s=1.70158;if((t/=i/2)<1)return r/2*t*t*(((s*=1.525)+1)*t-s)+n;return r/2*((t-=2)*t*(((s*=1.525)+1)*t+s)+2)+n},easeInBounce:function(e,t,n,r,i){return r-jQuery.easing.easeOutBounce(e,i-t,0,r,i)+n},easeOutBounce:function(e,t,n,r,i){if((t/=i)<1/2.75){return r*7.5625*t*t+n}else if(t<2/2.75){return r*(7.5625*(t-=1.5/2.75)*t+.75)+n}else if(t<2.5/2.75){return r*(7.5625*(t-=2.25/2.75)*t+.9375)+n}else{return r*(7.5625*(t-=2.625/2.75)*t+.984375)+n}},easeInOutBounce:function(e,t,n,r,i){if(t<i/2)return jQuery.easing.easeInBounce(e,t*2,0,r,i)*.5+n;return jQuery.easing.easeOutBounce(e,t*2-i,0,r,i)*.5+r*.5+n}}); 710 e.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage"]};e.expr[":"].uncached=function(t){var n=document.createElement("img");n.src=t.src;return e(t).is('img[src!=""]')&&!n.complete};e.fn.waitForImages=function(t,n,r){if(e.isPlainObject(arguments[0])){n=t.each;r=t.waitForAll;t=t.finished}t=t||e.noop;n=n||e.noop;r=!!r;if(!e.isFunction(t)||!e.isFunction(n)){throw new TypeError("An invalid callback was supplied.")}return this.each(function(){var i=e(this),s=[];if(r){var o=e.waitForImages.hasImageProperties||[],u=/url\((['"]?)(.*?)\1\)/g;i.find("*").each(function(){var t=e(this);if(t.is("img:uncached")){s.push({src:t.attr("src"),element:t[0]})}e.each(o,function(e,n){var r=t.css(n);if(!r){return true}var i;while(i=u.exec(r)){s.push({src:i[2],element:t[0]})}})})}else{i.find("img:uncached").each(function(){s.push({src:this.src,element:this})})}var f=s.length,l=0;if(f==0){t.call(i[0])}e.each(s,function(r,s){var o=new Image;e(o).bind("load error",function(e){l++;n.call(s.element,l,f,e.type=="load");if(l==f){t.call(i[0]);return false}});o.src=s.src})})}; 711 e.fn.swipe=function(t){if(!this)return false;var n={fingers:1,threshold:75,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,click:null,triggerOnTouchEnd:true,allowPageScroll:"auto"};var r="left";var i="right";var s="up";var o="down";var u="none";var f="horizontal";var l="vertical";var c="auto";var h="start";var p="move";var d="end";var v="cancel";var m="ontouchstart"in window,g=m?"touchstart":"mousedown",y=m?"touchmove":"mousemove",b=m?"touchend":"mouseup",w="touchcancel";var E="start";if(t.allowPageScroll==undefined&&(t.swipe!=undefined||t.swipeStatus!=undefined))t.allowPageScroll=u;if(t)e.extend(n,t);return this.each(function(){function t(){var e=S();if(e<=45&&e>=0)return r;else if(e<=360&&e>=315)return r;else if(e>=135&&e<=225)return i;else if(e>45&&e<135)return o;else return s}function S(){var e=H.x-B.x;var t=B.y-H.y;var n=Math.atan2(t,e);var r=Math.round(n*180/Math.PI);if(r<0)r=360-Math.abs(r);return r}function x(){return Math.round(Math.sqrt(Math.pow(B.x-H.x,2)+Math.pow(B.y-H.y,2)))}function T(e,t){if(n.allowPageScroll==u){e.preventDefault()}else{var a=n.allowPageScroll==c;switch(t){case r:if(n.swipeLeft&&a||!a&&n.allowPageScroll!=f)e.preventDefault();break;case i:if(n.swipeRight&&a||!a&&n.allowPageScroll!=f)e.preventDefault();break;case s:if(n.swipeUp&&a||!a&&n.allowPageScroll!=l)e.preventDefault();break;case o:if(n.swipeDown&&a||!a&&n.allowPageScroll!=l)e.preventDefault();break}}}function N(e,t){if(n.swipeStatus)n.swipeStatus.call(_,e,t,direction||null,distance||0);if(t==v){if(n.click&&(P==1||!m)&&(isNaN(distance)||distance==0))n.click.call(_,e,e.target)}if(t==d){if(n.swipe){n.swipe.call(_,e,direction,distance)}switch(direction){case r:if(n.swipeLeft)n.swipeLeft.call(_,e,direction,distance);break;case i:if(n.swipeRight)n.swipeRight.call(_,e,direction,distance);break;case s:if(n.swipeUp)n.swipeUp.call(_,e,direction,distance);break;case o:if(n.swipeDown)n.swipeDown.call(_,e,direction,distance);break}}}function C(e){P=0;H.x=0;H.y=0;B.x=0;B.y=0;F.x=0;F.y=0}function L(e){e.preventDefault();distance=x();direction=t();if(n.triggerOnTouchEnd){E=d;if((P==n.fingers||!m)&&B.x!=0){if(distance>=n.threshold){N(e,E);C(e)}else{E=v;N(e,E);C(e)}}else{E=v;N(e,E);C(e)}}else if(E==p){E=v;N(e,E);C(e)}M.removeEventListener(y,A,false);M.removeEventListener(b,L,false)}function A(e){if(E==d||E==v)return;var r=m?e.touches[0]:e;B.x=r.pageX;B.y=r.pageY;direction=t();if(m){P=e.touches.length}E=p;T(e,direction);if(P==n.fingers||!m){distance=x();if(n.swipeStatus)N(e,E,direction,distance);if(!n.triggerOnTouchEnd){if(distance>=n.threshold){E=d;N(e,E);C(e)}}}else{E=v;N(e,E);C(e)}}function O(e){var t=m?e.touches[0]:e;E=h;if(m){P=e.touches.length}distance=0;direction=null;if(P==n.fingers||!m){H.x=B.x=t.pageX;H.y=B.y=t.pageY;if(n.swipeStatus)N(e,E)}else{C(e)}M.addEventListener(y,A,false);M.addEventListener(b,L,false)}var M=this;var _=e(this);var D=null;var P=0;var H={x:0,y:0};var B={x:0,y:0};var F={x:0,y:0};try{this.addEventListener(g,O,false);this.addEventListener(w,C)}catch(I){}})} 712 })(jQuery) 713 714// SOME ERROR MESSAGES IN CASE THE PLUGIN CAN NOT BE LOADED 715function revslider_showDoubleJqueryError(sliderID) { 716 var errorMessage = "Error: You have some jquery.js library include that c
716omes after the revolution files js include."; 717 errorMessage += "<br> This includes make eliminates the revolution slider libraries, and make it not work."; 718 errorMessage += "<br><br> To fix it you can:<br> 1. In the Slider Settings -> Troubleshooting set option: <strong><b>Put JS Includes To Body</b></strong> option to true."; 719 errorMessage += "<br> 2. Find the double jquery.js include and remove it."; 720 errorMessage = "<span style='font-size:16px;color:#BC0C06;'>" + errorMessage + "</span>" 721 jQuery(sliderID).show().html(errorMessage); 722}
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.