-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgwdspritesheet_min.js
15 lines (15 loc) · 6.7 KB
/
gwdspritesheet_min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(function(){'use strict';var d,e=function(a,b,c){a=parseInt(a.getAttribute(b),10);isNaN(a)&&(a=c);return a},g=function(a,b,c){return a.hasAttribute(b)?a.getAttribute(b):c};var k=function(a){if("function"==typeof a.gwdLoad&&"function"==typeof a.gwdIsLoaded&&!a.gwdIsLoaded()){var b=h(a),c=b&&"function"==typeof b.gwdIsLoaded;(!b||c&&b.gwdIsLoaded())&&a.gwdLoad()}},l=function(a){if(null==a.gwdActivate||"function"==typeof a.gwdActivate)if(null==a.gwdIsActive||!a.gwdIsActive()){var b=h(a),c=b&&null!=b.gwdIsActive&&"function"==typeof b.gwdIsActive;null==b&&a.gwdActivate();c&&b.gwdIsActive()&&a.gwdActivate()}},m=function(a){return"gwd-page"==a.tagName.toLowerCase()||"gwd-page"==
a.getAttribute("is")},h=function(a){if(m(a))return a;for(;a&&9!=a.nodeType;)if((a=a.parentElement)&&m(a))return a;return null};var r=function(a,b){var c=document.createEvent("Event");c.initEvent(a,!0,!0);b.dispatchEvent(c)};var t=function(a){a||(a="");return/^[\s\xa0]*$/.test(a)},u=function(a){a=parseInt(a,10);1>a&&(a=1);return a},v=function(){};goog.inherits(v,HTMLElement);d=v.prototype;
d.createdCallback=function(){this.L="gwd_spritesheet_"+(2147483648*Math.random()|0);this.style.display="block";this.a=document.createElement("canvas");this.a.className=this.L;this.appendChild(this.a);this.H=this.A=!1;this.N=parseInt(window.getComputedStyle(this,null).getPropertyValue("width"),10);this.M=parseInt(window.getComputedStyle(this,null).getPropertyValue("height"),10);this.F=g(this,"imagesource","");this.B=e(this,"offsetx","0");this.I=e(this,"offsety","0");this.c=e(this,"clipwidth","64");
this.g=e(this,"clipheight","64");this.P=this.G=0;this.o=this.hasAttribute("autoplay");this.O=this.hasAttribute("endonstartframe");this.s=this.hasAttribute("reverseplay");this.f=e(this,"totalframecount","1");this.i=e(this,"duration","100");this.j=e(this,"loopcount","0");this.c=u(this.c);this.g=u(this.g);this.i=u(this.i);this.f=u(this.f);this.l=this.b=0;this.h=!1;this.C=this.D=this.v=this.J=0;this.m=g(this,"scaling","auto");t(this.m)&&(this.m="auto");w(this);this.w=g(this,"alignment","top left");t(this.w)&&
(this.w="top left");x(this);this.K=this.a.getContext("2d")};d.attachedCallback=function(){k(this)};d.gwdIsLoaded=function(){return this.A};d.gwdLoad=function(){t(this.F)?(this.A=!0,r("ready",this),l(this)):(y(this),this.hasAttribute("quickready")&&r("ready",this))};d.gwdActivate=function(){this.o?this.gwdIsLoaded()&&this.play():this.gwdIsLoaded()&&z(this,0);this.H=!0};d.gwdDeactivate=function(){this.pause();this.H=!1};d.gwdIsActive=function(){return this.H};
d.attributeChangedCallback=function(a){var b=this.getAttribute(a);switch(a){case "imagesource":this.pause();this.F=b;this.A=!1;k(this);break;case "offsetx":this.B=parseInt(b,10);break;case "offsety":this.I=parseInt(b,10);break;case "clipwidth":this.c=u(b);w(this);break;case "clipheight":this.g=u(b);w(this);break;case "scaling":b?(this.m=b,w(this)):this.setAttribute(a,"auto");break;case "alignment":b?(this.w=b,x(this)):this.setAttribute(a,"top left");break;case "totalframecount":this.f=u(b);break;
case "duration":this.i=u(b);break;case "loopcount":this.j=parseInt(b,10);break;case "autoplay":(this.o="true"===b)?this.play():this.pause()}};
var z=function(a,b){if(a.u){var c=Math.floor((a.G-a.B)/a.c);c=u(c);var f=Math.floor(a.G/a.c);f=u(f);var n=a.B,p=a.I,q=b;b>=c&&(q=(b-c)%f,n=0,p+=a.g*Math.floor(1+(b-c)/f));a.K.clearRect(0,0,a.c,a.g);a.K.drawImage(a.u,n+q*a.c,p,a.c,a.g,0,0,a.c,a.g)}},w=function(a){var b=a.N/a.c,c=a.M/a.g;"100% 100%"===a.m?(a.a.style.width="100%",a.a.style.height="100%",a.style.overflow="visible"):"contain"===a.m?(b=b<c?b:c,a.a.style.width=a.c*b+"px",a.a.style.height=a.g*b+"px",a.style.overflow="visible"):("cover"===
a.m?(b=b<c?c:b,a.a.style.width=a.c*b+"px",a.a.style.height=a.g*b+"px"):(a.a.style.width=a.c+"px",a.a.style.height=a.g+"px"),a.style.overflow="hidden");a.a.width=a.c;a.a.height=a.g},x=function(a){if("100% 100%"!=a.m){var b=parseInt(a.a.style.width,10),c=parseInt(a.a.style.height,10);a.style.position="absolute;";a.a.style.position="relative";switch(a.w){case "center":a.a.style.left="50%";a.a.style.top="50%";a.a.style.transform="translate(-"+b/2+"px, -"+c/2+"px)";break;case "bottom":a.a.style.left="50%";
a.a.style.top="100%";a.a.style.transform="translate(-"+b/2+"px, -"+c+"px)";break;case "bottom left":a.a.style.left="0%";a.a.style.top="100%";a.a.style.transform="translate(0px, -"+c+"px)";break;case "bottom right":a.a.style.left="100%";a.a.style.top="100%";a.a.style.transform="translate(-"+b+"px, -"+c+"px)";break;case "left":a.a.style.left="0%";a.a.style.top="50%";a.a.style.transform="translate(0px, -"+c/2+"px)";break;case "right":a.a.style.left="100%";a.a.style.top="50%";a.a.style.transform="translate(-"+
b+"px, -"+c/2+"px)";break;case "top":a.a.style.left="50%";a.a.style.top="0%";a.a.style.transform="translate(-"+b/2+"px, 0px)";break;case "top left":a.a.style.top="0%";a.a.style.left="0%";a.a.style.transform="translate(0px, 0px)";break;case "top right":a.a.style.top="0%",a.a.style.left="100%",a.a.style.transform="translate(-"+b+"px, 0px)"}}},A=function(a){a.h&&(z(a,a.b),a.s?(a.b=(a.b-1+a.f)%a.f,a.b==a.f-1&&a.l++):(a.b==a.f-1&&a.l++,a.b=(a.b+1)%a.f),a.j=parseInt(a.j,10),a.l<a.j||0===a.j?(a.v+=a.i,a.D=
(new Date).getTime()-a.J-a.v,a.C=setTimeout(function(){A(a)},a.i-a.D)):a.C=!0===a.O?setTimeout(function(){a.s?a.goToFrame(a.f-1):a.goToFrame(0);r("animationend",a)},a.i):setTimeout(function(){a.h=!1;r("animationend",a)},a.i))},B=function(a){a.J=+new Date;a.v=-a.i;a.D=0;clearTimeout(a.C)},y=function(a){a.u=new Image;a.u.addEventListener("load",function(){a.G=parseInt(this.naturalWidth,10);a.P=parseInt(this.naturalHeight,10);B(a);a.s&&(a.b=a.f-1);z(a,a.b);!0===a.o&&(a.h=!0,A(a));a.A=!0;r("ready",a);
l(a)});a.u.src=a.F};d=v.prototype;d.getImage=function(){return this.u};d.getCurrentFrame=function(){return this.b};d.newAnimation=function(a,b,c,f,n,p,q,C,D){this.B=parseInt(a,10);this.I=parseInt(b,10);this.s=D;this.o=C;this.f=parseInt(n,10);this.i=parseInt(p,10);this.j=parseInt(q,10);this.l=this.b=0;c=parseInt(c,10);f=parseInt(f,10);if(c!=this.c||f!=this.g)this.c=c,this.g=f,w(this);!0===this.s&&(this.b=this.f-1);this.l=0;!0===this.o?this.restart():(this.h=!1,z(this,0))};
d.goToFrame=function(a){0>a&&(a=this.f-Math.abs(a)%this.f);this.b=a%this.f;z(this,this.b);this.h=!1};d.play=function(){(this.l<this.j||0==this.j)&&!1===this.h&&(r("animationplay",this),this.h=!0,B(this),A(this))};d.pause=function(){this.h&&(r("animationpause",this),this.h=!1)};d.togglePlay=function(){!1===this.h?this.play():this.pause()};d.restart=function(){r("animationrestart",this);this.b=0;this.s&&(this.b=this.f-1);this.l=0;!1===this.h&&this.play()};d.previousFrame=function(){this.b--;this.goToFrame(this.b)};
d.nextFrame=function(){this.b++;this.goToFrame(this.b)};document.registerElement("gwd-spritesheet",{prototype:v.prototype});}).call(this);