dr-jekylls-materials 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -0
  3. data/assets/css/materialize.scss +42 -0
  4. data/assets/css/site.css +10 -0
  5. data/assets/fonts/roboto/Roboto-Bold.eot +0 -0
  6. data/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
  7. data/assets/fonts/roboto/Roboto-Bold.woff +0 -0
  8. data/assets/fonts/roboto/Roboto-Bold.woff2 +0 -0
  9. data/assets/fonts/roboto/Roboto-Light.eot +0 -0
  10. data/assets/fonts/roboto/Roboto-Light.ttf +0 -0
  11. data/assets/fonts/roboto/Roboto-Light.woff +0 -0
  12. data/assets/fonts/roboto/Roboto-Light.woff2 +0 -0
  13. data/assets/fonts/roboto/Roboto-Medium.eot +0 -0
  14. data/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
  15. data/assets/fonts/roboto/Roboto-Medium.woff +0 -0
  16. data/assets/fonts/roboto/Roboto-Medium.woff2 +0 -0
  17. data/assets/fonts/roboto/Roboto-Regular.eot +0 -0
  18. data/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
  19. data/assets/fonts/roboto/Roboto-Regular.woff +0 -0
  20. data/assets/fonts/roboto/Roboto-Regular.woff2 +0 -0
  21. data/assets/fonts/roboto/Roboto-Thin.eot +0 -0
  22. data/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
  23. data/assets/fonts/roboto/Roboto-Thin.woff +0 -0
  24. data/assets/fonts/roboto/Roboto-Thin.woff2 +0 -0
  25. data/assets/js/animation.js +9 -0
  26. data/assets/js/bin/materialize.js +7778 -0
  27. data/assets/js/bin/materialize.min.js +10 -0
  28. data/assets/js/buttons.js +267 -0
  29. data/assets/js/cards.js +26 -0
  30. data/assets/js/carousel.js +454 -0
  31. data/assets/js/character_counter.js +72 -0
  32. data/assets/js/chips.js +289 -0
  33. data/assets/js/collapsible.js +160 -0
  34. data/assets/js/date_picker/picker.date.js +1430 -0
  35. data/assets/js/date_picker/picker.js +1123 -0
  36. data/assets/js/dropdown.js +265 -0
  37. data/assets/js/forms.js +682 -0
  38. data/assets/js/global.js +98 -0
  39. data/assets/js/hammer.min.js +1 -0
  40. data/assets/js/initial.js +11 -0
  41. data/assets/js/jquery.easing.1.3.js +205 -0
  42. data/assets/js/jquery.hammer.js +33 -0
  43. data/assets/js/materialbox.js +269 -0
  44. data/assets/js/materialize-readies.js +14 -0
  45. data/assets/js/materialize.js +7779 -0
  46. data/assets/js/materialize.min.js +10 -0
  47. data/assets/js/modal.js +184 -0
  48. data/assets/js/parallax.js +58 -0
  49. data/assets/js/pushpin.js +71 -0
  50. data/assets/js/scrollFire.js +48 -0
  51. data/assets/js/scrollspy.js +284 -0
  52. data/assets/js/sideNav.js +370 -0
  53. data/assets/js/slider.js +321 -0
  54. data/assets/js/tabs.js +164 -0
  55. data/assets/js/toasts.js +137 -0
  56. data/assets/js/tooltip.js +236 -0
  57. data/assets/js/transitions.js +169 -0
  58. data/assets/js/velocity.min.js +5 -0
  59. data/assets/js/waves.js +338 -0
  60. data/assets/materialize-LICENSE +21 -0
  61. data/assets/materialize-README.md +48 -0
  62. data/assets/site.css +2 -0
  63. metadata +61 -1
@@ -0,0 +1,98 @@
1
+ // Required for Meteor package, the use of window prevents export by Meteor
2
+ (function(window){
3
+ if(window.Package){
4
+ Materialize = {};
5
+ } else {
6
+ window.Materialize = {};
7
+ }
8
+ })(window);
9
+
10
+
11
+ /*
12
+ * raf.js
13
+ * https://github.com/ngryman/raf.js
14
+ *
15
+ * original requestAnimationFrame polyfill by Erik Möller
16
+ * inspired from paul_irish gist and post
17
+ *
18
+ * Copyright (c) 2013 ngryman
19
+ * Licensed under the MIT license.
20
+ */
21
+ (function(window) {
22
+ var lastTime = 0,
23
+ vendors = ['webkit', 'moz'],
24
+ requestAnimationFrame = window.requestAnimationFrame,
25
+ cancelAnimationFrame = window.cancelAnimationFrame,
26
+ i = vendors.length;
27
+
28
+ // try to un-prefix existing raf
29
+ while (--i >= 0 && !requestAnimationFrame) {
30
+ requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];
31
+ cancelAnimationFrame = window[vendors[i] + 'CancelRequestAnimationFrame'];
32
+ }
33
+
34
+ // polyfill with setTimeout fallback
35
+ // heavily inspired from @darius gist mod: https://gist.github.com/paulirish/1579671#comment-837945
36
+ if (!requestAnimationFrame || !cancelAnimationFrame) {
37
+ requestAnimationFrame = function(callback) {
38
+ var now = +Date.now(),
39
+ nextTime = Math.max(lastTime + 16, now);
40
+ return setTimeout(function() {
41
+ callback(lastTime = nextTime);
42
+ }, nextTime - now);
43
+ };
44
+
45
+ cancelAnimationFrame = clearTimeout;
46
+ }
47
+
48
+ // export to window
49
+ window.requestAnimationFrame = requestAnimationFrame;
50
+ window.cancelAnimationFrame = cancelAnimationFrame;
51
+ }(window));
52
+
53
+
54
+ // Unique ID
55
+ Materialize.guid = (function() {
56
+ function s4() {
57
+ return Math.floor((1 + Math.random()) * 0x10000)
58
+ .toString(16)
59
+ .substring(1);
60
+ }
61
+ return function() {
62
+ return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
63
+ s4() + '-' + s4() + s4() + s4();
64
+ };
65
+ })();
66
+
67
+ /**
68
+ * Escapes hash from special characters
69
+ * @param {string} hash String returned from this.hash
70
+ * @returns {string}
71
+ */
72
+ Materialize.escapeHash = function(hash) {
73
+ return hash.replace( /(:|\.|\[|\]|,|=)/g, "\\$1" );
74
+ };
75
+
76
+ Materialize.elementOrParentIsFixed = function(element) {
77
+ var $element = $(element);
78
+ var $checkElements = $element.add($element.parents());
79
+ var isFixed = false;
80
+ $checkElements.each(function(){
81
+ if ($(this).css("position") === "fixed") {
82
+ isFixed = true;
83
+ return false;
84
+ }
85
+ });
86
+ return isFixed;
87
+ };
88
+
89
+ // Velocity has conflicts when loaded with jQuery, this will check for it
90
+ // First, check if in noConflict mode
91
+ var Vel;
92
+ if (jQuery) {
93
+ Vel = jQuery.Velocity;
94
+ } else if ($) {
95
+ Vel = $.Velocity;
96
+ } else {
97
+ Vel = Velocity;
98
+ }
@@ -0,0 +1 @@
1
+ !function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function n(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function o(a,b){return n(a,b,!0)}function p(a,b,c){var e,d=b.prototype;e=a.prototype=Object.create(d),e.constructor=a,e._super=d,c&&n(e,c)}function q(a,b){return function(){return a.apply(b,arguments)}}function r(a,b){return typeof a==g?a.apply(b?b[0]||d:d,b):a}function s(a,b){return a===d?b:a}function t(a,b,c){m(x(b),function(b){a.addEventListener(b,c,!1)})}function u(a,b,c){m(x(b),function(b){a.removeEventListener(b,c,!1)})}function v(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function w(a,b){return a.indexOf(b)>-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function z(a){return Array.prototype.slice.call(a,0)}function A(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];y(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h<e.length;){if(c=e[h],f=c?c+g:b,f in a)return f;h++}return d}function D(){return C++}function E(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function ab(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){r(a.options.enable,[a])&&c.handler(b)},this.init()}function bb(a){var b,c=a.options.inputClass;return b=c?c:H?wb:I?Eb:G?Gb:rb,new b(a,cb)}function cb(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&O&&0===d-e,g=b&(Q|R)&&0===d-e;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,db(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function db(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=gb(b)),e>1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:h(a.pointers[c].clientX),clientY:h(a.pointers[c].clientY)},c++;return{timeStamp:j(),pointers:b,center:hb(b),deltaX:a.deltaX,deltaY:a.deltaY}}function hb(a){var b=a.length;if(1===b)return{x:h(a[0].clientX),y:h(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Q|R)&&delete d[g[e].identifier],e++;return h.length?[A(f.concat(h),"identifier",!0),h]:void 0}function Gb(){ab.apply(this,arguments);var a=q(this.handler,this);this.touch=new Eb(this.manager,a),this.mouse=new rb(this.manager,a)}function Pb(a,b){this.manager=a,this.set(b)}function Qb(a){if(w(a,Mb))return Mb;var b=w(a,Nb),c=w(a,Ob);return b&&c?Nb+" "+Ob:b||c?b?Nb:Ob:w(a,Lb)?Lb:Kb}function Yb(a){this.id=D(),this.manager=null,this.options=o(a||{},this.defaults),this.options.enable=s(this.options.enable,!0),this.state=Rb,this.simultaneous={},this.requireFail=[]}function Zb(a){return a&Wb?"cancel":a&Ub?"end":a&Tb?"move":a&Sb?"start":""}function $b(a){return a==W?"down":a==V?"up":a==T?"left":a==U?"right":""}function _b(a,b){var c=b.manager;return c?c.get(a):a}function ac(){Yb.apply(this,arguments)}function bc(){ac.apply(this,arguments),this.pX=null,this.pY=null}function cc(){ac.apply(this,arguments)}function dc(){Yb.apply(this,arguments),this._timer=null,this._input=null}function ec(){ac.apply(this,arguments)}function fc(){ac.apply(this,arguments)}function gc(){Yb.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function hc(a,b){return b=b||{},b.recognizers=s(b.recognizers,hc.defaults.preset),new kc(a,b)}function kc(a,b){b=b||{},this.options=o(b,hc.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=bb(this),this.touchAction=new Pb(this,this.options.touchAction),lc(this,!0),m(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function lc(a,b){var c=a.element;m(a.options.cssProps,function(a,d){c.style[B(c.style,d)]=b?a:""})}function mc(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var e=["","webkit","moz","MS","ms","o"],f=b.createElement("div"),g="function",h=Math.round,i=Math.abs,j=Date.now,C=1,F=/mobile|tablet|ip(ad|hone|od)|android/i,G="ontouchstart"in a,H=B(a,"PointerEvent")!==d,I=G&&F.test(navigator.userAgent),J="touch",K="pen",L="mouse",M="kinect",N=25,O=1,P=2,Q=4,R=8,S=1,T=2,U=4,V=8,W=16,X=T|U,Y=V|W,Z=X|Y,$=["x","y"],_=["clientX","clientY"];ab.prototype={handler:function(){},init:function(){this.evEl&&t(this.element,this.evEl,this.domHandler),this.evTarget&&t(this.target,this.evTarget,this.domHandler),this.evWin&&t(E(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&u(this.element,this.evEl,this.domHandler),this.evTarget&&u(this.target,this.evTarget,this.domHandler),this.evWin&&u(E(this.element),this.evWin,this.domHandler)}};var ob={mousedown:O,mousemove:P,mouseup:Q},pb="mousedown",qb="mousemove mouseup";p(rb,ab,{handler:function(a){var b=ob[a.type];b&O&&0===a.button&&(this.pressed=!0),b&P&&1!==a.which&&(b=Q),this.pressed&&this.allow&&(b&Q&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:L,srcEvent:a}))}});var sb={pointerdown:O,pointermove:P,pointerup:Q,pointercancel:R,pointerout:R},tb={2:J,3:K,4:L,5:M},ub="pointerdown",vb="pointermove pointerup pointercancel";a.MSPointerEvent&&(ub="MSPointerDown",vb="MSPointerMove MSPointerUp MSPointerCancel"),p(wb,ab,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=sb[d],f=tb[a.pointerType]||a.pointerType,g=f==J,h=y(b,a.pointerId,"pointerId");e&O&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(Xb|Rb)))return!1;a++}return!0},recognize:function(a){var b=n({},a);return r(this.options.enable,[this,b])?(this.state&(Vb|Wb|Xb)&&(this.state=Rb),this.state=this.process(b),this.state&(Sb|Tb|Ub|Wb)&&this.tryEmit(b),void 0):(this.reset(),this.state=Xb,void 0)},process:function(){},getTouchAction:function(){},reset:function(){}},p(ac,Yb,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(Sb|Tb),e=this.attrTest(a);return d&&(c&R||!e)?b|Wb:d||e?c&Q?b|Ub:b&Sb?b|Tb:Sb:Xb}}),p(bc,ac,{defaults:{event:"pan",threshold:10,pointers:1,direction:Z},getTouchAction:function(){var a=this.options.direction,b=[];return a&X&&b.push(Ob),a&Y&&b.push(Nb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&X?(e=0===f?S:0>f?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime<b.time;if(this.reset(),a.eventType&O&&0===this.count)return this.failTimeout();if(d&&e&&c){if(a.eventType!=Q)return this.failTimeout();var f=this.pTime?a.timeStamp-this.pTime<b.interval:!0,g=!this.pCenter||kb(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,g&&f?this.count+=1:this.count=1,this._input=a;var h=this.count%b.taps;if(0===h)return this.hasRequireFailures()?(this._timer=k(function(){this.state=Vb,this.tryEmit()},b.interval,this),Sb):Vb}return Xb},failTimeout:function(){return this._timer=k(function(){this.state=Xb},this.options.interval,this),Xb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Vb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),hc.VERSION="2.0.4",hc.defaults={domEvents:!1,touchAction:Jb,enable:!0,inputTarget:null,inputClass:null,preset:[[ec,{enable:!1}],[cc,{enable:!1},["rotate"]],[fc,{direction:X}],[bc,{direction:X},["swipe"]],[gc],[gc,{event:"doubletap",taps:2},["tap"]],[dc]],cssProps:{userSelect:"default",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ic=1,jc=2;kc.prototype={set:function(a){return n(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?jc:ic},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&Vb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===jc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(Sb|Tb|Ub)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Yb)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(l(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(l(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(y(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return m(x(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return m(x(a),function(a){b?c[a].splice(y(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&mc(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&lc(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},n(hc,{INPUT_START:O,INPUT_MOVE:P,INPUT_END:Q,INPUT_CANCEL:R,STATE_POSSIBLE:Rb,STATE_BEGAN:Sb,STATE_CHANGED:Tb,STATE_ENDED:Ub,STATE_RECOGNIZED:Vb,STATE_CANCELLED:Wb,STATE_FAILED:Xb,DIRECTION_NONE:S,DIRECTION_LEFT:T,DIRECTION_RIGHT:U,DIRECTION_UP:V,DIRECTION_DOWN:W,DIRECTION_HORIZONTAL:X,DIRECTION_VERTICAL:Y,DIRECTION_ALL:Z,Manager:kc,Input:ab,TouchAction:Pb,TouchInput:Eb,MouseInput:rb,PointerEventInput:wb,TouchMouseInput:Gb,SingleTouchInput:Ab,Recognizer:Yb,AttrRecognizer:ac,Tap:gc,Pan:bc,Swipe:fc,Pinch:cc,Rotate:ec,Press:dc,on:t,off:u,each:m,merge:o,extend:n,inherit:p,bindFn:q,prefixed:B}),typeof define==g&&define.amd?define(function(){return hc}):"undefined"!=typeof module&&module.exports?module.exports=hc:a[c]=hc}(window,document,"Hammer");
@@ -0,0 +1,11 @@
1
+ // Check for jQuery.
2
+ if (typeof(jQuery) === 'undefined') {
3
+ var jQuery;
4
+ // Check if require is a defined function.
5
+ if (typeof(require) === 'function') {
6
+ jQuery = $ = require('jquery');
7
+ // Else use the dollar sign alias.
8
+ } else {
9
+ jQuery = $;
10
+ }
11
+ }
@@ -0,0 +1,205 @@
1
+ /*
2
+ * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
3
+ *
4
+ * Uses the built in easing capabilities added In jQuery 1.1
5
+ * to offer multiple easing options
6
+ *
7
+ * TERMS OF USE - jQuery Easing
8
+ *
9
+ * Open source under the BSD License.
10
+ *
11
+ * Copyright © 2008 George McGinley Smith
12
+ * All rights reserved.
13
+ *
14
+ * Redistribution and use in source and binary forms, with or without modification,
15
+ * are permitted provided that the following conditions are met:
16
+ *
17
+ * Redistributions of source code must retain the above copyright notice, this list of
18
+ * conditions and the following disclaimer.
19
+ * Redistributions in binary form must reproduce the above copyright notice, this list
20
+ * of conditions and the following disclaimer in the documentation and/or other materials
21
+ * provided with the distribution.
22
+ *
23
+ * Neither the name of the author nor the names of contributors may be used to endorse
24
+ * or promote products derived from this software without specific prior written permission.
25
+ *
26
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
27
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
31
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
32
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
33
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
34
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
35
+ *
36
+ */
37
+
38
+ // t: current time, b: begInnIng value, c: change In value, d: duration
39
+ jQuery.easing['jswing'] = jQuery.easing['swing'];
40
+
41
+ jQuery.extend( jQuery.easing,
42
+ {
43
+ def: 'easeOutQuad',
44
+ swing: function (x, t, b, c, d) {
45
+ //alert(jQuery.easing.default);
46
+ return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
47
+ },
48
+ easeInQuad: function (x, t, b, c, d) {
49
+ return c*(t/=d)*t + b;
50
+ },
51
+ easeOutQuad: function (x, t, b, c, d) {
52
+ return -c *(t/=d)*(t-2) + b;
53
+ },
54
+ easeInOutQuad: function (x, t, b, c, d) {
55
+ if ((t/=d/2) < 1) return c/2*t*t + b;
56
+ return -c/2 * ((--t)*(t-2) - 1) + b;
57
+ },
58
+ easeInCubic: function (x, t, b, c, d) {
59
+ return c*(t/=d)*t*t + b;
60
+ },
61
+ easeOutCubic: function (x, t, b, c, d) {
62
+ return c*((t=t/d-1)*t*t + 1) + b;
63
+ },
64
+ easeInOutCubic: function (x, t, b, c, d) {
65
+ if ((t/=d/2) < 1) return c/2*t*t*t + b;
66
+ return c/2*((t-=2)*t*t + 2) + b;
67
+ },
68
+ easeInQuart: function (x, t, b, c, d) {
69
+ return c*(t/=d)*t*t*t + b;
70
+ },
71
+ easeOutQuart: function (x, t, b, c, d) {
72
+ return -c * ((t=t/d-1)*t*t*t - 1) + b;
73
+ },
74
+ easeInOutQuart: function (x, t, b, c, d) {
75
+ if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
76
+ return -c/2 * ((t-=2)*t*t*t - 2) + b;
77
+ },
78
+ easeInQuint: function (x, t, b, c, d) {
79
+ return c*(t/=d)*t*t*t*t + b;
80
+ },
81
+ easeOutQuint: function (x, t, b, c, d) {
82
+ return c*((t=t/d-1)*t*t*t*t + 1) + b;
83
+ },
84
+ easeInOutQuint: function (x, t, b, c, d) {
85
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
86
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
87
+ },
88
+ easeInSine: function (x, t, b, c, d) {
89
+ return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
90
+ },
91
+ easeOutSine: function (x, t, b, c, d) {
92
+ return c * Math.sin(t/d * (Math.PI/2)) + b;
93
+ },
94
+ easeInOutSine: function (x, t, b, c, d) {
95
+ return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
96
+ },
97
+ easeInExpo: function (x, t, b, c, d) {
98
+ return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
99
+ },
100
+ easeOutExpo: function (x, t, b, c, d) {
101
+ return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
102
+ },
103
+ easeInOutExpo: function (x, t, b, c, d) {
104
+ if (t==0) return b;
105
+ if (t==d) return b+c;
106
+ if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
107
+ return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
108
+ },
109
+ easeInCirc: function (x, t, b, c, d) {
110
+ return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
111
+ },
112
+ easeOutCirc: function (x, t, b, c, d) {
113
+ return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
114
+ },
115
+ easeInOutCirc: function (x, t, b, c, d) {
116
+ if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
117
+ return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
118
+ },
119
+ easeInElastic: function (x, t, b, c, d) {
120
+ var s=1.70158;var p=0;var a=c;
121
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
122
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
123
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
124
+ return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
125
+ },
126
+ easeOutElastic: function (x, t, b, c, d) {
127
+ var s=1.70158;var p=0;var a=c;
128
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
129
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
130
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
131
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
132
+ },
133
+ easeInOutElastic: function (x, t, b, c, d) {
134
+ var s=1.70158;var p=0;var a=c;
135
+ if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
136
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
137
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
138
+ if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
139
+ return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
140
+ },
141
+ easeInBack: function (x, t, b, c, d, s) {
142
+ if (s == undefined) s = 1.70158;
143
+ return c*(t/=d)*t*((s+1)*t - s) + b;
144
+ },
145
+ easeOutBack: function (x, t, b, c, d, s) {
146
+ if (s == undefined) s = 1.70158;
147
+ return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
148
+ },
149
+ easeInOutBack: function (x, t, b, c, d, s) {
150
+ if (s == undefined) s = 1.70158;
151
+ if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
152
+ return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
153
+ },
154
+ easeInBounce: function (x, t, b, c, d) {
155
+ return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
156
+ },
157
+ easeOutBounce: function (x, t, b, c, d) {
158
+ if ((t/=d) < (1/2.75)) {
159
+ return c*(7.5625*t*t) + b;
160
+ } else if (t < (2/2.75)) {
161
+ return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
162
+ } else if (t < (2.5/2.75)) {
163
+ return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
164
+ } else {
165
+ return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
166
+ }
167
+ },
168
+ easeInOutBounce: function (x, t, b, c, d) {
169
+ if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
170
+ return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
171
+ }
172
+ });
173
+
174
+ /*
175
+ *
176
+ * TERMS OF USE - EASING EQUATIONS
177
+ *
178
+ * Open source under the BSD License.
179
+ *
180
+ * Copyright © 2001 Robert Penner
181
+ * All rights reserved.
182
+ *
183
+ * Redistribution and use in source and binary forms, with or without modification,
184
+ * are permitted provided that the following conditions are met:
185
+ *
186
+ * Redistributions of source code must retain the above copyright notice, this list of
187
+ * conditions and the following disclaimer.
188
+ * Redistributions in binary form must reproduce the above copyright notice, this list
189
+ * of conditions and the following disclaimer in the documentation and/or other materials
190
+ * provided with the distribution.
191
+ *
192
+ * Neither the name of the author nor the names of contributors may be used to endorse
193
+ * or promote products derived from this software without specific prior written permission.
194
+ *
195
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
196
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
197
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
198
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
199
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
200
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
201
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
202
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
203
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
204
+ *
205
+ */
@@ -0,0 +1,33 @@
1
+ (function(factory) {
2
+ if (typeof define === 'function' && define.amd) {
3
+ define(['jquery', 'hammerjs'], factory);
4
+ } else if (typeof exports === 'object') {
5
+ factory(require('jquery'), require('hammerjs'));
6
+ } else {
7
+ factory(jQuery, Hammer);
8
+ }
9
+ }(function($, Hammer) {
10
+ function hammerify(el, options) {
11
+ var $el = $(el);
12
+ if(!$el.data("hammer")) {
13
+ $el.data("hammer", new Hammer($el[0], options));
14
+ }
15
+ }
16
+
17
+ $.fn.hammer = function(options) {
18
+ return this.each(function() {
19
+ hammerify(this, options);
20
+ });
21
+ };
22
+
23
+ // extend the emit method to also trigger jQuery events
24
+ Hammer.Manager.prototype.emit = (function(originalEmit) {
25
+ return function(type, data) {
26
+ originalEmit.call(this, type, data);
27
+ $(this.element).trigger({
28
+ type: type,
29
+ gesture: data
30
+ });
31
+ };
32
+ })(Hammer.Manager.prototype.emit);
33
+ }));
@@ -0,0 +1,269 @@
1
+ (function ($) {
2
+
3
+ $.fn.materialbox = function () {
4
+
5
+ return this.each(function() {
6
+
7
+ if ($(this).hasClass('initialized')) {
8
+ return;
9
+ }
10
+
11
+ $(this).addClass('initialized');
12
+
13
+ var overlayActive = false;
14
+ var doneAnimating = true;
15
+ var inDuration = 275;
16
+ var outDuration = 200;
17
+ var origin = $(this);
18
+ var placeholder = $('<div></div>').addClass('material-placeholder');
19
+ var originalWidth = 0;
20
+ var originalHeight = 0;
21
+ var ancestorsChanged;
22
+ var ancestor;
23
+ origin.wrap(placeholder);
24
+
25
+
26
+ origin.on('click', function(){
27
+ var placeholder = origin.parent('.material-placeholder');
28
+ var windowWidth = window.innerWidth;
29
+ var windowHeight = window.innerHeight;
30
+ var originalWidth = origin.width();
31
+ var originalHeight = origin.height();
32
+
33
+
34
+ // If already modal, return to original
35
+ if (doneAnimating === false) {
36
+ returnToOriginal();
37
+ return false;
38
+ }
39
+ else if (overlayActive && doneAnimating===true) {
40
+ returnToOriginal();
41
+ return false;
42
+ }
43
+
44
+
45
+ // Set states
46
+ doneAnimating = false;
47
+ origin.addClass('active');
48
+ overlayActive = true;
49
+
50
+ // Set positioning for placeholder
51
+ placeholder.css({
52
+ width: placeholder[0].getBoundingClientRect().width,
53
+ height: placeholder[0].getBoundingClientRect().height,
54
+ position: 'relative',
55
+ top: 0,
56
+ left: 0
57
+ });
58
+
59
+ // Find ancestor with overflow: hidden; and remove it
60
+ ancestorsChanged = undefined;
61
+ ancestor = placeholder[0].parentNode;
62
+ var count = 0;
63
+ while (ancestor !== null && !$(ancestor).is(document)) {
64
+ var curr = $(ancestor);
65
+ if (curr.css('overflow') !== 'visible') {
66
+ curr.css('overflow', 'visible');
67
+ if (ancestorsChanged === undefined) {
68
+ ancestorsChanged = curr;
69
+ }
70
+ else {
71
+ ancestorsChanged = ancestorsChanged.add(curr);
72
+ }
73
+ }
74
+ ancestor = ancestor.parentNode;
75
+ }
76
+
77
+ // Set css on origin
78
+ origin.css({position: 'absolute', 'z-index': 1000})
79
+ .data('width', originalWidth)
80
+ .data('height', originalHeight);
81
+
82
+ // Add overlay
83
+ var overlay = $('<div id="materialbox-overlay"></div>')
84
+ .css({
85
+ opacity: 0
86
+ })
87
+ .click(function(){
88
+ if (doneAnimating === true)
89
+ returnToOriginal();
90
+ });
91
+ // Animate Overlay
92
+ // Put before in origin image to preserve z-index layering.
93
+ origin.before(overlay);
94
+ overlay.velocity({opacity: 1},
95
+ {duration: inDuration, queue: false, easing: 'easeOutQuad'} );
96
+
97
+ // Add and animate caption if it exists
98
+ if (origin.data('caption') !== "") {
99
+ var $photo_caption = $('<div class="materialbox-caption"></div>');
100
+ $photo_caption.text(origin.data('caption'));
101
+ $('body').append($photo_caption);
102
+ $photo_caption.css({ "display": "inline" });
103
+ $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'});
104
+ }
105
+
106
+ // Resize Image
107
+ var ratio = 0;
108
+ var widthPercent = originalWidth / windowWidth;
109
+ var heightPercent = originalHeight / windowHeight;
110
+ var newWidth = 0;
111
+ var newHeight = 0;
112
+
113
+ if (widthPercent > heightPercent) {
114
+ ratio = originalHeight / originalWidth;
115
+ newWidth = windowWidth * 0.9;
116
+ newHeight = windowWidth * 0.9 * ratio;
117
+ }
118
+ else {
119
+ ratio = originalWidth / originalHeight;
120
+ newWidth = (windowHeight * 0.9) * ratio;
121
+ newHeight = windowHeight * 0.9;
122
+ }
123
+
124
+ // Animate image + set z-index
125
+ if(origin.hasClass('responsive-img')) {
126
+ origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false,
127
+ complete: function(){
128
+ origin.css({left: 0, top: 0})
129
+ .velocity(
130
+ {
131
+ height: newHeight,
132
+ width: newWidth,
133
+ left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
134
+ top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
135
+ },
136
+ {
137
+ duration: inDuration,
138
+ queue: false,
139
+ easing: 'easeOutQuad',
140
+ complete: function(){doneAnimating = true;}
141
+ }
142
+ );
143
+ } // End Complete
144
+ }); // End Velocity
145
+ }
146
+ else {
147
+ origin.css('left', 0)
148
+ .css('top', 0)
149
+ .velocity(
150
+ {
151
+ height: newHeight,
152
+ width: newWidth,
153
+ left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
154
+ top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
155
+ },
156
+ {
157
+ duration: inDuration,
158
+ queue: false,
159
+ easing: 'easeOutQuad',
160
+ complete: function(){doneAnimating = true;}
161
+ }
162
+ ); // End Velocity
163
+ }
164
+
165
+ }); // End origin on click
166
+
167
+
168
+ // Return on scroll
169
+ $(window).scroll(function() {
170
+ if (overlayActive) {
171
+ returnToOriginal();
172
+ }
173
+ });
174
+
175
+ // Return on ESC
176
+ $(document).keyup(function(e) {
177
+
178
+ if (e.keyCode === 27 && doneAnimating === true) { // ESC key
179
+ if (overlayActive) {
180
+ returnToOriginal();
181
+ }
182
+ }
183
+ });
184
+
185
+
186
+ // This function returns the modaled image to the original spot
187
+ function returnToOriginal() {
188
+
189
+ doneAnimating = false;
190
+
191
+ var placeholder = origin.parent('.material-placeholder');
192
+ var windowWidth = window.innerWidth;
193
+ var windowHeight = window.innerHeight;
194
+ var originalWidth = origin.data('width');
195
+ var originalHeight = origin.data('height');
196
+
197
+ origin.velocity("stop", true);
198
+ $('#materialbox-overlay').velocity("stop", true);
199
+ $('.materialbox-caption').velocity("stop", true);
200
+
201
+
202
+ $('#materialbox-overlay').velocity({opacity: 0}, {
203
+ duration: outDuration, // Delay prevents animation overlapping
204
+ queue: false, easing: 'easeOutQuad',
205
+ complete: function(){
206
+ // Remove Overlay
207
+ overlayActive = false;
208
+ $(this).remove();
209
+ }
210
+ });
211
+
212
+ // Resize Image
213
+ origin.velocity(
214
+ {
215
+ width: originalWidth,
216
+ height: originalHeight,
217
+ left: 0,
218
+ top: 0
219
+ },
220
+ {
221
+ duration: outDuration,
222
+ queue: false, easing: 'easeOutQuad'
223
+ }
224
+ );
225
+
226
+ // Remove Caption + reset css settings on image
227
+ $('.materialbox-caption').velocity({opacity: 0}, {
228
+ duration: outDuration, // Delay prevents animation overlapping
229
+ queue: false, easing: 'easeOutQuad',
230
+ complete: function(){
231
+ placeholder.css({
232
+ height: '',
233
+ width: '',
234
+ position: '',
235
+ top: '',
236
+ left: ''
237
+ });
238
+
239
+ origin.css({
240
+ height: '',
241
+ top: '',
242
+ left: '',
243
+ width: '',
244
+ 'max-width': '',
245
+ position: '',
246
+ 'z-index': ''
247
+ });
248
+
249
+ // Remove class
250
+ origin.removeClass('active');
251
+ doneAnimating = true;
252
+ $(this).remove();
253
+
254
+ // Remove overflow overrides on ancestors
255
+ if (ancestorsChanged) {
256
+ ancestorsChanged.css('overflow', '');
257
+ }
258
+ }
259
+ });
260
+
261
+ }
262
+ });
263
+ };
264
+
265
+ $(document).ready(function(){
266
+ $('.materialboxed').materialbox();
267
+ });
268
+
269
+ }( jQuery ));