gsap
Version:
GSAP is a framework-agnostic JavaScript animation library that turns developers into animation superheroes. Build high-performance animations that work in **every** major browser. Animate CSS, SVG, canvas, React, Vue, WebGL, colors, strings, motion paths,
12 lines (9 loc) • 21.2 kB
JavaScript
/*!
* MorphSVGPlugin 3.14.2
* https://gsap.com
*
* @license Copyright 2025, GreenSock. All rights reserved.
* Subject to the terms at https://gsap.com/standard-license.
* @author: Jack Doyle, jack@greensock.com
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).window=t.window||{})}(this,function(t){"use strict";function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function o(t){return"string"==typeof t}var y=/[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,N=/(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,b=/[\+\-]?\d*\.?\d+e[\+\-]?\d+/gi,r=/(^[#\.][a-z]|[a-y][a-z])/i,H=Math.PI/180,k=Math.sin,B=Math.cos,Q=Math.abs,J=Math.sqrt,z=Math.atan2,L=1e8,h=function _isNumber(t){return"number"==typeof t},A=function _round(t){return Math.round(1e5*t)/1e5||0},O=function _segmentIsClosed(t){return t.closed=Math.abs(t[0]-t[t.length-2])<.001&&Math.abs(t[1]-t[t.length-1])<.001},j=function _getSampleIndex(t,e,n){var r=t.length,a=~~(n*r);if(t[a]>e){for(;--a&&t[a]>e;);a<0&&(a=0)}else for(;t[++a]<e&&a<r;);return a<r?a:r-1};function reverseSegment(t){var e,n=0;for(t.reverse();n<t.length;n+=2)e=t[n],t[n]=t[n+1],t[n+1]=e;t.reversed=!t.reversed}var C={rect:"rx,ry,x,y,width,height",circle:"r,cx,cy",ellipse:"rx,ry,cx,cy",line:"x1,x2,y1,y2"};function convertToPath(t,e){var n,r,a,o,i,h,s,l,g,u,p,f,c,d,m,v,P,_,M,x,w,y,S=t.tagName.toLowerCase(),b=.552284749831;return"path"!==S&&t.getBBox?(h=function _createPath(t,e){var n,r=document.createElementNS("http://www.w3.org/2000/svg","path"),a=[].slice.call(t.attributes),o=a.length;for(e=","+e+",";-1<--o;)n=a[o].nodeName.toLowerCase(),e.indexOf(","+n+",")<0&&r.setAttributeNS(null,n,a[o].nodeValue);return r}(t,"x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points"),y=function _attrToObj(t,e){for(var n=e?e.split(","):[],r={},a=n.length;-1<--a;)r[n[a]]=+t.getAttribute(n[a])||0;return r}(t,C[S]),"rect"===S?(o=y.rx,i=y.ry||o,r=y.x,a=y.y,u=y.width-2*o,p=y.height-2*i,n=o||i?"M"+(v=(d=(c=r+o)+u)+o)+","+(_=a+i)+" V"+(M=_+p)+" C"+[v,x=M+i*b,m=d+o*b,w=M+i,d,w,d-(d-c)/3,w,c+(d-c)/3,w,c,w,f=r+o*(1-b),w,r,x,r,M,r,M-(M-_)/3,r,_+(M-_)/3,r,_,r,P=a+i*(1-b),f,a,c,a,c+(d-c)/3,a,d-(d-c)/3,a,d,a,m,a,v,P,v,_].join(",")+"z":"M"+(r+u)+","+a+" v"+p+" h"+-u+" v"+-p+" h"+u+"z"):"circle"===S||"ellipse"===S?(l="circle"===S?(o=i=y.r)*b:(o=y.rx,(i=y.ry)*b),n="M"+((r=y.cx)+o)+","+(a=y.cy)+" C"+[r+o,a+l,r+(s=o*b),a+i,r,a+i,r-s,a+i,r-o,a+l,r-o,a,r-o,a-l,r-s,a-i,r,a-i,r+s,a-i,r+o,a-l,r+o,a].join(",")+"z"):"line"===S?n="M"+y.x1+","+y.y1+" L"+y.x2+","+y.y2:"polyline"!==S&&"polygon"!==S||(n="M"+(r=(g=(t.getAttribute("points")+"").match(N)||[]).shift())+","+(a=g.shift())+" L"+g.join(","),"polygon"===S&&(n+=","+r+","+a+"z")),h.setAttribute("d",rawPathToString(h._gsRawPath=stringToRawPath(n))),e&&t.parentNode&&(t.parentNode.insertBefore(h,t),t.parentNode.removeChild(t)),h):t}function measureSegment(t,e,n){e=e||0,t.samples||(t.samples=[],t.lookup=[]);var r,a,o,i,h,s,l,g,u,p,f,c,d,m,v,P,_,M=~~t.resolution||12,x=1/M,w=n?e+6*n+1:t.length,y=t[e],S=t[e+1],b=e?e/6*M:0,T=t.samples,R=t.lookup,N=(e?t.minLength:L)||L,z=T[b+n*M-1],A=e?T[b-1]:0;for(T.length=R.length=0,a=e+2;a<w;a+=6){if(o=t[a+4]-y,i=t[a+2]-y,h=t[a]-y,g=t[a+5]-S,u=t[a+3]-S,p=t[a+1]-S,s=l=f=c=0,Q(o)<.01&&Q(g)<.01&&Q(h)+Q(p)<.01)8<t.length&&(t.splice(a,6),a-=6,w-=6);else for(r=1;r<=M;r++)s=l-(l=((m=x*r)*m*o+3*(d=1-m)*(m*i+d*h))*m),f=c-(c=(m*m*g+3*d*(m*u+d*p))*m),(P=J(f*f+s*s))<N&&(N=P),A+=P,T[b++]=A;y+=o,S+=g}if(z)for(z-=A;b<T.length;b++)T[b]+=z;if(T.length&&N){if(t.totalLength=_=T[T.length-1]||0,_/(t.minLength=N)<9999)for(P=v=0,r=0;r<_;r+=N)R[P++]=T[v]<r?++v:v}else t.totalLength=T[0]=0;return e?A-T[e/2-1]:A}function cacheRawPathMeasurements(t,e){var n,r,a;for(a=n=r=0;a<t.length;a++)t[a].resolution=~~e||12,n+=measureSegment(t[a]),r+=t[a].length;return t.totalPoints=r,t.totalLength=n,t}function arcToSegment(t,e,n,r,a,o,i,h,s){if(t!==h||e!==s){n=Q(n),r=Q(r);var l=a%360*H,g=B(l),u=k(l),p=Math.PI,f=2*p,c=(t-h)/2,d=(e-s)/2,m=g*c+u*d,v=-u*c+g*d,P=m*m,_=v*v,M=P/(n*n)+_/(r*r);1<M&&(n=J(M)*n,r=J(M)*r);var x=n*n,w=r*r,y=(x*w-x*_-w*P)/(x*_+w*P);y<0&&(y=0);var S=(o===i?-1:1)*J(y),b=n*v/r*S,T=-r*m/n*S,R=g*b-u*T+(t+h)/2,N=u*b+g*T+(e+s)/2,z=(m-b)/n,A=(v-T)/r,L=(-m-b)/n,O=(-v-T)/r,j=z*z+A*A,V=(A<0?-1:1)*Math.acos(z/J(j)),C=(z*O-A*L<0?-1:1)*Math.acos((z*L+A*O)/J(j*(L*L+O*O)));isNaN(C)&&(C=p),!i&&0<C?C-=f:i&&C<0&&(C+=f),V%=f,C%=f;var I,Y=Math.ceil(Q(C)/(f/4)),U=[],F=C/Y,X=4/3*k(F/2)/(1+B(F/2)),q=g*n,D=u*n,G=u*-r,E=g*r;for(I=0;I<Y;I++)m=B(a=V+I*F),v=k(a),z=B(a+=F),A=k(a),U.push(m-X*v,v+X*m,z+X*A,A-X*z,z,A);for(I=0;I<U.length;I+=2)m=U[I],v=U[I+1],U[I]=m*q+v*G+R,U[I+1]=m*D+v*E+N;return U[I-2]=h,U[I-1]=s,U}}function stringToRawPath(t){function xd(t,e,n,r){g=(n-t)/3,u=(r-e)/3,h.push(t+g,e+u,n-g,r-u,n,r)}var e,n,r,a,o,i,h,s,l,g,u,p,f,c,d,m=(t+"").replace(b,function(t){var e=+t;return e<1e-4&&-1e-4<e?0:e}).match(y)||[],v=[],P=0,_=0,M=m.length,x=0,w="ERROR: malformed path: "+t;if(!t||!isNaN(m[0])||isNaN(m[1]))return console.log(w),v;for(e=0;e<M;e++)if(f=o,isNaN(m[e])?i=(o=m[e].toUpperCase())!==m[e]:e--,r=+m[e+1],a=+m[e+2],i&&(r+=P,a+=_),e||(s=r,l=a),"M"===o)h&&(h.length<8?--v.length:x+=h.length,O(h)),P=s=r,_=l=a,h=[r,a],v.push(h),e+=2,o="L";else if("C"===o)i||(P=_=0),(h=h||[0,0]).push(r,a,P+1*m[e+3],_+1*m[e+4],P+=1*m[e+5],_+=1*m[e+6]),e+=6;else if("S"===o)g=P,u=_,"C"!==f&&"S"!==f||(g+=P-h[h.length-4],u+=_-h[h.length-3]),i||(P=_=0),h.push(g,u,r,a,P+=1*m[e+3],_+=1*m[e+4]),e+=4;else if("Q"===o)g=P+2/3*(r-P),u=_+2/3*(a-_),i||(P=_=0),P+=1*m[e+3],_+=1*m[e+4],h.push(g,u,P+2/3*(r-P),_+2/3*(a-_),P,_),e+=4;else if("T"===o)g=P-h[h.length-4],u=_-h[h.length-3],h.push(P+g,_+u,r+2/3*(P+1.5*g-r),a+2/3*(_+1.5*u-a),P=r,_=a),e+=2;else if("H"===o)xd(P,_,P=r,_),e+=1;else if("V"===o)xd(P,_,P,_=r+(i?_-P:0)),e+=1;else if("L"===o||"Z"===o)"Z"===o&&(r=s,a=l,h.closed=!0),("L"===o||.5<Q(P-r)||.5<Q(_-a))&&(xd(P,_,r,a),"L"===o&&(e+=2)),P=r,_=a;else if("A"===o){if(c=m[e+4],d=m[e+5],g=m[e+6],u=m[e+7],n=7,1<c.length&&(c.length<3?(u=g,g=d,n--):(u=d,g=c.substr(2),n-=2),d=c.charAt(1),c=c.charAt(0)),p=arcToSegment(P,_,+m[e+1],+m[e+2],+m[e+3],+c,+d,(i?P:0)+1*g,(i?_:0)+1*u),e+=n,p)for(n=0;n<p.length;n++)h.push(p[n]);P=h[h.length-2],_=h[h.length-1]}else console.log(w);return(e=h.length)<6?(v.pop(),e=0):O(h),v.totalPoints=x+e,v}function segmentToDistributedPoints(t,e){t.samples||measureSegment(t);for(var n,r,a,o,i,h,s,l,g,u,p,f,c,d,m=t.samples,v=t.lookup,P=t.resolution,_=t.totalLength,M=t.slice(0,2),x=[],w=t.length-4,y=6,S=0,b=0;y<w;y+=6).2<Math.abs(z(t[y+1]-t[y-1],t[y]-t[y-2])-z(t[y+3]-t[y+1],t[y+2]-t[y]))&&x.push(y);if(x.push(t.length-2),w=x.length,M.nonSmooth=f=[1],w<e)for(e-=w,i=0;i<w;i++){for(c=x[i],g=m[(d=Math.round(c/6*P))-1]-S,b+=r=Math.round(m[d-1]/_*e)-b,h=1/(1+r),s=1;s<=r;s++)u=S+g*s*h,a=(y=v.length?v[u<_?~~(u/t.minLength):v.length-1]||0:j(m,u,u/_))?m[y-1]:0,(o=m[y])<u&&(a=o,o=m[++y]),l=1-(n=1/P*((u-a)/(o-a)+y%P)||0),p=t[y=6*~~(y/P)],M.push(A((n*n*(t[y+6]-p)+3*l*(n*(t[y+4]-p)+l*(t[y+2]-p)))*n+p),A((n*n*(t[y+7]-(p=t[y+1]))+3*l*(n*(t[y+5]-p)+l*(t[y+3]-p)))*n+p));f[M.length]=1,M.push(t[c],t[c+1]),S+=g}return y=t.length-2,t.closed&&Math.abs(z(t[y+1]-t[y-1],t[y]-t[y-2])-z(t[3]-t[1],t[2]-t[0]))<=.2&&(f[0]=f[f.length-1]=0),M}function pointsToSegment(t,e){Q(t[0]-t[2])<1e-4&&Q(t[1]-t[3])<1e-4&&(t=t.slice(2));var n,r,a,o,i,h,s,l,g,u,p,f,c,d,m=t.length-2,v=+t[0],P=+t[1],_=+t[2],M=+t[3],x=[v,P,v,P],w=_-v,y=M-P,S=t.nonSmooth||[],b=Math.abs(t[m]-v)<.001&&Math.abs(t[m+1]-P)<.001;if(!m)return[v,P,v,P,v,P,v,P];for(b&&(t.push(_,M),_=v,M=P,v=t[m-2],P=t[m-1],t.unshift(v,P),m+=4,S=[0,0].concat(S)),e=e||0===e?+e:1,a=2;a<m;a+=2)n=v,r=P,v=_,P=M,_=+t[a+2],M=+t[a+3],v===_&&P===M||(o=w,i=y,w=_-v,y=M-P,S[a]?x.push(v-(v-n)/4,P-(P-r)/4,v,P,v+(_-v)/4,P+(M-P)/4):(l=((h=J(o*o+i*i))+(s=J(w*w+y*y)))*e*.25/J(Math.pow(w/s+o/h,2)+Math.pow(y/s+i/h,2)),p=v-((g=v-(v-n)*(h?l/h:0))+(((u=v+(_-v)*(s?l/s:0))-g)*(3*h/(h+s)+.5)/4||0)),d=P-((f=P-(P-r)*(h?l/h:0))+(((c=P+(M-P)*(s?l/s:0))-f)*(3*h/(h+s)+.5)/4||0)),x.push(A(g+p),A(f+d),A(v),A(P),A(u+p),A(c+d))));return v!==_||P!==M||x.length<4?x.push(A(_),A(M),A(_),A(M)):x.length-=2,2===x.length?x.push(v,P,v,P,v,P):b&&(x.splice(0,6),x.length-=6),x.closed=b,x}function rawPathToString(t){h(t[0])&&(t=[t]);var e,n,r,a,o="",i=t.length;for(n=0;n<i;n++){for(a=t[n],o+="M"+A(a[0])+","+A(a[1])+" C",e=a.length,r=2;r<e;r++)o+=A(a[r++])+","+A(a[r++])+" "+A(a[r++])+","+A(a[r++])+" "+A(a[r++])+","+A(a[r])+" ";a.closed&&(o+="z")}return o}function D(){return n||"undefined"!=typeof window&&(n=window.gsap)&&n.registerPlugin&&n}function E(t){return"function"==typeof t}function R(t){return console&&console.warn(t)}function S(t){return Math.round(1e5*t)/1e5||0}function T(t){var e,n=t.length,r=0,a=0;for(e=0;e<n;e++)r+=t[e++],a+=t[e];return[r/(n/2),a/(n/2)]}function U(t){var e,n,r,a=t.length,o=t[0],i=o,h=t[1],s=h;for(r=6;r<a;r+=6)o<(e=t[r])?o=e:e<i&&(i=e),h<(n=t[r+1])?h=n:n<s&&(s=n);return t.centerX=(o+i)/2,t.centerY=(h+s)/2,t.size=(o-i)*(h-s)}function V(t,e){void 0===e&&(e=3);for(var n,r,a,o,i,h,s,l,g,u,p,f,c,d,m,v,P=t.length,_=t[0][0],M=_,x=t[0][1],w=x,y=1/e;-1<--P;)for(n=(i=t[P]).length,o=6;o<n;o+=6)for(g=i[o],u=i[o+1],p=i[o+2]-g,d=i[o+3]-u,f=i[o+4]-g,m=i[o+5]-u,c=i[o+6]-g,v=i[o+7]-u,h=e;-1<--h;)_<(r=((s=y*h)*s*c+3*(l=1-s)*(s*f+l*p))*s+g)?_=r:r<M&&(M=r),x<(a=(s*s*v+3*l*(s*m+l*d))*s+u)?x=a:a<w&&(w=a);return t.centerX=(_+M)/2,t.centerY=(x+w)/2,t.left=M,t.width=_-M,t.top=w,t.height=x-w,t.size=(_-M)*(x-w)}function W(t,e){return e.length-t.length}function X(t,e){var n=t.size||U(t),r=e.size||U(e);return Math.abs(r-n)<(n+r)/20?e.centerX-t.centerX||e.centerY-t.centerY:r-n}function Y(t,e){var n,r,a=t.slice(0),o=t.length,i=o-2;for(e|=0,n=0;n<o;n++)r=(n+e)%i,t[n++]=a[r],t[n]=a[1+r]}function Z(t,e,n,r,a){var o,i,h,s,l=t.length,g=0,u=l-2;for(n*=6,i=0;i<l;i+=6)s=t[o=(i+n)%u]-(e[i]-r),h=t[1+o]-(e[i+1]-a),g+=M(h*h+s*s);return g}function $(t,e,n){var r,a,o,i=t.length,h=T(t),s=T(e),l=s[0]-h[0],g=s[1]-h[1],u=Z(t,e,0,l,g),p=0;for(o=6;o<i;o+=6)(a=Z(t,e,o/6,l,g))<u&&(u=a,p=o);if(n)for(reverseSegment(r=t.slice(0)),o=6;o<i;o+=6)(a=Z(r,e,o/6,l,g))<u&&(u=a,p=-o);return p/6}function _(t,e,n){for(var r,a,o,i,h,s,l=t.length,g=x,u=0,p=0;-1<--l;)for(s=(r=t[l]).length,h=0;h<s;h+=6)a=r[h]-e,o=r[h+1]-n,(i=M(a*a+o*o))<g&&(g=i,u=r[h],p=r[h+1]);return[u,p]}function aa(t,e,n,r,a,o){var i,h,s,l,g=e.length,u=0,p=Math.min(t.size||U(t),e[n].size||U(e[n]))*r,f=x,c=t.centerX+a,d=t.centerY+o;for(i=n;i<g&&!((e[i].size||U(e[i]))<p);i++)h=e[i].centerX-c,s=e[i].centerY-d,(l=M(h*h+s*s))<f&&(u=i,f=l);return l=e[u],e.splice(u,1),l}function ba(t,e,n){void 0===n&&(n=1);for(var r,a,o,i,h,s,l,g,u,p=t[e],f=t[e+1],c=t[e+2],d=t[e+3],m=t[e+4],v=t[e+5],P=t[e+6],_=t[e+7];0<n--;)s=(a=p+(c-p)*(r=1-1/(n+2)))+((o=c+(m-c)*r)-a)*r,l=(i=f+(d-f)*r)+((h=d+(v-d)*r)-i)*r,o+=((g=m+(P-m)*r)-o)*r,h+=((u=v+(_-v)*r)-h)*r,t.splice(e+2,4,c=S(a),d=S(i),m=S(s),v=S(l),P=S(s+(o-s)*r),_=S(l+(h-l)*r),S(o),S(h),S(g),S(u))}function ca(t){for(var e,n=t.length,r=-x;n--;)t[n]>r&&(r=t[n],e=n);return e}function da(t,e){for(var n=[],r=[],a=t.length-2,o=0;o<a;o+=6)n.push(Math.pow(t[o]-t[o+6],2)+Math.pow(t[o+1]-t[o+7],2));for(;e--;)r[o=ca(n)]=a=(r[o]||0)+1,n[o]*=a/(a+1);for(o=n.length;o--;)r[o]&&ba(t,6*o,r[o])}function ea(t,e){return e||cacheRawPathMeasurements(t),Math.max(4,Math.round(t.totalLength/4))}function fa(t){return t.slice(0).sort(W)}function ga(t){for(var e=t[0],n=t[1],r=2;r<t.length;r+=2)if(.01<Math.abs(t[r]-e)||.01<Math.abs(t[r+1]-n))return!1;return!0}function ha(t,e){var n,r,a,o,i,h=(e=e||{}).redraw,s=e.points,l=e.maxSegments,g=void 0===l?999:l,u=0,p=t,f=Array.isArray(s)?s:0;if(h=!1!==h)cacheRawPathMeasurements(t);else for(t.totalPoints=0,r=t.length;r--;)t.totalPoints+=t[r].length;for(f?(p=fa(t),i=(f=fa(f))[0].totalLength/Math.round(f[0].length/6)):(s&&"auto"!==s||(s=ea(t,h),h||(s-=Math.round(t.totalPoints/6))),s=Math.max(h?10:4,Math.min(999,s))),r=0;r<p.length;r++){if(a=p[r],n=Math.max(h?10:4,f?Math.round(f[r]?f[r].length/6:p[r].totalLength/i||0):Math.round((u/s+(h?a.totalLength/t.totalLength:a.length/t.totalPoints))*s)-u),!(g<=r||f&&(!f[r]||ga(f[r]))))if(h){o=pointsToSegment(segmentToDistributedPoints(a,n),e.curviness),a.length=0,a.push.apply(a,o)}else da(a,n);u+=n}return t}function ia(t,e,n,r,a){var o,i,h,s,l,g,u,p=e.length-t.length,f=0<p?e:t,c=0<p?t:e,d=0,m="complexity"===r?W:X,v="position"===r?0:"number"==typeof r?r:.8,P=c.length,M="object"==typeof n&&n.push?n.slice(0):[n],x="reverse"===M[0]||M[0]<0,w="log"===n;if(c[0]){if(1<f.length&&(t.sort(m),e.sort(m),f.size||V(f),c.size||V(c),g=f.centerX-c.centerX,u=f.centerY-c.centerY,m===X))for(P=0;P<c.length;P++)f.splice(P,0,aa(c[P],f,P,v,g,u));if(p)for(p<0&&(p=-p),f[0].length>c[0].length&&da(c[0],(f[0].length-c[0].length)/6|0),P=c.length;d<p;)f[P].size||U(f[P]),s=(h=_(c,f[P].centerX,f[P].centerY))[0],l=h[1],c[P++]=[s,l,s,l,s,l,s,l],c.totalPoints+=8,d++;for(P=0;P<t.length;P++)o=e[P],i=t[P],(p=o.length-i.length)<0?da(o,-p/6|0):0<p&&da(i,p/6|0),x&&!1!==a&&!i.reversed&&reverseSegment(i),(n=M[P]||0===M[P]?M[P]:"auto")&&(i.closed||Math.abs(i[0]-i[i.length-2])<.5&&Math.abs(i[1]-i[i.length-1])<.5?"auto"===n||"log"===n?(M[P]=n=$(i,o,!P||!1===a),n<0&&(x=!0,reverseSegment(i),n=-n),Y(i,6*n)):"reverse"!==n&&(P&&n<0&&reverseSegment(i),Y(i,6*(n<0?-n:n))):!x&&("auto"===n&&Math.abs(o[0]-i[0])+Math.abs(o[1]-i[1])+Math.abs(o[o.length-2]-i[i.length-2])+Math.abs(o[o.length-1]-i[i.length-1])>Math.abs(o[0]-i[i.length-2])+Math.abs(o[1]-i[i.length-1])+Math.abs(o[o.length-2]-i[0])+Math.abs(o[o.length-1]-i[1])||n%2)?(reverseSegment(i),M[P]=-1,x=!0):"auto"===n?M[P]=0:"reverse"===n&&(M[P]=-1),i.closed!==o.closed&&(i.closed=o.closed=!1));return w&&R("shapeIndex:["+M.join(",")+"]"),t.shapeIndex=M}}function ja(t,e,n,r,a){var o=stringToRawPath(t[0]),i=stringToRawPath(t[1]);ia(o,i,e||0===e?e:"auto",n,a)&&(t[0]=rawPathToString(o),t[1]=rawPathToString(i),"log"!==r&&!0!==r||R('precompile:["'+t[0]+'","'+t[1]+'"]'))}function la(t,e){var n,r,a,o,i,h,s,l=0,g=parseFloat(t[0]),u=parseFloat(t[1]),p=g+","+u+" ";for(n=.5*e/(.5*(a=t.length)-1),r=0;r<a-2;r+=2){if(l+=n,h=parseFloat(t[r+2]),s=parseFloat(t[r+3]),.999999<l)for(i=1/(Math.floor(l)+1),o=1;.999999<l;)p+=(g+(h-g)*i*o).toFixed(2)+","+(u+(s-u)*i*o).toFixed(2)+" ",l--,o++;p+=h+","+s+" ",g=h,u=s}return p}function ma(t){var e=t[0].match(G)||[],n=t[1].match(G)||[],r=n.length-e.length;0<r?t[0]=la(e,r):t[1]=la(n,-r)}function na(e){return isNaN(e)?ma:function(t){ma(t),t[1]=function _offsetPoints(t,e){if(!e)return t;var n,r,a,o=t.match(G)||[],i=o.length,h="";for(n="reverse"===e?(r=i-1,-2):(r=(2*(parseInt(e,10)||0)+1+100*i)%i,2),a=0;a<i;a+=2)h+=o[r-1]+","+o[r]+" ",r=(r+n)%i;return h}(t[1],parseInt(e,10))}}function pa(t){for(var e,n,r,a,o,i,h,s,l=t.length;-1<--l;)for((s=(e=t[l]).cpData=e.cpData||[]).length=0,h=e.length-2,i=0;i<h;i+=6)n=e[i]-e[i+2],r=e[i+1]-e[i+3],a=e[i+6]-e[i+4],o=e[i+7]-e[i+5],s[i+2]=p(r,n),s[i+3]=M(n*n+r*r),s[i+4]=p(o,a),s[i+5]=M(a*a+o*o);return t}function qa(t){var e=t.trim().split(" ");return{x:(~t.indexOf("left")?0:~t.indexOf("right")?100:isNaN(parseFloat(e[0]))?50:parseFloat(e[0]))/100,y:(~t.indexOf("top")?0:~t.indexOf("bottom")?100:isNaN(parseFloat(e[1]))?50:parseFloat(e[1]))/100}}function ra(t){return t!==t%e?t+(t<0?i:-i):t}function ta(t,e,n,r){var a,o,i=this._origin,h=this._eOrigin,s=t[n]-i.x,l=t[n+1]-i.y,g=M(s*s+l*l),u=p(l,s);return s=e[n]-h.x,l=e[n+1]-h.y,a=p(l,s)-u,o=ra(a),!r&&F&&Math.abs(o+F.ca)<f&&(r=F),this._anchorPT=F={_next:this._anchorPT,t:t,sa:u,ca:r&&o*r.ca<0&&Math.abs(o)>c?a:o,sl:g,cl:M(s*s+l*l)-g,i:n}}function ua(t){n=D(),a=a||n&&n.plugins.morphSVG,n&&a?(I=n.utils.toArray,m=n.core.reverting||function(){},a.prototype._tweenRotation=ta,q=1):t&&R("Please gsap.registerPlugin(MorphSVGPlugin)")}var n,I,F,q,a,m,p=Math.atan2,v=Math.cos,P=Math.sin,M=Math.sqrt,e=Math.PI,i=2*e,f=.3*e,c=.7*e,x=1e20,G=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/gi,K=/(^[#.][a-z]|[a-y][a-z])/i,tt=/[achlmqstvz]/i,et="Use MorphSVGPlugin.convertToPath() to convert to a path before morphing.",nt={version:"3.14.2",name:"morphSVG",rawVars:1,register:function register(t,e){n=t,a=e,ua()},init:function init(t,e,n,r,a){if(q||ua(1),!e)return R("invalid shape"),!1;var o,i,h,s,l,g,u,p,f,c,d,m,v,P,_,M,x,w,y,S;if(E(e)&&(e=e.call(n,r,t,a)),"string"==typeof e||e.getBBox||e[0])e={shape:e};else if("object"==typeof e){for(i in o={},e)o[i]=E(e[i])&&"render"!==i?e[i].call(n,r,t,a):e[i];e=o}var b=t.nodeType?window.getComputedStyle(t):{},T=b.fill+"",N=!("none"===T||"0"===(T.match(G)||[])[3]||"evenodd"===b.fillRule),z=e.smooth,A=(e.origin||"50 50").split(",");if(!0===z||"auto"===z?z={}:"number"==typeof z&&(z={points:z}),l="POLYLINE"===(o=(t.nodeName+"").toUpperCase())||"POLYGON"===o,"PATH"!==o&&!l&&!e.prop)return R("Cannot morph a <"+o+"> element. "+et),!1;if(i="PATH"===o?"d":"points",!e.prop&&!E(t.setAttribute))return!1;if(s=function _parseShape(t,e,n){var r,a;return(!("string"==typeof t)||K.test(t)||(t.match(G)||[]).length<3)&&((r=I(t)[0])?(a=(r.nodeName+"").toUpperCase(),e&&"PATH"!==a&&(r=convertToPath(r,!1),a="PATH"),t=r.getAttribute("PATH"===a?"d":"points")||"",r===n&&(t=r.getAttributeNS(null,"data-original")||t)):(R("WARNING: invalid morph to: "+t),t=!1)),t}(e.shape||e.d||e.points||"","d"===i,t),l&&tt.test(s))return R("A <"+o+"> cannot accept path data. "+et),!1;if(g=e.shapeIndex||0===e.shapeIndex?e.shapeIndex:"auto",u=e.map||nt.defaultMap,this._prop=e.prop,this._render=e.render||nt.defaultRender,this._apply="updateTarget"in e?e.updateTarget:nt.defaultUpdateTarget,this._rnd=Math.pow(10,isNaN(e.precision)?2:+e.precision),this._tween=n,s){if(this._target=t,x="object"==typeof e.precompile,c=this._original=this._prop?t[this._prop]:t.getAttribute(i),this._prop||t.getAttributeNS(null,"data-original")||t.setAttributeNS(null,"data-original",c),"d"===i||this._prop){if(c=stringToRawPath(x?e.precompile[0]:c),d=stringToRawPath(x?e.precompile[1]:s),z){for(v=c.length;--v;)ga(c[v])&&c.splice(v,1);ha(c,_extends({},z,{points:+z.points||Math.max(ea(c),ea(d)),maxSegments:d.length})),ha(d,!1===z.redraw?z:_extends({},z,{points:c}))}if(!x&&!ia(c,d,g,u,N))return!1;for("log"!==e.precompile&&!0!==e.precompile||R('precompile:["'+rawPathToString(c)+'","'+rawPathToString(d)+'"]'),y="linear"!==(e.type||nt.defaultType),S=e.curveMode||y,pa(c),pa(d),y&&(c.size||V(c),d.size||V(d),w=qa(A[0]),this._origin=c.origin={x:c.left+w.x*c.width,y:c.top+w.y*c.height},A[1]&&(w=qa(A[1])),this._eOrigin={x:d.left+w.x*d.width,y:d.top+w.y*d.height}),this._rawPath=t._gsRawPath=c,v=c.length;-1<--v;){for(_=c[v],M=d[v],p=_.cpData,f=M.cpData,P=_.length,m=F=0;m<P;m+=6)M[m]===_[m]&&M[m+1]===_[m+1]||(h=y?this._tweenRotation(_,M,m):(h=this.add(_,m,_[m],M[m],0,0,0,0,0,1),this.add(_,m+1,_[m+1],M[m+1],0,0,0,0,0,1)||h));for(m=0;m<P;m+=2)S&&(p[m]!==f[m]||p[m+1]!==f[m+1])&&p[m+1]&&f[m+1]?this._controlPT={_next:this._controlPT,i:m,j:v,ai:3<m%6?m+2:m-2,sa:p[m],ca:ra(f[m]-p[m]),sl:p[m+1],cl:f[m+1]-p[m+1]}:(M[m]!==_[m]&&(h=this.add(_,m,_[m],M[m],0,0,0,0,0,1)),M[m+1]!==_[m+1]&&(h=this.add(_,m+1,_[m+1],M[m+1],0,0,0,0,0,1)||h))}}else h=this.add(t,"setAttribute",t.getAttribute(i)+"",s+"",r,a,0,na(g),i);y&&(this.add(this._origin,"x",this._origin.x,this._eOrigin.x,0,0,0,0,0,1),h=this.add(this._origin,"y",this._origin.y,this._eOrigin.y,0,0,0,0,0,1)),h&&(this._props.push("morphSVG"),h.end=z&&!1!==z.persist?rawPathToString(d):s,h.endProp=i)}return 1},render:function render(t,e){for(var n,r,a,o,i,h,s,l,g=e._rawPath,u=e._controlPT,p=e._anchorPT,f=e._rnd,c=e._target,d=e._pt;d;)d.r(t,d.d),d=d._next;if(1===t&&e._apply)for(d=e._pt;d;)d.end&&(e._prop?c[e._prop]=d.end:c.setAttribute(d.endProp,d.end)),d=d._next;else if(g){for(;p;)o=p.sa+t*p.ca,a=p.sl+t*p.cl,p.t[p.i]=e._origin.x+v(o)*a,p.t[p.i+1]=e._origin.y+P(o)*a,p=p._next;for(;u;)r=g[u.j],i=u.i,o=u.sa+t*u.ca,s=P(o),l=v(o),a=u.sl+t*u.cl,r[i]=r[u.ai]-l*a,r[i+1]=r[u.ai+1]-s*a,u=u._next;if(!t&&m()&&(g=stringToRawPath(e._original)),c._gsRawPath=g,e._apply){for(n="",h=0;h<g.length;h++){for(a=(r=g[h]).length,n+="M"+(r[0]*f|0)/f+" "+(r[1]*f|0)/f+" C",i=2;i<a;i++)n+=(r[i]*f|0)/f+" ";r.closed&&(n+="z")}e._prop?c[e._prop]=n:c.setAttribute("d",n)}}e._render&&g&&e._render.call(e._tween,g,c)},kill:function kill(){this._pt=this._rawPath=0},getRawPath:function getRawPath(t){var e,n=(t=o(t)&&r.test(t)&&document.querySelector(t)||t).getAttribute?t:0;return n&&(t=t.getAttribute("d"))?(n._gsPath||(n._gsPath={}),(e=n._gsPath[t])&&!e._dirty?e:n._gsPath[t]=stringToRawPath(t)):t?o(t)?stringToRawPath(t):h(t[0])?[t]:t:console.warn("Expecting a <path> element or an SVG path data string")},stringToRawPath:stringToRawPath,rawPathToString:rawPathToString,smoothRawPath:ha,normalizeStrings:function normalizeStrings(t,e,n){var r=n.shapeIndex,a=n.map,o=[t,e];return ja(o,r,a),o},pathFilter:ja,pointsFilter:ma,getTotalSize:V,equalizeSegmentQuantity:ia,convertToPath:function convertToPath$1(t,e){return I(t).map(function(t){return convertToPath(t,!1!==e)})},defaultType:"linear",defaultUpdateTarget:!0,defaultMap:"size"};D()&&n.registerPlugin(nt),t.MorphSVGPlugin=nt,t.default=nt;if (typeof(window)==="undefined"||window!==t){Object.defineProperty(t,"__esModule",{value:!0})} else {delete t.default}});