­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ ­ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.SpriteSpin={})}(this,(function(e){"use strict";var t=function(e){this.data=e};function n(e){var n=t.prototype;for(var a in e)if(e.hasOwnProperty(a)){if(n[a])throw new Error("API method is already defined: "+a);n[a]=e[a]}return n}var a,r,i,o=window.jQuery||window.$;function s(e){var t=e.touches,n=e;return void 0===e.touches&&void 0!==e.originalEvent&&(t=e.originalEvent.touches),void 0!==t&&t.length>0&&(n=t[0]),{x:n.clientX||0,y:n.clientY||0}}function u(e,t,n){if(!(r||(a||(a=document.createElement("canvas")),a&&a.getContext&&(r=a.getContext("2d")))))return!1;if(t*n<=1048576)return!1;a.width=a.height=1,r.fillStyle="#FF00FF",r.fillRect(0,0,1,1),r.drawImage(e,1-t,0);try{var i=r.getImageData(0,0,1,1).data;return 255===i[0]&&0===i[1]&&255===i[2]}catch(e){return!1}}function l(e){var t=Math.floor(e.width||e.frameWidth||e.target.innerWidth()),n=Math.floor(e.height||e.frameHeight||e.target.innerHeight());return{aspect:t/n,height:n,width:t}}function c(e){var t=l(e);if("function"!=typeof window.getComputedStyle)return t;var n=window.getComputedStyle(e.target[0]);return n.width?(t.width=Math.floor(Number(n.width.replace("px",""))),t.height=Math.floor(t.width/t.aspect),t):t}function d(e){var t=Math.floor(e.frameWidth||e.width||e.target.innerWidth()),n=Math.floor(e.frameHeight||e.height||e.target.innerHeight());return{aspect:t/n,height:n,width:t}}function f(e,t,n){var a="fit"===e,r="fill"===e,i={width:"100%",height:"100%",top:0,left:0,bottom:0,right:0,position:"absolute",overflow:"hidden"};if(!e||"stretch"===e)return i;var o=t.aspect>=n.aspect,s=t.width,u=t.height;return(a&&o||r&&!o)&&(s=n.width,u=n.width/t.aspect),(r&&o||a&&!o)&&(u=n.height,s=n.height*t.aspect),s=Math.floor(s),u=Math.floor(u),i.width=s,i.height=u,i.top=Math.floor((n.height-u)/2),i.left=Math.floor((n.width-s)/2),i.right=i.left,i.bottom=i.top,i}function m(e){return e.naturalWidth?{height:e.naturalHeight,width:e.naturalWidth}:((i=i||new Image).src=e.src,{height:i.height,width:i.width})}function g(e,t){return 1===e.length?[h(e[0],t)]:t.framesX&&t.framesY?function(e,t){for(var n=[],a=0;a=s.sprites.length)){o=s.sprites[r];break}r-=s.sprites.length,i++}return{sprite:o,sheet:s}}function v(e,t){for(var n=0;n=r&&(l=!0,s(a))},f=0,m=t;fn?n:en;)e-=a;for(;e"),"canvas"===a.renderer){var r=document.createElement("canvas");r.getContext&&r.getContext("2d")?(a.canvas=re(r).addClass("spritespin-canvas"),a.context=r.getContext("2d"),n.append(a.canvas),n.addClass("with-canvas")):a.renderer="image"}return a.target=n,a.stage=n.find(".spritespin-stage"),n.data(k,a),function(e){ie+=1,e.id=String(ie),oe[e.id]=e}(a),a}function fe(e){ue();var t=e.target.data(k);return t?re.extend(t,e):t=de(e),ce(t),t}function me(e){!function(e){delete oe[e.id]}(e),J(e),e.target.trigger("onDestroy",e).html(null).attr("style",null).attr("unselectable",null).removeClass(["spritespin-instance","with-canvas"]),W(e.target),e.target.removeData(k)}function ge(e){return q(e,"input")}function he(e,t){var n=s(e),a=ge(t);a.oldX=a.currentX,a.oldY=a.currentY,a.currentX=n.x,a.currentY=n.y,void 0!==a.oldX&&void 0!==a.oldY||(a.oldX=a.currentX,a.oldY=a.currentY),void 0!==a.startX&&void 0!==a.startY||(a.startX=a.currentX,a.startY=a.currentY,a.clickframe=t.frame,a.clicklane=t.lane),a.dX=a.currentX-a.startX,a.dY=a.currentY-a.startY,a.ddX=a.currentX-a.oldX,a.ddY=a.currentY-a.oldY,a.ndX=a.dX/t.target.innerWidth(),a.ndY=a.dY/t.target.innerHeight(),a.nddX=a.ddX/t.target.innerWidth(),a.nddY=a.ddY/t.target.innerHeight()}function pe(e){var t=ge(e);t.startX=t.startY=void 0,t.currentX=t.currentY=void 0,t.oldX=t.oldY=void 0,t.dX=t.dY=0,t.ddX=t.ddY=0,t.ndX=t.ndY=0,t.nddX=t.nddY=0}function ve(e,t){for(var n=0,a=t;nn.frame?a-n.frames:a+n.frames,i=Math.abs(a)n?1:-1))}}te("click",{name:"click",mouseup:e,touchend:e})}(),function(){function e(e){return B(e,"drag")}function t(t,n){var a=e(n);if(!n.loading&&!N(n,"dragging")&&n.stage.is(":visible")){var r=(new Date).getTime();a.startAt&&r-a.startAt>200&&t.preventDefault(),a.startAt=r,a.wasPlaying=!!U(n).handler,a.frame=n.frame||0,a.lane=n.lane||0,j(n,"dragging",!0),he(t,n)}}function n(t,n){N(n,"dragging")&&(j(n,"dragging",!1),pe(n),n.retainAnimate&&e(n).wasPlaying&&V(n))}function a(t,n){var a=e(n),r=ge(n);if(N(n,"dragging")){he(t,n);var i=function(e){return"number"==typeof e.orientation?e.orientation*Math.PI/180:"horizontal"===e.orientation?0:Math.PI/2}(n),o=Math.sin(i),s=Math.cos(i),u=(r.nddX*s-r.nddY*o)*n.sense||0,l=(r.nddX*o+r.nddY*s)*(n.senseLane||n.sense)||0;a.frame+=n.frames*u,a.lane+=n.lanes*l;n.frame,n.lane;G(n,Math.floor(a.frame),Math.floor(a.lane)),J(n)}}te("drag",{name:"drag",mousedown:t,mousemove:a,mouseup:n,documentmousemove:a,documentmouseup:n,touchstart:t,touchmove:a,touchend:n,touchcancel:n}),te("move",{name:"move",mousemove:function(e,n){t(e,n),a(e,n)},mouseleave:n,touchstart:t,touchmove:a,touchend:n,touchcancel:n})}(),function(){function e(e){return B(e,"hold")}function t(t,n){N(n,"loading")||N(n,"dragging")||!n.stage.is(":visible")||(!function(t){var n=e(t);n.frameTime=t.frameTime,n.animate=t.animate,n.reverse=t.reverse}(n),he(t,n),j(n,"dragging",!0),n.animate=!0,K(n))}function n(t,n){j(n,"dragging",!1),pe(n),J(n),function(t){var n=e(t);t.frameTime=n.frameTime,t.animate=n.animate,t.reverse=n.reverse}(n),K(n)}function a(e,t){if(N(t,"dragging")){he(e,t);var n,a,r=ge(t),i=t.target,o=i.offset();"horizontal"===t.orientation?(n=i.innerWidth()/2,a=(r.currentX-o.left-n)/n):(n=t.height/2,a=(r.currentY-o.top-n)/n),t.reverse=a<0,a=a<0?-a:a,t.frameTime=80*(1-a)+20,("horizontal"===t.orientation&&r.dX=l||r>=c?s=n.frame-1:(a<=-l||r<=-c)&&(s=n.frame+1),pe(n),G(n,s,u),J(n)}}te("swipe",{name:"swipe",onLoad:function(n,a){var r=e(a);r.fling=t(a,"swipeFling",10),r.snap=t(a,"swipeSnap",.5)},mousedown:n,mousemove:a,mouseup:r,mouseleave:r,touchstart:n,touchmove:a,touchend:r,touchcancel:r})}(),te("wheel",{name:"wheel",wheel:function(e,t){if(!t.loading&&t.stage.is(":visible")){e.preventDefault();var n=e.originalEvent,a=0===n.deltaX?0:n.deltaX>0?1:-1,r=0===n.deltaY?0:n.deltaY>0?1:-1;G(t,t.frame+r,t.lane+a)}}}),function(){function e(e){return B(e,t)}var t="progress";te(t,{name:t,onInit:function(t,n){var a=e(n);a.stage||(a.stage=o("\n
\n
\n
\n
\n"),a.stage.appendTo(n.target)),a.stage.find(".spritespin-progress-label").text("0%").css({"text-align":"center"}),a.stage.find(".spritespin-progress-bar").css({width:"0%"}),a.stage.hide().fadeIn()},onProgress:function(t,n){var a=e(n);a.stage.find(".spritespin-progress-label").text(n.progress.percent+"%").css({"text-align":"center"}),a.stage.find(".spritespin-progress-bar").css({width:n.progress.percent+"%"})},onLoad:function(t,n){o(e(n).stage).fadeOut()},onDestroy:function(t,n){o(e(n).stage).remove()}})}(),te("360",{name:"360",onLoad:function(e,t){t.stage.find(".spritespin-frames").detach(),"image"===t.renderer&&$(t.images).addClass("spritespin-frames").appendTo(t.stage)},onDraw:function(e,t){var n=p(t.metrics,t.frames,t.frame,t.lane),a=n.sheet,r=n.sprite;if(a&&r){var i=t.source[a.id],o=t.images[a.id];if("canvas"===t.renderer){t.canvas.show();var s=t.canvas[0].width/t.canvasRatio,u=t.canvas[0].height/t.canvasRatio;return t.context.clearRect(0,0,s,u),void t.context.drawImage(o,r.sampledX,r.sampledY,r.sampledWidth,r.sampledHeight,0,0,s,u)}var l=t.stage.innerWidth()/r.sampledWidth,c=t.stage.innerHeight()/r.sampledHeight,d=Math.floor(-r.sampledY*c),f=Math.floor(-r.sampledX*l),m=Math.floor(a.sampledWidth*l),g=Math.floor(a.sampledHeight*c);"background"!==t.renderer?($(t.images).hide(),$(o).show().css({position:"absolute",top:d,left:f,"max-width":"initial",width:m,height:g})):t.stage.css({"background-image":"url('"+i+"')","background-position":f+"px "+d+"px","background-repeat":"no-repeat","-webkit-background-size":m+"px "+g+"px","-moz-background-size":m+"px "+g+"px","-o-background-size":m+"px "+g+"px","background-size":m+"px "+g+"px"})}}}),function(){function e(e){return B(e,"blur")}function t(e,t,n){return e[t]||n}var n=[];function a(t){var i=e(t);i.timeout=window.setTimeout((function(){!function(t){var i=e(t);if(function(t){var n=e(t);window.clearTimeout(n.timeout),n.timeout=null}(t),!i.context)return;var o=0;(function(e,t){t.canvas.show();t.canvas[0].width,e.canvasRatio,t.canvas[0].height,e.canvasRatio})(t,i),i.context.clearRect(0,0,t.width,t.height);for(var s=0,u=i.steps;s"),r.context=r.context||r.canvas[0].getContext("2d"),r.steps=r.steps||[],r.fadeTime=Math.max(t(a,"blurFadeTime",200),1),r.frameTime=Math.max(t(a,"blurFrameTime",a.frameTime),16),r.trackTime=null,r.cssBlur=!!t(a,"blurCss",!1);var i=d(a),s=a.responsive?c(a):l(a),u=f(a.sizeMode,i,s);r.canvas[0].width=a.width*a.canvasRatio,r.canvas[0].height=a.height*a.canvasRatio,r.canvas.css(u).show(),r.context.scale(a.canvasRatio,a.canvasRatio),a.target.append(r.canvas)},onFrameChanged:function(t,n){var r=e(n);!function(t){var n=e(t),a=U(t),r=Math.abs(t.frame-a.lastFrame);r=r>=t.frames/2?t.frames-r:r,n.steps.unshift({frame:t.frame,lane:t.lane,live:1,step:n.frameTime/n.fadeTime,d:r,alpha:0})}(n),null==r.timeout&&a(n)}})}(),function(){var e=Math.max,t=Math.min;function n(e){return B(e,"ease")}function a(e,t,n){return e[t]||n}function r(e,t){N(t,"dragging")&&(o(t),function(e){var t=n(e);t.samples.push({time:(new Date).getTime(),frame:e.frame,lane:e.lane});for(;t.samples.length>t.maxSamples;)t.samples.shift()}(t))}function i(e,t){for(var a,r=n(t),i=r.samples,u=0,l=0,c=0,d=0,f=i;dr.abortTime)return u=l=c=0,o(t);l+=m.frame-a.frame,u+=m.lane-a.lane,c+=g,a=m}else a=m}i.length=0,c&&(r.lane=t.lane,r.lanes=0,r.laneStep=u/c*r.updateTime,r.frame=t.frame,r.frames=0,r.frameStep=l/c*r.updateTime,s(t))}function o(e){var t=n(e);null!=t.handler&&(window.clearTimeout(t.handler),t.handler=null)}function s(e){var t=n(e);t.handler=window.setTimeout((function(){!function(e){var t=n(e);t.lanes+=t.laneStep,t.frames+=t.frameStep,t.laneStep*=t.damping,t.frameStep*=t.damping;var a=Math.floor(t.frame+t.frames),r=Math.floor(t.lane+t.lanes);G(e,a,r),N(e,"dragging")?o(e):Math.abs(t.frameStep)>.005||Math.abs(t.laneStep)>.005?s(e):o(e)}(e)}),t.updateTime)}te("ease",{name:"ease",onLoad:function(r,i){var o=n(i);o.maxSamples=e(a(i,"easeMaxSamples",5),0),o.damping=e(t(a(i,"easeDamping",.9),.999),0),o.abortTime=e(a(i,"easeAbortTime",250),16),o.updateTime=e(a(i,"easeUpdateTime",i.frameTime),16),o.samples=[],o.steps=[]},mousemove:r,mouseup:i,mouseleave:i,touchmove:r,touchend:i,touchcancel:i})}(),function(){function e(e){return B(e,"gallery")}function t(e,t,n){return e[t]||n}te("gallery",{name:"gallery",onLoad:function(n,a){var r=e(a);r.images=[],r.offsets=[],r.frame=a.frame,r.speed=t(a,"gallerySpeed",500),r.opacity=t(a,"galleryOpacity",.25),r.stage=t(a,"galleryStage",o("
")),r.stage.empty().addClass("gallery-stage").prependTo(a.stage);for(var i=0,s=0,u=a.images;sr.doubleClickTime?r.clickTime=i:(r.clickTime=void 0,u(n)&&a(t,n)):r.clickTime=i}function i(t,n){e(n).stage.is(":visible")&&a(t,n)}function u(t){var n=e(t);if(!n.stage)throw new Error("zoom module is not initialized or is not available.");return n.stage.is(":visible")?(n.stage.fadeOut(),t.stage.fadeIn(),!1):(n.stage.fadeIn(),t.stage.fadeOut(),!0)}te("zoom",{name:"zoom",mousedown:r,touchstart:r,mousemove:i,touchmove:i,onInit:function(n,a){var r=e(a);r.source=t(a,"zoomSource",a.source),r.doubleClickTime=t(a,"zoomDoubleClickTime",500),r.stage=r.stage||o("
"),r.stage.css({width:"100%",height:"100%",top:0,left:0,bottom:0,right:0,position:"absolute"}).appendTo(a.target).hide()},onDestroy:function(t,n){var a=e(n);a.stage&&(a.stage.remove(),delete a.stage)},onDraw:function(t,n){var a=e(n),r=n.lane*n.frames+n.frame,i=a.source[r],o=p(n.metrics,n.frames,n.frame,n.lane),s=a.currentX,u=a.currentY;if(null==s&&(s=a.currentX=.5,u=a.currentY=.5),i)s=Math.floor(100*s),u=Math.floor(100*u),a.stage.css({"background-repeat":"no-repeat","background-image":"url('"+i+"')","background-position":s+"% "+u+"%"});else if(o.sheet&&o.sprite){var l=o.sprite,c=o.sheet,d=n.source[c.id],f=-Math.floor(l.sampledX+s*(l.sampledWidth-n.width)),m=-Math.floor(l.sampledY+u*(l.sampledHeight-n.height)),g=c.sampledWidth,h=c.sampledHeight;a.stage.css({"background-image":"url('"+d+"')","background-position":f+"px "+m+"px","background-repeat":"no-repeat","-webkit-background-size":g+"px "+h+"px","-moz-background-size":g+"px "+h+"px","-o-background-size":g+"px "+h+"px","background-size":g+"px "+h+"px"})}}}),n({toggleZoom:function(){u(this.data)}})}();var Te=L;e.Utils=Te,e.sourceArray=y,e.Api=t,e.extendApi=n,e.instances=oe,e.applyEvents=le,e.boot=ce,e.create=de,e.createOrUpdate=fe,e.destroy=me,e.namespace=k,e.eventNames=X,e.callbackNames=M,e.eventsToPrevent=S,e.defaults=z,e.getInputState=ge,e.updateInput=he,e.resetInput=pe,e.applyLayout=O,e.getPlaybackState=U,e.updateFrame=G,e.stopAnimation=J,e.applyAnimation=K,e.startAnimation=V,e.registerPlugin=te,e.registerModule=function(e,t){C('"registerModule" is deprecated, use "registerPlugin" instead'),te(e,t)},e.getPlugin=ne,e.applyPlugins=ae,e.getState=q,e.getPluginState=B,e.is=N,e.flag=j,Object.defineProperty(e,"__esModule",{value:!0})}));