kute.js/demo/src/kute.min.js
thednp 2a5bac2bb3 Changes V2.2.0:
* major JSDoc write up
* removed ESLint `no-bitwise` exception, it only applies to specific functions and not the entire code
* the `SVGCubicMorph` component will remove un-necessary `Z` path commands when is the case for better out of the box animation
* fixed a minor disambiguation with `filterEffects` and `drop-shadow` property and its `dropshadow` interpolation function
* TypeScript strong: all files are modules, easy to implement in any third party app
* updated `CubicBezier` and SVGPathCommander
* code cleanup
2021-12-08 23:43:31 +02:00

3 lines
40 KiB
JavaScript

// KUTE.js Standard v2.2.0alpha2 | thednp © 2021 | MIT-License
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).KUTE=e()}(this,(function(){"use strict";var t=function(t,e,n,r,a){var i=this;this.cx=3*t,this.bx=3*(n-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(r-e)-this.cy,this.ay=1-this.cy-this.by;var o=function(t){return i.sampleCurveY(i.solveCurveX(t))};return Object.defineProperty(o,"name",{writable:!0}),o.name=a||"cubic-bezier("+[t,e,n,r]+")",o};t.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},t.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},t.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},t.prototype.solveCurveX=function(t){var e,n,r,a,i,o,s=1e-5;for(r=t,o=0;o<32;o+=1){if(a=this.sampleCurveX(r)-t,Math.abs(a)<s)return r;if(i=this.sampleCurveDerivativeX(r),Math.abs(i)<s)break;r-=a/i}if((r=t)<(e=0))return e;if(r>(n=1))return n;for(;e<n;){if(a=this.sampleCurveX(r),Math.abs(a-t)<s)return r;t>a?e=r:n=r,r=.5*(n-e)+e}return r};var e={},n=[],r="undefined"!=typeof global?global:"undefined"!=typeof window?window.self:{},a={},i={},o="undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?self.performance.now.bind(self.performance):"undefined"!=typeof Date&&Date.now?Date.now:function(){return(new Date).getTime()},s={};s.now=o;var u=0,c=function(t){for(var e=0;e<n.length;)n[e].update(t)?e+=1:n.splice(e,1);u=requestAnimationFrame(c)};function l(){setTimeout((function(){!n.length&&u&&(cancelAnimationFrame(u),u=null,Object.keys(i).forEach((function(t){"function"==typeof i[t]?e[t]&&delete e[t]:Object.keys(i[t]).forEach((function(t){e[t]&&delete e[t]}))})),Object.keys(a).forEach((function(t){e[t]&&delete e[t]})))}),64)}var p={Tick:u,Ticker:c,Tweens:n,Time:s};Object.keys(p).forEach((function(t){e[t]||(e[t]="Time"===t?s.now:p[t])})),r._KUTE=e;var h={},f={},d={duration:700,delay:0,easing:"linear",repeat:0,repeatDelay:0,yoyo:!1,resetStart:!1,offset:0},v={},y={},g={},m={},b={},w={supportedProperties:h,defaultValues:f,defaultOptions:d,prepareProperty:v,prepareStart:y,crossCheck:g,onStart:i,onComplete:m,linkProperty:b},x={},E=function(t){return n.push(t)},M=function(t){var e=n.indexOf(t);-1!==e&&n.splice(e,1)};function _(){var t=this;Object.keys(b).forEach((function(n){var r=b[n],a=h[n];Object.keys(r).forEach((function(n){"function"==typeof r[n]&&Object.keys(t.valuesEnd).some((function(e){return a&&a.includes(e)||"attr"===e&&Object.keys(t.valuesEnd[e]).some((function(t){return a&&a.includes(t)}))}))?e[n]||(e[n]=r[n]):Object.keys(t.valuesEnd).forEach((function(a){var i=t.valuesEnd[a];i instanceof Object&&Object.keys(i).forEach((function(t){"function"==typeof r[t]?e[t]||(e[t]=r[t]):Object.keys(r[n]).forEach((function(n){r[t]&&"function"==typeof r[t][n]&&(e[n]||(e[n]=r[t][n]))}))}))}))}))}))}var k={add:E,remove:M,getAll:function(){return n},removeAll:function(){n.length=0},stop:l,linkInterpolation:_};function C(t){if(!t.style)return!1;var e=t.style.cssText.replace(/\s/g,"").split(";"),n={},r=["translate3d","translate","scale3d","skew"];return e.forEach((function(t){/transform/i.test(t)&&t.split(":")[1].split(")").forEach((function(t){var e=t.split("("),a=e[0],i=e[1];/matrix/.test(a)||(n[a]=r.includes(a)?i.split(","):i)}))})),n}function O(t,e){var n=f[e],r=t.style,a=getComputedStyle(t)||t.currentStyle,i=r[e]&&!/auto|initial|none|unset/.test(r[e])?r[e]:a[e];return"transform"!==e&&(e in a||e in r)&&(n=i),n}function T(t,e){var n=this,r="start"===e?this.valuesStart:this.valuesEnd;Object.keys(v).forEach((function(e){var a=v[e],i=h[e];Object.keys(a).forEach((function(e){var o={};Object.keys(t).forEach((function(s){f[s]&&a[s]?r[s]=a[s].call(n,s,t[s]):!f[e]&&"transform"===e&&i.includes(s)?o[s]=t[s]:f[s]||"transform"!==s?!f[e]&&i&&i.includes(s)&&(r[s]=a[e].call(n,s,t[s])):r[s]=t[s]})),Object.keys(o).length&&(r[e]=a[e].call(n,e,o))}))}))}function S(){var t=this,e={},n=C(this.element);Object.keys(this.valuesStart).forEach((function(n){Object.keys(y).forEach((function(r){var a=y[r];Object.keys(a).forEach((function(i){(i===n&&a[n]||h[r]&&h[r].includes(n))&&(e[n]=a[i].call(t,n,t.valuesStart[n]))}))}))})),Object.keys(n).forEach((function(r){r in t.valuesStart||(e[r]=n[r]||f[r])})),this.valuesStart={},T.call(this,e,"start")}var I={getInlineStyle:C,getStyleForProperty:O,getStartValues:S,prepareObject:T},A={tween:null,processEasing:null},j={linear:new t(0,0,1,1,"linear"),easingSinusoidalIn:new t(.47,0,.745,.715,"easingSinusoidalIn"),easingSinusoidalOut:new t(.39,.575,.565,1,"easingSinusoidalOut"),easingSinusoidalInOut:new t(.445,.05,.55,.95,"easingSinusoidalInOut"),easingQuadraticIn:new t(.55,.085,.68,.53,"easingQuadraticIn"),easingQuadraticOut:new t(.25,.46,.45,.94,"easingQuadraticOut"),easingQuadraticInOut:new t(.455,.03,.515,.955,"easingQuadraticInOut"),easingCubicIn:new t(.55,.055,.675,.19,"easingCubicIn"),easingCubicOut:new t(.215,.61,.355,1,"easingCubicOut"),easingCubicInOut:new t(.645,.045,.355,1,"easingCubicInOut"),easingQuarticIn:new t(.895,.03,.685,.22,"easingQuarticIn"),easingQuarticOut:new t(.165,.84,.44,1,"easingQuarticOut"),easingQuarticInOut:new t(.77,0,.175,1,"easingQuarticInOut"),easingQuinticIn:new t(.755,.05,.855,.06,"easingQuinticIn"),easingQuinticOut:new t(.23,1,.32,1,"easingQuinticOut"),easingQuinticInOut:new t(.86,0,.07,1,"easingQuinticInOut"),easingExponentialIn:new t(.95,.05,.795,.035,"easingExponentialIn"),easingExponentialOut:new t(.19,1,.22,1,"easingExponentialOut"),easingExponentialInOut:new t(1,0,0,1,"easingExponentialInOut"),easingCircularIn:new t(.6,.04,.98,.335,"easingCircularIn"),easingCircularOut:new t(.075,.82,.165,1,"easingCircularOut"),easingCircularInOut:new t(.785,.135,.15,.86,"easingCircularInOut"),easingBackIn:new t(.6,-.28,.735,.045,"easingBackIn"),easingBackOut:new t(.175,.885,.32,1.275,"easingBackOut"),easingBackInOut:new t(.68,-.55,.265,1.55,"easingBackInOut")};function P(t,e){try{var n,r;return e?(r=t instanceof Array&&t.every((function(t){return t instanceof Element})),n=t instanceof HTMLCollection||t instanceof NodeList||r?t:document.querySelectorAll(t)):n=t instanceof Element||t===window?t:document.querySelector(t),n}catch(e){throw TypeError("KUTE.js - Element(s) not found: "+t+".")}}function L(){var t=this;Object.keys(i).forEach((function(e){"function"==typeof i[e]?i[e].call(t,e):Object.keys(i[e]).forEach((function(n){i[e][n].call(t,n)}))})),_.call(this)}A.processEasing=function(e){if("function"==typeof e)return e;if("function"==typeof j[e])return j[e];if(/bezier/.test(e)){var n=e.replace(/bezier|\s|\(|\)/g,"").split(",");return new t(1*n[0],1*n[1],1*n[2],1*n[3])}return j.linear};var N=function(t,n,r,a){var o=this;this.element=t,this.playing=!1,this._startTime=null,this._startFired=!1,this.valuesEnd=r,this.valuesStart=n;var s=a||{};this._resetStart=s.resetStart||0,this._easing="function"==typeof s.easing?s.easing:A.processEasing(s.easing),this._duration=s.duration||d.duration,this._delay=s.delay||d.delay,Object.keys(s).forEach((function(t){var e="_"+t;e in o||(o[e]=s[t])}));var u=this._easing.name;return i[u]||(i[u]=function(t){e[t]||t!==this._easing.name||(e[t]=this._easing)}),this};N.prototype.start=function(t){return E(this),this.playing=!0,this._startTime=void 0!==t?t:e.Time(),this._startTime+=this._delay,this._startFired||(this._onStart&&this._onStart.call(this),L.call(this),this._startFired=!0),u||c(),this},N.prototype.stop=function(){return this.playing&&(M(this),this.playing=!1,this._onStop&&this._onStop.call(this),this.close()),this},N.prototype.close=function(){var t=this;Object.keys(m).forEach((function(e){Object.keys(m[e]).forEach((function(n){m[e][n].call(t,n)}))})),this._startFired=!1,l.call(this)},N.prototype.chain=function(t){return this._chain=[],this._chain=t.length?t:this._chain.concat(t),this},N.prototype.stopChainedTweens=function(){this._chain&&this._chain.length&&this._chain.forEach((function(t){return t.stop()}))},N.prototype.update=function(t){var n,r=this,a=void 0!==t?t:e.Time();if(a<this._startTime&&this.playing)return!0;n=(a-this._startTime)/this._duration,n=0===this._duration||n>1?1:n;var i=this._easing(n);return Object.keys(this.valuesEnd).forEach((function(t){e[t](r.element,r.valuesStart[t],r.valuesEnd[t],i)})),this._onUpdate&&this._onUpdate.call(this),1!==n||(this._onComplete&&this._onComplete.call(this),this.playing=!1,this.close(),void 0!==this._chain&&this._chain.length&&this._chain.map((function(t){return t.start()})),!1)},A.tween=N;var q=function(t){function n(){for(var e=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];t.apply(this,n),this.valuesStart={},this.valuesEnd={};var a=n.slice(1),i=a[0],o=a[1],s=a[2];return T.call(this,o,"end"),this._resetStart?this.valuesStart=i:T.call(this,i,"start"),this._resetStart||Object.keys(g).forEach((function(t){Object.keys(g[t]).forEach((function(n){g[t][n].call(e,n)}))})),this.paused=!1,this._pauseTime=null,this._repeat=s.repeat||d.repeat,this._repeatDelay=s.repeatDelay||d.repeatDelay,this._repeatOption=this._repeat,this.valuesRepeat={},this._yoyo=s.yoyo||d.yoyo,this._reversed=!1,this}return t&&(n.__proto__=t),n.prototype=Object.create(t&&t.prototype),n.prototype.constructor=n,n.prototype.start=function(e){var n=this;return this._resetStart&&(this.valuesStart=this._resetStart,S.call(this),Object.keys(g).forEach((function(t){Object.keys(g[t]).forEach((function(e){g[t][e].call(n,e)}))}))),this.paused=!1,this._yoyo&&Object.keys(this.valuesEnd).forEach((function(t){n.valuesRepeat[t]=n.valuesStart[t]})),t.prototype.start.call(this,e),this},n.prototype.stop=function(){return t.prototype.stop.call(this),!this.paused&&this.playing&&(this.paused=!1,this.stopChainedTweens()),this},n.prototype.close=function(){return t.prototype.close.call(this),this._repeatOption>0&&(this._repeat=this._repeatOption),this._yoyo&&!0===this._reversed&&(this.reverse(),this._reversed=!1),this},n.prototype.resume=function(){return this.paused&&this.playing&&(this.paused=!1,void 0!==this._onResume&&this._onResume.call(this),L.call(this),this._startTime+=e.Time()-this._pauseTime,E(this),u||c()),this},n.prototype.pause=function(){return!this.paused&&this.playing&&(M(this),this.paused=!0,this._pauseTime=e.Time(),void 0!==this._onPause&&this._onPause.call(this)),this},n.prototype.reverse=function(){var t=this;Object.keys(this.valuesEnd).forEach((function(e){var n=t.valuesRepeat[e];t.valuesRepeat[e]=t.valuesEnd[e],t.valuesEnd[e]=n,t.valuesStart[e]=t.valuesRepeat[e]}))},n.prototype.update=function(t){var n,r=this,a=void 0!==t?t:e.Time();if(a<this._startTime&&this.playing)return!0;n=(a-this._startTime)/this._duration,n=0===this._duration||n>1?1:n;var i=this._easing(n);return Object.keys(this.valuesEnd).forEach((function(t){e[t](r.element,r.valuesStart[t],r.valuesEnd[t],i)})),this._onUpdate&&this._onUpdate.call(this),1!==n||(this._repeat>0?(Number.isFinite(this._repeat)&&(this._repeat-=1),this._startTime=a,Number.isFinite(this._repeat)&&this._yoyo&&!this._reversed&&(this._startTime+=this._repeatDelay),this._yoyo&&(this._reversed=!this._reversed,this.reverse()),!0):(this._onComplete&&this._onComplete.call(this),this.playing=!1,this.close(),void 0!==this._chain&&this._chain.length&&this._chain.forEach((function(t){return t.start()})),!1))},n}(N);A.tween=q;var H=function(t,e,n,r){var a=this,i=A.tween;this.tweens=[];var o=r||{};o.delay=o.delay||d.delay;var s=[];return Array.from(t).forEach((function(t,r){if(s[r]=o||{},s[r].delay=r>0?o.delay+(o.offset||d.offset):o.delay,!(t instanceof Element))throw Error("KUTE - "+t+" is not instanceof Element");a.tweens.push(new i(t,e,n,s[r]))})),this.length=this.tweens.length,this};H.prototype.start=function(t){var n=void 0===t?e.Time():t;return this.tweens.map((function(t){return t.start(n)})),this},H.prototype.stop=function(){return this.tweens.map((function(t){return t.stop()})),this},H.prototype.pause=function(){return this.tweens.map((function(t){return t.pause()})),this},H.prototype.resume=function(){return this.tweens.map((function(t){return t.resume()})),this},H.prototype.chain=function(t){var e=this.tweens[this.length-1];if(t instanceof H)e.chain(t.tweens);else{if(!(t instanceof A.tween))throw new TypeError("KUTE.js - invalid chain value");e.chain(t)}return this},H.prototype.playing=function(){return this.tweens.some((function(t){return t.playing}))},H.prototype.removeTweens=function(){this.tweens=[]},H.prototype.getMaxDuration=function(){var t=[];return this.tweens.forEach((function(e){t.push(e._duration+e._delay+e._repeat*e._repeatDelay)})),Math.max(t)};var V=A.tween;var D=A.tween;var F=function(t){try{if(t.component in h)throw Error("KUTE - "+t.component+" already registered");if(t.property in f)throw Error("KUTE - "+t.property+" already registered")}catch(t){throw Error(t)}var e=this,n=t.component,r={prepareProperty:v,prepareStart:y,onStart:i,onComplete:m,crossCheck:g},o=t.category,s=t.property,u=t.properties&&t.properties.length||t.subProperties&&t.subProperties.length;return h[n]=t.properties||t.subProperties||t.property,"defaultValue"in t?(f[s]=t.defaultValue,e.supports=s+" property"):t.defaultValues&&(Object.keys(t.defaultValues).forEach((function(e){f[e]=t.defaultValues[e]})),e.supports=(u||s)+" "+(s||o)+" properties"),t.defaultOptions&&Object.assign(d,t.defaultOptions),t.functions&&Object.keys(r).forEach((function(e){e in t.functions&&("function"==typeof t.functions[e]?(r[e][n]||(r[e][n]={}),r[e][n][o||s]||(r[e][n][o||s]=t.functions[e])):Object.keys(t.functions[e]).forEach((function(a){r[e][n]||(r[e][n]={}),r[e][n][a]||(r[e][n][a]=t.functions[e][a])})))})),t.Interpolate&&(Object.keys(t.Interpolate).forEach((function(e){var n=t.Interpolate[e];"function"!=typeof n||a[e]?Object.keys(n).forEach((function(t){"function"!=typeof n[t]||a[e]||(a[e]=n[t])})):a[e]=n})),b[n]=t.Interpolate),t.Util&&Object.keys(t.Util).forEach((function(e){x[e]||(x[e]=t.Util[e])})),e},Q=function(t,e){for(var n,r=parseInt(t,10)||0,a=["px","%","deg","rad","em","rem","vh","vw"],i=0;i<a.length;i+=1)if("string"==typeof t&&t.includes(a[i])){n=a[i];break}return void 0===n&&(n=e?"deg":"px"),{v:r,u:n}};function U(t,e,n){return+t+(e-t)*n}function X(t){t in this.valuesEnd&&!e[t]&&(e[t]=function(e,n,r,a){e.style[t]=(a>.99||a<.01?(10*U(n,r,a)>>0)/10:U(n,r,a)>>0)+"px"})}var B={};["top","left","width","height"].forEach((function(t){B[t]=X}));var Z=["top","left","width","height"],R={};Z.forEach((function(t){R[t]=X}));var Y={component:"essentialBoxModel",category:"boxModel",properties:Z,defaultValues:{top:0,left:0,width:0,height:0},Interpolate:{numbers:U},functions:{prepareStart:function(t){return O(this.element,t)||f[t]},prepareProperty:function(t,e){var n=Q(e),r="height"===t?"offsetHeight":"offsetWidth";return"%"===n.u?n.v*this.element[r]/100:n.v},onStart:R},Util:{trueDimension:Q}},z=function(t){var e;if(/rgb|rgba/.test(t)){var n=t.replace(/\s|\)/,"").split("(")[1].split(","),r=n[3]?n[3]:null;r||(e={r:parseInt(n[0],10),g:parseInt(n[1],10),b:parseInt(n[2],10)}),e={r:parseInt(n[0],10),g:parseInt(n[1],10),b:parseInt(n[2],10),a:parseFloat(r)}}if(/^#/.test(t)){var a=function(t){var e=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(t,e,n,r){return e+e+n+n+r+r})),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null}(t);e={r:a.r,g:a.g,b:a.b}}if(/transparent|none|initial|inherit/.test(t)&&(e={r:0,g:0,b:0,a:0}),!/^#|^rgb/.test(t)){var i=document.getElementsByTagName("head")[0];i.style.color=t;var o=getComputedStyle(i,null).color;o=/rgb/.test(o)?o.replace(/[^\d,]/g,"").split(","):[0,0,0],i.style.color="",e={r:parseInt(o[0],10),g:parseInt(o[1],10),b:parseInt(o[2],10)}}return e};function K(t,e,n){var r={},a=",";return Object.keys(e).forEach((function(a){"a"!==a?r[a]=U(t[a],e[a],n)>>0||0:t[a]&&e[a]&&(r[a]=(100*U(t[a],e[a],n)>>0)/100)})),r.a?"rgba("+r.r+a+r.g+a+r.b+a+r.a+")":"rgb("+r.r+a+r.g+a+r.b+")"}function $(t){this.valuesEnd[t]&&!e[t]&&(e[t]=function(e,n,r,a){e.style[t]=K(n,r,a)})}var W={};["color","backgroundColor","outlineColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"].forEach((function(t){W[t]=$}));var G=["color","backgroundColor","outlineColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"],J={};G.forEach((function(t){J[t]="#000"}));var tt={};G.forEach((function(t){tt[t]=$}));var et={component:"colorProperties",category:"colors",properties:G,defaultValues:J,Interpolate:{numbers:U,colors:K},functions:{prepareStart:function(t){return O(this.element,t)||f[t]},prepareProperty:function(t,e){return z(e)},onStart:tt},Util:{trueColor:z}},nt={},rt="htmlAttributes",at=["fill","stroke","stop-color"];function it(t){return t.replace(/[A-Z]/g,"-$&").toLowerCase()}var ot={prepareStart:function(t,e){var n=this,r={};return Object.keys(e).forEach((function(t){var e=it(t).replace(/_+[a-z]+/,""),a=n.element.getAttribute(e);r[e]=at.includes(e)?a||"rgba(0,0,0,0)":a||(/opacity/i.test(t)?1:0)})),r},prepareProperty:function(t,e){var n=this,r={};return Object.keys(e).forEach((function(a){var o=it(a),s=/(%|[a-z]+)$/,u=n.element.getAttribute(o.replace(/_+[a-z]+/,""));if(at.includes(o))i.htmlAttributes[o]=function(e){n.valuesEnd[t]&&n.valuesEnd[t][e]&&!(e in nt)&&(nt[e]=function(t,e,n,r,a){t.setAttribute(e,K(n,r,a))})},r[o]=z(e[a])||f.htmlAttributes[a];else if(null!==u&&s.test(u)){var c=Q(u).u||Q(e[a]).u,l=/%/.test(c)?"_percent":"_"+c;i.htmlAttributes[o+l]=function(e){n.valuesEnd[t]&&n.valuesEnd[t][e]&&!(e in nt)&&(nt[e]=function(t,e,n,r,a){var i=e.replace(l,"");t.setAttribute(i,(1e3*U(n.v,r.v,a)>>0)/1e3+r.u)})},r[o+l]=Q(e[a])}else s.test(e[a])&&null!==u&&(null===u||s.test(u))||(i.htmlAttributes[o]=function(e){n.valuesEnd[t]&&n.valuesEnd[t][e]&&!(e in nt)&&(nt[e]=function(t,e,n,r,a){t.setAttribute(e,(1e3*U(n,r,a)>>0)/1e3)})},r[o]=parseFloat(e[a]))})),r},onStart:{attr:function(t){!e[t]&&this.valuesEnd[t]&&(e[t]=function(t,n,r,a){Object.keys(r).forEach((function(i){e.attributes[i](t,i,n[i],r[i],a)}))})},attributes:function(t){!e[t]&&this.valuesEnd.attr&&(e[t]=nt)}}},st={component:rt,property:"attr",subProperties:["fill","stroke","stop-color","fill-opacity","stroke-opacity"],defaultValue:{fill:"rgb(0,0,0)",stroke:"rgb(0,0,0)","stop-color":"rgb(0,0,0)",opacity:1,"stroke-opacity":1,"fill-opacity":1},Interpolate:{numbers:U,colors:K},functions:ot,Util:{replaceUppercase:it,trueColor:z,trueDimension:Q}};var ut={prepareStart:function(t){return O(this.element,t)},prepareProperty:function(t,e){return parseFloat(e)},onStart:function(t){t in this.valuesEnd&&!e[t]&&(e[t]=function(e,n,r,a){e.style[t]=(1e3*U(n,r,a)>>0)/1e3})}},ct={component:"opacityProperty",property:"opacity",defaultValue:1,Interpolate:{numbers:U},functions:ut},lt=String("abcdefghijklmnopqrstuvwxyz").split(""),pt=String("abcdefghijklmnopqrstuvwxyz").toUpperCase().split(""),ht=String("~!@#$%^&*()_+{}[];'<>,./?=-").split(""),ft=String("0123456789").split(""),dt=lt.concat(pt,ft),vt=dt.concat(ht),yt={alpha:lt,upper:pt,symbols:ht,numeric:ft,alphanumeric:dt,all:vt},gt={text:function(t){if(!e[t]&&this.valuesEnd[t]){var n=this._textChars,r=yt[d.textChars];n in yt?r=yt[n]:n&&n.length&&(r=n),e[t]=function(t,e,n,a){var i="",o="",s=""===n?" ":n,u=e.substring(0),c=n.substring(0),l=r[Math.random()*r.length>>0];" "===e?(o=c.substring(Math.min(a*c.length,c.length)>>0,0),t.innerHTML=a<1?o+l:s):" "===n?(i=u.substring(0,Math.min((1-a)*u.length,u.length)>>0),t.innerHTML=a<1?i+l:s):(i=u.substring(u.length,Math.min(a*u.length,u.length)>>0),o=c.substring(0,Math.min(a*c.length,c.length)>>0),t.innerHTML=a<1?o+l+i:s)}}},number:function(t){t in this.valuesEnd&&!e[t]&&(e[t]=function(t,e,n,r){t.innerHTML=U(e,n,r)>>0})}};function mt(t,e){var n,r;if("string"==typeof t)return(r=document.createElement("SPAN")).innerHTML=t,r.className=e,r;if(!t.children.length||t.children.length&&t.children[0].className!==e){var a=t.innerHTML;(n=document.createElement("SPAN")).className=e,n.innerHTML=a,t.appendChild(n),t.innerHTML=n.outerHTML}else t.children.length&&t.children[0].className===e&&(n=t.children[0]);return n}function bt(t,e){var n=[],r=t.children.length;if(r){for(var a,i=[],o=t.innerHTML,s=0,u=void 0,c=void 0,l=void 0;s<r;s+=1)c=(u=t.children[s]).outerHTML,""!==(a=o.split(c))[0]?(l=mt(a[0],e),i.push(l),o=o.replace(a[0],"")):""!==a[1]&&(l=mt(a[1].split("<")[0],e),i.push(l),o=o.replace(a[0].split("<")[0],"")),u.classList.contains(e)||u.classList.add(e),i.push(u),o=o.replace(c,"");if(""!==o){var p=mt(o,e);i.push(p)}n=n.concat(i)}else n=n.concat([mt(t,e)]);return n}function wt(t,e,n,r){return"perspective("+(1e3*(t+(e-t)*r)>>0)/1e3+n+")"}function xt(t,e,n,r){for(var a=[],i=0;i<3;i+=1)a[i]=(t[i]||e[i]?(1e3*(t[i]+(e[i]-t[i])*r)>>0)/1e3:0)+n;return"translate3d("+a.join(",")+")"}function Et(t,e,n,r){var a="";return a+=t[0]||e[0]?"rotateX("+(1e3*(t[0]+(e[0]-t[0])*r)>>0)/1e3+n+")":"",a+=t[1]||e[1]?"rotateY("+(1e3*(t[1]+(e[1]-t[1])*r)>>0)/1e3+n+")":"",a+=t[2]||e[2]?"rotateZ("+(1e3*(t[2]+(e[2]-t[2])*r)>>0)/1e3+n+")":""}function Mt(t,e,n){return"scale("+(1e3*(t+(e-t)*n)>>0)/1e3+")"}function _t(t,e,n,r){var a=[];return a[0]=(t[0]===e[0]?e[0]:(1e3*(t[0]+(e[0]-t[0])*r)>>0)/1e3)+n,a[1]=t[1]||e[1]?(t[1]===e[1]?e[1]:(1e3*(t[1]+(e[1]-t[1])*r)>>0)/1e3)+n:"0","skew("+a.join(",")+")"}function kt(t,e){return parseFloat(t)/100*e}function Ct(t){return 2*t.getAttribute("width")+2*t.getAttribute("height")}function Ot(t){var e=t.getAttribute("points").split(" "),n=0;if(e.length>1){var r=function(t){var e=t.split(",");return 2!==e.length||Number.isNaN(1*e[0])||Number.isNaN(1*e[1])?0:[parseFloat(e[0]),parseFloat(e[1])]},a=function(t,e){return void 0!==t&&void 0!==e?Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)):0};if(e.length>2)for(var i=0;i<e.length-1;i+=1)n+=a(r(e[i]),r(e[i+1]));n+="polygon"===t.tagName?a(r(e[0]),r(e[e.length-1])):0}return n}function Tt(t){var e=t.getAttribute("x1"),n=t.getAttribute("x2"),r=t.getAttribute("y1"),a=t.getAttribute("y2");return Math.sqrt(Math.pow(n-e,2)+Math.pow(a-r,2))}function St(t){var e=t.getAttribute("r");return 2*Math.PI*e}function It(t){var e=2*t.getAttribute("rx"),n=2*t.getAttribute("ry");return Math.sqrt(.5*(e*e+n*n))*(2*Math.PI)/2}function At(t){return"rect"===t.tagName?Ct(t):"circle"===t.tagName?St(t):"ellipse"===t.tagName?It(t):["polygon","polyline"].includes(t.tagName)?Ot(t):"line"===t.tagName?Tt(t):0}function jt(t,e){var n,r,a,i,o=/path|glyph/.test(t.tagName)?t.getTotalLength():At(t);if(e instanceof Object&&Object.keys(e).every((function(t){return["s","e","l"].includes(t)})))return e;if("string"==typeof e){var s=e.split(/,|\s/);n=/%/.test(s[0])?kt(s[0].trim(),o):parseFloat(s[0]),r=/%/.test(s[1])?kt(s[1].trim(),o):parseFloat(s[1])}else void 0===e&&(i=parseFloat(O(t,"stroke-dashoffset")),a=O(t,"stroke-dasharray").split(","),n=0-i,r=parseFloat(a[0])+n||o);return{s:n,e:r,l:o}}var Pt={prepareStart:function(){return jt(this.element)},prepareProperty:function(t,e){return jt(this.element,e)},onStart:function(t){t in this.valuesEnd&&!e[t]&&(e[t]=function(t,e,n,r){var a=(100*e.l>>0)/100,i=0-(100*U(e.s,n.s,r)>>0)/100,o=(100*U(e.e,n.e,r)>>0)/100+i;t.style.strokeDashoffset=i+"px",t.style.strokeDasharray=(100*(o<1?0:o)>>0)/100+"px, "+a+"px"})}};function Lt(t,e,n){if(t[n].length>7){t[n].shift();for(var r=t[n],a=n;r.length;)e[n]="A",t.splice(a+=1,0,["C"].concat(r.splice(0,6)));t.splice(n,1)}}var Nt={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function qt(t){var e=t.pathValue[t.segmentStart],n=e.toLowerCase(),r=t.data;for("m"===n&&r.length>2&&(t.segments.push([e,r[0],r[1]]),r=r.slice(2),n="l",e="m"===e?"l":"L");r.length>=Nt[n]&&(t.segments.push([e].concat(r.splice(0,Nt[n]))),Nt[n]););}var Ht="Invalid path value";function Vt(t){var e=t.index,n=t.pathValue.charCodeAt(e);return 48===n?(t.param=0,void(t.index+=1)):49===n?(t.param=1,void(t.index+=1)):void(t.err=Ht+': invalid Arc flag "'+n+'", expecting 0 or 1 at index '+e)}function Dt(t){return t>=48&&t<=57}function Ft(t){var e,n=t.max,r=t.pathValue,a=t.index,i=a,o=!1,s=!1,u=!1,c=!1;if(i>=n)t.err=Ht+" at "+i+": missing param "+r[i];else if(43!==(e=r.charCodeAt(i))&&45!==e||(e=(i+=1)<n?r.charCodeAt(i):0),Dt(e)||46===e){if(46!==e){if(o=48===e,e=(i+=1)<n?r.charCodeAt(i):0,o&&i<n&&e&&Dt(e))return void(t.err=Ht+" at index "+a+": "+r[a]+" illegal number");for(;i<n&&Dt(r.charCodeAt(i));)i+=1,s=!0;e=i<n?r.charCodeAt(i):0}if(46===e){for(c=!0,i+=1;Dt(r.charCodeAt(i));)i+=1,u=!0;e=i<n?r.charCodeAt(i):0}if(101===e||69===e){if(c&&!s&&!u)return void(t.err=Ht+" at index "+i+": "+r[i]+" invalid float exponent");if(43!==(e=(i+=1)<n?r.charCodeAt(i):0)&&45!==e||(i+=1),!(i<n&&Dt(r.charCodeAt(i))))return void(t.err=Ht+" at index "+i+": "+r[i]+" invalid float exponent");for(;i<n&&Dt(r.charCodeAt(i));)i+=1}t.index=i,t.param=+t.pathValue.slice(a,i)}else t.err=Ht+" at index "+i+": "+r[i]+" is not a number"}function Qt(t){for(var e,n=t.pathValue,r=t.max;t.index<r&&(10===(e=n.charCodeAt(t.index))||13===e||8232===e||8233===e||32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0);)t.index+=1}function Ut(t){return t>=48&&t<=57||43===t||45===t||46===t}function Xt(t){var e=t.max,n=t.pathValue,r=t.index,a=n.charCodeAt(r),i=Nt[n[r].toLowerCase()];if(t.segmentStart=r,function(t){switch(32|t){case 109:case 122:case 108:case 104:case 118:case 99:case 115:case 113:case 116:case 97:return!0;default:return!1}}(a))if(t.index+=1,Qt(t),t.data=[],i){for(;;){for(var o=i;o>0;o-=1){if(97!=(32|a)||3!==o&&4!==o?Ft(t):Vt(t),t.err.length)return;t.data.push(t.param),Qt(t),t.index<e&&44===n.charCodeAt(t.index)&&(t.index+=1,Qt(t))}if(t.index>=t.max)break;if(!Ut(n.charCodeAt(t.index)))break}qt(t)}else qt(t);else t.err=Ht+": "+n[r]+" not a path command"}function Bt(t){return t.map((function(t){return Array.isArray(t)?[].concat(t):t}))}function Zt(t){this.segments=[],this.pathValue=t,this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}function Rt(t){return Array.isArray(t)&&t.every((function(t){var e=t[0].toLowerCase();return Nt[e]===t.length-1&&"achlmqstvz".includes(e)}))}function Yt(t){if(Array.isArray(t)&&Rt(t))return Bt(t);var e=new Zt(t);for(Qt(e);e.index<e.max&&!e.err.length;)Xt(e);return e.err.length?e.segments=[]:e.segments.length&&("mM".includes(e.segments[0][0])?e.segments[0][0]="M":(e.err=Ht+": missing M/m",e.segments=[])),e.segments}function zt(t){return Rt(t)&&t.every((function(t){return t[0]===t[0].toUpperCase()}))}function Kt(t){if(Array.isArray(t)&&zt(t))return Bt(t);var e=Yt(t),n=0,r=0,a=0,i=0;return e.map((function(t){var e,o=t.slice(1).map(Number),s=t[0],u=s.toUpperCase();if("M"===s)return n=(e=o)[0],r=e[1],a=n,i=r,["M",n,r];var c=[];if(s!==u)switch(u){case"A":c=[u,o[0],o[1],o[2],o[3],o[4],o[5]+n,o[6]+r];break;case"V":c=[u,o[0]+r];break;case"H":c=[u,o[0]+n];break;default:var l=o.map((function(t,e){return t+(e%2?r:n)}));c=[u].concat(l)}else c=[u].concat(o);var p=c.length;switch(u){case"Z":n=a,r=i;break;case"H":n=c[1];break;case"V":r=c[1];break;default:n=c[p-2],r=c[p-1],"M"===u&&(a=n,i=r)}return c}))}function $t(t,e,n){var r=t[0],a=e.x1,i=e.y1,o=e.x2,s=e.y2,u=t.slice(1).map(Number),c=t;if("TQ".includes(r)||(e.qx=null,e.qy=null),"H"===r)c=["L",t[1],i];else if("V"===r)c=["L",a,t[1]];else if("S"===r){var l=function(t,e,n,r,a){return"CS".includes(a)?{x1:2*t-n,y1:2*e-r}:{x1:t,y1:e}}(a,i,o,s,n),p=l.x1,h=l.y1;e.x1=p,e.y1=h,c=["C",p,h].concat(u)}else if("T"===r){var f=function(t,e,n,r,a){return"QT".includes(a)?{qx:2*t-n,qy:2*e-r}:{qx:t,qy:e}}(a,i,e.qx,e.qy,n),d=f.qx,v=f.qy;e.qx=d,e.qy=v,c=["Q",d,v].concat(u)}else if("Q"===r){var y=u[0],g=u[1];e.qx=y,e.qy=g}return c}var Wt={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function Gt(t){if(function(t){return zt(t)&&t.every((function(t){return"ACLMQZ".includes(t[0])}))}(t))return Bt(t);for(var e=Kt(t),n=Object.assign({},Wt),r=[],a=e.length,i="",o="",s=0;s<a;s+=1){i=e[s][0],r[s]=i,s&&(o=r[s-1]),e[s]=$t(e[s],n,o);var u=e[s],c=u.length;n.x1=+u[c-2],n.y1=+u[c-1],n.x2=+u[c-4]||n.x1,n.y2=+u[c-3]||n.y1}return e}function Jt(t,e,n){return{x:t*Math.cos(n)-e*Math.sin(n),y:t*Math.sin(n)+e*Math.cos(n)}}function te(t,e,n,r,a,i,o,s,u,c){var l,p,h,f,d,v,y=t,g=e,m=n,b=r,w=s,x=u,E=120*Math.PI/180,M=Math.PI/180*(+a||0),_=[];if(c)h=(l=c)[0],f=l[1],d=l[2],v=l[3];else{y=(p=Jt(y,g,-M)).x,g=p.y;var k=(y-(w=(p=Jt(w,x,-M)).x))/2,C=(g-(x=p.y))/2,O=k*k/(m*m)+C*C/(b*b);O>1&&(m*=O=Math.sqrt(O),b*=O);var T=m*m,S=b*b,I=(i===o?-1:1)*Math.sqrt(Math.abs((T*S-T*C*C-S*k*k)/(T*C*C+S*k*k)));d=I*m*C/b+(y+w)/2,v=I*-b*k/m+(g+x)/2,h=(Math.asin((g-v)/b)*Math.pow(10,9)>>0)/Math.pow(10,9),f=(Math.asin((x-v)/b)*Math.pow(10,9)>>0)/Math.pow(10,9),h=y<d?Math.PI-h:h,f=w<d?Math.PI-f:f,h<0&&(h=2*Math.PI+h),f<0&&(f=2*Math.PI+f),o&&h>f&&(h-=2*Math.PI),!o&&f>h&&(f-=2*Math.PI)}var A=f-h;if(Math.abs(A)>E){var j=f,P=w,L=x;f=h+E*(o&&f>h?1:-1),_=te(w=d+m*Math.cos(f),x=v+b*Math.sin(f),m,b,a,0,o,P,L,[f,j,d,v])}A=f-h;var N=Math.cos(h),q=Math.sin(h),H=Math.cos(f),V=Math.sin(f),D=Math.tan(A/4),F=4/3*m*D,Q=4/3*b*D,U=[y,g],X=[y+F*q,g-Q*N],B=[w+F*V,x-Q*H],Z=[w,x];if(X[0]=2*U[0]-X[0],X[1]=2*U[1]-X[1],c)return X.concat(B,Z,_);for(var R=[],Y=0,z=(_=X.concat(B,Z,_)).length;Y<z;Y+=1)R[Y]=Y%2?Jt(_[Y-1],_[Y],M).y:Jt(_[Y],_[Y+1],M).x;return R}function ee(t,e,n,r,a,i){var o=1/3,s=2/3;return[o*t+s*n,o*e+s*r,o*a+s*n,o*i+s*r,a,i]}function ne(t,e,n,r,a,i,o,s,u){var c=1-u;return{x:Math.pow(c,3)*t+c*c*3*u*n+3*c*u*u*a+Math.pow(u,3)*o,y:Math.pow(c,3)*e+c*c*3*u*r+3*c*u*u*i+Math.pow(u,3)*s}}function re(t,e,n){var r=t[0],a=t[1];return[r+(e[0]-r)*n,a+(e[1]-a)*n]}function ae(t,e,n,r){var a=.5,i=[t,e],o=[n,r],s=re(i,o,a),u=re(o,s,a),c=re(s,u,a),l=re(u,c,a),p=re(c,l,a),h=i.concat(s,c,p,[a]),f=ne.apply(void 0,h),d=p.concat(l,u,o,[0]),v=ne.apply(void 0,d);return[f.x,f.y,v.x,v.y,n,r]}function ie(t,e){var n,r=t[0],a=t.slice(1).map((function(t){return+t})),i=a[0],o=a[1],s=e.x1,u=e.y1,c=e.x,l=e.y;switch("TQ".includes(r)||(e.qx=null,e.qy=null),r){case"M":return e.x=i,e.y=o,t;case"A":return n=[s,u].concat(a),["C"].concat(te.apply(void 0,n));case"Q":return e.qx=i,e.qy=o,n=[s,u].concat(a),["C"].concat(ee.apply(void 0,n));case"L":return["C"].concat(ae(s,u,i,o));case"Z":return["C"].concat(ae(s,u,c,l))}return t}function oe(t){if(function(t){return Rt(t)&&t.every((function(t){return"MC".includes(t[0])}))}(t))return Bt(t);for(var e=function(t){var e=Yt(t),n=Gt(e),r=e.length,a="Z"===n.slice(-1)[0][0],i=a?r-2:r-1,o=n[0].slice(1),s=o[0],u=o[1],c=n[i].slice(-2),l=c[0],p=c[1];return a&&s===l&&u===p?e.slice(0,-1):e}(Gt(t)),n=Object.assign({},Wt),r=[],a="",i=e.length,o=0;o<i;o+=1){a=e[o][0],r[o]=a,e[o]=ie(e[o],n),Lt(e,r,o),i=e.length;var s=e[o],u=s.length;n.x1=+s[u-2],n.y1=+s[u-1],n.x2=+s[u-4]||n.x1,n.y2=+s[u-3]||n.y1}return e}var se=4;function ue(t,e){var n=se;if(!1===e||!1===n)return Bt(t);var r=(n=e>=1?e:n)>=1?Math.pow(10,n):1;return t.map((function(t){var e=t.slice(1).map(Number).map((function(t){return t%1==0?t:Math.round(t*r)/r}));return[t[0]].concat(e)}))}function ce(t,e){return ue(t,e).map((function(t){return t[0]+t.slice(1).join(" ")})).join("")}function le(t,e,n,r,a){return a*(a*(-3*t+9*e-9*n+3*r)+6*t-12*e+6*n)-3*t+3*e}function pe(t,e,n,r,a,i,o,s,u){var c=u;(null===u||Number.isNaN(+u))&&(c=1),c>1&&(c=1),c<0&&(c=0);var l=c/2,p=0,h=0,f=0,d=0,v=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472];return[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816].forEach((function(u,c){h=le(t,n,a,o,p=l*u+l),f=le(e,r,i,s,p),d+=v[c]*Math.sqrt(h*h+f*f)})),l*d}function he(t){var e=0;return oe(t).forEach((function(t,n,r){var a="M"!==t[0]?r[n-1].slice(-2).concat(t.slice(1)):[];e+="M"===t[0]?0:pe.apply(void 0,a)})),e}function fe(t,e){var n,r,a,i=0;return oe(t).map((function(t,o,s){if(r=o?s[o-1].slice(-2).concat(t.slice(1)):t.slice(1),n=o?pe.apply(void 0,r):0,i+=n,0===o)a={x:r[0],y:r[1]};else if(i>e&&e>i-n){var u=r.concat([1-(i-e)/n]);a=ne.apply(void 0,u)}else a=null;return a})).filter((function(t){return t})).slice(-1)[0]}function de(t,e,n,r,a,i,o,s){return 3*((s-e)*(n+a)-(o-t)*(r+i)+r*(t-a)-n*(e-i)+s*(a+t/3)-o*(i+e/3))/20}function ve(t){return function(t){var e=0,n=0,r=0;return oe(t).map((function(t){var a,i;return"M"===t[0]?(e=(a=t)[1],n=a[2],0):(r=de.apply(void 0,[e,n].concat(t.slice(1))),i=t.slice(-2).map(Number),e=i[0],n=i[1],r)})).reduce((function(t,e){return t+e}),0)}(oe(t))>=0}function ye(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}function ge(t,e,n,r){for(var a=[],i=0;i<n;i+=1){a[i]=[];for(var o=0;o<2;o+=1)a[i].push((1e3*(t[i][o]+(e[i][o]-t[i][o])*r)>>0)/1e3)}return a}function me(t,e){var n,r,a=oe((n=ce(t),ce(Kt(n),0).replace(/(m|M)/g,"|$1").split("|").map((function(t){return t.trim()})).filter((function(t){return t})))[0]),i=he(a),o=[],s=3;e&&!Number.isNaN(e)&&+e>0&&(s=Math.max(s,Math.ceil(i/e)));for(var u=0;u<s;u+=1)r=fe(a,i*u/s),o.push([r.x,r.y]);return ve(a)||o.reverse(),{polygon:o,skipBisect:!0}}function be(t,e){var n=Gt(t);return function(t){var e=[],n=t.length,r=[],a="";if(!t.length||"M"!==t[0][0])return!1;for(var i=0;i<n&&!("M"===(a=(r=t[i])[0])&&i||"Z"===a);i+=1){if(!"ML".includes(a))return!1;e.push([r[1],r[2]])}return!!n&&{polygon:e}}(n)||me(n,e)}function we(t,e){for(var n,r,a,i,o=t.length,s=1/0,u=0,c=0;c<o;c+=1){u=0;for(var l=0;l<e.length;l+=1)i=e[l],u+=(a=ye(t[(c+l)%o],i))*a;u<s&&(s=u,n=c)}n&&(r=t.splice(0,n),t.splice.apply(t,[t.length,0].concat(r)))}function xe(t,e){for(var n,r,a,i=t.length+e,o=function(t){return t.reduce((function(e,n,r){return r?e+ye(t[r-1],n):0}),0)}(t)/e,s=0,u=0,c=o/2;t.length<i;)c<=u+(a=ye(n=t[s],r=t[(s+1)%t.length]))?(t.splice(s+1,0,a?re(n,r,(c-u)/a):n.slice(0)),c+=o):(u+=a,s+=1)}function Ee(t,e){void 0===e&&(e=1/0);for(var n=[],r=[],a=0;a<t.length;a+=1)for(n=t[a],r=a===t.length-1?t[0]:t[a+1];ye(n,r)>e;)r=re(n,r,.5),t.splice(a+1,0,r)}function Me(t){return Array.isArray(t)&&t.every((function(t){return Array.isArray(t)&&2===t.length&&!Number.isNaN(t[0])&&!Number.isNaN(t[1])}))}function _e(t,e){var n,r,a;if("string"==typeof t)a=(n=be(t,e)).polygon,r=n.skipBisect;else if(!Array.isArray(t))throw Error(Ht+": "+t);var i=[].concat(a);if(!Me(i))throw Error(Ht+": "+i);return i.length>1&&ye(i[0],i[i.length-1])<1e-9&&i.pop(),!r&&e&&!Number.isNaN(e)&&+e>0&&Ee(i,e),i}function ke(t,e,n){var r=n||d.morphPrecision,a=_e(t,r),i=_e(e,r),o=a.length-i.length;return xe(a,o<0?-1*o:0),xe(i,o>0?o:0),we(a,i),[ue(a),ue(i)]}var Ce={prepareStart:function(){return this.element.getAttribute("d")},prepareProperty:function(t,e){var n={},r=new RegExp("\\n","ig"),a=null;return e instanceof SVGPathElement?a=e:/^\.|^#/.test(e)&&(a=P(e)),"object"==typeof e&&e.polygon?e:(a&&["path","glyph"].includes(a.tagName)?n.original=a.getAttribute("d").replace(r,""):a||"string"!=typeof e||(n.original=e.replace(r,"")),n)},onStart:function(t){!e[t]&&this.valuesEnd[t]&&(e[t]=function(t,e,n,r){var a=e.polygon,i=n.polygon,o=i.length;t.setAttribute("d",1===r?n.original:"M"+ge(a,i,o,r).join("L")+"Z")})},crossCheck:function(t){if(this.valuesEnd[t]){var e=this.valuesStart[t].polygon,n=this.valuesEnd[t].polygon;if(!e||!n||e&&n&&e.length!==n.length){var r=ke(this.valuesStart[t].original,this.valuesEnd[t].original,this._morphPrecision?parseInt(this._morphPrecision,10):d.morphPrecision),a=r[0],i=r[1];this.valuesStart[t].polygon=a,this.valuesEnd[t].polygon=i}}}},Oe={EssentialBoxModel:Y,ColorsProperties:et,HTMLAttributes:st,OpacityProperty:ct,TextWriteProp:{component:"textWriteProperties",category:"textWrite",properties:["text","number"],defaultValues:{text:" ",number:"0"},defaultOptions:{textChars:"alpha"},Interpolate:{numbers:U},functions:{prepareStart:function(){return this.element.innerHTML},prepareProperty:function(t,e){return"number"===t?parseFloat(e):""===e?" ":e},onStart:gt},Util:{charSet:yt,createTextTweens:function(t,e,n){if(t.playing)return!1;var r=n||{};r.duration=1e3,"auto"===n.duration?r.duration="auto":Number.isFinite(1*n.duration)&&(r.duration=1*n.duration);var a=A.tween,i=function(t,e){var n=bt(t,"text-part"),r=bt(mt(e),"text-part");return t.innerHTML="",t.innerHTML+=n.map((function(t){return t.className+=" oldText",t.outerHTML})).join(""),t.innerHTML+=r.map((function(t){return t.className+=" newText",t.outerHTML.replace(t.innerHTML,"")})).join(""),[n,r]}(t,e),o=i[0],s=i[1],u=[].slice.call(t.getElementsByClassName("oldText")).reverse(),c=[].slice.call(t.getElementsByClassName("newText")),l=[],p=0;return(l=(l=l.concat(u.map((function(t,e){return r.duration="auto"===r.duration?75*o[e].innerHTML.length:r.duration,r.delay=p,r.onComplete=null,p+=r.duration,new a(t,{text:t.innerHTML},{text:""},r)})))).concat(c.map((function(n,i){return r.duration="auto"===r.duration?75*s[i].innerHTML.length:r.duration,r.delay=p,r.onComplete=i===s.length-1?function(){t.innerHTML=e,t.playing=!1}:null,p+=r.duration,new a(n,{text:""},{text:s[i].innerHTML},r)})))).start=function(){t.playing||(l.forEach((function(t){return t.start()})),t.playing=!0)},l}}},TransformFunctions:{component:"transformFunctions",property:"transform",subProperties:["perspective","translate3d","translateX","translateY","translateZ","translate","rotate3d","rotateX","rotateY","rotateZ","rotate","skewX","skewY","skew","scale"],defaultValues:{perspective:400,translate3d:[0,0,0],translateX:0,translateY:0,translateZ:0,translate:[0,0],rotate3d:[0,0,0],rotateX:0,rotateY:0,rotateZ:0,rotate:0,skewX:0,skewY:0,skew:[0,0],scale:1},functions:{prepareStart:function(t){var e=C(this.element);return e[t]?e[t]:f[t]},prepareProperty:function(t,e){var n=["X","Y","Z"],r={},a=[],i=[],o=[],s=["translate3d","translate","rotate3d","skew"];return Object.keys(e).forEach((function(t){var u="object"==typeof e[t]&&e[t].length?e[t].map((function(t){return parseInt(t,10)})):parseInt(e[t],10);if(s.includes(t)){var c="translate"===t||"rotate"===t?t+"3d":t;r[c]="skew"===t?u.length?[u[0]||0,u[1]||0]:[u||0,0]:"translate"===t?u.length?[u[0]||0,u[1]||0,u[2]||0]:[u||0,0,0]:[u[0]||0,u[1]||0,u[2]||0]}else if(/[XYZ]/.test(t)){var l=t.replace(/[XYZ]/,""),p="skew"===l?l:l+"3d",h="skew"===l?2:3,f=[];"translate"===l?f=a:"rotate"===l?f=i:"skew"===l&&(f=o);for(var d=0;d<h;d+=1){var v=n[d];f[d]=""+l+v in e?parseInt(e[""+l+v],10):0}r[p]=f}else"rotate"===t?r.rotate3d=[0,0,u]:r[t]="scale"===t?parseFloat(e[t]):u})),r},onStart:function(t){!e[t]&&this.valuesEnd[t]&&(e[t]=function(e,n,r,a){e.style[t]=(n.perspective||r.perspective?wt(n.perspective,r.perspective,"px",a):"")+(n.translate3d?xt(n.translate3d,r.translate3d,"px",a):"")+(n.rotate3d?Et(n.rotate3d,r.rotate3d,"deg",a):"")+(n.skew?_t(n.skew,r.skew,"deg",a):"")+(n.scale||r.scale?Mt(n.scale,r.scale,a):"")})},crossCheck:function(t){this.valuesEnd[t]&&this.valuesEnd[t]&&this.valuesEnd[t].perspective&&!this.valuesStart[t].perspective&&(this.valuesStart[t].perspective=this.valuesEnd[t].perspective)}},Interpolate:{perspective:wt,translate3d:xt,rotate3d:Et,translate:function(t,e,n,r){var a=[];return a[0]=(t[0]===e[0]?e[0]:(1e3*(t[0]+(e[0]-t[0])*r)>>0)/1e3)+n,a[1]=t[1]||e[1]?(t[1]===e[1]?e[1]:(1e3*(t[1]+(e[1]-t[1])*r)>>0)/1e3)+n:"0","translate("+a.join(",")+")"},rotate:function(t,e,n,r){return"rotate("+(1e3*(t+(e-t)*r)>>0)/1e3+n+")"},scale:Mt,skew:_t}},SVGDraw:{component:"svgDraw",property:"draw",defaultValue:"0% 0%",Interpolate:{numbers:U},functions:Pt,Util:{getRectLength:Ct,getPolyLength:Ot,getLineLength:Tt,getCircleLength:St,getEllipseLength:It,getTotalLength:At,resetDraw:function(t){t.style.strokeDashoffset="",t.style.strokeDasharray=""},getDraw:jt,percent:kt}},SVGMorph:{component:"svgMorph",property:"path",defaultValue:[],Interpolate:ge,defaultOptions:{morphPrecision:10},functions:Ce,Util:{addPoints:xe,bisect:Ee,getPolygon:_e,validPolygon:Me,getInterpolationPoints:ke,pathStringToPolygon:be,distanceSquareRoot:ye,midPoint:re,approximatePolygon:me,rotatePolygon:we,pathToString:ce,pathToCurve:oe,getPathLength:he,getPointAtLength:fe,getDrawDirection:ve,roundPath:ue}}};Object.keys(Oe).forEach((function(t){var e=Oe[t];Oe[t]=new F(e)}));return{Animation:F,Components:Oe,Tween:q,fromTo:function(t,e,n,r){var a=r||{};return new D(P(t),e,n,a)},to:function(t,e,n){var r=n||{};return r.resetStart=e,new V(P(t),e,e,r)},TweenCollection:H,allFromTo:function(t,e,n,r){var a=r||{};return new H(P(t,!0),e,n,a)},allTo:function(t,e,n){var r=n||{};return r.resetStart=e,new H(P(t,!0),e,e,r)},Objects:w,Util:x,Easing:j,CubicBezier:t,Render:p,Interpolate:a,Process:I,Internals:k,Selector:P,Version:"2.2.0alpha2"}}));