PageSourceSearch

https://udnfunlife.com/lib/lib/velocity.ui.js

js udnfunlife.com collected 2026-10-03 19:06:45 UTC 28,313 bytes, 804 lines download raw bytes

vendor: 28,313 bytes, lines 1-804
1/**********************
2 Velocity UI Pack
3 **********************/
4
5/* VelocityJS.org UI Pack (5.2.0). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License. Portions copyright Daniel Eden, Christian Pucci. */
6
7(function(factory) {
8	"use strict";
9	/* CommonJS module. */
10	if (typeof require === "function" && typeof exports === "object") {
11		module.exports = factory();
12		/* AMD module. */
13	} else if (typeof define === "function" && define.amd) {
14		define(["velocity"], factory);
15		/* Browser globals. */
16	} else {
17		factory();
18	}
19}(function() {
20	"use strict";
21	return function(global, window, document, undefined) {
22
23		/*************
24		 Checks
25		 *************/
26		var Velocity = global.Velocity;
27
28		if (!Velocity || !Velocity.Utilities) {
29			if (window.console) {
30				console.log("Velocity UI Pack: Velocity must be loaded first. Aborting.");
31			}
32			return;
33		}
34		var $ = Velocity.Utilities;
35
36		var velocityVersion = Velocity.version,
37				requiredVersion = {major: 1, minor: 1, patch: 0};
38
39		function greaterSemver(primary, secondary) {
40			var versionInts = [];
41
42			if (!primary || !secondary) {
43				return false;
44			}
45
46			$.each([primary, secondary], function(i, versionObject) {
47				var versionIntsComponents = [];
48
49				$.each(versionObject, function(component, value) {
50					while (value.toString().length < 5) {
51						value = "0" + value;
52					}
53					versionIntsComponents.push(value);
54				});
55
56				versionInts.push(versionIntsComponents.join(""));
57			});
58
59			return (parseFloat(versionInts[0]) > parseFloat(versionInts[1]));
60		}
61
62		if (greaterSemver(requiredVersion, velocityVersion)) {
63			var abortError = "Velocity UI Pack: You need to update Velocity (velocity.js) to a newer version. Visit http://github.com/julianshapiro/velocity.";
64			alert(abortError);
65			throw new Error(abortError);
66		}
67
68		/************************
69		 Effect Registration
70		 ************************/
71
72		/* Note: RegisterUI is a legacy name. */
73		Velocity.RegisterEffect = Velocity.RegisterUI = function(effectName, properties) {
74			/* Animate the expansion/contraction of the elements' parent's height for In/Out effects. */
75			function animateParentHeight(elements, direction, totalDuration, stagger) {
76				var totalHeightDelta = 0,
77						parentNode;
78
79				/* Sum the total height (including padding and margin) of all targeted elements. */
80				$.each(elements.nodeType ? [elements] : elements, function(i, element) {
81					if (stagger) {
82						/* Increase the totalDuration by the successive delay amounts produced by the stagger option. */
83						totalDuration += i * stagger;
84					}
85
86					parentNode = element.parentNode;
87
88					var propertiesToSum = ["height", "paddingTop", "paddingBottom", "marginTop", "marginBottom"];
89
90					/* If box-sizing is border-box, the height already includes padding and margin */
91					if (Velocity.CSS.getPropertyValue(element, "boxSizing").toString().toLowerCase() === "border-box") {
92						propertiesToSum = ["height"];
93					}
94
95					$.each(propertiesToSum, function(i, property) {
96						totalHeightDelta += parseFloat(Velocity.CSS.getPropertyValue(element, property));
97					});
98				});
99
100				/* Animate the parent element's height adjustment (with a varying duration multiplier for aesthetic benefits). */
101				Velocity.animate(
102						parentNode,
103						{height: (direction === "In" ? "+" : "-") + "=" + totalHeightDelta},
104						{queue: false, easing: "ease-in-out", duration: totalDuration * (direction === "In" ? 0.6 : 1)}
105				);
106			}
107
108			/* Register a custom redirect for each effect. */
109			Velocity.Redirects[effectName] = function(element, redirectOptions, elementsIndex, elementsSize, elements, promiseData, loop) {
110				var finalElement = (elementsIndex === elementsSize - 1),
111						totalDuration = 0;
112
113				loop = loop || properties.loop;
114				if (typeof properties.defaultDuration === "function") {
115					properties.defaultDuration = properties.defaultDuration.call(elements, elements);
116				} else {
117					properties.defaultDuration = parseFloat(properties.defaultDuration);
118				}
119
120				/* Get the total duration used, so we can share it out with everything that doesn't have a duration */
121				for (var callIndex = 0; callIndex < properties.calls.length; callIndex++) {
122					durationPercentage = properties.calls[callIndex][1];
123					if (typeof durationPercentage === "number") {
124						totalDuration += durationPercentage;
125					}
126				}
127				var shareDuration = totalDuration >= 1 ? 0 : properties.calls.length ? (1 - totalDuration) / properties.calls.length : 1;
128
129				/* Iterate through each effect's call array. */
130				for (callIndex = 0; callIndex < properties.calls.length; callIndex++) {
131					var call = properties.calls[callIndex],
132							propertyMap = call[0],
133							redirectDuration = 1000,
134							durationPercentage = call[1],
135							callOptions = call[2] || {},
136							opts = {};
137
138					if (redirectOptions.duration !== undefined) {
139						redirectDuration = redirectOptions.duration;
140					} else if (properties.defaultDuration !== undefined) {
141						redirectDuration = properties.defaultDuration;
142					}
143
144					/* Assign the whitelisted per-call options. */
145					opts.duration = redirectDuration * (typeof durationPercentage === "number" ? durationPercentage : shareDuration);
146					opts.queue = redirectOptions.queue || "";
147					opts.easing = callOptions.easing || "ease";
148					opts.delay = parseFloat(callOptions.delay) || 0;
149					opts.loop = !properties.loop && callOptions.loop;
150					opts._cacheValues = callOptions._cacheValues || true;
151
152					/* Special processing for the first effect call. */
153					if (callIndex === 0) {
154						/* If a delay was passed into the redirect, combine it with the first call's delay. */
155						opts.delay += (parseFloat(redirectOptions.delay) || 0);
156
157						if (elementsIndex === 0) {
158							opts.begin = function() {
159								/* Only trigger a begin callback on the first effect call with the first element in the set. */
160								if (redirectOptions.begin) {
161									redirectOptions.begin.call(elements, elements);
162								}
163
164								var direction = effectName.match(/(In|Out)$/);
165
166								/* Make "in" transitioning elements invisible immediately so that there's no FOUC between now
167								 and the first RAF tick. */
168								if ((direction && direction[0] === "In") && propertyMap.opacity !== undefined) {
169									$.each(elements.nodeType ? [elements] : elements, function(i, element) {
170										Velocity.CSS.setPropertyValue(element, "opacity", 0);
171									});
172								}
173
174								/* Only trigger animateParentHeight() if we're using an In/Out transition. */
175								if (redirectOptions.animateParentHeight && direction) {
176									animateParentHeight(elements, direction[0], redirectDuration + opts.delay, redirectOptions.stagger);
177								}
178							};
179						}
180
181						/* If the user isn't overriding the display option, default to "auto" for "In"-suffixed transitions. */
182						if (redirectOptions.display !== null) {
183							if (redirectOptions.display !== undefined && redirectOptions.display !== "none") {
184								opts.display = redirectOptions.display;
185							} else if (/In$/.test(effectName)) {
186								/* Inline elements cannot be subjected to transforms, so we switch them to inline-block. */
187								var defaultDisplay = Velocity.CSS.Values.getDisplayType(element);
188								opts.display = (defaultDisplay === "inline") ? "inline-block" : defaultDisplay;
189							}
190						}
191
192						if (redirectOptions.visibility && redirectOptions.visibility !== "hidden") {
193							opts.visibility = redirectOptions.visibility;
194						}
195					}
196
197					/* Special processing for the last effect call. */
198					if (callIndex === properties.calls.length - 1) {
199						/* Append promise resolving onto the user's redirect callback. */
200						var injectFinalCallbacks = function() {
201							if ((redirectOptions.display === undefined || redirectOptions.display === "none") && /Out$/.test(effectName)) {
202								$.each(elements.nodeType ? [elements] : elements, function(i, element) {
203									Velocity.CSS.setPropertyValue(element, "display", "none");
204								});
205							}
206							if (redirectOptions.complete) {
207								redirectOptions.complete.call(elements, elements);
208							}
209							if (promiseData) {
210								promiseData.resolver(elements || element);
211							}
212						};
213
214						opts.complete = function() {
215							if (loop) {
216								Velocity.Redirects[effectName](element, redirectOptions, elementsIndex, elementsSize, elements, promiseData, loop === true ? true : Math.max(0, loop - 1));
217							}
218							if (properties.reset) {
219								for (var resetProperty in properties.reset) {
220									if (!properties.reset.hasOwnProperty(resetProperty)) {
221										continue;
222									}
223									var resetValue = properties.reset[resetProperty];
224
225									/* Format each non-array value in the reset property map to [ value, value ] so that changes apply
226									 immediately and DOM querying is avoided (via forcefeeding). */
227									/* Note: Don't forcefeed hooks, otherwise their hook roots will be defaulted to their null values. */
228									if (Velocity.CSS.Hooks.registered[resetProperty] === undefined && (typeof resetValue === "string" || typeof resetValue === "number")) {
229										properties.reset[resetProperty] = [properties.reset[resetProperty], properties.reset[resetProperty]];
230									}
231								}
232
233								/* So that the reset values are applied instantly upon the next rAF tick, use a zero duration and parallel queueing. */
234								var resetOptions = {duration: 0, queue: false};
235
236								/* Since the reset option uses up the complete callback, we trigger the user's complete callback at the end of ours. */
237								if (finalElement) {
238									resetOptions.complete = injectFinalCallbacks;
239								}
240
241								Velocity.animate(element, properties.reset, resetOptions);
242								/* Only trigger the user's complete callback on the last effect call with the last element in the set. */
243							} else if (finalElement) {
244								injectFinalCallbacks();
245							}
246						};
247
248						if (redirectOptions.visibility === "hidden") {
249							opts.visibility = redirectOptions.visibility;
250						}
251					}
252
253					Velocity.animate(element, propertyMap, opts);
254				}
255			};
256
257			/* Return the Velocity object so that RegisterUI calls can be chained. */
258			return Velocity;
259		};
260
261		/*********************
262		 Packaged Effects
263		 *********************/
264
265		/* Externalize the packagedEffects data so that they can optionally be modified and re-registered. */
266		/* Support: <=IE8: Callouts will have no effect, and transitions will simply fade in/out. IE9/Android 2.3: Most effects are fully supported, the rest fade in/out. All other browsers: full support. */
267		Velocity.RegisterEffect.packagedEffects =
268				{
269					/* Animate.css */
270					"callout.bounce": {
271						defaultDuration: 550,
272						calls: [
273							[{translateY: -30}, 0.25],
274							[{translateY: 0}, 0.125],
275							[{translateY: -15}, 0.125],
276							[{translateY: 0}, 0.25]
277						]
278					},
279					/* Animate.css */
280					"callout.shake": {
281						defaultDuration: 800,
282						calls: [
283							[{translateX: -11}],
284							[{translateX: 11}],
285							[{translateX: -11}],
286							[{translateX: 11}],
287							[{translateX: -11}],
288							[{translateX: 11}],
289							[{translateX: -11}],
290							[{translateX: 0}]
291						]
292					},
293					/* Animate.css */
294					"callout.flash": {
295						defaultDuration: 1100,
296						calls: [
297							[{opacity: [0, "easeInOutQuad", 1]}],
298							[{opacity: [1, "easeInOutQuad"]}],
299							[{opacity: [0, "easeInOutQuad"]}],
300							[{opacity: [1, "easeInOutQuad"]}]
301						]
302					},
303					/* Animate.css */
304					"callout.pulse": {
305						defaultDuration: 825,
306						calls: [
307							[{scaleX: 1.1, scaleY: 1.1}, 0.50, {easing: "easeInExpo"}],
308							[{scaleX: 1, scaleY: 1}, 0.50]
309						]
310					},
311					/* Animate.css */
312					"callout.swing": {
313						defaultDuration: 950,
314						calls: [
315							[{rotateZ: 15}],
316							[{rotateZ: -10}],
317							[{rotateZ: 5}],
318							[{rotateZ: -5}],
319							[{rotateZ: 0}]
320						]
321					},
322					/* Animate.css */
323					"callout.tada": {
324						defaultDuration: 1000,
325						calls: [
326							[{scaleX: 0.9, scaleY: 0.9, rotateZ: -3}, 0.10],
327							[{scaleX: 1.1, scaleY: 1.1, rotateZ: 3}, 0.10],
328							[{scaleX: 1.1, scaleY: 1.1, rotateZ: -3}, 0.10],
329							["reverse", 0.125],
330							["reverse", 0.125],
331							["reverse", 0.125],
332							["reverse", 0.125],
333							["reverse", 0.125],
334							[{scaleX: 1, scaleY: 1, rotateZ: 0}, 0.20]
335						]
336					},
337					"transition.fadeIn": {
338						defaultDuration: 500,
339						calls: [
340							[{opacity: [1, 0]}]
341						]
342					},
343					"transition.fadeOut": {
344						defaultDuration: 500,
345						calls: [
346							[{opacity: [0, 1]}]
347						]
348					},
349					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
350					"transition.flipXIn": {
351						defaultDuration: 700,
352						calls: [
353							[{opacity: [1, 0], transformPerspective: [800, 800], rotateY: [0, -55]}]
354						],
355						reset: {transformPerspective: 0}
356					},
357					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
358					"transition.flipXOut": {
359						defaultDuration: 700,
360						calls: [
361							[{opacity: [0, 1], transformPerspective: [800, 800], rotateY: 55}]
362						],
363						reset: {transformPerspective: 0, rotateY: 0}
364					},
365					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
366					"transition.flipYIn": {
367						defaultDuration: 800,
368						calls: [
369							[{opacity: [1, 0], transformPerspective: [800, 800], rotateX: [0, -45]}]
370						],
371						reset: {transformPerspective: 0}
372					},
373					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
374					"transition.flipYOut": {
375						defaultDuration: 800,
376						calls: [
377							[{opacity: [0, 1], transformPerspective: [800, 800], rotateX: 25}]
378						],
379						reset: {transformPerspective: 0, rotateX: 0}
380					},
381					/* Animate.css */
382					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
383					"transition.flipBounceXIn": {
384						defaultDuration: 900,
385						calls: [
386							[{opacity: [0.725, 0], transformPerspective: [400, 400], rotateY: [-10, 90]}, 0.50],
387							[{opacity: 0.80, rotateY: 10}, 0.25],
388							[{opacity: 1, rotateY: 0}, 0.25]
389						],
390						reset: {transformPerspective: 0}
391					},
392					/* Animate.css */
393					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
394					"transition.flipBounceXOut": {
395						defaultDuration: 800,
396						calls: [
397							[{opacity: [0.9, 1], transformPerspective: [400, 400], rotateY: -10}],
398							[{opacity: 0, rotateY: 90}]
399						],
400						reset: {transformPerspective: 0, rotateY: 0}
401					},
402					/* Animate.css */
403					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
404					"transition.flipBounceYIn": {
405						defaultDuration: 850,
406						calls: [
407							[{opacity: [0.725, 0], transformPerspective: [400, 400], rotateX: [-10, 90]}, 0.50],
408							[{opacity: 0.80, rotateX: 10}, 0.25],
409							[{opacity: 1, rotateX: 0}, 0.25]
410						],
411						reset: {transformPerspective: 0}
412					},
413					/* Animate.css */
414					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
415					"transition.flipBounceYOut": {
416						defaultDuration: 800,
417						calls: [
418							[{opacity: [0.9, 1], transformPerspective: [400, 400], rotateX: -15}],
419							[{opacity: 0, rotateX: 90}]
420						],
421						reset: {transformPerspective: 0, rotateX: 0}
422					},
423					/* Magic.css */
424					"transition.swoopIn": {
425						defaultDuration: 850,
426						calls: [
427							[{opacity: [1, 0], transformOriginX: ["100%", "50%"], transformOriginY: ["100%", "100%"], scaleX: [1, 0], scaleY: [1, 0], translateX: [0, -700], translateZ: 0}]
428						],
429						reset: {transformOriginX: "50%", transformOriginY: "50%"}
430					},
431					/* Magic.css */
432					"transition.swoopOut": {
433						defaultDuration: 850,
434						calls: [
435							[{opacity: [0, 1], transformOriginX: ["50%", "100%"], transformOriginY: ["100%", "100%"], scaleX: 0, scaleY: 0, translateX: -700, translateZ: 0}]
436						],
437						reset: {transformOriginX: "50%", transformOriginY: "50%", scaleX: 1, scaleY: 1, translateX: 0}
438					},
439					/* Magic.css */
440					/* Support: Loses rotation in IE9/Android 2.3. (Fades and scales only.) */
441					"transition.whirlIn": {
442						defaultDuration: 850,
443						calls: [
444							[{opacity: [1, 0], transformOriginX: ["50%", "50%"], transformOriginY: ["50%", "50%"], scaleX: [1, 0], scaleY: [1, 0], rotateY: [0, 160]}, 1, {easing: "easeInOutSine"}]
445						]
446					},
447					/* Magic.css */
448					/* Support: Loses rotation in IE9/Android 2.3. (Fades and scales only.) */
449					"transition.whirlOut": {
450						defaultDuration: 750,
451						calls: [
452							[{opacity: [0, "easeInOutQuint", 1], transformOriginX: ["50%", "50%"], transformOriginY: ["50%", "50%"], scaleX: 0, scaleY: 0, rotateY: 160}, 1, {easing: "swing"}]
453						],
454						reset: {scaleX: 1, scaleY: 1, rotateY: 0}
455					},
456					"transition.shrinkIn": {
457						defaultDuration: 750,
458						calls: [
459							[{opacity: [1, 0], transformOriginX: ["50%", "50%"], transformOriginY: ["50%", "50%"], scaleX: [1, 1.5], scaleY: [1, 1.5], translateZ: 0}]
460						]
461					},
462					"transition.shrinkOut": {
463						defaultDuration: 600,
464						calls: [
465							[{opacity: [0, 1], transformOriginX: ["50%", "50%"], transformOriginY: ["50%", "50%"], scaleX: 1.3, scaleY: 1.3, translateZ: 0}]
466						],
467						reset: {scaleX: 1, scaleY: 1}
468					},
469					"transition.expandIn": {
470						defaultDuration: 700,
471						calls: [
472							[{opacity: [1, 0], transformOriginX: ["50%", "50%"], transformOriginY: ["50%", "50%"], scaleX: [1, 0.625], scaleY: [1, 0.625], translateZ: 0}]
473						]
474					},
475					"transition.expandOut": {
476						defaultDuration: 700,
477						calls: [
478							[{opacity: [0, 1], transformOriginX: ["50%", "50%"], transformOriginY: ["50%", "50%"], scaleX: 0.5, scaleY: 0.5, translateZ: 0}]
479						],
480						reset: {scaleX: 1, scaleY: 1}
481					},
482					/* Animate.css */
483					"transition.bounceIn": {
484						defaultDuration: 800,
485						calls: [
486							[{opacity: [1, 0], scaleX: [1.05, 0.3], scaleY: [1.05, 0.3]}, 0.35],
487							[{scaleX: 0.9, scaleY: 0.9, translateZ: 0}, 0.20],
488							[{scaleX: 1, scaleY: 1}, 0.45]
489						]
490					},
491					/* Animate.css */
492					"transition.bounceOut": {
493						defaultDuration: 800,
494						calls: [
495							[{scaleX: 0.95, scaleY: 0.95}, 0.35],
496							[{scaleX: 1.1, scaleY: 1.1, translateZ: 0}, 0.35],
497							[{opacity: [0, 1], scaleX: 0.3, scaleY: 0.3}, 0.30]
498						],
499						reset: {scaleX: 1, scaleY: 1}
500					},
501					/* Animate.css */
502					"transition.bounceUpIn": {
503						defaultDuration: 800,
504						calls: [
505							[{opacity: [1, 0], translateY: [-30, 1000]}, 0.60, {easing: "easeOutCirc"}],
506							[{translateY: 10}, 0.20],
507							[{translateY: 0}, 0.20]
508						]
509					},
510					/* Animate.css */
511					"transition.bounceUpOut": {
512						defaultDuration: 1000,
513						calls: [
514							[{translateY: 20}, 0.20],
515							[{opacity: [0, "easeInCirc", 1], translateY: -1000}, 0.80]
516						],
517						reset: {translateY: 0}
518					},
519					/* Animate.css */
520					"transition.bounceDownIn": {
521						defaultDuration: 800,
522						calls: [
523							[{opacity: [1, 0], translateY: [30, -1000]}, 0.60, {easing: "easeOutCirc"}],
524							[{translateY: -10}, 0.20],
525							[{translateY: 0}, 0.20]
526						]
527					},
528					/* Animate.css */
529					"transition.bounceDownOut": {
530						defaultDuration: 1000,
531						calls: [
532							[{translateY: -20}, 0.20],
533							[{opacity: [0, "easeInCirc", 1], translateY: 1000}, 0.80]
534						],
535						reset: {translateY: 0}
536					},
537					/* Animate.css */
538					"transition.bounceLeftIn": {
539						defaultDuration: 750,
540						calls: [
541							[{opacity: [1, 0], translateX: [30, -1250]}, 0.60, {easing: "easeOutCirc"}],
542							[{translateX: -10}, 0.20],
543							[{translateX: 0}, 0.20]
544						]
545					},
546					/* Animate.css */
547					"transition.bounceLeftOut": {
548						defaultDuration: 750,
549						calls: [
550							[{translateX: 30}, 0.20],
551							[{opacity: [0, "easeInCirc", 1], translateX: -1250}, 0.80]
552						],
553						reset: {translateX: 0}
554					},
555					/* Animate.css */
556					"transition.bounceRightIn": {
557						defaultDuration: 750,
558						calls: [
559							[{opacity: [1, 0], translateX: [-30, 1250]}, 0.60, {easing: "easeOutCirc"}],
560							[{translateX: 10}, 0.20],
561							[{translateX: 0}, 0.20]
562						]
563					},
564					/* Animate.css */
565					"transition.bounceRightOut": {
566						defaultDuration: 750,
567						calls: [
568							[{translateX: -30}, 0.20],
569							[{opacity: [0, "easeInCirc", 1], translateX: 1250}, 0.80]
570						],
571						reset: {translateX: 0}
572					},
573					"transition.slideUpIn": {
574						defaultDuration: 900,
575						calls: [
576							[{opacity: [1, 0], translateY: [0, 20], translateZ: 0}]
577						]
578					},
579					"transition.slideUpOut": {
580						defaultDuration: 900,
581						calls: [
582							[{opacity: [0, 1], translateY: -20, translateZ: 0}]
583						],
584						reset: {translateY: 0}
585					},
586					"transition.slideDownIn": {
587						defaultDuration: 900,
588						calls: [
589							[{opacity: [1, 0], translateY: [0, -20], translateZ: 0}]
590						]
591					},
592					"transition.slideDownOut": {
593						defaultDuration: 900,
594						calls: [
595							[{opacity: [0, 1], translateY: 20, translateZ: 0}]
596						],
597						reset: {translateY: 0}
598					},
599					"transition.slideLeftIn": {
600						defaultDuration: 1000,
601						calls: [
602							[{opacity: [1, 0], translateX: [0, -20], translateZ: 0}]
603						]
604					},
605					"transition.slideLeftOut": {
606						defaultDuration: 1050,
607						calls: [
608							[{opacity: [0, 1], translateX: -20, translateZ: 0}]
609						],
610						reset: {translateX: 0}
611					},
612					"transition.slideRightIn": {
613						defaultDuration: 1000,
614						calls: [
615							[{opacity: [1, 0], translateX: [0, 20], translateZ: 0}]
616						]
617					},
618					"transition.slideRightOut": {
619						defaultDuration: 1050,
620						calls: [
621							[{opacity: [0, 1], translateX: 20, translateZ: 0}]
622						],
623						reset: {translateX: 0}
624					},
625					"transition.slideUpBigIn": {
626						defaultDuration: 850,
627						calls: [
628							[{opacity: [1, 0], translateY: [0, 75], translateZ: 0}]
629						]
630					},
631					"transition.slideUpBigOut": {
632						defaultDuration: 800,
633						calls: [
634							[{opacity: [0, 1], translateY: -75, translateZ: 0}]
635						],
636						reset: {translateY: 0}
637					},
638					"transition.slideDownBigIn": {
639						defaultDuration: 850,
640						calls: [
641							[{opacity: [1, 0], translateY: [0, -75], translateZ: 0}]
642						]
643					},
644					"transition.slideDownBigOut": {
645						defaultDuration: 800,
646						calls: [
647							[{opacity: [0, 1], translateY: 75, translateZ: 0}]
648						],
649						reset: {translateY: 0}
650					},
651					"transition.slideLeftBigIn": {
652						defaultDuration: 800,
653						calls: [
654							[{opacity: [1, 0], translateX: [0, -75], translateZ: 0}]
655						]
656					},
657					"transition.slideLeftBigOut": {
658						defaultDuration: 750,
659						calls: [
660							[{opacity: [0, 1], translateX: -75, translateZ: 0}]
661						],
662						reset: {translateX: 0}
663					},
664					"transition.slideRightBigIn": {
665						defaultDuration: 800,
666						calls: [
667							[{opacity: [1, 0], translateX: [0, 75], translateZ: 0}]
668						]
669					},
670					"transition.slideRightBigOut": {
671						defaultDuration: 750,
672						calls: [
673							[{opacity: [0, 1], translateX: 75, translateZ: 0}]
674						],
675						reset: {translateX: 0}
676					},
677					/* Magic.css */
678					"transition.perspectiveUpIn": {
679						defaultDuration: 800,
680						calls: [
681							[{opacity: [1, 0], transformPerspective: [800, 800], transformOriginX: [0, 0], transformOriginY: ["100%", "100%"], rotateX: [0, -180]}]
682						],
683						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%"}
684					},
685					/* Magic.css */
686					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
687					"transition.perspectiveUpOut": {
688						defaultDuration: 850,
689						calls: [
690							[{opacity: [0, 1], transformPerspective: [800, 800], transformOriginX: [0, 0], transformOriginY: ["100%", "100%"], rotateX: -180}]
691						],
692						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%", rotateX: 0}
693					},
694					/* Magic.css */
695					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
696					"transition.perspectiveDownIn": {
697						defaultDuration: 800,
698						calls: [
699							[{opacity: [1, 0], transformPerspective: [800, 800], transformOriginX: [0, 0], transformOriginY: [0, 0], rotateX: [0, 180]}]
700						],
701						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%"}
702					},
703					/* Magic.css */
704					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
705					"transition.perspectiveDownOut": {
706						defaultDuration: 850,
707						calls: [
708							[{opacity: [0, 1], transformPerspective: [800, 800], transformOriginX: [0, 0], transformOriginY: [0, 0], rotateX: 180}]
709						],
710						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%", rotateX: 0}
711					},
712					/* Magic.css */
713					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
714					"transition.perspectiveLeftIn": {
715						defaultDuration: 950,
716						calls: [
717							[{opacity: [1, 0], transformPerspective: [2000, 2000], transformOriginX: [0, 0], transformOriginY: [0, 0], rotateY: [0, -180]}]
718						],
719						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%"}
720					},
721					/* Magic.css */
722					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
723					"transition.perspectiveLeftOut": {
724						defaultDuration: 950,
725						calls: [
726							[{opacity: [0, 1], transformPerspective: [2000, 2000], transformOriginX: [0, 0], transformOriginY: [0, 0], rotateY: -180}]
727						],
728						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%", rotateY: 0}
729					},
730					/* Magic.css */
731					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
732					"transition.perspectiveRightIn": {
733						defaultDuration: 950,
734						calls: [
735							[{opacity: [1, 0], transformPerspective: [2000, 2000], transformOriginX: ["100%", "100%"], transformOriginY: [0, 0], rotateY: [0, 180]}]
736						],
737						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%"}
738					},
739					/* Magic.css */
740					/* Support: Loses rotation in IE9/Android 2.3 (fades only). */
741					"transition.perspectiveRightOut": {
742						defaultDuration: 950,
743						calls: [
744							[{opacity: [0, 1], transformPerspective: [2000, 2000], transformOriginX: ["100%", "100%"], transformOriginY: [0, 0], rotateY: 180}]
745						],
746						reset: {transformPerspective: 0, transformOriginX: "50%", transformOriginY: "50%", rotateY: 0}
747					}
748				};
749
750		/* Register the packaged effects. */
751		for (var effectName in Velocity.RegisterEffect.packagedEffects) {
752			if (Velocity.RegisterEffect.packagedEffects.hasOwnProperty(effectName)) {
753				Velocity.RegisterEffect(effectName, Velocity.RegisterEffect.packagedEffects[effectName]);
754			}
755		}
756
757		/*********************
758		 Sequence Running
759		 **********************/
760
761		/* Note: Sequence calls must use Velocity's single-object arguments syntax. */
762		Velocity.RunSequence = function(originalSequence) {
763			var sequence = $.extend(true, [], originalSequence);
764
765			if (sequence.length > 1) {
766				$.each(sequence.reverse(), function(i, currentCall) {
767					var nextCall = sequence[i + 1];
768
769					if (nextCall) {
770						/* Parallel sequence calls (indicated via sequenceQueue:false) are triggered
771						 in the previous call's begin callback. Otherwise, chained calls are normally triggered
772						 in the previous call's complete callback. */
773						var currentCallOptions = currentCall.o || currentCall.options,
774								nextCallOptions = nextCall.o || nextCall.options;
775
776						var timing = (currentCallOptions && currentCallOptions.sequenceQueue === false) ? "begin" : "complete",
777								callbackOriginal = nextCallOptions && nextCallOptions[timing],
778								options = {};
779
780						options[timing] = function() {
781							var nextCallElements = nextCall.e || nextCall.elements;
782							var elements = nextCallElements.nodeType ? [nextCallElements] : nextCallElements;
783
784							if (callbackOriginal) {
785								callbackOriginal.call(elements, elements);
786							}
787							Velocity(currentCall);
788						};
789
790						if (nextCall.o) {
791							nextCall.o = $.extend({}, nextCallOptions, options);
792						} else {
793							nextCall.options = $.extend({}, nextCallOptions, options);
794						}
795					}
796				});
797
798				sequence.reverse();
799			}
800
801			Velocity(sequence[0]);
802		};
803	}((window.jQuery || window.Zepto || window), window, (window ? window.document : undefined));
804}));

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.