You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
11 KiB
JavaScript

!function(e,t,i,n){"use strict";t=void 0!==t&&t.Math==Math?t:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),e.fn.shape=function(a){var o,s=e(this),r=(e("body"),(new Date).getTime()),l=[],d=arguments[0],u="string"==typeof d,c=[].slice.call(arguments,1),g=t.requestAnimationFrame||t.mozRequestAnimationFrame||t.webkitRequestAnimationFrame||t.msRequestAnimationFrame||function(e){setTimeout(e,0)};return s.each(function(){var t,f,m,h=s.selector||"",p=e.isPlainObject(a)?e.extend(!0,{},e.fn.shape.settings,a):e.extend({},e.fn.shape.settings),v=p.namespace,b=p.selector,x=p.error,y=p.className,S="."+v,w="module-"+v,C=e(this),W=C.find(b.sides),F=C.find(b.side),H=!1,T=this,Z=C.data(w);m={initialize:function(){m.verbose("Initializing module for",T),m.set.defaultSide(),m.instantiate()},instantiate:function(){m.verbose("Storing instance of module",m),Z=m,C.data(w,Z)},destroy:function(){m.verbose("Destroying previous module for",T),C.removeData(w).off(S)},refresh:function(){m.verbose("Refreshing selector cache for",T),C=e(T),W=e(this).find(b.shape),F=e(this).find(b.side)},repaint:function(){m.verbose("Forcing repaint event");(W[0]||i.createElement("div")).offsetWidth},animate:function(e,i){m.verbose("Animating box with properties",e),i=i||function(e){m.verbose("Executing animation callback"),e!==n&&e.stopPropagation(),m.reset(),m.set.active()},p.beforeChange.call(f[0]),m.get.transitionEvent()?(m.verbose("Starting CSS animation"),C.addClass(y.animating),W.css(e).one(m.get.transitionEvent(),i),m.set.duration(p.duration),g(function(){C.addClass(y.animating),t.addClass(y.hidden)})):i()},queue:function(e){m.debug("Queueing animation of",e),W.one(m.get.transitionEvent(),function(){m.debug("Executing queued animation"),setTimeout(function(){C.shape(e)},0)})},reset:function(){m.verbose("Animating states reset"),C.removeClass(y.animating).attr("style","").removeAttr("style"),W.attr("style","").removeAttr("style"),F.attr("style","").removeAttr("style").removeClass(y.hidden),f.removeClass(y.animating).attr("style","").removeAttr("style")},is:{complete:function(){return F.filter("."+y.active)[0]==f[0]},animating:function(){return C.hasClass(y.animating)}},set:{defaultSide:function(){t=C.find("."+p.className.active),f=t.next(b.side).length>0?t.next(b.side):C.find(b.side).first(),H=!1,m.verbose("Active side set to",t),m.verbose("Next side set to",f)},duration:function(e){e="number"==typeof(e=e||p.duration)?e+"ms":e,m.verbose("Setting animation duration",e),(p.duration||0===p.duration)&&W.add(F).css({"-webkit-transition-duration":e,"-moz-transition-duration":e,"-ms-transition-duration":e,"-o-transition-duration":e,"transition-duration":e})},currentStageSize:function(){var e=C.find("."+p.className.active),t=e.outerWidth(!0),i=e.outerHeight(!0);C.css({width:t,height:i})},stageSize:function(){var e=C.clone().addClass(y.loading),t=e.find("."+p.className.active),i=H?e.find(b.side).eq(H):t.next(b.side).length>0?t.next(b.side):e.find(b.side).first(),n="next"==p.width?i.outerWidth(!0):"initial"==p.width?C.width():p.width,a="next"==p.height?i.outerHeight(!0):"initial"==p.height?C.height():p.height;t.removeClass(y.active),i.addClass(y.active),e.insertAfter(C),e.remove(),"auto"!=p.width&&(C.css("width",n+p.jitter),m.verbose("Specifying width during animation",n)),"auto"!=p.height&&(C.css("height",a+p.jitter),m.verbose("Specifying height during animation",a))},nextSide:function(e){H=e,f=F.filter(e),H=F.index(f),0===f.length&&(m.set.defaultSide(),m.error(x.side)),m.verbose("Next side manually set to",f)},active:function(){m.verbose("Setting new side to active",f),F.removeClass(y.active),f.addClass(y.active),p.onChange.call(f[0]),m.set.defaultSide()}},flip:{up:function(){if(!m.is.complete()||m.is.animating()||p.allowRepeats)if(m.is.animating())m.queue("flip up");else{m.debug("Flipping up",f);var e=m.get.transform.up();m.set.stageSize(),m.stage.above(),m.animate(e)}else m.debug("Side already visible",f)},down:function(){if(!m.is.complete()||m.is.animating()||p.allowRepeats)if(m.is.animating())m.queue("flip down");else{m.debug("Flipping down"